Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Enterprise JavaBeans simples e descomplicado, na prática

4,484 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
  • Be the first to comment

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

×