1 / 26

Web Services Uma Introdução

Web Services Uma Introdução. Jacques P. Sauvé DSC/UFCG 2003. Resumo. Cenários problemáticos (45 m) Uma solução: Web Services (60 m) Um exemplo (45 m) Ferramentas (15 m). Cenários Problemáticos. Vamos tentar bolar soluções para aplicações corporativas avançadas

yoshino-gen
Download Presentation

Web Services Uma Introdução

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. Web ServicesUma Introdução Jacques P. Sauvé DSC/UFCG 2003

  2. Resumo • Cenários problemáticos (45 m) • Uma solução: Web Services (60 m) • Um exemplo (45 m) • Ferramentas (15 m)

  3. Cenários Problemáticos • Vamos tentar bolar soluções para aplicações corporativas avançadas • Cenário 1: Portal de Turismo • Cenário 2: Compra Automática • Cenário 3: Supply Chain Management • Cenário 4: Pesquisa Google via Programa

  4. Cenário 1: Portal de Turismo • Implemente um portal realmente automático em que: • O cliente lista seus desejos via HTML • O portal • pesquisa alternativas • escolhe as melhores • faz todas as reservas • fatura o cartão de crédito do cliente • efetua todos os pagamentos • ... automaticamente, sem intervenção humana • Queremos que programasnaveguem na Web, não só humanos

  5. Cenário 2: Compra automática • Implemente uma aplicação para um distribuidor regional de remédios que: • Automaticamente detecte estoque baixo • Procure o melhor lugar no mundo para comprar os produtos • Preço, prazo de entrega, etc. • Emita a ordem de compra eletronicamente

  6. Cenário 3: Supply Chain Management • Implemente aplicações de SCM que integrem sistemas de várias empresas (fornecedores, parceiros, clientes, ...)

  7. Cenário 4: Pesquisa Google via Programa • Escreva um programa que recupere as primeiras 10 ocorrências de “web services” retornadas pelo Google

  8. Características comuns aos cenários • Todos são sistemas distribuídos • Todos funcionam na Internet • Vários envolvem achar (navegar) o que se quer antes de usar • Todos envolvem domínios administrativosdiferentes (empresas diferentes) • Não temos controle sobre a plataforma, linguagem, etc. do outro lado • O outro lado é essencialmente um sistema legado no qual não podemos mexer

  9. Problemas técnicos resultantes • Como trocar informação em ambiente heterogêneo para que ambos os lados entendam? • Como acessar a funcionalidade remota? • Como achar o “outro lado”? • Como driblar firewalls na comunicação?

  10. Uma Solução – Web Services • Como trocar informação em ambiente heterogêneo para que ambos os lados entendam? • Usar XML para toda a comunicação • Usar SOAP fazer RPC • Como saber que “métodos” podem ser chamados e com que parâmetros? • Usar uma arquitetura orientada a serviços • Descrever o serviço remoto usando WSDL • Definir ontologias • Como achar o “outro lado”? • Usar UDDI para localizar serviços • Como driblar firewalls na comunicação? • Usar binding de SOAP para HTTP

  11. Uma imagem vale 1000 palavras

  12. Vamos descrever melhor a solução ...

  13. Usar uma arquitetura orientada a serviços • Serviço oferece uma API na Internet

  14. 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”

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

  16. 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

  17. Descrição WSDL inclui • Descrição/formato de mensagens que podem ser passadas • Elementos <types>, <message> • Semântica da passagem de mensagens (Request-only, request-response, response-only) • Dentro do elemento <portType> • Uma codificação usando um transporte particular • Elemento <binding> • O endpoint do serviço (uma URL) • Dentro do elemento <service> • Veremos um exemplo logo

  18. 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 • Oasis

  19. 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 • Não usaremos UDDI no exemplo que segue

  20. Usar binding de SOAP para HTTP • O binding sobre HTTP, SMTP, etc. permite driblar firewalls com mais facilidade • Qualquer outro protocolo de transporte pode ser usado

  21. Finalmente ... 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

  22. Um Exemplo – Google • http://www.google.com/apis/ contém tudo que você precisa para acessar o Google como Web Service • Primeiro, vamos rodar o exemplo • Execute o comando: • go “web services” • Compare a saída com o uso do Google pelo browser • (se você não estiver na Web, veja resultados em google\resultados-search)

  23. Google - WSDL • Examine GoogleSearch.wsdl • Preste atenção aos elementos • <type> e <message> (formatos) • <portType> (define 3 operações ou “métodos”) • <binding> (usa SOAP sobre HTTP) • <service> (URL para obter serviço)

  24. Google – main • Examine o programa GoogleAPIDemo.java • Mostra como usar a classe GoogleSearch para acessar o Web Service

  25. Ferramentas - Como desenvolver Web Services? • Tem ferramentas da Sun • JWSDP com muitas APIs: • JAXP, JAXB, JAX-RPC, SAAJ, JAXR, JWSDL • Tem ferramentas da IBM • Tem ferramentas da Microsoft (.NET) • Tem ferramentas de outros lugares • Axis do projeto Apache • WSDL2Java converte WSDL para Java • SOAP::Lite para Perl • etc.

  26. Obrigado!

More Related