CA2034905C - Method and apparatus for enabling data transfer between heterogeneous database systems - Google Patents

Method and apparatus for enabling data transfer between heterogeneous database systems

Info

Publication number
CA2034905C
CA2034905C CA002034905A CA2034905A CA2034905C CA 2034905 C CA2034905 C CA 2034905C CA 002034905 A CA002034905 A CA 002034905A CA 2034905 A CA2034905 A CA 2034905A CA 2034905 C CA2034905 C CA 2034905C
Authority
CA
Canada
Prior art keywords
data
database
machine
descriptor
processor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
CA002034905A
Other languages
French (fr)
Other versions
CA2034905A1 (en
Inventor
John Gary Adair
Daniel Jerome Coyle Jr.
Robert Joseph Grafe
Bruce Gilbert Lindsay
Roger Alan Reinsch
Robert Peter Resch
Patricia Griffiths Selinger
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CA2034905A1 publication Critical patent/CA2034905A1/en
Application granted granted Critical
Publication of CA2034905C publication Critical patent/CA2034905C/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/912Applications of a database
    • Y10S707/922Communications
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99954Version management

Abstract

The invention establishes the context in which data exchanged between dissimilar relational database management systems can be mutually understood and preserved. The invention accomplishes this by establishing layers of descriptive information which isolate machine characteristics, levels of support software, and user data descriptions. Optimized processing is achieved by processing the different descriptor levels at different times during the development and execution of the database management systems. Minimal descriptive information is exchanged between the cooperating database management systems. For systems which match, data conversion is completely avoided. For systems which do not match, data conversion is minimized.

Description

~ ~ 3 4 ~ ~ 5 METHOD AND ~PP~RA~JS FOR EN~BLING ~ATA TRANSFER
BE'~W~N H~Tfi,ROGEN~OIJS DATABASE SYSTEMS

~ackc3round of the Invention Technica] Field This invention relates to the characterizatioll of data for interprocess exchange. More particularly, the invention relates to estahlishillg the context in which data exchanged between dissimilar (heteroc3etleous) re]ational database management systems can he m~ltually ~Inderstood and preserved.

ne.scription of the Pr-ior Art Currently there is great interest in joininy together multiple database management sites to form a distributed system which provldes any ~Iser at any s;te with access to data stored at any ot}ler slt:e; see ror example, AN
INTRODUCTION TO D~T~3~S~ ~Y.STEMS, Vo]. ], by C. J. Date (4th Edition, 1986), at pp. 5S7-62~. Date etlvisions that each site wo~ld colls1it~lte ~n elltile (iatabase system with its own database management system (DBMS), terminals, users, storage, alld CPU.
In a distriblltec] database system sucll as the type described by Date, the DBMS at ally site may operate on a machine type Wllich is differellt than the machine type of another site. Indeecl, there may be as many different machine types as sites. FOL~ example, the IBM Corporation (Assignee of 1.his patellt application) has DBMSs which ~i.
~034~ ~ 5 operate on System/370~ machilles, A~/400~ machines, and PS/2 machines.
The machines upon which the DBMSs of a heterogeneous database system rull all represent information in different internal formats. For examrle, nu1neric information on PS/2 machines is storecl wit11 the bytes in low order to high order sequence. On othel: mac}li.lle.s, such information may be stored in high order to l.ow order sequence. Eor floating point information, thele are IEEE f].oating point machines and hexadecimal floatincJ point mach11les. Character information is processed in many differellt code repre.sentations, the choice of which ref]ects historical or cultural roots.
~ s DBMSs gl~OW alld evol~e over time, they may be embodied in a series o~ versions or releases. Each of these may require additional informatioll to he exchanged in a distributed database systell1. Whell these changes are introduced, all sites must be informed.
When a database program i.s written, compiled and executed entirely in one environment (machine and DBMS), it rarely is sensitive to the exact representation of the data which it processes. lhe data compi ]ed into the program and the data stored in ~]atabase str~ctures are all represented identically so the opel-atiolls behave as expected. Thus, a COMPARE command executed in a sing]e database environment can a].ways be made to manipulate c~ata correctly, just by using the high level language operatiolls o~ the system.
Thus, givel) dis~ ity in machille types and the ever-evo]ving natll]~e of DBMSs, it is ~.nevitable that a distributed databa.se system C'all be heterogerleous in the sense that any site may mallacJe a databa.se by means of a combination of macllitlP alld DBMS whicl1 is different from the combination at anotlle}- site Provision is made in the prior art for solving the problems of machine arld system incompatibility in a distributed, heterogelleolls clatabase system. Three solutions are of interest.
The earliest sollltioll may be termed "application beware". This solution usually starts as a connection between identical database systems whicll grows over time to incorporate some machines which differ slightly from the original. In tllese sol~ltions, there is no way for the SA9-89-096 3 203~90~

system to automatically handle the differences, with the result that the application program was given this responsibility. If access to heterogeneous databases was needed badly enough, the application was written to make any necessary accommodations.
The s~cond solution lltilizes a canonical representation of data. This approach calls for conversion of data into a single, generic (canonical) representation before transport from one database site to another. Superficially, this solves the problem of automating the system to handle differences between differing databases. However, this approach requires many extra conversions which are inefficient, and introduces many conversion errors, making the approach inaccurate. For example, conversion of a floating point number always requires rounding off, with a concomitant loss of accuracy. When converting from one to another floating point representation, say, from IEEE to hexadecimal, precision is lost. In changing from hexadecimal to IEEE, scale is lost. Where character translations are performed, many of the special characters are lost because of lack of equivalence between character codes. In this solution, conversion errors which do occur are introduced at a point in the process far removed from the application. This increases the difficulty of identifying and responding to errors.
The last solution employs a gateway conversion in which a central facility is responsible for matching any database representation to any other. Ideally this reduces the inefficiency, inaccuracy, and error propenslty of the canonical representation since conversions call be avoided when they aren t needed. However, inter-site communication i9 lengthy, slow, and expensive. The gateway is a single node to which all inter-site paths connect for all interactions. Instead of a request and response between the two participating sites, there are two requests and two responses for every data transfer. When conversions are required, they are still done in a part of the distributed system which is remote from the application.
Thus, there is an evident need in distributed, heterogeneous database systems to support effective and accurate exchange of data, while reducing the number of j. ~

SA9-89-096 4 203~1905 conversions, and the communications overhead. It is also desirable to perform any needed conversion at the site where the request for the data to be converted was generated.

Summary of the Invention This invention describes a method and system for establishing the context in which data exchanged between heterogeneous relational DBMSs can be mutually understood and preserved. Particularly, a sequence of information transfer is described which enables a database to request or receive data expressed in a non-native form. Thus, with the practice of this invention, a DBMS may receive data in a foreign format and itself perform the necessary conversion of the data.
According to the invention, a database in a distributed, heterogeneous database system contains predefined descriptions of all machine environments in the system (machine descriptors) and predefined descriptions of database language structures (system descriptors) for each DBMS with which it can perform data exchange. When a database operation begins which requires two heterogeneous databases to conduct an information exchange, a communication link is established between them. Next, each DBMS identifies its machine and system descriptors to the other. This establishes a data context and is done only once for the life of the communication link. Once established, req~lests can be sent and data received. When data is sent to the receiving DBMS, specific descriptions of the data precede the data itself and refer to the machine and system descriptors earlier identified. When the data is received, information contained in the specific descriptions enable a conversion process at the receiver to interpret the data by referencing machine and system descriptors. Taken together, the specific descriptions, and the machine and system descriptors which they reference, precisely characterize the environment where the data originated and establish, at the receiver, a context for predictable conversion of the data into a format which is native to the machine/system combination of the receiving site.
The invention reduces the total overhead required in making and responding to a data request, and attenuates the ~ ~ 3 ~ ~ ~ 5 processing required by the receiver DBMS to interpret the sent data, while increasing the speed with which a request for data is serviced.

Brief Description of the Drawings FIG. lA is an illustration of user data which is to be transferred between non-equivalent database systems.
FIG. lB is a top level representation of the relationships of all descriptors which define the environmental context of the user data illustrated in FIG. lA.
FIGS. 2A, 2B, 2C and 2D illustrate machine descriptors.
FIGS. 3A and 3B illustrate system descriptors together with their references to machine descriptors.
FIGS. 4A and 4B illustrate user data descriptors of the invention with references to machine and system descriptors.
FIG. 5 illustrates the procedure of the invention in the example of command and data flows to set up a connection and transfer a set of user data.
FIG. 6 illustrates a representative system architecture on which the invention may be practiced.
FIG. 7 illustrates the procedure of the invention in the example of command and data flows between a requesting and serving machine passing through an intermediate DBMS system.
Description of the Preferred Embodiment When used herein, the term "descriptor" means a unit of data used to characterize or categorize information. The term "data object" is taken to mean a data structure element that is necessary for the execution of a program and that is named or otherwise specified by a program. A "reference" is a construct such as a pointer which designates a declared object. Descriptors, data objects, and references are all understood in the context of a programming language. In relational DBMSs, a well-known relational language is SQL.
An "environmental context" is an information set which describes the database system which originates a block of user data. Data is in "native form" if it is made up of data types and control information in a form used by the database system which is processing it; otherwise, it is "non-native" or "foreign". A database system "environment"
is the set of logical and physical resources used to support database management.

~ g~ 3 4 Q ~ ~

For relational database systems, the S~L language describes several diffel-ent data -types. The6e types include INTEGER, FLOAT, VARCHAR, and many more. Vepending on the machine on which an S~l. dat~base manager is implemented, the actual bit representatiolls for ~ata values having S~L data types vary. For example, the IBM~ System/370 employs a hexadecimal floating poi.nt representation, the IBM AS/400 employs the IEEE forma~, and on IBM OS/2~ machines, IEEE
byte reversed formats are used. These differences are implied by the machille environmeIIt and are not formally exposed to appli.ca1..ioll progr.ams e~ecuting in the environments.
Furthermore, thele are many SQL i.dentified standard control blocks, sucll as the SQI, commurlication area (SQLCA) which is defined i71 ~er~ms of SQI. types. The S~LCAs in the machine environments defi.ned above are not identical. This invention formalizes a method and means for exchanging information between heterogerleous DBMSs about machine characteristics and DBMS languacJe structures such that little or no descriptive i.nformation must flow during the exchange of data in ordel~ to convert c3ata to a native form.
Additionally, wl1en datab~se si.tes matcll, no conversions are performed at all, thtls preserving completely the integrity of the data beinc3 exchallged. When these sites do not match, data conversions are performed c]ose to the ultimate point of use where errors intr:od~lced by imperfect conversions can be dealt with accord:ing to the needs of the requesting application.
This inventi.on is described using simple machines, database management systems, and user data. Those skilled in the art wi]l understand that detailed implementations will require suppol:l for many more gener-ic data types than are described hereinbe]ow, many more DBMS information block.s, and user c]~ta with many more fields. The extensions to handle these cases are manifest and would only serve to unnecessarily obscul~e the invention if presented herein.
FIG. lA illustrates user data in hexadecimal format.
The data are shown in two forms, 1.0 and 20. The user data appears as it would i.n a typical personal computer environment. The data 20 has the same meaning as the data 2~3~

