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.
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.
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.
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).
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