Oracle Reports Services Publishing Reports to the Web with Oracle9i Application Server Release 1.0.2 for Windows NT and UNIX Part Number A86784-02 |
Library | Service | Contents | Index

# 1
Publishing Architecture and Concepts

In today's fast-moving, competitive business world, clear and up-to-date information is needed for the accurate, expedient decision making requirements of an often geographically distributed workforce. The timely distribution of that information must be reliable, cost effective, and accessible to everyone who requires it. Oracle Reports Services provides an unbounded, easy-to-use, scalable, and manageable solution for high-quality database publishing and reporting.

Oracle Reports Services is a powerful Enterprise reporting tool used by information system (IS) developers to create sophisticated dynamic reports for the Web and across the enterprise.

The Oracle Reports Services server-based architecture means report consumers require only a Web browser to view reports in industry standard formats. The Oracle Reports Services supports on-demand delivery of high-quality reports over the Web through native generation of HTML with Cascading Style Sheets and the Adobe Portable Document Format (PDF). Maintenance overhead is cut as reports are administered and maintained centrally and there is no requirement to install complex software on every user's PC.

## 1.1 Oracle Reports Services

The Oracle Reports Services enables you to implement a multi-tiered architecture for running your reports. With Oracle Reports Services, you can run reports on a remote application server.

When used in conjunction with the Oracle Reports Services server CGI or Oracle Reports Services server servlet, Oracle Reports Services also enables you to run reports from a Web browser using standard URL syntax. Oracle Reports Services can be installed on Windows NT, Windows 95, or UNIX. It handles client requests to run reports by entering all requests into a job queue. When one of the server's runtime engines becomes available, the next job in the queue is dispatched to run. As the number of jobs in the queue increases, the server can start more runtime engines until it reaches the maximum limit specified when the server process was started. Similarly, idle engines are shut down after having been idle for longer than a specified period of time.

Oracle Reports Services keeps track of a predefined maximum number of past jobs. Information on when the jobs are queued, started, and finished is kept, as well as the final status of the report. This information can be retrieved and reviewed on Windows from the Oracle Reports Services Queue Manager (RWRQM60) or through the API. The Oracle Reports Services Queue Manager can reside on the same machine as Oracle Reports Services or on a client machine. On UNIX, you can use the Oracle Reports Services Queue Viewer (RWRQV60) to view the Oracle Reports Services queue.

## 1.2 Oracle Reports Services Architecture

Oracle Reports Services can be configured in a number of ways depending upon your requirements. When used in a Web environment, the Oracle Reports Services architecture consists of four tiersFoot 1:

- The thin client tier

- The Web server tier

- The Oracle Reports Services tier

- The database tier

The range of possible configurations runs from having all of these tiers on one machine to having each of these tiers on a separate machine. The most common configurations typically have the tiers spread across three or four machines. The graphics that follow provide a conceptual view of these common configurations.

Note: In the non-Web case, which will be discussed later, there are only three tiers because the Web server tier is not necessary.

### 1.2.1 Web Architecture: Server Configurations

The diagrams that follow illustrate two of the most common configurations for Oracle Reports Services in a Web environment. The key difference between the two configurations is whether Oracle Reports Services and Web server tiers are on the same or different machines. In the first case, the Web server and Oracle Reports Services reside on the same machine. In the second case, they are on different machines. The latter case requires a slightly different setup from the first.

#### Figure 1-1 Web Architecture, Three Machine Configuration

Text description of the illustration arch.gif

#### Figure 1-2 Web Architecture, Four Machine Configuration

Text description of the illustration arch1.gif

#### 1.2.1.1 Processing Web Reports

Web reports are processed as follows:

1. The client requests the report from their Web browser either by typing a URL or clicking a hyperlink. The Web browser passes the URL to the Web server.

2. To handle the request, the Web server invokes either the Oracle Reports Services server CGI or Oracle Reports Services server servlet, depending upon which one you have configured.

3. The Oracle Reports Services server CGI or servlet parses the request. If necessary, users are prompted to log on. The Oracle Reports Services server CGI or servlet converts the request to a command line that can be executed by Oracle Reports Services and submits it to the specified Oracle Reports Services server.

4. If the request includes a time toleranceFoot 2, then Oracle Reports Services checks its output cache to determine whether it already has output that satisfies the request. If it finds acceptable output in its cache, then it will immediately return that output rather than executing the report.

5. Oracle Reports Services receives the job request and queues it. When one of its runtime engines becomes available,Foot 3 it sends the command line to that runtime engine for execution.

6. The runtime engine runs the report.

7. The Oracle Reports Services server CGI or servlet receives the report output from Oracle Reports Services and sends it to the Web server.

8. The Web server sends the report output to the client's Web browser.

### 1.2.2 Non-Web Architecture: Server Configuration

The non-Web architecture differs from the Web architecture in that there is no Web browser or Web server. Report requests are sent to Oracle Reports Services from a thin client such as the Oracle Reports Services Launcher or command line, RWCLI60. The non-Web architecture is useful to those who cannot use the Web to deploy their reports for some reason.

