Pages



Hoje um dos paradigmas mais utilizados para integração de sistemas é a arquitetura orientada a serviços SOA, e  para entender e aplicar esse novo conceito é necessário o conhecimento de uma série de ferramentas e outros paradigmas, entre eles BPM( Bussiness Process Modeling), Linguagem BPEL, Documentos XML como o WSDL (Web Service Description Language), XSDs.

No meu trabalho final de curso, estou desenvolvendo a implementação de SOA em buscadores de Imagem, e uma boa parte do trabalho já está implementado. Quem tiver interesse de pesquisar e conhecer mais sobre o assunto pode entrar em contato direto comigo. Abaixo estou colocando o link para minha revisão bibliográfica, onde tem uma descrição detalhada de todas linguagens e conceitos que citei acima, e nos próximos posts pretendo falar um pouco mais desse assunto.

Download
A Arquitetura Orientada à Serviços (SOA), é um dos assuntos mais discutidos entre os programadores, e tem seus diversos benefícios, entre eles a interoperabilidade, que é a capacidade de rodar seus serviços em qualquer plataforma ou linguagem.

Hoje vou mostrar como montar um serviço (Web Service) em Asp.Net, e cosumir o mesmo através da Linguagem Java.

Web Service Asp.Net

Primeiro criamos um projeto no Visual Studio, no meu caso utilizo o VS2010, vá em File->New->Project , na janela Wizard que abrir procure pela aba WEB e selecione ASP.NET Web Service Application:

Após a tela o wizard do Visual Studio vai gerar um serviço HelloWorld, no meu caso alterei para um Serviço que irá devolver um Objeto Livro, implementei a classe Livro dentro da própria classe do Web Service, como segue o código abaixo:

namespace MeuServico
{
    /// 
    /// Summary description for Service1
    /// 
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
    // [System.Web.Script.Services.ScriptService]
    public class Service1 : System.Web.Services.WebService
    {
        public class Livro
        {
            public int Id { get; set; }
            public string Nome { get; set; }
            public string Autor { get; set; }
            public string AnoDePublicacao { get; set; }
            public string Editora { get; set; }
            public int NumeroDePaginas { get; set; }

            public bool ColocarNaEstante(Livro livro)
            {
                try
                {
                    return true;
                }
                catch (Exception e)
                {
                    throw e;
                }
            }
        }
       
        
        [WebMethod]
        public Livro getLivro(int Id)
        {
            Livro livro = new Livro()
            {
                Id = 1,
                Nome = "Quimica Geral",
                Autor = "Cat Stevens",
                AnoDePublicacao = "2006",
                Editora = "Novembro",
                NumeroDePaginas = 343
            };

            return livro;
        }
    }
}

Feito isso é só rodar a aplicação que vamos ter nosso serviço rodando.

Cliente Java


Já temos o serviço rodando no Visual Studio agora vamos implementar um cliente Java para consumir esse serviço, para isso abra o NetBeans IDE, e contrua um projeto Java Application com o Nome ClientJava, na aba Projects clique com o botão direito, vá em New->Others e procure por Web Service Client, uma janela similar a esta se abrirá:
Pegue o endereço de EndPoint do serviço Asp.Net e coloque no campo WSDL URL, no meu caso esse endereço é http://localhost:6566/Service1.asmx (O endereço que aparece no Browser quando você roda o serviço no Visual Studio), selecione o package no qual será implementado o client e então clique em Finish, na classe Main do projeto, clique com o botão direito na definição da função main e procuro por  Web Service Client Resources-> Call Web Service Operation, a tela abaixo se abrirá:
Selecione o método getLivro e clique em OKo código gerado será semelhante a este:

Agora rode o projeto Java e seu serviço am Asp.Net, já está sendo consumido em Java. Essa interoperabilidade é incrivel não é?.