Introdução Serviços Web WSDL SOAP UDDI Ferramentas. Serviços Web. (Web Services) Emerson Ribeiro de Mello



Documentos relacionados
Serviços Web: Arquitetura

Programação Cliente em Sistemas Web

UNIVERSIDADE. Sistemas Distribuídos

Web Services. (Introdução)

Web Services. Integração de aplicações na Web. Sistemas Distribuídos

UFG - Instituto de Informática

Introdução a Web Services

Sistemas Distribuídos

Web services. Um web service é qualquer software que está disponível através da Internet através de uma interface XML.

SOA Introdução. SOA Visão Departamental das Organizações

Service Oriented Architecture (SOA)

Web Services. Autor: Rômulo Rosa Furtado

3 Serviços na Web (Web services)

INTEGRAÇÃO DE APLICAÇÕES UTILIZANDO WEB SERVICE 1. Kellen Kristine Perazzoli 2 ; Manassés Ribeiro 3

A Figura... mostra a arquitetura técnica de serviços na Web

STD29006 Sistemas Distribuídos

SOAP. Web Services & SOAP. Tecnologias de Middleware 2004/2005. Simple Object Access Protocol. Simple Object Access Protocol SOAP

2 Conceitos relativos a Web services e sua composição

Serviços Web: Introdução

Manual de Integração. Tecnologia: WebServices SOAP XML. Área: CDC. Produto: CDC Pessoa Física NFE (RFB) Versão: 1.0. Autor: Angelo Bestetti Junior

Kassius Vargas Prestes

Grupo I [7v] 1. [1,0] Apresente o conteúdo do IDL relativo a este programa. Assuma PROGRAM=62015 e VERSION=1.

UNIVERSIDADE. Sistemas Distribuídos

PROGRAMA DE MBA em Gestão e Engenharia do Produto. O Produto Internet e suas Aplicações

Criando Web Services. Palestrante: Daniel Destro do Carmo

Integração de sistemas utilizando Web Services do tipo REST

MADALENA PEREIRA DA SILVA SLA Sociedade Lageana de Educação DCET Departamento de Ciências Exatas e Tecnológica

WSDL e UDDI. Pedro Miguel Martins Nunes WSDL. WSDL Exemplo prático Resumo UDDI. Serviço UDDI Estruturas de dados UDDI e WSDL API Resumo

Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços. Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena

Sistemas Distribuídos. Web Services. Edeyson Andrade Gomes.

PROGRAMAÇÃO SERVIDOR WEBSERVICES EM SISTEMAS WEB. Prof. Dr. Daniel Caetano

Manual de Integração. Tecnologia: WebServices SOAP XML. Área: CDC. Produto: CDC Estendida (Física) Versão: 1.0. Autor: Angelo Bestetti Junior

Introdução ao Modelos de Duas Camadas Cliente Servidor

Universidade Federal de Juiz de Fora Ciência da Computação Sistemas Distribuídos Professor Ciro Barbosa

tecnologias web e gestão de identidade

Estudo comparativo das API s JAX-RPC e JAXM na construção de Web Services

Sistemas Distribuídos Arquiteturas Middlewares

Intranets. FERNANDO ALBUQUERQUE Departamento de Ciência da Computação Universidade de Brasília 1.INTRODUÇÃO

Adriano Reine Bueno Rafael Barros Silva

Arquitetura Orientada a Serviço

Comunicando através da rede

Web Services e SOAP. Alexandre Zua CaldeiraTecnologias de Middleware 2006/ Faculdade de Ciências da Universidade de Lisboa

Arquitetura de Redes: Camadas de Protocolos (Parte I) Prof. Eduardo

Microsoft.NET. Desenvolvimento Baseado em Componentes

Nota Fiscal Paulista. Manual para Envio de Arquivo de Cupons Fiscais via Webservice GOVERNO DO ESTADO DE SÃO PAULO

Prática da Disciplina de Sistemas Distribuídos Serviços Web IFMA DAI Professor Mauro Lopes C. Silva

