The Three Hardware Components of a Client/server System Are:

Oracle7 Server Distributed Systems Manual, Vol. 1 Go to Product Documentation Library
Library
Go to books for this product
Product
Go to Contents for this book
Contents
Go to Index
Index


Go to previous file in sequence Go to next file in sequence

Agreement Distributed Systems

  • Introduction
  • The Client-Server Model and Distributed Systems
  • The Components of the Customer-Server Model
  • What is the Customer-Server Model?
  • Benefits of the Client-Server Model
  • Server-to-Server Communication
  • Oracle7 Server and the Client-Server Model
  • Server Configurations
  • The Database Server
  • Front end-End Client Applications
  • Dorsum-Stop Services
  • Network Issues in a Client-Server System
  • Introduction to Distributed Systems
  • Concepts and Terminology
  • SQL Argument Execution in a Distributed Organisation

This chapter introduces the concepts behind distributed systems and explains how the client-server model, networks, and distributed databases can create an efficient distributed surroundings. Replication problems (basic replication, the advanced replication choice, among others) are discussed in Oracle7 Server Distributed Systems, Book II .

This chapter covers the following topics:

  • the client-server model
  • Oracle7 Server and the client-server model
  • introduction to distributed systems
  • networking problems
  • SQL Statement execution in a distributed arrangement
Information technology is causeless that you are familiar with the concepts and terminology in the Oracle7 Server Concepts transmission. Much detailed information is also provided in the Oracle7 Server Administrator's Guide, and other Oracle7 Server documentation. For introductory Networking issues, you should be familiar with Understanding SQL*Net.

Information in this volume is relevant only to Oracle7 Server, release 7.three and higher with the distributed option.


Introduction

A distributed system is ane in which both data and transaction processing are divided between one or more computers connected past a network, each computer playing a specific role in the system.

Understanding distributed systems requires a knowledge of a number of areas including arrangement architecture, networking, transaction processing, security, among others. Oracle7 Server Distributed Systems, Book I provides you with an introduction to the basic concepts and terminology required to understand distributed systems. It also discusses the components of a distributed system (for example, computers, workstations, networks, and security).

Replication (insuring that the data at all sites in a distributed system reflects whatsoever changes made anywhere in the arrangement) is discussed in detail in Oracle7 Server Distributed Systems, Volume II, which covers both basic replication (standard with the distributed choice) and the advanced replication option.

In this affiliate, the customer-server model is discussed starting time because this model is essential to distributed systems. You will be introduced to the concept of computers that deed as clients and/or servers. Subsequently, you will be shown how the client-server model fits into a distributed arrangement and how networks facilitate

Subsequent chapters of Oracle7 Server Distributed Systems, Volume I introduce networking concepts, terminology, and related Oracle networking products. Utilities for both network and database administration are likewise discussed, as is transaction recovery direction (the mechanism that insures that all sites in a distributed system participating in a transaction that updates information do the same thing).

Although developing applications for a distributed system is similar to developing for not-distributed systems, the application evolution chapter discusses certain bug that can affect an application in a distributed organisation. It also documents Oracle's support for X/Open's XA Library.

Oracle7 Server Distributed Systems, Book I does not attempt to instruct you lot in implementing your distributed system. All of this information already exists in the Oracle7 Server and Oracle Network Products documentation sets. This book does provide pointers, wherever possible, to the manuals that contain instructions specific to completing certain tasks.


The Customer-Server Model and Distributed Systems

The customer-server model is bones to distributed systems. It is a response to the limitations presented by the traditional mainframe customer-host model, in which a unmarried mainframe provides shared data access to many dumb terminals. The client-server model is likewise a response to the local area network (LAN) model, in which many isolated systems admission a file server that provides no processing power.

Client-server architecture provides integration of data and services and allows clients to exist isolated from inherent complexities, such as advice protocols. The simplicity of the customer-server compages allows clients to make requests that are routed to the appropriate server. These requests are made in the grade of transactions. Customer transactions are often SQL or PL/SQL procedures and functions that access individual databases and services.


The Components of the Client-Server Model

