Web Services: Conceitos e Transações

Slides:



Advertisements
Apresentações semelhantes
Desenvolvimento de Sistemas Distribuídos Web Services
Advertisements

Web Services aplicado à Computação em Grade
Sistemas Distribuídos Baseados na Web
Sistemas distribuídos
Web Services Um Web Service é um bloco de software que pode ser acedido pela Internet e usado remotamente por outras aplicações Infra-estrutura para a.
Sistemas Distribuídos Web Services
RMI-IIOP.
Comunicação Distribuída
Introdução aos Serviços Web
Universal Description, Discovery and Integration (UDDI)
Web Services Erika Hmeljevski Estefania Borm Leonardo Malagoli
SOA e Web Services Aluno: Thiago Caproni Tavares
Desenvolvimento de Aplicações Distribuídas
Invocação de Métodos Remotos RMI
1 Comunicação Inter-Processos -> RMI -> RPC -> TCP -> UDP (Abstração de passagem de mensagem)
1 Arquitetura CORBA Repositório de Implementação Repositório de Interface cliente programa cliente proxy ORB Core ou invocação dinâmica servidor ORB Core.
Comunicação Inter-Processos
Área de Desenvolvimento de Sistemas
DAS Sistemas Distribuídos para Automação Industrial
PROGRAMAÇÃO DISTRIBUÍDA EM JAVA Verão/2001
Sistemas Distribuídos
SOA - Arquitetura Orientada a Serviços
Introdução a Arquitetura Orientada a serviços
Tópicos de Sistemas de Informação A
Middleware e Sistemas Distribuídos
Aplicativos Web Com Orientação a Objetos
Minicurso PHP – Parte 2 João Paulo Ribeiro jpribeiro.com
Arquitetura CORBA e Objetos Distribuídos
Tópicos de Sistemas de Informação A
Tópicos de Sistemas de Informação A
Web Services Uninorte Semana de Tecnologia da Informação
CORBA e Desenvolvimento Baseado em Componentes
Chamada Remota de Procedimentos
Web Services Desmistificando o pré-conceito.
Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 07.
Concorrência e Java RMI
Arquitetura SOA e Oracle SOA SUITE
T. D. S. I. PARA WEB Prof. Emmanuel Nolêto. Java RMI.
Tecgraf PUC-Rio maio de 2011 Principais conceitos de CORBA.
Da Introdução à Prática
Java RMI João Gabriel (jggxm).
RMI - JAVA.
Interface Web Services Renato De Giovanni Tim Sutton Centro de Referência em Informação Ambiental, CrIA.
RPC and Web Service André Pereira.
Comunicação.
Introdução a JEE Marco A. S. Reis Arquiteto de Software Abril/2011.
Gerenciamento baseado na Web
Web Services Equipe: Cláudia Brito Lyra Nunes da Silva
RMI Objetos Distribuídos Luiz C. D´oleron SCJP
.NET com C#.  Conceitos e Características  Vantagens do SOAP  Descrição do WebService  Gerenciamento de Estados  UDDI  Novidades do Framework 2.0.
Integrando sistemas através de HTTP + XML. * Muitos processos manuais começam a ser realizados online. * Ferramentas desenvolvidas precisavam ser interoperáveis.
Universidade Federal de Alagoas Instituto de Computação - IC Redes de Computadores 2 Serviços Web Felipe Santos José Oswaldo.
Java – Remote Method Invocation (RMI)
SyncML Apresentação –Introdução Motivação Iniciativa SyncML –XML (eXtensible Markup Language) –Protocolos SyncML –Sincronização em duas vias –Conclusões.
WSDL Web Services Description Language. Tecnologias Relacionadas Web Services SOAP (Simple Object Access Protocol) HTTP (HyperText Markup Language) UDDI.
© Copyright 2005 Rodrigo Rebouças de Almeida ( Estudo de caso: Café Expresso Ltda. A estória de João...
Web Services Marden Menezes Sharp Shooters.NET User’s Group Recife-PE11/11/2002.
1 Web Services Júlio Gerchman 2 Motivação XML Web Services Desacoplar componentes Formato padrão –“Consumível” pela máquina –Legível.
1 Web Services Uma Introdução Jacques P. Sauvé DSC/UFCG 2003.
Computação Distribuída João Bosco Mangueira Sobral CORBA Common Object Request Broker.
Camada de Aplicação Prof. Horácio. Objetivo Apresentar os detalhes específicos dos tipos de aplicação; Apresentar o modelo cliente-servidor; Apresentar.
Pesquisa sobre o uso de Web Service Alunos:Felipe Silveira Israel Andreis Programação Distribuída e Paralela Prof. Dr. Cláudio F. R. Geyer.
WebPTM Web Project and Time Manager Autor: Daniel Nicoletti Orientador: Prof. Dr. Carlos Miguel Tobar Toledo Co-Orientador: Murilo Woigt Miranda PONTIFÍCIA.
Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Introdução ao OpenBus.
SOA SOA – Arquitetura Orientada a Serviços Conceitos e Aplicações
YOUR LOGO Tópicos Avançados em Internet Prof. Lincoln Ferreira Dantas Sistemas de Informação UNIESP – Presidente Epitácio.
Web Services / SOA. O cenário de TI nas corporações Novas tendências batiam à porta das corporações Migraram o foco do “gerenciamento de dados” para o.
Web Services Conceitos e Tecnologias Amanda Modesto Suzanna Sandes.
Curso Superior em Redes de Computadores Camada de Aplicação Prof. Sales Filho.
Web Services Conceitos e Tecnologias Amanda Modesto Suzanna Sandes.
Transcrição da apresentação:

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? “Web Services” são uma tecnologia para computação distribuída baseada na Web. Mais uma! OMG CORBA Java RMI Microsoft DCOM

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” ?> <operation name=...> Requisição XML Componente Resposta XML

Exemplo de Web Service Objeto Java envólucro op1 Requisição XML ... opn ... Requisição XML Resposta XML URL: http://www.meudominio.com.br/meuWebService

Mais exemplos de Web Services envólucro BD Requisição XML sp_1 ... Resposta XML sp_n envólucro EJB op1 Requisição XML ... Resposta XML opn

Alguns comentários O formato das mensagens XML é padronizado (SOAP) O formato de exposição da interface de um Web Service é padronizado (WSDL)

Resumindo Web Services são componentes capazes de criar e processar mensagens SOAP Web Service Cliente SOAP <? xml version=“1.0” ?> <operation name=...>

2. Por que Web Services?

Pontos fracos de outras tecnologias Microsoft DCOM Proprietário Uma única implementação Java RMI Só Java OMG CORBA Complexidade

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!

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

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

3. Tecnologias básicas de Web Services

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

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

Formato de uma mensagem SOAP <?xml version="1.0" encoding="UTF-8"?> <Envelope> <Header> ... </Header> <Body> </Body> </Envelope>

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>

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>

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

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)

4. Criando um Web Service

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

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

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

5. Transações para Web Services

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

Especificações (1 de 2) BEA, IBM e Microsoft lançaram um trio de especificações: WS-Coordination WS-AtomicTransaction WS-BusinessActivity

Especificações (2 de 2) WS-Coordination WS-AtomicTransaction Activation Registration Completion 2PC BusinessAgreement WS-Coordination WS-AtomicTransaction WS-Business Activity CreateCoordination Context Commit Rollback Prepare Commit Abort Register

método de negócio (ctx) Fluxo de uma Transação Completion 2PC Activation Registration WS-Coordination WS-Atomic Transaction Cliente Web Service create ctx ctx register completion método de negócio (ctx) register 2PC registered 2PC resposta commit prepare prepared commit committed committed

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/)