SlideShare a Scribd company logo
1 of 17
Arquitetura JavaJEE no
      AppEngine
  Rafael Nunes e Eder Magalhães
         www.yaw.com.br




                                  Globalcode – Open4education
Agenda
 Introdução
 Histórico
 Frameworks Web Java
 Server-Side ou Client-Side
 Serviços AppEngine
 Exemplos




                              Globalcode – Open4education
Introdução
 O que é AppEngine?




                      Globalcode – Open4education
Histórico
 Um ano após Python
 Versão 1.5.0(Dez/2010) igualou versões
 2011 – sair do Preview




                                     Globalcode – Open4education
Histórico
 Mudança no modelo de cobrança
 Cobrança por instância
 Multhi-Thread #FTW




                                 Globalcode – Open4education
Frameworks Web
 JSF 1.2 e JSF 2.0(hacks)
 Struts2(hacks)




                            Globalcode – Open4education
Frameworks Web
 Degradam o cold-start
 Ciclo de vida pesado
 Alto consumo de memória




                           Globalcode – Open4education
Server x Client
 Cloud Computing != duendes numa nuvem
 cuidando dos servidores
 Mudança de arquitetura, paradigmas, etc




                                    Globalcode – Open4education
Client Side
 GWT
 EXTJS
 Jquery
 SpringMVC+REST+Stateless no lado do servidor




                                   Globalcode – Open4education
Vantagens
 Otimização de recursos
 Otimização de gastos
 Processamento pro lado do cliente
 Servidor Stateless e Multithread




                                     Globalcode – Open4education
Persistência
 JPA
 Modelo relacional x Modelo Não relacional
 Acesso direto




                                      Globalcode – Open4education
Persistência
 Objectify
 Não tenta simular ORM
 API de acesso bem próximo do Datastore
 Único que se aproveita da API assíncrona




                                     Globalcode – Open4education
Serviços
 JSRs
   (Cache = Jcache,Mail = Javamail,HTTP = java.net.URL)
 Não reinventar a roda




                                          Globalcode – Open4education
Exemplo
 ExtJS e SpringMVC/REST




                          Globalcode – Open4education
Exemplo
 Spring Roo + GWT




                    Globalcode – Open4education
Dúvidas




          ¿

              Globalcode – Open4education
Obrigado!
              rafael@yaw.com.br
               eder@yaw.com.br
               www.yaw.com.br
            (www.yaw.com.br/open)

             twitter.com/rafanunes
              twitter.com/edermag
             twitter.com/youandwe


                                     Globalcode – Open4education

More Related Content

Similar to Google AppEngine and JEE

TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escalaTDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escalaCleber Dantas
 
Desenvolvimento RIA com GWT e Spring
Desenvolvimento RIA com GWT e SpringDesenvolvimento RIA com GWT e Spring
Desenvolvimento RIA com GWT e SpringEder Magalhães
 
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrões
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrõesMC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrões
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrõesRodrigo Cândido da Silva
 
Criando uma Aplicação Web com Spring Roo em 5 minutos!
Criando uma Aplicação Web com Spring Roo em 5 minutos!Criando uma Aplicação Web com Spring Roo em 5 minutos!
Criando uma Aplicação Web com Spring Roo em 5 minutos!Dr. Spock
 
Spring 3: Uma Plataforma além do Framework
Spring 3: Uma Plataforma além do FrameworkSpring 3: Uma Plataforma além do Framework
Spring 3: Uma Plataforma além do FrameworkDr. Spock
 
Os 5 Níveis de Reuso
Os 5 Níveis de ReusoOs 5 Níveis de Reuso
Os 5 Níveis de ReusoDr. Spock
 
Dicas e truques sobre performance em JavaEE, JPA e JSF
Dicas e truques sobre performance em JavaEE, JPA e JSFDicas e truques sobre performance em JavaEE, JPA e JSF
Dicas e truques sobre performance em JavaEE, JPA e JSFDr. Spock
 
JavaEE 7, na era do cloud computing
JavaEE 7, na era do cloud computingJavaEE 7, na era do cloud computing
JavaEE 7, na era do cloud computingEder Magalhães
 
Implementando aplicativos Web com JSF
Implementando aplicativos Web com JSF Implementando aplicativos Web com JSF
Implementando aplicativos Web com JSF Otávio Santana
 
JBoss Forge TDC - 2012 Florianópolis
JBoss Forge TDC - 2012 FlorianópolisJBoss Forge TDC - 2012 Florianópolis
JBoss Forge TDC - 2012 FlorianópolisGeorge Gastaldi
 
Gerando aplicações Spring Boot e AngularJS com gerador de código JHipster
Gerando aplicações Spring Boot e AngularJS com gerador de código JHipsterGerando aplicações Spring Boot e AngularJS com gerador de código JHipster
Gerando aplicações Spring Boot e AngularJS com gerador de código JHipsterEdlaine Zamora
 
