Skip Headers

Oracle® Database Concepts
10g Release 1 (10.1)

Part Number B10743-01
Go to Documentation Home
Home
Go to Book List
Book List
Go to Table of Contents
Contents
Go to Index
Index
Go to Master Index
Master Index
Go to Feedback page
Feedback

Go to previous page
Previous
Go to next page
Next
View PDF

10 Application Architecture

This chapter defines application architecture and describes how the Oracle database server and database applications work in a distributed processing envi ronment. This material applies to almost every type of Oracle database system environment.

This chapter contains the following topics:

Introduction to Client/Server Architecture

In the Oracle database system environment, the database application and the database are separated into two p arts: a front-end or client portion, and a back-end or server portion—hence the term client/server architecture. The client runs 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 runs the Oracle software and handles the functi ons required for concurrent, shared data access to an Oracle database.

Although the client application and Oracle can be run o n the same computer, greater efficiency can often be achieved when the client portions and server portion are run by different comput ers connected through a network. The following sections discuss possible variations in the Oracle client/server architecture.

Distributed processing is the use of more than one processor, located in di fferent systems, to perform the processing for an individual task. Examples of distributed processing in Oracle database systems appe ar in Figure 10-1.

  • In Part A of the figure, the client and server are located on di fferent computers, and these computers are connected through a network. The server and clients of an Oracle database system communicate through Oracle Net Services, Oracle's network interface.

  • In Part B of the figure, a single computer has more th an one processor, and different processors separate the execution of the client application from Oracle.


    Note:

    This chapter applies to environments with one database on one server. In a distributed databas e, one server (Oracle) may need to access a database on another server.

Figure 10-1 The Client/Server Architecture and Distributed Processing

Description of cncpt083.gif follows
Description of the illustration cncpt083.gif

Oracle client/server ar chitecture in a distributed processing environment provides the following benefits:

  • Client applications are not responsible for performing any data processing. Rather, they request input from users, request data from the server, and then analyze and present this data using the display capabilities of the client workstation or the terminal (for example, using graphics or spreadsheets).

  • Client applications are not dependent on the physical location of the data. Even if th e data is moved or distributed to other database servers, the application continues to function with little or no modification.

  • Oracle exploits the multitasking and shared-memory facilities of its underlying operating system. As a result , it delivers the highest possible degree of concurrency, data integrity, and performance to its client applications.

  • Client workstations or terminals can be optimized for the presentation of data (for example, by providing graphics and mouse support), and the server can be optimized for the processing and storage of data (for example, by having large amounts of memor y and disk space).

  • In networked environments, you can use inexpensive client workstations to access the remote data of the server effectively.

  • If necessary, Oracle can be scaled as your system grows. Y ou can add multiple servers to distribute the database processing load throughout the network (horizontally scaled), or you can move Oracle to a minicomputer or mainframe, to take advantage of a larger system's performance (vertically scaled ). In either case, all data and applications are maintained with little or no modification, because Oracle is portable betwe en systems.

  • In networked environments, shared data is stored on the servers rather than on all computers in the system. This makes it easier and more efficient to manage concurrent access.

  • In networked enviro nments, client applications submit database requests to the server using SQL statements. After it is received, the SQL statement is p rocessed by the server, and the results are returned to the client application. Network traffic is kept to a minimum, because only th e requests and the results are shipped over the network.


    See Also:


Overview of < a name="CNCPT702" id="CNCPT702">Multitier Architecture

In a multitier architecture environment, an application ser ver provides data for clients and serves as an interface between clients and database servers. This architecture is particularly impo rtant because of the prevalence of Internet use.

This architecture enables use of an application server to:

  • Validate the credentials of a client, such as a Web browser

  • Connect to a database server

    < /li>
  • Perform the requested operation

An example of a multitier architecture appears in Figure 10-2.

Figure 10-2 A Multitier Architecture Environment Example

Description of cncpt121.gif follows
Description of the illustration cncpt121.gif

Clients

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 mult itier architecture, the client connects to the database server through one or more application servers.

Appli cation 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 proce ssing 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 restricte d to prevent it from performing unneeded and unwanted operations during a client operation.

Database Servers< /font>

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 oper ation can be a request for information to be displayed on the client, whereas an application server operation can be a request for a connection to the database server.

Overview of Oracle Net Services

Oracle Net Services provides enterprise-wide connectivity solutions in distributed, heterogeneous computing environments. Oracle Net Services enables a network session from a client application to an Oracle database.

Oracle Net Services 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.

  • A c ommunication protocol is a set of rules that determine how applications access the network and how data is subdivided into packets fo r transmission across the network.

  • An API is a set of subroutines that provide, in the case of networks, a means to establish remote process-to-process communication through a communication protocol.

After a network sess ion is established, Oracle Net Services acts as a data courier for the client application and the database server. It is responsible for establishing and maintaining the connection between the client application and database server, as well as exchanging messages be tween them. Oracle Net Services is able to perform these jobs because it is located on each computer in the network.

Oracle Ne t Services provides location transparency, centralized configuration and management, and quick out-of-the-box installation and config uration. It also lets you maximize system resources and improve performance. Oracle's shared server architecture inc reases the scalability of applications and the number of clients simultaneously connected to the database.The Virtual Interfa ce (VI) protocol places most of the messaging burden on high-speed network hardware, freeing the CPU for more important task s.


See Also:

Oracle Net Services Administrator's Guide for more informati on about these features

How Orac le Net Services Works

Oracle's support of industry network protocols provides an interface between Oracle processes ru nning on the database server and the user processes of Oracle applications running on other computers of the network.

The Orac le protocols take SQL statements from the interface of the Oracle applications and package them for transmission to Oracle through on e of the supported industry-standard higher level protocols or programmatic interfaces. The protocols also take replies from Oracle a nd package them for transmission to the applications through the same higher level communications mechanism. This is all done indepen dently of the network operating system.

Depending on the operation system that runs Oracle, the Oracle Net Services software o f the database server could include the driver software and start an additional Oracle background process.

< div class="inftblnotealso">

See Also:

Oracle Net Services Administrator's Guide for more information about how Oracle Net Servi ces works

The Listener

< p>When an instance s tarts, a listener process establishes a communication pathway to Oracle. When a user process makes a connection requ est, the listener determines whether it should use a shared server dispatcher process or a dedicated server process and establishes a n appropriate connection.

The listener also establishes a communication pathway between databas es. When multiple databases or instances run on one computer, as in Real Application Clusters, service names enable 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.

Service Info rmation Registration

Dynamic service registration reduces the administrative overhead for multiple databases or instan ces. Information about the services to which the listener forwards client requests is registered with the listener. Service informati on can by dynamically registered with the listener through a feature called service registration or statically confi gured in the listener.ora file.

Service registration relies on the PMON process—an instance background process—to register instance information with a listener, as well as the current state and load of the instance and shared server dispatchers. The registered information enables the listener to forward client connection requests to the appropriate service handler. Service registration does not require configuration in the listener.ora file.

The initialization parameter SERVICE_NAMES identifies which database services an inst ance belongs to. On startup, each instance registers with the listeners of other instances belonging to the same services. During dat abase operations, the instances of each service pass information about CPU use and current connection counts to all of the listeners in the same services. This enables dynamic load balancing and connection failover.


See Also:


< /body>