PPT

Propaganda
Web Services: Conceitos e
Transações
Ivan Neto
1
Roteiro
1.
2.
3.
4.
5.
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
2
1. O que são Web Services?
3
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
4
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
<? xml version=“1.0” ?>
Requisição XML
Resposta XML
Componente
<operation name=...>
<operation name=...>
5
Exemplo de Web Service
envólucro
Requisição XML
Resposta XML
op1
...
opn
Objeto
Java
URL: http://www.meudominio.com.br/meuWebService
6
Mais exemplos de Web Services
envólucro
Requisição XML
Resposta XML
sp_1
...
sp_n
BD
envólucro
Requisição XML
Resposta XML
op1
...
opn
EJB
7
Alguns comentários


O formato das mensagens XML é
padronizado (SOAP)
O formato de exposição da interface de um
Web Service é padronizado (WSDL)
8
Resumindo

Web Services são componentes capazes de
criar e processar mensagens SOAP
SOAP
Cliente
Web Service
SOAP
<? xml version=“1.0” ?>
<operation name=...>
<operation name=...>
9
2. Por que Web Services?
10
Pontos fracos de outras tecnologias

Microsoft DCOM



Java RMI


Proprietário
Uma única implementação
Só Java
OMG CORBA

Complexidade
11
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!
12
O que Web Services têm de
especial?

Interoperabilidade



Baseados em padrões abertos
Grande apoio da indústria





Independente de S.O., linguagem de programação
Parte da arquitetura J2EE
Microsoft (.NET)
Uso intenso de XML (amplamente difundido)
Integração B2B
Troca de documentos
13
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
14
3. Tecnologias básicas de Web
Services
15
O que uma tecnologia para
computação distribuída precisa?
Comunicação
IDL
Registro
Web
Services
CORBA
RMI
SOAP
GIOP
JRMP
WSDL
CORBA
IDL
Java
UDDI
Serviço
de nomes
RMI
Registry
16
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
17
Formato de uma mensagem
SOAP
<?xml version="1.0" encoding="UTF-8"?>
<Envelope>
<Header>
...
</Header>
<Body>
...
</Body>
</Envelope>
18
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>
19
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>
20
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
21
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)
22
4. Criando um Web Service
23
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
24
Escrever a implementação
public 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
25
Gerar WSDL e Mapeamento

A ferramenta wscompile do Java Web Services
Developer Pack usa a interface para gerar:



Java
É preciso também escrever dois arquivos de
configuração na mão:



WSDL
Mapeamento XML
web.xml
webservices.xml
Daí é só empacotar tudo num arquivo .war
26
5. Transações para Web Services
27
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
28
Especificações (1 de 2)

BEA, IBM e Microsoft lançaram um trio
de especificações:



WS-Coordination
WS-AtomicTransaction
WS-BusinessActivity
29
Especificações (2 de 2)
WS-Coordination
WS-AtomicTransaction
WS-Business
Activity
Activation Registration Completion
CreateCoordination
Context
Register
Commit
Rollback
2PC
BusinessAgreement
Prepare
Commit
Abort
30
Fluxo de uma Transação
WS-Atomic
WS-Coordination
Cliente
Transaction
Activation Registration
Completion
2PC
Web Service
create ctx
ctx
register
completion
método de negócio (ctx)
register 2PC
registered 2PC
resposta
commit
prepare
prepared
commit
committed
committed
31
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/)
32
Download