1 / 45

Estudo de caso:

Estudo de caso:. Café Expresso Ltda. A estória de João. Café Expresso Ltda. Características: Sistema de controle de vendas de café: Implementado em Delphi Interface Windows p/ Desktop Possui um SGBD. Café Expresso Ltda. Um dia o chefe de João traz novos requisitos.

amity
Download Presentation

Estudo de caso:

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Estudo de caso: Café Expresso Ltda. A estória de João...

  2. Café Expresso Ltda. • Características: • Sistema de controle de vendas de café: • Implementado em Delphi • Interface Windows p/ Desktop • Possui um SGBD

  3. 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. Café Expresso Ltda. • Como vou integrar o sistema existente com um novo módulo de acesso à Internet? João pensa... • Terei que reescrever o sistema em Java? ASP?

  5. 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. Café Expresso Ltda. João desesperado... • Já estou reescrevendo o sistema em Java... • Pelo menos o sistema dos fornecedores é escrito em Java??

  7. 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. Café Expresso Ltda. Precisamos ajudar João...

  9. Parte 1 – Introdução Web Services Rodrigo Rebouças de Almeida rodrigor@rodrigor.com

  10. Terminal Terminal Arquiteturas - Histórico • MainFrames Mainframe [ Dados + Lógica + Interface ]

  11. PC PC Cliente Cliente Arquiteturas - Histórico • Arquitetura Cliente-Servidor [ Dados ] Servidor c/ SGBD [ Lógica + Interface ]

  12. Internet Browser Web Browser Web Arquiteturas - Histórico • Arquitetura em n-camadas SGBD Servidor Web Servidor deAplicação [ Lógica ] [ Dados ] [ Interface ]

  13. Internet Cliente O Problema de João... Integrar o sistema legado com um novo sistema Integrar o sistema da empresa com os sistemas dos fornecedores A, B, C Fornecedor A 1 Fornecedor B 2 Fornecedor C Servidor de Aplicação

  14. Vamos tentar resolver o problema de João usando Web Services.

  15. 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. 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. 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 • <pessoa nome=”João”> <frutasFavoritas> <fruta>Manga</fruta> <fruta>Maçã</fruta> <fruta>Uva</fruta> </frutasFavoritas></pessoa> • Os tags podem ser definidos para criar uma “Aplicação XML” ou “Linguagem XML”

  18. Usar SOAP fazer RPC • SOAP é uma forma de fazer Remote Procedure Call (RPC) usando documentos XML

  19. 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. 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. 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. Web services, Arquitetura 3 - Provê serviço Serviço cliente Provedorde serviço << SOAP >> << SOAP >> << SOAP >> 1 - Registra-se 2 - Buscaserviço Serviçode diretório

  23. 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. 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. SOAP

  26. SOAP • Estrutura de uma mensagem SOAP: <SOAP:Envelope xmlns:SOAP= http://schemas.xmlsoap.org/soap/envelope/> <SOAP:Header> <!conteudo do cabecalho > </SOAP:Header> <SOAP:Body> <!conteudo do corpo> </SOAP:Body> </SOAP:Envelope>

  27. 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. Integração entre aplicações dentro de um domínio administrativo XML XML HTML Parser XML Internet SOAP Servidor de Aplicação

  29. 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. 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. Internet WSDL WSDL WSDL WSDL Resolvido o problema, agora João tem seu Sistema integrado com os fornecedores. Fornecedor A << SOAP >> << SOAP >> Café Expresso Ltda. Fornecedor B << SOAP >> Fornecedor C Último detalhe... Como descobrir novos fornecedores??

  32. 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. 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. 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. Internet WSDL WSDL WSDL WSDL João agora pode encontrar outros Fornecedores através de um serviço UDDI. UDDI Service Registram-se Fornecedores XYZ Busca novos fornecedores << SOAP >> Fornecedor A Café Expresso Ltda. << SOAP >> Fornecedor B << SOAP >> Fornecedor C

  36. Internet WSDL WSDL WSDL WSDL João agora pode encontrar outros Fornecedores através de um serviço UDDI. UDDI Service Registram-se Fornecedores XYZ Comunica-se com novos fornecedores <<SOAP>> << SOAP >> Fornecedor A Café Expresso Ltda. << SOAP >> Fornecedor B << SOAP >> Fornecedor C

  37. 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. 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: Lavadorahttp://lavadora.sourceforge.net/

  39. 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. 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. 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. Conclusões • João não foi despedido João com seu salário

  43. Conclusões • O chefe de João conseguiu barrar a concorrência..

  44. Fontes de consulta • Axis User’s Guidehttp://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. Obrigado!! Rodrigo Rebouças de Almeida rodrigor@rodrigor.com http://rodrigor.com

More Related