Oracle9i Application Server Migrating from Oracle Application Server Release 1.0.2 Part Number A83709-05 |
Library | Service | Contents | Index

# 1
Introduction to Oracle9i Application Server

This chapter provides a general discussion of the Oracle9i Application Server characteristics in comparison to those of Oracle Application Server. It includes a mapping of Oracle Application Server components to their equivalent functionality in Oracle9i Application Server. The topics include:

- What is Oracle9i Application Server?

- Oracle Application Server Component Migration Options

- Enterprise Services Migration

## What is Oracle9i Application Server?

Oracle9i Application Server is a middle-tier application server designed to enable scalability of web and database-centric applications beyond the limits of a single database instance. It offers:

- A deployment model with multiple deployment options.

- A variety of methods for generating web content, including PL/SQL and PSPs, Java servlets and JSPs, and Perl.

- Conformance to existing (and evolving) standards such as Java, J2EE, and CORBA.

## Oracle Application Server Component Migration Options

The table below shows Oracle Application Server components and their corresponding functionality in Oracle9i Application Server.

##### Table 1-1 Comparison of Application Models

Oracle Application Server | Oracle9i Application Server
--- | ---
JWeb application | Apache JServ application
JServlet application | Apache JServ application
LiveHTML application | Apache SSI and OracleJSP applications
Perl application | mod_perl application
JCORBA application | Oracle8i JVM EJB application
ECO/Java application | Oracle8i JVM EJB application
EJB application | Oracle8i JVM EJB application
CWeb application | Custom Apache Modules, CGI, Java JNI and PL/SQL Callouts
PL/SQL application | mod_plsql application

## Enterprise Services Migration

This section discusses enterprise services, characteristics of a web site of concern to administrators and developers. It describes scalability, availability, fault tolerance, load balancing, and administration in Oracle Application Server and how they will work after you migrate your site to Oracle9i Application Server.

### Overview

Oracle Application Server consists of the HTTP layer, the server layer, and the application layer. The HTTP listener layer is made up of the HTTP server and the dispatcher. The Server layer provides a common set of components for managing these applications. These components include load balancing, logging, automatic failure recovery, security, directory, and transaction components. The application layer is made up of applications, cartridges, and cartridge servers. When a request arrives, the dispatcher routes the request to the application server layer and if a cartridge instance is available, the request will be serviced by that instance, otherwise a new instance will be created.

Similarly in Oracle9i Application Server, the Oracle HTTP Server and mod_jserv run in the same process. Apache JServ is a pure Java servlet engine and runs in a separate process. The Apache Web Server uses mod_jserv to route requests to an Apache JServ process, much like the dispatcher in Oracle Application Server.

### Scalability

Oracle Application Server can be deployed in single or multi-node environments. Similarly, the Oracle HTTP Server and Apache JServ can be configured for single or multi-node environments.

#### HTTP Server

In Oracle Application Server, each listener can accommodate a maximum number of concurrent connections. This number varies based on operating system restrictions. To distribute the request load on a site, you can create multiple listeners, each listening on a different TCP port.

On UNIX platforms, Oracle HTTP Server creates a pool of child processes ready to handle incoming client requests, on start-up. As the requests are processed and the load increases, the server spawn new processes for subsequent requests. The initial and maximum size of the pool, and the min/max number of spare server processes, is configured with the `StartServers`, `MaxClients`, `MinSpareServers` and `MaxSpareServers` directives respectively.

On Windows NT, Oracle HTTP Server runs as a multi-threaded process. The number of simultaneous connections is configured with the `ThreadsPerChild` directive, which is analogous to both the `StartServers` and `MaxClients` directives for UNIX.

You can configure Oracle HTTP Server to run multiple instances on the same host, each of them using a different IP address/TCP port combination, or on different hosts.

#### Servlet Engine

In Oracle Application Server, as the number of requests increases, the system creates new cartridge servers and new instances in them.

In Oracle HTTP Server, mod_jserv receives requests from the server and routes them to Apache JServ, the servlet engine.

Apache Jserv runs all servlets within servlet zones. Some of the advantages are: better security, the ability to run multiple JVMs, and support for multiple virtual hosts.

### Availability and Fault Tolerance

When a component such as a listener or a cartridge server fails, Oracle Application Server detects the failure and restarts the failed component, restoring any preserved state information when possible.

In Oracle HTTP Server, if there is more than one server host, or more than one JServ host, and one of them stops, the system will still work as long as there is one server and one JServ running. A last known status is maintained for every JServ, and any Oracle HTTP Server instance can route a request to any Apache JServ.

In Apache, the administrator is responsible for restarting any failed Apache Web Server or Apache Jserv instances.

### Load Balancing

Oracle Application Server allocates system resources and prioritizes requests based on two types of load balancing methods: priority-based and min/max.

In priority mode, the system manages and allocates resources automatically, based on the priority level you set for your applications and cartridges. The number of processes, threads, and instances is automatically determined based on the request load and priority level of the application and components.

In min/max mode, you set the number of instances, threads and client parameters for each cartridge at the cartridge level.

In Oracle HTTP Server, you define the number of JServ hosts, host weight, and a logical set of these hosts in your configuration file. The system assigns incoming requests to JServ instances. If a JServ instance fails, requests are redirected to the other members of the logical set.

### Administration

Oracle Application Server provides GUI tools and built-in support for administering and monitoring your site, listeners, and applications. The configuration data from the OAS Manager tool is stored in various configuration files.

In Oracle HTTP Server, you perform site administration and maintenance by editing the Apache server and Apache JServ configuration files. The difference from Oracle Application Server in the number and type of configuration files is significant.

##### Table 1-2 Configuration Files

Oracle Application Server Listener | Oracle HTTP Server (Apache)
--- | ---
`owl.cfg` - list of registered listeners and their configuration settings | `httpd.conf` - Primary (or sole) server-wide configuration file. (You have the choice of maintaining file location and translation information in `srm.conf`, and security information in `access.conf` -- or maintaining all directives in one file.)
`site.app` - site configuration file | (no equivalent)
`sv` `listenerName``.cfg` - listener configuration file | (no equivalent)
`wrb.app` - process and cartridge configuration file | (no equivalent)
`resources.ora` - configuration file for ORB | (no equivalent)

### Security

Oracle Application Server supports a number of different security schemes for both user and host authentication, SSL, and the Oracle Wallet Manager.

In Oracle9i Application Server, Apache JServ can run behind a firewall (the AJP protocol uses only one TCP port). It uses ACL (allowing AJP requests only from hosts with ACL) and supports SSL.

#### Migrating Certificates

Oracle9i Application Server includes a tool to migrate Oracle Application Server private key files into OpenSSL PEM format private key files. The full path to the tool is `ORACLE_HOME``/Apache/bin/pconvert` (UNIX) or
`drive``:\Oracle\iSuites\Apache\bin\pconvert.exe` (Windows).

The syntax for running `pconvert` is

    pconvert -s oas_private_key_file -d ias_private_key_file

The following steps guide you through the process of converting an Oracle Application Server private key to a Oracle9i Application Server private key.

1. Convert the Oracle Application Server key file using pconvert. For example:

       prompt> pconvert -s oaskey.der -d iaskey.pem
       Thank you! Your OAS private key has been converted to OPENSSL private key!

2. The converted private key file is not encrypted. If you want to add a pass phrase, use the `opensll` tool with the `rsa` argument. The full path to the tool is `ORACLE_HOME``/Apache/open_ssl/bin/openssl` (UNIX) or
   `drive``:\Oracle\iSuites\Apache\open_ssl\bin\openssl.exe` (Windows).

       prompt> openssl rsa -in iaskey.pem -des3 -out iaskey_enc.pem
       read RSA key
       writing RSA key
       Enter PEM pass phrase: (input not shown)
       Verifying password - Enter PEM pass phrase: (input not shown)

   See Also: `http://www.openssl.org/docs` for documentation on the `opensll` command

3. Move the converted private key file to the `ssl.key` directory. The full path of the directory is `ORACLE_HOME``/Apache/Apache/conf/ssl.key/` (UNIX) or
   `drive``:\Oracle\iSuites\Apache\Apache\conf\ssl.key\` (Windows).

4. Move the Oracle Application Server certificate file to the `ssl.crt` directory. The full path of the directory is `ORACLE_HOME``/Apache/Apache/conf/ssl.crt/` (UNIX) or
   `drive``:\Oracle\iSuites\Apache\Apache\conf\ssl.crt\` (Windows).

5. In the Apache configuration file, make the following changes:

   1. Set the value of the `SSLCertificateFile` parameter to the full path and filename of the Oracle Application Server certificate file from step 4. For example:

          (UNIX)
          SSLCertificateFile ORACLE_HOME/Apache/Apache/conf/ssl.crt/oascert.crt

          (Windows)
          SSLCertificateFile conf\ssl.crt\oascert.crt

   2. Set the value of the `SSLCertificateKeyFile` to the full path and filename of the converted private key file from step 3.

          (UNIX)
          SSLCertificateKeyFile ORACLE_HOME/Apache/Apache/conf/ssl.key/iaskey.pem

          (Windows)
          SSLCertificateKeyFile conf\ssl.key\iaskey.pem

6. Restart Oracle HTTP Server. The server will use the new private key and certificate files.

   See Also: Oracle9i Application Server Installation Guide for instructions on restarting Oracle HTTP Server

| Copyright © 2001 Oracle Corporation. All Rights Reserved. |
Library | Service | Contents | Index