The J2EE specification
The J2EE specification is the standard for developing, deploying, and running enterprise applications. Read this topic for a brief overview of key J2EE concepts, including the parts of the J2EE run-time environment and the J2EE application packaging and deployment. The ultimate source of J2EE information is the specification, available from the Sun Microsystems Web site (java.sun.com) . For a list of the specification levels that comprise the J2EE 1.3 specification (Servlet, EJB, and so on), see http://java.sun.com/j2ee/1.3/docs/#specs .
IBM WebSphere Application Server, V5 has completed the full J2EE certification test suite. The product supports all of the J2EE 1.3 APIs. You can check the list of J2EE-compatible products posted by Sun Microsystems at http://java.sun.com/j2ee/compatibility.html .
Java 2 Platform, Enterprise Edition defines a standard that applies to all aspects of designing, developing, and deploying multitier, server-based applications. The standard architecture defined by the J2EE specification is composed of the following elements:
- Standard application model for developing multitier applications.
- Standard platform for hosting applications.
- Compatibility test suite for verifying that J2EE platform products comply with the J2EE platform standard.
- Reference implementation providing an operational definition of the J2EE platform.
The J2EE platform specification describes the run-time environment for a J2EE application. This environment includes application components, containers, and resource manager drivers. The elements of this environment communicate with a specified set of standard services.
For more information, see Three-tier architectures.
J2EE platform roles
The J2EE platform also defines a number of distinct roles performed during the application development and deployment life cycle:
- The product provider designs and offers the J2EE platform, APIs, and other features defined in the J2EE specification for purchase.
- The tool provider provides tools used for the development and packaging of application components as part of the J2EE specifications.
- The application component provider creates Web components, Enterprise Beans, applets, or application clients to use in J2EE applications.
- The application assembler takes a set of components developed by component providers and assembles them in the form of an EAR file.
- The deployer is responsible for deploying an enterprise application into a specific operational environment.
- The system administrator is responsible for the operational environment in which the application runs.
Product providers and tool providers have a product focus. Application component providers and application assemblers focus on the application. Deployers and system administrators focus on the run time.
These roles help identify the tasks and people involved. Understanding this separation of roles is important, because it helps to determine the approach to take when developing and deploying J2EE applications.
For information about the relationship of IBM WebSphere Application Server roles to J2EE roles, see User roles and activities.
J2EE benefits
The J2EE specification provides customers a standard which can be used to ensure investment protection when purchasing or developing applications. Comprehensive, independent Compatibility Test Suites ensure vendor compliance with J2EE standards.
Some benefits of deploying to a J2EE compliant architecture include:
- A simplified architecture based on standard components, services and clients, that takes advantage of the write-once, run-anywhere Java technology.
- Services providing integration with existing systems, including Java DataBase Connectivity (JDBC); Java Message Service (JMS); Java Connector Architecture (JCA); Java Interface Definition Language (Java IDL); the JavaMail API; and Java Transaction API (JTA and JTS) for reliable business transactions.
- Scalability to meet demand, by distributing containers across multiple system and using database connection pooling, for example.
- A better choice of application development tools and components from vendors providing standard solutions.
- A flexible security model that provides single sign-on support, integration with legacy security schemes, and a unified approach to securing application components.
The J2EE specifications are the result of an industry-wide effort that involves a large number of contributors. IBM has contributed in defining more than 80 percent of the J2EE APIs.
Application components and their containers
The J2EE programming model has four types of application components, which reside in four types of containers in the Application Server:
- Enterprise JavaBeans - Executed by the EJB container
- Servlets and JavaServer Pages files - Executed by the Web container
- Application clients - Executed by the application client container
- Applets - Executed by the applet container
For thorough descriptions of components and containers that apply specifically to the IBM WebSphere Application Server, see Architectural features.
J2EE containers provide run-time support for application components. There must be one container for each application component type in a J2EE application. By having a container between the application components and the set of services, the J2EE specification can provide a federated view of the APIs for the application components.
A container provides the APIs to the application components used for accessing the services. It can also handle security, resource pooling, state management, as well as naming and transaction issues.
Standard services
The J2EE platform provides components with a set of standard services that they can use to interact with each other. See the Sun Web page, http://java.sun.com/products/ , for descriptions of each standard service:
- HTTP and HTTPS
- Java Transaction API (JTA)
- Remote Method Invocation/Internet Inter-ORB Protocol (RMI/IIOP)
- Java Interface Definition Language (Java IDL)
- Java DataBase Connectivity (JDBC)
- Java Message Service (JMS)
- Java Naming and Directory Interface (JNDI)
- JavaMail API and the JavaBeans Activation Framework (JAF)
- Java Transaction API (JTA and JTS)
- XML
- J2EE Connector Architecture
- Resource managers
J2EE packaging
Perhaps the most significant change introduced by the J2EE specification is how application components are packaged for deployment.
During a process called assembly, J2EE components are packaged into modules. Modules are then packaged into applications. Applications can be deployed on the Application Server. Each module and application contains a J2EE deployment descriptor. The deployment descriptor is an XML file providing instructions for deploying the application.
For more information, including the IBM WebSphere Application Server specifics, see Assembling or packaging.