JP2007249785A - コンパイルプログラム、仮想データベースリモートアクセス用プログラムの製造方法、及び仮想データベースのリモートアクセス方法 - Google Patents

コンパイルプログラム、仮想データベースリモートアクセス用プログラムの製造方法、及び仮想データベースのリモートアクセス方法 Download PDF

Info

Publication number
JP2007249785A
JP2007249785A JP2006074611A JP2006074611A JP2007249785A JP 2007249785 A JP2007249785 A JP 2007249785A JP 2006074611 A JP2006074611 A JP 2006074611A JP 2006074611 A JP2006074611 A JP 2006074611A JP 2007249785 A JP2007249785 A JP 2007249785A
Authority
JP
Japan
Prior art keywords
database
program
native
dml
rpc
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.)
Pending
Application number
JP2006074611A
Other languages
English (en)
Inventor
Hisashi Goto
寿史 後藤
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2006074611A priority Critical patent/JP2007249785A/ja
Priority to US11/448,928 priority patent/US7693913B2/en
Publication of JP2007249785A publication Critical patent/JP2007249785A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/24Querying
    • G06F16/245Query processing
    • G06F16/2452Query translation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

【課題】本発明では、仮想データベースのリモートアクセス手法により設計時の負担を軽減しつつ、実行時の性能も確保するためのコンパイラを提供する。
【解決手段】アプリケーションプログラムを有する第1の計算機11とネットワークを介して接続される1つ以上のデータベースを有する第2の計算機12とからなる、仮想データベースについてリモートアクセスに用いられるプログラムを生成する処理をコンピュータに実行させるコンパイラは、アプリケーションプログラムのソースコード7から仮想データベースに対するDML実行処理に関する記述部分を、RPC処理に関する記述に置換し(1c)、そのRPC処理に基づいてネイティブデータベースに対するDML実行処理を実行するプログラムを生成する(1e)。
【選択図】図1

Description

