Web Services Uma Introdução - PowerPoint PPT Presentation

yoshino-gen
web services uma introdu o n.
Skip this Video
Loading SlideShow in 5 Seconds..
Web Services Uma Introdução PowerPoint Presentation
Download Presentation
Web Services Uma Introdução

play fullscreen
1 / 26
Download Presentation
Web Services Uma Introdução
53 Views
Download Presentation

Web Services Uma Introdução

- - - - - - - - - - - - - - - - - - - - - - - - - - - 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!