rest and jee

21
REST e o futuro das aplicações web Rafael Nunes - www.yaw.com.br

Upload: rafael-nunes

Post on 25-Jun-2015

669 views

Category:

Technology


5 download

DESCRIPTION

Arquitetura REST e JEE 6

TRANSCRIPT

Page 1: REST and JEE

REST e o futuro das aplicações web

Rafael Nunes - www.yaw.com.br

Page 2: REST and JEE

Rafael Nunes

Desenvolvedor há mais de uma década

Sócio da YaW

Java, Python e outras coisas menos glamurosas(ASP, VDF7)

Atualmente prestando consultoria para o mercado financeiro

Instrutor da Globalcode há 6 anos

Page 3: REST and JEE

A web, esta velha desconhecida

Mais importante que aprender a última tecnologia da moda, é compreender os fundamentos que a suportam

A Web tem sido fundamentalmente a mesma nas últimas décadas

HTTP – o protocolo que move o mundo

Page 4: REST and JEE

HTTP

Hiper Text Transfer Protocol

Dos tempos imemoriaveis da ARPA NET

Transferência de hipertexto

www.pudim.com.br - facebook.com

Page 5: REST and JEE

Dissecando o HTTP - Request

Abre uma conexão TCP

Monta envelope de request: Cabeçalho: Informações sobre o

usuário/máquina/navegador/sistema operacional/infos da requisição

Corpo: Dados para o processamento da requisição Anexo: Em caso de upload de arquivo

Envia envelope para processamento no servidor

Page 6: REST and JEE

Dissecando o HTTP - Response

Recebe envelope para processamento

Interpreta requisição do usuário

Monta envelope de resposta: Cabeçalho: infos do servidor/infos do conteúdo de

resposta/tamanho da resposta Corpo: Conteúdo da resposta Anexo: Em caso de download de arquivo

Envia envelope e FECHA A CONEXÃO!

Page 7: REST and JEE

HTTP - Características

Stateless/ Sem estado

Não mantém uma conexão de vida longa entre cliente e servidor

Virtude ou limitação?

Comet, HTTP push, HTTP reverso foram criados para manter estado

Page 8: REST and JEE

HTTP - Caracterísicas

Síncrono

Não há resposta sem requisição

Efeito da natureza stateless

Ajax, (Long) Pooling

Page 9: REST and JEE

HTTP - Características

E as sessões?

A má notícia é que elas não existem

A boa notícia é que temos boas alternativas para contornar esta característica

Mas……eu preciso mesmo de sessão na web, o tempo todo?

Page 10: REST and JEE

Web atual

Estamos em um momento de transição: A web ‘tradicional’ HTML5 e suas novas tecnologias(localStorage, session

storage, websockets, SPDY, etc)

REST tem sido ainda mais crucial para a nova web que estamos construindo

Page 11: REST and JEE

Web como plataforma

O que é uma requisição HTTP?R: Uma representação de determinado recurso no servidor web em determinado momento. Ex. http://www.yaw.com.br/screencasts.html

Page 12: REST and JEE

REST

Representation State Transfer

A proposta é continuar com o que temos feito, mas utilizando verdadeiramente o protocolo HTTP

Page 13: REST and JEE

REST

HTTP é feito de verbos

Que ver algo? GET, HEAD, TRACE

Quer modificar algo? PUT, POST, DELETE

Page 14: REST and JEE

REST

HTTP é feito de status:

Foi tudo bem? 20x

O que eu procuro não está mais ai? 30x

Não pedi do jeito certo? 40x

Houve algum problema? 50x

Page 15: REST and JEE

REST e JEE

Especificado pela JSR 127

JAX-RS e Jersey é a implementação de referência

Diversos outros frameworks: RestEasy, SpringMVC, CXF

Page 16: REST and JEE

REST como camada web

É possível criar uma arquitetura REST com JEE desde sempre, com servlets

Não há acoplamento entre cliente e servidor

Cliente pode ser com JSP+JQuery

De quebra ganha uma API de acesso para outras interfaces(Desktop, Mobile, etc)

REST utiliza outras tecnologias(XML, JSON)

Page 17: REST and JEE

REST como camada de integração

Como integramos sistemas? Banco de dados Arquivo txt WebService SOAP(run to the hills)

Tem funcionado há algumas décadas, e não há nada de errado. Mas não tem uma forma mais simples?

Page 18: REST and JEE

REST como camada de serviços

O que é sua aplicação?(regras de negócio? Tecnologias, telas e interfaces?)

Ela pode(e talvez deva) ser isso tudo.

Sua aplicação deve ter uma API(Application Programming Interface) pública

Esta API é quem vai criar um ecossistema em volta da sua aplicação

Page 19: REST and JEE

Exemplos

REST como camada web

REST como camada de integração

REST como API programável

Page 20: REST and JEE

Conclusão

REST é principalmente sobre:

Simplicidade

Possibilidades

Page 21: REST and JEE

Perguntas?

[email protected]

twitter.com/rafanunes

twitter.com/youandwe

www.yaw.com.br