Diretrizes: Descrevendo a Distribuição para Aplicativos J2EE
Tópicos
Introdução
Os aplicativos J2EE possuem recursos específicos que permitem implementação flexível.
A seguir, as diretrizes específicas adaptadas à implementação dos Módulos
J2EE e Aplicativos J2EE.
Para obter informações sobre as configurações de implementação padrão fornecidas pelo J2EE,
consulte Conceitos: Configurações de Implementação do J2EE.
Modelando a Distribuição
A Atividade: Descrever a Distribuição fornece
um exemplo genérico de modelo de implementação de alto nível. A seguir, um exemplo específico
do J2EE para um aplicativo de leilão on-line.

Neste exemplo muito simples, mostramos cada um dos nós físicos e fornecemos
uma idéia de quais contêineres e processos executar em cada nó.
Entretanto, a implementação do J2EE pode ser muito mais complicada. O exemplo a seguir
mostra um exemplo mais complicado.

Neste exemplo, um compensador de carga replicado direciona os pedidos para
um cluster de servidores da Web e servidores de aplicativos. Um aplicativo J2EE também pode
incluir vários servidores de nomes JNDI, clientes aplicativos espessos, servidores de mensagens,
etc. Também é possível adornar o diagrama com protocolos, tipos de conexão
de rede, firewalls, etc.
Observe que no exemplo anterior, não listamos ou modelamos os Módulos
J2EE para cada nó. Isso ocorre porque, nesses exemplos, há apenas um
contêiner EJB lógico e um contêiner de Web. Todos os EJBs e EJB-JARs são implementados
em todos os servidores EJB. O mesmo ocorre para os componentes da Web.
Outra opção para modelar a distribuição para um aplicativo J2EE
é modelar o mapeamento dos Módulos J2EE e/ou Aplicativo J2EE para um servidor
específico. Isso é mostrado em um diagrama de implementação em UML, desenhando-se uma dependência
(<<implementação>>estereotipada) do archive para o nó. O diagrama a seguir demonstra
essa opção. Neste exemplo, mapeamos um archive J2EE (um EAR) para um nó (um Application Server
específico).

Em geral, não é necessário modelar a designação de archives J2EE
para nós e contêineres. Entretanto, em algumas circunstâncias, pode haver
a necessidade de que determinados elementos do sistema residam em um nó com características
específicas (por exemplo, um nó que suporte um banco de dados ou um nó que suporte
um sistema legado). Nesses casos, talvez você deseje modelar a implementação de
Módulos J2EE para nós específicos. Além disso, a modelagem do mapeamento do archive para o servidor
será especialmente útil se existir automatização para suportar a implementação real
dos archives para o servidor especificado.
|