(57)【要約】【課題】分散ファイルシステムのためのターゲットフェイルバックおよびターゲット優先度を決定するシステムおよび方法を提供する。【解決手段】コンピュータシステムは、サイトコストおよび／またはターゲット優先度に従ってソートされたソート済みターゲットリストからターゲットを選択することができる。次いで、コンピュータシステムは、設定ターゲットが、ソート済みリスト中のすべての利用可能なターゲットに比べて、より好ましいターゲットに関連付けられているかどうか判定し、そうでない場合、より好ましいターゲットにスイッチバックすることができる。【選択図】図２
2006107506.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータシステムにおいて、コンピュータのネットワーク中のファイルの場所を探す方法であって、
クライアントコンピュータから、サーバコンピュータのネットワーク中の少なくとも１つのサーバ上に位置するファイルの場所を要求することと、
前記要求されたファイルが位置している前記サーバコンピュータのネットワーク中の複数の場所を決定することと、
前記クライアントコンピュータに、それぞれが前記サーバコンピュータのネットワーク中の要求されたファイルの場所に対応する複数の参照を含むターゲットのリストを返すことと、
各個別ファイルの場所と前記クライアントコンピュータの間で前記要求されたファイルを検索するために、ターゲット情報に基づいて前記ターゲットのリストを有界集合にソートすることと、
前記有界集合の指示を前記クライアントコンピュータに提供することと
を含むことを特徴とする方法。
【請求項２】
ターゲット情報に基づいて前記ターゲットのリストを有界集合にソートすることは、各有界集合内の各ターゲットが前記個別有界集合中の他のターゲットと同じサイトコストに関連付けられるように前記ターゲットを有界集合に分けることを含めてサイトコストの評価に基づいて前記リストをソートすることをさらに含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記有界集合の指示を前記クライアントコンピュータに提供することは、ターゲットと前記クライアントコンピュータの間のコストを含む境界属性を提供することを含むことを特徴とする請求項１に記載の方法。
【請求項４】
各有界集合の境界は、少なくとも一部は、各ターゲットに関連付けられた前記サーバコンピュータの前記場所に基づくものであることを特徴とする請求項２に記載の方法。
【請求項５】
各有界集合の境界は、少なくとも一部は、各ターゲットに関連付けられた前記サーバコンピュータに関連付けられた健全性の指示に基づくものであることを特徴とする請求項２に記載の方法。
【請求項６】
前記ソートすることによって確定された順序で各ターゲットに繰り返しアクセスしようと試みることと、
試みに成功すると、正常にアクセスされた第１のターゲットとの接続を、後続のアクセス要求に使用される設定ターゲットとして確立することと
をさらに含むことを特徴とする請求項１に記載の方法。
【請求項７】
後続のアクセス要求を提供するのにより低いサイトコストに関連付けられたターゲットが利用可能であるかどうか判定することと、
より低いサイトコストのターゲットが利用可能である場合、前記設定ターゲットを前記より低いサイトコストのターゲットに変更することと
をさらに含むことを特徴とする請求項６に記載の方法。
【請求項８】
前記より低いサイトコストに関連付けられたターゲットが利用可能であるかどうか判定することは、前記ターゲットに付随するターゲットフェイルバックポリシーが適用され得るたびにより低いサイトコストに関連付けられたターゲットが利用可能であるかどうか判定することを含むことを特徴とする請求項７に記載の方法。
【請求項９】
前記ターゲットフェイルバックポリシーは前記ターゲットのリストに関連付けられることを特徴とする請求項８に記載の方法。
【請求項１０】
前記ターゲットフェイルバックポリシーは、前記ターゲットのリスト中の各個別ターゲットに関連付けられ得るルートに関連付けられることを特徴とする請求項８に記載の方法。
【請求項１１】
除外ポリシーに基づいて前記ターゲットのリストから少なくとも１つのターゲットを取り除くことをさらに含むことを特徴とする請求項１に記載の方法。
【請求項１２】
ターゲット情報に基づいて前記ターゲットのリストを有界集合にソートすることは、各ターゲットに関連付けられた優先度設定に従って前記ターゲットをソートすることをさらに含むことを特徴とする請求項１に記載の方法。
【請求項１３】
前記ソートすることは、各有界集合内の各ターゲットが、前記個別有界集合中の他のターゲットと同じサイトコストに関連付けられるように前記ターゲットのリストを有界集合に分けることをさらに含み、前記優先度設定に従ってソートすることは、関連するターゲット優先度設定に従って各有界集合内の各ターゲットを順序付けすることをさらに含むことを特徴とする請求項１２に記載の方法。
【請求項１４】
前記各ターゲットに関連付けられた優先度設定に従って前記ターゲットをソートすることは、大域的に高いターゲット優先度設定を持つターゲットを前記順序付けされたリスト中の前記個別有界集合の先頭に配列し、大域的に低いターゲット優先度設定を持つターゲットを前記順序付けされたリスト中の前記個別有界集合の末尾に配列することをさらに含むことを特徴とする請求項１２に記載の方法。
【請求項１５】
ネットワークに動作可能に結合されたサーバコンピュータであって、前記アクティブディレクトリサーバコンピュータは、ターゲットを求める要求に応答して１つまたは複数のクライアントコンピュータにターゲットのリストを提供するように動作可能であり、各ターゲットは前記ネットワーク中のコンピュータ上に位置するファイルに対応し、前記ファイルは前記１つまたは複数のクライアントコンピュータによって要求され、前記アクティブディレクトリサーバコンピュータは、各ターゲットに関連付けられたサイトコストの評価に従って前記ターゲットのリストをソートするようにも動作可能であり、前記サイトコストは、前記ターゲットに対応するサーバコンピュータから前記ターゲットを要求する前記クライアントコンピュータにファイルを検索することに伴うコストを示すものであるサーバコンピュータと、
前記ネットワークに結合された他のコンピュータからのファイルを要求し、検索するように動作可能な、前記ネットワークに結合された少なくとも１つのクライアントコンピュータと、
前記アクティブディレクトリサーバコンピュータによって提供される前記ターゲットの少なくとも１つに対応する、要求されたファイルを持つ少なくとも１つのサーバコンピュータと
を備えることを特徴とする分散コンピューティングシステム。
【請求項１６】
前記アクティブディレクトリサーバコンピュータは、さらに、個別有界集合中の各ターゲットが前記個別有界集合中の他のターゲットと同じサイトコストに関連付けられると共に、有界集合が、前記有界集合中の各ターゲットに関連付けられた前記サイトコストに従ってソートされるように前記ターゲットのリストを有界集合にソートするように動作可能であることを特徴とする請求項１５に記載の分散コンピュータシステム。
【請求項１７】
前記サーバコンピュータは、さらに、各ターゲットに関連付けられたターゲット優先度設定に従って各有界集合内の各ターゲットをソートするように動作可能であることを特徴とする請求項１６に記載の分散コンピュータシステム。
【請求項１８】
前記クライアントコンピュータは、さらに、第１の利用可能なターゲットを設定ターゲットに指定し、その後、前記設定ターゲットが、前記ターゲットのリスト中の他のターゲットに比べて、最低のサイトコストに関連付けられているかどうか判定し、そうでない場合、より低いサイトコストを持つ利用可能なターゲットに切り換え、前記より低いサイトコストを持つ前記ターゲットを前記設定ターゲットに指定するように動作可能であることを特徴とする請求項１７に記載の分散コンピュータシステム。
【請求項１９】
前記クライアントコンピュータは、さらに、第１の利用可能なターゲットを設定ターゲットに指定し、その後、前記設定ターゲットが、前記ターゲットのリスト中の他のターゲットに比べて、より好ましい優先度に関連付けられているかどうか判定し、そうでない場合、より好ましい優先度を持つ利用可能なターゲットに切り換え、前記より好ましい優先度を持つ前記ターゲットを前記設定ターゲットに指定するように動作可能であることを特徴とする請求項１７に記載の分散コンピュータシステム。
【請求項２０】
データ構造が格納されているコンピュータ可読媒体であって、前記データ構造は、
それぞれがサーバコンピュータに関連付けられたターゲットのグループに属するターゲットを格納する第１のフィールドと、
クライアントコンピュータと前記サーバコンピュータの間の関係を指示する情報を格納する第２のフィールドと、
前記ターゲットのグループの境界を示す値を格納する第３のフィールドと
を備えることを特徴とするコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、コンピュータシステムに関し、より詳細には、分散ファイルシステムのためのターゲットフェイルバックおよびターゲット優先度を決定する改善されたシステムおよび方法に関する。
【背景技術】
【０００２】
分散ファイルシステム（Ｄｆｓ）とは、ネットワーク上のデータを位置指定し、それを管理するネットワークサーバコンポーネントである。Ｄｆｓを使って、異なるコンピュータ上のファイルを単一の名前空間に一元化することができ、ゆえに、ユーザが、ネットワーク上の複数のファイルサーバおよびファイルサーバ共有資源(share)の単一の、階層的ビューの構築が可能になる。１台のサーバコンピュータ、または１組のサーバコンピュータの状況において、Ｄｆｓは、パーソナルコンピュータシステムにおけるハードディスクでのファイルシステムにたとえることができる。例えば、ディスク上のセクタの集合体への一様な名前によるアクセスを提供するファイルシステムの役割と同様に、Ｄｆｓは、サーバ、共有資源、およびファイルの集合体での一様な命名規則およびマッピングを提供することができる。ゆえに、Ｄｆｓは、ファイルサーバおよびそれらの共有資源を、大企業がその情報リソースをより効率よく管理し、使用することを可能にする１つの論理的な階層に編成することができる。
【０００３】
さらに、Ｄｆｓは、単一のファイルプロトコルに制限されず、使用されているファイルクライアントに関係なく、そのクライアントがネイティブサーバおよび共有資源をサポートすることを条件として、サーバ、共有資源、およびファイルのマッピングをサポートすることができる。Ｄｆｓは、異種のサーバボリュームおよび共有資源への名前透過性も提供することができる。Ｄｆｓを介して、管理者は、そのコンテンツが組織の広域ネットワーク（ＷＡＮ）全体に分散されている単一の階層的ファイルシステムを構築することができる。
【０００４】
以前においては、国際命名規則（ＵＮＣ）を用いて、ユーザまたはアプリケーションがファイル情報にアクセスするために物理サーバおよび共有資源を指定することが必要とされた。例えば、ユーザまたはアプリケーションは、＼＼Ｓｅｒｖｅｒ＼ｓｈａｒｅ＼Ｐａｔｈ＼Ｆｉｌｅｎａｍｅを指定しなければならなかった。たとえＵＮＣが直接使用され得る場合であっても、ＵＮＣは、通常、さらにそれが＼＼Ｓｅｒｖｅｒ＼ｓｈａｒｅにマップされ得る、ｘ：などのドライブ名にマップされる。その点から、ユーザは、ユーザがアクセスしようとするデータにマップする指定変更されたドライブを越えてナビゲートすることが必要とされた。例えば、ユーザが特定のファイルにナビゲートするためには、ｃｏｐｙ  ｘ：＼Ｐａｔｈ＼Ｍｏｒｅ＿ｐａｔｈ＼．．．＼Ｆｉｌｅｎａｍｅなどが必要とされた。
【０００５】
ネットワークのサイズが拡大し、企業が、イントラネットなどのために、社内でも社外でも既存の記憶を使用し始めると、個々の共有資源への単一のドライブ名のマッピングは、十分に対応できなくなる。さらに、ユーザは、ＵＮＣ名を直接使用することはできるが、これらのユーザは、データが格納され得る場所の数の多さに圧倒されかねない。
【０００６】
Ｄｆｓは、サーバおよび共有資源の、より簡単で、容易にナビゲート可能な名前空間へのリンクを可能にすることによってこれらの問題を解決する。Ｄｆｓボリュームは、共有資源を他の共有資源に階層的に接続させる。Ｄｆｓは物理記憶を論理表現にマップするため、その純利益(net benefit)は、任意の数のファイルの物理位置がユーザおよびアプリケーションにとって透過的になることである。
【０００７】
さらに、ネットワークサイズが世界規模のネットワークのレベルにまで拡大すると、ネットワークからファイルを検索するのに関連する（ネットワーク時間、ネットワーク負荷などの点での）コストを低減するのに役立つように、同じ１つまたは複数のファイルのいくつかのコピーを、ネットワーク内のいくつかの異なる場所に位置させることができる。例えば、第１のサーバ位置の近くに位置する大規模ネットワークのユーザは、通常、それらのユーザの最も近くにあるサーバ上のファイルのコピーを使用する（すなわち、シアトルのユーザは、シアトルの近くに位置するレッドモンドという名前のサーバに最も近いと考えられる）。同様に、第２のサーバ位置の近くに位置する大規模ネットワークのユーザは、通常、それらのユーザの最も近くにある異なるサーバ上のファイルのコピーを使用する（すなわち、タイのユーザは、バンコクに位置するバンコクという名前のサーバに最も近いと考えられる）。ゆえに、ファイルを検索するサイトコスト（すなわち、クライアントとサーバの間の距離、サーバ分離の度合い、その他の物理的ネットワークパラメータを含むいくつかのネットワークパラメータの擬似任意(pseudo-arbitrary)の指示であるスカラ数）は、要求される１つまたは複数のファイルを持つ最も近くのサーバにアクセスすることによって最小限にすることができる。
【０００８】
ユーザがＤｆｓからファイルを検索しようとするとき、ユーザがそこからファイルを要求しているクライアントコンピュータは、要求されたファイルをどのように検索するか決定する。クライアントコンピュータは、要求された１つまたは複数のファイルの１つまたは複数の場所を獲得することを求める参照要求を出すことができる。参照は、要求側クライアントコンピュータと、要求された１つまたは複数のファイルが見つかり得るサーバコンピュータの間の相対パスとすることができる。クライアントコンピュータは、ローカルでは利用不能であると知られている１つまたは複数のファイルを要求することができ、いくつの異なる場所が要求されたファイルのコピーを提供し得るか判定することができる。通常、要求されたファイルを提供し得る場所を指示する何百または何千ものターゲット（すなわち、そのファイルへの相対パス）があり得る。したがって、参照要求に応答してクライアントコンピュータに返される参照応答は、通常、要求されたファイルを持つサーバおよび／または共有資源に対応するターゲットのリストを含む。
【０００９】
しかしながら、以前においては、クライアントコンピュータに返される参照応答は、ランダムな順序でリストされた識別ターゲットを含み、または、場合によっては、サイトコスト別にリストされた識別ターゲットも含むことができた。参照応答中の各ターゲットは、必ずしも、そのターゲットの直前または直後のターゲットとの関係を持つとは限らなかった。その結果、クライアントコンピュータは、ただ単に、ランダムに配列されたターゲットリストの先頭から、ターゲットが接続して応答するまで、リスト上の連続する各ターゲットと接続を確立しようする試みを開始し得るだけであった。
【００１０】
しかしながら、このランダム性に関連する問題は、第１の利用可能なターゲットが、実際には、文字通り世界の反対側に位置し得るということである。ゆえに、この第１の利用可能なターゲットと通信を行うサイトコストは、長期的には、相当に高く付き、望ましくないこともある。
【００１１】
しかしながら、ターゲットへの接続の連続性を保持することは、ある程度重要である。これは、「粘着性（ｓｔｉｃｋｉｎｇまたはｓｔｉｃｋｉｎｅｓｓ）」と呼ばれている。ゆえに、クライアントコンピュータのファイル要求を満たすことのできる第１の利用可能なターゲットが見つかると、通常は、その後のすべての参照および要求も、クライアントコンピュータのユーザが新しい参照を具体的に要求しない限り、そのターゲットに経路指定される。したがって、第１の利用可能なターゲットへの潜在的に高いサイトコストの接続が無期限に存続し、ますます多くのネットワークトラフィックおよび全体的ネットワークコストを生じることになり得る。
【発明の開示】
【発明が解決しようとする課題】
【００１２】
連続性を保持するためにクライアントコンピュータとサーバコンピュータの間の非効率な参照を維持する問題は、結果として高サイトコストの通信セッションを生じ得る。求められているのは、参照接続の連続性を保持すると同時に、参照接続のサイトコストを低減する方法である。
【課題を解決するための手段】
【００１３】
簡単にいうと、本発明は、参照応答として受け取られるターゲットを編成、格納し、分散ファイルシステムにおけるターゲットフェイルバックおよびフェイルバックのターゲット優先度を決定するシステムおよび方法を提供する。一実施形態では、ソート方法は、クライアントコンピュータから、コンピュータネットワーク中の１つまたは複数のコンピュータ上に位置するファイル、ディレクトリ、共有資源などの複数の場所（すなわちターゲット）を要求することを含み得る。次いで、Ｄｆｓサーバなどのコンピュータは、クライアントコンピュータに、それぞれがコンピュータネットワーク中の要求されたファイルまたはディレクトリの場所に対応する複数の参照を含むターゲットリストを返すことができる。さらに、このターゲットリストは、各個別ターゲットに関連付けられたサイトコストの評価に基づいてソートされ得る。
【００１４】
サーバコンピュータによって識別されたより低コストのターゲットが参照応答の先頭にソートされ得る。クライアントコンピュータは、より高コストのターゲットとの接続を確立しようと試みる前に、単に、より低コストのターゲットから始まる参照応答を論理的に構文解析するだけ試みられた接続に至ることができる。
【００１５】
ターゲットの優先順位を使用することを含む、そのようなソートシステムも実施され得る。より高い優先度のターゲットも参照応答の先頭にソートされ得る。さらに、参照応答は、サイトコストとターゲット優先度両方での措置(provision)を含むようにもソートされ得る。ゆえに、同等の関連サイトコストを持つターゲットのグループが、さらに、そのグループ内で、各ターゲットの個別関連ターゲット優先度に従ってソートされ得る。
【００１６】
本発明の別の実施形態では、参照応答として提供されるソート済みターゲットのリストを使用し得るターゲットフェイルバックおよびターゲット優先度ポリシーが実施され得る。したがって、コンピュータシステムは、クライアントコンピュータにおいて少なくとも１つの要求されたファイルまたはディレクトリを検索するために、サイトコストに従ってソートされたターゲットのリストからターゲットを選択し、それを設定ターゲットに指定することができる。次いで、コンピュータシステムは、設定ターゲットが、ソート済みリスト中のすべての利用可能なターゲットに比べて最低のサイトコストに関連付けられたものであるかどうか判定することができる。そうでない場合、システムは、その設定ターゲットより低いサイトコストに関連付けられた別のターゲットにフェイルバックし、その新しいターゲットを設定ターゲットに指定することができる。
【００１７】
他の利点は、以下の詳細な説明を図面と併せて読めば明らかになるであろう。
【発明を実施するための最良の形態】
【００１８】
（例示的動作環境）
図１に、本発明が実施され得る適当なコンピューティングシステム環境１００の一例を示す。コンピューティングシステム環境１００は、適当なコンピューティング環境の一例にすぎず、本発明の用途または機能の範囲についてのどんな限定を示唆するためのものでもない。また、コンピューティング環境１００は、例示的動作環境１００に示す構成要素のいずれか１つまたはそれらの組合せに関連するどんな依存関係または要件を有するものであるとも解釈すべきではない。
【００１９】
本発明は、他の多数の汎用または専用コンピューティングシステム環境または構成を用いて動作する。本発明と共に使用するのに適し得るよく知られているコンピューティングシステム、環境、および／または構成の例には、それだけに限らないが、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップ機器、タブレット機器、ヘッドレスサーバ、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラム可能家庭用電化製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、上記のシステムまたは機器のいずれかを含む分散コンピューティング環境などが含まれる。
【００２０】
本発明は、コンピュータにより実行される、プログラムモジュールなどのコンピュータ実行可能命令の一般的コンテキストで説明され得る。一般に、プログラムモジュールには、個々のタスクを実行し、または個々の抽象データ型を実施するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれる。本発明は、タスクが、通信ネットワークを介してリンクされたリモート処理装置により実行される分散コンピューティング環境でも実施され得る。分散コンピューティング環境では、プログラムモジュールは、メモリ記憶装置を含むローカルおよび／またはリモートのコンピュータ記憶媒体に位置し得る。
【００２１】
図１を参照すると、本発明を実施する例示的システムは、コンピュータ１１０の形で汎用コンピューティングデバイスを含む。コンピュータ１１０の構成要素には、それだけに限らないが、処理装置１２０、システムメモリ１３０、およびシステムメモリを含む様々なシステム構成要素を処理装置１２０に結合するシステムバス１２１が含まれ得る。システムバス１２１は、様々なバスアーキテクチャのいずれかを使用した、メモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含む数種類のバス構造のいずれでもよい。例をあげると、それだけに限らないが、そのようなアーキテクチャには、産業標準アーキテクチャ（ＩＳＡ）バス、マイクロチャネルアーキテクチャ（ＭＣＡ）バス、拡張ＩＳＡ（ＥＩＳＡ）バス、ビデオ電子装置規格化協会（ＶＥＳＡ）ローカルバス、およびメザニンバスとも呼ばれる周辺装置相互接続（ＰＣＩ）バスが含まれる。
【００２２】
コンピュータ１１０は、通常、様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ１１０によってアクセスされ得る任意の使用可能な媒体とすることができ、それには揮発性媒体と不揮発性媒体の両方、着脱式媒体と固定式媒体の両方が含まれる。例をあげると、それだけに限らないが、コンピュータ可読媒体には、コンピュータ記憶媒体および通信媒体が含まれ得る。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュールまたはその他のデータなどの情報を記憶するための任意の方法または技術で実施された、揮発性および不揮発性、着脱式および固定式の媒体が含まれる。コンピュータ記憶媒体には、それだけに限らないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）または他の光ディスク記憶、磁気カセット、磁気テープ、磁気ディスク記憶または他の磁気記憶装置、あるいは所望の情報を格納するのに使用でき、コンピュータ１１０によってアクセスされ得る他の任意の媒体が含まれる。通信媒体は、通常、コンピュータ可読命令、データ構造、プログラムモジュールまたはその他のデータを、搬送波や他の搬送機構などの変調データ信号として実施し、任意の情報配信媒体を含む。「変調データ信号」という用語は、その特性の１つまたは複数が、その信号に情報を符号化するような方式で設定または変更されている信号を意味する。例をあげると、それだけに限らないが、通信媒体には、有線ネットワークや直接配線接続などの有線媒体、および音響、ＲＦ、赤外線、その他の無線媒体などの無線媒体が含まれる。上記のいずれかの組合せも、コンピュータ可読媒体の範囲内に含めるべきである。
【００２３】
システムメモリ１３０は、読取り専用メモリ（ＲＯＭ）１３１やランダムアクセスメモリ（ＲＡＭ）１３２などの揮発性および／または不揮発性メモリの形でコンピュータ記憶媒体を含む。基本入出力システム（ＢＩＯＳ）１３３は、始動時などに、コンピュータ１１０内の諸要素間での情報転送を支援する基本ルーチンを含み、通常、ＲＯＭ１３１に格納される。ＲＡＭ１３２は、通常、処理装置１２０へ直ちにアクセス可能であり、かつ／または処理装置１２０によって現在操作されているデータおよび／またはプログラムモジュールを含む。例として、それだけに限らないが、図１に、オペレーティングシステム１３４、アプリケーションプログラム１３５、その他のプログラムモジュール１３６、およびプログラムデータ１３７を示す。
【００２４】
コンピュータ１１０は、他の着脱式／固定式、揮発性／不揮発性コンピュータ記憶媒体も含み得る。例にすぎないが、図１に、固定式、不揮発性磁気媒体との間で読取りまたは書込みを行うハードディスクドライブ１４１、着脱式、不揮発性磁気ディスク１５２との間で読取りまたは書込みを行う磁気ディスクドライブ１５１、およびＣＤ−ＲＯＭや他の光媒体などの着脱式、不揮発性光ディスク１５６との間で読取りまたは書込みを行う光ディスクドライブ１５５を示す。例示的動作環境で使用され得る他の着脱式／固定式、揮発性／不揮発性のコンピュータ記憶媒体には、それだけに限らないが、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、ソリッドステートＲＡＭ、ソリッドステートＲＯＭなどが含まれる。ハードディスクドライブ１４１は、通常、インターフェース１４０などの固定式メモリインターフェースを介してシステムバス１２１に接続され、磁気ディスクドライブ１５１および光ディスクドライブ１５５は、通常、インターフェース１５０などの着脱式メモリインターフェースによってシステムバス１２１に接続される。
【００２５】
前述の、図１に示す各ドライブおよびそれに関連するコンピュータ記憶媒体は、コンピュータ１１０のためのコンピュータ可読命令、データ構造、プログラムモジュールおよびその他のデータの記憶を提供する。図１では、例えば、ハードディスクドライブ１４１は、オペレーティングシステム１４４、アプリケーションプログラム１４５、その他のプログラムモジュール１４６、およびプログラムデータ１４７を格納するものとして示されている。これらのコンポーネントは、オペレーティングシステム１３４、アプリケーションプログラム１３５、その他のプログラムモジュール１３６、およびプログラムデータ１３７と同じでも、異なっていてもよいことに留意されたい。オペレーティングシステム１４４、アプリケーションプログラム１４５、その他のプログラムモジュール１４６、およびプログラムデータ１４７には、少なくともそれらが異なるコピーであることを示すために、図では異なる番号を付与してある。ユーザは、タブレットまたは電子ディジタイザ１６４、マイクロホン１６３、キーボード１６２、あるいは一般にマウス、トラックボール、タッチパッドなどと呼ばれるポインティングデバイス１６１などの入力装置を介してコンピュータ１１０にコマンドおよび情報を入力することができる。図１に示さない他の入力装置には、ジョイスティック、ゲームパッド、衛星パラボラアンテナ、スキャナ、あるいは、バイオメトリックセンサ、環境センサ、位置センサまたはその他の種類のセンサを備える装置を含むその他の装置が含まれ得る。上記その他の入力装置は、しばしば、システムバスに結合されたユーザ入力インターフェース１６０を介して処理装置１２０に接続されるが、パラレルポート、ゲームポート、ユニバーサルシリアルバス（ＵＳＢ）といった他のインターフェースおよびバス構造によっても接続され得る。モニタ１９１または他の種類の表示装置も、ビデオインターフェース１９０などのインターフェースを介してシステムバス１２１に接続される。モニタ１９１は、タッチスクリーンパネルなどと一体化されることもある。モニタおよび／またはタッチスクリーンパネルは、タブレット型パーソナルコンピュータなどのように、コンピューティングデバイス１１０が組み込まれている筐体に物理的に結合され得ることに留意されたい。また、コンピューティングデバイス１１０などのコンピュータは、スピーカ１９４やプリンタ１９５など他の周辺出力装置も含むことができ、それらは、出力周辺インターフェース１９３などを介して接続され得る。
【００２６】
コンピュータ１１０は、リモートコンピュータ１８０など、１つまたは複数のリモートコンピュータへの論理接続を使用したネットワークで接続された環境で動作し得る。リモートコンピュータ１８０は、パーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピアデバイスまたは他の一般的なネットワークノードとすることができ、通常は、コンピュータ１１０に関連して前述した要素の多くまたはすべてを含むが、図１にはメモリ記憶装置１８１だけを示してある。図１に示す論理接続には、ローカルエリアネットワーク（ＬＡＮ）１７１および広域ネットワーク（ＷＡＮ）１７３が含まれるが、他のネットワークも含まれ得る。そのようなネットワーク環境は、オフィス、企業規模のコンピュータネットワーク、イントラネットおよびインターネットではよく見られるものである。ＬＡＮネットワーク環境で使用されるとき、コンピュータ１１０はネットワークインターフェースまたはアダプタ１７０を介してＬＡＮ１７１に接続される。ＷＡＮネットワーク環境で使用されるとき、コンピュータ１１０は、通常、モデム１７２またはインターネットなどのＷＡＮ１７３を介して通信を確立する他の手段を含む。モデム１７２は、内蔵でも外付けでもよく、ユーザ入力インターフェース１６０または他の適当な機構を介してシステムバス１２１に接続され得る。ネットワークで接続された環境では、コンピュータ１１０に関連して示すプログラムモジュール、またはその一部は、リモートのメモリ記憶装置にも格納され得る。例として、それだけに限らないが、図１に、リモートアプリケーションプログラム１８５をメモリ装置１８１上にあるものとして示す。図示のネットワーク接続は例示的であり、コンピュータ間での通信リンクを確立する他の手段も使用され得ることが理解されるであろう。
【００２７】
（参照応答のソート）
本発明は、一般に、分散ファイルシステムのためのターゲットフェイルバックおよびターゲット優先度を決定するシステムおよび方法を対象とする。このシステムおよび方法は、コンピュータネットワーク中の所望のファイルまたはディレクトリを含み得るコンピュータのリストを要求するクライアントコンピュータのためのソート方法を提供することができる。要求に応答して、クライアントコンピュータに提供され得るターゲットのリストが、各個別ターゲットに関連付けられたサイトコストを含む、特定のパラメータの評価に基づいてソートされ得る。明らかなように、クライアントコンピュータが、より高コストのターゲットとの接続を確立しようと試みる前に、単に、より低コストのターゲットから始まる参照応答を論理的に構文解析するだけで接続を試みることができるように、識別されるより低コストのターゲットが参照応答の先頭にソートされ得る。
【００２８】
そのようなソートシステムは、ターゲットの優先順位を使っても実施することができ、一実施形態では、より高い優先度のターゲットが、やはり、参照応答の先頭にソートされ得る。さらに、参照応答は、サイトコストとターゲット優先度両方での措置を含むようにもソートされ得る。ゆえに、同等の関連サイトコストを持つターゲットのグループは、各ターゲットの個別の関連ターゲット優先度に従って、そのグループ内でさらにソートされ得る。明らかなように、本明細書で説明する様々なブロック図、流れ図およびシナリオは例にすぎず、本発明が適用される他の多くのシナリオがある。
【００２９】
図面の図２を見ると、本発明の一態様による、ターゲットフェイルバックおよびターゲット優先度を実施するための分散コンピューティング環境の例示的アーキテクチャを一般的に表すブロック図が示されている。通常、クライアントコンピュータ２０５は、図１のパーソナルコンピュータ１１０と類似のものとすることができ、企業イントラネットの一部またはインターネットの一部とすることのできる第１のネットワーク２５０に動作可能に結合され得る。クライアントコンピュータ２０５は、Ｄｆｓの一部とすることもでき、Ｄｆｓ全体のどこかに位置するファイルへのシームレスなアクセスを提供し得るＤｆｓクライアント２７０を含むこともできる。また、ネットワークも、コンピュータｍ１  ２１０や、アクティブディレクトリサーバ２２０や、Ｄｆｓルートサーバ２３０など、他のコンピュータに動作可能に結合され得る。アクティブディレクトリサーバ２２０を使って、Ｄｆｓリンク参照情報を含むＤｆｓ情報が格納され得る。しかしながら、様々な実施形態において、この情報は、ネットワーク２５０からアクセス可能な任意のコンピュータ可読媒体によって格納され得る。
【００３０】
そしてさらに、Ｄｆｓサーバ２３０は、やはり、別の企業イントラネットまたはインターネットの別の部分とすることのできる別のネットワーク２８０にも動作可能に結合され得る。ネットワーク２８０は、どんなコンピュータネットワークでも見られるようなルータ２６０を介してネットワーク２５０に動作可能に結合され得る。Ｄｆｓルートサーバ２３０は、１つまたは複数のリンク参照を含み得るＤｆｓルート共有資源２４０に動作可能に結合され得る。例えば、リンク／／ｒ１／ｓ１／ｌ１は、／／ｍ１／ｓ１に位置するファイルまたはディレクトリへの参照を提供し得る。同様に、リンク／／ｒ１／ｓ１／ｌ２は、／／ｍ２／ｓ１に位置するファイルまたはディレクトリへの参照を提供し得る。さらに、１つのリンクは、複数のコンピュータ、サーバ、共有資源、および／またはディレクトリへの参照を提供し得る。ゆえに、サーバコンピュータｍ２  ２１５を含む多くのコンピュータが、無数のネットワークおよびコンピュータを介してクライアントコンピュータ２０５に通信するように結合され得る。
【００３１】
クライアントコンピュータ２０５は、事実上、ネットワーク２５０、またはネットワーク２５０および２８０中のどんなサーバ位置からのファイルおよび／またはディレクトリも要求し、検索することができる。しかしながら、クライアントコンピュータ２０５が、ネットワーク２５０に接続され得るすべてのコンピュータに関する情報を維持することは実現不可能である。一般に、要求は、ファイルまたはディレクトリを求めるものとすることができる。そのため、ネットワーク２５０中の任意のコンピュータから任意のファイル（および／または本開示の残りの部分全体を通じてファイル要求および検索によって示唆されるディレクトリなど）が検索され得るが、クライアントコンピュータ２０５には、通常、別のソースからの要求されたファイルの場所が提供される。ゆえに、Ｄｆｓサーバコンピュータ２３０は、クライアントコンピュータ２０５がローカルで利用できないファイルを要求したときに、Ｄｆｓサーバコンピュータ２３０が、各ターゲットが要求されたファイルへのパスに対応するターゲットのリストを提供することができるように、ネットワーク２５０および２８０に結合された多くのコンピュータに関する情報を維持するように動作することができる。
【００３２】
通常、Ｄｆｓサーバコンピュータ２３０は、参照要求に応答して何百または何千ものターゲットを返すことができ、いくつかのパラメータに従ってそれらのターゲットの順序を提供することができる。参照をソートする２つのそのような方法として、各ターゲットに関連付けられたサイトコストによるソートおよび各ターゲットに関連付けられたターゲット優先度でのソートが考えられる。これらのソート方法のそれぞれについて以下でさらに詳細に説明する。
【００３３】
ターゲットのリストがＤｆｓサーバコンピュータ２３０（または参照要求に応答してターゲットを提供し、ソートするように動作可能な他の専用コンピュータシステム）によってソートされると、それがクライアントコンピュータ２０５に返される。次いで、クライアントコンピュータ２２０は、ターゲットと接続が確立されるまで、繰り返し、（ソートされている順序で）各ターゲットと接続を確立しようと試み始めることができる。ファイルは、共有資源ｓ１  ２１２におけるサーバコンピュータｍ１  ２１０、または単に／／ｍ１／ｓ１に対応するターゲットに位置し得る。共有資源ｓ１  ２１２は、サーバコンピュータｍ１  ２１０上のファイルサーバ２１１と関連付けることができ、ゆえに、Ｄｆｓサーバコンピュータ２３０によって参照され得る。
【００３４】
同様に、要求されたファイルは、共有資源ｓ２  ２１７におけるサーバコンピュータｍ２  ２１５に位置し得る。共有資源ｓ２  ２１７もまたサーバコンピュータｍ２  ２１５上のファイルサーバ２１６と関連付けることができ、ゆえに、Ｄｆｓサーバコンピュータ２３０によって参照され得る。しかしながら、サーバコンピュータ２１５はネットワーク２８０を介して動作可能に結合され得るため、クライアントコンピュータによって参照され得るパスはより複雑になり得る。というのは、通信接続がルートＤｆｓサーバ２３０を介して確立され得るからである。図２のアーキテクチャにおけるＤｆｓを使用することによって、ネットワーク中の任意の場所からのファイルが、Ｄｆｓサーバコンピュータ２３０によってクライアントコンピュータ２０５に提供される参照を介して検索され得る。
【００３５】
図３に、本発明の一態様による、分散ファイルシステムを使ってファイルを要求し、検索するために行われるステップを一般的に表す流れ図を示す。クライアントコンピュータ２０５は、Ｄｆｓの一部とすることもでき、Ｄｆｓ全体のどこかに位置するファイルへのシームレスなアクセスを提供し得るＤｆｓクライアント２７０を含むこともできる。したがって、クライアントコンピュータ２０５は、あたかも要求されるすべてのファイルがローカルで見つかるかのようにファイルを要求し、検索することができる。
【００３６】
クライアントコンピュータ２０５が、クライアントコンピュータ２０５においてローカルで利用できない特定のファイルを必要とするときには、Ｄｆｓクライアント２７０を使ってクライアントコンピュータ２０５においてファイル要求が開始され得る。様々な実施形態において、Ｄｆｓクライアントは、アクティブディレクトリサーバ２２０上にも常駐することができ、Ｄｆｓルートサーバ２３０の場所を探すのに使用され得る。Ｄｆｓサーバコンピュータ２３０は、クライアントコンピュータ２０５に、ステップ３０８で、Ｄｆｓを介して利用可能なリモートサーバコンピュータに対応するターゲットのリストを含み得る参照応答を提供することができる。ターゲットリストは、サイトコスト（その方法については以下で図４との関連で説明する）、関連優先度（その方法については以下で図５との関連で説明する）、および／またはサイト認識（以下で一般的に説明する）といった様々なパラメータに従ってソートされ得る。
【００３７】
さらに、参照応答は、それぞれがターゲットのグループを含む有界集合(bounded set)の指示を含み得る。一実施形態において、有界集合の先頭の指示は、その有界集合中の第１のターゲットに関する情報に関連付けられた境界値(demarcation value)を提供することによって行われ得る。これは、参照応答としてクライアントコンピュータに、ターゲットとそのクライアントコンピュータの間でファイルまたはディレクトリを検索することに伴うコストなどの境界属性を提供することによって達成され得る。有界集合は、サイトコスト、サイト認識、ターゲット優先度、および／または参照に関与するコンピュータの健全性を含む任意の数のパラメータに基づくものとすることができる。本明細書で使用する場合、健全性(health)とは、参照を提供するための応答時間、トラフィック負荷、プロセッサ負荷、および、性能メトリックを含む参照に関与するコンピュータのその他の属性を意味し得る。
【００３８】
クライアントコンピュータ２０５が参照応答を受け取ると、クライアントコンピュータ２０５は、ソートされた順序でリスト中の各ターゲットと通信セッションを確立しようと試み始めることができる。ゆえに、クライアントコンピュータ２０５は、ステップ３１０でターゲット１を試みるが、接続に失敗し得る。次いで、クライアントコンピュータ２０５は、ステップ３１２でターゲット２を試みるが、やはり接続に失敗し得る。クライアントコンピュータ２０５は、ステップ３１４でターゲットｍとの接続が確立され得るまで、参照応答中の各ターゲットに接続しようと試み続けることができる。ターゲットへの接続が確立されると、そのターゲットは設定ターゲットに指定され、そのターゲットとの通信の連続性を保持するために、利用不能になるまで使用され得る。例えば、ターゲットｍは、クライアントコンピュータ２０５が、例えば、新しいターゲットを発見するために新しい参照を要求するまで、あるいは別の方法で指示されるまで、その後のファイル検索のための設定ターゲットとして設定され得る。
【００３９】
実装形態は、同じ効果を達成しつつ、しかも本発明の範囲を逸脱することなく、これらのステップを異なる順序で実行するよう選択することもでき、あるいは効率性や柔軟性のためにこれらのステップの一部だけを実行するよう選択することもできることを当分野の技術者は理解するであろう。さらに、この同じ概念は、そもそも、Ｄｆｓサーバ２３０の場所を探す際にも適用され得る。というのは、特定のＤｆｓサーバの参照は、ほとんど同じやり方でアクティブディレクトリサーバ２２０によって提供され得るからである。
【００４０】
図４に、本発明の一態様による、サイトコストに基づいて参照応答を組み立てるために行われるステップを一般的に表す流れ図を示す。一般に、参照応答は、サイトコストやサイト認識別など、いくつかのパラメータに従ってソートされ得る。一実施形態において、クライアントコンピュータ２０５と同じサイト内にあるターゲットは、サイトコストに従ってソートする前にサイト認識に従ってソートされ得る。例えば、クライアントコンピュータ２０５と同じサイト内のターゲットは、参照応答の先頭にソートすることができ、次いで、サイトコストパラメータを使って残りのターゲットがソートされ得る。図４は、Ｄｆｓサーバコンピュータ２３０によって生成された参照応答中のターゲットをソートするためにサイトコストおよびサイト認識を使用する方法の一実施形態を示し得るものである。しかしながら、任意の数のパラメータまたはパラメータの組合せを使って参照応答のターゲットがソートされ得ることを当分野の技術者は理解すると考えられる。
【００４１】
Ｄｆｓサーバコンピュータ２３０は、クライアントコンピュータ２０５からの参照要求を満たすことのできるターゲットのリストを編成することができる。これらのターゲットは、まず初めにステップ４０２で、ランダムな順序で組み立てられ得る。次いで、Ｄｆｓサーバコンピュータ２３０は、クライアントコンピュータ２０５と同じサイト（例えば、／／ｍ１／ｓ１／など）内に存在し得る各ターゲットを識別することができる。ステップ４０４で、これらの識別されたターゲットが、次にサイト認識パラメータついてソートされる参照応答を生じるように、リストの先頭に移動され得る。様々な実施形態において、参照応答は、この時点でクライアントコンピュータ２０５に返送され得る。しかしながら、他の実施形態では、参照応答は、図４に示すように、別のパラメータ、サイトコストに従ってさらにソートされ得る。
【００４２】
ステップ４０８で、残りのターゲットが関連サイトコストに従ってソートされ、有界集合に区分され得る。そのターゲットに関連付けられた第１のサイトコストを持つ各ターゲットが、同じ関連サイトコストを持つ他のターゲットと共に有界集合に移動され得る。同様に、第２の有界集合は、第２の関連サイトコストを持つ１つまたは複数のターゲットを持ち得る。ゆえに、この場合、ターゲットのリストを有界集合にソートすることができ、第１の有界集合は最低の関連サイトコストを持つターゲットを含むことができ、次の有界集合は次に低い関連サイトコストを持つターゲットを含むことができ、以下同様である。
【００４３】
その場合、各有界集合は、ランダムな順序でリストされ、それに関連付けられた同じサイトコストを持つ多数のターゲットを含み得る。ゆえに、クライアントコンピュータ２０５が通信セッションを確立しようとする試みを次々と反復する際、クライアントコンピュータ２０５は、最初に、最低のサイトコストのターゲットを次々と反復することができる。
【００４４】
さらに、ステップ４１０で、各有界集合の先頭にリストされたターゲットは、有界集合の先頭を示すように設定され得る境界ビットにも関連付けられ得る。このようにして、クライアントコンピュータは、各有界集合間の境界を容易に識別することができる。境界ビットは、そのターゲットが、リスト中の前のターゲットより高い関連サイトコストを持つという指示として働くことができる。ゆえに、サイトコスト計算(site-costing)に基づく有界集合を提供することによって、フェイルバックまたはフェイルオーバに関するより多くの情報に基づく決定が行われ得る。次いで、ステップ４１２で、Ｄｆｓサーバコンピュータ２３０は、サイト認識およびサイトコストに基づくソート済みターゲットリストを持つ最終的な参照応答を組み立てることができ、その参照応答をクライアントコンピュータ２０５に返送することができる。
【００４５】
図５に、本発明の一態様による、ターゲット優先度に基づいて参照応答を組み立てるために行われるステップを一般的に表す流れ図を示す。この場合もやはり、参照応答は、簡単に前述したようにターゲット優先度および／またはサイト認識によるなど、いくつかのパラメータに従ってソートされ得る。図５は、Ｄｆｓサーバコンピュータ２３０によって生成された参照応答中のターゲットをソートするためにターゲット優先度およびサイト認識を使用する方法の一実施形態を示し得るものである。しかしながら、任意の数のパラメータまたはパラメータの組合せを使って参照応答のターゲットがソートされ得ることを当分野の技術者は理解すると考えられる。前述のように、Ｄｆｓサーバコンピュータ２３０は、クライアントコンピュータ２０５からの参照要求を満たすことのできるターゲットのリストを編成することができる。これらのターゲットは、まず初めにステップ５０２で、ランダムな順序で組み立てられ得る。次いで、Ｄｆｓサーバコンピュータ２３０は、クライアントコンピュータ２０５と同じサイト（例えば／／ｍ１／ｓ１／など）内にある各ターゲットを識別することができる。ステップ５０４で、これらの識別されたターゲットは、次に、サイト認識パラメータについてソートされる参照応答を生じるようにリストの先頭に移動され得る。いくつかの実施形態では、参照応答は、この時点でクライアントコンピュータ２０５に返送され得る。しかしながら、他の実施形態では、参照応答は、図５に示すように、別のパラメータ、ターゲット優先度に従ってさらにソートされ得る。
【００４６】
それに関連付けられた、大域的に高いなど第１のターゲット優先度を持つ各ターゲットが、同じ関連ターゲット優先度を持つ他のターゲットと共に有界集合に移動され得る。同様に、第２の有界集合は、大域的に低いなど第２の関連ターゲット優先度を持つ１つまたは複数のターゲットを含み得る。ゆえに、この場合、ターゲットのリストを有界集合にソートすることができ、第１の有界集合は最高の関連ターゲット優先度、すなわち大域的に高い優先度を持つターゲットを含むことができ、次の有界集合は、次に高い関連ターゲット優先度、すなわち普通の高さの優先度を持つターゲットを含み、以下同様である。
【００４７】
その場合、各有界集合は、ランダムな順序でリストされ、それに関連付けられた同じターゲット優先度を持つ多数のターゲットを含み得る。ゆえに、クライアントコンピュータ２０５がターゲットを次々と反復して、通信セッションを確立しようと試みる際、クライアントコンピュータ２０５は、最初に、最高のターゲット優先度のターゲットを次々と反復することができる。
【００４８】
さらに、ステップ５１０で、各有界集合の先頭にリストされたターゲットは、その有界集合の先頭を指示するように設定された境界ビットを持つこともできる。このようにして、クライアントコンピュータ２０５は、各有界集合間の境界を容易に識別することができる。境界ビットは、そのターゲットが、リスト中の前のターゲットより低い関連ターゲット優先度を持ち得ることの指示として働くことができる。ゆえに、ターゲット優先度に基づく有界集合を提供することによって、フェイルバックまたはフェイルオーバに関するより多くの情報に基づく決定が行われ得る。次いで、ステップ５１２で、Ｄｆｓサーバコンピュータ２３０は、サイト認識およびターゲット優先度に基づくソート済みターゲットリストを持つ最終的な参照応答を組み立てることができ、その参照応答をクライアントコンピュータ２０５に返送することができる。
【００４９】
Ｄｆｓサーバコンピュータ２３０は、ソート済み参照応答を設定するに際してソートパラメータの組合せも使用することができる。例えば、第１のソートは、同じサイトのターゲットをリストの先頭に移動することとすることができる。次いで、ターゲットは、それぞれに関連付けられた大域的優先度に基づいてソートされ得る。例えば、関連付けられた大域的に高い優先度を持つすべてのターゲットは、参照応答の先頭にソートされ得る。同様に、関連付けられた大域的に低い優先度を持つすべてのターゲットは、リストの末尾にソートされ得る。次いで、（大域的に普通と呼ばれ得る）残りのターゲットが、サイトコスト基づいてさらに有界集合にソートされ得る。
【００５０】
別の実施形態において、第２のソートは、サイトコストに基づき、各集合の先頭にあるターゲット中の集合境界ビットによって表される有界集合を設定することができる。次いで、各有界集合は、（本来的に同じ関連サイトコストを持ち得る）各有界集合内のターゲットが、各ターゲットに関連付けられた優先度に従ってさらに順序付けされ得るように、ターゲット優先度に従ってソートされ得る。ゆえに、サイトコストに基づく有界集合内で、その有界集合の先頭にあるターゲットは、高い優先度に関連付けることができ、次のターゲットのグループは、次に高い優先度（例えば普通など）に関連付けることができ、以下同様である。
【００５１】
さらに別の実施形態では、ターゲットが、大域的な優先度に基づき、各有界集合内でソートされるように、前述の２つの実施形態が一緒に実施され得る。
【００５２】
別の例として、第１のソートは、やはり、同じサイトのターゲットをリストの先頭に移動することとすることができる。次いで、第２のソートは、ターゲット優先度に基づき、各集合の先頭にあるターゲット中の集合境界ビットによって表される有界集合を設定することができる。次いで、各有界集合は、（本来的に同じ関連ターゲット優先度を持ち得る）各有界集合内のターゲットが、各ターゲットに関連付けられたサイトコストに従ってさらに順序付けされるように、サイトコストに従ってソートされ得る。ゆえに、ターゲット優先度に基づく有界集合内で、その有界集合の先頭にあるターゲットは、最低のサイトコストに関連付けることができ、次のターゲットのグループは、次に低いサイトコストに関連付けることができ、以下同様である。
【００５３】
参照応答中のターゲットを設定された順序でソートし、参照応答中の各ターゲット内の一定のビットを設定することにより、次いで、クライアントコンピュータは、以下で説明するように、参照応答中のソート済みターゲットを使って効率のよいターゲットフェイルバックポリシーおよび優先フェイルバックポリシーを実施することができる。
【００５４】
（ターゲットフェイルバックおよび優先度）
サーバコンピュータのネットワークにおける所望のファイルを持ち得るサーバコンピュータのリストを要求するクライアントコンピュータのためのソート方法に加えて、このシステムおよび方法は、参照応答として提供されるソート済みターゲットのリストを使用し得るターゲットフェイルバックおよびターゲット優先度ポリシーも提供することができる。明らかなように、コンピュータシステムは、サイトコストに従ってソートされたターゲットのリストからターゲットを選択し、設定ターゲットに指定することができる。次いで、コンピュータシステムは、その設定ターゲットが、ソート済みリスト中のすべての利用可能なターゲットに比べて、最低のサイトコストに関連付けられているかどうか判定することができる。そうでない場合、システムは、設定ターゲットより低いサイトコストに関連付けられている別のターゲットにフェイルバックし、その新しいターゲットを設定ターゲットに指定することができる。理解されるように、本明細書で説明する様々な流れ図およびシナリオは例にすぎず、説明するターゲットフェイルバックおよびターゲット優先度ポリシーが適用される他の多くのシナリオがある。
【００５５】
図面の図６を見ると、本発明の一態様による、ソート済み参照応答と共に使用され得るより低いサイトコストのターゲットにフェイルバックするために行われるステップを一般的に表す流れ図が示されている。ターゲットフェイルバックポリシーの様々な実施形態において、Ｄｆｓサーバコンピュータ２３０は、参照応答を生成するときにＤｆｓによって使用され得るターゲットに関する情報をソートすることができる。一実施形態では、Ｄｆｓサーバコンピュータ２３０は、サイト認識に基づいてターゲットに関する情報をソートすることができる。このモードでは、参照応答は、本質的に、２つのターゲット集合で構成され得る。一方の集合は、クライアントコンピュータ２０５と同じサイトにあるターゲットを含み、他方の集合はクライアントコンピュータ２０５以外のサイトにあるターゲットを含む。最初、各集合中のターゲットはランダムに配列され得る。
【００５６】
別の実施形態において、Ｄｆｓサーバコンピュータ２３０は、サイトコストに基づいて参照をソートすることができる。この動作モードでは、参照応答は、複数の有界集合にソートされ得る。各有界集合は、（要求側クライアントコンピュータに関連するサイトコスト情報に基づいて決定され得る）Ｄｆｓサーバによって決定されるのと同じサイトコストを持つターゲットを含み得る。有界集合は、クライアントと同じサイトにあるターゲットが第１の有界集合に含まれ、次に低いサイトコストを持つターゲットが第２の集合に含まれ、以下同様とすることができるように、サイトコストの昇順で配列され得る。最初、各集合内のターゲットは、ランダムに配列され得る。
【００５７】
ゆえに、ステップ６０２でクライアントコンピュータが参照を要求すると、Ｄｆｓサーバコンピュータ２３０によってソート済み参照応答が提供され得る。次いで、ステップ６０４で、クライアントコンピュータは、第１の利用可能なターゲットを決定するために、参照応答中の各ターゲットと接続を確立しようと試み始めることができる。ターゲットが、ネットワークエラー、ターゲットクラッシュなど、いくつもの理由でアクセス不能であるとき、Ｄｆｓクライアントは、次の利用可能なターゲットにフェイルオーバすることができる。例えば、参照応答のターゲットリスト中の次のターゲットと接続を確立しようと試みることができる。ターゲットとの接続が確立されると、ステップ６０６で、その特定のターゲットが設定ターゲットに指定され得る。
【００５８】
設定ターゲットより最適であり得る１つまたは複数のターゲットが再度利用可能になったとき、Ｄｆｓクライアントは、連続性およびシームレス性のために設定ターゲットを引き続き使用することもでき、より最適な(more optimal)利用可能なターゲットを獲得し、または再獲得することもできる。フェイルバックポリシーおよびターゲットの有界集合を持つことにより、利用可能な場合に、より低いサイトコストを持つターゲットなど、より最適なターゲットを獲得し、または再獲得することが可能になる。
【００５９】
ゆえに、ターゲットフェイルバックポリシーが指定されている場合（例えば、ターゲットフェイルバックポリシービットが設定されているなど）、ステップ６０８で、クライアントコンピュータは、より低いサイトコストのターゲットなど、より好ましいターゲットが利用可能であり得ることを判定することができる。この判定は、いつでも行うことができ、クライアントコンピュータ２０５によっても、Ｄｆｓサーバコンピュータ２３０によっても、あるいは他の任意のリモートコンピュータによっても開始され得る。さらに、フェイルバック時刻は、その設定ターゲットとの接続が確立され得た時刻からの経過期間に対応し得る。例えば、クライアントコンピュータは、第１の設定ターゲットでの接続が確立されてから３０分後により最適なターゲットの有無をチェックすることができる。さらに、フェイルバック時刻は、半時間ごとや、５分ごとなど、特定の時刻にも対応し得る。さらに、フェイルバック時刻は、クライアントコンピュータ２０５からのファイルを求めるまさしく次の要求にも対応し得る。
【００６０】
フェイルバック時に、より低いサイトコストのターゲットなどより好ましいターゲットが利用可能である場合、ステップ６１２で、その利用可能なより好ましいターゲットとの接続を確立することができ、利用可能なより好ましいターゲットが設定ターゲットに指定され得る。しかしながら、より低いサイトコストを持つものなど、より好ましい利用可能なターゲットがない場合、ステップ６１０で、設定ターゲットが現在のターゲットとして引き続き使用され得る。フェイルバックポリシーは、参照応答中の所与のＤｆｓルート／リンクについて実施され得る。ターゲットフェイルバックが個々のリンクレベルで使用可能とされ得ない場合、Ｄｆｓ名前空間全体での設定が使用され得る。一実施形態において、ターゲットフェイルバックは、ターゲットフェイルバックがＤｆｓ名前空間レベルで使用可能とされ得るときには、リンクレベルでは使用不可とされ得る。
【００６１】
ターゲットフェイルバック情報は、一実施形態では、Ｄｆｓメタデータなど、他のＤｆｓ情報と共に格納され得る。例えば、各ターゲットのメタデータのルート／リンク別情報における「Ｔｙｐｅ」フィールドが使用され得る。このフィールド中の自由なビット位置が、既存のシステム全体にわたって機能するように識別され、検証され得る。この新しいビット位置は、ＰＫＴ＿ＥＮＴＲＹ＿ＴＹＰＥ＿ＴＡＲＧＥＴＦＡＩＬ．ＢＡＣＫであると定義され得る。
【００６２】
ゆえに、一実施形態では、以下の擬似構造によって、（「ＩＤ  ＢＬＯＢ」と呼ばれる）ドメインベースのＤｆｓのメタデータでの典型的な形式が定義され得る。
【００６３】
【表１】
2006107506.tif 000003
【００６４】
同様に、以下の擬似構造によって、（「ＩＤ  ＢＬＯＢ」と呼ばれる）独立型Ｄｆｓのメタデータでの典型的な形式が定義され得る。
【００６５】
【表２】
2006107506.tif 000004
【００６６】
ＮｅｔＤｆｓＧｅｔＩｎｆｏ／ＮｅｔＤｆｓＥｎｕｍ  ＡＰＩは、ルート／リンク別メタデータから設定を取り出すことができる。パラメータを検証することのできるＡＰＩフロントエンドがしかるべく変更され、「ｉｎｆｏレベル」特有の情報を解釈し、返すことのできるルーチンもしかるべく変更され得る。
【００６７】
ターゲット優先度とターゲットフェイルバック両方をサポートするために、Ｄｆｓクライアントは、より低いサイトコストおよび／またはより高い優先度の別のターゲットへのフェイルバックを試みることができる。一実施形態では、Ｄｆｓクライアントは、現在アクティブなターゲットと同じサイトコストおよび／または同じ優先度の別のターゲットにフェイルバックすることができない。
【００６８】
ターゲット集合は、一実施形態では、ターゲットの有界集合であると定義され得る。例えば、ターゲットの有界集合は、同じサイトコストを持つランダムにソートされたターゲットの集合とすることができる。ターゲットの有界集合での境界の指示は、例えば、参照応答では、参照エントリに境界の指示を含めることによって行われ得る。
【００６９】
したがって、あるルート／リンクでのＤｆｓクライアントへの参照応答は、一実施形態では、そのルート／リンクにフェイルバックが使用可能であるか否か指示することができ、返されるターゲット間の有界集合境界も指示することができる。一実施形態では、あるルート／リンクでの既存の参照応答の形式が、以下のように、参照ヘッダと参照エントリの両方における既存のビットフィールド定義に新しいビットフィールドを付加することによって使用され得る。
【００７０】
【表３】
2006107506.tif 000005
【００７１】
【表４】
2006107506.tif 000006
【００７２】
【表５】
2006107506.tif 000007
【００７３】
【表６】
2006107506.tif 000008
【００７４】
参照応答中のターゲット間の有界集合境界の指示を提供し、またはフェイルバックが使用可能にされているか否か指示するために、分離データ構造(separate data structure)など、他のデータ構造も使用され得ることを当分野の技術者は理解するであろう。
【００７５】
図７に、本発明の一態様による、ソート済み参照応答と共に使用され得るより高い優先度のターゲットにフェイルバックするために行われるステップを一般的に表す流れ図を示す。ターゲットフェイルバックポリシー環境の様々な実施形態において、Ｄｆｓサーバコンピュータ２３０は、サイト認識に基づいてターゲットに関する情報をソートすることができる。このモードでは、参照応答は、本質的に、２つのターゲット集合で構成され得る。一方の集合はクライアントコンピュータ２０５と同じサイトにあるターゲットを含み、他方の集合はクライアントコンピュータ２０５以外サイトにあるターゲットを含む。最初、各集合中のターゲットはランダムに配列され得る。
【００７６】
別の実施形態において、Ｄｆｓサーバコンピュータ２３０は、ターゲット優先度に基づいて参照をソートすることができる。この動作モードでは、参照応答は、複数の有界集合にソートされ得る。各有界集合は、参照を要求しているＤｆｓサーバによって決定されるのと同じターゲット優先度を持ち得るターゲットを含むことができる。有界集合は、最高の優先度のターゲットが第１の有界集合に含まれ、次に高い優先度を持つターゲットが第２の集合に含まれ、以下同様とすることができるように、ターゲット優先度の降順に配列され得る。最初、各集合中のターゲットは、ランダムに配列され得る。
【００７７】
Ｄｆｓサーバコンピュータ２３０は、ソート済み参照応答を設定するに際してソートパラメータの組合せを使用することもできる。例えば、第１のソートは、同じサイトのターゲットをリストの先頭に移動させることとすることができる。次いで、ターゲットは、それぞれに関連付けられた大域的優先度に基づいてソートされ得る。例えば、関連する大域的に高い優先度を持つすべてのターゲットは、参照応答の先頭にソートされ得る。同様に、関連する大域的に低い優先度を持つすべてのターゲットは、リストの末尾にソートされ得る。次いで、（大域的に普通と呼ばれ得る）残りのターゲットがサイトコストに基づいてさらに有界集合にソートされ得る。
【００７８】
別の実施形態において、第２のソートは、サイトコストに基づき、各集合の先頭にあるターゲット中の集合境界ビットによって表される有界集合を設定することができる。次いで、各有界集合は、（本来的に同じ関連サイトコストを持ち得る）各有界集合内のターゲットが、各ターゲットに関連付けられた優先度に従ってさらに順序付けされ得るように、ターゲット優先度に従ってソートされ得る。ゆえに、サイトコストの基づく有界集合内では、その有界集合の先頭にあるターゲットは、高い優先度に関連付けることができ、次のターゲットのグループは次に高い優先度（例えば普通など）に関連付けることができ、以下同様である。
【００７９】
さらに別の実施形態においては、ターゲットが大域的な優先度により、各有界集合内でソートされるように、前述の２つの実施形態が一緒に実施され得る。ゆえに、ステップ７０２で、クライアントコンピュータ２０５が参照を要求すると、Ｄｆｓサーバコンピュータ２３０によってソート済み参照応答が提供され得る。次いで、ステップ７０４で、クライアントコンピュータは、第１の利用可能なターゲットを決定するために参照応答中の各ターゲットとの接続を確立しようと試み始めることができる。例えば、参照応答のターゲットリスト中の次のターゲットとの接続を確立しようと試みることができる。ターゲットとの接続が確立されると、ステップ７０６で、その特定のターゲットが設定ターゲットに指定され得る。
【００８０】
設定ターゲットより最適であり得る１つまたは複数の前のターゲットが再度利用可能になったとき、Ｄｆｓクライアントは、連続性およびシームレス性のためにその設定ターゲットを引き続き使用することもでき、より最適なターゲットを獲得し、または再獲得することもできる。フェイルバックポリシーおよびターゲットの有界集合を持つことにより、利用可能な場合に、より高いターゲット優先度を持つターゲットなど、より最適なターゲットを獲得し、または再獲得することが可能になる。
【００８１】
ゆえに、ターゲットフェイルバックポリシーが指定される場合（例えば、ターゲットフェイルバックビットが設定されているなど）には、ステップ７０８で、クライアントコンピュータは、より好ましい有界集合内のターゲットなど、より好ましいターゲットが利用可能であることを判定することができる。この判定はいつでも行うことができ、クライアントコンピュータ２０５によっても、Ｄｆｓサーバコンピュータ２３０によっても、あるいは他の任意のリモートコンピュータによっても開始され得る。さらに、優先度チェック時刻は、設定ターゲットの設定からの経過期間に対応し得る。例えば、クライアントコンピュータ２０５は、第１の設定ターゲットが設定されてから３０分後により最適なターゲットの有無をチェックすることができる。さらに、優先度チェック時刻は、半時間ごとや５分ごとなど、特定の時刻にも対応し得る。さらに、優先度チェック時刻は、クライアントコンピュータ２０５からのファイルを求めるまさしく次の要求にも対応し得る。
【００８２】
優先度チェック時刻において、より高いターゲット優先度のターゲットが利用可能である場合、ステップ７１２で、その利用可能なより高いターゲット優先度のターゲットと接続が確立され、そのより高いターゲット優先度のターゲットが設定ターゲットに指定され得る。しかしながら、より高いターゲット優先度を持つどんな利用可能なターゲットもない場合、ステップ７１０で、設定ターゲットが現在のターゲットとして引き続き使用され得る。
【００８３】
ゆえに、Ｄｆｓ自体の中でターゲットを順序付けする単純な方法がソートに役立つ利点を提供し得る。サーバターゲット優先度は、前述のようにサイトコスト計算と同時に行われ得る。サーバターゲット優先度は、より高い優先度のターゲットが利用可能である場合にはより低い優先度のターゲットがトラフィックを受け取れないようにターゲット間の厳然たる順序付け(hard ranking)を作成することができる。
【００８４】
前述のように、参照応答は、各ターゲットの関連サイトコストに基づいて有界集合にソートされ得る。サーバターゲット優先度を用いる場合も、これらの有界集合は、やはり、アクセスするターゲットのコストに基づくものとすることができる。サーバターゲット優先度は、単に、ターゲットのコストソート基準を拡張し得るだけであり、そのため、これらの集合は、同じサイトコストおよびサーバターゲット優先度を持つターゲットとすることができる。
【００８５】
サーバターゲット優先度は、一実施形態では、２つの値、すなわち優先クラスと優先順位で表すことができる。優先クラスは、等しいサイトコストのターゲットの集合内、すなわち局所的レベルと、大域的レベルの２つのレベルで定義され得る。これらの各レベル内で、高い、普通、および低い優先度のターゲットという大雑把な順序付けがなされ得る。これは、以下の５つの優先クラスを提供することができる。
大域的に高い
サイトコストが高い
サイトコストが普通
サイトコストが低い
大域的に低い
【００８６】
これらは、上記の優先順位で順序付けされ得る。「大域的に普通」のクラスは、サイトコストクラスと等価であるとみなされ得るので、別個の「大域的に普通」のクラスはあり得ないことに留意されたい。優先順位は、単なる整数の順位、０、１、２、等々とすることができる。
【００８７】
参照を順序付けする際の、一実施形態でのプロセスは以下の通りとすることができる。
１．大域的に高いターゲットおよび大域的に低いターゲットの集合が、残りの「大域的に普通」のターゲットと共に識別され得る。
２．これら３つの集合は、大域的に高い、大域的に普通、大域的に低い、の優先順位で配列され得る。
３．除外ポリシーが設定され得る場合、除外集合内のターゲットは除去され得る。
４．これら３つの各集合内で、ターゲットは、サイトコスト機構によって（ローカルサイトまたは完全なサイトコスト計算によって）順序付けされ、等しいサイトコストのターゲットの有界集合が生成され得る。
５．等しいサイトコストの「大域的に普通」のターゲットの集合内で、ターゲットは、優先クラス、すなわち、サイトコストが高い、普通、低いにより順序付けされ得る。
６．等しいサイトコストおよび優先クラスのターゲットの有界集合内で、ターゲットは、優先順位（０が最高である）によって順序付けされ得る。
７．等しいサイトコスト、優先クラスおよび優先順位のターゲットの有界集合内で、ターゲットは、負荷平衡化のためにランダムにシャッフルされ得る。
【００８８】
実装形態は、同じ効果を達成しつつ、しかも本発明の範囲を逸脱することなく、これらのステップを異なる順序で実行するよう選択することもでき、あるいは効率性や柔軟性のためにこれらのステップの一部だけを実行するよう選択することもできることを当分野の技術者は理解するであろう。
【００８９】
図式的には、これらは、クライアントがターゲットを受け取るはずの順序の集合とすることができる。
［大域的に高い優先クラス］
［サイトコスト  サイトコスト＝０のターゲットでの高い優先クラス］
［サイトコスト  サイトコスト＝０のターゲットでの普通の優先クラス］
［サイトコスト  サイトコスト＝０のターゲットでの低い優先クラス］
［サイトコスト  サイトコスト＝１のターゲットでの高い優先クラス］
［サイトコスト  サイトコスト＝１のターゲットでの普通の優先クラス］
［サイトコスト  サイトコスト＝１のターゲットでの低い優先クラス］
［大域的に低い優先クラス］
【００９０】
ターゲット優先度情報はターゲット別とすることができるため、この情報を維持する無理のない場所は、各ルート／リンクごとのターゲットリストを含むＤｆｓレプリカメタデータ情報中であると考えられる。各ターゲットの情報は、以下の擬似構造によって定義され得る。
【００９１】
【表７】
2006107506.tif 000009
【００９２】
一実施形態では、ターゲット優先度が、メタデータに格納するために以下のようにＵＣＨＡＲで符号化され得る。
・  ビット０〜４：優先クラス内の優先順位
・  ビット５〜７：優先クラス
【００９３】
優先クラスは、一実施形態では、以下の値で表され得る。
サイトコスト普通（デフォルト）    ０×０
大域的に高い                      ０×１
大域的に低い                      ０×２
サイトコストが高い                ０×３
サイトコストが低い                ０×４
【００９４】
一例として、大域的に低い優先クラス内の優先順位１のターゲットは以下のように符号化され得る。
【００９５】
【表８】
2006107506.tif 000010
【００９６】
この符号化は、３２の優先順位、および８つの可能な優先クラスを提供することができ、８つの可能な優先クラスのうちの５つが、大域的に高い、サイトコストが高い、サイトコストが普通、サイトコストが低い、および大域的に低いという優先順位を使って定義され得る。優先順位は、０から３１までの値とすることができ、０が最高の優先順位とみなされる。ゆえに、各集合内で、優先順位０を持つターゲットが最初に返され、優先順位３１を持つターゲットが最後に返され得る。
【００９７】
ＤｆｓＵＴＩＬなどのユーティリティを使って、設定／表示操作のために、優先クラス定義を直接公開することができる。代替として、ユーザインターフェースが、ターゲット属性ページ上のラジオボタンによって優先クラスを公開することもできる。ＤｆｓＵＴＩＬもＵＩも、「サイトコストが普通の優先クラス」をデフォルトとして選択し得る。
【００９８】
ターゲット優先度は、Ｄｆｓターゲットの属性とみなされ得る。したがって、前述のＵＣＨＡＲ値は、一実施形態では、アクティブディレクトリとレジストリの両方で、Ｄｆｓオブジェクトにターゲット別属性として格納され得る。新しいＤＦＳ＿ＲＥＰＬＩＣＡ＿ＩＮＦＯＲＭＡＴＩＯＮ構造は以下のように提供され得る。
【００９９】
【表９】
2006107506.tif 000011
【０１００】
ＤＦＳ＿ＴＡＲＧＥＴ＿ＰＲＩＯＲＩＴＹ＿ＣＬＡＳＳは、一実施形態では、以下のように５つの可能なターゲット優先クラス設定を定義し得る新しいｅｎｕｍ型を提供することができる。
【０１０１】
【表１０】
2006107506.tif 000012
【０１０２】
デフォルトのターゲット優先度設定は、＜PriorityClass=SiteCostNormalPriorityClass,PriorityRank=0＞とすることができる。これは意図的なものとすることができる。というのは、ダウンレベルメタデータのデフォルト値が０になるからである。ＤｆｓＳｉｔｅＣｏｓｔＮｏｒｍａｌＰｒｉｏｒｉｔｙＣｌａｓｓの値は、それがＤｆｓＳｉｔｅＣｏｓｔＨｉｇｈＰｒｉｏｒｉｔｙＣｌａｓｓに比べて優先度が低い場合でさえも、０とすることができる。
【０１０３】
一実施形態では、タプル＜優先クラス，優先順位＞とすることのできるターゲット優先度の定義をカプセル化するために、以下の構造が提供され得る。
【０１０４】
【表１１】
2006107506.tif 000013
【０１０５】
Ｄｆｓサービスでのルートまたはリンクターゲットを表し得るＤｆｓＲｅｐｌｉｃａクラスは、以下の新しいクラスＤｆｓＴａｒｇｅｔＰｒｉｏｒｉｔｙのインスタンスを含み得る。
【０１０６】
【表１２】
2006107506.tif 000014
【０１０７】
ＤｆｓＴａｒｇｅｔＰｒｉｏｒｉｔｙクラスは、ＤＦＳメタデータから取り込まれたターゲット優先度情報を含むパックＵＣＨＡＲを、より使用に適したＤＦＳ＿ＴＡＲＧＥＴ＿ＰＲＩＯＲＩＴＹの形に変換することができる。これはまた、ＤＦＳ＿ＴＡＲＧＥＴ＿ＰＲＩＯＲＩＴＹが与えられると、パックＵＣＨＡＲ値を作成することもできる。さらに、ＤＦＳ＿ＴＡＲＧＥＴ＿ＰＲＩＯＲＩＴＹ＿ＣＬＡＳＳの優先クラス定義と、メタデータに格納するのに使用される優先クラス定義の間のマッピングを実行することもできる。
【０１０８】
既存のｓｔｒｕｃｔ  ＲＥＰＬＩＣＡ＿ＣＯＳＴ＿ＩＮＦＯＲＭＡＴＩＯＮは、以下のＤｆｓＴａｒｇｅｔＣｏｓｔｌｎｆｏという新しいクラスに変換され得る。
【０１０９】
【表１３】
2006107506.tif 000015
【０１１０】
既存のｓｔｒｕｃｔ  ＲＥＦＥＲＲＡＬ＿ＩＮＦＯＲＭＡＴＩＯＮは、ＤｆｓＴａｒｇｅｔＣｏｓｔＩｎｆｏオブジェクトのアレイを含むことになるクラスに変換され得る。参照のシャッフル、ソートおよび生成に関連する論理は、この新しいクラスでカプセル化され得る。このクラスは、生成されたＤｆｓＴａｒｇｅｔＣｏｓｔＩｎｆｏオブジェクトのアレイを、ＤＦＳプロトコルが期待するＲＥＦＥＲＲＡＬ＿ＨＥＡＤＥＲ形式に変換することもできる。
【０１１１】
ターゲット優先度による参照のソートは以下のように実施され得る。２つのターゲット、ｒ１およびｒ２が与えられたとすると、ｒ１は、ｒ１がｒ２の前に配列される必要がある場合には、≦ｒ２であるとみなされ得る。そのため、ｒ１≦ｒ２である場合、ソート済みの参照は｛ｒ１，ｒ２｝のように見えることになる。その≦比較の実施は、以下の所見に依存するものである。
【０１１２】
大域的優先クラスのターゲットでは、まず、優先クラスが比較され得る。また、非大域的優先クラスのターゲットでは、まず、サイトコストが比較され得る。
【０１１３】
１．一方または両方のターゲットが大域的優先クラスにある場合：
ａ．優先クラスが同じでない場合には、優先クラスに基づいて順序を決定する。例えば、ｒ１がＤｆｓＧｌｏｂａｌＨｉｇｈＰｒｉｏｒｉｔｙＣｌａｓｓにある場合、ｒ１は、ｒ２の優先クラスに関係なくｒ２の前に配置され得る。
ｂ．そうではなく、優先クラスが同じである場合には、ｒ１とｒ２のサイトコストを比較する。ｒ１のサイトコスト＜ｒ２のサイトコストである場合、ｒ１＜ｒ２である。
ｃ．優先クラスおよびサイトコストが同じである場合には、ステップ３に進む。
【０１１４】
２．どちらのターゲットも大域的優先クラスにない場合：
ａ．ターゲットサイトコストが同じでない場合で、ｒ１のサイトコスト＜ｒ２のサイトコストである場合には、ｒ１＜ｒ２である。
ｂ．そうではなく、サイトコストが同じである場合には、優先クラスをチェックする。ｒ１がｒ２に比べて高い優先クラスにある場合には、ｒ１＜ｒ２である。
ｃ．サイトコストおよび優先クラスが同じである場合には、ステップ３に進む。
【０１１５】
３．優先クラスおよびサイトコストが同じである場合。ｒ１が、ｒ２に比べて高い（数値的に低い）優先順位を持つ場合には、ｒ１＜ｒ２である。
【０１１６】
大域的優先クラスでは、参照は、まず、サイトコストにより配列され、次いで、優先順位により配列され得る。これが行われるのは、それを他の場合における比較でのモデルとすることができるからである。例えば、大域的でない優先クラスでは、サイトコストが等しいときには、優先順位だけが考慮され得る。
【０１１７】
図８に、本発明の一態様による、参照応答をソートするために一実施形態で行われるステップを一般的に表す流れ図を示す。参照応答がソートされるとき、前述の方法の様々な組合せが実施され得る。図８の流れ図に示す実施形態では、サイト認識、サイトコスト、およびターゲット優先度が、それぞれ、参照応答中のターゲットをソートする際に使用される。
【０１１８】
ステップ８０２で、クライアントコンピュータ要求を満たし得るターゲットのリストが、ソートのために参照応答として組み立てられ得る。次いで、ステップ８０４で、要求側コンピュータと同じサイト内にあるターゲットが、サイト認識として前述したように、リストの先頭にソートされ得る。ステップ８０６で、残りのターゲットが大域的優先度に従ってソートされ得る。より具体的には、大域的に高い優先度に関連付けられたターゲットはターゲットリストの先頭の方へソートされ、大域的に低い優先度に関連付けられたターゲットはターゲットリストの末尾の方へソートされ得る。
【０１１９】
次に、大域的に高いにも大域的に低いにも指定され得ないターゲットが、関連サイトコストに従ってソートされ得る。一実施形態では、そのような大域的に高いにも大域的に低いにも指定され得ないターゲットは、大域的に普通と指定され得る。ゆえに、これらのターゲットは、任意の所与の有界集合中の各ターゲットが、その特定の有界集合中の他のすべてのターゲットと類似の、または同等のサイトコストに関連付けられるように、ターゲットの有界集合にグループ化され得る。さらに、各有界集合中の各先頭のターゲットは、一実施形態では、有界集合の先頭を指示し得る集合境界ビットを含み得る。
【０１２０】
各有界集合は、ステップ８１０で、その有界集合中の各ターゲットに関連付けられた優先度に基づいてさらにソートされ得る。ゆえに、高い優先度に関連付けられた有界集合内のターゲットはその有界集合の先頭にソートされ、低い優先度に関連付けられた有界集合内のターゲットはその有界集合の末尾にソートされ得る。このようにして、各有界集合を優先度によってソートし、サイトコストソート内にネストさせ、それを、さらに、大域的優先度ソート内にネストさせることができる。
【０１２１】
この場合もやはり、実装形態は、同じ効果を達成しつつ、しかも本発明の範囲を逸脱することなく、これらのステップを異なる順序で実行するよう選択することもでき、あるいは効率性や柔軟性のためにこれらのステップの一部だけを実行するよう選択することもできることを当分野の技術者は理解するであろう。
【０１２２】
このように、このシステムおよび方法は、ターゲット優先度とターゲットフェイルバックの両方をサポートすることができる。クライアントコンピュータシステムは、より低いサイトコストおよび／またはより高い優先度の別のターゲットにフェイルバックしようと試みることができる。本発明は、サイト認識および／またはターゲット優先度に基づく参照のソートをサポートすることができる。サイト認識に基づいて参照をソートすることにより、クライアントコンピュータシステムに参照を提供するＤｆｓサーバと同じサイトにある１組のターゲット、および他のすべてのターゲット含む別の組のターゲットが提供され得る。ターゲット優先度に基づいて参照をソートすることにより、各有界集合が、参照を要求しているクライアントコンピュータシステムによって決定されるのと同じターゲット優先度を持つターゲットを含み得る有界集合が、優先度の順序で提供され得る。一実施形態において、参照応答は、同じサイトコストおよびサーバターゲット優先度を持つ有界集合にソートされ得る。
【０１２３】
以上の説明から明らかなように、本発明は、分散ファイルシステムのためのターゲットフェイルバックおよびターゲット優先度を決定する改善されたシステムおよび方法を提供するものである。クライアントコンピュータからの要求に応答して、クライアントコンピュータに、各個別ターゲットに関連付けられたサイトコストの評価に基づいてソートされ得るターゲットのリストが提供され得る。クライアントコンピュータが、より高コストのターゲットとの接続を確立しようと試みる前に、単に、より低コストのターゲットから始まる参照応答を論理的に構文解析するだけで接続を確立しようと試みることができるように、より低コストのターゲットが参照応答の先頭にソートされ得る。さらに、ターゲットの優先順位を使ったターゲットのソートを実施することもでき、そのため、一実施形態では、より高い優先度のターゲットも参照応答の先頭にソートされ得る。さらに、参照応答は、サイトコストとターゲット優先度両方での措置を含むようにもソートされ得る。ゆえに、同等の関連サイトコストを持つターゲットのグループは、さらに、そのグループ内で、各ターゲットの個別関連ターゲット優先度に従ってソートされ得る。任意のコンピュータシステムが、さらに、本発明のソート済み参照応答を使用し、サイトコストおよび／またはターゲット優先度に従ってソートされたターゲットのリストから新しい設定ターゲットを選択し、指定することによって、より高い優先度のターゲットにフェイルバックすることができる。以上から明らかなように、ゆえに、このシステムおよび方法は、現代のコンピューティングで必要とされる大きな利点および利益を提供するものである。
【０１２４】
本発明では、様々な変更および代替構成が可能であるが、図面には本発明の特定の例示的実施形態を示し、それらを本明細書で詳細に説明している。しかしながら、本発明を開示の特定の形だけに限定する意図なく、それとは逆に、本発明はすべての変更形態、代替構成、および本発明の精神および範囲内に含まれる均等物を包含するものであることを理解すべきである。
【図面の簡単な説明】
【０１２５】
【図１】本発明が組み込まれ得るコンピュータシステムを一般的に表すブロック図である。
【図２】本発明の一態様による、一実施形態においてターゲットフェイルバックおよびターゲット優先度を実施するための分散コンピューティング環境の例示的アーキテクチャを一般的に表すブロック図である。
【図３】本発明の一態様による、分散ファイルシステムを使ってファイルを要求し、検索するために行われるステップを一般的に表す流れ図である。
【図４】本発明の一態様による、サイトコストに基づいて参照応答を組み立てるために一実施形態で行われるステップを一般的に表す流れ図である。
【図５】本発明の一態様による、ターゲット優先度に基づいて参照応答を組み立てるために一実施形態で行われるステップを一般的に表す流れ図である。
【図６】本発明の一態様による、ソート済み参照応答と共に使用され得る、より低いサイトコストのターゲットにフェイルバックするために一実施形態で行われるステップを一般的に表す流れ図である。
【図７】本発明の一態様による、ソート済み参照応答と共に使用され得る、より高い優先度のターゲットにフェイルバックするために一実施形態で行われるステップを一般的に表す流れ図である。
【図８】本発明の一態様による、参照応答をソートするために一実施形態で行われるステップを一般的に表す流れ図である。
【符号の説明】
【０１２６】
２０５  クライアントコンピュータ
２１０  サーバコンピュータｍ１
２１１  ファイルサーバ
２１２  ｍ１共有資源ｓ１
２１５  サーバコンピュータｍ２
２１６  ファイルサーバ
２１７  ｍ２共有資源ｓ２
２２０  アクティブディレクトリサーバ
２３０  Ｄｆｓルートサーバ
２４０  Ｄｆｓルート共有資源
２５０  ネットワーク
２６０  ルータ
２７０  Ｄｆｓクライアント
２８０  ネットワーク
【図１】
2006107506.tif 000016
【図２】
2006107506.tif 000017
【図３】
2006107506.tif 000018
【図４】
2006107506.tif 000019
【図５】
2006107506.tif 000020
【図６】
2006107506.tif 000021
【図７】
2006107506.tif 000022
【図８】
2006107506.tif 000023