10 except that it appears in the form it would have in a typical mainframe environment.
The user data forms illustrated in FIG. lA form the example upon which explanation of the invention is based.
When the user data is to be sent from the personal computer environment to the mainframe environment as illustrated by the direction 31-30, it must be changed in form from 10 to 20. Conversely, if the user data is to be sent from the mainframe to the personal computer environment, that is, direction 30-31, it must be changed in form from 20 to 10.
The actual data being transferred consists of three rows. Each row is an entity containing all of the fields necessary to describe the outcome of an SQL statement. With reference to the rows in each user data, the first fields 11 and 21 are SQL communication areas which describe the outcome of an SQL statement. In this regard the SQL
statement is assumed to be a command in the SQL language which results in the manipulation of data in a database. In the example, the data affected by the outcome of the SQL
statement consists of five fields. In the first row, the first fields 12 and 22 contain the integer value 100, the second fields 13 and 23 contain the character value "ABC", the third fields 14 and 24 contain the integer value 80, the fourth fields 15 and 25 hold the character value "ZYX", and the last fields 16 and 26 contain the floating point value 12.3.
The second row of each representation in FIG. lA
consists of an SQL commu1lication area followed by the integer value 200, "DEF", the integer value 160, the characters "WVIJ", and the floating point value 45.6.
Similarly, the third row includes an SQL communication area, integer 300, characters "GHI", integer 240, characters "TSR", and floating point 78.9.
It will be appreciated that the integers in the user data 10 are in low to high sequence, and in high to low sequence in the user data 20. ~haracters are coded in ASCII
in the personal computer user data and in EBCDIC in the mainframe user data. Floating point is IEEE low to high in fields 16 of the user data and hexadecimal excess-64 in fields 26 of the user data 20. The communication areas 11 in the personal computer machine use formats which are ~ ~ 3 4 9 0 5 different than t1le SQL comm~ ication areas 21 in the mainframe environment.
No distinction has yel been made as to which direction the data in ~IG. lA will be transferred. That is, no statement has been made as to which environment is the server and which the receiver of data. The method of this invention i.s complete]y symmetric and reversible. However, for the purpose of exp].anation, assume that a re~lest for data is made by a personal computer DBMS, that the receiver will receive data and that a mainframe DBMS receives the request and sends the data. Re].atedly, in FIG. lA, the requested data is user data 20 which tnust be rendered ultimately into the form represented by user data 10. The invention provides fol est:ablishing a context by which the receiver can accept u.qer data 20 ~nd prepare for conversion of that data into the format represented by user data 10.
This inventi.on does not concern the actual conversion process itself, but rather with a method and means for delaying conversion until the data reaches the location where it is to be processed.
In FIG. lB, ther~e is illu.strated a personal computer machine en~irotmlent 40 ("receiver") and a mainframe machine environment 50 ("server"). The personal computer environment can inc]ude, for example, the IBM PS/2 product programmed with an OS/2 SQL-based database management system. For convenience, the machine name of the personal computer 40 is indicated by reference numeral 41. The DBMS
which runs Oll the machille ~0 utilizes a code to represent characters and ccn~rol rnnction meanings. For this purpose, a code paye maps al] code points to the graphic characters and control funclion meanillg~ lltilized by the DBMS. The code page is represented by reference number 42. The DBMS
is a language-base~ system, and in the example, it is assumed that the DBMS ;s an SQL-based system. Further, it is assn,lled that the version or level of the language is SQLAM3. This i~ denoted by reference numeral 46 in FIG. lB.
A complete characterization of the personal computer environment which processes use]~ data ]0 therefore must include an indication of the type of machine which processes the data, representation of machine-level information such as the data types whi cll exis~ in the machine, and 233~aa information showing in what form the data exists in the machine. In the example of FIG. lA, the data types are integers, floating point numbers, and character strings. In the personal computer, integers are represented in low to high sequence, characters are in ASCII, and floating point is IEEE low to high. All of this information is represented in the invention by a machine-level representation descriptor. In FIG. lB, the machine-level representation descriptor for the personal computer machine is indicated by reference numeral 44.
The context for conversion also requires information describing characteristics of the language in which the DBMS
sending the information is written. In this description it is assumed that all of the DBMS sites are written in one or another version of an SQL-based language. In order to accommodate non-identical representations of control information produced by these varying versions, a system-level language characteristic descriptor must be available to the converting machine in order to convert the language-specific portions of the user data. In FIG. lA, the language-specific portions are the communication areas.
In order to provide this system-level information about the language characteristics, the converting machine is provided a system-level information unit descriptor. In FIG. lB, the system-level descriptor for the personal computer language environment is indicated by reference numeral 45.
The context is completed by the provision of application ]evel information specific to the user data being transferred. This information is given in the form of an application ]evel user data descriptor. For the personal computer machine environment, this descriptor is indicated by reference numeral 47. The application level descriptor includes a control block for conveying information between cooperating DBMSs. This descriptor is in the form of a prefix appendQd to the user data which is sent to the receiver. This prefix contaills information setting forth the machine and system-level characteristics of the transferred data. The system-level information provides a reference to the system-level information in the system-level descriptor corresponding to the language vQrsioll of the serving system. as well as a reference to the ~' ' L

SA9-89-096 10 2034~a~

machine-level information in the machine-level descriptor representing the serving machine. In FIG. lB, reference numeral 47a represents the system-level reference made in the application level descriptor 47, while reference numeral 47b indicates the machine-level reference made in the descriptor. As FIG. lB illustrates, reference is also made by the system-level descriptor to the machine-level descriptor. In FIG. lB, the reference numeral 45a represents the machine-level reference made in the descriptor 45.
It should be evident that a user data context can be conveyed in whole each time user data is sent to a receiver by appending machine, system, and application level descriptors to the data. Appropriately, this would be employed in an asynchronous communication environment. In a synchronous communication environment, context could be completely conveyed by trans~er of machine and system-level descriptors initially, followed by transmission of application level descriptors and binding of the received application level descriptors to the machine and system descriptors at the receiver s site. In either case, the machine and system-level descriptors would have to be transferred, in whole, at least once between the sites.
This transfer is not required in this invention.
Thus, in FIG. lB, assuming that the mainframe machine is sending data, its machine-level and system-level descriptors 54 and 55 must be made available to the requesting personal computer machine 40 and linked to application level descriptors 57 in order to convert the user data of FIG. lA from the representation 20 to the representation 10. Relatedly, the descriptors 54, 55 and 57 must be made available to the machine 40. Similarly, for data transferred in the opposite direction, that is, from the personal computer machine 40 to the mainframe machine 50, the descriptors 44, 45 and 47 uould have to be made available to the mainframe machine 50 in order to convert user data 10 into the form of user data 20 in FIG. lA.
In the practice of this invention, it is asserted that, during the implementation of each DBMS site which participates in a distributed, heterogeneous database system, a decision is made as to which specific machine - ~--tS$A, ....

~ SA9-89-096 11 2 0 3 ~

representations will be supported at the site. It is asserted that the "native" representation of the machine on which the site s DBMS will run is supported. That is, if ~ data from another DBMS identica] to the receiving site s ~ DBMS is received, the representation is "native" and requires no conversion. Additionally, other machine types will be supported as partners. Generally, the "non-native"
representations of data types will be converted to "native"
ones at the receiving site before processing. In the preferred embodiment, at each site, there is maintained a list of acceptable machine partner types at each site.
Thus, at the site of the personal computer machine 40, a list of acceptable machine types includes the machine and code page corresponding to identifiers 51 and 52 in the machine 50. The list indexes to a set of descriptors which include the machine-level and system-level descriptors for all acceptable system partners. Thus, if the personal computer machine 40 receives simply identification of the machine and language present at the site 50, these identifications can be brought to the list which will index to the necessary descrip-tors in the list of descriptors, the indexed descriptors corresponding to the descriptors 54 and 55.
Therefore, when the personal computer 40 generates a request for data from the DBMS runIIing on the machine 50, the receiver machine 40 sends its machine, codepage, and system-level name (PS/2, 437, SQLAM3) to the sys-tem to which connection is desired, in this case, the machine 50. If the machine 50 finds these names unacceptable (not in its list) then an error is returned to the receiver and the connection is broken. If the names are acceptable to the machine 50, the machine 50 assumes the status of server and completes connection by sending its machine and system-level names to the receiving machine 40. If these names are acceptable to the receiver, then the connection is established. Otherwise the connection is broken.
~ aving established the connection, the receiver sends a data request to the provider/server machine 50. The provider/server construc-ts a user data descriptor 57 according to the characteristics of the data requested, in this case according to the characteristics of user data 20 SA9-89-096 12 2~3~90~

in FIG. lA. In this case, the descriptor is built to reflect the presence of the SO~L communication area 21 and the five user data fields 22, 23, 24, 25, and 26. The provider/server machine 50 then sends the descriptor 57 and the user data 20 to the receiver machine 40.
Upon receipt, the receiver uses the descriptors obtained in response to the machine and system-level identifier sent by the machine 50 and the references contained in the application level descriptor 57 to convert the user data 20 from the server s representations to the receiver s representations for subsequent processing.
It should be appreciated that the identifiers exchanged between the machine and the user data descriptor must be in a canonical form which is understood by both systems. In the preferred embodiment, this form is defined by a particular code page in EBCDIC. With this common basis for understanding, each site in the distributed system will recognize and correctly interpret the identifiers and user data descriptors of any other site.
Refer now to FIGS. 2A-2D for an understanding of the structure and contents of machine-level representation descriptors according to the invention. The descriptors for four machine types are illustrated. The descriptor 60 represents a machine exemplified by an IBM PS/2 executing a DBMS which uses code page 437 for character coding. The descriptor 70 characterizes a mainframe machine of the System/370 type whose DBMS uses code page 037. The descriptor 80 is for an A~/~00 machine using code page 037.
The descriptor 90 is for an hypothetical machine called OTHER using code page 850 for character encoding. The descriptors in these figures represent the machines in very simplified terms. The representations correspond to generic data types which are recognized and used by all database sites in a distributed system. In the figures, the data types are INTEGER for integer numbers, FLOAT for floating point numbers, and CHARACTER for non-numeric information, such as letters of an alphabet. Each generic data type is also described in terms of a format which is particular to the machine --hose descriptor is illustrated.
The machine-level descriptors of FIGS. 2A-2D are shown as multi-field data objec~s, with the fields containing SA9-89-096 13 203~0~

