(57)【要約】【課題】分散システムを構成する複数のノードによって提供されている複数の異なる業務サービスを効率良く検索することが可能な技術を提供する。【解決手段】分散システムにおいて各種サービスを効率良く実現する為のネーム情報を提供するネームサービス提供方法において、ネーム情報の検索要求を第１のノードから受け付けるステップと、システム定義に指定されている第２のノードへ前記ネーム情報の検索要求を送信し、その第２のノードから取得したネーム情報をグローバルキャッシュに格納するステップと、前記検索要求の行われたネーム情報を自ノードのローカルキャッシュ及びグローバルキャッシュから検索して第１のノードへ送信するステップとを有するものである。【選択図】        図１
2004302564.tif 000002
【特許請求の範囲】
【請求項１】
分散システムにおいて各種サービスを効率良く実現する為のネーム情報を提供するネームサービス提供方法において、
ネーム情報の検索要求を第１のノードから受け付けるステップと、システム定義に指定されている第２のノードへ前記ネーム情報の検索要求を送信し、その第２のノードから取得したネーム情報を第１のキャッシュに格納するステップと、前記検索要求の行われたネーム情報を自ノードの第２のキャッシュ及び第１のキャッシュから検索して第１のノードへ送信するステップとを有することを特徴とするネームサービス提供方法。
【請求項２】
自ノードと同じ階層に属する他のノードと、自ノードと異なる階層に属する特定のノードに対して前記ネーム情報の検索要求を送信することにより、前記ネーム情報の検索要求の送信を分散システムの所定の階層に行うことを特徴とする請求項１に記載されたネームサービス提供方法。
【請求項３】
前記送信されたネーム情報で識別されるサービスの停止が検出され、当該ネーム情報の削除要求が送信された場合に、システム定義に指定されているノードのネーム情報を調査し、第２のキャッシュまたは第１のキャッシュ上の該当するネーム情報を更新することを特徴とする請求項１または請求項２のいずれかに記載されたネームサービス提供方法。
【請求項４】
前記サービスの停止が検出されたノードにそのノードが動作中であるかを問い合わせる為のデータを送信し、当該ノードからの応答があるかどうかによって当該サービスのネーム情報の削除を行うことを特徴とする請求項３に記載されたネームサービス提供方法。
【請求項５】
分散システムにおいて各種サービスを効率良く実現する為のネーム情報を提供するネームサービス提供方法において、
状態の変化したサービスのネーム情報を第１のノードから受信するステップと、システム定義に指定されている第２のノードへ前記第１のノードから受信したネーム情報を送信するステップと、前記第１のノードから受信したネーム情報を自ノードの第１のキャッシュへ反映させるステップと、ネーム情報の検索要求を第３のノードから受け付けた場合に、前記第３のノードから要求されたネーム情報を自ノードの第２のキャッシュ及び第１のキャッシュから検索して第３のノードへ送信するステップとを有することを特徴とするネームサービス提供方法。
【請求項６】
自ノードと同じ階層に属する他のノードと、自ノードと異なる階層に属する特定のノードに対して前記ネーム情報を送信することにより、前記ネーム情報の送信を分散システムの所定の階層に行うことを特徴とする請求項５に記載されたネームサービス提供方法。
【請求項７】
分散システムにおいて各種サービスを効率良く実現する為のネーム情報を提供するネームサービス提供装置において、
ネーム情報の検索要求を第１のノードから受け付ける検索要求受付処理部と、システム定義に指定されている第２のノードへ前記ネーム情報の検索要求を送信し、その第２のノードから取得したネーム情報を第１のキャッシュに格納する検索処理部と、前記検索要求の行われたネーム情報を自ノードの第２のキャッシュ及び第１のキャッシュから検索して第１のノードへ送信する検索要求応答処理部とを備えることを特徴とするネームサービス提供装置。
【請求項８】
分散システムにおいて各種サービスを効率良く実現する為のネーム情報を提供するネームサービス提供装置において、
状態の変化したサービスのネーム情報を第１のノードから受信し、その受信したネーム情報を自ノードの第１のキャッシュへ反映させるアドバタイズ受付処理部と、自ノードで状態の変化したサービスのネーム情報や、前記第１のノードから受信したネーム情報をシステム定義に指定されている第２のノードへ送信するアドバタイズ処理部と、ネーム情報の検索要求を第３のノードから受け付ける検索要求受付処理部と、前記検索要求の行われたネーム情報を自ノードの第２のキャッシュ及び第１のキャッシュから検索して第３のノードへ送信する検索要求応答処理部とを備えることを特徴とするネームサービス提供装置。
【請求項９】
分散システムにおいて各種サービスを効率良く実現する為のネーム情報を提供するネームサービス提供装置としてコンピュータを機能させる為のプログラムにおいて、
ネーム情報の検索要求を第１のノードから受け付ける検索要求受付処理部と、システム定義に指定されている第２のノードへ前記ネーム情報の検索要求を送信し、その第２のノードから取得したネーム情報を第１のキャッシュに格納する検索処理部と、前記検索要求の行われたネーム情報を自ノードの第２のキャッシュ及び第１のキャッシュから検索して第１のノードへ送信する検索要求応答処理部としてコンピュータを機能させることを特徴とするプログラム。
【請求項１０】
分散システムにおいて各種サービスを効率良く実現する為のネーム情報を提供するネームサービス提供装置としてコンピュータを機能させる為のプログラムにおいて、
状態の変化したサービスのネーム情報を第１のノードから受信し、その受信したネーム情報を自ノードの第１のキャッシュへ反映させるアドバタイズ受付処理部と、自ノードで状態の変化したサービスのネーム情報や、前記第１のノードから受信したネーム情報をシステム定義に指定されている第２のノードへ送信するアドバタイズ処理部と、ネーム情報の検索要求を第３のノードから受け付ける検索要求受付処理部と、前記検索要求の行われたネーム情報を自ノードの第２のキャッシュ及び第１のキャッシュから検索して第３のノードへ送信する検索要求応答処理部としてコンピュータを機能させることを特徴とするプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は分散システムにおいてプログラムのリソースを効率良く使用する為のネーム情報を提供するネームサービス提供システムに適用して有効な技術に関するものである。
【０００２】
【従来の技術】
従来の分散システムでは、リモートプロシージャコール（ＲＰＣ）を効率良く実現する為に、各サービスのアドレス情報やロードバランス情報が格納されたＲＰＣサービスの情報リストをネーム情報として提供している。
【０００３】
ＲＰＣを行うクライアントは、プログラムの実行によりネーム情報を提供するネームサービスにそれぞれ問い合わせて、要求するサービスに関する情報を入手し、ＲＰＣの適切な宛先（ＩＰアドレス＋ポート番号）を決定している。その際、クライアントからの問い合わせを受信したネームサービスでは、自ノードで起動しているサービスの情報とシステム定義で指定されたノードで起動しているサービスの情報を取得し、クライアントへネーム情報を提供しているが、そのネームサービスが、システム定義で指定されたノードから取得するのは、そのノードで起動しているサービスの情報のみであるので、新しくノードが追加された場合等、前記ネームサービスが他のノードのネーム情報も取得する場合には、システム定義の内容を変更してそのノードへの検索要求を行う必要がある。
【０００４】
また、従来のクライアントサーバシステム及びネーミングサービス方法に関しては、同一の情報サービスを２以上のサーバマシンから選択的に提供できる様に、それぞれが複数種類のサーバプログラム（サーバオブジェクト）を備えた複数のサーバマシンからなるクライアントサーバシステムにおいて、サーバ負荷を分散する様に各クライアント端末へのサーバオブジェクトの割り当てを動的に行える様にしたクライアントサーバシステム及びネーミングサービス方法が提案されている（例えば特許文献１参照）。
【０００５】
【特許文献１】
特開２００１−９２７６６号公報
【０００６】
【発明が解決しようとする課題】
前記従来のネームサービスでは、サービスの検索時に自ノード（計算機や情報処理装置、その様な処理を実施するプログラムやオブジェクトでも良い）で起動しているサービスの情報とシステム定義で指定されたノードで起動しているサービスの情報を取得している為、分散システムを構成する他のノード等、システム定義に指定されていないノードのサービスの情報を取得しようとした場合には、システム定義にそれらのノードを追加し、追加したノードに検索要求を行う必要があった。また分散システムを構成するノードが変更された場合には、その変更内容に合わせて各ノードのシステム定義を変更する必要があり、その管理負荷が大きかった。
【０００７】
本発明の目的は上記問題を改善し、分散システムを構成する複数のノードによって提供されている複数の異なる業務サービス（プログラムやオブジェクトの実行により提供される業務処理等の機能）を効率良く検索することが可能な技術を提供することにある。
【０００８】
本発明の他の目的は分散システムを構成する複数のノードによって提供されている複数の異なる業務サービスの状態が変化した場合にそのサービスのネーム情報を効率良く送信することが可能な技術を提供することにある。
【０００９】
【課題を解決するための手段】
本発明は、分散システムにおいて各種業務サービスを効率良く実現する為のネーム情報を提供するネームサービス提供システムにおいて、ネーム情報の検索要求を受信した場合に自ノードのネーム情報及びシステム定義に指定されている他のノードのネーム情報を順次検索して検索元へ送信するものである。
【００１０】
本発明のネームサービス提供システムでは、ＲＰＣに代表されるクライアント−サーバ間通信により各種業務サービスを利用するクライアントがある業務サービスを利用しようとする場合、まずそのクライアントは、その業務サービスを提供しているアプリケーションサーバ（複数の業務サービスを提供するサーバ）のＩＰアドレスやポート番号等を示すネーム情報の取得要求を、検索元サーバのネームサービスに対して送信する。
【００１１】
前記ネーム情報の取得要求を受信した検索元サーバでは、前記クライアントから送信されたネーム情報の取得要求を受け付けた後、検索元サーバのシステム定義を読み出し、そのシステム定義に指定されているネームサーバへ前記ネーム情報の検索要求を送信する。
【００１２】
前記ネームサーバではネーム情報の検索要求を第１のノードである検索元サーバから受け付けた後、そのネームサーバの記憶装置内に格納されているシステム定義を読み出し、そのシステム定義に指定されている第２のノードである第２のネームサーバへ前記ネーム情報の検索要求を送信する処理を行う。
【００１３】
第２のネームサーバ以降の各ノードでは前記と同様の処理を繰り返し、ネームサーバ群の最も下位の階層に位置する等、他のネームサーバへの前記ネーム情報の検索要求を行わないノードでは、自ノードのローカルキャッシュに格納されているネーム情報を、前記ネーム情報の検索要求に対する応答として、その検索要求を行った上位のノードへ応答する。
【００１４】
下位のノードから応答を受信したネームサーバでは、その下位のノードから取得したネーム情報をグローバルキャッシュに格納した後、自ノードのローカルキャッシュ及びグローバルキャッシュからネーム情報を読み出して、その読み出したネーム情報を、前記ネーム情報の検索要求に対する応答として、その検索要求を行った上位のノードへ応答する処理を順次行う。
【００１５】
検索元サーバから前記ネーム情報の検索要求を受け付けたネームサーバが、第２のネームサーバから応答を受け取ると、前記と同様にして、その第２のネームサーバから取得したネーム情報をグローバルキャッシュに格納した後、自ノードのローカルキャッシュ及びグローバルキャッシュからネーム情報を読み出して、その読み出したネーム情報を第１のノードである検索元サーバへ応答する。
【００１６】
検索元サーバでは、ネームサーバから応答を受け取ると、前記と同様にして、そのネームサーバから取得したネーム情報をグローバルキャッシュに格納した後、クライアントから要求されたネーム情報を自ノードのローカルキャッシュ及びグローバルキャッシュから検索した後、その検索したネーム情報をクライアントへ応答する。
【００１７】
前記の様に本発明では、順次下位のノードへネーム情報の検索要求を行うので、自ノードのローカルキャッシュ及びシステム定義に指定されたノードのローカルキャッシュとグローバルキャッシュを検索してサービス情報を取得することが可能となり、複数の分散システムの業務サービスが検索可能となる。
【００１８】
以上の様に本発明のネームサービス提供システムによれば、ネーム情報の検索要求を受信した場合に自ノードのネーム情報及びシステム定義に指定されている他のノードのネーム情報を順次検索して検索元へ送信するので、分散システムを構成する複数のノードによって提供されている複数の異なる業務サービスを効率良く検索することが可能である。
【００１９】
【発明の実施の形態】
以下に分散システムにおいて各種サービスを効率良く実現する為のネーム情報を提供する一実施形態のネームサービス提供システムについて説明する。
【００２０】
図１は本実施形態のネームサービス提供システムの概略構成を示す図である。本実施形態のネームサービス提供システムでは、ネーム情報を提供するネームサービス処理をプログラムの実行により行う。
【００２１】
図１に示す様に本実施形態のネームサービス提供システムでは、検索元のノードＡ（計算機や情報処理装置、その様な処理を実施するプログラムやオブジェクトでも良い）でクライアント（プログラムやオブジェクト）から検索要求が行われると、まず▲１▼の様にノードＡのネームサービスへ検索要求を行い、そしてノードＡのネームサービスは、そのシステム定義に従って▲２▼の様にノードＢのネームサービスへ検索要求を行う。
【００２２】
ノードＡからの検索要求を受け取ったノードＢのネームサービスは、▲３▼及び▲４▼の様にシステム定義に指定されているノードＤ及びノードＥのネーム情報を調査し、ノードＢのローカルキャッシュ及びグローバルキャッシュの両方のネーム情報を更新する。その後、▲５▼の様に検索元のノードＡのネームサービスへ前記ネーム情報を応答する。
【００２３】
この様に本実施形態において、ノードＢは、ネーム情報の検索要求を受信した場合に自ノードのネーム情報と、システム定義に指定されている他のノードＤ及びノードＥのネーム情報とを検索元のノードＡへ送信するので、要求元のノードＡでは、ノードＢに対して１度の検索要求を行うことにより、複数のノードＢ、Ｄ及びＥのサービスを検索することができる。
【００２４】
図２は本実施形態のネームサービスを提供するネームサーバ（計算機または情報処理装置若しくはプログラムでも良い）の概略構成を示す図である。図２に示す様に本実施形態のネームサーバ２００は、ＣＰＵ２０１と、メモリ２０２と、磁気ディスク装置２０３と、入力装置２０４と、出力装置２０５と、ＣＤ−ＲＯＭ装置２０６と、通信装置２０７と、ローカルキャッシュ２０８と、グローバルキャッシュ２０９と、システム定義２１０とを有している。
【００２５】
ＣＰＵ２０１は、ネームサーバ２００全体の動作を制御する装置である。メモリ２０２は、ネームサーバ２００全体の動作を制御する際にその為の各種処理プログラムやデータをロードする記憶装置である。
【００２６】
磁気ディスク装置２０３は、前記各種処理プログラムやデータを格納しておく記憶装置である。入力装置２０４は、他のノードへネーム情報を提供する為の各種入力を行う装置である。出力装置２０５は、前記ネーム情報の提供に伴う各種出力を行う装置である。
【００２７】
ＣＤ−ＲＯＭ装置２０６は、前記各種処理プログラムを記録したＣＤ−ＲＯＭの内容を読み出す装置である。通信装置２０７は、インターネットやイントラネット等のネットワークを介して他のノードとの通信を行う装置である。
【００２８】
ローカルキャッシュ２０８は、自ノードで起動しているサービスのネーム情報を記憶する記憶装置である。グローバルキャッシュ２０９は、他のノードから取得したネーム情報を格納する記憶装置である。システム定義２１０は、ネーム情報の検索要求先またはアドバタイズ先となるノードの情報を格納したファイルである。
【００２９】
またネームサーバ２００は、検索要求受付処理部２１１と、検索処理部２１２と、検索要求応答処理部２１３と、アドバタイズ受付処理部２１４と、アドバタイズ処理部２１５とを有している。
【００３０】
検索要求受付処理部２１１は、ネーム情報の検索要求を他のノードから受け付ける処理部である。検索処理部２１２は、システム定義２１０に指定された検索要求先のノードへ前記ネーム情報の検索要求を送信し、そのノードから取得したネーム情報をグローバルキャッシュ２０９に格納する処理部である。
【００３１】
検索要求応答処理部２１３は、前記検索要求の行われたネーム情報を自ノードのローカルキャッシュ２０８及びグローバルキャッシュ２０９から読み出して要求元のノードへ送信する処理部である。アドバタイズ受付処理部２１４は、起動や停止等により状態の変化したサービスのネーム情報を他のノードから受信し、その受信したネーム情報を自ノードのグローバルキャッシュ２０９へ反映させる処理部である。
【００３２】
アドバタイズ処理部２１５は、自ノードで状態の変化したサービスのネーム情報や、他のノードからのアドバタイズにより受信したネーム情報をシステム定義２１０に指定されたアドバタイス先のノードへ送信する処理部である。
【００３３】
ネームサーバ２００を検索要求受付処理部２１１、検索処理部２１２、検索要求応答処理部２１３、アドバタイズ受付処理部２１４及びアドバタイズ処理部２１５として機能させる為のプログラムは、ＣＤ−ＲＯＭ等の記録媒体に記録され磁気ディスク等に格納された後、メモリにロードされて実行されるものとする。なお前記プログラムを記録する記録媒体はＣＤ−ＲＯＭ以外の他の記録媒体でも良い。また前記プログラムを当該記録媒体から情報処理装置にインストールして使用しても良いし、ネットワークを通じて当該記録媒体にアクセスして前記プログラムを使用するものとしても良い。
【００３４】
図１に示した各ノードは、いずれも図２のネームサーバ２００と同様な構成であるものとし、他のノードからの検索要求やアドバタイズを処理するものとするが、分散システムの階層構造等により、システム定義の内容はそれぞれ異なっているものとする。
【００３５】
図３は本実施形態のネーム情報の構成例を示す図である。図３に示す様に本実施形態のネーム情報は、分散システムにおいてＲＰＣを効率良く実現する為に、各ノード上に存在しているネームサービスが管理するＲＰＣサービスの情報リストであり、提供されるサービスを識別する為のサービス名と、そのサービスを提供するプログラムが起動しているノードのアドレス情報と、そのノードの負荷状態を示すロードバランス情報とを格納している。ノードの負荷状態としては、ＣＰＵ使用率や、ディスクへのＩ／Ｏ状態や、サービス処理待ちのキューの数、単位時間当たりの処理率を評価し、例えば空状態ではｉｄｌｅ、処理できている状態ｂｕｓｙ、処理が滞留している状態ｖｅｒｙ  ｂｕｓｙといた何段階かに評価を行った情報である。
【００３６】
次に本実施形態のネームサービス提供システムにおいて、ネームサーバ２００が他のノードからネーム情報の検索要求を受けた場合の処理について説明する。
【００３７】
図４は本実施形態のネーム情報検索処理の処理手順を示すフローチャートである。図４に示す様にステップ４０１でネームサーバ２００の検索要求受付処理部２１１は、ネットワークを介して他のノードからネーム情報の検索要求を受信しているかどうかを調べ、ネーム情報の検索要求を受信している場合にはその要求を受け付けてステップ４０２へ進む。
【００３８】
ステップ４０２で検索処理部２１２は、システム定義２１０を参照し、その中から検索要求先のノードを示す情報を読み出して、前記検索要求の送信先を決定する。ここで、重複した検索要求が発生しない様に、検索要求を送信済みのノードを除外して送信先を決定する様にしても良い。例えば、それ以降の検索要求で送信先から除外するノードを示す情報として、自ノードやシステム定義中のノードの情報を格納した除外情報を検索要求と共に次のノードへ送信しておき、次のノードのシステム定義の内で除外情報に含まれていないノードをその次の送信先とすることで重複した検索要求を防止することができる。
【００３９】
例えば図１の様なノード構成でノードＡのクライアントプログラム（ネーム情報は何も持っていない状態）から検索要求を送信する際に、ノードＢ、Ｄ及びＥのシステム定義中にノードＡが記載されていると、ノードＢ、Ｄ及びＥからノードＡへの検索要求が送信され、ループ状に重複した検索要求が送信されてしまうが、ノードＡからの検索要求の送信時に、自ノードであるノードＡと、ノードＡのシステム定義中のノードＢを、それ以降の検索要求で送信先から除外するノードとして除外情報に設定しておけば、ノードＢ、ＤまたはＥからノードＡやＢへの検索要求が抑止されるので、重複した検索要求を防止することができる。
【００４０】
ステップ４０３で検索処理部２１２は、前記送信先として決定された各ノードへのネーム情報の検索要求を、前記受信した検索要求をコピーして生成し、それらのノードへ前記生成した検索要求を送信する。
【００４１】
ステップ４０４では、前記検索要求を送信した各ノードからネーム情報を受信した後、グローバルキャッシュ２０９を検索して前記受信したネーム情報と同一のネーム情報が既に格納されているかどうかを調べ、まだ格納されていないネーム情報である場合にはそのネーム情報をグローバルキャッシュ２０９に格納する。
【００４２】
そしてステップ４０５で検索要求応答処理部２１３は、自ノードのローカルキャッシュ２０８及びグローバルキャッシュ２０９に格納されているネーム情報を読み出し、ステップ４０１で受信した検索要求の要求元に対して、その読み出したネーム情報を送信する。
【００４３】
図５は本実施形態の階層化された分散システムの処理例を示す図である。図５に示す分散システムは、システム１〜３の３つの階層で構成されており、システム１のノードはノードＡのみであるが、システム２はノードＢ、Ｂ１及びＢ２で構成され、システム３はノードＣ及びＣ１で構成されている。
【００４４】
従来のネームサービスにおいて、クライアントＡがノードＡでネーム情報の検索要求を行った場合、ノードＡのネーム情報であるサービスＡの情報と、ノードＡのシステム定義で指定されたノードＢのサービスＢの情報しか得ることができず、その他のノードのネーム情報を得る為には、ノードＡのシステム定義を変更する必要があった。しかしながら、ノードＡのシステム定義を変更することとした場合には、システム２や３の構成が変更される度にノードＡのシステム定義を変更しなければならないので、その管理が困難であった。
【００４５】
これに対して本実施形態のネームサービス提供システムでは、ノードＡからノードＢへ検索要求を行うと、ノードＢのシステム定義で指定されたノードＢ１、Ｂ２及びＣへ検索要求が送られ、システム１〜３の全てのノードのネーム情報を取得することができる。
【００４６】
すなわち、図５の様にノードＡの検索要求受付処理部２１１がクライアントＡからネーム情報の検索要求を受け付けると、ノードＡの検索処理部２１２は、システム定義２１０で検索要求先のノードとして指定されているノードＡ及びＢの情報を読み出し、自ノードであるノードＡを除いた後、自ノードと異なる階層に属するノードＢへ前記検索要求を送信する。
【００４７】
ノードＢの検索要求受付処理部２１１がノードＡからネーム情報の検索要求を受け付けると、ノードＢの検索処理部２１２は、システム定義２１０で検索要求先のノードとして指定されているノードＢ、Ｂ１、Ｂ２及びＣの情報を読み出し、自ノードと同じ階層に属するノードＢ１及びＢ２と、自ノードと異なる階層に属するノードＣに対してネーム情報の検索要求を送信する。
【００４８】
同様にしてノードＣの検索要求受付処理部２１１がノードＢからネーム情報の検索要求を受け付けると、ノードＣの検索処理部２１２は、自ノードと同じ階層に属するノードＣ１に対してネーム情報の検索要求を送信する。
【００４９】
本実施形態では、重複した検索要求が行われない様に、検索要求先から除外するノードを示す除外情報を付加して検索要求を送信するものとしても良い。例えば、ノードＡからノードＢに検索要求を送信する際にはノードＡへの検索要求を予め除外することを示す除外情報を付加し、同様にノードＢからノードＣに検索要求を送信する際にはノードＡ、Ｂ、Ｂ１及びＢ２を除外情報として設定する。
【００５０】
ノードＣからネーム情報の検索要求を受信したノードＣ１は、検索要求応答処理部２１３により自ノードのローカルキャッシュ２０８からサービスＣ１のネーム情報を読み出してノードＣに応答する。
【００５１】
ノードＣ１からネーム情報を受信したノードＣの検索処理部２１２は、その受信したネーム情報をグローバルキャッシュ２０９に格納し、検索要求応答処理部２１３により自ノードのローカルキャッシュ２０８及びグローバルキャッシュ２０９からサービスＣ及びＣ１のネーム情報を読み出してノードＢに応答する。
【００５２】
ノードＢの検索処理部２１２は、検索要求を送信したノードＢ１、Ｂ２及びＣからネーム情報を受信してグローバルキャッシュ２０９に格納した後、それらのノードＢ１、Ｂ２、Ｃ及びＣ１のネーム情報とローカルキャッシュ２０８中のサービスＢのネーム情報をノードＡに応答する。
【００５３】
そしてノードＡの検索処理部２１２は、ノードＢからノードＢ、Ｂ１、Ｂ２、Ｃ及びＣ１のネーム情報を受信してグローバルキャッシュ２０９に格納した後、ノードＡの検索要求応答処理部２１３は、クライアントＡから要求されたサービスのネーム情報をローカルキャッシュ２０８及びグローバルキャッシュ２０９から検索し、クライアントＡに応答する。
【００５４】
前記の様に本実施形態では、分散システムが複数の階層から構成されている場合に、自ノードと同じ階層に属する他のノードと、自ノードと異なる階層に属する特定のノードに対してネーム情報の検索要求を送信する処理を各階層で行うので、検索要求の要求元が全ての階層構造を把握していない場合でも、その分散システム内の全てのサービスの情報を検索することができる。
【００５５】
図６は本実施形態の障害発生時のネーム情報の削除・更新の処理例を示す図である。図６では、前記の様にして検索されたネーム情報を用いてＲＰＣを行った際にサービスの停止が検出され、当該ネーム情報の削除要求が送信された場合に、システム定義２１０に指定されているノードのネーム情報を調査して、ローカルキャッシュ２０８またはグローバルキャッシュ２０９上のネーム情報を更新する処理を表している。
【００５６】
すなわち、前記の様にしてサービスＢ１のネーム情報を取得したクライアントＡがＲＰＣによりノードＢ１へアクセスした際に、ノードＢ１からの応答が無い等のエラーが発生した場合には、サービスＢ１が停止しているものとしてそのネーム情報の削除要求をノードＡに送信する。
【００５７】
前記削除要求を受信したノードＡは、
ノードＡの検索要求受付処理部２１１は、クライアントＡからネーム情報の削除要求を受け付けると、グローバルキャッシュ２０９中のサービスＢ１の情報を削除した後、ネーム情報の調査を検索処理部２１２に指示する。ノードＡの検索処理部２１２は、システム定義２１０に指定されているノードのネーム情報を調査、すなわち検索要求の場合と同様の処理を行って、ローカルキャッシュ２０８またはグローバルキャッシュ２０９上のネーム情報を更新することにより、サービスＢ１が削除されたネーム情報が各ノードに配布される。
【００５８】
なお、ノードＢ１からの応答が無い理由としては、ノードＢ１が障害でダウンしている場合の他に、ネットワークの通信エラー等の原因も考えられるので、サービスの停止が検出された場合には、そのサービスの停止が検出されたノードに対してそのノードが動作中であるかを問い合わせる為のＫｅｅｐ  Ａｌｉｖｅ等と同様のデータを送信し、当該ノードからの応答があるかどうかによって当該サービスのネーム情報の削除を行うものとしても良い。
【００５９】
次に本実施形態のネームサービス提供システムにおいて、ネームサーバ２００が他のノードに対してネーム情報のアドバタイズを行う場合の処理について説明する。
【００６０】
図７は本実施形態のアドバタイズ処理の処理手順を示すフローチャートである。図７に示す様にステップ７０１でネームサーバ２００のアドバタイズ受付処理部２１４は、状態の変化したサービスのネーム情報をアドバタイズとして他のノードから受信しているかどうか調べ、アドバタイズされたネーム情報を受信している場合にはステップ７０２へ進む。
【００６１】
ステップ７０２では、自ノードのグローバルキャッシュ２０９を検索して前記受信したネーム情報に該当するネーム情報が既に自ノードのグローバルキャッシュ２０９に格納されているかどうかを調べ、既に格納されている場合にはそのネーム情報を更新し、まだ格納されていない場合にはそのネーム情報を追加した後、ステップ７０３へ進む。
【００６２】
ステップ７０３でアドバタイズ処理部２１５は、システム定義２１０に指定されたアドバタイス先のノードを示す情報を読み出して、前記受信したネーム情報の送信先を決定する。ここで、重複したアドバタイズが発生しない様に、アドバタイズを実施済みのノードを除外してアドバタイズ先を決定する様にしても良い。例えば、それ以降のアドバタイズ先から除外するノードを示す情報として、自ノードやシステム定義中のノードの情報を格納した除外情報をアドバタイズと共に次のノードへ送信しておき、次のノードのシステム定義の内で除外情報に含まれていないノードをその次のアドバタイズ先とすることで重複したアドバタイズを防止することができる。
【００６３】
例えば図８の様なノード構成でノードＣからアドバタイズを送信する際に、システム１や２のシステム定義中にノードＣが記載されていると、ノードＡやＢからノードＣへのアドバタイズが行われ、ループ状に重複したアドバタイズが実行されてしまうが、ノードＣからのアドバタイズの送信時に、自ノードであるノードＣと、ノードＣのシステム定義中のノードＣ１やＢを、それ以降のアドバタイズ先から除外するノードとして除外情報に設定しておけば、ノードＡやＢからノードＣへのアドバタイズが抑止されるので、重複したアドバタイズを防止することができる。
【００６４】
次にアドバタイズ処理部２１５は、自ノード内のサービスの起動、停止または負荷状態の変化等、自ノードのサービスの状態が変化しているかどうかを調べ、変化が検出されたサービスがある場合にはステップ７０４へ進む。
【００６５】
ステップ７０４では、その変化したサービスの状態を示す新しいネーム情報を生成した後、自ノードのローカルキャッシュ２０８を検索して前記受信したネーム情報に該当するネーム情報が既に自ノードのローカルキャッシュ２０８に格納されているかどうかを調べ、既に格納されている場合にはそのネーム情報を前記新しく生成したネーム情報により更新し、まだ格納されていない場合にはそのネーム情報を追加する。
【００６６】
ステップ７０５では、システム定義２１０に指定されたアドバタイス先のノードを示す情報を読み出して、前記受信したネーム情報の送信先をステップ７０３と同様にして決定する。
【００６７】
また検索要求受付処理部２１１がクライアント等からネーム情報の検索要求を受け付けた場合には、検索要求応答処理部２１３により、前記アドバタイズによって更新されたローカルキャッシュ２０８及びグローバルキャッシュ２０９から、前記検索要求の行われたネーム情報を読み出して要求元へ送信する。
【００６８】
図８は本実施形態のアドバタイズ処理の処理例を示す図である。図８に示す分散システムは、図５の場合と同様にシステム１〜３の３つの階層で構成されている。
【００６９】
従来のネームサービスにおいて、ノードＣがサービスＣの状態の変化を検出してアドバタイズを行った場合、ノードＣのシステム定義で指定されたノードＣ１及びＢのみにサービスＣの情報が送信され、ノードＡがそのネーム情報を得られる様にする為には、ノードＣのシステム定義を変更する必要があった。しかしながら、ノードＣのシステム定義を変更することとした場合には、システム１の構成が変更される度にノードＣのシステム定義を変更しなければならないので、その管理が困難であった。
【００７０】
これに対して本実施形態のネームサービス提供システムでは、ノードＣからノードＢへアドバタイズを行うと、ノードＢのシステム定義で指定されたノードＢ１、Ｂ２及びＡへアドバタイズが行われ、システム１〜３の全てのノードが新しいネーム情報を取得することができる。
【００７１】
すなわち、図８の様にノードＣのアドバタイズ処理部２１５がサービスＣの状態の変化を検出すると、その状態を示すネーム情報を生成し、システム定義２１０でアドバタイズ先のノードとして指定されているノードＣ、Ｃ１及びＢの情報を読み出し、自ノードであるノードＣを除いた後、自ノードと同じ階層に属するノードＣ１と、自ノードと異なる階層に属するノードＢへ前記ネーム情報のアドバタイズを送信する。
【００７２】
ノードＢのアドバタイズ受付処理部２１４がノードＣからネーム情報のアドバタイズを受け付けると、その受信したネーム情報の内容を自ノードのグローバルキャッシュ２０９へ反映させた後、ノードＢのアドバタイズ処理部２１５は、システム定義２１０でアドバタイズ先のノードとして指定されているノードＢ、Ｂ１、Ｂ２及びＡの情報を読み出し、自ノードと同じ階層に属するノードＢ１及びＢ２と、自ノードと異なる階層に属するノードＡに対して前記ネーム情報のアドバタイズを送信する。
【００７３】
そしてノードＡやノードＢ１及びＢ２のアドバタイズ受付処理部２１４がノードＣからネーム情報のアドバタイズを受け付けると、その受信したネーム情報の内容を自ノードのグローバルキャッシュ２０９へ反映させ、クライアント等からネーム情報の検索要求を受け付けた場合には、検索要求応答処理部２１３により、前記アドバタイズによって更新されたグローバルキャッシュ２０９から検索要求の行われたネーム情報を読み出して要求元へ送信する。
【００７４】
前記の様に本実施形態では、分散システムが複数の階層から構成されている場合に、自ノードと同じ階層に属する他のノードと、自ノードと異なる階層に属する特定のノードに対してネーム情報のアドバタイズを送信する処理を各階層で行うので、アドバタイズの送信元が全ての階層構造を把握していない場合でも、その分散システム内の該当する全てのネーム情報を更新することができる。
【００７５】
以上説明した様に本実施形態のネームサービス提供システムによれば、ネーム情報の検索要求を受信した場合に自ノードのネーム情報及びシステム定義に指定されている他のノードのネーム情報を順次検索して検索元へ送信するので、分散システムを構成する複数のノードによって提供されている複数の異なる業務サービスを効率良く検索することが可能である。
【００７６】
また本実施形態のネームサービス提供システムによれば、状態の変化したサービスのネーム情報を受信した場合にシステム定義に指定されている他のノードへ当該ネーム情報を順次送信するので、分散システムを構成する複数のノードによって提供されている複数の異なる業務サービスの状態が変化した場合にそのサービスのネーム情報を効率良く送信することが可能である。
【００７７】
【発明の効果】
本発明によればネーム情報の検索要求を受信した場合に自ノードのネーム情報及びシステム定義に指定されている他のノードのネーム情報を順次検索して検索元へ送信するので、分散システムを構成する複数のノードによって提供されている複数の異なる業務サービスを効率良く検索することが可能である。
【図面の簡単な説明】
【図１】本実施形態のネームサービス提供システムの概略構成を示す図である。
【図２】本実施形態のネームサービスを提供するネームサーバの概略構成を示す図である。
【図３】本実施形態のネーム情報の構成例を示す図である。
【図４】本実施形態のネーム情報検索処理の処理手順を示すフローチャートである。
【図５】本実施形態の階層化された分散システムの処理例を示す図である。
【図６】本実施形態の障害発生時のネーム情報の削除・更新の処理例を示す図である。
【図７】本実施形態のアドバタイズ処理の処理手順を示すフローチャートである。
【図８】本実施形態のアドバタイズ処理の処理例を示す図である。
【符号の説明】
２００…ネームサーバ、２０１…ＣＰＵ、２０２…メモリ、２０３…磁気ディスク装置、２０４…入力装置、２０５…出力装置、２０６…ＣＤ−ＲＯＭ装置、２０７…通信装置、２０８…ローカルキャッシュ、２０９…グローバルキャッシュ、２１０…システム定義、２１１…検索要求受付処理部、２１２…検索処理部、２１３…検索要求応答処理部、２１４…アドバタイズ受付処理部、２１５…アドバタイズ処理部。
【図１】
2004302564.tif 000003
【図２】
2004302564.tif 000004
【図３】
2004302564.tif 000005
【図４】
2004302564.tif 000006
【図５】
2004302564.tif 000007
【図６】
2004302564.tif 000008
【図７】
2004302564.tif 000009
【図８】
2004302564.tif 000010