Monday, July 7, 2008

Oracle application Architecture

The Oracle Applications Architecture is a framework for multi-tiered, distributed computing that supports Oracle Applications products. In this model, various servers or services are distributed among three levels, or tiers.

Before going forward lets me tell you what is a sever

A server (or services) is a process or group of processes that runs on a single machine and provides a particular functionality. For example, Forms services process requests for activities related to Oracle Forms. The Concurrent Processing server supports data-intensive programs that run in the background.

Review the picture below to understand the oracle application architecture





The Desktop Tier

The client interface is provided through HTML for HTML-based applications (all i-Modules like iSupplier, iExpenses), and via a Java applet in a Web browser for the traditional Forms-based applications. The Java applet is run by Jinitiator which is a JVM made and distributed by Oracle Corporation. It allows a web enabled Oracle Forms client application to be run inside a web browser. This JVM is called only when a web-based Oracle application is accessed.


The Application Tier

The application tier has a dual role: hosting the various servers and service groups that process the business logic, and managing communication between the desktop tier and the database tier. This tier is sometimes referred to as the middle tier. Four servers or service groups comprise the basic application tier for Oracle Applications:
  • Web services
  • Forms services
  • Concurrent Processing server
  • Admin server
Of all the above service, I will explain more on concurrent processing server over the other ones as this is the one with which we deal with more often than others.

Here are some important points on concurrent processing
  1. Reporting programs and data updating programs that need to run either periodically, or on an ad hoc basis.
  2. These programs, which run in the background while users continue to work on other tasks, may require a large number of data-intensive computations, and are run using the concurrent Processing architecture.
  3. Concurrent Processing is an Oracle Applications feature that allows these non–interactive and potentially long-running functions to be executed efficiently alongside interactive operations.
  4. It uses operating system facilities to facilitate background scheduling of data- or resource-intensive jobs, via a set of programs and forms.
  5. To ensure that resource-intensive concurrent processing operations do not interfere with interactive operations, they are run on a specialized server, the Concurrent Processing server.
  6. Processes that run on the Concurrent Processing server are called concurrent requests.
  7. When you submit such a request, either through HTML-based or Forms-basedApplications, a row is inserted into a database table FND_CONCURRENT_REQUESTS specifying the program to be run.
  8. A concurrent manager then reads the applicable requests in the table, and starts the associated concurrent program.
Concurrent managers are fundamental to concurrent processing. Acting as a job
scheduling and execution system. (Will devote a separate post for explaining different types of concurrent managers)

In Concurrent Processing, programs are run as operating system background processes.
These programs may be written using a variety of Oracle tools, programming languages
for executables, or the host operating system scripting language.

Here are some of the important tables that details the concurrent requests and programs
(I will leave the part of identifying appropriate columns to join these tables to developer who reads this post.. small excercise.. good to do as many as possible of this type to gain self learning experience)

FND_CONCURRENT_REQUESTS : Details of user requests, including status, start date, and completion date

FND_CONCURRENT_PROGRAMS : Details of concurrent programs, including execution method, whether the program is constrained, and whether it must be run alone.

FND_CONCURRENT_PROCESSES: Cross-references between concurrent requests and queues, and a history of concurrent manager processes

FND_CONCURRENT_QUEUES: Information about each of the concurrent manager queues

The Database Tier
  1. The database tier contains the Oracle database server, which stores all the data maintained by Oracle Applications.
  2. The database also stores the Oracle Applications online help information.
  3. More specifically, the database tier contains the Oracle data server files and Oracle Applications database executables that physically store the tables, indexes, and other database objects for your system.
  4. The database server does not communicate directly with the desktop clients, but rather with the servers on the application tier, which mediate the communications between the database server and the clients.

No comments: