Está en la página 1de 75

Universo

SOA e
Web Services
rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com

Galxia
Web Services
rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com

Constelao
SOAP
rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com

Tpicos

Introduo

Questes de concursos

Padres de troca de mensagem SOAP

Questes de concursos

Regras de sintaxe SOAP

Exemplo de documento SOAP

Estrutura de uma mensagem SOAP

Questes de concursos

Elemento Envelope

Questes de concursos

Elemento Header

rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com

Tpicos

Questes de concursos

Elemento Body

Questes de concursos

Elemento Fault

Questes de concursos

Exemplos de documentos SOAP

HTTP Binding

SOAP HTTP Binding

Questes de concursos

Referncias
rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com

Introduo

Simple Object Access Protocol

Um protocolo para acessar um web service baseado em XML


para permitir que aplicaes troquem informaes sobre HTTP

Um formato para envio de mensagens

Independente de:

Plataforma

Linguagem

Simples

Extensvel

Um padro W3C

Permite contornar firewalls


rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com

Introduo

Principais usos:

Comunicao aplicativo a aplicativo

A2A

Application-to-application

Especificadamente de negcio a negcio

B2B business-to-business

Integrao de aplicativos corporativos

EAI

Enterprise application integration

rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com

Introduo

Conceitos importantes

Remetente SOAP

Receptor SOAP

N que gera e transmite uma mensagem SOAP


N que recebe e processa a mensagem SOAP que foi gerada pelo
remetente

Intermedirio SOAP

N que considerado:

Tanto receptor

Quanto remetente

Pode realizar pr-processamento da mensagem antes de ela atingir


seu destino final

Usado comumente para segurana, acesso e transaes

Podem existir zero ou mais intermedirios


rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com

Introduo

Remetente
Remetente

Remetente inicial

Mensagem SOAP

Intermedirio
Intermedirio

Primeiro
intermedirio

Mensagem SOAP

Intermedirio
Intermedirio

Mensagem SOAP

Ensimo
intermedirio

Receptor
Receptor

Receptor final
rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com

Questes de concursos
[FGV 2010 SEAD/AP - Auditor da Receita Estadual (2 Dia)
Questo 75] Originalmente SOAP representava um protocolo para
troca de informaes estruturadas em uma plataforma
descentralizada e distribuda, utilizando tecnologias baseadas
em um determinada linguagem. Foi importante para o
desenvolvimento de aplicaes para permitiram a comunicao
via Internet entre programas, empregando o Remote Procedure
Calls (RPC) entre objetos como DCOM e CORBA.
Atualmente, SOAP prov um caminho de comunicao entre
aplicaes rodando em diferentes sistemas operacionais, com
diferentes tecnologias e linguagens de programao.

rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com

10

Questes de concursos
[FGV 2010 SEAD/AP - Auditor da Receita Estadual (2 Dia)
Questo 75] De acordo com o enfoque do World Wide Web
Consortium W3C, as mensagens SOAP so documentos
baseados na seguinte linguagem:

[A] WSDL.

[B] XML.

[C] JAVASCRIPT.

[D] AJAX.

[E] XSLT.

rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com

11

Questes de concursos
[FGV 2010 SEAD/AP - Auditor da Receita Estadual (2 Dia)
Questo 75] De acordo com o enfoque do World Wide Web
Consortium W3C, as mensagens SOAP so documentos
baseados na seguinte linguagem:

[A] WSDL.

[B] XML.

[C] JAVASCRIPT.

[D] AJAX.

[E] XSLT.

rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com

12

Questes de concursos
[FGV 2009 MEC Arquiteto de Sistemas Questo 79] A respeito
das tecnologias relacionadas a Web Services, analise as
afirmativas a seguir:

[III] SOAP (Simple Object Access Protocol) um protocolo,


baseado em XML, para troca de informao estruturada com
Web Services em redes de computadores.

rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com

13

Questes de concursos
[FGV 2009 MEC Arquiteto de Sistemas Questo 79] A respeito
das tecnologias relacionadas a Web Services, analise as
afirmativas a seguir:

[III] SOAP (Simple Object Access Protocol) um protocolo,


baseado em XML, para troca de informao estruturada com
Web Services em redes de computadores.

Gabarito: CERTO.

rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com

14

Questes de concursos
[FGV 2008 MEC Analista de Sistemas Questo 89] Um Web
Service definido pela W3C como um sistema de software
projetado para fornecer interoperabilidade entre mquinas em
uma determinada rede. Dentro do contexto dos Web Services
assinale a alternativa correta.

[B] SOAP (Simple Object Access Protocol) um protocolo,


baseado em XML, para troca de informao estruturada com
Web Services em redes de computadores.

rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com

15

Questes de concursos
[FGV 2008 MEC Analista de Sistemas Questo 89] Um Web
Service definido pela W3C como um sistema de software
projetado para fornecer interoperabilidade entre mquinas em
uma determinada rede. Dentro do contexto dos Web Services
assinale a alternativa correta.

[B] SOAP (Simple Object Access Protocol) um protocolo,


baseado em XML, para troca de informao estruturada com
Web Services em redes de computadores.

Gabarito: CERTO.

rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com

16

Questes de concursos
[FGV 2008 MEC Arquiteto de Sistemas Questo 84] Aplicaes
orientadas a servios necessitam que os protocolos de
comunicao sejam robustos, pois so altamente dinmicas e
podem ser alteradas constantemente. A grande maioria das
aplicaes orientadas a servios atuais utiliza, para comunicao,
o SOAP, que definido como:

[A] um Web Service que gerencia informao sobre


provedores, implementaes e metadados de servios.
[B] um protocolo aprovado como padro pela OASIS e
especifica um mtodo para publicar e descobrir diretrios de
servios.

rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com

17

Questes de concursos
[FGV 2008 MEC Arquiteto de Sistemas Questo 84] Aplicaes
orientadas a servios necessitam que os protocolos de
comunicao sejam robustos, pois so altamente dinmicas e
podem ser alteradas constantemente. A grande maioria das
aplicaes orientadas a servios atuais utiliza, para comunicao,
o SOAP, que definido como:

[C] uma linguagem baseada em XML utilizada para descrever


Web Services. Trata-se de um documento escrito em XML que
alm de descrever o servio, especifica como acess-lo e
quais as operaes ou mtodos disponveis.
[D] uma interface de programao que permite a execuo de
chamadas remotas no estilo RPC em aplicaes desenvolvidas
em Java.
rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com

18

Questes de concursos
[FGV 2008 MEC Arquiteto de Sistemas Questo 84] Aplicaes
orientadas a servios necessitam que os protocolos de
comunicao sejam robustos, pois so altamente dinmicas e
podem ser alteradas constantemente. A grande maioria das
aplicaes orientadas a servios atuais utiliza, para comunicao,
o SOAP, que definido como:

[E] um protocolo para troca de informaes estruturadas em


uma plataforma descentralizada e distribuda, utilizando
tecnologias baseadas em XML.

rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com

19

Questes de concursos
[FGV 2008 MEC Arquiteto de Sistemas Questo 84] Aplicaes
orientadas a servios necessitam que os protocolos de
comunicao sejam robustos, pois so altamente dinmicas e
podem ser alteradas constantemente. A grande maioria das
aplicaes orientadas a servios atuais utiliza, para comunicao,
o SOAP, que definido como:

[E] um protocolo para troca de informaes estruturadas em


uma plataforma descentralizada e distribuda, utilizando
tecnologias baseadas em XML.

rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com

20

Questes de concursos
[FCC 2012 TJ/PE Tcnico Judicirio Programador de
Computador Questo 55] No que se refere aos web services,
correto afirmar:

[C] As mensagens trocadas so formatadas no protocolo HTTP


que prov uma forma padro para estruturar mensagens XML.

rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com

21

Questes de concursos
[FCC 2012 TJ/PE Tcnico Judicirio Programador de
Computador Questo 55] No que se refere aos web services,
correto afirmar:

[C] As mensagens trocadas so formatadas no protocolo HTTP


SOAP que prov uma forma padro para estruturar mensagens
XML SOAP.

Gabarito: ERRADO.

rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com

22

Questes de concursos
[FCC 2009 DPE/SP Agente de Defensoria Programador Questo 61] Em relao arquitetura de aplicaes para o
ambiente Internet, considere:

[IV] O SOAP pode ser facilmente implementado em


virtualmente qualquer ambiente de programao. simples de
implementar, testar e usar; independente do sistema
operacional e CPU; tanto os dados como as funes so
descritas em XML, o que torna o protocolo no apenas fcil de
usar como tambm muito robusto; atravessa firewall e
roteadores, que pensam que uma comunicao HTTP.

rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com

23

Questes de concursos
[FCC 2009 DPE/SP Agente de Defensoria Programador Questo 61] Em relao arquitetura de aplicaes para o
ambiente Internet, considere:

[IV] O SOAP pode ser facilmente implementado em


virtualmente qualquer ambiente de programao. simples de
implementar, testar e usar; independente do sistema
operacional e CPU; tanto os dados como as funes so
descritas em XML, o que torna o protocolo no apenas fcil de
usar como tambm muito robusto; atravessa firewall e
roteadores, que pensam que uma comunicao HTTP.

Gabarito: CERTO.

rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com

24

Questes de concursos
[CESPE 2009 TCE/RN] Um servio web disponibiliza uma interface
que permite a interao dos clientes com servidores de maneira
mais geral em comparao aos navegadores web. Em relao a
servios e desenvolvimento web, julgue os itens a seguir.

[62] Em servios web, o SOAP pode ser transportado por


protocolos como REST, HTTP, SMTP e JMS.

rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com

25

Questes de concursos
[CESPE 2009 TCE/RN] Um servio web disponibiliza uma interface
que permite a interao dos clientes com servidores de maneira
mais geral em comparao aos navegadores web. Em relao a
servios e desenvolvimento web, julgue os itens a seguir.

[62] Em servios web, o SOAP pode ser transportado por


protocolos como REST, HTTP, SMTP e JMS.

Gabarito: ANULADO.
A incluso do REST entre os protocolos de transporte citados no
item tornou-o ambguo, razo suficiente para sua anulao.

rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com

26

Padres de troca de mensagem SOAP

Requisio/resposta

Resposta

Unidirecional

Notificao

Requisio nica/vrias respostas

Solicitao/resposta

rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com

27

Padres de troca de mensagem SOAP

Requisio/resposta

Remetente transmite uma mensagem SOAP solicitando alguma


informao
Receptor envia uma mensagem SOAP de resposta

<soap>
</soap>

Remetente
Remetente

Receptor
Receptor
<soap>
</soap>

rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com

28

Padres de troca de mensagem SOAP

Resposta

Idntico ao padro requisio/resposta, porm:

Remetente transmite uma mensagem no SOAP solicitando alguma


informao

Receptor envia uma mensagem SOAP de resposta

Mensagem no SOAP

Remetente
Remetente

Receptor
Receptor
<soap>
</soap>

rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com

29

Padres de troca de mensagem SOAP

Unidirecional

Tambm conhecido como dispare-e-esquea


O remetente transmite uma mensagem SOAP ao receptor sem
retorno de resposta
Pode ser usado para modelar chamadas assncronas de
procedimento remoto
Exemplo desse padro o envio de mensagens de e-mail
<soap>
</soap>

Remetente
Remetente

Receptor
Receptor

rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com

30

Padres de troca de mensagem SOAP

Notificao

O receptor transmite uma ou mais mensagens SOAP ao


remetente sem retorno de uma resposta de volta
Assemelha-se a notificao de eventos
Pode ser uma resposta a uma chamada assncrona de
procedimento remoto
<soap>
</soap>
<soap>
</soap>

Remetente
Remetente

Receptor
Receptor
<soap>
</soap>

rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com

31

Padres de troca de mensagem SOAP

Requisio nica/vrias respostas

similar ao padro requisio/resposta

Porm o receptor transmite zero ou mais mensagens SOAP de volta


ao remetente em resposta requisio inicial em mensagem SOAP

Tambm chamado de requisio/resposta n*


<soap>
</soap>

<soap>
</soap>

Remetente
Remetente

Receptor
Receptor
<soap>
</soap>

rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com

32

Padres de troca de mensagem SOAP

Solicitao/resposta

o inverso do padro requisio/resposta

O receptor que transmite uma mensagem SOAP inicial

O remetente ir responder com outra mensagem SOAP


<soap>
</soap>

Remetente
Remetente

Receptor
Receptor
<soap>
</soap>

rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com

33

Questes de concursos
[CESPE 2013 TRE/MS Analista Judicirio Anlise de Sistemas
Questo 43] No que se refere a SOA e webservices, assinale a
opo correta.

[D] SOAP um protocolo do tipo statefull, independente de


sistema operacional, embasado em troca de mensagem oneway e projetado para ser simples e extensvel por meio de
tecnologia XML.

rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com

34

Questes de concursos
[CESPE 2013 TRE/MS Analista Judicirio Anlise de Sistemas
Questo 43] No que se refere a SOA e webservices, assinale a
opo correta.

[D] SOAP um protocolo do tipo statefull stateless,


independente de sistema operacional, embasado em formas
de troca de mensagem one-way e projetado para ser simples
e extensvel por meio de tecnologia XML.

Gabarito: ERRADO.

rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com

35

Regras de sintaxe SOAP

Uma mensagem SOAP:

Deve ser codificada usando XML

Deve usar os namespaces:

SOAP Envelope

SOAP Encoding

No deve conter:

Uma referncia DTD

Instrues de processamento XML

rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com

36

Exemplo de documento SOAP


<?xml version="1.0"?>

<soap:Body>

<soap:Envelope

...

xmlns:soap="http://www.w3.org/2001/1
2/soap-envelope"

<soap:Fault>

soap:encodingStyle="http://www.w3.org/
2001/12/soap-encoding">
<soap:Header>

...
</soap:Fault>
</soap:Body>
</soap:Envelope>

...
</soap:Header>

rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com

37

Estrutura de uma mensagem SOAP


<?xml version="1.0"?>

<?xml version="1.0"?>

<soap:Envelope>

<soap:Envelope>

<soap:Header>

<soap:Header>

</soap:Header>

</soap:Header>

<soap:Body>

<soap:Body>

</soap:Body>
</soap:Envelope>

<soap:Fault>
...
</soap:Fault>
</soap:Body>
</soap:Envelope>

rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com

38

Estrutura de uma mensagem SOAP


POST /item HTTP/1.1
Host: 189.123.345.239
Content-Type: text/plain

Cabealho
Cabealho HTTP
HTTP

Content-Length: 200

<?xml version="1.0"?>
<soap:Envelope>
<soap:Body>

</soap:Body>
</soap:Envelope>
DKDSdeNEIUD/239NDNdrIDKL
DKDSdeNEIUD/239NDNdrIDKL
DJQU48812ndwhdirae34DJALD...
DJQU48812ndwhdirae34DJALD...
rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com

Mensagem
Mensagem SOAP
SOAP
Refere-se
a
Anexos
Anexos
GIF,
GIF, JPG,
JPG, PDF,
PDF, etc
etc
39

Questes de concursos
[CESGRANRIO 2010 ELETROBRS Analista de Sistemas Suporte
Basis SAP R3 Questo 43] Ao estudar uma documentao sobre
Web Services, um programador identifica que uma mensagem
SOAP composta basicamente dos elementos

[A] RPC, XML e Body.

[B] Envelope, RPC e XML.

[C] Header, RPC e Body.

[D] XML, Checksum e Envelope.

[E] Envelope, Header e Body.

rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com

40

Questes de concursos
[CESGRANRIO 2010 ELETROBRS Analista de Sistemas Suporte
Basis SAP R3 Questo 43] Ao estudar uma documentao sobre
Web Services, um programador identifica que uma mensagem
SOAP composta basicamente dos elementos

[A] RPC, XML e Body.

[B] Envelope, RPC e XML.

[C] Header, RPC e Body.

[D] XML, Checksum e Envelope.

[E] Envelope, Header e Body.

rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com

41

Elemento Envelope

obrigatrio

a raiz de uma mensagem SOAP

Define que um documento XML uma mensagem SOAP

Namespace xmlns:soap

Defines o elemento Envelope como um envelope SOAP


No SOAP 1.1, o valor de http://www.w3.org/2001/12/soapenvelope

Se um namespace diferente for usado, a aplicao:

Gera um erro

Descarta a mensagem

No SOAP 1.2, o valor http://www.w3.org/2003/05/soapenvelope


rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com

42

Elemento Envelope

Atributo encodingStyle

usado para definir os tipos de dados usados no documento


Pode aparecer em qualquer elemento SOAP e aplica-se ao
contedo do elemento e aos os elementos filho

Uma mensagem SOAP no tem codificao padro

Sintaxe:

soap:encodingStyle=URI

rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com

43

Questes de concursos
[FCC 2013 TRT 9 Regio Tcnico Judicirio Tecnologia da
Informao] Sobre SOAP correto afirmar que

[A] o xmlns:soap namespace deve sempre ter o valor


http://www.w3.org/2001/12/soap-envelope. Se um
namespace diferente for usado, o aplicativo gera um erro e
descarta a mensagem.
[E] o atributo encodingStyle do elemento Envelope utilizado
para definir os tipos de dados utilizados no documento. Este
atributo pode aparecer apenas no elemento Envelope.

rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com

44

Questes de concursos
[FCC 2013 TRT 9 Regio Tcnico Judicirio Tecnologia da
Informao] Sobre SOAP correto afirmar que

[A] o xmlns:soap namespace deve sempre ter o valor


http://www.w3.org/2001/12/soap-envelope. Se um
namespace diferente for usado, o aplicativo gera um erro e
descarta a mensagem.

Gabarito preliminar: CERTO, mas deveria ser ERRADO.

No foi citada a verso do SOAP, pois:

No SOAP 1.1, o valor de http://www.w3.org/2001/12/soapenvelope

No SOAP 1.2, o valor http://www.w3.org/2003/05/soapenvelope

rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com

45

Questes de concursos
[FCC 2013 TRT 9 Regio Tcnico Judicirio Tecnologia da
Informao] Sobre SOAP correto afirmar que

[E] o atributo encodingStyle do elemento Envelope utilizado


para definir os tipos de dados utilizados no documento. Este
atributo pode aparecer apenas no elemento Envelope em
qualquer elemento SOAP.

Gabarito preliminar: ERRADO.

rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com

46

Elemento Header

opcional
Contm informaes especficas do aplicativo sobre a
mensagem SOAP

Por exemplo, autenticao

Se o elemento do cabealho estiver presente, deve ser o


primeiro elemento filho do elemento Envelope
Todos os elementos filho imediato do elemento Header devem
ser qualificados por um namespace

rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com

47

Elemento Header
<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/1
2/soap-envelope"
soap:encodingStyle="http://www.w3.org/
2001/12/soap-encoding">
<soap:Header>
<m:Trans
xmlns:m="http://www.w3schools.com/tr
ansaction/" soap:mustUnderstand="1"
soap:actor="http://www.w3schools.com/
appml/">234
</m:Trans>
</soap:Header>
</soap:Envelope>
rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com

48

Elemento Header

O exemplo anterior contm um cabealho com um elemento


Trans com valor 234 e este elemento possui um atributo
mustUnderstand com valor de 1

O elemento Trans vem do namespace


http://www.w3schools.com/transaction/
O atributo mustUnderstand vem do namespace
http://www.w3.org/2001/12/soap-envelope

SOAP define trs atributos do namespace


http://www.w3.org/2001/12/soap-envelope:

mustUnderstand

ator

encodingStyle

rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com

49

Elemento Header

Atributo mustUnderstand

Pode ser usado para indicar se uma entrada de cabealho


obrigatria ou facultativa para que o destinatrio do processo
Se mustUnderstand=1, ento o receptor deve reconhecer o
cabealho

Se no reconhecer, ocorrer uma falha durante o processamento do


cabealho

Sintaxe

soap:mustUnderstand="0|1"

rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com

50

Elemento Header

Atributo actor

usado para enderear o elemento Header para um endpoint


especfico
Uma mensagem SOAP pode viajar de um remetente para um
receptor

Nem todas as partes de uma mensagem SOAP pode ser


destinado para o endpoint final

Passando parmetros diferentes ao longo do caminho da


mensagem

Em vez disso, podem ser destinados a um ou mais dos endpoints


no caminho da mensagem

Sintaxe:

soap:actor="URI"
rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com

51

Elemento Header
<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/1
2/soap-envelope"
soap:encodingStyle="http://www.w3.org/
2001/12/soap-encoding">
<soap:Header>
<m:Trans
xmlns:m="http://www.w3schools.com/tr
ansaction/" soap:mustUnderstand="1"
soap:actor="http://www.w3schools.com/
appml/">234
</m:Trans>
</soap:Header>
</soap:Envelope>
rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com

52

Questes de concursos
[FCC 2013 TRT 9 Regio Tcnico Judicirio Tecnologia da
Informao] Sobre SOAP correto afirmar que

[C] o elemento Header um elemento obrigatrio que contm


informaes especficas sobre a mensagem SOAP.

rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com

53

Questes de concursos
[FCC 2013 TRT 9 Regio Tcnico Judicirio Tecnologia da
Informao] Sobre SOAP correto afirmar que

