SlideShare uma empresa Scribd logo
1 de 24
Baixar para ler offline
TDC2012




   EJB simples e descomplicado, na prática




                                             Slide 1
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
Agenda
  • Introdução
  • Por que EJB
  • Tipos de EJB




                   Slide 3
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
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
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
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
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
Remote Method Invocation


                              javax.ejb
     EJB Server / Container
prog

ação
Níve


ram




      JRMP / RMI - IIOP
  l




          TCP / IP            java.rmi
          Aplicação
        Apresentação
         Transporte
            rede               java.net




                                          Slide 9
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
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
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
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
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
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
EJB 3.x

  • Uso:
     – Componentes são injetados dentro dos
       clientes
     – Anotações definem a dependência com o
       componente




                                               Slide 16
EJB 3.x

  • Usando o EJB na versão 3.x

    Injeção de dependência




                                 Slide 17
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
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
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
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
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
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
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

Mais conteúdo relacionado

Mais procurados

GUJavaSC - Desenvolvendo uma Aplicação com Java EE
GUJavaSC - Desenvolvendo uma Aplicação com Java EEGUJavaSC - Desenvolvendo uma Aplicação com Java EE
GUJavaSC - Desenvolvendo uma Aplicação com Java EERodrigo Cândido da Silva
 
Palest"Tecnologias para Desenvolvimento Baseado em Componentes"
Palest"Tecnologias para Desenvolvimento Baseado em Componentes"Palest"Tecnologias para Desenvolvimento Baseado em Componentes"
Palest"Tecnologias para Desenvolvimento Baseado em Componentes"sbcars
 
Desconstruindo EJB
Desconstruindo EJBDesconstruindo EJB
Desconstruindo EJBLuiz Borba
 
Web Sphere Application Server
Web Sphere Application ServerWeb Sphere Application Server
Web Sphere Application ServerFabricio Carvalho
 
TDC 2011 - HornetQ e SwitchYard
TDC 2011 - HornetQ e SwitchYardTDC 2011 - HornetQ e SwitchYard
TDC 2011 - HornetQ e SwitchYardSamuel Tauil
 
Resumo Anotacoes Certificacao SCBCD 5
Resumo Anotacoes Certificacao SCBCD 5Resumo Anotacoes Certificacao SCBCD 5
Resumo Anotacoes Certificacao SCBCD 5Gilberto Holms
 
Introdução a CDI e como utilizá-la em aplicações reais
Introdução a CDI e como utilizá-la em aplicações reaisIntrodução a CDI e como utilizá-la em aplicações reais
Introdução a CDI e como utilizá-la em aplicações reaisMichel Graciano
 
JavaServer Faces - Desenvolvendo aplicações web com produtividade
JavaServer Faces - Desenvolvendo aplicações web com produtividadeJavaServer Faces - Desenvolvendo aplicações web com produtividade
JavaServer Faces - Desenvolvendo aplicações web com produtividadeRafael Ponte
 
Curso de Enterprise JavaBeans (EJB) (JavaEE 7)
Curso de Enterprise JavaBeans (EJB) (JavaEE 7)Curso de Enterprise JavaBeans (EJB) (JavaEE 7)
Curso de Enterprise JavaBeans (EJB) (JavaEE 7)Helder da Rocha
 
As Novidades do JMS 2.0
As Novidades do JMS 2.0As Novidades do JMS 2.0
As Novidades do JMS 2.0Bruno Borges
 
Webcast MSDN - Enterprise Library
Webcast MSDN - Enterprise LibraryWebcast MSDN - Enterprise Library
Webcast MSDN - Enterprise LibraryLuciano Condé
 
Sistemas Distribuídos - Comunicação Distribuída - EJB
Sistemas Distribuídos - Comunicação Distribuída - EJBSistemas Distribuídos - Comunicação Distribuída - EJB
Sistemas Distribuídos - Comunicação Distribuída - EJBAdriano Teixeira de Souza
 
