O documento discute a integração de REST, JSF 2 e HTML 5. Apresenta os conceitos e casos de uso de cada tecnologia e como elas podem ser combinadas, com HTML 5 fornecendo dados e interface, JSF 2 apresentando os dados e REST consumindo serviços de outras aplicações. O documento também lista referências e pede opiniões e contribuições sobre o tema.
Monitorando serviços REST com o Application Insights
REST com JSF 2 e HTML 5
1. REST com JSF 2 e HTML 5
Vinny
@guiajava
Instrutor Java da VOffice
Globalcode – Open4education
segunda-feira, 24 de outubro de 11 1
2. Agenda
Motivos
REST
JSF 2
HTML 5
REST + JSF 2 + HTML 5
Opiniões, Contribuições
Globalcode – Open4education
segunda-feira, 24 de outubro de 11 2
3. Motivos
incentivar o uso de padrões
identificar a adesão e a opinião da comunidade
sobre padrões
identificar a opinião da comunidade sobre
integração
3 instrutores de nome Ra(f|ph)ael
Raphael Adrien - REST + JSF 2 + HTML 5
Rafael Motta - HTML 5
Rafael Nunes - REST
1 instrutor conhecido por Vinny
Vinny - JSF
Globalcode – Open4education
segunda-feira, 24 de outubro de 11 3
4. REST
Representational State Transfer
Transferência de Estado Representacional
não é SOAP
não é RPC
Globalcode – Open4education
segunda-feira, 24 de outubro de 11 4
5. REST - conceitos
Estilo arquitetural para integração de aplicações
Proposto no capítulo 5 da tese de doutorado de
Roy T. Fielding (Apache HTTP Server, Apache
Foundation, HTTP)
Protocolo HTML
GET, POST, DELETE, PUT, HEAD,...
URI
recursos
WADL
JSR 311 - JAX-RS 2.0
Jersey, RESTEasy
Globalcode – Open4education
segunda-feira, 24 de outubro de 11 5
6. REST - quando usar
é necessário publicar serviços em uma aplicação
de modo simples e rápido
utilizar os protocolos da internet simplifica a
doação por parte dos clientes
já se usa padrões JEE no desenvimento de
aplicações Java. Em especial JEE6!
Cache pode ser interessante para fins de
desempenho
Manter estado não é importante
Conteúdo pode ser JSON, Plain, HTML além de
XML
Globalcode – Open4education
segunda-feira, 24 de outubro de 11 6
7. REST - exemplos
acessar o recurso produto (product)
http://localhost:8080/mc98/product/52
HTTP GET - consultar
HTTP DELETE - apagar
HTTP POST - criar
HTTP PUT - alterar
acessar o recurso local (place)
http://localhost:8080/place/joaquina
HTTP GET - consultar
HTTP DELETE - apagar
HTTP POST - criar
HTTP PUT - alterar
* pode-se usar parâmetros ou cabeçalhos para dados complementares
Globalcode – Open4education
segunda-feira, 24 de outubro de 11 7
8. JSF 2
Java Server Faces
Globalcode – Open4education
segunda-feira, 24 de outubro de 11 8
9. JSF 2 - conceitos
especificação JEE para desenvolvimento de
aplicações web com interface de usuário rica
JSR 127, 252, 314, ...
infra-estrutura para desenvolvimento de soluções
ricas para interface de usuário
framework orientado a componentes, não a
controladores
solução server side
centenas de componentes desenvolvido por
terceiros
Richfaces, Primefaces, IceFaces, PrettyFaces,...
Globalcode – Open4education
segunda-feira, 24 de outubro de 11 9
10. JSF 2 - quando usar
A equipe de desenvolvimento precisa de
produtividade para desenvolvimento de interface
de usuário rica
A equipe não domina soluções client side
A equipe não quer reinventar soluções como
manter estado de página após erro, mensagens
múltiplas de validação, atualização de
componentes simples e complexos via AJAX,
conversão de parâmetros, componentes
customizados, etc
JEE é importante para o cliente ou para o
fornecedor Globalcode – Open4education
segunda-feira, 24 de outubro de 11 10
11. JSF 2 - exemplos
ScrumToys
projeto no Netbeans
Richfaces demo
http://richfaces-showcase.appspot.com/
Globalcode – Open4education
segunda-feira, 24 de outubro de 11 11
12. HTML 5 - conceitos
próxima versão do HTML
2012 e 2022
padronização dos recursos largamente usados no
desenvolvimento de interfaces ricas + novas
propostas
Novidades
Audio e Video
Offline Apps
Drag and drop
API: Canvas, Geo, WebWorker, WebSocket, Form,
Communication, Web Storage
Globalcode – Open4education
segunda-feira, 24 de outubro de 11 12
13. HTML 5 - quando usar
recursos usados em interfaces ricas já foram
endereçados
recursos já endereçados resolvem problemas que
estão com soluções “alternativas”, não definitivas
se tua audiência usa predominantemente
navegadores web
se seu código HTML funciona mas poderia ser
mais semântico
se seu código HTML funciona mas poderia ser
mais simples de ler
Globalcode – Open4education
segunda-feira, 24 de outubro de 11 13
14. HTML 5 - exemplos
HTML 5 Rocks
http://slides.html5rocks.com
Globalcode – Open4education
segunda-feira, 24 de outubro de 11 14
15. REST + JSF 2 + HTML 5
HTML 5
pode realizar validação remota dos campos consumindo
de um serviço REST
envia dados para uma aplicação JSF 2 depois que a
internet volta a estar disponível
JSF 2
facilita o reuso de apresentação escrita com HTML 5
apresenta os links gerados com REST
REST
consome dados de outra aplicação e JSF 2 apresenta
junto com os seus dados
mostra mais detalhes quando a posição geográfica
apresentada pelo HTML 5 for explorada
Globalcode – Open4education
segunda-feira, 24 de outubro de 11 15
16. Referências
REST
http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm
http://my.safaribooksonline.com/book/programming/java/9780596809300
http://jcp.org/en/jsr/detail?id=311
JSF 2
http://javaserverfaces.java.net/
http://netbeans.org/kb/samples/scrum-toys.html
MC17, MC 27, MC31 @ Globalcode
HTML 5
http://www.w3.org/TR/html5/
http://html5demos.com/
http://ie.microsoft.com/testdrive/
http://slides.html5rocks.com
REST + JSF 2 + HTML 5
MC98 (este)
Globalcode – Open4education
segunda-feira, 24 de outubro de 11 16