You are on page 1of 26

Web Services

Uma Introdução

Jacques P. Sauvé
DSC/UFCG
2003

c
esumo

‡ 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
± 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 r
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
¢
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

þ
Cenário 3: Supply Chain
Management

‡ Implemente aplicações de SCM


que integrem sistemas de várias
empresas (fornecedores,
parceiros, clientes, ...)

4
Cenário 4: Pesquisa Google via
Programa

‡ Escreva um programa que


recupere as primeiras 10
ocorrências de ³web services´
retornadas pelo Google

V
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

•
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?

×
Uma Solução ± Web Services
1. Como trocar informação em ambiente
heterogêneo para que ambos os lados
entendam?
‡ Usar XML para toda a comunicação
‡ Usar SOAP fazer PC
2. 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
3. Como achar o ³outro lado´?
± Usar UDDI para localizar serviços
4. Como driblar firewalls na comunicação?
‡ Usar binding de SOAP para HTTP c
Uma imagem vale 1000 palavras

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


Usar uma arquitetura orientada a
serviços
‡ Serviço oferece uma API na Internet

cr
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 à  com tags
ã 
 


  
  
  


‡ Os tags podem ser definidos para criar uma
³Aplicação XML´ ou ³Linguagem XML´


Usar SOAP fazer PC

‡ SOAP é uma forma de fazer emote


Procedure Call (PC) usando documentos
XML


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

c4
Descrição WSDL inclui

‡ Descrição/formato de mensagens que


podem ser passadas
± Elementos <types>, <message>
‡ Semântica da passagem de mensagens
(equest-only, request-response, response-
only)
± Dentro do elemento <portType>
‡ Uma codificação usando um transporte
particular
± Elemento <binding>
‡ O endpoint do serviço (uma UL)
± Dentro do elemento <service>
‡ Veremos um exemplo logo
cV
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


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


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

ë
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
ëc
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) ëë
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> (UL para obter serviço)

ër
Google ± main

‡ Examine o programa
GoogleAPIDemo.java
‡ Mostra como usar a classe
GoogleSearch para acessar o
Web Service

ë¢
Ferramentas - Como desenvolver
Web Services?
‡ Tem ferramentas da Sun
± JWSDP com muitas APIs:
‡ JAXP, JAXB, JAX-PC, SAAJ, JAX, 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.

ëþ
Obrigado!

ë4

You might also like