Such applications are typically configured as a client tier to provide the user interface, one or more middle-tier modules that provide client services and business logic for an application, and backend enterprise information systems providing data management. Figure 1.1 illustrates the various components and services that make up a typical J2EE environment. As illustrated, the J2EE platform provides a multitier distributed application model. This means that the various parts of an application can run on different devices. The client tier supports a variety of client types, both outside and inside of corporate firewalls.
Containers are standardized runtime environments that provide specific component services.
Components can expect these services to be available on any J2EE platform from any vendor. All EJB containers provide automated support for transaction and life cycle management of EJB components, as well as bean lookup and other services. In addition, containers provide a mechanism for selecting application behaviors at assembly or deployment time. Features that can be configured at deployment time include security checks, transaction control, and other management responsibilities. While the J2EE specification defines the component containers that must be supported, it doesn't specify or restrict the configuration of these containers.