Diferença entre EJB2 e EJB3

Anonim

EJB2 vs EJB3

EJB (Enterprise JavaBeans) é uma API Java (Application Programming Interface) encontrada em Java EE (Java Platform, Enterprise Edition). EJB descreve um modelo arquitetônico para o desenvolvimento de aplicativos corporativos. Este é um modelo gerenciado do lado do servidor que é capaz de capturar a lógica comercial da aplicação corporativa. A IBM é o criador original da EJB que a desenvolveu em 1997. A Sun Microsystems adotou em 1999.

Antes da introdução do EJB, verificou-se que as soluções para os problemas encontrados no código comercial back-end foram frequentemente re-implementadas pelos programadores. Como resultado, o EJB foi introduzido para resolver esses problemas comuns, como persistência, integridade transacional e segurança. O EJB fornece formas padrão de lidar com esses problemas de back-end, especificando como o servidor de aplicativos deve processar transações, integrar-se aos serviços JPA (Java Persistence API), lidar com o controle de concorrência, lidar com eventos JMS (Java Message Service), resolver problemas de nomeação com JNDI (Java Naming and Directory Interface), desenvolva programas seguros com JCE (Java Cryptography Extension) e JAAS (Java Authentication and Authorization Service), implante componentes, comunique-se remotamente com RMI-IIOP (Java Remote Method Invocation interface by Internet Inter-Orb Protocol), desenvolver serviços da Web, invocar métodos assíncronos e usar o serviço Timer.

EJB2

EJB2 (EJB 2. 0) foi lançado em 22 de agosto de 2001. Ele descreve as especificações para o desenvolvimento de aplicativos orientados a objetos distribuídos em Java, combinando ferramentas desenvolvidas por diferentes fornecedores. Um dos principais objetivos do EJB2 era permitir que os programadores desenvolvessem aplicativos corporativos de forma mais fácil sem ter que entender detalhes de baixo nível, como multi-threading e pool de conexão. Outro objetivo era permitir que os programadores escrevam um "Bean" uma vez e funcionem em qualquer lugar sem recompilação (aderindo ao slogan "escrever uma vez, executar em qualquer lugar" da linguagem de programação Java). Além disso, a EJB2 pretende permitir que os componentes desenvolvidos por diferentes fornecedores interajam facilmente, e permitem que os fornecedores escrevam extensões para seus produtos que podem suportar EJBs.

EJB3

EJB3 (EJB 3. 0) foi lançado em 11 de maio de 2006. EJB3 tornou a vida dos programadores muito fácil, permitindo que eles usassem anotações em lugar de descritores de implantação que foram usados ​​anteriormente versões. O EJB3 contém uma interface de negócios e um bean de entidade específico que pode implementar essa interface de negócios, removendo a necessidade de usar interfaces domésticas / remotas e o jar de ejb. arquivo xml. O desempenho geral do EJB3 é muito melhor em comparação com o EJB2, e há um aumento considerável na configuração, flexibilidade e portabilidade nesta versão do EJB.

Qual a diferença entre EJB2 e EJB3?

EJB3 tem uma melhoria notável na configuração e desempenho ao longo de EJB2. Uma razão para essa melhoria de desempenho é o uso do POJO (Objeto de Java antigo simples) com metadados e descritores de implantação de XML por EJB3 em vez de pesquisas de JNDI usadas em EJB2 para referências de objetos. A configuração do EJB3 é muito mais simples porque o programador não precisa implementar interfaces Home / Remote e outras (por exemplo, SessionBean), que remove a necessidade de usar métodos de retorno de chamada de contêiner (como ejbActivate e ejbStore).

Além disso, o EJB3 é melhor do que o EJB2 nas áreas de flexibilidade e portabilidade. Por exemplo, é fácil converter entidades EJB3 em DAO (Data Access Object) e vice-versa porque as entidades EJB3 são leves (em oposição às entidades EJB2 de peso pesado, que implementam interfaces acima mencionadas). As consultas de banco de dados escritas no EJB3 são muito flexíveis porque ele usa um EJB-QL refinado, em lugar da versão mais antiga do EJB-QL, que teve várias limitações. O EJB3 remove todos os problemas de portabilidade do EJB2 (que usa beans de entidade para acessar o banco de dados), suportando JPA mais generalizado para todas as transações de dados.

Ao contrário do EJB2, que precisa de um contêiner EJB para executar, o EJB3 pode ser executado em uma JVM independente (Java Virtual Machine) sem ter que usar contêineres (isso é possível porque não implementa interfaces padrão). Ao contrário do EJB2, a EJB3 é facilmente conectável com provedores de persistência oferecidos por terceiros. Outra diferença importante entre EJB3 e EJB2 é que EJB3 pode usar a segurança baseada em anotações, enquanto o EJB2 utilizou a segurança baseada em descritores de implantação. Isso significa que as tarefas de configuração e configuração são muito mais fáceis no EJB3, e há uma redução considerável em despesas gerais de desempenho em comparação com o EJB2.