Arquitectura do EJB

Este tópico faculta uma descrição geral de alto nível da arquitectura de componente distribuído, definida na especificação da arquitectura Sun Microsystems Enterprise JavaBeans™ (EJB).

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:

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.
  • Beans de sessão: Beans de sessão não são beans empresariais persistentes. Podem ter ou não registo. Um bean de sessão com registo age em nome de um único cliente e mantém informações sobre a sessão específica para o cliente (denominada estado conversacional) através de várias chamadas de método e transacções. Existem durante uma única sessão cliente/servidor. Um bean de sessão sem registo, por comparação, não mantém qualquer estado conversacional. Os beans de sessão sem registo são reunidos pelo seu contentor para gestão de vários pedidos de vários clientes.
  • Beans de entidade: Beans de entidade são beans empresariais que contêm dados persistentes e que podem ser salvos em vários armazenamentos de dados persistentes. Cada bean de entidade tem a sua própria identidade. Os beans de entidade que gerem a sua própria 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 para o 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 tornou-se 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.
  • 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 numa 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.
  • 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 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.

(C) Copyright IBM Corporation 2000, 2005. Todos os direitos reservados.