This chapter describes the challenges of operating in a heterogeneous environment. Oracle recognizes these challenges and offers both synchronous and asynchronous solutions that enable companies to easily operate in such an environment. The two synchronous solutions, Oracle Transparent Gateways and Generic Connectivity, are discussed this book.
This chapter contains these topics:
See Also:For information about a specific Oracle Transparent Gateway, please consult the Oracle documentation for that specific gateway
Information integration is a challenge that affects many organizations. Many run several different database systems. Each of these systems stores data and has a set of applications that run against it. This data is just bits and bytes on a file system - and only a database can turn the bits and bytes of data into business information. Integration and consolidation of all business information would allow an organization to easily and quickly take advantage of the synergies inherent in business information.
Consolidation of all data into one database system is often difficult. This is in large part because many of the applications that run against one database may not have an equivalent that runs against another. Until such time as migration to one consolidated database system is made feasible, it is necessary for the various heterogeneous database systems to work together.
There are several problems to overcome before such interoperability becomes possible. The database systems can have different access interfaces, different data types, different capabilities, and different ways of handling error conditions. Even when one relational database is trying to access another relational database the differences are significant. In such a situation, the common features of the databases include data access through SQL, two-phase commit, and similar data types.
However, there are significant differences as well. SQL dialects can be different, as can transaction semantics. There can be some data types in one database that do not exist in the other. The most significant area of difference is in the data dictionaries of the two databases. Most data dictionaries contain similar information but the information is structured for each in a completely different way. There are several possible ways of overcoming this problem. In this book, we describe the approach that Oracle has taken for synchronously accessing information from multiple sources.
If you want to join data from the databases, the client must contain logic allowing that.
If data integrity must be guaranteed, the client needs to contain transaction coordination logic.
Oracle provides another approach called distributed processing, where the client connects to one Oracle database and shifts the burden of joining data and transaction coordination to that database. The database to which the client program connects is called the local database. Any database other than this one is a remote database. The client program can access objects at any of the remote databases using database links. The Oracle query processor takes care of the joins and its transaction engine takes care of the transaction coordination.
The approach that Oracle has taken to solving the heterogeneous connectivity problem is to allow a non-Oracle system to be one of the remote nodes in the previously described scenario. From the client's point of view, the remote non-Oracle system functions like a remote Oracle system. It appears to understand the same SQL dialect and to have the same data dictionary structure as an Oracle system. Access to a non-Oracle system in this manner is done through a component in the Oracle server called Heterogeneous Services.
The work done by the Heterogeneous Services component is, for the most part, completely transparent to the end user. With only a few exceptions (these are noted in later chapters), you are not required to do anything different to access a non-Oracle system than is required for accessing an Oracle system. The Heterogeneous Services component is used as the foundation for implementing Oracle's access to non-Oracle databases.
The following are two methods that Oracle uses for solving the challenges of information sharing and integration in a heterogeneous environment. Because they are both based on a foundation that is integrated into the database, they can exploit all of the features of the database.
An Oracle Transparent Gateway works in conjunction with the Heterogeneous Services component of the Oracle Database server to access a particular, commercially available, non-Oracle system for which that Oracle Transparent Gateway has been designed. For example, you use the Oracle Transparent Gateway for Sybase on Solaris to access a Sybase database operating on a Sun Solaris platform.
Using an Oracle Transparent Gateway, you can access data anywhere in a distributed database system without being required to know either the location of the data, or how it is stored.
Oracle provides a set of agents, containing only generic code, that interface with the Heterogeneous Services component and comprise Generic Connectivity. These agents require drivers to provide access to the non-Oracle systems. Oracle provides Generic Connectivity agents for ODBC and OLE DB that enable you to use ODBC and OLE DB drivers to access non-Oracle databases.
Note:The ODBC and OLE DB drivers that are required by Generic Connectivity agents are not supplied by Oracle. Users should obtain drivers from other vendors.
The functionality of Generic Connectivity is more limited than that of Oracle Transparent Gateways.
Oracle also offers asynchronous information integration solutions that are mentioned here, but that are not discussed in this book. Briefly, these solutions include:
Oracle Streams enables the propagation of data, transactions, and events in a single data stream or queue, either within a database or between multiple databases. Not only can Oracle Streams capture, propagate, and apply changes to data, it can also handle data structure changes (DDL) and user-defined events. Changes can be captured and applied as is, or transformed at any point in the capture, propagation, and application processing.
The messaging gateway enables communication between Oracle and other non-Oracle message queuing.
Oracle offers a number of open interfaces, such as OCI, JDBC, and ODBC, that enable customers to use third party applications or to write their own client applications to access the Oracle database.
Much of the processing power of Generic Connectivity and Transparent Gateways is integrated into the database. This provides an efficient solution for information integration that enables full exploitation of the power and features of the Oracle database. This includes such features as powerful SQL parsing and distributed optimization capabilities.
The following sections explore the benefits of Oracle's approach to resolving the challenges of a heterogeneous environment:
Both Generic Connectivity and Oracle Transparent Gateways provide the ability to transparently access data in non-Oracle databases from an Oracle environment. You can create synonyms for the objects in a non-Oracle database and refer to them without having to specify a physical location. This transparency eliminates the need for application developers to customize their applications to access data from different non-Oracle systems, thus decreasing development efforts and increasing the mobility of the application.
Instead of requiring applications to interoperate with non-Oracle systems using their native interfaces (which can result in intensive application-side processing), applications can be built upon a consistent Oracle interface for both Oracle and non-Oracle systems.
Generic Connectivity and Oracle Transparent Gateways provide applications direct access to data in non-Oracle databases. This eliminates the need to upload and download large amounts of data to different locations, thus reducing data duplication and saving disk storage space. Also, by eliminating this need to upload and download large amounts of data, there is a further benefit of a reduced risk for unsynchronized or inconsistent data.
The Oracle database server accepts SQL statements that query data stored in several different databases. The Oracle database server with the Heterogeneous Services component processes the SQL statement and passes the appropriate SQL directly to other Oracle databases and through gateways to non-Oracle databases. The Oracle database server then combines the results and returns them to the client.
Generic Connectivity and Oracle Transparent Gateways extend the range of Oracle's database and application development tools. Oracle has tools that increase application development and user productivity by reducing prototype, development, and maintenance time.
You are not required to develop new tools or learn how to use other tools to access data stored in non-Oracle databases. Instead, you can access Oracle and non-Oracle data with a single set of Oracle tools. These tools can run on remote machines connected through Oracle Net to the Oracle database server.
Oracle enables you to transparently access non-Oracle systems using Oracle SQL. In some cases, however, it becomes necessary to use non-Oracle system SQL to access the non-Oracle system. For such cases, Heterogeneous Services has a pass-through feature that enables you to bypass Oracle's query processor and to talk to the remote database in its own language.