(57)【特許請求の範囲】
【請求項１】
オブジェクトへの最小コストでのアクセスを取得するためのコンピュータ実装方法であって、
企業ネットワークの第１のゲートウェイサーバーに、前記企業ネットワークからリモートにあるクライアントデバイスによって、接続するステップと、
前記第１のゲートウェイサーバーのための第１のサイトを識別する第１のサイト識別子を、前記クライアントデバイスによって取得するステップと、
オブジェクト照会サーバーへ、前記クライアントデバイスによって、オブジェクトへの第１の１つまたは複数の照会を求め前記第１のサイト識別子を含む第１の照会リクエストを送るステップと、
前記オブジェクトへの前記第１の１つまたは複数の照会を、前記クライアントデバイスによって受け取るステップであって、前記第１の１つまたは複数の照会は順序付けられている、ステップと、
前記第１の１つまたは複数の照会を用いて、前記オブジェクトにアクセスするステップと、
を含むコンピュータ実装方法。
【請求項２】
前記オブジェクトは複製され前記企業ネットワークの中の複数のストレージサーバーに格納されており、前記第１の１つまたは複数の照会はそれぞれが前記複数のストレージサーバーの１つへの経路を含む、請求項１に記載のコンピュータ実行方法。
【請求項３】
前記第１の１つまたは複数の照会は、前記第１のゲートウェイサーバーの前記第１のサイトと前記複数のストレージサーバーの最も近接している１つとの間の地理的距離によって順序付けられている、請求項２に記載のコンピュータ実行方法。
【請求項４】
前記クライアントデバイスを前記第１のゲートウェイサーバーから切断して第２のゲートウェイサーバーに接続するステップと、
前記第２のゲートウェイサーバーに接続するステップと、
を更に含み、前記第１の１つまたは複数の照会を用いて前記オブジェクトにアクセスするステップは、前記第２のゲートウェイサーバーを経由する前記オブジェクトへのアクセスを要求するステップを含む、請求項１〜３のいずれか一項に記載のコンピュータ実行方法。
【請求項５】
前記第２のゲートウェイサーバーは第２のサイトに配置されており、前記第１の１つまたは複数の照会は、前記第２のゲートウェイサーバーの前記第２のサイトと前記複数のストレージサーバーの最も近接している１つとの間の地理的距離によって順序付けられている、請求項１〜４のいずれか一項に記載のコンピュータ実行方法。
【請求項６】
前記クライアントデバイスを前記第１のゲートウェイサーバーから切断するステップと、
前記クライアントデバイスを第２のゲートウェイサーバーに接続するステップと、
前記第２のゲートウェイサーバーのための第２のサイトを識別する第２のサイト識別子を前記クライアントデバイスによって取得するステップと、
前記オブジェクト照会サーバーへ、前記クライアントデバイスによって、前記オブジェクトへの第２の１つまたは複数の照会を求め前記第２のサイト識別子を含む第２の照会リクエストを送るステップと、
前記オブジェクトへの前記第２の１つまたは複数の照会を、前記クライアントデバイスによって受け取るステップであって、前記第２の１つまたは複数の照会は、前記第１の１つまたは複数の照会とは異なるように順序付けられている、ステップと、
前記第２の１つまたは複数の照会を用いて、前記オブジェクトにアクセスするステップと、
を更に含む、請求項１〜５のいずれか一項に記載のコンピュータ実装方法。
【請求項７】
前記オブジェクトは、ファイル、サービス、アプリケーション、名前空間サーバー、またはウェブサイトのうちの少なくとも１つを含む、請求項１〜６のいずれか一項に記載のコンピュータ実装方法。
【請求項８】
前記第１の照会リクエストを生成するステップを更に含み、前記第１の照会リクエストを生成するステップは、
前記第１のサイト識別子を、前記第１のクライアントデバイスに対するパラメーター設定に格納するステップと、
前記第１のサイト識別子を、前記パラメーター設定から取り出すステップと、
前記第１のサイト識別子を、前記第１の照会リクエストの中に挿入するステップと、
を含む、請求項１〜７のいずれか一項に記載のコンピュータ実装方法。
【請求項９】
前記第１の照会リクエストを生成するステップを更に含み、前記第１の照会リクエストを生成するステップは、
前記第１のサイト識別子を、前記第１のクライアントデバイスに対するパラメーター設定に格納するステップと、
前記第１のサイト識別子を、前記パラメーター設定から取り出すステップと、
前記第１のサイト識別子を、前記第１の照会リクエストの中に挿入するステップと、
を含む、請求項１〜８のいずれか一項に記載のコンピュータ実装方法。
【請求項１０】
オブジェクトへの最小コストでのアクセスを取得するためのシステムであって、
少なくとも１つの処理ユニットと、
前記少なくとも１つの処理ユニットに動作可能に接続されており、前記少なくとも１つの処理ユニットによって実行されると、前記少なくとも１つの処理ユニットに、
企業ネットワークの第１のゲートウェイサーバーに、前記企業ネットワークからリモートにあるクライアントデバイスによって、接続するステップと、
前記第１のゲートウェイサーバーに対する第１のサイトを識別する第１のサイト識別子を、前記クライアントデバイスによって取得するステップと、
オブジェクト照会サーバーへ、前記クライアントデバイスによって、オブジェクトへの第１の１つまたは複数の照会を求め前記第１のサイト識別子を含む第１の照会リクエストを送るステップと、
前記オブジェクトへの前記第１の１つまたは複数の照会を、前記クライアントデバイスによって受け取るステップであって、前記第１の１つまたは複数の照会は順序付けられている、ステップと、
前記第１の１つまたは複数の照会を用いて、前記オブジェクトにアクセスするステップと、
を含む方法を実行させる命令を含むメモリと、
を含む、システム。
【請求項１１】
前記方法が、
前記クライアントデバイスを前記第１のゲートウェイサーバーから切断し、第２のゲートウェイサーバーに接続するステップと、
前記第２のゲートウェイサーバーに接続するステップと、
を更に含み、前記第１の１つまたは複数の照会を用いて前記オブジェクトにアクセスするステップは、前記第２のゲートウェイサーバーを経由する前記オブジェクトへのアクセスを要求するステップを含む、請求項１０に記載のシステム。
【請求項１２】
前記第２のゲートウェイサーバーは第２のサイトに配置されており、前記第１の１つまたは複数の照会は、前記第２のゲートウェイサーバーの前記第２のサイトと前記複数のストレージサーバーの最も近接している１つとの間の地理的距離によって順序付けられている、請求項１１に記載のシステム。
【請求項１３】
前記方法が、
前記クライアントデバイスを前記第１のゲートウェイサーバーから切断するステップと、
前記クライアントデバイスを第２のゲートウェイサーバーに接続するステップと、
前記第２のゲートウェイサーバーのための第２のサイトを識別する第２のサイト識別子を前記クライアントデバイスによって取得するステップと、
前記オブジェクト照会サーバーへ、前記クライアントデバイスによって、前記オブジェクトへの第２の１つまたは複数の照会を求め前記第２のサイト識別子を含む第２の照会リクエストを送るステップと、
前記オブジェクトへの前記第２の１つまたは複数の照会を、前記クライアントデバイスによって受け取るステップであって、前記第２の１つまたは複数の照会は、前記第１の１つまたは複数の照会とは異なるように順序付けられている、ステップと、
前記第２の１つまたは複数の照会を用いて、前記オブジェクトにアクセスするステップと、
を更に含む、請求項１０〜１２のいずれか一項に記載のシステム。
【請求項１４】
リモートクライアントデバイスによるオブジェクトへの最小コストでのアクセスを提供するためのシステムであって、
第１のサイトに配置されており、前記リモートクライアントデバイスに対して企業ネットワークへのアクセスを提供するように構成されている第１のゲートウェイサーバーと、
前記第１のゲートウェイサーバーに動作可能に接続されており、複製され前記企業ネットワーク上の複数のストレージサーバーに格納されている第１のオブジェクトへの順序付
けられた照会を提供するように構成されているオブジェクト照会サーバーと、
を含んでおり、前記複数のストレージサーバーは、前記第１のゲートウェイサーバーに動作可能に接続され、前記複製された第１のオブジェクトを記憶するように構成され、
前記第１のゲートウェイサーバーは前記リモートクライアントデバイスに接続するように構成され、
前記オブジェクト照会サーバーは、
前記リモートクライアントデバイスから、前記第１の複製されたオブジェクトへの第１の１つまたは複数の照会を求める第１の照会リクエストを受け取り、
前記第１のサイトから前記複数のストレージサーバーのうちの１つまたは複数への最小コストでのアクセスの計算を実行し、
前記計算に基づいて前記１つまたは複数の照会を順序付け、
前記１つまたは複数の照会を、前記リモートクライアントデバイスに提供するように構成されている、システム。
【請求項１５】
前記オブジェクト照会サーバーは、更に、前記最小コストでのアクセスの計算を実行するときに、前記１つまたは複数の照会のうちの少なくとも１つに対して、第２のゲートウェイサーバーから前記第１のオブジェクトへのアクセスのコストを決定するように構成されている、請求項１４に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、企業ネットワークの外部から分散ファイルシステムへのサイト認識アクセスに関する。
【背景技術】
【０００２】
[0001]多くの会社および他の企業が、その企業のための情報管理を容易にするために、イントラネットなどのネットワークを維持管理している。イントラネットは分散型とすることができ、複数の地理的位置にサーバーおよびデバイスを含むことがある。そのような位置は、その位置の内部にあるデバイスを接続するローカルエリアネットワークと、位置間で複数のマシンを接続するワイドエリアネットワークとを含みうる。更には、現代の企業活動の地球的な性質により、企業は、家庭で就業するまたは旅行中の従業員および他の者による、そのイントラネット上に格納されている情報へのリモートアクセスを容易にしなければならないことの蓋然性がより高まってきた。まさに、このような一般的な環境に、本明細書で提供されるシステムおよび方法は関係しているのである。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
企業ネットワークの外部から分散ファイルシステムへのサイト認識アクセスを提供する。
【課題を解決するための手段】
【０００４】
[0002]この概要は、以下の詳細な説明において詳述される概念の選択された一部を簡略化された形式で紹介するために、提供されている。この概要は、特許請求される主題の鍵となる特徴または本質的な特徴を識別するものとしても、特許請求される主題の範囲を決定するのに役立つものとしても意図されていない。
【０００５】
[0003]実施形態は、企業ネットワークにリモートから接続するクライアントデバイスが、サイトを認識した態様で動作することを可能にするように構成されている。いくつかの実施形態では、リモートクライアントデバイスが、企業ネットワークの第１のゲートウェイサーバーに接続する。クライアントデバイスは、第１のゲートウェイサーバーが属しているサイトを識別する第１のサイト識別子を受け取る。クライアントデバイスは、１つまたは複数の照会（referral）を求める第１の照会リクエストをターゲットオブジェクトに送るが、この照会リクエストは、ゲートウェイサーバーのサイト識別子を含む。クライアントデバイスは、ターゲットオブジェクトへの１つまたは複数の照会の順序付けられた集合を受け取り、これらの照会を用いてオブジェクトにアクセスする。
【０００６】
[0004]別の実施形態においては、第１のゲートウェイサーバーと、オブジェクト照会サーバーと、複数のストレージサーバーとを備えたシステムが提供される。第１のゲートウェイサーバーは、リモートクライアントデバイスを企業ネットワークに接続するように動作可能である。第１のゲートウェイサーバーは、リモートクライアントデバイスに、その第１のゲートウェイサーバーが属するサイトを識別するサイト識別子を送る。オブジェクト照会サーバーは、リクエストされた（１つまたは複数の）オブジェクトに照会を提供するように動作可能である。リクエストされた（１つまたは複数の）オブジェクトは、複製され複数のストレージサーバーに格納されうる。オブジェクト照会サーバーが照会を求めるリクエストを受け取ると、そのリクエストには、第１のゲートウェイデバイスのサイト識別子が含まれている。オブジェクト照会サーバーは、複数のストレージサーバーのうちの１つまたは複数からリクエストされた（１つまたは複数の）オブジェクトにアクセスするコストを決定する。オブジェクト照会サーバーは、計算されたコストに従って、リクエストされた（１つまたは複数の）オブジェクトへの照会を順序付け、順序付けられた照会をクライアントデバイスに送る。
【０００７】
[0005]これらのおよび他の特徴および効果が、以下の詳細な説明を読み添付の図面を検討することにより明らかになるはずである。以上の一般的な説明と以下の詳細な説明との両者とも単に説明を目的とするものであって、特許請求された本発明を限定するものではないことを理解すべきである。
【図面の簡単な説明】
【０００８】
【図１】[0006]本開示に従ってリクエストされたオブジェクトへの最小コストでのアクセスを提供するためのシステムの実施形態の図である。
【図２】[0007] 本開示に従ってリクエストされたオブジェクトへの最小コストでのアクセスを提供するためのシステムの別の実施形態の図である。
【図３】[0008] 本開示に従ってリクエストされたオブジェクトへの最小コストでのアクセスを提供するための方法の実施形態の図である。
【図４】[0009]本開示に従ってリクエストされたオブジェクトへの最小コストでのアクセスを提供するための方法の別の実施形態の図である。
【図５】[0010] そのような照会と関係するアクセスの計算されたコストに従ってリクエストされたオブジェクトへの照会を順序付ける方法の実施形態の図である。
【図６】[0011]そのような照会と関係するアクセスの計算されたコストに従ってリクエストされたオブジェクトへの照会を順序付ける方法の別の実施形態の図である。
【図７】[0012]本開示のシステムおよび方法との関係で用いられうる例示的なコンピューティング環境の図である。
【発明を実施するための形態】
【０００９】
[0013]本発明によるシステムおよび方法によると、企業ネットワークにリモートから接続しているクライアントデバイスが、サイトを認識している態様で動作することが可能になる。ネットワークにわたる複数の場所にファイルを複製できる分散ファイルシステムでは、リクエスト側クライアントに最も近接して配置されている（または、クライアントおよびネットワークに関する最小の全体的「コスト」で、リクエスト側クライアントによるアクセスが可能である）所望の情報のレプリカへのリクエスト側クライアント照会（または経路）を提供する点で利点がある。例えば、クライアントが特定のサイトに接続され、そのクライアントがアクセスを望んでいるファイルのレプリカがそのサイトに配置されている場合には、そのクライアントに、別のレプリカではなく、そのサイトにあるレプリカを参照させるのが一般的には好ましい。しかし、このようなサイト認識型の照会は、クライアントリクエストが生じたサイトを参照側のサーバーが認識している場合に、可能になる。クライアントリクエストが「サイトレス」モードで生じている場合には、その情報は一般的に入手できない。なお、ここで「サイトレス」モードとは、参照側のサーバーにとって認識可能なサイトを、リクエストが識別しないようなモードである。本発明によるシステムおよび方法によると、リモートクライアントデバイスは、その照会リクエストを用いて信頼性を持ってサイトを識別することが可能になることによって、参照側の（１つまたは複数の）サーバーが、リクエストに応答してサイト認識型の照会を提供することができる。
【００１０】
[0014]図１には、本開示によるシステム１００の実施形態が記載されている。示されている実施形態では、３つのサイト１０１、１０２、および１０３が提供されている。実施形態では、１つのサイトが、限定された地理的領域にわたって接続された１つまたは複数のコンピューティングデバイスを含む場合がある。例えば、イーサネットまたはＷｉＦｉ経由で接続された複数のコンピューティングデバイスのローカルエリアネットワークを１つのサイトと考えることがある。この例では、サイト１０１は、ワイドエリアネットワーク（ＷＡＮ）リンク１０４および１０５を用いて、サイト１０２および１０３の両方に接続されている。ＷＡＮリンク１０４および１０５は、実施形態では、サイト１０１、１０２、および１０３の間で私的にリースされたネットワーク接続を含みうる。一般的にいって、ＷＡＮリンク１０４および１０５のための帯域幅は、サイト１０１、１０２、および１０３の内部のローカルエリアネットワーク、または、インターネットのような公的なネットワーク１０６の使用のためのものよりも高価である。サイト１０１、１０２、および１０３とＷＡＮリンク１０４および１０５とは、共に、ある会社のためのイントラネットなどの例示的な企業ネットワーク１０９（図１では破線によって示されている）を含みうる。
【００１１】
[0015]図１では、サイト１０１、１０２、および１０３は、同一ではない。例えば、サイト１０１は、会社などの企業の「ホームオフィス」でありうる。サイト１０２および１０３は、企業のサテライトオフィスでありうる。示されている例示的な実施形態では、サイト１０１は、ストレージサーバー１０７、ローカルに接続されたクライアントデバイス１１０、オブジェクト照会サーバー１１５、ゲートウェイサーバー１２０、およびディレクトリサーバー１２２を含んでおり、これらは、すべて、例えばサイト１０１の内部のローカルエリアネットワークを用いて、相互に動作可能に接続されている。
【００１２】
[0016]サイト１０２は、ゲートウェイサーバー１２５、ローカルに接続されたクライアントデバイス１３０、およびストレージサーバー１３５を含んでおり、これらは、すべて、例えばサイト１０２の内部のローカルエリアネットワークを用いて、相互に動作可能に接続されている。同様に、サイト１０３は、ゲートウェイサーバー１４０、ローカルに接続されたクライアントデバイス１４５、およびストレージサーバー１５０を含んでおり、これらは、すべて、例えばサイト１０３の内部のローカルエリアネットワークを用いて、相互に動作可能に接続されている。
【００１３】
[0017]いくつかの実施形態では、ストレージサーバー１０７、１３５、および１５０は、ポータル、イントラネットウェブサイト、インストール可能なソフトウェア、および他のドキュメントなどのファイルを格納する。そのようなファイルの任意のものは、ここでは、「オブジェクト」とも称されうる。実施形態では、あるストレージサーバーに格納されているファイルのうちのいくつかは、米国ワシントン州レドモンド所在のマイクロソフトコーポレーションから入手可能な分散ファイルシステム複製サービス（ＤＦＳR）を用いることにより、１つまたは複数の他のストレージサーバーに複製されることがある。いくつかの実施形態では、いくつかのファイルは、サイト１０１、１０２、および１０３のそれぞれにおけるローカルに接続されたクライアント１１０、１３０、および１４５がファイルのローカルなコピーにアクセスできるように、複製される。ストレージサーバー１０７、１３５、および１５０のうちの複数においてファイルが複製されることにより、ローカルに接続されたクライアントデバイス１１０、１３０、および１４５によるアクセスがより容易になると共に、待機時間が小さくなり、ＷＡＮリンク１０４および１０５の使用が限定的になる。
【００１４】
[0018]いくつかの実施形態では、ローカルに接続されたクライアントデバイス１４５などのローカルに接続されたクライアントデバイスが、以下のようにして複製されたファイルにアクセスする。この例では、企業ネットワーク１０９は、サイト１０１に配置された単一のオブジェクト照会サーバー１１５を含む。オブジェクト照会サーバー１１５は、（ストレージサーバー１０７、１３５、および１５０に格納されているファイルなどの）オブジェクトへの照会を、クライアントデバイス１４５などのクライアントに提供する。図１にはオブジェクト照会サーバー１１５がひとつだけ示されているが、これは、図を簡潔にするためである。いくつかの実施形態では、企業ネットワーク１０９の内部に、追加的なオブジェクト照会サーバーが提供されることがありうる。例えば、オブジェクト照会サーバー１１５のコンテンツは、サイト１０２に配置されているサーバーにおいて複製されうる。クライアントデバイス１４５があるファイルに対する照会リクエストを行うと、オブジェクト照会サーバー１４５は、まず、クライアントデバイス１４５が属するサイト１０３を決定する。いくつかの実施形態では、クライアントデバイス１４５によってなされる照会リクエストは、クライアントデバイス１４５のＩＰアドレスを含む。いくつかの実施形態では、クライアントデバイス１４５によってなされる照会リクエストが、クライアントデバイス１４５のサブネットマスクを含むこともある。オブジェクト照会サーバー１１５は情報をディレクトリサーバー１２２に提供し、ディレクトリサーバー１２２は、クライアントデバイス１４５がサイト１０３の一部であると判断して、その情報をオブジェクト照会サーバー１１５に返す。いくつかの実施形態では、ディレクトリサーバー１２２は、米国ワシントン州レドモンド所在のマイクロソフトコーポレーションから入手可能なアクティブディレクトリー（ＡＣＴＩＶＥ  ＤＩＲＥＣＴＯＲＹ（登録商標））サーバー（またはドメインコントローラー（ＤＣ））を含みうる。オブジェクト照会サーバー１１５が、次に、リクエストされたファイルに対する照会の集合をクライアントデバイス１４５に返す。照会は、ストレージサーバー１０７、１３５、および１５０のうちの１つまたは複数に格納されているリクエストされたファイルのレプリカへの経路を含みうる。
【００１５】
[0019]いくつかの実施形態では、クライアントデバイス１４５に返された照会は、返された照会の第１のものが、クライアントデバイス１４５と同じサイト１０３にあるストレージサーバー１５０におけるファイルのレプリカへの経路となるような最小コストの態様で、順序付けられる。いくつかの実施形態では、リクエストされたファイルは、すべてのストレージサーバーで複製されるとは限らず、また、ストレージサーバー１５０に存在しない場合もありうる。従って、オブジェクト照会サーバー１１５は、クライアントデバイス１４５がリクエストされたファイルにアクセスするための「次善の」オプションに従って、返された照会を順序付けることもある。例えば、リクエストされたファイルがストレージサーバー１０７とストレージサーバー１３５とに存在するが、ストレージサーバー１５０には存在しない場合には、オブジェクト照会サーバー１１５は、最初に、ストレージサーバー１０７の内部のリクエストされたファイルのストレージ位置に照会を返し、そして次に、ストレージサーバー１３５の内部のリクエストされたファイルのストレージ位置に照会を返す。その理由は、クライアントデバイス１４５がストレージサーバー１０７にアクセスするのにはただ１つのＷＡＮリンク１０４が要求されるのに対して、ストレージサーバー１３５にアクセスするのには２つのＷＡＮリンク１０４および１０５が要求されるからである。
【００１６】
[0020]この例では、ディレクトリサーバー１２２は、クライアントデバイス１４５のサイト１０３を決定することができる。その理由は、クライアントデバイス１４５のＩＰアドレスは、クライアント１４５がサイト１０３へのローカルな接続を経由してサインオンしたときに、企業ネットワーク１０９によって割り当てられるからである。いくつかの実施形態では、企業ネットワーク１０９の外部からリモートで接続するクライアントにとっては、これは正しくない。例えば、ゲートウェイサーバー１２５などのゲートウェイサーバーを経由して企業ネットワーク１０９の外部からリモートで接続するクライアントは、そのインターネットサービスプロバイダ（ＩＳＰ）によって割り当てられたＩＰアドレスを有するのが、一般的である。ＩＳＰによって提供されたＩＰアドレスは、一般的に、ディレクトリサーバー１２２などのディレクトリサーバーには認識可能でない。クライアントが接続してきているサイトを、信頼性を持って決定することができない場合には、オブジェクト照会サーバー１１５などのオブジェクト照会サーバーは、ファイルへの最小コストでのアクセスを達成するように順序付けられている複製された複数のファイルへの照会をインテリジェントに提供することができない。
【００１７】
[0021]しかし、本開示は、リモートから接続されているクライアントが複製されたファイルへのサイト認識型の照会を受け取るためのシステムおよび方法を提供する。例えば、図１を再び参照すると、クライアントデバイス１６０は、ゲートウェイサーバー１２５を経由して企業ネットワーク１０９にリモートから接続されている。ゲートウェイサーバー１２５（ならびにゲートウェイサーバー１０７および１４０）は、クライアント１６０などのリモートクライアントが、インターネットなどの公共ネットワーク１０６を経由して企業ネットワーク１０９に接続することを可能にするサーバーを含みうる。いくつかの実施形態では、ゲートウェイサーバー１２５は、米国ワシントン州レドモンド所在のマイクロソフトコーポレーションから入手可能なダイレクトアクセス（ＤＩＲＥＣＴＡＣＣＥＳＳ（登録商標））サーバーを含む。クライアントデバイス１６０は、例えばＩＰｖ６およびＩＰＳｅｃプロトコルを用いて、安全にゲートウェイサーバー１２５に接続することができる。いくつかの実施形態では、相互認証およびＮＡＰ（ネットワークアクセスプロテクション）チェックが終了した後で、クライアントデバイス１６０とゲートウェイサーバー１２５との間にＩＰＳｅｃトンネルが確立される。いくつかの実施形態では、クライアントデバイス１６０は、まず、クライアントデバイス１６０自体に地理的に最も近接したゲートウェイサーバーに接続する。
【００１８】
[0022]例えば、クライアントデバイス１６０のユーザーがある企業のホームオフィスの一員であると仮定するが、この様子は図１のサイト１０１によって表されている。ユーザーは、典型的には、ホームオフィスにいるときには、サイト１０１にローカルに接続する。この例では、サイト１０１は米国ニューヨーク州ニューヨーク市にあると仮定する。しかし、ユーザーは、クライアントデバイス１６０を持って、ヨーロッパを旅行している。サイト１０２は英国のロンドンにあり、クライアントデバイス１６０は、現在、ユーザーと共にドイツのベルリンにあるホテルに存在している。ユーザーがクライアントデバイス１６０にログオンすると、クライアントデバイス１６０は、最も近接しているゲートウェイサーバー、この場合にはサイト１０２におけるゲートウェイサーバー１２５を経由して企業ネットワーク１０９に接続する。最も近接したゲートウェイサーバーを発見し接続することは、様々なキャプチャの態様で実行できる。例えば、クライアントデバイス１６０は、ゲートウェイサーバーの機知のＩＰアドレスのリストをピングし、クライアントデバイス１６０に最初の応答を返すゲートウェイサーバーに接続しうる。いくつかの実施形態では、クライアントデバイス１６０は、また、ＩＰｖ６のソーティングアルゴリズムを用いて、ゲートウェイサーバーに対する既知のＩＰアドレスのリストをソートすることもある。
【００１９】
[0023]ゲートウェイサーバー１２５に接続すると、クライアントデバイス１６０は、ゲートウェイサーバー１２５に対するサイト識別子をゲートウェイサーバー１２５から受け取る。他の実施形態では、クライアントデバイス１６０は、ゲートウェイサーバー１２５に接続する前に、ゲートウェイサーバー１２５に対するサイト識別子を受け取る場合もある。例えば、クライアントデバイス１６０は、企業ネットワーク１０９におけるすべてのゲートウェイサーバー１２０、１２５、および１４０のサイト識別子を予め与えられていることもある。クライアントデバイス１６０は、次に、ローカルなストレージからまたは別のアクセス可能なストレージ位置から、それ自体が接続されているゲートウェイサーバー１２５に対するサイト識別子を取得することができる。サイト識別子は、例えば、企業ネットワーク１０９によって割り当てられたゲートウェイサーバー１２５のＩＰアドレス（サブネットマスクを伴う場合も伴わない場合もある）を含みうる。他の実施形態では、サイト識別子は、「ロンドン」など、サイト１０２に対する解決されたサイト名を含むことがある。
【００２０】
[0024]いくつかの実施形態では、クライアントデバイス１６０上で動作しているネットワークアクセスクライアントプログラム１６５が、企業ネットワーク１０９への接続を交渉するためのメッセージの交換の間に、サイト識別子を受け取る。上述したように、他の実施形態では、ゲートウェイ１２５のためのサイト識別子はクライアントデバイス１６０に既に知られていて、ネットワークアクセスクライアントプログラム１６５が、クライアントデバイス１６０上のローカルなストレージから、または、別のアクセス可能なストレージ位置から、サイト識別子を取得する。いったんゲートウェイ１２５に対するサイト識別子が取得されると、ネットワークアクセスクライアントプログラム１６５は、サイト識別子をクライアントデバイスパラメーター１７０の中に書き込む。いくつかの実施形態では、クライアントデバイスパラメーター１７０は、クライアントデバイス１６０に対する構成とオペレーティングシステムパラメーターとのためのファイルまたは他のストレージ機構を含みうる。クライアントデバイス１６５が米国ワシントン州レドモンド所在のマイクロソフトコーポレーションから入手可能なマイクロソフトウィンドウズ（登録商標）オペレーティングシステムを動作させている実施形態では、クライアントデバイスパラメーター１７０は、レジストリキーを含みうる。その例では、サイト識別子は、ネットログオンによって維持管理される「サイト名」というレジストリキーの中に書き込まれる。
【００２１】
[0025]いくつかの実施形態では、クライアントデバイスパラメーター１７０が変化すると、クライアントデバイス１６０上で動作しているオブジェクト照会クライアントプログラム１７５に通知が送られる。オブジェクト照会クライアントプログラム１７５は、クライアントデバイスパラメーター１７０からサイト識別子を読み出し、そのサイト識別子を、企業ネットワーク１０９の内部でのオブジェクト照会を求める将来のリクエストにおいて用いる。実際、クライアントデバイス１６０は、それ自体が接続されているゲートウェイサーバー１２５から、サイト１０２を取り入れる。
【００２２】
[0026]上述の例を継続するが、クライアントデバイス１６０のオブジェクト照会クライアントプログラム１７５は、サイト認識型照会に対するリクエストを、ターゲットファイルに送る。なお、ターゲットファイルのレプリカは、ストレージサーバー１０７とストレージサーバー１３５との両方に格納されている。照会に対するリクエストは、ゲートウェイサーバー１２５とＷＡＮリンク１０５とを経由してオブジェクト照会サーバー１１５に送られる。このリクエストには、ゲートウェイサーバー１２５から取得されたサイト識別子の明示的な宣言が含まれる。サイト識別子が完全に解決されたサイト名（例えば、「ロンドン」）である場合には、オブジェクト照会サーバー１１５は、クライアント１６０のサイトを判断するためにディレクトリサーバー１２２に接触することは必要ない。ゲートウェイデバイス１２５のＩＰアドレスなどのように、サイト識別子が解決されていない場合には、オブジェクト照会サーバー１１５は、解決されたサイト名を返送するディレクトリサーバー１２２にサイト識別子を送ることによって、クライアント１６０のサイトを決定する。
【００２３】
[0027]いずれのイベントでも、オブジェクト照会サーバー１１５は、リクエストされたターゲットファイルへの１つまたは複数の照会のリストを生成する。この例では、ターゲットファイルは、ストレージサーバー１０７とストレージサーバー１３５との両方におけるレプリカを含む。クライアントデバイス１６０が照会リクエストにおいてサイト識別子を提供しているので、オブジェクト照会サーバーは、サイト識別子によって識別されるサイト（この例では、サイト１０２）からターゲットファイルへの最小コストでの照会を決定する。従って、ターゲットファイルはサイト１０２の中にあるストレージサーバー１３５において入手可能であるから、オブジェクト照会サーバー１１５は、ターゲットファイルへの最小コストでのアクセスはストレージサーバー１３５に格納されているレプリカを経由するものであると判断する可能性が高い。従って、オブジェクト照会サーバー１１５は、クライアントデバイス１６０に送り返される照会のリストにおいて、ストレージサーバー１３５上のレプリカへの照会が１番目になるように順序付ける。また、オブジェクト照会サーバー１１５は、いくつかの実施形態では、ストレージサーバー１３５が利用不可能または動作不可能である場合には、ストレージサーバー１０７上のターゲットファイルのレプリカへの照会を返すこともありうる。ストレージサーバー１０７上のターゲットファイルのレプリカへの照会は、この例では、ストレージサーバー１３５上のレプリカへの照会の後に来るように、順序付けできる。論じているように、いくつかの実施形態では、オブジェクト照会サーバー１１５によってクライアントデバイス１６０に提供される照会は、１つまたは複数のターゲットファイルのそれぞれのレプリカへのファイルシステム経路を含みうる。
【００２４】
[0028]いくつかの実施形態では、オブジェクト照会サーバー１１５は、様々なファクターに基づいて最小コストでのアクセスを決定しうる。例えば、最小コストでのアクセスの決定は、照会リクエストで提供されているサイトとターゲットであるファイルレプリカを含む最も近接したストレージサーバーとの間の地理的距離に基づいてなされうる。他の実施形態では、最小コストでのアクセスの決定は、クライアントデバイス１６０がターゲットであるファイルレプリカにアクセスするために通過することが要求される通信リンクのコストに基づいてなされうる。例えば、いくつかの実施形態では、サイト１０３におけるストレージサーバー１５０に格納されているレプリカにアクセスするためには、クライアントデバイス１６０は、ゲートウェイサーバー１２５などのゲートウェイサーバーから切断され、ゲートウェイサーバー１４０など別のゲートウェイサーバーに再接続されることがある。
【００２５】
[0029]いくつかの実施形態では、図１で説明されているシステムにより、クライアントデバイスは、企業ネットワーク１０９への様々な異なるアクセスポイントとの間で、接続、切断、および再接続することが可能になる。例えば、クライアントデバイス１６０は、従業員がメインオフィスで働いている間は、サイト１０１におけるローカルに接続されたデバイスとして最初に接続されうる。この従業員は、１日休みをとり、クライアントデバイスを自宅に持っていくことがありうる。そして、自宅でその従業員が再びログオンすると、クライアントデバイス１６０はゲートウェイデバイス１２０に接続することになる。クライアントデバイス１６０は、そのとき、ゲートウェイサーバー１２０のサイト識別子を、例えばゲートウェイサーバー１２０から、または、ローカルなストレージからもしくは別のアクセス可能なストレージ位置から取得する。照会リクエストは、クライアントデバイス１６０が接続されている間は、上述した態様でゲートウェイサーバー１２０のサイト識別子を用いて、サイト１０１に配置されたクライアントに対して最適化されているリクエストされたオブジェクトへの照会を受け取る。上の例を継続するが、この従業員が自分のクライアントデバイスを休止状態モードに切り換え、ヨーロッパに旅行して、自分のホテルの部屋から仕事をすると仮定する。クライアントデバイス１６０は、休止状態モードから元の状態に戻されると、ゲートウェイサーバー１２５により近いことを発見する。従って、クライアントデバイス１６０は、ゲートウェイサーバー１２５との新たな接続を確立し、ゲートウェイサーバー１２５に対するサイト識別子を、例えばゲートウェイサーバー１２５から、または、ローカルなストレージもしくは別のアクセス可能なストレージ位置から取得する。すると、オブジェクト照会を求めるそれ以後のリクエストは、ゲートウェイサーバー１２５のサイト識別子を用いることにより、受け取られる照会はサイト１０２に接続されたクライアントに対して最適化される。いくつかの実施形態では、新たなサイト識別子が受け取られる度（例えば、クライアントデバイスが休止状態モードから元の状態に戻され、ゲートウェイサーバー１２５に再接続されるとき）に、ネットワークアクセスクライアントプログラム１６５は、クライアントデバイスパラメーター１７０の中のそれ以前に設定されていたサイト識別子を、新たなサイト識別子を用いて上書きする。更に、いくつかの実施形態では、オブジェクト照会クライアントプログラム１７５は、クライアントデバイスパラメーター１７０に格納されているサイト識別子が変更される度に、アラートを受け取る。
【００２６】
[0030]この出願で開示されているファイルの複製と照会とは、いくつかの実施形態では、米国ワシントン州レドモンド所在のマイクロソフトコーポレーションによって提供される分散ファイルシステム（ＤＦＳ）を用いて、達成することができる。ＤＦＳは、複製と複製されたファイルへの照会を実行するために、いくつかの関連するプログラムを用いる。例えば、ファイルの複製は、マイクロソフトコーポレーションから入手可能な分散ファイルシステム複製プロトコル仕様（ＭＳ−ＦＲＳ２）を用いて、達成することができる。更に、米国ワシントン州レドモンド所在のマイクロソフトコーポレーションから入手可能な分散ファイルシステム（ＤＦＳ）照会プロトコル仕様（ＤＦＳ照会）により、ファイルシステムクライアントが、リモートファイルシェアに、そのシェアのためのＤＦＳ経路（または仮想的な名前）を用いることにより、アクセスすることが可能になる。そして、これは、実際のファイルサーバー上の実際のシェア名に透明性を維持しながら解決される。例えば、ＤＦＳは、（ストレージサーバー１０７、１３５、および１５０など）異なる複数のファイルサーバー上に配置されているシェアの集合の、統一された名前空間へのグルーピングを可能にすることができる。ＤＦＳがないとすると、サーバーメッセージブロック（ＳＭＢ）やサーバーメッセージブロックバージョン２（ＳＭＢ２）などのネットワークファイルシステムのユーザーは、アクセスを要求するすべてのファイルサーバーとそれらのファイルサーバー上に存在するファイルの名前を知っていることが要求される。ＤＦＳ照会を用いると、ユーザーは、個別のファイルサーバーとデータをホストしているシェアの名前に関する知識がなくても、ファイルおよびフォルダーにアクセスするために統一された名前空間をナビゲートすることができる。
【００２７】
[0031]ＤＦＳ照会は、２つのタイプの名前空間をサポートする。すなわち、高い可用性と負荷バランスを与えるドメインベースの名前空間と、単一のＤＦＳルートターゲットサーバー上に存在しドメインインフラストラクチャーを要求しないスタンドアロンの名前空間とである。スタンドアロンのＤＦＳ名前空間では、クライアントは、ルート照会リクエストを生じ、照会リクエストを直接にＤＦＳルートターゲットサーバーにリンクさせる。図１に関して説明された実施形態は、スタンドアロンのＤＦＳ名前空間を用いて作成することができる。例えば、オブジェクト照会クライアントプログラム１７５は、ＤＦＳクライアントアプリケーションを含み、オブジェクト照会サーバー１１５は、（ストレージサーバー１０７、１３５、および１５０などの）ファイルサーバー上に配置された企業ネットワーク１０９におけるすべての複製されたファイルに対する照会を発行するスタンドアロンのＤＦＳ名前空間サーバーを含みうる。図１の例では、オブジェクト照会サーバー１１５は、単一の名前空間の一部であるストレージサーバー１０７、１３５、および１５０のすべてにおけるターゲットファイルへの照会を提供する。
【００２８】
[0032]図２は、図１に示されている実施形態と類似の実施形態を示しているが、複数のオブジェクト照会サーバー２１５、２２７、および２４７が用いられている。この実施形態では、サイト２０１、２０２、および２０３の各サイトが、それ自体のディレクトリサーバー２２２、２２８、および２４８をそれぞれ有している。ディレクトリサーバー２２２、２２８、および２４８は、この例示的な実施形態では、オブジェクト照会サーバー２１５、２２７、および２４７のためのロケーターを含みうる。
【００２９】
[0033]この例では、サイト２０１は、ＷＡＮリンク２０４および２０５を用いてサイト２０２および２０３の両方に接続されている。サイト２０１、２０２、および２０３と、ＷＡＮリンク２０４および２０５とは、共に、会社のイントラネットなど例示的な企業ネットワーク２０９を含みうる。図１と同様に、図２のサイト２０１、２０２、および２０３は、同一ではなく、それぞれが、別個の名前空間を含みうる。例えば、サイト２０１は、会社など企業の「ホームオフィス」でありうる。サイト２０２および２０３は、企業のサテライトオフィスでありうる。示されている例示的な実施形態では、サイト２０１は、ストレージサーバー２０７、ローカルに接続されたクライアントデバイス２１０、オブジェクト照会サーバー２１５、ゲートウェイサーバー２２０、およびディレクトリサーバー２２２を含んでおり、これらは、すべて、例えばサイト２０１の内部のローカルエリアネットワークを用いて、相互に動作可能に接続されている。
【００３０】
[0034]サイト２０２は、ゲートウェイサーバー２２５、ローカルに接続されたクライアントデバイス２３０、オブジェクト照会サーバー２２７、ディレクトリサーバー２２８、およびストレージサーバー２３５を含んでおり、これらは、すべて、例えばサイト２０２の内部のローカルエリアネットワークを用いて、相互に動作可能に接続されている。同様に、サイト２０３は、ゲートウェイサーバー２４０、ローカルに接続されたクライアントデバイス２４５、オブジェクト照会サーバー２４７、ディレクトリサーバー２４８、およびストレージサーバー２５０を含んでおり、これらは、すべて、例えばサイト２０３の内部のローカルエリアネットワークを用いて、相互に動作可能に接続されている。
【００３１】
[0035]いくつかの実施形態では、ストレージサーバー２０７、２３５、および２５０は、ポータル、イントラネットウェブサイト、インストール可能なソフトウェア、および他のドキュメントなどのファイルを格納する。そのようなファイルの任意のものは、ここでは、「オブジェクト」とも称されうる。更に、本明細書で述べるように、オブジェクト照会サーバー２１５、２２７、２４７は照会がなされる「オブジェクト」と考えられる。いくつかの実施形態では、あるストレージサーバーに格納されているファイルのうちのいくつかは、ＤＦＳＲを用いることなどにより、１つまたは複数の他のストレージサーバーに複製されることがある。いくつかの実施形態では、いくつかのファイルは、サイト２０１、２０２、および２０３のそれぞれにおけるローカルに接続されたクライアント２１０、２３０、および２４５がファイルのローカルなコピーにアクセスできるように、複製される。
【００３２】
[0036]本開示は、リモートから接続されているクライアントが、複数のオブジェクト照会サーバーとディレクトリサーバーとを備えた分散ファイルシステムにおいて、複製されたファイルへのサイト認識型の照会を受け取るためのシステムおよび方法を提供する。例えば、図２を再び参照すると、クライアントデバイス２６０は、ゲートウェイサーバー２２５を経由して企業ネットワーク２０９にリモートから接続されている。ゲートウェイサーバー２２５（ならびにゲートウェイサーバー２０７および２４０）は、クライアント２６０などのリモートクライアントが、インターネットなどの公共ネットワーク２０６を経由して企業ネットワーク２０９に接続することを可能にするサーバーを含みうる。いくつかの実施形態では、ゲートウェイサーバー２２５は、ダイレクトアクセス（ＤＩＲＥＣＴＡＣＣＥＳＳ（登録商標））サーバーを含む。クライアントデバイス２６０は、例えばＩＰｖ６プロトコルを用いて、安全にゲートウェイサーバー２２５に接続することができる。相互認証およびＮＡＰチェックが終了した後で、クライアントデバイス２６０とゲートウェイサーバー２２５との間にＩＰＳｅｃトンネルが確立される。いくつかの実施形態では、クライアントデバイス２６０は、まず、クライアントデバイス２６０自体に地理的に最も近接したゲートウェイサーバーに接続する。
【００３３】
[0037]例えば、クライアントデバイス２６０のユーザーがある企業のオームオフィスの一員であると仮定するが、この様子が図２のサイト２０１によって表されている。ユーザーは、典型的には、ホームオフィスにいるときには、サイト２０１にローカルに接続する。この例では、サイト２０１は米国ニューヨーク州ニューヨーク市にあると仮定する。しかし、ユーザーは、クライアントデバイス２６０を持って、ヨーロッパを旅行している。サイト２０２は英国のロンドンにあり、クライアントデバイス２６０は、現在、ユーザーと共にドイツのベルリンにあるホテルに存在している。ユーザーがクライアントデバイス２６０にログオンすると、クライアントデバイス２６０は、最も近接しているゲートウェイサーバー、この場合にはサイト１０２におけるゲートウェイサーバー２２５を経由して、企業ネットワーク２０９に接続する。
【００３４】
[0038]ゲートウェイサーバー２２５に接続すると、クライアントデバイス２６０は、ゲートウェイサーバー２２５に対するサイト識別子をゲートウェイサーバー２２５から受け取る。いくつかの実施形態では、クライアントデバイス２６０は、ゲートウェイサーバー２２５に接続する前に、ゲートウェイサーバー２２５に対するサイト識別子を受け取る場合がある。例えば、クライアントデバイス２６０は、企業ネットワーク２０９におけるすべてのゲートウェイサーバー２２０、２２５、および２４０のサイト識別子を予め与えられていることがある。サイト識別子は、例えば、企業ネットワーク２０９によって割り当てられたゲートウェイサーバー２２５のＩＰアドレス（サブネットマスクを伴う場合も伴わない場合もある）を含みうる。他の実施形態では、サイト識別子は、「ロンドン」など、サイト２０２に対する解決されたサイト名を含むことがある。
【００３５】
[0039]いくつかの実施形態では、クライアントデバイス２６０上で動作しているネットワークアクセスクライアントプログラム２６５が、企業ネットワーク１０９への接続を交渉するためのメッセージの交換の間に、サイト識別子を受け取る。上述したように、他の実施形態では、ゲートウェイ２２５のためのサイト識別子はクライアントデバイス２６０に既に知られていて、ネットワークアクセスクライアントプログラム２６５が、クライアントデバイス２６０上のローカルなストレージから、または、別のアクセス可能なストレージ位置から、サイト識別子を取得する。いったんゲートウェイ２２５からサイト識別子が取得されると、ネットワークアクセスクライアントプログラム２６５は、サイト識別子をクライアントデバイスパラメーター２７０の中に書き込む。いくつかの実施形態では、クライアントデバイスパラメーター２７０が変化すると、クライアントデバイス２６０上で動作しているオブジェクト照会クライアントプログラム２７５に通知が送られる。オブジェクト照会クライアントプログラム２７５は、クライアントデバイスパラメーター２７０からサイト識別子を読み出し、そのサイト識別子を、企業ネットワーク２０９の内部でのオブジェクト照会を求める将来のリクエストにおいて用いる。実際、クライアントデバイス２６０は、それ自体が接続されているゲートウェイサーバー２２５から、サイト２０２を取り入れる。
【００３６】
[0040]クライアントデバイス２６０は、次に、ターゲットファイルにアクセスすることを試みるが、このターゲットファイルのレプリカは、ストレージサーバー２３５および２０７の両方に存在する。クライアントデバイス２６０のオブジェクト照会クライアントプログラム２７５は、上述の例の続きであるが、リクエストを、ターゲットファイルの名前空間に適切であるディレクトリサーバーのリストのためのドメインネームシステム（ＤＮＳ）サーバー（図示せず）に送る。この例では、オブジェクト照会プログラム２７５は、ディレクトリサーバー２２８のためのアドレスを受け取る。オブジェクト照会クライアントプログラム２７５は、オブジェクト照会サーバーへの最小コストでのアクセスを求める照会リクエストをディレクトリサーバー２２８に送る。この照会リクエストは、ゲートウェイサーバー２２５に対する取得されたサイト識別子の明示的な宣言を含む。ディレクトリサーバー２２８は、そのようなオブジェクト照会サーバーへの最小コストでのアクセスに基づいて、オブジェクト照会サーバーの順序が付けられたリストを返しうる。この例では、ディレクトリサーバー２２８は、サイト２０２におけるオブジェクト照会サーバー２２７への照会を含めて、オブジェクト照会サーバーへの照会の順序が付けられたリストを返す。いくつかの実施形態では、ディレクトリサーバー２２８などのディレクトリサーバーは、オブジェクト照会サーバー２２７などの、オブジェクトへの照会を提供するオブジェクト照会サーバーとして機能する。
【００３７】
[0041]オブジェクト照会クライアントプログラム２７５は、次に、オブジェクト照会サーバー２２７から特定のファイルへの照会をリクエストする。この照会リクエストには、ゲートウェイサーバー２２５から受け取られたサイト識別子が含まれる。オブジェクト照会サーバー２２７は、リクエストされたターゲットファイルへの１つまたは複数の照会のリストを生成する。この例では、ターゲットファイルは、ストレージサーバー２０７とストレージサーバー２３５との両方におけるレプリカを含む。クライアントデバイス２６０が照会リクエストにおいてサイト識別子を提供しているので、オブジェクト照会サーバーは、サイト識別子によって識別されるサイト（この例では、サイト２０２）からターゲットファイルへの最小コストでの照会を決定する。従って、ターゲットファイルはサイト２０２の中にあるストレージサーバー２３５において入手可能であるから、オブジェクト照会サーバー２２７は、ターゲットファイルへの最小コストでのアクセスはストレージサーバー２３５に格納されているレプリカを経由するものであると判断する可能性が高い。従って、オブジェクト照会サーバー２２７は、クライアントデバイス２６０に送り返される照会のリストにおいて、ストレージサーバー２３５上のレプリカへの照会が１番目になるように順序付ける。また、オブジェクト照会サーバー２２７は、いくつかの実施形態では、ストレージサーバー２３５が利用不可能または動作不可能である場合には、ストレージサーバー２０７上のターゲットファイルのレプリカへの照会を返すこともありうる。ストレージサーバー２０７上のターゲットファイルのレプリカへの照会は、この例では、ストレージサーバー２３５上のレプリカへの照会の後に来るように、順序付けできる。論じているように、いくつかの実施形態では、オブジェクト照会サーバー２２７によってクライアントデバイス２６０に提供される照会は、１つまたは複数のターゲットファイルのそれぞれのレプリカへのファイルシステム経路を含みうる。
【００３８】
[0042]いくつかの実施形態では、オブジェクト照会サーバー２２７は、様々なファクターに基づいて、最小コストでのアクセスを決定しうる。例えば、最小コストでのアクセスの決定は、照会リクエストで提供されているサイトとターゲットファイルのレプリカを含む最も近接したストレージサーバーとの間の地理的距離に基づいてなされうる。他の実施形態では、最小コストでのアクセスの決定は、クライアントデバイス２６０がターゲットファイルのレプリカにアクセスするために通過することが要求される通信リンクのコストに基づいて、なされうる。例えば、いくつかの実施形態では、サイト２０１におけるストレージサーバー２０７に格納されているレプリカにアクセスするためには、クライアントデバイス２６０は、ゲートウェイサーバー２２５などのゲートウェイサーバーから切断され、ゲートウェイサーバー２２０など別のゲートウェイサーバーに再接続されることがある。
【００３９】
[0043]ウィンドウズ（登録商標）オペレーティングシステムとＤＦＳ照会とを用いるドメインベースの名前空間を用いる実施形態に対しては、（クライアント２６０などの）クライアントは、（ディレクトリサーバー２２８などの）ドメインコントローラー（ＤC）への照会リクエストを生じ、ドメインの存在とＤＦＳ名前空間の存在とを発見する。クライアントは、特定のＤＦＳ名前空間のホストである（オブジェクト照会サーバー２２７などの）ＤＦＳルートターゲットサーバーを発見するために、ＤＣへの照会リクエストを発行する。クライアントは、また、ＤＦＳ名前空間のホストである（オブジェクト照会サーバー２１５などの）他のＤＦＳルートターゲットサーバーを発見するために、ＤＦＳルートターゲットサーバーへの照会リクエストを発行することもできる。クライアントは、（ストレージサーバー２０７、２３５、および２５０などの）ファイルサーバー上のファイルなど、ＤＦＳリンクターゲットの位置を発見するために、ＤＦＳルートターゲットサーバーへの照会リクエストを発行する。ＤＦＳ経路のコンポーネントが特定のターゲットに解決された後で、クライアントは、次に、そのサーバーに対する適切なリモートファイルシステムプロトコルを用いて、直接にファイルサーバーへのファイルシステムリクエストを発行する。
【００４０】
[0044]図１および２で説明されている実施形態では、照会リクエストのために用いられている基礎となるトランスポートプロトコルは、アプリケーション層のネットワークプロトコルを含みうる。例えば、ＤＦＳ照会を用いる実施形態では、サーバーメッセージブロック（ＳＭＢ）プロトコルまたはサーバーメッセージブロックバージョン２（ＳＭＢ２）プロトコルが、トランスポート層として用いられうる。ＤＦＳ照会によって、ＳＭＢおよびＳＭＢ２のファイルシステムクライアントが、多くのサーバーおよび地理的位置にわたって分散されている名前空間からの名前を、特定のファイルサーバーにおけるローカルな名前に解決することが可能になる。名前が解決された後では、クライアントは、ＳＭＢプロトコル、ＳＭＢバージョン２．０プロトコルおよびＮＦＳプロトコルなどファイルシステムプロトコルを用いることにより、識別されたサーバー上のファイルに直接にアクセスすることができる。
【００４１】
[0045]図３には、図１との関係で説明したシステムなど、分散型ファイルシステム上に配置されているファイルへの最小コストでのアクセスを取得するための方法３００が示されている。理解されるべきであるように、本明細書でのいかなる方法のために説明される特定のステップおよび方法は、排他的なものではない。当業者には理解されるように、ここで説明されるステップの特定の順序は方法を限定することを意図していない。例えば、ステップは、異なる順序で実行されることがありうるし、追加的なステップが実行されることもあり、開示されているステップを、本開示の精神から逸脱することなく、排除することも可能である。
【００４２】
[0046]方法３００は、クライアントデバイス１６０などのリモートクライアントを、ゲートウェイサーバー１２５などの第１のゲートウェイサーバーに接続する（３１０）ことによって開始する。いくつかの実施形態では、これは、クライアントデバイスにインストールされたネットワークアクセスクライアントプログラム１６５などのネットワークアクセスクライアントプログラムを用いて、達成される。方法３００は、ステップ３２０に進み、そこで、第１のサイト識別子が取得される。いくつかの実施形態では、クライアントデバイスは、ゲートウェイサーバーに接続した後で、ゲートウェイサーバーに対するサイト識別子を受け取ることがある。他の実施形態では、ゲートウェイサーバーに対するサイト識別子は、ゲートウェイサーバーへの接続よりも前に受け取られ、クライアントデバイスにローカルに格納されることがあり、また、ローカルなストレージまたは別のアクセス可能なストレージ位置からサイト識別子を取り出すことによって取得されることもある。例えば、クライアントデバイスは、企業ネットワークにおけるすべてのゲートウェイサーバーのサイト識別子を予め与えられている場合もある。いくつかの実施形態では、受け取られたサイト識別子は、ゲートウェイサーバーに対するＩＰアドレス（サブネットマスクを有する場合と有しない場合とがある）を含みうる。別の実施形態では、サイト識別子は、完全に解決されたサイト名を含むこともある。
【００４３】
[0047]方法３００は、ステップ３３０に進み、そこで、第１のサイト識別子が、クライアントデバイスのクライアントパラメーターに格納される。例えば、クライアントがマイクロソフトのウィンドウズ（登録商標）オペレーティングシステムを用いている実施形態であれば、ステップ３３０は、クライアントデバイスのレジストリキーを設定することを含みうる。例えば、サイト識別子は、Ｎｅｔｌｏｇｏｎによって維持管理されるＳｉｔｅＮａｍｅレジストリキーにおいて存続しうる。このレジストリキーに関する詳細は、次の通りである。すなわち、キーの名称はＳｉｔｅＮａｍｅであり、パスは、ＨＫＬＭ￥ＳＹＳＴＥＭ￥ＣｕｒｒｅｎｔＣｏｎｔｒｏｌＳｅｔ￥Ｓｅｒｖｉｃｅｓ￥Ｎｅｔｌｏｇｏｎ￥Ｐａｒａｍｅｔｅｒｓである。
【００４４】
[0048]このレジストリキーは、クライアントデバイスが存在しているとアサートするサイトを決定することができる。ネットワークアクセスクライアントプログラムは、いったんゲートウェイサーバーからサイト名を受け取ると、Ｎｅｔｌｏｇｏｎによって維持管理されているＳｉｔｅＮａｍｅレジストリキーを事前設定する。更に、いくつかの実施形態では、ＳｉｔｅＮａｍｅレジストリキーを設定することにより、クライアントデバイス上のオブジェクト照会クライアントプログラムが、リモートネットワーク接続が確立されたとのアラートを受けることになる。別の実施形態では、オブジェクト照会クライアントプログラムは、ネットワークリストマネジャインフラストラクチャを用いて登録し、クライアントデバイスがリモートからネットワークに接続されていると判断するためにサイト接続性フラグをチェックすることがある。
【００４５】
[0049]クライアントデバイスがゲートウェイから切断されると、サイト識別子はクライアントパラメーターから削除されることがあるし、および／または、接続性フラグが、クライアントデバイスはもはやゲートウェイサーバーのサイトに属していないことをオブジェクト照会クライアントプログラムに通知するためにリセットされることがある。更に、クライアントデバイスがゲートウェイサーバーから切り離され、別のゲートウェイサーバーに再接続される場合には、クライアントデバイスがリモートから接続されている新たなサイトについてのアラートをオブジェクト照会クライアントプログラムに与えるために、新たなゲートウェイサーバーのサイト識別子がクライアントパラメーターの中に挿入される。あるいは、オブジェクト照会クライアントプログラムは、クライアントデバイス上のアプリケーションプログラミングインターフェース（ＡＰＩ）に登録することで、クライアントパラメーターに格納されているサイト識別子が変更される度に、または、クライアントデバイスによるリモートからの接続状態が変化すると、通知を受け取ることがある。例えば、以下の状況は、いずれも、クライアントパラメーターに格納されているサイト名に反映されるクライアントデバイスのサイトの変化を生じさせうる。すなわち、（ａ）クライアントデバイスが、サイトのローカルエリアネットワーク（ＬＡＮ）に接続していた後で、ゲートウェイサーバーに接続する場合（例えば、ある従業員が、外国を旅行していて、あるサイトのＬＡＮに接続されていたときに自分のラップトップをハイバーネーションモードにしていたが、ラップトップを元の状態に戻し、別のサイトにおけるゲートウェイサーバーに接続した場合）、（ｂ）ある時間間隔の間ゲートウェイサーバーから接続していた後で、企業ネットワークに再び参加するクライアントデバイス（例えば、ある従業員が、外国を旅行していて、ホテルの部屋からリモートで働き、ラップトップをハイバーネーションモードにし、次に、あるサイトのＬＡＮへ直接に接続されるときにラップトップを元の状態に戻す場合）、または（ｃ）クライアントデバイスが別のゲートウェイサーバーおよびサイトに接続する場合（例えば、従業員が自宅からローカルなゲートウェイサーバーに接続しているときにラップトップがハイバーネーションモードにされ、その後で、別のサイトにおける別のゲートウェイサーバーに接続する場合）などである。
【００４６】
[0050]ステップ３４０では、サイト識別子が取り出される。いくつかの実施形態では、これは、オブジェクト照会クライアントプログラムが、クライアントデバイス上に格納されているクライアントパラメーターからサイト識別子を取り出すことを含みうる。例えば、サイトを認識している照会リクエストをするために、オブジェクト照会クライアントプログラムは、クライアントデバイスが接続されている現在のサイトを返すディレクトリサービスアプリケーションプログラミングインターフェース（ＡＰＩ）を呼び出す。いくつかの実施形態では、そのようなＡＰＩは、典型的には、サイトを動的に決定するように構成されうるが、しかし、サイト識別子がクライアントパラメーターにおいて明示的に設定されている（例えば、ステップ３３０で）ときには、明示的に設定されたクライアントパラメーターの値は、動的に決定されたサイトを上書きすることがある。
【００４７】
[0051]ステップ３５０では、サイト認識照会リクエストが、オブジェクト照会サーバーに送られる。照会リクエストは、ステップ３４０で取り出されたサイト識別子を含む。いくつかの実施形態では、照会リクエストは、アクセスが求められているターゲットオブジェクトまたはファイルを含む。非排他的な例として、以下では、ＤＦＳ照会との関係である潜在的な照会リクエストについて説明する。
【００４８】
[0052]ＤＦＳ照会プロトコルは、照会リクエストを作成するために、定義されたメッセージであるＲＥＱ＿ＧＥＴ＿ＤＦＳ＿ＲＥＦＥＲＲＡＬを提供する。このＲＥＱ＿ＧＥＴ＿ＤＦＳ＿ＲＥＦＥＲＲＡＬというメッセージは、ＳＭＢおよびＳＭＢ２がそれぞれトランスポートプロトコルとして用いられるときにＳＭＢ＿ＣＯＭ＿ＴＲＡＮＳＡＣＴＩＯＮ２メッセージとＦＳＣＴＬ＿ＤＦＳ＿ＧＥＴ＿ＲＥＦＥＲＲＡＬＳ  ＩＯＣＴＬとを経由して移動するペイロードである。しかし、ＲＥＱ＿ＧＥＴ＿ＤＦＳ＿ＲＥＦＥＲＲＡＬのメッセージは、サイト認識照会を受け取るためにクライアントコンピューターがそのサイト名をオブジェクト照会サーバーまで送る方法を提供しない。
【００４９】
[0053]従って、ＲＥＱ＿ＧＥＴ＿ＤＦＳ＿ＲＥＦＥＲＲＡＬ＿ＥＸと称される照会リクエストメッセージの新しいタイプが用いられ、リモートに接続されているクライアントデバイス（クライアントデバイス１６０など）が、照会を要求しているターゲットファイル経路に加え、ゲートウェイサーバーから取得したサイト名をオブジェクト照会サーバーまで送ることが可能になる。このメッセージは、後述するようにＳＭＢ２に追加される新たなＦＳＣＴＬ＿ＤＦＳ＿ＧＥＴ＿ＲＥＦＥＲＲＡＬＳ＿ＥＸ  ＩＯＣＴＬ経由のペイロードでありうる。この例ではＲＥＱ＿ＧＥＴ＿ＤＦＳ＿ＲＥＦＥＲＲＡＬ＿ＥＸと称されるサイト認識照会リクエストのメッセージおよびパケットフォーマットとその応答とについて、次に述べる。例えば、サイト認識照会リクエストのための可能なメッセージフォーマットは、次の表１に示されている。
【００５０】
【表１】
0005932841.tif 000002
[0054]上述した例示的なメッセージフォーマットでは、ＭａｘＲｅｆｅｒｒａｌＬｅｖｅｌが、クライアントデバイスによって理解される最高のＤＦＳ照会バージョンを示す１６ビットの整数を含む。ＲｅｑｕｅｓｔＦｌａｇｓは、一連のフラグを表す１６ビットのフィールドを含む。フラグにおけるビットのそれぞれは、その後に来るリクエストバッファにおけるフィールドの存在を示すために設定される。この例では、ＳｉｔｅＮａｍｅビットだけが定義され用いられている。「ＳｉｔｅＮａｍｅ」ビットは、パケットが照会を要求しているクライアントデバイスのサイト識別子を含む場合には、１に設定される。ＲｅｑｕｅｓｔＤａｔａＬｅｎｇｔｈは、照会リクエストに伴うデータ長を特定する３２ビットの整数を含む。照会リクエストに伴うデータ（ＲｅｑｕｅｓｔＤａｔａ）のフォーマットは、ＲｅｑｕｅｓｔＦｌａｇｓフィールドにおけるビット集合に従って解釈される。ＲｅｑｕｅｓｔＤａｔａは、長さがＲｅｑｕｅｓｔＤａｔａＬｅｎｇｔｈのバッファを含み、また、ＤＦＳ名前空間サーバーから要求されている照会に特有の情報を含む。
【００５１】
[0055]非排他的な実施形態では、ＲＥＱ＿ＧＥＴ＿ＤＦＳ＿ＲＥＦＥＲＲＡＬ＿ＥＸという照会リクエストのＲｅｑｕｅｓｔＤａｔａ部分は、次の表２を含みうる。
【００５２】
【表２】
0005932841.tif 000003
[0056]この例では、ＲｅｑｕｅｓｔＦｉｌｅＮａｍｅＬｅｎｇｔｈは、照会リクエストの中のＲｅｑｕｅｓｔＦｉｌｅＮａｍｅストリングの長さを特定する１６ビットの整数値を含む。ＲｅｑｕｅｓｔＦｉｌｅＮａｍｅは、解決される経路を特定するゼロで終わるユニコードストリングを含みうる。フィールドの順序は実装例に特有であり、いくつかの実施形態では、フォーマットは、以下で示すように、クライアントデバイスによって作られつつある照会リクエストのタイプに依存しうる。
【００５３】
Ｄｏｍａｉｎ  ｒｅｆｅｒｒａｌ：経路は、空のストリング（単に、ゼロの終端子を含む）でありうる。クライアントは、ドメイン照会リクエストのために、ＤＦＳ照会のバージョン３またはそれ以降を用いることができる。
【００５４】
Ｄｉｒｅｃｔｏｒｙ  ｓｅｒｖｅｒ  ｒｅｆｅｒｒａｌ：経路は、”￥＜ｄｏｍａｉｎ＞”または”＜ｄｏｍａｉｎ＞”のいずれかでありうる。ここで、＜ｄｏｍａｉｎ＞は、ＮｅｔＢＩＯＳ形式または完全に認定されたドメインネームのいずれかの形式のドメインネームである。応答経路のフォーマットは、リクエスト経路のフォーマットと一致しうる。例えば、リクエスト経路がＮｅｔＢＩＯＳ形式である場合には、応答経路もまたＮｅｔＢＩＯＳ形式でありうる。クライアントは、ｓｙｓｖｏｌ照会リクエストのために、ＤＦＳ照会のバージョン３またはそれ以降を用いることができる。
【００５５】
Ｓｙｓｖｏｌ  ｒｅｆｅｒｒａｌ：経路は、”￥＜ｄｏｍａｉｎ＞￥ＳＹＳＶＯＬ”または”￥＜ｄｏｍａｉｎ＞￥ＮＥＴＬＯＧＯＮ”のいずれかでありうる。ここで、＜ｄｏｍａｉｎ＞は、ＮｅｔＢＩＯＳ形式または完全に認められたドメインネームのいずれかの形式のドメインネームである。応答経路のフォーマットは、リクエスト経路のフォーマットと一致しうる。例えば、リクエスト経路がＮｅｔＢＩＯＳ形式である場合には、応答経路もまたＮｅｔＢＩＯＳ形式でありうる。クライアントは、ｓｙｓｖｏｌ照会リクエストのために、ＤＦＳ照会のバージョン３またはそれ以降を用いることができる。
【００５６】
Ｒｏｏｔ  ｒｅｆｅｒｒａｌ：経路は、”￥＜ｄｏｍａｉｎ＞￥＜ｄｆｓｎａｍｅ＞”の形式か、または、”￥＜ｓｅｒｖｅｒ＞￥＜ｄｆｓｎａｍｅ＞”の形式のいずれかでありうる。ここで、＜ｄｏｍａｉｎ＞はＤＦＳ名前空間をホストするドメインの名前であり、＜ｄｆｓｎａｍｅ＞はＤＦＳ名前空間の名前であり、＜ｓｅｒｖｅｒ＞はＤＦＳルートターゲットホスト名である。ＮｅｔＢＩＯＳと完全に認められたドメインネームとがサポートされうる。
【００５７】
Ｌｉｎｋ  ｒｅｆｅｒｒａｌ：経路は、”￥＜ｄｏｍａｉｎ＞￥＜ｄｆｓｎａｍｅ＞￥＜ｌｉｎｋｐａｔｈ＞”の形式か、または、”￥＜ｓｅｒｖｅｒ＞￥＜ｄｆｓｎａｍｅ＞￥＜ｌｉｎｋｐａｔｈ＞”の形式のいずれかでありうる。ここで、＜ｄｏｍａｉｎ＞はＤＦＳ名前空間をホストするドメインの名前であり、＜ｄｆｓｎａｍｅ＞はＤＦＳ名前空間の名前であり、＜ｓｅｒｖｅｒ＞はＤＦＳルートターゲットホスト名であり、＜ｌｉｎｋｐａｔｈ＞はＤＦＳリンクを有しうる経路である。ＮｅｔＢＩＯＳと完全に認められたドメインネームとがサポートされうる。
【００５８】
[0057]この例では、ＳｉｔｅＮａｍｅＬｅｎｇｔｈは、照会リクエストの中のＳｉｔｅＮａｍｅストリングの長さを特定する３２ビットの整数値を含みうる。同様に、ＳｉｔｅＮａｍｅは、上述しように、クライアントデバイスが接続されているゲートウェイサーバーの取得されたサイト識別子など、サイト識別子を特定するゼロで終わるユニコードストリングを含みうる。上述したように、いくつかの実施形態では、ゲートウェイサーバーが属するサイトのサイト名である。他の実施形態では、サイト識別子は、クライアントデバイスが接続されているゲートウェイサーバーのＩＰアドレスを含む場合があり、その場合、上述したパケット構造が、サイト名に加えて、または、サイト名の代わりに、ゲートウェイサーバーのＩＰアドレスに対応するように変更されうる。このストリングの長さは、ＳｉｔｅＮａｍｅＬｅｎｇｔｈフィールドの値によって決定される。
【００５９】
[0058]本開示によって考察された照会リクエストに対応するためには、基礎となるトランスポートプロトコルを修正することが必要となる場合がある。例えば、ＳＭＢ２が基礎となるトランスポートプロトコルとして用いられ、上述した例示的なＲＥＱ＿ＧＥＴ＿ＤＦＳ＿ＲＥＦＥＲＲＡＬ＿ＥＸという照会リクエストをサポートする限り、ＳＭＢ２は、以下のように修正される必要がある。この例では、新たなＳＭＢ  ＩＯＣＴＬが定義され、ＦＳＣＴＬ＿ＤＦＳ＿ＧＥＴ＿ＲＥＦＥＲＲＡＬＳ＿ＥＸと呼ばれる。オブジェクト照会クライアントプログラムは、ＲＥＱ＿ＧＥＴ＿ＤＦＳ＿ＲＥＦＥＲＲＡＬ＿ＥＸというメッセージ構造を満たし、ＦＳＣＴＬ＿ＤＦＳ＿ＧＥＴ＿ＲＥＦＥＲＲＡＬＳ＿ＥＸ＿ＩＯＣＴＬをＳＭＢ２に与える。ＩＯＣＴＬのペイロードは、クライアントコンピューター（照会を要求しているＤＦＳ名前空間クライアント）のＩＰアドレスと共に、ＳＭＢによってオブジェクト照会サーバー（ドライバー）に配送される。
【００６０】
[0059]再び図３を参照すると、ステップ３６０において、順序付けられたオブジェクト照会が受け取られる。いくつかの実施形態では、リモートクライアントデバイス上で動作しているオブジェクト照会クライアントプログラムが、ステップ３５０でなされた照会リクエストに応答して、オブジェクト照会サーバーから、順序付けられた照会を受け取りうる。いくつかの実施形態では、オブジェクト照会は、ＲＥＳＰ＿ＧＥＴ＿ＤＦＳ＿ＲＥＦＥＲＲＡＬメッセージなどのＤＦＳ照会メッセージの中で受け取られることがある。
【００６１】
[0060]方法３００はステップ３７０に進み、ターゲットオブジェクトまたはファイルが、ステップ３６０において受け取られたオブジェクト照会のうちの１つまたは複数を用いて、アクセスされる。例えば、受け取られた（１つまたは複数の）オブジェクト照会が共用されているストレージサーバー上の１つまたは複数のファイルレプリカへの経路を含む場合には、クライアントデバイスは、受け取られたオブジェクト照会を用いてそのような（１つまたは複数の）レプリカを取り出すリクエストを発行しうる。例えば、クライアントデバイスは、第１の順序のオブジェクト照会を用いることを試みるのであるが、それがうまくいかない場合には、ターゲットオブジェクトまたはファイルへのアクセスが達成されるまで、次の順序のオブジェクト照会を用いる。いくつかの実施形態では、クライアントデバイスは、ターゲットオブジェクトまたはファイルへのアクセスを試みるには、どのオブジェクト照会を最初に用いるべきかを決定するために、それ自体で、オブジェクト照会をソートまたは再度の順序付けを行うことがある。
【００６２】
[0061]図４は、図２の例示的なシステムのような複数のディレクトリサーバーとオブジェクト照会サーバーとを有するシステムにおいて、ファイルへの最小コストでのアクセスを得る方法４００の実施形態を示している。ステップ４１０においては、クライアントデバイス２６０によって、ゲートウェイサーバー２２５などの第１のゲートウェイサーバーへの接続がなされる。方法４００は、ステップ４２０に進み、そこでは、第１のサイト識別子が得られる。上述したように、ゲートウェイサーバーのサイト識別子は、ステップ４１０において、接続プロセスの一部として、クライアントデバイスによって受け取られうる。他の実施形態では、ゲートウェイサーバーのサイト識別子は、ローカルなストレージまたは別のアクセス可能なストレージ位置からサイト識別子を取り出すことによって、取得することができる。いくつかの実施形態では、サイト識別子は、ゲートウェイサーバーのＩＰアドレスまたはゲートウェイサーバーが属するサイトのサイト名を含む。いったんステップ４２０でゲートウェイサーバーのサイト識別子が得られると、方法４００は、ステップ４３０に進み、そこで、サイト識別子がクライアントデバイスのクライアントパラメーターに格納される。上述したように、クライアントデバイス上で動作しているネットワークアクセスクライアントプログラムは、クライアントデバイス上で、レジストリキーなどのクライアントパラメーターセッティングにサイト識別子を格納しうる。
【００６３】
[0062]ステップ４４０では、サイト識別子が取り出される。上述したように、クライアントデバイス上で動作しているオブジェクト照会クライアントプログラムは、例えば、クライアントパラメーターに変更があったという通知を受け取った後で、サイト識別子を取り出すことがある。ステップ４５０では、１つまたは複数のディレクトリサーバーが発見される。いくつかの実施形態では、クライアントデバイスは、特定のターゲットファイルの名前空間に適切なディレクトリサーバーのリストを求めて、リクエストをドメインネームシステム（ＤＮＳ）サーバーに送る。いったん（１つまたは複数の）ディレクトリサーバーのリストが受け取られると、フローはステップ４６０に進む。
【００６４】
[0063]ステップ４６０では、照会リクエストが、ステップ４５０で識別された（１つまたは複数の）ディレクトリサーバーの少なくとも１つに送られる。照会リクエストは、ステップ４４０で取り出されたサイト識別子を含みうる。この場合、照会リクエストは、ターゲットファイルに照会を提供するのに適切なオブジェクト照会サーバーへの照会を求めるリクエストである。ステップ４７０では、オブジェクト照会サーバーへの順序付けられた照会のリストが受け取られる。
【００６５】
[0064]ステップ４８０では、照会リクエストが、例えばクライアントデバイスにより、ゲートウェイサーバーを通過して、ステップ４７０で受け取られた照会において識別されたオブジェクト照会サーバーの少なくとも１つに、送られる。いくつかの実施形態では、クライアントデバイスは、照会リクエストを、ステップ４７０で受け取られた照会の順序付けられたリストに照会がリスト化されている第１のオブジェクト照会サーバーに、送ることを試みる。そのリクエストがうまくいかない場合には、クライアントデバイスは、照会リクエストが成功するまで、リスト上にある次の照会を用いることを試みる。
【００６６】
[0065]ステップ４９０では、オブジェクト照会のリストが受け取られる。いくつかの実施形態では、照会のリストが、アクセスの最小コストに従って、順序付けられる。いくつかの実施形態では、クライアントデバイスは、照会のリストと共に受け取られたまたはクライアントによって他に得られた情報に基づいて、照会の順序付けを行いうる。ステップ４９５では、ターゲットファイルまたはオブジェクトが、ステップ４９０で受け取られた照会のリストを用いてアクセスされる。例えば、クライアントデバイスは、第１の順序のオブジェクト照会を用いることを試みるのであるが、それがうまくいかない場合には、ターゲットオブジェクトまたはファイルへのアクセスが達成されるまで、次の順序のオブジェクト照会を用いる。
【００６７】
[0066]図５は、オブジェクト照会サーバーがクライアントデバイスへの順序付けられたオブジェクト照会を提供する方法５００の実施形態を示している。いくつかの実施形態では、方法５００は、オブジェクト照会サーバー（オブジェクト照会サーバー１１５、２１５、２２７、および２４７、または、ディレクトリサーバー１２２、２２２、２２８、および２４８）によって実行されうる。ステップ５１０では、照会リクエストが受け取られる。いくつかの実施形態では、照会リクエストは、リクエスト側のクライアントデバイスのサイトを識別するサイト識別子と、ターゲットオブジェクトとの両方を含む。いくつかの実施形態では、ターゲットオブジェクトは、とりわけ、オブジェクト照会サーバーまたはストレージサーバー上に格納されているファイルでありうる。
【００６８】
[0067]ステップ５２０では、照会のための基準を満たす候補オブジェクトが決定される。例えば、照会が要求されるオブジェクトが分散ファイルシステムに格納されているファイルを含む場合には、そのファイルのレプリカが候補オブジェクトであり、そのファイルのレプリカの位置が決定される。ステップ５３０では、それぞれの候補オブジェクトへのアクセスのコストが決定される。例えば、いくつかの実施形態では、アクセスのコストは、照会リクエストに含まれるサイト識別子において識別されるサイトとそれぞれの候補オブジェクトを格納しているストレージサーバーとの間の地理的距離に基づいて、決定される。他の実施形態では、より高度なコストの決定がなされる。
【００６９】
[0068]例えば、いくつかの実施形態では、ステップ５１０で受け取られた照会リクエストが、（ａ）クライアントデバイスがゲートウェイサーバーを経由してリモートから接続されているかどうか、そして、（ｂ）クライアントデバイスが自発的にその現在のゲートウェイサーバーから切断し、別のゲートウェイサーバーに再接続するか、を示しうる。この実施形態では、クライアントが異なるゲートウェイサーバーに自発的に再接続する場合には、それぞれの候補オブジェクトへのアクセスのためのコスト計算は、照会リクエストにおいて識別されたものとは異なるサイトからのアクセスのコストを考慮することがある。
【００７０】
[0069]例えば、図１の例示的なシステムを参照し、ターゲットオブジェクトはレプリカがストレージサーバー１０７および１５０に存在するがストレージサーバー１３５には存在しないファイルであると仮定する。更に、ゲートウェイサーバーは動作していないと仮定する。オブジェクト照会サーバー１１５がクライアントデバイス１６０からの照会リクエストを受け取ると、その照会リクエストには、クライアントをサイト１０２に属するものと識別するサイト識別子が含まれる（その理由は、クライアントデバイスが、ゲートウェイ１２５によって提供されたサイト識別子を受け取り、そして用いるからである）。更に、この例について、照会リクエストは、クライアントデバイス１６０がリモートから接続されており、異なるゲートウェイサーバーを経由して自発的に再接続するということを、オブジェクト照会サーバー１１５に示すと仮定する。
【００７１】
[0070]オブジェクト照会サーバー１１５は、２つの候補オブジェクトを識別するのだが、これらは、ストレージサーバー１０７および１５０上に存在するターゲットファイルのレプリカである。オブジェクト照会サーバー１１５が、サイト１０２であるクライアント１６０のサイトに基づいてそれぞれの候補オブジェクトにアクセスするコストを計算する場合には、候補オブジェクトへの照会を、以下のように順序付ける。すなわち、ストレージサーバー１０７上のレプリカが第１であり、ストレージサーバー１５０上のレプリカが第２とする。この理由は、サイト１０２からストレージサーバー１０７へのアクセスはただ１つの（比較的高価な）ＷＡＮリンク１０５を要求するのに対し、ストレージサーバー１５０へのアクセスは２つのＷＡＮリンク１０５、１０４を通過することを要求するからである。しかし、いくつかの実施形態では、オブジェクト照会サーバー１１５は、また、クライアントデバイス１６０は異なるゲートウェイサーバーに自発的に再接続するということを、考慮する場合がある。ゲートウェイサーバー１２０は動作不能状態であり、従って、ストレージサーバー１０７上のレプリカへのアクセスのコストは依然としてＷＡＮリンク１０５を通過することを含む。しかし、ストレージサーバー１５０上のレプリカへのアクセスは、クライアントデバイス１６０をゲートウェイサーバー１２５から切断してゲートウェイサーバー１４０に再接続することによって、達成することができる。クライアントデバイス１６０からゲートウェイサーバー１４０への公共ネットワーク接続は、実際、ＷＡＮリンク１０５よりも著しく安価でありうる。従って、ストレージサーバー１５０が、ストレージサーバー１０７よりもサイト１０２から更に地理的に離れているとしても、オブジェクト照会サーバー１１５は、ストレージサーバー１０７上のレプリカよりも、ストレージサーバー１５０上のレプリカにアクセスするためのより低い「コスト」を、計算することが可能である。
【００７２】
[0071]いくつかの実施形態では、候補オブジェクトのコストの計算は、多くの形式を取ることが可能であり、ＷＡＮリンク（または他の私的にリースされた回線）とリモートクライアントを別のゲートウェイサーバーに接続する公共ネットワークまたは他の通信回線の使用との相対的コストに関する情報を用いて通知される。更に、この実施形態では、オブジェクト照会サーバーは、利用可能なゲートウェイサーバーと、それらが配置されているサイトのリストへのアクセスを有する。
【００７３】
[0072]再び図５を参照すると、ステップ５４０では、候補オブジェクトへのリクエストされた照会が順序付けられる。いくつかの実施形態では、照会は、アクセスのコストに関する昇べき順に順序付けられる。他の順序付けプロトコルを用いることもできる。ステップ５５０では、順序付けられた照会が、例えば、リクエスト側のクライアントデバイスに送られる。いくつかの実施形態では、照会は、候補オブジェクトに対する単純なコスト計算（例えば、照会リクエストにおいて識別されたサイトから候補オブジェクトの地理的距離）に基づいて順序付けできる。他の実施形態では、照会は、クライアントデバイスは異なるゲートウェイサーバーに再接続するという仮定を含む計算に基づいて、順序付けられることもある。後者の場合には、順序付けられた照会は、更に、ターゲットオブジェクトへの最小コストでのアクセスを達成するように接続可能なまたは接続されるべき１つまたは複数の代替的なゲートウェイサーバーに関する命令またはアドレスを含みうる。例えば、それぞれの順序付けられた照会は、クライアントデバイスが接続すべきゲートウェイサーバーとリクエストされたオブジェクトへの経路との両方を識別しうる。
【００７４】
[0073]図６は、オブジェクト照会の与えられた集合に対して最小コストでのアクセスが決定される方法６００を説明している。例えば、クライアントデバイスは、ターゲットオブジェクトへの照会のリストを受け取り、それ自体で、それらの照会のそれぞれを用いてアクセスのコストを計算（または再計算）することがある。いくつかの実施形態では、ステップ６１０において、ターゲットオブジェクトに対する照会のリストが受け取られる。このリストは、例えば、オブジェクト照会サーバーへの照会を求めるリクエストに応答して、受け取られることがある。いくつかの実施形態では、このリストは、オブジェクト照会サーバーによるコスト計算に従って、順序付けられている場合、または、順序付けられていない場合がある。例えば、照会リクエストが、（クライアントデバイスが接続されているゲートウェイサーバーから受け取られるサイト識別子に基づく）クライアントデバイスのサイトの明示的宣言を含む場合には、オブジェクト照会サーバーは、識別されたサイトから候補オブジェクトにアクセスするコストに基づいて、照会を順序付けることがある。いくつかの実施形態では、オブジェクト照会サーバーは、候補オブジェクトへの照会のための、より高度なコスト計算を行うことができない場合がある。いくつかの実施形態では、クライアントデバイスは、それ自体のコスト計算に基づいて、照会の順序付けまたは再度の順序付けを行うことがある。
【００７５】
[0074]ステップ６２０では、ターゲットオブジェクトへのそれぞれの照会のためのアクセスのコストが計算される。いくつかの実施形態では、クライアントデバイスは、この計算をそれ自体で行うようにプログラムされている。他のいくつかの実施形態では、別のデバイスまたはサービスがその計算を実行することを、クライアントデバイスが要求することがある。図５との関係で上述したように、コスト計算は、クライアントデバイスがその現在のゲートウェイサーバーから切断され、別のサイトにある異なるゲートウェイサーバーに再接続することが可能である（および自発的にそうする）という偶発性を含むことがある。従って、コスト計算は、最も近接しているゲートウェイサーバーからターゲットオブジェクトまで、そのターゲットオブジェクトにアクセスするコストを含みうる。例えば、方法５００のステップ５３０に関して上述したように、コスト計算は、参照されているターゲットオブジェクトと同じサイトに存在する地理的に遠いゲートウェイサーバーへの公共ネットワーク接続（例えば、インターネット接続）は、ターゲットオブジェクトを保持しているストレージサーバーにＷＡＮリンクまたは他の私的にリースされた通信回線によって背宇属されている地理的に近接しているゲートウェイサーバーまでの接続よりも安価である可能性があるということを、考慮することがある。
【００７６】
[0075]いくつかの実施形態では、コストの計算は、（ａ）利用可能なゲートウェイサーバー、（ｂ）これらのゲートウェイサーバーが属するサイト（および、これらのサイトの位置）、企業ネットワークにおいて用いられる任意の私的にリースされた通信リンクとクライアントデバイスを（１つまたは複数の）ゲートウェイサーバーに接続するのに用いられる公共ネットワークとの相対的なコスト、および参照されるターゲットオブジェクトが格納されているサイトに関する、クライアントデバイスによって受け取られる情報によって、容易になる。この情報の一部または全部は、オブジェクト照会と共にオブジェクト照会サーバーによって、または、１つまたは複数の異なるネットワークデバイスによって、クライアントデバイスに提供されうる。
【００７７】
[0076]ステップ６３０では、ステップ６２０のコスト計算に従って、照会のリストが順樹付け（または再度の順序付け）される。ステップ６４０では、クライアントデバイスがその現在のゲートウェイサーバーから切断され異なるサーバーに再接続することが、用いられる照会によって要求されるかどうかが判断される。要求されない場合には、フローはステップ６６０に進む。要求される場合には、ステップ６５０において、クライアントデバイスは、その現在のゲートウェイサーバーから切断され、用いられるオブジェクト照会のために要求されるゲートウェイサーバーに再接続される。ステップ６６０では、オブジェクト照会が、上述したように、ターゲットオブジェクトにアクセスするのに用いられる。
【００７８】
[0077]図７には、本明細書で説明されている実施形態を実装するのに用いることができる汎用のコンピューティングデバイス７００（本明細書でデバイス、コンピュータまたはコンピュータシステムとも称する）が示されている。コンピューティングデバイス７００は、コンピューティング環境の単なる一例であって、コンピュータおよびネットワークアーキテクチャの使用または機能の範囲に関するいかなる制限を意味することを意図していない。また、コンピューティングデバイス７００は、例示的なコンピューティングデバイス７００に示されているコンポーネントのいずれかまたはそれらの組み合わせに関するいかなる従属性または要件を有するものとして解釈されるべきではない。いくつかの実施形態において、コンピューティングデバイス７００は、例えば、図１に関して上述した、クライアントデバイス１６０および２６０、オブジェクト照会サーバー１１５、２１５、２２７、および２４７、ディレクトリサーバー１２２、２２２、２２８、および２４８、ストレージサーバー１０７、２０７、１３５、２３５、１５０、および２５０、ならびに、ゲートウェイサーバー１２０、２２０、１２５、２２５、１４０、および２４０として、用いられうる。
【００７９】
[0078]その最も基本的な構成では、コンピューティングデバイス７００は、典型的には、少なくとも１つの処理ユニット７０２とメモリ７０４とを含む。コンピューティングデバイスの厳密な構成およびタイプに応じて、メモリ７０４は、（ＲＡＭなどの）揮発性、（ＲＯＭやフラッシュメモリなどの）不揮発性、またはこれら２つの組み合わせでありうる。この最も基本的な構成は、図７において、破線７０６によって示されている。システムメモリ７０４は、コンピューティングデバイス７００上で動作しているアプリケーションを格納する。アプリケーションに加え、メモリ７０４は、更に、図１から６との関係で説明された照会リクエスト７１０など、コンピューティングデバイス７００によって実行されている動作において用いられる情報を格納しうる。
【００８０】
[0079]更に、コンピューティングデバイス７００は、追加的な特徴／機能も有しうる。例えば、コンピューティングデバイス７００は、これらに限定されることはないが、磁気または光ディスクまたはテープを含む追加的なストレージ７０８（取り外し可能および／または取り外し不可能）を含みうる。このような追加的なストレージは、図７では、ストレージ７０８によって示されている。コンピュータストレージ媒体は、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータなどの情報を記憶するための任意の方法または技術で実装される、揮発性および不揮発性、取り外し可能および取り外し不可能な媒体を含む。メモリ７０４とストレージ７０８とは、コンピュータストレージ媒体の例である。コンピュータストレージ媒体には、これらに限定されることはないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリもしくは他のメモリ技術、ＣＤ−ＲＯＭ、デジタルバーサタイルディスク（ＤＶＤ）もしくは他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、または、所望の情報を格納するのに用いることができ、コンピューティングデバイス７００によるアクセスが可能な任意の他の媒体が含まれる。任意のそのようなコンピュータストレージ媒体は、コンピューティングデバイス７００の一部でありうる。当業者であれば想到しうるように、ストレージ７０８は様々な情報を格納することができる。他のタイプの情報の中で、ストレージ７０８は、照会７３０のリストを格納しうる。
【００８１】
[0080]コンピューティングデバイス７００は、また、システムが他のデバイスと通信することを可能にする（１つまたは複数の）通信接続７１２を含みうる。（１つまたは複数の）通信接続７１２は、通信媒体の一例である。通信媒体は、典型的には、コンピュータ可読命令、データ構造、プログラムモジュール、または、搬送波もしくは他の輸送機構などの変調されたデータにおける他のデータを具体化するものであり、任意の情報搬送媒体を含む。「変調されたデータ信号」という用語は、その信号における情報を符号化するような態様でその特性の１つまたは複数が設定または変更されているような信号を意味する。限定ではなく例示であるが、通信媒体は、ワイアードネットワークまたはダイレクトワイアード接続などのワイアード媒体と、音響、ＲＦ、赤外線および他のワイアレス媒体などのワイアレス媒体とを含む。ここで用いられているコンピュータ可読媒体という用語は、ストレージ媒体と通信媒体との両方を含む。
【００８２】
[0081]コンピューティングデバイス７００は、また、キーボード、マウス、ペン、音声入力デバイス、タッチ入力デバイスなどの（１つまたは複数の）入力デバイスを有しうる。ディスプレイ、スピーカ、プリンタなどの（１つまたは複数の）出力デバイス７１６も、含まれうる。
【００８３】
[0082]ここで説明されたシステムおよび方法が、それらに内在するものに加え、述べられている目的および効果を達成するように構成されていることは明らかであろう。当業者であれば、この明細書における方法およびシステムは多くの態様で実装することが可能であり、そのような実装の態様は、例示として上述した実施形態および実例によって限定されないことを認識するはずである。言い換えると、単一のまたは複数のコンポーネントによってハードウェアおよびソフトウェアの様々な組み合わせとして実行される機能的要素と、個々の機能とは、クライアントまたはサーバーのいずれかのレベルにおいて、複数のソフトウェアアプリケーションの間で分散させることが可能である。この点で、ここで説明された異なる複数の実施形態の任意の数の特徴は、単一の実施形態の中に組み合わせることが可能であるし、また、ここで説明された特徴のすべてよりも少数またはそれよりも多くを有する別の実施形態も可能である。
【００８４】
[0083]本開示のために様々な実施形態について説明してきたが、本開示の範囲内で、様々な変更および修正を行うことができる。当業者が容易に想到できる多くの他の変更も可能であり、そのような変更は、特許請求の範囲において定義されているように、本開示の精神に包含される。
【図１】
0005932841.tif 000004
【図２】
0005932841.tif 000005
【図３】
0005932841.tif 000006
【図４】
0005932841.tif 000007
【図５】
0005932841.tif 000008
【図６】
0005932841.tif 000009
【図７】
0005932841.tif 000010