Guideline: Identifying J2EE Application Clients
This guideline discusses how to identify and model the Application Clients need for a J2EE application.
Relationships
Related Elements
Main Description

Introduction

This guideline focuses on identifying Application Clients. Additional guidance on Application Clients is provided in Guideline: J2EE Application Client

Identifying Application Clients

Application Clients are typically identified as part of defining the overall architecture of a distributed J2EE application. An Application Client is identified when there is a need for stand-alone desktop application. Some typical examples are:

  • applications to administer systems or J2EE applications
  • thick client applications that require increased control over the user experience than is possible with a web-based interface

Comparing Stand-Alone and J2EE Application Clients

In general, a J2EE Application Client is preferable to a stand-alone Java Application, for the following reasons:

  • A J2EE Application Client has access to J2EE authentication services. This saves developing unique authentication code, such as for log-in.
  • While a stand-alone Java Application can access EJBs by looking up its name using JNDI, it must know the bean's JNDI name. A J2EE Application Client can use different names, and map names to EJBs using the deployment descriptor.
  • J2EE Application Clients are more portable than stand-alone Java Application Clients, in that they can generally be deployed to any J2EE-compliant environment.

Modeling Application Clients

Since an Application Client is generally a major logical part of the system, we recommend that it be considered an Artifact: Design Subsystem, and modeled appropriately. That is, model it as a UML subsystem, stereotyped <<ApplicationClient>>, with the stereotype implying all the characteristics of an application client.

Since an Application Client is a concurrently executing program, it can also appear in the the Process View and Deployment View. Guideline: Describing the Run-Time Architecture for J2EE Applications and Guideline: Describing Distribution for J2EE Applications.

See Artifact: Design Subsystem, and related guidelines, for general guidance on modeling the internals of Design Subsystems. Application Clients can be deployed by a J2EE Module. See Guideline: J2EE Module for details.