(57)【特許請求の範囲】
【請求項１】
同一の名前空間を備えた複数の名前サーバを多重化させる名前サービス多重化方法であって、
クライアントのサーバ管理手段が、
名前サービスの処理要求があった場合、その処理要求が名前空間の変更を伴うものか否かを判断し、
名前空間の変更を伴わない処理についての要求であった場合、前記複数の名前サーバに対してアクセス可能であるかどうかに関する名前サービス管理情報を参照して、前記複数の名前サーバのアクセスの可否を判断し、アクセス可能な名前サーバのいずれか一つにアクセスして前記処理要求を送信し、
名前空間の変更を伴う処理についての要求であった場合、前記名前サービス管理情報を参照して、前記複数の名前サーバのアクセスの可否を判断し、アクセス可能な全ての名前サーバにアクセスして前記処理要求を送信する
ことを特徴とする名前サービス多重化方法。
【請求項２】
サーバ管理手段が、アクセスした名前サーバへの通信に失敗した場合、当該名前サーバへのアクセスが不可能であることを示す情報を管理情報格納手段に記憶する
ことを特徴とする請求項１記載の名前サービス多重化方法。
【請求項３】
一の名前サーバが、
複数の名前サーバにおける名前空間の不整合の発生を認識し、
他の名前サーバのデータベースから修復に必要な情報を取得し、
取得した前記修復に必要な情報に基づいて、前記他の名前サーバの名前空間と整合させるように自己のデータベース内の情報を修復する
ことを特徴とする請求項１または請求項２記載の名前サービス多重化方法。
【請求項４】
一の名前サーバが、他の名前サーバのデータベースから修復に必要な情報を取得する際に、多重化された全ての名前サーバについてクライアントとの通信を禁止させることを特徴とする請求項３記載の名前サービス多重化方法。
【請求項５】
同一の名前空間を備えた複数の名前サーバを多重化させる名前サービス多重化システムであって、
クライアントが、
前記複数の名前サーバに対してアクセス可能であるかどうかに関する名前サービス管理情報を格納した管理情報格納手段と、
名前サービスの処理要求があった場合、その処理要求が名前空間の変更を伴うものか否かを判断し、名前空間の変更を伴わない処理についての要求であった場合、前記名前サービス管理情報に基づいて前記複数の名前サーバのアクセスの可否を判断し、アクセス可能な名前サーバのいずれか一つにネットワークを通じてアクセスして前記処理要求を送信し、名前空間の変更を伴う処理についての要求であった場合、前記名前サービス管理情報に基づいて前記複数の名前サーバのアクセスの可否を判断し、アクセス可能な全ての名前サーバにアクセスして前記処理要求を送信するサーバ管理手段と
を備えたことを特徴とする名前サービス多重化システム。
【請求項６】
サーバ管理手段は、アクセスした名前サーバへの通信に失敗した場合、当該名前サーバへのアクセスが不可能であることを管理情報格納手段に格納する
ことを特徴とする請求項５記載の名前サービス多重化システム。
【請求項７】
名前サーバが、
複数の名前サーバにおける名前空間の不整合の発生を認識し、
他の名前サーバのデータベースから修復に必要な情報を取得し、
取得した前記修復に必要な情報に基づいて、前記他の名前サーバの名前空間と整合させるように自己のデータベース内の情報を修復する名前サービス情報修復手段
を備えたことを特徴とする請求項５または請求項６記載の名前サービス多重化システム。
【請求項８】
名前サービス情報修復手段は、他の名前サーバのデータベースから修復に必要な情報を取得する際に、多重化された全ての名前サーバに対してクライアントとの通信を禁止させるロック要求を送信することを特徴とする請求項７記載の名前サービス多重化システム。
【請求項９】
同一の名前空間を備えた複数の名前サーバを多重化させるための名前サービス管理用プログラムであって、
名前サービスの処理要求があった場合、その処理要求が名前空間の変更を伴うものか否かを判断する処理要求確認処理と、
名前空間の変更を伴わない処理についての要求であった場合、前記複数の名前サーバに対してアクセス可能であるかどうかに関する名前サービス管理情報を参照して、前記複数の名前サーバのアクセスの可否を判断し、アクセス可能な名前サーバのいずれか一つにアクセスして前記処理要求を送信する第１リクエスト送信処理と、
名前空間の変更を伴う処理についての要求であった場合、前記名前サービス管理情報を参照して、前記複数の名前サーバのアクセスの可否を判断し、アクセス可能な全ての名前サーバにアクセスして前記処理要求を送信する第２リクエスト送信処理と
をクライアントのサーバ管理手段に実行させる名前サービス管理用プログラム。
【請求項１０】
アクセスした名前サーバへの通信に失敗した場合、当該名前サーバへのアクセスが不可能であることを示す情報を管理情報格納手段に記憶する情報記憶処理
をクライアントのサーバ管理手段に実行させる請求項９記載の名前サービス管理用プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、名前サービスをクライアントに提供する、同一の名前空間を備えた複数の名前サーバを多重化させる名前サービス多重化方法、名前サービス多重化システム及び名前サービス管理用プログラムに関する。
【０００２】
【従来の技術】
分散オブジェクトシステムにおける名前サービスの代表的なものとして、ＯＭＧ（Object Management Group ）が制定したＣＯＲＢＡ（Common ORB Architecture ）にあるネームサービスがあげられる。名前サービスは、マシンやネットワークアドレスではなく、人間が読みことのできる名前（参照）を使ってオブジェクトを位置付けるために使用される。名前サービスは、名前サーバにアクセスしてきたクライアントが、利用したいオブジェクト参照を名前で指定することにより、当該オブジェクト参照を取り出す機能や、無名であるオブジェクト参照に名前を付加する機能などを有する。このように、名前サービスは、オブジェクトの位置情報検索において非常に重要な役割を果たしている。
【０００３】
【発明が解決しようとする課題】
ところで、名前サービスシステムでは、名前サーバの障害対策として、複数の名前サーバを多重化して、あたかも一つの名前サービスとして機能させることが好ましい。しかし、名前サービスシステムは、システム内からのどのクライアントに対しても、同じ名前空間を提供する必要がある。また、名前空間内の情報は、新陳代謝が非常に早い。従って、従来の名前サービスシステムでは、名前空間の不整合が生じないようにするために、システム内には唯一つの名前サーバしか設けられていなかった。その結果、従来の名前サービスシステムには、次にような課題が存在していた。
【０００４】
第１に、名前サービスシステム内には名前サーバが一つしか存在しないため、その名前サーバが故障などによって止まってしまうと、クライアントからの名前空間へのアクセスが不可能となってしまう。第２に、名前サーバが保持していた名前空間の情報が失われて復旧する場合、名前空間内の情報の新陳代謝が非常に早いため、復旧に時間がかかればかかる程、名前空間の完全な復旧が難しくなってしまう。第３に、多重化を実現しようとして名前サーバを複数台設けた場合、クライアントの名前サーバへのアクセス処理の度に、クライアントが全ての名前サーバを管理しなければならないため、かえって障害が発生しやすくなってしまう。
【０００５】
本発明は、上記のような課題を解決するためになされたものであり、複数の名前サーバを容易に多重化して用いることができ、名前サーバの耐障害性を向上させることができる名前サービス多重化方法、名前サービス多重化システム及び名前サービス管理用プログラムを得ることを目的とする。
【０００６】
【課題を解決するための手段】
以上の目的を達成するため、本発明の名前サービス多重化方法は、同一の名前空間を備えた複数の名前サーバを多重化させる名前サービス多重化方法であって、クライアントのサーバ管理手段が、名前サービスの処理要求があった場合、その処理要求が名前空間の変更を伴うものか否かを判断し、名前空間の変更を伴わない処理についての要求であった場合、複数の名前サーバに対してアクセス可能であるかどうかに関する名前サービス管理情報を参照して、複数の名前サーバのアクセスの可否を判断し、アクセス可能な名前サーバのいずれか一つにアクセスして処理要求を送信し、名前空間の変更を伴う処理についての要求であった場合、名前サービス管理情報を参照して、複数の名前サーバのアクセスの可否を判断し、アクセス可能な全ての名前サーバにアクセスして処理要求を送信するようにした。
【００１０】
名前空間の変更を伴う処理の処理要求を送信する際、アクセスした名前サーバへの通信に失敗した場合、当該名前サーバへのアクセスが不可能であることを示す情報を管理情報格納手段に記憶するのが好ましい。このような構成によれば、複数の名前サーバのいずれにアクセス可能であるかどうかについて容易に認識することができる。
【００１１】
一の名前サーバが、複数の名前サーバにおける名前空間の不整合の発生を認識し、他の名前サーバのデータベースから修復に必要な情報を取得し、取得した修復に必要な情報に基づいて、他の名前サーバの名前空間と整合させるように自己のデータベース内の情報を修復するのが好ましい。このような構成によれば、複数の名前サーバの名前空間の不整合が生じたとしても、直ちに各名前サーバの名前空間の情報を整合させて同一にすることができる。
【００１２】
一の名前サーバが、他の名前サーバのデータベースから修復に必要な情報を取得する際に、多重化された全ての名前サーバについてクライアントとの通信を禁止させるようにするのが好ましい。このような構成によれば、名前空間の修復の最中に名前空間が変更されて、名前空間の同一性が保持できなくなるのを防止することができる。
【００１３】
本発明の名前サービス多重化システムは、同一の名前空間を備えた複数の名前サーバ（名前サーバ３，４・・・ｎ）を多重化させる名前サービス多重化システムであって、クライアントが、複数の名前サーバに対してアクセス可能であるかどうかに関する名前サービス管理情報（１３）を格納した管理情報格納手段と、名前サービスの処理要求があった場合、その処理要求が名前空間の変更を伴うものか否かを判断し、名前空間の変更を伴わない処理についての要求であった場合、名前サービス管理情報に基づいて複数の名前サーバのアクセスの可否を判断し、アクセス可能な名前サーバのいずれか一つにネットワーク（２）を通じてアクセスして処理要求を送信し、名前空間の変更を伴う処理についての要求であった場合、名前サービス管理情報に基づいて複数の名前サーバのアクセスの可否を判断し、アクセス可能な全ての名前サーバにアクセスして処理要求を送信するサーバ管理手段（名前サービスプロバイダ１４）とを備えた。
【００１６】
サーバ管理手段は、名前空間の変更を伴う処理の処理要求を送信するためにアクセスした名前サーバへの通信に失敗した場合、当該名前サーバへのアクセスが不可能であることを管理情報格納手段に格納するように構成されるのが好ましい。このような構成によれば、サーバ管理手段において、複数の名前サーバのいずれにアクセス可能であるかどうかについて名前サービス管理情報に基づき容易に認識することができる。
【００１７】
名前サーバが、複数の名前サーバにおける名前空間の不整合の発生を認識し、他の名前サーバのデータベースから修復に必要な情報を取得し、取得した修復に必要な情報に基づいて、他の名前サーバの名前空間と整合させるように自己のデータベース内の情報を修復する名前サービス情報修復手段を設けるのが好ましい。このような構成によれば、複数の名前サーバの名前空間の不整合が生じたとしても、直ちに各名前サーバの名前空間の情報を整合させて同一にすることができる。
【００１８】
名前サービス情報修復手段は、他の名前サーバのデータベースから修復に必要な情報を取得する際に、多重化された全ての名前サーバに対してクライアントとの通信を禁止させるロック要求を送信するように構成されるのが好ましい。このような構成によれば、名前空間の修復の最中に名前空間が変更されて、名前空間の同一性が保持できなくなるのを防止することができる。
【００１９】
本発明の名前サービス管理用プログラムは、同一の名前空間を備えた複数の名前サーバを多重化させるための名前サービス管理用プログラムであって、名前サービスの処理要求があった場合、その処理要求が名前空間の変更を伴うものか否かを判断する処理要求確認処理と、名前空間の変更を伴わない処理についての要求であった場合、複数の名前サーバに対してアクセス可能であるかどうかに関する名前サービス管理情報を参照して、複数の名前サーバのアクセスの可否を判断し、アクセス可能な名前サーバのいずれか一つにアクセスして処理要求を送信する第１リクエスト送信処理と、名前空間の変更を伴う処理についての要求であった場合、名前サービス管理情報を参照して、複数の名前サーバのアクセスの可否を判断し、アクセス可能な全ての名前サーバにアクセスして処理要求を送信する第２リクエスト送信処理とをクライアントのサーバ管理手段に実行させる。
【００２２】
名前空間の変更を伴う処理の処理要求を送信するためにアクセスした名前サーバへの通信に失敗した場合、当該名前サーバへのアクセスが不可能であることを示す情報を管理情報格納手段に記憶する情報記憶処理をもクライアントのサーバ管理手段に実行させるのが好ましい。このような構成によれば、複数の名前サーバのいずれにアクセス可能であるかどうかについて名前サービス管理情報に基づき容易に認識することができる。
【００２３】
【発明の実施の形態】
以下、本発明の実施の一形態を図面を参照して説明する。
実施の形態１．
図１は、本発明の名前サービスシステムの実施の形態１の構成を示すブロック図である。図１に示すように、本発明の名前サービスシステムは、クライアント１と複数の名前サーバ３，４とが、インターネットやＬＡＮなどのネットワーク２で相互に接続されている。
【００２４】
図１に示す構成において、クライアント１は、一つまたはそれ以上の名前サーバにアクセスするマシンである。クライアント１は、通信手段１１、クライアントプログラム１２、名前サービス管理情報１３及び名前サービスプロバイダ１４を備えている。なお。通信手段１１、クライアントプログラム１２及び名前サービスプロバイダ１４は、クライアント１内部に組み込まれ（インストールされ）たプログラムで実現される。
【００２５】
通信手段１１は、ネットワーク２と接続され、ネットワーク２を通じて複数の名前サーバ３，４との間でデータや処理要求（リクエスト）などのメッセージを送受信する。クライアントプログラム１２は、クライアント１内部で動作する、名前サービスを利用するプロセスを制御する。クライアントプログラム１２は、クライアント１の利用者の操作に基づく名前サービスの処理要求（名前サービスの各種機能の利用を要求するもの）を名前サービスプロバイダ１４に送る。また、クライアントプログラム１２は、名前サービスプロバイダ１４から送られる処理要求に対する処理結果を受け取って、所定の処理を実行する。
【００２６】
名前サービス管理情報１３は、クライアント１内部に格納された、名前サービスシステム内にある全ての名前サーバ３，４のそれぞれに対してアクセス可能であるかどうかに関する情報である。名前サービス管理情報１３は、障害が発生した名前サーバ３または４を名前サービスシステムから切り離す場合に名前サービスプロバイダ１４によって利用される。なお、名前サービス管理情報１３は、管理情報格納手段に格納される。
【００２７】
名前サービスプロバイダ１４は、クライアントプログラム１２と各名前サーバ３，４との間のアクセス（通信）を制御する。すなわち、名前サービスプロバイダ１４は、クライアントプログラム１２から送られた名前サーバ３，４に対しての処理要求を受け取ると、名前サービス管理情報１３に基づいてアクセス可能な名前サーバ３，４を判断する。そして、名前サービスプロバイダ１４は、判断結果に基づいてアクセス可能な所定の名前サーバにアクセスして処理要求を送信する。また、名前サービスプロバイダ１４は、名前サーバから送信された処理要求に対する処理結果を受信し、受信した処理結果をクライアントプログラム１２に送る。
【００２８】
また、名前サービスプロバイダ１４は、通信手段１１から送られる名前サーバへのアクセス（通信）に失敗したことの通知を受け取ると、受け取ったアクセスの失敗通知をクライアントプログラム１２に送る。また、名前サービスプロバイダ１４は、アクセスの失敗通知などに基づき各名前サーバ３，４へのアクセス可能・不可能を認識して、名前サービス管理情報１３を更新する。
【００２９】
名前サーバ３，４は、それぞれ、名前サービスをクライアント１に提供するマシンである。名前サーバ３，４は、自身にアクセスしてくるクライアント１に対して、名前空間内のコンテキスト（ネーミングコンテキスト）に名前でアクセスできる機能を提供する。二つの名前サーバ３，４が多重化されて、一つの名前サービスをクライアント１に提供するために、二つの名前サーバ３，４が備える名前空間は全く同じものとされる。
【００３０】
名前サーバ３は、通信手段３１、名前データベース３２、名前サービス提供手段３３及び名前サービス情報修復手段３４を備えている。同様に、名前サーバ４は、通信手段４１、名前データベース４２、名前サービス提供手段４３及び名前サービス情報修復手段４４を備えている。
【００３１】
通信手段３１，４１は、それぞれ、ネットワーク２と接続され、クライアント１及び他方の名前サーバとの間でデータや処理結果などを送受信する。名前データベース３２，４２は、それぞれ、名前サーバ３，４が利用者に提供するシステム内の全コンテキストを管理するための情報を格納する。なお、名前データベース３２，４２は、メモリやディスクなどで構成される。上記したように、名前サービスシステム内に存在する全ての名前データベース３２，４２には、全く同じ情報が格納される。名前サービスは、名前データベース３２，４２に格納された情報に基づいて、クライアント１に対して名前空間を提供する。
【００３２】
名前サービス提供手段３３，４３は、それぞれ、クライアント１に対してルックアップやバインド・アンバインドなどの名前サービスの各種機能を提供する。すなわち、名前サービス提供手段３３，４３は、名前データベース３２，４２に格納された情報に基づいて、クライアント１からの名前空間のコンテキストへのアクセスを受け付ける。そして、名前サービス提供手段３３，４３は、クライアント１から送信された処理要求に対して、名前データベース３２，４２に格納された情報に基づいて、処理要求に対する処理を実行し、処理結果をクライアント１に送信する。名前サービス提供手段３３，４３によって実行される処理には、ルックアップのように名前データベース３２，４２の情報が変化しない（名前空間の変更を伴わない）ものと、バインド・アンバインドのように名前データベース３２，４２の情報が変化する（名前空間の変更を伴う）ものとがある。
【００３３】
名前サービス情報修復手段３４，４４は、それぞれ、自身の名前サーバの名前データベースに格納された情報を修復するため、または名前サービスシステム内の他の名前サーバの名前データベースに格納された情報を修復させるために、他の名前サーバの名前サービス情報修復手段との間で修復に必要な情報を送受信する。
【００３４】
すなわち、自身の名前サーバの名前データベース内の情報と他の名前サーバの名前データベース内の情報との不一致が発生した場合、名前サービス情報修復手段３４，４４は、他の名前サーバの名前サービス情報修復手段に対して修復に必要な情報を要求する。名前サービス情報修復手段３４，４４は、修復に必要な情報が要求されると、要求してきた名前サーバの名前サービス情報修復手段に対して修復に必要な情報を送信する。名前サービス情報修復手段３４，４４は、他の名前サーバの名前サービス情報修復手段から送信された修復に必要な情報を受信して、名前データベース３２，４２の情報を修復する。
【００３５】
また、名前サービス情報修復手段３４，４４は、それぞれ、名前データベース３２，４２内の情報を修復している最中に、名前サービス提供手段３３，４３にロックをかけて、クライアント１からのアクセスを禁止する機能を備えている。
【００３６】
なお、クライアント１及び名前サーバ３，４における通信手段１１及び通信手段３１，４１は、上記したように、クライアント１と名前サーバ３，４との間、及び名前サーバ３，４同士を接続して通信を行うための手段である。これらの通信手段１１，３１，４１は、ＯＭＧが制定したＣＯＲＢＡにあるＯＲＢ（Object  Request Broker）で実現される。ＯＲＢは、分散オブジェクト環境におけるオブジェクト間の通信を司る。ＯＲＢは、オブジェクト間の接続の仲介を行うだけでなく、通信時に障害が発生したなどの理由により通信に失敗した場合、そのことを例外などによって送り先（例えば、クライアント１の通信手段１１であれば名前サービスプロバイダ１４）に通知する機能を備えている。
【００３７】
次に、動作について説明する。
上記したように、各名前サーバ３，４がクライアント１に提供する名前空間は、それぞれ同一に保つ必要がある。しかし、上記したように、クライアント１から送信される処理要求には、ルックアップのような名前空間の変更を伴わない処理と、バインド・アンバインドのような名前空間の変更を伴う処理とがある。従って、名前空間の変更を伴う処理が一方の名前サーバについてだけ行われる場合には、各名前サーバ３，４の名前空間の同一性を保持することができなくなってしまう。
【００３８】
そこで、名前サービスにおいて実行される処理が、名前空間の変更を伴わない処理であるか、または名前空間の変更を伴う処理であるかによって、名前サービスシステムの動作を変更する。以下、名前空間の変更を伴わない処理が行われる場合と、名前空間の変更を伴う処理が行われる場合とに分けて、名前サービスシステムの動作を説明する。
【００３９】
（１）名前空間の変更を伴わない処理の場合
図２は、名前空間の変更を伴わない処理が行われる場合の名前サービスプロバイダの動作を説明するためのフローチャートである。
【００４０】
まず、クライアント１において、クライアントプログラム１２は、利用者のマシン操作に応じて、名前サービスへの処理要求（リクエスト）を名前サービスプロバイダ１４に送る。ここで、処理要求は、ルックアップのような名前空間の変更を伴わない処理を要求するものである。
【００４１】
名前サービスプロバイダ１４は、クライアントプログラム１２から送られた処理要求を受け取ると、クライアントプログラム１２から送られた処理要求の内容を確認（判断）する（ステップＡ１）。処理要求の内容を確認する方法としては、次のようなものが考えられる。名前サービスプロバイダ１４は、クライアントプログラム１２から送られた処理要求のメソッドの名前、例えば、ルックアップなら「ｌｏｏｋｕｐ」、バインドなら「ｂｉｎｄ」で判断する。または、クライアントプログラム１２は、名前サービスプロバイダ１４に対して送る処理要求の中に、当該処理要求が名前空間の変更を伴うものであるか否かを表す情報を追加する。名前サービスプロバイダ１４は、処理要求の中の名前空間の変更を伴うものであるか否かを表す情報によって判断する。
【００４２】
次に、名前サービスプロバイダ１４は、名前サービス管理情報１３を参照して、アクセス可能な名前サーバが存在するかどうかについて調べる（ステップＡ２）。このとき、図１の例では、名前サーバ３，４のいずれもアクセス可能である場合、名前サーバ３，４のいずれか一方がアクセス可能である場合、また名前サーバ３，４のいずれもアクセス不可能である場合がある。
【００４３】
名前サーバ３，４のいずれもアクセス不可能である場合、名前サービスプロバイダ１４は、アクセス可能な名前サーバが存在しないと判断する（ステップＡ２のＮｏ）。そして、名前サービスプロバイダ１４は、クライアントプログラム１２に全ての名前サーバ３，４の接続が不可能であることを通知し（ステップＡ８）、一連の処理を終了する。
【００４４】
一方、名前サーバ３，４のいずれもアクセス可能である場合、または名前サーバ３，４のいずれか一方がアクセス可能である場合は、名前サービスプロバイダ１４は、アクセス可能な名前サーバが一つ以上存在すると判断する（ステップＡ２のＹｅｓ）。そして、名前サービスプロバイダ１４は、アクセスして処理要求を送信する名前サーバを選択する（ステップＡ３）。
【００４５】
アクセス可能な名前サーバが一つの場合は、当該名前サーバ３，４のいずれか一方が処理要求の送信対象の名前サーバとして決定される。アクセス可能な名前サーバが二つ以上の場合は、所定の方法により処理要求の送信対象の名前サーバが選択される。例えば、アクセス可能な名前サーバから任意のものを選択する方法、予め処理要求を送信する名前サーバを固定する方法、予め処理要求を送信する名前サーバに優先順位を付けておき、優先順位に基づいて名前サーバを決定する方法などである。ここで、最初に処理要求を送信するように選択された名前サーバは、名前サーバ３であるとして説明する。
【００４６】
名前サービスプロバイダ１４は、名前サーバ３を選択した後、クライアントプログラム１２から送られた処理要求を、通信手段１１及びネットワーク２を介して名前サーバ３に対してのみ送信する（ステップＡ４）。なお、名前サーバ４がアクセス可能な名前サーバであったとしても、名前サービスプロバイダ１４は、名前サーバ４に対して処理要求を送信しない。二つの名前サーバ３，４の名前データベース３２，４２内の情報はどちらも同じであり、かつクライアントプログラム１２から送られた処理要求は名前空間の変更を伴わない。このため、名前サーバ３，４の名前空間の同一性も保持されるので、名前サーバ４に処理要求を送信する必要がないからである。
【００４７】
このように、名前サービスプロバイダ１４が名前サーバ３に処理要求を送信することにより、クライアント１から処理要求が名前サーバ３に送信されたことになる。
【００４８】
名前サーバ３において、通信手段３１は、クライアント１から送信された処理要求を受信すると、受信した処理要求を名前サービス提供手段３３に送る。名前サービス提供手段３３は、名前データベース３２に格納された情報に基づいて、アクセスしてきたクライアント１からの処理要求に対する処理を実行する。そして、名前サービス提供手段３３は、処理の実行結果である戻り値や例外などの処理結果を通信手段３１及びネットワーク２を介してクライアント１に送信する。クライアント１の通信手段１１は、名前サーバ３から送信された処理結果を受信し、受信した処理結果を名前サービスプロバイダ１４に送る。
【００４９】
名前サーバ３に何らかの障害が発生している場合もある。この場合、クライアント１の通信手段１１は、名前サーバ３にアクセスできない。通信手段１１は、名前サーバ３に障害が発生しており、処理要求を名前サーバ３に送信できなかった場合、名前サーバ３に対して通信（アクセス）に失敗したこと名前サービスプロバイダ１４に通知する。
【００５０】
名前サービスプロバイダ１４は、名前サーバ３からの処理要求に対する処理結果（戻り値や例外など）、または通信手段１１からの通信の失敗通知のいずれかを受け取る。名前サービスプロバイダ１４は、受け取ったデータが通信の失敗通知であるかどうかについて判断する（ステップＡ５）。
【００５１】
名前サービスプロバイダ１４は、受け取ったデータが通信の失敗通知ではなく、名前サーバ３からの処理結果であると判断した場合（ステップＡ５のＮｏ）、受け取った処理結果をクライアントプログラム１２に送り（ステップＡ７）、一連の処理を終了する。
【００５２】
一方、名前サービスプロバイダ１４は、受け取ったデータが通信の失敗通知であると判断した場合（ステップＡ５のＹｅｓ）、名前サーバ３へのアクセスが不可能であることを認識する。そして、名前サービスプロバイダ１４は、名前サービス管理情報１３の名前サーバ３についての情報をアクセス不可能に更新する（ステップＡ６）。
【００５３】
次に、名前サービスプロバイダ１４は、ステップＡ２の処理に戻って、名前サービス管理情報１３を参照して、アクセス可能な名前サーバがまだ存在するかどうかについて調べる。このとき、上記したように、名前サービス管理情報１３には、名前サーバ３がアクセス不可能であるとされているため、名前サービスプロバイダ１４は、名前サーバ３についてアクセス可能であると判断しない。
【００５４】
名前サーバ４がアクセス不可能である場合、名前サービスプロバイダ１４は、アクセス可能な名前サーバが存在しないと判断する（ステップＡ２のＮｏ）。そして、名前サービスプロバイダ１４は、上記した場合と同様に、クライアントプログラム１２に全ての名前サーバ３，４の接続が不可能であることを通知し（ステップＡ８）、一連の処理を終了する。
【００５５】
一方、名前サーバ４がアクセス可能である場合、名前サービスプロバイダ１４は、アクセス可能な名前サーバが存在すると判断する（ステップＡ２のＹｅｓ）。そして、名前サービスプロバイダ１４は、処理要求を送信する名前サーバとして名前サーバ４を選択する（ステップＡ３）。名前サービスプロバイダ１４は、名前サーバ４を選択した後、クライアントプログラム１２から送られた処理要求を、通信手段１１及びネットワーク２を介して名前サーバ４に対してのみ送信する（ステップＡ４）。
【００５６】
その後、名前サービスプロバイダ１４は、上記した場合と同様に、名前サーバ４からの処理結果または通信の失敗通知のいずれかを受け取る。名前サービスプロバイダ１４は、受け取ったデータが通信の失敗通知であるかどうかについて判断する（ステップＡ５）。
【００５７】
名前サービスプロバイダ１４は、受け取ったデータが通信の失敗通知ではなく、名前サーバ４からの処理結果であると判断した場合（ステップＡ５のＮｏ）、受け取った処理結果をクライアントプログラム１２に送り（ステップＡ７）、一連の処理を終了する。また、名前サービスプロバイダ１４は、受け取ったデータが通信の失敗通知であると判断した場合（ステップＡ５のＹｅｓ）、名前サーバ４へのアクセスが不可能であることを認識する。そして、名前サービスプロバイダ１４は、名前サービス管理情報１３の名前サーバ４についての情報をアクセス不可能に更新する（ステップＡ６）。
【００５８】
さらに、名前サービスプロバイダ１４は、ステップＡ２の処理に戻って、名前サービス管理情報１３を参照して、アクセス可能な名前サーバが存在するかどうかについて調べる。このとき、上記したように、名前サービス管理情報１３には、名前サーバ３，４がアクセス不可能であるとされている。従って、名前サービスプロバイダ１４は、アクセス可能な名前サーバは存在しないと判断する（ステップＡ２のＮｏ）。そして、名前サービスプロバイダ１４は、名前サーバへの接続が不可能であることをクライアントプログラム１２に通知して（ステップＡ８）、一連の処理を終了する。
【００５９】
（２）名前空間の変更を伴う処理の場合
図３は、名前空間の変更を伴う処理が行われる場合の名前サービスプロバイダの動作を説明するためのフローチャートである。
【００６０】
まず、クライアント１において、クライアントプログラム１２は、利用者のマシン操作に応じて、名前サービスへの処理要求（リクエスト）を名前サービスプロバイダ１４に送る。ここで、処理要求は、バインド・アンバインドのような名前空間の変更を伴う処理を要求するものである。
【００６１】
名前サービスプロバイダ１４は、クライアントプログラム１２から送られた処理要求を受け取ると、クライアントプログラム１２から送られた処理要求の内容を確認（判断）する（ステップＢ１）。処理要求の内容を確認は、上記したように、処理要求のメソッドの名前や、処理要求中の名前空間の変更を伴う処理か否かに関する情報などに基づいて行われる。
【００６２】
次に、名前サービスプロバイダ１４は、名前サービス管理情報１３を参照して、アクセス可能な名前サーバが存在するかどうかについて調べる（ステップＢ２）。このとき、図１の例では、名前サーバ３，４のいずれもアクセス可能である場合、名前サーバ３，４のいずれか一方がアクセス可能である場合、また名前サーバ３，４のいずれもアクセス不可能である場合がある。
【００６３】
名前サーバ３，４のいずれもアクセス不可能であると判断した場合、名前サービスプロバイダ１４は、アクセス可能な名前サーバが存在しないと判断する（ステップＢ２のＮｏ）。そして、名前サービスプロバイダ１４は、クライアントプログラム１２に全ての名前サーバ３，４への接続が不可能であることを通知し（ステップＢ８）、一連の処理を終了する。
【００６４】
一方、名前サーバ３，４のいずれもアクセス可能であると判断した場合、または名前サーバ３，４のいずれか一方がアクセス可能であると判断した場合は、名前サービスプロバイダ１４は、アクセス可能な名前サーバが一つ以上存在すると判断する（ステップＢ２のＹｅｓ）。そして、名前サービスプロバイダ１４は、クライアントプログラム１２から送られた処理要求を、通信手段１１及びネットワーク２を介して、名前サービスシステム内に存在するアクセス可能な全ての名前サーバ対して送信する（ステップＢ３）。
【００６５】
このように、システム内の全ての名前サーバに処理要求を送信する理由は、クライアントプログラム１２から送られた名前空間の変更を伴う処理であるので、システム内の全ての名前サーバの名前空間を変更させることによって、名前空間の同一性を保持する必要があるためである。なお、名前サービスプロバイダ１４は、アクセス不可能である名前サーバに対しては処理要求を送信できない。この場合、処置要求が送信されなかった名前サーバの名前空間は、他の名前サーバの名前空間と同一ではなくなってしまう。このような場合は、後述するように、名前空間の修復が行われる（図４参照）。
【００６６】
ここで、アクセス可能な名前サーバは、名前サーバ３，４であると判断されたものとして説明する。このように、名前サービスプロバイダ１４がアクセス可能な全ての名前サーバ３，４に処理要求を送信することにより、クライアント１から処理要求が名前サーバ３，４に送信されたことになる。
【００６７】
名前サーバ３，４において、通信手段３１，４１は、クライアント１から送信された処理要求を受信すると、受信した処理要求を名前サービス提供手段３３，４３に送る。名前サービス提供手段３３，４３は、名前データベース３２，４２に格納された情報に基づいて、アクセスしてきたクライアント１からの処理要求に対する処理を実行する。そして、名前サービス提供手段３３，４３は、処理の実行結果である戻り値や例外などの処理結果を通信手段３１，４１及びネットワーク２を介してクライアント１に送信する。クライアント１の通信手段１１は、名前サーバ３，４から送信された処理結果を受信し、受信した処理結果を名前サービスプロバイダ１４に送る。
【００６８】
名前サーバ３，４に何らかの障害が発生している場合もある。この場合、クライアント１の通信手段１１は、名前サーバ３，４にアクセスできない。通信手段１１は、名前サーバ３，４に障害が発生しており、処理要求を名前サーバ３，４に送信できなかった場合、名前サーバ３，４に対して通信（アクセス）に失敗したことを名前サービスプロバイダ１４に通知する。
【００６９】
このように、名前サービスプロバイダ１４は、名前サーバからの処理要求に対する処理結果（戻り値や例外など）、または通信手段１１からの通信の失敗通知のいずれかを受け取る。ここで、図１の例では、名前サーバ３，４のいずれからも処理結果がクライアント１に送信された場合が考えられる。また、一方の名前サーバ（３または４）から処理結果がクライアント１に送信され、他方の名前サーバ（４または３）に対しての通信が失敗であった場合が考えられる。さらに、名前サーバ３，４のいずれに対しての通信も失敗であった場合も考えられる。
【００７０】
名前サービスプロバイダ１４は、通信手段１１から送られる処理結果または通信の失敗通知のいずれかのデータを受け取る度に、受け取ったデータが通信手段１１からの通信の失敗通知であるかどうかについて判断する（ステップＢ４）。名前サービスプロバイダ１４は、通信の失敗通知を受け取った場合、通信の失敗である名前サーバについての名前サービス管理情報１３を、アクセス不可能に更新する（ステップＢ５）
【００７１】
次に、名前サービスプロバイダ１４は、受け取った全てのデータのうち一つでも名前サーバからの処理結果が含まれているどうかについて判断する（ステップＢ６）。そして、名前サービスプロバイダ１４は、一つでも名前サーバからの処理結果を受け取った場合は、受け取った処理結果をクライアントプログラム１２に送り（ステップＢ７）、一連の処理を終了する。一方、名前サービスプロバイダ１４は、一つも名前サーバからの処理結果を受け取らなかった場合は、全ての名前サーバへの接続が不可能であることをクライアントプログラム１２に通知し（ステップＢ８）、一連の処理を終了する。
【００７２】
具体的には、名前サーバ３，４のいずれからも処理結果がクライアント１に送信された場合、次のような処理が名前サービスプロバイダ１４によって行われる。名前サービスプロバイダ１４は、受け取ったデータがいずれも通信の失敗通知でないと判断する（ステップＢ４のＮｏ）。そして、名前サービスプロバイダ１４は、名前サービス管理情報１３のデータ更新処理（ステップＢ５）を行わずに、次の処理に移行する。
【００７３】
次に、名前サービスプロバイダ１４は、受け取ったデータがいずれも名前サーバ３，４からの処理結果であると判断する（ステップＢ６のＹｅｓ）。そして、名前サービスプロバイダ１４は、受け取った名前サーバ３，４からの処理結果のいずれか一つをクライアントプログラム１２に送る（ステップＢ７）。そして、名前サービスプロバイダ１４は、一連の処理を終了する。
【００７４】
なお、名前サーバ３，４からの処理結果はいずれも同じである。従って、名前サーバ３，４からの処理結果のいずれか一つを選択する方法としては、どのような方法であってもよい。例えば、先に受け取った処理結果を選択する方法、任意に選択する方法、優先順位に基づいて選択する方法などである。
【００７５】
また、一方の名前サーバ（３または４）から処理結果がクライアント１に送信され、他方の名前サーバ（４または３）に対しての通信が失敗であった場合、次のような処理が名前サービスプロバイダ１４によって行われる。名前サービスプロバイダ１４は、他方の名前サーバ（４または３）に対しての通信の失敗通知を受け取ることにより（ステップＢ４のＹｅｓ）、当該他方の名前サーバ（４または３）へのアクセスが不可能であることを認識する。名前サービスプロバイダ１４は、名前サービス管理情報１３の他方の名前サーバ（４または３）についての情報をアクセス不可能に更新する（ステップＢ５）。
【００７６】
次に、名前サービスプロバイダ１４は、一方の名前サーバ（３または４）からの処理結果を受け取ることにより、一つでも処理結果を受け取ったと判断する（ステップＢ６のＹｅｓ）。名前サービスプロバイダ１４は、受け取った処理結果をクライアントプログラム１２に送る（ステップＢ７）。そして、一連の処理を終了する。
【００７７】
さらに、名前サーバ３，４のいずれに対しての通信も失敗であった場合、次のような処理が名前サービスプロバイダ１４によって行われる。名前サービスプロバイダ１４は、名前サーバ３，４に対しての通信の失敗通知を受け取ることにより、名前サーバ３，４へのアクセスが不可能であることを認識する（ステップＢ４のＹｅｓ）。そして、名前サービスプロバイダ１４は、名前サービス管理情報１３の名前サーバ３，４についての情報をアクセス不可能に更新する（ステップＢ５）。
【００７８】
次に、名前サービスプロバイダ１４は、受け取ったデータがいずれも通信の失敗通知であったため、一つも処理結果を受け取ることができなかったと判断する（ステップＢ６のＮｏ）。名前サービスプロバイダ１４は、全ての名前サーバへの接続が不可能であることをクライアントプログラム１２に通知し（ステップＢ８）、一連の処理を終了する。
【００７９】
なお、ステップＢ２の処理において、名前サービスプロバイダ１４が、アクセス可能な名前サーバが一つ（名前サーバ３または４）であると判断した場合も、上記したようなステップＢ３〜Ｂ８の処理が行われる。従って、重複する動作の説明を省略する。
【００８０】
（３）名前空間が不一致の場合
複数の名前サーバ３，４を多重化して、一つの名前サービスをクライアント１に提供するための前提として、名前サービスシステム内の全ての名前サーバ３，４の名前空間は、完全に同一であることが必要である。
【００８１】
しかし、システム内の名前サーバ３，４の名前空間が同一でなくなる場合も生じ得る。例えば、一方の名前サーバに対してアクセス不可能であるときに、他方の名前サーバの名前データベースに対してのみ名前空間の変更を伴う処理が行われた場合である。また、全ての名前サーバに処理要求が送信されたが、一方の名前サーバに対しての通信が失敗となって、他方の名前サーバに対してのみ名前空間の変更を伴う処理が行われた場合である。さらに、名前サーバ自体や名前データベースに故障などの障害が発生して、名前データベースの情報が失われてしまう場合や、人間（管理者など）のミス操作によって名前データベースの情報が失われてしまう場合なども考えられる。
【００８２】
そこで、本発明の名前サービスシステムでは、各名前サーバにおいて名前空間の不整合が発生した場合には、複数の名前サーバが自動的に名前空間を修復して同一にするように動作する。以下、名前サービスシステムによる名前空間の修復動作について説明する。
【００８３】
図４は、名前空間の修復が行われる場合の本発明の名前サービスシステムの動作を説明するためのフローチャートである。各名前サーバ３，４の名前サービス情報修復手段３４，４４は、各名前サーバ３，４における名前空間の不整合が発生している状態を認識する（ステップＣ１）。
【００８４】
名前空間の不整合の認識は、その不整合が生じるケースに応じて、例えば次のように行われる。一方の名前サーバに対してアクセス不可能であるときに、他方の名前サーバの名前データベースに対してのみ名前空間の変更を伴う処理が行われた場合、名前空間の不整合が生じる。この場合、クライアント１の名前サービスプロバイダ１４は、アクセス不可能であった名前サーバを「情報が失われた名前サーバ」とみなす。そして、名前サービスプロバイダ１４は、名前サーバ間において名前データベースの情報の不一致が発生したことを認識する。
【００８５】
この場合、名前サービスプロバイダ１４は、「情報が失われた名前サーバ」に対して、当該名前サーバがアクセス可能となったとき、名前空間の不整合が生じたことを通知する。名前サーバの名前サービス情報修復手段は、名前サービスプロバイダ１４からの通知によって、名前空間の不整合を認識する。なお、名前サービス情報修復手段は、アクセス可能となったとき、名前空間の不整合が生じていないかどうかを名前サービスプロバイダ１４に問い合わせ、問い合わせの結果に応じて名前空間の不整合を認識するようにしてもよい。
【００８６】
また、全ての名前サーバに処理要求が送信されたが、一方の名前サーバに対しての通信が失敗となって、他方の名前サーバに対してのみ名前空間の変更を伴う処理が行われた場合、名前空間の不整合が生じる。この場合、クライアント１の名前サービスプロバイダ１４は、一方の名前サーバに対しての通信の失敗通知を受け取ることにより、通信が失敗であった名前サーバを「情報の失われた名前サーバ」とみなす。そして、名前サービスプロバイダ１４は、名前サーバ間において名前データベースの情報の不一致が発生したことを認識する。
【００８７】
名前サービスプロバイダ１４は、「情報が失われた名前サーバ」に対して、当該名前サーバがアクセス可能となったとき、名前空間の不整合が生じたことを通知する。名前サーバの名前サービス情報修復手段は、名前サービスプロバイダ１４からの通知によって、名前空間の不整合を認識する。なお、名前サービス情報修復手段は、名前空間の不整合が生じていないかどうかを名前サービスプロバイダ１４に問い合わせ、問い合わせの結果に応じて名前空間の不整合を認識するようにしてもよい。
【００８８】
また、名前サーバにおいて、クライアント１から送信された名前空間の変更を伴う処理要求に対応する処理を実行し、処理結果をクライアント１に返送する。この際に、通信手段によりエラーが返された場合、クライアント１側の通信タイムアウト処理などによって当該名前サーバは「情報が失われた名前サーバ」とみなされてしまう。この場合、名前サーバは、自身を「情報が失われた名前サーバ」であるとみなす。そして、名前サービス情報修復手段は、名前空間の不整合を認識する。
【００８９】
また、名前サーバが故障などの障害が発生していた場合に、名前サーバが障害から復旧したとき、また操作ミスなどが発生したときに、自身を「情報が失われた名前サーバ」であるとみなす。そして、名前サービス情報修復手段は、名前空間の不整合を認識する。
【００９０】
次に、クライアント１によって「情報が失われた」とみなされ、または自身で「情報の失われた」とみなした名前サーバは、名前空間の不整合を認識すると、名前データベース内の修復に必要な情報の提供を受ける名前サーバを決定する（ステップＣ２）。以下、修復に必要な情報の提供を受ける「情報が失われた名前サーバ」を情報提供先の名前サーバと呼び、修復に必要な情報を提供する名前サーバを情報提供元の名前サーバと呼ぶことにする。
【００９１】
情報提供先の名前サーバは、例えば、クライアント１に対してアクセス可能な名前サーバを問い合わせて、クライアント１の名前サービス管理情報１３を参照して任意の名前サーバを情報提供元として決定してもよい。また、情報提供先の名前サーバは、システム内の他の全ての名前サーバと通信確認して、アクセス可能な名前サーバの中から任意の名前サーバを情報提供元として決定してもよい。なお、図１の例では、名前サーバが二つしかないので、自動的に情報提供元の名前サーバが決定される。ここで、情報提供先の名前サーバを名前サーバ３とし、修復に必要な情報を提供する情報提供元の名前サーバを名前サーバ４として説明する。
【００９２】
情報提供先の名前サーバ３の名前サービス情報修復手段３４は、各名前サーバ３，４の名前空間の修復中に名前空間が不用意に変更されてしまうのを防止するために、システム内の他の全ての名前サーバ（図１では名前サーバ４）に対して、クライアント１からのアクセスを受け付けないようにするロック要求を送信する（ステップＣ３）。システム内の他の全ての名前サーバの名前サービス情報修復手段は、情報提供先の名前サーバ３から送信されたロック要求を受信すると、名前サービス提供手段にロックをかけて、名前空間の修復に必要な情報を送受信するためのアクセス以外のいかなるアクセスも禁止させる（ステップＣ４）。
【００９３】
次に、情報提供先の名前サーバ３の名前サービス情報修復手段３４は、情報提供元の名前サーバ４に対して、修復に必要な情報の提供を要求する情報提供要求を、通信手段３１及びネットワーク２を介して送信する（ステップＣ５）。情報提供元の名前サーバ４の名前サービス情報修復手段４４は、情報提供先の名前サーバ３の名前サービス情報修復手段３４から送信された情報提供要求を受信すると、自身の名前データベース４２に格納されている全ての情報（すなわち修復に必要な情報）を、通信手段４１及びネットワーク２を介して名前サーバ３に対して送信する（ステップＣ６）。
【００９４】
情報提供先の名前サーバ３の名前サービス情報修復手段３４は、情報提供元の名前サーバ４の名前サービス情報修復手段４４から送信された名前データベース４２に格納された全ての情報を受信すると、受信した情報に基づいて、名前データベース３２に格納された情報を修復する（ステップＣ７）。このようにして、名前サーバ３の名前データベース３２の情報が、他の名前サーバの名前データベースの情報と同一となって、復旧することになる。
【００９５】
情報提供先の名前サーバ３の名前サービス情報修復手段３４は、名前データベース３２の情報の修復が完了すると、システム内の他の全ての名前サーバ（図１では名前サーバ４）に対して、通信手段１１及びネットワーク２を介してロック解除要求を送信する（ステップＣ８）。システム内の他の全ての名前サーバの名前サービス情報修復手段は、情報提供先の名前サーバ３から送信されたロック解除要求を受信すると、受信したロック解除要求に従ってロックを解除して、クライアント１からのアクセス（処理要求）を受け付ける（ステップＣ９）。
【００９６】
以上のように、本実施の形態では、同一の名前空間を備えた複数の名前サーバ３，４が設けられる。また、クライアント１の名前サービスプロバイダ１４は、クライアントプログラム１２から名前サービスの処理要求があった場合、名前サービス管理情報１３に基づいて複数の名前サーバ３，４のアクセスの可否を判断し、アクセス可能な名前サーバにアクセスして処理要求を送信する。このように構成によれば、複数の名前サーバ３，４によって提供される名前サービスを、あたかも一つの名前サービスのようにクライアントプログラム１２側に認識させることができる。その結果、複数の名前サーバ３，４を容易に多重化させることができ、名前サーバの耐障害性を向上させることができる。
【００９７】
また、名前サービスプロバイダ１４は、通信手段１１からの通信の失敗通知によって、名前サーバへのアクセスに失敗したことを認識した場合、アクセスに失敗した名前サーバについての名前サービス管理情報１３を更新するとともに、アクセス可能な他の名前サーバにアクセスして処理要求を送信する。このような構成によれば、名前サービスプロバイダ１４において、現在、複数の名前サーバのいずれにアクセス可能であるかどうかについて名前サービス管理情報１３に基づいて容易に認識することができるようになる。また、名前サービスプロバイダ１４は、名前空間の変更を伴わない処理についての処理要求を確実にアクセス可能な名前サーバに送信することができるようになる。
【００９８】
また、名前空間の変更を伴う処理についての処理要求がクライアントプログラム１２からあった場合、名前サービスプロバイダ１４は、アクセス可能な全ての名前サーバにアクセスして処理要求を送信する。このような構成によれば、名前空間の変更を伴う処理が実行される場合でも、多重化された複数の名前サーバ３，４の名前空間の同一性を保持することができる。
【００９９】
また、名前サービスプロバイダ１４は、通信手段１１からの通信の失敗通知によって、名前空間の変更を伴う処理の処理要求を送信する際、名前サーバへのアクセスに失敗したことを認識した場合、アクセスに失敗した名前サーバについての名前サービス管理情報１３を更新する。このような構成によれば、上記したように、名前サービスプロバイダ１４において、現在、複数の名前サーバのいずれにアクセス可能であるかどうかについて名前サービス管理情報１３に基づいて容易に認識することができるようになる。
【０１００】
また、名前サーバ３，４の名前サービス情報修復手段３４，４４において、複数の名前サーバにおける名前空間の不整合の発生を認識し、他の名前サーバの名前データベースから修復に必要な情報を取得し、取得した修復に必要な情報に基づいて、他の名前サーバの名前空間と整合させるように自己の名前データベース内の情報を自動的に修復する。このような構成によれば、複数の名前サーバの名前空間の不整合が生じたとしても、直ちに各名前サーバの名前空間の情報を整合させて同一にすることができる。
【０１０１】
また、名前サービス情報修復手段３４，４４は、他の名前サーバの名前データベースから修復に必要な情報を取得する際に、多重化された全ての名前サーバに対してロック要求を送信しクライアント１とのアクセスを禁止させる。このような構成によれば、名前データベースの修復の最中に名前空間が変更されて、名前空間の同一性が保持できなくなるのを防止することができる。
【０１０２】
さらに、複数の名前サーバ３，４に対するアクセスを管理する名前サービスプロバイダ１４はクライアント１内部にプログラムとして設けられているので、名前サービスの処理時の実行速度が向上し、また、利用者においては、名前サービスプロバイダ１４のプログラムを簡単にクライアント１にインストールして導入することができる。
【０１０３】
なお、上記の実施の形態では、図２のステップＡ５及び図３のステップＢ４において、名前サービスプロバイダ１４が通信手段１１から通信の失敗通知を受け取ることにより、所定の名前サーバへのアクセス不可能を判断していた。そして、図２のステップＡ６及び図３のステップＢ５において、名前サービスプロバイダ１４がアクセス不可能と判断した名前サーバについての名前サービス管理情報１３をアクセス不可能に更新していた。
【０１０４】
この場合において、名前サービス管理情報１３におけるアクセス不可能とされている名前サーバの情報をアクセス可能に更新する処理は、例えば次のように行われる。アクセス不可能であった名前サーバがアクセス可能となった場合には、名前サーバ側からアクセス可能であることが名前サービスプロバイダ１４に通知される。そして、名前サービスプロバイダ１４は、名前サーバ側からの通知により名前サーバがアクセス可能となったと認識する。そして、名前サービスプロバイダ１４は、名前サービス管理情報１３のアクセス可能となった名前サーバについての情報をアクセス可能に更新する。
【０１０５】
実施の形態２．
図５は、本発明の名前サービスシステムの実施の形態２の構成を示すブロック図である。図１に示したように、実施の形態１では、２台の名前サーバ３，４によって多重化されていたが、図５に示すように、複数台の名前サーバ３，４・・・ｎを設けて多重化してもよい。
【０１０６】
名前サーバｎは、任意の台数番目の名前サーバである。名前サーバｎは、名前サーバ３，４と同様に、通信手段ｎ１、名前データベースｎ２、名前サービス提供手段ｎ３及び名前サービス情報修復手段ｎ４を備えている。名前サーバｎは、名前サーバ３，４と同様に、ネットワーク２と接続され、クライアント１及び他の名前サーバ３，４と通信を行うことができる。なお、名前サーバｎの各部ｎ１〜ｎ４の構成は、図１に示した名前サーバ３，４の各部３１，４１〜３４，４４の構成と同様であるため、重複する説明を省略する。
【０１０７】
なお、図５に示す名前サーバｎ以外の構成は、図１に示した構成と同様であるため、同一符号を付すことにより重複する説明を省略する。また、図５に示す実施の形態２の名前サービスシステムの動作についても、実施の形態１で説明した場合と同様であるため、重複する説明を省略する。
【０１０８】
このように、本実施の形態では、名前サーバ３，４・・・ｎが複数台設けられているので、名前サービスシステムの耐障害性を一層向上させることができる。
【０１０９】
なお、上記の実施の形態１，２では、名前サービスプロバイダ１４がクライアント１内部に設けられていた。しかし、このような構成に限られず、クライアント１と名前サービスプロバイダとが別構成とされてもよい。すなわち、名前サービスプロバイダがサーバ側によってネットワーク２上に設けられてもよい。この場合、クライアント１のクライアントプログラム１２は、ネットワーク２上の名前サービスプロバイダにアクセスして名前サービスを利用することになる。
【０１１０】
【発明の効果】
以上のように、本発明では、名前サービスの処理要求があったときに、処理要求が名前空間の変更を伴わないものである場合、複数の名前サーバのアクセスの可否を判断し、アクセス可能な名前サーバにアクセスして処理要求を送信し、名前空間の変更を伴うものであった場合、アクセス可能な全ての名前サーバにアクセスして処理要求を送信する。かかる構成によれば、複数の名前サーバを容易に多重化して用いることができ、名前サーバの耐障害性を向上させることができる。
【図面の簡単な説明】
【図１】  本発明の名前サービスシステムの実施の形態１の構成を示すブロック図である。
【図２】  名前空間の変更を伴わない処理が行われる場合の名前サービスプロバイダの動作を説明するためのフローチャートである。
【図３】  名前空間の変更を伴う処理が行われる場合の名前サービスプロバイダの動作を説明するためのフローチャートである。
【図４】  名前空間の修復が行われる場合の本発明の名前サービスシステムの動作を説明するためのフローチャートである。
【図５】  本発明の名前サービスシステムの実施の形態２の構成を示すブロック図である。
【符号の説明】
１  クライアント
１１  通信手段
１２  クライアントプログラム
１３  名前サービス管理情報（管理情報格納手段）
１４  名前サービスプロバイダ（サーバ管理手段）
２  ネットワーク
３，４・・・ｎ  名前サーバ
３１，４１・・・ｎ１  通信手段
３２，４２・・・ｎ２  名前データベース（データベース）
３３，４３・・・ｎ３  名前サービス提供手段
３４，４４・・・ｎ４  名前サービス情報修復手段
【図１】
0004092947.tif 000002
【図２】
0004092947.tif 000003
【図３】
0004092947.tif 000004
【図４】
0004092947.tif 000005
【図５】
0004092947.tif 000006