(57)【要約】【課題】  複合名称に対応する値やオブジェクト参照を検索する際にデータベース処理側へ発行する問合せ文の量を削減してネーミングサービスの処理性能を向上させることが可能な技術を提供する。【解決手段】  分散オブジェクト環境でネーミングサービスを提供するネーミングサービス提供方法において、ネーミングサービスへのリクエスト中の複合名称に含まれている名称要素に対応した値を検索する為の副問合せ文を組み合わせて、前記複合名称に含まれる複数の名称要素を辿った先の値を検索する為の問合せ文を記憶手段上で生成し、その生成した問合せ文をデータベース処理側へ発行するステップと、前記問合せ文の発行により取得した値をリクエスト発行元へ返却するステップとを有するものである。【選択図】図１
2006031516.tif 000002
【特許請求の範囲】
【請求項１】
分散オブジェクト環境でネーミングサービスを提供するネーミングサービス提供方法において、
ネーミングサービスへのリクエスト中の複合名称に含まれている名称要素に対応した値を検索する為の副問合せ文を組み合わせて、前記複合名称に含まれる複数の名称要素を辿った先の値を検索する為の問合せ文を記憶手段上で生成し、その生成した問合せ文をデータベース処理側へ発行するステップと、
前記問合せ文の発行により取得した値をリクエスト発行元へ返却するステップとを有することを特徴とするネーミングサービス提供方法。
【請求項２】
前記複合名称に含まれている名称要素の数が所定値よりも大きい場合に、その所定値毎に前記問合せ文を記憶手段上で生成してデータベース処理側へ発行し、最終的に取得したオブジェクト参照をリクエスト発行元へ返却することを特徴とする請求項１に記載されたネーミングサービス提供方法。
【請求項３】
分散オブジェクト環境でネーミングサービスを提供するネーミングサービス提供方法において、
ネーミングサービスへのリクエスト中の複合名称から、複数の名称要素を辿った先の値を検索する為の問合せ文雛形で用いられる所定数の名称要素を取り出して記憶手段上に格納するステップと、
前記取り出した所定数の名称要素を指定して前記問合せ文雛形を呼び出してその所定数の名称要素を辿った先の値をデータベース処理側へ問合せるステップと、
前記問合せ文雛形の呼び出しで複合名称の最終要素に到達した場合に、その呼び出しで取得したオブジェクト参照をリクエスト発行元へ返却するステップとを有することを特徴とするネーミングサービス提供方法。
【請求項４】
分散オブジェクト環境でネーミングサービスを提供するネーミングサービス提供装置において、
ネーミングサービスへのリクエスト中の複合名称に含まれている名称要素に対応した値を検索する為の副問合せ文を組み合わせて、前記複合名称に含まれる複数の名称要素を辿った先の値を検索する為の問合せ文を記憶手段上で生成し、その生成した問合せ文をデータベース処理側へ発行する問合せ処理部と、
前記問合せ文の発行により取得した値をリクエスト発行元へ返却する返却処理部とを備えることを特徴とするネーミングサービス提供装置。
【請求項５】
分散オブジェクト環境でネーミングサービスを提供するネーミングサービス提供方法をコンピュータに実行させる為のプログラムにおいて、
ネーミングサービスへのリクエスト中の複合名称に含まれている名称要素に対応した値を検索する為の副問合せ文を組み合わせて、前記複合名称に含まれる複数の名称要素を辿った先の値を検索する為の問合せ文を記憶手段上で生成し、その生成した問合せ文をデータベース処理側へ発行するステップと、
前記問合せ文の発行により取得した値をリクエスト発行元へ返却するステップとをコンピュータに実行させることを特徴とする請求項１に記載されたプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は分散オブジェクトシステムでネーミングサービスを提供するネーミングサービス提供技術に関し、特にリレーショナルデータベース管理システム（ＲＤＢＭＳ）を使用したネーミングサービスの提供を行うネーミングサービス提供技術に適用して有効な技術に関するものである。
【背景技術】
【０００２】
従来の分散オブジェクトシステムにおいて、名称とオブジェクト参照との対応関係を保持し、ネーミングサービス（naming service）を提供する装置をネーミングサービス提供装置（或いは名前解決装置）と呼ぶ。ここで、サービスとはプログラムやオブジェクトの実行により実現される機能を示すものとし、ネーミングサービス提供装置は、計算機や情報処理装置またはその様な処理を実施するプログラムやオブジェクトでも良いものとする。
【０００３】
ネーミングサービス提供装置は、自身が保持する記憶装置に対し、他のプロセスから発行される登録、変更又は削除リクエストに応じて、名称とオブジェクト参照との新しい対応関係の登録、変更又は削除を行う。またネーミングサービス提供装置は、他のプロセスから発行される検索リクエストに応じて、リクエスト発行元から与えられた名称に対応するオブジェクト参照（オブジェクトの参照先を示す情報）を検索し、これをリクエスト発行元のプロセスに返却する。
【０００４】
このネーミングサービスにおいてオブジェクト参照と対応付けられる名称が、複数の名称要素（component）を区切り文字を用いて結合したものであるか又は単一の名称要素からなる、複合名称（compound）であるものがある。
【０００５】
更に、前述のネーミングサービスであって、複合名称が常にあるネーミングコンテキスト（naming context）から相対的に定義されるものが既に提供されている。このとき、あるネーミングコンテキストはそれ自身がオブジェクトであり、名称要素とオブジェクトとの対応関係を保持する様なオブジェクトである。従って、ネーミングコンテキスト自身への参照が別のネーミングコンテキストにオブジェクト参照として登録されることが可能である。このとき、一群のネーミングコンテキストは、一般的には相互に参照されうるオブジェクトグラフを形成する。このグラフをネーミンググラフ（naming graph）と呼ぶ。
【０００６】
一つのネーミングサービスの提供者は、任意の一つ或いは複数のネーミングコンテキストオブジェクトを実装する。他プロセスは複合名称を含んだ検索リクエストを発行し、当該ネーミングコンテキストを実装するネーミングサービスでは、検索の基点とする一つのネーミングコンテキストからネーミンググラフに沿って検索を行い、発見されたオブジェクト参照をリクエスト発行元プロセスに返却する。
【０００７】
上記に述べた特徴を備えたネーミングサービスを提供するにあたり、ネーミングサービス自身の耐障害性を向上する目的で、ネーミングサービスが保持する名称とオブジェクトの対応関係を、リレーショナルデータベース管理システム（Relational Data Base Management System、関係データベース、以下ＲＤＢＭＳ）に格納することが出来る。ここで、任意のオブジェクトグラフの状態を効果的にＲＤＢＭＳに格納する方法として、非特許文献１に挙げる様な原則が広く知られている。
【０００８】
この様なＲＤＢＭＳを用いるネーミングサービスでは、他プロセスから複合名称を含んだ検索リクエストを受け取ると、検索する複合名称から単一の名称要素を取り出して残りの複合名称と分けた後、その取り出した名称要素と対応付けられた、同一テーブル内のネーミングコンテキストへの参照、オブジェクト参照又は値を検索する為のＳＱＬ(Structured Query Language)問合せ文を生成してＲＤＢＭＳに発行するという処理を複合名称に含まれる各名称要素について繰り返し、最後の名称要素に対応する検索が終了したら検索結果を要求元の他プロセスに返却する。
【０００９】
【非特許文献１】Kyle Brown, Bruce G. Whitenack, "Crossing Chasms: a pattern language for object-RDBMS integration: the static patterns", "Pattern languages of program design 2", Addison-Wesley, 1996, pp. 227-238.
【発明の開示】
【発明が解決しようとする課題】
【００１０】
前記従来の方法でＲＤＢＭＳを利用してネーミングサービスを提供すると、以下の問題がある。即ち、あるプロセスから発行された検索リクエストを処理する際に、検索するべき複合名称に含まれる名称要素の個数と同じ回数だけ、ネーミングサービスはＲＤＢＭＳに対してテーブル検索を要求するＳＱＬ問合せ文を発行しなければならない。
【００１１】
これと同様に、あるプロセスから発行された登録、更新又は削除リクエストをネーミングサービスが処理する際にも、複合名称に含まれる名称要素の個数より１回少ない回数だけ、ネーミングサービスはＲＤＢＭＳに対してテーブル検索を要求するＳＱＬ問合せ文を発行する必要がある。この時の最後の１回は、テーブルへの登録又は更新又は削除要求を発行することになる。
【００１２】
典型的なネーミングサービスの使用法においては、使用される複合名称に含まれる名称要素は複数個であることが多い。このため、ネーミングサービス提供者は処理すべきリクエスト数に比較して、ＲＤＢＭＳに対するテーブル検索を要求するＳＱＬ問合せ文を多数発行しなければならない。ＲＤＢＭＳに対するＳＱＬ問合せ文の発行は、プロセス間通信を伴う等の理由で、多くの場合時間を要する処理であるから、ネーミングサービスの動作性能を低下させる要因となり、問題であった。
【００１３】
本発明の目的は上記問題を解決し、複合名称に対応する値やオブジェクト参照を検索する際にデータベース処理側へ発行する問合せ文の量を削減してネーミングサービスの処理性能を向上させることが可能な技術を提供することにある。
【課題を解決するための手段】
【００１４】
本発明は、分散オブジェクト環境でネーミングサービスを提供するネーミングサービス提供装置において、複合名称に含まれる複数の名称要素を辿った先の値をまとめて検索する為の問合せ文の発行またはその雛形の呼び出しにより複合名称に対応する値やオブジェクト参照を取得するものである。
【００１５】
本発明では、ＲＤＢＭＳに対するテーブル検索を要求する際に、複合名称内の連続する複数の名称要素からなる名称要素列について、配列順にネーミングコンテキストを辿った結果得られる値又はオブジェクト参照をまとめて検索する様な複合的なＳＱＬ問合せ文を生成した後、その生成した複合的なＳＱＬ問合せ文をＲＤＢＭＳに発行する。
【００１６】
また、前記複合的なＳＱＬ問合せ文の雛形を予めＲＤＢＭＳ上に作成しておき、複合名称内の連続する複数の名称要素からなる名称要素列について前記複合的なＳＱＬ問合せ文の雛形を呼び出して、配列順にネーミングコンテキストを辿った結果得られる値又はオブジェクト参照を検索する様にしても良い。
【発明の効果】
【００１７】
本発明によれば、複合名称に対応する値やオブジェクト参照を検索する際にデータベース処理側へ発行する問合せ文の量を削減してネーミングサービスの処理性能を向上させることが可能である。
【発明を実施するための最良の形態】
【００１８】
（実施形態１）
以下に複合名称に含まれる複数の名称要素を辿った先の値をまとめて検索する為の問合せ文の発行により複合名称に対応する値やオブジェクト参照を取得する実施形態１のネーミングサービス提供装置について説明する。
【００１９】
図１は本実施形態のネーミングサービス提供装置の概略構成を示す図である。図１に示す様に本実施形態のネーミングサービス提供装置は、問合せ処理部１０１と、返却処理部１０２とを有している。
【００２０】
問合せ処理部１０１は、ネーミングサービスへのリクエスト中の複合名称に含まれている名称要素に対応した値を検索する為の副問合せ文を組み合わせて、前記複合名称に含まれる複数の名称要素を辿った先の値を検索する為の問合せ文をメモリ上で生成し、その生成した問合せ文をデータベース処理側へ発行する処理部である。返却処理部１０２は、前記問合せ文の発行により取得した値またはオブジェクト参照をリクエスト発行元へ返却する処理部である。
【００２１】
ネーミングサービス提供装置を問合せ処理部１０１及び返却処理部１０２として機能させる為のプログラムは、ＣＤ−ＲＯＭ等の記録媒体に記録され磁気ディスク等に格納された後、メモリにロードされて実行されるものとする。なお前記プログラムを記録する記録媒体はＣＤ−ＲＯＭ以外の他の記録媒体でも良い。また前記プログラムを当該記録媒体から情報処理装置にインストールして使用しても良いし、ネットワークを通じて当該記録媒体にアクセスして前記プログラムを使用するものとしても良い。
【００２２】
図１の様に本実施形態のネーミングサービス提供装置では、複合名称を用いたリクエストを他プロセス側処理装置から受け取ると、その複合名称に含まれている複数の名称要素をまとめて検索する為のＳＱＬ問合せ文を作成してデータベース側処理装置へ発行し、取得した値やオブジェクト参照を他プロセス側処理装置へ返却する処理を行う。
【００２３】
図２は本実施形態の複合名称の一例を示す図である。図２の例では、"component1"等の複数の名称要素が区切り文字"/"で区切られている。この例では説明の都合で区切り文字を"/"であると仮定しているが、実際にはネーミングサービス毎に区切り文字を自由に選択しても良い。
【００２４】
前記背景技術で説明した様にネーミングサービスでは、ネーミングコンテキスト自身への参照が別のネーミングコンテキストにオブジェクト参照として登録されることが可能であり、このとき、一群のネーミングコンテキストは、図３の様にネーミンググラフを形成する。
【００２５】
図３は本実施形態のネーミングコンテキストが保持する情報及びネーミンググラフの例を示す図である。図３では、他のネーミングコンテキストへの参照を矢印で表している。
【００２６】
前記のネーミングサービスにおいて、図３のネーミングコンテキスト３１０を基点にして図２の複合名称を検索すると、ネーミンググラフ上のネーミングコンテキスト３２０、３３０、３４０、３５０、３６０を順に経由してオブジェクト参照３６１が検索できる。
【００２７】
一つのネーミングサービスの提供者は、任意の一つ或いは複数のネーミングコンテキストオブジェクトを実装する。例えば一のネーミングサービス提供者は、図３のネーミングコンテキスト３１０、３２０、３３０、３４０、３５０、３６０、及び３９０のネーミングコンテキストを実装し、他の一のネーミングサービス提供者はネーミングコンテキスト３７０と３８０を実装することができる。他プロセスは検索の基点とする一つのネーミングコンテキストを指定して、当該ネーミングコンテキストから検索を行う複合名称を含んだ検索リクエストを発行する。当該ネーミングコンテキストを実装するネーミングサービスは、その基点のネーミングコンテキストからネーミンググラフに沿って検索を行って、発見されたオブジェクト参照をリクエスト発行元プロセスに返却する。
【００２８】
前述のネーミングサービスの典型的な使用例においては、分散オブジェクトシステム内の全てのプロセスが、ある単一のネーミングコンテキストを共通の基点として持つ。各プロセスは適切な取り決めによって、自身が実装するオブジェクトに、通常は複数個の名称要素を持った複合名称を与え、当該複合名称と当該オブジェクトへの参照の組を登録するリクエストを、前記ネーミングコンテキストに対して発行する。各プロセスが複合名称に対応するオブジェクト参照を得たい時には、共通の基点となる前記ネーミングコンテキストに対して、当該複合名称と共に検索リクエストを発行する。ネーミングコンテキストを実装するネーミングサービスが前記リクエストを正しく処理することによって、システム内の各プロセスは共通の複合名称を使用して相互のオブジェクト参照を取得することが出来る。
【００２９】
代表的な分散オブジェクトシステム及びそこで使用されるネーミングサービスでは、既に述べた様な複合名称が名称として用いられており、複合名称はネーミングコンテキストから相対的に定義され、そのネーミングサービスは複数のネーミングコンテキストオブジェクトの実装を提供するという前述の特徴を全て備えている。但し、その様な代表的なネーミングサービスでは、ネーミングコンテキスト及びオブジェクト参照と複合名称との対応関係だけを保持することができるので、図３の値３１１の様な一般の値を格納することはできないが、このことは本実施形態には些かも影響しない。
【００３０】
図４は本実施形態のネーミングサービスのプロセス構成の一例を示す図である。図４では、ネーミングサービスを提供するネーミングサービスプロセス４１１とＲＤＢＭＳプロセス４２１、及び前記ネーミングサービスを利用する他プロセス４０１及び４０２との典型的な使用例における関係を表しており、ネーミングサービス自身の耐障害性を向上する目的で、ネーミングサービスが保持する名称とオブジェクトの対応関係がＲＤＢＭＳに格納されている。
【００３１】
図５は本実施形態のＲＤＢＭＳのテーブルの一例を示す図である。図５では、単一のネーミングサービス上に存在するネーミンググラフを、ＲＤＢＭＳのテーブルにマッピングしたものを表しており、図３のネーミングコンテキスト３１０、３２０、３３０、３４０、３５０、３６０及び３９０からなるネーミンググラフの情報をＲＤＢＭＳのテーブルに格納した場合の例を示している。
【００３２】
図５において、OBJECT_IDはそのネーミングコンテキストを識別する為の識別子、NAME_COMPONENTはそのネーミングコンテキストの名称、TYPEは他のネーミングコンテキストを参照することを示すref、オブジェクト参照を保持することを示すobject、値を保持することを示すvalue等の型、REFERRING_IDは他のネーミングコンテキストを参照する場合のそのネーミングコンテキストのOBJECT_ID、VALUEはそのネーミングコンテキストが保持するv1等の値やオブジェクト参照(IOR)を表しており、(NULL)は値が格納されていないことを示している。
【００３３】
図４の構成においてネーミングサービスプロセス４１１が、複合名称とオブジェクトの対応関係を、図５のテーブルをＲＤＢＭＳプロセス４２１内に作成することで保持している場合に、他プロセス４０１から特定の複合名称に対応するオブジェクトの検索リクエストを受け取ると、従来のネーミングサービスでは図６に示す方法でオブジェクト参照を検索する。
【００３４】
図６は従来の検索手続きの一例を示す図である。図６では、図５に示すＲＤＢＭＳテーブルとして表現されたネーミンググラフの、従来技術における検索手続きを示している。
【００３５】
他プロセス４０１が発行する検索要求では、検索基点となるネーミングコンテキストオブジェクトと、検索する複合名称の両方を特定する。ここで当該検索要求が、図３のネーミングコンテキスト３１０を基点として、図２の複合名称を検索するものである場合、まず、ネーミングサービスは検索基点となるネーミングコンテキストオブジェクトに対応するOBJECT_ID "1"を取得する（図６のステップ６０１）。
【００３６】
次に、検索する複合名称の先頭から、単一の名称要素を取り出し、残りの複合名称と分ける。複合名称に含まれる名称要素の数が１つである場合、当該名称要素がそのまま使われる（ステップ６０２）。そして、取り出した当該名称要素と対応付けられた、同一テーブル内のネーミングコンテキストへの参照、オブジェクト参照又は値を検索する為のＳＱＬ問合せ文をＲＤＢＭＳプロセス４２１に発行する（ステップ６０３）。ここで使用されるＳＱＬ文は以下の様なものである。
【００３７】
SELECT TYPE, REFERRING_ID, VALUE from 図５のテーブル名
where NAME_COMPONENT="component1" and OBJECT_ID= 1 
【００３８】
残りの複合名称が存在する場合は、ステップ６０３の結果、得られたネーミングコンテキストのOBJECT_IDを新たな検索基点として（ステップ６０６）、残りの複合名称に含まれる各名称要素についてステップ６０２に戻り検索を繰り返す。最後の名称要素に対応する検索が終了したら、検索結果を要求元の他プロセスに返却する。
【００３９】
図７は本実施形態のネーミングサービス提供処理の処理手順を示すフローチャートである。本実施形態のネーミングサービス提供処理は、図４及び図５に示す構成において図７の手続きを実施することによって示される。
【００４０】
図４の構成では、ネーミングサービスプロセス４１１がネーミングコンテキストオブジェクトを実装し、他プロセス４０１及び４０２からの検索、更新又は削除要求を受け付ける。ネーミングサービスプロセス４１１は、実装する各ネーミングコンテキストが保持する名称要素とオブジェクトとの対応関係を、ＲＤＢＭＳプロセス４２１内のテーブルに保存する。前記ネーミングサービスプロセス４１１が、図３のネーミングコンテキスト３１０、３２０、３３０、３４０、３５０、３６０及び３９０を実装するとき、前記ＲＤＢＭＳプロセス４２１内のテーブルは、図５に示す様な形式を備える。
【００４１】
なお、別の構成では、図４において、ネーミングサービスプロセス４１１と他プロセス４０１又は４０２が同一のプロセスであっても良い。また別の構成では、ネーミングサービスプロセス４１１とＲＤＢＭＳプロセス４２１が同一であっても良く、更に別の構成では前記他プロセス４０１又は４０２、ネーミングサービスプロセス４１１、ＲＤＢＭＳプロセス４２１が全て同一プロセスで提供されていても良い。
【００４２】
他プロセス４０１がネーミングサービスプロセス４１１に発行する検索要求は、検索基点となるネーミングコンテキストオブジェクトと、検索する複合名称の両方を特定する。ここで当該検索要求が、図３のネーミングコンテキスト３１０を基点として、図２の複合名称の検索を行うものとする。
【００４３】
以下、本実施形態を特徴付ける、当該検索要求のネーミングサービスプロセスによる処理方法を、図７を用いて説明する。まず、本実施形態のネーミングサービス提供装置の問合せ処理部１０１は、検索基点となるネーミングコンテキストオブジェクトに対応するOBJECT_IDの値 "1" を取得する（図７のステップ７０１）。
【００４４】
次に問合せ処理部１０１は、検索基点のOBJECT_IDから、図２の前記複合名称に含まれる全ての名称要素の順に、テーブル内を辿った先にある値又はオブジェクト参照を検索するＳＱＬ文を生成してＲＤＢＭＳに発行する（ステップ７０２）。これはＳＱＬの副問合せ文を使用した、次の様な複合的なＳＱＬ文で達成される。
【００４５】
SELECT TYPE, REFERRING_ID, VALUE from 図５のテーブル名
where NAME_COMPONENT="server11" and OBJECT_ID= (
SELECT REFERRING_ID from図５のテーブル名
where NAME_COMPONENT="component5" and OBJECT_ID= (
SELECT REFERRING_ID from図５のテーブル名
where NAME_COMPONENT="component4" and OBJECT_ID= (
SELECT REFERRING_ID from図５のテーブル名
where NAME_COMPONENT="component3" and OBJECT_ID= (
SELECT REFERRING_ID from図５のテーブル名
where NAME_COMPONENT="component2" and OBJECT_ID= (
SELECT REFERRING_ID from図５のテーブル名
where NAME_COMPONENT="component1" and OBJECT_ID= 1 )))))
【００４６】
すなわち本実施形態の問合せ処理部１０１は、ネーミングサービスへのリクエスト中の複合名称に含まれている名称要素を１つづつ取り出してメモリに格納した後、最後の名称要素以外のものについて、そのREFERRING_ID を検索する為の副問合せ文を生成してメモリに格納し、最後の名称要素についてはTYPE、REFERRING_ID及びVALUEを検索する為の問合せ文を生成してメモリに格納する。そしてそれらの問合せ文及び副問合せ文を組み合わせて、前記の様な複合名称に含まれる複数の名称要素を辿った先の値を検索する為のＳＱＬ問合せ文をメモリ上で生成し、その生成したＳＱＬ問合せ文をデータベース処理側へ発行する。
【００４７】
この複合的なＳＱＬ文により、一回のＳＱＬ文にて全ての複合名称を辿った先の値又はオブジェクト参照をＲＤＢＭＳ中のテーブルから検索することが可能となる。
【００４８】
そしてネーミングサービス提供装置の返却処理部１０２は、前記ＳＱＬ問合せ文の発行の後、その検索結果として取得した値またはオブジェクト参照をリクエスト発行元の他プロセス４０１へ返却し、検索を終了する。
【００４９】
なお図５のテーブルのどの項目がREFERRING_IDであるか等のデータベースに関する情報は、予めデータベース項目情報としてネーミングサービス提供装置に格納されているものとする。
【００５０】
また、前記複合名称に含まれている名称要素の数が所定値よりも大きい場合に、その所定値毎に前記ＳＱＬ問合せ文をメモリ上で生成してデータベース処理側へ発行し、最終的に取得したオブジェクト参照をリクエスト発行元へ返却するものとしても良い。
【００５１】
例えばデータベース処理側の制約等により副問合せ文の数に制限がある場合には、その制限数毎に前記ＳＱＬ問合せ文をメモリ上で生成してデータベース処理側へ発行し、取得したTYPE、REFERRING_ID、VALUEの内のREFERRING_IDの値を、次のＳＱＬ問合せ文の最も内側の副問合せ文のOBJECT_IDの値として設定してデータベース処理側へ発行し、最終的に取得したTYPE、REFERRING_ID、VALUEの内のVALUEの値をリクエスト発行元へ返却するものとしても良い。
【００５２】
なお本実施形態のＳＱＬ問合せ文の例では、前記の様に、取得したREFERRING_IDの値を次のＳＱＬ問合せ文で利用可能とする様に、１行目でTYPE、REFERRING_ID及びVALUEを検索する為の問合せ文を生成しているが、オブジェクト参照が取得されることが判っている場合には、VALUEのみを検索する為の問合せ文を生成するものとしても良い。
【００５３】
以上説明した様に本実施形態のネーミングサービス提供装置によれば、複合名称に含まれる複数の名称要素を辿った先の情報をまとめて検索する為の問合せ文の発行により複合名称に対応する値やオブジェクト参照を取得するので、複合名称に対応する値やオブジェクト参照を検索する際にデータベース処理側へ発行する問合せ文の量を削減してネーミングサービスの処理性能を向上させることが可能である。
【００５４】
（実施形態２）
以下に複合名称に含まれる複数の名称要素を辿った先の値をまとめて検索する為の問合せ文雛形の呼び出しにより複合名称に対応する値やオブジェクト参照を取得する実施形態２のネーミングサービス提供装置について説明する。
【００５５】
図８は本実施形態のネーミングサービス提供装置の概略構成を示す図である。図８に示す様に本実施形態のネーミングサービス提供装置は、問合せ処理部８０１と、返却処理部８０２とを有している。
【００５６】
問合せ処理部８０１は、ネーミングサービスへのリクエスト中の複合名称から、複数の名称要素を辿った先の値を検索する為の問合せ文雛形で用いられる所定数の名称要素を取り出してメモリ上に格納し、その取り出した所定数の名称要素を指定してデータベース処理側の前記問合せ文雛形を呼び出して所定数の名称要素を辿った先の値をデータベース処理側へ問合せる処理部である。返却処理部８０２は、前記問合せ文雛形の呼び出しで複合名称の最終要素に到達した場合に、その呼び出しで取得したオブジェクト参照をリクエスト発行元へ返却する処理部である。
【００５７】
ネーミングサービス提供装置を問合せ処理部８０１及び返却処理部８０２として機能させる為のプログラムは、ＣＤ−ＲＯＭ等の記録媒体に記録され磁気ディスク等に格納された後、メモリにロードされて実行されるものとする。なお前記プログラムを記録する記録媒体はＣＤ−ＲＯＭ以外の他の記録媒体でも良い。また前記プログラムを当該記録媒体から情報処理装置にインストールして使用しても良いし、ネットワークを通じて当該記録媒体にアクセスして前記プログラムを使用するものとしても良い。
【００５８】
図８の様に本実施形態のネーミングサービス提供装置では、複合名称を用いたリクエストを他プロセス側処理装置から受け取ると、その複合名称に含まれている複数の名称要素をまとめて検索する為のＳＱＬ問合せ文雛形の呼び出しをデータベース側処理装置に対して行い、取得した値やオブジェクト参照を他プロセス側処理装置へ返却する処理を行う。
【００５９】
図９は本実施形態のネーミングサービス提供処理の処理手順を示すフローチャートである。本実施形態において、プロセスの構成及びＲＤＢＭＳ中のテーブルの配置は実施形態１の図４及び図５と同様であるものとする。
【００６０】
ネーミングサービスプロセス４１１は、予めＲＤＢＭＳプロセス４２１上にストアドプロシージャと呼ばれるＳＱＬ文の雛形（複合検索ＳＱＬ雛形９１１）を作成しておく。例えば、以下の様に、６つの名称要素を持つ複合名称が指す値又はオブジェクト参照を、基点となるネーミングコンテキストから検索する為のＳＱＬ文の雛形を、「RESOLVE_6」という名前でＲＤＢＭＳプロセス４２１上に作成してメモリや磁気ディスク装置等の記憶装置内に格納しておく。
【００６１】
CREATE PROCEDURE RESOLVE_6 ( 
in NAME1 varchar(255), in NAME2 varchar(255), in NAME3 varchar(255),
in NAME4 varchar(255), in NAME5 varchar(255), in NAME6 varchar(255),
in ROOT_OBJECT_ID int, 
out P_TYPE varchar(255), out P_REFERRING_ID int, out P_VALUE varchar(255))
BEGIN
SELECT TYPE, REFERRING_ID, VALUE into P_TYPE, P_REFERRING_ID, P_VALUE
from 図５のテーブル名
where NAME_COMPONENT=NAME6 and OBJECT_ID= (
SELECT REFERRING_ID from図５のテーブル名
where NAME_COMPONENT=NAME5 and OBJECT_ID= (
SELECT REFERRING_ID from図５のテーブル名
where NAME_COMPONENT=NAME4 and OBJECT_ID= (
SELECT REFERRING_ID from図５のテーブル名
where NAME_COMPONENT=NAME3 and OBJECT_ID= (
SELECT REFERRING_ID from図５のテーブル名
where NAME_COMPONENT=NAME2 and OBJECT_ID= (
SELECT REFERRING_ID from図５のテーブル名
where NAME_COMPONENT=NAME1 and OBJECT_ID= ROOT_OBJECT_ID )))))
【００６２】
またネーミングサービスプロセス４１１は、任意に選んだ有限数ｎについて、２つの名称要素を持つ複合名称を検索する為のストアドプロシージャ、３つの名称要素を持つ複合名称を検索する為のストアドプロシージャ、と順に、ｎ個の名称要素を持つ複合名称を検索する為のストアドプロシージャまでを各々一つづつ、前記の「RESOLVE_6」の場合と同様にして予めＲＤＢＭＳプロセス４２１上に作成しておく。ここで作成した複合検索ＳＱＬ雛形９１１は、他プロセスから発行されるあらゆる検索要求に対して以下の方法で使用することができる。
【００６３】
他プロセス４０１が発行する検索要求は、検索基点となるネーミングコンテキストオブジェクトと、検索する複合名称の両方を特定する。ここで当該検索要求が、図３のネーミングコンテキスト３１０を基点として、図２の複合名称を検索するものである場合、まず、ネーミングサービス提供装置の問合せ処理部８０１は、検索基点となるネーミングコンテキストオブジェクトに対応するOBJECT_ID "1"を取得する（図９のステップ９０１）。
【００６４】
次に問合せ処理部８０１は、検索する複合名称に含まれる名称要素の数がｎ個より多いかどうかをテストする（ステップ９０２）。ｎ個より多い場合、複合名称の先頭から、連続するｎ個の名称要素列を取り出してメモリ上に格納し、残りの複合名称と分ける（ステップ９０３）。ここで、複合名称に含まれる名称要素の数がｎ個かそれより少ない場合、当該名称要素をそのまま使用する。そして、取り出した当該名称要素列と対応付けられた、同一テーブル内のネーミングコンテキストへの参照、オブジェクト参照又は値を検索するため、既にストアドプロシージャとして作成した、名称要素列の長さに対応するＲＤＢＭＳプロセス４２１上の複合検索ＳＱＬ雛形９１１を、前記取り出した数の名称要素を指定して呼び出す（ステップ９０４）。
【００６５】
問合せ処理部８０１は、検索結果が得られた後、当初の複合名称に含まれる名称要素数がｎ個より多く、残りの名称要素列が存在する場合（ステップ９０５）、ステップ９０４の結果、REFERRING_IDとして得られたネーミングコンテキストのOBJECT_IDを新たな検索基点として（ステップ９０６）、残りの複合名称についてステップ９０２に戻り、検索を繰り返す。
【００６６】
そして返却処理部８０２は、複合検索ＳＱＬ雛形９１１の呼び出しで複合名称の最終要素に到達した場合に、その呼び出しで取得したオブジェクト参照をリクエスト発行元へ返却する処理を行う。
【００６７】
以上説明した様に本実施形態のネーミングサービス提供装置によれば、複合名称に含まれる複数の名称要素を辿った先の情報をまとめて検索する為の問合せ文雛形の呼び出しにより複合名称に対応する値やオブジェクト参照を取得するので、複合名称に対応する値やオブジェクト参照を検索する際にデータベース処理側へ発行する問合せ文の量を削減してネーミングサービスの処理性能を向上させることが可能である。
【００６８】
前記の様に本発明では、複合名称に対応する値又はオブジェクト参照を検索する際に、複合名称内の複数の名称要素の配列順にネーミングコンテキストを辿った結果得られる値又はオブジェクト参照をまとめて検索する複合的なＳＱＬ問合せ文またはその雛形を用いるので、ＲＤＢＭＳへ発行するＳＱＬ問合せ文の量を削減し、ネーミングサービスが複合名称に対応する値又はオブジェクト参照を検索する性能を向上させることができるという効果がある。
【００６９】
本発明ではまた、複合名称の最終名称要素を除いた名称要素列に対応する値又はオブジェクト参照を検索する為にＲＤＢＭＳへ発行するＳＱＬ問合せ文の量を削減することにより、ネーミングサービスが複合名称に対応する値又はオブジェクト参照を追加、更新又は削除する性能を向上させることができるという効果がある。
【図面の簡単な説明】
【００７０】
【図１】実施形態１のネーミングサービス提供装置の概略構成を示す図である。
【図２】実施形態１の複合名称の一例を示す図である。
【図３】実施形態１のネーミングコンテキストが保持する情報及びネーミンググラフの例を示す図である。
【図４】実施形態１のネーミングサービスのプロセス構成の一例を示す図である。
【図５】実施形態１のＲＤＢＭＳのテーブルの一例を示す図である。
【図６】従来の検索手続きの一例を示す図である。
【図７】実施形態１のネーミングサービス提供処理の処理手順を示すフローチャートである。
【図８】実施形態２のネーミングサービス提供装置の概略構成を示す図である。
【図９】実施形態２のネーミングサービス提供処理の処理手順を示すフローチャートである。
【符号の説明】
【００７１】
１０１…問合せ処理部、１０２…返却処理部、３１０、３２０、３３０、３４０、３５０、３６０、３７０、３８０及び３９０…ネーミングコンテキスト、３１１…値、３６１…オブジェクト参照、４０１及び４０２…他プロセス、４１１…ネーミングサービスプロセス、４２１…ＲＤＢＭＳプロセス、８０１…問合せ処理部、８０２…返却処理部、９１１…複合検索ＳＱＬ雛形。
【図１】
2006031516.tif 000003
【図２】
2006031516.tif 000004
【図３】
2006031516.tif 000005
【図４】
2006031516.tif 000006
【図５】
2006031516.tif 000007
【図６】
2006031516.tif 000008
【図７】
2006031516.tif 000009
【図８】
2006031516.tif 000010
【図９】
2006031516.tif 000011