Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouJonathan Bardini Coelho Alterado mais de 9 anos atrás
1
© Copyright 2005 Rodrigo Rebouças de Almeida (http://rodrigor.com) Estudo de caso: Café Expresso Ltda. A estória de João...
2
© Copyright 2005 Rodrigo Rebouças de Almeida (http://rodrigor.com) Café Expresso Ltda. Características: Sistema de controle de vendas de café: Implementado em Delphi Interface Windows p/ Desktop Possui um SGBD
3
© Copyright 2005 Rodrigo Rebouças de Almeida (http://rodrigor.com) Café Expresso Ltda. Um dia o chefe de João traz novos requisitos... Preciso vender café através da Internet!! Estou perdendo dinheiro! Quero isso PARA ONTEM!
4
© Copyright 2005 Rodrigo Rebouças de Almeida (http://rodrigor.com) Café Expresso Ltda. Como vou integrar o sistema existente com um novo módulo de acesso à Internet? Terei que reescrever o sistema em Java? ASP? João pensa...
5
© Copyright 2005 Rodrigo Rebouças de Almeida (http://rodrigor.com) Café Expresso Ltda. Enquanto isso, o chefe traz mais requisitos... Meus concorrentes estão vendendo mais variedades de café do que eu! Preciso integrar nosso sistema de venda pela internet com os sistemas de meus fornecedores, e de novos fornecedores, para aumentar meus lucros!!! PARA ONTEM!!!
6
© Copyright 2005 Rodrigo Rebouças de Almeida (http://rodrigor.com) Café Expresso Ltda. João desesperado... Já estou reescrevendo o sistema em Java... Pelo menos o sistema dos fornecedores é escrito em Java??
7
© Copyright 2005 Rodrigo Rebouças de Almeida (http://rodrigor.com) Café Expresso Ltda. O chefe esclarece... Um dos fornecedores tem o sistema em Delphi...... o outro em C++...... o outro em Visual Basic... Preciso disso PRA ONTEM!
8
© Copyright 2005 Rodrigo Rebouças de Almeida (http://rodrigor.com) Café Expresso Ltda. Precisamos ajudar João...
9
Web Services Rodrigo Rebouças de Almeida rodrigor@rodrigor.com Parte 1 – Introdução
10
© Copyright 2005 Rodrigo Rebouças de Almeida (http://rodrigor.com) Arquiteturas - Histórico MainFrames [ Dados + Lógica + Interface ] Mainframe Terminal
11
© Copyright 2005 Rodrigo Rebouças de Almeida (http://rodrigor.com) Arquiteturas - Histórico Arquitetura Cliente-Servidor Servidor c/ SGBD [ Lógica + Interface ] [ Dados ] PC Cliente PC Cliente
12
© Copyright 2005 Rodrigo Rebouças de Almeida (http://rodrigor.com) Arquiteturas - Histórico Arquitetura em n-camadas Browser Web Internet Servidor Web Servidor de Aplicação SGBD [ Interface ] [ Dados ][ Lógica ]
13
© Copyright 2005 Rodrigo Rebouças de Almeida (http://rodrigor.com) O Problema de João... Servidor de Aplicação Internet Fornecedor A Fornecedor B Fornecedor C Cliente 1.Integrar o sistema legado com um novo sistema 2.Integrar o sistema da empresa com os sistemas dos fornecedores A, B, C 1 2
14
© Copyright 2005 Rodrigo Rebouças de Almeida (http://rodrigor.com) Vamos tentar resolver o problema de João usando Web Services.
15
© Copyright 2005 Rodrigo Rebouças de Almeida (http://rodrigor.com) O que é um Web Service? Um Web Service é um ponto de acesso a funcionalidade que pode ser: Localizado dinamicamente Ter sua interface descoberta automaticamente, porque o serviço sabe se descrever Ser chamado na Web
16
© Copyright 2005 Rodrigo Rebouças de Almeida (http://rodrigor.com) Web services Se fundamenta basicamente em três tecnologias: Web Services Description Language (WSDL) Define a interface de acesso ao serviço Simple Object Access Protocol (SOAP) Um protocolo baseado em XML. Permite que os clientes se comuniquem com os provedores de serviço. Universal Description, Discovery and Integration (UDDI) Permite Web services registrarem suas características, permitindo que outras aplicações as encontrem.
17
© Copyright 2005 Rodrigo Rebouças de Almeida (http://rodrigor.com) Usar XML para toda a comunicação Extended Markup Language (XML) Oferece um formato ASCII para trocar qualquer tipo de informação estruturada Usa o “estilo” HTML de markup com tags Manga Maçã Uva Os tags podem ser definidos para criar uma “Aplicação XML” ou “Linguagem XML”
18
© Copyright 2005 Rodrigo Rebouças de Almeida (http://rodrigor.com) Usar SOAP fazer RPC SOAP é uma forma de fazer Remote Procedure Call (RPC) usando documentos XML
19
© Copyright 2005 Rodrigo Rebouças de Almeida (http://rodrigor.com) Descrever o serviço remoto usando WSDL WSDL = Web Services Description Language Pronunciado “wisdle” É uma linguagem XML que contém informação sobre a interface, a semântica, e outros detalhes de chamadas a um Web Service
20
© Copyright 2005 Rodrigo Rebouças de Almeida (http://rodrigor.com) Definir ontologias Precisamos saber o que as coisas significam Exemplo: como mandar uma ordem de serviço se não sei o que cada campo deve conter? Várias organizações definem e padronizam ontologias ebXML RosettaNet (...)
21
© Copyright 2005 Rodrigo Rebouças de Almeida (http://rodrigor.com) Usar UDDI para localizar serviços UDDI = Universal Description, Discovery, and Integration Permite cadastrar serviços e localizá-los Não é necessário usar UDDI se o cliente já tiver o documento WSDL
22
© Copyright 2005 Rodrigo Rebouças de Almeida (http://rodrigor.com) Web services, Arquitetura Serviço de diretório Serviço cliente Provedor de serviço 1 - Registra-se 2 - Busca serviço 3 - Provê serviço >
23
© Copyright 2005 Rodrigo Rebouças de Almeida (http://rodrigor.com) SOAP Simple Object Access Protocol Define uma forma de transferir documentos XML através da Internet; Aplicações cliente se comunicam com Web services usando SOAP como protocolo; SOAP define um envelope para transmissão de mensagens, oferece regras para representar “remote procedure calls” (RPCs);
24
© Copyright 2005 Rodrigo Rebouças de Almeida (http://rodrigor.com) SOAP É o padrão para troca de mensagens usando XML; Desenvolvido sob a supervisão da W3C; Permite a transferência de mensagens através de protocolos de alto nível, como HTTP e SMTP; É mais usado sobre HTTP, pois consegue atravessar firewalls!
25
© Copyright 2005 Rodrigo Rebouças de Almeida (http://rodrigor.com) SOAP
26
© Copyright 2005 Rodrigo Rebouças de Almeida (http://rodrigor.com) SOAP Estrutura de uma mensagem SOAP:
27
© Copyright 2005 Rodrigo Rebouças de Almeida (http://rodrigor.com) João agora não precisa reimplementar o sistema de controle de vendas de café para este ser acessível via Internet... Basta fazer o sistema existente e o módulo de acesso a Internet conversarem usando SOAP e descrever os dados em XML
28
© Copyright 2005 Rodrigo Rebouças de Almeida (http://rodrigor.com) Servidor de Aplicação Internet Parser XML XML SOAP XMLHTML Integração entre aplicações dentro de um domínio administrativo
29
© Copyright 2005 Rodrigo Rebouças de Almeida (http://rodrigor.com) Resolvemos o 1o problema, publicamos o sistema existente na Internet, agora precisamos ligar nosso sistema aos sistemas dos nossos fornecedores! Podemos usar SOAP como protocolo de comunicação! Mas, como saber a interface do sistema do meu fornecedor? Como posso fazer meu sistema iteragir com um sistema escrito em outra linguagem, em outra plataforma?
30
© Copyright 2005 Rodrigo Rebouças de Almeida (http://rodrigor.com) WSDL Web Service Description Language É uma linguagem XML para descrever Web services; Segue um conceito parecido da “Interface Definition Language” (IDL) usado em CORBA; Descreve detalhes como definição de tipos de dados, operações suportadas pelo Web service, formato das mensagens, endereço de rede do Web service, etc.
31
© Copyright 2005 Rodrigo Rebouças de Almeida (http://rodrigor.com) Fornecedor A Fornecedor B Fornecedor C WSDL Internet Café Expresso Ltda. > Resolvido o problema, agora João tem seu Sistema integrado com os fornecedores. Último detalhe... Como descobrir novos fornecedores??
32
© Copyright 2005 Rodrigo Rebouças de Almeida (http://rodrigor.com) UDDI Universal Description, Discovery and Integration Provê um mecanismo para registro e localização de Web services; É um diretório que contém vários Web services registrados, onde associamos um nome a um serviço, como um Web service.
33
© Copyright 2005 Rodrigo Rebouças de Almeida (http://rodrigor.com) UDDI Permite que empresas registrem seus serviços e possam interagir com outras empresas interessadas. UDDI é um Webservice baseado em XML e SOAP; A interação com um serviço UDDI é baseado em interfaces SOAP pré-definidas.
34
© Copyright 2005 Rodrigo Rebouças de Almeida (http://rodrigor.com) UDDI Um registro UDDI é organizado em duas entidades fundamentais: businessEntity : provê informações a sobre a empresa que está publicando o serviço. Contém um ou mais elementos businessService; businessService: representa um serviço provido pela businessEntity; Cada entidade é identificada por uma chave única, permitindo que haja referências a serviços, definições WSDL;
35
© Copyright 2005 Rodrigo Rebouças de Almeida (http://rodrigor.com) Fornecedor A Fornecedor B Fornecedor C WSDL Internet Café Expresso Ltda. > João agora pode encontrar outros Fornecedores através de um serviço UDDI. UDDI Service Fornecedores XYZ Registram-se Busca novos fornecedores
36
© Copyright 2005 Rodrigo Rebouças de Almeida (http://rodrigor.com) Fornecedor A Fornecedor B Fornecedor C WSDL Internet Café Expresso Ltda. > João agora pode encontrar outros Fornecedores através de um serviço UDDI. UDDI Service Fornecedores XYZ Registram-se Comunica-se com novos fornecedores >
37
© Copyright 2005 Rodrigo Rebouças de Almeida (http://rodrigor.com) Ferramentas - Como desenvolver Web Services? Ferramentas da Sun JWSDP com muitas APIs: JAXP, JAXB, JAX-RPC, SAAJ, JAXR, JWSDL Ferramentas da IBM Ferramentas da Microsoft (.NET) Ferramentas da Apache Axis do projeto Apache WSDL2Java converte WSDL para Java
38
© Copyright 2005 Rodrigo Rebouças de Almeida (http://rodrigor.com) Exemplo com Axis Usando JWS Criando um serviço de soma e subtração de números Recursos: Axis Apache Tomcat 5.x Eclipse 3.1 Plugin do Eclipse: Lavadora http://lavadora.sourceforge.net/
39
© Copyright 2005 Rodrigo Rebouças de Almeida (http://rodrigor.com) Passo a passo (1) Passo 1: Download Axis http://ws.apache.org/axis/ Passo 2: Crie contexto Axis no Tomcat Copie (...)/axis/webapps/axis para o diretório webapps do Tomcat Passo 3: Inicie o Tomcat e teste a instalação do Axis Acesse: http://localhost:8080/axis/happyaxis.jsp Corrija as dependências Passo 4: Crie o WebService Crie uma classe Java, altere a extensão de.java para.jws Copie o jws para o contexto do Axis, no tomcat
40
© Copyright 2005 Rodrigo Rebouças de Almeida (http://rodrigor.com) Passo a passo (2) Passo 5: Acesse o WSDL do webservice gerado http://localhost:8080/axis/Calculator.jws?wsdl Passo 6: Instale o plugin do Eclipse Download: http://lavadora.sourceforge.net Descompacte no diretório onde seu Eclipse está instalado Passo 7: Crie o cliente para acessar o serviço No Eclipse: File -> New -> WebServices-> Web Service Client Digite o caminho do wsdl do seu serviço: http://localhost:8080/axis/Calculator.jws?wsdl Passo 8: Execute o cliente e acesse o webservice Veja código no próximo slide
41
© Copyright 2005 Rodrigo Rebouças de Almeida (http://rodrigor.com) Passo a passo (3) Código do cliente public static void main(String[] args) { try { CalculatorServiceLocator locator = new CalculatorServiceLocator(); Calculator calc = locator.getCalculator(); System.out.println(calc.add(10,5)); } catch (ServiceException e) { } catch (RemoteException e) { } }
42
© Copyright 2005 Rodrigo Rebouças de Almeida (http://rodrigor.com) Conclusões João não foi despedido João com seu salário
43
© Copyright 2005 Rodrigo Rebouças de Almeida (http://rodrigor.com) Conclusões O chefe de João conseguiu barrar a concorrência..
44
© Copyright 2005 Rodrigo Rebouças de Almeida (http://rodrigor.com) Fontes de consulta Axis User’s Guide http://ws.apache.org/axis/java/user-guide.html http://java.sun.com/webservices developers.ibm.com/webservices JavaWorld: www.javaworld.com webservices.org www.uddi.org xml.apache.org
45
© Copyright 2005 Rodrigo Rebouças de Almeida (http://rodrigor.com) Obrigado!! Rodrigo Rebouças de Almeida rodrigor@rodrigor.com http://rodrigor.com
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.