1.1 Evolution of the Application Server
The concept of an application server has evolved over the past
decade or so, combining several different strands of functionality
that we'll explore in this section.
1.1.1 Early Beginnings
Long before Java or application servers existed, there was already a
need to service
transactions between
distributed systems. The transaction
monitor was originally created to provide a
two-phase commit, assuring that transactions were made
real only when committed on two different platforms. Examples of
early transaction monitors that gained popularity include CICS (from
IBM) and Tuxedo (originally developed by AT&T and later acquired
by BEA). Tuxedo first appeared in 1983 and evolved from simply
guaranteeing reliable transactions to also providing a middle tier
for offloading the workload from transaction-processing databases.
Use of the middle tier enabled the database to support many more
transaction-processing users at higher performance levels.By the mid-1980s, the transaction monitor was sometimes referred to
as a middleware
solution
and soon came to be known as an application
server. Heterogeneous computer and transaction-processing
database support, via the X/Open's XA interface,
first appeared in 1989. Other functionality soon was added to the
middle-tier solutions, including fault tolerance, load balancing, and
more security deployment models.In 1991, Sun Microsystems began developing a new programming tool in
anticipation of a coming convergence of computers and digital
consumer devices. With few takers for the technology in the early
1990s, Sun's focus turned toward building and
enabling applications for the newly popular Internet and to
partnerships with companies such as Netscape. Possibly the most
important outcome of this research was the emergence of the
Java programming language in 1995.By its nature, the Internet is enabled through a
three-tier
architecture consisting of the following components, which are shown
in Figure 1-1:A
thin client
(browser) on the front endAn application server in the middle tierA database/server on the back end
Figure 1-1. Typical three-tier configuration with Oracle Application Server

middleware at the same time that Java
gained popularity for Internet programming. The natural evolution of
application servers toward serving and supporting Java-based
applications began. Several providers of early transaction monitors
merged their middleware offerings into new application server
packaging.Another result of the growth of applications deployment over the
Internet via a middle tier was widespread adoption of standardized
protocols that allowed these
applications to communicate with each other. These protocols now
include:XML
eXtensible Markup
Language
SOAP
Simple Object Access
Protocol[1] (for messages based on XML)[1] Although this is the original expansion of
the acronym, the current SOAP acronym isn't
associated with this name; see Chapter 11 for
details.
WSDL
Web Services
Description Language
UDDI
Universal
Description, Discovery, and Integration
The last three protocols are used in the deployment of
Web Services,
which are getting increasing attention because they provide a way to
combine different functionality from separate application modules to
other applications.
1.1.2 Oracle and Application Servers
Oracle Corporation was born in the late
1970s as a company named RSI. Early relational database technology
was provided to government agencies through custom consulting, and
was then made commercially available as a product in 1979. In 1983,
RSI was renamed Oracle Corporation for consistency with the database
product name. At this time, the developers made a critical decision
to create a portable version of Oracle (Version 3) that ran not only
on DEC VAX/VMS systems (the initial platform for the product), but
also on Unix and other platforms.Early Oracle database implementations were commonly deployed on
minicomputers, and many customers began to explore using distributed
databases utilizing several of these relatively inexpensive
platforms. At about the same time that the first application servers
appeared to manage these configurations for transactions, Oracle
began building distributed features in the database for handling
distributed queries and two-phase transactional commits. Although
Oracle was building such capabilities in the database, popular
transaction-processing monitor support was added through interfaces
such as XA to enable greater scalability and ensure the portability
of such applications to the Oracle database.Oracle8i, the
"Internet
database," added native transaction coordination
with the
Microsoft Transaction
Server (MTS) for Windows platforms. To
handle the growing number of connections needed, Oracle also added a
Connection Manager feature to the
database packaging.Oracle middleware
didn't appear in an application server product as
such until 1997-98. Oracle Application Server 4.0 was
Oracle's first complete attempt to create
a Java-based middle tier in response
to the growing Internet deployment model.In 2000, Oracle redesigned its middle-tier product to enable the
following:Application servicesCommunications servicesConnectivity servicesIntegration and commerce servicesManagement servicesSystem services
Components provided in these services and with some specific
solutions included industry-standard Web Services, transaction and
message handling,
Portal technology (including portlets
and content management), clustering support, integration components,
security and directory support, business intelligence solutions, and
wireless support. This redesigned product was known as
Oracle9i Application Server or
Oracle9iAS and
is the basis of the application server described in this book. The
"i" was
included in the product name, as it was in the
Oracle8i and Oracle9i
databases, to indicate Oracle's focus on the
Internet computing model.The
current version of Oracle's application server
product is Oracle
Application Server 10g, where
"g" stands for
"grid," indicating
Oracle's view that grid computing will be an
increasingly popular model for database deployment. Grid
computing leverages a large number of systems,
also known as
nodes,
on an as-needed basis. Key components in grid computing include the
following:Nodes Network attached storage
(NAS) or storage area network (SAN) disk devicesA database deployable across the nodes (Oracle Database 10g
with Real Application Clusters)A middle-tier
infrastructure for access and load balancing (Oracle Application
Server 10g)
Table 1-1 provides a timeline for some key
Oracle technology
introductions that led to and include the Oracle Application Server
family.
Year | Feature |
|---|---|
1979 | Oracle Release 2: the first commercially available relational database to use SQL. |
1983 | Single code base for Oracle across multiple platforms. |
1984 | Portable toolset. |
1986 | Client/server and distributed Oracle relational database. |
1987 | CASE and 4GL toolset. |
1993 | Oracle7 with cost-based optimizer. |
1997 | Oracle8 generally available; Oracle previews Oracle Application Server 4.0. |
1998 | Oracle Application Server 4.0 generally available; Java-based middle tier. |
1999 | Oracle8i generally available; Java Virtual Machine in the database. |
2001 | Oracle9i Application Server generally available; Oracle integration in middle tier includes Portal technology; OracleAS Web Cache in Oracle9iAS announced. |
2001 | Oracle9i generally available. |
2003 | Oracle Database10g enables grid computing and simplifies and automates key management tasks; Oracle Application Server 10g generally available. |