information relating to a generic data type or a data type format. Thus, detailed specifications of the INTEGER data type are contained in multi-field sections 62, 72, 82, and 92 of the machine-level descriptors. Detailed specifications of the representation of floating point numbers for these machines are contained in sections 64, 74, 84, and 94 of the descriptors. Character representations specifications are contained in sections 66, 76, 86, and 96 of the descriptors.
In the illustrated descriptors, each generic data type is identified initially by a marker definition (MD). For integers, the markers are in fields 67, 77, 87, and 97 of the descriptors. The markers for each generic type are identical in each machine descriptor set. They identify unambiguously the generic type of the representation which follows. Each MD is followed a type definition (TD). The type definition shows exactly, to the bit, how the data is represented in the machine identified by the descriptor.
Taking integers as an example, the four TDs shown have three different bit representations. Two machines represent, in fields 88 and 78, that integers are binary values with the bytes ordered from high to low significance. One machine uses binary values, but reverses the order of the bytes, storing the low order byte first, as indicated in field 68 of the descriptor 60. The machine represented by the descriptor 90 represents integers in decimal digits in a packed format as indicated by field 98. The TDs shown are not all the same. However, the TDs which are the same mean exactly the same thing and are represented in exactly the same way among the descriptors. Thus, for example, integer high-to-low in fields 78 and 88 of descriptors 70 and 80 is exactly one representation.
In the invention, the MD-TD pairs can each represent a family of types. Integers of length l, 2, 3, 4 ... bytes all can share the same descriptor. Similarly, for cllaracters the actual code page to be associated with the type is a separate parameter. The code page specified in the TDs 69, 79, 89, 99 is a default which can be overridden.
This is explained below with reference to FIGS. 3A and 3B.
The sig~i'icance of a TD is not limited to association with a single generic data type. Thus, the same TD may be SA9-89-096 14 2~3~0~

used as the representation for several different generic data types or MDs. For example, if there were a generic type called WEIGHT, it could be represented by floating point or integer numbers. It may be the case that different machines would support it differently. Such variation is supported fully by this invention. Thus, a generic data type is named specifically by the MD; how the data type is represented is specified by the TD.
One additional feature that will be evident to the ordinarily skilled practitioner is that the order of the generic type specifications (MD-TD pairs) is not important to the significance of the machine-level descriptors. The meaning set by the MD is used to establish linkage to an appropriate TD from a higher level descriptor, such as a system-level descriptor.
FIGS. 3A and 3B illustrate the structure and contents of system-level descriptors and how those descriptors are referenced to machine-level descriptors. In FIGS. 3A and 3B, the system-level descriptors illustrate two different levels of language support. In this regard, the descriptor 100 of FIG. 3A is for a ~evel called SQLAM3 while the descriptor 120 of FIG. 3B is for a level called SQLAM4.
The system-level descriptor for an SQL information block which includes status of the SQL calls, the SQLCA, consists of markers (MDs), grouping descriptors (GDs), and row descriptors (RDs). Consider now the two system-level descriptors 100 and 120. In these descriptors, the first markers, 102 and 122, respectively, identify groups of fields which are to be included in the SQL communication a~ea. These markers give generic meaning to the group of fields which follows, and are the same at all levels of DBMS
implementation. In each descriptor, the group marker is identified as S~LCAGRP.
In the system-level descriptors, the group markers are followed by grouping descriptors (GD) 104 and 124, which indicate exactly which fields should be included in the SQL
communication areas for user data.
A grouping descriptor has the property that members of its described group are ordered but not yet arrayed into a linear vector OL fields.

SA9-89-096 15 203~9~

Another property of grouping descriptors can be appreciated with reference to FIG. 3A where the grouping descriptor 104 includes machine-level references, in this case, Integer-4 and Character-80. These members of the indicated group are references to data types identified by marker definitions in machine-level descriptors. As FIG. 3A
shows, these references provide reference directly to the integer and character MDs of the machine-level descriptor 60 (which is identical with the descriptor of FIG. 2A). The references are indicated by bindinys 112 and 11~. In the invention, the value specified in a reference is used to override the default length built into the machine descriptor. Thus, reference 114 in FIG. 3A overrides the machine length of its respective integer representation in the machine-level descriptor 60 to four bytes. In FIG. 3B, references 133 and 134 also override the machine length to four bytes for integers.
In FIG. 3B, the system-level descriptor 120 denotes one more field in the SQL communication area than the previous system-level descriptor 100 for SQLAM3. One more value therefore is returned to status in a CA of user data at this higher level. It is contemplated in the practice of the invention that, during connection processing, both the requesting and receiving DBMS tells the other what to expect. Preferably, the systems agree to operate at the same system descriptor level, and agree to the lower one.
The group description, 104 in FIG. 3A and 124 in FIG. 3B, is followed by another marker, 106 in FIG. 3A and 126 in FIG. 3B. These markers indicate that a row description for an S~L communication area is following. In each case, the row descriptor references the group described earlier, 110 in FIG. 3A and 130 in FIG. 3B. This vectorize~
all of the fields and completes the definition of information which can be exchanged. In this row form, the S~L communication area can be exchanged on commands which do not involve user data, but which do involve system status information.
The row descriptors 108 and 128 are identical in both levels; they refer to groups which contain differing information (104 and 124), which, in turn, reference different machine descriptors 60 and 70. The row ~' ~

20~49~

descriptors therefore make an actual block dependent on a language level or version, and make the block specific with regard to an identified machine, as well.
The system-level descriptor blocks illustrated in FIGS. 3A and 3B of either level can map onto any of the machine descriptors, independent of the order of the descriptors in the machine. The reference is to the MD
entries in the machine descriptors. The generic type of field in the SQL communication area is linked to the representation of that generic type in the machine-level descriptor. As thus descri~ed, a system-level descriptor can provide a machine-independent way to specify the contents of blocks of information to be exchanged between DBMSs. They provide both group descriptions (which will be used by higher-level descriptors) and row descriptors which describe complete objects which may be exchanged. The row descriptors included in the system-level descriptor can be referenced by another row descriptor to produce an array.
This is illustrated and discussed below with reference to FIG. 4. The system-le~el descriptors are established early in the implementation of a DBMS and assembled into a set.
The set required for any level of implementation can be given a name which any other implementation will understand.
In this regard, the name of the system-level descriptor 100 in FIG. 3A is "SQLAM3". In FIG. 3B, the name of the descriptor 120 is "S~LAM4". In the practice of the invention, it is these names alone which are exchanged when a communication connection is made, thereby obviating the need to exchaIIge the descriptors themselves.
Refer now to FIG. 4 for an understanding of the structure and content of a user data descriptor and how its linkages with machine- and system-level descriptors provide a complete context which enables a receiver DBMS to understand and convert user data from non-native to native form. The user data descriptor 200 provides a system-level a~d machine-level-independent way to describe user data. It is contemplated that this descriptor would not be built until run time, since, particulars of user data aren't known until after installation of a DBMS and creation and population of the relational tables in the DBMS, and until receipt of a particular request for data.

~.~3~$~

The user data de.scriptor 200, like the system- and machine-level descriptors discussed previously, consists of markers and other descriptors. A first marker MD 211 tags a group 212 consisting of an SQL communication area reference 213 to the system-level descriptor lO0, and five references 213, 214, 215, 216, and 218 to the machine-level descriptor 70. These six references correspond to the six fields which make up a respective row of user data 20, which is reproduced for convenience in FIG. 4B. Thus, the group 212 identifies the fields within a row of the user data, field by field, tells what generic type of data is in each field, and specifies the si~e of the data. For example, the group 212 has a first reference S~LCAGRP-0 which indicates that the first field in a row of user data will consist of an SQL
communication area. As shown in FIG. 4B, a communication area "CA" is in the first field 21 of each row of the user data 20. Similarly, the second field, field 22, in a user data row is a two-byte integer, the third field, field 23 is a three-byte character, the fourth field, field 24 is a two-byte integer, the fifth field, field 25 is a three-byte character, while the last field, field 26 is a four-byte floating point number.
The six references, 213, 214, 215, 216, 218, and 220 result in a group with seven fields, two from the system-level descriptor (Integer-4 and Character-80) and five from the user data. All of these references are independent of a particula]~ language level and a specific machine. It is true that -the described data i 5 very much dependent on these descriptive levels, but the key of this invention is that the description of the data is not.
Returning to the explanation of the user data descriptor 200 in FIG. 4A, the next MD marker 224 tags a RD
row descriptor with a reference 226 to the marker 211. This reference is used to define a row of elements in the row of user data. As explained above, such a row would include seven fields, the two fields of the SQL communication area followed by the five user data fields, in order. This completely enumerates the fields for one object which can be exchanged between heterogeneous DBMSs. It includes information in the communication area as to the status related to the request which fetched the data, along with Q ~ 5 SA9-89-096 ~

the data. MD 2~4 i.~. followecl by an RD ~32 with a modifier "l", which indica-tes that one copy of each element of the defined group should be included itl the final row.
The fina] MD 228 tags an RD 234 with a reference 230 to the row descriptor 23~. This clescriptor is used to make an array or table of the set of rows comprising the user data 20 of FIG. 4B. The modifier "0" in the RD 234 indicates that the referenced row should be repeated as many times as necessary to include all the data which ~ollows. This is of significant importance in querie.s since it is seldom possible to predict tlle fina] n11mber of rows in an answer set before sending t~l1e first 011-' (and the user data descriptor) to the receiver.
In sum1nary, the 11ser ~1ata descLiptol- provides a mode of describing data w11ich is inc1epet1de1lt of the system-level and machine-level artifacts ill the described data. The data described includes ~BMS stat11s info~mation and the user data proper. The usel da~a c1escr;ptor thus accommodates the definition of any data which a user can retrieve from (or send to) a DBMS. ~hen the user data descriptor is bound to both a system-level descriptor and a machine-level descriptor, actual data can be u1ldel-stood ;n physical terms.
Thus, the reference.s (bi1ldings~ to the machine-level descriptor 70 and system-]evel descriptor 100 gi.ve physical meaning to the referenci1lg members of the group 212. It is asserted that these references can be implemented conventionally by sta1lda1-d binc1i1lc3 tech1liques.
FIG. 5 illustrates ~ procedure for establishing a convel-sioll conte~.t usi1lg the data objects whose structures and functions have been described above. The procedure includes generic comma1lds for requesting and completing a communication connectio1l and for requesting and providing data. The procedure of FIG. 5 is illustrated as a simplified sequence which shows only the parameters which must, of necessity, be exchanged for transferring user data to a re~uesting from a sending machine and establishing translation contexts in the machines for conversion of the data. It is reiterated that the procedure of the invention is not concerned with how data is converted, but rather with where the data is co1l~erted. Particularly, the invention ; ~

~ 9 ~ 4 ~ ~ 5 SA9-89-096 1.9 enables the recei~er of the dat;a to ~onvert the data for establislling pa~ticllLar values for those parameters.
The .struct~.lre Or EIG. 5 places all of the requesting machine actions i~ e left-i)anc] side of the drawing and all of the sending machille actions in the right-hand side.
Thus, the requesti.llg machirle first receives a user request for data which ifi maintai.~led by a DBMS in the sending machine. Next, tl~e requesting machine executes a REQUEST-CONNECTION commalld sequence directed to the sending machine. Tlle REQUE,ST-CO~NECTION sequence includes parameters to i~1ellti~y the requesting mac.hine, its character code, a.nd its lal1~uage ]evel. In the example, the requesting mac}l~ e i.s identi.fi.ed as a DBMS executing on a PS/2 personal computel, ut-ilizi.ng a specific code page (437) for character codi tlC~, anc3 operatinc~ at a specific DBMS
language level (SOL~M3) Tlle parameters in the REQUEST-CONNECTION step are no more than identifiers. Next, in step 250 the sendillg mac.hine reCei~Jes the connection request, validates the machine- and system-level identifiers, and uses these identifications to index to machine- and system-level de~criptors. Assuming that the sending machille recogni7.es and possesses the machine- and system-le~.~el descri.ptol:s 'identified in the connection request, it exec~ltes a COMPLETE-CONNECTION s-tep including parameters which pl-ovide machine- and system-level identification to the req~estillg maclline In step 252, the COMPLETE-CONNECTIOr~ respollse recei.ved from the sending machine is validated :ill the requestillg machlne and the identifiers are used to index the appropriate the machine-and system-leve] descriptors Yor examp].e, in the example of FIG. 5, the reques~ y machille would index to the machine and system descriptors 70 and 100 illustrated in FIG. 2B, 3B, and 4A Next, in step 254, the re~uesting machine assembles a data request alld sends it as a REQUEST-DATA
command to the sending machirle In step 256, the sending machine responds to tlle RE~UEST-DATA command by obtaining the requested data and huilding a user-data descriptor such as the descriptor 200 il]ustrated in FIG. 4A, and executes a PROVIDE-DATA command hy selldillg the user-data descriptor and the user data afi, for example, the first row in the user data 20 in FIGS. ]B alld 4B The requestillg machine then, in SA9-89-096 20 2 03 ~

step 258, receives the transmitted descriptor and user data and calls a conversion process to convert the data.
According to the needs of a particular implementation, the bindings between the user data descriptor and the indexed machine and system descriptors can be done in step 258 or left for the called conversion process. In ~IG. 5 a second REQUEST-DATA command is sent, and its parameters are processed, with the server, in step 260, obtaining the data.
The remaining user data is returned with another PROVIDE-DATA command having as its parameters the user data.
The requesting machine again processes the data according to the user data descriptor received in step 258 and to the system level, machine type, and code page values received during the connection portion of the process. Now if the receiver requires more data, it issues another REQUEST-DATA
command, with the server returning the data with another PROVIDE-DATA command, and so on.
An architecture for implementing the procedure of FIG. 5 is illustrated in FIG. 6. In FIG. 6, the re~uesting machine is assumed to be, as set out above, a PS/2 personal computer, while the server is assumed to be a mainframe of a System/370 type. The receiver is identified by reference numeral 280, the server by 282. It is asserted that the receiver 280 is conventionally structured with a CPU, storage, a communications adapter for communicating with the sending machine 282, and a user interface for receiving commands from and providin~ responses to a user. In the storage resides an application program 300, a relational DBMS of the S~I, type wllich includes an SO~L application manager 306 and a communications agent 310. In addition, two dictionaries, 342 and 346, are stored which include machine descriptors (dictionary 342) and system-level descriptors (dictionary 346).
The sending machine 282 can comprise a conventionally-programmed System/370 mainframe computer with an SQL-type DBMS 334. An S~L application manager 318 interfaces a communication agent 314 with the DBMS 334. Two dictionaries 322 and 326 are provided for storing system-level descriptors (dictionary 322) and machine-level descriptors ~dictionary 326).

SA9-89-096 21 2~3~9~

The process of FIG. 5 is initiated when the application program 300 issues a database management re~uest. For example, the request can be an SQL statement OPEN. This request results in a call 304 to the application manager 306. The receiver's application manager 306 first has to establish a connection with the desired database management system. This is accomplished by constructing a REQUEST-CONNECTION command in accordance with FIG. 5, with parameter values which describe itself (machine and code page designations) and the level of DBMS services desired (in this case, SQLAM3), as well as parameters (not shown) which identify the sending DBMS. This command is passed at 308 to the communications agent 310 which is responsible for establishing the communication link with the identified sending machine. The REQUEST-CONNECTION command is sent over a conventional communications link 312 to the communications agent 314 responsible for the other end of the communication channel. The agent 314 examines the DBMS
parameter (FIG. 5) to determine which level of server SQL
application manager to invoke. Once the determination and invocation is completed, the agent 314 forwards at 316 the request to the invoked S,OL application manager 318. The manager 318 accesses at 320 the DBMS level dictionary 322 to obtain a descriptor which matches the receiver s desired level of function. (In the preferred implementation, the content of this descriptor is known early in the development cycle and for processing efficiency is "built into" the application manager 318.) Similarly, the manager 318 accesses at 324 the identified machine level descriptor from the dictionary 326. This includes descriptors matching the machine designated in the MACH parameter of the REQUEST-CONNECTION command and a code page identified in the CODE PAG~ parameter.
Having verified that the receiver s environment can be handled, the application manager 318 constructs a COMPLETE-CON~IECTION command as illustrated in FIG. 5. The command states the sending machine's characteristics in the MACH code page parameters and the level of system function which the sending machine will support in the DBMS
parameter. It is contemplated in the invention that the connection steps may repeat in order to support negotiation ~, SA9-89-096 22 203~9Q~

to a different system level than that originally requested.
Next, the COMPLETE-CONNECTION response is returned to the requesting machine 280 by sending it on 328 to the agent 314 which communicates it on the communication link 312 to the receiver agent 310. The receiver agent 310 sends the COMPLETE-CONNECTION command and parameters at 330 to the application manager 306. Il~ a manner similar to the manager 318, the manager 306 accesses the system and machine-level descriptors which describe the server machine and system characteristics from the dictionaries 342 and 346. Having validated that connection has been established, and having obtained the machine- and system-level descriptors at both ends of the connection, processing continues. The receiver s application manager 306 constructs a REQUEST-DATA
command corresponding to the OPEN request from the application program 300. This command is sent to the server's application manager 318 via 308, 310, 312, 314 and 316. The application manager 318 recognizes a "first request" and issues an OPEN command 332 to the local DBMS
334, which returns the status in the form of an SQL
CommUniCatiOIl area 336. Next, the manager 318 issues a request on 332 to determine the format of the answer set.
The format of the answer set is returned on 336 to the server application manager 318 which constructs the user data descriptor for the data. Assuming that data is buffered into the manager 318 and that there is room in the buffer, the server s application manager 318 issues an SQL
FETCH request on 332 to the DBMS 334 which returns a first row of data on 336. (It is assumed that the data to be returned corresponds to the user data 20 in FIGS. lA and 4B.) Next, the server application manager 318 places the data in a reply buffer and issues a PROVIDE-DATA command to send the data to the receiver s application manager 306 via 328, 314, 312, 310, and 330. It is contemplated, but not required, that the server s app]ication manager 318 may read ahead to fill buffers in anticipation of the next REQUEST-DATA command.
Upon receiving data with the first PROVIDE-DATA
command, the receiver s application manager 306 processe~
the user data descriptor to verify correctness and to prepare to convert data subsequently received. Assuming no e ~

SA9-89-096 23 2 8 3 ~ ~ ~ 5 "
errors are found, the application manager 306 then sends the result of the OPEN back to the application program 300 on 338. From now on, the receiver s application manager 306 may, but is not required to, read ahead requesting additional buffers from the server s application manager 318 in anticipation of FETCH requests.
Having successfully opened a Cursor, the application program 300 issues an SQL FETCH which is processed by the receiver s application manager 306. At this time, the receiver s application manager 306 has a row of data to return, and converts the data and returns it on 338 to the application program 300. The application 300 processes the data and SQL communication area received and subsequently issues another FETCH command on 304 to obtain another row of data. The receiver s application manager 306 having no data to satisfy this request sends another REQUEST-DATA command to the server s application manager 318 via 308~ 310~ 312 ~
314~ and 316. The server s application manager 318 having read ahead, has a buffer containing the last two rows of data. These rows are sent with the PROVIDE-DATA command to the receiver s application manager 306 via 328~ 314~ 312 ~
310~ and 330. The application manager 306 then converts the first row of the buffer using the previously constructed conversion descriptors and passes it on 338 to the application 300.
To comp]ete the example, the application 300 issues another S~L FETCH request on 304 to request the last row of the answer set. The receiver s application manager 306 converts this last row of data and returns it to the application.
In this example, end-of-query is understood by the application by content of the result achieved. Additional FETCH requests would be required as would an SQL
communication area indicating end-of-query, which would have heen constructed to allow the DBMS 334 to signal this condition to the applicatioll. However, this is beyond the scope of this invention and is not discussed.
A data converter is not illustrated as an element in any of the figures, it being understood, that data format conversion is well-known in the art. For example, U.S.
patent 4~ 559~ 614 of Peek et al., assigned to the Assignee of this application, describes in detail how conversion from a first to a second internal code format is accomplished for data transmitted between two dissimilar computer systems.
To the extent necessary, this pa1ent is incorporated herein by reference.

It will be appreciated that, although specific embodiments of the invention have been described herein for purposes of illustration, various modifications may be made without departing from the spirit and scope of the invention. Accordingly, the scope of protection of this invention is limited only by the following claims and their equivalents.

Claims (28)

The embodiments of the invention in which an exclusive property or privilege is claimed are defined as follows:
1. A combination for establishing a data conversion context at a first computer system which receives data from a second computer system, wherein the second computer system stores and processes data in a format different than the first computer system, the combination comprising:
(a) descriptors in the first computer system defining machine and language characteristics of a plurality of computer systems;
(b) means for obtaining from said descriptors, first and second descriptors which respectively define machine and language characteristics for said second computer system;
(c) means for receiving data from the second computer system; and (d) means for combining the first and second descriptors with data descriptors in the received data which describe characteristics of data native to the second computer system to produce a context for converting the received data to data which is native to the first computer system.
2. A method for use by a user processor in making data requests to a server processor which stores and processes data in a format different than the user processor, comprising the user processor executed steps of:
storing a dictionary of processor descriptors;
creating a communication link to a server processor by:
communicating to the server processor an identifier denoting the user processor; and receiving from the server processor an identifier denoting the server processor;sending a request for data to the server processor in the user processor data format, the request including a descriptor of the user processor data format;
receiving from the server processor data responsive to the request for data, the data being in the server processor data format, and being accompanied by a descriptor of the server processor data format; and using the identifier denoting the server processor and the descriptor of the server processor data format, converting the data to the user processor data format.
3. The method of claim 2, wherein the step of creating a communication link further includes validating the identifier denoting the server processor.
4. The method of claim 2, wherein the identifier denoting the server processor includes identification of a server processor machine descriptor.
5. The method of claim 4, wherein:
the storing step includes storing a plurality of server processor machine descriptors at the user processor;
and the step of converting includes:
obtaining a server processor machine descriptor from the dictionary in response to the identifier denoting the server processor; and in response to the server processor machine descriptor, converting bit representations in the data received from the server processor to bit representations used by the user processor.
6. The method of claim 2, wherein the identifier denoting the server processor includes identification of a computer language descriptor.
7. The method of claim 6, wherein:
the storing step includes storing a plurality of computer language descriptors in the dictionary;
and the step of converting includes:
obtaining a computer language descriptor from the dictionary in response to the identifier denoting the server processor; and in response to the computer language descriptor, converting control fields in the data received from the server processor to control fields of a computer language used by the user processor.
8. The method of claim 2, wherein the identifier denoting the server processor includes identification of a server processor code page.
9. The method of claim 8, wherein:
the storing step includes storing a plurality of server processor code page descriptors in the dictionary;
and, the step of converting includes:
obtaining a server processor code page descriptor from the dictionary in response to the identifier denoting the server processor; and in response to the code page descriptor, converting character representations in the data received from the server processor to character representations used by the user processor.
10. The method of claim 8, wherein:
the storing step includes storing a plurality of server processor code page descriptors in the dictionary;
and, the step of converting includes:
obtaining a code page descriptor from the dictionary in response to the identifier denoting the server processor; and in response to the code page descriptor, converting control function representations in the data received from the server processor to control function representations used by the user processor.
11. A combination for use by a user processor in making data requests to a server processor which stores and processes data in a format different than the user processor, the combination comprising, in the user processor:
means for creating a communication link to a server processor by:
communicating to the server processor an identifier denoting the user processor; and receiving from the server processor an identifier denoting the server processor;a dictionary of server processor descriptors;
means for sending a request for data to the server processor on the communication link in the user processor data format, the request including a descriptor of the user processor data format;
means for receiving from the server processor data responsive to the request for data, the data being in the server processor data format and being accompanied by a descriptor of the server processor data format; and means for converting the data to the user processor data format in response to the identifier denoting the server processor and the descriptor of the server processor data format.
12. The combination of claim 11, wherein the means for creating a communication link is further for validating the identifier denoting the server processor.
13. The combination of claim 11, wherein the identifier denoting the server processor includes identification of a server processor machine descriptor.
14. The combination of claim 13, wherein:
the server processor descriptors include a plurality of server processor machine descriptors;
and, the means for converting includes:
means for obtaining a server processor machine descriptor from the dictionary inresponse to the identifier denoting the server processor; and means for converting bit representations in the data received from the server processor to bit representations used by the user processor in response to the server processor machine descriptor.
15. The combination of claim 11, wherein the identifier denoting the server processor includes identification of a computer language descriptor.
16. The combination of claim 15, wherein:
the server processor descriptors include a plurality of computer language descriptors;
and, the means for converting includes:

