1 web services: conceitos e transações ivan neto

32
1 Web Services: Conceitos e Transações Ivan Neto

Upload: luan-triano

Post on 07-Apr-2016

233 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1 Web Services: Conceitos e Transações Ivan Neto

1

Web Services: Conceitos e Transações

Ivan Neto

Page 2: 1 Web Services: Conceitos e Transações Ivan Neto

2

Roteiro

1. O que são Web Services?2. Por que Web Services?3. Tecnologias básicas de Web Services4. Criando um Web Service5. Transações para Web Services

Previsão: aprox. 1h

Page 3: 1 Web Services: Conceitos e Transações Ivan Neto

3

1. O que são Web Services?

Page 4: 1 Web Services: Conceitos e Transações Ivan Neto

4

O que são Web Services?

“Web Services” são uma tecnologia para computação distribuída baseada na Web.

Mais uma! OMG CORBA Java RMI Microsoft DCOM

Page 5: 1 Web Services: Conceitos e Transações Ivan Neto

5

O que é um Web Service? Componente identificado por uma URI Invocações feitas usando XML Operações descritas em XML Protocolos de transporte: HTTP, SMTP, etc

Requisição XML

Resposta XMLComponente

<? xml version=“1.0” ?>

<operation name=...><operation name=...>

Page 6: 1 Web Services: Conceitos e Transações Ivan Neto

6

envólucro

Exemplo de Web Service

ObjetoJava

op1

opn...

URL: http://www.meudominio.com.br/meuWebService

Requisição XML

Resposta XML

Page 7: 1 Web Services: Conceitos e Transações Ivan Neto

7

Mais exemplos de Web Services

BDsp_1

sp_n...

envólucro

envólucro

EJBop1

opn...

Requisição XML

Resposta XML

Requisição XML

Resposta XML

Page 8: 1 Web Services: Conceitos e Transações Ivan Neto

8

Alguns comentários O formato das mensagens XML é

padronizado (SOAP) O formato de exposição da interface de um

Web Service é padronizado (WSDL)

Page 9: 1 Web Services: Conceitos e Transações Ivan Neto

9

Resumindo Web Services são componentes capazes de

criar e processar mensagens SOAP

Web ServiceClienteSOAP

SOAP

<? xml version=“1.0” ?>

<operation name=...><operation name=...>

Page 10: 1 Web Services: Conceitos e Transações Ivan Neto

10

2. Por que Web Services?

Page 11: 1 Web Services: Conceitos e Transações Ivan Neto

11

Pontos fracos de outras tecnologias Microsoft DCOM

Proprietário Uma única implementação

Java RMI Só Java

OMG CORBA Complexidade

Page 12: 1 Web Services: Conceitos e Transações Ivan Neto

12

Web Services e CORBA Web Services são uma nova maneira de

fazer coisas que temos disponíveis em CORBA há anos

CORBA é complexo Web Services também!

Page 13: 1 Web Services: Conceitos e Transações Ivan Neto

13

O que Web Services têm de especial? Interoperabilidade

Independente de S.O., linguagem de programação Baseados em padrões abertos Grande apoio da indústria

Parte da arquitetura J2EE Microsoft (.NET)

Uso intenso de XML (amplamente difundido) Integração B2B Troca de documentos

Page 14: 1 Web Services: Conceitos e Transações Ivan Neto

14

Desvantagens de Web Services em relação a CORBA Uso de mensagens XML implica em um

desempenho inferior CORBA é mais maduro Nem sempre XML é mais fácil de ler

(WSDL x CORBA IDL) Implementações de SOAP ainda não são

100% compatíveis

Page 15: 1 Web Services: Conceitos e Transações Ivan Neto

15

3. Tecnologias básicas de Web Services

Page 16: 1 Web Services: Conceitos e Transações Ivan Neto

16

O que uma tecnologia para computação distribuída precisa?

Web Services CORBA RMI

Comunicação SOAP GIOP JRMP

IDL WSDL CORBA IDL Java

Registro UDDI Serviço de nomes

RMI Registry

Page 17: 1 Web Services: Conceitos e Transações Ivan Neto

17

Comunicação: Simple Object Access Protocol (SOAP) Protocolo de comunicação entre Web Services Baseado em XML (textual) Independente de protocolo de transporte

Protocolos disponibilizados: HTTP, SMTP, FTP, etc Mais comum: SOAP sobre HTTP

Evita problemas com firewalls