Programação para Internet Avançada. 4. Web Services. Nuno Miguel Gil Fonseca

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA

Service Oriented Architecture SOA

Web Services: Metodologias de Desenvolvimento Carlos J. Feijó Lopes José Carlos Ramalho Fevereiro de 2004

SOA - Service Oriented Architecture. Marcelo Canevello Ferreira

Disciplina Fundamentos de Redes. Introdução ao Endereço IP. Professor Airton Ribeiro de Sousa Outubro de 2014

CONCEITOS INICIAIS. Agenda A diferença entre páginas Web, Home Page e apresentação Web;

Sistemas Distribuídos Capítulos 3 e 4 - Aula 4

SOA na Prática Ricardo Limonta

REDES DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos

Web Services. Tópicos. Motivação. Tecnologias Web Service. Passo a passo Business Web Conclusão. Integração de aplicações SOAP, WSDL, UDDI, WSFL

Faculdade Integrada do Ceará FIC Graduação em Redes de Computadores

Java Enterprise Edition. by Antonio Rodrigues Carvalho Neto

Protocolos Hierárquicos

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

JXTA. Alessandro Vasconcelos Ferreira de Lima.

Minicurso Web Services com PHP

SISTEMAS DISTRIBUIDOS

FRANCISCO DE ASSIS DOS SANTOS JUNIOR. Web Services com JWSDP: melhorias no Servidor HelpNet e Implementação do Cliente

Arquitetura e Protocolos de Rede TCP/IP. Modelo Arquitetural

Anexo VI Edital nº 03361/2008. Projeto de Integração das informações de Identificação Civil. 1. Definições de interoperabilidade adotadas pela SENASP

4. Qual seria o impacto da escolha de uma chave que possua letras repetidas em uma cifra de transposição?

Arquiteturas, Padrões e Serviços para Geoprocessamento. Lúbia Vinhas 13/05/2008

Arquitetura de Rede de Computadores


Arquitetura de Redes de Computadores. Bruno Silvério Costa

Manual de Integração. Tecnologia: WebServices SOAP XML. Área: Serviços de Informação. Produto: CEP. Versão: 1.0. Autor: Angelo Bestetti Junior

Integração Orientada a Serviços

Sistemas Distribuídos

Sistemas Distribuídos

BC CORREIO SISTEMA DE CORREIO ELETRÔNICO DO BANCO CENTRAL DO BRASIL. Manual do Web Service

Desenvolvimento Cliente-Servidor 1

Capítulo 7 CAMADA DE TRANSPORTE

SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE. Aluno: Roberto Reinert Orientador: Everaldo A. Grahl

SISTEMAS DISTRIBUÍDOS

3. Explique o motivo pelo qual os protocolos UDP e TCP acrescentam a informação das portas (TSAP) de origem e de destino em seu cabeçalho.

SMTP, POP, IMAP, DHCP e SNMP. Professor Leonardo Larback

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido

Eduardo Bezerra. Editora Campus/Elsevier

Princípios de Sistemas Distribuídos. Tecnologias utilizadas em sistemas distribuídos Aula 5

Programação para a Internet. Prof. M.Sc. Sílvio Bacalá Jr sbacala@gmail.com

Sistemas Distribuídos

INFORMÁTICA FUNDAMENTOS DE INTERNET. Prof. Marcondes Ribeiro Lima

Transcrição:

1/39 Serviços Web (Web Services) Emerson Ribeiro de Mello Departamento de Automação e Sistemas Universidade Federal de Santa Catarina 22 de Maio de 2007

2/39 Arquitetura Orientada a Serviços Arquitetura Orientada a Serviços Definição É uma caracterização de sistemas distribuídos, que visa organizar aplicações e sua infra-estrutura, 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.

3/39 O que são serviços O que são serviços Serviços apresentam uma forma diferente de modularidade Representam funções de negócios completas Eles são reutilizados e empregados em novas transações, não em um nível de um programa individual ou até mesmo de uma aplicação, mas no nível da empresa, ou até mesmo através de empresas. Serviços são desenvolvidos para acessos originados por programas e não por usuários finais Aplicação cliente é um programa que invoca os serviços É possível alterar a lógica do serviço sem que haja necessidade de alterar o cliente

