Document Information


1.  Introduction

2.  Understanding Java Platform, Enterprise Edition

Differences between Java EE and Java SE

The Java Programming Language Platforms

Java SE

Java EE

Java ME


Java EE Servers

Java EE Containers

The Web Container

The Application Client Container

The EJB Container

3.  Creating Your First Java EE Application

4.  Creating Your Second Web Application

5.  Next Steps


Overview of Enterprise Applications

This section describes enterprise applications and how they are designed and developed.

As stated above, the Java EE platform is designed to help developers create large-scale, multi-tiered, scalable, reliable, and secure network applications. A shorthand name for such applications is “enterprise applications,” so called because these applications are designed to solve the problems encountered by large enterprises. Enterprise applications are not only useful for large corporations, agencies, and governments, however. The benefits of an enterprise application are helpful, even essential, for individual developers and small organizations in an increasingly networked world.

The features that make enterprise applications powerful, like security and reliability, often make these applications complex. The Java EE platform is designed to reduce the complexity of enterprise application development by providing a development model, API, and runtime environment that allows developers to concentrate on functionality.

Tiered Applications

In a multi-tiered application, the functionality of the application is separated into isolated functional areas, called tiers. Typically, multi-tiered applications have a client tier, a middle tier, and a data tier (often called the enterprise information systems tier). The client tier consists of a client program that makes requests to the middle tier. The middle tier's business functions handle client requests and process application data, storing it in a permanent datastore in the data tier.

Java EE application development concentrates on the middle tier to make enterprise application management easier, more robust, and more secure.

The Client Tier

The client tier consists of application clients that access a Java EE server and that are usually located on a different machine from the server. The clients make requests to the server. The server processes the requests and returns a response back to the client. Many different types of applications can be Java EE clients, and they are not always, or even often Java applications. Clients can be a web browser, a standalone application, or other servers, and they run on a different machine from the Java EE server.

The Web Tier

The web tier consists of components that handle the interaction between clients and the business tier. Its primary tasks are the following:

  • Dynamically generate content in various formats for the client.

  • Collect input from users of the client interface and return appropriate results from the components in the business tier.

  • Control the flow of screens or pages on the client.

  • Maintain the state of data for a user's session.

  • Perform some basic logic and hold some data temporarily in JavaBeans components.

Java EE Technologies Used in the Web Tier

The following Java EE technologies are used in the web tier in Java EE applications.

Table 2-1 Web-Tier Java EE Technologies




Java programming language classes that dynamically process requests and construct responses, usually for HTML pages

JavaServer Faces technology

A user-interface component framework for web applications that allows you to include UI components (such as fields and buttons) on a page, convert and validate UI component data, save UI component data to server-side data stores, and maintain component state.

JavaServer Faces Facelets technology

Facelets applications are a type of JavaServer Faces applications that use XHTML pages rather than JSP pages.

Expression Language

A set of standard tags used in JSP and Facelets pages to refer to Java EE components.

JavaServer Pages (JSP)

Text-based documents that are compiled into servlets and define how dynamic content can be added to static pages, such as HTML pages.

JavaServer Pages Standard Tag Library

A tag library that encapsulates core functionality common to JSP pages

JavaBeans Components

Objects that act as temporary data stores for the pages of an application

The Business Tier

The business tier consists of components that provide the business logic for an application. Business logic is code that provides functionality to a particular business domain, like the financial industry, or an e-commerce site. In a properly designed enterprise application, the core functionality exists in the business tier components.

Java EE Technologies Used in the Business Tier

The following Java EE technologies are used in the business tier in Java EE applications:

Table 2-2 Business Tier Java EE Technologies



Enterprise JavaBeans (enterprise bean) components

Enterprise beans are managed components that encapsulate the core functionality of an application.

JAX-RS RESTful web services

An API for creating web services that respond to HTTP methods (for example GET or POST methods). JAX-RS web services are developed according to the principles of REST, or representational state transfer.

JAX-WS web service endpoints

An API for creating and consuming SOAP web services.

Java Persistence API entities

An API for accessing data in underlying data stores and mapping that data to Java programming language objects.

Java EE managed beans

Managed components that may provide the business logic of an application, but do not require the transactional or security features of enterprise beans.

The Enterprise Information Systems Tier

The enterprise information systems (EIS) tier consists of database servers, enterprise resource planning systems, and other legacy data sources, like mainframes. These resources typically are located on a separate machine than the Java EE server, and are accessed by components on the business tier.

Java EE Technologies Used in the EIS Tier

The following Java EE technologies are used to access the EIS tier in Java EE applications:

Table 2-3 EIS Tier Java EE Technologies



The Java Database Connectivity API (JDBC)

A low-level API for accessing and retrieving data from underlying data stores. A common use of JDBC is to make SQL queries on a particular database.

The Java Persistence API

An API for accessing data in underlying data stores and mapping that data to Java programming language objects. The Java Persistence API is a much higher-level API than JDBC, and hides the complexity of JDBC from the user.

The Java EE Connector Architecture

An API for connecting to other enterprise resources, like enterprise resource planning or customer management system software.

The Java Transaction API (JTA)

An API for defining and managing transactions, including distributed transactions or transactions that cross multiple underlying data sources.