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:
- Permitem construir aplicações distribuídas ao combinar componentes
desenvolvidos com ferramentas de fornecedores diferentes.
- Facilitam a gravação de aplicações. Não tem de lidar com os detalhes de
baixo nível da transacção e gestão do estado, execução simultânea de múltiplos
módulos, interconexão de recursos e outros APIs complexos de baixo nível.
Contudo, caso seja necessário, especialistas em programação ainda podem ter
acesso directo aos APIs de baixo nível.
- Estes podem ser desenvolvidos uma vez e implementados em várias plataformas
sem recompilação ou modificação do código fonte.
- A especificação EJB que rege a utilização de beans empresariais é
compatível com outros APIs e CORBA de Java™. Faculta também a
interoperacionalidade entre beans empresariais e aplicações não Java.
- 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.
- 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.