Web Services (Introdução)
Agenda Introdução SOA (Service Oriented Architecture) Web Services Arquitetura XML SOAP WSDL UDDI Conclusão
Introdução Comunicação distribuída Estratégias que permitem a comunicação entre aplicações distribuídas. Temos várias arquiteturas para este processo de comunicação (relembre as Arquiteturas para Sistemas Distribuídos): Um pouco de História Sockets / MultiThread RMI - Remote Method Invocation CORBA Commom Object Request Broker Architecture EJB Enterprise Java Bean Web Services
SOA
Service Oriented Architecture (SOA) SOA é uma arquitetura que representa funcionalidades do software como serviços É uma caracterização de sistemas distribuídos, que visa organizar aplicações e sua infraestrutura, através de um conjunto de interações de serviços que são acessados através de interfaces e protocolos padronizados, tendo como foco processos de negócio. Já existiam tecnologias para SOA Ex.: CORBA, RMI, etc... Interoperabilidade é muito importante Padronização Fraco acoplamento
Service Oriented Architecture (SOA) Neutro à tecnologia Invocado através de tecnologias padrões (protocolos, mecanismos de publicação e de busca) amplamente aceitas; Fracamente acoplado Não requer o conhecimento prévio de qualquer estrutura interna presente no lado do cliente ou do serviço; Localização transparente Informações sobre a definição e localização são publicadas em um repositório e estão acessíveis a uma variedade de clientes, independente da localizações dos mesmos
Service Oriented Architecture boa arquitetura 3-tier service troca de mensagens Interface desacoplada da lógica de processamento dos dados Serviço Central Compras UI Data Layer Business Layer Service Façade Presentation Layer Dados e Lógica Negócio encapsulados por uma Web Service Façade Web Service Standards permitem ligações cross-platform
Web Services
Serviços Web São compostos por objetos distribuídos Fazem a integração de aplicações distribuídas Utilizam a infraestrutura da Internet Os documentos e protocolos usam o XML Serviços são especificados em WSDL Usam o protocolo SOAP para troca de mensagens Usam a UDDI para publicação e localização dos serviços Exemplo: comércio eletrônico, serviços de busca, etc
Definição de Web Services Um Web Service é: Qualquer serviço que é disponibilizado através da web. (Lembre-se, serviços que respondem à Arquitetura de Sistemas Distribuídos) Qualquer serviço que possibilita duas aplicações de computador trocarem dados. Principalmente, mas não exclusivamente Baseado em: XML para codificação de dados HTTP para transporte de dados Um documento XML transmitido remotamente e mapeado para um programa executável.
Definição de Web Services Um Web Service é: Tecnologia de chamada remota de objetos Fornecem a infraestrutura para criação de aplicações distribuídas (web ou não) Permitem a criação de pequenos módulos de código reutilizáveis e disponibilizados para construção de aplicações similar ao LEGO Utiliza protocolos Web como meio de transporte e comunicação Alto grau de abstração em relação a linguagens de programação e plataformas de hardware / software
Definição de Web Services Comunicação entre aplicações de WS usam 4 camadas que empacotam a requisição e a resposta entre o servidor e o cliente. XML possibilita estabelecer objetos, métodos, parâmetros, dados e tipos de dados SOAP protocolo que estabelece a comunicação entre os ambientes WSDL descreve o serviço (XML) UDDI representa service broker. Contém as descrições dos WS. UDDI WSDL SOAP XML
Arquitetura Web Services Registro UDDI Legenda: 1. Publicação do WSDL 2. Pesquisando Web services 3. Retorna WSDL do serviço 4. Interação cliente-serviço usando SOAP WSDL 3 2 WSDL 1 Consumidor Serviço SOAP 4 Provedor Serviços
Arquitetura Web Services O processo para geração de um Web Service se resume em três passos: 1. Publicação 2. Localização 3. Consumação
Arquitetura Web Services Service Provider Responsável por prover o serviço. A técnica de troca de mensagens com o Service Requester ocorre com o uso de SOAP, um XML que contém dados sobre a requisição e os resultados encontrados. Service Requester Responsável por consumir o serviço. Efetua a troca de mensagens com o Service Provider com o uso do SOAP. Os métodos acessíveis no Web Service estão especificados no Service Broker através do uso da tecnologia WSDL, outro XML que prove estes dados. Service Broker Responsável por publicar e divulgar o serviço. O Service Provider disponibiliza as informações de seu Web Service ao Service Broker, o qual irá registrar este serviço em um diretório público e gerenciá-lo. Este diretório possui um nome, UDDI, que teoricamente deveria ser uma espécie de Google aos consumidores de Web Services mas que na prática ainda é pouco usual. Seu uso é vital para troca de dados WSDL.
Arquitetura Web Services Busca do serviço Retorno da descrição WSDL Agente diretório serviços Publicação do Serviço Client que necessita do Serviço UDDI (Descoberta) SOAP (Interação) WSDL (Descrição) Provedor de Web Services
Protocolos de Web Services Consumidor do Serviço Encontre um serviço http://www.uddi.org HTML com referência para WSDL Como conversamos (WSDL) http://servico.com/?wsdl Descrições de serviço (XML) Deixe-me falar com você (SOAP) http://servico.com/svc1 Agente diretório serviços Serviço Web Resposta do serviço (XML)
Arquitetura Web Services SOAP Message / XML Transport HTTP(S) Discovery UDDI Description WSDL Implementation.NET/J2EE Business Logic Data
Arquitetura Web Services
Invocação de Web Services Client (Ex.: CalcClient.java) SOAP Binding Java Java to SOAP <soap:envelope <soap:body> <add> calculator.add(10, <i1>10</i1> 5) <i2>5</i2> </add> </soap:body> </soap:envelope> SOAP Request add(10, 5) Web Server (Ex.: Apache Tomcat) Web Service Toolkit (Ex.: Apache Axis) SOAP to Java Web Service Code (Ex.: Calculator.java) Java
Por que utilizar Web Services? Dois fatores chave: Ubiqüidade Facilidade de uso Interoperável: Neutro em relação a SO e linguagem Integração Java &.NET : simples e barata Todo mundo dá suporte ou irá dar a Serviços Web: Necessário dar suporte a Serviços Web para facilitar Integração Não-invasivos(impactante): Baseados em protocolos ubiqüos: HTTP/SMTP Complementam tecnologias já existentes
Usuário, Cliente Web Service Verifica as informações do cartão crédito do cliente 4 Etapa 2 - Usuário Informa o número do cartão Etapa1 - Usuário deve informar: Origem, Destino, Data Início e Fim 1 7 Servidor 1, provedor serviço 5 6 Web 2 3 Servidor A Empresa Aérea A Servidor B Empresa Aérea B...... Servidor Banco (Serviço de Validação Cartão de crédito) Servidor N Empresa Aérea N
Fontes de consulta http://java.sun.com/webservices developers.ibm.com/webservices JavaWorld: www.javaworld.com webservices.org www.uddi.org xml.apache.org http://www.tusc.com.au/tutorial/html/chap9. html Créditos: Para essa apresentação foram usados, parcialmente, textos /slides de: Paulo Manoel Mafra, Marcelo Iury, Adriano Teixeira de Souza.