The customer-server model consists of three parts:
  • the client
  • the server
  • the network

The Client

The client is the machine (workstation or PC) running the front-cease applications. Information technology interacts with a user through the keyboard, brandish, and pointing device such as a mouse. The client also refers to the customer process that runs on the client machine.

The client has no directly data admission responsibilities. Information technology simply requests processes from the server and displays data managed by the server. Therefore, the customer workstation can be optimized for its job. For instance, it might not demand big deejay chapters, or it might do good from graphic capabilities.

This uncomplicated customer view is necessary to allow many different client-server implementations, ranging from PCs to mainframes and different client interfaces to store and recollect data. To support this client environment, Oracle7 fully implements the ANSI/ISO SQL standard and interfaces.

The Server

The server is the machine that runs Oracle7 software and handles the functions required for concurrent, shared data admission. It is often referred to equally the back-terminate. Server also refers to the server process that runs on the server machine.

The server receives and processes SQL and PL/SQL statements originating from customer applications. The server can also be optimized for its duties. For case, information technology tin can take big deejay chapters and fast processors. Information technology tin also take the load of disk I/O, printing, file transfer, and so on.

The Network

The network enables remote information access through customer-server and server-to-server advice. Oracle's Network Products permit databases and applications to reside on dissimilar machines with different operating systems while even so communicating every bit peer applications.

What is the Client-Server Model?

Certain features are e'er present in the client-server model.

There is a server procedure that tin can procedure requests from one or more than client processes meantime over a network connectedness. The client machine provides forepart-end application software for accessing the data on the server (information technology may include a graphical interface).

The client initiates transactions, the server processes the transactions (though information technology can also activate stored procedures), triggers, and stored business rules. Typically, there is a structured query language (for case, SQL) that can be used to access data stored on the server side.

Other aspects of a client-server architecture are:

  • the application programme interface (API) and how information technology processes service requests between a client and a server,
  • the network advice protocols and facilities that link the client and server, and
  • the system hardware and software requirements.

Benefits of the Client-Server Model

A client-server system is one that uses network resource and shared processing (past both client and server), to provide front-cease applications with concurrent, shared information admission.

Many clients tin share the resources provided by a single server, thus moving the non-disquisitional data and functions to the desktop workstation, leaving the server free for critical processing needs.

Other benefits include:

  • Client applications can concentrate on requesting input from users, requesting desired data from the server, and so analyzing and presenting this data using the display capabilities of the customer workstation or the last (for example, using graphics or spreadsheets).
  • Customer applications tin exist designed with no dependence on the physical location of the information. If the data is moved or distributed to other database servers, the application continues to function with trivial or no modification.
  • Oracle7 exploits the multitasking and shared-memory facilities of its underlying operating organisation. As a result, it delivers the highest possible degree of concurrency, data integrity, and performance to its client applications.
  • Customer workstations or terminals tin exist optimized for the presentation of data (for example, past providing graphics and mouse back up) and the server tin can be optimized for the processing and storage of data (for example, by having large amounts of retentiveness and disk infinite).
  • If necessary, Oracle7 can be scaled for hereafter growth. As your system grows, you can add multiple servers to distribute the database processing load throughout the network (horizontal scaling).
    Alternatively, you tin can replace Oracle7 on a less powerful computer (such as a microcomputer) with Oracle7 running on a minicomputer or mainframe to take advantage of a larger organization's performance (vertical scaling). In either case, all data and applications are maintained with niggling or no modification, since Oracle7 is portable between systems.
  • In networked environments, shared information is stored on the servers, rather than on all computers in the system. This makes it easier and more than efficient to manage concurrent access.
  • In networked environments, inexpensive, depression-end client workstations can access the remote data of the server effectively.
  • In networked environments, client applications submit database requests to the server using SQL statements. Once received, the SQL argument is processed by the server, and the results are returned to the client awarding. Network traffic is kept to a minimum because only the requests and the results are shipped over the network.
  • A client-server system provides independence betwixt awarding components and reduced maintenance costs.

Server-to-Server Communication

Client-server architecture alone does not always meet the needs of a single logical database. The server also requires avant-garde server-to-server capabilities. These include SQL language requests to Oracle7 Servers and remote procedure calls (RPCs) to Oracle7 Servers.

It must be possible to brand changes in the location, number, and function of servers in a complex environment as the data processing needs of the organization change over fourth dimension. It is only through a complete server-to-server implementation that this tin can be achieved.


Oracle7 Server and the Client-Server Model

Oracle Corporation has implemented a server technology in which multiple servers are attainable to clients through the services provided by a single server. Clients can communicate with multiple servers (and gateways) through advanced server-to-server communication, as shown in Figure ane - 1.

Oracle7 Server provides a client with a single consolidated view of an organization'southward data and services. An Oracle7 Server customer'due south view of a distributed organisation is that of a single logical database comprising a distributed database with multiple independent databases.

Figure 1 - one. Oracle7 Using Dedicated Server Processes

An essential requirement for a server in a client-server environment is a symmetric implementation. This means that any Oracle7 Server must and will back up all of the services needed to implement the customer'due south view of a single logical database.

The services implemented by Oracle7 include:

  • transaction management
  • replication (bones replication, included with the distributed option, and the advanced replication choice)
  • SQL distributed linguistic communication requests
  • remote procedure calls (RPCs)
  • access to not-Oracle data and services through open gateways

Server Configurations

Oracle7 Server tin be configured in iii means, as a:
  • dedicated server
  • combined user/server process (single-task server)
  • Multi-Threaded Server (MTS)

Dedicated Server

Effigy 1 - 2 illustrates Oracle7 running on two computers using the dedicated server compages.

Figure i - 2. Oracle7 Using Dedicated Server Processes

Find that, in this type of system, the database application is executed by a user process on one motorcar, and the associated Oracle7 Server code is executed by a server procedure on some other motorcar. These 2 processes are split up, singled-out processes.

Defended Server Procedure

The divide server process created for each user process is called a defended server process (formerly referred to as "shadow process") because this server process acts just on behalf of the associated user process. In this configuration (sometimes chosen two-task Oracle7), every user procedure connected to Oracle7 has a corresponding dedicated server process.

Therefore, there is a one-to-one ratio between the number of user processes and server processes in this configuration. Even when the user is non actively making a database request, the dedicated server process remains (although information technology is inactive and may exist paged out on some operating systems).

The dedicated server architecture of Oracle7 allows client applications being executed on customer workstations to communicate with some other computer running Oracle7 beyond a network.

This configuration of Oracle7 is as well used if the same computer executes both the client awarding and Oracle7 Server code and, the host operating system cannot maintain the separation of the ii programs if they are run in a unmarried process. A common example of such an operating arrangement is UNIX.

The Plan Interface

The program interface allows communication betwixt the two programs. In the dedicated server configuration, communication between the user and server processes occurs using unlike mechanisms:
  • If the system is configured and so that the user process and the dedicated server process are run by the aforementioned computer, the program interface uses the host operating system's inter-process communication mechanism to perform its job.
  • If the user process and the defended server procedure are executed by dissimilar computers, the program interface also encompasses the communication mechanisms, such as the network software and SQL*Net, between the programs.
Additional Data: These communications links are operating system- and installation-dependent; run into your Oracle operating arrangement-specific documentation and Understanding SQL*Net for more information.

Additional Data: Run across "The Plan Interface" in Chapter 1 of the Oracle7 Server Concepts manual for additional information.

Combined User/Server Process

Figure 1 - 3 illustrates the combined user/server configuration of Oracle7. Notice that in this configuration, the database application and the Oracle7 Server code all run in the aforementioned process, termed a user process.

Figure 1 - 3. Oracle7 Using Combined User/Server Processes

This configuration of Oracle7 (sometimes called single-task Oracle7) is only feasible in operating systems that can maintain a separation between the database application and the Oracle7 code in a single process (such as on the VAX VMS operating arrangement). This separation is required for data integrity and privacy. Some operating systems, such as UNIX, cannot provide this separation, then they must accept separate processes run application lawmaking and server code to prevent damage to Oracle7 by the awarding.

Note: The program interface is responsible for the separation and protection of Oracle7 Server code and is responsible for passing information between the database application and the Oracle7 user plan. For more than data about the plan interface, see the Oracle7 Server Concepts manual.

Only one Oracle7 connexion is allowed at whatsoever time past a process using the above configuration. However, in a user-written plan, it is possible to maintain this type of connectedness while concurrently connecting to Oracle7 using a network (SQL*Net) interface.

Multi-Threaded Server

The multi-threaded server (MTS) configuration (or "shared server" configuration) allows many user processes to share very few server processes.

In a non-multi-threaded server configuration, each user process requires its own defended server procedure; a new server process is created for each client requesting a connection. A dedicated server process remains associated to the user procedure for the residual of the connection.

In a multi-threaded server configuration, client processes connect to a SQL*Net listener process which provides the network address of a dispatcher procedure to the client. The client and then connects to this dispatcher process. Requests for services from the customer are placed in a asking queue where they look for the next available server procedure. Results are returned to the client by the dispatcher process. In this way, the listener routes client requests to the next available shared server process.

The reward of the multi-threaded server configuration is that system overhead is reduced, and then the number of users that tin can exist supported is increased. For more information virtually the multi-threaded server and the network listener, run across "How SQL*Net Establishes Connections to the Multi-Threaded Server" [*]. and "SQL*Internet and the Network Listener" [*].

Contrasting Defended Server Processes and Multi-Threaded Server Processes

Consider an order entry system with dedicated server processes. A customer places an society equally a clerk enters the guild into the database. For most of the transaction, the clerk is on the telephone talking to the customer, and the server procedure defended to the clerk'southward user process remains idle. The server process is not needed during virtually of the transaction, and the system is slower for other clerks entering orders.

The multi-threaded server configuration eliminates the demand for a dedicated server procedure for each connection. A small number of shared server processes can perform the same corporeality of work, and the memory required for each user is relatively small. Because less memory and process management are required, more users can exist supported.


The Database Server

A database customer-server system is a subset of the client-server model. The auto on which the database resides is the database server. Typically, the database also holds stored procedures, upshot alerts and triggers. It also provides services, such as row-level locking, security, logging, recovery, concurrency management, among others. Other types of servers include file servers, mail servers, and name servers.

The database server allows many users to admission data from a single location. Nonetheless, this architecture tin be extended to let many users to access data from many databases, and it allows those databases to cooperate in maintaining consistency.

Oracle7 Server provides extensive server functionality. The simplicity of the customer-server architecture allows clients to make requests that are routed to the appropriate server. These requests are in the form of transactions. Client transactions tin can be SQL or PL/SQL procedures and functions that access the individual databases and services.


Forepart-End Client Applications

A front end-end awarding queries a host or server-based database and extracts information for use with report writers, spreadsheets, and and so on. It may also provide protocol processing and has access to server-based resources.

The forepart-end application runs on a workstation and provides a grapheme-based or graphic interface to help the user to admission the remote data store(s). These applications can be written in-house or purchased from Oracle Corporation or tertiary-party vendors. Oracle Corporation as well provides many tools for the development of these applications.

The function of client-side applications is multi-faceted:

  • data query (including parallel query)
  • study writing
  • third or fourth generation language (3GL/4GL) applications
  • transaction processing
  • application evolution
  • CASE
  • decision support

Back-Finish Services

Besides acting as a database server, a server can provide other multi-user service applications for mail, document management, and and so on.

SQL

The nigh basic tool for data access is the structured query language (SQL). Many SQL and SQL-generating tools have been adult for accessing remote data. Although the front-end application presents a much simplified method of creating queries for the user, the result of the query that is passed to the server is SQL.

Remote Procedure Calls

Like to local procedure calls where often used code is stored equally a procedure or routine, remote procedure calls (RPCs) allow the aforementioned functionality over a network of systems. When a program executes the stored code, it passes on any necessary parameters in the phone call.

Because the procedure is located remotely, withal, it must be coded to understand what to do at the remote location, and how to return the results to the requesting awarding.


Network Issues in a Client-Server System

Although a customer-server organization tin can consist of a server process and client process that exist on the same machine, this book assumes that the typical customer-server system consists of a client motorcar and a server machine.

Client-server systems cannot function without communication. Designing any client-server organisation requires a knowledge of and an ability to implement advisable networking using SQL*Net, Oracle Names and other network products.

Other communications software may be supplied by Oracle Corporation simply is frequently purchased separately from the hardware vendor or a third-party software supplier.

The simplest network connectedness, single customer to single server, requires only a single protocol, normally provided by the host operating system. DECnet, TCP/IP, LU6.2, and ASYNC are examples.

Withal, most companies crave connections from many types of machines using different operating systems and communication protocols. Such systems grow quickly in complexity.

SQL*Net uses the advice protocols or application program interfaces (APIs) supported by a broad range of networks to provide for a distributed Oracle7 system. A communications protocol is a set of standards, implemented in software, that govern the transmission of data across a network. An API is a set of program functions or calls that let an application to brand use of, or communicate with, an underlying plan or system.. In the example of networks, the API provides the means to establish remote procedure-to-process communication over a advice protocol

Communication protocols define the manner a network transmits and receives data. In a networked environment, Oracle7 Server communicates with client workstations and other Oracle7 Servers using SQL*Net. SQL*Net supports communications on all major network protocols, ranging from those supported by PC LANs, to those used by the largest mainframe reckoner systems.

Without SQL*Internet, 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 appropriately.

Even so, by using SQL*Cyberspace, 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 small-scale changes, while the awarding continues to function with no modification.

How SQL*Internet Works

SQL*Net drivers provide an interface between Oracle7 processes running on the database server and the user processes of Oracle7 tools running on other computers of the network.

The SQL*Internet drivers take SQL statements from the interface of the Oracle7 tools and package them for manual to Oracle7 over one of the supported industry-standard, higher-level protocols or programmatic interfaces. The drivers also take replies from Oracle7 and bundle them for transmission to the tools over the aforementioned higher-level communications mechanism. This is all done independently of the network operating arrangement.

Additional Information: Depending on your operating arrangement, the SQL*Internet software may include the commuter software and showtime an additional Oracle7 background procedure. Encounter your Oracle operating system-specific documentation for details.

Database Links

For client machines to admission a remote database on the server, the communications protocol must exist told where the database resides through a database link. A database link is a string that uniquely identifies to the communication software the location and name of the remote database.

Note: Oracle7 requires the database link name to exist the same every bit the global database name (or service name). For more information on naming issues in a distributed system, see page ii - 26.

Location Transparency

Oracle7 server provides the means to make data objects such equally tables in remote databases await like they are in the local database to an application developer or user of that information object. Once a client-server system has been set up, users should exist able to access the remote database with complete location transparency, provided the database link has been properly defined. For more than information on location transparency, see page 2 - vi.

Introduction to Distributed Systems

An Oracle7 distributed system can be a blend of distributed database and distributed processing systems.

Distributed Processing and Distributed Databases

Distributed processing and distributed databases are not the aforementioned thing, although they have similarities. In a distributed processing system, processing data (searching for information, storing results) is distributed. In a distributed database, the data is distributed in databases on more than one machine.

Distributed Database Organisation Basics

A distributed database organisation appears to a user equally a single server but is, in fact, a set of two or more than servers. The data on each server can exist simultaneously accessed and modified via a network. Each server in the distributed organisation is controlled by its local database ambassador (DBA), and each server cooperates to maintain the consistency of the global database.

Annotation that in Figure 1 - 4, the workstations are the clients and connect to the database servers over the communications network. The two servers, HQ and SALES as well communicate over the network to maintain data consistency, as changes to the SALES database may have bear on on the HQ database as when data replication has been implemented.

Figure 1 - 4. A Distributed Environment

Figure i - 5 illustrates how the HQ and SALES database servers work together.

Effigy 1 - five. An Instance of Cooperative Server Compages

Note too that the INSERT statement includes the location of the database to be accessed (SALES) because the customer from which the SQL statement is issued is continued directly to the HQ database server just.


