Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Mac5700

172 views

Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Mac5700

  1. 1. Web Services: Conceitos eTransações Ivan Neto 1
  2. 2. Roteiro1. 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 2
  3. 3. 1. O que são Web Services? 3
  4. 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 4
  5. 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 <? xml version=“1.0” ?>Requisição XML Componente <operation name=...> Resposta XML <operation name=...> 5
  6. 6. Exemplo de Web Service envólucro op1 Requisição XML Objeto ... Resposta XML Java opn URL: http://www.meudominio.com.br/meuWebService 6
  7. 7. Mais exemplos de Web Services envólucro Requisição XML sp_1 ... BD Resposta XML sp_n envólucro op1 Requisição XML ... EJB Resposta XML opn 7
  8. 8. Alguns comentários O formato das mensagens XML é padronizado (SOAP) O formato de exposição da interface de um Web Service é padronizado (WSDL) 8
  9. 9. 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
  10. 10. 2. Por que Web Services? 10
  11. 11. Pontos fracos de outras tecnologias  Microsoft DCOM  Proprietário  Uma única implementação  Java RMI  Só Java  OMG CORBA  Complexidade 11
  12. 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! 12
  13. 13. O que Web Services têm deespecial? 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 13
  14. 14. Desvantagens de Web Servicesem 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
  15. 15. 3. Tecnologias básicas de WebServices 15
  16. 16. O que uma tecnologia paracomputação distribuída precisa? Web CORBA RMI Services Comunicação SOAP GIOP JRMP CORBA IDL WSDL Java IDL Serviço RMI Registro UDDI de nomes Registry 16
  17. 17. Comunicação: Simple ObjectAccess 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
  18. 18. Formato de uma mensagemSOAP <?xml version="1.0" encoding="UTF-8"?> <Envelope> <Header> ... </Header> <Body> ... </Body> </Envelope> 18
  19. 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> 19
  20. 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> 20
  21. 21. Web Services DescriptionLanguage (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
  22. 22. Universal Description, Discoveryand 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
  23. 23. 4. Criando um Web Service 23
  24. 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 24
  25. 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 25
  26. 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 26
  27. 27. 5. Transações para Web Services 27
  28. 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 28
  29. 29. Especificações (1 de 2) BEA, IBM e Microsoft lançaram um trio de especificações:  WS-Coordination  WS-AtomicTransaction  WS-BusinessActivity 29
  30. 30. Especificações (2 de 2) WS-Coordination WS-AtomicTransaction WS-Business Activity Activation Registration Completion 2PC BusinessAgreementCreateCoordination Commit Prepare Context Register Rollback Commit Abort 30
  31. 31. Fluxo de uma Transação WS-Atomic WS-Coordination TransactionCliente 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
  32. 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/) 32

×