JP3795289B2 - データベースの実行制御装置 - Google Patents
データベースの実行制御装置 Download PDFInfo
- Publication number
- JP3795289B2 JP3795289B2 JP2000028999A JP2000028999A JP3795289B2 JP 3795289 B2 JP3795289 B2 JP 3795289B2 JP 2000028999 A JP2000028999 A JP 2000028999A JP 2000028999 A JP2000028999 A JP 2000028999A JP 3795289 B2 JP3795289 B2 JP 3795289B2
- Authority
- JP
- Japan
- Prior art keywords
- execution control
- information
- database
- control device
- execution
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
【発明の属する技術分野】
本発明は、互いに協調的な動作が必要な複数のデータベースを制御するためのデータベースの実行制御装置に関する。
【0002】
【従来の技術】
データベースには様々な種類があり、それらのデータ構成や扱うデータの種類も様々である。従って、利用者が様々な情報をデータベースから取得しようとする場合には多数の独立したデータベースを利用する必要がある。
一方、独立したデータベースには互いに関連を有する情報が蓄積される場合が多い。そのため、例えばある情報によって第1のデータベースの内容を更新する場合には、更新後の第1のデータベースの内容に基づいて第2のデータベースを更新する必要があり、さらに更新後の第2のデータベースの内容に基づいて第3のデータベースの内容を更新する必要が生じる場合もある。
【0003】
従って、複数の独立したデータベースを管理するシステムにおいては、全てのデータベースの内容が常に整合性を保つように、独立した複数のデータベースの内容を管理する動作を互いに協調させる必要がある。
そのため、従来より独立した複数のデータベースを管理するシステムは、協調動作を実現するために図11のように構成されている。すなわち、各々のデータベース(DB)を制御する実行制御装置の1台がマスタ実行制御装置として割り当てられ、他の実行制御装置がそれぞれスレーブ実行制御装置として割り当てられている。
【0004】
例えば、利用者がいずれかのデータベースにアクセスするために端末装置からこのシステムに入力する1組のクエリ文(データベースに与える命令文)は、まずマスタ実行制御装置に入力される。マスタ実行制御装置は、入力されたクエリ文の内容から、それを発行すべきデータベースに割り当てられたスレーブ実行制御装置を特定し、そのスレーブ実行制御装置に対して入力されたクエリ文の発行要求を送出する。
【0005】
このクエリ文を受信したスレーブ実行制御装置は、それが割り当てられたデータベースに対してクエリ文を発行する。このクエリ文の発行に対してデータベースから実行結果が入力されると、スレーブ実行制御装置はマスタ実行制御装置にクエリ文の発行結果を通知する。
マスタ実行制御装置は、端末装置から入力された全てのクエリ文に対して、上記の処理を繰り返す。つまり、複数のデータベースに対するクエリ文の発行タイミングをマスタ実行制御装置が統括的に管理している。これにより、複数のスレーブ実行制御装置及びデータベースを協調的に動作させることができる。
【0006】
ところで、互いに仕様の異なる複数のデータベースが1つのシステムに接続される場合もある。例えば、互いに異なるクエリ文の言語仕様に合わせて構成された様々なデータベースを1つのシステムで管理する場合である。その場合には、図12に示すようにマスタ実行制御装置と各スレーブ実行制御装置との間にそれぞれ仕様差異変換装置が配置される。
【0007】
すなわち、仕様差異変換装置は全てのデータベースのクエリ文に関する仕様情報を予め取得し、マスタ実行制御装置が各スレーブ実行制御装置に対してクエリ文を発行する際と、クエリ文の発行結果を受け取る際に、それぞれ仕様情報を用いて仕様の差異を吸収するために変換処理を行なう。
【0008】
【発明が解決しようとする課題】
従来の装置においては、図11に示すようにマスタ実行制御装置が多数のスレーブ実行制御装置を統括し、集中的な制御により協調動作を実現しているため、次に示す問題があった。
【0009】
(1)1つのシステムに多数のデータベースが接続される場合には、協調動作のための処理がマスタ実行制御装置に集中するので、マスタ実行制御装置の処理能力がボトルネックとなり、システム全体の処理能力が制限されてしまう。
(2)互いに仕様の異なる複数のデータベースをシステムに接続する場合には、マスタ実行制御装置と各々のスレーブ実行制御装置との間でデータベースの仕様の違いに合わせてクエリ文に関する変換処理を行う必要がある。このため、マスタ実行制御装置の性能向上が困難である。
【0010】
(3)マスタ実行制御装置と各々のスレーブ実行制御装置との間でデータベースの仕様の違いに合わせてクエリ文に関する変換処理を行う必要があるので、種類の異なるデータベースを新たに協調動作に参加させる場合には、マスタ実行制御装置の変換処理について追加や変更が必要である。従って、そのようなシステムの変更に伴うコストが比較的大きくなるのは避けられない。
【0011】
(4)マスタ実行制御装置と各々のスレーブ実行制御装置との間でデータベースの仕様の違いに合わせてクエリ文に関する変換処理を行う必要があるので、種類の異なるデータベースを新たに協調動作に参加させる場合には、マスタ実行制御装置の変換処理について追加や変更が必要である。このようなシステムの変更を行っている時には、システム全体を統括するマスタ実行制御装置の利用が不可能になるので、新たに追加するデータベースを利用しないユーザであっても、全てのデータベースに全くアクセスできない状態になり不便である。また、追加や変更によって新たに組み込んだプログラムなどに不具合(バグ)があると、システム全体が異常な動作を行う可能性がある。
【0012】
従って、多様な実行制御装置が協調動作するシステムでは、マスタとなる実行制御装置は、多くの種類のデータベースの仕様を保持するとともに、その仕様に基づいた多彩な変換処理を行うことになる。つまり、システムの動作が複雑で追加や変更が困難なシステムになってしまう。
また、互いに種類の異なるデータベースを協調させる場合には、仕様差異変換装置を用いて、仮想的に同一のデータベースであるかのように見せる。仕様差異変換装置は、1つの実行制御装置が他の実行制御装置にアクセスする際に、前者に対応するデータベースにアクセスするのと同様のインタフェース(API)を提供する。結果として、協調可能な機能は、全てのデータベースが共通に備えている機能だけに制限され、各々のデータベースが備えている全ての機能を利用できるわけではない。
【0013】
本発明は、制御の集中による処理能力の制限を緩和するとともに、協調動作に参加する新たなデータベースの追加や変更が容易なデータベースの実行制御装置を提供することを目的とする。
【0014】
【課題を解決するための手段】
請求項1のデータベースの実行制御装置は、複数のデータベースとデータベースを制御するための複数の実行制御部とを備え、前記複数の実行制御部がそれぞれに予め割り当てられた前記データベースに対してクエリ文を発行するシステムに、前記実行制御部のそれぞれとして用いられるデータベースの実行制御装置であって、前記複数の実行制御部が互いに協調的に動作するための制御規則として、1つの実行制御部が他の実行制御部から受信すべき情報を特定するための第1の情報と、1つの実行制御部が割り当てられたデータベースに対して発行すべきクエリ文が1つ以上含まれる第2の情報と、1つの実行制御部が割り当てられたデータベースからクエリ文の実行結果として受け取った情報の送信先の他の実行制御部を特定するための第3の情報とを含む制御規則を入力して当該実行制御装置に適用される前記第 1 の情報,前記第 2 の情報および前記第 3 の情報をそれぞれ抽出する規則抽出手段と、前記抽出された第 1 の情報に基づいて、他の実行制御部から受信した情報を蓄積するとともに、前記抽出された第2の情報の各々のクエリ文について、それが必要とする全ての情報の受信が完了した時にクエリ文発行手段に対して発行指示を与える発火制御手段と、前記発火制御手段からの発行指示を受け取り、前記抽出された第 1 の情報に基づいて他の実行制御部から受信し蓄積した情報を、前記抽出された第 2 の情報に含まれるクエリ文に引き渡し、情報が引き渡された前記クエリ文を前記データベースに発行するクエリ文発行手段と、前記抽出された第 3 の情報に従い、前記データベースから入力されるクエリ文の実行結果を他の実行制御部に送信する結果送信手段とを設けたことを特徴とする。
【0015】
請求項1において、制御規則には、1つの実行制御部が他の実行制御部から受信すべき情報を特定するための第1の情報と、1つの実行制御部が割り当てられたデータベースに対して発行すべきクエリ文が1つ以上含まれる第2の情報と、1つの実行制御部が割り当てられたデータベースからクエリ文の実行結果として受け取った情報の送信先の他の実行制御部を特定するための第3の情報とが含まれている。
【0016】
また、クエリ文発行手段は前記制御規則のうちその実行制御部が割り当てられたノードの制御規則に従い、他の実行制御部から受信した情報に基づいて前記第2の情報に含まれるクエリ文を前記データベースに発行する。
さらに、結果送信手段は前記制御規則のうちその実行制御部に割り当てられたノードの制御規則に従い、前記データベースから入力されるクエリ文の実行結果を他の実行制御部に送信する。
【0017】
請求項1では、各々の実行制御部は、制御規則に基づいて他の実行制御部から入力したデータを処理し、指定されたクエリ文を実行し、クエリ文の実行結果を他の実行制御部にデータとして送出することができる。このデータを受信した他の実行制御部もそのノードに割り当てられた制御規則に基づいて動作する。
このため、各々の実行制御部はいわゆるデータ駆動型計算機の動作を実現することになり、データを入力するだけで各々の実行制御部は複数の実行制御部が互いに協調するように動作する。従って、格別にマスタ装置を設けて集中的に制御を行わなくても、定められた制御規則に基づいて協調動作が実現される。
【0018】
請求項1によれば、各々の実行制御部の動作によってシステム全体の協調制御も実現される。従って、制御が特定の実行制御部に集中することはなく、システムに接続されるデータベースの数が多い場合であってもシステム全体として高い処理能力を実現できる。
また、システム全体を統括するマスタ装置を設ける必要がないので、新たなデータベースを追加したりシステムに変更を加える場合であっても、一部分の実行制御部に変更を加えるだけでそれを実現できる。さらに、その変更の最中であっても変更の対象外の実行制御部及びそれに割り当てられたデータベースはそのまま利用できるので、変更に伴う負担は非常に小さい。
【0019】
また、請求項1の規則抽出手段は、それ自身に割り当てられたノードの制御規則を入力して前記第1の情報,第2の情報及び第3の情報をそれぞれ抽出する。規則抽出手段が抽出した第1の情報,第2の情報及び第3の情報は、クエリ文発行手段及び結果送信手段に与えられる。
【0021】
さらに、請求項1の発火制御手段はそれ自身が割り当てられたノードの制御規則に含まれる前記第2の情報の各々のクエリ文について、それが必要とする全ての情報の受信が完了した時に前記クエリ文発行手段に対して発行指示を与える。
つまり、各々のクエリ文について、それの実行に必要な情報の入力が完了した段階で自動的にクエリ文の発行要求が発生する。このため、クエリ文の発行要求を送出するタイミングを決定するために外部から制御を行う必要はなく、各々の実行制御部は自律的に動作する。
【0022】
請求項2は、請求項1のデータベースの実行制御装置において、前記制御規則をノード毎に区分して記述するとともに、各ノードの制御規則には1まとまりの前記第2の情報を、そのノードに対応付けられる特定のデータベース固有の仕様に合わせて記述したことを特徴とする。
請求項2においては、制御規則がノード毎に区分されているので、各々の実行制御部はそれが割り当てられたノードの制御規則だけを簡単に抽出できる。また、各ノードの制御規則には、そのノードに対応付けられる特定のデータベース固有の仕様に合わせて第2の情報が記述されているので、独自仕様のデータベースをシステムに追加する場合であっても、格別な変換を行うことなしに第2の情報をクエリ文としてそのままデータベースに与えることができる。また、制御規則に変更を加える場合には、ノードとして局所化された制御規則の一部分の記述を変更するだけで変更を実現できる。
【0025】
請求項3は、請求項1のデータベースの実行制御装置において、前記複数の実行制御部が協調動作を開始する前に、各実行制御部に与える制御規則を任意のサーバからダウンロードして更新する制御規則更新手段をさらに設けたことを特徴とする。
制御規則更新手段は、前記複数の実行制御部が協調動作を開始する前に、各実行制御部に与える制御規則を任意のサーバからダウンロードして更新する。従って、サーバに保持する制御規則を変更することにより、ダウンロードの度にシステムの協調動作の内容を動的に変更することができる。このため、例えば新たな種類のデータベースを協調動作に参加させるための変更が容易になる。
【0026】
請求項4は、請求項1のデータベースの実行制御装置において、前記複数の実行制御部同士の間で伝送する情報には、1組の情報の構造を特定するための構造識別子と、その構造に従って構成された情報の内容とを含めるとともに、各実行制御部には、他の実行制御部から受信した情報をそれに含まれる前記構造識別子に従って解釈するデータ構成解釈手段をさらに設けたことを特徴とする。
【0027】
請求項4においては、データ構成解釈手段が伝送される情報に含まれる構造識別子に従って情報の構造を特定し解釈するので、複雑な構成の情報であっても複数の実行制御部同士の間で伝送することができる。
請求項5は、請求項4のデータベースの実行制御装置において、前記複数の実行制御部同士の間で伝送される情報の構造と前記構造識別子との対応関係を示す定義情報を保持する定義情報サーバから、各実行制御部が必要とする定義情報を取得する定義情報取得手段をさらに設けたことを特徴とする。
【0028】
請求項5においては、定義情報取得手段が実行制御部の必要とする定義情報を定義情報サーバから取得する。従って、定義情報サーバの保持する内容を変更すれば、複数の実行制御部同士の間で伝送される情報の構造を変更することができる。
【0029】
【発明の実施の形態】
(第1の実施の形態) 本発明のデータベースの実行制御装置の1つの実施の形態について、図1〜図7を参照して説明する。この形態は請求項1〜請求項3に対応する。
図1はこの形態の実行制御装置の構成を示すブロック図である。図2はこの形態のデータベースシステムの構成を示すブロック図である。
【0030】
図3は制御規則の記述例(1)をデータフローグラフのテキスト形式で示す模式図である。図4は制御規則の記述例(2)をデータフローグラフの図形式で示す模式図である。図5は解釈機構の入力と各出力の例を示す模式図である。図6はこの形態の実行制御装置の動作を示すフローチャートである。図7は制御規則のダウンロードの手順を示すシーケンス図である。
【0031】
この形態では、請求項1のデータベース,実行制御部,クエリ文発行手段及び結果送信手段は、それぞれデータベース11,実行制御装置12,ゲートウェイGW,発行機構24及び送信機構25として具体化されている。また、請求項1の第1の情報,第2の情報及び第3の情報はそれぞれ解釈機構22の出力D1,D2及びD4に対応する。
【0032】
さらに、規則抽出手段は解釈機構22に対応し、発火制御手段は発火機構23に対応し、請求項3の制御規則更新手段はユーザ端末USに対応する。
図2に示すデータベースシステムは、N個のデータベース11(1)〜11(N),N個の実行制御装置12(1)〜12(N),ネットワーク13,ゲートウェイGW及びユーザ端末USを備えている。
【0033】
実行制御装置12(1)〜12(N)は、それぞれ1つのデータベース11と対応付けられている。各々の実行制御装置12は、それが対応付けられたデータベース11を制御するために、そのデータベース11に対してクエリ文を発行する。
各々のデータベース11は、蓄積されたデータの集合とそれを制御するためのデータベースマネージャとで構成される。データベースマネージャは、クエリ文が入力されるとそれを実行し、蓄積されたデータの集合にクエリ文を適用する。そして、その実行結果を実行制御装置12に返す。
【0034】
図2のデータベースシステムにおいては、N個の実行制御装置12(1)〜12(N)はネットワーク13を介して互いに接続されている。従って、例えば実行制御装置12(1)が送出したデータを実行制御装置12(2)に入力したり、実行制御装置12(2)が送出したデータを実行制御装置12(N)に入力することができる。
N個の実行制御装置12(1)〜12(N)のそれぞれは、予め決定された制御規則に基づき、他の実行制御装置12から入力されたデータに従って動作する。つまり、実行制御装置12はデータ駆動型の計算機として動作する。
【0035】
ゲートウェイGWは、N個の実行制御装置12(1)〜12(N)のそれぞれに接続されている。ゲートウェイGWは制御規則を生成しそれを各実行制御装置12に与える。ユーザ端末USは、ユーザからの入力に従ってゲートウェイGWに指示を与える。
N個の実行制御装置12(1)〜12(N)のそれぞれは、図1に示すように構成されている。すなわち、実行制御装置12は受信機構21,解釈機構22,発火機構23,発行機構24及び送信機構25を備えている。これらの各機構は、この例ではソフトウェアで実現してある。勿論、ハードウェアで実現することも可能である。各機構の動作については後で説明する。
【0036】
ゲートウェイGWが生成する制御規則は、例えば図3に示すように構成される。図3の制御規則の内容について以下に説明する。
図3の例では、4種類のノード[triger],[serch1],[serch2],[result]のそれぞれに割り当てられる制御規則がノード毎に区別して記述してある。また、この例ではSQL言語を用いて記述してある。図3の各行#1〜#15の内容は次の通りである。なお、「ノード」は各実行制御装置12に対応し、以下に示す「アーク」はノード間で伝送される信号を意味する。
【0037】
#1〜#3:SQL言語によるクエリ文の記述
#4,#5:ノード[triger]を送信元とするアークの記述
#6:ノード[serch1]を宛先とするアークの記述
#7:SQL言語によるクエリ文の記述
#8:ノード[serch1]を送信元とするアークの記述
#9:ノード[serch2]を宛先とするアークの記述
#10:SQL言語によるクエリ文の記述
#11:ノード[serch2]を送信元とするアークの記述
#12,#13:ノード[result]を宛先とするアークの記述
#14,#15:SQL言語によるクエリ文の記述
各行#1〜#15の具体的な意味は次の通りである。
【0038】
#1:「key」という名前で8文字のキャラクタ型の項目を持つ「seed」という表を作成する。
#2:「TYPE−1」という値を持つ行を表「seed」に追加する。
#3:表「seed」から全ての行を読み出す。
#4:#3で読み出した列を「ATOM」というデータ形式でノード[serch1]に「key」という名前で送信する。
【0039】
#5:#3で読み出した列を「ATOM」というデータ形式でノード[serch2]に「key」という名前で送信する。
#6:「ATOM」というデータ形式でノード[triger]から「key」という名前で受信した値を1行目のSQL文(#7)の「?」と入れ換える。
#7:表「log1」から項目「key」の値が「?」である行を全て読み出す。
【0040】
#8:#7で読み出した列を「TABLE」というデータ形式でノード[result]に「log1」という名前で送信する。
#9:「ATOM」というデータ形式でノード[triger]から「key」という名前で受信した値を1行目のSQL文(#10)の「?」と入れ換える。
#10:表「log2」から項目「key」の値が「?」である行を全て読み出す。
【0041】
#11:#10で読み出した列を「TABLE」というデータ形式で、ノード[result]に「log2」という名前で送信する。
#12:「TABLE」というデータ形式でノード[serch1]から「log1」という名前で受信した値を「result1」という名前で保存する。
#13:「TABLE」というデータ形式でノード[serch2]から「log2」という名前で受信した値を「result2」という名前で保存する。
【0042】
#14:「type」という名前で8文字のキャラクタ型の項目と「info」という名前で64文字のキャラクタ型の項目とを持つ「result」という表を作成。
#15:保存した「result1」及び「result2」を表「result」に挿入する。
【0043】
制御規則の各ノード[triger],[serch1],[serch2],[result]は、それぞれ異なる実行制御装置12に割り当てられる。例えば、ノード[triger]を実行制御装置12(1)に割り当て、ノード[serch1]を実行制御装置12(2)に割り当て、ノード[serch2]を実行制御装置12(3)に割り当て、ノード[result]を実行制御装置12(4)に割り当てる。
【0044】
図3の制御規則をデータフローグラフで表すと図4のようになる。すなわち、図4に示すようにノード[triger],[serch1],[serch2],[result]の間でアークとして信号が伝送される。従って、複数の実行制御装置12(1)〜12(N)の間で信号(データ)の伝送が行われる。
ノード[triger]については、そのノードを宛先(デスティネーション)とするアークがないため、すぐにクエリ文の発行を開始する。ノード[serch1]については、特に指定がないため、そのノードを宛先とするアークが示すデータを全て受信したときにクエリ文の発行を開始する。
【0045】
同様に、ノード[serch2]については特に指定がないため、そのノードを宛先とするアークが示すデータを全て受信したときにクエリ文の発行を開始する。また、ノード[result]については、特に指定がないため、そのノードを宛先とするアークが示すデータを全て受信したときにクエリ文の発行を開始する。
【0046】
図1に示す実行制御装置12の解釈機構22は、ゲートウェイGWから送出される制御規則D0が入力されると、その内容を解析し、その結果として4種類の出力D1,D2,D3,D4を生成する。
例えば、ある実行制御装置12が図3の制御規則のノード[serch1]に割り当てられた場合には、その解釈機構22に入力される制御規則D0及び4種類の出力D1,D2,D3,D4はそれぞれ図5のようになる。
【0047】
すなわち、解釈機構22にはノード[serch1]の全ての制御規則がD0として入力され、出力D1にはノード[serch1]が他のノードから受信すべき一連のデータの種類を表す情報として図3の(#6)の内容が現れる。
また、解釈機構22の出力D2には、対応するデータベース11に発行すべき一連のクエリ文として図3の(#7)が現れる。ノード[result]の場合であれば、出力D2には図3の(#14),(#15)が現れる。
【0048】
解釈機構22の出力D3には、送信するデータの形式を表す情報として図3の(#8)に含まれる「TABLE」が現れる。また、解釈機構22の出力D4には宛先のノード[result]を示す図3の(#8)の「result.log1=ITEM(1)」が現れる。
また、解釈機構22はゲートウェイGWから更新された新しい制御規則D0が入力される度に、それを解析して出力D1,D2,D3,D4の内容をそれぞれ更新する。
【0049】
実行制御装置12の受信機構21には、他の実行制御装置12の出力するデータがネットワーク13を介して受信データDinとして入力される。受信機構21は、受信データDinが入力されると、その内容をデータベース11もしくは実行制御装置12内に保存するとともに、受信データDinの種別を判定し、その結果をデータ種別Dxとして発火機構23に通知する。
【0050】
発火機構23は、受信機構21から通知されたデータ種別Dxの情報を保存するとともにその履歴を管理する。そして、解釈機構22の出力D1として予め発火機構23に入力された情報と、受信したデータのデータ種別Dxの履歴とを照合する。
解釈機構22の出力D1の内容は、解釈機構22の出力D2に含まれる各クエリ文を実行するために必要とされる全てのデータの種類を表している。発火機構23は、前記照合の結果、各々のクエリ文についてそれを実行するのに必要な全てのデータの受信が完了したことを検出すると、発行機構24に対して発行指示を出力する。
【0051】
発行機構24は、発火機構23から発行指示を受け取ると、解釈機構22から出力D2として入力される一連のクエリ文の中から、その発行指示に対応する1組のクエリ文を選択し、選択したクエリ文を順次にデータベース11に対して発行しその実行を指示する。
発火機構23が発行指示を出力した時点で、クエリ文の実行に必要な全てのデータの受信が完了しているので、データベース11は発行機構24からクエリ文が入力されると直ちにそれを実行することができる。
【0052】
データベース11は、発行機構24が発行したクエリ文を実行した後、その実行結果を発行機構24に返す。発行機構24は、データベース11から実行結果を受け取るとそれを送信機構25に渡す。
送信機構25は、発行機構24からクエリ文の実行結果を受け取ると、それを送信データDoutとしてネットワーク13に送出する。送信データDoutの宛先は、解釈機構22の出力D4によって予め指定されたノードの実行制御装置12になる。また、送信データDoutのデータ形式は、解釈機構22の出力D3によって予め指定された形式になる。なお、制御規則に送信先が指定されていない場合には、送信機構25は送信データDoutを送出しない。
【0053】
以上に説明した実行制御装置12の全体の動作をフローチャートで表すと、図6のようになる。図6において、ステップS11〜S14の処理P1,ステップS15〜S18の処理P2,ステップS19〜S23の処理P3,ステップS24〜S25の処理P4は、それぞれ図1の受信機構21,発火機構23,発行機構24,送信機構25によって実行される。
【0054】
この例では、各実行制御装置12に与える制御規則を更新する場合には図7に示す手順が実行される。すなわち、制御規則の更新を必要とする場合には、ユーザ端末USからゲートウェイGWに対して所定のクエリ文を発行するとともに、それの実行指示を与える。
ゲートウェイGWは、ユーザ端末USからのクエリ文及び実行指示を受信すると、入力されたクエリ文に基づいてステップS41で制御規則を生成する。この制御規則は、例えば図3のような内容になる。
【0055】
ステップS42では、生成された制御規則の各々のノードを実行制御装置12(1)〜12(N)のいずれかに割り当てる。そして、ステップS43では実行制御装置12(1)〜12(N)のそれぞれに対して、割り当てられたノードの制御規則を送出する。
【0056】
例えば、図3に示すノード[triger]の記述の内容全てを実行制御装置12(1)に対して送出し、図3に示すノード[serch1]の記述の内容全てを実行制御装置12(2)に対して送出し、図3に示すノード[serch2]の記述の内容全てを実行制御装置12(3)に対して送出し、図3に示すノード[result]の記述の内容全てを実行制御装置12(4)に対して送出する。
【0057】
なお、この例では割り当てたノードの制御規則だけをゲートウェイGWが各実行制御装置12に送出しているが、全てのノードの制御規則を各々の実行制御装置12に送出し、各実行制御装置12の解釈機構22が割り当てられたノードの制御規則だけを抽出して処理するように変更してもよい。
以上のように、この例ではシステムに接続されたN個の実行制御装置12のそれぞれが、制御規則に基づき、他の実行制御装置12から入力されるデータに従って自動的にクエリ文をデータベース11に発行し、クエリ文の実行結果をデータとして他の実行制御装置12に送出するので、N個の実行制御装置12は、データベース11(1)〜11(N)のデータが整合性を保つような協調動作を実現することができる。このため、マスタ制御装置を設ける必要はない。
【0058】
上記の説明においては、複数のデータベース11間の協調動作だけを説明したが、実際にユーザが各データベース11にアクセスしようとする場合には、次のようにすればよい。
ユーザが新規データをデータベース11に追加する場合には、例えば、図3のノード[triger]の中にあるSQL文の「insert」だけを持つクエリ文を利用する。あるいは、図2のゲートウェイGW上もしくはそれと同様の位置にある計算のアプリケーションプログラムを用い、図示しないネットワークを介して各データベース11に直接(実行制御装置12を通さずに)アクセスすればよい。
【0059】
また、ユーザが各データベース11からデータを読み出そうとする場合にも、図2のゲートウェイGW上もしくはそれと同様の位置にある計算のアプリケーションプログラムを用い、図示しないネットワークを介して各データベース11に直接アクセスすればよい。
なお、上記のようなユーザのデータベース11に対するアクセスを容易にするためには、各々のデータベース11上にどのような情報が存在するのかを表すカタログ情報や、ユーザのクエリ文の実行結果が結局いずれのデータベース11に配置されたのかを示す情報をゲートウェイGWなどが管理しユーザに提供するのが望ましい。
【0060】
(第2の実施の形態) 本発明のデータベースの実行制御装置のもう1つの実施の形態について、図8〜図10を参照して説明する。この形態は、請求項4及び請求項5に対応する。
図8はこの形態のデータベースシステムの構成を示すブロック図である。図9はこの形態の実行制御装置の構成を示すブロック図である。図10はこの形態の実行制御装置の動作を示すフローチャートである。
【0061】
この形態は、第1の実施の形態の変形例である。図8〜図10において、第1の実施の形態と対応する要素及び処理については同一の符号及びステップ番号を付けて示してある。第1の実施の形態と同一の部分については、以下の説明を省略する。
この形態では、請求項4のデータ構成解釈手段は受信機構21B及びステップS31に対応する。また、請求項5の定義情報サーバ及び定義情報取得手段は、それぞれゲートウェイGW及び解釈機構22Bに対応する。
【0062】
図8に示すゲートウェイGWは、制御規則だけでなく定義情報をも生成し、それらを各実行制御装置12に与える。この定義情報は、複数の実行制御装置12の間でネットワーク13を介して互いに伝送されるデータの構造を把握するのに必要な情報であり、予め定めたデータ形式毎に定義される。
【0063】
例えば、あるデータ形式「table」の定義情報の内容は次のような情報を含んでいる。
デリミタ:=,
タグ1:=’
タグ1の型:=可変長文字列
タグ2:=
タグ2の型:=32ビット整数型
また、図3,図4の定義情報のノード[serch1]からノード[result]にアーク「log1」として伝送されるデータは、例えば次のような内容のテキストデータになる。
【0064】
「TABLE:serch1:log1:DATA:’29/Jul/1999:18:40:01+0900’,990729,’HtmlDoc/menu.html’」
このテキストデータの中で、「TABLE:serch1:log1:」がデータヘッダであり、それ以降がデータの本文である。このデータヘッダの最初にある「TABLE」は、このテキストデータの本文のデータ形式が「table」であることを意味するデータ形式識別子である。
【0065】
ノード[result]に割り当てられた実行制御装置12においては、上記のようなデータが受信データDinとして図9の受信機構21Bに入力される。また、上記のような定義情報が図9の定義情報Ddとして解釈機構22Bから受信機構21Bに入力される。
ノード[result]に割り当てられた実行制御装置12の受信機構21Bは、次のように動作する。なお、この例ではデータベース11としてリレーショナルデータベースを用いる場合を想定している。
【0066】
1.受信データDinのデータヘッダに含まれるデータ形式識別子「TABLE」を参照して、受信データDinの解析に用いる定義情報のデータ形式を「table」に決定する。
2.決定したデータ形式を「table」の定義情報を参照する。
3.前記テキストデータを受信データDinとして受信した場合、「DATA」以降のデータ本体を定義情報のデリミタ「,」で区切って分離する。その結果、「’29/Jul/1999:18:40:01+0900’」と「990729」と「’HtmlDoc/menu.html’」とが分離して取り出される。
【0067】
4.定義情報のタグ1「’」が先頭にある「’29/Jul/1999:18:40:01+0900’」及び「’HtmlDoc/menu.html’」をそれぞれタグ1の型として定義された「可変長文字列」として解釈する。
5.「990729」をタグ2の型として定義された「32ビット整数型」として解釈する。
【0068】
6.解釈した値を、決定したデータ形式「table」に従ってリレーショナルデータベースの表に蓄積する。蓄積先は、解釈機構22Bから指定される「保存先」の「result1」に従って、表名が「result1」の表とする。解釈した値は、図9ではデータDi2として発行機構24又はデータベース11に保存される。「result1」の表が実行制御装置12B上に存在する場合には発行機構24に保存され、「result1」の表がデータベース11に存在する場合にはデータベース11に保存される。
【0069】
7.ノード「result1」からアーク「log1」のデータを受信したこと「そのデータの種類」を発火機構23に通知する。
図9に示すように、定義情報Ddは解釈機構22Bを介して送信機構25Bにも印加される。送信機構25Bは、データベース11が返すクエリ文の実行結果を発行機構24から受信すると、定義情報Ddの内容に適合するようにデータの構成を変換し、送信データDoutを組み立てる。
【0070】
受信機構21Bの動作は、図10に示すステップS31が追加された以外は第1の実施の形態と同一である。ステップS31では、受信機構21Bは定義情報Ddの内容に従って受信データDinを解釈し、指定された形式のデータDi2に変換する。
また、送信機構25Bの動作は図10に示すステップS32が追加された以外は第1の実施の形態と同一である。ステップS32では、送信機構25Bは送信データDoutを定義情報Ddの内容に従って組み立てる。
【0071】
この例では、受信データDinの構造を定義情報を用いて解釈するので、データ構成の異なる新たなデータベースを協調動作に参加させる場合にも、データ構成の変換を定義情報の変更だけで実現することができ、システムの変更に伴う負担が小さくなる。
なお、図8の例では同一のゲートウェイGWが制御規則及び定義情報の両方を送出するが、制御規則及び定義情報をそれぞれ異なるサーバから送出するように構成を変更してもよい。
【0072】
【発明の効果】
以上の通り、本発明のデータベースの実行制御装置では、種類の異なる複数のデータベースを互いに協調させる場合であっても、全てのデータベースの機能をそのまま使用できるため、機能面での相乗効果が得られる。
また、新たなデータベースを協調動作に参加させる場合には、追加するデータベースの実行制御装置だけについて変更を行えばよい。従って、既に運用されているデータベースを新たに協調動作に取り込んだり、新規開発されたデータベースを協調動作に取り込むことが容易である。
【0073】
また、データベースを協調動作のための制御機能が、複数の実行制御装置のそれぞれに分散するので、多数のデータベースを協調動作させる場合であってもボトルネックが生じない。
すなわち、本発明のデータベースの実行制御装置によりオープンでスケーラブルなデータベース協調環境が実現できる。
【図面の簡単な説明】
【図1】第1の実施の形態の実行制御装置の構成を示すブロック図である。
【図2】第1の実施の形態のデータベースシステムの構成を示すブロック図である。
【図3】制御規則の記述例(1)をデータフローグラフのテキスト形式で示す模式図である。
【図4】制御規則の記述例(2)をデータフローグラフの図形式で示す模式図である。
【図5】解釈機構の入力と各出力の例を示す模式図である。
【図6】第1の実施の形態の実行制御装置の動作を示すフローチャートである。
【図7】制御規則のダウンロードの手順を示すシーケンス図である。
【図8】第2の実施の形態のデータベースシステムの構成を示すブロック図である。
【図9】第2の実施の形態の実行制御装置の構成を示すブロック図である。
【図10】第2の実施の形態の実行制御装置の動作を示すフローチャートである。
【図11】従来例のデータベースシステムの構成を示すブロック図である。
【図12】データベース間の仕様の違いを吸収するための従来の構成を示すブロック図である。
【符号の説明】
11 データベース
12,12B 実行制御装置
13 ネットワーク
21,21B 受信機構
22,22B 解釈機構
23 発火機構
24 発行機構
25,25B 送信機構
GW ゲートウェイ
US ユーザ端末
Claims (5)
- 複数のデータベースとデータベースを制御するための複数の実行制御部とを備え、前記複数の実行制御部がそれぞれに予め割り当てられた前記データベースに対してクエリ文を発行するシステムに、前記実行制御部のそれぞれとして用いられるデータベースの実行制御装置であって、
前記複数の実行制御部が互いに協調的に動作するための制御規則として、1つの実行制御部が他の実行制御部から受信すべき情報を特定するための第1の情報と、1つの実行制御部が割り当てられたデータベースに対して発行すべきクエリ文が1つ以上含まれる第2の情報と、1つの実行制御部が割り当てられたデータベースからクエリ文の実行結果として受け取った情報の送信先の他の実行制御部を特定するための第3の情報とを含む制御規則を入力して当該実行制御装置に適用される前記第 1 の情報,前記第 2 の情報および前記第 3 の情報をそれぞれ抽出する規則抽出手段と、
前記抽出された第 1 の情報に基づいて、他の実行制御部から受信した情報を蓄積するとともに、前記抽出された第2の情報の各々のクエリ文について、それが必要とする全ての情報の受信が完了した時にクエリ文発行手段に対して発行指示を与える発火制御手段と、
前記発火制御手段からの発行指示を受け取り、前記抽出された第 1 の情報に基づいて他の実行制御部から受信し蓄積した情報を、前記抽出された第 2 の情報に含まれるクエリ文に引き渡し、情報が引き渡された前記クエリ文を前記データベースに発行するクエリ文発行手段と、
前記抽出された第 3 の情報に従い、前記データベースから入力されるクエリ文の実行結果を他の実行制御部に送信する結果送信手段と
を設けたことを特徴とするデータベースの実行制御装置。 - 請求項1のデータベースの実行制御装置において、前記制御規則をノード毎に区分して記述するとともに、各ノードの制御規則には1まとまりの前記第2の情報を、そのノードに対応付けられる特定のデータベース固有の仕様に合わせて記述したことを特徴とするデータベースの実行制御装置。
- 請求項1のデータベースの実行制御装置において、前記複数の実行制御部が協調動作を開始する前に、各実行制御部に与える制御規則を任意のサーバからダウンロードして更新する制御規則更新手段をさらに設けたことを特徴とするデータベースの実行制御装置。
- 請求項1のデータベースの実行制御装置において、前記複数の実行制御部同士の間で伝送する情報には、1組の情報の構造を特定するための構造識別子と、その構造に従って構成された情報の内容とを含めるとともに、各実行制御部には、他の実行制御部から受信した情報をそれに含まれる前記構造識別子に従って解釈するデータ構成解釈手段をさらに設けたことを特徴とするデータベースの実行制御装置。
- 請求項4のデータベースの実行制御装置において、前記複数の実行制御部同士の間で伝送される情報の構造と前記構造識別子との対応関係を示す定義情報を保持する定義情報サーバから、各実行制御部が必要とする定義情報を取得する定義情報取得手段をさらに設けたことを特徴とするデータベースの実行制御装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000028999A JP3795289B2 (ja) | 2000-02-07 | 2000-02-07 | データベースの実行制御装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000028999A JP3795289B2 (ja) | 2000-02-07 | 2000-02-07 | データベースの実行制御装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001222453A JP2001222453A (ja) | 2001-08-17 |
JP3795289B2 true JP3795289B2 (ja) | 2006-07-12 |
Family
ID=18554327
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000028999A Expired - Fee Related JP3795289B2 (ja) | 2000-02-07 | 2000-02-07 | データベースの実行制御装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3795289B2 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4153216B2 (ja) * | 2002-02-18 | 2008-09-24 | 日本電信電話株式会社 | 相関情報処理方法及び相関情報処理装置並びにプログラム及び記録媒体 |
US9665620B2 (en) | 2010-01-15 | 2017-05-30 | Ab Initio Technology Llc | Managing data queries |
US10417281B2 (en) | 2015-02-18 | 2019-09-17 | Ab Initio Technology Llc | Querying a data source on a network |
US11093223B2 (en) | 2019-07-18 | 2021-08-17 | Ab Initio Technology Llc | Automatically converting a program written in a procedural programming language into a dataflow graph and related systems and methods |
-
2000
- 2000-02-07 JP JP2000028999A patent/JP3795289B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2001222453A (ja) | 2001-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200183932A1 (en) | Optimizing write operations in object schema-based application programming interfaces (apis) | |
RU2531572C2 (ru) | Способ репликации баз данных и устройство обновления таблицы | |
US7577900B2 (en) | Mechanism for maintaining data format synchronization between different entities | |
JP7036597B2 (ja) | ネットワーク上のデータソースへの照会 | |
US20020049756A1 (en) | System and method for searching multiple disparate search engines | |
US10866828B2 (en) | Extending object-schema-based application programming interfaces (APIs) | |
US9135297B2 (en) | Database translation system and method | |
US20020059280A1 (en) | Automated table installer for multiple heterogenous databases | |
JPH08110880A (ja) | 名前サービス方式 | |
US10200439B2 (en) | In-memory cloud triple store | |
US11762775B2 (en) | Systems and methods for implementing overlapping data caching for object application program interfaces | |
US7237222B1 (en) | Protocol for controlling an execution process on a destination computer from a source computer | |
JP3795289B2 (ja) | データベースの実行制御装置 | |
US7243091B2 (en) | Search network for searching services on the internet | |
JP4852906B2 (ja) | 連携処理システム及び装置 | |
JP2004062566A (ja) | データベースシステム及びそれを構成するマスターノード装置及びプログラム | |
Eatmon et al. | Data Forms | |
US11556316B2 (en) | Distributed extensible dynamic graph | |
CN107203594A (zh) | 一种数据处理设备、方法和计算机可读存储介质 | |
JPH10254890A (ja) | ネットワークを利用した各種サービスへのアクセス方式 | |
JP3882043B2 (ja) | Webページ同期閲覧方法及びシステム | |
US20040143577A1 (en) | System and method for hierarchically invoking re-entrant methods on XML objects | |
US20090222452A1 (en) | Stateful Database Command Structure | |
JP7201000B2 (ja) | データ処理システム、方法およびプログラム | |
Arora et al. | Web services for management |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20051220 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060208 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060404 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060412 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090421 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100421 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |