EJB é um acrônimo para bean java corporativo . É uma especificação fornecida pela Sun Microsystems para desenvolver aplicativos distribuídos seguros, robustos e escaláveis.
Para obter informações sobre aplicativos distribuídos, visite Tutorial RMI primeiro.
Para executar o aplicativo EJB, você precisa de um servidor de aplicação (EJB Container) como Jboss, Glassfish, Weblogic, Websphere etc.
- Gerenciamento do ciclo de vida,
- segurança,
- gerenciamento de transações e
- agrupamento de objetos.
O aplicativo EJB é implementado no servidor, por isso também é chamado de componente do lado do servidor.
EJB é como COM ( Modelo de objeto componente ) fornecido pela Microsoft. Porém, é diferente de Java Bean, RMI e Web Services.
Quando usar o Enterprise Java Bean?
- O aplicativo precisa de acesso remoto . Em outras palavras, é distribuído.
- O aplicativo precisa ser escalonável . Os aplicativos EJB suportam balanceamento de carga, clustering e failover.
- O aplicativo precisa de lógica de negócios encapsulada . O aplicativo EJB é separado da camada de apresentação e persistente.
Tipos de Enterprise Java Bean
Existem 3 tipos de bean corporativo em java.
Feijão de Sessão
O bean de sessão contém lógica de negócios que pode ser chamada por cliente local, remoto ou de serviço web.
Bean orientado a mensagens
Assim como o Session Bean, ele contém a lógica de negócios, mas é invocado pela passagem de mensagens.
Feijão de Entidade
Ele encapsula o estado que pode ser persistido no banco de dados. Está obsoleto. Agora, ele foi substituído por JPA (Java Persistent API).
Diferença entre RMI e EJB
Tanto o RMI quanto o EJB fornecem serviços para acessar um objeto em execução em outra JVM (conhecido como objeto remoto) a partir de outra JVM. As diferenças entre RMI e EJB são fornecidas abaixo:
RMI | EJB |
---|---|
No RMI, os serviços de middleware, como segurança, gerenciamento de transações, pool de objetos, etc., precisam ser executados pelo programador Java. | No EJB, os serviços de middleware são fornecidos automaticamente pelo EJB Container. |
RMI não é um componente do lado do servidor. Não é necessário ser implantado no servidor. | EJB é um componente do lado do servidor e deve ser implantado no servidor. |
O RMI é construído sobre a programação de soquetes. | A tecnologia EJB é construída sobre RMI. |
EJB e Webservice
No EJB, o componente bean e o cliente bean devem ser escritos em linguagem java.
Se o cliente bean precisar ser escrito em outra linguagem, como .líquido , php etc, precisamos ir com serviços web (SOAP ou REST). Portanto, EJB com serviço web será a melhor opção.
Desvantagens do EJB
- Requer servidor de aplicativos
- Requer apenas cliente java. Para clientes de outros idiomas, você precisa usar o webservice.
- Complexo para entender e desenvolver aplicativos ejb.