CDI -Contextos e Dependências
CDI -Contextos e DependênciasCDI -Contextos e Dependências
CDI -Contextos e DependênciasWende Mendes
 
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)Adriano Teixeira de Souza
 
JSF com Primefaces
JSF com PrimefacesJSF com Primefaces
JSF com PrimefacesFabio Noth
 

Mais procurados (20)

GUJavaSC - Desenvolvendo uma Aplicação com Java EE
GUJavaSC - Desenvolvendo uma Aplicação com Java EEGUJavaSC - Desenvolvendo uma Aplicação com Java EE
GUJavaSC - Desenvolvendo uma Aplicação com Java EE
 
Java ee 5
Java ee 5Java ee 5
Java ee 5
 
Palest"Tecnologias para Desenvolvimento Baseado em Componentes"
Palest"Tecnologias para Desenvolvimento Baseado em Componentes"Palest"Tecnologias para Desenvolvimento Baseado em Componentes"
Palest"Tecnologias para Desenvolvimento Baseado em Componentes"
 
Desconstruindo EJB
Desconstruindo EJBDesconstruindo EJB
Desconstruindo EJB
 
Web Sphere Application Server
Web Sphere Application ServerWeb Sphere Application Server
Web Sphere Application Server
 
TDC 2011 - HornetQ e SwitchYard
TDC 2011 - HornetQ e SwitchYardTDC 2011 - HornetQ e SwitchYard
TDC 2011 - HornetQ e SwitchYard
 
Resumo Anotacoes Certificacao SCBCD 5
Resumo Anotacoes Certificacao SCBCD 5Resumo Anotacoes Certificacao SCBCD 5
Resumo Anotacoes Certificacao SCBCD 5
 
Introdução a CDI e como utilizá-la em aplicações reais
Introdução a CDI e como utilizá-la em aplicações reaisIntrodução a CDI e como utilizá-la em aplicações reais
Introdução a CDI e como utilizá-la em aplicações reais
 
Cdi conceitos
Cdi conceitosCdi conceitos
Cdi conceitos
 
Java Web 1 Introducao
Java Web 1 IntroducaoJava Web 1 Introducao
Java Web 1 Introducao
 
Curso jsf
Curso jsfCurso jsf
Curso jsf
 
Workshop05
Workshop05Workshop05
Workshop05
 
JavaServer Faces - Desenvolvendo aplicações web com produtividade
JavaServer Faces - Desenvolvendo aplicações web com produtividadeJavaServer Faces - Desenvolvendo aplicações web com produtividade
JavaServer Faces - Desenvolvendo aplicações web com produtividade
 
Curso de Enterprise JavaBeans (EJB) (JavaEE 7)
Curso de Enterprise JavaBeans (EJB) (JavaEE 7)Curso de Enterprise JavaBeans (EJB) (JavaEE 7)
Curso de Enterprise JavaBeans (EJB) (JavaEE 7)
 
As Novidades do JMS 2.0
As Novidades do JMS 2.0As Novidades do JMS 2.0
As Novidades do JMS 2.0
 
Webcast MSDN - Enterprise Library
Webcast MSDN - Enterprise LibraryWebcast MSDN - Enterprise Library
Webcast MSDN - Enterprise Library
 
Sistemas Distribuídos - Comunicação Distribuída - EJB
Sistemas Distribuídos - Comunicação Distribuída - EJBSistemas Distribuídos - Comunicação Distribuída - EJB
Sistemas Distribuídos - Comunicação Distribuída - EJB
 
CDI -Contextos e Dependências
CDI -Contextos e DependênciasCDI -Contextos e Dependências
CDI -Contextos e Dependências
 
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
 
JSF com Primefaces
JSF com PrimefacesJSF com Primefaces
JSF com Primefaces
 

Destaque

33 design patterns com Java
33 design patterns com Java33 design patterns com Java
33 design patterns com JavaGlobalcode
 
Exemplos de Design Patterns em Java
Exemplos de Design Patterns em JavaExemplos de Design Patterns em Java
Exemplos de Design Patterns em Javaalexmacedo
 
