aula 6 · 2013-2 programação de sistemas distribuídos e concorrência execução da web service...

20
2013-2 Programação de Sistemas Distribuídos e Concorrência Programação de Sistemas Distribuídos e Concorrência Aula 6 Prof: Carlos Eduardo de Carvalho Dantas ([email protected] ) h ttp://carloseduardoxp.wordpress.com “Ensinar é aprender duas vezes.” – Joseph Joubert

Upload: dinhhuong

Post on 15-Dec-2018

212 views

Category:

Documents


0 download

TRANSCRIPT

2013-2 Programação de Sistemas Distribuídos e Concorrência

Programação de Sistemas

Distribuídos e Concorrência

Aula 6

Prof: Carlos Eduardo de Carvalho Dantas

([email protected])

http://carloseduardoxp.wordpress.com

“Ensinar é aprender duas vezes.” – Joseph Joubert

2013-2 Programação de Sistemas Distribuídos e Concorrência

Namespaces XML

Usados para diferenciar uma tag XML de outra

Ex: sem namespaces

Com namespaces

2013-2 Programação de Sistemas Distribuídos e Concorrência

Namespaces XML

Usados para diferenciar uma tag XML de outra

Ex: sem namespaces

Com namespaces

2013-2 Programação de Sistemas Distribuídos e Concorrência

Namespaces XML

No exemplo do Soap-Ui (aula passada), foi criado um

namespace referenciado pelo prefixo ser

2013-2 Programação de Sistemas Distribuídos e Concorrência

Soap

Simple Object Access Protocol, criado e mantido pelo

World Wide Web Consortium (W3C);

O elemento envelope é um container para os

elementos Header e Body;

O elemento Header contém metadados da requisição

como autenticação e endereço de retorno;

O elemeto Body contém nome, parâmetros.

2013-2 Programação de Sistemas Distribuídos e Concorrência

WSDL - seções

Possui 5 seções bem definidas: Types, Message,

portType, binding e Service

2013-2 Programação de Sistemas Distribuídos e Concorrência

WSDL – Complex Type

A criação de uma classe leva à criação de um

complex Type em Wsdl (Xml Schema)

2013-2 Programação de Sistemas Distribuídos e Concorrência

WSDL – Complex Type

O Complex Type é como se fosse a definição de uma

classe

2013-2 Programação de Sistemas Distribuídos e Concorrência

WSDL - messages

A sessão messages amarra os elementos para

compor os dados que irão trafegar o serviço;

Para cada método são geradas as mensagens de

requisição e resposta

2013-2 Programação de Sistemas Distribuídos e Concorrência

WSDL – port-type

A sessão port-type contém a definição das operações

do serviço em questão, como Request-Response,

one-way, solicit-response e notification

2013-2 Programação de Sistemas Distribuídos e Concorrência

WSDL – distinção entre

elementos Os elementos types, message e port-type são

obrigatórios e definem o modelo de mensagens,

configurando um WSDL Abstrato, podendo ser

utilizado em protocolos como SOAP ou REST;

Os elementos binding e service não são obrigatórios,

e vinculam os detalhes sobre como este serviço será

trafegado.

2013-2 Programação de Sistemas Distribuídos e Concorrência

WSDL - binding

O elemento binding vincula o serviço a um protocolo

de aplicação, como por exemplo SOAP, através da

tag soap:binding;

2013-2 Programação de Sistemas Distribuídos e Concorrência

WSDL – submodelos de

transporte Document/literal style;

Document/literal wrapped style;

Document/encoded style;

RPC/literal style;

RPC/encoded style.

Document trafega apenas os parâmetros das

solicitações;

RPC emprega o nome do método definido no WSDL

2013-2 Programação de Sistemas Distribuídos e Concorrência

WSDL – Service

Informa qual é o endereço que o envelope SOAP

deverá ser enviado.

2013-2 Programação de Sistemas Distribuídos e Concorrência

Configuração JaxB

Mapeamento do XmlAcessorType

2013-2 Programação de Sistemas Distribuídos e Concorrência

Configuração JaxB

Configurar retorno

2013-2 Programação de Sistemas Distribuídos e Concorrência

Configuração JaxB - sobrecarga

Configurar retorno

2013-2 Programação de Sistemas Distribuídos e Concorrência

Configuração JaxB - sobrecarga

Configurar retorno (repare as seções binding e

portType para a nova WSDL gerada)

2013-2 Programação de Sistemas Distribuídos e Concorrência

Execução da Web Service

O servidor HTTP habilitado na porta 8080 recebe a

requisição e identificou que o contexto é teste;

O contexto teste está ligado à uma instância da cl

asse service.Servico no Servidor;

Ao mandar a tag ser:getCliente em body, mostramos

que é uma requisição de buscar o cliente, sem

parâmetro;

O servidor extrai o conteúdo de body e faz o parsing

do conteúdo para objetos (usando JaxB).

2013-2 Programação de Sistemas Distribuídos e Concorrência

Referências Bibliográficase

[1] Sistemas distribuídos – princípios e paradigmas;

[2] SOA Aplicado – Alexandre Saudate