Enterprise JavaBeans simples e descomplicado, na prática

4,114 views
3,925 views

Published on

Slides utlizados na apresentação de EJB's realizada no #TDC2012 com Vinicius Senger e Kleber Xavier da Globalcode

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

No Downloads
Views
Total views
4,114
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
166
Comments
0
Likes
7
Embeds 0
No embeds

No notes for slide

Enterprise JavaBeans simples e descomplicado, na prática

  1. 1. TDC2012 EJB simples e descomplicado, na prática Slide 1
  2. 2. Palestrantes Kleber Xavier – Arquiteto Senior / Globalcode kleber@globalcode.com.br Vinicius Senger – Arquiteto Senior / Globalcode vinicius@globalcode.com.br @vsenger Autores Livro Gratuito: “33 patterns com Java” http://www.slideshare.net/vsenger/33-design-patterns-com-java Slide 2
  3. 3. Agenda • Introdução • Por que EJB • Tipos de EJB Slide 3
  4. 4. Características do EJB • EJB é um modelo de componentes com foco em arquiteturas multi-camadas (baseado em princípios básicos de rede) – RMI (Remote Method Invocation) – JNDI (Java Naming and Directory Interface) • Responsável pela regra de negócio das aplicações Web e não Web • EJB é um modelo de alto nível para objetos distribuídos / computação distribuída Slide 4
  5. 5. Por que EJB ? • Componentes de Negócio Distribuídos • Vários tipos de aplicações clientes podem utilizar as mesmas regras de negócio; • Infra-estrutura do Container de EJBs • Segurança • Controle Transacional • Gerenciamento de recursos • Agendamento de tarefas • Padrão de Mercado para Componentes de Negócio Slide 5
  6. 6. Por que EJB ? • Componentes de Negócio Distribuídos Cliente SOA / WS Regras de Negócio web Swing / JavaFX Web Browser Java Web JVM + Container EE Rede Local Slide 6
  7. 7. Por que EJB ? • Infra-estrutura do Container de EJBs Controle Transacional +regras Escalabilidade Segurança Regras de Negócio Config. de Dados Ambiente Legados Middleware de Mensagens Slide 7
  8. 8. Por que EJB ?• Padrão de Mercado para Componentes de Negócio: • Oracle  Glassfish e WebLogic; • Red Hat  JBoss AS; • IBM  WebSphere; • Apache  Geronimo; • etc ... Slide 8
  9. 9. Remote Method Invocation javax.ejb EJB Server / ContainerprogaçãoNíveram JRMP / RMI - IIOP l TCP / IP java.rmi Aplicação Apresentação Transporte rede java.net Slide 9
  10. 10. Tipos de EJBs • Java EE 1.4 – Session Bean (Stateless/Stateful) – Entity Bean (BMP/CMP) – Message Driven Bean • Java EE 5 – Session Bean (Stateless/Stateful) – Message Driven Bean • OBS.: JPA (API de persistência que substitui Entity Bean, mas não é um EJB) Slide 10
  11. 11. EJB 3.x • Tipos: – Session beans (Stateless e Stateful) – Message-driven beans • Interface de negócio – Local – Remota – Service Endpoint (web services) • Classe de implementação do componente – POJO somente com métodos do componente • Uso simplificado Slide 11
  12. 12. EJB 3.x • Interface de negócio – Anotada com o tipo da interface: @Local (javax.ejb) @Remote (javax.ejb) @WebService (JAX-WS ) (javax.jws) Slide 12
  13. 13. EJB 3.x • Classe de implementação do componente – Anotada com o tipo do componente: @Stateless (javax.ejb) @Stateful (javax.ejb) @MessageDriven (javax.ejb) Slide 13
  14. 14. EJB 3.x • Classe de implementação: import br.com.globalcode.model.Item; import java.util.*; import javax.ejb.Stateful; @Stateful public class CarrinhoBean implements CarrinhoRemote { List<Item> itens = new ArrayList<Item>(); public void addProduto(int codigo, int qtd) { itens.add(new Item(codigo,qtd); } public List getProdutos() { return itens; } } Slide 14
  15. 15. Programação para EJBs • Empacotamento / Deployment: – É um jar com a classes dentro do seus respectivos pacotes; – Contém um diretório META-INF com os deployment descriptors; Slide 15
  16. 16. EJB 3.x • Uso: – Componentes são injetados dentro dos clientes – Anotações definem a dependência com o componente Slide 16
  17. 17. EJB 3.x • Usando o EJB na versão 3.x Injeção de dependência Slide 17
  18. 18. Enterprise Java Beans 3.1 • JSR 318 – Melhora ainda mais EJBs 3.0 – Menor curva de aprendizado – Maior simplicidade para aplicações menos complexas – Novos recursos promissores • Principais mudanças – Novo componente Singleton Bean – Melhoria no agendamento de tarefas – Alternativa simplificada a MDBs – Simplicidade no uso em aplicações Web / Desktop Slide 18
  19. 19. EJB Lite • Subconjunto da EJB 3.1 API • Não define API adicional • Permite servidores mais leves para cenários simplificados – Nem toda aplicação utiliza 100% dos recursos EJB Slide 19
  20. 20. EJB Lite EJB LITE EJB FULL Interface Local/NoInterface SIM SIM Interface Remota SIM Stateless, Stateful, Singleton SIM SIM JPA 2.0 SIM SIM Chamadas Assíncronas SIM MDBs SIM Web Services EndPoints SIM Compatibilidade EJB 2.x SIM Interoperabilidade RMI-IIOP SIM Timer Service SIM Entity Beans SIM CMT/BMT SIM SIM Segurança Declarativa SIM SIM Interceptors SIM SIM Slide 20
  21. 21. Deploy de EJBs na camada Web • Facilita o uso de EJBs com aplicações baseadas na Web • Menor curva de aprendizado • Simplicidade • Agora é possível empacotar EJBs diretamente no arquivo .war • Em aplicações n-camadas recomenda-se o uso de módulos EJBs, como na 3.0. Slide 21
  22. 22. Deploy de EJBs na camada Web JAVA EE 5 JAVA EE 6 jsp, <<EJB>> servlets, CarrinhoCompra img, etc. s jsp, <<EJB>> servlets, CarrinhoCompra img, etc. s ecommerce.wa carrinho.ja r r ecommerce.wa r ecommerce.ea r Slide 22
  23. 23. Conclusões • Java EE 5 e 6 apresentaram muitas melhorias em relação às versões anteriores, facilitando bastante o desenvolvimento de aplicativos; • Alguns recursos não especificados são complementados por frameworks de mercado como Spring • Parte dos recursos que faltavam foram acrescentados no Java EE 6 • Java EE 7 terá recursos para Cloud: @MultiTenancy Slide 23
  24. 24. Mais Informações http://www.oracle.com/technetwork/java/javaee/overview/index.html http://docs.oracle.com/javaee/5/tutorial/doc/ http://docs.oracle.com/javaee/6/tutorial/doc/ Slide 24

×