Concepts and Terminology

The post-obit sections outline some of the general terminology and concepts used to talk over distributed systems.

Nodes

A node in a distributed system can be a client, a server, or both. Every computer in a system is a node.

For example, in Figure 1 - 5, the HQ node acts equally a server when the DELETE argument is issued confronting the tabular array DEPT.

Information technology acts as a client when it issues the INSERT and SELECT statements against remote information in the tabular array EMP which resides in the SALES database.

Replication

The power to insure reliable data replication is an extremely of import (and potentially circuitous) cistron in a distributed organization. Data replication means that any given data object can accept several stored representatives at several unlike sites and that, if each representative is potentially updatable, there must be a machinery for insuring that all representatives reflect the changes.

Oracle7 Server provides a diversity of mechanisms for replicating your data. The methods you select volition depend on your specific needs:

  • read-only snapshots
  • Oracle'south symmetric replication facility
    • updatable snapshots
    • N-mode master replication
If you merely demand to view the information at multiple sites, without updating information technology, you might choose to use read-simply snapshots. If yous need to be able to update multiple copies of the same data, you will demand to use Oracle's symmetric replication facility.

See page 5 - 2 for a cursory introduction to replication and how it fits into the scheme of a distributed organisation.

Oracle7 Server Distributed Systems, Book 2 provides an introduction to the Oracle7 Server replication capabilities and detailed instructions on how to implement and maintain replication for your system.

Directly and Indirect Connections

A client can connect directly or indirectly to a server. In Effigy 1 - 5, when the client application issues the first and third statements for each transaction, the client is continued direct to the intermediate HQ database and indirectly to the SALES database that contains the remote data.

Site Autonomy

Site autonomy means that each server participating in a distributed system is administered independently (for security and backup operations) from the other servers. Although all the servers can work together, they are distinct, divide repositories of data and are administered individually. Some of the benefits of site autonomy are:
  • Nodes of the system can mirror the logical organization of companies or cooperating organizations that demand to maintain a mutually autonomous relationship.
  • Local data is controlled by the local administrator. Therefore, each administrator's region of responsibility is smaller and more manageable. A region is a group of global object names administered past a unmarried entity, which could be 1 person or a group of people.
  • Contained failures are less likely to disrupt other nodes of the distributed arrangement. The global database is partially available equally long as i database and the network are bachelor. No single database failure need halt all global operations or be a performance bottleneck.
  • Failure recovery is usually performed on an individual node ground.
  • A data dictionary exists for each local database.
  • Nodes tin can upgrade software independently.

Name Resolution

A schema object (for example, a table) is accessible from all nodes that grade a distributed organisation. Therefore, just every bit a non-networked local database compages must provide an unambiguous naming scheme to distinctly reference objects within the local database, then must a distributed system use a naming scheme to ensure that objects throughout the system tin be uniquely identified and referenced.

To resolve references to objects (a procedure called proper name resolution) within a single database, the database usually forms object names using a hierarchical approach. For example, within a unmarried database, each schema has a unique name, and that within a schema, each object has a unique name.

Considering uniqueness is enforced at each level of the hierarchical construction, an object's local name is guaranteed to exist unique inside the database, and references to the object's local name can be easily resolved.

Distributed systems merely extend the hierarchical naming model by enforcing unique database names inside a network. As a result, an object'south global object name is guaranteed to exist unique within the distributed system, and references to the object's global object proper name can be resolved amid the nodes of the system.

See folio two - 26 for more than information on global naming issues.

Remote/Distributed Queries and Updates

A remote query is a query that selects information from ane or more than remote tables, all of which reside at the same remote node.

A remote update is an update that modifies data in one or more tables, all of which are located at the same remote node.

Notation: A remote update may include a subquery that retrieves data from one or more remote nodes. Considering the update is performed at but a single remote node, however, the statement is classified as a remote update.

A distributed query retrieves information from two or more nodes.

A distributed update modifies data on two or more nodes. A distributed update is possible using a process or trigger, which includes two or more remote updates that access information on dissimilar nodes. Statements in the program unit are sent to the remote nodes, and the execution of the program succeeds or fails as a unit.