[C] o elemento Header um elemento obrigatrio opcional


que contm informaes especficas sobre a mensagem SOAP.

Gabarito preliminar: ERRADO.

rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com

54

Elemento Body

obrigatrio
Contm a mensagem SOAP destinada ao ponto final da
mensagem
Elementos filhos de Body devem ser qualificados por um
namespace

rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com

55

Questes de concursos
[FCC 2013 TRT 9 Regio Tcnico Judicirio Tecnologia da
Informao] Sobre SOAP correto afirmar que

[B] se houver um elemento Fault na mensagem, ele deve


aparecer obrigatoriamente como um elemento filho do
elemento Header.

rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com

56

Questes de concursos
[FCC 2013 TRT 9 Regio Tcnico Judicirio Tecnologia da
Informao] Sobre SOAP correto afirmar que

[B] se houver um elemento Fault na mensagem, ele deve


aparecer obrigatoriamente como um elemento filho do
elemento Header Body.

Gabarito preliminar: ERRADO.

rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com

57

Elemento Fault

opcional

usado para indicar mensagens de erro

Pode aparecer apenas uma vez em uma mensagem SOAP

Deve aparecer como um elemento filho do elemento Body

Caso o elemento seja usado

rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com

58

Elemento Fault
Subelemento

Descrio

<faultcode>

Cdigo para identificar a falha

<faultstring>

Explicao legvel da falha

<faultactor>

Informaes sobre quem causou a falha acontecer

<detail>

Mantm informaes de erros especficos relacionados com


o elemento Body

rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com

59

Elemento Fault
Cdigos de falha

Descrio

VersionMismatch

Encontrado um namespace invlido para o elemento


Envelope

MustUnderstand

Um elemento filho imediato do elemento Header, com o


atributo mustUnderstand definido como "1", no foi
compreendido

Client

A mensagem foi formada incorretamente ou continha


informaes incorretas

Server

Houve um problema com o servidor para que a mensagem


no poderia proceder

rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com

60

Questes de concursos
[FCC 2013 TRT 9 Regio Tcnico Judicirio Tecnologia da
Informao] Sobre SOAP correto afirmar que

[D] uma mensagem SOAP pode conter um ou mais elementos


Fault que so opcionais e usados para indicar mensagens de
erro.

rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com

61

Questes de concursos
[FCC 2013 TRT 9 Regio Tcnico Judicirio Tecnologia da
Informao] Sobre SOAP correto afirmar que

[D] uma mensagem SOAP pode conter um ou mais elementos


Fault que so opcionais e usados opcional e usado para
indicar mensagens de erro.

Gabarito preliminar: ERRADO.

rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com

62

Questes de concursos
[CESPE 2013 CNJ Cargo 5] Acerca de interoperabilidade de
sistemas, julgue os itens subsequentes.

[71] Um dos elementos de uma mensagem SOAP o corpo


(body), no qual devem estar contidas as informaes de erro e
status.

rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com

63

Questes de concursos
[CESPE 2013 CNJ Cargo 5] Acerca de interoperabilidade de
sistemas, julgue os itens subsequentes.

[71] Um dos elementos de uma mensagem SOAP o corpo


(body) fault, no qual devem estar contidas as informaes de
erro e status.

Gabarito: ERRADO.

rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com

64

Exemplos de documentos SOAP


Mensagem SOAP de requisio

Mensagem SOAP de resposta

<?xml version="1.0"?>

<?xml version="1.0"?>

<soap:Envelope
xmlns:soap="http://www.w3.org/2001/1
2/soap-envelope"
soap:encodingStyle="http://www.w3.org/
2001/12/soap-encoding">

<soap:Envelope
xmlns:soap="http://www.w3.org/2001/1
2/soap-envelope"
soap:encodingStyle="http://www.w3.org/
2001/12/soap-encoding">

<soap:Body>

<soap:Body>

<m:GetPrecoRequisicao
xmlns:m="http://www.empresa.com/ws/
ConsultarPrecos">

<m:GetPrecoResposta
xmlns:m="http://www.empresa.com/ws/
ConsultarPrecos">

<m:nomeProduto>Nissin
Miojo</m:nomeProduto>
</m:GetPrecoRequisicao>
</soap:Body>
</soap:Envelope>

