Web Services Da Introdução à Prática Americo do Nascimento Penna Introdução Devido aos avanços tecnológicos, a popularização da Internet e a evolução das redes de computadores, resultando no surgimento de aplicações distribuídas. Cada vez mais aumenta a necessidade de Compartilhamento de informações, Interoperabilidade de sistemas Independência de plataforma Independência de linguagem O papel dos Middlewares: Independência e portabilidade (CORBA, DCOM, RMC, RMI). Introdução Programa 2 Programa 1 Dado 1 Dado 2 Dado A XML HTTP XML Dado 3 Dado B Dado C Modelo de Aplicação RMC Introdução Web Service é a tecnologia ideal para comunicação entre sistemas. A comunicação entre os serviços é padronizada, possibilitando a independência de plataforma e de linguagem de programação. Definição Segundo Menéndez, há uma definição bastante simples para um Web Services: É uma aplicação que aceita solicitações de outros sistemas através da Internet. Segundo James Snell, Web Services são interfaces acessíveis de rede, para as funcionalidades da aplicação, que utilizam em sua construção tecnologias padrões da Internet. Web Services são serviços que visam facilitar o processamento distribuído em sistemas heterogêneos. Estes serviços são baseados em um conjunto de padrões da Internet definidos pelo W3C Definição São sistemas distribuídos Funcionam na Internet Vários envolvem achar (navegar) o que se quer antes de usar Muitos envolvem organizações diferentes ◦ Não temos controle sobre a plataforma, linguagem, etc. do outro lado ◦ O outro lado é essencialmente um sistema legado no qual não podemos mexer Definição Arquiteturas MainFrames Terminal Mainframe Terminal [ Dados + Lógica + Interface ] Terminal Arquiteturas Arquitetura Cliente-Servidor [ Dados ] PC Cliente PC Cliente PC Cliente [ Lógica + Interface ] Servidor c/ SGBD Arquiteturas Browser Web Browser Web Arquitetura em n-camadas Internet Servidor Web [ Interface ] SGBD Servidor de Aplicação [ Lógica ] [ Dados ] Arquitetura SOA • SOA – Service Oriented Architecture – Um serviço é uma função bem definida, autocontida e que não depende do estado ou contexto de outros serviços; • Os Web Services podem ser utilizados para implementar arquiteturas orientadas a serviços, as Service-Oriented Architectures (SOA). • Neste modelo de arquitetura os principais requisitos viram serviços e são acessados por outros serviços, modularizando e aumentando a coesão dos componentes da aplicação XML Oferece um formato ASCII para trocar qualquer tipo de informação estruturada Usa o “estilo” HTML de markup com tags ◦ <pessoa nome=”João”> <frutasFavoritas> <fruta>Manga</fruta> <fruta>Maçã</fruta> <fruta>Uva</fruta> </frutasFavoritas> </pessoa> Os tags podem ser definidos para criar uma “Aplicação XML”. SOAP SOAP é uma forma de fazer Remote Procedure Call (RPC) usando documentos XML SOAP O binding sobre HTTP, SMTP, etc. permite driblar firewalls com mais facilidade Qualquer outro protocolo de transporte pode ser usado SOAP WSDL WSDL é a sigla de (Web Service Description Language), padrão baseado em XML para descrever o serviço, onde ele traz os métodos do Web Service. WSDL Descrição/formato de mensagens que podem ser passadas ◦ Elementos <types>, <message> Semântica da passagem de mensagens (Requestonly, request-response, response-only) ◦ Dentro do elemento <portType> Uma codificação usando um transporte particular ◦ Elemento <binding> O endpoint do serviço (uma URL) ◦ Dentro do elemento <service> Veremos um exemplo logo WSDL <!– Exemplo de um WSDL XML --> <!– Serviço disponibilizado pela classe Somador--> <wsdl:definitions targetNamespace=“Somador"> <wsdl:documentation> Comentários sobre o serviço </wsdl:documentation> ... <!– Descritor da chamada do método Soma --> <wsdl:message name="somaRequest"> <!– Parâmetros do método--> <wsdl:part name="valor1" type="xsd:int"/> <wsdl:part name="valor2" type="xsd:int"/> </wsdl:message> <!– Descritor do retorno do método Soma--> <wsdl:message name="somaResponse"> <!– Retorno do método--> <wsdl:part name="somaReturn" type="xsd:int"/> </wsdl:message> UDDI Universal Description, Discovery and Integration (UDDI) disponibiliza um registro (baseado em XML’s). A partir deste registro, os sistemas podem divulgar seus serviços. UDDI A especificação UDDI define: ◦ APIs SOAP utilizadas para publicar e obter informações de um registro UDDI ◦ Esquemas XML do modelo de dados do registro e do formato das mensagens SOAP ◦ Definições WSDL das APIs SOAP ◦ Definições de registro UDDI (modelos técnicos tModels) de diversos sistemas de identificação e categorização, que podem ser utilizados para identificar e categorizar registros UDDI Caso de Estudo Construiremos uma calculadora usando um Web Service. Ferramentas utilizadas: Apache Tomcat 7.0.14 ◦ Web Server Infra-estrutura que oferece suporte a pedidos e respostas HTTP. ◦ Web Container Componente que oferece suporte ao ciclo de vida de um servlet. AXIS (Apache eXtensible Interaction System) ◦ É um framework de código aberto, baseado em linguagem Java, utilizado para construção de web services através do protocolo SOAP. ◦ Com as ferramentas do Axis, a criação e publicação de web services, além da criação de clientes de acesso se torna simplificada. Caso de Estudo public class Calculadora { public int somar(int numA, int numB) { return numA + numB; } public int subtrair(int numA, int numB) { return numA - numB; } public int multiplicar(int numA, int numB) { return numA * numB; } } public int dividir(int numA, int numB) { if(numB != 0) return numA / numB; return 0; } Bibliografia Robert Richards - Pro PHP XML and Web Services, 2006 Nicolescu Matthieu – Web Services,2003 James Snell – Programming Web Services with SOAP Pablo Dal´Oglio – PHP5 e Web services, 2006 DEITEL, H. M. et al. XML: Como Programar, 2003. Andrés Ignácio Martínez Menéndez. Uma ferramenta de apoio ao desenvolvimento de Web Services. Dissertação de Mestrado, Universidade Federal de Campina Grande, curso de PósGraduação em Informática, 2002.