The J2EE platform offers:
- the ability to reuse components,
- integrated Extensible Markup Language (XML)-based data interchange,
- a unified security model,
- and flexible transaction control.
Application logic is divided into components according to function, and the various application components that make up a J2EE application are installed on different machines depending on the tier in the multitiered J2EE environment to which the application component belongs.
|Type Tier||Component||Run on the|
|Client-tier||Rich Java Client, Applet, Web Client||client machine|
|Web-tier||Web components (jsp page or servlet)||J2EE server|
|Business-tier||Enterprise javabean (EJB)||J2EE server|
|Enterprise information system (EIS)-tier||ERP, mainframe transaction processing, database systems, and other legacy information systems.||EIS server|
Although a J2EE application can consist of the three or four tiers. J2EE multitiered applications are generally considered to be three-tiered applications because they are distributed over three different locations:
- client machines,
- the J2EE server machine,
- and the database or legacy machines at the back end.
Typical 3-tier Web application:
A J2EE component is a self-contained functional software unit that is assembled into a J2EE application with its related classes and files and that communicates with other components.
The J2EE specification defines the following J2EE components that run:
- On the Client:
Application clients directly access enterprise beans running in the business tier. However, if application requirements warrant it, a J2EE application client can open an HTTP connection to establish communication with a servlet running in the Web tier.
- On the server:
- Enterprise JavaBeans (EJB) components (enterprise beans) are business components
J2EE components are written in the Java programming language and are compiled in the same way as any program in the language.
The server and client tiers might also include components based on the JavaBeans component architecture (JavaBeans component) to manage the data flow between an application client or applet and components running on the J2EE server or between server components and a database. JavaBeans components are not considered J2EE components by the J2EE specification.
J2EE Server Communications
Business code, which is logic that solves or meets the needs of a particular business domain such as banking, retail, or finance, is handled by enterprise beans running in the business tier.
An enterprise bean:
- receives data from client programs, processes it (if necessary), and sends it to the enterprise information system tier for storage.
- retrieves data from storage, processes it (if necessary), and sends it back to the client program.
A JavaBeans component is generally included in the client to manage the user input and send that input to enterprise beans running in the business tier for processing.
There are tons of improvements in the Java EE platform to make it easy-to-use and powerful.
- EJBs can be packaged in a WAR with no special packaging or deployment descriptors
- Typesafe dependency injection is now part of the Java EE platform
- Add @Path on a POJO allows you to publish it as a RESTful resource
- EJBs can be used as backing beans for Facelets-driven JSF pages providing full MVC
- Java EE 6 WARs are known to be kilobytes in size and deployed in milliseconds