Palestra Sepai Alfredofurtado Introducao Ao Javafx
Palestra Sepai Alfredofurtado Introducao Ao JavafxPalestra Sepai Alfredofurtado Introducao Ao Javafx
Palestra Sepai Alfredofurtado Introducao Ao Javafxalfredofurtado
 
Internet das Coisas com Java e Things API
Internet das Coisas com Java e Things APIInternet das Coisas com Java e Things API
Internet das Coisas com Java e Things APIGlobalcode
 
Campus Party 2014 - Internet das Coisas com coisas reais
Campus Party 2014 - Internet das Coisas com coisas reaisCampus Party 2014 - Internet das Coisas com coisas reais
Campus Party 2014 - Internet das Coisas com coisas reaisGlobalcode
 
JavaFX: Abordagem Prática
JavaFX: Abordagem PráticaJavaFX: Abordagem Prática
JavaFX: Abordagem PráticaEder Magalhães
 
JavaFx - Guia Prático
JavaFx - Guia PráticoJavaFx - Guia Prático
JavaFx - Guia Práticodanielfc
 
Desenvolvimento rápido de aplicações com JEE e JavaFX
Desenvolvimento rápido de aplicações com JEE e JavaFXDesenvolvimento rápido de aplicações com JEE e JavaFX
Desenvolvimento rápido de aplicações com JEE e JavaFXjesuinoPower
 
Internet das Coisas com Coisas Reais: Java , Things API, Raspberry PI e Toys!
Internet das Coisas com Coisas Reais:  Java , Things API, Raspberry PI e Toys!Internet das Coisas com Coisas Reais:  Java , Things API, Raspberry PI e Toys!
Internet das Coisas com Coisas Reais: Java , Things API, Raspberry PI e Toys!Globalcode
 
Palestra sobre Carreira Java / JavaEE - TDC2012 - Trlha Java
Palestra sobre Carreira Java / JavaEE - TDC2012 - Trlha JavaPalestra sobre Carreira Java / JavaEE - TDC2012 - Trlha Java
Palestra sobre Carreira Java / JavaEE - TDC2012 - Trlha JavaGlobalcode
 
Boas práticas na criação de aplicações sérias com JavaFX - TDC 2014 SP
Boas práticas na criação de aplicações sérias com JavaFX - TDC 2014 SPBoas práticas na criação de aplicações sérias com JavaFX - TDC 2014 SP
Boas práticas na criação de aplicações sérias com JavaFX - TDC 2014 SPjesuinoPower
 
Criando aplicações java fx em minutos
Criando aplicações java fx em minutosCriando aplicações java fx em minutos
Criando aplicações java fx em minutosBruno Oliveira
 
JavaFX 8, Collections e Lambdas
JavaFX 8, Collections e LambdasJavaFX 8, Collections e Lambdas
JavaFX 8, Collections e LambdasjesuinoPower
 
JavaFX no Falando em Java 2007 - Sergio Lopes
JavaFX no Falando em Java 2007 - Sergio LopesJavaFX no Falando em Java 2007 - Sergio Lopes
JavaFX no Falando em Java 2007 - Sergio LopesCaelum
 
Programação Estruturada 2 - Aula 06
Programação Estruturada 2 - Aula 06Programação Estruturada 2 - Aula 06
Programação Estruturada 2 - Aula 06thomasdacosta
 

Destaque (20)

33 design patterns com Java
33 design patterns com Java33 design patterns com Java
33 design patterns com Java
 
Exemplos de Design Patterns em Java
Exemplos de Design Patterns em JavaExemplos de Design Patterns em Java
Exemplos de Design Patterns em Java
 
Java persintence api
Java persintence apiJava persintence api
Java persintence api
 
Palestra Sepai Alfredofurtado Introducao Ao Javafx
Palestra Sepai Alfredofurtado Introducao Ao JavafxPalestra Sepai Alfredofurtado Introducao Ao Javafx
Palestra Sepai Alfredofurtado Introducao Ao Javafx
 