means for obtaining a computer language descriptor from the dictionary in response to the identifier denoting the server processor; and means for converting control fields in the data received from the server processor to control fields of a computer language used by the user processor.
17. The combination of claim 11, wherein the identifier denoting the server processor includes identification of a server processor code page.
18. The combination of claim 17, wherein:
the server processor descriptors include a plurality of server processor code page descriptors;
and, the means for converting includes:
means for obtaining a server processor code page descriptor from the dictionary in response to the identifier denoting the server processor; and means for converting character representations in the data received from the server processor to character representations used by the user processor in response to the code page descriptor.
19. The combination of claim 17, wherein:
the server processor descriptors include a plurality of code page descriptors;
and, the means for converting includes:
means for obtaining a code page descriptor from the dictionary in response to the identifier denoting the server processor; and means for converting control function representations in the data received from the server processor to control function representations used by the user processor in response to the code page descriptor.
20. In a system including a first database system for managing a first database including data having a first data format and a second database system for managing a second database including data having a second data format, a method for converting data transmitted between the first and second database systems, the method including the steps of:
storing at the first database system and at the second database system respective sets of machine descriptors describing machine data formats and character code sets, and system descriptors describing system language characteristics;
sending a request for connection from the first database system to the second database system, the request for connection including information identifying a first machine on which the first database system executes, a character code used by the first machine, and a system language used by the first database system;
in response to the request for connection:
validating a first machine descriptor and a first system descriptor stored at the second database system, the first machine descriptor describing a machine data format and a character code used by the first machine and the first system descriptor describing a system language used by the first database system; and sending a connection response from the second database system to the first database system, the connection response including information identifying a second machine on which the second database system executes, a character code used by the second machine, and a system language used by the second database system;
in response to the connection response, validating a second machine descriptor and a second system descriptor stored at the first database system, the second machine descriptor describing a machine data format and character code used by the second machine and the second system descriptor describing a system language used by the second database system;
sending from the first database system to the second database system a database query command containing data in the first data format;
at the second database system, converting the data in the database query command into the second data format using the validated first machine descriptor and first system descriptor;
at the second database system, obtaining resulting data from the second database in response to the database query command and the data in the second data format;
transmitting the resulting data to the first database system without converting the resulting data; and at the first database system, converting the resulting data from the second data format to the first data format using the second machine descriptor and second system descriptor.
21. The method of claim 20, wherein the system further includes a first database system unit connected between the first database system and the second database system, wherein:
the step of sending the database query command includes receiving the database query command at the first database system unit and sending the database query command from the first database system unit to the second database system without converting the data in the database query command into a data format native to the first database system unit.
22. The method of claim 21, wherein the system further includes a second database system unit connected between the first database system and the second database system, wherein:
the step of transmitting the resulting data includes receiving the resulting data at the second database system unit and sending the resulting data from the second database system unit to the first database system without converting the data format of the resulting data at the second database system unit.
23. The method of claim 20, wherein the first database system is a first version of a database management system and the second database system is a second version of the database management system, the first and second versions being non-identical.
24. The method of claim 20, wherein the first database system is for executing on a first digital computer which represents data in a first internal format and the second database system is for executing on a second digital computer which represents data in a second internal format, the first and second internal formats being non-equivalent.
25. In a distributed database system including a plurality of database managers, each database manager for executing in a respective digital computer, a method for minimizing conversion of data transferred between database managers of the plurality of database managers, comprising the steps of:
storing at a first database manager and at a second database manager respective sets of machine descriptors describing machine data formats and character code sets, and system descriptors describing system language characteristics;
sending a request for connection from the first database manager to the second database manager, the request for connection including information identifying a first machine on which the first database manager executes, a character code used by the first machine, and a system language used by the first database manager;
in response to the request for connection:
validating a first machine descriptor and a first system descriptor stored at the second database manager, the first machine descriptor describing a machine data format and a character code used by the first machine and the first system descriptor describing a system language used by the first database manager; and sending a connection response from the second database manager to the first database manager, the connection response including information identifying a second machine on which the second database manager executes, a character code used by the second machine, and a system language used by the second database manager;
in response to the connection response, validating a second machine descriptor and a second system descriptor stored at the first database manager, the second machine descriptor describing a machine data format and character code used by the second machine and the second system descriptor describing a system language used by the second database manager;
sending a database query command containing input data from the first database manager to the second database manager, the input data having a first data format used by the first database manager;
at the second database manager, if the second database manager uses a data format which is non-equivalent to the first data format used by the first database manager, using the validated first machine descriptor and first system descriptor to convert the input data from the first data format into a second data format used by the second database manager, otherwise, leaving the input data in the first data format;

at the second database manager, obtaining resulting data from a database in the data format used by the second database manager;
sending the resulting data in the data format used by the second database manager to the first database manager; and at the first data base manager, if the data format used by the first database manager is not equivalent to the data format used by the second database manager, using the validated second machine descriptor and second system [language] descriptor to convert the resulting data into the first data format used by the first database manager.
26. In a system in which a user database manager controls a first database and a server database manager controls a second database, a method for minimizing the conversion of data communicated between the user and server database managers, the method including the steps of:
storing at the user database manager and at the server database manager respective sets of machine descriptors describing machine data formats and character code sets, and system descriptors describing system language characteristics;
sending a request for connection from the user database manager to the server database manager, the request for connection including information identifying a first machine on which the user database manager executes, a character code used by the first machine, and a system language used by the user database manager;
in response to the request for connection:
validating a first machine descriptor and a first system descriptor stored at the server database manager, the first machine descriptor describing a machine data format and a character code used by the first machine and the first system descriptor describing a system language used by the user database manager; and sending a connection response from the server database manager to the user database manager, the connection response including information identifying a second machine on which the server database manager executes, a character code used by the second machine, and a system language used by the server database manager;
in response to the connection response, validating a second machine descriptor and a second system descriptor stored at the user database manager, the second machine descriptor describing a machine data format and character code used by the second machine and the second system descriptor describing a system language used by the server database manager;
sending from the user database manager to the server database manager a command containing input data, the input data having a data format native to the user database manager;
at the server database manager, converting the input data from the data format native to the user database manager into a data format native to the server database manager using the validated first machine descriptor and first system descriptor;
at the server database manager, executing the command by processing the input data after converting the input data;
in response to executing the command, obtaining resulting data from the second database, the resulting data having the data format native to the server database manager;
sending the resulting data in the data format native to the server database manager to the user database manager; and at the user data base manager, converting the resulting data from the data format native to the server database manager into the format native to the user database manager using the validated second machine descriptor and second system descriptor.
27. In a system including a processor system for processing data having a first data format and a database system for managing a database including data having a second data format, a combination for converting data transmitted between the processor system and the database system, the combination including:
processor system storage storing a set of machine descriptors describing machine data formats, a character code set, and a set of system descriptors describing system language characteristics;
database system storage storing a set of machine descriptors describing machine data formats, a character code set, and a set of system descriptors describing system language characteristics;
a communications link connecting the processor system and the database system for communication;

means in the processor system for sending a request for connection from the processor system to the database system, the request for connection including information identifying a first machine on which the processor system executes, a character code used by the first machine, and a system language used by the processor system;
means in the database system responsive to the request for connection for validating a first machine descriptor and a first system descriptor stored in the database system storage, the first machine descriptor describing a machine data format and a character code used by the first machine and the first system descriptor describing a system language used by the processor system;
means in the database system for sending a connection response from the database system to the processor system, the connection response including information identifying a second machine on which the database system executes, a character code used by the second machine, and a system language used by the database system;
means in the processor system responsive to the connection response for validating a second machine descriptor and a second system descriptor stored in the processor system storage, the second machine descriptor describing a machine data format and a character code used by the second machine and a second system descriptor describing a system language used by the database system;
means in the processor system responsive to the connection response for sending a database query command containing data in the first data format from the processor system to the database system means in the database system for:
converting the database query command into the second data format using the validated first machine descriptor and first system descriptor;
obtaining resulting data from the database in response to the database query command and the data in the second format; and transmitting the resulting data to the processor system without converting the resulting data;
and means in the processor system for converting the resulting data from the second data format to the first data format using the validated second machine descriptor and second system descriptor
28. The combination of claim 27, further including:

