Beans Corporativos

Um enterprise bean é um componente Java™ que pode ser combinado com outros recursos para criar aplicativos Java. Há três tipos de enterprise beans, bean de entidade, beans de sessão e beans acionados por mensagens.

Todos os beans residem em contêineres de Enterprise JavaBeans (EJB), os quais fornecem um interface entre os beans e o servidor de aplicativos no qual residem.

O EJB 2.1 e versões anteriores da especificação definem os beans de entidade como um meio de armazenar dados permanentes, portanto eles exigem conexões para um formato de armazenamento persistente. Esse armazenamento pode ser um banco de dados, um aplicativo legado existente, um arquivo ou outro tipo de armazenamento persistente.

A especificação EJB 3.0 reprova beans de entidade no estilo EJB 1.1. A especificação do Java Persistence API (JPA) pretende substituir os enterprise beans descontinuados. Embora a substituição JPA seja chamada de classe de entidade, ela não deve ser confundida com os enterprise beans da entidade. Uma entidade JPA não é um enterprise bean e não é necessário executá-la em um contêiner de EJB.

Os beans de sessão geralmente contêm a lógica de negócios de níveis alto e médio para um aplicativo. Cada método em um bean de sessão é executado em uma operação de alto nível particular. Por exemplo, enviando um pedido ou transferindo dinheiro entre contas. Os beans de sessão geralmente chamam métodos em beans de entidade no curso da lógica de negócios.

Os beans de sessão podem ser stateful, stateless ou singleton. Uma instância de bean com preservação de estado deve ser utilizada por um único cliente durante seu ciclo de vida, no qual o cliente executa uma série de chamadas de método, relacionadas entre si para o cliente. Um exemplo é um carrinho de compras no qual o cliente inclui itens durante o curso de uma sessão de compra online. Em contraste, uma instância de bean sem preservação de estado é geralmente utilizada por vários clientes durante seu ciclo de vida para que os beans sem preservação de estado sejam apropriados para as operações de lógica de negócios que possam ser concluídas na extensão de uma única chamada de método. Os beans com preservação de estado devem ser utilizados apenas onde absolutamente necessários. O uso de beans sem preservação de estado aumenta a capacidade de depurar, manter e escalar o aplicativo.

A especificação EJB 3.1 apresenta os beans de sessão singleton. O contêiner EJB inicializa somente uma instância de um bean de sessão singleton, e essa instância é compartilhada por todos os clientes. Como uma única instância é compartilhada por todos os clientes, os beans de sessão singleton possuem ciclo de vida especial e semânticas de simultaneidade. Os beans de sessão singleton podem ter visualizações local de negócios, remota de negócios e de cliente de serviço da Web. Eles não podem ter visualizações de cliente local ou remoto da EJB 2.1.

As especificações EJB 3.x suportam beans de sessão stateless e stateful. Eles seguem um padrão simples, como, por exemplo:
  • Definir a interface de negócios.
  • Definir a classe que o implementa.
  • Incluir metadados com anotações ou com descritores de implementação XML.
O resultado de um bean de sessão stateful EJB 3.x simples é parecido com o seguinte:
package ejb3demo;

@Stateful
public class Cart3Bean implements ShoppingCart {
    private ArrayList contents = new ArrayList();
    
public void addToCart (Object o) {
		contents.add(o);
    }

public Collection getContents() {
    return contents;

    }
}
Os componentes EJB podem utilizar anotações como @EJB e outras referências @Resource injetáveis se o módulo for um módulo EJB 3.x.

Os clientes do aplicativo da Web e os clientes do aplicativo podem utilizar referências EJB definidas pelo descritor de implementação. Se a referência for para um bean de sessão EJB 3.x sem uma interface inicial, a referência deve ser definida com uma configuração <home> ou <local-home> nula no descritor de implementação.

Os clientes do aplicativo da Web e os clientes do aplicativo também podem utilizar injeções @EJB para referências a beans de sessão EJB dentro do mesmo arquivo EAR (enterprise archive), mas a ligação deve utilizar o suporte AutoLink dentro do contêiner ou a anotação deve utilizar o nome da referência que é definido pelo descritor de implementação e pela ligação quando o aplicativo for instalado. Para obter mais informações sobre AutoLink, consulte o tópico "Suporte de Ligações de Aplicativos EJB 3.x".

Os beans acionados por mensagens ativam o serviço de mensagens assíncronas.
  • O contêiner EJB e um provedor de Sistema de Mensagens Java (JMS) trabalham juntos para processar mensagens. Quando uma mensagem chega de outro componente do aplicativo por meio do JMS, o contêiner EJB a encaminha por uma chamada de método onMessage para uma instância do bean acionado por mensagem, que então processa a mensagem. Em outros aspectos, os beans orientados a mensagens são semelhantes a beans de sessão sem preservação de estado.
  • O contêiner EJB e um adaptador de recursos do Java Connector Architecture (JCA) trabalham juntos para processar mensagens de um Enterprise Information System (EIS). Quando uma mensagem chega de um EIS, o adaptador de recursos recebe a mensagem e a redireciona a um bean orientado a mensagens, que, então, processa a mensagem. O bean orientado a mensagens é um serviço fornecido, como o suporte a transações, pelo contêiner de EJB da mesma maneira que outros beans corporativos são serviços fornecidos.

Beans que requerem acesso a dados usam origens de dados, que são recursos administrativos que definem conjuntos de conexões para mecanismos de armazenamento persistente.


Ícone que indica o tipo de tópico Tópico de Conceito



Ícone de registro de data e hora Última atualização: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cejb_main
Nome do arquivo: cejb_main.html