Internet das Coisas com Java e Things API
Internet das Coisas com Java e Things APIInternet das Coisas com Java e Things API
Internet das Coisas com Java e Things API
 
Javafx Introdução
Javafx IntroduçãoJavafx Introdução
Javafx Introdução
 
Conhecendo Java
Conhecendo JavaConhecendo Java
Conhecendo Java
 
Campus Party 2014 - Internet das Coisas com coisas reais
Campus Party 2014 - Internet das Coisas com coisas reaisCampus Party 2014 - Internet das Coisas com coisas reais
Campus Party 2014 - Internet das Coisas com coisas reais
 
Ria e Java FX
Ria e Java FXRia e Java FX
Ria e Java FX
 
JavaFX: Abordagem Prática
JavaFX: Abordagem PráticaJavaFX: Abordagem Prática
JavaFX: Abordagem Prática
 
JavaFx - Guia Prático
JavaFx - Guia PráticoJavaFx - Guia Prático
JavaFx - Guia Prático
 
Desenvolvimento rápido de aplicações com JEE e JavaFX
Desenvolvimento rápido de aplicações com JEE e JavaFXDesenvolvimento rápido de aplicações com JEE e JavaFX
Desenvolvimento rápido de aplicações com JEE e JavaFX
 
Internet das Coisas com Coisas Reais: Java , Things API, Raspberry PI e Toys!
Internet das Coisas com Coisas Reais:  Java , Things API, Raspberry PI e Toys!Internet das Coisas com Coisas Reais:  Java , Things API, Raspberry PI e Toys!
Internet das Coisas com Coisas Reais: Java , Things API, Raspberry PI e Toys!
 
Palestra sobre Carreira Java / JavaEE - TDC2012 - Trlha Java
Palestra sobre Carreira Java / JavaEE - TDC2012 - Trlha JavaPalestra sobre Carreira Java / JavaEE - TDC2012 - Trlha Java
Palestra sobre Carreira Java / JavaEE - TDC2012 - Trlha Java
 
Boas práticas na criação de aplicações sérias com JavaFX - TDC 2014 SP
Boas práticas na criação de aplicações sérias com JavaFX - TDC 2014 SPBoas práticas na criação de aplicações sérias com JavaFX - TDC 2014 SP
Boas práticas na criação de aplicações sérias com JavaFX - TDC 2014 SP
 
Criando aplicações java fx em minutos
Criando aplicações java fx em minutosCriando aplicações java fx em minutos
Criando aplicações java fx em minutos
 
JavaFX 8, Collections e Lambdas
JavaFX 8, Collections e LambdasJavaFX 8, Collections e Lambdas
JavaFX 8, Collections e Lambdas
 
JavaFX no Falando em Java 2007 - Sergio Lopes
JavaFX no Falando em Java 2007 - Sergio LopesJavaFX no Falando em Java 2007 - Sergio Lopes
JavaFX no Falando em Java 2007 - Sergio Lopes
 
JavaFX Mobile
JavaFX MobileJavaFX Mobile
JavaFX Mobile
 
Programação Estruturada 2 - Aula 06
Programação Estruturada 2 - Aula 06Programação Estruturada 2 - Aula 06
Programação Estruturada 2 - Aula 06
 

Semelhante a Enterprise JavaBeans simples e descomplicado, na prática

Arquitetura jee bp_overview
Arquitetura jee bp_overviewArquitetura jee bp_overview
Arquitetura jee bp_overviewJuarez Junior
 
GlassFish, Maven, Cloud e o futuro do Java EE
GlassFish, Maven, Cloud e o futuro do Java EEGlassFish, Maven, Cloud e o futuro do Java EE
GlassFish, Maven, Cloud e o futuro do Java EEBruno Borges
 
Java OO Middleware - JEE / EJB / RMI
Java OO Middleware - JEE / EJB / RMIJava OO Middleware - JEE / EJB / RMI
Java OO Middleware - JEE / EJB / RMIYitzhak Stone
 