Remote and Distributed Transactions

A remote transaction is a transaction that contains i or more remote statements, all of which reference the same remote node. A distributed transaction is any transaction that includes one or more than statements that, individually or as a group, update or query data on two or more than distinct nodes of a distributed system. If all statements of a transaction reference merely a single remote node, the transaction is remote, not distributed.

Remote Procedure Calls (RPCs)

Oracle7 supports RPCs with full PL/SQL datatypes as parameters and render values. Because PL/SQL datatypes are a superset of SQL datatypes, PL/SQL procedures and functions are platonic for managing Oracle7 services on remote servers. All parameters and render values provided by a remote server can be examined and stored by the calling server. This allows the local server to maintain the client's calling interface and semantics - even if the service is reimplemented, or the remote site decides to change the RPC's interface.

Admission to Non-Oracle Data and Services through Oracle Open up Gateway Technology

Oracle Open Gateway Engineering provides access to non-Oracle data through gateway servers, which are a part of a distributed arrangement similar any other distributed server. Open Gateway technology is tightly integrated with the Oracle7 Server. This permits integration of both SQL and not-SQL data and services. For more data, run across your Oracle Open Gateway documentation.

Gateway servers access the target system straight. Oracle7 client applications do not connect straight to a gateway server, but indirectly by starting time connecting to an integrating server. An integrating server communicates with a gateway server in the normal Oracle7 server-to-server manner using SQL*Cyberspace. See Figure 1 - 1.

A gateway server is a single process and does not start background processes. On some platforms, such as MVS, the gateway server starts once, and maintains multiple user sessions in retention, where one session handles the requests from a single Oracle7 client application. On other platforms, such as UNIX platforms, a gateway server starts for each user session.

Transparent Gateway Server

A transparent gateway server emulates an Oracle7 Server and usually resides in the target system environs. The database administrator creates database links and local synonyms at all Oracle7 Servers that require access to the data source. The gateway server is so transparent for Oracle7 customer applications that admission what appear to be Oracle7 tables or views.

A client awarding connects directly to an integrating Oracle7 Server, which is responsible for connecting to the transparent gateway server. A transparent gateway does not execute PL/SQL stored procedures, but a stored process on an Oracle7 Server can outcome SQL statements that access the data source via the gateway.

An Oracle7 client application queries and modifies a information source using ANSI/ISO SQL via the transparent gateway. Transparent gateways always perform automatic data conversion. In some cases, this is driven by gateway information definition language (GDDL) for non-SQL data sources.

A target arrangement is unlikely to accept all Oracle7 functionality. For queries, missing functionality is oftentimes fulfilled by the gateway server or integrating server. For example, where a target system has a limited capability to conditionally retrieve data, the gateway can make upward for this missing functionality by means of a post-filter.

Procedural Gateway Server

A procedural gateway server emulates Oracle7 Server's remote procedural capabilities and normally resides in the target system surround. The database administrator creates database links and local synonyms at all Oracle7 Servers that require access to the information source. The gateway server is and so transparent for Oracle7 client applications, which access what appear to be Oracle7 PL/SQL stored procedures.

A customer application connects directly to an integrating Oracle7 Server, which is responsible for connecting to the procedural gateway server.

A procedural gateway does non execute SQL requests. An Oracle7 customer application executes calls at a target organisation using PL/SQL remote process calls. Automated data conversion to and from the datatypes of the arguments in the procedure call and the call at the target system is driven by gateway data definition linguistic communication.

Transaction Recovery Management

An efficient system, distributed or non-distributed, must guarantee that all statements in a transaction are either committed or rolled back as a unit, so that the data in the logical database can be kept consistent. The furnishings of a transaction should be either visible or invisible to all other transactions at all nodes. This should be true for transactions that include whatever type of operation, including queries, updates, or remote procedure calls.

The general mechanisms of transaction command in a non-distributed system are discussed[*]. In a distributed arrangement, Oracle7 must coordinate transaction command over a network and maintain information consistency, even if a network or organisation failure occurs.

Transaction recovery direction guarantees that all database servers participating in a distributed transaction either all commit or all roll back the statements in the transaction. Transaction recovery management also protects implicit DML operations performed by integrity constraints, remote procedure calls, and triggers. Transaction recovery management is described[*].

Transparency

The functionality of a distributed system must be provided in such a manner that the complexities of the system are transparent to both users and administrators.

For instance, a distributed system should provide methods to hide the physical location of objects throughout the system from applications and users. Location transparency exists if a user can refer to the same tabular array the same way, regardless of the node to which the user connects. Location transparency is beneficial for the following reasons:

  • Admission to remote data is simplified because the users do not demand to know the location of objects.
  • Objects can be moved with no impact on end-users or applications.
A distributed system should besides provide query, update, and transaction transparency. For example, standard SQL commands, such equally SELECT, INSERT, UPDATE and DELETE, should allow users to access remote data without the requirement for any programming. Transaction transparency occurs when the DBMS provides the functionality described below using standard SQL COMMIT, SAVEPOINT, and ROLLBACK commands, without requiring complex programming or other special operations to provide distributed transaction control:
  • The statements in a unmarried transaction tin reference any number of local or remote tables.
  • The database server guarantees that all nodes involved in a distributed transaction take the same activity. They either all commit or all roll back the transaction.
  • If a network or arrangement failure occurs during the commit of a distributed transaction, the transaction is automatically and transparently resolved globally. That is, when the network or system is restored, the nodes either all commit or all roll back the transaction.
A distributed compages should besides provide facilities to transparently replicate data among the nodes of the organisation. Maintaining copies of a table across the databases in a distributed system is often desired and then that:
  • Tables with loftier-query and low-update activity can be accessed faster past local user sessions because no network communication is necessary.
  • If a database that contains a critical tabular array experiences a prolonged failure, replicates (or copies) of the table in other databases can still be accessed.
A database server that manages a distributed system should make table replication transparent to users working with the replicated tables.

Finally, the functional transparencies explained above are not sufficient alone. The distributed system must likewise perform with acceptable speed.

National Language Back up (NLS)

Oracle7 supports heterogeneous client/server environments where clients and servers use dissimilar character sets. The character set used past a client is defined by the value of the NLS_LANG parameter for the client session. The character gear up used past a server is its database grapheme set up. Data conversion is done automatically between these character sets if they are unlike. For more data about National Language Back up features, meet the Oracle7 Server Reference.

SQL Statement Execution in a Distributed Organization

SQL argument execution of remote and distributed statements is essentially the aforementioned in a distributed system as in a non-distributed database. However, depending on the type of argument issued, the location of statement execution tin vary.

Remote Queries and Updates

All remote queries and remote updates are sent to the remote node for statement execution. The remote node executes the statement and returns any results dorsum to the local node, which returns them to the user or application.

Distributed Queries and Distributed Updates

The statements in a procedure or trigger that establish a distributed update are sent individually to the correct remote node for execution. Results are returned to the local node and then to the calling user or application.

Values for Environmentally- Dependent SQL Functions

In a distributed system, environmentally-dependent SQL functions, such every bit SYSDATE, USER, UID, and USERENV, are evaluated e'er with respect to the local node regardless of where the argument (or portion of a statement) is executed. The USERENV role is supported only for queries.

Shared SQL for Remote and Distributed Statements

The mechanics of a remote or distributed statement using shared SQL are substantially the same as those of a local argument. The SQL text must lucifer, the referenced objects must match, and the bind types of whatsoever bind variables must be the same. If available, shared SQL areas can be used for the local and remote handling of any argument (or decomposed query).

Optimization of SQL Statements in a Distributed System

The optimization approach bachelor for SQL statements tin vary depending on the type and complexity of the statement.


Go to previous file in sequence Go to next file in sequence
Prev Next
Oracle
Copyright © 1996 Oracle Corporation.
All Rights Reserved.
Go to Product Documentation Library
Library
Go to books for this product
Product
Go to Contents for this book
Contents
Go to Index
Index

0 Response to "The Three Hardware Components of a Client/server System Are:"

Post a Comment

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel