At its core, Oracle Application Server consists of three components:
Oracle HTTP Server
Oracle Application Server Containers for J2EE
OracleAS Web Cache
Each component, described briefly in the following subsections, plays a major role in Oracle Application Server operations; they also provide some supporting functionality to their counterparts in various configurations.
The Oracle HTTP Server is the web server for Oracle Application Server. It takes an incoming request in the form of a URI. It then either sends the requested static contentfor example, an HTML filedirectly to the requestor, or reroutes a request for dynamic content, effectively handing off the request, to an appropriate executable resource.
The Oracle HTTP Server can process a dynamic request using any of the following:
Common Gateway Interface (CGI) environment
For example, programs written in C, C++, Java, Perl, and other languages
FastCGI
An optimized CGI environment
mod_perl
A highly efficient Perl execution environment
mod_OC4J
A scalable J2EE environment
mod_plsql
A module that executes PL/SQL stored procedures in an Oracle database
Chapter 5 describes the Oracle HTTP Server in detail.
OC4J is a set of J2EE containers and a JavaServer Pages translator that provides a J2EE-certified Java environment that is scalable both horizontally and vertically. You can cluster OC4J instances across hosts; doing so eliminates both hardware and software failure and provides almost unlimited capacity. You can run multiple JVMs in an OC4J instance to leverage the capacity of hardware with multiple CPUs.
Chapter 6 describes OC4J in detail.
OracleAS Web Cache is an optional component that can play several important roles:
It can offload request processing from the Oracle HTTP Server and OC4J by efficiently caching both static and dynamic content. OracleAS Web Cache is highly configurable and programmable, so what it caches can be customized to fit any application's needs.
It can be used as a front end load balancer to the application server when Oracle Application Server is clustered.
|
Chapter 7 describes OracleAS Web Cache, as well as the other caches used by Oracle Application Server, in detail.
Figure 2-1 shows the relationships among the three main components of Oracle Application Server.
As shown in the figure, the interactions among components work as follows:
OracleAS Web Cache receives an end-user request and determines whether the requested content is available in its cache. If the content is available, it returns that content. Otherwise, it forwards the request to the Oracle HTTP Server.
The Oracle HTTP Server immediately sends static content to the end user through OracleAS Web Cache. If the request is for dynamic content, it forwards the request to the appropriate dynamic content provider.
If Java-generated content is requested, OC4J processes the request using a JSP or servlet, and then sends the dynamically generated content to the Oracle HTTP Server. The Oracle HTTP Server then passes it on to OracleAS Web Cache.
Finally, OracleAS Web Cache passes the content on to the end user.
As the figure illustrates, there are additional dynamic processing engines, such as FastCGI, mod_perl, and PL/SQL. The architecture also includes a number of shadow processes, shown in gray, that support the use of Oracle Application Server core components. These shadow processes include:
Oracle Process Manager and Notification Server (OPMN)
Monitors the core components to ensure that they continue running
Distributed Configuration Management ( DCM)
Marshals Oracle Application Server's configuration data between OPMN and the core components
Dynamic Monitoring Service ( DMS)
Gathers performance statistics
See Section 2.2.3 for more detailed information on these processes.
The configuration data itself is kept in a repository, which is part of the Oracle Application Server infrastructure, described in the next section.