JSF 2 - Java "Super" Faces
JSF 2 - Java "Super" FacesJSF 2 - Java "Super" Faces
JSF 2 - Java "Super" FacesFilipe Portes
 
TDC 2012 Trilha – Android University
TDC 2012 Trilha – Android UniversityTDC 2012 Trilha – Android University
TDC 2012 Trilha – Android UniversityInael Rodrigues
 
Amazon WebServices Architectur
Amazon WebServices ArchitecturAmazon WebServices Architectur
Amazon WebServices ArchitecturRafael Nunes
 
RubyConf 17 - Colocando sua aplicação vue nos trilhos
RubyConf 17 - Colocando sua aplicação vue nos trilhosRubyConf 17 - Colocando sua aplicação vue nos trilhos
RubyConf 17 - Colocando sua aplicação vue nos trilhosFelipe Gadelha Ruoso
 
TDC SP 2016 - Construindo um microserviço Java 100% funcional em 30 minutos
TDC SP 2016 - Construindo um microserviço Java 100% funcional em 30 minutosTDC SP 2016 - Construindo um microserviço Java 100% funcional em 30 minutos
TDC SP 2016 - Construindo um microserviço Java 100% funcional em 30 minutosRafael Chaves
 

Similar to Google AppEngine and JEE (20)

TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escalaTDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
 
Desenvolvimento RIA com GWT e Spring
Desenvolvimento RIA com GWT e SpringDesenvolvimento RIA com GWT e Spring
Desenvolvimento RIA com GWT e Spring
 
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrões
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrõesMC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrões
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrões
 
Criando uma Aplicação Web com Spring Roo em 5 minutos!
Criando uma Aplicação Web com Spring Roo em 5 minutos!Criando uma Aplicação Web com Spring Roo em 5 minutos!
Criando uma Aplicação Web com Spring Roo em 5 minutos!
 
Spring 3: Uma Plataforma além do Framework
Spring 3: Uma Plataforma além do FrameworkSpring 3: Uma Plataforma além do Framework
Spring 3: Uma Plataforma além do Framework
 
Os 5 Níveis de Reuso
Os 5 Níveis de ReusoOs 5 Níveis de Reuso
Os 5 Níveis de Reuso
 
Dicas e truques sobre performance em JavaEE, JPA e JSF
Dicas e truques sobre performance em JavaEE, JPA e JSFDicas e truques sobre performance em JavaEE, JPA e JSF
Dicas e truques sobre performance em JavaEE, JPA e JSF
 
JavaEE 7, na era do cloud computing
JavaEE 7, na era do cloud computingJavaEE 7, na era do cloud computing
JavaEE 7, na era do cloud computing
 
Introducao Spring ROO
Introducao Spring ROOIntroducao Spring ROO
Introducao Spring ROO
 
Implementando aplicativos Web com JSF
Implementando aplicativos Web com JSF Implementando aplicativos Web com JSF
Implementando aplicativos Web com JSF
 
Spring Roo
Spring RooSpring Roo
Spring Roo
 
JBoss Forge TDC - 2012 Florianópolis
JBoss Forge TDC - 2012 FlorianópolisJBoss Forge TDC - 2012 Florianópolis
JBoss Forge TDC - 2012 Florianópolis
 
Gerando aplicações Spring Boot e AngularJS com gerador de código JHipster
Gerando aplicações Spring Boot e AngularJS com gerador de código JHipsterGerando aplicações Spring Boot e AngularJS com gerador de código JHipster
Gerando aplicações Spring Boot e AngularJS com gerador de código JHipster
 
JSF 2 - Java "Super" Faces
JSF 2 - Java "Super" FacesJSF 2 - Java "Super" Faces
JSF 2 - Java "Super" Faces
 
TDC 2012 Trilha – Android University
TDC 2012 Trilha – Android UniversityTDC 2012 Trilha – Android University
TDC 2012 Trilha – Android University
 
Amazon WebServices Architectur
Amazon WebServices ArchitecturAmazon WebServices Architectur
Amazon WebServices Architectur
 
RubyConf 17 - Colocando sua aplicação vue nos trilhos
RubyConf 17 - Colocando sua aplicação vue nos trilhosRubyConf 17 - Colocando sua aplicação vue nos trilhos
RubyConf 17 - Colocando sua aplicação vue nos trilhos
 
TDC 2012 - JDF
TDC 2012 - JDFTDC 2012 - JDF
TDC 2012 - JDF
 
TDC SP 2016 - Construindo um microserviço Java 100% funcional em 30 minutos
TDC SP 2016 - Construindo um microserviço Java 100% funcional em 30 minutosTDC SP 2016 - Construindo um microserviço Java 100% funcional em 30 minutos
TDC SP 2016 - Construindo um microserviço Java 100% funcional em 30 minutos
 
REST com JSF 2 e HTML 5
REST com JSF 2 e HTML 5REST com JSF 2 e HTML 5
REST com JSF 2 e HTML 5
 

More from Rafael Nunes

Introdução ao Jython
Introdução ao JythonIntrodução ao Jython
Introdução ao JythonRafael Nunes
 
