(57)【要約】クライアントを分散サービスに登録する。例えば、ローカルサイトのクライアントと、多数のリモートサイトにおける多数の分散サービスとを含むネットワークコンピューティング環境で、この方法は実行できる。この方法は、一つ以上のリモートサイトにおいて一つ以上の分散サービスのネットワークへの接続を確認すること（pinging）を含む。一つ以上の分散サービスの中の一つの分散サービスからメッセージを受信する。そのメッセージは、最適なリモートサイトを指定する。その方法は、最適なリモートサイトにおいて分散サービスに登録することを更に含む。
2009518883.tif 000002
【特許請求の範囲】
【請求項１】
ローカルサイト（１０２）におけるクライアント（１０６）と、多数のリモートサイト（１０８、１１２、１１６）における多数の分散サービス（１２０、１２１、１２２、１２４、１３０）とを含むネットワークコンピューティング環境（１００）において、前記クライアントを前記分散サービスに登録する方法であって、
一つ以上のリモートサイトにおいて一つ以上の分散サービスのネットワークへの接続を確認すること（２０１）、
前記一つ以上の分散サービスの中の一つの分散サービスからメッセージを受信することであって、前記メッセージが最適なリモートサイトを指定すること（２０４）、および、
前記最適なリモートサイトにおいて分散サービスに登録すること（２０６）
を含むことを特徴とする方法。
【請求項２】
前記ネットワークへの接続を確認することは、前記クライアントが前記最適なリモートサイトを指定するメッセージを受信することをサポートするという指示を送信することを含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記指示は、フラグを含むことを特徴とする請求項２に記載の方法。
【請求項４】
前記最適なリモートサイトは、他のサイトのインデックスと比較することができるインデックスによって最適なリモートサイトであると決定され、前記インデックスは、前記最適なリモートサイトに物理的に近接した前記クライアントの一つ、前記クライアントを前記最適なリモートサイトに接続するリンクの金銭的なコスト、前記リンクの信頼性、前記リンクの待ち時間と性能、ユーザの好み、前記リンクのセキュリティ、ネットワーク機器、管理コスト、前記リンクの回線容量、および、前記リンクの競合使用のうちの少なくとも一つを使用することにより計算されることを特徴とする請求項１に記載の方法。
【請求項５】
前記最適なリモートサイトが、前記クライアントのＩＰアドレスを参照して前記ローカルサイトを確認することにより決定されることを特徴とする請求項１に記載の方法。
【請求項６】
前記最適なリモートサイトにおける前記分散サービスが、ドメインコントローラを含むことを特徴とする請求項１に記載の方法。
【請求項７】
前記分散サービスから受信した前記メッセージが、ＵＤＰメッセージであることを特徴とする請求項１に記載の方法。
【請求項８】
一つ以上のリモートサイトにおける一つ以上の分散サービスのネットワークへの接続を確認することが、前記クライアントと同じサイトにおける分散サービスにコンタクトを最初に試みた後で行われることを特徴とする請求項１に記載の方法。
【請求項９】
最適なリモートサイトを示す前記メッセージを受信しない場合、分散サービスを発見する無作為なネットワーク接続確認方法に戻ることをさらに含むことを特徴とする請求項１に記載の方法。
【請求項１０】
ローカルサイト（１０２）におけるクライアント（１０６）と、多数のリモートサイト（１０８、１１２、１１６）における多数の分散サービス（１２０、１２１、１２２，１２４、１３０）とを含むネットワークコンピューティング環境（１００）において、リモートサイトにおける分散サービスから、前記ローカルサイトにおける前記クライアントに最適なリモートサイトの指示を提供する方法であって、
前記クライアントからネットワークへの接続の確認を受信すること（４０２）、
前記クライアントについての情報と、前記クライアントを前記最適なリモートサイトへ接続するリンクについての情報とに基づいて前記最適なリモートサイトを決定すること（３０４）、および、
前記クライアントにメッセージを送信することであって、前記メッセージは前記最適なリモートサイトを指定すること（３０６）
を含むことを特徴とする方法。
【請求項１１】
前記ネットワークへの接続の確認は、前記クライアントが前記最適なリモートサイトを指定するメッセージを受信することをサポートすることを示すフラグを含むことを特徴とする請求項１０に記載の方法。
【請求項１２】
前記最適なリモートサイトを決定することは、前記最適なリモートサイトのインデックスを他のサイトのインデックスと比較することを含み、前記インデックスは、前記クライアントと前記最適なリモートサイトとの物理的な近接、前記クライアントを前記最適なリモートサイトに接続するリンクの金銭的なコスト、前記リンクの信頼性、前記リンクの待ち時間と性能、ユーザの好み、前記リンクのセキュリティ、ネットワーク機器、管理コスト、前記リンクの回線容量、および、前記リンクの競合使用のうち少なくとも一つを使用して計算されることを特徴とする請求項１０に記載の方法。
【請求項１３】
前記方法は、前記最適なリモートサイトの前記インデックスを計算することをさらに含むことを特徴とする請求項１２に記載の方法。
【請求項１４】
前記方法は、前記最適なリモートサイトの計算されたインデックスを受信することをさらに含むことを特徴とする請求項１２に記載の方法。
【請求項１５】
前記クライアントについての前記情報は、前記クライアントのＩＰアドレスを含むことを特徴とする請求項１０に記載の方法。
【請求項１６】
前記最適なリモートサイトにおける前記分散サービスは、ドメインコントローラを含むことを特徴とする請求項１０に記載の方法。
【請求項１７】
メッセージを前記クライアントに送信することは、ＵＤＰメッセージを送信することを含むことを特徴とする請求項１０に記載の方法。
【請求項１８】
クライアントシステム（１０６）と、分散サービス（１０４、１２０、１２１、１２２、１２４、１３０）とを含むネットワークコンピューティング環境（１００）において、コンピュータシステム（４２０）は分散サービスに登録するように構成されており、前記コンピュータシステムは、
プログラムモジュール（４３７）を実行するように構成されたプロセッサ（４２１）、および、
データ（４３８）とプログラムモジュール（４３７）とを記憶するように構成されたストレージ媒体（４２２、４３９）を含み、前記ストレージ媒体は、
一つ以上のリモートサイトにおいて一つ以上の分散サービスのネットワークへの接続を確認すること、
一つ以上の分散サービスの中の一つの分散サービスから最適なリモートサイトを指定するメッセージを受信すること、および、
前記最適なリモートサイトにおける分散サービスに登録すること
を実施するように構成された一つ以上のプログラムモジュール（４３７）を含むことを特徴とするコンピュータシステム。
【請求項１９】
前記一つ以上のプログラムモジュールが、前記コンピュータシステムは最適なサイト情報を処理することができるという指示を送信するように更に構成されていることを特徴とする請求項１８に記載のコンピュータシステム。
【請求項２０】
前記一つ以上のプログラムモジュールが、最適なリモートサイトを指示するメッセージを受信しない場合、分散サービスを発見する無作為なネットワーク接続確認方法に戻るように更に構成されていることを特徴とする請求項１８に記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クライアントを分散サービスに登録する方法およびそのシステムに関する。
【背景技術】
【０００２】
現代のコンピュータシステムは、ネットワーク環境を介したデータやリソースのやり取りを考慮している。例えば、現代のコンピュータネットワークは、相互に接続されたクライアントコンピュータを多数含んでいる。コンピュータネットワークは更に、リソースも含んでいる。そのようなリソースとは、それに限られたものではないが例えば、クライアントがアクセス可能なデータを記憶するためのファイルサーバ、クライアントがプリンタにアクセスできるようにするプリントサーバ、ネットワーク上の他のクライアントやリソースが利用できるようにしたデータを記憶するためのクライアントコンピュータ上の共有記憶装置がある。
【０００３】
ネットワークの大きさは様々である。ローカルエリアネットワーク（ＬＡＮ）には比較的小規模なネットワークがある。ＬＡＮの例として、ネットワークが一軒の家や業務サイトにあるホームネットワークや、小規模ビジネスネットワークがある。大規模ネットワークにはワイドエリアネットワーク（ＷＡＮ）がある。ＷＡＮの一般的な例として、ユビキタスインターネットがある。別の例としては、ＬＡＮを相互に連結してエンタプライズネットワークにする例もある。森は、エンタプライズネットワークに似ている。森は、中央で管理されたシステムの一群である。
【０００４】
ＬＡＮを互いに連結してエンタプライズネットワークを形成する場合、ハブの使用によりブランチオフィスを接続して、エンタプライズネットワークとなる接続性を提供する。通常は、エンタプライズネットワークは、エンタプライズネットワーク全域に置かれている多数の分散サービスを含んでいる。エンタプライズネットワーク上のクライアントは、分散サービスの一つに登録することができる。クライアントが登録している分散サービスは、ルーチン機能の提供により、登録されているクライアントからエンタプライズネットワーク内の他のクライアントにメッセージを送ることができ、他のクライアントから登録されているクライアントへメッセージを送ることもできる。分散サービスにはネットワークのセキュリティを提供する機能もある。例えば、分散サービスには、ネットワーク上の通信を認証して、ネットワーク上に送信された未認証および／または悪質な通信が伝送されることを防止することができる機能もある。
【０００５】
エンタプライズネットワークはサイトの集合として整備され、各サイトはネットワークアドレスの範囲である。例えば、サイトはインターネットプロトコル（ＩＰ）アドレスの集合と定義できる。ＩＰアドレスは、しばしば地理的および／または論理的な近似に基づいて割当てられる。このようにして、類似したＩＰアドレス、詳細には同じサイト内でＩＰアドレスを持ったクライアントと分散サービスは、多くの場合、地理的および／または論理的にもお互いに近いものになる。クライアントへの通信の多くあるいは全ては、クライアントが登録している分散サービスを通過するので、クライアントと同じサイトで分散サービスにクライアントを登録するのが便利であることが多い。クライアントと分散サービスを密接に近似させることの利点の一つは、クライアントとやり取りする各々の通信は、遠隔地にある分散サービスに到達するために多数のネットワーク接続を経由して分散サービス迄の経路を決める必要がないので、ネットワークのトラフィック全体が減ることである。
【０００６】
残念ながら、クライアントがクライアントと同じサイトの分散サービスに登録したり、あるいは通信したりできない状況が起こりうる。その場合は、クライアントは登録できる別のサイトの別の分散サービスをランダムに選択することができる。それによって、当然のことながら地理的および／または論理的にクライアントからはるかに離れた分散サービスにクライアントを登録することになる。
【０００７】
本発明に係る主題は、どのような不都合でも解決でき、あるいは上記の環境内でのみ動作する実施形態に限定されるものではない。むしろその背景は、本明細書に記載したある実施形態が実行できる技術分野の例を説明するために提供されているにすぎない。
【０００８】
上記並びに他の利点や特徴が得られる方法を説明するために、添付の図面で説明されている実施形態を参照することにより、上記では簡単に説明した主題をより具体的に説明する。添付の図面は一般的な実施形態を表し、本発明の範囲を限定するものではないことを理解して、添付の図面を使用して追加の特徴および詳細とともに、実施形態を記述し、説明する。
【０００９】
実施形態の一つは、クライアントを分散サービスに登録する方法に関する。この方法は例えば、クライアントがローカルサイトにいて、多数のリモートサイトに多数の分散サービスがある場合を含むネットワークコンピューティング環境で実行することができる。この方法は、一つ以上のリモートサイトで一つ以上の分散サービスにネットワーク接続を確認することを含む。一つのメッセージは、一つ以上の分散サービスの中の一つの分散サービスから受信する。そのメッセージは、最適なリモートサイトを指定する。この方法は更に、最適なリモートサイトで分散サービスに登録することも含む。
【００１０】
ここで詳細を説明する別の実施形態は、リモートサイトの分散サービスからローカルサイトのクライアントに最適なリモートサイトの表示を提供する方法を含む。この方法は例えば、クライアントがローカルサイトにいて、多数のリモートサイトに多数の分散サービスがある場合を含むネットワークコンピューティング環境で実行することができる。この方法は、クライアントからネットワーク接続を確認することを含む。最適なリモートサイトは、クライアントについての情報およびクライアントを最適なリモートサイトに接続するリンクについての情報に基づいて決定される。この方法は更に、クライアントにメッセージを送信することも含む。そのメッセージは、最適なリモートサイトを指定する。
【００１１】
この要約は、単純な形式で概念の選択を紹介するために提供するものであり、以下の発明の詳細な説明にてさらに詳しく説明される。この要約は、本発明の主要な特徴や本質的な特徴を確認するためのものではなく、特許請求の範囲の決定の補助に使用するものである。
【００１２】
さらなる特徴や利点については以下に説明するが、その説明から明白なものもあり、ここでの教示を実行することにより分かるものもある。添付の特許請求の範囲の中で特に指摘している機器との組合せにより、本発明の特徴と利点を実現して入手することができる。本発明の特徴は、以下の説明と添付の特許請求の範囲により十分に明白になり、以下に説明する発明を実行することにより理解することができる。
【発明を実施するための最良の形態】
【００１３】
本実施形態は、以下に詳細を述べるように、様々なコンピュータハードウェアを含む、特殊目的あるいは汎用目的のコンピュータを備える。
【００１４】
ここで述べる一実施形態は、エンタプライズネットワーク上の分散サービスが、分散サービスが最適なリモートサイトであるクライアントから離れたサイトにあるというクライアントへの指示を提供することができるシステムに関する。クライアントは、クライアントと同じサイトで分散サービスに登録することができなければ、最適なリモートサイトで分散サービスに登録することを試みる。最適なリモートサイトは、クライアント毎に決定される。例えば、エンタプライズネットワーク上の各クライアントは、エンタプライズネットワーク上の他のクライアントの最適なリモートサイトと同じもしくは同じではない最適なリモートサイトを有する。クライアントの特性、リモートサイトのシステムの特性、クライアントと最適なリモートサイトとを相互接続する一つ以上のリンクの特性などの様々な要素を参照することにより、あるサイトが最適なサイトであることが決定される。例えば、クライアントとリモートサイトを相互接続する各々のリンクに、エンタプライズネットワーク上の他のリンクに匹敵するインデックス番号を割当てることができる。各々のインデックス番号は、定型的な方法でインデックス番号に到着するように適用された様々な特性を参照することにより決定される。定型方法は例えば、リンクの信頼性、１分当たりの経済的コストもしくはリンク上のデータの尺度、リンクの待ち時間と性能、ユーザの嗜好、リンクのセキュリティ、ネットワーク機器、運用コスト、リンクの回線容量、リンク使用時の競合などの要因を参照することを含む。エンタプライズネットワーク内の分散サービスは、クライアントの特定のサイトへのインデックス数を計算する能力、およびリンクのインデックス数へのリンクを含むテーブルを含む。クライアントと様々なサイト間のリンクのために計算されたインデックス数を比較することにより、分散サービスは最適なリモートサイトが最適なインデックス数のサイトであるということを示しているクライアントにメッセージを返すことができるというように対比することができる。
【００１５】
図１を参照すると、より詳細な例が、エンタプライズネットワーク１００に関して示されている。エンタプライズネットワーク１００は、サイトＡ、サイトＢ、サイトＣ、およびサイトＤを含む多数のサイトを含むことが示される。ローカルサイトＡ  １０２は、エンタプライズネットワーク１００上のクライアントに提供することができる様々なサービスを含む分散サービス（Distributed Service:DS）１０４を含む。図１は更に、ローカルサイトＡ  １０２上のクライアント１０６を示す。ローカルサイトＡ  １０２は、リンク１１０によりリモートサイトＢ  １０８に接続される。リモートサイトＢ  １０８は、リンク１１４によりリモートサイトＤ  １１２に接続される。リモートサイトＢ  １０８は、リンク１１８によりリモートサイトＣ  １１６にも接続される。リモートサイトＤ  １１２は、分散サービス１２１を含むことが示されている。リモートサイトＣは、分散サービス１２０、分散サービス１２２、および分散サービス１２４を含む多数の分散サービスを含むことが示されている。
【００１６】
通常動作時には、クライアント１０６は、クライアント１０６のローカルサイトＡ  １０２で分散サービス１０４に登録することを好む。しかし場合によっては、分散サービス１０４にはクライアントが登録できないこともある。クライアント１０６は、最初にローカルサイトＡ  １０２で分散サービスに登録しようとする。クライアント１０６がローカルサイトＡ  １０２でクライアントを登録するために利用できる分散サービスが無いことを認識すると、クライアント１０６は、二番目に近いサイトで分散サービスに登録するために二番目に近いサイトを見つけようとする。
【００１７】
図１に示す例では、エンタプライズネットワーク１００の中でクライアント１０６は、ｐｉｎｇ１２６を分散サービス１２０に送信する。一実施形態では、ネットワークへの接続を確認するサイトとしての分散サービス１２０の選択は、エンタプライズネットワーク１００内で分散サービスの履歴を参照することによりクライアントが任意に行うこともできる。クライアント１０６がｐｉｎｇ１２６を分散サービス１２０に送信すると、短時間待って分散サービス１２０が応答できるようにする。分散サービス１２０が応答しなければ、クライアント１０６は、エンタプライズネットワーク１００上の他の分散サービスのネットワークの接続を確認する。但し、この例では、分散サービス１２０はクライアント１０６からｐｉｎｇ１２６に応答できると想定している。ｐｉｎｇ１２６の一部として送信されるメッセージには、分散サービス１２０は、クライアント１０６が分散サービスにコンタクトするのに最適なリモートサイトの指示をどこに返すかというメッセージを使用して、クライアント１０６がサポートして通信を行う能力を有するということを分散サービス１２０に指示することが含まれる。例えば、クライアント１０６は、ｐｉｎｇ１２６の一部となるメッセージにより、最適なリモートサイトの指示を受信する能力があることを示すフラグを含むことができる。
【００１８】
分散サービス１２０は、このフラグを参照することにより、クライアント１０６の最適なリモートサイトの指示を含むメッセージ１２８を、クライアント１０６に送信すべきかどうかを決定することができる。別の実施形態では、分散サービス１２０はｐｉｎｇ１２６の中で送付されたフラグは参照せず、エンタプライズネットワーク１００内のクライアントと分散サービスは全て最適なリモートサイト情報を受信する機能をサポートすることを仮定する。一実施形態では、クライアント１０６によりフラグを、分散サービス１２０によりフラグへの参照を提供することは、簡単に下位互換性（backward compatibility）を提供し、最適なリモートサイト情報を要求する機能を含むシステムと、最適なリモートサイト情報を提供する機能を含むシステムとを、そのような機能を含んでいないシステムと一緒に使用することができるようにする。
【００１９】
分散サービス１２０、あるいは図１に示す他の分散サービスのような分散サービスは、クライアント１０６と、エンタプライズネットワーク１００中のローカルサイトＡ  １０２、リモートサイトＢ  １０８、リモートサイトＤ  １１２、リモートサイトＣ  １１６等の様々なサイトとの間のリンクのためのインデックス数を決定するのに使用されうるインデックスを含むマッピングテーブルを作成および／もしくは記憶する機能を含む。例えば図１に示すように、ローカルサイトＡ  １０２とリモートサイトＢ  １０８との間のリンク１１０は、１０００のインデックスコストを有する。この数字は、リンクの信頼性、リンクコスト、サイト間の物理的な近接等の要因に基づいたインデックスコストを決定するアルゴリズムの結果を表す。このインデックス値１０００は、エンタプライズネットワーク１００内の分散サービスの各々に記憶されているコストマッピングテーブルに記憶することができる。図１に示されるように、リモートサイトＢ  １０８とリモートサイトＤ  １１２との間のリンク１１４は、５００のコストインデックスを有する。図１に示されるように、リモートサイトＢ  １０８とリモートサイトＣ  １１６との間のリンク１１８は、１０００のコストインデックスを有する。
【００２０】
ここで一実施形態の機能について説明すると、クライアント１０６は、分散サービス１２０にｐｉｎｇ１２６を送信する。ｐｉｎｇ１２６は、クライアント１０６の位置情報を含むことができる。例えば、ｐｉｎｇ１２６は、クライアント１０６のＩＰアドレスを含むことができる。クライアント１０６のＩＰアドレスは、クライアントがローカルサイトＡ  １０２のメンバーであることを確認するために使用できる。クライアント１０６がローカルサイトＡ  １０２にあることを識別すると、分散サービス１２０は、クライアント１０６に二番目に近いサイトを計算することができる。例えば、分散サービス１２０は、コストインデックステーブルを参照して、クライアント１０６が１０００のコストでリモートサイトＢ  １０８にアクセス可能であることを決定する。クライアント１０６は、１５００のコストでリモートサイトＤ  １１２にアクセス可能である。クライアント１０６は、２０００のコストでリモートサイトＣにアクセス可能である。このようにして、分散サービス１２０は、リモートサイトＢがクライアント１０６に一番近い、または最適なリモートサイトであることを示すメッセージ１２８をクライアント１０６に返す。その結果、クライアントは、リモートサイトＢ  １０８において分散サービス１３０に登録することができる。
【００２１】
一実施形態では、クライアント１０６が最適なリモートサイトにおいて分散サービスに登録することができなければ、この場合リモートサイトＢ  １０８のことであるが、クライアント１０６は、ドメインコントローラのリストに含まれる任意のドメインコントローラに、クライアント１０６が登録するというスキームに戻ってもよい。
【００２２】
別の一実施形態では、分散サービス１２０は、一番近いサイトを順位付けしたリストを提供することができ、クライアント１０６が非常に最適なリモートサイトであるリモートサイトＢ  １０８において分散サービスに接続できない場合、クライアント１０６は、２番目に最適なリモートサイトにおいて分散サービスに接触しようと試みることができる。例えば、分散サービス１２０は、リモートサイトＢ  １０８がクライアント１０６に（１０００のインデックスで）接続するための非常に最適なリモートサイトであり、リモートサイトＤ  １１２が２番目に適したリモートサイト（１５００のインデックス）であり、リモートサイトＣ  １１６がリモートサイトＤ  １１２の次に適したリモートサイトである（２０００のインデックス）というメッセージ１２８を返すことができる。このため、クライアント１０６がリモートサイトＢ  １０８において分散サービス１３０に登録することができない場合、分散サービスは、リモートサイトＤ  １１２にて分散サービス１２１に登録しようと試みることができる。クライアント１０６がリモートサイトＤにて分散サービスに登録することができない場合、クライアント１０６はリモートサイトＣ  １１６にて、分散サービス１２０、１２２、または１２４に登録しようと試みる。
【００２３】
上述した実施形態は一般的な用語で説明されているが、ある特定の実施形態も実装できることを認識するべきである。例えば、上述した実施形態は、ワシントン州レドモンド在の本件特許出願人から入手可能なサーバ上で利用できるアクティブディレクトリ技術を使用して、アクティブディレクトリ実施形態に実装可能である。例えば、先に説明した分散サービスは、ここではアクティブディレクトリフォレスト内のサイトにおいて、ドメインコントローラとして具体化することができる。
【００２４】
次に、図２を参照して、クライアントを分散サービスに登録する方法２００について説明する。方法２００は例えば、ローカルサイト上のクライアントと多数のリモートサイト上の多数の分散サービスを含むネットワークコンピューティング環境で実行可能である。方法２００は、一つ以上のリモートサイト上で一つ以上の分散サービスのネットワークへの接続を確認して（pinging）、最適なリモートサイト上で分散サービスを見つける（動作２０２）動作を含む。再度図１を参照すると、リモートサイトＣ  １１６上で分散サービス１２０のネットワークへの接続を確認するクライアント１０６の例が示されている。図１に示すように、クライアント１０６は、ｐｉｎｇ１２６をサイトＣ上の分散サービス１２０に送信する。一実施形態では、一つ以上のリモートサイト上の一つ以上の分散サービスのネットワークへの接続を確認すること（動作２０２）は、最適なリモートサイトを指定するメッセージを受け取ることを、クライアントがサポートするということを示すフラグを送信することを含むことができる。例えば、再度図１を参照すると、ｐｉｎｇ１２６はクライアント１０６が最適なリモートサイトの情報を受け取ることができることを示すフラグを含むことができる。分散サービス１２０が最適なリモートサイトの情報を配信する機能をサポートする場合、分散サービス１２０は、ｐｉｎｇ１２６を分析してクライアント１０６が最適なリモートサイトの情報を受信することを望んでいるか否かを判定することができる。
【００２５】
一実施形態では、一つ以上のリモートサイトにおける一つ以上の分散サービスのネットワークへの接続を確認すること（動作２０２）は、クライアントと同一のサイトにおける分散サービスにコンタクトしようとする最初の試みに引き続いて行うことができる。例えば、再度図１を参照すると、クライアント１０６は、ローカルサイトＡ  １０２にて分散サービス１０４に最初に登録しようとするかもしれない。分散サービス１０４が利用できない場合、または、クライアント１０６が分散サービス１０４にコンタクトできない場合、クライアント１０６は、リモートサイトＣ  １１６の分散サービス１２０にｐｉｎｇ１２６を送信する。
【００２６】
再度図２を参照すると、方法２００は、一つ以上の分散サービスの中の一つの分散サービスから、最適なリモートサイトを指定するメッセージを受信する動作をさらに含む（動作２０４）。一実施形態では、そのメッセージはＵＤＰメッセージであることもある。再度図１を参照すると、分散サービス１２０は、メッセージ１２８を送信することによりｐｉｎｇ１２６に応答している。メッセージ１２８は、クライアント１０６が属するサイトＡ  １０２から最適なリモートサイトを指定する情報を含むことができる。図１に示す例では、最適なリモートサイトはリモートサイトＢ  １０８である。図１に示す例では、ローカルサイトＡ  １０２とリモートサイトＢ  １０８を接続するリンクは、他のリモートサイト１１２、１１６へのリンクよりもインデックスが低いので、リモートサイトＢは最適なリモートサイトである。
【００２７】
前にも述べたように、インデックス数（index numbers）を使用して、ローカルサイトからリモートサイトへのリンクを比較することができる。従って、最適なリモートサイトは、他のサイトのインデックスと比較することができるインデックスにより、最適なリモートサイトであると決定されうる。インデックス数は、多くの因子（factor）を使用して計算されうる。例えばインデックスは、最適なリモートサイトへのクライアントの物理的な近接、クライアントと最適なリモートサイトを接続するリンクの経済的なコスト、リンクの信頼性、リンクの待ち時間と性能、ユーザの好み、リンクのセキュリティ、ネットワーク機器、管理コスト、リンクの回線容量、およびリンクの競合使用のうちの少なくとも一つを使用して計算できる。
【００２８】
上述のように、サイト間を接続するリンクのインデックスを計算するのに使用される要因の一つに、リンクの金銭的なコストがある。例えば、リンクの種類が異なれば、使用に関連する金銭的なコストも異なってくる。例えば、ダイヤルアップ接続、イーサネット（登録商標）直接接続、衛星接続、ＤＳＬ接続、無線接続等は、お互いに比較すれば金銭的なコストは異なっている。インデックス数が低い程、リンクがより最適であることを示す図１の例では、金銭的にコストがかからない接続は、リンクのインデックス数が低くなっている。
【００２９】
先に述べたように、インデックス数を計算するのに使用されるもう一つの要因は、クライアントを最適なリモートサイトに接続するリンクの信頼性である。一部の通信方式は、他の通信方式よりも信頼性が劣る場合がある。このため、より信頼性の高い通信方式は、リンクのインデックス数が低くなる。
【００３０】
更に、インデックス数を決定するのに使用される別の要因としては、リンクの待ち時間と性能がある。他のリンクよりも高速でデータを転送できるリンクもある。これは、リンクを作成するのに使用される技術の種類、リンク上のトラフィック量等、様々な理由によるものである。そのため、一実施形態では、高性能で待ち時間の小さいリンクは、インデックス数が低いということもある。
【００３１】
リンクのインデックスを決定するのに使用される別の要因は、リンクのセキュリティに関する。例えば、ある種のリンクは暗号化のレベルが高く、更に安全なものもある。大抵は、有線リンクのほうが無線リンクよりも安全である。ある種の無線暗号化の方が、他の無線暗号化よりも安全な場合もある。そのため、一実施形態では、より安全なリンクの方が、インデックス数が低い、もしくは多少最適で安全性の低いリンクを示すインデックスを持つこともある。
【００３２】
リンクのインデックス値を決定するのに使用される更に別の要因は、リンクの回線容量に関する。一実施形態では、リンクの回線容量（bandwidth）は、追加のクライアントにサービスできる回線容量のことをいう。このため、典型的な一実施形態では、リンクが全般的により高い回線容量を利用できても、そのリンクがネットワーク上の他のクライアントやサービスに専念してサービスを提供しているため利用できる回線容量が少ない場合、インデックスは、実際には高くなることもある。
【００３３】
リンクのインデックス値を決定するのに使用される更に別の要因は、リンクの競合使用（conflicting uses）に関する。例えば、様々な種類のネットワークトラフィックにサービスするために役立つリンクもあり、そのようなリンクは、そのような種類のネットワークトラフィック用に備えておくべきである。従って、そのリンクは、他のリンク上の他の通信よりも遮断されていることが望ましくない様々な種類のネットワーク通信に使用されるので、より高いインデックス値を受信することになる。
【００３４】
最適なリモートサイトは、クライアントのＩＰアドレスを参照してローカルサイトを確認することにより、決定することができる。例えば、再度図１を参照すると、クライアント１０６のＩＰアドレスは、クライアント１０６がローカルサイトＡ  １０２にいるという指示を提供できる。そのため、分散サービス１２０は、サイトＡ  １０２とエンタプライズネットワーク１００上の他のサイトを相互に連結するリンクを比較することにより、非常に最適なサイトを決定することができる。前述のように、サイトＡ  １０２からサイトＢ  １０８へのリンクのインデックス値は１０００である。サイトＡ  １０２をサイトＤ  １１２に相互連結するリンクのインデックス値は１５００である。サイトＡ  １０２をサイトＣ  １１６に相互連結するリンクのインデックス値は２０００である。このようにして、分散サービス１２０は、クライアント１０６の最適なサイトがサイトＢ  １０８であると決定することができる。
【００３５】
上記例では、特に、インデックス値の低い方がより最適な性質を持つことを示した。しかし、インデックス値の高い方がより最適である、またはリンクが最適であることを指示するのに、他のインデックス標識を使用するというシナリオも考えられる。従って、ここで説明した実施形態は、インデックス値が低いものだけがより最適なリンクを指示するという実施形態だけに限られない。
【００３６】
図２に示す方法２００は、最適なリモートサイトにおいて分散サービスに登録する動作をさらに含む（動作２０６）。従って、図１に示すように、クライアント１０６は、最適なサイトＢ  １０８にて分散サービス１３０に登録することができる。
【００３７】
方法２００は、最適なリモートサイトを示すメッセージが受信されない場合、分散サービスを発見する無作為なネットワーク接続確認方法（random pinging method）に戻ることをさらに含む。例えば、再度図１を参照すると、分散サービス１２０が非常に最適なサイトを指定するメッセージをサポートしていなければ、非常に最適なサイトを指示するメッセージ１２８をクライアント１０６が受信することはない。そのため、クライアント１０６は、クライアント１０６が登録する分散サービスを任意に選択するスキームに戻ることができる。別の実施形態では、クライアント１０６は、エンタプライズネットワーク内の他の分散サービスのネットワークへの接続を確認して、最適サイトの情報の配信をサポートしている分散サービスを発見する。
【００３８】
図３を参照して、クライアントへ最適なリモートサイトの指示を提供する方法３００について説明する。方法３００は、例えばローカルサイトにあるクライアントと、多数のリモートサイトにある多数の分散サービスを含むネットワークコンピューティング環境にて実行することができる。この方法は、クライアントからネットワークへの接続の確認を受信する動作を含む（動作３０２）。図１を参照すると、分散サービス１２０は、クライアント１０６からｐｉｎｇ１２６を受信する。前述のように、ｐｉｎｇ１２６は、クライアント１０６が最適なリモートサイトを特定するメッセージの受信をサポートすることを示すフラグを含む。
【００３９】
方法３００は更に、クライアントについての情報と、クライアントを最適なリモートサイトに接続するリンクについての情報とに基づいて、最適なリモートサイトを決定する動作を含む（動作３０４）。最適なリモートサイトを決定すること（動作３０４）は、最適なリモートサイトのインデックスと他のサイトのインデックスとを比較することを含む。インデックスは、クライアントと最適なリモートサイトとの物理的な近接、クライアントを最適リモートサイトに接続するリンクの経済的なコスト、リンクの信頼性、リンクの待ち時間と性能、ユーザの好み、リンクのセキュリティ、ネットワーク機器、管理コスト、リンクの回線容量、または、リンクの競合使用を利用して計算できる。一実施形態では、クライアントのＩＰアドレスを参照してローカルサイトを特定することにより、最適なリモートサイトを決定する。例えば、図１に示すように、クライアント１０６はサイトＡ  １０２のＩＰアドレス領域に対応するＩＰアドレスを持つことができる。
【００４０】
一実施形態では、方法３００は、最適なリモートサイトのインデックスを計算することを含む。この実施形態では、分散サービスは、サイト間を相互に接続するリンクを比較するのに使用するインデックス数を計算するための、プログラムモジュールもしくは他の機能を含む。プログラムモジュールは、例えば、前述したような入力情報を受け取り、その入力情報に基づいてインデックス数を計算するプログラムモジュールを含む。
【００４１】
別の実施形態では、方法３００は、最適なリモートサイトのインデックスの計算値を受信することを含む。例えば、エンタプライズネットワーク上の分散サービスは、エンタプライズネットワーク内のサイトを相互に接続するリンクのためのインデックス数を他のエージェントが提供するエンタプライズネットワーク上の、別のエージェントからインデックス数を受信する機能を含む。
【００４２】
図３に示す方法３００は、クライアントにメッセージを送信する動作を更に含んでおり、そのメッセージは、最適なリモートサイトを指定する（動作３０６）。図１および前記のように、分散サービス１２０は、クライアント１０６にメッセージ１２８を配信し、メッセージ１２８は最適なリモートサイトを指定する情報を提供する。例えば、図１に示す例では、メッセージ１２８は、クライアント１０６のための最適なリモートサイトがサイトＢ  １０８であると指定できる。一実施形態では、クライアントにメッセージを送信すること（動作３０６）は、ＵＤＰメッセージを送信することを含むこともある。
【００４３】
図４を参照すると、例示的なコンピュータシステム４２０が示されている。コンピュータシステム４２０は、分散サービスのネットワークへの接続を確認して最適なリモートサイトを発見する機能と、分散サービスに登録する機能とを含む。分散サービスは、個別のシステムとして表されているが、リモートコンピュータシステム４８３としてまとめて図４に示される。コンピュータシステム４２０はプロセッサ４２１を含む。プロセッサ４２１は、コンピュータが実行可能な命令で動作するように構成されている。例えば、プロセッサは、オペレーティングシステム４３５、並びにアプリケーションプログラム４３６およびその他のプログラムモジュール４３７を含む様々なプログラムモジュールの一部として、ＲＯＭ４２４内のＢＩＯＳ４２６に記憶されている命令を実行するように構成されている。これらのプログラムモジュールは、ハードディスク４３９のような不揮発性永続的ストレージ、または、それらを、プロセッサによる実行のためにシステムメモリ４２２にロードすることができる他の媒体に記憶することができる。
【００４４】
コンピュータシステム４２０は、前述のように、データやプログラムモジュールを記憶するように構成された記憶媒体を含む。例えば、アプリケーションプログラム４３６は、それらをシステムメモリ４２２のＲＡＭ４２５にロードすることができるハードドライブ４３９に記憶することができる。同様に、プログラムデータ４３８は、ハードドライブ４３９に格納され、システムメモリ４２２のＲＡＭ４２５に格納される。
【００４５】
ストレージ媒体は、一つ以上のリモートサイトにおける一つ以上の分散サービスのネットワークへの接続を確認するように構成された、一つ以上のプログラムモジュール４３７を含むことができる。プログラムモジュールは更に、一つ以上の分散サービスの中の一つの分散サービスからメッセージを受信するように構成されることができ、そのメッセージは最適なリモートサイトを指定する。一つ以上のプログラムモジュールは更に、最適なリモートサイトにおける分散サービスに登録するように構成されることができる。
【００４６】
一実施形態では、分散サービスは、ネットワークインタフェース４５３とネットワーク接続４５１を経由してコンピュータシステム４２０に接続される、リモートコンピュータシステム４８３によって表される。ネットワーク接続４５１は、現存している、あるいは将来存在する可能性がある様々なネットワーク接続のいかなるものでもよい。現存している接続には、Ｂｌｕｅｔｏｏｔｈ接続、有線および無線接続など、様々な接続が含まれる。しかしながら、実施形態は上述のネットワーク接続だけに限らず、他の未発見の接続とも機能する可能性がありえる。
【００４７】
一実施形態では、一つ以上のプログラムモジュール４３７は、コンピュータシステム４２０が最適なサイトの情報を処理できるという指示を送信するようにさらに構成されることもできる。別の実施形態では、プログラムモジュールは、最適なリモートサイトが受信されたということを示すメッセージがなければ、分散サービスを発見する無作為なネットワーク接続確認方法に戻るように構成されることもできる。
【００４８】
実施形態には、コンピュータで実行可能な命令もしくはコンピュータ上に記憶されるデータ構造を伝えるあるいは所有するためのコンピュータ読み取り可能媒体が含まれる。そのようなコンピュータ読み取り可能媒体は、汎用または特殊用途のコンピュータによりアクセスすることができるいかなる媒体でもよい。例として、これに限定はしないが、そのようなコンピュータ読み取り可能媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭあるいは他の光ディスクストレージ、磁気ディスクストレージあるいは他の磁気ストレージ装置、あるいはコンピュータ実行可能命令あるいはデータ構造の形式の望ましいプログラムのコーディング方法を実行または記憶するのに使用可能であり、汎用あるいは特殊用途のコンピュータによりアクセス可能な他の媒体である。情報がネットワークまたは他の通信接続（有線か無線、または有線および無線の組合せ）経由でコンピュータに転送または提供される場合、コンピュータは、その接続をコンピュータ読み取り可能媒体と見なす。したがって、そのような接続は、どれもコンピュータ読み取り可能媒体と呼ばれる。上記の組み合わせも、コンピュータ読み取り可能媒体の範囲に含められるべきである。
【００４９】
コンピュータ実行可能命令は、例えば、汎用コンピュータ、特殊用途コンピュータ、あるいは特殊用途処理装置に、ある機能または機能のグループを実施させる命令およびデータを含む。その内容は、構造的特徴および／または方法論的動作に特化した言語で記述されているが、添付の特許請求の範囲において定義されている内容は、上記の固有の特徴や動作には必ずしも限定されないことが理解されるはずである。むしろ、上記の固有な特徴や動作は、特許請求の範囲を実現する例示的な形式として開示されている。
【００５０】
本発明は、その趣旨と本質的な特性から逸脱することなく、他の固有の形式で実現することができる。説明されている実施形態はあらゆる面で例を示すものであり、制限するものではない。従って、本発明の範囲は、上記説明よりもむしろ添付の特許請求の範囲に示されている。特許請求の範囲と同等の意味と範囲であれば、あらゆる変更がその範囲に包含される。
【図面の簡単な説明】
【００５１】
【図１】エンタプライズネットワークを示す図である。
【図２】リモートサイトにおいて分散サービスに登録する方法を示す図である。
【図３】クライアントに、最適なリモートサイトを示すメッセージを通信する方法を示す図である。
【図４】一実施形態を実装することができるシステムを示す図である。
【図１】
2009518883.tif 000003
【図２】
2009518883.tif 000004
【図３】
2009518883.tif 000005
【図４】
2009518883.tif 000006
【国際調査報告】
2009518883.tif 000007
2009518883.tif 000008