Guideline: Describing Distribution for J2EE Applications
This guideline discusses how to model the deployment of J2EE Modules and Applications.
Related Elements
Main Description


J2EE applications have specific features that allow for flexible deployment. The following are specific guidelines tailored to deploying J2EE Modules and J2EE Applications.

For information on the standard deployment configurations provided by J2EE, see Concept: J2EE Deployment Configurations.

Modeling Distribution

Task: Describe Distribution provides a generic example of a high level deployment model. The following is a J2EE-specific example, for an online auction application.

Diagram described in accompanying text.

In this very simple example, we show each of the physical nodes, and provide an idea of which containers and processes run on each node.

However, J2EE deployment can be much more complicated. The following example shows a more complicated example.

Diagram described in accompanying text.

In this example, a replicated load balancer directs requests to a cluster of web servers and application servers. A J2EE application may also include multiple JNDI name servers, thick application clients, message servers, and so on. You may also wish to adorn the diagram with protocols, kind of network connection, firewalls, and so on.

Note that in the above example, we don't list or model the J2EE Modules for each node. This is because in these examples, there is only one logical EJB container and one Web container. All EJBs and EJB-JARs are deployed to all EJB servers. Similarly for the web components.

Another option for modeling distribution for a J2EE application is to model the mapping of the J2EE Modules and/or J2EE Application to specific servers. This is shown in a UML deployment diagram by drawing a dependency (stereotyped <<deploy>>) from the archive to the node. The following diagram demonstrates this option. In this example, we map a J2EE archive (an EAR) to a node (a specific Application Server).

Diagram described in accompanying text.

In general, it is not necessary to model the assignment of J2EE archives to nodes and containers. However, in some circumstances, there may be a need to have certain elements of the system reside on a node with specific characteristics (for example, a node that supports a database, or a node supporting a legacy system). In cases like this, you may wish to model the deployment of J2EE Modules to specific nodes. Also, modeling the mapping from archive to server is especially helpful if automation exists to support the actual deployment of the archives to the specified server.