Enterprise Java Beans

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    4 Favorites

    Enterprise Java Beans - Presentation Transcript

    1. EJB Rubem Azenha
    2. Agenda
      • O que é EJB?
      • Onde estamos?
      • De onde viemos?
      • Para onde vamos?
      • Conclusão
    3. O que é EJB? Java EE = Java Enterprise Edition Java para aplicações corporativas
    4. O que é EJB?
      • Mas... o que são aplicações corporativas?
      • Aplicações “Grandes” com Complicações “Grandes”:
        • Transação
        • Segurança
        • Balanceamento de Carga
        • Agendamento de tarefas
        • Gerenciamento de recursos
        • Reusabilidade
        • Disponibilidade
    5. O que é EJB?
      • EJB é uma tecnologia Java que permite que reles mortais criem aplicações “corporativas”
      • Um EJB é classe Java “turbinada”
      • Um EJB roda um Application Server (AS) ‏
        • O AS fornece todos aqueles serviços “corporativos”
        • O AS controla o acesso aos EJBs
      • EJBs devem ser empactados num arquivo .jar
      • EJBs são acessados através de interfaces pelos clientes EJB e por outros EJBs através de um mecanismo chamado JNDI
    6. O que é EJB?
      • Existem 3 tipos de EJB:
        • Session Bean – Execução das regras de negócio
          • Stateless Session Bean: Não guarda estado (EJB com amnésia) ‏
          • Stateful Session Bean: Guarda estado
        • Entity Bean – Persistência (acesso ao banco de dados) ‏
        • Message-Driven Beans – Execução de processos assíncronos
    7. Onde estamos?
      • Enterprise JavaBeans 3.0!!!
      • Simplificação do desenvolvimento EJB:
        • POJOs
        • Annotations
        • Injection
        • Conventions
    8. Onde Estamos?
      • Exemplo: Stateless Session Bean
      • SLSB podem ser construídos em cima de POJOS (Plain Old Java Objects) ‏
      • Para utilizar um SLSB, basta:
        • Anotar o com @Stateless
        • Criar uma interface e anotar com @Local@Remote
      • Não é necessário nenhum arquivo XML adicional
    9. Hello World EJB @Remote public interface HelloWorldRemote { public String helloWorld(); } @ Stateless public class HelloWorldBean implements HelloWorldRemote { public String helloWorld() { return "Hello World from a EJB"; } } HANDS ON
    10. Hello World EJB EJB Interface Remota Aplicação Cliente Configuração do JNDI JARs do JBoss
    11. Onde Estamos?
      • Exemplo: Entity Bean
      • Utilização da JPA (Java Persistence API) ‏
      • Muito parecido com o framework Hibernate
      • Entity Beans são construidos em cima de POJOs
      • Para criar um Entity Bean:
        • Anotar o EJB com @Entity
        • Mapear os atributos com as anotações da JPA
      • É necessário apenas um arquivo de configuração, o persistence.xml :(
    12. Onde Estamos? @Entity public class Produto { @Id @GeneratedValue private Long id; private String name; private BigDecimal price; (getters & setters omitidos) ‏ } HANDS ON
    13. Onde Estamos? public void add(Product p) { Connection c = null ; PreparedStatement stm = null ; try { c = DriverManager. getConnection (" jdbc:hsql:file://C:/teste.db" ) ; stm = c.prepareStatement( "INSERT INTO PRODUCT (NAME, PRICE) VALUES (?, ?)" ) ; stm.setString(1, p.getName()); stm.setBigDecimal(2, p.getPrice()); stm.executeUpdate(); } catch (SQLException e) { // Não faça isso em casa ... e.printStackTrace(); } finally { try { if (stm != null ) { stm.close(); } if (c != null ) { c.close(); } } catch (SQLException e) { // Não faça isso em casa ... e.printStackTrace(); } } }
    14. Onde Estamos? public void add(Product p) { em.persist(p); } E aí, comparando os dois exemplos, será que vale a pena usar EJB? :) ‏
    15. Onde estamos?
      • A JPA pode ser usado separadamente
      • Em aplicaçõe EJB, geralmente se usa Session Beans como “fachadas” para os Entity Beans
      • Sistema de Injeção e Inversão de Controle facilita o uso (@PersistenceContext) ‏
    16. De onde viemos?
      • EJB 2 e EJB 1 – a história é BEM diferente
        • Necessidade de interface Home
        • Necessidade de estender API do EJB (no POJOs) ‏
        • Necessidade de configurar EJBs em dois arquivos XML
        • Não tem mecanismo de injeção (sempre lookup) ‏
        • Problemas de performance (Entity Beans) ‏
        • Build complexa e demorada
        • Desenvolvimento e manutenções demoradas
        • Ferramentas miraculosas prometidas (estamos esperando por elas até hoje) ‏
        • Arquiteturas procedurais (BO, VO, DTO) ‏
      • Resultado...
    17.  
    18. Culpado?
    19. Para onde vamos?
      • Versão “lite” do EJB
      • EJBs dentro de aplicações web
      • EJBs singleton
      • Interfaces serão opcionais
      • Opção mais simples para serviços assíncronos
      • Endereço JNDI portável entre AS
      • EJB para aplicações mais simples!
    20. Conclusão
      • EJB 3.0 é uma solução viável para aplicações “corporativas”
      • Desenvolvimento EJB vem melhorando muito
      • EJB 3.1 irá simplificar mais ainda o desenvolvimento EJB.
      • Dar manutenção em legado EJB 2.X é muito trabalhoso
    21. Conclusão – Alguns Cuidados
      • Os Application Servers são uma carroça
      • A maioria das aplicações não precisam de tanta escalabilidade
      • Para as aplicações que precisam, é possível conseguir escalar a aplicação sem usar EJBs
      • Utilização de frameworks mais leves (como Spring) é mais produtivo
      • A especificação sempre vai estar um passo atrás dos frameworks open source
    22. Obrigado! Rubem Azenha [email_address] Os slides e os exemplos serão disponibilizados no site do evento

    + razenharazenha, 2 years ago

    custom

    2006 views, 4 favs, 1 embeds more stats

    EJB Presentation (in portuguese) at USCR.Java 2008. more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 2006
      • 1884 on SlideShare
      • 122 from embeds
    • Comments 0
    • Favorites 4
    • Downloads 194
    Most viewed embeds
    • 122 views on http://razenha.wordpress.com

    more

    All embeds
    • 122 views on http://razenha.wordpress.com

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories