Web Services Uma Introdu - PowerPoint PPT Presentation

About This Presentation
Title:

Web Services Uma Introdu

Description:

Tem ferramentas da Sun JWSDP com muitas APIs: JAXP, JAXB, JAX-RPC, SAAJ, JAXR, JWSDL Tem ferramentas da IBM Tem ferramentas da Microsoft (.NET) ... – PowerPoint PPT presentation

Number of Views:72
Avg rating:3.0/5.0
Slides: 27
Provided by: Jacqu106
Category:
Tags: introdu | services | uma | web

less

Transcript and Presenter's Notes

Title: Web Services Uma Introdu


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 programas naveguem 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 administrativos
    diferentes (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
  1. Como trocar informação em ambiente heterogêneo
    para que ambos os lados entendam?
  2. Como acessar a funcionalidade remota?
  3. Como achar o outro lado?
  4. 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
  • ltpessoa nomeJoãogt ltfrutasFavoritasgt
    ltfrutagtMangalt/frutagt ltfrutagtMaçãlt/frutagt
    ltfrutagtUvalt/frutagt lt/frutasFavoritasgtlt/pessoagt
  • 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 lttypesgt, ltmessagegt
  • Semântica da passagem de mensagens (Request-only,
    request-response, response-only)
  • Dentro do elemento ltportTypegt
  • Uma codificação usando um transporte particular
  • Elemento ltbindinggt
  • O endpoint do serviço (uma URL)
  • Dentro do elemento ltservicegt
  • 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
  • lttypegt e ltmessagegt (formatos)
  • ltportTypegt (define 3 operações ou métodos)
  • ltbindinggt (usa SOAP sobre HTTP)
  • ltservicegt (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
  • SOAPLite para Perl
  • etc.

26
Obrigado!
Write a Comment
User Comments (0)
About PowerShow.com