Buscar

21 - WebServices - III - SOAP

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 20 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 20 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 20 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Programação Servidor 
Sistemas web
XML Web Services
SOAP
SOAP
Simple Object Access Protocol
• SOAP é um protocolo simples para troca de informação em
ambientes heterogêneos, distribuídos e descentralizados
• Define um mecanismo simples, baseado em XML, para• Define um mecanismo simples, baseado em XML, para
envio/recebimento de informações em aplicações diversas
• O SOAP pode ser usado com uma variedade de outros
protocolos que descrevem como uma “SOAP message” pode
ser levada de um ponto a outro. o HTTP é o mais comum
SOAP
Estrutura de Uma Mensagem
Envelope
Header
(Cabeçalho, opcional)
Envelope
Header
(Cabeçalho, opcional)
HTTP
Body
(Corpo, requerido)
Fault
(Falha, opcional)
Body
(Corpo, requerido)
Fault
(Falha, opcional)
SOAPSOAP SOAP/HTTPSOAP/HTTP
SOAP
� ENVELOPE
• Possui o nome do elemento(envelope), seguido pelas definições de
namespace que identificam elementos de outras tecnologias
� HEADER
• Contém informações dos intermediários(quando a mensagem não
vai direto para seu destino e sim passa por alguns nós anteriores)vai direto para seu destino e sim passa por alguns nós anteriores)
� BODY
• Contém as informações para o destino final. Pode ser composto de
um conjunto de entradas representando as informações
SOAP
Papel Stub
� Stub é a camada que fica ao lado da aplicação cliente e ao
lado do servidor
� Em ambos lados, encapsula os procedimentos necessários
para levar e receber uma chamada de operação
Do lado cliente, disponibiliza a interface remota� Do lado cliente, disponibiliza a interface remota
� Dá a transparência ao cliente, fazendo com que a chamada se
pareça local
� Pode ser gerado de forma automática, a partir de uma
definição de interface, por compiladores especializados
denominados stub compilers, utilizando linguagem própria
SOAP
Stub (*)
Interface do 
serviço
(*) Chamada do método
do objeto deserviço
remoto é como se o
objeto fosse local ao
Client.
<?xml version="1.0" encoding="UTF-8"?>
SOAP/HTTP
(Requisição: cliente->servidor)
POST /axis/services/ServicoLivraria HTTP/1.0
Host: 192.168.0.129:8080
Content-Type: text/xml; 
charset=utf-8
User-Agent: Axis/1.1
Content-Length: 444
<?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>
<ns1:consultarLivro
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
xmlns:ns1="http://biblio">
<isbn xsi:type="xsd:string">1</isbn>
</ns1:consultarLivro>
</soapenv:Body>
</soapenv:Envelope>
package biblio;
public interface Livraria extends java.rmi.Remote {
public biblio.Livro consultarLivro(java.lang.String isbn) 
throws java.rmi.RemoteException;
public java.util.Vector consultarISBNs() 
throws java.rmi.RemoteException;
}
Serialização SOAP
(serialização do método)
<consultarLivro xmlns="http://biblio">
<isbn>12</isbn>
</consultarLivro
Módulo V
<?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>
<consultarLivro xmlns="http://biblio">
SOAP
(empacotamento SOAP)
<consultarLivro xmlns="http://biblio">
<isbn>12</isbn>
</consultarLivro
</soapenv:Body>
</soapenv:Envelope>
Módulo V
<?xml version="1.0" encoding="UTF-8"?>
SOAP/HTTP
(Requisição HTTP)
POST /axis/services/ServicoLivraria HTTP/1.0
Host: 192.168.0.129:8080
Content-Type: text/xml; 
charset=utf-8
User-Agent: Axis/1.1
Content-Length: 444
<?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>
<consultarLivro xmlns="http://biblio">
<isbn>12</isbn>
</consultarLivro
</soapenv:Body>
</soapenv:Envelope>
Módulo V
SOAP/HTTP
(Resposta HTTP:servidor -> cliente)
HTTP/1.1 200 OK
Content-Type text/xml;charset=utf-8
Date Mon, 17 Jul 2004 01:48:59 GMT
Server Apache-Coyote/1.1
<?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><soapenv:Body>
<consultarLivroResponse xmlns="http://biblio">
<consultarLivroReturn>
<ano>2005</ano>
<editora>Editora Campus</editora>
<isbn>12</isbn>
<titulo>Programando em XML</titulo>
</consultarLivroReturn>
</consultarLivroResponse>
</soapenv:Body>
</soapenv:Envelope>
Módulo V
SOAP
(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>
<consultarLivroResponse xmlns="http://biblio">
<consultarLivroReturn><consultarLivroReturn>
<ano>2005</ano>
<editora>Editora Campus</editora>
<isbn>12</isbn>
<titulo>Programando em XML</titulo>
</consultarLivroReturn>
</consultarLivroResponse>
</soapenv:Body>
</soapenv:Envelope>
Módulo V
Serialização SOAP
(serialização do objeto devolvido)
package biblio;
public class Livro implements java.io.Serializable {
private int ano;
private java.lang.String editora;
private java.lang.String isbn;
private java.lang.String titulo;
<consultarLivroReturn>
<ano>2005</ano>
<editora>Editora Campus</editora>
<isbn>12</isbn>
<titulo>Programando em XML</titulo>
</consultarLivroReturn>
Módulo V
� O elemento SOAP Fault é usado para tratar 
erros e informações de status para uma 
mensagem SOAP
SOAP Fault
mensagem SOAP
Módulo V
� Uma mensagem de erro de uma mensagem SOAP é
inserida numa estrutura de um elemento SOAP Fault
Se um elemento Fault está presente, ele deve ser
SOAP Fault
� Se um elemento Fault está presente, ele deve ser
inserido dentro de um elemento Body. Um elemento
Fault somente pode estar presente uma vez na
estrutura de mensagem.
Módulo V
� O elemento SOAP Fault tem os seguintes 
sub-elementos:
<faultcode>
Elementos de SOAP Fault
� <faultcode>
Um código que identifica a falha/tipo da 
exceção.
Módulo V
� <faultstring>
A mensagem de exceção
Elementos de SOAP Fault
� <detail>
Informações complementares da exceção.
.
Módulo V
<?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>
SOAP
(Resposta c/exceção)
<soapenv:Fault>
<faultcode>soapenv:Server.userException</faultcode>
<faultstring>java.lang.Exception: Erro ws:Livro Nao Encontrado</faultstring> 
<detail>
<ns1:hostname xmlns:ns1="http://xml.apache.org/axis/">S2</ns1:hostname>
</detail>
</soapenv:Fault>
</soapenv:Body>
</soapenv:Envelope>
Módulo V
Framework AXIS
(incluído no Eclipse)
• O framework AXIS provê um conjunto de classes necessárias
para o desenvolvimento e execução de serviços Web na
plataforma Java, em ambos os lados, cliente e servidor
• Do lado do servidor, o AXIS oferece toda a infra-estrutura de
software necessária à integração com um container Javasoftware necessária à integração com um container Java
• Do lado do cliente, o AXIS disponibiliza as camadas de software
necessárias para o empacotamento, envio e recebimento de
chamadas de operações aos serviços
• Disponibiliza ferramentas utilitárias para a geração das classes
auxiliares que vão estar diretamente integradas à aplicação
cliente
Framework AXIS
(incluído no Eclipse)
Classes Geradas
Automáticas
Aplicação Cliente
Web Service
Desenvolvido
Desenvolvido
Lado do Cliente Lado Servidor

Outros materiais