Previous Page TOC Next Page Home


2

Oracle and Client/Server

Oracle Corporation's reputation as a database company is firmly established in its full-featured, high-performance RDBMS server. With the database as the cornerstone of its product line, Oracle has evolved into more than just a database company, complementing its RDBMS server with a rich offering of well-integrated products that are designed specifically for distributed processing and client/server applications. As Oracle's database server has evolved to support large-scale enterprise systems for transaction processing and decision support, so too have its other products, to the extent that Oracle can provide a complete solution for client/server application development and deployment. This chapter presents an overview of client/server database systems and the Oracle product architectures that support their implementation.

An Overview of Client/Server Computing

The premise of client/server computing is to distribute the execution of a task among multiple processors in a network. Each processor is dedicated to a specific, focused set of subtasks that it performs best, and the end result is increased overall efficiency and effectiveness of the system as a whole. Splitting the execution of tasks between processors is done through a protocol of service requests; one processor, the client, requests a service from another processor, the server. The most prevalent implementation of client/server processing involves separating the user interface portion of an application from the data access portion.

On the client, or front end, of the typical client/server configuration is a user workstation operating with a Graphical User Interface (GUI) platform, usually Microsoft Windows, Macintosh, or Motif. At the back end of the configuration is a database server, often managed by a UNIX, Netware, Windows NT, or VMS operating system.

Client/server architecture also takes the form of a server-to-server configuration. In this arrangement, one server plays the role of a client, requesting database services from another server. Multiple database servers can look like a single logical database, providing transparent access to data that is spread around the network.

Designing an efficient client/server application is somewhat of a balancing act, the goal of which is to evenly distribute execution of tasks among processors while making optimal use of available resources. Given the increased complexity and processing power required to manage a graphical user interface (GUI) and the increased demands for throughput on database servers and networks, achieving the proper distribution of tasks is challenging. Client/server systems are inherently more difficult to develop and manage than traditional host-based application systems because of the following challenges:

Databases in a Client/Server Architecture

Client/server technologies have changed the look and architecture of application systems in two ways. Not only has the supporting hardware architecture undergone substantial changes, but there have also been significant changes in the approach to designing the application logic of the system.

Prior to the advent of client/server technology, most Oracle applications ran on a single node. Typically, a character-based SQL*Forms application would access a database instance on the same machine with the application and the RDBMS competing for the same CPU and memory resources. Not only was the system responsible for supporting all the database processing, but it was also responsible for executing the application logic. In addition, the system was burdened with all the I/O processing for each terminal on the system; each keystroke and display attribute was controlled by the same processor that processed database requests and application logic.

Client/server systems change this architecture considerably by splitting all of the interface management and much of the application processing from the host system processor and distributing it to the client processor.

Combined with the advances in hardware infrastructure, the increased capabilities of RDBMS servers have also contributed to changes in the application architecture. Prior to the release of Oracle7, Oracle's RDBMS was less sophisticated in its capability to support the processing logic necessary to maintain the integrity of data in the database. For example, primary and foreign key checking and enforcement was performed by the application. As a result, the database was highly reliant on application code for enforcement of business rules and integrity, making application code bulkier and more complex. Figure 2.1 illustrates the differences between traditional host-based applications and client/server applications. Client/server database applications can take advantage of the Oracle7 server features for implementation of some of the application logic.


Figure 2.1. Host-based applications versus client/server applications.

The pre-Oracle7 databases provided little more than data-type checking at the kernel level; but with Oracle7, much of the application logic processing can be performed by the database kernel. Oracle7 contains features such as stored procedures, integrity constraint enforcement, user-defined functions, and database triggers, all of which enable the application to store more of its business rules (or semantics of the data model) at the database level. As a result, the application is freed to do more sophisticated, complex processing tasks such as GUI interface management and integration to other client-based productivity tools. As shown in Figure 2.1, the database is much more robust; no longer is it reliant on application code to maintain its integrity.

Oracle and Client/Server Computing

Oracle Corporation has been a leader in introducing advanced client/server database technologies, directing its product development specifically to support the design, implementation, and management of client/server database systems. Oracle has designed products to support each of the three primary components of a client/server architecture:

Oracle's product offerings in each area are highly scaleable, providing complete client/server solutions for application environments ranging from small workgroup to global enterprise-wide environments. Figure 2.2 illustrates some of the Oracle products used in client/server and distributed systems.


Figure 2.2. Oracle's client/server products.

The following sections describe several of the primary components of Oracle's client/server architecture, the Oracle7 RDBMS kernel, SQL*Net, and GUI development tools, all designed specifically for client/server application systems.

The Oracle7 RDBMS Server

The Oracle7 server is a full-featured RDBMS that is ideally suited to support sophisticated client/server environments. Many features of the Oracle7 internal architecture are designed to provide high availability, maximum throughput, security, and efficient use of its host's resources. Although all these features are important architecturally for a database server, Oracle7 also contains the following language-based features that accelerate development and improve the performance of server-side application components.


Figure 2.3. Minimizing network traffic and application code by using PL/SQL.

Networking Products

If you're developing an Oracle-based client/server system, you'll probably use Oracle's database networking software to implement connectivity between the nodes in the network. Oracle offers a variety of products and tools that simplify the task of connecting client applications to database servers in a network.


Figure 2.4. Transparent database access over multiple network protocols with the Multi-Protocol Interchange.

Client/Server Development Tools

In addition to its server and networking products, Oracle includes a variety of client-side GUI offerings that complete its integrated client/server architecture. These product suites include full-featured Computer Assisted Software Engineering (CASE) tools, object-oriented development environments, and run-time components that are capable of operating with the Oracle7 server as well as other SQL databases.


Figure 2.5. The Repository Object Navigator of the Designer/2000 interface.


Figure 2.6. The Developer/2000 Forms Designer interface.


Figure 2.7. Power Objects object-oriented application design interface.

Oracle Directions

Oracle Corporation continues to be a forward-thinking leader in the technology sector, introducing new technologies that provide extended functionality and better management, development capability, connectivity, and performance for scaleable client/server database systems. Some of the new technologies introduced as of this writing include the following:

Summary

This chapter provided an overview of client/server computing (as it applies to database systems) and discussed the role of Oracle products in client/server environments. Oracle has a well-designed approach throughout its product line to support applications running in global, enterprise-wide client/server systems. Although Oracle Corporation is most famous for its database server, it has many other sophisticated, mature front-end and network products that complement and extend the functionality of the server.

There are many features about the Oracle7 server that are well suited to client/server systems and provide a complete solution in its RDBMS server, products, and client development tools. As the scope and functionality of client/server systems evolve, Oracle continues to introduce products that support new infrastructure technologies and make the task of designing, developing, and implementing complex systems manageable and efficient.

Previous Page TOC Next Page Home