Previous | Table of Contents | Next

Page 397

The Web Listener

The Web Listener, as the name implies, listens for HTTP requests coming to the IP address of the server machine. When Web Listener gets a request, it passes the request on to Web Request Broker. Web Request Broker tries to identify the type of request by checking to see whether the directory of the request's URL can be mapped to a directory that is associated with one of the cartridges of the server. If the URL does map, the request is executed by the appropriate cartridge. If the URL does not map to one of the associated directories, the URL is passed back to Web Listener and the document represented by the URL is retrieved.

The Web Request Broker

What's under the hood of Web Request Broker? When a request comes in for a particular Web Service, a Web Dispatcher passes the request to the Web Service. The Web Dispatcher handles assigning a request for a cartridge to a particular Web Service, which is labeled as a WRBX in Figure 16.2. Each Web Service is a multithreaded process, and each service request has its own thread. This saves the overhead of starting a process for each request. You can have more than one service for a cartridge and specify the maximum and minimum number of threads for the service, so the Web Dispatcher performs dynamic load balancing between multiple services.

FIG. 16.2
The architecture of
the Oracle Web Application
Server handles the
assignment of tasks
to Web request engines.

Each service has its own execution engine and uses a shared library. The Web Request Broker execution engine communicates with cartridges through three basic Application Program Interface (API) calls to initialize a service, shut down the service, and pass requests to the service.

Cartridges

Oracle Web Application Server comes with the following six predefined cartridges:

Page 398

The PL/SQL and Java cartridges include additional functions that extend the capability of the cartridge to perform extended processing, such as writing HTML back to a browser.

Oracle will also be delivering a Web cartridge interface for applications developed with its Developer/2000 for the Web product in the second quarter of 1997. The Web cartridge for Developer/2000, as illustrated in Figure 16.3, will allow any application created with Developer/2000 for the Web to be re-compiled and deployed over the Web, with a Java applet acting as a user interface on the client and the application itself running on a Web server.

FIG. 16.3
Developer/2000 for
the Web uses a Web
cartridge to imple-
ment application systems.

The Web Request Broker uses an open API, so you can design your own cartridges. You can create system cartridges, which execute a predefined function, or programmable cartridges, which can be used to interpret runtime applications. Third-party developers can also develop cartridges for specific purposes. Any new cartridge can be easily integrated into the open Web Application Server environment by registering the cartridge in the Web Application Server configuration file.

Providing Basic Services with the Oracle Web Application Server

The Oracle Web Application Server provides some basic services that can be used by any cartridge. There are four basic categories of services provided by Oracle Web Application Server:

In addition, the Oracle Web Application Server provides a log server to log requests to the Oracle Web Application Server and a log analyzer, which helps to understand the server logs.

Page 399

Transaction Services

The Oracle Web Application Server provides transaction services to all cartridges. A transaction is a clearly defined unit of work. If a transaction is committed, all changes implemented by the transaction are applied to the relevant data stores. If a transaction is rolled back, which means that the data is returned to the state it was in prior to the start of the transaction, the data stores are left in the same state they were in prior to the start of the transaction. By providing transaction services, the Oracle Web Application Server allows you to overcome the problems faced by the stateless nature of HTTP communication.

Inter-Cartridge Exchange Services

The Oracle Web Application Server provides Inter-Cartridge Exchange services, which allows different cartridges to communicate with each other.

In Release 3.0 of the Oracle Web Application Server, the internal communications between cartridges are handled by an internal communication protocol that is compliant with the Common Object Request Broker Architecture, also known as CORBA. The CORBA standard is an open protocol that is supported by a wide variety of hardware and software vendors.

Subsequent releases of the Oracle Web Application Server will extend the use of the CORBA standard for Inter-Cartridge Exchange so the independently developed CORBA components will be able to transparently interact with NCA cartridges through the use of the Oracle Web Application Server.

Persistent Storage Services

The Oracle Web Application Server includes a set of application programming interfaces that allow developers to read and write data objects, create data objects, and delete data objects and their data. These APIs can be used to write data to either the Oracle7 database or to native files on the server platform.

These APIs are built on a schema that includes attributes such as content type, author, and creation date. The persistent storage services allow all cartridges to operate through a common interface whenever data has to be stored on disk or for future reference within an application.

Authentication Services

Release 3.0 of the Oracle Web Application Server gives developers a variety of extensible authentication schemes that can be used in their applications including basic, digest, domain, and databased authentication.

The authentication services give developers the flexibility to implement security in the way which is best suited to the needs of their particular application.l

Previous | Table of Contents | Next