rest and jee

Post on 25-Jun-2015

669 Views

Category:

Technology

5 Downloads

Preview:

Click to see full reader

DESCRIPTION

Arquitetura REST e JEE 6

TRANSCRIPT

REST e o futuro das aplicações web

Rafael Nunes - www.yaw.com.br

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

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

HTTP

Hiper Text Transfer Protocol

Dos tempos imemoriaveis da ARPA NET

Transferência de hipertexto

www.pudim.com.br - facebook.com

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

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!

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

HTTP - Caracterísicas

Síncrono

Não há resposta sem requisição

Efeito da natureza stateless

Ajax, (Long) Pooling

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?

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

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

REST

Representation State Transfer

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

REST

HTTP é feito de verbos

Que ver algo? GET, HEAD, TRACE

Quer modificar algo? PUT, POST, DELETE

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

REST e JEE

Especificado pela JSR 127

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

Diversos outros frameworks: RestEasy, SpringMVC, CXF

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)

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?

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

Exemplos

REST como camada web

REST como camada de integração

REST como API programável

Conclusão

REST é principalmente sobre:

Simplicidade

Possibilidades

Perguntas?

rafael@yaw.com.br

twitter.com/rafanunes

twitter.com/youandwe

www.yaw.com.br

top related