1 web services: conceitos e transações ivan neto
TRANSCRIPT
![Page 1: 1 Web Services: Conceitos e Transações Ivan Neto](https://reader033.vdocuments.site/reader033/viewer/2022061617/570638481a28abb8238f40cb/html5/thumbnails/1.jpg)
1
Web Services: Conceitos e Transações
Ivan Neto
![Page 2: 1 Web Services: Conceitos e Transações Ivan Neto](https://reader033.vdocuments.site/reader033/viewer/2022061617/570638481a28abb8238f40cb/html5/thumbnails/2.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061617/570638481a28abb8238f40cb/html5/thumbnails/3.jpg)
3
1. O que são Web Services?
![Page 4: 1 Web Services: Conceitos e Transações Ivan Neto](https://reader033.vdocuments.site/reader033/viewer/2022061617/570638481a28abb8238f40cb/html5/thumbnails/4.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061617/570638481a28abb8238f40cb/html5/thumbnails/5.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061617/570638481a28abb8238f40cb/html5/thumbnails/6.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061617/570638481a28abb8238f40cb/html5/thumbnails/7.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061617/570638481a28abb8238f40cb/html5/thumbnails/8.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061617/570638481a28abb8238f40cb/html5/thumbnails/9.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061617/570638481a28abb8238f40cb/html5/thumbnails/10.jpg)
10
2. Por que Web Services?
![Page 11: 1 Web Services: Conceitos e Transações Ivan Neto](https://reader033.vdocuments.site/reader033/viewer/2022061617/570638481a28abb8238f40cb/html5/thumbnails/11.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061617/570638481a28abb8238f40cb/html5/thumbnails/12.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061617/570638481a28abb8238f40cb/html5/thumbnails/13.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061617/570638481a28abb8238f40cb/html5/thumbnails/14.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061617/570638481a28abb8238f40cb/html5/thumbnails/15.jpg)
15
3. Tecnologias básicas de Web Services
![Page 16: 1 Web Services: Conceitos e Transações Ivan Neto](https://reader033.vdocuments.site/reader033/viewer/2022061617/570638481a28abb8238f40cb/html5/thumbnails/16.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061617/570638481a28abb8238f40cb/html5/thumbnails/17.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061617/570638481a28abb8238f40cb/html5/thumbnails/18.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061617/570638481a28abb8238f40cb/html5/thumbnails/19.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061617/570638481a28abb8238f40cb/html5/thumbnails/20.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061617/570638481a28abb8238f40cb/html5/thumbnails/21.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061617/570638481a28abb8238f40cb/html5/thumbnails/22.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061617/570638481a28abb8238f40cb/html5/thumbnails/23.jpg)
23
4. Criando um Web Service
![Page 24: 1 Web Services: Conceitos e Transações Ivan Neto](https://reader033.vdocuments.site/reader033/viewer/2022061617/570638481a28abb8238f40cb/html5/thumbnails/24.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061617/570638481a28abb8238f40cb/html5/thumbnails/25.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061617/570638481a28abb8238f40cb/html5/thumbnails/26.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061617/570638481a28abb8238f40cb/html5/thumbnails/27.jpg)
27
5. Transações para Web Services
![Page 28: 1 Web Services: Conceitos e Transações Ivan Neto](https://reader033.vdocuments.site/reader033/viewer/2022061617/570638481a28abb8238f40cb/html5/thumbnails/28.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061617/570638481a28abb8238f40cb/html5/thumbnails/29.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061617/570638481a28abb8238f40cb/html5/thumbnails/30.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061617/570638481a28abb8238f40cb/html5/thumbnails/31.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061617/570638481a28abb8238f40cb/html5/thumbnails/32.jpg)
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/)