JP2006155287A - O/rマッピング装置、o/rマッピング方法、o/rマッピングプログラム、及びオントロジ管理データベースシステム - Google Patents
O/rマッピング装置、o/rマッピング方法、o/rマッピングプログラム、及びオントロジ管理データベースシステム Download PDFInfo
- Publication number
- JP2006155287A JP2006155287A JP2004345753A JP2004345753A JP2006155287A JP 2006155287 A JP2006155287 A JP 2006155287A JP 2004345753 A JP2004345753 A JP 2004345753A JP 2004345753 A JP2004345753 A JP 2004345753A JP 2006155287 A JP2006155287 A JP 2006155287A
- Authority
- JP
- Japan
- Prior art keywords
- cache
- mapping
- information
- related object
- requested
- 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
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】オブジェクトが要求された時点で、一次関連オブジェクトまで直ちに必要とせず、次回の要求で一次関連オブジェクトが要求される可能性が高い場合に、情報に高速にアクセスする。
【解決手段】O/Rマッピングサーバ端末200のサーバ処理プログラム201が、オブジェクト利用クライアント端末10のクライアント処理プログラム11からオブジェクト取得要求を受け付け、リレーショナルデータベース31よりレコードを取得し、クライアント処理プログラム11にオブジェクトを返却する処理の途中において、サーバ処理プログラム201から発せられた非同期メッセージに対して、非同期キャッシュ管理プログラム203が、キャッシュ管理装置202に一次関連オブジェクトが存在するか否かをチェックし、存在しない場合はデータベースか31から情報を取得し、取得結果から一次関連オブジェクトを作成し、キャッシュ管理装置202に保存する。
【選択図】図3
【解決手段】O/Rマッピングサーバ端末200のサーバ処理プログラム201が、オブジェクト利用クライアント端末10のクライアント処理プログラム11からオブジェクト取得要求を受け付け、リレーショナルデータベース31よりレコードを取得し、クライアント処理プログラム11にオブジェクトを返却する処理の途中において、サーバ処理プログラム201から発せられた非同期メッセージに対して、非同期キャッシュ管理プログラム203が、キャッシュ管理装置202に一次関連オブジェクトが存在するか否かをチェックし、存在しない場合はデータベースか31から情報を取得し、取得結果から一次関連オブジェクトを作成し、キャッシュ管理装置202に保存する。
【選択図】図3
Description
本発明は、プログラミング言語の一形態であるオブジェクト指向言語で扱う「オブジェクト」と「リレーショナルデータベースのレコード」を対応付けるO/R(Object / Relational Mapping)マッピング技術に関する。
オブジェクト指向言語のオブジェクトとリレーショナルデータベースのレコードを対応させる事をO/Rマッピングと呼び、それらを実現するツールをO/Rマッピングツールと呼ぶ。一般に、O/Rマッピングツールは、単にオブジェクトとリレーショナルデータベースのレコードを対応させるだけでなく、キャッシュを利用したデータアクセスの高速化も実現する。ここで、O/Rマッピングツールが持つキャッシュ機能を利用する場合のO/Rマッピング装置が適用されるコンピュータシステムについて説明する。
図9は、O/Rマッピングツールが持つキャッシュ機能を利用する場合のO/Rマッピング装置が適用されるコンピュータシステム1の概略構成図である。図9に示すコンピュータシステム1は、オブジェクト利用クライアント端末10、O/Rマッピングサーバ端末20、及びデータベース端末30から構成されている。オブジェクト利用クライアント端末10、O/Rマッピングサーバ端末20、及びデータベース端末30は、例えば、具体的には、パーソナルコンピュータ、ワークステーションなどの端末であり、各端末は通信ネットワークを介して接続されている。
また、オブジェクト利用クライアント端末10は、内部にクライアント処理プログラム11を備え、O/Rマッピングサーバ端末20は、内部にサーバ処理プログラム21及び一時的に情報を格納するキャッシュ管理装置22を備え、データベース端末30は、内部にリレーショナルデータベース(RDB)31を備えている。
次に、図10に示すフローチャートを参照して、上述したO/Rマッピングサーバ端末20に含まれるサーバ処理プログラム21の動作について説明する。ここで、図10は、サーバ処理プログラム21が、オブジェクト利用クライアント端末10に含まれるクライアント処理プログラム11からオブジェクト取得要求を受け付け、リレーショナルデータベース31よりレコードを取得し、クライアント処理プログラム11にオブジェクトを返却する動作を示すフローチャートである。
サーバ処理プログラム21は、オブジェクト利用クライアント端末10からオブジェクト取得要求を受け付けると、キャッシュ管理装置22に要求オブジェクトが存在するか否かを確認する(ステップS910,S920)。キャッシュ管理装置22にオブジェクトが存在する場合は、キャッシュ管理装置22からオブジェクトを取得する(ステップS930,S940)。
一方、キャッシュ管理装置22にオブジェクトが存在しない場合は、リレーショナルデータベース31からレコードを取得し、取得レコードからオブジェクトを作成する(ステップS930,S950,S960)。
オブジェクト作成後、キャッシュ管理装置22のキャッシュ領域に空きが無い場合は、最も重要性が低いと推定されたオブジェクトが削除される(ステップS970,S980)。この重要性の推定のアルゴリズムには様々なものが存在するが、例えば、FIFO(最も古くから存在するオブジェクトのキャッシュを削除する)、LRU(最も長時間利用されていないオブジェクトのキャッシュを削除する)、NRU(最近利用されていないオブジェクトのキャッシュを削除する)等のアルゴリズムが用いられる。次いで、ステップS960において作成されたオブジェクトをキャッシュ管理装置22に保存する(ステップS990)。
これに対して、キャッシュ管理装置22のキャッシュ領域に空きがある場合は、ステップS960において作成されたオブジェクトをそのままキャッシュ管理装置22に保存する(ステップS970,ステップS990)。
次に、後述する遅延ロードを行なう場合は、取得した要求オブジェクトに関連する関連オブジェクトの読み込みは行わず、要求オブジェクトをクライアント処理プログラム11に返却する(ステップS1000,S1020)。一方、遅延ロードを行わない場合は、取得した要求オブジェクトに関連するすべての関連オブジェクトの読み込みが終了するまでステップS920〜S990の処理を繰り返し、すべての関連オブジェクトを読み込んだ後、要求オブジェクトをクライアント処理プログラムに返却する(ステップS1010,S1020)。このように、オブジェクト間に関連するオブジェクトが存在する場合、O/Rマッピングツールには2種類の処理形態が存在する。
ここで、遅延ロード(Lazy loading)について説明する。
あるオブジェクトが要求された際に、要求されたオブジェクトはリレーショナルデータベース31上のレコードより生成され、キャッシュ管理装置22に格納されるが、遅延ロードを用いる処理形態においては、関連オブジェクトはその時点では生成せず、実際に必要になった時点で生成するようになっている。
オブジェクト要求時に関連オブジェクトまでは必要としない場合、遅延ロードを用いることにより、不要な関連オブジェクトを作成し、キャッシュ管理装置22に格納する可能性が減少し、処理効率が向上する。
図11にオブジェクト関連モデルの一例を示す。この図においては、1から12までの丸はそれぞれオブジェクトを示し、各オブジェクト間の矢印はオブジェクト間の関連を表している(例えば、オブジェクト1からオブジェクト5に対して矢印が延びているが、このことは、オブジェクト1の関連オブジェクトは、オブジェクト5であることを示している)。
遅延ロードを用いる場合のキャッシュ処理例を図12に示す。オブジェクト1,5,8,12の順にオブジェクトが要求される場合、オブジェクト1を要求することにより、オブジェクト1が作成され、キャッシュ管理装置22に保存される。同様にして、オブジェクト5,8,12も各オブジェクトが要求される時点において、作成され、キャッシュ管理装置22に保存される。
これに対して、遅延ロードを用いない処理形態においては、あるオブジェクトが要求された際に、要求されたオブジェクトに加え、関連オブジェクトもすべて同時に作成され、キャッシュ管理装置22に格納するようになっている。
O/Rマッピングツール利用時に、要求したオブジェクトに加え関連オブジェクトも同時に利用する場合、遅延ロードを用いないことで、必要なオブジェクトをすべて一度に取得し、キャッシュ管理装置22に格納する事が可能である。
遅延ロードを用いない場合のキャッシュ処理例を図13に示す。オブジェクト1,5,8,12の順にオブジェクトが要求される場合、オブジェクト1を要求する時点において、オブジェクト1及び、関連オブジェクトとして、オブジェクト2〜12が一度に作成され、キャッシュ管理装置22に保存される。
尚、この出願に関連する先行技術文献情報としては、次のものがある。
www.hibernate.org著"Hibernate Reference Documentation"、[online]、平成16年10月21日検索、インターネット<URL:http://www.hibernate.org/hib_docs/reference/en/html_single/>
www.hibernate.org著"Hibernate Reference Documentation"、[online]、平成16年10月21日検索、インターネット<URL:http://www.hibernate.org/hib_docs/reference/en/html_single/>
O/Rマッピングツールに対して要求された任意のオブジェクトを要求オブジェクト、要求オブジェクトと直接関連を持つオブジェクトを一次関連オブジェクトとするとき(例えば、図11に示すオブジェクト関連モデルにおいて、オブジェクト5の一次関連オブジェクトは、オブジェクト1,2,3,4,6,7,8,9である)、要求オブジェクトが要求された時点で、一次関連オブジェクトまでは直ちに必要とせず、次回の要求で一次関連オブジェクトが要求される可能性が高い場合、遅延ロードを用いる処理形態においては、同一のオブジェクトが繰り返し呼ばれないため、キャッシュに格納されたオブジェクトは利用されず、データアクセス処理の高速化は見込めないという問題がある。
また、遅延ロードを用いない処理形態においては、オブジェクトが要求された際に、関連オブジェクトすべてが同時に作成され、キャッシュ管理装置22に保存されるため、関連オブジェクトが多い場合、データアクセス処理の性能が低下するという問題がある。
本発明は上記の問題を解決するためになされたものであり、オブジェクトが要求された時点で、一次関連オブジェクトまで直ちに必要とせず、次回の要求で一次関連オブジェクトが要求される可能性が高い場合に、情報に高速にアクセスすることができるO/Rマッピング装置、O/Rマッピング方法、O/Rマッピングプログラム、及びオントロジ管理データベースシステムを提供することを目的とする。
上記目的を達成するため、請求項1記載の本発明は、オブジェクト要求に対して、要求されたオブジェクトがキャッシュに存在するときは、該キャッシュから前記オブジェクトを取得して返却し、キャッシュに存在しないときは、リレーショナルデータベースのレコードからオブジェクトを作成し、前記キャッシュに記憶させて、返却するO/R(Object / Relational Mapping)マッピング装置であって、オブジェクト間の関連に関する関連オブジェクト情報を取得する手段と、取得した関連オブジェクト情報に従って、返却したオブジェクトに直接関連するオブジェクトを特定する関連オブジェクト特定手段と、特定された関連オブジェクトが前記キャッシュに存在するか否かを確認する手段と、特定された関連オブジェクトが前記キャッシュに存在しないときは、前記リレーショナルデータベースのレコードから関連オブジェクトを作成し、前記キャッシュに記憶させる関連オブジェクト記憶手段と、を有し、要求されたオブジェクトの返却後、次のオブジェクト要求を受けるまでの間に特定された関連オブジェクトを前記キャッシュに記憶させることを特徴とする。
請求項2記載の本発明は、請求項1記載の発明において、前記関連オブジェクト記憶手段は、前記キャッシュに空きがないときは、所定のアルゴリズムに基づいて重要性が低いと判断されたオブジェクトを削除してから、特定された関連オブジェクトを前記キャッシュに記憶させることを特徴とする。
請求項3記載の本発明は、請求項1又は2記載の発明において、前記関連オブジェクト情報は、関連の強度に関する情報を含み、前記関連オブジェクト特定手段は、前記関連の強度に関する情報に基づいて、前記直接関連するオブジェクトの中から予め定められた強度以上を有するオブジェクトを抽出することを特徴とする。
請求項4記載の本発明は、オブジェクト要求に対して、要求されたオブジェクトがキャッシュに存在するときは、該キャッシュから前記オブジェクトを取得して返却し、キャッシュに存在しないときは、リレーショナルデータベースのレコードからオブジェクトを作成し、前記キャッシュに記憶させて、返却するO/Rマッピング方法であって、オブジェクト間の関連に関する関連オブジェクト情報を取得するステップと、取得した関連オブジェクト情報に従って、返却したオブジェクトに直接関連するオブジェクトを特定する関連オブジェクト特定ステップと、特定された関連オブジェクトが前記キャッシュに存在するか否かを確認するステップと、特定された関連オブジェクトが前記キャッシュに存在しないときは、前記リレーショナルデータベースのレコードから関連オブジェクトを作成し、前記キャッシュに記憶する関連オブジェクト記憶ステップと、を有し、要求されたオブジェクトの返却後、次のオブジェクト要求を受けるまでの間に特定された関連オブジェクトを前記キャッシュに記憶することを特徴とする。
請求項5記載の本発明は、請求項4記載の発明において、前記関連オブジェクト記憶ステップは、前記キャッシュに空きがないときは、所定のアルゴリズムに基づいて重要性が低いと判断されたオブジェクトを削除してから、特定された関連オブジェクトを前記キャッシュに記憶させることを特徴とする。
請求項6記載の本発明は、請求項4又は5記載の発明において、前記関連オブジェクト情報は、関連の強度に関する情報を含み、前記関連オブジェクト特定ステップは、前記関連の強度に関する情報に基づいて、前記直接関連するオブジェクトの中から予め定められた強度以上を有するオブジェクトを抽出することを特徴とする。
請求項7記載の本発明は、オブジェクト要求に対して、要求されたオブジェクトがキャッシュに存在するときは、該キャッシュから前記オブジェクトを取得して返却し、キャッシュに存在しないときは、リレーショナルデータベースのレコードからオブジェクトを作成し、前記キャッシュに記憶させて、返却するコンピュータが読み取り可能なO/R(Object / Relational Mapping)マッピングプログラムであって、前記コンピュータを、オブジェクト間の関連に関する関連オブジェクト情報を取得する手段と、取得した関連オブジェクト情報に従って、返却したオブジェクトに直接関連するオブジェクトを特定する関連オブジェクト特定手段と、特定された関連オブジェクトが前記キャッシュに存在するか否かを確認する手段と、特定された関連オブジェクトが前記キャッシュに存在しないときは、前記リレーショナルデータベースのレコードから関連オブジェクトを作成し、前記キャッシュに記憶させる関連オブジェクト記憶手段と、として機能させ、要求されたオブジェクトの返却後、次のオブジェクト要求を受けるまでの間に特定された関連オブジェクトを前記キャッシュに記憶させることを特徴とする。
請求項8記載の本発明は、請求項7記載の発明において、前記関連オブジェクト記憶手段は、前記キャッシュに空きがないときは、所定のアルゴリズムに基づいて重要性が低いと判断されたオブジェクトを削除してから、特定された関連オブジェクトを前記キャッシュに記憶させることを特徴とする。
請求項9記載の本発明は、請求項7又は8記載の発明において、前記関連オブジェクト情報は、関連の強度に関する情報を含み、前記関連オブジェクト特定手段は、前記関連の強度に関する情報に基づいて、前記直接関連するオブジェクトの中から予め定められた強度以上を有するオブジェクトを抽出することを特徴とする。
請求項10記載の本発明は、請求項1乃至3のいずれか1項に記載のO/Rマッピング装置と、前記リレーショナルデータベースと、オントロジ情報取得要求に対して、要求されたオントロジ情報に対応するオブジェクトを特定するとともに、前記O/Rマッピング装置を介して取得したオブジェクトからオントロジ情報を作成し、返却するオントロジ−オブジェクト変換装置と、を有するオントロジ管理データベースシステムであることを特徴とする。
本発明によれば、O/Rマッピングツールに対してオブジェクトが要求された時点で、一次関連オブジェクトまでは直ちに必要とせず、次回の要求で一次関連オブジェクトが要求される可能性が高い場合に、ユーザの要求に対しては要求されたオブジェクトだけを即時に返却し、一次関連オブジェクトを次回の要求までに取得して、キャッシュするので、情報に高速にアクセスすることができる。
以下、本発明の実施の形態を図面を用いて説明する。
図1は本発明のO/Rマッピング装置が適用されるコンピュータシステム2の概略構成図である。図1に示すコンピュータシステム2は、オブジェクト利用クライアント端末10、O/Rマッピングサーバ端末200、及びデータベース端末30から構成されており、各端末は通信ネットワークを介して接続されている。
オブジェクト利用クライアント端末10、O/Rマッピングサーバ端末200、及びデータベース端末30は、例えば、具体的には、パーソナルコンピュータ、ワークステーションなどが想定されるが、少なくとも演算機能および制御機能を備えた中央演算装置(CPU)、プログラムやデータを格納する機能を有するRAM等からなる主記憶装置(メモリ)を有する電子的な装置から構成されていればよい。また、主記憶装置の他、ハードディスクなどの補助記憶装置を具備していてもよい。
また、本実施の形態に係る各種処理を実行するプログラムは、前述した主記憶装置またはハードディスクに格納されているものである。そして、このプログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD−ROMなどのコンピュータ読み取り可能な記録媒体に記録することも、通信ネットワークを介して配信することも可能である。
詳しくは、オブジェクト利用クライアント端末10は、内部にクライアント処理プログラム11を備え、O/Rマッピングサーバ200は、内部にサーバ処理プログラム201、一時的に情報を格納するキャッシュ管理装置202、及びオブジェクトのキャッシュ処理を非同期に行う非同期キャッシュ管理プログラム203を備え、データベース端末30は、内部にリレーショナルデータベース(RDB)31を備えている。
次に、本実施の形態に係るサーバ処理プログラム201及び非同期キャッシュプログラム203の動作を図2及び3を用いて説明する。ここで、図2は、O/Rマッピングサーバ端末200に含まれるサーバ処理プログラム201が、オブジェクト利用クライアント端末10に含まれるクライアント処理プログラム11からオブジェクト取得要求を受け付け、リレーショナルデータベース31よりレコードを取得し、クライアント処理プログラム11にオブジェクトを返却する動作を示すフローチャートであり、図3は、図2に示す処理の途中において、サーバ処理プログラム201から発せられた非同期メッセージに対して、非同期キャッシュ管理プログラム203が、一次関連オブジェクトをキャッシュする動作を示すフローチャートである。
サーバ処理プログラム201は、オブジェクト利用クライアント端末10からオブジェクト取得要求を受け付けると、キャッシュ管理装置202に要求オブジェクトが存在するか否かを確認する(ステップS10,S20)。キャッシュ管理装置202にオブジェクトが存在する場合は、キャッシュ管理装置202からオブジェクトを取得する(ステップS30,S40)。
一方、キャッシュ管理装置202にオブジェクトが存在しない場合は、リレーショナルデータベース31からレコードを取得し、取得レコードからオブジェクトを作成する(ステップS30,S50,S60)。この際、一次関連オブジェクト情報もリレーショナルデータベース31から取得し、オブジェクトに設定する。ここで、一次関連オブジェクトとは、上述したように、要求オブジェクトと直接関連を持つオブジェクトをいい、一次関連オブジェクト情報には、要求オブジェクトと直接関連するオブジェクトを特定する情報が含まれる。
オブジェクト作成後、キャッシュ管理装置202のキャッシュ領域に空きが無い場合は、最も重要性が低いと推定されたオブジェクトが削除される(ステップS70,S80)。この重要性の推定のアルゴリズムには様々なものが存在するが、例えば、FIFO(最も古くから存在するオブジェクトのキャッシュを削除する)、LRU(最も長時間利用されていないオブジェクトのキャッシュを削除する)、NRU(最近利用されていないオブジェクトのキャッシュを削除する)等のアルゴリズムが用いられる。次いで、ステップS60において作成されたオブジェクトをキャッシュ管理装置202に保存する(ステップS90)。
これに対して、キャッシュ管理装置202に空きがある場合は、ステップS60において作成されたオブジェクトをそのままキャッシュ管理装置202に保存する(ステップS70,ステップS90)。
次に、サーバ処理プログラム201は、一次関連オブジェクト情報を該オブジェクトから取得し、非同期キャッシュ管理プログラム203に対して、非同期に、一次関連オブジェクト処理要求を行い、非同期キャッシュ管理プログラム203の処理状況に関わらず、要求されたオブジェクトをオブジェクト利用クライアント端末10に返却し終了する(ステップS100,S110,S120)。尚、本実施の形態においては、一次関連オブジェクト情報は、ステップS60においてリレーショナルデータベース31から取得するようになっているが、本発明はこれに限定されず、例えば、オブジェクト要求時に別途取得した一次関連オブジェクト情報を参照してもよいし、また、すべてのオブジェクト間の関連に関する情報をシステム起動時などに予め読み込むようにしてもよい。
非同期キャッシュ管理プログラム203は、図3に示すように、非同期メッセージを受け取ると、スレッドを生成し、まず、要求オブジェクトに対して一次関連オブジェクトが存在するかチェックする(ステップS210,S220)。
一次関連オブジェクトが存在しない場合は、処理を終了する(ステップS220)。一方、一次関連オブジェクトが存在する場合には、キャッシュ管理装置202に一次関連オブジェクトが存在するか否かをチェックする(ステップS220,S230)。
キャッシュ管理装置202に一次関連オブジェクトが存在する場合は、後述するステップS300に進む(ステップS240)。これに対して、キャッシュ管理装置202に一次関連オブジェクトが存在しない場合は、リレーショナルデータベース31からレコードを取得し、取得レコードから、一次関連オブジェクトを作成する(ステップS240,S250,S260)。この際、一次関連オブジェクト情報もリレーショナルデータベース31から取得し、一次関連オブジェクトに設定する。
次に、非同期キャッシュ管理プログラム203は、キャッシュ管理装置202のキャッシュ領域に空きが無い場合は、上述した重要性の推定のアルゴリズムに従い、最も重要性が低いと判断されたオブジェクトを削除する(ステップS270,S280)。
次いで、ステップS260において作成された一次関連オブジェクトをキャッシュ管理装置202に保存する(ステップS290)。
これに対して、キャッシュ管理装置202のキャッシュ領域に空きがある場合は、ステップS260において作成された一次関連オブジェクトをそのままキャッシュ管理装置202に保存する(ステップS270,ステップS290)。
次に、非同期キャッシュ管理プログラム203は、一次関連オブジェクトの処理対象が残っているかチェックし、残っている場合は、上述したキャッシュ処理を再び実施する(ステップS300,S310,S230〜S290)。一方、一次関連オブジェクトの処理対象がない場合には、処理を終了する(ステップS310)。
上述したキャッシュ処理を、図4に示すオブジェクト関連モデルを用いて、具体的に説明する。オブジェクトがオブジェクト1,5,8,12の順に要求される場合を考える。この場合、オブジェクト1を利用することにより、オブジェクト1がキャッシュされた後、返却される。返却後、オブジェクト5はオブジェクト1に直接関連付けられているので、非同期にキャッシュ処理が行われる。ここで、一般に、(キャッシュからオブジェクトを取得する時間)<<(データベース上のレコードからオブジェクトを作成する処理に必要な時間)<<(ネットワーク間の情報転送、人が情報入力等を行うのに要する時間)という関係があり、リレーショナルデータベース31上のレコードから一次関連オブジェクトを作成する処理に必要な時間に比べて、ネットワーク間の情報転送、人が行う入出力処理に必要な時間の方がより多くの時間がかかるため、オブジェクト5が要求されるまでにオブジェクト5のキャッシュ処理は終了する。従って、オブジェクト5の要求に対しては、キャッシュを用いてオブジェクト5が返却される。
この後、オブジェクト1,2,3,4,6,7,8,9は、オブジェクト5に直接関連付けられているので、同様にして、非同期にキャッシュ処理が行われる。尚、この際、オブジェクト1は既にキャッシュに含まれているため、オブジェクト2,3,4,6,7,8,9が新たにキャッシュされる。従って、オブジェクト8の要求に対しては、キャッシュを用いてオブジェクト8が返却される(図4に示す斜線は、オブジェクト5アクセス時点においてキャッシュに格納されているオブジェクトを示す)。
この後、オブジェクト5,6,7,10,11,12は、オブジェクト8に直接関連付けられているため、同様にして、非同期にキャッシュ処理が行われる。この際、オブジェクト5,6,7は既にキャッシュに含まれているため、オブジェクト10,11,12が新たにキャッシュされる。従って、オブジェクト12の要求に対しては、キャッシュを用いてオブジェクト12が返却される。
上記手法を用いることにより、関連するオブジェクトを連続して利用する場合、キャッシュが有効に作用するため、処理が高速化される。しかし、関連するオブジェクトすべてをキャッシュに保存することは、不要なオブジェクトをキャッシュする可能性も高く、キャッシュ及びCPU資源を無駄に利用する可能性もある。
そこで、次に、上述した非同期キャッシュプログラム203の変形例について説明する。この非同期キャッシュプログラム203’は、オブジェクト間の関連の強度が可変である場合に、オブジェクト間の関連の強度情報を用いて、次にアクセスされる可能性が高いオブジェクトだけを優先的にキャッシュするようになっている。
図5は、非同期キャッシュプログラム203’が適用されるオブジェクト関連モデルの一例を示しているが、オブジェクト間のそれぞれの矢印には1〜4までの関連強度が与えられており、例えば、具体的には、オブジェクト5からオブジェクト1の関連(強度1)より、オブジェクト5からオブジェクト4の関連(強度4)の方が強いことを示している。
次に、非同期キャッシュプログラム203’の動作を図6を用いて説明する。ここで、図6は、図2に示す処理の途中において、サーバ処理プログラム201から発せられた非同期メッセージに対して、非同期キャッシュ管理プログラム203’が、一次関連オブジェクトをキャッシュする動作を示すフローチャートである。
非同期キャッシュ管理プログラム203’は、図6に示すように、非同期メッセージを受け取ると、スレッドを生成し、まず、要求オブジェクトに対して一次関連オブジェクトが存在するかチェックする(ステップS410,S420)。
一次関連オブジェクトが存在しない場合は、処理を終了する(ステップS420)。一方、一次関連オブジェクトが存在する場合は、ノード間の関連の強度を利用し、ある閾値を越える強度を持つ関連で繋がれた一次関連オブジェクトだけにキャッシュ対象を絞り込む(ステップS420,S430)。そして、絞り込まれた一次関連オブジェクトが、キャッシュ管理装置202に存在するか否かをチェックする(ステップS440)。
キャッシュ管理装置202に絞り込まれた一次関連オブジェクトが存在する場合は、後述するステップS510に進む(ステップS450)。これに対して、キャッシュ管理装置202に絞り込まれた一次関連オブジェクトが存在しない場合は、リレーショナルデータベース31からレコードを取得し、取得レコードから、一次関連オブジェクトを作成する(ステップS450,S460,S470)。この際、一次関連オブジェクト情報もリレーショナルデータベース31から取得し、一次関連オブジェクトに設定する。
次に、非同期キャッシュ管理プログラム203’は、キャッシュ管理装置202のキャッシュ領域に空きが無い場合は、上述した重要性の推定のアルゴリズムに従い、最も重要性が低いと判断されたオブジェクトを削除する(ステップS480,S490)。次いで、ステップS470において作成された一次関連オブジェクトをキャッシュ管理装置202に保存する(ステップS500)。
これに対して、キャッシュ管理装置202のキャッシュ領域に空きがある場合は、ステップS470において作成された一次関連オブジェクトをそのままキャッシュ管理装置202に保存する(ステップS480,ステップS500)。
次に、非同期キャッシュ管理プログラム203’は、一次関連オブジェクトの処理対象が残っているかチェックし、残っている場合は、上述したキャッシュ処理を再び実施する(ステップS510,S520,S440〜S500)。一方、一次関連オブジェクトの処理対象がない場合には、処理を終了する(ステップS520)。
このように、非同期キャッシュ管理プログラム203’は、関連の強度を利用して重要性が低いと判断されたオブジェクトをキャッシュ対象から外しているので、キャッシュ及びCPU資源の効率的な利用を図ることができる。
上述したキャッシュ処理を、図7に示すオブジェクト関連モデルを用いて、具体的に説明する。例えば、図7において、強度が3以上の関連を持つ一次関連オブジェクトをキャッシュすると設定されている場合に、オブジェクトがオブジェクト1,5,8,12の順に要求される場合を考える。この場合、まず、オブジェクト1を利用することにより、オブジェクト1がキャッシュされた後、返却される。返却後、オブジェクト5はオブジェクト1に直接関連付けられているが、関連の強度は1であり、閾値に達していないので、キャッシュ処理は行わない。従って、オブジェクト5の要求に対しては、キャッシュを用いずにオブジェクト5が返却される。
この後同様に、オブジェクト1,2,3,4,6,7,8,9はオブジェクト5に直接関連付けられているが、オブジェクト1,3,6,7,9に向かう関連の強度は閾値に達していないため、キャッシュされず、オブジェクト2,4,8に対し非同期にキャッシュ処理が行われる。従って、オブジェクト8の要求に対しては、キャッシュを用いてオブジェクト8が返却される(図7に示す斜線は、オブジェクト5アクセス時点においてキャッシュに格納されているオブジェクトを示す)。
この後、同様にオブジェクト5,6,7,10,11,12はオブジェクト8に直接関連付けられているが、オブジェクト5,7,10,11に向かう関連の強度は閾値に達していないため、キャッシュされず、オブジェクト6,12に対し非同期にキャッシュ処理が行われる。従って、オブジェクト12の要求に対しては、キャッシュを用いてオブジェクト12が返却される。
従って、一次関連オブジェクト利用の頻度が、関連の強度を示す数値に反映されている場合には、不要なオブジェクトをキャッシュする可能性が低く、キャッシュ及びCPU資源を無駄に利用する可能性が減少する。
最後に、図6に示したO/Rマッピングツールのキャッシュ方法をオントロジ管理データベースシステム3に適用した場合について説明する。
オントロジとは概念間の相互関係を記述したものであり、次世代Webとして検討が進められているセマンティックウェブにおいて重要な役割を担う。オントロジを利用したサービスとしては、例えば、米国のVerticalNet社はオントロジをeマーケットプレイスの運用に利用している。その他、ポータルサイト、検索システム、ドキュメント管理システムに利用することが可能である。
現在標準化が進められているオントロジにおいては、概念(クラス)間の関連の強度を表現することはできないが、図8において示す例では概念間の関連に強度が付与されているものとする。
図8に示すオントロジに対して、酒、洋酒、カクテル、ジントニックの順番にクラスを利用する場合に、関連の強度が3以上の場合に限りキャッシュすると仮定する。尚、オントロジ管理データベースシステム3は、コンピュータシステム2と同様に、オブジェクト利用クライアント端末、O/Rマッピングサーバ端末、データベース端末から構成されるが、O/Rマッピングサーバ端末は、オントロジ情報取得要求に対して、要求されたオントロジ情報に対応するオブジェクトを特定するとともに、上述したキャッシュ方法により、取得したオブジェクトからオントロジ情報を作成し、返却するオントロジ−オブジェクト変換機能をさらに具備する構成となっている。
ここで、オントロジ管理データベースシステム3の動作について説明する。
最初にユーザは酒クラスをオントロジ管理データベースシステム3に要求する。酒クラスはキャッシュ管理装置内に存在しないため、オントロジ管理データベースシステム3はリレーショナルデータベースのレコードから酒クラスを作成し、キャッシュ管理装置に酒クラスを格納した上でユーザに返却する。この後、ユーザが酒クラスに関する処理をしている間に、オントロジ管理データベースシステム3は酒クラスの関連クラスとして、蒸留酒クラスと洋酒クラスを特定する。関連の強度はそれぞれ1,3であるので、洋酒クラスがキャッシュ対象として特定される。洋酒クラスはキャッシュ管理装置内に存在しないため、オントロジ管理データベースシステム3はリレーショナルデータベースのレコードから洋酒クラスを作成し、キャッシュ管理装置に洋酒クラスを格納する。
次にユーザは洋酒クラスをオントロジ管理データベースシステム3に要求する。洋酒クラスは既にキャッシュ管理装置内に存在するため、オントロジ管理データベースシステム3はキャッシュ管理装置から洋酒クラスを取得し、ユーザに返却する。この後、ユーザが洋酒クラスに関する処理をしている間に、オントロジ管理データベースシステム3は洋酒クラスの関連クラスとして、ウィスキークラスとカクテルクラスを特定する。関連の強度はそれぞれ3,1であるので、ウィスキークラスがキャッシュ対象として特定される。ウィスキークラスはキャッシュ管理装置内に存在しないため、オントロジ管理データベース3はリレーショナルデータベースのレコードからウィスキークラスを作成し、キャッシュ管理装置内にウィスキークラスを格納する。
次にユーザはカクテルクラスをオントロジ管理データベースシステム3に要求する。カクテルクラスはキャッシュ管理装置内に存在しないため、オントロジ管理データベース3はリレーショナルデータベースのレコードからカクテルクラスを作成し、キャッシュ管理装置にカクテルクラスを格納した上でユーザに返却する。この後、ユーザがカクテルクラスに関する処理をしている間に、オントロジ管理データベースシステム3はカクテルクラスの関連クラスとして、混合酒クラスとジントニッククラスを特定する。関連の強度はそれぞれ5,4であるので、混合酒クラス、ジントニッククラス共キャッシュ対象として特定される。混合酒クラス、ジントニッククラスはキャッシュ管理装置内に存在しないため、オントロジ管理データベースシステム3は、リレーショナルデータベースのレコードから混合酒クラス、ジントニッククラスを作成し、キャッシュ管理装置内に混合酒クラス、ジントニッククラスを格納する。
次にユーザはジントニッククラスをオントロジ管理データベースシステム3に要求する。ジントニッククラスは既にキャッシュ管理装置内に存在するため、オントロジ管理データベースシステム3はキャッシュ管理装置からジントニッククラスを取得し、ユーザに返却する。この後、ユーザがジントニッククラスに関する処理をしている間に、オントロジ管理データベースシステムは洋酒クラスの関連クラスを検索するが、この例においては関連クラスは存在しないため、キャッシュ処理は行わない。
以上の例に示される通り、あるクラスの次に要求されるクラスがあるクラスからの関連の強度に強く依存している場合は、非同期キャッシュ処理を実施することにより、メモリを効率的に用いてクラスを高速に取得することが可能となる。
従って、本実施の形態によれば、O/Rマッピングツールに対してオブジェクトが要求された時点で、一次関連オブジェクトまでは直ちに必要とせず、次回の要求で一次関連オブジェクトが要求される可能性が高い場合に、ユーザの要求に対しては要求オブジェクトだけを即時に返却し、次の要求が発生するまでに一次関連オブジェクトの取得処理を行い、一次関連オブジェクトを次回の要求までに取得して、キャッシュするので、情報に高速にアクセスすることができる。
また、オブジェクト間の関連に強度が設定されている場合は、要求オブジェクトに続いて利用される可能性が高いオブジェクトだけにキャッシュ対象を絞り込むので、キャッシュを効率的に管理し、システムに対する負荷を軽減することが可能となる。
さらに、本発明をオントロジ管理データベースシステムに適用した場合、大規模な関連を有するオントロジからオントロジ情報を高速に取得することが可能となる。
10…オブジェクト利用クライアント端末
20,200…O/Rマッピングサーバ端末
30…データベース端末
20,200…O/Rマッピングサーバ端末
30…データベース端末
Claims (10)
- オブジェクト要求に対して、要求されたオブジェクトがキャッシュに存在するときは、該キャッシュから前記オブジェクトを取得して返却し、キャッシュに存在しないときは、リレーショナルデータベースのレコードからオブジェクトを作成し、前記キャッシュに記憶させて、返却するO/R(Object / Relational Mapping)マッピング装置であって、
オブジェクト間の関連に関する関連オブジェクト情報を取得する手段と、
取得した関連オブジェクト情報に従って、返却したオブジェクトに直接関連するオブジェクトを特定する関連オブジェクト特定手段と、
特定された関連オブジェクトが前記キャッシュに存在するか否かを確認する手段と、
特定された関連オブジェクトが前記キャッシュに存在しないときは、前記リレーショナルデータベースのレコードから関連オブジェクトを作成し、前記キャッシュに記憶させる関連オブジェクト記憶手段と、
を有し、要求されたオブジェクトの返却後、次のオブジェクト要求を受けるまでの間に特定された関連オブジェクトを前記キャッシュに記憶させることを特徴とするO/Rマッピング装置。 - 前記関連オブジェクト記憶手段は、
前記キャッシュに空きがないときは、所定のアルゴリズムに基づいて重要性が低いと判断されたオブジェクトを削除してから、特定された関連オブジェクトを前記キャッシュに記憶させることを特徴とする請求項1記載のO/Rマッピング装置。 - 前記関連オブジェクト情報は、関連の強度に関する情報を含み、
前記関連オブジェクト特定手段は、
前記関連の強度に関する情報に基づいて、前記直接関連するオブジェクトの中から予め定められた強度以上を有するオブジェクトを抽出することを特徴とする請求項1又は2記載のO/Rマッピング装置。 - オブジェクト要求に対して、要求されたオブジェクトがキャッシュに存在するときは、該キャッシュから前記オブジェクトを取得して返却し、キャッシュに存在しないときは、リレーショナルデータベースのレコードからオブジェクトを作成し、前記キャッシュに記憶させて、返却するO/Rマッピング方法であって、
オブジェクト間の関連に関する関連オブジェクト情報を取得するステップと、
取得した関連オブジェクト情報に従って、返却したオブジェクトに直接関連するオブジェクトを特定する関連オブジェクト特定ステップと、
特定された関連オブジェクトが前記キャッシュに存在するか否かを確認するステップと、
特定された関連オブジェクトが前記キャッシュに存在しないときは、前記リレーショナルデータベースのレコードから関連オブジェクトを作成し、前記キャッシュに記憶する関連オブジェクト記憶ステップと、
を有し、要求されたオブジェクトの返却後、次のオブジェクト要求を受けるまでの間に特定された関連オブジェクトを前記キャッシュに記憶することを特徴とするO/Rマッピング方法。 - 前記関連オブジェクト記憶ステップは、
前記キャッシュに空きがないときは、所定のアルゴリズムに基づいて重要性が低いと判断されたオブジェクトを削除してから、特定された関連オブジェクトを前記キャッシュに記憶させることを特徴とする請求項4記載のO/Rマッピング方法。 - 前記関連オブジェクト情報は、関連の強度に関する情報を含み、
前記関連オブジェクト特定ステップは、
前記関連の強度に関する情報に基づいて、前記直接関連するオブジェクトの中から予め定められた強度以上を有するオブジェクトを抽出することを特徴とする請求項4又は5記載のO/Rマッピング方法。 - オブジェクト要求に対して、要求されたオブジェクトがキャッシュに存在するときは、該キャッシュから前記オブジェクトを取得して返却し、キャッシュに存在しないときは、リレーショナルデータベースのレコードからオブジェクトを作成し、前記キャッシュに記憶させて、返却するコンピュータが読み取り可能なO/R(Object / Relational Mapping)マッピングプログラムであって、
前記コンピュータを、
オブジェクト間の関連に関する関連オブジェクト情報を取得する手段と、
取得した関連オブジェクト情報に従って、返却したオブジェクトに直接関連するオブジェクトを特定する関連オブジェクト特定手段と、
特定された関連オブジェクトが前記キャッシュに存在するか否かを確認する手段と、
特定された関連オブジェクトが前記キャッシュに存在しないときは、前記リレーショナルデータベースのレコードから関連オブジェクトを作成し、前記キャッシュに記憶させる関連オブジェクト記憶手段と、
として機能させ、要求されたオブジェクトの返却後、次のオブジェクト要求を受けるまでの間に特定された関連オブジェクトを前記キャッシュに記憶させることを特徴とするO/Rマッピングプログラム。 - 前記関連オブジェクト記憶手段は、
前記キャッシュに空きがないときは、所定のアルゴリズムに基づいて重要性が低いと判断されたオブジェクトを削除してから、特定された関連オブジェクトを前記キャッシュに記憶させることを特徴とする請求項7記載のO/Rマッピングプログラム。 - 前記関連オブジェクト情報は、関連の強度に関する情報を含み、
前記関連オブジェクト特定手段は、
前記関連の強度に関する情報に基づいて、前記直接関連するオブジェクトの中から予め定められた強度以上を有するオブジェクトを抽出することを特徴とする請求項7又は8記載のO/Rマッピングプログラム。 - 請求項1乃至3のいずれか1項に記載のO/Rマッピング装置と、
前記リレーショナルデータベースと、
オントロジ情報取得要求に対して、要求されたオントロジ情報に対応するオブジェクトを特定するとともに、前記O/Rマッピング装置を介して取得したオブジェクトからオントロジ情報を作成し、返却するオントロジ−オブジェクト変換装置と、
を有することを特徴とするオントロジ管理データベースシステム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004345753A JP2006155287A (ja) | 2004-11-30 | 2004-11-30 | O/rマッピング装置、o/rマッピング方法、o/rマッピングプログラム、及びオントロジ管理データベースシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004345753A JP2006155287A (ja) | 2004-11-30 | 2004-11-30 | O/rマッピング装置、o/rマッピング方法、o/rマッピングプログラム、及びオントロジ管理データベースシステム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006155287A true JP2006155287A (ja) | 2006-06-15 |
Family
ID=36633507
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004345753A Pending JP2006155287A (ja) | 2004-11-30 | 2004-11-30 | O/rマッピング装置、o/rマッピング方法、o/rマッピングプログラム、及びオントロジ管理データベースシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006155287A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112291290A (zh) * | 2019-07-25 | 2021-01-29 | 京东方科技集团股份有限公司 | 一种设备关联建立方法、装置及电子设备 |
-
2004
- 2004-11-30 JP JP2004345753A patent/JP2006155287A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112291290A (zh) * | 2019-07-25 | 2021-01-29 | 京东方科技集团股份有限公司 | 一种设备关联建立方法、装置及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9798774B1 (en) | Graph data search method and apparatus | |
JP2022166198A5 (ja) | ||
CN109492148B (zh) | 基于Redis的ElasticSearch分页查询方法和设备 | |
CN110688382B (zh) | 数据存储查询方法、装置、计算机设备及存储介质 | |
JP2008547106A (ja) | 検索用バックオフメカニズム | |
CN105608159B (zh) | 数据缓存的方法和装置 | |
CN111459418A (zh) | 一种基于rdma的键值存储系统传输方法 | |
CN113419824A (zh) | 数据处理方法、装置、系统及计算机存储介质 | |
JP6932360B2 (ja) | オブジェクト検索方法、装置およびサーバ | |
CN111562885A (zh) | 数据处理方法、装置、计算机设备及存储介质 | |
US20080071992A1 (en) | Method and Apparatus for Space Efficient Identification of Candidate Objects for Eviction from a Large Cache | |
JP4336363B2 (ja) | ビジネスプロセス実行方法、ビジネスプロセス実行システムおよびプログラム | |
CN112612751B (zh) | 一种异步目录操作方法、装置、设备和系统 | |
CN113157609B (zh) | 存储系统、数据处理方法、装置、电子设备及存储介质 | |
CN101459599B (zh) | 一种实现缓存数据访问与加载并发进行的方法及系统 | |
CN106934066B (zh) | 一种元数据处理方法、装置和存储设备 | |
CN113377791A (zh) | 一种数据处理方法、系统及计算设备 | |
CN112887113A (zh) | 处理数据的方法、装置及系统 | |
JP2006155287A (ja) | O/rマッピング装置、o/rマッピング方法、o/rマッピングプログラム、及びオントロジ管理データベースシステム | |
CN111209263A (zh) | 数据存储方法、装置、设备及存储介质 | |
JP2002342403A (ja) | フォールスパス検出装置、フォールスパス検出方法およびそのプログラム | |
CN115544071A (zh) | 异构数据库的数据存储方法、数据查询方法及相关装置 | |
WO2016188293A1 (zh) | 数据获取方法和装置 | |
CN109241444B (zh) | 基于状态机的内容推荐方法、装置、设备和存储介质 | |
CN113377723A (zh) | 一种缓存文件管理方法、装置和存储介质 |