Multiple data base access server for application program
Abstract
[Task] Make it easier to work with the interrelationships between application programs and database programs running on the same system.
Solution.The bucket mechanism (28), located between the application program (12) and the database (20A-n), is the application interface (30) and the bucket engine (32) that creates the bucket containing the bucket objects. ) Consists of. Each bucket contains one or more bucket data, including members of the database, database objects that map bucket data objects to the database, and access objects that include how to access the database in its native mode. Contains objects.
Term
Term ended
Projected expiry passed 22 May 2017, 9.3 years ago.
- Priority
- Filed
- Published
- Projected expiry
- Today
10 claims: 2 independent, 8 dependent
- 1【特許請求の範囲】 【請求項1】 データに対して動作を実行するプロセッサと、前記プロセッサの動作を制御するプログラムと前記データとを記憶するメモリと、を含むコンピュータ・システムにおいて使用されるバケット・メカニズムであって、前記コンピュータ上で動くアプリケーション・プログラムとデータベースとの間に接続され、前記アプリケーション・プログラムによるデータベース・データへのアクセスを提供する、バケット・メカニズムにおいて、 前記アプリケーション・プログラムから及び前記データベースに接続されており、前記アプリケーション・プログラムからのデータベース・リクエストに応答して、対応するバケットを生成するバケット・エンジンを備えており、 それぞれのバケットは、アプリケーション・プログラムによって要求されるデータベースのデータ・メンバのクラスに対応しており、更に、 前記データベースから検索されたデータ・メンバを記憶し、それぞれが、データベース・リクエストに応答して前記データベースから検索されたデータ・メンバの関連するグループに対応するバケット・データ・オブジェクトと、 データベース・アクセス方法を保持及び実行し、データベース・リクエストに応答して前記要求されたデータ・メンバを前記データベースから検索し、前記要求されたデータ・メンバを対応するバケット・データ・オブジェクトに記憶する、データベース・アクセス・オブジェクトと、 を含んでおり、 前記バケット・エンジンは、データベース・リクエストに応答して、前記対応するバケット・データ・オブジェクトに記憶された前記要求されたデータ・メンバを前記アプリケーション・プログラムに提供する、ことを特徴とするバケット・メカニズム。
- 2【請求項2】 請求項1記載のバケット・メカニズムにおいて、それぞれのバケットは、 バケット・データ・オブジェクトとデータベース・アクセス・オブジェクトとの間に接続されており、受け取ったデータベース・リクエストを前記データベース・アクセス・オブジェクトのデータベース・アクセス方法にマッピングし、前記受け取ったデータベース・リクエストに対応するデータベース・アクセス方法を前記データベース・アクセス・オブジェクトに指示するデータベース・オブジェクトを更に含むことを特徴とするバケット・メカニズム。
- 3【請求項3】 請求項1記載のバケット・メカニズムにおいて、 前記アプリケーション・プログラムと前記バケット・エンジンとの間に接続されており、前記アプリケーション・プログラムとネイティブ・モードにおいて通信し、データベース照会(問い合わせ)を前記アプリケーション・プログラムから受け取り、対応するデータベース・アクセス・リクエストを前記バケット・エンジンに生成するアプリケーション・インターフェースを更に含むことを特徴とするバケット・メカニズム。
- 4【請求項4】 請求項1記載のバケット・メカニズムにおいて、前記バケット・エンジンは、 対応するアプリケーション・プログラムからのデータベース・リクエストに応答してバケット・エンジン動作を実行するアプリケーション・オブジェクトを更に含み、この動作は、前記対応するアプリケーション・プログラムによって生成されたそれぞれのデータベース・リクエストに対する及びそれに対応するバケット・エンジン・データベース動作の開始を含むことを特徴とするバケット・メカニズム。
- 5【請求項5】 請求項1記載のバケット・メカニズムにおいて、 バケットとバケット・データ・オブジェクトを構成する際に前記バケット・エンジンによって用いられる情報を記憶するオブジェクト・マップとテーブル・マップとを更に含み、 前記テーブル・マップは、データベース・テーブルに対する及びそれに対応するテーブルを含み、 それぞれのテーブルは、 前記対応するデータベース・テーブルのIDと、前記バケット・データ・オブジェクトにおいて現れる対応するデータベース・テーブルのそれぞれのメンバに対するメンバ・マップと、を含み、 それぞれのメンバ・マップは、 前記メンバのIDと、 前記メンバを含むデータベース・コラムのIDと、 前記メンバのデータ・タイプのIDと、 を含み、 前記オブジェクト・マップは、それぞれのバケット・データ・オブジェクトに対する及びそれに対応するオブジェクト・マップ・オブジェクトを含み、 それぞれのオブジェクト・マップ・オブジェクトは、前記テーブル・マップとオブジェクト・メンバ・マップとのテーブルにおいて現れるそれぞれのテーブルに対する及びそれに対応するテーブル命令のテーブル・リストを含み、 それぞれのテーブル命令は、 前記テーブル・マップにおいて対応するテーブルを識別するテーブル名と、 前記テーブルがメンバシップに挿入され又はメンバシップから削除される順序を定義する挿入順序と、 前記メンバ・テーブルがどのように結合されるかを定義する結合条件と、 を含み、 前記オブジェクト・メンバ・マップは、前記バケット・データ・オブジェクトのすべてのデータベース・メンバの連結されたリストを含み、 前記バケット・エンジンは、データベース・リクエストに応答して前記オブジェクト・マップと前記テーブル・マップとにアクセスし、前記オブジェクト・マップと前記テーブル・マップとに含まれる情報から対応するバケット・データ・オブジェクトとバケットとを構成することを特徴とするバケット・メカニズム。
- 6【請求項6】 データに対して動作を実行するプロセッサと、前記プロセッサの動作を制御するプログラムと前記データとを記憶するメモリと、を含むコンピュータ・システムにおいて用いられ、前記アプリケーション・プログラムによるデータベース・データへのアクセスを提供する方法であって、 前記アプリケーション・プログラムから及び前記データベースに接続され、前記アプリケーション・プログラムからのデータベース・リクエストに応答するバケット・エンジンの動作によって、対応するバケットを生成するステップであって、それぞれのバケットは、アプリケーション・プログラムによって要求されたデータベースのデータ・メンバのクラスに対応する、ステップと、 それぞれのバケットに対して、少なくとも1つのバケット・データ・オブジェクトを生成するステップであって、それぞれのバケット・データ・オブジェクトは、前記データベースから受け取ったデータ・メンバを記憶し、それぞれが、データベース・リクエストに応答して前記データベースから検索されたデータ・メンバの関連するグループに対応するバケット・データ・オブジェクトを含む、ステップと、 それぞれのバケットに対して、データベース・アクセス・オブジェクトを生成し、データベース・アクセス方法を保持及び実行し、データベース・リクエストに応答して、前記要求されたデータ・メンバを前記データベースから検索して、前記要求されたデータ・メンバを対応するバケット・データ・オブジェクトに記憶するステップと、 を含み、前記バケット・エンジンは、データベース・リクエストに応答して、前記対応するバケット・データ・オブジェクトに記憶されている前記要求されたデータ・メンバを、前記アプリケーション・プログラムに提供することを特徴とする方法。
- 7【請求項7】 請求項6記載の方法において、 バケット・データ・オブジェクトとデータベース・アクセス・オブジェクトとの間に接続されており、受け取ったデータベース・リクエストを前記データベース・アクセス・オブジェクトのデータベース・アクセス方法にマッピングし、前記受け取ったデータベース・リクエストに対応するデータベース・アクセス方法を前記データベース・アクセス・オブジェクトに指示するデータベース・オブジェクトをそれぞれに対して生成するステップを更に含むことを特徴とする方法。
- 8【請求項8】 請求項6記載の方法において、 前記アプリケーション・プログラムと前記バケット・エンジンとの間に接続されており、前記アプリケーション・プログラムとネイティブ・モードにおいて通信し、データベース照会を前記アプリケーション・プログラムから受け取り、対応するデータベース・アクセス・リクエストを前記バケット・エンジンに生成するステップを更に含むことを特徴とする方法。
- 9【請求項9】 請求項6記載の方法において、 対応するアプリケーション・プログラムからのデータベース・リクエストに応答してバケット・エンジン動作を実行するステップであって、この動作は、前記対応するアプリケーション・プログラムによって生成されたそれぞれのデータベース・リクエストに対する及びそれに対応するバケット・エンジン・データベース動作の開始を含むステップを更に含むことを特徴とする方法。
- 10【請求項10】 請求項6記載の方法において、 バケットとバケット・データ・オブジェクトを構成する際に前記バケット・エンジンによって用いられる情報を記憶するオブジェクト・マップとテーブル・マップとを提供するステップを更に含み、 前記テーブル・マップは、データベース・テーブルに対する及びそれに対応するテーブルを含み、 それぞれのテーブルは、 前記対応するデータベース・テーブルのIDと、前記バケット・データ・オブジェクトにおいて現れる対応するデータベース・テーブルのそれぞれのメンバに対するメンバ・マップと、を含み、 それぞれのメンバ・マップは、 前記メンバのIDと、 前記メンバを含むデータベース・コラムのIDと、 前記メンバのデータ・タイプのIDと、 を含み、 前記オブジェクト・マップは、それぞれのバケット・データ・オブジェクトに対する及びそれに対応するオブジェクト・マップ・オブジェクトを含み、 それぞれのオブジェクト・マップ・オブジェクトは、前記テーブル・マップとオブジェクト・メンバ・マップとのテーブルにおいて現れるそれぞれのテーブルに対する及びそれに対応するテーブル命令のテーブル・リストを含み、 それぞれのテーブル命令は、 前記テーブル・マップにおいて対応するテーブルを識別するテーブル名と、 前記テーブルがメンバシップに挿入され又はメンバシップから削除される順序を定義する挿入順序と、 前記メンバ・テーブルがどのように結合されるかを定義する結合条件と、 を含み、 前記オブジェクト・メンバ・マップは、前記バケット・データ・オブジェクトのすべてのデータベース・メンバの連結されたリストを含み、 前記バケット・エンジンの動作によって、データベース・リクエストに応答して、前記オブジェクト・マップと前記テーブル・マップとにアクセスし、前記オブジェクト・マップと前記テーブル・マップとに含まれる情報から対応するバケット・データ・オブジェクトとバケットとを構成するステップを、 更に含むことを特徴とする方法。
Independent claims10
165 paragraphs in 1 section, as filed
Description: TECHNICAL FIELD [Detailed description of the invention]
【0001】
[Technical field to which the invention belongs]
The present invention relates to a device and a method for database access, and more particularly to a device and a method for providing a database access service to a plurality of application programs.
【0002】
[Conventional technology]
A major feature of recent developments in computer systems and application programs is the increasing degree of interoperability between application programs, in particular application programs communicate with each other. The extent to which data can be shared is increasing. Nowadays, one application program is expected to communicate with many other programs, exchange data, and even call function actions, and such interoperability is possible. Many application programs have been developed to provide. For example, the oldest approach is to develop application programs such as Lotus 1-2-3, which are from an expansive array with features such as word processing, spreadsheets, databases and communications. It is made up. The next approach that emerged was the development of operating systems such as Microsoft Windows, which provided an integrated operating environment in which application programs that fit that operating environment were Data can be exchanged and integrated with each other.
【0003】
[Problems to be Solved by the Invention]
However, the problem that arises in achieving integration between application programs is that the programs work together directly for many different practical causes, such as economic or competitive reasons. Is often difficult or impossible. The integration of the operating environment may solve the problem, but it still remains because not all designers choose to follow the operating environment. However, even if the application program is perfectly adapted to the integrated operating environment, the results may not always be satisfactory. The reason is that the degree and type of integration between application programs is dictated by the operating system, which does not provide the integration functionality required in certain cases, but simply overcomes it. It may only put additional interfaces and discrepancies in between. Furthermore, the degree and type of integration provided by the integrated operating environment is defined by the operating environment, so that the operating environment provides generalized integration conditions that can be used by a wide range of application programs. It's just designed. Thus, the data integration capabilities of the integrated operating environment do not meet the needs of a particular application program or user and the operating environment does not fit the user or application program, but rather the user or application. Programs are often forced to adapt to an integrated operating environment.
【0004】
Obtaining the data that many application programs running on a system work from from one or more common databases of multiple types is a common feature of many systems, but application. This problem is especially serious with respect to the interface between the program and the database. In the prior art, many approaches have been taken to address the problem of accessing databases by application programs, but with unsatisfactory results. For example, many approaches rely on application programs and databases designed to work in concert with each other, but application programs and databases are designed by different developers at different times. Coordinated operation is often difficult due to the reliance on the functionality provided by the integrated operating environment, and the limitations and problems mentioned above still remain.
【0005】
Yet another solution to problems in the prior art is to place a translation interface between the application program and the database program. However, this approach is also not sufficient, because the approach requires modification of either the application program or the database program, and therefore either the application program or the database program. Is required to have knowledge of the other data, command format and function. These approaches are that the translation interface is generally specific to a given application or database program or set of programs, and it is often difficult to adapt to another application program or database program. And there is a further problem.
【0006】
Yet another approach to prior art is a "rapid application" that provides a problem-solving interface to the database, such as Microsoft's Visual Basic or Borland's Delphi programs. Includes what is called a "Development" (RAD) tool. However, these approaches are often inadequate. The reason is that the user does not have to worry about the detailed "back end" of database processing, that is, the actual creation of the SQL statement, but the user is still between tables, table columns, tables. You are required to have detailed knowledge of database design, such as relationships and which groups of tables contain "data objects".
【0007】
The present invention provides solutions to these and other problems in the prior art.
【0008】
[Means for solving problems]
The present invention provides access to database data by an application program running on a computer system, including a processor that performs operations on the data and a memory that stores the application program and the data extracted from the database. With respect to methods and devices for providing. According to the present invention, a database bucket mechanism is placed between one or more application programs and one or more databases to functionally isolate the application programs from the databases, thereby the application. -Both the program and its users do not need to have knowledge of the internal structure and mechanism of the database.
【0009】
This database bucket mechanism includes an application interface that communicates with each of the application programs in native mode, and a bucket engine that creates a "bucket" that contains "bucket objects" that communicate with the database in native mode. , Consists of. Each bucket represents a group or class of database data members defined by the application program, and contains a subset of the data members that also belong to a bucket class defined by the application program. It contains the information needed to construct an object and the corresponding methods or programs needed to perform the operation of the database.
【0010】
Each bucket and bucket object is made up of bucket engines according to the information stored in the object and table maps that relate the application program's data structures and queries to the database's data structures and behavior. The object. The bucket mechanism, therefore, consists of a general purpose database access mechanism, a bucket engine, and a separable library of bucket definition information, object maps, and map tables. Adapt to specific application programs and databases in a manner that is transparent to the program and its users.
【0011】
Therefore, the present invention relates to a bucket mechanism that is connected between an application program running on a computer and a database and provides access to data in the database by the application program, and installation and installation of the bucket mechanism and its components. Regarding the operation method and. According to the present invention, the bucket mechanism is connected between an application program and a database to generate a corresponding bucket in response to a database request from the application program. Each bucket corresponds to a class of database data members required by the application program. Each bucket contains a bucket data object that stores the data members retrieved from the database, and each bucket data object corresponds to a related group of data members retrieved from the database and the database. -Holds and executes database access methods in response to requests and database access objects, retrieves requested data members from the database in response to database requests, and retrieves the requested data members. Store in the corresponding bucket data object. According to the present invention, the bucket engine responds to a database request by providing the application program with the requested data members stored in the corresponding bucket data object.
【0012】
Further according to the present invention, each bucket further includes a database object connected between the bucket data object and the database access object, and the received database request is a database access object. Maps to the database access method of and tells the database access object the database access method corresponding to the received database request.
【0013】
The bucket mechanism includes an application interface that connects between the application program and the bucket engine and communicates with the application program in its native mode, receiving and responding to database queries (query) from the application program. Generate a database access request to the bucket engine.
【0014】
In yet another feature of the invention, the bucket engine also performs bucket engine operations in response to database requests from the corresponding application program, which includes bucket engine database operations. Includes initialization for each database request generated by the corresponding application program.
【0015】
According to yet another feature of the invention, the bucket mechanism includes an object map and a table map that store the information used by the bucket engine when constructing the bucket and the bucket data object. .. According to the invention, a table map contains tables for and corresponding to database tables, each of which contains the ID (identification, identification, identification) of the corresponding database table and a bucket. -Contains a member map for each member of the corresponding database table that appears in the data object. Each member map contains the ID of the member, the ID of the database column that contains the member, and the ID of the data type of that member. Object maps include object map objects for and corresponding bucket data objects, and each object map is for each table that appears in a table map and an object member map. Contains a table list of table instructions (instructions) for and corresponding to. According to the present invention, a table name that identifies a corresponding table in a table map, an insert order that defines the order in which tables are inserted into or removed from membership, and how member tables are joined. Includes a join condition that defines what is done. The object member map contains a concatenated list of all database members of the bucket data object.
【0016】
BEST MODE FOR CARRYING OUT THE INVENTION
First, a general explanation will be given with reference to FIGS. 1 and 2. 1 and 2 show a schematic block diagram of the present invention realized in the system 10. System 10 is typically a personal computer, or alternative, a mini or mainframe computer with multiple workstations. A plurality of application programs 12 are running on processor 14 and memory space 16 of system 10 to access database 20, read data from database 20, and write data to database 20.
【0017】
In this exemplary configuration of system 10, system 10 is, for example, a medical management system used in general hospitals, clinics, private hospitals, etc., but one or more application programs that access a database. Can be any system with. However, in this example, application program 12 may include patient service application 12A in addition to general purpose application 12B. The patient service application 12A may include, for example, a patient information application 16A, a provider application (provider) 16B, a clinic application (department) 16C, and a facility application (location) 16D. Can be realized as a separate application of an integrated medical service application or as a functional component. Patient Information Application 16A generates application programs or utilities for entering, displaying, managing and editing information such as patient vital signs (VITALS) 18A and demographic data (DEMOGRAPHICS) 18B, as well as new patient transactions or actions. Or new types of information (NEW) 18C, patient records (RECORDS) 18D, patient referrals (QUERIES) 18E, patient test results (RESULTS) 18F, treatment and drug orders (ORDERS) 18G, and summary information ( MEMS) Includes a utility to enter 18H. The general-purpose application 12B includes an ad hoc query engine (QUERY) 18I that formulates a query to the database and displays the results of the query, a management program and function (ADMIN) 18J, a form construction program (FORM) 18K, and a document. Includes Scanner (SCAN) 18L. As will be apparent to those skilled in the art, the general purpose application 12B also includes word processing programs, spreadsheet programs, graphics programs, and electronic mail.
【0018】
The database 20 is composed of one or more databases 20A, 20B, ..., 20n, which are via the system 10 or a communication link 22 such as a wide area network or a local area network. It resides on one or more systems 10A connected to system 10. However, in another embodiment, as those skilled in the art will understand, one or more databases 20A-n reside in system 10, where system 10 is a personal computer (PC), minicomputer, or. A mainframe computer, the other being on one or more systems 10A. As shown in FIGS. 1 and 2, each database 20 generally includes a data structure 24 that stores data and a data function program 26 that accesses, reads, writes, and manages the data structure 24. ..
【0019】
As already mentioned, each database 20A-n should receive database commands and queries in its own database-specific format and syntax, and each database-specific format and syntax. Designed to receive and provide inquiries. According to the present invention, the internal structure and functional elements of the database 20A-n are not modified in any way, and the database 20A-n is the source of the request (request) for the database operation, or the source or destination of the data. Does not have functional knowledge about the specific behavior of. Each database 20A-n instead receives and provides database commands or queries in its database-specific format and syntax, and receives and provides data in its database-specific format and syntax.
【0020】
Further, according to the present invention, each application program 12 generates a database-related request, call, or command in a format and syntax specific to the application program, and the format specific to the application program. And designed to receive and provide data in syntax. According to the present invention, the internal structure and functional elements of application program 12 are not modified in any way, and application program 12 specifies the destination of a request for database operation or the source of data. Does not have functional knowledge about the operation of. Instead, each application program 12 generates database-related requests in its application program-specific format and syntax, and receives and provides data in its application program-specific format and syntax. To do.
【0021】
Therefore, according to the present invention, the application program 12 and the database 20A-n are completely functionally separated from each other and in order to operate in cooperation with each other, the application program 12 and the database 20A-n are used. Neither of n is modified at all. The application program 12 and the database 20A-n each operate in a native manner and mode to produce commands, requests, and data in a database or database specifically created for that particular behavior and interface. It behaves as if it has an interface with an application program to receive and provide.
【0022】
Next, an overall description of the bucket mechanism shown in FIGS. 1 and 2 will be given. According to the present invention, an operating bridge or interface between application program 12 and database 20A-n that separates application program 12 and database 20A-n while providing application program 12 with full database functionality. , Given by bucket mechanism 28. This bucket mechanism 28 includes an application interface 30 and a bucket engine 32. As will be described in more detail later, the application interface 30 acts between the application program 12 and the bucket engine 32 and communicates with the application program 12 according to its native format and syntax, while the other The bucket engine 32 then makes a database request to database 20A-n and communicates with database 20A-n according to its native format and syntax.
【0023】
Bucket mechanism 28 thereby effectively provides an "intermediate layer" between application program 12 and database 20A-n, through which the user, i.e. application program 12, operates the database. You no longer need to have knowledge of the design of database 20A-n and of specific syntax, formats, and protocols to perform. As will be described in more detail later, the bucket mechanism 28 uses a database object and map table mechanism, which is a set of instructions for any given database object for any given database. -Perform database operations in response to requests, commands, and queries in the native language of Program 12.
【0024】
As will be described in more detail later, the bucket mechanism 28 provides programmers and users with a simple interface to database 20A-n that groups databases into logical categories called "buckets". A bucket is a large group of classes of database tables, including a small group of database tables, "bucket objects," and a database table column or group of database columns, "members."
【0025】
In addition to providing an interface to programmers and users according to the application program, the bucket mechanism 28 provides an ad hoc query tool with buckets, bucket objects, and members that provide a link between the query tool and the database. -It can be configured as a mechanism. In addition, the bucket mechanism 28 makes it possible to generate groupings of database data that are unusual in database operation, such as grouping by current date, current time, or age.
【0026】
As will be described in more detail later, the bucket mechanism 28 further provides flexibility when the main components of the bucket mechanism are present in the system. Considering the data path consisting of the application program 12, the data extracted from the database, the SQL query, and the database in the "top" to "bottom" direction, the mechanism of the present invention is realized in a stand-alone system. There, application programs, data, SQL queries, and databases reside in a single system, such as a desktop or laptop system, or in a single mini-computer or main-frame computer. .. Similarly, the invention can be implemented in multiple forms, for example, in a client / server system, in which case the application program 12, data, and SQL queries reside on the client and the database is on the server. Or application program 12 and data reside on the client, SQL query and database reside on the server, or application program 12 resides on the client and data, SQL query and database reside on the server. Exists in.
【0027】
In a preferred embodiment of the present invention, the application interface 30 and the bucket engine 32 are realized using object-oriented programming technology that operates in the operating environment of Microsoft Windows. In the following description, therefore, Microsoft Windows is assumed as the operating environment of the present invention together with its functionality and ability, and in describing the present invention, object-oriented programming and the operating environment of Microsoft Windows are generally used. I will follow the matter. The features and capabilities of Microsoft Windows are widely known to those skilled in the art, and James W. It can be found in readily available publications such as McCord's "Windows 3.1 Programmer's Reference" (Que Corporation) and Kraig Brockschmidt's "Inside OLE 2" (Microsoft Press). The same is true for object-oriented programming. Therefore, one of ordinary skill in the art can use the following description of the present invention to find out how to realize the present invention, and how to use the present invention for other operating systems such as New Wave, Macintosh, and UNIX. You should be able to understand whether it fits your system environment.
【0028】
First, considering application interface 30 and bucket engine 32 at a general level with reference to FIGS. 1 and 2, application interface 30 is a request, command, or call for database operation. (These are referred to below as "requests") are received from application program 12, each of which has a native format and syntax for the requesting application program 12. It translates each of these requests and commands into one or more interface calls to the bucket engine 32, as described below. Application Interface 30 also includes means and functions for creating, managing, and performing some user interface functions related to database operation. Thus, as shown in FIGS. 1 and 2, the application interface 30 includes an interface module 34 for each type of application program 12, and a type of application program 12 has one common. Includes a set of database syntax and formats contained in one or more application programs 12 or a single interface module 34 that share database behavior syntax and formats.
【0029】
The bucket engine 32 communicates with and works with each database 20A-n, which has a format and syntax native to the database 20A-n, to perform the requested operation. The bucket engine 32 receives the results of each database operation from database 20A-n, which also has the native format and syntax of database 20A-n, communicates with application interface 30 and works together. Then, the result of each requested operation is returned to the requesting application program 12.
【0030】
Next, the bucket 40 and the bucket data object 42 (FIGS. 1 to 3) will be described.
【0031】
In this configuration, the bucket engine 32 contains a dynamic link 36 that includes a call interface 36 to application interface 30 and a bucket manager 38 that creates the bucket 40 and the bucket data object 42 as required. Library (dynamic linked library = It is realized as dll). According to the present invention, and according to object-oriented programming techniques, bucket 40 corresponds to a class or grouping of relevant information, while bucket data object 42 is a member of the class of bucket 40 and is of relevant information. Contains information that belongs to that class or grouping. In other words, bucket 40 is a logical grouping of database information that creates a multi-level hierarchy of bucket data objects 42 from a relational database, such as one in database 20A-n. .. For example, and as will be explained later, in this exemplary system 10, bucket manager 38 is first identified as clinic, facility, provider, and patient information for patient service application 12A. Corresponds to the class or grouping of information. Bucket Manager 38 also creates buckets that correspond to the type of information used by each application program or general purpose application 12B that performs database operations.
【0032】
As will be described later, bucket manager 38 is used with any type of database 20, ie, with any database syntax and format known to bucket manager 38, bucket 40 and bucket data objects. Create 42-42n to store information related to the configuration of bucket 40 and bucket data object 42 for each type of database 20 that is currently known to bucket manager 38 for this purpose. In this regard, new types of databases and bucket objects can be added to bucket manager 38, as will be described later.
【0033】
Due to the integrity of the data, in this embodiment of the invention, at any given time, on system 10, a single instance of bucket engine 32 and thus bucket manager 38, and any given. At that time, a copy of the bucket data object 42 is created and maintained on the system. All application programs 12 running on system 10 and all the functionality of these application programs 12 are thereby, through a single instance of bucket engine 32 and bucket manager 38. Access database 20 and access a single copy of a given bucket data object 42.
【0034】
Further in this regard, the bucket manager 38 creates a bucket 40 and a bucket data object 42 when information is requested from bucket 40 or information is written to bucket 40, and a new bucket 40 or bucket 40 is created. Create a new bucket 40 or bucket data object 42 only when the data object 42 is needed to satisfy the requirements of a particular database request.
【0035】
Bucket 40 and bucket data object 42 are thus dynamically created and virtually unlimited, depending on the needs of application program 12 and the number and type of databases 20A-n. There can be different types of buckets 40 and bucket data objects 42. Thus, in this configuration, instead of remembering the hard code-specific instance of bucket 40 or bucket data object 42, the object class of bucket 40 and the object class of bucket data object 42 When an object in bucket 40 or an object in bucket data object 42 is created, it is a set of instructions that defines what the object is and how it behaves, ie It is started with a set of methods.
【0036】
The objects in bucket 40 are therefore initiated by the instruction set "objects" and reflect that the function of bucket 40 is to create, manage and operate on the bucket data object 42. Bucket data object 42 is started with an instruction set and a table map as defined below. As will be described in more detail later, the instruction set and table map are the structure and function of the bucket data object 42, the structure and function of the bucket data object 42, and the data structure and database of the database 20A-n. Define behavior and user interaction. An instruction set and a table map are thereby defined to reflect the correlation between the type of a particular bucket data object 42 and the characteristics and properties of a particular corresponding application program 12 and a particular database 20. To do. Therefore, from the above description of the present invention, there is one type of bucket data object 42 for each pairing of one application program 12 and one in database 20A-n. It is clear to get. Finally, the table map and instruction set are between the originally required selected characteristics and behavior of the bucket data object 42 and the bucket data object 42 within a class of a bucket 40. Define a hierarchical relationship.
【0037】
The relationship between the bucket 40 and the bucket data object 42 is further illustrated in FIG. 3, which shows the bucket 40a of the patient class corresponding to a particular patient. Bucket 40a is the relationship between class demographics and the database members and bucket data objects 42a appearing in bucket data object 42a and the data structure and database behavior of database 20A-n. It is illustrated to include a database object 52 that defines and a bucket data object 42a. As will be explained later, according to the present invention, each bucket 40 or bucket data object 42 is defined by the information stored in the bucket manager 38 for a particular application program 12 and database 20. In the hierarchical relationship of the bucket data object 42, the bucket data object 42 is also included.
【0038】
As illustrated in Figure 3, and as described in more detail later, bucket 40, such as patient bucket 40a, is an object of bucket 40, such as the creation of bucket data object 42, and bucket 40 is database 20A-. Includes a map 46 that holds information associated with n, and in this example a set of methods 44 that define the actions that can be performed by the demographic bucket data object 42a. The artificial bucket data object 42a, on behalf of the bucket data object 42, is executed by the bucket data object 42, the result list 50, and the database object 52 to access the database 20A-n. It contains a set of 48 methods that define behaviors that retain methods, conditions, and functions.
【0039】
As further illustrated, and typical of result list 50 for bucket data object 42, result list 50 contains records of the results of database operations, eg, database 20A-n. Data record 54a held as a character string containing data from and the data or conditions and methods of the extracted database 20A-n used when creating the bucket data object 42a or anywhere in the system 10. Includes a cache object 54b, which holds a higher level for the bucket data object 42a for later use, such as information that identifies whether the cached information is stored. The result object 54 further includes a request object 54c that stores the request generated by the application program 12 resulting in the bucket data object 42. As shown, the result object 54 stores the request condition 54c-1, which stores information about the request, such as the patient ID, and the SQL 54c, which stores the SQL query including the request if the user provides the SQL query as a request. Includes -2 and a sort condition 54c-3 that stores information about how the database results provided in the request are stored in response to the request.
【0040】
The demographic database object 52, like the database object 52, is a member map that holds the members of database 20A-n that appear in the bucket data object 42, for example data record 54a, or the information that defines the data. Includes 52a and condition object 52b, which holds the required definitive relationship between the information in bucket data object 42a and the information in database 20A-n.
【0041】
The demographic database object 52 further includes a database (DB) function 52d, which includes the methods commonly used to perform database operations such as inserts, updates, and deletes. As shown in Figure 3, the DB function 52c of database object 52 contains request 52c-1, which results in bucket data object 42 and parent (upper) bucket data. · Includes get member 52c-2, which includes a method of selecting and incorporating members that are database 20A-n information contained in object 42a, and methods used to perform database operations such as insert, update, and delete. .. The DB function 52c also includes Create SQL52c-3, which contains information to create a database query, Execute Select SQL52c-4, which creates a database query statement such as a statement, and Database 20A. Includes execution SQL52c-5, which accesses -n.
【0042】
Obviously, bucket 40 includes a bucket data object 42 that contains additional group or type information. For example, the patient bucket data object 42a is the bucket data object 42b-n corresponding to the provider 16B, patient vital signs 18A, patient sequence 18G, and test result 18F described earlier for patient service application 12A. Has. Similarly, a given bucket data object 42, such as the demographic bucket data object 42a, depends on the particular design, configuration, and purpose of the particular bucket data object 42 or system 10. It may contain different numbers and types of subsidiary bucket data objects 42.
【0043】
Next, detailed explanations will be given in order. First, the bucket mechanism 28 will be described with reference to FIG.
【0044】
With reference to FIG. 4, an overview of the bucket mechanism 38 of the present invention realized in an object-oriented system is given.
【0045】
As illustrated, the bucket mechanism 38 of the present invention includes the application interfaces 30 of FIGS. 1 and 2 and acts as interfaces to the respective application programs 12. The application interface 30 interfaces with the corresponding application object 58 that performs the logic, methods, and actions that support the corresponding application interface 30. Generally, there is at least one application object 58 for each application interface 30, but an example of application object 58 is an appointment list, using the example of a medical service system. As will be described later, a given application object 58 may contain one or more related data objects, such as one or more patient data objects or one or more provider data objects. Have.
【0046】
As shown in FIG. 4, the bucket 40 contains one or more bucket data objects 42, and each bucket data object 42 interfaces with the application object 58 to provide the respective application. -Hold, manage, and cache data for program 12. As shown in Figure 4, multiple instances of application program 12, corresponding application interface 30, and application object 58 can simultaneously share and access one bucket data object 42. .. Multiple instances of a given bucket object 42 can exist in different topologies in the system, but there is only one instance of a given bucket data object 42 in the system. However, a given bucket object 42 can have multiple result objects, ie instances of real data, and application object 58 "talks" to multiple bucket data objects 42. be able to.
【0047】
As also shown in FIG. 4, bucket 40 further includes a data object 52 interface for application object 58 and data access object 62, and bucket data object 42 for database access. Map to various data access methods such as SQL query generators and utilities on object 62.
【0048】
Database access object 62 in bucket 40 interfaces with database 20A-n, accesses that database, and delivers the results to database object 52, and thus bucket data object 42 on the requesting side and bucket data object 42 on the requesting side. Return to application program 12.
【0049】
In FIG. 4, in the bucket mechanism of the present invention, the database is entered from the application interface 30 via the application object 58, the bucket data object 42, the database object 52, and the database access object 62. It can be seen that there are many unconnected components in the direct data path to 20A-n. These components include Rule Server 64. The rule server 64 is a method that can be shared between application logic, business rules, and multiple instances of a given application program separated from the user interface, or between multiple application programs. ,including. In the system of the present invention, it is possible to support a plurality of rule servers 64 in one given system, in which case each rule server 64 may have a different department or system user, etc. It can support different functional groupings of application programs 12 or users. The rule server 64 is usually accessible from the application object 58 or, for example, from the gateway 68 described below.
【0050】
Workflow component 66 performs tasks similar to rule server 64, but supports workflow processes in the system. The division between workflow component 66 and rule server 64 depends on the specific capabilities and capabilities of workflow component 66 and rule server 64 implemented in this system.
【0051】
Finally, gateway 66 supports communication between the bucket mechanism and external application program 12 and other data repositories, while interface service 70 provides interface components and bucket mechanism. Includes a set of interface object classes used internally to facilitate communication between bucket mechanism components.
【0052】
In FIG. 4, each object is represented by an elliptical box, and communication between the objects is represented by a line between them. In addition, some of the object's boundaries to which the communication lines connect to the object are marked away from the object's body by additional lines inside the object's boundaries. These distantly marked connection points indicate functional and operational boundaries or borders, where the objects are physically and functionally separated from each other and are one end of a communication connection. The object at the other end of the communication connection resides on one physical or functional component of the system, such as a client, and the object at the other end of the communication connection resides on another physical or functional component of the system, such as a server. doing. Thus, as already discussed, the physical and functional topologies of the systems of the present invention can be easily adapted to a wide range of different physical, geographical and functional topologies.
【0053】
Next, the application interface 30 will be described with reference to FIGS. 1, 2, 4, 5, and 6.
【0054】
As described with reference to FIGS. 1 and 2, the application interface 30 is composed of a plurality of interface modules 34, and the interface module 34 corresponding to each type of application program 12 that performs database operations. Exists. Interface module 34 of application interface 30 receives requests for database operation from one or more corresponding application programs 12, each request having a format native to the requesting application program 12 and Having the syntax, it translates each request or command into one or more interface calls to the bucket engine 32. The interface module 34, which receives a request for database operation from the application program 12, receives the result of the request from the bucket engine 32, if any, and returns the result to the requesting application program 12. As already mentioned, the application interface 30 further includes means and functions for creating, managing, and performing user interface functions related to database operation.
【0055】
As already described with respect to FIG. 4, the application interface 30, like the bucket engine 32, is of the programs, utilities, and functions used in this example to commonly perform the operations of the interface module 34. As a library, implemented in an object-based system, it is best described by the properties and characteristics of the requests processed by application interface 30 and the bucket engine 32 calls.
【0056】
With reference to FIGS. 5 and 6, some properties 72 processed by application interface 30 are illustrated. As shown, these properties include multiple user interface properties (UI) 74a-g, each of which is shown in the illustrated UI74a-g entry. , Defines one or more properties of the user interface.
【0057】
Others of property 68 include bucket 72a-g, which defines features such as the type and ID of the bucket object related to bucket data object 42, and bucket 76a, which defines the required actions and members. Includes -g. This type and ID is the database column, database data, type, length included in or resulting from the request.
【0058】
Yet another of property 68 is Sort 78a-b for sorting or ordering members from the database, Condition 80a-c for defining conditions for database operation, and Row. Required or selectable for bucket data objects 42 such as 82, Column 84, Max Rows 86 and Max Cols 88 that delimit (delimit) member rows and columns from the database. Define in relation to various conditions.
【0059】
Other properties 68, such as Status 90 and Status String 92, are related to the status of the database action, and another SQMStmt94 identifies the SQL statement used in the current database action. That is, the user can supply the SQL statement without using the usual means of bucket mechanism 28. Yet another property 68, such as Cache Type 96, Cache Duration 98, Cache Max 100, is related to the cache behavior of the corresponding bucket data object 42, while And others, such as Default Member 102, Default Text 104, etc., display the result setting display mechanism as some kind of user interface, such as a combination box or list box. Used when writing the default database member cache.
【0060】
Next, the bucket manager 38 will be described with reference to FIGS. 7 to 9.
【0061】
As already mentioned, the function of bucket manager 38 is to create bucket 40 and bucket data object 42 in response to a request from application interface 30. Bucket Manager 38 also provides the new bucket 40 or bucket data object 42 if the new bucket 40 or bucket data object 42 is required to meet the requirements of a particular database request. To create. As mentioned above, the bucket mechanism 28 of the present invention provides the information required to create the bucket data object 42 and the bucket 40 as a map object, represented in FIG. 3 as a map 46. As illustrated in FIG. 7, this is implemented as object map 106 and table map 108 in this embodiment. Object maps 106 and table maps 108 are configured by the programmer, not by the users of the system, for each database 20A-n used and known by the system. The information stored in the maps and tables can be easily modified to add subsequent new databases or data objects to the system.
【0062】
With reference to FIG. 7, a schematic of the system 10 incorporating the present invention is shown, the functional structure and operation of the bucket engine 32 is illustrated in more detail, and the bucket data object 42 is illustrated. Contains maps and tables used in the construction. As already mentioned, the bucket 40 contains a set of maps 46 containing the information needed to create the bucket data object 42, its components, and the elements associated with the bucket data object 42. As shown in FIG. 7, the information contained in map 46 resides in object map 106 and table map 108. As described below, object map 106 is essentially a mapping between the bucket data object 42 and the tables in database 20, while table map 108 is essentially database 20. A map of the bucket data object 42 to a column in the table.
【0063】
For example, in the example used here, the request originates from the patient's demographic application program 20B, so that the bucket engine 32 uses the patient bucket 40a and the bucket data object 42a. The database members that respond by creating and appear in the demographic bucket data object 42 include the patient's name, address, and so on. Object map 106 contains information corresponding to the demographic bucket data object 42a, and table map 108 contains information corresponding to each type of patient demographic data.
【0064】
Referring to FIG. 8, as illustrated, table map 108 contains table 110 corresponding to each database table contained in database 20A-n, where each table 110 is a database (DB) table. Includes name 112 and member map list 114 contains member maps for each member of the corresponding database 20 table containing the data that appears in the corresponding bucket data object 42. Each member map 116 includes a member name 118a that identifies a particular member corresponding to the member map 116, and a database (DB) table name 118b that identifies the database table that contains that member. Each member map 116 has a database (DB) table column 118c that identifies the database column that contains the corresponding member, and a data type 118d that identifies the type of data that contains the member, such as a number or character string. Includes SQL Position for Select 118e, which identifies the position of the member in the identified column.
【0065】
Referring to FIG. 9, object map 106 is a list containing objects 120 corresponding to each bucket data object 42, and each object 120 has object member map 122 and table list 124. Including. Each object member map 122 contains member list 122a, which is a concatenated list of all members of database 20 contained in bucket data object 42. As shown, member list 122a contains entries shown as table members 122a-1, 122a-2, etc. that correspond to and identify each member of database 20 table of bucket data object 42. Including. The object member map 122 also includes a special multimember list 122b that identifies multiple pairs of members belonging to the bucket data object 42.
【0066】
Table list 124 contains table instructions 126 corresponding to each table 110 contained in table map 108. As illustrated, each table instruction 126 has a table name 126a that identifies the corresponding table, an insertion sequence 126b that defines the order in which the tables are inserted into or removed from membership, and a member. Includes a join condition 126c that defines how the tables are joined. Each table instruction 126 further contains a required key 126d flag indicating whether a new and unique table identifier is required before the table can be inserted, and a key 126e containing the corresponding key, if any. And include.
【0067】
Considering the behavior of the bucket engine 32 again with reference to FIG. 7, application program 12 running through application interface 30 makes a call for database operation, which in this example results in. , A new bucket data object 42 is created. Bucket manager 38 receives the request through application interface 30, selects the bucket 40 that corresponds to the application program 12 and the requested data, and calls the bucket object creation bucket object method to bucket 40. Create data object 42.
【0068】
Creating Bucket 40 The bucket object method accesses map 46, in particular object map 106, which corresponds to the type of bucket data object 42 being created. From object map 106, bucket manager 38 acts on or acts on the corresponding type of bucket data object 42 and the corresponding type of bucket data object 42, and the bucket data object. Identify and identify the conditions that apply to the table map 108 information used in constructing 42.
【0069】
The bucket manager 38 then uses this information to configure the bucket data object 42, the associated database object 52, and the database access object 62. By using these configurations and information, the bucket manager 38 then accesses database 20A-n, bucket data object 42, database object 52, database access, as shown in FIG. · Gets the data that appears in bucket data object 52 via a path consisting of object 62, database 20A-n, and the corresponding return path, and retrieves the resulting data for the requesting application program 12. Remember.
【0070】
As already mentioned, subsequent requests for the same data from another application program 12 will result in a bucket data object 42 that contains that information without forming a new bucket data object 42. Performed by common access to.
【0071】
The present invention has been shown and described above based on preferred embodiments of the apparatus and method, but as those skilled in the art will understand, various changes, modifications, and modifications to the form, details, and configurations have been patented. It can be carried out without departing from the technical idea and technical scope of the invention defined by the claims. Therefore, the scope of claims is intended to cover such modifications and modifications as including all the technical ideas and technical scope of the invention.
[Simple explanation of drawings]
[Figure 1]
It is a part of the schematic diagram of the system which incorporated the present invention.
[Figure 2]
It is a part of the schematic diagram of the system which incorporated the present invention. Combined with Figure 1, the entire system [Fig. 3]
It is the schematic of the bucket and the bucket object of this invention.
[Fig. 4]
It is a schematic diagram of the object base of this invention.
[Fig. 5]
It is a part of the schematic diagram of the property of the application interface of this invention.
[Fig. 6]
It is a part of the schematic diagram of the property of the application interface of this invention. Combined with Figure 5, it becomes the entire property.
[Fig. 7]
It is a detailed diagram of the present invention and illustrates the structure of a bucket object.
[Fig. 8]
It is a schematic diagram of the table map of this invention.
[Fig. 9]
It is a schematic diagram of the bucket object map of this invention.
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| EP1031718A2 | Cited by | European Patent Office (EPO) | Applicant |
| US7685568B2 | Cited by | United States of America | Applicant |
| JP2006528801A | Cited by | Japan | Search report |
9 members in 5 offices
Priority claims5
| Document | Office | Kind | Date |
|---|---|---|---|
| 65395296 | United States of America | A | |
| 65395296 | United States of America | A | |
| 653952 | – | – | – |
| 653952 | United States of America | – | – |
| US19960653952 | – | – | – |
Members9
| Document | Office | Kind | |
|---|---|---|---|
| CA2204797A1 | Canada | A1 | |
| EP0809198A2 | European Patent Office (EPO) | A2 | |
| AU2220797A | Australia | A | |
| US5696961A | United States of America | A | |
| JPH1069410AThis record | Japan | A | |
| EP0809198A3 | European Patent Office (EPO) | A3 | |
| US5920870A | United States of America | A | |
| AU729483B2 | Australia | B2 | |
| CA2204797C | Canada | C |
Numbers
- Publication
- 10-69410
- Publication, DOCDB
- H1069410
- Publication, EPODOC
- JPH1069410
- Application
- 9132157
- Application, DOCDB
- 13215797
- Application, EPODOC
- JP19970132157
Titles2
- Japanese
- 【発明の名称】アプリケーション・プログラムのためのマルチプル・データベース・アクセス・サーバ
- English
- INDUSTRIAL APPLICABILITY: Multiple database access server for application programs
Classification
- CPC, 6
- G06F16/289
- Y10S707/955
- Y10S707/99944
- Y10S707/99931
- Y10S707/99932
- Y10S707/99945
- IPC, 3
- G06F12 00
- G06F9 46
- G06F17 30