Arquitectura EJB 2.x

Este tópico fornece uma descrição geral da arquitectura de componentes distribuída definida na especificação da arquitectura Sun Microsystems Enterprise JavaBeans™ (EJB) versão 2.x.

As especificações e descrições completas da tecnologia dos Enterprise JavaBeans estão disponíveis no sítio da Web java.sun.com.

Os beans empresariais facultam diversos benefícios para os programadores de aplicações. São caracterizados por:

Beans empresariais
Um bean empresarial é um componente não visual de uma aplicação empresarial distribuída que está orientada para a transacção. Os beans empresariais são geralmente implementados em contentores EJB e executados em servidores EJB. Pode personalizá-los ao mudar os descritores de implementação e agregá-los com outros beans para criar novas aplicações. Existem três tipos de beans empresariais: beans de sessão, beans de entidade e beans orientados por mensagens. Os beans de sessão e orientados por mensagens são componentes grosseiros concebidos para modelar o processo empresarial, enquanto os beans de entidade são utilizados para modelar objectos de dados refinados.
  • Beans de sessão: Os beans de sessão são beans empresariais impersistentes. Podem ter ou não registo.
    • Beans de sessão com estado: Agem em nome de um único cliente e mantêm informações sobre a sessão específica do cliente (denominada estado conversacional) através de várias chamadas de método e transacções. Existe durante o tempo que dura uma sessão única cliente/servidor.
    • Beans de sessão sem estado: Não mantêm qualquer estado conversacional e são agrupados pelo respectivo contentor para processar vários pedidos de vários clientes.
  • Beans de entidade: os beans de entidade são beans empresariais que contêm dados persistentes e que podem ser guardados em vários armazenamentos de dados persistentes. Cada bean de entidade tem a sua própria identidade. Os beans de entidade que gerem a respectiva persistência são denominados beans de entidade de persistência gerida por beans (BMP - bean-managed persistence). Os beans de entidade que delegam a sua persistência ao contentor de EJB são denominados beans de entidade de persistência gerida pelo contentor (CMP - container-managed persistence).
  • Beans orientados por mensagens: Beans orientados por mensagens são beans empresariais que recebem e processam mensagens JMS. Ao contrário dos beans de sessão ou de entidade, os beans orientados por mensagens não têm interfaces. Podem ser acedidos apenas através do serviço de mensagens e não mantêm qualquer estado conversacional. Os beans orientados por mensagens permitem uma comunicação assíncrona entre a fila e a escuta e facultam a separação entre o processamento de mensagem e a lógica empresarial.
Vista do cliente remoto
A especificação da vista do cliente remoto ficou disponível a partir da versão EJB 1.1. A vista do cliente remoto de um bean empresarial não depende da localização. Um cliente executado no mesmo JVM que uma instância de um bean utiliza a mesma API para aceder a um bean que um cliente executado num JVM diferente, quer na mesma máquina, quer numa diferente. A vista de cliente remoto é composta por duas interfaces
  • Interface remota: A interface remota especifica os métodos empresariais remotos que um cliente pode chamar num bean empresarial.
  • Interface principal remota: A interface principal remota especifica os métodos utilizados por clientes remotos para localizar, criar e remover instâncias de classes de beans empresariais.
Vista do cliente local
A especificação da vista do cliente local está disponível na versão EJB 2.0 ou posterior. Ao contrário da vista do cliente remoto, a vista do cliente local de um bean dependente da localização. O acesso da vista do cliente local a um bean empresarial requer o cliente local e o bean empresarial que permite que a vista do cliente local esteja no mesmo JVM. Assim sendo, a vista do cliente local não faculta a transparência da localização facultada pela vista do cliente remoto. As interfaces locais e as interfaces principais locais facultam apoio ao acesso leve de beans empresariais que sejam clientes locais. Os beans de sessão e de entidade podem ser acoplados com os seus clientes, permitindo acesso sem a informação complementar geralmente associada às chamadas de método remotas. A vista de cliente local é composta por duas interfaces:
  • Interface local: A interface local é uma versão leve da interface remota, mas para clientes locais. Inclui métodos de lógica empresarial que podem ser chamados por um cliente local.
  • Interface principal local: A interface principal local especifica os métodos utilizados por clientes locais para localizar, criar e remover instâncias de classes de beans empresariais.
Vista do cliente de serviço Web
Na especificação do EJB 2.1, a arquitectura do EJB introduziu o suporte para serviços Web. Um cliente de um bean de sessão pode ser um cliente de serviço Web. Um cliente de serviço Web pode fazer uso da vista do cliente de serviço Web de um bean de sessão sem registo, que tem uma interface terminal de serviço correspondente.
Interface terminal de serviço
A interface terminal de serviço de um bean de sessão sem registo expõe a funcionalidade do bean de sessão como sendo um serviço da Web terminal. O documento da Linguagem de Descrição de Serviço Web (WSDL - Web Service Description Language) de um serviço Web descreve-o como sendo um conjunto de terminais que operam em mensagens. Um documento WSDL pode incluir a interface terminal de serviço de um bean de sessão sem registo como um dos seus terminais. Um bean de sessão sem registo existente pode ser modificado para incluir uma vista de cliente de serviço Web ou uma interface terminal de serviço pode ser correlacionada a partir de um WSDL existente para facultar a interface correcta.

Uma vista de cliente de serviço Web é independente da localização e pode ser acedida através de chamadas remotas.

Ficheiro JAR de clientes EJB
Um ficheiro JAR de cliente EJB é um ficheiro JAR opcional que pode conter as interfaces de cliente de que um programa de cliente necessita para utilizar as vistas de cliente de beans empresariais contidos no ficheiro JAR EJB. Se decidir não criar um ficheiro JAR EJB para um módulo EJB, todas as classes de interface de cliente estarão no ficheiro JAR EJB. Por definição, a área de trabalho cria projectos JAR de clientes EJB para cada projecto EJB correspondente.
Contentor EJB
Um contentor EJB é um ambiente em tempo de execução que gere um ou mais beans empresariais. O contentor EJB gere os ciclos de vida de objectos do bean empresarial, coordena transacções distribuídas e implementa a segurança dos objectos. Geralmente, cada contentor EJB é facultado por um servidor EJB e contém um conjunto de beans empresariais que são executados no servidor.
Descritor de implementação
Um descritor de implementação é um ficheiro XML incluído com os beans empresariais num ficheiro JAR EJB ou num ficheiro EAR. Contém metadados, que descrevem os conteúdos e a estrutura de beans empresariais, e a transacção em tempo de execução e a informação de segurança para o contentor EJB.
Servidor EJB
Um servidor EJB é um processo ou aplicação de alto nível que faculta um ambiente em tempo de execução para suportar a execução das aplicações de servidor que utilizam beans empresariais. Um servidor EJB faculta um serviço de nomenclatura acessível ao JNDI, gere e coordena a alocação de recursos para as aplicações dos clientes e faculta o acesso a recursos do sistema e um serviço de transacção. Um servidor EJB pode ser facultado, por exemplo, por um servidor de base de dados ou de aplicação.