4/39 O que são serviços O que são serviços Neutro à tecnologia Invocado através de tecnologias padrões (protocolos, mecanimos 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

Definição Serviços Web Aplicativo hábil para processar documentos XML recebidos através de uma combinação de protocolos transporte e de aplicação É um tipo específico de serviço identificado através de um identificador uniforme de recursos, ou do inglês, URI. São independentes de linguagens de programação, sistemas operacionais e das arquiteturas de máquinas Utiliza padrões abertos e amplamente difundidos, como o XML e o HTTP Tecnologia ideal para que as relações de negócios entre empresas (B2B) sejam estabelecidas de maneira simples e dinâmica 5/39

Definição Serviços Web Aplicativo hábil para processar documentos XML recebidos através de uma combinação de protocolos transporte e de aplicação É um tipo específico de serviço identificado através de um identificador uniforme de recursos, ou do inglês, URI. São independentes de linguagens de programação, sistemas operacionais e das arquiteturas de máquinas Utiliza padrões abertos e amplamente difundidos, como o XML e o HTTP Tecnologia ideal para que as relações de negócios entre empresas (B2B) sejam estabelecidas de maneira simples e dinâmica 5/39

6/39 Definição Serviços Web Principal ponto O uso de padrões é o principal atrativo dos Serviços Web XML e WSDL Para descrição de documentos, mensagens SOAP Para transporte das mensagens UDDI Para localização e publicação de serviços

6/39 Definição Serviços Web Principal ponto O uso de padrões é o principal atrativo dos Serviços Web XML e WSDL Para descrição de documentos, mensagens SOAP Para transporte das mensagens UDDI Para localização e publicação de serviços

7/39 Definição Serviços Web São auto contidos Não implica no uso de aplicativos adicionais no cliente ou no provedor No cliente basta uma linguagem de programação que dê suporte ao XML e ao HTTP No provedor só é necessário um servidor de aplicação (Ex: Apache Tomcat) São auto descritivos Cliente e provedor só se preocupam com o formato e conteúdo das mensagens a serem trocadas Abstraindo-se dos detalhes de implementação (fraco acoplamento)

Definição Serviços Web Objetos distribuídos Objetos distribuídos = CORBA, RMI, DCOM Semelhanças linguagem para descrição de interfaces mecanismos para registro e localização de objetos Diferenças Facilidade de estado Ciclo de vida 1 Através de um pedido, uma fábrica cria uma instância de um objeto 2 O cliente executa operações no objeto instanciado 3 Em algum momento posterior, o cliente remove a instância do objeto que não será mais utilizado O uso do HTTP permite aos Serviços Web atravessar firewalls 8/39

Definição Serviços Web Objetos distribuídos Objetos distribuídos = CORBA, RMI, DCOM Semelhanças linguagem para descrição de interfaces mecanismos para registro e localização de objetos Diferenças Facilidade de estado Ciclo de vida 1 Através de um pedido, uma fábrica cria uma instância de um objeto 2 O cliente executa operações no objeto instanciado 3 Em algum momento posterior, o cliente remove a instância do objeto que não será mais utilizado O uso do HTTP permite aos Serviços Web atravessar firewalls 8/39

9/39 Arquitetura Arquitetura de um Serviço Web Endereço Combinação entre protocolo e endereço de rede, utilizado para que um cliente possa acessar um serviço Documento XML Documento que contém informações específicas à aplicação Envelope Encapsulamento que garante que documentos XML sejam processados de forma correta, separando as informações relacionadas a comunicação, dos dados em si

10/39 Arquitetura Serviços Web Serviços Web surgiram para integrar aplicações existentes, não para substituí-las 1 Escolher uma aplicação existente, ou desenvolver uma nova (p.e. em Java) 2 Descrever a interface do serviço para essa aplicação utilizando uma linguagem padrão Web Services Description Language (WSDL) 3 Disponibilizar esse documento (de alguma forma) Universal Description, Discovery and Integration (UDDI) 4 Troca de mensagens XML SOAP

10/39 Arquitetura Serviços Web Serviços Web surgiram para integrar aplicações existentes, não para substituí-las 1 Escolher uma aplicação existente, ou desenvolver uma nova (p.e. em Java) 2 Descrever a interface do serviço para essa aplicação utilizando uma linguagem padrão Web Services Description Language (WSDL) 3 Disponibilizar esse documento (de alguma forma) Universal Description, Discovery and Integration (UDDI) 4 Troca de mensagens XML SOAP

11/39 Arquitetura Colaboração na arquitetura dos Serviços Web 2. Consulta 1. Publica UDDI 3. Obtém a descrição WSDL do serviço WSDL Cliente 4. Efetua a invocação Serviço Web

12/39 Web Services Descritpion Language Descrição dos Serviços Quais são os serviços oferecidos pelo negócio? Como invocar os serviços? Quais as informações necessárias para invocar um serviço? Como cliente e servidor sabem como processar as requisições? Em qual formato o serviço deve enviar as informações para o cliente?

13/39 Web Services Descritpion Language WSDL Linguagem para descrição de interfaces Gramática em XML, extensível, para especificar interfaces de Serviços Web Operações disponíveis Tipos de dados Protocolos utilizados Localização do serviço Independente de plataforma e linguagem Representa um contrato entre o produtor e o consumidor Ambas as partes devem ter acesso ao mesmo documento WSDL para que estas possam interagir

14/39 Documento WSDL Documento WSDL Um documento WSDL é composto por três elementos principais definição dos tipos de dados especifica a estrutura e o conteúdo das mensagens operações abstratas descreve as operações que poderão ser executadas associação dos serviços especifica como mapear as operações nos protocolos de rede utilizados para o transporte Documento WSDL Tipos dos dados das mensagens Operações abstratas Associação dos Serviços Transporte

15/39 Documento WSDL Sub-elementos de um documento WSDL types Definição dos tipos de dados (Ex: inteiros, booleano, tipos compostos, etc.) messages Mensagens que um Serviço Web espera enviar ou receber operation Define como o serviço irá tratar os dados e como deverão ser retornados em uma resposta one-way Serviço recebe mensagem mas não envia resposta request-response Serviço recebe mensagem e envia resposta solicit-response Serviço envia mensagem e recebe resposta notification Serviço envia mensagem sem esperar por resposta

15/39 Documento WSDL Sub-elementos de um documento WSDL types Definição dos tipos de dados (Ex: inteiros, booleano, tipos compostos, etc.) messages Mensagens que um Serviço Web espera enviar ou receber operation Define como o serviço irá tratar os dados e como deverão ser retornados em uma resposta one-way Serviço recebe mensagem mas não envia resposta request-response Serviço recebe mensagem e envia resposta solicit-response Serviço envia mensagem e recebe resposta notification Serviço envia mensagem sem esperar por resposta

15/39 Documento WSDL Sub-elementos de um documento WSDL types Definição dos tipos de dados (Ex: inteiros, booleano, tipos compostos, etc.) messages Mensagens que um Serviço Web espera enviar ou receber operation Define como o serviço irá tratar os dados e como deverão ser retornados em uma resposta one-way Serviço recebe mensagem mas não envia resposta request-response Serviço recebe mensagem e envia resposta solicit-response Serviço envia mensagem e recebe resposta notification Serviço envia mensagem sem esperar por resposta

15/39 Documento WSDL Sub-elementos de um documento WSDL types Definição dos tipos de dados (Ex: inteiros, booleano, tipos compostos, etc.) messages Mensagens que um Serviço Web espera enviar ou receber operation Define como o serviço irá tratar os dados e como deverão ser retornados em uma resposta one-way Serviço recebe mensagem mas não envia resposta request-response Serviço recebe mensagem e envia resposta solicit-response Serviço envia mensagem e recebe resposta notification Serviço envia mensagem sem esperar por resposta

15/39 Documento WSDL Sub-elementos de um documento WSDL types Definição dos tipos de dados (Ex: inteiros, booleano, tipos compostos, etc.) messages Mensagens que um Serviço Web espera enviar ou receber operation Define como o serviço irá tratar os dados e como deverão ser retornados em uma resposta one-way Serviço recebe mensagem mas não envia resposta request-response Serviço recebe mensagem e envia resposta solicit-response Serviço envia mensagem e recebe resposta notification Serviço envia mensagem sem esperar por resposta

15/39 Documento WSDL Sub-elementos de um documento WSDL types Definição dos tipos de dados (Ex: inteiros, booleano, tipos compostos, etc.) messages Mensagens que um Serviço Web espera enviar ou receber operation Define como o serviço irá tratar os dados e como deverão ser retornados em uma resposta one-way Serviço recebe mensagem mas não envia resposta request-response Serviço recebe mensagem e envia resposta solicit-response Serviço envia mensagem e recebe resposta notification Serviço envia mensagem sem esperar por resposta

15/39 Documento WSDL Sub-elementos de um documento WSDL types Definição dos tipos de dados (Ex: inteiros, booleano, tipos compostos, etc.) messages Mensagens que um Serviço Web espera enviar ou receber operation Define como o serviço irá tratar os dados e como deverão ser retornados em uma resposta one-way Serviço recebe mensagem mas não envia resposta request-response Serviço recebe mensagem e envia resposta solicit-response Serviço envia mensagem e recebe resposta notification Serviço envia mensagem sem esperar por resposta

16/39 Documento WSDL Sub-elementos de um documento WSDL porttype Agrupamento lógico de operações (elemento operation) análogo a uma definição de objeto que contém múltiplos métodos binding Descreve como os elementos messages e operation serão mapeados em um protocolo de transporte port Combinação entre o elemento binding e endereço de rede, provendo um endereço único para acessar um serviço service Coleção de elementos port

16/39 Documento WSDL Sub-elementos de um documento WSDL porttype Agrupamento lógico de operações (elemento operation) análogo a uma definição de objeto que contém múltiplos métodos binding Descreve como os elementos messages e operation serão mapeados em um protocolo de transporte port Combinação entre o elemento binding e endereço de rede, provendo um endereço único para acessar um serviço service Coleção de elementos port

16/39 Documento WSDL Sub-elementos de um documento WSDL porttype Agrupamento lógico de operações (elemento operation) análogo a uma definição de objeto que contém múltiplos métodos binding Descreve como os elementos messages e operation serão mapeados em um protocolo de transporte port Combinação entre o elemento binding e endereço de rede, provendo um endereço único para acessar um serviço service Coleção de elementos port

16/39 Documento WSDL Sub-elementos de um documento WSDL porttype Agrupamento lógico de operações (elemento operation) análogo a uma definição de objeto que contém múltiplos métodos binding Descreve como os elementos messages e operation serão mapeados em um protocolo de transporte port Combinação entre o elemento binding e endereço de rede, provendo um endereço único para acessar um serviço service Coleção de elementos port

16/39 Documento WSDL Sub-elementos de um documento WSDL porttype Agrupamento lógico de operações (elemento operation) análogo a uma definição de objeto que contém múltiplos métodos binding Descreve como os elementos messages e operation serão mapeados em um protocolo de transporte port Combinação entre o elemento binding e endereço de rede, provendo um endereço único para acessar um serviço service Coleção de elementos port

17/39 Documento WSDL Elementos que compõem um documento WSDL service port port port porttype porttype porttype operation operation operation operation. operation.... operation. operation operation operation binding... binding binding... binding binding... binding Endereço de rede Endereço de rede Endereço de rede

18/39 Exemplo de documento WSDL Exemplo WSDL: Calculadora.java 1 public class Calculadora{ 2 3 public int soma(int i1, int i2){ 4 return i1 + i2; 5 } 6 7 public int subtracao(int i1, int i2){ 8 return i1 - i2; 9 } 10 }

Exemplo de documento WSDL Documento WSDL elemento message 1 <wsdl:definitions targetnamespace="http://localhost/ Calculadora.jws"> 2 3 <wsdl:message name="subtracaorequest"> 4 <wsdl:part name="i1" type="xsd:int"/> 5 <wsdl:part name="i2" type="xsd:int"/> 6 </wsdl:message> 7 8 <wsdl:message name="somarequest"> 9 <wsdl:part name="i1" type="xsd:int"/> 10 <wsdl:part name="i2" type="xsd:int"/> 11 </wsdl:message> 12 13 <wsdl:message name="subtracaoresponse"> 14 <wsdl:part name="subtracaoreturn" type="xsd:int"/> 15 </wsdl:message> 16 17 <wsdl:message name="somaresponse"> 18 <wsdl:part name="somareturn" type="xsd:int"/> 19 </wsdl:message> 19/39

20/39 Exemplo de documento WSDL Documento WSDL elemento operation 20 <wsdl:porttype name="calculadora"> 21 22 <wsdl:operation name="soma" parameterorder="i1 i2"> 23 <wsdl:input message="impl:somarequest" name=" somarequest"/> 24 <wsdl:output message="impl:somaresponse" name=" somaresponse"/> 25 </wsdl:operation> 26 27 <wsdl:operation name="subtracao" parameterorder="i1 i2"> 28 <wsdl:input message="impl:subtracaorequest" name=" subtracaorequest"/> 29 <wsdl:output message="impl:subtracaoresponse" name=" subtracaoresponse"/> 30 </wsdl:operation> 31 32 </wsdl:porttype>

21/39 Exemplo de documento WSDL Documento WSDL elemento service 33 <wsdl:service name="calculadoraservice"> 34 35 <wsdl:port binding="impl:calculadorasoapbinding" name ="Calculadora"> 36 <wsdlsoap:address location="http://localhost/ Calculadora.jws"/> 37 </wsdl:port> 38 39 </wsdl:service> 40 41 </wsdl:definitions>

22/39 Definição SOAP - Protocolo para troca de mensagens Baseado em XML, encapsula chamadas remotas de procedimento (RPC) sobre outros protocolos Opera sobre protocolos da camada de aplicação (pilha TCP/IP) mas geralmente é tratado como um protocolo de transporte Geralmente adota-se SOAP sobre o protocolo HTTP Mas pode-se usar sobre o SMTP, TCP, UDP, etc.

23/39 Definição Especificação do SOAP A especificação do SOAP é dividida em três partes principais: Envelope SOAP Documento XML formado por elementos que definem os dados que serão trocados entre as aplicações Regras de codificação dos dados Definem como as instâncias de tipos de dados definidos no nível de aplicação devem ser codificadas Convenções RPC Define convenções para representar RPC através de mensagens SOAP

Mensagem SOAP Mensagem SOAP Uma mensagem SOAP consiste basicamente em Envelope Elemento raiz no documento XML que representa a mensagem SOAP Header (opcional) Oferece mecanismos para estender a mensagem Informações de roteamento, segurança, coordenação Body Document - A RPC em si faz parte deste elemento Fault (opcional) SOAP Envelope SOAP Header Header Block... Header Block SOAP Body Body Block... Body Block 24/39

25/39 Mensagem SOAP Exemplo de mensagem SOAP 1 <soapenv:envelope 2 xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope"> 3 <soapenv:body> 4 <m:cidade xmlns:m="http://schemas.exemplo.br/cidade"> 5 <m:nhabitantes>200000</m:nhabitantes> 6 </m:cidade> 7 <n:hotel xmlns:n="http://schemas.exemplo.br/hotel"> 8 <n:estrelas>5</n:estrelas> 9 <n:bairro>centro</n:bairro> 10 </n:hotel> 11 </soapenv:body> 12 </soapenv:envelope>

26/39 Mensagem SOAP Roteamento de mensagens No cabeçalho (header) da mensagem SOAP podem ser definidas informações específicas para nós SOAP intermediários (roteadores SOAP) SOAP Intermediario 1 SOAP Destinatario SOAP Emissor Intermediario 2

27/39 Exemplo: Usando SOAP sobre o HTTP Cabeçalho HTTP do pedido POST /axis/calculadora.jws HTTP/1.0 Content-Type: text/xml; charset=utf-8 Accept: application/soap+xml, application/dime, multipart/related, text/* User-Agent: Axis/1.1 Host: 127.0.0.1 Cache-Control: no-cache Pragma: no-cache SOAPAction: "" Content-Length: 423

28/39 Exemplo: Usando SOAP sobre o HTTP Formato do pedido SOAP <?xml version="1.0" encoding="utf-8"?> <soapenv:envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/xmlschema" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"> <soapenv:body> <soma soapenv:encodingstyle="http://schemas.xmlsoap.org/soap/encoding/"> <op1 xsi:type="xsd:int">10</op1> <op2 xsi:type="xsd:int">8</op2> </soma> </soapenv:body> </soapenv:envelope>

29/39 Exemplo: Usando SOAP sobre o HTTP Cabeçalho HTTP da resposta HTTP/1.1 200 OK Set-Cookie: JSESSIONID=7D9BD2428A5F16E7B5FD24C50F904A7A; Path=/axis Content-Type: text/xml;charset=utf-8 Date: Fri, 11 Jun 2004 13:12:45 GMT Server: Apache-Coyote/1.1 Connection: close

30/39 Exemplo: Usando SOAP sobre o HTTP Formato da resposta SOAP <?xml version="1.0" encoding="utf-8"?> <soapenv:envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/xmlschema" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"> <soapenv:body> <somaresponse soapenv:encodingstyle= "http://schemas.xmlsoap.org/soap/encoding/"> <somareturn xsi:type="xsd:int">18</somareturn> </somaresponse> </soapenv:body> </soapenv:envelope>

31/39 Introdução Localização dos Serviços Web Para efetuar uma chamada a um Serviço Web é necessário primeiramente conhecer sua interface, semântica de chamada e localização A disponibilização dessas informações pode ser feita de duas maneiras: Divulgação direta entre o provedor e os consumidores do serviço Através de um serviço de diretórios

32/39 Introdução UDDI Serviço para publicação e localização de serviços Publicação, Busca e Integração de Serviços Web Um diretório global de registros de Serviços Web, onde ficam disponibilizadas informações sobre as empresas fornecedoras de serviços Sua implementação consiste em diversos Serviços Web, que provêem uma interface para que os clientes possam interagir com as informações ali armazenadas

33/39 Introdução UDDI Dados e meta-dados dos Serviços Web são armazenados em diretórios UDDI (UDDI registry) E são associados a um identificador único, denominado, UDDI key UDDI key é criado de acordo com regras de classificação especificadas para cada organização Permite aos consumidores realizarem consultas mais granulares Ex: buscar por provedores que forneçam o serviço X dentro de uma determinada localização geográfica

34/39 Diretórios UDDI Diretórios UDDI Não armazenam somente informações relativas à implementação de um serviço É possível armazenar informações relacionadas diretamente à entidade que provê o serviço O modelo de dados do UDDI prevê os seguintes tipos: businessservice descrições sobre as funções de negócio do serviço businessentity informações sobre a organização detentora do serviço bindingtemplate informações técnicas do serviço tmodel outros atributos, como taxonomia geográfica, industrial, mas geralmente contém o WSDL que descreve o serviço

34/39 Diretórios UDDI Diretórios UDDI Não armazenam somente informações relativas à implementação de um serviço É possível armazenar informações relacionadas diretamente à entidade que provê o serviço O modelo de dados do UDDI prevê os seguintes tipos: businessservice descrições sobre as funções de negócio do serviço businessentity informações sobre a organização detentora do serviço bindingtemplate informações técnicas do serviço tmodel outros atributos, como taxonomia geográfica, industrial, mas geralmente contém o WSDL que descreve o serviço

35/39 Diretórios UDDI Implementações de diretórios UDDI A idéia inicial do UDDI: Diretório público de livre acesso para as organizações divulgarem seus serviços Porém, com a adoção dos Serviços Web para integrar aplicações dentro das próprias organizações, surgiu a necessidade de diretórios privados A especificação 3.0 do UDDI prevê os seguintes tipos de diretórios: privado diretório interno, isolado da rede pública afiliado somente clientes autorizados tem acesso ao diretório público acesso aberto e público ao diretório

35/39 Diretórios UDDI Implementações de diretórios UDDI A idéia inicial do UDDI: Diretório público de livre acesso para as organizações divulgarem seus serviços Porém, com a adoção dos Serviços Web para integrar aplicações dentro das próprias organizações, surgiu a necessidade de diretórios privados A especificação 3.0 do UDDI prevê os seguintes tipos de diretórios: privado diretório interno, isolado da rede pública afiliado somente clientes autorizados tem acesso ao diretório público acesso aberto e público ao diretório

36/39 Ferramentas de desenvolvimento Ferramentas de desenvolvimento Diversas empresas estão provendo ferramentas de desenvolvimento para Serviços Web Apache, Sun, IBM, Microsoft, BEA, etc. Diversas linguagens de programação já apresentam suporte ao Serviços Web Java, C++, C#, PHP, Perl, Python Vamos nos conter em duas ferramentas baseadas em Java Java Web Services Developer Pack JWSDP Apache Axis

Ferramentas de desenvolvimento Java Web Services Developer Pack Kit para construção, implantação e para testes de Web Services, assim como para aplicações Web e baseadas em XML Provê implementações para: WSDL, SOAP e UDDI Contém JAXP - Java API for XML Processing JAXR - Java API for XML Registries JAX-RPC - Java API for XML-based RPC SAAJ - SOAP with Attachments API for Java Novo projeto A SUN substituiu o JWSDP pelo projeto GlassFish, sendo este um projeto de código aberto e com participação da comunidade 37/39

Ferramentas de desenvolvimento Java Web Services Developer Pack Kit para construção, implantação e para testes de Web Services, assim como para aplicações Web e baseadas em XML Provê implementações para: WSDL, SOAP e UDDI Contém JAXP - Java API for XML Processing JAXR - Java API for XML Registries JAX-RPC - Java API for XML-based RPC SAAJ - SOAP with Attachments API for Java Novo projeto A SUN substituiu o JWSDP pelo projeto GlassFish, sendo este um projeto de código aberto e com participação da comunidade 37/39

Ferramentas de desenvolvimento Apache Axis Axis basicamente uma implementação SOAP para construção de clientes e servidores Possui um servidor de aplicação pequeno e simples Pode ser utilizado em conjunto com o Tomcat Grande suporte ao WSDL Ferramenta para WSDL Java e Java WSDL Ferramenta para monitoramente de pacotes TCP/IP Axis2 Aprenderam algumas lições com o Axis1 e isso tornou o Axis2 mais robusto e modular Fica mais fácil adicionar novas funcionalidades Porém, o desenvolvimento de uma simples aplicação ficou um pouco mais complexo se comparado com o Axis1 Já possui implementações para as especificações de segurança, coordenação, etc. 38/39

Ferramentas de desenvolvimento Apache Axis Axis basicamente uma implementação SOAP para construção de clientes e servidores Possui um servidor de aplicação pequeno e simples Pode ser utilizado em conjunto com o Tomcat Grande suporte ao WSDL Ferramenta para WSDL Java e Java WSDL Ferramenta para monitoramente de pacotes TCP/IP Axis2 Aprenderam algumas lições com o Axis1 e isso tornou o Axis2 mais robusto e modular Fica mais fácil adicionar novas funcionalidades Porém, o desenvolvimento de uma simples aplicação ficou um pouco mais complexo se comparado com o Axis1 Já possui implementações para as especificações de segurança, coordenação, etc. 38/39

39/39 Ferramentas de desenvolvimento Próxima aula... Assunto Desenvolvendo um Serviço Web Local Laboratório LCITIC Data 29/05/2007 Hora 15:00