Upload
nakia
View
44
Download
0
Embed Size (px)
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
Citation preview
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/)