Topics

 

Introduction

To top of page

Architectural Analysis is where the Software Architect determines how to best leverage the technologies provided by the J2EE platform to meet both the functional and nonfunctional requirements of the system. This guideline discusses some of those technologies.

 

J2EE Deployment Configurations

To top of page

J2EE supports a number of deployment configurations. Selecting a particular deployment configuration is an important step in Architectural Analysis as it becomes the foundation on which the initial architecture is based.

Selecting a J2EE deployment configuration drives the definition of the initial Deployment Model. The selected J2EE deployment configuration defines the configuration of physical nodes (that is, machines) and logical nodes (J2EE containers). This is where you decide whether or not you have a separate Web server and an EJB server, and whether your clients are browsers using HTTP or are fat application clients.

Each of these deployment configurations exhibits different characteristics, so one should be selected based upon a number of factors. Some factors that should be considered when selecting a deployment configuration include: maintainability (how do you isolate changes in one tier so they don't affect other tiers, how easy is it to deploy upgrades?), performance and scalability (how easy is it to add additional computing resources?), and reliability (what happens if one of the resources goes down?).

The selection of a deployment configuration constrains a number of other architectural decisions regarding the architectural mechanisms that must be defined, the application's concurrency (see activity: Describe Concurrency), and the application's distribution (see activity: Describe Distribution). 

 

J2EE Mechanisms

To top of page

The J2EE platform provides a number of mechanisms that support the development of multi-tier enterprise systems (persistency, inter-process communication, transaction management, security, etc.). During Architectural Analysis, the Software Architect defines what needs to be built, as opposed to what will be provided by the J2EE platform.

Effective management of application state is an important aspect of designing distributed applications. For an overview of some of the common design considerations and mechanisms for state management in a J2EE application, see Guidelines: Designing State for J2EE Applications.



Rational Unified Process  

2003.06.13