<m:preco>2,99</m:preco>
</m:GetPrecoResposta>
</soap:Body>
</soap:Envelope>

rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com

65

HTTP Binding

Um cliente HTTP conecta a um servidor HTTP usando TCP


Aps estabelecer uma conexo, o cliente pode enviar uma
mensagem de solicitao HTTP para o servidor:

POST /item HTTP/1.1

Host: 189.123.345.239

Content-Type: text/plain

Content-Length: 200

rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com

66

HTTP Binding

O servidor:

Processa a requisio

Envia uma resposta HTTP para o cliente

A resposta contm um cdigo de status que indica o status da


requisio:

200 OK

Content-Type: text/plain

Content-Length: 200

Se o servidor no conseguiu decodificar a solicitao, ele


poderia ter retornado algo como isto:

400 Bad Request

Content-Length: 0
rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com

67

SOAP HTTP Binding

Um mtodo SOAP uma solicitao/resposta em HTTP que


cumpre as regras de codificao SOAP

HTTP + XML = SOAP

Uma requisio SOAP pode ser:

HTTP POST

HTTP GET

A solicitao HTTP POST especifica pelo menos dois


cabealhos HTTP:

Content-Type

Content-Length

rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com

68

SOAP HTTP Binding

Content-Type

Define o tipo MIME:

Da mensagem

Da codificao de caracteres (opcional) utilizados para o corpo XML


do requisio ou resposta

Sintaxe

Content-Type: MIMEType; charset=character-encoding

Exemplo

POST /item HTTP/1.1

Content-Type: application/soap+xml; charset=utf-8

rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com

69

SOAP HTTP Binding

Content-Length

Especifica o nmero de bytes no corpo do pedido ou resposta

Sintaxe

Content-Length: bytes

Exemplo

POST /item HTTP/1.1

Content-Type: application/soap+xml; charset=utf-8

Content-Length: 250

rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com

70

Questes de concursos
[CESPE 2010 TCU] Visando ao bom funcionamento do sistema
descrito no texto, julgue os itens subsequentes, que tratam de
interoperabilidade de sistemasweb em Java.

[137] Considere que o lder tenha solicitado a um


programador do projeto que comentasse o seguinte trecho de
cdigo.

POST /objectURI HTTP/1.1

Host: www.foo.com

SOAPMethodName: urn:develop-com:IBank#getBalance

Content-Type: text/xml

Content-Length: 1234

rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com

71

Questes de concursos
[CESPE 2010 TCU] Visando ao bom funcionamento do sistema
descrito no texto, julgue os itens subsequentes, que tratam de
interoperabilidade de sistemasweb em Java.

[137] O comentrio do programador teria sido correto se ele


dissesse que esse cdigo provavelmente o esqueleto de um
pedido http que foi invocado sobre o servidor http (hypertext
transfer protocol) de endereo www.foo.com, embasado no
modelo de comunicao SOAP (simple object access protocol),
que apenas o cabealho do pedido est sendo apresentado e
que o pedido completo deve possuir em seu corpo um
documento XML com 1.234 bytes de tamanho.

rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com

72

Questes de concursos
[CESPE 2010 TCU] Visando ao bom funcionamento do sistema
descrito no texto, julgue os itens subsequentes, que tratam de
interoperabilidade de sistemasweb em Java.

[137] O comentrio do programador teria sido correto se ele


dissesse que esse cdigo provavelmente o esqueleto de um
pedido http que foi invocado sobre o servidor http (hypertext
transfer protocol) de endereo www.foo.com, embasado no
modelo de comunicao SOAP (simple object access protocol),
que apenas o cabealho do pedido est sendo apresentado e
que o pedido completo deve possuir em seu corpo um
documento XML com 1.234 bytes de tamanho.

Gabarito: CERTO.

rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com

73

Referncias

Por dentro da SOA: http://www01.ibm.com/software/br/info/features/futureenterprise/


QIAN, Kai. Desenvolvimento Web Java. Editora LTC, 2010.
W3 Schools - SOAP Tutorial:
http://www.w3schools.com/soap/
W3 Schools - Web Services Tutorial:
http://www.w3schools.com/webservices/
W3 Schools - WSDL Tutorial:
http://www.w3schools.com/wsdl/
Welcome to WSIF: Web Services Invocation Framework:
http://ws.apache.org/wsif/

rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com

74

rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com

75

También podría gustarte