We must try to trust one another. Stay and cooperate.
This chapter defines distributed processing and describes how the Oracle server and database applications work in a distributed processing environment. This material applies to almost every type of Oracle database system environment.
This chapter includes:
In the Oracle database system environment, the database application and the database are separated into two parts: a front-end or client portion, and a back-end or server portion--hence the term client/server architecture. The client executes the database application that accesses database information and interacts with a user through the keyboard, screen, and pointing device such as a mouse. The server executes the Oracle software and handles the functions required for concurrent, shared data access to an Oracle database.
Although the client application and Oracle can be executed on the same computer, greater efficiency can often be achieved when the client portion(s) and server portion are executed by different computers connected via a network. The following sections discuss possible variations in the Oracle client/server architecture.
Distributed processing is the use of more than one processor to perform the processing for an individual task. Examples of distributed processing in Oracle database systems appear in Figure 6-1.
This chapter applies to environments with one database on one server. In a distributed database, one server (Oracle) may need to access a database on another server. See Chapter 33, "Distributed Databases", for more information about clients and servers in distributed databases.
Oracle client/server architecture in a distributed processing environment provides the following benefits:
Net8 is the Oracle network interface that allows Oracle tools running on network workstations and servers to access, modify, share, and store data on other servers. Net8 is considered part of the program interface in network communications. See Chapter 8, "Process Architecture", for more information about the program interface.
Net8 uses the communication protocols or application programmatic interfaces (APIs) supported by a wide range of networks to provide a distributed database and distributed processing for Oracle.
Communication protocols define the way that data is transmitted and received on a network. In a networked environment, an Oracle server communicates with client workstations and other Oracle servers using Net8. Net8 supports communications on all major network protocols, ranging from those supported by PC LANs to those used by the largest mainframe computer systems.
Without the use of Net8, an application developer must manually code all communications in an application that operates in a networked distributed processing environment. If the network hardware, topology, or protocol changes, the application has to be modified accordingly.
However, by using Net8, the application developer does not have to be concerned with supporting network communications in a database application. If the underlying protocol changes, the database administrator makes some minor changes, while the application requires no modifications and will continue to function.
Net8 drivers provide an interface between Oracle processes running on the database server and the user processes of Oracle tools running on other computers of the network.
The Net8 drivers take SQL statements from the interface of the Oracle tools and package them for transmission to Oracle via one of the supported industry-standard higher level protocols or programmatic interfaces. The drivers also take replies from Oracle and package them for transmission to the tools via the same higher level communications mechanism. This is all done independently of the network operating system.
Depending on the operating system that executes Oracle, the Net8 software of the database server may include the driver software and start an additional Oracle background process; see your Oracle operating system-specific documentation for details. Also refer to the Net8 Administrator's Guide for additional information on Net8.
When an instance starts, a network listener process establishes a communication pathway to Oracle. When a user process makes a connection request, the listener determines whether it should use a shared server process or a dedicated server process and establishes an appropriate connection. See "Multi-Threaded Server Configuration" and "Dedicated Server Configuration" for more information about server processes.
The listener process also establishes a communication pathway between databases. When multiple databases or instances run on one machine, as in an Oracle Parallel Server, service names allow instances to register automatically with other listeners on the same machine. A service name can identify multiple instances, and an instance can belong to multiple services. Clients connecting to a service do not have to specify which instance they require.
Automatic instance registration reduces the administrative overhead for multiple databases or instances. The system identifiers (SIDs) of other instances on the network must be registered in a LISTENER.ORA file.
The initialization parameter SERVICE_NAMES identifies which services an instance belongs to. On startup, each instance registers with the listeners of other instances belonging to the same services. During database operations, the instances of each service pass information about CPU usage and current connection counts to all of the listeners in the same services. This enables dynamic load balancing and connection failover.
See the Net8 Administrator's Guide for more information about the network listener, and see Oracle8i Parallel Server Concepts and Administration for information about instance registration and client/service connections in an Oracle Parallel Server.
In a multi-tier architecture environment, an application server provides data for clients and serves as an interface between clients and database servers.
This architecture allows you to use an application server to:
An example of a multi-tier architecture appears in Figure 6-2.
A client initiates a request for an operation to be performed on the database server. The client can be a web browser or other end-user process. In a multi-tier architecture, the client connects to the database server through one or more application servers.
An application server provides access to the data for the client. It serves as an interface between the client and one or more database servers, which provides an additional level of security. It can also perform some of the query processing for the client, thus removing some of the load from the database server.
The application server assumes the identity of the client when it is performing operations on the database server for that client. The application server's privileges are restricted to prevent it from performing unneeded and unwanted operations during a client operation.
A database server provides the data requested by an application server on behalf of a client. The database server does all of the remaining query processing.
The Oracle database server can audit operations performed by the application server on behalf of individual clients as well as operations performed by the application server on its own behalf. For example, a client operation might be a request for information to be displayed on the client whereas an application server operation might be a request for a connection to the database server.
See "Multi-Tier Authentication and Authorization" for more information about security issues in a multi-tier environment.