a router machine connected in the communications link between the processor system and the database system, the router machine including:
means for receiving the database query command;
means for determining that no conversion of the data in the database query command is necessary at the router machine; and means for sending the database query command to the database system without converting the data in the database query command.
CA002034905A 1990-03-27 1991-01-24 Method and apparatus for enabling data transfer between heterogeneous database systems Expired - Lifetime CA2034905C (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US50003190A 1990-03-27 1990-03-27
US500,031 1990-03-27

Publications (2)

Publication Number Publication Date
CA2034905A1 CA2034905A1 (en) 1991-09-28
CA2034905C true CA2034905C (en) 1998-09-22

Family

ID=23987748

Family Applications (1)

Application Number Title Priority Date Filing Date
CA002034905A Expired - Lifetime CA2034905C (en) 1990-03-27 1991-01-24 Method and apparatus for enabling data transfer between heterogeneous database systems

Country Status (9)

Country Link
US (2) US5416917A (en)
EP (1) EP0449494B1 (en)
JP (1) JP2680201B2 (en)
KR (1) KR960016882B1 (en)
BR (1) BR9101161A (en)
CA (1) CA2034905C (en)
DE (1) DE69131543T2 (en)
ES (1) ES2135387T3 (en)
TW (1) TW226047B (en)

Families Citing this family (201)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5873088A (en) * 1990-08-31 1999-02-16 Fujitsu Limited Derived data base processing system enabling one program to access a plurality of data basis
JPH0619771A (en) * 1992-04-20 1994-01-28 Internatl Business Mach Corp <Ibm> File management system of shared file by different kinds of clients
CA2098461A1 (en) * 1992-06-17 1993-12-18 Antony S. Williams Method and system for registering data formats for objects
US6965869B1 (en) * 1993-04-09 2005-11-15 Fujitsu Limited Service point management system for use in sales promotion services
US20070038540A1 (en) * 1993-04-09 2007-02-15 Fujitsu Limited Service point management system for use in sales promotion services
JP3261201B2 (en) * 1993-04-09 2002-02-25 富士通株式会社 Point management system
US5680618A (en) * 1993-05-26 1997-10-21 Borland International, Inc. Driver query and substitution for format independent native data access
US5493671A (en) * 1993-06-04 1996-02-20 Marcam Corporation Method and apparatus for conversion of database data into a different format on a field by field basis using a table of conversion procedures
JP3670303B2 (en) * 1993-09-01 2005-07-13 富士通株式会社 Data conversion method and data conversion apparatus
US6012072A (en) * 1993-09-17 2000-01-04 Digital Equipment Corporation Display apparatus for the display of documents in a three-dimensional workspace
US5600833A (en) * 1993-09-17 1997-02-04 Digital Equipment Corp. Attribute portion based document retrieval system with system query language interface
US5619682A (en) * 1993-09-28 1997-04-08 Bull Hn Information Systems Inc. Executing network layered communications of a first system on a second system using a communication bridge transparent to the different communication layers
US5721904A (en) * 1993-12-20 1998-02-24 Hitachi, Ltd. Database access system and method of controlling access management to a database access system for a plurality of heterogeneous database servers using SQL
US5909570A (en) * 1993-12-28 1999-06-01 Webber; David R. R. Template mapping system for data translation
US5781743A (en) * 1994-02-18 1998-07-14 Hitachi, Ltd. System and method for distributed data processing using different server system specifications
US6141663A (en) * 1994-03-18 2000-10-31 Unimax Systems Corporation Automatic external data synchronization method
US5555498A (en) * 1994-03-18 1996-09-10 Chrysler Corporation Circuit and method for interfacing vehicle controller and diagnostic test instrument
GB2302239B (en) * 1994-04-01 1999-01-06 Ericsson Telefon Ab L M Mobility in telecommunication networks
US5794053A (en) * 1994-05-18 1998-08-11 Bell Communications Research, Inc. Method and system for dynamic interface contract creation
US6381595B1 (en) * 1994-09-29 2002-04-30 International Business Machines Corporation System and method for compensation of functional differences between heterogeneous database management systems
US5764949A (en) * 1994-09-29 1998-06-09 International Business Machines Corporation Query pass through in a heterogeneous, distributed database environment
JP2816313B2 (en) * 1994-11-14 1998-10-27 富士重工業株式会社 Fault diagnosis device
JP3042341B2 (en) * 1994-11-30 2000-05-15 日本電気株式会社 Local I / O Control Method for Cluster-Coupled Multiprocessor System
EP1463264A3 (en) * 1994-12-01 2005-11-23 Sharp Kabushiki Kaisha Communication equipment
US5715397A (en) * 1994-12-02 1998-02-03 Autoentry Online, Inc. System and method for data transfer and processing having intelligent selection of processing routing and advanced routing features
US5608874A (en) * 1994-12-02 1997-03-04 Autoentry Online, Inc. System and method for automatic data file format translation and transmission having advanced features
US5701461A (en) * 1995-01-27 1997-12-23 Microsoft Corporation Method and system for accessing a remote database using pass-through queries
US5819264A (en) * 1995-04-03 1998-10-06 Dtl Data Technologies Ltd. Associative search method with navigation for heterogeneous databases including an integration mechanism configured to combine schema-free data models such as a hyperbase
US5740421A (en) * 1995-04-03 1998-04-14 Dtl Data Technologies Ltd. Associative search method for heterogeneous databases with an integration mechanism configured to combine schema-free data models such as a hyperbase
FI100497B (en) * 1995-04-13 1997-12-15 Nokia Telecommunications Oy Adaptive interface
GB2293036B (en) * 1995-09-08 1996-09-04 Omnimedia Plc System for providing information in compatible formats
DE19535306A1 (en) * 1995-09-22 1997-03-27 Siemens Ag Process for converting different data formats
DE19536649A1 (en) * 1995-09-30 1997-04-03 Sel Alcatel Ag Method for coupling data processing units, method for controlling a switching center, data processing unit, controller and switching center
US5838750A (en) * 1995-10-31 1998-11-17 Otis Elevator Company Binary data electronic communication system
WO1997019415A2 (en) * 1995-11-07 1997-05-29 Cadis, Inc. Search engine for remote object oriented database management system
US6122642A (en) * 1996-01-18 2000-09-19 Sabre Inc. System for propagating, retrieving and using transaction processing facility airline computerized reservation system data on a relational database processing platform
US6714945B1 (en) 1995-11-17 2004-03-30 Sabre Inc. System, method, and article of manufacture for propagating transaction processing facility based data and for providing the propagated data to a variety of clients
US5754844A (en) * 1995-12-14 1998-05-19 Sun Microsystems, Inc. Method and system for accessing chunks of data using matching of an access tab and hashing code to generate a suggested storage location
NL1001955C2 (en) * 1995-12-21 1997-06-24 Bernard Munnik Method for communicating data between differently structured data files.
US6631382B1 (en) 1996-01-02 2003-10-07 Timeline, Inc. Data retrieval method and apparatus with multiple source capability
US6625617B2 (en) 1996-01-02 2003-09-23 Timeline, Inc. Modularized data retrieval method and apparatus with multiple source capability
US5878419A (en) * 1996-01-19 1999-03-02 Novell, Inc. Method for creating a relational description of a formatted transaction
SE509645C2 (en) * 1996-02-08 1999-02-15 Ericsson Telefon Ab L M A method for simultaneously verifying converted data simultaneously with protocol-based function change in a database
EP0890154A1 (en) * 1996-03-25 1999-01-13 Rolf Wadewitz Data-conversion method
US6003007A (en) * 1996-03-28 1999-12-14 Dirienzo; Andrew L. Attachment integrated claims system and operating method therefor
US9619841B2 (en) 1996-03-28 2017-04-11 Integrated Claims Systems, Llc Systems to assist in the creation, transmission, and processing of health insurance claims
US5913214A (en) 1996-05-30 1999-06-15 Massachusetts Inst Technology Data extraction from world wide web pages
US5953716A (en) * 1996-05-30 1999-09-14 Massachusetts Inst Technology Querying heterogeneous data sources distributed over a network using context interchange
US5884310A (en) * 1996-06-14 1999-03-16 Electronic Data Systems Corporation Distributed data integration method and system
US5768589A (en) * 1996-07-12 1998-06-16 Oracle Corporation Method and apparatus for executing stored procedures in a foreign database management system
US5857194A (en) * 1996-11-07 1999-01-05 General Electric Company Automatic transmission of legacy system data
US5835908A (en) * 1996-11-19 1998-11-10 Microsoft Corporation Processing multiple database transactions in the same process to reduce process overhead and redundant retrieval from database servers
EP0958537A1 (en) * 1997-02-07 1999-11-24 Newframe Corporation Ltd. Method of sharing data in a heterogeneous computer system and computer system with data sharing
US7046682B2 (en) * 1997-02-12 2006-05-16 Elster Electricity, Llc. Network-enabled, extensible metering system
US6240186B1 (en) 1997-03-31 2001-05-29 Sun Microsystems, Inc. Simultaneous bi-directional translation and sending of EDI service order data
US6240441B1 (en) 1997-03-31 2001-05-29 Sun Microsystems, Inc. Secure event-driven EDI transaction processing using the internet
US6724896B1 (en) * 1997-03-31 2004-04-20 Sun Microsystems, Inc. Event-driven servers for data extraction and merge for EDI transaction processing using the internet
KR100204917B1 (en) * 1997-05-17 1999-06-15 윤종용 Method for updating in a database of a hlr system in digital mobile telecom
US6226649B1 (en) 1997-06-23 2001-05-01 Oracle Corporation Apparatus and method for transparent access of foreign databases in a heterogeneous database system
US6049800A (en) * 1997-06-23 2000-04-11 Oracle Corporation Mechanism and method for performing callbacks
US5987463A (en) * 1997-06-23 1999-11-16 Oracle Corporation Apparatus and method for calling external routines in a database system
US6236997B1 (en) 1997-06-23 2001-05-22 Oracle Corporation Apparatus and method for accessing foreign databases in a heterogeneous database system
US6041344A (en) * 1997-06-23 2000-03-21 Oracle Corporation Apparatus and method for passing statements to foreign databases by using a virtual package
US6016499A (en) * 1997-07-21 2000-01-18 Novell, Inc. System and method for accessing a directory services respository
SE521056C2 (en) * 1997-07-21 2003-09-23 Ericsson Telefon Ab L M Method for implementing schema changes in a database
US5956515A (en) * 1997-07-22 1999-09-21 International Business Machines Corporation Method for managing multiple versions of multiple subsystems in a distributed computing environment
US6055363A (en) * 1997-07-22 2000-04-25 International Business Machines Corporation Managing multiple versions of multiple subsystems in a distributed computing environment
US5995974A (en) 1997-08-27 1999-11-30 Informix Software, Inc. Database server for handling a plurality of user defined routines (UDRs) expressed in a plurality of computer languages
US6009428A (en) * 1997-09-15 1999-12-28 International Business Machines Corporation System and method for providing a single application program interface for heterogeneous databases
US6708189B1 (en) * 1997-09-30 2004-03-16 Desknet, Inc. Computer file transfer system
US6134544A (en) * 1997-11-21 2000-10-17 Telefonaktiebolaget Lm Ericsson (Publ) Query supporting interface between a customer administrative system and database network elements in a telecommunications system
US6009422A (en) * 1997-11-26 1999-12-28 International Business Machines Corporation System and method for query translation/semantic translation using generalized query language
US5940845A (en) * 1997-12-05 1999-08-17 International Business Machines Corporation System for accessing databases with different character sets
US6085266A (en) * 1997-12-12 2000-07-04 Unisys Corporation System for unwrapping a single file from a compact disk for utilization by various computer platforms
US6088747A (en) * 1998-02-20 2000-07-11 Unisys Corp System for reformatting and burning of data files having a first format onto a compact disk to be utilized in a network using different format
US6128628A (en) * 1998-02-27 2000-10-03 Mci Communication Corporation Meta data processing for converting performance data into a generic format
DE19808679C1 (en) * 1998-03-02 1999-07-08 Karl Hehl Conversion of machine settings when transferring tools between incompletely compatible computer-controlled injection molding machines
AU3085799A (en) * 1998-03-12 1999-09-27 Dmw Worldwide, Inc. Operational system for operating on client defined rules
US6029178A (en) * 1998-03-18 2000-02-22 Bmc Software Enterprise data movement system and method which maintains and compares edition levels for consistency of replicated data
US6016501A (en) * 1998-03-18 2000-01-18 Bmc Software Enterprise data movement system and method which performs data load and changed data propagation operations
US6035307A (en) * 1998-03-30 2000-03-07 Bmc Software Enterprise data movement system and method including opportunistic performance of utilities and data move operations for improved efficiency
US6263342B1 (en) 1998-04-01 2001-07-17 International Business Machines Corp. Federated searching of heterogeneous datastores using a federated datastore object
US6272488B1 (en) 1998-04-01 2001-08-07 International Business Machines Corporation Managing results of federated searches across heterogeneous datastores with a federated collection object
US6233586B1 (en) 1998-04-01 2001-05-15 International Business Machines Corp. Federated searching of heterogeneous datastores using a federated query object
US6151608A (en) * 1998-04-07 2000-11-21 Crystallize, Inc. Method and system for migrating data
US6275939B1 (en) 1998-06-25 2001-08-14 Westcorp Software Systems, Inc. System and method for securely accessing a database from a remote location
US6336114B1 (en) 1998-09-03 2002-01-01 Westcorp Software Systems, Inc. System and method for restricting access to a data table within a database
US6385730B2 (en) 1998-09-03 2002-05-07 Fiware, Inc. System and method for restricting unauthorized access to a database
US6530044B1 (en) * 1998-08-31 2003-03-04 Scott A. Beeker System and disassembling test data and method
KR100420254B1 (en) * 1998-09-03 2004-05-31 엘지전자 주식회사 Database Management Method
US6700902B1 (en) 1998-10-19 2004-03-02 Elster Electricity, Llc Method and system for improving wireless data packet delivery
US6381616B1 (en) * 1999-03-24 2002-04-30 Microsoft Corporation System and method for speeding up heterogeneous data access using predicate conversion
US7039639B2 (en) * 1999-03-31 2006-05-02 International Business Machines Corporation Optimization of system performance based on communication relationship
US7058517B1 (en) 1999-06-25 2006-06-06 Genaissance Pharmaceuticals, Inc. Methods for obtaining and using haplotype data
US6944762B1 (en) 1999-09-03 2005-09-13 Harbor Payments Corporation System and method for encrypting data messages
US6674767B1 (en) * 1999-10-04 2004-01-06 Microsoft Corporation Flexible system and method for communicating between a broad range of networks and devices
US6236917B1 (en) 1999-12-21 2001-05-22 Spx Corporation Open architecture diagnostic tool
US7050892B1 (en) 1999-12-21 2006-05-23 Spx Corporation Diagnostic tool security key
US6526340B1 (en) 1999-12-21 2003-02-25 Spx Corporation Multi-vehicle communication interface
US6473765B1 (en) 1999-12-23 2002-10-29 Ncr Corporation Matching/merging two data warehouse physical data models
US6662087B1 (en) 2000-01-03 2003-12-09 Spx Corporation Backward compatible diagnostic tool
JP4010516B2 (en) * 2000-01-27 2007-11-21 株式会社日立製作所 Conversion rule derivation system
US6574637B1 (en) * 2000-02-23 2003-06-03 Orillion International, Inc. Browser oriented method of viewing database structures
US6691309B1 (en) * 2000-02-25 2004-02-10 International Business Machines Corporation Long term archiving of digital information
US6601072B1 (en) * 2000-06-21 2003-07-29 International Business Machines Corporation Method and system for distribution of application data to distributed databases of dissimilar formats
US6931326B1 (en) 2000-06-26 2005-08-16 Genaissance Pharmaceuticals, Inc. Methods for obtaining and using haplotype data
EP1172735A1 (en) * 2000-07-11 2002-01-16 Columbus IT Partner Consulting A/S Database conversion or integration
AU2001272371A1 (en) * 2000-07-11 2002-01-21 Columbus It Partner Consulting A/S Database conversion or integration
US7313588B1 (en) 2000-07-13 2007-12-25 Biap Systems, Inc. Locally executing software agent for retrieving remote content and method for creation and use of the agent
US7152058B2 (en) * 2000-07-13 2006-12-19 Biap Systems, Inc. Apparatus for and method of selectively retrieving information and enabling its subsequent display
US7613790B2 (en) * 2000-07-13 2009-11-03 Biap Systems, Inc. Apparatus for and method of executing customized interactive computing services in a broadband network environment
JP3794252B2 (en) * 2000-07-26 2006-07-05 東芝機械株式会社 Electric injection molding machine and injection control method for electric injection molding machine
US6728722B1 (en) 2000-08-28 2004-04-27 Sun Microsystems, Inc. General data structure for describing logical data spaces
US6865579B1 (en) 2000-08-28 2005-03-08 Sun Microsystems, Inc. Simplified thread control block design
US20020077781A1 (en) * 2000-10-17 2002-06-20 Spx Corporation Data monitoring and display method and apparatus
US7089096B2 (en) * 2000-10-17 2006-08-08 Spx Corporation Apparatus and method for displaying diagnostic values
US6874680B1 (en) 2000-10-17 2005-04-05 Spx Corporation Remote updating method and apparatus
US7620665B1 (en) 2000-11-21 2009-11-17 International Business Machines Corporation Method and system for a generic metadata-based mechanism to migrate relational data between databases
US7853553B2 (en) * 2001-03-26 2010-12-14 Siebel Systems, Inc. Engine for converting data from a source format to a destination format using user defined mappings
US7062551B2 (en) * 2001-05-24 2006-06-13 International Business Machines Corporation Method and apparatus to solve compatibility between heterogeneous web server access logs formats
DE10140519B4 (en) * 2001-08-17 2004-07-22 Daimlerchrysler Ag Communication method and communication module
US6915287B1 (en) 2001-12-13 2005-07-05 Novell, Inc. System, method and computer program product for migrating data from one database to another database
US7139766B2 (en) * 2001-12-17 2006-11-21 Business Objects, S.A. Universal drill-down system for coordinated presentation of items in different databases
US20030158944A1 (en) * 2002-02-19 2003-08-21 International Business Machines Corporation Software control in a business transaction environment
US6912539B1 (en) * 2002-03-29 2005-06-28 Serena Software, Inc. Method and apparatus for verifying converted database commands
US7178153B1 (en) 2002-05-10 2007-02-13 Oracle International Corporation Method and mechanism for implementing an access interface infrastructure
US7119713B2 (en) * 2002-06-27 2006-10-10 Elster Electricity, Llc Dynamic self-configuring metering network
US20040054626A1 (en) * 2002-09-17 2004-03-18 Adn Technologies Device for processing local accounts data with different formats, equipment and a method for treating associated data
US7925246B2 (en) 2002-12-11 2011-04-12 Leader Technologies, Inc. Radio/telephony interoperability system
US8195714B2 (en) 2002-12-11 2012-06-05 Leaper Technologies, Inc. Context instantiated application protocol
US20040117793A1 (en) * 2002-12-17 2004-06-17 Sun Microsystems, Inc. Operating system architecture employing synchronous tasks
US8538840B2 (en) * 2002-12-20 2013-09-17 Siebel Systems, Inc. Financial services data model
US7856454B2 (en) 2002-12-20 2010-12-21 Siebel Systems, Inc. Data model for business relationships
US8392298B2 (en) * 2003-03-04 2013-03-05 Siebel Systems, Inc. Invoice adjustment data object for a common data object format
US8473399B2 (en) * 2003-03-04 2013-06-25 Siebel Systems, Inc. Invoice data object for a common data object format
US7912932B2 (en) * 2003-03-24 2011-03-22 Siebel Systems, Inc. Service request common object
US8510179B2 (en) * 2003-03-24 2013-08-13 Siebel Systems, Inc. Inventory transaction common object
US9704120B2 (en) * 2003-03-24 2017-07-11 Oracle International Corporation Inventory balance common object
EP1606740A4 (en) * 2003-03-24 2007-10-03 Siebel Systems Inc Common common object
US20070208577A1 (en) * 2003-03-24 2007-09-06 Leon Maria T B Position common object
US8489470B2 (en) * 2003-03-24 2013-07-16 Siebel Systems, Inc. Inventory location common object
US7904340B2 (en) * 2003-03-24 2011-03-08 Siebel Systems, Inc. Methods and computer-readable medium for defining a product model
US20070226037A1 (en) * 2003-03-25 2007-09-27 Shailendra Garg Modeling of opportunity data
US7315162B2 (en) * 2004-03-18 2008-01-01 Elster Electricity, Llc Reducing power consumption of electrical meters
US7227350B2 (en) * 2004-03-18 2007-06-05 Elster Electricity, Llc Bias technique for electric utility meter
JP4477928B2 (en) * 2004-04-06 2010-06-09 株式会社エヌ・ティ・ティ・ドコモ Memory mapping control device, information storage control device, data migration method, and data migration program
US20050251812A1 (en) * 2004-04-27 2005-11-10 Convertabase, Inc. Data conversion system, method, and apparatus
US7865390B2 (en) * 2004-05-21 2011-01-04 Siebel Systems, Inc. Modeling of employee performance result data
US8112296B2 (en) * 2004-05-21 2012-02-07 Siebel Systems, Inc. Modeling of job profile data
US7681184B1 (en) 2004-05-24 2010-03-16 Borland Software Corporation System and methodology for cross language type system compatibility
US7702594B2 (en) 2004-09-24 2010-04-20 Elster Electricity, Llc System and method for automated configuration of meters
US7742430B2 (en) 2004-09-24 2010-06-22 Elster Electricity, Llc System for automated management of spontaneous node migration in a distributed fixed wireless network
US7725728B2 (en) * 2005-03-23 2010-05-25 Business Objects Data Integration, Inc. Apparatus and method for dynamically auditing data migration to produce metadata
US7958133B2 (en) * 2005-04-27 2011-06-07 At&T Intellectual Property Ii, L.P. Application conversion of source data
US7761430B2 (en) * 2005-05-12 2010-07-20 Microsoft Corporation Verification of cross domain data system query results
US20060265352A1 (en) * 2005-05-20 2006-11-23 International Business Machines Corporation Methods and apparatus for information integration in accordance with web services
US7747647B2 (en) * 2005-12-30 2010-06-29 Microsoft Corporation Distributing permission information via a metadirectory
FR2899354A1 (en) * 2006-03-28 2007-10-05 St Microelectronics Sa DATA PROCESSING WITH MEMORY DATA TRANSFER.
US7571035B2 (en) * 2006-03-31 2009-08-04 Spx Corporation Simultaneous vehicle protocol communication apparatus and method
US7747569B2 (en) * 2006-09-22 2010-06-29 Raytheon Company Systems, methods, and language for selection and retrieval of information from databases
US8073384B2 (en) 2006-12-14 2011-12-06 Elster Electricity, Llc Optimization of redundancy and throughput in an automated meter data collection system using a wireless network
US20080183766A1 (en) * 2007-01-31 2008-07-31 Weston David W Methods and systems for inductive data transformation
US8320302B2 (en) 2007-04-20 2012-11-27 Elster Electricity, Llc Over the air microcontroller flash memory updates
US8103704B2 (en) * 2007-07-31 2012-01-24 ePrentise, LLC Method for database consolidation and database separation
WO2009082761A1 (en) 2007-12-26 2009-07-02 Elster Electricity, Llc. Optimized data collection in a wireless fixed network metering system
US8525692B2 (en) 2008-06-13 2013-09-03 Elster Solutions, Llc Techniques for limiting demand from an electricity meter with an installed relay
US8498996B2 (en) * 2008-11-03 2013-07-30 Sas Institute Inc. Computer-implemented method and system for handling and transforming database queries in a fourth generation language
US8203463B2 (en) 2009-02-13 2012-06-19 Elster Electricity Llc Wakeup and interrogation of meter-reading devices using licensed narrowband and unlicensed wideband radio communication
US9229998B2 (en) * 2010-05-13 2016-01-05 Appsfreedom, Inc. Method and system for exchanging information between back-end and front-end systems
US10366100B2 (en) 2012-07-26 2019-07-30 Mongodb, Inc. Aggregation framework system architecture and method
US8572031B2 (en) 2010-12-23 2013-10-29 Mongodb, Inc. Method and apparatus for maintaining replica sets
US10346430B2 (en) 2010-12-23 2019-07-09 Mongodb, Inc. System and method for determining consensus within a distributed database
US10997211B2 (en) 2010-12-23 2021-05-04 Mongodb, Inc. Systems and methods for database zone sharding and API integration
US9805108B2 (en) 2010-12-23 2017-10-31 Mongodb, Inc. Large distributed database clustering systems and methods
US11544288B2 (en) 2010-12-23 2023-01-03 Mongodb, Inc. Systems and methods for managing distributed database deployments
US9740762B2 (en) 2011-04-01 2017-08-22 Mongodb, Inc. System and method for optimizing data migration in a partitioned database
US10262050B2 (en) 2015-09-25 2019-04-16 Mongodb, Inc. Distributed database systems and methods with pluggable storage engines
US10713280B2 (en) 2010-12-23 2020-07-14 Mongodb, Inc. Systems and methods for managing distributed database deployments
US8996463B2 (en) 2012-07-26 2015-03-31 Mongodb, Inc. Aggregation framework system architecture and method
US10740353B2 (en) 2010-12-23 2020-08-11 Mongodb, Inc. Systems and methods for managing distributed database deployments
US10614098B2 (en) 2010-12-23 2020-04-07 Mongodb, Inc. System and method for determining consensus within a distributed database
US11615115B2 (en) 2010-12-23 2023-03-28 Mongodb, Inc. Systems and methods for managing distributed database deployments
US10977277B2 (en) 2010-12-23 2021-04-13 Mongodb, Inc. Systems and methods for database zone sharding and API integration
US10698775B2 (en) 2016-05-31 2020-06-30 Mongodb, Inc. Method and apparatus for reading and writing committed data
US9881034B2 (en) 2015-12-15 2018-01-30 Mongodb, Inc. Systems and methods for automating management of distributed databases
US9094304B2 (en) 2012-05-10 2015-07-28 Cognex Corporation Systems and methods for dynamically configuring communication data items
US10872095B2 (en) 2012-07-26 2020-12-22 Mongodb, Inc. Aggregation framework system architecture and method
US11544284B2 (en) 2012-07-26 2023-01-03 Mongodb, Inc. Aggregation framework system architecture and method
US11403317B2 (en) 2012-07-26 2022-08-02 Mongodb, Inc. Aggregation framework system architecture and method
US9411845B2 (en) 2013-06-13 2016-08-09 Sap Se Integration flow database runtime
US10713275B2 (en) 2015-07-02 2020-07-14 Mongodb, Inc. System and method for augmenting consensus election in a distributed database
US10216742B2 (en) * 2015-08-28 2019-02-26 Honeywell International Inc. Converting data sets in a shared communication environment
US10846411B2 (en) 2015-09-25 2020-11-24 Mongodb, Inc. Distributed database systems and methods with encrypted storage engines
US10423626B2 (en) 2015-09-25 2019-09-24 Mongodb, Inc. Systems and methods for data conversion and comparison
US10394822B2 (en) 2015-09-25 2019-08-27 Mongodb, Inc. Systems and methods for data conversion and comparison
US10673623B2 (en) 2015-09-25 2020-06-02 Mongodb, Inc. Systems and methods for hierarchical key management in encrypted distributed databases
US10621050B2 (en) 2016-06-27 2020-04-14 Mongodb, Inc. Method and apparatus for restoring data from snapshots
US10866868B2 (en) 2017-06-20 2020-12-15 Mongodb, Inc. Systems and methods for optimization of database operations
CN112507013B (en) * 2021-02-07 2021-07-02 北京工业大数据创新中心有限公司 Industrial equipment data storage method and device
US11797561B2 (en) 2021-02-11 2023-10-24 International Business Machines Corporation Reducing character set conversion
US11695848B2 (en) * 2021-08-25 2023-07-04 Sap Se Integration and transformation framework

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
UST940012I4 (en) * 1974-06-21 1975-11-04 Rules driven data management process
US4455605A (en) * 1981-07-23 1984-06-19 International Business Machines Corporation Method for establishing variable path group associations and affiliations between "non-static" MP systems and shared devices
US4604710A (en) * 1981-10-09 1986-08-05 International Business Machines Corporation System for converting data processing information to text processing format and vice versa
JPS58169265A (en) * 1982-03-30 1983-10-05 Fujitsu Ltd Data conversion processing system
US4574350A (en) * 1982-05-19 1986-03-04 At&T Bell Laboratories Shared resource locking apparatus
US4648061A (en) * 1982-11-09 1987-03-03 Machines Corporation, A Corporation Of New York Electronic document distribution network with dynamic document interchange protocol generation
SU1111176A1 (en) * 1983-05-05 1984-08-30 Омский политехнический институт Device for transforming languages
US4788657A (en) * 1983-12-27 1988-11-29 American Telephone And Telegraph Company Communication system having reconfigurable data terminals
US4755929A (en) * 1984-09-28 1988-07-05 The Boeing Company Apparatus and method for retrieving data in the form of binary, multiple bit, digital communication words from a system bus
US4677552A (en) * 1984-10-05 1987-06-30 Sibley Jr H C International commodity trade exchange
US4774655A (en) * 1984-10-24 1988-09-27 Telebase Systems, Inc. System for retrieving information from a plurality of remote databases having at least two different languages
US4868866A (en) * 1984-12-28 1989-09-19 Mcgraw-Hill Inc. Broadcast data distribution system
FR2575842B1 (en) * 1985-01-04 1988-04-01 Fms DEVICE FOR COMPUTERIZED PILOTAGE OF AUTOMATED MACHINES
US4714995A (en) * 1985-09-13 1987-12-22 Trw Inc. Computer integration system
US4845658A (en) * 1986-12-01 1989-07-04 Massachusetts Institute Of Technology Information method and apparatus using simplex and duplex communications
FR2612661A1 (en) * 1987-03-20 1988-09-23 Reiga Multiprocessor device for interconnection between computers, programmable logic controllers and peripheral terminals
US5109483A (en) * 1987-06-15 1992-04-28 International Business Machines Corp. Node initiating xid exchanges over an activated link including an exchange of sets of binding signals between nodes for establishing sessions
US5058000A (en) * 1987-06-30 1991-10-15 Prime Computer, Inc. System for accessing remote heterogeneous database including formatting retrieved data into applications program format
US4803643A (en) * 1987-08-10 1989-02-07 Oclc Online Computer Library Center Incorporated System and method for creating memory-retained, formatted pages of text, tabulation, and graphic data
JPH01155432A (en) * 1987-12-11 1989-06-19 Mitsubishi Electric Corp Data conversion system
JPH0234037A (en) * 1988-07-25 1990-02-05 Hitachi Ltd Numerical data conversion system
JPH02224164A (en) * 1989-02-27 1990-09-06 Nec Corp File transfer system
JPH02230351A (en) * 1989-03-02 1990-09-12 Nippon Telegr & Teleph Corp <Ntt> Data transfer control system
US5278978A (en) * 1990-03-26 1994-01-11 International Business Machines Corporation Method and system for describing and exchanging data between heterogeneous database systems with data converted by the receiving database system

Also Published As

Publication number Publication date
EP0449494B1 (en) 1999-08-25
CA2034905A1 (en) 1991-09-28
KR910017272A (en) 1991-11-05
US5566332A (en) 1996-10-15
TW226047B (en) 1994-07-01
EP0449494A2 (en) 1991-10-02
KR960016882B1 (en) 1996-12-26
DE69131543T2 (en) 2000-03-30
EP0449494A3 (en) 1993-05-19
JPH04223538A (en) 1992-08-13
DE69131543D1 (en) 1999-09-30
ES2135387T3 (en) 1999-11-01
BR9101161A (en) 1991-11-05
JP2680201B2 (en) 1997-11-19
US5416917A (en) 1995-05-16

Similar Documents

Publication Publication Date Title
CA2034905C (en) Method and apparatus for enabling data transfer between heterogeneous database systems
CA2034906C (en) Method and apparatus for describing data to be exchanged between processes
US5475836A (en) Interface for providing access to external data sources/sinks
US6804671B1 (en) Pluggable tablespaces for database systems
US5339421A (en) General data stream parser for encoding and decoding data and program interface for same
US7412700B2 (en) Product packaging and installation mechanism
US6574673B1 (en) Data type mapping for external callouts
US4205371A (en) Data base conversion system
US8522205B2 (en) Packaging multiple groups of read-only files of an application&#39;s components into multiple shared libraries
US5146593A (en) Procedure call interface
US5809505A (en) System and method for relational to object mapping
US6889229B1 (en) Techniques for peer-to-peer replication of objects in a relational database
US20060167900A1 (en) Reducing memory used by metadata for duplicate user defined types
US8554806B2 (en) Cross platform transportable tablespaces
US5504906A (en) Managing structured objects using global definitions
US6549901B1 (en) Using transportable tablespaces for hosting data of multiple users
US7299237B1 (en) Dynamically pipelined data migration
CN110990425A (en) JDBC driving method and device of hardware database
CN109213820B (en) Method for realizing fusion use of multiple types of databases
US7299218B2 (en) System and method for multiple-threaded access to a database
KR19980083711A (en) Method for changing database of HLR system for digital wireless mobile communication
US20050080759A1 (en) Transparent interface to a messaging system from a database engine
JPH08110869A (en) File system
US6289392B1 (en) Messaging system
EP0350421A2 (en) Generalized data stream transform service

Legal Events

Date Code Title Description
EEER Examination request
MKEX Expiry
MKEX Expiry

Effective date: 20110124