diga não aos web services

29
Diga não aos web services Maurício Linhares [email protected]

Upload: mauricio-linhares

Post on 25-Jul-2015

1.563 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Diga não aos web services

Diga não aos web services

Maurício Linhares – [email protected]

Page 2: Diga não aos web services

Baseado em fatos irreais…

Eu preciso fazer vendas

usando cartões de

crédito, mas como é que

o meu sistema fala com

as operadoras?

Page 3: Diga não aos web services

Você usa… Sabã… ops, SOAP!

Eu resolvo o seu

problema!

Sou o protocolo padrão

de mensagens dos web

services!

Page 4: Diga não aos web services

Pelo menos ele não usa a cueca

por cima da roupa…

E como é que isso

resolve o meu

problema?

Page 5: Diga não aos web services

Os super-amigos se juntam para

resolver o problema!

WSDL – UDDI – HTTP – SMTP – FTP

Page 6: Diga não aos web services

Tá começando a chatear…

E como é que eu

uso esse monte de

coisa?

Page 7: Diga não aos web services

Mais fácil do que fazer aposentado

tirar empréstimo!

Primeiro, você usa UDDI

para descobrir aonde

estão os serviços que

você está interessado

em consumir.

Page 8: Diga não aos web services

Mais fácil do que falar “Tacho sujo,

chuchu chocho”

Depois você vai consumir

os arquivos WSDL que

descrevem os serviços

com uma ferramenta

geradora de clientes de

web services.

Page 9: Diga não aos web services

Mais fácil que comprar com cartão

corporativo alheio

Aí você vai poder

finalmente enviar as

requisições dos seus

serviços via HTTP,

SMTP, FTP…

Page 10: Diga não aos web services

Que demais!

Então é só eu buscar

as operadoras de

cartão num registro

UDDI, ler os WSDLs

padrão e começar a

vender com cartão de

crédito usando

SMTP?

Page 11: Diga não aos web services

Errr… quase….

Ainda não existe nenhum

registro UDDI pras

operadoras de cartão de

crédito, os formatos das

mensagens que eles

usam não são iguais e

quase ninguém usa

serviços sem HTTP.

Page 12: Diga não aos web services

O mundo real é duro

Registros UDDI são tão lendários que o próximo “Jurassic Park” vai ter um;

O único padrão das mensagens é como o formato delas é definido (WSDL), quase nenhuma industria de peso tem formatos de mensagens padronizados;

Ninguém usa web services em SOAP sem HTTP;

Page 13: Diga não aos web services

Mas ainda fica pior

As ferramentas que geram e consomem

WSDLs costumam não ser muito

amigáveis quando lidam com plataformas

diferentes;

Java tem problemas sérios de

comunicação com serviços .Net;

Page 14: Diga não aos web services

Acabou?

Até mesmo as diversas ferramentas de

geração/consumo de web services tem

incompatibilidades entre si;

O modo de invocação dos web services

mata qualquer possibilidade de se

desenvolver clientes Ajax para eles;

Page 15: Diga não aos web services

Hum…

A “independência” de protocolos de

transporte faz com que os web services

usem muito pouco (ou quase nada) das

capacidades do protocolo de transporte;

Web services sobre HTTP ignoram

completamente as políticas de

idempotência e segurança do protocolo;

Page 16: Diga não aos web services

E agora?

O que é que eu vou

usar?

Page 17: Diga não aos web services

REST

A nova bala de prata

Page 18: Diga não aos web services

Representational State Transfer

Baseado nos princípios da WWW e do procotolo

HTTP;

É um estilo de arquitetura para sistemas

baseado nas experiências da internet;

Apresentado ao mundo na tese de doutorado de

Roy Fielding em 2000;

Page 20: Diga não aos web services

Dissecando os recursos

Endereçabilidade e conexões – recursos

são acessíveis através de endereços e

apontam pra outros recursos (Google?);

Inexistência de estado – requisisões que

operam em recursos devem conter toda a

informação necessária para executar a

operação;

Page 21: Diga não aos web services

Os recursos estão disponíveis em

diversas representações

Qualquer formato que você achar

necessário, XHTML, JSON, XML, texto

puro;

A escolha do formato do recurso é apenas

uma questão de disponibilidade do

servidor;

Page 22: Diga não aos web services

Falando em servidores…

Completamente sem estado, assim como um

servidor HTTP;

Todo estado do servidor deve ser mantido como

recursos, não como “cookies” ou “sessões”;

Servidores são completamente independentes

dos clientes;

Page 23: Diga não aos web services

A interface comum

Existe uma única interface para se

acessar os recursos e ela é igual para

todos;

Se você conhece um, conhece todos;

Page 24: Diga não aos web services

E os clientes?

Podem ser escritos em qualquer linguagem que

suporte o protocolo de comunicação;

Nada de formatos exóticos baseados em XML;

Não dependem de geradores de código ou de

ferramentas complexas de invocação de

serviços;

Integração simplificada com clientes leves,

como navegadores usando Ajax;

Page 25: Diga não aos web services

Quem usa REST?

A internet toda, qualquer aplicação web

pode ser vista, de certa forma, como uma

aplicação REST;

Page 26: Diga não aos web services

Falando sério…

Google (removeu tudo que era SOAP);

Yahoo;

Amazon.com (mas usa SOAP também);

Flickr;

Blogs que usam Atom ou RSS (todos :P);

Page 27: Diga não aos web services

E agora José?

Você não tem mais motivos pra acha que web services são a única solução;

Você sabe que REST é limpo, independente de plataforma ou ferramentas e não tem um nome de duplo sentido (será?);

Você aprendeu que pode dizer a todo mundo que usa REST desde sempre;

Page 28: Diga não aos web services
Page 29: Diga não aos web services

Referências

http://en.wikipedia.org/wiki/Representation

al_State_Transfer

Leonard Richardson & Sam Ruby. Restful

Web Services, O’Reilly;

Steve Graham. Building Web Services

With Java, Developers Library.