Tópicos

Introdução To top of page

Essa diretriz focaliza a identificação de EJBs. Orientação adicional sobre EJBs é fornecida em Diretrizes: EJBs.

Identificando EJBs To top of page

Normalmente, os EJBs são utilizados para implementar um objeto de negócios do lado do servidor que requer suporte para transações, segurança e acesso remoto ou que opere em dados compartilhados (como a atualização de informações da conta).

Os EJBs são muitas vezes identificados quando as classes de design são identificadas a partir das Classes de Análise. As classes de controle são candidatas adequadas para os beans de sessão, uma vez que os beans de sessão são adaptados para fornecer lógica de controle. As classes de entidade são candidatas adequadas para os beans de entidade, uma vez que os beans de entidade são adaptados para os dados persistentes.

Consulte também as diretrizes mais específicas a seguir:

Comparando Beans de Sessão, Orientados a Mensagens e de Entidade To top of page

Resumindo algumas das diretrizes mencionadas anteriormente, esta tabela identifica as funções reproduzidas por EJBs diferentes, como são acessadas e a natureza de seu estado.

  Sessão Orientado a Mensagens Entidade

Função

Implementa a lógica de negócios específica do cliente

Implementa a lógica de negócios específica do processamento de mensagens

Implementa a lógica de negócios específica da entidade de negócios

Método de acesso

Único cliente por meio de interfaces locais ou remotas

Contêiner por meio da interface MessageListener do JMS; não acessível diretamente pelos clientes

Vários clientes simultâneos por meio de interfaces locais e remotas

Estado

O estado conversacional transiente entre o cliente e o contêiner pode ser mantido

Sem preservação de estado, mas pode manter identificadores em recursos na instância

Estado persistente salvo no banco de dados


Modelando EJBs To top of page

Os EJBs são modelados como um conjunto de classes estereotipadas. Especificamente, a classe do bean e as classes de interface EJB. As interfaces EJB são modeladas como classes estereotipadas, não como interfaces UML, pelos motivos discutidos em Diretrizes: Interfaces para Aplicativos J2EE.

Os relacionamentos entre a classe de bean e as interfaces EJB são modelados como dependências da classe do bean para as interfaces e não como relacionamentos de realizações. Normalmente, a construção implements de Java é representada como uma realização entre uma interface e uma classe. Entretanto, as classes EJB não implementam suas classes de interfaces e, portanto, uma dependência é mais apropriada. O diagrama a seguir mostra um exemplo. Para obter informações adicionais sobre este exemplo em particular, consulte Diretrizes: Projetando Subsistemas para Aplicativos J2EE.

Diagrama descrito no texto de acompanhamento.

EJB de Exemplo e Classes Auxiliares

A seguir, os estereótipos de UML aplicáveis à modelagem de EJBs.

Estereótipo Aplica-se a Definição

<<EJBSessionHomeInterface>>
<<EJBEntityHomeInterface>>

Classe Indica uma interface de sessão ou uma interface home de entidade, respectivamente.
<<EJBRemoteInterface>> Classe Indica uma interface remota EJB.
<<EJBLocalInterface>> Classe Indica uma interface local EJB.
     
<<EJBSession>> Classe Indica uma classe de bean de sessão EJB.
<<EJBEntity>> Classe Indica uma classe de bean de entidade EJB.
<<EJBMessageDriven>> Classe Indica que a classe é um bean orientado a mensagens.

Um EJB é normalmente agrupado em um subsistema, juntamente com classes e EJBs estreitamente relacionados. Isso permite ao designer fornecer uma visualização de especificação de EJBs, independentemente de sua implementação, e agrupar-se com outros elementos de design para fornecer uma abstração de nível superior. Consulte Diretrizes: Projetando Subsistemas para Aplicativos J2EE para obter alguns detalhes adicionais.

Consulte também a Especificação de Mapeamento UML/EJB (RSC01) para obter uma lista completa de estereótipos para a representação de construções de EJB.

Modelando Beans Orientados a Mensagens To top of page

Dependências de modelos para os tópicos ou filas nos quais o bean orientado a mensagens assina. Consulte Diretrizes: Descrevendo a Arquitetura de Tempo de Execução para Aplicativos J2EE para obter orientação adicional sobre a modelagem de elementos coincidentes em um Aplicativo J2EE.

Modelando Propriedades de EJB To top of page

A utilização de mecanismos, como persistência gerenciada por contêiner, transações, autorização, etc. pode ser modelada como propriedades adicionais da classe do bean ou simplesmente incluída em uma descrição textual associada à classe do bean.

Utilize diagramas em seqüência para considerar os cenários que utilizam esses mecanismos.

Modelando Interações de Objetos EJB To top of page

Os diagramas de interação (diagramas de colaboração e em seqüência) podem ser utilizados para mostrar o comportamento dinâmico de EJBs e a interação de não-EJBs (incluindo componentes da Web e aplicativos cliente externos) com EJBs.

Esses diagramas de interação têm basicamente a mesma descrição contida em Atividade: Design de Casos de Uso. As interações podem ser mostradas com o bean como uma caixa preta, interagindo apenas com as interfaces EJB. Elas também podem mostrar a implementação do bean, mostrando as interações entre as interfaces EJB e a classe de implementação do bean. Observe que a interação interveniente com o contêiner geralmente não é mostrada.

Os beans orientados a mensagens consomem mensagens que chegam assincronicamente de outras origens. Você poderia optar por mostrar uma mensagem assíncrona que flui do produtor para o consumidor diretamente ou poderia modelar o relacionamento mais precisamente pela modelagem dos tópicos e filas.

Um exemplo de diagrama em seqüência mostrando uma interação de uma classe cliente com interfaces EJB é mostrado na Figura 2.

Diagrama descrito no texto de acompanhamento.

Figura 2: Interação de uma Classe Cliente com Interfaces EJB

A Figura 3 é um diagrama em seqüência semelhante à Figura 2, mas mostra interações com a implementação do bean.

Diagrama descrito no texto de acompanhamento.

Figura 3: Exemplo de uma Interação com uma Implementação EJB

Alternativas de Modelagem To top of page

O EJB, como um agrupamento de classe de implementação do bean mais as interfaces EJB, também pode ser modelado como um subsistema ou um componente.

Alguns designers também podem optar por modelar um EJB como uma classe e estereotipar as operações para indicar se pertencem às interfaces "locais", "remotas" ou "home". Isso fornece uma notação mais compacta que as outras alternativas.



Rational Unified Process   2003.06.15