本発明は、複数のデータベースに対するリモートアクセス検索技術に関する。
図20は、仮想データベースに対するリモート検索の概念図を示す。アプリケーションサーバ101のアプリケーション103が、データサーバ102に実在するデータベース(ネイティブデータベース)であるデータベースA(104)及びデータベースB(105)にアクセスする。アプリケーション103には、アプリケーションサーバ31に対して、複数のネイティブデータベースを1つのデータベースとして仮想化するための処理がプログラムされている。以下では、このようなデータベースを仮想データベースと称する。
図21は、従来における仮想データベースリモートアクセスシステムを示す。従来は、アプリケーション103が動作するコンピュータ101と異なるコンピュータ102に存在する複数のデータベース(ネイティブデータベース)104,105をあたかも1つのデータベースであるかのように仮想化してアクセスする場合は、以下の手順で処理していた。
(1)仮想データベースに対する検索依頼のDML(Data Manipulation Language)を、アプリケーションサーバ101の仮想データベース制御100の仮想データベースDMLパーザ111において解析する。
(2)その解析結果に基づき、アプリケーションサーバ101の仮想データベース制御106の検索リクエスト分解装置112において、検索依頼のDMLを各データベース104,105に対するDML(ネイティブDML)の検索依頼に分解する。
(3)その分解したネイティブDMLを、リモートアクセスClient制御115とリモートアクセスServer制御116を経由して、各DBMS(DataBase Management System)117,118で実行し、実行結果を逆のルートで送受信する。
(4)アプリケーションサーバ101の仮想データベース制御110の検索リザルト組み立て装置113において、各DBMS117,118のネイティブDMLの実行結果を組み立てる。その組み立てた実行結果を仮想データベースに対する検索結果としてアプリケーション103に返却する。
(5)なお、仮想データベース制御110における上記(1)解析、上記(2)分割、上記(4)組立の各処理を実行する際には、仮想データベースと各データベースの論理構造の関係定義がマッピングリポジトリ114で管理されているので、これを参照する。
このように、クライアント側のアプリケーションには、複数のデータベースをそのアプリケーションに対して1つのデータベースとして仮想化するための対応関係が定義されている(業務論理構築の容易化)。
特開平10−21125号公報
このように、仮想データベースは、アプリケーションからは1つのデータベースに見えるが、実際には複数のデータベースに対応している。そのため、アクセス要求の内容によっては、並列的にアクセス要求を各データベースに対して依頼することができず、逐次的にアクセスしなければならないことがある。また、最終的な検索結果の集約時に、一部の検索結果が、不要なため破棄されることもある。
これは、仮想データベースに対するDMLの分割実行時におけるネイティブDMLのスケジュール論理の問題と、各ネイティブDMLの処理結果の有効性が処理結果を組み立ててみないと分からないという検索結果の依存性の問題とに起因する。
以上の問題のため、従来の仮想データベースのリモートアクセスは、アプリケーションの構築を容易化するメリットの反面、オーバヘッドの大きな非効率的アクセスというデメリットを伴うため、実業務への適用は困難であった。
図22は、従来における、データベースBの検索結果を確認した後でないと、データベースAの検索ができないという検索結果依存性の具体例である。データベースA(104)のレコードとデータベースB(105)のレコードは、それぞれに共通するデータ項目A2/B2で関係付けられている。
アプリケーション103において、「B1が“bbb”に等しいレコードを取り出す」旨のDMLが定義されている。
この場合、まず、アプリケーションサーバ101は、データサーバ102に対して、B1が“bbb”に等しいレコードをデータベースBから取り出すように依頼をする(ステップ101。以下、ステップを「S」と称する。)。
すると、データベースBからレコードRB2とレコードRB4が取り出されて、アプリケーションサーバ101に送られる(S102)。
アプリケーションサーバ101は、データベース102に対して、A2がそのレコードRB2とレコードRB4のB2と等しいレコードをデータベースAから取り出すように依頼をする(S103)
すると、データベースAからレコードRA1とレコードRA2が取り出されて、アプリケーションサーバ101に送られる(S104)。
このように、検索条件がデータベースBのレコードのデータ項目B1に関する条件(B1=bbb:B1がbbbに等しいレコードを取り出す)のため、データベースBを検索した後でないと、データ項目A2/B2を特定できなかった。
このように、従来方式の課題は、アクセス実行時に、仮想データベースとネイティブデータベースの論理構造の関係定義を元に、仮想データベースDML処理をネイティブデータベースDML処理に変換(解析、分解、組立)するため、実行時オーバヘッドが大きくなる点にある。更には、データの依存性に起因して、実行時の通信オーバヘッド(通信回数や転送データ量)が膨らむという課題もあった。
図23は、従来におけるアプリケーションサーバとデータサーバの双方のアプリケーションが連携する構成により業務システムを設計した場合の例である。このような構成はストアドプロシージャで利用されている。
このような構成は、性能重視のシステムであれば、最初から上記の構成で業務システムを設計する。しかしながら、この場合、双方のアプリケーションのインターフェースを調整した設計が必要となるため、開発者にとって設計時の負担が大きくなるという問題があった。
上記課題に鑑み、本発明では、仮想データベースのリモートアクセス手法により設計時の負担を軽減しつつ、実行時の性能も確保するためのコンパイラ及びそれにより生成されたプログラムを搭載した仮想データベースリモートアクセスシステムを提供する。
本発明にかかる、ユーザからの所定の入力パラメータが入力されるアプリケーションプログラムを有する第1の計算機と、該第1の計算機とネットワークを介して接続される1つ以上のデータベースを有する第2の計算機とからなる、前記アプリケーションプログラムに対して前記1以上のデータベースであるネイティブデータベースを1つのデータベースとして仮想化する仮想データベースについてリモートアクセスに用いられるプログラムを生成する処理をコンピュータに実行させるコンパイルプログラムは、前記アプリケーションプログラムのソースコードから前記仮想データベースに対するデータ操作言語(DML)実行処理に関する記述部分を、リモートプロシージャ呼び出し(RPC)処理に関する記述に置換するRPC置換手順と、前記RPC処理に基づいて、前記ネイティブデータベースに対するDML実行処理を実行するプログラムであるネイティブDML実行プログラムを生成するネイティブDML実行プログラム生成手順と、を、コンピュータに実行させることを特徴とする。
このように構成することにより、RPC環境による仮想データベースについてリモートアクセスに用いられるプログラムを生成することができる。
前記コンパイルプログラムは、さらに、前記アプリケーションプログラムのソースコードが入力されるソースコード入力手順と、前記ソースコードから前記仮想データベースに対するDML実行処理に関する入出力情報を抽出する入出力情報抽出手順と、を、コンピュータに実行させることを特徴とする。
このように構成することにより、仮想データベースに対するDML実行処理が記述されたアプリケーションプログラムから容易に、RPC環境による仮想データベースについてリモートアクセスに用いられるプログラムを生成することができる。
前記コンパイルプログラムは、さらに、前記RPCを使用するために、前記第1の計算機に格納される第1のインターフェースと、前記第2の計算機に格納される第2のインターフェースと、を生成するインターフェース生成手順と、を、コンピュータに実行させることを特徴とする。
このように構成することにより、RPCクライアントSTUBとRPCサーバSTUBも生成することができる。
本発明にかかる、ユーザからの所定の入力パラメータが入力されるアプリケーションプログラムを有する第1の計算機と、該第1の計算機とネットワークを介して接続される1つ以上のデータベースを有する第2の計算機とからなる、前記アプリケーションプログラムに対して前記1以上のデータベースであるネイティブデータベースを1つのデータベースとして仮想化する仮想データベースについてリモートアクセスに用いられるプログラムを生成する仮想データベースリモートアクセス用プログラムの製造方法は、前記アプリケーションプログラムのソースコードから前記仮想データベースに対するデータ操作言語(DML)実行処理に関する記述部分を、リモートプロシージャ呼び出し(RPC)処理に関する記述に置換し、前記RPC処理に基づいて前記ネイティブデータベースに対するDML実行処理を実行するプログラムであるネイティブDML実行プログラムを生成することを行うことを特徴とする。
このように構成することにより、RPC環境による仮想データベースについてリモートアクセスに用いられるプログラムを生成することができる。
本発明にかかる、ユーザからの所定の入力パラメータが入力されるアプリケーションプログラムを有する第1の計算機と、該第1の計算機とネットワークを介して接続される1つ以上のデータベースを有する第2の計算機とからなる、前記アプリケーションプログラムに対して前記1以上のデータベースであるネイティブデータベースを1つのデータベースとして仮想化する仮想データベースのリモートアクセス方法は、前記第1の計算機には、前記アプリケーションプログラムと、リモートプロシージャ呼び出し(RPC)を行うための第1のインターフェースとが格納され、前記第2の計算機には、前記ネイティブデータベースに対するデータ操作言語(DML)実行処理を実行するネイティブDML実行プログラムと、リモートプロシージャ呼び出し(RPC)を行うための第2のインターフェースとが格納されており、前記入力パラメータが入力された前記アプリケーションプログラムは前記第1のインターフェースを呼び出し、前記第1のインターフェースは、RPCにより、前記第2のインターフェースへ前記入力パラメータを渡し、前記第2のインターフェースにより前記入力パラメータを渡された前記ネイティブDML実行プログラムは、前記各ネイティブデータベースに対して前記DML実行処理を実行して、各ネイティブデータベースから得られた実行結果を組み立てて1つの実行結果とし、前記組み立てた1つの実行結果を前記仮想データベースの実行結果として提供することを特徴とする。
このように構成することにより、RPCを用いるため、第1の計算機と第2の計算機間は1往復の通信で済むので、仮想データベース機能を適用しつつ、高性能なリモートデータベースアクセスが可能となる。
本発明を用いることにより、業務論理構築の容易化を狙いとした仮想データベース機能を適用しつつ、高性能なリモートデータベースアクセスが可能となる。
図1は、本発明にかかる仮想データベースリモートアクセスシステム及びそれを実現するプログラムを生成するコンパイラの構成概念図を示す。
本発明にかかるコンパイラ(インテリジェントコンパイラ)1は、ユーザからの所定の入力パラメータが入力されるアプリケーションプログラム3を有する第1の計算機11と、第1の計算機11とネットワークを介して接続される1つ以上のネイティブデータベース13を有する第2の計算機12とからなる、アプリケーションプログラム3に対して1以上のネイティブデータベースを1つのデータベースとして仮想化する仮想データベースについてリモートアクセスに用いられるプログラムを生成する。
本発明にかかるコンパイラ1は、ソースコード入力手順1aと、入出力情報抽出手順1bと、RPC置換手順1cと、インターフェース生成手順1dと、ネイティブDML実行プログラム生成手順1eと、コンパイル手順1fとを行う。
ソースコード入力手順1aでは、アプリケーションプログラムのソースコード7が入力される。入出力情報抽出手順1bでは、そのソースコード7から仮想データベースに対するDML実行処理に関する入出力情報を抽出する。
RPC置換手順1cでは、そのソースコード7から前記仮想データベースに対するデータ操作言語(DML)実行処理に関する記述部分を、リモートプロシージャ呼び出し(RPC)処理に関する記述に置換する。
インターフェース生成手順1dでは、RPCを使用するために、前記第1の計算機(クライアント)に格納される第1のインターフェースと、前記第2の計算機(サーバ)に格納される第2のインターフェースと、を生成する。
ネイティブDML実行プログラム生成手順1eでは、前記RPCに基づいて前記ネイティブデータベースに対するDML実行処理を実行するプログラム(ネイティブDML実行プログラム)を生成する。
ネイティブDML実行プログラム生成手順1eでは、まず、前記ネイティブデータベースと前記仮想データベースとのデータ構造との関係に関する情報が格納されているデータ構造関係情報(マッピングレポジトリ)2に基づいて、仮想データベースに対するDML実行処理に含まれる命令及び変数と、その抽出された入出力情報と、ネイティブデータベースとの対応関係を示す対応関係情報(対応テーブル)を生成する。
さらに、ネイティブDML実行プログラム生成手順1eは、その対応テーブルに基づいて、当該ネイティブDML実行プログラム生成手順が実行する処理のスケジュール情報(スケジュールテーブル)を生成する。
コンパイル手順1fでは、DML実行処理に関する記述部分がRPC処理に関する記述に置換されたソースコードと、第1のインターフェースについてのソースコードと、第2のインターフェースについてのソースコードと、ネイティブDML実行プログラムのソースコードと、をコンパイルして、それぞれのロードモジュール(アプリケーションプログラム3、第1のインターフェース4、第2のインターフェース5、ネイティブDML実行プログラム6)を生成する。
次に、本発明にかかるコンパイラ1により生成された、アプリケーションプログラム3、第1のインターフェース4、第2のインターフェース5、ネイティブDML実行プログラム6を使用した、本発明にかかる仮想データベースリモートアクセスシステム10について説明する。
仮想データベースリモートアクセスシステム10は、少なくとも第1の計算機11と、第2の計算機12を有する。第1の計算機11には、アプリケーションプログラム3、第1のインターフェース4とが格納されている。第2の計算機12には、第2のインターフェース5、ネイティブDML実行プログラム6とが格納されている。
ユーザにより入力パラメータが入力されたアプリケーションプログラム3は第1のインターフェース4を呼び出す。第1のインターフェース4は、RPCにより、第2のインターフェース5へその入力パラメータを渡す。
第2のインターフェース5によりその入力パラメータを渡されたネイティブDML実行プログラム6は、各ネイティブデータベース13に対してDML実行処理を実行する。そして、各ネイティブデータベースから得られた実行結果を組み立てて1つの実行結果とする。そして、その組み立てた1つの実行結果を前記仮想データベースの実行結果としてユーザに提供する。
このとき、ネイティブDML実行プログラム6は、複数のネイティブデータベースのうちの1つのネイティブデータベースに対するDML実行処理の実行結果に基づいて、他のネイティブデータベースに対してDML実行処理を実行することができる。
それでは、以下に本発明の実施の形態の詳細について説明する。
図2は、本実施形態におけるインテリジェントコンパイラ及び仮想データベースリモートアクセスシステムを示す。従来方式と本発明の方式の際立った相違点は、従来方式がRDA(リモートデータベースアクセス)に基づいている点に対して、本発明がRPC(リモートプロシージャ呼出し)に基づいている点にある。
本発明では、以下の機能を有するインテリジェントコンパイラを提供する。(1)アプリケーションプログラムに記述された仮想データベースのDML実行処理を、データサーバで動作するサーバAPL(APL:アプリケーション)に対するリモートプロシージャ呼出し(RPC)処理に書き換える。(2)さらに、複数のネイティブデータベースにアクセスし、処理結果を組み立てる論理を備えたサーバAPLのプログラムを生成する。(3)なお、本コンパイラはサーバAPLと共に、RPC用のスタブプログラムも生成する。
では、図2について説明する。同図において、仮想データベースリモートアクセスシステム30は、アプリケーションサーバ31(本実施形態では、クライアントに相当する)と、データサーバ32(本実施形態では、サーバに相当する)から構成される。
アプリケーションサーバ31には、アプリケーションプログラム(以下、「アプリケーション」という)23と、RPCクライアント側STUBプログラム(以下、「RPCクライアントSTUB」という)24、RPC/CL(リモートプロシージャ呼び出しクライアント側制御部)33を備えている。
データサーバ32には、RPCサーバ側STUBプログラム(以下、「RPCサーバSTUB」という)25、サーバアプリケーションプログラム(以下、「サーバAPL」という)26、RPC/SV(リモートプロシージャ呼び出しサーバ側制御部)34、DBMS−A(35)、データベースA(36)、DBMS−B(37)、データベースB(38)を備えている。なお、データベースA、データベースBは、仮想データベースを構築する実体のデータベースであるので、ネイティブデータベースである。
ユーザは、仮想データベースリモートアクセスシステム30に対して、検索条件(入力パラメータ)を入力する。すなわち、アプリケーションサーバ31のアプリケーション23に入力パラメータが入力される。
アプリケーション23のSTUB呼び出し処理23は、STUB24を呼び出す。STUB24,25を介してRPCにより、サーバAPL26にその入力パラメータを引き渡す。
サーバAPL26では、その入力パラメータを検索条件として、各DBMS(A,B)に検索を依頼する。DBMSは、対応するそれぞれのデータベース(A,B)に対して検索処理を実行し、検索処理結果をサーバAPL26に渡す。
サーバAPL26は、各DBMSから得られた検索結果を組み立てて仮想データベースとしての検索結果とし、その仮想データベースとしての検索結果をSTUB25に渡す。RPCにより仮想データベースの検索結果がSTUB24に通知される。STUB24からアプリケーション23にその仮想データベースの検索結果が渡され、ユーザに提供される。
さて、上記のような仮想データベースリモートアクセスシステムを実現するために、上述した4つのプログラム(アプリケーション23、RPCクライアントSTUB24、RPCサーバSTUB25、サーバAPL26)が必要となる。そこで、本実施形態では、インテリジェントコンパイラ20を使用する。
インテリジェントコンパイラ20を用いて、仮想データベースに対するDML実行処理(以下、仮想データベースDML実行処理という)が記述されたアプリケーションのソースコード21のコンパイルを実行する。そうすると、インテリジェントコンパイラ20は、テータベース定義がなされたマッピングリポジトリ22を参照して、ソースコード21の仮想データベースDML実行処理部分がSTUB24を呼び出すSTUB呼び出し処理に書き換えられたアプリケーション23、RPCクライアントSTUB24、RPCサーバSTUB25、サーバAPL26が生成される。
このような開発環境で作成したアプリケーション23、RPCクライアントSTUB24、RPCサーバSTUB25、及びサーバAPL26を実行環境(アプリケーションサーバ31、データサーバ)に配備する。
このように、本実施形態は、アプリケーションのコンパイル時に、仮想データベースとネイティブデータベースの論理構造の関係定義を取り込みつつコンパイル処理を実行するインテリジェントコンパイラと、分散システム環境におけるアプリケーション間通信機能であるRPC(リモートプロシージャ呼出し機構)との組合せである。
図3は、本実施形態におけるインテリジェントコンパイラ20の機能を示す。インテリジェントコンパイラ20の名前の由来は、本発明のコンパイラが、単に「(i)言語コンパイラ」および「(ii)RPCコンパイラ」の機能を包含しているだけでなく、(i)+(ii)+αとしてプラスアルファの機能を備えているためである。
(i)の機能:ソースプログラムを入力としてロードモジュールを生成する。
(ii)の機能:RPCの入出力情報を入力としてSTUB(クライアント/サーバ)を生成する。
αの機能:DMLを入力として、これをRPCに置換し、サーバAPLを生成する。
α部分(マッピングリポジトリを参照してSTUBおよびサーバAPL生成する)の処理は、仮想データベース制御の「仮想データベースDMLパーザ機能」を装備していないと実行できない処理である。この仮想データベースDMLパーザ機能をインテリジェンスとみなし、インテリジェンスを装備したコンパイラだというのが命名の理由である。
図3において、仮想データベースDML実行処理が含まれたアプリケーションのソースプログラム21が入力されると、インテリジェントコンパイラ20は、データベース定義マッピングレポジトリ22を参照して、まず、4つのソースプログラム23a,24a,25a,26aを生成する。
ソースプログラム23aは、ソースプログラム21の「仮想データベースDML実行処理」が「RPC」を実行するためにRPCクライアントSTUB24を呼び出す処理に置換されたソースコードである。
ソースプログラム24a、25aはそれぞれ、インターフェース定義40に基づいて、RPCをRPCコンパイラによりコンパイルすると得られるクライアント側のRPCのSTUB、サーバ側のRPCのSTUBである。
ソースプログラム26aは、マッピングリポジトリ22に基づいて、各ネイティブデータベースに対して検索処理を行って検索結果を収集し、各データベースから得られた検索結果を組み立てて仮想データベースとしての検索結果とするためのプログラムである。
4つのソースプログラム23a,24a,25a,26aは、言語コンパイラ42によりコンパイルされて、それぞれロードモジュール23b,24b,25b,26となる。
図4は、本実施形態におけるインテリジェントコンパイラ20の使用例を示す。同図は、「DMLの実行」部分を「STUBの呼出し」に置き換えた処理論理を簡単に説明するためのものである。
開発者が、パーソナルコンピュータを用いて、所定のアプリケーションを作成する場合を例に説明する。なお、マッピングリポジトリ22は予め作成されている。
アプリケーション23のソースプログラム21には、仮想データベースに対するDML実行処理が記述されている。このままでは、従来のように、仮想データベース制御110(図21参照)にDMLを引き渡して、DML処理結果を返してもらうことになる。
インテリジェントコンパイラ20によりそのソースプログラム21をコンパイルすると、コンパイル前の「DMLの実行」処理に相当する部分が、コンパイル後には「STUBの呼び出し」処理に書き換えられたアプリケーション23が得られる。
その「STUBの呼び出し」処理により呼び出されたSTUBに入力パラメータを引き渡すと、出力パラメータが得られる。
次に、インテリジェントコンパイラ20により行われる処理の詳細を説明する。
図5は、本実施形態におけるインテリジェントコンパイラ20の処理フローを示す。上述の通り、仮想データベースについてのDML実行処理のソースプログラム21が入力されると、インテリジェントコンパイラ20は、データベース定義マッピングレポジトリ22を参照して、4つのプログラムを生成するために、以下の処理を行う。
まず、「検索の入出力情報抽出処理」(S1)が実行される。ここでは、アプリケーションのソースコード21の仮想データベースに対するDMLから検索処理の入力情報と出力情報を抽出する。
次に、「STUB(CL:クライアント)生成」処理が実行される(S2)。ここでは、APL名、RPC種別などのコンパイルパラメータから生成した宛先解決用ソースコード(後述する)と、S1の抽出情報と、からRPCクライアントSTUB24a(ソースコード)が生成される。
次に、「STUB(SV:サーバ)生成」処理が実行される(S3)。ここでは、APL名、RPC種別などのコンパイルパラメータと、S1の抽出情報と、からRPCサーバSTUB25a(ソースコード)が生成される。
次に、「DML−RPC置換」処理(S4)が実行される。ここでは、アプリケーションの仮想データベースDML実行処理が、S1で抽出した入出力情報によるRPCクライアントSTUB呼出し処理に置き換えられたアプリケーションのソースコード23aが生成される。
次に、「対応テーブル作成」処理が実行される(S5)。ここでは、マッピングリポジトリ22が参照されて、仮想データベースDMLの変数(S1の入出力情報を含む)及び命令と、ネイティブデータベースとの対応テーブルが作成される。
次に、「スケジュールテーブル/サーバAPL生成」処理が実行される(S6)。ここでは、S5で作成された対応テーブルから、ネイティブデータベースについてのスケジュールテーブルが生成される。さらに、そのスケジュールテーブルは、そのRPCサーバAPLのソースコード26aとして展開される。
次に、「ロードモジュール変換」処理が実行される。ここでは、S2,S3,S4,S6で生成したソースコード23a,24a,25a,26aがコンパイル及びリンクされて、それぞれロードモジュール23b,24b,25b,26bに変換される。
図6は、ネイティブデータベース及び仮想データベースの論理構造の一例を示す。社会保険サービスシステムを例として、ネイティブデータベース及び仮想データベースの論理構造を説明する。
同図は、データベースA(ネイティブDB)、データベースB(ネイティブDB)、データベースC(仮想DB)の論理構造を示している。データベースA(ネイティブデータベース)は、保険に関するものである。データベースB(ネイティブデータベース)は、住民票に関するものである。データベースC(仮想データベース)が、検索サービスに用いられるものである。
データベースAは、レコード要素として、「A1(加入日)」、「A2(識別番号)」(制約属性:主キー)、「A3(種別)」がある。
データベースBは、レコード要素として、「B1(住所)」、「B2(識別番号)」(制約属性:主キー)、「B3(氏名)」、「B4(生年月日)」がある。
データベースCは、データベースAの「A2(識別番号)」(データ属性:Integer)とデータベースBの「B2(識別番号)」(データ属性:String)とを関連付けることにより仮想的に構成されるものである。データベースCは、レコード要素として、「C1(加入日)」、「C2(識別番号)」、「C3(種別)」、「C4(住所)」、「C5(氏名)」、「C6(生年月日)」がある。
この論理構造は、マッピングリポジトリ22に予め定義しておく。このマッピングリポジトリ22から、仮想DB(データベースC)とネイティブDB(データベースA,B)のレコード要素の対応関係を参照することができる。
なお、後述するが、このマッピングリポジトリ22のデータ属性が参照されることで、識別番号の処理時に、データベースAとBのデータ属性の相違を吸収するためのデータ型変換(String⇔Integer)を行うことができる。
以下では、図5及びその他の図面を参照しながら、図6のサンプルをパラメータとして、インテリジェントコンパイラ20の処理、及びインテリジェントコンパイラ20により生成されたプログラムの処理を説明する。
なお、インテリジェントコンパイラ20が生成するソースコードのプログラミング記述は、利用者が選択したプログラミング言語種別(Java(登録商標)、COBOL、C、C++、Visual Basic等)に応じて異なる。本実施形態の実装では、コンパイラへの実行指示パラメータとしてプログラミング言語種別を指定して、これを基にソースコードの生成およびロードモジュールへの変換を行っている。以降のソースコードの断片は、特定のプログラミング言語仕様に基づいた記述ではなく、ソースコードの処理論理が伝わる程度の擬似コードである。
なお、データベースの検索処理におけるデータ構造の扱いは、データベースの種類(リレーショナルデータベース、ネットワークデータベース、XMLデータベース等)とプログラミング言語種別に応じて異なる。例えば、検索結果の複数レコード(出力情報)は、リレーショナルデータベースをJava(登録商標)で扱う場合は、「ResultSet」というオブジェクトとして表現され、また、ネットワークデータベースをCOBOLで扱う場合はDBMS内のバッファとして表現されて、アプリケーションのレコード作業域へレコード単位に複写されて処理される。下記のソースコードのサンプルでは、アプリケーションは検索結果の複数レコードを「ResultSet」で、RPCシステムはレコード要素の配列で表現した配列の先頭アドレスで情報を受け渡す扱いとしている。
図5において、インテリジェントコンパイラ20によるコンパイル対象のアプリケーションソースプログラムに、例えば、仮想データベースCに対する以下のDMLが含まれているとする。S1(検索の入出力情報抽出)では、
DML(SELECT * WHERE B1=bbb)
の内容から図7の入出力情報が抽出される。
図8は、S2の「STUB(CL)生成」処理で生成されたSTUB24のフローを示す。まず、サーバAPL名をキーにして、サーバAPLリファレンス情報が取得される(S11)。
アプリケーションのソースコード21には、DMLと共に記述されたデータベース名がある。サーバAPL名は、このデータベース名を基にしてインテリジェントコンパイラ20により自動生成される。なお、自動生成した名前がRPCシステムに既に存在するサーバAPL名と重複する場合は、インテリジェントコンパイラ20の実行時に、利用者によりサーバAPL名を指定するようにしてもよい。
また、サーバAPLリファレンス情報は、RPCネーミングサービスに格納されており、RPC/CLがRPC/SVに接続する際に必要となる所在情報(アドレス)である。これについては、図9で説明する。
次に、サーバAPLリファレンス情報と入力パラメータが指定されて、RPCにサーバAPL呼び出しを依頼する(S12)。
次に、RPCから受け取った処理結果が正常か否かが判断される(S13)。その処理結果が正常であれば、サーバAPLから受信した処理結果の情報を出力パラメータに格納する(S14)。その処理結果が異常であれば、サーバAPLから受信したエラー情報を出力パラメータに格納する(S15)。
ここで、宛先解決用ソースコードについて説明する。宛先解決用ソースコードとは、RPCにおいて、アプリケーションがRPCクライアントSTUB呼び出しの前処理として、サーバAPLリファレンス情報を取得する処理論理のことを指している。
なお、通常のRPCでは、宛先解決用ソースコード(RPCクライアントSTUB呼び出しの前処理)はアプリケーション内に記載されるが、本実施形態ではRPCクライアントSTUB内の処理として埋め込まれている。この関係を図10に示す。
図9は、本実施形態における宛先解決用ソースコードについて説明する図である。上段は通常のRPCにおけるクライアントAPLに宛先解決処理を実装した構成を示す。下段は本実施形態のRPCにおけるクライアントSTUBに宛先解決処理を実装した構成を示す。符号50はRPCネーミングサービスを示し、符号51はネットワークを示す。
通常のRPCにおけるクライアントAPLに宛先解決処理を実装した構成の場合、クライアントAPL内の「(1)宛先解決処理」からサーバAPL名がRPCネーミングサービス50に渡されて、RPCネーミングサービス50からそのサーバAPL名に対応するサーバAPLリファレンス情報が返却される。そして、「(2)STUB呼び出し」を呼び出し、その入力情報として、サーバAPLリファレンス情報と入力パラメータをSTUB24に渡す。RPC/CL33は、STUB24から渡されたサーバAPLリファレンス情報を基にRPC/SV34と接続する。
一方、本実施形態のRPCにおけるクライアントSTUBに宛先解決処理を実装した構成、クライアントAPIで「(2)STUB呼び出し」によりSTUB24を呼び出す。すると、STUB24で「(1)宛先解決処理」が実行されて、サーバAPL名がRPCネーミングサービス50に渡されて、RPCネーミングサービス50からそのサーバAPL名に対応するサーバAPLリファレンス情報が返却される。RPC/CL33は、STUB24から渡されたサーバAPLリファレンス情報を基にRPC/SV34と接続する。
本実施形態で、上記のように通常のRPCとは異なる構成とした理由は、CORBA/RMIなどRPCの種類に依存する処理をSTUBに吸収して局所化し、アプリケーションにはできるだけ持ち込まないようにするためである。
なお、通常の構成通りに実装してもよい。通常通りの構成にする場合は、アプリケーション内のDML呼出し処理を、「(1)宛先解決処理」と「(2)STUB呼び出し処理」の2つの処理で置き換えるようにインテリジェントコンパイラ20に修正を施す必要がある。
なお、本実施形態の場合、宛先解決処理は、アプリケーション開発者がコーディングするわけではなく、アプリケーション開発者がコーディングしたDMLからコンパイラが自動生成するため、上記のように通常のRPC構成と異なっていても、アプリケーション開発者の負担とならない。
図10は、図8のフローに対応する簡略化した擬似コード例である。同図の擬似コードが、インテリジェントコンパイラ20のS2の処理により、ソースコード24aとして生成される。STUB24は、STUB名:ApplicationServerStub、入力パラメータ:c4、出力パラメータ:c1[],c2[],c3[],c4[],c5[],c6[]、復帰コード:rc、エラーコード:erで定義されている。
S11では、サーバAPL名「ServerAplDb_C」をキーにして、サーバAPLリファレンス情報srが取得される。このサーバAPL名「ServerAplDb_C」は、DB名「仮想データベースC」に基づいてコンパイル時に自動生成された名称である。「rpcXXX_naming_service_lookup」は、指定RPC種別に対応するネーミングサービスである。
S12では、サーバAPLリファレンス情報sr、入力パラメータc4、出力パラメータ_rc,_er,_c1[],_c2[],_c3[],_c4[],_c5[],_c6[]を「rpcXXX_call」に指定して、サーバAPL呼出しを依頼する。
S13でサーバAPLの処理結果が正常(_rc==OK)の場合、S14で、サーバAPLから受信した処理結果の情報を出力パラメータc1,c2,c3,c4,c5,c6に格納する。
S13でサーバAPLの処理結果が異常の場合、S15でサーバAPLから受信したエラー情報を出力パラメータerに格納する。
図11は、S3の「STUB(SV)生成」処理で生成されたSTUB25のフローを示す。まず、サーバAPLリファレンス情報と入力パラメータが指定されて、サーバAPLが呼び出される(S21)。
次に、呼び出したサーバAPLによる処理結果が正常か否かが判断される(S22)。その処理結果が正常であれば、正常処理結果をRPCに返却する(S23)。その処理結果が異常であれば、エラー情報をRPCに返却する(S24)。
図12は、図11のフローに対応する簡略化した擬似コード例である。同図の擬似コードが、インテリジェントコンパイラ20のS3の処理により、ソースコード25aとして生成される。
STUB25は、STUB名:DatabaseServerStub、入力パラメータ:sr(ServerAplReference),c4、出力パラメータ:rc,er,c1[],c2[],c3[],c4[],c5[],c6[]で定義されている。
S21では、サーバAPLリファレンス情報sr、入力パラメータc4、出力パラメータ_rc,_er,_c1[],_c2[],_c3[],_c4[],_c5[],_c6[]を、「ServerAplDb_C」に指定してサーバAPL呼出しを依頼する。 このサーバAPL名「ServerAplDb_C」は、DB名「仮想データベースC」に基づいてコンパイル時に自動生成された名称である。
S22でサーバAPLから受信した処理結果が正常(_rc==OK)の場合、S23でサーバAPLから受信した処理結果の情報を出力パラメータc1,c2,c3,c4,c5,c6に格納する。
S22でサーバAPLの処理結果が異常の場合、S24でサーバAPLから受信したエラー情報を出力パラメータerに格納する。
次に、S4において、「DML−RPC置換処理」により、アプリケーションのソースコード21のDML実行処理がRPCに置換されたソースコード23aについて説明する。
図13は、「DML−RPC置換処理(S4)」前後のアプリケーションのソースコードを示す。同図では、アプリケーションのソースコードに記述されている仮想データベースDML実行処理が、S1で抽出された入出力情報によるRPCクライアントSTUB呼出し処理に置き換えられている。
同図に示す通り、S4の処理により、アプリケーションのソースコード21の一部が置換される。なお、コンパイラによる置換処理を高速化するために、記述形式の上で規約を設けても良いし、特に規約を設けず当該プログラミング言語の標準規約通りでも良い。同図の@の行は高速置換のための規約の例である。
次に、S5の対応テーブル作成処理について説明する。
図14は、S5で作成された対応テーブルを示す。対応テーブル60は、マッピングリポジトリ(図6)を参照して作成される。対応テーブル60は、仮想データベース(61)のDMLの変数(64,65,66)及び命令(63)と、ネイティブデータベース(62)との対応関係を示すものである。
上記したように、本実施形態の例における仮想データベースDMLは、
DML(SELECT * WHERE B1=bbb)
であるから、DML命令(63)は「SELECT」が格納される。また、図7より、入力情報(64)には、「C4」が格納される。また、図7より、C4の値は「bbb」であるから、展開形(65)には、「C4(bbb)」が格納される。
マッピングリポジトリ22(図6)より、この入力情報に対応するネイティブデータベース(66)はデータベース「B」であり、DMLの対象となるレコード要素(67)は「B1」であり、その属性(68)は「String」である。
また、図7より、出力情報(64)には「*」(全要素)が格納され、その展開形(65)には「C1」,「C2」,「C3」,「C4」,「C5」,「C6」が格納される。
マッピングリポジトリ22(図6)より、出力情報「C1」に対応するネイティブデータベース(66)はデータベース「A」であり、DMLの対象となるレコード要素(67)は「A1」であり、その属性(68)は「Date」である。出力情報「C2」に対応するネイティブデータベース(66)はデータベース「A」,「B」であり、DMLの対象となるレコード要素(67)はそれぞれ「A2」,「B2」であり、その属性(68)はそれぞれ「Integer」,「String」である。出力情報「C3」に対応するネイティブデータベース(66)はデータベース「A」であり、DMLの対象となるレコード要素(67)は「A3」であり、その属性(68)は「Character」である。出力情報「C4」に対応するネイティブデータベース(66)はデータベース「B」であり、DMLの対象となるレコード要素(67)は「B1」であり、その属性(68)は「String」である。出力情報「C5」に対応するネイティブデータベース(66)はデータベース「B」であり、DMLの対象となるレコード要素(67)は「B3」であり、その属性(68)は「String」である。出力情報「C6」に対応するネイティブデータベース(66)はデータベース「B」であり、DMLの対象となるレコード要素(67)は「B4」であり、その属性(68)は「Date」である。
次に、S6のネイティブデータベースのスケジュールテーブルの作成について説明する。
図15は、S6で作成されるスケジュールテーブル70を示す。スケジュールテーブル70には、サーバAPLに、「どのような処理順」(処理順番)で、「どの処理種別」(処理種別)を、「どのネイティブデータベース」(データベース)に対して、「どのような内容の処理」(処理内容)を行うかをスケジューリング化した内容が格納される。このスケジュールテーブル70は、図14の対応テーブル60に基づいて作成される。
処理順番1(以下、「Pro1」と称する)には、処理種別「アクセス」、データベース「B」が格納され、処理内容としては「データベースBのレコード要素B1がbbbに等しいレコードを取り出す」。
処理順番2(以下、「Pro2」と称する)には、処理種別「データ型変換」が格納され、処理内容としては「Pro1の処理結果レコードのレコード要素B2の値をString型(B2)からInteger型(A2)に変換する」。このデータ型変換では、マッピングリポジトリ22(図6)を参照して、String型(B2)からInteger型(A2)へ変換している。
処理順番3(以下、「Pro3」と称する)には、処理種別「アクセス」、データベース「A」が格納され、処理内容としては「データベースAのレコード要素A2の値がPro2で求めた値に等しいレコードを取り出す」。
処理順番4(以下、「Pro4」と称する)には、処理種別「結果組み立て」、データベース「A,B」が格納され、処理内容としては「Pro2とPro3におけるデータベースA,Bの検索結果から仮想データベースの検索結果を組み立てる」。
このようにして生成されたスケジュールテーブル70に基づいて、以下に説明するRPCサーバAPLのソースコード26aが、インテリジェントコンパイラ20により生成される。
図16は、S6のスケジュールテーブル70に基づいて「サーバAPL生成」処理で生成されたサーバAPL26のフローを示す。このフローは、インテリジェントコンパイラ20が決定した検索スケジュール(スケジュールテーブル70)に沿って複数のデータベースを検索するものである。
なお、このサーバAPLのフローは、開発者が設計したアプリケーションにおける仮想データベースのDML記述、および仮想データベースとネイティブデータベースのマッピングに依存する。同図のフローチャートは、これらの因子には依存しない共通論理の範囲内で記載している。
まず、依頼元パラメータ及び作業域内の検索結果データから検索の条件データを抽出する(S31)。初回のみは依頼元パラメータから検索の条件データを抽出し、2回目以降は、作業域内の検索結果データから検索の条件データを抽出する。なお、作業域には、後述のS34で検索結果データが格納される。
次に、S31で抽出した条件データをネイティブDMLに指定し、そのネイティブDMLを実行する(S32)。ここで、ネイティブDMLとは、ネイティブデータベースのDBMSに対してDMLを実行することを示す。
次に、そのネイティブDMLの実行による検索結果が正常か否かを判断する(S33)。具体的には、実行したネイティブDMLの処理結果、即ちDBMSからの復帰コードが判断条件となる。その処理結果が異常であれば、異常結果をSTUB25に復帰する(S38)。その検索結果が正常であれば、ネイディブDMLの実行結果を作業域に格納する(S34)。この作業域に格納した結果がS31で次回以降の検索に用いられる。
検索をまだ継続するか否かが判断され(S35)、ネイティブデータベース数分、S31〜S35の処理が繰り返される。
検索対象の全ネイティブデータベースの検索が完了すると、作業域の情報(ネイティブデータベース検索結果)を組み立てて、仮想データベースの検索結果とする(S36)。その正常な仮想データベースの検索結果をSTUB25に復帰する(S38)。
図17A及び図17Bは、図16のフローに対応する簡略化した擬似コード例である。同図の擬似ソースコード26aが、インテリジェントコンパイラ20のS6の処理により、スケジュールテーブルに基づいて生成される。
RPCサーバAPL26は、サーバAPL名:ServerAplDb_C、入力パラメータ:sr,c4、出力パラメータ:_rc,_er,_c1[],_c2[],_c3[],_c4[],_c5[],_c6[]で定義されている。
RPCサーバAPL26は、インテリジェント20により決定された検索スケジュール(スケジュールテーブル70)に沿って複数のネイティブデータベースを検索する。図17A及び図17BのPro1,Pro2,Pro3,Pro4は、図15のPro1,Pro2,Pro3,Pro4に対応する。
まず、データベースBのレコード要素B1がbbbに等しいレコードを取り出す(Pro1)ために、以下のS31〜S34,S38を行う。S31では、依頼元パラメータc4から検索の条件データを抽出して、パラメータb1に格納する。
S32では、抽出した条件データを指定してネイティブDML(“SELECT B1,B2,B3,B4 WHERE B1=b1”)をネイティブデータベースBに対して実行する。
S33でネイティブDMLの実行による検索結果が正常(rc==OK)の場合、S34でネイティブDMLの実行結果を作業域b1[i],b2[i],b3[i],b4[i]に格納する(検索結果に次レコードが存在する間反復する。)
S33でネイティブDMLの実行による検索結果が異常の場合、S38で異常の処理結果をSTUBに復帰する。
次に、Pro1の処理結果レコードのレコード要素B2の値をString型(B2)からInteger型(A2)に変換する(Pro2)。その変換した値を作業域a[i]に格納する。
次に、データベースAのレコード要素A2の値がPro2で求めた値に等しいレコードを取り出す(Pro3)ために、以下のS31〜S34,S38を行う。S31では、作業域内の検索結果データa2[i]から検索の条件データを抽出して、パラメータa2に格納する。
S32では、抽出した条件データを指定してネイティブDML(“SELECT A1,A2,A3 WHERE A2=a2”)をデータベースAに対して実行する。
S33でネイティブDMLの実行による検索結果が正常(rc==OK)の場合、S34でネイティブDMLの実行結果を作業域a1[j],a2[j],a3[j]に格納する(検索結果に次レコードが存在する間反復する。)
S33でネイティブDMLの実行による検索結果が異常の場合、S38で異常の処理結果をSTUBに復帰する。
次に、Pro2とPro3におけるデータベースA,Bの検索結果から仮想データベースの検索結果を組み立てる(Pro4)ため、S36〜S37を行う。S36では、各配列要素に対して以下の処理が実行される。作業域に格納されたデータベースA,Bの検索結果a1[j],a2[j],a3[j]、b1[i],b3[i],b4[i]をそれぞれ、仮想データベースの検索結果としての出力パラメータ_c1[j],_c2[j],_c3[j],_c4[j],_c5[j],_c6[j]に格納する。S37では、その正常な仮想データベースの検索結果をSTUB25に復帰する
次に、S7において行われるロードモジュール変換について説明する。以下のソースコードを入力として当該ソースコードを記述したプログラミング言語仕様に基づいてコンパイルが行われる(通常の言語コンパイル処理であり詳細は省略)。
・アプリケーション(DML−RPC変換後のソースコード):S4のアウトプット
・RPCクライアントSTUB :S2のアウトプット
・RPCサーバSTUB :S3のアウトプット
・RPCサーバAPL :S6のアウトプット
このようにして、インテリジェントコンパイラ20により、アプリケーション23、RPCクライアントSTUB24、RPCサーバSTUB25、RPCサーバAPL26が生成される。以下では、これらのロードモジュールを実行環境に配備した仮想データベースリモートアクセスシステムについて説明する。
図18は、本実施形態におけるインテリジェントコンパイラ20により得られた4つのロードモジュールを実装した仮想データベースリモートアクセスシステムを示す。インテリジェントコンパイラ20により生成されたアプリケーション23とRPCクライアントSTUB24は、アプリケーションサーバ31に配備される。インテリジェントコンパイラ20により得られたRPCサーバSTUB25とRPCサーバAPL26は、データサーバ32に配備される。
上述の通り、アプリケーション23において、仮想データベースに対するDML実行処理はインテリジェントコンパイラ20によりSTUB呼び出し処理に変換されている。
それでは、仮想データベースリモートアクセスシステム30の使用例について説明する。ユーザは、仮想データベースリモートアクセスシステム30に対して、検索条件(入力パラメータ)を入力する。つまり、アプリケーションサーバ31に入力パラメータを入力する。
アプリケーション23のSTUB呼び出し処理では、検索条件のパラメータB1(bbb)を指定して、STUB24が呼び出される(S41)。そうすると、RPCによりパラメータB1(bbb)がリモートのSTUB25経由でサーバAPL26に通知される(S42)。
サーバAPL26は、通知された検索条件を基にネイティブAPI(Application Program Interface)を実行する。そうすると、DBMS−A(35)及びDBMS−B(37)はそれぞれ、データベースA(36),データベースB(38)に対して検索処理を実行し、検索処理結果をサーバAPL26に渡す。サーバAPL26は、各DBMSから得られた検索結果を組み立てて仮想データベースとしての検索結果とする(S43)。
サーバAPL26は、その仮想データベースの検索結果をSTUB25に返却する(S44)。RPCにより仮想データベースの検索結果がSTUB24に通知される(S45)。STUB24からSTUB呼び出しプログラム23にその仮想データベースの検索結果がアプリケーション23に返却される(S46)。そして、アプリケーション23は、仮想データベースの検索結果をユーザに提供する。
なお、本実施形態では、入力パラメータは1つ、出力パラメータは6つの場合を例に挙げて説明したが、これに限定されず、用途に応じて入出力パラメータを静的に変更してもよい。
図19は、本実施形態におけるインテリジェントコンパイラ20が実行されるハードウェア環境の構成ブロック図である。同図において、コンピュータ80は、CPU82、リードオンリメモリ(ROM)83、ランダムアクセスメモリ(RAM)86、通信インターフェース(以下、インターフェースをI/Fという)84、記憶装置87、出力I/F81、入力I/F85、可搬型記憶媒体の読み取り装置88、およびこれらの全てが接続されたバス89、出力I/F81に接続している出力装置90、入力I/F85に接続している入力装置91によって構成されている。
記憶装置87としてはハードディスク、磁気ディスクなど様々な形式の記憶装置を使用することができる。記憶装置87またはROM83には、上記の実施形態で用いたインテリジェントコンパイラプログラムが格納されている。また、記憶装置87には、マッピングレポジトリ等が格納される。
本実施形態にかかるプログラムは、プログラム提供者側からネットワーク89、および通信I/F84を介して、例えば記憶装置87に格納してもよい。また、このプログラムは、市販され、流通している可搬型記憶媒体に格納され、読み取り装置88にセットされて、CPU82によって実行してもよい。可搬型記憶媒体としてはCD−ROM、フレキシブルディスク、光ディスク、光磁気ディスク、ICカードなど様々な形式の記憶媒体を使用することができ、このような記憶媒体に格納されたプログラムが読み取り装置88によって読み取られる。
また、入力装置91には、キーボード、マウス、または電子カメラ、マイク、スキャナ、センサ、タブレットなどを用いることが可能である。また、出力装置90には、ディスプレイ、プリンタ、スピーカなどを用いることが可能である。また、ネットワーク89は、インターネット、LAN、WAN、専用線、有線、無線等の通信網であってよい。
以上より、リモートプロシージャ呼出しにより、仮想データベースを検索するDMLの記述内容に関係なく、通信回数が呼出しと復帰の往復1回のみとなる。通信データも検索条件のパラメタと検索結果データのみなので、通信オーバヘッドが従来比で軽減される。
また、仮想DMLの解析、分解、組立処理のスケジュールについて、従来は動的にマッピングレポジトリを参照して実行していたが、本発明では、仮想DMLの解析、分解、組立処理を静的(コンパイル時)にサーバAPLの論理として展開することができる。それにより、スケジュール処理のオーバヘッドも軽減され、高性能なアクセスが実現される。
また、本発明によれば、アプリケーションサーバ側にのみアプリケーションを配置する構成により業務システムを設計した場合であっても、インテリジェントコンパイラによりその構成を自動生成することができる。よって、ストアドプロシージャのようなアプリケーションサーバとデータサーバの双方のアプリケーションが連携するシステム構成のような、双方のアプリケーションのインターフェースを調整した設計が不要となり、開発者にとって設計時の負担を軽減させることができる。
本発明によれば、開発の容易化、及びアプリケーションサーバ側で単独に開発したアプリケーションにおけるアクセスの高速化が可能となる。なお、仮想データベースのDMLは、SQL(テーブルアクセス)やXQuery(XMLアクセス)など任意のDMLを、ネイティブデータベースはRDB、NDB、VSAM、XML−DBなど任意のデータベースを、RPCはCORBA、Java(登録商標)−RMI、Microsoft−COMなど任意のRPCを利用可能である。
また、マッピングリポジトリについては、ODMG(http://www.odmg.org)、Hibernate(http://www.hibernate.org)、SQL/XML(http://www.sqlx.org)などの技術を前提としている。
なお、本発明は、以上に述べた実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内で種々の構成または実施形態を取ることができる。
(付記1)
ユーザからの所定の入力パラメータが入力されるアプリケーションプログラムを有する第1の計算機と、該第1の計算機とネットワークを介して接続される1つ以上のデータベースを有する第2の計算機とからなる、前記アプリケーションプログラムに対して前記1以上のデータベースであるネイティブデータベースを1つのデータベースとして仮想化する仮想データベースについてリモートアクセスに用いられるプログラムを生成する処理をコンピュータに実行させるコンパイルプログラムであって、
前記アプリケーションプログラムのソースコードから前記仮想データベースに対するデータ操作言語(DML)実行処理に関する記述部分を、リモートプロシージャ呼び出し(RPC)処理に関する記述に置換するRPC置換手順と、
前記RPC処理に基づいて、前記ネイティブデータベースに対するDML実行処理を実行するプログラムであるネイティブDML実行プログラムを生成するネイティブDML実行プログラム生成手順と、
を、コンピュータに実行させるコンパイルプログラム。
(付記2)
前記コンパイルプログラムは、さらに、
前記アプリケーションプログラムのソースコードが入力されるソースコード入力手順と、
前記ソースコードから前記仮想データベースに対するDML実行処理に関する入出力情報を抽出する入出力情報抽出手順と、
を、コンピュータに実行させる付記1に記載のコンパイルプログラム。
(付記3)
ネイティブDML実行プログラム生成手順は、
前記ネイティブデータベースと前記仮想データベースとのデータ構造との関係に関する情報が格納されているデータ構造関係情報に基づいて、前記仮想データベースに対するDML実行処理に含まれる命令及び変数と、前記抽出された前記入出力情報と、前記ネイティブデータベースとの対応関係を示す対応関係情報を生成する処理を行う
ことを特徴とする付記2に記載のコンパイルプログラム。
(付記4)
ネイティブDML実行プログラム生成手順は、さらに、
前記対応関係情報に基づいて、当該ネイティブDML実行プログラム生成手順が実行する処理のスケジュール情報を生成する、
ことを特徴とする付記3に記載のコンパイルプログラム。
(付記5)
前記スケジュール情報には、どのような処理順で、どの前記ネイディブデータベースに、どのような処理を実行するかという情報が含まれる
ことを特徴とする付記4に記載のコンパイルプログラム。
(付記6)
前記スケジュール情報には、前記ネイティブデータベースに対するDML実行処理の結果を組み立てて、1つの前記仮想データベースに対するDML実行処理の結果とする処理を行うことが含まれる
ことを特徴とする付記4に記載のコンパイルプログラム。
(付記7)
ネイティブDML実行プログラム生成手順は、さらに、
前記スケジュール情報に基づいて、前記ネイティブデータベースに対するDML実行処理をソースコード化する
ことを特徴とする付記6に記載のコンパイルプログラム。
(付記8)
前記コンパイルプログラムは、さらに、
前記RPCを使用するために、前記第1の計算機に格納される第1のインターフェースと、前記第2の計算機に格納される第2のインターフェースと、を生成するインターフェース生成手順と、
を、コンピュータに実行させる付記2に記載のコンパイルプログラム。
(付記9)
前記コンパイルプログラムは、さらに、
前記DML実行処理に関する記述部分がRPC処理に関する記述に置換された前記アプリケーションプログラムのソースコードと、前記第1のインターフェースについてのソースコードと、前記第2のインターフェースについてのソースコードと、前記ネイティブDML実行プログラムのソースコードと、をコンパイルして、それぞれのロードモジュールを生成するコンパイル手順
を、コンピュータに実行させる付記8に記載のコンパイルプログラム。
(付記10)
ユーザからの所定の入力パラメータが入力されるアプリケーションプログラムを有する第1の計算機と、該第1の計算機とネットワークを介して接続される1つ以上のデータベースを有する第2の計算機とからなる、前記アプリケーションプログラムに対して前記1以上のデータベースであるネイティブデータベースを1つのデータベースとして仮想化する仮想データベースについてリモートアクセスに用いられるプログラムを生成する仮想データベースリモートアクセス用プログラムの製造方法であって、
前記アプリケーションプログラムのソースコードから前記仮想データベースに対するデータ操作言語(DML)実行処理に関する記述部分を、リモートプロシージャ呼び出し(RPC)処理に関する記述に置換し、
前記RPC処理に基づいて前記ネイティブデータベースに対するDML実行処理を実行するプログラムであるネイティブDML実行プログラムを生成する
ことを行う仮想データベースリモートアクセス用プログラムの製造方法。
(付記11)
前記仮想データベースリモートアクセス用プログラムの製造方法は、さらに、
前記アプリケーションプログラムのソースコードを入力し、
前記ソースコードから前記仮想データベースに対するDML実行処理に関する入出力情報を抽出する、
ことを行う付記10に記載の仮想データベースリモートアクセス用プログラムの製造方法。
(付記12)
前記ネイティブDML実行プログラムを生成する場合、前記ネイティブデータベースと前記仮想データベースとのデータ構造との関係に関する情報が格納されているデータ構造関係情報に基づいて、前記仮想データベースに対するDML実行処理に含まれる命令及び変数と、前記抽出された前記入出力情報と、前記ネイティブデータベースとの対応関係を示す対応関係情報を生成する
ことを特徴とする付記11に記載の仮想データベースリモートアクセス用プログラムの製造方法。
(付記13)
前記ネイティブDML実行プログラムを生成する場合、さらに、前記対応関係情報に基づいて、ネイティブDML実行プログラムにより実行されるスケジュール情報を生成する、
ことを特徴とする付記12に記載の仮想データベースリモートアクセス用プログラムの製造方法。
(付記14)
前記スケジュール情報には、どのような処理順で、どの前記ネイディブデータベースに、どのような処理を実行するかという情報が含まれる
ことを特徴とする付記13に記載の仮想データベースリモートアクセス用プログラムの製造方法。
(付記15)
前記スケジュール情報には、前記ネイティブデータベースに対するDML実行処理の結果を組み立てて、1つの前記仮想データベースに対するDML実行処理の結果とする処理を行うことが含まれる
ことを特徴とする付記13に記載の仮想データベースリモートアクセス用プログラムの製造方法。
(付記16)
前記ネイティブDML実行プログラムを生成する場合、さらに、前記スケジュール情報に基づいて、前記ネイティブデータベースに対するDML実行処理をソースコード化する
ことを特徴とする付記15に記載の仮想データベースリモートアクセス用プログラムの製造方法。
(付記17)
前記仮想データベースリモートアクセス用プログラムの製造方法は、さらに、
前記RPCを使用するために、前記第1の計算機に格納される第1のインターフェースと、前記第2の計算機に格納される第2のインターフェースと、を生成し、
を行う付記11に記載の仮想データベースリモートアクセス用プログラムの製造方法。
(付記18)
前記仮想データベースリモートアクセス用プログラムの製造方法は、さらに、
前記DML実行処理に関する記述部分がRPC処理に関する記述に置換された前記アプリケーションプログラムのソースコードと、前記第1のインターフェースについてのソースコードと、前記第2のインターフェースについてのソースコードと、前記ネイティブDML実行プログラムのソースコードと、をコンパイルして、それぞれのロードモジュールを生成する
ことを特徴とする付記17に記載の仮想データベースリモートアクセス用プログラムの製造方法。
(付記19)
ユーザからの所定の入力パラメータが入力されるアプリケーションプログラムを有する第1の計算機と、該第1の計算機とネットワークを介して接続される1つ以上のデータベースを有する第2の計算機とからなる、前記アプリケーションプログラムに対して前記1以上のデータベースであるネイティブデータベースを1つのデータベースとして仮想化する仮想データベースのリモートアクセス方法であって、
前記第1の計算機には、前記アプリケーションプログラムと、リモートプロシージャ呼び出し(RPC)を行うための第1のインターフェースとが格納され、
前記第2の計算機には、前記ネイティブデータベースに対するデータ操作言語(DML)実行処理を実行するネイティブDML実行プログラムと、リモートプロシージャ呼び出し(RPC)を行うための第2のインターフェースとが格納されており、
前記入力パラメータが入力された前記アプリケーションプログラムは前記第1のインターフェースを呼び出し、
前記第1のインターフェースは、RPCにより、前記第2のインターフェースへ前記入力パラメータを渡し、
前記第2のインターフェースにより前記入力パラメータを渡された前記ネイティブDML実行プログラムは、前記各ネイティブデータベースに対して前記DML実行処理を実行して、各ネイティブデータベースから得られた実行結果を組み立てて1つの実行結果とし、
前記組み立てた1つの実行結果を前記仮想データベースの実行結果として提供する
ことを特徴とする仮想データベースのリモートアクセス方法。
(付記20)
前記ネイティブDML実行プログラムは、前記複数のネイティブデータベースのうちの1つのネイティブデータベースに対する前記DML実行処理の実行結果に基づいて、他の前記ネイティブデータベースに対して前記DML実行処理を実行する
ことを特徴とする付記19に記載の仮想データベースのリモートアクセス方法。
本発明にかかる仮想データベースリモートアクセスシステム及びそれを実現するプログラムを生成するコンパイラの構成概念図を示す。 本実施形態におけるインテリジェントコンパイラ及び仮想データベースリモートアクセスシステムを示す。 本実施形態におけるインテリジェントコンパイラ20の機能を示す。 本実施形態におけるインテリジェントコンパイラ20の使用例を示す。 本実施形態におけるインテリジェントコンパイラ20の処理フローを示す。 ネイティブデータベース及び仮想データベースの論理構造の一例を示す。 S1の「検索の入出力情報抽出」処理で抽出された入出力情報の一例を示す。 S2の「STUB(CL)生成」処理で生成されたSTUB24のフローを示す。 本実施形態における宛先解決用ソースコードについて説明する図である。 図8のフローに対応する簡略化した擬似コード例である。 S3の「STUB(SV)生成」処理で生成されたSTUB25のフローを示す。 図11のフローに対応する簡略化した擬似コード例である。 「DML−RPC置換処理(S4)」前後のアプリケーションのソースコードを示す。 S5で作成された対応テーブルを示す。 S6で作成されるスケジュールテーブル70を示す。 S6のスケジュールテーブル70に基づいて「サーバAPL生成」処理で生成されたサーバAPL26のフローを示す。 図16のフローに対応する簡略化した擬似コード例(その1)である。 図16のフローに対応する簡略化した擬似コード例(その2)である。 本実施形態におけるインテリジェントコンパイラ20により得られた4つのロードモジュールを実装した仮想データベースリモートアクセスシステムを示す。 本実施形態におけるインテリジェントコンパイラ20が実行されるハードウェア環境の構成ブロック図である。 仮想データベースに対するリモート検索の概念図を示す。 従来における仮想データベースリモートアクセスシステムを示す。 従来における、データベースBの検索結果を確認した後でないと、データベースAの検索ができないという検索結果依存性の具体例である。 従来におけるアプリケーションサーバとデータサーバの双方のアプリケーションが連携する構成により業務システムを設計した場合の例である。
符号の説明
1 コンパイラ(インテリジェントコンパイラ)
1a ソースコード入力手順
1b 入出力情報抽出手順
1c RPC置換手順
1d インターフェース生成手
1f ネイティブDML実行プログラム生成手順
2 データ構造関係情報2
3 アプリケーションプログラム
4 第1のインターフェース
5 第2のインターフェース
6 ネイティブDML実行プログラム
7 アプリケーションプログラムのソースコード
10 仮想データベースリモートアクセスシステム
11 第1の計算機
12 第2の計算機
13 ネイティブDB
20 インテリジェントコンパイラ
21 アプリケーションのソースコード21
22 マッピングレポジトリ
23 アプリケーション
24 RPCクライアントSTUB
25 RPCサーバSTUB
26a サーバAPL
23a アプリケーション(ソースコード)
24a RPCクライアントSTUB(ソースコード)
25a RPCサーバSTUB(ソースコード)
26a サーバAPL(ソースコード)
30 仮想データベースリモートアクセスシステム
31 アプリケーションサーバ
32 データサーバ
33 RPC/CL
34 RPC/SV
35 DBMS−A
36 データベースA
37 DBMS−B
38 データベースB
60 対応テーブル
70 スケジュールテーブル

Claims (5)

  1. ユーザからの所定の入力パラメータが入力されるアプリケーションプログラムを有する第1の計算機と、該第1の計算機とネットワークを介して接続される1つ以上のデータベースを有する第2の計算機とからなる、前記アプリケーションプログラムに対して前記1以上のデータベースであるネイティブデータベースを1つのデータベースとして仮想化する仮想データベースについてリモートアクセスに用いられるプログラムを生成する処理をコンピュータに実行させるコンパイルプログラムであって、
    前記アプリケーションプログラムのソースコードから前記仮想データベースに対するデータ操作言語(DML)実行処理に関する記述部分を、リモートプロシージャ呼び出し(RPC)処理に関する記述に置換するRPC置換手順と、
    前記RPC処理に基づいて、前記ネイティブデータベースに対するDML実行処理を実行するプログラムであるネイティブDML実行プログラムを生成するネイティブDML実行プログラム生成手順と、
    を、コンピュータに実行させるコンパイルプログラム。
  2. 前記コンパイルプログラムは、さらに、
    前記アプリケーションプログラムのソースコードが入力されるソースコード入力手順と、
    前記ソースコードから前記仮想データベースに対するDML実行処理に関する入出力情報を抽出する入出力情報抽出手順と、
    を、コンピュータに実行させる請求項1に記載のコンパイルプログラム。
  3. 前記コンパイルプログラムは、さらに、
    前記RPCを使用するために、前記第1の計算機に格納される第1のインターフェースと、前記第2の計算機に格納される第2のインターフェースと、を生成するインターフェース生成手順と、
    を、コンピュータに実行させる請求項2に記載のコンパイルプログラム。
  4. ユーザからの所定の入力パラメータが入力されるアプリケーションプログラムを有する第1の計算機と、該第1の計算機とネットワークを介して接続される1つ以上のデータベースを有する第2の計算機とからなる、前記アプリケーションプログラムに対して前記1以上のデータベースであるネイティブデータベースを1つのデータベースとして仮想化する仮想データベースについてリモートアクセスに用いられるプログラムを生成する仮想データベースリモートアクセス用プログラムの製造方法であって、
    前記アプリケーションプログラムのソースコードから前記仮想データベースに対するデータ操作言語(DML)実行処理に関する記述部分を、リモートプロシージャ呼び出し(RPC)処理に関する記述に置換し、
    前記RPC処理に基づいて前記ネイティブデータベースに対するDML実行処理を実行するプログラムであるネイティブDML実行プログラムを生成する
    ことを行う仮想データベースリモートアクセス用プログラムの製造方法。
  5. ユーザからの所定の入力パラメータが入力されるアプリケーションプログラムを有する第1の計算機と、該第1の計算機とネットワークを介して接続される1つ以上のデータベースを有する第2の計算機とからなる、前記アプリケーションプログラムに対して前記1以上のデータベースであるネイティブデータベースを1つのデータベースとして仮想化する仮想データベースのリモートアクセス方法であって、
    前記第1の計算機には、前記アプリケーションプログラムと、リモートプロシージャ呼び出し(RPC)を行うための第1のインターフェースとが格納され、
    前記第2の計算機には、前記ネイティブデータベースに対するデータ操作言語(DML)実行処理を実行するネイティブDML実行プログラムと、リモートプロシージャ呼び出し(RPC)を行うための第2のインターフェースとが格納されており、
    前記入力パラメータが入力された前記アプリケーションプログラムは前記第1のインターフェースを呼び出し、
    前記第1のインターフェースは、RPCにより、前記第2のインターフェースへ前記入力パラメータを渡し、
    前記第2のインターフェースにより前記入力パラメータを渡された前記ネイティブDML実行プログラムは、前記各ネイティブデータベースに対して前記DML実行処理を実行して、各ネイティブデータベースから得られた実行結果を組み立てて1つの実行結果とし、
    前記組み立てた1つの実行結果を前記仮想データベースの実行結果として提供する
    ことを特徴とする仮想データベースのリモートアクセス方法。
JP2006074611A 2006-03-17 2006-03-17 コンパイルプログラム、仮想データベースリモートアクセス用プログラムの製造方法、及び仮想データベースのリモートアクセス方法 Pending JP2007249785A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006074611A JP2007249785A (ja) 2006-03-17 2006-03-17 コンパイルプログラム、仮想データベースリモートアクセス用プログラムの製造方法、及び仮想データベースのリモートアクセス方法
US11/448,928 US7693913B2 (en) 2006-03-17 2006-06-07 Method and system for remote accessing a virtual database system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006074611A JP2007249785A (ja) 2006-03-17 2006-03-17 コンパイルプログラム、仮想データベースリモートアクセス用プログラムの製造方法、及び仮想データベースのリモートアクセス方法

Publications (1)

Publication Number Publication Date
JP2007249785A true JP2007249785A (ja) 2007-09-27

Family

ID=38519174

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006074611A Pending JP2007249785A (ja) 2006-03-17 2006-03-17 コンパイルプログラム、仮想データベースリモートアクセス用プログラムの製造方法、及び仮想データベースのリモートアクセス方法

Country Status (2)

Country Link
US (1) US7693913B2 (ja)
JP (1) JP2007249785A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7208441B1 (ja) * 2021-12-22 2023-01-18 三菱電機株式会社 Fa制御テスト支援プログラム、fa制御テスト支援装置、fa制御テスト支援方法及びfa制御テスト支援システム

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5257172B2 (ja) * 2009-03-16 2013-08-07 富士通株式会社 検索方法、検索プログラム及び検索装置
US20110010379A1 (en) * 2009-07-09 2011-01-13 Xeround Systems Ltd. Database system with query interception and redirection
WO2011073973A1 (en) * 2009-12-14 2011-06-23 Tako Technology Ltd. A computerized tool, system and method for remote access to a computer program
US9811528B2 (en) 2010-12-09 2017-11-07 Yosef Benraz Systems and methods for providing continuing access to a remote computer program
US20130311447A1 (en) 2012-05-15 2013-11-21 Microsoft Corporation Scenario based insights into structure data
US10255336B2 (en) * 2015-05-07 2019-04-09 Datometry, Inc. Method and system for transparent interoperability between applications and data management systems
US10594779B2 (en) 2015-08-27 2020-03-17 Datometry, Inc. Method and system for workload management for data management systems
US11360976B2 (en) 2017-08-31 2022-06-14 Oracle International Corporation Deployment of javascript and typescript stored procedures and user-defined functions into database management systems
US10990594B2 (en) 2018-05-04 2021-04-27 Oracle International Corporation Method for fast and consistent invocation of concurrently modifiable user-defined functions
US11436213B1 (en) 2018-12-19 2022-09-06 Datometry, Inc. Analysis of database query logs
US11294869B1 (en) 2018-12-19 2022-04-05 Datometry, Inc. Expressing complexity of migration to a database candidate
US11615062B1 (en) 2018-12-20 2023-03-28 Datometry, Inc. Emulation of database catalog for migration to a different database
US11461324B2 (en) 2019-08-29 2022-10-04 Oracle International Corporation First futamura projection in the context of SQL expression evaluation
US11294894B2 (en) * 2019-08-30 2022-04-05 Oracle International Corporation Dynamic resolution of dependencies for database guest languages
US11531652B2 (en) * 2019-08-30 2022-12-20 Oracle International Corporation Database modularization of pluggable guest languages
US11385889B2 (en) 2019-12-04 2022-07-12 Oracle International Corporation Inferring intra package and module dependencies
US12222914B2 (en) * 2021-06-14 2025-02-11 Microsoft Technology Licensing, Llc Versioned metadata using virtual databases
US11856078B2 (en) * 2022-02-15 2023-12-26 Bae Systems Information And Electronic Systems Integration Inc. Local common object request broker architecture jumper
US11481194B1 (en) * 2022-04-13 2022-10-25 Browserstack Limited Replacing remote device functions

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06161848A (ja) * 1992-11-24 1994-06-10 Nippon Telegr & Teleph Corp <Ntt> Dbmsにおけるホスト変数の処理方法
JP2002014832A (ja) * 2000-06-30 2002-01-18 Fujitsu Ltd ネットワークコンピュータシステム及びサーバ
JP2004086299A (ja) * 2002-08-23 2004-03-18 Fujitsu Ltd トランザクション処理システムにおけるデータ操作永続化方法及びリモートデータベースに対するデータ操作プログラム
JP2005092547A (ja) * 2003-09-18 2005-04-07 Hitachi Software Eng Co Ltd 単独の情報処理システムのWebサービスシステムへの再構築方法
JP2005352891A (ja) * 2004-06-11 2005-12-22 Canon Inc クライアント/サーバアプリケーション作成装置、方法、及びコンピュータプログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69130587T2 (de) * 1990-05-10 1999-05-06 Hewlett-Packard Co., Palo Alto, Calif. System zum Integrieren von Anwenderprogrammen in eine heterogene Netzwerkumgebung
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
JPH09305455A (ja) 1996-05-21 1997-11-28 Hitachi Ltd 分散データベースのグループ統合方法
JP2976891B2 (ja) 1996-06-28 1999-11-10 日本電気株式会社 リモートデータベースアクセス方法
HK1020419A2 (en) * 1999-03-16 2000-03-17 Piu Joseph Fong Shi Frame model for universal database in database reengineering and integration
US7290056B1 (en) * 1999-09-09 2007-10-30 Oracle International Corporation Monitoring latency of a network to manage termination of distributed transactions
CA2329891A1 (en) * 2000-12-29 2002-06-29 Subsecond Technology Inc. Method and apparatus for remote database maintenance and access

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06161848A (ja) * 1992-11-24 1994-06-10 Nippon Telegr & Teleph Corp <Ntt> Dbmsにおけるホスト変数の処理方法
JP2002014832A (ja) * 2000-06-30 2002-01-18 Fujitsu Ltd ネットワークコンピュータシステム及びサーバ
JP2004086299A (ja) * 2002-08-23 2004-03-18 Fujitsu Ltd トランザクション処理システムにおけるデータ操作永続化方法及びリモートデータベースに対するデータ操作プログラム
JP2005092547A (ja) * 2003-09-18 2005-04-07 Hitachi Software Eng Co Ltd 単独の情報処理システムのWebサービスシステムへの再構築方法
JP2005352891A (ja) * 2004-06-11 2005-12-22 Canon Inc クライアント/サーバアプリケーション作成装置、方法、及びコンピュータプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7208441B1 (ja) * 2021-12-22 2023-01-18 三菱電機株式会社 Fa制御テスト支援プログラム、fa制御テスト支援装置、fa制御テスト支援方法及びfa制御テスト支援システム

Also Published As

Publication number Publication date
US20070220020A1 (en) 2007-09-20
US7693913B2 (en) 2010-04-06

Similar Documents

Publication Publication Date Title
JP2007249785A (ja) コンパイルプログラム、仮想データベースリモートアクセス用プログラムの製造方法、及び仮想データベースのリモートアクセス方法
US11593369B2 (en) Managing data queries
US9767147B2 (en) Method of converting query plans to native code
JP6113693B2 (ja) Hadoopにおける強化されたSQLライクなクエリのためのバックグラウンドフォーマット最適化
AU2014201441B2 (en) Low latency query engine for apache hadoop
Carey Data delivery in a service-oriented world: the bea aqualogic data services platform
US8090735B2 (en) Statement generation using statement patterns
US11023443B2 (en) Collaborative planning for accelerating analytic queries
US20150160814A1 (en) Consumption layer for business entities
JP2014194769A6 (ja) Apache hadoop用の低レイテンシクエリエンジン
CN101271475A (zh) 一种商业智能系统
US20060122973A1 (en) Mechanism for defining queries in terms of data objects
US10157360B1 (en) Smart bricks information system
Calinescu et al. Model-driven architecture for cancer research
Böhm et al. Model-Driven Generation and Optimization of Complex Integration Processes.
Li Introduction to Big Data
JPH1021125A (ja) 分散データベースシステムの所在管理方式
Kvet et al. Enhancing Analytical Select Statements Using Reference Aliases
D'silva et al. Keep your host language object and also query it: A case for SQL query support in RDBMS for host language objects
TWI414995B (zh) 開發及執行平台
JPH06231181A (ja) 分散データベース制御方式
Großmann Extending SQL for Machine Learning
WO2025165740A1 (en) Techniques for converting sql dialect application programs to dataflow graphs
JP2012190102A (ja) リモートプロシージャコール処理方法
Krogh Change the Query Plan

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080605

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100126

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110118

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110628