Javafree

Web Services com NetBeans

Publicado por joaosavio em 17/08/2009 - 56.312 visualizações

Web Services com NetBeans
João Sávio C. Longo - Sun Campus Ambassador
http://www.joaosavio.com

Antes de vermos Web Services, vamos supor uma situação do nosso mundo para entendermos melhor a motivação para eles.

Imagine que temos uma empresa aqui no Brasil e vamos propor alguns acordos com uma empresa japonesa. Mas, ninguém da nossa empresa fala japonês, e por sua vez, ninguém da empresa japonesa fala português. Como resolver este impasse? Simples, usaremos uma língua em que os dois entendam para fazer a comunicação, provavelmente o inglês. Assim, a comunicação entre as empresas será feita em inglês, mas a comunicação dentro de cada uma será feita na sua respectiva língua de origem. Analogamente, trazendo esta situação hipotética do mundo real para a computação, poderíamos ter o seguinte problema:

- Olá sr. João, minha empresa já tem um sistema de busca feito em Java e eu gostaria que qualquer pessoa de qualquer lugar do mundo pudesse utilizar a minha busca, inclusive nosso parceiro que só usa a plataforma .NET da Microsoft.

Ah meu Deus! E agora?
Simples, teremos que ter uma linguagem que todos os sistemas entendam para pelo menos trocarem mensagens. E utilizaremos para isso o protocolo SOAP.

Segundo a definição da Wikipédia, SOAP (Simple Object Access Protocol) é um protocolo para troca de informações estruturadas em uma plataforma descentralizada e distribuída, utilizando tecnologias baseadas em XML. Sua especificação define um framework que provê maneiras para se construir mensagens que podem trafegar através de diversos protocolos e que foi especificado de forma a ser independente de qualquer modelo de programação ou outra implementação específica.

Um documento SOAP se assemelha ao conteúdo abaixo:



Outros padrões importantes estão descritos abaixo:
XML (eXtensible Markup Language) - descreve modelos, formatos e tipos de dados. Além disso, todos os outros padrões são baseados em XML 1.0, XSD (XML Schema) e namespaces XML;

HTTP(s) (Hypertext Transfer Protocol (Secure)) - é um protocolo de baixo nível usado pela internet. Envia Web Services pelas redes, utilizando a internet para isso;

WSDL (Web Services Defition Language) - é um documento escrito em XML que além de descrever o serviço, especifica como acessá-lo e quais as operações ou métodos disponíveis;

UDDI (Universal Description, Discovery and Integration) - registro e localização de serviços. Um serviço Web seria registrado em um lugar disponível a todos. Um cliente buscaria nesse repositório o serviço desejado e assim obteria os dados necessários para chamar este serviço. A imagem abaixo retrata a situação descrita:

0

Web Services é uma solução utilizada na integração de sistemas e na comunicação entre aplicações diferentes. Eles são uma espécie de ?funções remotas?. Segue abaixo um exemplo simples feito no NetBeans:



Lembrando que o NetBeans já implementa o corpo do serviço, bastando mudar a linha: return "Hello " + nome. Fizemos um Web Service chamado "Teste" e uma operação chamada "hello". Mas, cada Web Service pode ter várias operações.

O cliente deste Web Service enviará um dado do tipo string e o serviço retornará a palavra "Hello" concatenada com a string passada. Para fazer o cliente basta ter o arquivo WSDL (descrição do serviço) gerado pelo Web Service e fazer a chamada passando os parâmetros corretamente. Usando nosso exemplo anterior, uma chamada ao serviço ficaria assim:


Como o NetBeans já implementa o corpo da chamada, você só terá que modificar a entrada e manipular a exceção.

Referências:
- JOSUTTIS, N. M. SOA na Prática ? A Arte da Modelagem de Sistemas Distribuídos. 2008. Ed. Alta Books.
- Wikipédia. SOAP. Disponível em http://pt.wikipedia.org/wiki/SOAP. Acesso em 30/07/2009.

comentários: 0