Title: Web Services Uma Introdu
1Web ServicesUma Introdução
- Jacques P. Sauvé
- DSC/UFCG
- 2003
2Resumo
- Cenários problemáticos (45 m)
- Uma solução Web Services (60 m)
- Um exemplo (45 m)
- Ferramentas (15 m)
3Cená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
4Cená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
5Cená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
6Cenário 3 Supply Chain Management
- Implemente aplicações de SCM que integrem
sistemas de várias empresas (fornecedores,
parceiros, clientes, ...)
7Cenário 4 Pesquisa Google via Programa
- Escreva um programa que recupere as primeiras 10
ocorrências de web services retornadas pelo
Google
8Caracterí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
9Problemas 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?
10Uma 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
11Uma imagem vale 1000 palavras
12Vamos descrever melhor a solução ...
13Usar uma arquitetura orientada a serviços
- Serviço oferece uma API na Internet
14Usar 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
15Usar SOAP fazer RPC
- SOAP é uma forma de fazer Remote Procedure Call
(RPC) usando documentos XML
16Descrever 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
17Descriçã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
18Definir 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
19Usar 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
20Usar 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
21Finalmente ... 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
22Um 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)
23Google - 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)
24Google main
- Examine o programa GoogleAPIDemo.java
- Mostra como usar a classe GoogleSearch para
acessar o Web Service
25Ferramentas - 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.
26Obrigado!