5.2 Oracle-Supplied Modules
Oracle
supplies some key, additional modules
that turn Apache into the Oracle HTTP Server. Oracle has also made
minor improvements to the code base in the area of security and other
defect fixes.The Oracle HTTP Server installs most but not all of the standard
Apache modules. Those removed from Apache are either deprecated or
have something to do with authentication. OracleAS Single Sign-On has
replaced the removed authentication modules'
functionality.
What About Apache 2.0?Those of you who are Apache administrators may be asking why Oracle is using the Apache Version 1.3 code base and not the Apache 2.0 code base. The reason is that at the time Oracle Application Server was first in the works (back in 2001), Apache 2.0 didn't even exist. Oracle decided to use Apache Version 1.3 because, at that time, "it proved highly reliable, secure, and had great performance characteristics."[1] Apache Version 2.0 was released for production in April of 2002. Although it offers improved performance and important new features (e.g., support for IPv6), Oracle has stated that it is still "less reliable and has more security vulnerabilities than Version 1.3." Oracle's current plans are to use Apache 2.0 on Release 10.0.4 of Oracle Application Server, provided that Apache 2.0 is appropriately secure and defect-free at that time. |
quote from one of Oracle's Statement of Direction
documents for Oracle Application Server.
5.2.1 Third-Party Modules
Oracle includes the following
third-party modules that
aren't part of the standard Apache distribution:mod_fastcgimod_perlmod_jserv
The following sections briefly describe these modules.5.2.1.1 mod_fastcgi
mod_fastcgi
provides an efficient CGI environment that allows
C, C++, or any executable program to run
in a performant manner. In a FastCGI environment, each program runs
in a cached child process. This improves performance over the CGI
environment because it avoids the need to recreate a new process for
each request.Java and Perl programs can be run via CGI, but OC4J (described in
Chapter 6) and mod_perl
(described in the next section) provide a better-performing
environment for these two programming languages.5.2.1.2 mod_perl
mod_perl
provides an efficient and highly integrated Perl environment. Like FastCGI,
mod_perl operates more efficiently by caching Perl
processes. Unlike CGI, mod_perl provides complete
access to Apache's request life cycle API. This
capability allows mod_perl programmers to write
both web applications and Apache modules using Perl.5.2.1.3 mod_jserv
mod_jserv
exists
solely for legacy Apache Jserv support. Release 9.0.1 of Oracle
Application Server used an Oracle-modified version of Apache Jserv as
its servlet container. Jserv has long since
been replaced by OC4J; mod_jserv will be
discontinued with Release 10.1.2.
5.2.2 Oracle Modules
Oracle also has a set of its own
modules that add functionality to the Oracle HTTP Server:mod_certheaders
Provides OracleAS Web Cache and load-balancing hardware SSL
termination at the Oracle HTTP Server
mod_oc4j
and mod_plsql
Provide dynamic content generation
mod_oradav
Provides Web Distributed Authoring and
Versioning (WebDAV) support
mod_ossl
and mod_osso
Provide security services
mod_dms
, mod_oprocmgr, and mod_onsint
Provide Oracle Application Server
management integration
5.2.2.1 mod_certheaders
mod_certheaders
enables OracleAS Web Cache and other load-balancing hardware SSL
termination at the Oracle HTTP Server. This allows the Oracle HTTP
Server to pass SSL information to the other modules. The information
is passed using HTTP headers and is then accessible as CGI
environment variables.5.2.2.2 mod_oc4j
mod_oc4j
routes requests to OC4J using the
ajp13 protocol. It allows Oracle Application Server to execute J2EE
programs in OC4J in response to a request's URI.The Oracle HTTP Server uses a separate configuration file for
mod_oc4j, appropriately named
mod_oc4j.conf, that is
included into the Oracle HTTP Server's main
configuration file httpd.conf.
URL
mapping directives in mod_oc4j.conf determine
which URI requests are forwarded to OC4J. In addition, mapping of
context directories (how the URL is mapped into OC4J) and protocol
settings are also entered into mod_oc4j.conf. As
with all Oracle HTTP Server configuration files,
mod_oc4j.conf is modified using Oracle
Enterprise Manager
Application Server Control.5.2.2.3 mod_plsql
mod_plsql
routes requests to an Oracle database. It executes
PL/SQL stored procedures in an
Oracle database in response to a request's URI. A
stored procedure used in this way is analogous to a CGI program or
Java servlet.mod_plsql has three
configuration files:cache.conf
Configures mod_plsql's PL/SQL
cache
dads.conf
Contains URL mapping directives with connection information in the
form of database access descriptors
(DADs) that are automatically used by mod_plsql to
log into an Oracle database
plsql.conf
Contains directives to load mod_plsql and to set
its logging location
The cache.conf and dads.conf
files are included in plsql.conf,
which, in turn, is included in
oracle_apache.conf.
oracle_apache.conf is included in the Oracle
HTTP Server's main configuration file
httpd.conf.5.2.2.4 mod_oradav
mod_oradav
enables distributed authoring and versioning using the
WebDAV protocol.
mod_oradav can read and write files to either the
server's local file system or an Oracle database.mod_oradav has one configuration file,
moddav.conf. Directives in this file load the
module and map a URI to either a local file system directory or an
Oracle database.5.2.2.5 mod_ossl
mod_ossl
provides Oracle SSL support. This module replaces the OpenSSL module
mod_ssl. Oracle's implementation
of SSL supports SSL Version 3.0, based on Certicom and RSA
technology.5.2.2.6 mod_osso
mod_osso
enables
OracleAS Single Sign-On support. With OracleAS Single Sign-On, a user
can use the same authentication credentials to log into all
applications supported by the same OracleAS Single Sign-On server.5.2.2.7 mod_dms
mod_dms
provides
a hook into Oracle's Dynamic Monitoring Service. DMS
measures runtime performance statistics for the Oracle HTTP Server
and OC4J.5.2.2.8 mod_oprocmgr
mod_oprocmgr
provides
legacy support for Oracle-modified Apache Jserv
(servlet container) and provides a hook into DMS. It will be
discontinued with release 10.1.2.5.2.2.9 mod_onsint
mod_onsint
provides a hook into the
Oracle Notification Server (ONS), which is a component of the
Oracle Process Manager and Notification
Server. OPMN starts, stops, and ensures that the Oracle HTTP Server
and OC4J are up and running. OPMN provides fault tolerance by
restarting an Apache process if it fails.