Arquitetura Web no AWS
Arquitetura Web no AWSArquitetura Web no AWS
Arquitetura Web no AWSRafael Nunes
 
Introdução ao Google AppEngine
Introdução ao Google AppEngineIntrodução ao Google AppEngine
Introdução ao Google AppEngineRafael Nunes
 
Desenvolvimento web simples com Python e DJango
Desenvolvimento web simples com Python e DJangoDesenvolvimento web simples com Python e DJango
Desenvolvimento web simples com Python e DJangoRafael Nunes
 
JSF 2.0 + Google AppEngine
JSF 2.0 + Google AppEngineJSF 2.0 + Google AppEngine
JSF 2.0 + Google AppEngineRafael Nunes
 
Introdução ao Adobe Flex
Introdução ao Adobe FlexIntrodução ao Adobe Flex
Introdução ao Adobe FlexRafael Nunes
 
JEE 6 e REST - O que vem por ai
JEE 6 e REST - O que vem por aiJEE 6 e REST - O que vem por ai
JEE 6 e REST - O que vem por aiRafael Nunes
 
RESTful Web Services
RESTful Web ServicesRESTful Web Services
RESTful Web ServicesRafael Nunes
 

More from Rafael Nunes (11)

REST and JEE
REST and JEEREST and JEE
REST and JEE
 
Introdução ao Jython
Introdução ao JythonIntrodução ao Jython
Introdução ao Jython
 
Arquitetura Web no AWS
Arquitetura Web no AWSArquitetura Web no AWS
Arquitetura Web no AWS
 
Django no AWS
Django no AWSDjango no AWS
Django no AWS
 
Introdução ao Google AppEngine
Introdução ao Google AppEngineIntrodução ao Google AppEngine
Introdução ao Google AppEngine
 
Jsf2 gae
Jsf2 gaeJsf2 gae
Jsf2 gae
 
Desenvolvimento web simples com Python e DJango
Desenvolvimento web simples com Python e DJangoDesenvolvimento web simples com Python e DJango
Desenvolvimento web simples com Python e DJango
 
JSF 2.0 + Google AppEngine
JSF 2.0 + Google AppEngineJSF 2.0 + Google AppEngine
JSF 2.0 + Google AppEngine
 
Introdução ao Adobe Flex
Introdução ao Adobe FlexIntrodução ao Adobe Flex
Introdução ao Adobe Flex
 
JEE 6 e REST - O que vem por ai
JEE 6 e REST - O que vem por aiJEE 6 e REST - O que vem por ai
JEE 6 e REST - O que vem por ai
 
RESTful Web Services
RESTful Web ServicesRESTful Web Services
RESTful Web Services
 

Google AppEngine and JEE

  • 1. Arquitetura JavaJEE no AppEngine Rafael Nunes e Eder Magalhães www.yaw.com.br Globalcode – Open4education
  • 2. Agenda Introdução Histórico Frameworks Web Java Server-Side ou Client-Side Serviços AppEngine Exemplos Globalcode – Open4education
  • 3. Introdução O que é AppEngine? Globalcode – Open4education
  • 4. Histórico Um ano após Python Versão 1.5.0(Dez/2010) igualou versões 2011 – sair do Preview Globalcode – Open4education
  • 5. Histórico Mudança no modelo de cobrança Cobrança por instância Multhi-Thread #FTW Globalcode – Open4education
  • 6. Frameworks Web JSF 1.2 e JSF 2.0(hacks) Struts2(hacks) Globalcode – Open4education
  • 7. Frameworks Web Degradam o cold-start Ciclo de vida pesado Alto consumo de memória Globalcode – Open4education
  • 8. Server x Client Cloud Computing != duendes numa nuvem cuidando dos servidores Mudança de arquitetura, paradigmas, etc Globalcode – Open4education
  • 9. Client Side GWT EXTJS Jquery SpringMVC+REST+Stateless no lado do servidor Globalcode – Open4education
  • 10. Vantagens Otimização de recursos Otimização de gastos Processamento pro lado do cliente Servidor Stateless e Multithread Globalcode – Open4education
  • 11. Persistência JPA Modelo relacional x Modelo Não relacional Acesso direto Globalcode – Open4education
  • 12. Persistência Objectify Não tenta simular ORM API de acesso bem próximo do Datastore Único que se aproveita da API assíncrona Globalcode – Open4education
  • 13. Serviços JSRs (Cache = Jcache,Mail = Javamail,HTTP = java.net.URL) Não reinventar a roda Globalcode – Open4education
  • 14. Exemplo ExtJS e SpringMVC/REST Globalcode – Open4education
  • 15. Exemplo Spring Roo + GWT Globalcode – Open4education
  • 16. Dúvidas ¿ Globalcode – Open4education
  • 17. Obrigado! rafael@yaw.com.br eder@yaw.com.br www.yaw.com.br (www.yaw.com.br/open) twitter.com/rafanunes twitter.com/edermag twitter.com/youandwe Globalcode – Open4education