Web Services: Conceitos e Transações

Post on 05-Jan-2016

44 views 0 download

description

Web Services: Conceitos e Transações. Ivan Neto. Roteiro. O que são Web Services? Por que Web Services? Tecnologias básicas de Web Services Criando um Web Service Transações para Web Services Previsão: aprox. 1h. 1. O que são Web Services?. O que são Web Services?. - PowerPoint PPT Presentation

Transcript of Web Services: Conceitos e Transações

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

3

1. O que são Web Services?

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

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=...>

6

envólucro

Exemplo de Web Service

ObjetoJava

op1

opn

...

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

Requisição XML

Resposta XML

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

8

Alguns comentários O formato das mensagens XML é

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

Web Service é padronizado (WSDL)

9

Resumindo Web Services são componentes capazes de

criar e processar mensagens SOAP

Web ServiceCliente

SOAP

SOAP

<? xml version=“1.0” ?>

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

10

2. Por que Web Services?

11

Pontos fracos de outras tecnologias Microsoft DCOM

Proprietário Uma única implementação

Java RMI Só Java

OMG CORBA Complexidade

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!

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

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

15

3. Tecnologias básicas de Web Services

16

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

Web Services

CORBA RMI

Comunicação SOAP GIOP JRMP

IDL WSDLCORBA

IDLJava

Registro UDDIServiço

de nomesRMI

Registry

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

18

Formato de uma mensagem SOAP

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

<Envelope>

<Header>

...

</Header>

<Body>

...

</Body>

</Envelope>

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>

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>

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

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)

23

4. Criando um Web Service

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

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

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

27

5. Transações para Web Services

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

29

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

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

30

Especificações (2 de 2)

Activation Registration Completion 2PC BusinessAgreement

WS-Coordination

WS-AtomicTransaction

WS-Business

Activity

CreateCoordinationContext Register

CommitRollback

PrepareCommitAbort

31

Fluxo de uma Transação

Cliente Completion 2PCActivation Registration

WS-CoordinationWS-Atomic

TransactionWeb Service

create ctxctx

register

completion

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

registered 2PC

commitprepare

preparedcommit

committedcommitted

resposta

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/)