Breve definição sobre EJB 3

EJB 3 classifica os beans em três tipos fundamentais, baseados no que eles fazem:

Session beans

São beans com o propósito de realizar alguma operação de negócio específica, como consultar o histórico de crédito de um cliente.

Pode ser tanto com estado ou sem estado. Um session bean com estado é bean típico para um carrinho de compras, onde os itens são adicionados no carrinho passo a passo, por isso o bean precisa manter o estado. Já um session bean sem estado é um bean geralmente usado para operações como um consultar o histórico de crédito de um cliente, ou seja, para operações que não precisam guardar estado.

Um session bean pode ser executado local, remoto por RMI ou por Web Services. Sendo que somente os session beans sem estado, podem ser expostos como Web Services.

Um session bean não sobrevive a queda ou parada temporário do servidor.

Os sessions beans necessitam de um EJB container para serem executados.

Message driven beans

Assim como os session beans, seu propósito é para realizar operações de negócio. A diferença e que as operação não recebem resposta automática, são executadas de forma assíncrona.

Os MDBs são invocados através de mensagens enviadas ao servidor de mensagens como IBM WebSphere MQ, SonicMQ, Oracle Advanced Queueing e TIBCO.

Um exemplo comum de sua utilização é para operações que podem ser lentas e que não necessitem de resposta automática. Desde de um simples envio de email a integrações entre sistemas.

Os MDBs necessitam de um EJB container para serem executados.

Entity beans

Os entities beans são os beans mais conhecidos e mais utilizados, são as conhecidas entitdades JPA.

JPA é uma especificação de ORM, onde as implementações mais conhecidas são pelos frameworks Hibernate e Oracle TopLink.

Entity bean é a forma que EJB 3 controla a persistência de dados, definindo o padrão para:

Os entities beans não necessitam de um container EJB para serem executados.