(57)【要約】【課題】オブジェクトが要求された時点で、一次関連オブジェクトまで直ちに必要とせず、次回の要求で一次関連オブジェクトが要求される可能性が高い場合に、情報に高速にアクセスする。【解決手段】Ｏ／Ｒマッピングサーバ端末２００のサーバ処理プログラム２０１が、オブジェクト利用クライアント端末１０のクライアント処理プログラム１１からオブジェクト取得要求を受け付け、リレーショナルデータベース３１よりレコードを取得し、クライアント処理プログラム１１にオブジェクトを返却する処理の途中において、サーバ処理プログラム２０１から発せられた非同期メッセージに対して、非同期キャッシュ管理プログラム２０３が、キャッシュ管理装置２０２に一次関連オブジェクトが存在するか否かをチェックし、存在しない場合はデータベースか３１から情報を取得し、取得結果から一次関連オブジェクトを作成し、キャッシュ管理装置２０２に保存する。【選択図】図３
2006155287.tif 000002
【特許請求の範囲】
【請求項１】
オブジェクト要求に対して、要求されたオブジェクトがキャッシュに存在するときは、該キャッシュから前記オブジェクトを取得して返却し、キャッシュに存在しないときは、リレーショナルデータベースのレコードからオブジェクトを作成し、前記キャッシュに記憶させて、返却するＯ／Ｒ（Object / Relational Mapping）マッピング装置であって、
オブジェクト間の関連に関する関連オブジェクト情報を取得する手段と、
取得した関連オブジェクト情報に従って、返却したオブジェクトに直接関連するオブジェクトを特定する関連オブジェクト特定手段と、
特定された関連オブジェクトが前記キャッシュに存在するか否かを確認する手段と、
特定された関連オブジェクトが前記キャッシュに存在しないときは、前記リレーショナルデータベースのレコードから関連オブジェクトを作成し、前記キャッシュに記憶させる関連オブジェクト記憶手段と、
を有し、要求されたオブジェクトの返却後、次のオブジェクト要求を受けるまでの間に特定された関連オブジェクトを前記キャッシュに記憶させることを特徴とするＯ／Ｒマッピング装置。
【請求項２】
前記関連オブジェクト記憶手段は、
前記キャッシュに空きがないときは、所定のアルゴリズムに基づいて重要性が低いと判断されたオブジェクトを削除してから、特定された関連オブジェクトを前記キャッシュに記憶させることを特徴とする請求項１記載のＯ／Ｒマッピング装置。
【請求項３】
前記関連オブジェクト情報は、関連の強度に関する情報を含み、
前記関連オブジェクト特定手段は、
前記関連の強度に関する情報に基づいて、前記直接関連するオブジェクトの中から予め定められた強度以上を有するオブジェクトを抽出することを特徴とする請求項１又は２記載のＯ／Ｒマッピング装置。
【請求項４】
オブジェクト要求に対して、要求されたオブジェクトがキャッシュに存在するときは、該キャッシュから前記オブジェクトを取得して返却し、キャッシュに存在しないときは、リレーショナルデータベースのレコードからオブジェクトを作成し、前記キャッシュに記憶させて、返却するＯ／Ｒマッピング方法であって、
オブジェクト間の関連に関する関連オブジェクト情報を取得するステップと、
取得した関連オブジェクト情報に従って、返却したオブジェクトに直接関連するオブジェクトを特定する関連オブジェクト特定ステップと、
特定された関連オブジェクトが前記キャッシュに存在するか否かを確認するステップと、
特定された関連オブジェクトが前記キャッシュに存在しないときは、前記リレーショナルデータベースのレコードから関連オブジェクトを作成し、前記キャッシュに記憶する関連オブジェクト記憶ステップと、
を有し、要求されたオブジェクトの返却後、次のオブジェクト要求を受けるまでの間に特定された関連オブジェクトを前記キャッシュに記憶することを特徴とするＯ／Ｒマッピング方法。
【請求項５】
前記関連オブジェクト記憶ステップは、
前記キャッシュに空きがないときは、所定のアルゴリズムに基づいて重要性が低いと判断されたオブジェクトを削除してから、特定された関連オブジェクトを前記キャッシュに記憶させることを特徴とする請求項４記載のＯ／Ｒマッピング方法。
【請求項６】
前記関連オブジェクト情報は、関連の強度に関する情報を含み、
前記関連オブジェクト特定ステップは、
前記関連の強度に関する情報に基づいて、前記直接関連するオブジェクトの中から予め定められた強度以上を有するオブジェクトを抽出することを特徴とする請求項４又は５記載のＯ／Ｒマッピング方法。
【請求項７】
オブジェクト要求に対して、要求されたオブジェクトがキャッシュに存在するときは、該キャッシュから前記オブジェクトを取得して返却し、キャッシュに存在しないときは、リレーショナルデータベースのレコードからオブジェクトを作成し、前記キャッシュに記憶させて、返却するコンピュータが読み取り可能なＯ／Ｒ（Object / Relational Mapping）マッピングプログラムであって、
前記コンピュータを、
オブジェクト間の関連に関する関連オブジェクト情報を取得する手段と、
取得した関連オブジェクト情報に従って、返却したオブジェクトに直接関連するオブジェクトを特定する関連オブジェクト特定手段と、
特定された関連オブジェクトが前記キャッシュに存在するか否かを確認する手段と、
特定された関連オブジェクトが前記キャッシュに存在しないときは、前記リレーショナルデータベースのレコードから関連オブジェクトを作成し、前記キャッシュに記憶させる関連オブジェクト記憶手段と、
として機能させ、要求されたオブジェクトの返却後、次のオブジェクト要求を受けるまでの間に特定された関連オブジェクトを前記キャッシュに記憶させることを特徴とするＯ／Ｒマッピングプログラム。
【請求項８】
前記関連オブジェクト記憶手段は、
前記キャッシュに空きがないときは、所定のアルゴリズムに基づいて重要性が低いと判断されたオブジェクトを削除してから、特定された関連オブジェクトを前記キャッシュに記憶させることを特徴とする請求項７記載のＯ／Ｒマッピングプログラム。
【請求項９】
前記関連オブジェクト情報は、関連の強度に関する情報を含み、
前記関連オブジェクト特定手段は、
前記関連の強度に関する情報に基づいて、前記直接関連するオブジェクトの中から予め定められた強度以上を有するオブジェクトを抽出することを特徴とする請求項７又は８記載のＯ／Ｒマッピングプログラム。
【請求項１０】
請求項１乃至３のいずれか１項に記載のＯ／Ｒマッピング装置と、
前記リレーショナルデータベースと、
オントロジ情報取得要求に対して、要求されたオントロジ情報に対応するオブジェクトを特定するとともに、前記Ｏ／Ｒマッピング装置を介して取得したオブジェクトからオントロジ情報を作成し、返却するオントロジ−オブジェクト変換装置と、
を有することを特徴とするオントロジ管理データベースシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラミング言語の一形態であるオブジェクト指向言語で扱う「オブジェクト」と「リレーショナルデータベースのレコード」を対応付けるＯ／Ｒ（Object / Relational Mapping）マッピング技術に関する。
【背景技術】
【０００２】
オブジェクト指向言語のオブジェクトとリレーショナルデータベースのレコードを対応させる事をＯ／Ｒマッピングと呼び、それらを実現するツールをＯ／Ｒマッピングツールと呼ぶ。一般に、Ｏ／Ｒマッピングツールは、単にオブジェクトとリレーショナルデータベースのレコードを対応させるだけでなく、キャッシュを利用したデータアクセスの高速化も実現する。ここで、Ｏ／Ｒマッピングツールが持つキャッシュ機能を利用する場合のＯ／Ｒマッピング装置が適用されるコンピュータシステムについて説明する。
【０００３】
図９は、Ｏ／Ｒマッピングツールが持つキャッシュ機能を利用する場合のＯ／Ｒマッピング装置が適用されるコンピュータシステム１の概略構成図である。図９に示すコンピュータシステム１は、オブジェクト利用クライアント端末１０、Ｏ／Ｒマッピングサーバ端末２０、及びデータベース端末３０から構成されている。オブジェクト利用クライアント端末１０、Ｏ／Ｒマッピングサーバ端末２０、及びデータベース端末３０は、例えば、具体的には、パーソナルコンピュータ、ワークステーションなどの端末であり、各端末は通信ネットワークを介して接続されている。
【０００４】
また、オブジェクト利用クライアント端末１０は、内部にクライアント処理プログラム１１を備え、Ｏ／Ｒマッピングサーバ端末２０は、内部にサーバ処理プログラム２１及び一時的に情報を格納するキャッシュ管理装置２２を備え、データベース端末３０は、内部にリレーショナルデータベース（ＲＤＢ）３１を備えている。
【０００５】
次に、図１０に示すフローチャートを参照して、上述したＯ／Ｒマッピングサーバ端末２０に含まれるサーバ処理プログラム２１の動作について説明する。ここで、図１０は、サーバ処理プログラム２１が、オブジェクト利用クライアント端末１０に含まれるクライアント処理プログラム１１からオブジェクト取得要求を受け付け、リレーショナルデータベース３１よりレコードを取得し、クライアント処理プログラム１１にオブジェクトを返却する動作を示すフローチャートである。
【０００６】
サーバ処理プログラム２１は、オブジェクト利用クライアント端末１０からオブジェクト取得要求を受け付けると、キャッシュ管理装置２２に要求オブジェクトが存在するか否かを確認する（ステップＳ９１０，Ｓ９２０）。キャッシュ管理装置２２にオブジェクトが存在する場合は、キャッシュ管理装置２２からオブジェクトを取得する（ステップＳ９３０，Ｓ９４０）。
【０００７】
一方、キャッシュ管理装置２２にオブジェクトが存在しない場合は、リレーショナルデータベース３１からレコードを取得し、取得レコードからオブジェクトを作成する（ステップＳ９３０，Ｓ９５０，Ｓ９６０）。
【０００８】
オブジェクト作成後、キャッシュ管理装置２２のキャッシュ領域に空きが無い場合は、最も重要性が低いと推定されたオブジェクトが削除される（ステップＳ９７０，Ｓ９８０）。この重要性の推定のアルゴリズムには様々なものが存在するが、例えば、ＦＩＦＯ（最も古くから存在するオブジェクトのキャッシュを削除する）、ＬＲＵ（最も長時間利用されていないオブジェクトのキャッシュを削除する）、ＮＲＵ（最近利用されていないオブジェクトのキャッシュを削除する）等のアルゴリズムが用いられる。次いで、ステップＳ９６０において作成されたオブジェクトをキャッシュ管理装置２２に保存する（ステップＳ９９０）。
【０００９】
これに対して、キャッシュ管理装置２２のキャッシュ領域に空きがある場合は、ステップＳ９６０において作成されたオブジェクトをそのままキャッシュ管理装置２２に保存する（ステップＳ９７０，ステップＳ９９０）。
【００１０】
次に、後述する遅延ロードを行なう場合は、取得した要求オブジェクトに関連する関連オブジェクトの読み込みは行わず、要求オブジェクトをクライアント処理プログラム１１に返却する（ステップＳ１０００，Ｓ１０２０）。一方、遅延ロードを行わない場合は、取得した要求オブジェクトに関連するすべての関連オブジェクトの読み込みが終了するまでステップＳ９２０〜Ｓ９９０の処理を繰り返し、すべての関連オブジェクトを読み込んだ後、要求オブジェクトをクライアント処理プログラムに返却する（ステップＳ１０１０，Ｓ１０２０）。このように、オブジェクト間に関連するオブジェクトが存在する場合、Ｏ／Ｒマッピングツールには２種類の処理形態が存在する。
【００１１】
ここで、遅延ロード（Lazy loading）について説明する。
【００１２】
あるオブジェクトが要求された際に、要求されたオブジェクトはリレーショナルデータベース３１上のレコードより生成され、キャッシュ管理装置２２に格納されるが、遅延ロードを用いる処理形態においては、関連オブジェクトはその時点では生成せず、実際に必要になった時点で生成するようになっている。
【００１３】
オブジェクト要求時に関連オブジェクトまでは必要としない場合、遅延ロードを用いることにより、不要な関連オブジェクトを作成し、キャッシュ管理装置２２に格納する可能性が減少し、処理効率が向上する。
【００１４】
図１１にオブジェクト関連モデルの一例を示す。この図においては、１から１２までの丸はそれぞれオブジェクトを示し、各オブジェクト間の矢印はオブジェクト間の関連を表している（例えば、オブジェクト１からオブジェクト５に対して矢印が延びているが、このことは、オブジェクト１の関連オブジェクトは、オブジェクト５であることを示している）。
【００１５】
遅延ロードを用いる場合のキャッシュ処理例を図１２に示す。オブジェクト１，５，８，１２の順にオブジェクトが要求される場合、オブジェクト１を要求することにより、オブジェクト１が作成され、キャッシュ管理装置２２に保存される。同様にして、オブジェクト５，８，１２も各オブジェクトが要求される時点において、作成され、キャッシュ管理装置２２に保存される。
【００１６】
これに対して、遅延ロードを用いない処理形態においては、あるオブジェクトが要求された際に、要求されたオブジェクトに加え、関連オブジェクトもすべて同時に作成され、キャッシュ管理装置２２に格納するようになっている。
【００１７】
Ｏ／Ｒマッピングツール利用時に、要求したオブジェクトに加え関連オブジェクトも同時に利用する場合、遅延ロードを用いないことで、必要なオブジェクトをすべて一度に取得し、キャッシュ管理装置２２に格納する事が可能である。
【００１８】
遅延ロードを用いない場合のキャッシュ処理例を図１３に示す。オブジェクト１，５，８，１２の順にオブジェクトが要求される場合、オブジェクト１を要求する時点において、オブジェクト１及び、関連オブジェクトとして、オブジェクト２〜１２が一度に作成され、キャッシュ管理装置２２に保存される。
【００１９】
尚、この出願に関連する先行技術文献情報としては、次のものがある。
【非特許文献１】www.hibernate.org著”Hibernate Reference Documentation”、［online］、平成１６年１０月２１日検索、インターネット＜ＵＲＬ：http://www.hibernate.org/hib_docs/reference/en/html_single/＞
【発明の開示】
【発明が解決しようとする課題】
【００２０】
Ｏ／Ｒマッピングツールに対して要求された任意のオブジェクトを要求オブジェクト、要求オブジェクトと直接関連を持つオブジェクトを一次関連オブジェクトとするとき（例えば、図１１に示すオブジェクト関連モデルにおいて、オブジェクト５の一次関連オブジェクトは、オブジェクト１，２，３，４，６，７，８，９である）、要求オブジェクトが要求された時点で、一次関連オブジェクトまでは直ちに必要とせず、次回の要求で一次関連オブジェクトが要求される可能性が高い場合、遅延ロードを用いる処理形態においては、同一のオブジェクトが繰り返し呼ばれないため、キャッシュに格納されたオブジェクトは利用されず、データアクセス処理の高速化は見込めないという問題がある。
【００２１】
また、遅延ロードを用いない処理形態においては、オブジェクトが要求された際に、関連オブジェクトすべてが同時に作成され、キャッシュ管理装置２２に保存されるため、関連オブジェクトが多い場合、データアクセス処理の性能が低下するという問題がある。
【００２２】
本発明は上記の問題を解決するためになされたものであり、オブジェクトが要求された時点で、一次関連オブジェクトまで直ちに必要とせず、次回の要求で一次関連オブジェクトが要求される可能性が高い場合に、情報に高速にアクセスすることができるＯ／Ｒマッピング装置、Ｏ／Ｒマッピング方法、Ｏ／Ｒマッピングプログラム、及びオントロジ管理データベースシステムを提供することを目的とする。
【課題を解決するための手段】
【００２３】
上記目的を達成するため、請求項１記載の本発明は、オブジェクト要求に対して、要求されたオブジェクトがキャッシュに存在するときは、該キャッシュから前記オブジェクトを取得して返却し、キャッシュに存在しないときは、リレーショナルデータベースのレコードからオブジェクトを作成し、前記キャッシュに記憶させて、返却するＯ／Ｒ（Object / Relational Mapping）マッピング装置であって、オブジェクト間の関連に関する関連オブジェクト情報を取得する手段と、取得した関連オブジェクト情報に従って、返却したオブジェクトに直接関連するオブジェクトを特定する関連オブジェクト特定手段と、特定された関連オブジェクトが前記キャッシュに存在するか否かを確認する手段と、特定された関連オブジェクトが前記キャッシュに存在しないときは、前記リレーショナルデータベースのレコードから関連オブジェクトを作成し、前記キャッシュに記憶させる関連オブジェクト記憶手段と、を有し、要求されたオブジェクトの返却後、次のオブジェクト要求を受けるまでの間に特定された関連オブジェクトを前記キャッシュに記憶させることを特徴とする。
【００２４】
請求項２記載の本発明は、請求項１記載の発明において、前記関連オブジェクト記憶手段は、前記キャッシュに空きがないときは、所定のアルゴリズムに基づいて重要性が低いと判断されたオブジェクトを削除してから、特定された関連オブジェクトを前記キャッシュに記憶させることを特徴とする。
【００２５】
請求項３記載の本発明は、請求項１又は２記載の発明において、前記関連オブジェクト情報は、関連の強度に関する情報を含み、前記関連オブジェクト特定手段は、前記関連の強度に関する情報に基づいて、前記直接関連するオブジェクトの中から予め定められた強度以上を有するオブジェクトを抽出することを特徴とする。
【００２６】
請求項４記載の本発明は、オブジェクト要求に対して、要求されたオブジェクトがキャッシュに存在するときは、該キャッシュから前記オブジェクトを取得して返却し、キャッシュに存在しないときは、リレーショナルデータベースのレコードからオブジェクトを作成し、前記キャッシュに記憶させて、返却するＯ／Ｒマッピング方法であって、オブジェクト間の関連に関する関連オブジェクト情報を取得するステップと、取得した関連オブジェクト情報に従って、返却したオブジェクトに直接関連するオブジェクトを特定する関連オブジェクト特定ステップと、特定された関連オブジェクトが前記キャッシュに存在するか否かを確認するステップと、特定された関連オブジェクトが前記キャッシュに存在しないときは、前記リレーショナルデータベースのレコードから関連オブジェクトを作成し、前記キャッシュに記憶する関連オブジェクト記憶ステップと、を有し、要求されたオブジェクトの返却後、次のオブジェクト要求を受けるまでの間に特定された関連オブジェクトを前記キャッシュに記憶することを特徴とする。
【００２７】
請求項５記載の本発明は、請求項４記載の発明において、前記関連オブジェクト記憶ステップは、前記キャッシュに空きがないときは、所定のアルゴリズムに基づいて重要性が低いと判断されたオブジェクトを削除してから、特定された関連オブジェクトを前記キャッシュに記憶させることを特徴とする。
【００２８】
請求項６記載の本発明は、請求項４又は５記載の発明において、前記関連オブジェクト情報は、関連の強度に関する情報を含み、前記関連オブジェクト特定ステップは、前記関連の強度に関する情報に基づいて、前記直接関連するオブジェクトの中から予め定められた強度以上を有するオブジェクトを抽出することを特徴とする。
【００２９】
請求項７記載の本発明は、オブジェクト要求に対して、要求されたオブジェクトがキャッシュに存在するときは、該キャッシュから前記オブジェクトを取得して返却し、キャッシュに存在しないときは、リレーショナルデータベースのレコードからオブジェクトを作成し、前記キャッシュに記憶させて、返却するコンピュータが読み取り可能なＯ／Ｒ（Object / Relational Mapping）マッピングプログラムであって、前記コンピュータを、オブジェクト間の関連に関する関連オブジェクト情報を取得する手段と、取得した関連オブジェクト情報に従って、返却したオブジェクトに直接関連するオブジェクトを特定する関連オブジェクト特定手段と、特定された関連オブジェクトが前記キャッシュに存在するか否かを確認する手段と、特定された関連オブジェクトが前記キャッシュに存在しないときは、前記リレーショナルデータベースのレコードから関連オブジェクトを作成し、前記キャッシュに記憶させる関連オブジェクト記憶手段と、として機能させ、要求されたオブジェクトの返却後、次のオブジェクト要求を受けるまでの間に特定された関連オブジェクトを前記キャッシュに記憶させることを特徴とする。
【００３０】
請求項８記載の本発明は、請求項７記載の発明において、前記関連オブジェクト記憶手段は、前記キャッシュに空きがないときは、所定のアルゴリズムに基づいて重要性が低いと判断されたオブジェクトを削除してから、特定された関連オブジェクトを前記キャッシュに記憶させることを特徴とする。
【００３１】
請求項９記載の本発明は、請求項７又は８記載の発明において、前記関連オブジェクト情報は、関連の強度に関する情報を含み、前記関連オブジェクト特定手段は、前記関連の強度に関する情報に基づいて、前記直接関連するオブジェクトの中から予め定められた強度以上を有するオブジェクトを抽出することを特徴とする。
【００３２】
請求項１０記載の本発明は、請求項１乃至３のいずれか１項に記載のＯ／Ｒマッピング装置と、前記リレーショナルデータベースと、オントロジ情報取得要求に対して、要求されたオントロジ情報に対応するオブジェクトを特定するとともに、前記Ｏ／Ｒマッピング装置を介して取得したオブジェクトからオントロジ情報を作成し、返却するオントロジ−オブジェクト変換装置と、を有するオントロジ管理データベースシステムであることを特徴とする。
【発明の効果】
【００３３】
本発明によれば、Ｏ／Ｒマッピングツールに対してオブジェクトが要求された時点で、一次関連オブジェクトまでは直ちに必要とせず、次回の要求で一次関連オブジェクトが要求される可能性が高い場合に、ユーザの要求に対しては要求されたオブジェクトだけを即時に返却し、一次関連オブジェクトを次回の要求までに取得して、キャッシュするので、情報に高速にアクセスすることができる。
【発明を実施するための最良の形態】
【００３４】
以下、本発明の実施の形態を図面を用いて説明する。
【００３５】
図１は本発明のＯ／Ｒマッピング装置が適用されるコンピュータシステム２の概略構成図である。図１に示すコンピュータシステム２は、オブジェクト利用クライアント端末１０、Ｏ／Ｒマッピングサーバ端末２００、及びデータベース端末３０から構成されており、各端末は通信ネットワークを介して接続されている。
【００３６】
オブジェクト利用クライアント端末１０、Ｏ／Ｒマッピングサーバ端末２００、及びデータベース端末３０は、例えば、具体的には、パーソナルコンピュータ、ワークステーションなどが想定されるが、少なくとも演算機能および制御機能を備えた中央演算装置（ＣＰＵ）、プログラムやデータを格納する機能を有するＲＡＭ等からなる主記憶装置（メモリ）を有する電子的な装置から構成されていればよい。また、主記憶装置の他、ハードディスクなどの補助記憶装置を具備していてもよい。
【００３７】
また、本実施の形態に係る各種処理を実行するプログラムは、前述した主記憶装置またはハードディスクに格納されているものである。そして、このプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ−ＲＯＭなどのコンピュータ読み取り可能な記録媒体に記録することも、通信ネットワークを介して配信することも可能である。
【００３８】
詳しくは、オブジェクト利用クライアント端末１０は、内部にクライアント処理プログラム１１を備え、Ｏ／Ｒマッピングサーバ２００は、内部にサーバ処理プログラム２０１、一時的に情報を格納するキャッシュ管理装置２０２、及びオブジェクトのキャッシュ処理を非同期に行う非同期キャッシュ管理プログラム２０３を備え、データベース端末３０は、内部にリレーショナルデータベース（ＲＤＢ）３１を備えている。
【００３９】
次に、本実施の形態に係るサーバ処理プログラム２０１及び非同期キャッシュプログラム２０３の動作を図２及び３を用いて説明する。ここで、図２は、Ｏ／Ｒマッピングサーバ端末２００に含まれるサーバ処理プログラム２０１が、オブジェクト利用クライアント端末１０に含まれるクライアント処理プログラム１１からオブジェクト取得要求を受け付け、リレーショナルデータベース３１よりレコードを取得し、クライアント処理プログラム１１にオブジェクトを返却する動作を示すフローチャートであり、図３は、図２に示す処理の途中において、サーバ処理プログラム２０１から発せられた非同期メッセージに対して、非同期キャッシュ管理プログラム２０３が、一次関連オブジェクトをキャッシュする動作を示すフローチャートである。
【００４０】
サーバ処理プログラム２０１は、オブジェクト利用クライアント端末１０からオブジェクト取得要求を受け付けると、キャッシュ管理装置２０２に要求オブジェクトが存在するか否かを確認する（ステップＳ１０，Ｓ２０）。キャッシュ管理装置２０２にオブジェクトが存在する場合は、キャッシュ管理装置２０２からオブジェクトを取得する（ステップＳ３０，Ｓ４０）。
【００４１】
一方、キャッシュ管理装置２０２にオブジェクトが存在しない場合は、リレーショナルデータベース３１からレコードを取得し、取得レコードからオブジェクトを作成する（ステップＳ３０，Ｓ５０，Ｓ６０）。この際、一次関連オブジェクト情報もリレーショナルデータベース３１から取得し、オブジェクトに設定する。ここで、一次関連オブジェクトとは、上述したように、要求オブジェクトと直接関連を持つオブジェクトをいい、一次関連オブジェクト情報には、要求オブジェクトと直接関連するオブジェクトを特定する情報が含まれる。
【００４２】
オブジェクト作成後、キャッシュ管理装置２０２のキャッシュ領域に空きが無い場合は、最も重要性が低いと推定されたオブジェクトが削除される（ステップＳ７０，Ｓ８０）。この重要性の推定のアルゴリズムには様々なものが存在するが、例えば、ＦＩＦＯ（最も古くから存在するオブジェクトのキャッシュを削除する）、ＬＲＵ（最も長時間利用されていないオブジェクトのキャッシュを削除する）、ＮＲＵ（最近利用されていないオブジェクトのキャッシュを削除する）等のアルゴリズムが用いられる。次いで、ステップＳ６０において作成されたオブジェクトをキャッシュ管理装置２０２に保存する（ステップＳ９０）。
【００４３】
これに対して、キャッシュ管理装置２０２に空きがある場合は、ステップＳ６０において作成されたオブジェクトをそのままキャッシュ管理装置２０２に保存する（ステップＳ７０，ステップＳ９０）。
【００４４】
次に、サーバ処理プログラム２０１は、一次関連オブジェクト情報を該オブジェクトから取得し、非同期キャッシュ管理プログラム２０３に対して、非同期に、一次関連オブジェクト処理要求を行い、非同期キャッシュ管理プログラム２０３の処理状況に関わらず、要求されたオブジェクトをオブジェクト利用クライアント端末１０に返却し終了する（ステップＳ１００，Ｓ１１０，Ｓ１２０）。尚、本実施の形態においては、一次関連オブジェクト情報は、ステップＳ６０においてリレーショナルデータベース３１から取得するようになっているが、本発明はこれに限定されず、例えば、オブジェクト要求時に別途取得した一次関連オブジェクト情報を参照してもよいし、また、すべてのオブジェクト間の関連に関する情報をシステム起動時などに予め読み込むようにしてもよい。
【００４５】
非同期キャッシュ管理プログラム２０３は、図３に示すように、非同期メッセージを受け取ると、スレッドを生成し、まず、要求オブジェクトに対して一次関連オブジェクトが存在するかチェックする（ステップＳ２１０，Ｓ２２０）。
【００４６】
一次関連オブジェクトが存在しない場合は、処理を終了する（ステップＳ２２０）。一方、一次関連オブジェクトが存在する場合には、キャッシュ管理装置２０２に一次関連オブジェクトが存在するか否かをチェックする（ステップＳ２２０，Ｓ２３０）。
【００４７】
キャッシュ管理装置２０２に一次関連オブジェクトが存在する場合は、後述するステップＳ３００に進む（ステップＳ２４０）。これに対して、キャッシュ管理装置２０２に一次関連オブジェクトが存在しない場合は、リレーショナルデータベース３１からレコードを取得し、取得レコードから、一次関連オブジェクトを作成する（ステップＳ２４０，Ｓ２５０，Ｓ２６０）。この際、一次関連オブジェクト情報もリレーショナルデータベース３１から取得し、一次関連オブジェクトに設定する。
【００４８】
次に、非同期キャッシュ管理プログラム２０３は、キャッシュ管理装置２０２のキャッシュ領域に空きが無い場合は、上述した重要性の推定のアルゴリズムに従い、最も重要性が低いと判断されたオブジェクトを削除する（ステップＳ２７０，Ｓ２８０）。
【００４９】
次いで、ステップＳ２６０において作成された一次関連オブジェクトをキャッシュ管理装置２０２に保存する（ステップＳ２９０）。
【００５０】
これに対して、キャッシュ管理装置２０２のキャッシュ領域に空きがある場合は、ステップＳ２６０において作成された一次関連オブジェクトをそのままキャッシュ管理装置２０２に保存する（ステップＳ２７０，ステップＳ２９０）。
【００５１】
次に、非同期キャッシュ管理プログラム２０３は、一次関連オブジェクトの処理対象が残っているかチェックし、残っている場合は、上述したキャッシュ処理を再び実施する（ステップＳ３００，Ｓ３１０，Ｓ２３０〜Ｓ２９０）。一方、一次関連オブジェクトの処理対象がない場合には、処理を終了する（ステップＳ３１０）。
【００５２】
上述したキャッシュ処理を、図４に示すオブジェクト関連モデルを用いて、具体的に説明する。オブジェクトがオブジェクト１，５，８，１２の順に要求される場合を考える。この場合、オブジェクト１を利用することにより、オブジェクト１がキャッシュされた後、返却される。返却後、オブジェクト５はオブジェクト１に直接関連付けられているので、非同期にキャッシュ処理が行われる。ここで、一般に、（キャッシュからオブジェクトを取得する時間）＜＜（データベース上のレコードからオブジェクトを作成する処理に必要な時間）＜＜（ネットワーク間の情報転送、人が情報入力等を行うのに要する時間）という関係があり、リレーショナルデータベース３１上のレコードから一次関連オブジェクトを作成する処理に必要な時間に比べて、ネットワーク間の情報転送、人が行う入出力処理に必要な時間の方がより多くの時間がかかるため、オブジェクト５が要求されるまでにオブジェクト５のキャッシュ処理は終了する。従って、オブジェクト５の要求に対しては、キャッシュを用いてオブジェクト５が返却される。
【００５３】
この後、オブジェクト１，２，３，４，６，７，８，９は、オブジェクト５に直接関連付けられているので、同様にして、非同期にキャッシュ処理が行われる。尚、この際、オブジェクト１は既にキャッシュに含まれているため、オブジェクト２，３，４，６，７，８，９が新たにキャッシュされる。従って、オブジェクト８の要求に対しては、キャッシュを用いてオブジェクト８が返却される（図４に示す斜線は、オブジェクト５アクセス時点においてキャッシュに格納されているオブジェクトを示す）。
【００５４】
この後、オブジェクト５，６，７，１０，１１，１２は、オブジェクト８に直接関連付けられているため、同様にして、非同期にキャッシュ処理が行われる。この際、オブジェクト５，６，７は既にキャッシュに含まれているため、オブジェクト１０，１１，１２が新たにキャッシュされる。従って、オブジェクト１２の要求に対しては、キャッシュを用いてオブジェクト１２が返却される。
【００５５】
上記手法を用いることにより、関連するオブジェクトを連続して利用する場合、キャッシュが有効に作用するため、処理が高速化される。しかし、関連するオブジェクトすべてをキャッシュに保存することは、不要なオブジェクトをキャッシュする可能性も高く、キャッシュ及びＣＰＵ資源を無駄に利用する可能性もある。
【００５６】
そこで、次に、上述した非同期キャッシュプログラム２０３の変形例について説明する。この非同期キャッシュプログラム２０３’は、オブジェクト間の関連の強度が可変である場合に、オブジェクト間の関連の強度情報を用いて、次にアクセスされる可能性が高いオブジェクトだけを優先的にキャッシュするようになっている。
【００５７】
図５は、非同期キャッシュプログラム２０３’が適用されるオブジェクト関連モデルの一例を示しているが、オブジェクト間のそれぞれの矢印には１〜４までの関連強度が与えられており、例えば、具体的には、オブジェクト５からオブジェクト１の関連（強度１）より、オブジェクト５からオブジェクト４の関連（強度４）の方が強いことを示している。
【００５８】
次に、非同期キャッシュプログラム２０３’の動作を図６を用いて説明する。ここで、図６は、図２に示す処理の途中において、サーバ処理プログラム２０１から発せられた非同期メッセージに対して、非同期キャッシュ管理プログラム２０３’が、一次関連オブジェクトをキャッシュする動作を示すフローチャートである。
【００５９】
非同期キャッシュ管理プログラム２０３’は、図６に示すように、非同期メッセージを受け取ると、スレッドを生成し、まず、要求オブジェクトに対して一次関連オブジェクトが存在するかチェックする（ステップＳ４１０，Ｓ４２０）。
【００６０】
一次関連オブジェクトが存在しない場合は、処理を終了する（ステップＳ４２０）。一方、一次関連オブジェクトが存在する場合は、ノード間の関連の強度を利用し、ある閾値を越える強度を持つ関連で繋がれた一次関連オブジェクトだけにキャッシュ対象を絞り込む（ステップＳ４２０，Ｓ４３０）。そして、絞り込まれた一次関連オブジェクトが、キャッシュ管理装置２０２に存在するか否かをチェックする（ステップＳ４４０）。
【００６１】
キャッシュ管理装置２０２に絞り込まれた一次関連オブジェクトが存在する場合は、後述するステップＳ５１０に進む（ステップＳ４５０）。これに対して、キャッシュ管理装置２０２に絞り込まれた一次関連オブジェクトが存在しない場合は、リレーショナルデータベース３１からレコードを取得し、取得レコードから、一次関連オブジェクトを作成する（ステップＳ４５０，Ｓ４６０，Ｓ４７０）。この際、一次関連オブジェクト情報もリレーショナルデータベース３１から取得し、一次関連オブジェクトに設定する。
【００６２】
次に、非同期キャッシュ管理プログラム２０３’は、キャッシュ管理装置２０２のキャッシュ領域に空きが無い場合は、上述した重要性の推定のアルゴリズムに従い、最も重要性が低いと判断されたオブジェクトを削除する（ステップＳ４８０，Ｓ４９０）。次いで、ステップＳ４７０において作成された一次関連オブジェクトをキャッシュ管理装置２０２に保存する（ステップＳ５００）。
【００６３】
これに対して、キャッシュ管理装置２０２のキャッシュ領域に空きがある場合は、ステップＳ４７０において作成された一次関連オブジェクトをそのままキャッシュ管理装置２０２に保存する（ステップＳ４８０，ステップＳ５００）。
【００６４】
次に、非同期キャッシュ管理プログラム２０３’は、一次関連オブジェクトの処理対象が残っているかチェックし、残っている場合は、上述したキャッシュ処理を再び実施する（ステップＳ５１０，Ｓ５２０，Ｓ４４０〜Ｓ５００）。一方、一次関連オブジェクトの処理対象がない場合には、処理を終了する（ステップＳ５２０）。
【００６５】
このように、非同期キャッシュ管理プログラム２０３’は、関連の強度を利用して重要性が低いと判断されたオブジェクトをキャッシュ対象から外しているので、キャッシュ及びＣＰＵ資源の効率的な利用を図ることができる。
【００６６】
上述したキャッシュ処理を、図７に示すオブジェクト関連モデルを用いて、具体的に説明する。例えば、図７において、強度が３以上の関連を持つ一次関連オブジェクトをキャッシュすると設定されている場合に、オブジェクトがオブジェクト１，５，８，１２の順に要求される場合を考える。この場合、まず、オブジェクト１を利用することにより、オブジェクト１がキャッシュされた後、返却される。返却後、オブジェクト５はオブジェクト１に直接関連付けられているが、関連の強度は１であり、閾値に達していないので、キャッシュ処理は行わない。従って、オブジェクト５の要求に対しては、キャッシュを用いずにオブジェクト５が返却される。
【００６７】
この後同様に、オブジェクト１，２，３，４，６，７，８，９はオブジェクト５に直接関連付けられているが、オブジェクト１，３，６，７，９に向かう関連の強度は閾値に達していないため、キャッシュされず、オブジェクト２，４，８に対し非同期にキャッシュ処理が行われる。従って、オブジェクト８の要求に対しては、キャッシュを用いてオブジェクト８が返却される（図７に示す斜線は、オブジェクト５アクセス時点においてキャッシュに格納されているオブジェクトを示す）。
【００６８】
この後、同様にオブジェクト５，６，７，１０，１１，１２はオブジェクト８に直接関連付けられているが、オブジェクト５，７，１０，１１に向かう関連の強度は閾値に達していないため、キャッシュされず、オブジェクト６，１２に対し非同期にキャッシュ処理が行われる。従って、オブジェクト１２の要求に対しては、キャッシュを用いてオブジェクト１２が返却される。
【００６９】
従って、一次関連オブジェクト利用の頻度が、関連の強度を示す数値に反映されている場合には、不要なオブジェクトをキャッシュする可能性が低く、キャッシュ及びＣＰＵ資源を無駄に利用する可能性が減少する。
【００７０】
最後に、図６に示したＯ／Ｒマッピングツールのキャッシュ方法をオントロジ管理データベースシステム３に適用した場合について説明する。
【００７１】
オントロジとは概念間の相互関係を記述したものであり、次世代Ｗｅｂとして検討が進められているセマンティックウェブにおいて重要な役割を担う。オントロジを利用したサービスとしては、例えば、米国のVerticalNet社はオントロジをｅマーケットプレイスの運用に利用している。その他、ポータルサイト、検索システム、ドキュメント管理システムに利用することが可能である。
【００７２】
現在標準化が進められているオントロジにおいては、概念（クラス）間の関連の強度を表現することはできないが、図８において示す例では概念間の関連に強度が付与されているものとする。
【００７３】
図８に示すオントロジに対して、酒、洋酒、カクテル、ジントニックの順番にクラスを利用する場合に、関連の強度が３以上の場合に限りキャッシュすると仮定する。尚、オントロジ管理データベースシステム３は、コンピュータシステム２と同様に、オブジェクト利用クライアント端末、Ｏ／Ｒマッピングサーバ端末、データベース端末から構成されるが、Ｏ／Ｒマッピングサーバ端末は、オントロジ情報取得要求に対して、要求されたオントロジ情報に対応するオブジェクトを特定するとともに、上述したキャッシュ方法により、取得したオブジェクトからオントロジ情報を作成し、返却するオントロジ−オブジェクト変換機能をさらに具備する構成となっている。
【００７４】
ここで、オントロジ管理データベースシステム３の動作について説明する。
【００７５】
最初にユーザは酒クラスをオントロジ管理データベースシステム３に要求する。酒クラスはキャッシュ管理装置内に存在しないため、オントロジ管理データベースシステム３はリレーショナルデータベースのレコードから酒クラスを作成し、キャッシュ管理装置に酒クラスを格納した上でユーザに返却する。この後、ユーザが酒クラスに関する処理をしている間に、オントロジ管理データベースシステム３は酒クラスの関連クラスとして、蒸留酒クラスと洋酒クラスを特定する。関連の強度はそれぞれ１，３であるので、洋酒クラスがキャッシュ対象として特定される。洋酒クラスはキャッシュ管理装置内に存在しないため、オントロジ管理データベースシステム３はリレーショナルデータベースのレコードから洋酒クラスを作成し、キャッシュ管理装置に洋酒クラスを格納する。
【００７６】
次にユーザは洋酒クラスをオントロジ管理データベースシステム３に要求する。洋酒クラスは既にキャッシュ管理装置内に存在するため、オントロジ管理データベースシステム３はキャッシュ管理装置から洋酒クラスを取得し、ユーザに返却する。この後、ユーザが洋酒クラスに関する処理をしている間に、オントロジ管理データベースシステム３は洋酒クラスの関連クラスとして、ウィスキークラスとカクテルクラスを特定する。関連の強度はそれぞれ３，１であるので、ウィスキークラスがキャッシュ対象として特定される。ウィスキークラスはキャッシュ管理装置内に存在しないため、オントロジ管理データベース３はリレーショナルデータベースのレコードからウィスキークラスを作成し、キャッシュ管理装置内にウィスキークラスを格納する。
【００７７】
次にユーザはカクテルクラスをオントロジ管理データベースシステム３に要求する。カクテルクラスはキャッシュ管理装置内に存在しないため、オントロジ管理データベース３はリレーショナルデータベースのレコードからカクテルクラスを作成し、キャッシュ管理装置にカクテルクラスを格納した上でユーザに返却する。この後、ユーザがカクテルクラスに関する処理をしている間に、オントロジ管理データベースシステム３はカクテルクラスの関連クラスとして、混合酒クラスとジントニッククラスを特定する。関連の強度はそれぞれ５，４であるので、混合酒クラス、ジントニッククラス共キャッシュ対象として特定される。混合酒クラス、ジントニッククラスはキャッシュ管理装置内に存在しないため、オントロジ管理データベースシステム３は、リレーショナルデータベースのレコードから混合酒クラス、ジントニッククラスを作成し、キャッシュ管理装置内に混合酒クラス、ジントニッククラスを格納する。
【００７８】
次にユーザはジントニッククラスをオントロジ管理データベースシステム３に要求する。ジントニッククラスは既にキャッシュ管理装置内に存在するため、オントロジ管理データベースシステム３はキャッシュ管理装置からジントニッククラスを取得し、ユーザに返却する。この後、ユーザがジントニッククラスに関する処理をしている間に、オントロジ管理データベースシステムは洋酒クラスの関連クラスを検索するが、この例においては関連クラスは存在しないため、キャッシュ処理は行わない。
【００７９】
以上の例に示される通り、あるクラスの次に要求されるクラスがあるクラスからの関連の強度に強く依存している場合は、非同期キャッシュ処理を実施することにより、メモリを効率的に用いてクラスを高速に取得することが可能となる。
【００８０】
従って、本実施の形態によれば、Ｏ／Ｒマッピングツールに対してオブジェクトが要求された時点で、一次関連オブジェクトまでは直ちに必要とせず、次回の要求で一次関連オブジェクトが要求される可能性が高い場合に、ユーザの要求に対しては要求オブジェクトだけを即時に返却し、次の要求が発生するまでに一次関連オブジェクトの取得処理を行い、一次関連オブジェクトを次回の要求までに取得して、キャッシュするので、情報に高速にアクセスすることができる。
【００８１】
また、オブジェクト間の関連に強度が設定されている場合は、要求オブジェクトに続いて利用される可能性が高いオブジェクトだけにキャッシュ対象を絞り込むので、キャッシュを効率的に管理し、システムに対する負荷を軽減することが可能となる。
【００８２】
さらに、本発明をオントロジ管理データベースシステムに適用した場合、大規模な関連を有するオントロジからオントロジ情報を高速に取得することが可能となる。
【図面の簡単な説明】
【００８３】
【図１】本発明の実施の形態に係るＯ／Ｒマッピングサーバを用いたコンピュータシステムの概略構成図である。
【図２】本発明の実施の形態に係るＯ／Ｒマッピングサーバの動作を示すフローチャートである。
【図３】本発明の実施の形態に係るＯ／Ｒマッピングサーバの動作を示すフローチャートである。
【図４】本発明の実施の形態に係るＯ／Ｒマッピングサーバにおいて、一次関連オブジェクトを非同期にキャッシュする場合のキャッシュ処理の一例である。
【図５】オブジェクト間に関連の強度が与えられているオブジェクト関連モデルの一例である。
【図６】本発明の第２の実施の形態に係るＯ／Ｒマッピングサーバの動作を示すフローチャートである。
【図７】本発明の第２の実施の形態に係るＯ／Ｒマッピングサーバにおいて、一次関連オブジェクトを非同期にキャッシュする場合のキャッシュ処理の一例である。
【図８】第２の実施の形態に係るＯ／Ｒマッピングサーバをオントロジ格納データベースに適用した例である。
【図９】従来のＯ／Ｒマッピングサーバを用いたコンピュータシステムの概略構成図である。
【図１０】従来のＯ／Ｒマッピングサーバの動作を示すフローチャートである。
【図１１】オブジェクト関連モデルの一例を示す図である。
【図１２】従来のＯ／Ｒマッピングサーバにおいて遅延ロードが設定されている場合のキャッシュ処理の一例である。
【図１３】従来のＯ／Ｒマッピングサーバにおいて遅延ロードが設定されていない場合のキャッシュ処理の一例である。
【符号の説明】
【００８４】
１０…オブジェクト利用クライアント端末
２０，２００…Ｏ／Ｒマッピングサーバ端末
３０…データベース端末
【図１】
2006155287.tif 000003
【図２】
2006155287.tif 000004
【図３】
2006155287.tif 000005
【図４】
2006155287.tif 000006
【図５】
2006155287.tif 000007
【図６】
2006155287.tif 000008
【図７】
2006155287.tif 000009
【図８】
2006155287.tif 000010
【図９】
2006155287.tif 000011
【図１０】
2006155287.tif 000012
【図１１】
2006155287.tif 000013
【図１２】
2006155287.tif 000014
【図１３】
2006155287.tif 000015