A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

© Copyright 2005 Rodrigo Rebouças de Almeida (http://rodrigor.com) Estudo de caso: Café Expresso Ltda. A estória de João...

Apresentações semelhantes


Apresentação em tema: "© Copyright 2005 Rodrigo Rebouças de Almeida (http://rodrigor.com) Estudo de caso: Café Expresso Ltda. A estória de João..."— Transcrição da apresentação:

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


Carregar ppt "© Copyright 2005 Rodrigo Rebouças de Almeida (http://rodrigor.com) Estudo de caso: Café Expresso Ltda. A estória de João..."

Apresentações semelhantes


Anúncios Google