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.