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
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
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...
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
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. Enterprise Java Beans
EJB
Session Bean
Java Web
Swing
Cliente WS
Web Browser
JVM + Container EE
Rede Local
Componentes Negócio Compartilhados
23. Enterprise Java Beans
EJB
Session Bean
Segurança
ControleTransacional
Escalabilidade
Queues
Topics
Data
Sources
Environment
Entries
EJB
Infra Estrutura do Container
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. ! 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. 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. • 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. 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
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;
33. MVC - Dividir e conquistar
! Beleza vs Funcionamento
! Código Organizado
! Manutenção Fácil
! Sabe aonde achar o erro
34. Principais Componentes
J2EE Web Container J2EE EJB
Container
Controller ModelView
Servlet JavaBeansJava
Server
Pages
Custom
Tag
EJB
javax.faces
JSF e J2EE
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
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. 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
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
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. Principais Recursos
! Injection Points
! Qualifiers
! Alternatives
! EL Names
! Producer Methods
! Java EE Resources
! Scopes and Contexts
! Interceptors
! Stereotypes
! Events
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. 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