REST com JSF 2 e HTML 5
                                           Vinny
                                          @guiajava

                                     Instrutor Java da VOffice


                                                                 Globalcode – Open4education
segunda-feira, 24 de outubro de 11                                                        1
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
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
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
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
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
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
JSF 2
        Java Server Faces




                                     Globalcode – Open4education
segunda-feira, 24 de outubro de 11                            8
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
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
JSF 2 - exemplos
        ScrumToys
             projeto no Netbeans


        Richfaces demo
             http://richfaces-showcase.appspot.com/




                                                      Globalcode – Open4education
segunda-feira, 24 de outubro de 11                                             11
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
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
HTML 5 - exemplos
        HTML 5 Rocks
             http://slides.html5rocks.com




                                            Globalcode – Open4education
segunda-feira, 24 de outubro de 11                                   14
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
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
Opiniões e Contribuições




                                     ?   Globalcode – Open4education
segunda-feira, 24 de outubro de 11                                17

REST com JSF 2 e HTML 5

  • 1.
    REST com JSF2 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 - quandousar é 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 + JSF2 + 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
  • 17.
    Opiniões e Contribuições ? Globalcode – Open4education segunda-feira, 24 de outubro de 11 17