O que ganhamos com Java e Cloud Computing?
O que ganhamos com Java e Cloud Computing?O que ganhamos com Java e Cloud Computing?
O que ganhamos com Java e Cloud Computing?Bruno Borges
 
Repensando padrões e boas práticas java ee
Repensando padrões e boas práticas java eeRepensando padrões e boas práticas java ee
Repensando padrões e boas práticas java eeAdriano Tavares
 
GlassFish, Maven, Cloud e Java EE
GlassFish, Maven, Cloud e Java EEGlassFish, Maven, Cloud e Java EE
GlassFish, Maven, Cloud e Java EEBruno Borges
 
Anatomia do JSF – JavaServer Faces
Anatomia do JSF – JavaServer FacesAnatomia do JSF – JavaServer Faces
Anatomia do JSF – JavaServer Facescejug
 
Java EE no ambiente corporativo: primeiros passos WebLogic 12c
Java EE no ambiente corporativo: primeiros passos WebLogic 12cJava EE no ambiente corporativo: primeiros passos WebLogic 12c
Java EE no ambiente corporativo: primeiros passos WebLogic 12cBruno Borges
 
Spring: Overview do framework mais popular para desenvolvimento em Java
Spring: Overview do framework mais popular para desenvolvimento em JavaSpring: Overview do framework mais popular para desenvolvimento em Java
Spring: Overview do framework mais popular para desenvolvimento em JavaMariana de Azevedo Santos
 
Anatomia do JSF, JavaServer Faces
Anatomia do JSF, JavaServer FacesAnatomia do JSF, JavaServer Faces
Anatomia do JSF, JavaServer FacesRafael Ponte
 
Uso de Critérios de Seleção para Frameworks Livres em Plataforma Java EE
Uso de Critérios de Seleção para Frameworks Livres em Plataforma Java EEUso de Critérios de Seleção para Frameworks Livres em Plataforma Java EE
Uso de Critérios de Seleção para Frameworks Livres em Plataforma Java EEMarco Antonio Maciel
 

Semelhante a Enterprise JavaBeans simples e descomplicado, na prática (20)

Serra StarTec 2013 - Java EE
Serra StarTec 2013 - Java EESerra StarTec 2013 - Java EE
Serra StarTec 2013 - Java EE
 
Arquitetura jee bp_overview
Arquitetura jee bp_overviewArquitetura jee bp_overview
Arquitetura jee bp_overview
 
GlassFish, Maven, Cloud e o futuro do Java EE
GlassFish, Maven, Cloud e o futuro do Java EEGlassFish, Maven, Cloud e o futuro do Java EE
GlassFish, Maven, Cloud e o futuro do Java EE
 
Java OO Middleware - JEE / EJB / RMI
Java OO Middleware - JEE / EJB / RMIJava OO Middleware - JEE / EJB / RMI
Java OO Middleware - JEE / EJB / RMI
 
O que ganhamos com Java e Cloud Computing?
O que ganhamos com Java e Cloud Computing?O que ganhamos com Java e Cloud Computing?
O que ganhamos com Java e Cloud Computing?
 
MC - Java Enterprise Edition 6 (Java EE)
MC - Java Enterprise Edition 6 (Java EE)MC - Java Enterprise Edition 6 (Java EE)
MC - Java Enterprise Edition 6 (Java EE)
 
Curso jsf
Curso jsfCurso jsf
Curso jsf
 
Repensando padrões e boas práticas java ee
Repensando padrões e boas práticas java eeRepensando padrões e boas práticas java ee
Repensando padrões e boas práticas java ee
 
GUJavaSC - Mini-curso Java EE
GUJavaSC - Mini-curso Java EEGUJavaSC - Mini-curso Java EE
GUJavaSC - Mini-curso Java EE
 
Java ee com ejb 3
Java ee com ejb 3Java ee com ejb 3
Java ee com ejb 3
 
GlassFish, Maven, Cloud e Java EE
GlassFish, Maven, Cloud e Java EEGlassFish, Maven, Cloud e Java EE
GlassFish, Maven, Cloud e Java EE
 
