Java EE and Java SE
and
Java technology is both a programming language and a
platform. The
Java
programming language is a high-level object-oriented language
that has a particular syntax and style. A
Java
platform is a particular environment in which
Java
programming language applications run.
There are several
Java
platforms. Many developers, even long-time
Java
programming language developers, do not understand how the
different platforms relate to each other.
The
Java
Programming Language Platforms
There are three platforms of the
Java
programming language:
-
Java Platform, Standard Edition (Java SE)
-
Java Platform, Enterprise Edition (Java EE)
-
Java Platform, Micro Edition (Java ME)
All
Java
platforms consist of a
Java Virtual
Machine (VM) and an application programming interface (API).
The
Java
Virtual Machine is a program, for a particular hardware and
software platform, that runs
Java
applications. An API is a collection of software components
that you can use to create other software components or
applications. Each
Java
platform provides a virtual machine and an API, and this
allows applications written for that platform to run on any
compatible system with all the advantages of the
Java
programming language: platform-independence, power,
stability, ease-of-development, and security.
and
Java SE
and
When most people think of the
Java
programming language, they think of the
Java SE API.
Java SE's
API provides the core functionality of the
Java
programming language. It defines everything from the basic
types and objects of the
Java
programming language to high-level classes that are used for
networking, security, database access, graphical user
interface (GUI) development, and XML parsing.
In addition to the core API, the
Java SE
platform consists of a virtual machine, development tools,
deployment technologies, and other class libraries and
toolkits commonly used in
Java
applications.
and
Java EE
and
The
Java
EE platform is built on top of the
Java SE
platform.
Java EE
provides an API and runtime environment for developing and
running large-scale, multi-tiered, scalable, reliable, and
secure network applications.
and
Java ME
and
The
Java
ME platform provides an API and a small-footprint virtual
machine for running
Java
programming language applications on small devices, like
cellular phones. The API is a subset of the
Java SE API,
along with special class libraries useful for small device
application development.
Java ME
applications are often clients of
Java EE
application services.
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.
and
Tiered Applications
and
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.
and
The Client Tier
and
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 stand-alone
application, or other servers, and they run on a different
machine from the
Java EE
server.
and
The Web Tier
and
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.
The following
Java EE
technologies are used in the web tier in
Java EE
applications:
Table 2-1
|
Technology
|
Purpose
|
|
Servlets
|
Java programming language classes that
dynamically process requests and construct responses,
usually for HTML pages
|
|
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 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 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
|
and
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.
and
The following
Java EE
technologies are used in the business tier in
Java EE
applications:
Enterprise Informations 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.
and
The following
Java EE
technologies are used to access the EIS tier in
Java EE
applications:
More on
Java can be
found at
http://java.sun.com/javaee/5/docs/firstcup/doc/p3.html#gcrlo