Web Services Uma Introdução

26
1 Web Services Uma Introdução Jacques P. Sauvé DSC/UFCG 2003

description

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 - PowerPoint PPT Presentation

Transcript of Web Services Uma Introdução

Page 1: Web Services Uma Introdução

1

Web ServicesUma Introdução

Jacques P. Sauvé

DSC/UFCG

2003

Page 2: Web Services Uma Introdução

2

Resumo

• Cenários problemáticos (45 m)

• Uma solução: Web Services (60 m)

• Um exemplo (45 m)

• Ferramentas (15 m)

Page 3: Web Services Uma Introdução

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

Page 4: Web Services Uma Introdução

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

Page 5: Web Services Uma Introdução

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

Page 6: Web Services Uma Introdução

6

Cenário 3: Supply Chain Management

• Implemente aplicações de SCM que integrem sistemas de várias empresas (fornecedores, parceiros, clientes, ...)

Page 7: Web Services Uma Introdução

7

Cenário 4: Pesquisa Google via Programa

• Escreva um programa que recupere as primeiras 10 ocorrências de “web services” retornadas pelo Google

Page 8: Web Services Uma Introdução

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

Page 9: Web Services Uma Introdução

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?

Page 10: Web Services Uma Introdução

10

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 RPC

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

Page 11: Web Services Uma Introdução

11

Uma imagem vale 1000 palavras

Page 12: Web Services Uma Introdução

12

Vamos descrever melhor a solução ...

Page 13: Web Services Uma Introdução

13

Usar uma arquitetura orientada a serviços

• Serviço oferece uma API na Internet

Page 14: Web Services Uma Introdução

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”

Page 15: Web Services Uma Introdução

15

Usar SOAP fazer RPC

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

Page 16: Web Services Uma Introdução

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

Page 17: Web Services Uma Introdução

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

Page 18: Web Services Uma Introdução

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

Page 19: Web Services Uma Introdução

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

Page 20: Web Services Uma Introdução

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

Page 21: Web Services Uma Introdução

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

Page 22: Web Services Uma Introdução

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)

Page 23: Web Services Uma Introdução

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)

Page 24: Web Services Uma Introdução

24

Google – main

• Examine o programa GoogleAPIDemo.java

• Mostra como usar a classe GoogleSearch para acessar o Web Service

Page 25: Web Services Uma Introdução

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.

Page 26: Web Services Uma Introdução

26

Obrigado!