Este tópico fornece uma visão geral de alto nível da arquitetura de componente
distribuído definida na especificação da arquitetura EJB (Enterprise JavaBeans™) da
Sun Microsystems.
As especificações Enterprise JavaBeans completas e as descrições
da tecnologia estão disponíveis no Web site java.sun.com.
Os beans corporativos fornecem vários benefícios para desenvolvedores de aplicativos:
- Permitem construir aplicativos distribuídos pela combinação de componentes
desenvolvidos, utilizando ferramentas de diferentes fornecedores.
- Facilitam a gravação de aplicativos. Você não precisa cuidar de
detalhes de nível inferior do gerenciamento de transação e de estado, multiencadeamento, conjunto de
recursos e outras APIs complexas de nível inferior. No entanto, se necessário, os programadores especialistas
ainda poderão obter acesso direto às APIs de nível inferior.
- Podem ser desenvolvidos uma vez e, em seguida, implementados em várias plataformas sem
recompilação ou modificação do código fonte.
- A especificação EJB que rege o uso de beans corporativos é compatível
com outras APIs Java™ e CORBA. Ela também fornece interoperabilidade
entre os beans corporativos e os aplicativos não-Java.
- Beans corporativos
- Um bean corporativo é um componente não-visual de um aplicativo
corporativo distribuído, orientado a transações. Os beans corporativos são normalmente
implementados em contêineres EJB e executados em servidores EJB. É possível customizá-los
alterando seus descritores de implementação e montá-los com outros
beans para criar novos aplicativos. Há três tipos de beans corporativos: beans de
sessão, beans de entidade e beans orientados a mensagens.
- Beans de sessão: Beans de sessão são beans corporativos
não-persistentes. Podem ser com preservação de estado ou sem preservação de estado. Um bean de sessão com
preservação de estado age em nome de um único cliente e mantém informações de sessão
específicas do cliente (chamadas de estado de conversação) em várias chamadas de método e
transações. Existe durante uma única sessão cliente/servidor.
Um bean de sessão sem preservação de estado, em comparação, não mantém nenhum estado
de conversação. Os beans de sessão sem preservação de estado são agrupados por seu contêiner para manipular vários
pedidos de vários clientes.
- Beans de entidade: Beans de entidade são beans corporativos
que contêm dados persistentes e que podem ser salvos em vários data stores
persistentes. Cada bean de entidade carrega sua própria identidade. Os beans de entidade que
gerenciam sua própria persistência são chamados de beans de entidade BMP (persistência gerenciada
por bean). Os beans de entidade que delegam sua persistência para seus contêineres
EJB são chamados de beans de entidade CMP (persistência gerenciada por contêiner).
- Beans orientados a mensagens: Beans orientados a mensagens são
beans corporativos que recebem e processam mensagens JMS. Ao contrário dos beans de
sessão ou de entidade, os beans orientados a mensagens não possuem interfaces. Eles podem ser acessados
somente por meio do sistema de mensagens e não mantêm nenhum estado de conversação.
Os beans orientados a mensagens permitem comunicação assíncrona entre a fila e
o listener e fornecem separação entre o processamento de mensagens e a lógica de
negócios.
- Visualização do Cliente Remoto
- A especificação visualização do cliente remoto tornou-se disponível a partir
do EJB 1.1. A visualização do cliente remoto de um bean corporativo não depende do local.
Um cliente em execução na mesma JVM que a instância de bean utiliza a mesma API para acessar
o bean que um cliente em execução em uma JVM diferente na mesma máquina ou em uma máquina diferente.
- Interface remota: A interface remota especifica
os métodos de negócios remotos que um cliente pode chamar em um bean corporativo.
- Interface home remota: A interface home remota especifica
os métodos utilizados por clientes remotos para localizar, criar e remover instâncias
de classes do bean corporativo.
- Visualização do Cliente Local
- A especificação visualização do cliente local está disponível no EJB 2.0 ou
posterior. Ao contrário da visualização do cliente remoto, a visualização do cliente local de um bean depende
do local. O acesso da visualização do cliente local a um bean corporativo requer ambos, o
cliente local e o bean corporativo que fornece a visualização do cliente local, para
estar na mesma JVM. A visualização do cliente local, portanto, não fornece a transparência
de local fornecida pela visualização do cliente remoto. As interfaces locais e as interfaces
home locais fornecem suporte para acesso reduzido a partir de beans corporativos
que são clientes locais. Os beans de sessão e de entidade podem ser completamente acoplados a
seus clientes, permitindo acesso sem o código extra normalmente associado a
chamadas de método remotas.
- Interface local: A interface local é
uma versão reduzida da interface remota, mas para clientes locais. Ela inclui
métodos de lógica de negócios que podem ser chamados por um cliente local.
- Interface home local: A interface home local especifica
os métodos utilizados por clientes locais para localizar, criar e remover instâncias
de classes do bean corporativo.
- Visualização do Cliente de Serviço da Web
- Na especificação EJB 2.1, a arquitetura EJB introduziu o suporte
para serviços da Web. Um cliente para um bean de sessão pode ser um cliente de serviço da Web.
Um cliente de serviço da Web pode utilizar a visualização do cliente de serviço da Web de um bean de sessão sem
preservação de estado, que possui uma interface de nó de extremidade de serviço correspondente.
- Arquivo JAR do Cliente EJB
- Um arquivo JAR do cliente EJB é um arquivo JAR opcional que pode conter as interfaces
clientes que um programa cliente precisa para utilizar as visualizações de clientes dos beans
corporativos contidos no arquivo JAR EJB. Se você decidir não criar
um arquivo JAR do cliente EJB para um módulo EJB, todas as classes de interfaces clientes
estarão no arquivo JAR EJB. Por padrão, o ambiente de trabalho cria projetos JAR
do cliente EJB para cada projeto EJB correspondente.
- Contêiner EJB
- Um contêiner EJB é um ambiente de tempo de execução que gerencia um ou mais
beans corporativos. O contêiner EJB gerencia os ciclos de vida de objetos do
bean corporativo, coordena transações distribuídas e implementa a segurança de
objetos. Geralmente, cada contêiner EJB é fornecido por um servidor EJB e contém
um conjunto de beans corporativos executados no servidor.
- Descritor de Implementação
- Um descritor de implementação é um arquivo XML compactado com os beans
corporativos em um arquivo JAR EJB ou um arquivo EAR. Ele contém metadados que descrevem o
conteúdo e a estrutura dos beans corporativos, a transação do tempo de execução e
as informações de segurança do contêiner EJB.
- Servidor EJB
- Um servidor EJB é um processo ou aplicativo de alto nível que fornece
um ambiente de tempo de execução para suportar a execução de aplicações servidor que
utilizam beans corporativos. Um servidor EJB fornece um serviço de nomes acessível por JNDI,
gerencia e coordena a alocação de recursos para aplicativos clientes,
fornece acesso a recursos do sistema e fornece um serviço de transações. Um
servidor EJB poderia ser fornecido por, por exemplo, um servidor de banco de dados ou de aplicativos.
(C) Direitos Autorais da IBM Corporation 2000, 2005. Todos os direitos reservados.