0035-0038

Previous Table of Contents Next

Page 35

CHAPTER 3

Oracle, Client/Server,
and Enterprise
Computing

IN THIS CHAPTER

  • An Overview of Client/Server Computing 36
  • Databases in a Client/Server Architecture 37
  • Oracle and Client/Server Computing 38
  • Oracle Directions 43

Page 36

Oracle Corporation's reputation as a database company is firmly established in its full-featured , high-performance relational database management system (RDBMS) server. Although the database is the cornerstone of its product line, Oracle has evolved into more than just a database company; it complements its RDBMS server with a rich offering of well-integrated products designed specifically for distributed processing and client/server applications. As Oracle's database server evolved to support large-scale enterprise systems for transaction processing and decision support, so too did its other products; Oracle now 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. The result is increased efficiency and effectiveness of the system as a whole. Splitting the execution of tasks between processors is performed 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) platformusually, Microsoft Windows, Macintosh, or Motif. At the back end of the configuration is a database server, which often is managed by a UNIX, NetWare, Windows NT, or DEC's 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 and requests database services from another server. Multiple database servers can look like a single logical database and provide transparent access to data spread around the network.

Designing an efficient client/server application is somewhat of a balancing act; the goal 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 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:

  • The components of a client/server system are distributed across more varied types of processors. Many more software components manage client, network, and server functions, as well as an array of infrastructure layers , all of which must be in place and configured to be compatible with each other.

Page 37

  • The complexity of GUI applications far outweighs that of their character-based predecessors. GUIs are capable of presenting much more information to the user and providing many additional navigational paths to elements of the interface.
  • Troubleshooting performance problems and errors is more difficult because of the increased number of components and layers in the system.

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 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, and the application and RDBMS competed for the same CPU and memory resources. Not only was the system responsible for supporting all the database processing, but it also was responsible for executing the application logic. In addition, the system was burdened with all the input/output (I/O) processing for each terminal on the system; each keystroke and display attribute was controlled by the same processor that handled database requests and application logic.

Client/server systems change this architecture considerably by splitting all 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 also have contributed to changes in the application architecture. Prior to the release of Oracle8, Oracle's RDBMS was less sophisticated in its capability to support the processing logic necessary to maintain the integrity of data in the database. Primary and foreign key checking and enforcement, for example, 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. There are differences between traditional host-based applications and client/server applications. Client/server database applications can take advantage of the Oracle8 Server features for implementation of some of the application logic.

Pre-Oracle8 databases provided little more than datatype checking at the kernel level. With Oracle8, however, much of the application logic processing can be performed by the database kernel. Oracle8 contains features such as stored procedures, integrity constraint enforcement, user-defined functions, and database triggersall 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 free to do more sophisticated, complex processing tasks such as GUI management and integration to other client-based productivity tools. The database is much more robust; it no longer is reliant on application code to maintain its integrity.

Page 38

Oracle and Client/Server Computing

Oracle Corporation has been a leader in introducing advanced client/server database technologies; it has directed 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 five primary components of client/server architecture:

  • A full-featured, high-performance, object-relational server, which is scalable from laptops to mainframes
  • Client development and runtime products that support multiple GUI environments
  • Database connectivity middleware that provides efficient and secure communication over a wide variety of network protocols
  • Client-side capture of online analytical processing (OLAP) data cubes so that browsers of data warehouses do not need to sum the database when analyzing data
  • Web servers and tools to assist in Web publishing, Web applications, and electronic commerce

Oracle's product offerings in each area are highly scalable and provide complete client/server solutions for application environments ranging from small workgroup to global enterprise-wide environments.

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

The Oracle8 RDBMS Server

Oracle8 Server is a full-featured RDBMS ideally suited to support sophisticated client/server environments. Many features of the Oracle8 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, Oracle8 also contains the following language-based features that accelerate development and improve the performance of server-side application components.

  • PL/SQL language: A major component of Oracle8 Server is its PL/SQL processing engine (the PL stands for Procedural Language). PL/SQL is Oracle's fourth-generation language that incorporates structured procedural language elements with the SQL language. PL/SQL is designed specifically for client/server processing, because it enables a PL/SQL program block containing application logic as well as SQL statements to be submitted to the server with a single request.
    You can use PL/SQL to significantly reduce the amount of processing required by the client portion of an application and the network traffic required to execute the logic.
Previous Table of Contents Next


Oracle Unleashed
Oracle Development Unleashed (3rd Edition)
ISBN: 0672315750
EAN: 2147483647
Year: 1997
Pages: 391

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net