JUDCon Brazil 2013
JUDCon Brazil 2013JUDCon Brazil 2013
JUDCon Brazil 2013
 
Anatomia do JSF – JavaServer Faces
Anatomia do JSF – JavaServer FacesAnatomia do JSF – JavaServer Faces
Anatomia do JSF – JavaServer Faces
 
Java EE no ambiente corporativo: primeiros passos WebLogic 12c
Java EE no ambiente corporativo: primeiros passos WebLogic 12cJava EE no ambiente corporativo: primeiros passos WebLogic 12c
Java EE no ambiente corporativo: primeiros passos WebLogic 12c
 
Spring: Overview do framework mais popular para desenvolvimento em Java
Spring: Overview do framework mais popular para desenvolvimento em JavaSpring: Overview do framework mais popular para desenvolvimento em Java
Spring: Overview do framework mais popular para desenvolvimento em Java
 
JBoss5 @ FISL
JBoss5 @ FISLJBoss5 @ FISL
JBoss5 @ FISL
 
Anatomia do JSF, JavaServer Faces
Anatomia do JSF, JavaServer FacesAnatomia do JSF, JavaServer Faces
Anatomia do JSF, JavaServer Faces
 
Uso de Critérios de Seleção para Frameworks Livres em Plataforma Java EE
Uso de Critérios de Seleção para Frameworks Livres em Plataforma Java EEUso de Critérios de Seleção para Frameworks Livres em Plataforma Java EE
Uso de Critérios de Seleção para Frameworks Livres em Plataforma Java EE
 
Java basico
Java basicoJava basico
Java basico
 
Tutorial Java EE
Tutorial Java EETutorial Java EE
Tutorial Java EE
 

Mais de Globalcode

Use scratch para aprender a programar se divertindo
Use scratch para aprender a programar se divertindoUse scratch para aprender a programar se divertindo
Use scratch para aprender a programar se divertindoGlobalcode
 
Java, Internet das Coisas, Things API e Arquiteturas de Inovação
Java, Internet das Coisas, Things API e Arquiteturas de InovaçãoJava, Internet das Coisas, Things API e Arquiteturas de Inovação
Java, Internet das Coisas, Things API e Arquiteturas de InovaçãoGlobalcode
 
Contruindo Robots com Java Embedded Suite, Raspberry PI, Arduino e Things API
Contruindo Robots com Java Embedded Suite, Raspberry PI, Arduino e Things APIContruindo Robots com Java Embedded Suite, Raspberry PI, Arduino e Things API
Contruindo Robots com Java Embedded Suite, Raspberry PI, Arduino e Things APIGlobalcode
 
Introdução a Application Life-cycle Management Open Source
Introdução a Application Life-cycle Management Open SourceIntrodução a Application Life-cycle Management Open Source
Introdução a Application Life-cycle Management Open SourceGlobalcode
 
Android com Arduino: como integrar via bluetooth, Google ADK ou wi-fi
Android com Arduino: como integrar via bluetooth, Google ADK ou wi-fiAndroid com Arduino: como integrar via bluetooth, Google ADK ou wi-fi
Android com Arduino: como integrar via bluetooth, Google ADK ou wi-fiGlobalcode
 
Placa Tomada - Controlando Tomadas com Arduino
Placa Tomada - Controlando Tomadas com ArduinoPlaca Tomada - Controlando Tomadas com Arduino
Placa Tomada - Controlando Tomadas com ArduinoGlobalcode
 
Academia do Arquiteto Globalcode
Academia do Arquiteto GlobalcodeAcademia do Arquiteto Globalcode
Academia do Arquiteto GlobalcodeGlobalcode
 
Academia do Arquiteto - Implantando A.L.M. em uma semana!
Academia do Arquiteto - Implantando A.L.M. em uma semana!Academia do Arquiteto - Implantando A.L.M. em uma semana!
Academia do Arquiteto - Implantando A.L.M. em uma semana!Globalcode
 
