Chapter 1. Introducing Oracle Application Server

Over the past decade or so, IT environments—particularly those supporting large amounts of data—have been moving toward a different kind of overall architecture. In the past, most IT systems were deployed over two primary tiers: a client, which ran the applications, and a server, which hosted the database and some other types of generalized logic and services.

For a number of reasons—including scalability, availability, and security—a new tier has been introduced between the client and the server. This middle tier hosts a variety of services that function as intermediaries between the client machines (which act as user interfaces) and the data they use. These services include virtual machines that run application logic, specialized server processes that deliver specific functionality (e.g., reporting or integrating information into portals), and infrastructure services (e.g., handling web communications or caching information for improved performance).

Oracle Application Server consists of a set of components that deliver all this functionality, and more. For example, Oracle Application Server can:

  • Respond to HTTP requests

  • Run application code

  • Provide a security infrastructure

  • Supply some specific capabilities, such as business intelligence tools, mobile tools and applications, and a messaging system

  • Offer improved performance and response time

  • Provide the high availability and scalability needed in an enterprise environment

This book is designed to give you a broad overview of the components that make up Oracle Application Server and how they operate. The goal of the book is to provide you with a clear understanding of the concepts and capabilities of Oracle Application Server, particularly those available in the latest release of the product, Oracle Application Server 10g. This latest release provides a wide range of functionality, and this book tries to explain what that functionality is, rather than how to implement specific examples. This book isn’t merely a description of components, however: it attempts to give you a thorough grounding in the concepts and technology that make up Oracle Application Server 10g. With this framework, you will be able to understand the full range of the product and more rapidly assimilate the details of the product’s implementation.

This first chapter sets the stage for the rest of the book. It provides an introduction to a range of topics, most of which are described in greater detail later in the book. A few of the basics, however—for example, a brief history of the evolution of “application servers” and Oracle’s packaging—are described only in this chapter, so we encourage you to read it carefully, even if you already have some familiarity with Oracle Application Server.

Before diving into the specific foundations of the product, we’ll take a step back to provide some context. We’ll discuss why application servers were created and how they evolved, and then we’ll move on to introduce the basic features and configurations of Oracle Application Server.

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.

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 end

  • An application server in the middle tier

  • A database/server on the back end

Typical three-tier configuration with Oracle Application Server

Figure 1-1. Typical three-tier configuration with Oracle Application Server

Thus, the Internet computing model created another market for 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)

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.

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 services

  • Communications services

  • Connectivity services

  • Integration and commerce services

  • Management services

  • System 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 devices

  • A 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.

Table 1-1. History of Oracle technology introductions

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.



[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.

Get Oracle Application Server 10g Essentials now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.