Java EE 7, na era do Cloud Computing             Eder Magalhães              @edermag            www.yaw.com.br           ...
Agenda!     Serviços de cloud computing atuais;!     A nova filosofia da plataforma Java EE;!     Objetivos da plataforma ...
Computação em nuvem...                  Globalcode	  –	  Open4education
Modelos de serviços para Cloud                             Globalcode	  –	  Open4education
Foco: padrão para PaaS!     Produtos com suporte a Java:!     Amazon Elastic Beanstalk;!     Cloud Foundry;!     Google Ap...
A filosofia ...A plataforma Java EE oferece serviços!                              Globalcode	  –	  Open4education
A nova filosofia !A plataforma Java EE é o serviço!                              Globalcode	  –	  Open4education
Java EE 7, objetivos da especificação !   Metadados e provisionamento automático; !   Elasticidade e escalabilidade autôno...
Modelo de implantação atual ! Mapear as configurações dos serviços utilizados;                                      Global...
Modelo de implantação atual ! Mapear as configurações dos serviços utilizados;      1          2           3              ...
Modelo de implantação atual ! Mapear as configurações dos serviços utilizados;      1          2            3             ...
Auto provisionamento !   Configuração via serviço cloud!      1      2           deploy ear/war                           ...
Multi-tenancy ! Locação da mesma infra-estrutura e/ou aplicação   para vários clientes.                                   ...
Suporte a multi-tenancy ! Flexibilidade em distribuir instâncias da mesma   aplicação para diferentes clientes (tenants); ...
Outras melhorias...                      Globalcode	  –	  Open4education
Java Persistence API 2.1 !   UPDATE e DELETE em lote usando Criteria; ! Novidades em JPA QL:     !   FUNCTION: uso de funç...
Exemplo JPA 2.1 (I)//bulk updateCriteriaUpdate<Produto> q =      cb.createCriteriaUpdate(Produto.class);Root<Produto> s = ...
Exemplo JPA 2.1 (II)/*stored procedure */StoredProcedreQuery sp =EntityManager.createNamedStoredProcedureQuery("procExecut...
JavaServer Faces 2.2 !   Integração com HTML5; !   Utilizar filas para múltiplas requisições Ajax; !   Injeção em todos os...
JAX-RS 2.0 !     Definição de APIs para cliente; !     Validar parâmetros via Bean Validation; !     Processamento assíncr...
Exemplo JAX-RS 2.0 (Server)@Path("/produtoAsync")public class ProdutoService {    @Context ExecutionContext ctx;    @GET @...
Exemplo JAX-RS 2.0 (Client)Client c = ClientFactory.newClient();Future<String> f = c.target("http://.../produtoAsync")    ...
Bean Validation 1.1 ! Integração com outras especificações; ! Validação em parâmetros e/ou retorno de     métodos; ! Valid...
Exemplo Bean Validation 1.1@MethodValidatedpublic class OrderService {      public void placeOrder(             @NotNull @...
Java Message Service 2.0 ! Simplificar a API; ! Reduzir o volume de código na troca de     mensagens; ! Integração com CDI...
Concurrency utilities - new !   Define uma API simples e padronizada para     utilização de concorrência em componentes da...
Novidades para web...                    Globalcode	  –	  Open4education
JSON-P 1.0 - new !   Define uma API para representar conteúdo JSON; !   Define uma API para consumir/produzir JSON; ! Não ...
Exemplo JSON-PJsonObject jObj = new JsonBuilder()   .beginObject()     .add("nome", "Eder")     .add("idade", 30)     .beg...
Java API for Web Sockets - new !   Define um modelo de programação para Web     Sockets dentro da plataforma Java;        ...
Outras especificações !     Servlets 3.1 (JSR 340); !     Expression Language 3.0 (JSR 341); !     EJB 3.1 (JSR 345); !   ...
Projeto Avatar !   Modelo de programação híbrido para diferentes     clientes;                                       Globa...
Planejamento
	 !   Previsão para o lançamento:     !   1o semestre de 2013;                                   *GlassFish S...
Links! http://java.net/projects/javaee-spec/pages/Home! https://blogs.oracle.com/arungupta/entry/  java_ee_7_key_features!...
Obrigado !eder@yaw.com.br   @edermag                  Globalcode	  –	  Open4education
Upcoming SlideShare
Loading in …5
×

JavaEE 7, na era do cloud computing

1,466 views
1,377 views

Published on

Slides da apresentação sobre Java EE 7, na era do Cloud Computing. Palestra realizada durante o #TDC2012.

Published in: Technology
1 Comment
3 Likes
Statistics
Notes
No Downloads
Views
Total views
1,466
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
49
Comments
1
Likes
3
Embeds 0
No embeds

No notes for slide

JavaEE 7, na era do cloud computing

  1. 1. Java EE 7, na era do Cloud Computing Eder Magalhães @edermag www.yaw.com.br Globalcode  –  Open4education
  2. 2. Agenda!   Serviços de cloud computing atuais;!   A nova filosofia da plataforma Java EE;!   Objetivos da plataforma Java EE 7;!   Auto provisionamento;!   Multi-tenancy;!   Novas APIs & melhorias nas APIs atuais;!   Novidades do Java EE 7 para web;!   Planejamento do Java EE 7;!   Links; Globalcode  –  Open4education
  3. 3. Computação em nuvem... Globalcode  –  Open4education
  4. 4. Modelos de serviços para Cloud Globalcode  –  Open4education
  5. 5. Foco: padrão para PaaS!   Produtos com suporte a Java:!   Amazon Elastic Beanstalk;!   Cloud Foundry;!   Google App Engine;!   Red Hat OpenShift;!   CloudBees;!   Heroku; Muito pouco (quase nada) é padronizado! Globalcode  –  Open4education
  6. 6. A filosofia ...A plataforma Java EE oferece serviços! Globalcode  –  Open4education
  7. 7. A nova filosofia !A plataforma Java EE é o serviço! Globalcode  –  Open4education
  8. 8. Java EE 7, objetivos da especificação ! Metadados e provisionamento automático; ! Elasticidade e escalabilidade autônoma; ! Suporte a Multi-tenancy nas APIs atuais; ! Adicionar APIs importantes na nuvem; ! Apoio as tecnologias HTML5 (WebSocket, JSON); ! Melhorias em APIs antigas; ! Definição de novas APIs; ! Atualização do Web Profile; JSR 342 Globalcode  –  Open4education
  9. 9. Modelo de implantação atual ! Mapear as configurações dos serviços utilizados; Globalcode  –  Open4education
  10. 10. Modelo de implantação atual ! Mapear as configurações dos serviços utilizados; 1 2 3 4 Globalcode  –  Open4education
  11. 11. Modelo de implantação atual ! Mapear as configurações dos serviços utilizados; 1 2 3 4 5 deploy ear/war Globalcode  –  Open4education
  12. 12. Auto provisionamento !   Configuração via serviço cloud! 1 2 deploy ear/war Globalcode  –  Open4education
  13. 13. Multi-tenancy ! Locação da mesma infra-estrutura e/ou aplicação para vários clientes. Globalcode  –  Open4education
  14. 14. Suporte a multi-tenancy ! Flexibilidade em distribuir instâncias da mesma aplicação para diferentes clientes (tenants); ! Mapeamento do tenant é realizado no container; ! Algumas APIs que suportaram multi-tenancy: !   JPA 2.1; !   EJB 3.2; !   Servlets 3.1; !   JMS 2.0; Globalcode  –  Open4education
  15. 15. Outras melhorias... Globalcode  –  Open4education
  16. 16. Java Persistence API 2.1 !   UPDATE e DELETE em lote usando Criteria; ! Novidades em JPA QL: !   FUNCTION: uso de funções pré-definidas; !   TREAT: permite cast em consultas; !   ON: outra abordagem para relacionamentos; ! Suporte a consultas via Stored Procedures; !   Listeners utilizando CDI; ! Controle da sincronização do persistence context; JSR 338 Globalcode  –  Open4education
  17. 17. Exemplo JPA 2.1 (I)//bulk updateCriteriaUpdate<Produto> q = cb.createCriteriaUpdate(Produto.class);Root<Produto> s = q.from(Produto.class);q.set(s.get(Produto_.status), "indisponivel");q.where(cb.lt(s.get(Produto_.preco), 100));//downcasting via JPA-QLSELECT l.nome, l.ISBNFROM Pedido p JOIN TREAT(p.produto AS Livro) l; Globalcode  –  Open4education
  18. 18. Exemplo JPA 2.1 (II)/*stored procedure */StoredProcedreQuery sp =EntityManager.createNamedStoredProcedureQuery("procExecute");sp.registerStoredProcedureParameter(1, String.class, ParameterMode.INOUT);sp.setParameter(1, "Executando stored procedure");sp. registerStoredProcedureParameter(2, Integer.class, ParameterMode.IN);sp.setParameter(2, 50);sp.execute();String result = sp.getOutputParameterValue(1); Globalcode  –  Open4education
  19. 19. JavaServer Faces 2.2 !   Integração com HTML5; !   Utilizar filas para múltiplas requisições Ajax; !   Injeção em todos os artefatos JSF (lifecycle + converters + validators); !   Novos componentes: FileUpload & BackButton; !   Mais simples: !   Tag Handler não é mais necessário; !   URLs compactas para mapear TagLibraries; !   cc:interfaces opcional; JSR 344 Globalcode  –  Open4education
  20. 20. JAX-RS 2.0 ! Definição de APIs para cliente; ! Validar parâmetros via Bean Validation; ! Processamento assíncrono (server-side); ! Possível definir filtros e interceptadores; !   Content negotiation (server-side); ! Suporte a Hypermedia (processar links); JSR 339 Globalcode  –  Open4education
  21. 21. Exemplo JAX-RS 2.0 (Server)@Path("/produtoAsync")public class ProdutoService { @Context ExecutionContext ctx; @GET @Suspend public Product longOp() { Executors.newSingleThreadExecutor().submit( new Runnable() { public void run() { Produto p = qryFromDatabase(); ctx.resume(p); } }); }} Globalcode  –  Open4education
  22. 22. Exemplo JAX-RS 2.0 (Client)Client c = ClientFactory.newClient();Future<String> f = c.target("http://.../produtoAsync") .request("text/plain") .async() .get( new InvocationCallback<Produto>() { @Override //sucesso public void completed(Produto p) { ... } @Override //falha public void failed(InvocationException e) { System.err.println(e.getCause()); } } ); Globalcode  –  Open4education
  23. 23. Bean Validation 1.1 ! Integração com outras especificações; ! Validação em parâmetros e/ou retorno de métodos; ! Validar elementos de uma coleção; !   Constraint composition com OR; JSR 349 Globalcode  –  Open4education
  24. 24. Exemplo Bean Validation 1.1@MethodValidatedpublic class OrderService { public void placeOrder( @NotNull @Size(min=3) String customerCode, @NotNull @Valid Item item){ ... } @NotNull @Future public Date getNextAvailableDeliveryDate(){ ... }} Globalcode  –  Open4education
  25. 25. Java Message Service 2.0 ! Simplificar a API; ! Reduzir o volume de código na troca de mensagens; ! Integração com CDI (@Inject); !   Connection, Session e outros são AutoCloseable; ! Maior integração entre provider e servidores; JSR 343 Globalcode  –  Open4education
  26. 26. Concurrency utilities - new !   Define uma API simples e padronizada para utilização de concorrência em componentes da plataforma Java EE, sem comprometer a integridade do container; JSR 236 Globalcode  –  Open4education
  27. 27. Novidades para web... Globalcode  –  Open4education
  28. 28. JSON-P 1.0 - new !   Define uma API para representar conteúdo JSON; !   Define uma API para consumir/produzir JSON; ! Não cobre o binding de objetos Java x JSON; JSR 353 Globalcode  –  Open4education
  29. 29. Exemplo JSON-PJsonObject jObj = new JsonBuilder() .beginObject() .add("nome", "Eder") .add("idade", 30) .beginObject("endereco") .add("logr", "Rua Casa do Ator, nro 285") .add("cidade", "Sao Paulo") .endObject() .endObject().build();String json = "{"nome":"Eder","idade":"30"}";JsonValue jValue = new JsonReader(new StringReader(json)) .readObject(); Globalcode  –  Open4education
  30. 30. Java API for Web Sockets - new !   Define um modelo de programação para Web Sockets dentro da plataforma Java; JSR 356 Globalcode  –  Open4education
  31. 31. Outras especificações !   Servlets 3.1 (JSR 340); !   Expression Language 3.0 (JSR 341); !   EJB 3.1 (JSR 345); !   CDI 1.1 (JSR 346); !   State Managment (JSR 350); !   Batch Application for Java Platform (JSR 352); Globalcode  –  Open4education
  32. 32. Projeto Avatar !   Modelo de programação híbrido para diferentes clientes; Globalcode  –  Open4education
  33. 33. Planejamento
 !   Previsão para o lançamento: !   1o semestre de 2013; *GlassFish Server 4 Globalcode  –  Open4education
  34. 34. Links! http://java.net/projects/javaee-spec/pages/Home! https://blogs.oracle.com/arungupta/entry/ java_ee_7_key_features! https://blogs.oracle.com/arungupta/tags/javaee! https://blogs.oracle.com/theaquarium/! http://www.slideshare.net/arungupta1! http://glassfish.java.net/javaone2011/! http://www.infoq.com/br/articles/javaee7-cloud- support! http://www.infoq.com/br/news/2012/01/javaEE7- novidades Globalcode  –  Open4education
  35. 35. Obrigado !eder@yaw.com.br @edermag Globalcode  –  Open4education

×