10 Application Architecture
This chapter defines application architecture and describes how the Oracle database server and database applications work in a distributed processing environment. This material applies to almost every type of Oracle database system environment.
Introduction to Client/Server Architecture
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 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 functions required for concurrent, shared data access to an Oracle database.
Although the client application and Oracle can be run on the same computer, greater efficiency can often be achieved when the client portions and server portion are run by different computers 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 different systems, to perform the processing for an individual task. Examples of distributed processing in Oracle database systems appear in Figure 10-1 .
In Part A of the figure, the client and server are located on different 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 than one processor, and different processors separate the execution of the client application from Oracle.
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.
Figure 10-1 The Client/Server Architecture and Distributed Processing
Oracle client/server architecture 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 the 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 memory 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. You 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 between 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 environments, client applications submit database requests to the server using SQL statements. After it is received, the SQL statement is processed by the server, and the results are returned to the client application. Network traffic is kept to a minimum, because only the requests and the results are shipped over the network.