Diretrizes:
|
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 |
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.
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>> |
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.
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.
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.
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.
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.
Figura 3: Exemplo de uma Interação com uma Implementação EJB
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
|