Programação g ç Cliente em Sistemas Web WEBSERVICES Cap 18 18. - Sistemas distribuídos e serviços web em Deitel Deitel, H H.M, M Sistemas Operacionais, 3 ª edição, Pearson Prentice Hall, 2005 Fonte: Rodrigo Rebouças de Almeida Arquiteturas - Histórico • MainFrames Terminal Mainframe T Terminal i l [ Dados + Lógica + Interface ] Terminal A it t Arquiteturas - Histórico Hi tó i • Arquitetura Cliente-Servidor PC [ Dados ] Cliente PC Cliente PC [ Lógica + Interface ] Cliente Servidor c/ SGBD Arquiteturas - Histórico • Arquitetura em n-camadas Browser o se Web eb Browser Web Internet Servidor Web [ Interface ] SGBD Servidor de Aplicação [ Lógica ] [ Dados ] O que é um Web W b Service? S i ? • Um Web Service é um ponto de acesso a funcionalidade que pode ser: – Localizado dinamicamente – Ter sua interface descoberta automaticamente, porque o serviço sabe se descrever – Ser chamado na Web W b services Web i • Se fundamenta basicamente em três tecnologias: – Web Services Description Language (WSDL) • Define a interface de acesso ao serviço – Simple Object Access Protocol (SOAP) • Um protocolo baseado em XML. Permite que os clientes se comuniquem com os provedores de serviço. – Universal Description, Description Discovery and Integration (UDDI) • Permite Web services registrarem suas características, permitindo que outras aplicações as encontrem. W b services, Web i A Arquitetura it t 3 - Provê serviço Serviço cliente << SOAP >> << SOAP >> Provedor de serviço << SOAP >> 1 - Registra-se 2 - Busca serviço i Serviço de diretório SOAP • Simple Object Access Protocol – Define uma forma de transferir documentos XML através da Internet; – Aplicações cliente se comunicam com Web services usando SOAP como protocolo; – SOAP define um envelope para transmissão de mensagens oferece regras para representar mensagens, “remote procedure calls” (RPCs); SOAP – É o padrão para troca de mensagens usando XML; – Desenvolvido sob a supervisão da W3C; – Permite a transferência de mensagens através de protocolos t l de d alto lt nível, í l como HTTP e SMTP; SMTP – É mais usado sobre HTTP, pois consegue atravessar firewalls! SOAP A utilização do SOAP permite a não reimplementação de um sistema web já existente. Basta fazer o sistema existente e o módulo de acesso a Internet conversarem usando d SOAP e descrever d os dados em XML SOAP Integração entre aplicações dentro de um domínio administrativo Parser XML PC PC Cliente Cliente Internet XML SOAP HTML XML Servidor de Aplicação WSDL • Web Service Description Language – É uma linguagem li XML para d descrever W Web b services; – Segue um conceito parecido da “Interface Definition Language” (IDL) usado em CORBA; – Descreve detalhes como definição de tipos de dados, operações suportadas pelo Web service, f formato t das d mensagens, endereço d de d rede d d do W Web b service, etc. WSDL Através do WSDL podemos interligar um Sistema Web integrado com os demais fornecedores, por exemplo. WSDL << SOAP >> Sistema Web Fornecedor A WSDL Internet << SOAP >> WSDL << SOAP >> Fornecedor B WSDL Fornecedor C Último detalhe... Como descobrir novos fornecedores no âmbito do sistema Web?? UDDI • Universal Description, Discovery and Integration • Provê um mecanismo para registro e ç de Web services;; localização • É um diretório que contém vários Web services registrados, i t d onde d associamos i um nome a um serviço, como um Web service. UDDI • Permite que empresas registrem seus serviços e possam interagir com outras empresas interessadas. • UDDI é um Webservice baseado em XML e SOAP; • A interação com um serviço UDDI é baseado em interfaces SOAP prédefinidas. UDDI • Um registro UDDI é organizado em duas entidades fundamentais: – businessEntity : provê informações a sobre a empresa que está publicando o serviço. Contém um ou mais elementos businessService; – businessService: representa um serviço provido pela businessEntity; – Cada entidade é identificada por uma chave única, permitindo que haja referências a serviços, definições WSDL; UDDI O Sistema Web pode encontrar outros Fornecedores através de um serviço UDDI. UDDI Service Registram-se Fornecedores XYZ Busca novos fornecedores Sistema Web WSDL << SOAP >> WSDL Internet << SOAP >> Fornecedor A WSDL Fornecedor B << SOAP >> WSDL Fornecedor C UDDI O Sistema Web pode encontrar outros Fornecedores através de um serviço UDDI. UDDI Service Registram-se Fornecedores XYZ Com nica se com no Comunica-se novos os fornecedores <<SOAP>> Sistema Web WSDL << SOAP >> WSDL Internet << SOAP >> Fornecedor A WSDL Fornecedor B << SOAP >> WSDL Fornecedor C Ferramentas - Como desenvolver Web Services? • Ferramentas da Sun – JWSDP com muitas APIs: • JAXP, JAXB, JAX-RPC, SAAJ, JAXR, JWSDL • Ferramentas da IBM • Ferramentas da Microsoft (.NET) • Ferramentas da Apache p – Axis do projeto Apache • WSDL2Java converte WSDL para Java F t de Fontes d consulta lt • Axis User’s Guide http://ws.apache.org/axis/java/user guide.html http://ws.apache.org/axis/java/user-guide.html • http://java.sun.com/webservices • developers.ibm.com/webservices • JavaWorld: www.javaworld.com • webservices.org webservices org • www.uddi.org g • xml.apache.org