#### Figure 1-3 Non-Web Architecture

Text description of the illustration arch2.gif

#### 1.2.2.1 Processing Reports

In a non-Web environment, reports are processed as follows:

1. The client requests the report using the command line (RWCLI60), the Oracle Reports Services Queue Manager, or the Oracle Reports Services Launcher (ActiveX control). If necessary, users are prompted to log on.

2. Oracle Reports Services receives the job request and queues it. When one of its runtime engines becomes available, it sends the request to that runtime engine for execution.

3. The runtime engine runs the report.

4. Oracle Reports Services is notified that the job has been completed.

5. If Oracle Reports Services was called synchronously, then it signals the client that the job has been completed. If the destination type (DESTYPE) for the command line client is set to localfile in the job request, then the output is transferred to the client.

## 1.3 Oracle Reports Services Configuration Choices

The configuration of Oracle Reports Services can vary widely depending upon the requirements of your system. Before attempting to configure Oracle Reports Services, you must make a number of important decisions based upon your requirements. By making these decisions beforehand, you can greatly simplify the configuration process. These decisions are discussed in the following sections.

### 1.3.1 Enable Web and Non-Web Requests

As you saw in Section 1.2, "Oracle Reports Services Architecture", Oracle Reports Services can accept job requests from both Web and non-Web thin clients. In the Web case, users run reports by clicking or typing a URL in their Web browser and, depending on the URL, the report output is served back to them in their browser or sent to a specified destination (for example, a printer). In the non-Web case, users launch job requests using client software installed on their machines (that is, Net8 and the Oracle Reports Services Thin Client, which is comprised of the Oracle Reports Services Launcher, the Oracle Reports Services Queue Manager, and RWCLI60).

To enable users to launch reports from a Web client, you need to install either the Oracle Reports Services server CGI or servlet with your Web server to communicate between the Web server and Oracle Reports Services. The CGI or servlet is required for your Web server to process report requests from Web clients. For more information, refer to the Section 1.3.2, "Choose the Oracle Reports Services Server CGI or Servlet". To enable users to launch reports from a non-Web client, you need to install the required client software (that is, Net8 and the Oracle Reports Services Thin Client) on each machine from which you plan to launch report requests.

From the perspective of configuration, the key differences between enabling Web and non-Web requests is as follows:

- Enabling Web requests requires that you install some additional software with your Web server, namely the Oracle Reports Services server CGI or servlet, but obviates the need to install any client software beyond a Web browser.

- Enabling non-Web requests requires that you install and maintain client software on each machine from which you want to send job requests to Oracle Reports Services.

The Web case is clearly the most cost effective because it reduces client maintenance costs, but there might be cases where launching non-Web requests is a necessity for other reasons. Oracle Reports Services supports both Web and non-Web requests and they are not mutually exclusive.

### 1.3.2 Choose the Oracle Reports Services Server CGI or Servlet

As discussed in Section 1.3.1, "Enable Web and Non-Web Requests", to use Oracle Reports Services in a Web environment, you must install and configure the Oracle Reports Services server CGI or servlet to handle the transmission of job requests and output between your Web server and Oracle Reports Services. The key consideration in this choice is the following:

- If you are using a CGI-aware Web server (for example, Oracle9i Application Server or Oracle Portal Listener), then choose the Oracle Reports Services server CGI.

- If you are using a Java-based Web server, then choose the Oracle Reports Services server servlet.

### 1.3.3 Choose the Location of Oracle Reports Services

As described in the Section 1.2, "Oracle Reports Services Architecture", you can place Oracle Reports Services on the same machine as your Web server or on a different machine. As you make this decision, you should consider the following:

- Having Oracle Reports Services and the Web server on the same machine, of course, requires more of the machine's resources. If you plan to have both on the same machine, then you need to take that into account when determining the machine's resource requirements (that is, memory and disk space).

- Having Oracle Reports Services and the Web server on the same machine reduces network traffic. The Oracle Reports Services server CGI or servlet must reside on the same machine as the Web server. If Oracle Reports Services is on a different machine, then its transmissions to the Oracle Reports Services server CGI or servlet must travel across a network. If it is on the same machine, then the transmissions do not have to travel across the network.

Chapter 3, "Configuring the Oracle Reports Services Server on Windows NT and UNIX" provides guidelines for configuring Oracle Reports Services using the Oracle Reports Services server servlet.

Foot 1 The term tier refers to the logical location of the components that comprise the Oracle Reports Services architecture. Each of the tiers, though, could reside on the same or different machines.
Foot 2 For any job request that you send to the Oracle Reports Services, you can include a TOLERANCE argument. TOLERANCE defines the oldest output that the requester would consider acceptable. For example, if the requester specified five minutes as the TOLERANCE, Oracle Reports Services would check its cache for duplicate report output that had been generated within the last five minutes.
Foot 3 When you configure Oracle Reports Services, you can specify the maximum number of runtime engines it can use. If Oracle Reports Services is under this maximum, then it can start new runtime engines to handle requests. Otherwise, the request must wait until one of the current runtime engines completes its current job.

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