O futuro do arquiteto e das arquiteturas Java Enterprise
O futuro do arquiteto e das arquiteturas Java EnterpriseO futuro do arquiteto e das arquiteturas Java Enterprise
O futuro do arquiteto e das arquiteturas Java EnterpriseGlobalcode
 
Academia do Arquiteto - Introdução a ALM e Redmine
Academia do Arquiteto - Introdução a ALM e RedmineAcademia do Arquiteto - Introdução a ALM e Redmine
Academia do Arquiteto - Introdução a ALM e RedmineGlobalcode
 

Mais de Globalcode (10)

Use scratch para aprender a programar se divertindo
Use scratch para aprender a programar se divertindoUse scratch para aprender a programar se divertindo
Use scratch para aprender a programar se divertindo
 
Java, Internet das Coisas, Things API e Arquiteturas de Inovação
Java, Internet das Coisas, Things API e Arquiteturas de InovaçãoJava, Internet das Coisas, Things API e Arquiteturas de Inovação
Java, Internet das Coisas, Things API e Arquiteturas de Inovação
 
Contruindo Robots com Java Embedded Suite, Raspberry PI, Arduino e Things API
Contruindo Robots com Java Embedded Suite, Raspberry PI, Arduino e Things APIContruindo Robots com Java Embedded Suite, Raspberry PI, Arduino e Things API
Contruindo Robots com Java Embedded Suite, Raspberry PI, Arduino e Things API
 
Introdução a Application Life-cycle Management Open Source
Introdução a Application Life-cycle Management Open SourceIntrodução a Application Life-cycle Management Open Source
Introdução a Application Life-cycle Management Open Source
 
Android com Arduino: como integrar via bluetooth, Google ADK ou wi-fi
Android com Arduino: como integrar via bluetooth, Google ADK ou wi-fiAndroid com Arduino: como integrar via bluetooth, Google ADK ou wi-fi
Android com Arduino: como integrar via bluetooth, Google ADK ou wi-fi
 
Placa Tomada - Controlando Tomadas com Arduino
Placa Tomada - Controlando Tomadas com ArduinoPlaca Tomada - Controlando Tomadas com Arduino
Placa Tomada - Controlando Tomadas com Arduino
 
Academia do Arquiteto Globalcode
Academia do Arquiteto GlobalcodeAcademia do Arquiteto Globalcode
Academia do Arquiteto Globalcode
 
Academia do Arquiteto - Implantando A.L.M. em uma semana!
Academia do Arquiteto - Implantando A.L.M. em uma semana!Academia do Arquiteto - Implantando A.L.M. em uma semana!
Academia do Arquiteto - Implantando A.L.M. em uma semana!
 
O futuro do arquiteto e das arquiteturas Java Enterprise
O futuro do arquiteto e das arquiteturas Java EnterpriseO futuro do arquiteto e das arquiteturas Java Enterprise
O futuro do arquiteto e das arquiteturas Java Enterprise
 
Academia do Arquiteto - Introdução a ALM e Redmine
Academia do Arquiteto - Introdução a ALM e RedmineAcademia do Arquiteto - Introdução a ALM e Redmine
Academia do Arquiteto - Introdução a ALM e Redmine
 

Enterprise JavaBeans simples e descomplicado, na prática

  • 1. TDC2012 EJB simples e descomplicado, na prática Slide 1
  • 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. Agenda • Introdução • Por que EJB • Tipos de EJB Slide 3
  • 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. 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. 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. 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. 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. Remote Method Invocation javax.ejb EJB Server / Container prog ação Níve ram JRMP / RMI - IIOP l TCP / IP java.rmi Aplicação Apresentação Transporte rede java.net Slide 9
  • 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. 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. 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. 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. 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. 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. EJB 3.x • Uso: – Componentes são injetados dentro dos clientes – Anotações definem a dependência com o componente Slide 16
  • 17. EJB 3.x • Usando o EJB na versão 3.x Injeção de dependência Slide 17
  • 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. 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. 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. 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. 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. 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. 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