Serra StarTec 2013 - Java EE

0 views
643 views

Published on

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
0
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
19
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Serra StarTec 2013 - Java EE

  1. 1. Plataforma Java EE
  2. 2. Boa tarde !!! !   Rodrigo Cândido da Silva ! http://about.me/rcandidosilva !  @rcandidosilva
  3. 3. Agenda !   Plataforma Java !   Java Enterprise Edition (Java EE) !   Java Persistence API (JPA) !   Enterprise JavaBeans (EJB) !   JavaServer Faces (JSF) !   Contexts and Dependency Injection (CDI) !   Java EE 7 !   Perguntas e Respostas
  4. 4. Plataforma Java
  5. 5. Porque Java? !   68% das novas aplicações são em Java !   Java substituiu o C++ como a competência mais procurada em profissionais !   2 milhões de novos profissionais de TI são necessários a cada ano !   Java é executado em múltiplas plataformas !   Java é executado em ampla gama de dispositivos, de Smart Cards aos servidores dos grandes Data Centers
  6. 6. Java Everywhere
  7. 7. Quais empresas usam Java
  8. 8. Mercado
  9. 9. Oportunidades
  10. 10. JAVA EE
  11. 11. Java Enterprise Edition !   Suporte ao desenvolvimento de aplicações “enterprise” !  Aplicações distribuídas, seguras, escaláveis, de alta disponibilidade e com baixo custo de manutenção !   Plataforma para desenvolvimento de software de pequeno, médio e grande porte em múltiplas camadas de componentes !  Componentes “rodam” em um servidor Java EE
  12. 12. Java Enterprise Edition
  13. 13. Java Enterprise Edition !   Serviços oferecidos pelos containeres Java EE: !  Gestão de memória, ciclo de vida de objetos !  Conexões, Transações, Serviço de nomes !  Segurança !  Tolerância a falhas !  Integração !  WebServices !  Clustering !  Alta disponibilidade !  Confiabilidade...
  14. 14. JPA Java Persistence API
  15. 15. Java Persistence API !   Primeira especificação (padrão) de mapeamento de objetos Java para base de dados relacional !   Integração com outros frameworks !   Hibernate é uma implementação de JPA !   TopLink Essencials é uma implementação de JPA (RI) !   POJO (Plain Old Java Objects) à Entidades !   Mapeamento via metadados (annotation Java 5) !   Pode ser utilizado fora de containeres EJBs (ligthweigth container) !   Uso de injeção de dependência ao invés de lookups JNDI
  16. 16. Java Persistence API
  17. 17. !   JPA Entity Java Persistence API
  18. 18. Java Persistence API !   EntityManager (javax.persistence) (B) find / query (C) persist (D) clear / serialização (E) merge (F) remove
  19. 19. Java Persistence API !   Persistence Unit
  20. 20. EJB Enterprise JavaBeans
  21. 21. Enterprise Java Beans !   Plataforma para criação de aplicações de negócio portáveis, robustas e reutilizáveis usando a linguagem de programação Java; !   Componente para construir aplicações sem precisar reinventar uma série de recursos e serviços (transações, segurança, persistência); !   Modelo de alto nível para objetos distribuídos (computação distribuída); !   Pode ser utilizado em soluções Web e não Web;
  22. 22. Enterprise Java Beans EJB Session Bean Java Web Swing Cliente WS Web Browser JVM + Container EE Rede Local Componentes Negócio Compartilhados
  23. 23. Enterprise Java Beans EJB Session Bean Segurança ControleTransacional Escalabilidade Queues Topics Data Sources Environment Entries EJB Infra Estrutura do Container
  24. 24. !   Tipos de EJB: !  Session Bean !  Representa um processo de negócio !  Message-Driven Bean !  Trabalha de forma assíncrona !  Singleton Bean !  EJB introduzido na versão 3.1 !  Entity Bean !  Representa um objeto persistente !  Definido pela especificação JPA Enterprise Java Beans
  25. 25. !   Representa um processo de negócio (regra de negócio); !   @Stateless !   Não mantém estado de conversão com o cliente; !   Não tem compromisso de manter uma sessão; !   Não devemos utilizar atributos de negócio, somente atributos técnicos em cache; !   É um EJB econômico; !   @Stateful !   Mantém estado de conversão com o cliente; !   Cada cliente terá uma instancia do EJB exclusiva, desde a criação até a remoção; !   Podemos ter atributos de negócio com métodos getters e setters; Session Bean
  26. 26. Session Bean !   Podem ou não definir interface de acesso !   @LocalBean define EJBs sem interfaces !   Tipos de Interfaces !   Local (@Local) !   Somente acesso local (mesma JVM); !   Cliente pode ser um componente Web ou outro EJB; !   Localização não é transparente (não suporta clusterização). !   Remota (@Remote) !   Suporta acesso remoto (fora da JVM); !   Cliente pode ser um componente Web, outro EJB ou aplicação desktop; !   Transparência de localização (suporta clusterização).
  27. 27. •  EJB Lite ü  Sub-conjunto de funcionalidades direcionadas para deploy dos EJBs no container Java EE Web Profile (.war) Enterprise Java Beans EJB Lite EJB Full • Local Session Beans • CMT / BMT • Segurança Declarativa • Interceptors • Message-Driven Beans (MDB) • Web Service Endpoints • 2.x / 3.x Remove View • Inter-operabilidade com RMI-IIOP • Timer service • Chamada assíncrona à metodos • 2.x Local View • CMP / BMP Entity Beans
  28. 28. Enterprise Java Beans !   Empacotamento Simplificado !  Possibilita o deploy de componentes EJBs através de um .war !  Somente disponível para os EJB Lite !  ejb-jar.xml não é mais necessário Java EE 5 Java EE 6
  29. 29. Message-Driven Bean !   EJB que é acionado de forma assíncrona; Síncrono Assíncrono
  30. 30. Message-Driven Bean !   Existem dois tipos de destinos JMS !   Point-to-point (queue): uma mensagem enviada para a fila será consumida apenas por um cliente; !   Publish-subscriber (topic): uma mensagem pode ser recepcionada por múltiplos clientes;
  31. 31. JSF JavaServer Faces
  32. 32. JavaServer Faces !   Java !   Especificação !   Integração !   Ajax Nativo
  33. 33. MVC - Dividir e conquistar !   Beleza vs Funcionamento !   Código Organizado !   Manutenção Fácil !   Sabe aonde achar o erro
  34. 34. Principais Componentes J2EE Web Container J2EE EJB Container Controller ModelView Servlet JavaBeansJava Server Pages Custom Tag EJB javax.faces JSF e J2EE
  35. 35. Página JSF Tags: JSF HTML Tags: JSF Core Request Managed Bean Session Managed Bean Application Managed Bean Expression Language: EL Links, formulários, imagens, combo-box, tabelas, etc… Através destas tags adicionamos validação, conversão de dados, listeners Dados para popular as tabelas, combo-box, textos. Páginas JSF
  36. 36. JSF: principais componentesPáginaJSFfaces-config.xml ManagedBean
  37. 37. Facelets
  38. 38. Integração
  39. 39. Frameworks em JSF !   Basta baixar e usar
  40. 40. CDI Contexts and Dependency Injection
  41. 41. CDI (JSR-299) !   CDI = Context Dependency Injection !   Novo modelo para gerenciamento de beans e injeção de dependência !   Nova definição para escopos de aplicação !   Também conhecido como “Web Beans” !   Integra as camadas web e negócio da aplicação !  Facilita a implementação das aplicações que utilizam tecnologias como JSF e EJB (Java EE)
  42. 42. CDI (JSR-299) !   Gerenciamento de ciclo de vida de componentes statefull !   Provê um mecanismo de DI typesafe !   Disponibiliza mecanismo de eventos facilitando o desenvolvimento com baixo acoplamento !   Tem um mecanismo de Interceptors e Decorators !   Possibilita a criação de extensões portáveis para qualquer implementação !   Integração com EL
  43. 43. CDI no Java EE
  44. 44. CDI Managed Beans !  Nova definição para “beans !  Instâncias são gerenciadas pelo container !  Serviços disponíveis !  Injeção de Dependência !  Ciclo de vida !  Interceptors !  Events
  45. 45. CDI Managed Beans
  46. 46. Configuração CDI
  47. 47. Hello World
  48. 48. O que pode ser injetado !   CDI Managed Beans (POJO) !   Objetos retornados por @Produces !   EJB Session Bean (local ou remoto) !   Java EE Resources (DataSource, JMS) !   JTA UserTransaction !   EntityManager (JPA) !   Bean Validation Factory !   Destination e ConnectionFactory JMS
  49. 49. Principais Recursos !  Injection Points !  Qualifiers !  Alternatives !  EL Names !  Producer Methods !  Java EE Resources !  Scopes and Contexts !  Interceptors !  Stereotypes !  Events
  50. 50. Java EE History J2EE 1.3 CMP, Connector Architecture J2EE 1.4 Web Services Mgmt, Deployment, Async Connector Java EE 5 Ease of Development, EJB 3, JPA, JSF, JAXB, JAX-WS, StAX, SAAJ Java EE 6 Pruning, Extensibility Ease of Dev, CDI, JAX-RS Web  Profile     Servlet 3, EJB 3.1 Lite   Java EE 7   JMS 2, Batch, TX, Concurrency, Interceptor, WebSocket, JSON   Web  Profile     JAX-RS 2   JAX-RPC, CMP/ BMP, JSR 88
  51. 51. Top 10 no Java EE 6 !   EJB packaging no WAR !   Type-safe deployment injection !   Deployment descriptors opcionais (web.xml, etc) !   Padronização do Facelets no JSF !   EJB em apenas uma classe !   Extensibilidade para Servlets e CDI !   CDI events !   EJBContainer API !   @Schedule baseado no modelo Cron !   Web Profile
  52. 52. Java EE 7 Themes
  53. 53. Java EE 7 Overview Connector 1.6 Managed Beans 1.0 EJB 3.2 Servlet 3.1 Portable Extensions JSF 2.2 JAX-RS 2.0 BeanValidation1.1 JMS 2.0JPA 2.1 EL 3.0 JTA 1.2 JSP 2.2 Interceptors 1.1 CDI 1.1 Common Annotations 1.1 UpdatedMajor Release New Concurrency Utilities (JSR 236) Batch Applications (JSR 352) Java API for JSON (JSR 353) Java API for WebSocket (JSR 356)
  54. 54. Java EE 7 ! Por onde começar?
  55. 55. Java EE 8.future(); !   JSON-B !   JCache !   More CDI/EJB alignment !   CDI.next() !   Cloud, PaaS, multitenancy/SaaS !   JMS.next()? !   JAX-RS.next()? !   Security? !   Modularity? !   NoSQL? !   Action-oriented Web framework/HTML 5?
  56. 56. Perguntas e Respostas ?
  57. 57. Eventos
  58. 58. Como Colaborar !   Blog: !   http://gujavasc.org ! Facebok: !   https://facebook.com/groups/gujavasc !   Twitter !   https://twitter.com/gujavasc !   Google+ !   http://bit.ly/15c2QYQ ! Github !   https://github.com/gujavasc

×