Enterprise JavaBeans
O Enterprise JavaBeans 3.0 (EJB) é um framework que simplifica o processo de desenvolvimento de componentes para aplicações distribuídas em Java. Utilizando EJB o desenvolvedor pode dedicar mais tempo ao desenvolvimento da lógica de negócio, preocupando-se menos com a transação, a persistência de dados, os serviços de rede, entre outros.
Componente
Um componente é um pedaço reutilizável de software, normalmente criado de forma genérica e independente de sistemas podendo ser um único arquivo ou um conjunto de arquivos com um objetivo em comum.
A reutilização de código tem alguns benefícios muito significantes como redução do custo e tempo de desenvolvimento, uma vez que o componente está pronto e testado, caso você precise em outro lugar do software ou em software diferente utilizar a mesma funcionalidade, basta reutilizá-lo novamente.
"Um componente é uma parte do sistema não trivial, quase independente e substituível, desempenhando funções claras no contexto de uma arquitetura bem definida. Um componente obedece e provê a realização física de um conjunto de interfaces que especificam alguma abstração lógica." - Definição de Componente por Grady Booch
Prós e contras da programação baseado em componentes
Prós
- Reutilização do componente, uma vez criado e homologado ele pode ser utilizado em vários sistemas diferentes;
- Redução de custo, depois que o componente já foi criado ele é reaproveitado em outros sistemas;
- Desenvolvimento em paralelo, no projeto pode ter diversas equipes trabalhando no mesmo projeto e criando componentes separados.
Contras
- Encontrar o componente certo, encontrar qual parte do sistema que pode ser desenvolvido de forma a ser reaproveitado em outros sistemas ou procurar um componente que tenha qualidade para ser utilizado no seu sistema;
- Qualidade do componente, quando você resolve utilizar um componente que não foi desenvolvido pela sua empresa, é preciso testar esse componente para saber se ele vai ser compatível com o seu sistema;
- Custo de tempo de desenvolvimento, na criação do componente ele precisa ser feito de forma genérica, para que possa ser reaproveitado e isso nem sempre é fácil de fazer.
Container EJB
Para utilizar o EJB é necessário um Servidor de Aplicações Web que possua um Container EJB, pois é este container que gerenciará todo o ciclo de vida de um componente EJB. Existem diversos servidores de aplicações web que suportam EJB 3.0 como o JBoss, GlassFish, WebSphere, entre outros.
Quando a aplicação utiliza o container EJB, diversos serviços são disponibilizados para a aplicação EJB como, por exemplo:
- Gerenciamento de transação
- Segurança
- Controle de concorrência
- Serviço de rede
- Gerenciamento de recursos
- Persistência de dados
- Serviço de mensageria
Tipos de EJB
Existe três tipos de EJB que podemos utilizar, cada um com sua finalidade:
- Session Beans – Utilizado para guardar a lógica de negocio da aplicação;
- Message-Driven Bean – Utilizado para troca de mensagens;
- Entity Bean (até versão EJB 2.x) – Utilizado para representar as tabelas do banco de dados.