Desenvolvimento de Web Services com SOAP

Propaganda
MADALENA PEREIRA DA SILVA
SLA – Sociedade Lageana de Educação
DCET – Departamento de Ciências Exatas e Tecnológica
Desenvolvimento de Web Services com SOAP.
1. Introdução.
Com a tecnologia de desenvolvimento de aplicações com objetos
distribuídos novas ferramentas foram necessárias assim como a
independência de plataformas.
Buscando a interoperabilidade entre máquinas a computação distribuída
necessita de novas metodologias para análise e desenvolvimento de
sistemas. Entre estas metodologias, podemos citar RPC, DCOM, CORBA
e os serviços de mensagem MSMQ. Porém estas metodologias só
funcionam com sistemas similares.
Para solucionar este problema buscou-se um novo modelo para o
desenvolvimento de aplicações com objetos distribuídos de forma simples
e transparente na troca de mensagens entre sistemas, assim surgiu o webserbice.
2. Web Service.
Os web services são serviços existentes na internet que podem ser
acessados através do protocolo http ou https. Permitem que sistemas
distribuídos
se
comuniquem
consumindo
e
oferecendo
serviços,
independente de plataforma e linguagem de desenvolvimento.
Um web service é uma classe composta de métodos, logicamente
associados e chamados através de um protocolo denominado SOAP, que é
o protocolo de comunicação utilizado na troca de mensagens entre cliente e
servidor, sendo definido através do padrão XML.
3. Simple Object Access Protocol (SOAP).
O protocolo SOAP foi elaborado para possibilitar a chamada remota de
funções através da internet, permitindo que aplicações se comuniquem de
forma similar à utilizada na chamada de páginas web. O transporte das
mensagens é realizado via protocolo http, que torna o SOAP um protocolo
leve, elimina vários problemas de outras tecnologias com proxys, como
CORBA, DCOM, etc. O SOAP também define o padrão WSDL, que
descreve os objetos e métodos dos web services, através de páginas XML.
Conforme descrito em (GUDGIN, 2004b) o SOAP difere de outros
paradigmas como o CORBA
e DCOM por apresentar as seguintes
características:
• É muito mais simples de implementar, testar e usar;
• Utiliza os mesmos padrões da web e sua comunicação é via http;
• Opera na porta 80 que na maioria das vezes é liberada pelo
proxy/firewall;
• O protocolo é robusto pelo fato dos dados e funções serem descritas
em XML;
• É independente de sistema operacional e hardware;
• É usado tanto de forma anônima com autenticada,
3.1 Estrutura SOAP.
O SOAP utiliza uma estrutura padrão para receber e enviar mensagens.
Uma mensagen SOAP é um documento XML que contém as seguintes
informações:
• Elemento envelope: Define o conteúdo da mensagem;
• Elemento Header: É um bloco genérico, opcional que adiciona
funcionalidades a uma mensagem;
• Elemento Body: É o bloco para as informações enviadas para o
receptor. Contém as informações de chamada de resposta ao
servidor.
• Elemento Fault: Possui as informações dos erros ocorridos no envio
da mensagem.
4. Construindo um Web Service.
Utiliza-se o SOAP para a construção de serviços web utilizando a
invocação remota de métodos.
Será utilizado como exemplo para implementação a arquitetura .NET e
a linguagem C#.
Na arquitetura .NET, os web services são implementados sempre em
uma classe derivada de “System.Web.Services.Web Service”, onde serão
adicionados métodos chamados através do SOAP. Um método comum
difere de um web method pela presentação de um “atributo WebMethod”.
Abaixo o exemplo de construção da classe e os Web Method.
No código apresentado o parêmtro Description é opcional. Cada
novo atributo deve ser adicionado através do Web Method(), que irá
fornecer ao cliente cada novo método como um serviço web.
4.1 Codificando uma requisição SOAP.
As aplicações distribuídas devem conter as requisições cliente e
servidor. A seguir são apresentados trechos de códigos que demonstra
como codificar uma chamada para um servidor.
Quanto o servidor receber uma requisição, responderá ao cliente.
A seguir é mostrado o código SOAP utilizado na resposta do servidor.
4.2 Atributos SOAP.
Os atributos SOAP segue a estrutura dos atributos em XML. A
seguir os principais atributos SOAP e suas funções:
• actor : Define a URI, que equivale a URL do http. Abaixo a sintaxe
do atributo actor.
• encodingStyle: Define o estilo de codificação do documento.
• mustUnderstand: Define qual elemento do Header deve aparecer
para o receptor da mensagem.
O valor “0” do atributo define que o elemento não deve ser
mostrado ao receptor.
4.4 Acessando o Web Service.
Todo web service deve possuir uma única identificação que é
feita utilizando um domínio da internet registrado. Esta url deve ser
indicada
em
um
atributo
antes
da
declaração
da
classe:
[WebService(Namespace=”http://www.dominioregistrado.com.br/webs
ervices/”)]
O web service criado pode ser acessado através de um navegador.
A página apresentada permite o teste do método “http GET” e também
mostrará a documentação “SDL”.
4.3 Descrição dos arquivos SDL.
Os arquivos SDL – Service Description Language - são gerados
quando da compilação dos web service. É codificado em XML e
dividido da seguinte forma:
• ServiceDescription: É a raiz do arquivo e contém a descrição do web
service.
• Subelementos: A raiz possui dois tipos de subelementos:
o Descrição do protocolo;
o Schema, que contém uma definição abstrata do serviço.
4.4 Seqüência de acontecimentos.
Inicialmente a classe é gerada no cliente. Quando ocorre a
chamada do webMethod é feito um pedido SOAP em XML que é
remetido ao servidor Web. O servidor web cria um objeto da classe
associada ao web service e chama o método. O resultado, descrito em
XML é devolvido ao cliente.
5. Conclusão.
Existem
no
mercado
várias
tecnologias
que
permitem
o
desenvolvimento de serviços web. Contudo, é necessário uma tecnologia
que seja simples e que facilite a forma de implementação das aplicações
distribuídas.
Os serviços web tem surgido como um novo modelo na computação
distribuída, grande parte do sucesso de sua disseminação está na
simplicidade e facilidade como as aplicações são desenvolvidas.
O protocolo SOAP foi criado com o objetivo de facilitar a chamada
remota de procedimentos. É um protocolo robusto e de fácil utilização.
Download