Vous êtes sur la page 1sur 25
WEB SERVICES Uma visão geral da tecnologia 1
WEB SERVICES
Uma visão geral da tecnologia
1
Definição Web Service: “Um web service é uma aplicação identificada por uma URI (Uniform Resource

Definição

Web Service:

“Um web service é uma aplicação identificada por uma URI (Uniform Resource Identifier), cujas interfaces públicas e características são descritas e definidas utilizando XML. Estas definições podem ser descobertas por outros sistemas. Estes sistemas podem, então, interagir com o web service conforme prescrito por sua definição, usando mensagens XML sobre protocolos Internet.”

Fonte: W3C Web Services Glossary

http://www.w3.org/TR/2002/WD-ws-gloss-20021114/

2

XML sobre protocolos Internet.” Fonte: W3C Web Services Glossary http://www.w3.org/TR/2002/WD-ws-gloss-20021114/ 2
Aniversário de 10 anos da WWW The Once and Future Web Conferência realizada em dezembro

Aniversário de 10 anos da WWW

The Once and Future Web

Conferência realizada em dezembro de 2001 pela Stanford University

Technologies like mobile computing, peer-to-peer networking, ubiquitous wireless access and intelligent software agents dramatically will change the way we interact with the web - as long as big business doesn't strangle innovation for the sake of its own profits.

“Peer-to-peer is about the observation that everything is a server now.“ - Simon Phipps, chief software evangelist at Sun Microsystems.

“The future of communication is not about people talking to people. The future is machines talking to other machines on people's behalf.“ - Paul Saffo, director of the Institute for the Future (www.iftf.org).

"Most of what we think of as 'surfing' will be done by machines. Instead of searching the web for an Italian restaurant in San Francisco with a table available before 8 p.m., you might be able to ask your software agent to do the job for you. If it finds a match, your agent could even - with your approval - make reservations and print out a map telling you how to get there." - Armando Fox, assistant professor of computer science at Stanford.

Fonte: Stanford Report, December 12, 2001

http://www.stanford.edu/dept/news/report/news/december12/futureweb-1212.html

3

Fonte: Stanford Report, December 12, 2001 http://www.stanford.edu/dept/news/report/news/december12/futureweb-1212.html 3
A evolução da computação distribuída na internet Web Server HTML Browser Cliente Internet • Toda

A evolução da computação distribuída na internet

Web

Server

da computação distribuída na internet Web Server HTML Browser Cliente Internet • Toda a aplicação reside

HTML

Browser

Cliente

distribuída na internet Web Server HTML Browser Cliente Internet • Toda a aplicação reside no servidor.
distribuída na internet Web Server HTML Browser Cliente Internet • Toda a aplicação reside no servidor.
distribuída na internet Web Server HTML Browser Cliente Internet • Toda a aplicação reside no servidor.
distribuída na internet Web Server HTML Browser Cliente Internet • Toda a aplicação reside no servidor.
distribuída na internet Web Server HTML Browser Cliente Internet • Toda a aplicação reside no servidor.
Internet
Internet
na internet Web Server HTML Browser Cliente Internet • Toda a aplicação reside no servidor. •
na internet Web Server HTML Browser Cliente Internet • Toda a aplicação reside no servidor. •

• Toda a aplicação reside no servidor.

• Browsers apenas renderizam a informação sem que haja qualquer processamento local.

4

aplicação reside no servidor. • Browsers apenas renderizam a informação sem que haja qualquer processamento local.
A evolução da computação distribuída na internet Database Browser Cliente Web Server HTML CGI Internet

A evolução da computação distribuída na internet

Database

evolução da computação distribuída na internet Database Browser Cliente Web Server HTML CGI Internet applet •

Browser

Cliente

Web

Server

HTML

na internet Database Browser Cliente Web Server HTML CGI Internet applet • Browsers conseguem acessar dados
na internet Database Browser Cliente Web Server HTML CGI Internet applet • Browsers conseguem acessar dados
na internet Database Browser Cliente Web Server HTML CGI Internet applet • Browsers conseguem acessar dados

CGI

na internet Database Browser Cliente Web Server HTML CGI Internet applet • Browsers conseguem acessar dados
Internet
Internet
Database Browser Cliente Web Server HTML CGI Internet applet • Browsers conseguem acessar dados de um
Database Browser Cliente Web Server HTML CGI Internet applet • Browsers conseguem acessar dados de um
Database Browser Cliente Web Server HTML CGI Internet applet • Browsers conseguem acessar dados de um

applet

• Browsers conseguem acessar dados de um database através de CGIs rodando no web server.

• Browsers basicamente continuam sendo utilizados apenas para apresentar informações. Quando muito, utilizam formulários html para entrada de dados e processamento local bastante limitado via applets java ou client side scripts (javascripts).

5

para entrada de dados e processamento local bastante limitado via applets java ou client side scripts
A evolução da computação distribuída na internet Browser Cliente Database server Web Server HTML Internet

A evolução da computação distribuída na internet

A evolução da computação distribuída na internet Browser Cliente Database server Web Server HTML Internet •
A evolução da computação distribuída na internet Browser Cliente Database server Web Server HTML Internet •

Browser

Cliente

Database

server

Web

Server

HTML

na internet Browser Cliente Database server Web Server HTML Internet • Surgem novas tecnologias bem mais
na internet Browser Cliente Database server Web Server HTML Internet • Surgem novas tecnologias bem mais
na internet Browser Cliente Database server Web Server HTML Internet • Surgem novas tecnologias bem mais
na internet Browser Cliente Database server Web Server HTML Internet • Surgem novas tecnologias bem mais
Internet
Internet
Browser Cliente Database server Web Server HTML Internet • Surgem novas tecnologias bem mais poderosas e
Browser Cliente Database server Web Server HTML Internet • Surgem novas tecnologias bem mais poderosas e

• Surgem novas tecnologias bem mais poderosas e eficientes que os CGIs, como o ASP, Java Servlets, PHP, dentre outras.

• Com o aumento do número de requisições, o acesso aos dados passa a ser feito através de servidor dedicado, o database server.

• Algumas tecnologias client side, como o Activex da Microsoft, permitem processamentos mais ricos no cliente. Com o tempo, a proliferação de tecnologias proprietárias para processamento

6

distribuído levará a uma verdadeira “Torre de Babel”.

de tecnologias proprietárias para processamento 6 distribuído levará a uma verdadeira “Torre de Babel”.
A evolução da computação distribuída na internet HTML / XML / WML / Database server

A evolução da computação distribuída na internet

HTML / XML / WML /

da computação distribuída na internet HTML / XML / WML / Database server Web Server Internet
da computação distribuída na internet HTML / XML / WML / Database server Web Server Internet
da computação distribuída na internet HTML / XML / WML / Database server Web Server Internet
da computação distribuída na internet HTML / XML / WML / Database server Web Server Internet
da computação distribuída na internet HTML / XML / WML / Database server Web Server Internet

Database

server

Web

Server

na internet HTML / XML / WML / Database server Web Server Internet • O número
na internet HTML / XML / WML / Database server Web Server Internet • O número
Internet
Internet
HTML / XML / WML / Database server Web Server Internet • O número de dispositivos
HTML / XML / WML / Database server Web Server Internet • O número de dispositivos
HTML / XML / WML / Database server Web Server Internet • O número de dispositivos
HTML / XML / WML / Database server Web Server Internet • O número de dispositivos
HTML / XML / WML / Database server Web Server Internet • O número de dispositivos
HTML / XML / WML / Database server Web Server Internet • O número de dispositivos
HTML / XML / WML / Database server Web Server Internet • O número de dispositivos
HTML / XML / WML / Database server Web Server Internet • O número de dispositivos

• O número de dispositivos na web proliferou significativamente. A forma de apresentar a informação varia de dispositivo para dispositivo.

• Um novo padrão é criado visando solucionar os problemas de publicação na web, o XML (eXtended Markup Language). Uma série de padrões de mercado derivados do XML surgem como por exemplo o XSL, SVG e o WML.

7

A evolução da computação distribuída na internet HTML / XML / WML / Aplicação C

A evolução da computação distribuída na internet

A evolução da computação distribuída na internet HTML / XML / WML / Aplicação C Database

HTML / XML / WML /

da computação distribuída na internet HTML / XML / WML / Aplicação C Database server Web
da computação distribuída na internet HTML / XML / WML / Aplicação C Database server Web
da computação distribuída na internet HTML / XML / WML / Aplicação C Database server Web
da computação distribuída na internet HTML / XML / WML / Aplicação C Database server Web

Aplicação C

distribuída na internet HTML / XML / WML / Aplicação C Database server Web Server Solução
distribuída na internet HTML / XML / WML / Aplicação C Database server Web Server Solução

Database

server

Web

Server

Solução proprietária

Internet
Internet
Database server Web Server Solução proprietária Internet Solução proprietária EDI Rede Privada EDI Aplicação A
Database server Web Server Solução proprietária Internet Solução proprietária EDI Rede Privada EDI Aplicação A
Database server Web Server Solução proprietária Internet Solução proprietária EDI Rede Privada EDI Aplicação A
Database server Web Server Solução proprietária Internet Solução proprietária EDI Rede Privada EDI Aplicação A
Database server Web Server Solução proprietária Internet Solução proprietária EDI Rede Privada EDI Aplicação A
Database server Web Server Solução proprietária Internet Solução proprietária EDI Rede Privada EDI Aplicação A
Database server Web Server Solução proprietária Internet Solução proprietária EDI Rede Privada EDI Aplicação A
Database server Web Server Solução proprietária Internet Solução proprietária EDI Rede Privada EDI Aplicação A
Database server Web Server Solução proprietária Internet Solução proprietária EDI Rede Privada EDI Aplicação A
Database server Web Server Solução proprietária Internet Solução proprietária EDI Rede Privada EDI Aplicação A
Database server Web Server Solução proprietária Internet Solução proprietária EDI Rede Privada EDI Aplicação A

Solução proprietária

EDI

Solução proprietária Internet Solução proprietária EDI Rede Privada EDI Aplicação A Aplicação B •
Rede Privada
Rede
Privada

EDI

Aplicação A

Aplicação B

• Originalmente desenvolvido para suprir os desafios da publicação eletrônica em larga escala, o XML mostrou-se muito adequado para solucionar problemas de integração e troca de dados entre sistemas heterogêneos.

8

A evolução da computação distribuída na internet HTML / XML / WML / Aplicação C

A evolução da computação distribuída na internet

HTML / XML / WML / Aplicação C Database Web server Server XML / HTTP
HTML / XML / WML /
Aplicação C
Database
Web
server
Server
XML / HTTP
Internet
XML / HTTP
XML / HTTP
Aplicação A
Aplicação B

9

• A troca de dados entre sistemas via XML sobre HTTP/HTTPS trouxe um grande avanço ao mundo da integração de sistemas.

• Ainda assim, a amarração entre as duas partes continua grande. Pequenas mudanças na aplicação provedora do serviço pode demandar grandes mudanças na aplicação cliente.

grande. Pequenas mudanças na aplicação provedora do serviço pode demandar grandes mudanças na aplicação cliente.
Limitações das Tecnologias Existentes A finalidade de um web service não é novidade Permitir que

Limitações das Tecnologias Existentes

A finalidade de um web service não é novidade

Permitir que aplicações distribuídas compartilhem lógica de negócio através de uma rede.
Permitir que aplicações distribuídas compartilhem
lógica de negócio através de uma rede.

Tecnologias existentes como DCOM, RMI e CORBA resolvem alguns problemas de integração mas sua escalabilidade é bastante limitada:

10

Necessitam que tanto origem quanto destino utilizem a mesma tecnologia.

Suporte a esses padrões é limitado – formatos proprietários.

CORBA é um padrão aberto, porém cada vendor implementa de uma maneira diferente.

Implementação sobre estes padrões necessita de conhecimentos avançados e não costuma ser simples.

É possível integrar estas diferentes tecnologias através de mapeamento reverso de seus componentes, mas esta é uma prática não recomendada e bastante susceptível a falhas.

Utilizam TCP/IP para comunicação, mas necessitam de acesso a portas restritas, muitas vezes bloqueadas pelo firewall da rede por razões de segurança.

mas necessitam de acesso a portas restritas, muitas vezes bloqueadas pelo firewall da rede por razões
Web Services: vencendo as limitações Para consumir um web service não é preciso saber nada

Web Services: vencendo as limitações

Para consumir um web service não é preciso saber nada sobre a plataforma, modelo de
Para consumir um web service não é preciso saber nada sobre a plataforma, modelo
de objetos ou linguagem de programação utilizada para implementar o serviço. A
única coisa necessária é entender como enviar e receber mensagens SOAP.

Web services são implementation-non-specific , isto é, a lógica de aplicação pode ser implementada por qualquer mecanismo que implementation-non-specific, isto é, a lógica de aplicação pode ser implementada por qualquer mecanismo que suporte XML.

Baseia-se em padrões abertos.ser implementada por qualquer mecanismo que suporte XML. Utiliza protocolos padrões da web como o HTTP,

Utiliza protocolos padrões da web como o HTTP, UDP ou SMTP para transporte.mecanismo que suporte XML. Baseia-se em padrões abertos. A utilização de protocolos como o HTTP e

A utilização de protocolos como o HTTP e o uso de XML para formatar seus dados permite a troca de dados entre sistemas através de portas seguramente liberadas por firewalls além de usufruir de toda a infra estrutura de rede que a internet proporciona.padrões da web como o HTTP, UDP ou SMTP para transporte. A união do XML e

A união do XML e HTTP levou à formação do SOAP, Simple Object Access Protocol, protocolo utilizado pelos web services para codificação e transmissão dos dados de aplicação.toda a infra estrutura de rede que a internet proporciona. Tecnologias como o .NET permitem o

Tecnologias como o .NET permitem o desenvolvimento simples e rápido de web services sem a necessidade de mergulhar fundo nos protocolos envolvidos.para codificação e transmissão dos dados de aplicação. Do ponto de vista do desenvolvedor, um web

Do ponto de vista do desenvolvedor, um web service é uma página “glorificada” que mapeia
Do ponto de vista do desenvolvedor, um web service é uma página “glorificada”
que mapeia automaticamente pedidos via http ou https a métodos de uma
linguagem de alto-nível.

11

“glorificada” que mapeia automaticamente pedidos via http ou https a métodos de uma linguagem de alto-nível.
Definição em outras palavras Um web service é essencialmente um conjunto de funções invocáveis via

Definição em outras palavras

Um web service é essencialmente um conjunto de funções invocáveis via internet usando um protocolo aberto, no caso o protocolo SOAP.

Glossário:

Simple Object Access Protocol (SOAP) É um protocolo baseado em XML para a troca de informações em ambientes distribuídos e descentralizados.

Extensible Markup Language (XML) Formato padrão de arquivo texto simples e bastante flexível derivado do SGML. Originalmente desenvolvido para suprir os desafios da publicação eletrônica em larga escala, o XML acabou assumindo importância enorme na troca de dados dos mais diversos tipos na web.

Standard Generalized Markup Language (SGML) Padrão que deu origem ao HTML, XML, dentre outros.

12

diversos tipos na web. Standard Generalized Markup Language (SGML) Padrão que deu origem ao HTML, XML,
Tipos de web services BasicamenteBasicamente umum webweb serviceservice podepode serser dede doisdois tipostipos

Tipos de web services

BasicamenteBasicamente umum webweb serviceservice podepode serser dede doisdois tipostipos

Document-oriented Semelhante a EDI (Electronic Data Interchange) Semelhante a EDI (Electronic Data Interchange)

Semelhante a EDI (Electronic Data Interchange) Envia dados formatados como um documento do negócio (por

Envia dados formatados como um documento do negócio (por exemplo o envio de uma ordem de compra)Semelhante a EDI (Electronic Data Interchange) 13 Remote Procedure Call (RPC)-oriented Semelhante a CORBA,

13

Remote Procedure Call (RPC)-oriented Semelhante a CORBA, DCOM ou EJB Envia dados formatados como argumento de uma procedure ou Semelhante a CORBA, DCOM ou EJB Envia dados formatados como argumento de uma procedure ou invocação de um objeto Retorna um resultado diretamente

ou EJB Envia dados formatados como argumento de uma procedure ou invocação de um objeto Retorna
ou EJB Envia dados formatados como argumento de uma procedure ou invocação de um objeto Retorna
ou EJB Envia dados formatados como argumento de uma procedure ou invocação de um objeto Retorna
ou EJB Envia dados formatados como argumento de uma procedure ou invocação de um objeto Retorna
As primeiras soluções: HTML / HTTP Internet HTML / HTTP HTML / HTTP A aplicação

As primeiras soluções: HTML / HTTP

Internet
Internet
As primeiras soluções: HTML / HTTP Internet HTML / HTTP HTML / HTTP A aplicação client

HTML / HTTP

As primeiras soluções: HTML / HTTP Internet HTML / HTTP HTML / HTTP A aplicação client

HTML / HTTP

soluções: HTML / HTTP Internet HTML / HTTP HTML / HTTP A aplicação client faz uma
soluções: HTML / HTTP Internet HTML / HTTP HTML / HTTP A aplicação client faz uma

A

aplicação client faz uma chamada DesvantagensDesvantagens programaticamente a uma URL de um web site,

web permanecer server retorna estático. um Uma documento alteração HTML na formatação contendo os da dados página que do interessam web site a

passando os parâmetros por HTTP-GET ou HTTP-POST. A aplicação cliente funcionará apenas enquanto o documento HTML

cliente funcionará apenas enquanto o documento HTML O aplicação cliente misturados com conteúdo e

O

aplicação cliente misturados com conteúdo e formatação HTML.

quebrará a aplicação cliente.

e formatação HTML. quebrará a aplicação cliente. A aplicação cliente faz o parser deste documento e

A aplicação cliente faz o parser deste documento e extrai os dados que interessam

para seu próprio uso.

14

cliente. A aplicação cliente faz o parser deste documento e extrai os dados que interessam para
As primeiras soluções: XML / HTTP Internet XML / HTTP X M L / H

As primeiras soluções: XML / HTTP

Internet
Internet
As primeiras soluções: XML / HTTP Internet XML / HTTP X M L / H T

XML / HTTP

As primeiras soluções: XML / HTTP Internet XML / HTTP X M L / H T

XML / HTTP

XML / HTTP Internet XML / HTTP X M L / H T T P Uma
XML / HTTP Internet XML / HTTP X M L / H T T P Uma

Uma aplicação server que expõe uma tabela do banco de dados em um arquivo XML

mediante uma chamada HTTP é implementada utilizando-se ASP, Java, Perl ou qualquer

outra linguagem de programação.

DesvantagensDesvantagens

outra linguagem de programação. DesvantagensDesvantagens A aplicação A aplicação client cliente faz uma

A

aplicação A aplicação client cliente faz uma espera chamada um documento programaticamente XML fortemente a uma estruturado. URL definida, Uma

passando alteração os parâmetros na aplicação por server HTTP-GET pode ou quebrar HTTP-POST. a aplicação cliente.

pode ou quebrar HTTP-POST. a aplicação cliente. A aplicação Na maioria server dos retorna casos é

A

aplicação Na maioria server dos retorna casos é um possível documento utilizar XML um contendo schema XML os dados público. de Mas uma quando de suas o

tabelas. número de aplicações é muito grande, a manutenção do conjunto de schemas

é muito grande, a manutenção do conjunto de schemas A aplicação para cada cliente aplicação faz

A aplicação para cada cliente aplicação faz o pode parser se destes tornar dados inviável. para seu próprio uso utilizando

métodos apropriados para manipular o documento XML.

15

tornar dados inviável. para seu próprio uso utilizando métodos apropriados para manipular o documento XML. 15
Outras Lacunas Comuns Publicação do serviço Uma vez que um serviço esteja disponível, como fazer

Outras Lacunas Comuns

Publicação do serviço Uma vez que um serviço esteja disponível, como fazer que um cliente consiga localizá-lo? Uma vez que um serviço esteja disponível, como fazer que um cliente consiga localizá-lo?

disponível, como fazer que um cliente consiga localizá-lo? Descrição do serviço Como deve ser feita a

Descrição do serviçodisponível, como fazer que um cliente consiga localizá-lo? Como deve ser feita a chamada a este

Como deve ser feita a chamada a este serviço? Que protocolos este serviço suporta? Como
Como deve ser feita a chamada a este serviço? Que protocolos este serviço suporta? Como
Como deve ser feita a chamada a este serviço? Que protocolos este serviço suporta? Como
Como deve ser feita a chamada a este serviço? Que protocolos este serviço suporta? Como

Como deve ser feita a chamada a este serviço? Que protocolos este serviço suporta? Como este protocolo serializa os dados? Que tipos de dados são suportados pelo serviço?

este serviço suporta? Como este protocolo serializa os dados? Que tipos de dados são suportados pelo
este serviço suporta? Como este protocolo serializa os dados? Que tipos de dados são suportados pelo
este serviço suporta? Como este protocolo serializa os dados? Que tipos de dados são suportados pelo

16

este serviço suporta? Como este protocolo serializa os dados? Que tipos de dados são suportados pelo
Completando As Lacunas As especificações que estão sendo criadas para os web services recaem em

Completando As Lacunas

As especificações que estão sendo criadas para os web services recaem em três categorias:

Discovery UDDI (Universal Description, Discovery and Integration) UDDI é um protocolo que permite a publicação de um web service em um diretório central de modo que ele possa ser facilmente localizado e consumido por outros clientes.criadas para os web services recaem em três categorias: Mais informações em http://www.UDDI.org DISCO

ser facilmente localizado e consumido por outros clientes. Mais informações em http://www.UDDI.org DISCO

Mais informações em http://www.UDDI.org

DISCO (abreviação de Discovery) DISCO é um padrão usado para descrever o Uniform Resource Identifier (URI) de um web service e contém a referência ao endereço do WSDL. É um arquivo em formato XML e normalmente localiza-se na raiz da aplicação web.outros clientes. Mais informações em http://www.UDDI.org 17 Description WSDL (Web Services Description Language) Um

17

Description WSDL (Web Services Description Language) Um arquivo baseado em XML usado para definir o comportamento de (Web Services Description Language) Um arquivo baseado em XML usado para definir o comportamento de um web service e como um cliente pode utilizar ou interagir com o serviço.

e como um cliente pode utilizar ou interagir com o serviço. Mais informações em http://www.w3.org/TR/wsdl Protocol

Mais informações em http://www.w3.org/TR/wsdl

Protocol Como já vimos anteriormente, o SOAP é o protocolo baseado em XML utilizado para serializar dados e objetos de um web service e que utiliza HTTP para o transporte de dados.web service e como um cliente pode utilizar ou interagir com o serviço. Mais informações em

baseado em XML utilizado para serializar dados e objetos de um web service e que utiliza
baseado em XML utilizado para serializar dados e objetos de um web service e que utiliza
Representação por camadas Browser HTTP TCP IP Aplicação Aplicação Aplicação Aplicação Aplicação

Representação por camadas

Browser

HTTP

TCP

IP

Aplicação Aplicação Aplicação Aplicação Aplicação Browser SOAP Web Server Web Server SOAP Aplicação
Aplicação
Aplicação Aplicação
Aplicação
Aplicação
Browser
SOAP
Web Server
Web Server
SOAP
Aplicação
Aplicação
SOAP
HTTP HTTP
RPC SMTP
HTTP
SOAP
HTTP
HTTP
HTTP
SOAP
RPC SMTP
TCP TCP
TCP
TCP TCP
UDP
TCP TCP
TCP TCP UDP
TCP
IP
IP
IP
IP
IP
IP IP
IP
IP
IP
Aplicação
Aplicação
SOAP
SOAP
HTTP
HTTP
TCP
TCP
IP
IP

Aplicação web clássica

Aplicação utilizando SOAP sobre HTTP ou SMTP

Aplicação utilizando SOAP direto sobre TCP/IP

AplicaçãoAplicaçãoweb clássicaRPC

SOAP sobre HTTP

18

HTTP ou SMTP Aplicação utilizando SOAP direto sobre TCP/IP AplicaçãoAplicaçãoweb clássicaRPC SOAP sobre HTTP 18
Partes integrantes de uma mensagem SOAP 19 Envelope OPCIONALOPCIONAL Header Block Block … Body Block

Partes integrantes de uma mensagem SOAP

19

Envelope OPCIONALOPCIONAL Header Block Block … Body Block Block …
Envelope
OPCIONALOPCIONAL
Header
Block
Block
Body
Block
Block
Unidade de comunicação
Unidade de comunicação
Atributos e detalhes da comunicação
Atributos e detalhes
da comunicação
Mensagem propriamente dita: Parâmetros de chamada a um método ou documento
Mensagem propriamente dita:
Parâmetros de chamada a um
método ou documento
Atributos e detalhes da comunicação Mensagem propriamente dita: Parâmetros de chamada a um método ou documento
Anatomia de uma mensagem SOAP 20 POST /Accounts/Henrik HTTP/1.1 Host: www.webservicebank.com Content-Length: nnnn

Anatomia de uma mensagem SOAP

20

POST /Accounts/Henrik HTTP/1.1 Host: www.webservicebank.com Content-Length: nnnn Content-Type: text/xml; charset="utf-8"

SOAPAction: “www.xmlbus.com/Bank"

SOAP-HTTP Binding HTTP Request SOAP Body SOAP Header SOAP Envelope

<SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP:Header> <s:security xmlns:s=“secure-URI" SOAP:mustUnderstand="1"> Signature </s:security> </SOAP:Header> <SOAP:Body> <m:Deposit xmlns:m=“www.xmlbus.com/bankingService">

<m:amount>200</m:amount>

</m:Deposit>

</SOAP:Body>

</SOAP:Envelope>

<m:amount>200</m:amount> </m:Deposit> </SOAP:Body> </SOAP:Envelope>
Ciclo de vida de uma chamada a um web service SOAP Request Fase 1 Fase

Ciclo de vida de uma chamada a um web service

SOAP

Request

Fase 1

Fase 2

Serializa Desserializa XML SOAP Message Internet SOAP Response XML Fase 4 SOAP Fase 3 Desserializa
Serializa
Desserializa
XML
SOAP
Message
Internet
SOAP
Response
XML
Fase 4
SOAP
Fase 3
Desserializa
Message
Serializa
Aplicação servidor
Aplicação
servidor
SOAP Response XML Fase 4 SOAP Fase 3 Desserializa Message Serializa Aplicação servidor Aplicação cliente 21

Aplicação

cliente

21

Padrões Relacionados aos Web Services SOAP 22 Protocol Process Description (e.g., XLANG, WSFL) Descrição ç

Padrões Relacionados aos Web Services

SOAP
SOAP

22

Protocol

Process Description (e.g., XLANG, WSFL)

Descrição ç de Serviços WSDL
Descrição
ç
de Serviços
WSDL
Descrição de Documentos XML Schema
Descrição de
Documentos
XML Schema

Description

Diretório UDDI
Diretório
UDDI
Inspeção DISCO
Inspeção
DISCO

Discovery

ç de Serviços WSDL Descrição de Documentos XML Schema Description Diretório UDDI Inspeção DISCO Discovery
Web Service na Prática WebWeb ServiceService ConsumerConsumer FindFind aa ServiceService

Web Service na Prática

WebWeb ServiceService
WebWeb
ServiceService

ConsumerConsumer

Service na Prática WebWeb ServiceService ConsumerConsumer FindFind aa ServiceService
FindFind aa ServiceService http://www.uddi.orghttp://www.uddi.org LinkLink toto DISCODISCO oror WSDLWSDL
FindFind aa ServiceService
http://www.uddi.orghttp://www.uddi.org
LinkLink toto DISCODISCO oror WSDLWSDL documentdocument
DiscoveryDiscovery
http://yourservice.comhttp://yourservice.com
HTMLHTML oror XMLXML withwith linklink toto WSDLWSDL
HowHow dodo wewe talk?talk? (WSDL)(WSDL) http://yourservice.com/?WSDLhttp://yourservice.com/?WSDL XMLXML withwith
HowHow dodo wewe talk?talk? (WSDL)(WSDL)
http://yourservice.com/?WSDLhttp://yourservice.com/?WSDL
XMLXML withwith serviceservice descriptionsdescriptions
LetLet meme talktalk toto youyou (SOAP)(SOAP)
http://yourservice.com/svc1http://yourservice.com/svc1
XML/SOAPXML/SOAP BODYBODY
UDDIUDDI
UDDIUDDI
WebWeb ServiceService
WebWeb
ServiceService

23

XML/SOAPXML/SOAP BODYBODY UDDIUDDI WebWeb ServiceService 23 DesignDesign--TimeTime oror DynamicDynamic RuntimeRuntime

DesignDesign--TimeTime oror DynamicDynamic

XML/SOAPXML/SOAP BODYBODY UDDIUDDI WebWeb ServiceService 23 DesignDesign--TimeTime oror DynamicDynamic RuntimeRuntime

RuntimeRuntime

XML/SOAPXML/SOAP BODYBODY UDDIUDDI WebWeb ServiceService 23 DesignDesign--TimeTime oror DynamicDynamic RuntimeRuntime
Juntando as peças Ainda em fase de desenvolvimento, procura-se por determinado serviço em um nó

Juntando as peças

Ainda em fase de desenvolvimento, procura-se por determinado serviço em um nó UDDI.Juntando as peças UDDI responde com uma lista de serviços disponíveis. Esta lista fornece link para

UDDI responde com uma lista de serviços disponíveis. Esta lista fornece link para os documentos WSDL e/ou DISCO.procura-se por determinado serviço em um nó UDDI. No exemplo, utilizou-se o documento WSDL para desenvolver

No exemplo, utilizou-se o documento WSDL para desenvolver uma classe proxy que será utilizada pela aplicação cliente para chamar o web service.Esta lista fornece link para os documentos WSDL e/ou DISCO. Aplicação cliente faz chamada ao web

Aplicação cliente faz chamada ao web service via mensagem SOAP montada pelo objeto proxy.pela aplicação cliente para chamar o web service. 11 Serviço é criado e publicado em um

11
11

Serviço é criado e publicado em um nó UDDI.

55
55

Servidor retorna documento WSDL.

77
77

Servidor retorna mensagem SOAP após processamento da chamada.

retorna mensagem SOAP após processamento da chamada. UDDIUDDI nodenode 22 33 11 44 Internet 55 77

UDDIUDDI

nodenode

22
22
33
33
SOAP após processamento da chamada. UDDIUDDI nodenode 22 33 11 44 Internet 55 77 WSDLWSDL 66
11
11
44
44
Internet
Internet
da chamada. UDDIUDDI nodenode 22 33 11 44 Internet 55 77 WSDLWSDL 66 SOAPSOAP SOAPSOAP Runtime
da chamada. UDDIUDDI nodenode 22 33 11 44 Internet 55 77 WSDLWSDL 66 SOAPSOAP SOAPSOAP Runtime
da chamada. UDDIUDDI nodenode 22 33 11 44 Internet 55 77 WSDLWSDL 66 SOAPSOAP SOAPSOAP Runtime
da chamada. UDDIUDDI nodenode 22 33 11 44 Internet 55 77 WSDLWSDL 66 SOAPSOAP SOAPSOAP Runtime
da chamada. UDDIUDDI nodenode 22 33 11 44 Internet 55 77 WSDLWSDL 66 SOAPSOAP SOAPSOAP Runtime
55 77
55
77

WSDLWSDL

66
66
UDDIUDDI nodenode 22 33 11 44 Internet 55 77 WSDLWSDL 66 SOAPSOAP SOAPSOAP Runtime Design-time AplicaçãoAplicação

SOAPSOAP

nodenode 22 33 11 44 Internet 55 77 WSDLWSDL 66 SOAPSOAP SOAPSOAP Runtime Design-time AplicaçãoAplicação

SOAPSOAP

Runtime
Runtime
Design-time
Design-time

AplicaçãoAplicação

ClienteCliente

AplicaçãoAplicação

ServidorServidor

24

Um web service simples 25 DEMODEMO

Um web service simples

25

Um web service simples 25 DEMODEMO

DEMODEMO

Um web service simples 25 DEMODEMO
Um web service simples 25 DEMODEMO