Web Services: Conceitos e Transa - PowerPoint PPT Presentation

About This Presentation
Title:

Web Services: Conceitos e Transa

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 ... – PowerPoint PPT presentation

Number of Views:121
Avg rating:3.0/5.0
Slides: 33
Provided by: Francisco173
Category:

less

Transcript and Presenter's Notes

Title: Web Services: Conceitos e Transa


1
Web Services Conceitos e Transações
  • Ivan Neto

2
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

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

lt? xml version1.0 ?gt ltoperation
name...gt ltoperation name...gt
Requisição XML
Componente
Resposta XML
6
Exemplo de Web Service
envólucro
Requisição XML
Resposta XML
URL http//www.meudominio.com.br/meuWebService
7
Mais exemplos de Web Services
envólucro
BD
sp_1
Requisição XML
...
Resposta XML
sp_n
envólucro
EJB
op1
Requisição XML
...
Resposta XML
opn
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

lt? xml version1.0 ?gt ltoperation
name...gt ltoperation name...gt
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 WSDL CORBA IDL Java
Registro UDDI Serviço de nomes RMI 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
  • lt?xml version"1.0" encoding"UTF-8"?gt
  • ltEnvelopegt
  • ltHeadergt
  • ...
  • lt/Headergt
  • ltBodygt
  • ...
  • lt/Bodygt
  • lt/Envelopegt

19
Chamada de método remoto (RPC)
  • lt?xml version"1.0" encoding"UTF-8"?gt
  • ltsoapenvEnvelope
  • xmlnssoapenv"http//schemas.xmlsoap.org/soap/en
    velope/
  • xmlnsxsd"http//www.w3.org/2001/XMLSchema
  • xmlnsxsi"http//www.w3.org/2001/XMLSchema-insta
    nce"gt
  • ltsoapenvBodygt
  • ltns1setCounter xmlnsns1"http//meuws.org/
    "gt
  • ltint_1gt100lt/int_1gt
  • lt/ns1setCountergt
  • lt/soapenvBodygt
  • lt/soapenvEnvelopegt

20
Troca de documento
  • lt?xml version"1.0" encoding"UTF-8"?gt
  • ltsoapenvEnvelope
  • xmlnssoapenvhttp//schemas.xmlsoap.org/soap/env
    elope/
  • xmlnsxsdhttp//www.w3.org/2001/XMLSchema
  • xmlnsxsi"http//www.w3.org/2001/XMLSchema-insta
    nce"gt
  • ltsoapenvBodygt
  • ltns1ListaDeCompras xmlnsns1"http//meuws.org/
    "gt
  • ltItem id1/gt
  • ltItem id1001/gt
  • lt/ns1ListaDeComprasgt
  • lt/soapenvBodygt
  • lt/soapenvEnvelopegt

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çã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

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)
CreateCoordination Context
Commit Rollback
Prepare Commit Abort
Register
31
Fluxo de uma Transação
Cliente
create ctx
ctx
register
completion
método de negócio (ctx)
register 2PC
registered 2PC
resposta
commit
prepare
prepared
commit
committed
committed
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/)
Write a Comment
User Comments (0)
About PowerShow.com