Permite chamadas de método remoto e troca de documentos

Page 18: 1 Web Services: Conceitos e Transações Ivan Neto

18

Formato de uma mensagem SOAP

<?xml version="1.0" encoding="UTF-8"?>

<Envelope> <Header> ... </Header> <Body> ... </Body></Envelope>

Page 19: 1 Web Services: Conceitos e Transações Ivan Neto

19

Chamada de método remoto (RPC)

<?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:setCounter xmlns:ns1="http://meuws.org/"> <int_1>100</int_1> </ns1:setCounter> </soapenv:Body></soapenv:Envelope>

Page 20: 1 Web Services: Conceitos e Transações Ivan Neto

20

Troca de documento<?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:ListaDeCompras xmlns:ns1="http://meuws.org/"> <Item id=“1”/> <Item id=“1001”/> </ns1:ListaDeCompras> </soapenv:Body></soapenv:Envelope>

Page 21: 1 Web Services: Conceitos e Transações Ivan Neto

21

Web Services Description Language (WSDL) Utilizado para definir as operações

suportadas por um Web Service Equivalente a IDL (mas é baseado em

XML) Define o endereço de um Web Service Clientes usam o WSDL para gerar um stub

e interagir com o Web Service

Page 22: 1 Web Services: Conceitos e Transações Ivan Neto

22

Universal Description, Discovery and Integration (UDDI) Registro de Web Services Serviço de Nomes Permite publicação e descoberta de Web

Services Funciona também como um serviços de

negociação (trading service)

Page 23: 1 Web Services: Conceitos e Transações Ivan Neto

23

4. Criando um Web Service

Page 24: 1 Web Services: Conceitos e Transações Ivan Neto

24

Criando a Service Endpoint Interface (SEI)

public interface Organization extends Remote { String getContactInfo(String organization) throws RemoteException;}

Tem que estender Remote Todos os métodos lançam RemoteException

Page 25: 1 Web Services: Conceitos e Transações Ivan Neto

25

Escrever a implementaçãopublic class OrganizationJSEEndpoint implements Organization { public String getContactInfo(String org) { return "The '" + org + "' is currently out

of office, please call again."; }}

Implementa a operação da interface Organization

Page 26: 1 Web Services: Conceitos e Transações Ivan Neto

26

Gerar WSDL e Mapeamento A ferramenta wscompile do Java Web Services

Developer Pack usa a interface para gerar: WSDL Mapeamento XML Java

É preciso também escrever dois arquivos de configuração na mão: web.xml webservices.xml

Daí é só empacotar tudo num arquivo .war

Page 27: 1 Web Services: Conceitos e Transações Ivan Neto

27

5. Transações para Web Services

Page 28: 1 Web Services: Conceitos e Transações Ivan Neto

28

Introdução Web Services definem duas categorias de

transações Transações atômicas

Muito parecida com CORBA Object Transaction Service (CORBA OTS)

Transações distribuídas de longa duração

Page 29: 1 Web Services: Conceitos e Transações Ivan Neto

29

Especificações (1 de 2) BEA, IBM e Microsoft lançaram um trio

de especificações: WS-Coordination WS-AtomicTransaction WS-BusinessActivity

Page 30: 1 Web Services: Conceitos e Transações Ivan Neto

30

Especificações (2 de 2)

Activation Registration Completion 2PC BusinessAgreement

WS-Coordination

WS-AtomicTransaction

WS-Business

Activity

CreateCoordinationContext Register

CommitRollback

PrepareCommitAbort

Page 31: 1 Web Services: Conceitos e Transações Ivan Neto

31

Fluxo de uma Transação

Cliente Completion 2PCActivation Registration

WS-CoordinationWS-Atomic

TransactionWeb Service

create ctxctx

registercompletion

método de negócio (ctx)register 2PC

registered 2PC

commitprepare

preparedcommit

committedcommitted

resposta

Page 32: 1 Web Services: Conceitos e Transações Ivan Neto

32

Referências Alonso, G., Casati, F., Kuno, H., and Machiraju, V. Web

Services: Concepts, Architectures, and Applications. Springer Verlag, 2003.

Introduction to Web services and the WSDK V5.1 (www.ibm.com/developerWoks)

Web Services and CORBA (www.xs4all.nl/~irmen/comp/CORBA_vs_SOAP.html)

Introducing WS-Transactions, Arjuna Technology Report (http://www.arjuna.com/library/reports/)