(57)【要約】  【解決手段】  ネットワークへのリモートアクセスを可能にするための統合アーキテクチャを提供する。ネットワークは、例として仮想プライベートネットワーク（ＶＰＮ）及び／又はピアツーピアネットワークを含み得る。一実施形態において、本アーキテクチャは、クライアント装置／ノード及びゲートウェイ／スーパーノード上にインストールされるコンポーネントを含む。クライアント装置上に実装されるコンポーネントは、従来のＶＰＮのものと同様の方法でアクセスを容易にすることができ、一方、ゲートウェイ上のコンポーネントは、アプリケーションプロキシと同様の方法でアクセスを容易にすることができる。クライアント装置とゲートウェイとの間の通信は、例としてセキュアソケットレイヤ（ＳＳＬ）通信プロトコルを介し発生し得る。【選択図】  図１
2009500968.tif 000002
【特許請求の範囲】
【請求項１】
クライアント装置、ゲートウェイシステム及びネットワーク資源を含み、ネットワークを介し通信するシステムにおいて、前記クライアントが、前記ゲートウェイシステムを用いる前記ネットワーク上の通信を介し前記ネットワーク資源にアクセス可能であって、前記ネットワーク資源が、第１のネットワークアドレスによって前記ネットワーク上において識別され、前記第１のネットワークアドレスが第１の形式を有し、前記第１の形式が複数の形式のうち１つであって、少なくとも１つの計算器可読媒体がその上に記録された命令を有し、前記ゲートウェイシステムによって実行されるとき、その命令が、
（Ａ）前記ネットワーク資源にアクセスするための第１のリクエストを、前記クライアント装置から受信するステップであって、前記第１のリクエストが、前記ネットワーク資源を識別するために、前記クライアント装置によって使用される名前、又はネットワークアドレス、のいずれかを特定するものと、
（Ｂ）前記第１のリクエストが名前を特定するか否かを決定するステップと、
（Ｃ）前記第１のリクエストが名前を特定することを決定したとき、
（Ｃ１）前記名前に基づいた前記ネットワーク資源に対する前記第１のネットワークアドレスを決定するために、前記第１のリクエストを処理するステップと、
（Ｃ２）前記ネットワーク資源にアクセスするときに、前記クライアント装置によって使用されるための第２のネットワークアドレスを動的に生成するステップであって、前記第２のネットワークアドレスが、前記動作（Ｂ）が実行される前、前記ネットワーク資源にアクセスするとき使用されるために供給されず、前記第２のネットワークアドレスが前記第１の形式に従うことに限定されないものと、
（Ｃ３）前記ネットワーク資源にアクセスするときに使用するため前記第２のネットワークアドレスを前記クライアント装置に提供するステップと、
（Ｃ４）前記ネットワーク資源にアクセスするためのリクエストを、前記クライアント装置から受信するステップであって、前記リクエストが前記第２のネットワークアドレスに向けられているものと、
（Ｃ５）前記第１のネットワークアドレスにおける前記ネットワーク資源との接続を確立するステップと、
（Ｃ６）前記リクエストを終了するステップと、及び
（Ｃ７）前記接続を介し前記クライアント装置と前記ネットワーク資源との間の通信を容易にするステップと、
の動作を含む方法を実行することを特徴とする計算器可読媒体。
【請求項２】
前記動作（Ｃ７）がさらに、前記クライアント装置と前記ネットワーク資源との間の通信にセキュリティポリシーを課すステップを含む請求項１記載の少なくとも１つの計算器可読媒体。
【請求項３】
前記動作（Ｃ７）が、前記クライアントと前記ネットワーク資源との間の通信がコンピュータウィルスを含まないことを決定するステップを含む請求項２記載の少なくとも１つの計算器可読媒体。
【請求項４】
前記動作（Ｃ７）がさらに、セキュアソケットレイヤ（ＳＳＬ）プロトコルを介し前記クライアント装置と前記ゲートウェイシステムとの間の通信を容易にするステップを含む請求項１記載の少なくとも１つの計算器可読媒体。
【請求項５】
前記第１のリクエストが前記第１のネットワークアドレスを特定することを決定したとき、前記動作（Ｃ）がさらに、
（Ｃ８）前記第１のリクエストを前記第１のネットワークアドレスにおける前記ネットワーク資源に転送するステップを含む請求項１記載の少なくとも１つの計算器可読媒体。
【請求項６】
前記クライアント装置が、ピアツーピアネットワーク上の前記第１のノードからなり、前記ゲートウェイシステムが、前記ピアツーピアネットワーク上のスーパーノードからなり、及び前記ネットワーク資源が、前記ピアツーピアネットワーク上の第２のノードからなることを特徴とする請求項５記載の少なくとも１つの計算器可読媒体。
【請求項７】
前記動作（Ｃ８）がさらに、前記第１のリクエストを前記ネットワーク資源に転送する前に、前記第１のリクエストを支援するための十分な帯域幅が、前記ゲートウェイにおいて割り当てられるか否かを決定し、十分な帯域幅が割り当てられることを決定したとき、前記第１のリクエストを転送するステップを含む請求項５記載の少なくとも１つの計算器可読媒体。
【請求項８】
前記動作（Ｃ８）がさらに、前記第１のリクエストを前記ネットワーク資源に転送する前に、セキュリティポリシーを前記第１のリクエストに課すステップを含む請求項５記載の少なくとも１つの計算器可読媒体。
【請求項９】
前記セキュリティポリシーを課す前記動作（Ｃ８）がさらに、前記第１のリクエストがコンピュータウィルスを含まないことを決定するステップを含む請求項８記載の少なくとも１つの計算器可読媒体。
【請求項１０】
前記命令が実行される前記ゲートウェイシステムが、単一の装置からなることを特徴とする請求項１記載の少なくとも１つの計算器可読媒体。
【請求項１１】
複数のゲートウェイシステム及びネットワーク資源を含むネットワークで接続されたシステムにおいて、前記複数のゲートウェイシステムのうち１つを用いる通信を介して前記ネットワーク資源にアクセスする動作が可能なクライアント装置であって、前記クライアント装置が、
前記ネットワーク資源にアクセスするために発行されるリクエストを発生可能なアプリケーションであって、前記リクエストが、前記ネットワーク資源を識別するための前記アプリケーションによって使用される名前を特定するものと、
接続性コントローラであって、
前記リクエストを受信し、
前記リクエストの受信に応答し、前記クライアントが前記ネットワーク資源にアクセスするために通信するための前記複数のゲートウェイシステムから第１のゲートウェイシステムを選択するために前記リクエストを処理し、前記選択が前記アプリケーションによって特定された前記名前に基づくものと、
前記第１のゲートウェイシステムとの接続を開始する動作が可能であるものと、
を含む前記クライアント装置。
【請求項１２】
前記第１のゲートウェイシステムとの接続を確立したとき、前記接続性コントローラがさらに、前記第１のゲートウェイシステムによる前記クライアント装置の認証のために有用な情報を前記第１のゲートウェイシステムに提供する動作が可能であること、を特徴とする請求項１１記載のクライアント装置。
【請求項１３】
前記アプリケーションが電子メールクライアントアプリケーションであって、前記ネットワーク資源が電子メールサーバであることを特徴とする請求項１１記載のクライアント装置。
【請求項１４】
前記接続性コントローラが、ソフトウェアだけを介し実装されることを特徴とする請求項１１のクライアント装置。
【請求項１５】
前記クライアント装置と前記第１のゲートウェイシステムとの間の通信が、ＳＳＬプロトコルを介し生ずることを特徴とする請求項１１のクライアント装置。
【請求項１６】
前記システムがさらに、インターネットを介し前記クライアント装置にアクセス可能な第２のネットワーク資源を含み、
前記アプリケーションがさらに、名前よりむしろネットワークアドレスにおける前記第２のネットワーク資源にアクセスするための第２のリクエストを発行する動作が可能であって、
前記接続性コントローラがさらに、前記第２のネットワーク資源にアクセスするために、前記第１のゲートウェイシステムとの接続を確立しない決定をするように前記第２のリクエストを処理する動作が可能であることを特徴とする請求項１１記載のクライアント装置。
【請求項１７】
クライアント装置、複数のゲートウェイシステムのうち第１のゲートウェイシステム
及びネットワーク資源を含むシステムであって、
前記クライアント装置、第１のゲートウェイシステム及びネットワーク資源が、ネットワークを介して通信し、前記クライアント装置が、前記ネットワークを介し前記第１のゲートウェイシステムにリクエストを発行することによって前記ネットワーク資源にアクセスする動作が可能であって、前記リクエストが、前記ネットワーク資源を識別するための前記クライアント装置によって使用される名前、又は前記ネットワーク上の前記ネットワーク資源を識別するために使用されるネットワークアドレス、のいずれかを特定し、
前記第１のゲートウェイシステムは、前記リクエストが名前か又はネットワークアドレスを特定するかを決定するためにリクエストを処理し、前記リクエストが名前を特定することを決定したとき、第１のゲートウェイシステムにおける前記リクエストを終了し、前記第１のゲートウェイシステムと前記ネットワーク資源との間との接続を介し前記クライアント装置と前記ネットワーク資源との間の通信を容易にし、前記リクエストが、ネットワークアドレスを特定することを決定したとき、前記ネットワークアドレスにおける前記ネットワーク資源に前記リクエストを転送する、動作が可能であって、前記クライアントがさらに、前記ネットワーク資源を識別するための前記クライアントによって使用される前記名前に基づいた前記リクエストを受信する前記第１のゲートウェイシステムを、前記複数のゲートウェイシステムから選択する動作が可能であることを特徴とするシステム。
【請求項１８】
前記リクエストが、ＳＳＬプロトコルを介し送信されることを特徴とする請求項１７記載のシステム。
【請求項１９】
前記リクエストが、ネットワークアドレスを特定することを決定したとき、前記第１のゲートウェイシステムがさらに、前記リクエストを支援するための十分な帯域幅が、前記第１のゲートウェイシステムにおいて使用可能か否かを決定する動作が可能であることを特徴とする請求項１７記載のシステム。
【請求項２０】
前記第１のゲートウェイシステムがさらに、セキュリティポリシーを前記リクエストに課す動作が可能であることを特徴とする請求項１７記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般に、通信ネットワーク、さらに具体的には、通信ネットワークへのリモートアクセスを可能にするコンポーネントに関する。
【背景技術】
【０００２】
仮想プライベートネットワーク（ＶＰＮ）は、少なくとも一部がインターネットのような公共のネットワークインフラストラクチャ上で、通信を伝送する私設通信網である。ＶＰＮ（複数）は、会社のネットワークとユーザが接続できる地理的な領域を拡大し、リモートユーザに対する輸送時間及び輸送コストを削減し、作業者の生産性を改善し得るので、会社内又は会社間の通信用に広く使用される。
【０００３】
いくつかのＶＰＮと接続するためにユーザは、彼又は彼女のクライアント装置（例えば、パーソナルコンピュータ、携帯情報端末又は他の装置）上にある、接続を確立するための１つ以上のソフトウェアコンポーネント（例えば、ＶＰＮクライアントアプリケーション）を呼び出す。ソフトウェアコンポーネント（単数又は複数）を呼び出すことによって、クライアント装置は一般に、ソフトウェアコンポーネント（単数又は複数）によって提供される情報に基づいた、ユーザのアクセス信用証明を検証するＶＰＮ上のネットワークアクセスゲートウェイと通信できる。一旦、認証が生じると、クライアント装置上で動作するアプリケーションは通常、必要に応じてネットワーク上のリソースにアクセスできる。ネットワーク資源は、例えばウェブページ、データ構造（例えばファイル）又は電子メールサーバを含み得る。クライアント装置上のアプリケーションが、ネットワーク資源へのアクセスをリクエストするたびに、ゲートウェイは接続を容易にする。この構成は一般に、「従来のＶＰＮ」モデルとして知られている。
【０００４】
他のＶＰＮ（複数）と共に、経済的及び／又はセキュリティの懸念によって別のアクセス技法が生じた。例えば、ＶＰＮへのリモートユーザーアクセスを確立するための最近の移り変わりは、セキュアソケットレイヤ（ＳＳＬ）技術を伴うアプリケーションプロキシを使用する方向に向かっている。簡潔に言うと、アプリケーションプロキシを使用する構成においてクライアントアプリケーションがネットワーク上のリソースにアクセスし得る前にユーザは、ＶＰＮへのアクセスポイントとして指定されるウェブページへナビゲートするためのクライアント装置上で動作するブラウザアプリケーションを使用する。ＶＰＮへのアクセスを取得するために、ユーザはブラウザアプリケーションを介しログイン信用証明を供給できる。認証時、クライアント装置上で動作する別のアプリケーションは、ユーザが再度ログイン信用証明を与えることなく、ネットワーク資源にアクセスできる。この構成は一般に、「アプリケーションプロキシ」モデルとして知られている。
【０００５】
アプリケーションプロキシモデルに向かう移り変わりに関する１つの理由は、ＶＰＮへの自動認証が可能なソフトウェアコンポーネントをクライアント装置すべてにインストールし、維持する必要がないので、企業による展開がそれほど高価でないことによる。別の理由は、悪意ある集団が法人のＶＰＮを攻撃するために、クライアント装置を使用することがより困難になり得るように、アクセスポイントにおいて受信された通信が、従来のＶＰＮ構成におけるよりもさらに厳密に監視され得るという点において、アプリケーションプロキシモデルが、さらなるセキュリティの利点を提供することによる。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ＶＰＮへのリモートユーザーアクセスを可能にするために、アプリケーションプロキシモデルを使用することに関連する１つの欠点は一般に、クライアントの認証時、クライアントアプリケーションプログラムが自動的にネットワーク資源にアクセスできる前にクライアント装置上のアプリケーションプログラム及び多くの場合において、それらのサーバ側の対応部を変更する必要があることであると出願人は理解している。アプリケーションプロキシモデルを介し従業員へリモートネットワークアクセスを提供する企業に対して、これらの修正は例としても重大なる挑戦を提示し得、それはこれらの企業の多くが、そのユーザコミュニティそれぞれを横断し使用中である何千ものアプリケーションを有するからである。例えば、修正を要求するアプリケーションプログラムそれぞれについて、必要な修正をリクエストするためにアプリケーションプログラムの業者と相談し、修正を実装し、それらをユーザコミュニティに展開することが要求され得る。この処理は、非常に高価で手間がかかる場合がある。そのうえ、いくつかのアプリケーションプログラムに対して必要な修正を実施するためには技術上大きな障害があり得る。
【０００７】
これは従来のＶＰＮモデルと対照的であり、そこではクライアント装置上で動作するアプリケーションは通常、認証時に修正なしにネットワーク資源に継ぎ目なくアクセスできる。しかし、前述のように従来のＶＰＮモデルは、ユーザそれぞれの個人の認証のために、クライアント装置上にソフトウェアコンポーネントのインストールを要求され得るので、展開するには高価となり得る。従来のＶＰＮモデルはまた、より少ないアプリケーション特有のセキュリティ機能も提供できる。
【０００８】
これら競合する懸念のバランスをとるために多くの企業は、リモートネットワークアクセスのために、アプリケーションプロキシモデルを使用するが、クライアント装置上で動作するアプリケーションのうちサブセットだけをネットワーク資源にアクセスさせる。このように企業の多くは、ユーザの中には特定の（例えば、ネットワークアクセスを要求する）アプリケーションによって提供されるいくつかの機能を使用できないことがあり得るという知識を持ってアプリケーションプロキシモデルを使用する。この構成はあまり最適でない。
【課題を解決するための手段】
【０００９】
したがって、本発明の一実施形態は、クライアント装置上で動作するアプリケーションに変更を要求せずに、アプリケーションプロキシモデルのセキュリティの利点及び従来のＶＰＮモデルに関連するネットワーク資源へ継ぎ目のないアプリケーションアクセスを提供する方法によってリモートネットワークアクセスを容易にするためのアーキテクチャを提供する。
【００１０】
一実施形態においては、本アーキテクチャは、ネットワーク上のクライアントを認証するために、クライアント装置及びネットワークアクセスゲートウェイ双方においてインストールされるソフトウェアを基本とするコンポーネントを含む。一実施形態においては、クライアント上のコンポーネントは、クライアントネットワークアクセスマネージャ（ＣＮＡＭ）を含み、所定のイベント（例えば、アプリケーションによるネットワーク名を解決するための試み）の発生のときに、ネットワーク接続を確立するために、ゲートウェイを介し自動的に通信を開始し、認証を容易にできる。一実施形態においては、クライアント装置上のＣＮＡＭの存在によって、他のクライアントアプリケーションを変更することが不要になり、その結果、従来のＶＰＮモデルと同様の使いやすさ及び機能性を提供する。一実施形態においては、本アーキテクチャはまた、ネットワークアクセスゲートウェイにおいてインストールされるコンポーネントを含み、アプリケーションプロキシモデルに関連する通常のセキュリティの利点の多くを提供する。
【００１１】
本発明の実施形態は、ＶＰＮへのリモートアクセスを容易にするために有用であり得るが、この点において本発明を限定しない。例えば、本アーキテクチャは、いくつかの適切なタイプの私設又は準私設のネットワークへのアクセスを容易にするためにも使用することができる。例として、ピアツーピアネットワークへのアクセスを可能にするために、本アーキテクチャを展開できる。ピアツーピア通信を管理するためのコンポーネントを提供でき、それらに割り当てられる帯域幅を規制し、及び／又は、その上にセキュリティポリシーを課すコンポーネントがあり得る。
【発明を実施するための最良の形態】
【００１２】
添付の図面は一定の比率で描くことを意図しない。図面においては、様々な図面に例示される同一又はほとんど同一のコンポーネントそれぞれが、同一の番号によって表される。明確にする目的のため、図面すべてにおいて、コンポーネントすべてに必ずしもラベル付けしない。
【００１３】
ＶＰＮへのリモートアクセスを容易にするために使用される本発明の例示的な一実施形態を図１に示す。示される実施形態は、クライアント装置（１００）及びネットワークアクセスゲートウェイ（１５０）上に存在するアーキテクチャのコンポーネントを含む。また図１に示されるものは、これらのコンポーネントを介しクライアント装置（１００）にアクセスされ得るネットワーク資源（１７０）である。一実施形態において、示されるコンポーネントそれぞれは、ソフトウェアを介し実装される。しかし、これらのコンポーネントのいずれか又はすべては、ハードウェアを介したもの含み、任意の適切な方法で実装され得るので、本発明はこの点において限定されない。
【００１４】
ネットワーク上のリソース（１７０Ａ）にアクセスするクライアントアプリケーションの処理を説明することによって、図１に表示されるコンポーネントの機能を例示できる。この処理の開始時、ユーザは、クライアント装置（１００）上のアプリケーション（１０５）を使用（例えば入力を提供）できる。一実施形態においては、アプリケーション（１０５）は、電子メールアプリケーション（例えばワシントン州レッドモンドのマイクロソフト社によって提供されるマイクロソフトアウトルック）を含み、ネットワーク資源（１７０Ａ）は電子メールサーバを含む。図１の以下の残りの説明は、この場合であると仮定する。しかし、任意のクライアントアプリケーション及び／又はネットワーク資源が使用され及び／又はアクセスされ得るので、本発明が限定されないことを十分理解されよう。
【００１５】
示される実施形態においては、ネットワーク資源の名前を解決するためのアプリケーション（１０５）による試みのようなアプリケーション（１０５）上の活動は、ネットワークスタック（１１０）（一実施形態においては、それはクライアント装置（１００）上で実行するオペレーティングシステムのコンポーネント）によって検出される。この点において、アプリケーション（１０５）は通常、ネットワーク上のネットワーク資源（１７０Ａ）を特定するために使用される識別子（例えばＩＰアドレスのようなネットワークアドレス）とは異なるネットワーク資源（１７０Ａ）（例えば、ドメイン名）のための識別子を使用するので、当業者は、アプリケーション（１０５）が一般に、ネットワーク識別子を決定するために、ネットワーク資源（１７０Ａ）の名前を解決するのを試みることを認識している。本発明はこの点において限定されないので、オペレーティングシステムの一部として実装されるコンポーネント（例えば、ネットワークスタック（１１０））によって活動が監視される必要はないのが十分理解されよう。任意の適切なコンポーネントを使用できる。
【００１６】
もちろん、アプリケーション（１０５）は、ネットワーク資源にアクセスするためのドメイン名のような識別子を使用する必要はない。例えば、アプリケーション（１０５）は、それがアプリケーションにとって有効な場合、ネットワーク資源のためのネットワークアドレスを使用できる。本アプリケーションがネットワークアドレスを特定する例示的なシナリオについて、図４を参照し後述する。
【００１７】
示される実施形態においては、アプリケーション（１０５）は、クライアント上のネットワーク名を解決するのを試みるために、まずドメインネームサービス（ＤＮＳ）レゾルバ（１２０）と通信する。一実施形態においては、ＤＮＳレゾルバ（１２０）は、アプリケーションの以前の活動の結果、アクセスされたネットワーク資源に関するものなど、以前解決されたドメイン名に関するネットワーク識別子の集合を維持する。
【００１８】
示される実施形態においては、ＤＮＳレゾルバ（１２０）がＤＮＳサーバを調べないでネットワーク資源（１７０Ａ）に関するネットワークアドレスをアプリケーション（１０５）に提供できない場合は、ＣＮＡＭ（１１５）に通知される。示される実施形態においては、ＣＮＡＭ（１１５）は、ＤＮＳレゾルバ（１２０）がドメイン名を解決する必要がある時など所定のイベントが発生するときに生ずる処理を定義するプログラム命令を含む。
【００１９】
クライアント装置上で実行するアプリケーションに関連するイベントによって、ネットワークの接続を確立させるか否かを評価するために実行される処理の例示的な実施形態を図２に示す。処理（２００）の開始時、動作（２１０）において、アプリケーションと関連し発生するイベントが監視される。イベントは、例えば、ネットワーク名を解決するためのアプリケーションによる試みであり得る。動作（２２０）において、１つ以上の規則とイベントを比較することによってイベントが評価される。例えば、イベントは、ＣＮＡＭ（１１５）に含まれるプログラム命令によって定義される１つ以上の規則と比較され得る。動作（２３０）において、イベントが任意の規則（単数又は複数）を満たすか否かが決定される。動作（２３０）において、例えばアプリケーション（１０５）によるネットワーク名を解決するための試みが規則を満たすことが決定され得る。アプリケーションイベントが任意の規則（単数又は複数）を満たす場合、動作（２４０）において、接続が確立され処理を完了する。さもなければ、アプリケーションイベントが監視され続けるように、処理は始めに戻る。
【００２０】
もちろん、アプリケーションイベントを監視するときに、実行され得る処理は、ネットワークへの接続を確立することに限定されず、処理を定義するイベントは、ネットワーク名を解決することを試みるアプリケーションに限定されない。任意の適切なイベント及び／又は処理を定義できる。ネットワーク管理者のようなユーザが、例えばプロセス及び／又はイベントを定義するプログラム命令を定義できる。
【００２１】
示される実施形態においては、予定されたイベントが発生するとき生ずる処理は、ＣＮＡＭ（１１５）が、ＤＮＳレゾルバ（１２０）が解決を試みているドメイン名を評価し、ドメイン名（例えば、ドメイン名とＤＮＳマッパ（１６０）との関連）に基づいた特定のＤＮＳサーバ（すなわち、ＤＮＳマッパ（１６０））を選択し、ドメイン名を解決するためにＤＮＳマッパ（１６０）と連絡するようにＤＮＳレゾルバ（１２０）に命令することである。
【００２２】
提供されるドメイン名に基づいて、複数の同様なＤＮＳサーバコンポーネントからＤＮＳマッパ（１６０）を選択できるのが十分理解されよう。ドメイン名に基づいてＤＮＳサーバが選択されるので、追加として、ドメイン名が提供されない場合は、クライアントとネットワーク資源との間の通信を容易にするために、ゲートウェイを使用する必要はない。ゲートウェイがＶＰＮへのアクセスポイントである実装において、これは利点であり得る。例えば、ゲートウェイ（１５０）がＶＰＮへのアクセスポイントである場合、それはクライアント装置（１００）とインターネットを介し公的にアクセスし得るネットワーク資源との間の通信を容易にするために使用する必要はなく、クライアント装置（１００）が提供する場合、例えば、ＣＮＡＭ（１１５）が決定するドメイン名をＤＮＳマッパ（１６０）に送信するべきでない。本システムによって、クライアントはＶＰＮにアクセスせずにネットワーク資源にアクセスでき、その結果、それに関連する処理のオーバヘッド及び費用を排除できる。
【００２３】
また、ＤＮＳサーバは、いくつの適切な情報に基づいて、ＤＮＳサーバを選択できるので、ドメイン名だけに基づいて選択される必要がないのが十分理解されよう。本発明は、特定の実装に限定されない。
【００２４】
示される実施形態において、ＤＮＳレゾルバ（１２０）はその後、ＤＮＳマッパ（１６０）と連絡するのを試みる。この試みはネットワークスタック（１１０）によって処理される。接続が未だ確立されていない場合、ネットワークスタック（１１０）は、アプリケーション（１０５）がネットワーク資源（１７０Ａ）にアクセスできるように、リモートアクセスサービス（ＲＡＳ）接続（１２５）にネットワークアクセスゲートウェイ（１５０）と接続するよう命令する。さらに具体的に言うと、ＲＡＳ接続（１２５）は、クライアント（１００）とネットワークアクセスゲートウェイ（１５０）との２地点間接続を確立するよう命令される。当業者は、従来のＶＰＮ処理と同様であって、アプリケーションプロキシモデルと対照的に、クライアントとゲートウェイとの間の２地点間接続を確立することは、クライアント（１００）上のネットワークインターフェースを確立することと認識するだろう。ネットワークインターフェースが確立されるため、後述されるネットワークとの通信のための手順において、ＩＰアドレスがクライアント（１００）に割り当てられる。
【００２５】
ＲＡＳ接続（１２５）はその後、ＶＰＮサーバ（１５５）と連絡することによって、クライアント（１００）とネットワークアクセスゲートウェイ（１５０）との二地点間接続の確立を試みる。示される実施形態においては、ＲＡＳ接続（１２５）及びＶＰＮサーバ（１５５）は、クライアント（１００）とネットワークアクセスゲートウェイ（１５０）と間の接続を確立し維持し、この接続は構成可能な期間、（すなわち、全く通信が接続上通過しない）アイドル状態が続くまで維持され得る。当業者は、クライアントとゲートウェイとの間の２地点間接続を確立し維持するためのこの様なＲＡＳコンポーネント使用が、従来のＶＰＮ（複数）において一般的であることを認識するだろう。
【００２６】
一実施形態においては、クライアント（１００）とネットワークアクセスゲートウェイ（１５０）との間の通信は、ＳＳＬプロトコルを介し発生するが、この点で本発明は限定されない。任意の適切な通信プロトコルを使用できる。
【００２７】
しかし、本発明の一実施形態に従うと、ネットワーク資源（１７０Ａ）に対する実際のネットワークアドレス（例えば、ＩＰアドレス）をアプリケーション（１０５）に提供するよりむしろ、ＤＮＳマッパ（１６０）は、新しいネットワークアドレスを供給し、ＶＰＮサーバ（１５５）にそれを割り当て、この新たに供給されたアドレスをクライアント（１００）上のＤＮＳレゾルバ（１２０）に提供する。その結果、それに続くネットワーク資源にアクセスするためのクライアント装置（１００）上のアプリケーションによる試みは、クライアントにおいて解決され得、ＤＮＳマッパとの通信は要求されない。
【００２８】
一実施形態においては、新たに供給されるアドレスは、ＤＮＳマッパ（１６０）によって動的に生成される。具体的に言うと、従来のいくつかのアプローチと比べ、新しいアドレスはネットワーク資源にアクセスするときの使用のために事前に供給されず（例えば、手動で作成され）、それは特に、ネットワーク資源（１７０Ａ）にアクセスするときにクライアント（１００）による使用のためにＤＮＳマッパ（１６０）によって、生成される。新しいアドレスはまた、１つ以上のアルゴリズムを介して実際のネットワークアドレスからは得られない。また一実施形態においては、新しいアドレスは特定の形式に限定されない。例えばクライアント又はネットワーク資源のいずれかがＩＰｖ４形式を使用することが知られている場合、ＩＰｖ４フォーマットのアドレスを動的に生成できるように、例えば、ＩＰｖ４、ＩＰｖ６又は任意の他の適切な形式のアドレスを生成できる。
【００２９】
示される実施形態においては、ＤＮＳマッパ（１６０）はまた、新たに供給されるネットワークアドレスとネットワーク資源（１７０Ａ）のための実際のネットワークアドレスとの双方をトランスポートレイヤプロキシ（１６５）に提供する。多くの異なるネットワーク資源及び／又はクライアント装置に対して、この処理を何度も反復できるので、ネットワーク資源それぞれに対して１つの多くのＩＰアドレスをＶＰＮサーバ（１５５）に供給することができる。
【００３０】
前述の処理を実行するための例示的な技法を表現する流れ図を図３に示す。処理（３００）の開始時、動作（３１０）において、ネットワーク資源にアクセスするためのリクエストを受信する。動作（３２０）において、資源のためのネットワークアドレスが（例えば前述のように解決されて）決定される。動作（３３０）において、新しいネットワークアドレスが供給される。例えば、ＶＰＮサーバ（１５５）に新しいアドレスを割り当てることができる。動作（３４０）において、ネットワーク資源にアクセスするときに使用するための新しいアドレスをクライアント装置に提供する。動作（３４０）の完了時、処理は終了する。
【００３１】
この処理の結果、アプリケーション（１０５）は、次にネットワーク資源（１７０Ａ）にアクセスすることを試みるとき、それは新たに供給されたネットワークアドレスを使用する。アプリケーション（１０５）は、アクセスリクエストをこのアドレスに送信し、そのリクエストは、ＶＰＮサーバ（１５５）によって受信される。リクエストはその後、トランスポートレイヤプロキシ（１６５）に送られ、示される実施形態においては、新たに供給されたネットワークアドレスに基づいたネットワーク資源（１７０Ａ）のためにネットワークアドレスを決定できるＤＮＳマッパ（１６０）によって、前に提供された情報が維持される。しかし、ネットワーク資源（１７０Ａ）のための実際のネットワークアドレスが、本発明がこの点で限定されないような任意の適切な方法において、決定できるのが十分理解されよう。
【００３２】
示される実施形態においては、リクエストをネットワーク資源（１７０Ａ）に送信するよりむしろ、トランスポートレイヤプロキシ（１６５）は、ゲートウェイ（１５０）上のアクセスリクエストを終了し、実際のネットワークアドレスを使用し、ネットワーク資源（１７０Ａ）との直接的な接続を確立する。その後、アプリケーション（１０５）からのネットワーク資源（１７０Ａ）への通信は、最初ゲートウェイ（１５０）に伝わり、その後、この新たに確立した接続に沿ってゲートウェイ（１５０）からネットワーク資源（１７０Ａ）へ伝わる。同様に、ネットワーク資源（１７０Ａ）からアプリケーション（１０５）への通信が、最初にネットワーク資源（１７０Ａ）とゲートウェイ（１５０）との間に伝わり、その後、ゲートウェイ（１５０）とクライアント（１００）との接続に沿って伝わる。このように、トランスポートレイヤプロキシ（１６５）は、アプリケーション（１０５）とリソース（１７０Ａ）との間のプロキシとしてサービスする。
【００３３】
示される実施形態においては、アプリケーション（１０５）とネットワーク資源（１７０Ａ）との間の通信のためのセキュリティポリシーを実装するために、トランスポートレイヤプロキシ（１６５）によりプラグイン（１６８）を使用する。例えば、プラグイン（１６８）は、実行されるときに、アプリケーション（１０５）とリソース（１７０Ａ）との間の通信がポリシーに従うか否かを決定するために検査するプログラム命令を含み得る。例として、プラグイン（１６８）は、コンピュータウィルスがないことを決定するために、通信を検査できる。しかし、任意の適切な方法でいくつかの適切なポリシーを適用できることが十分理解されよう。例えば、直接的又は間接的にセキュリティと関連しないポリシーが実施され得る。さらに、任意の適切なコンポーネントが使用できるので、トランスポートレイヤプロキシ（１６５）へのプラグインによって、ポリシーを実装する必要はない。追加として、例としてユーザ（例えばネットワーク管理者、第三者ベンダ又はコンサルタント）によってポリシーを定義できる。また、ポリシーは、ゲートウェイ（１５０）上を伝わる任意の通信の検査も定義でき、サーバ、ポート及び／又は他の資源などの資源に向けられるものを含む。
【００３４】
前述のコンポーネント及び技法が、それらのそれぞれの欠点を含まないで従来のＶＰＮアーキテクチャの恩恵の多くを提供するのが十分理解されよう。例えば、前述のアーキテクチャは、ネットワーク資源へのアクセスを可能にするために、クライアントアプリケーションに対する修正を要求せずにアプリケーションプロキシモデルのセキュリティの利点を提供できる。同様に、前述のアーキテクチャは、セキュリティを犠牲にせず、従来の典型的なＶＰＮのネットワーク資源へ継ぎ目のないアクセスを容易にできる。
【００３５】
また、前述のアーキテクチャは、従来のＶＰＮのクライアント装置のようにそれが機能するクライアント装置上のコンポーネント、及び、それがアプリケーションプロキシのように機能するネットワークアクセスゲートウェイ上のコンポーネント、を含むことを十分理解されよう。例えば、クライアント（１００）上のＣＮＡＭ（１１５）は、従来のＶＰＮにおいて実装されるクライアントのコンポーネントと同様の方法で、クライアント装置上のアプリケーションを変更せずに、ネットワーク資源に継ぎ目なく透過的にアクセスできるように、アプリケーション（例えば、アプリケーション（１０５））とネットワーク資源（１７０）との間の通信を管理できる。同様にトランスポートレイヤプロキシ（１６５）及び／又はプラグイン（１６８）は、アクセスリクエストを終了し、ネットワークアクセスゲートウェイ（１５０）上の通信を検査することによって、アプリケーションプロキシモデルに匹敵するセキュリティレベルを提供できる。
【００３６】
前述のように、本発明の特徴は、ＶＰＮへのリモートアクセスを可能にする際に有用であり得るが、本発明の実施形態は多くの用途を有し得、他のネットワーク構成における、接続容易性に関連する用途を含む。例えば、ピアツーピア（Ｐ２Ｐ）ネットワークにおける接続性を容易にするために、前述のコンポーネント及び技法の多くを使用できる。
【００３７】
当業者は、そのピアツーピア接続性は、主としてネットワーク上のノード間の通信を中継するスーパーノードを介し、達成されることを認識するだろう。典型的なスーパーノードは一般に、ファイアウォール、ＮＡＴ又は他のセキュリティ装置の背後に存在するノードを含むノードに（すなわち、それらはファイアウォール、ネットワークアクセス変換（ＮＡＴ）コンポーネント、又は、着信する接続を妨げる他の装置の背後に存在しない）アクセス可能である。（例えば個人又は企業であり得る所有者によって）スーパーノードとなるコンピュータが通常、自発的に提供される。スーパーノードとしての身元証明は一般に、ワシントン州レッドモンドのマイクロソフト社によって提供されるようなピアツーピア名前解決プロトコル（ＰＮＲＰ）を介し発行される。ＰＮＲＰによって簡単に、スーパーノードの身元証明及び／又はロケーションが、（例えばインターネット上の）ノードにアクセスするために使用できる分散データベースに発行され得る。クライアント装置は、ピアツーピアアプリケーション（例えばワシントン州レッドモンドのマイクロソフト社で製造されたウィンドウズ（登録商標）のメッセンジャー又は他のピアツーピアアプリケーション）を開始するとき、アプリケーションは、スーパーノードのロケーション及び身元証明を発見するために、データベースに問い合わせできる。
【００３８】
一実施形態においては、図１のクライアント装置（１００）上にインストールされるコンポーネントは、ピアツーピアノード上に実装され、図１のネットワークアクセスゲートウェイ上にインストールされるコンポーネントは、スーパーノード上に実装され得、そのノードによるピアツーピアネットワーク上の別のノードへのアクセスを容易にする。例示的な一実装を図４に示す。
【００３９】
図１に表示されるコンポーネントによって実行される技法の多くは、ピアツーピアネットワークへの接続を容易にするために、図４に表示されるコンポーネントによって実行され得る。例として、ノード（１０１）は、スーパーノード（１５１）によって提供される通信中継サービスを得るために、「ブートストラップ法」の処理の一部としてスーパーノード（１５１）にアクセスすることを試み得る。ネットワークスタック（１１０）は、このイベントを監視し、ＣＮＡＭ（１１５）に通知でき、ＣＮＡＭは、ブートストラップ法の処理のようなイベントの発生時に生ずる処理を定義するプログラム命令を含み得る。例えば、ＣＮＡＭ（１１５）によって、ピアツーピアのＲＡＳ接続（１２６）及びＲＡＳ転送サーバ（１５６）を介し、ノード（１０１）とスーパーノード（１５１）との間における接続を確立できる。スーパーノードはその後、ネットワークアドレス（例えばＩＰアドレス）をノード（１０１）に割り当てることができる。
【００４０】
図１に示される実施形態に関して、ノード（１０１）とスーパーノード（１５１）との間における通信は、ＳＳＬ通信プロトコルか又は他の任意の適切な通信プロトコルを介し発生し得る。
【００４１】
スーパーノード（１５１）は、ネットワークを介しアクセス可能な他の複数のノードをノード（１０１）に通知できる。ノード（１０１）は、ノード（１０２）にアクセスするために、ノード（１０２）のネットワークアドレスを特定するためのリクエストを発行できる。具体的に言うと、ノード（１０１）は、トランスミッション制御プロトコル（ＴＣＰ）接続リクエスト（例えば、パケット送出リクエスト）をスーパーノード（１５１）に送信でき、それはそのリクエストに対してノード（１０１）によって指定される送信先のネットワークアドレス（例えばＩＰアドレス）を調べ、それがネットワークを介し依然としてアクセス可能なノードに対応することを決定し、ノード（１０２）がアクセス可能な状態であることを決定したとき、リクエストを転送する。ノード（１０２）は、アクセスリクエストを承認するか又は拒絶できる。
【００４２】
一実施形態においては、ピアツーピアネットワーク上のノード間の通信は、トランスポートレイヤプロキシ（１６５）において終了されずに、スーパーノードを介しフローするため、ＤＮＳマッパ（１６０）は、ノード（１０１）によって提供される識別子を解決し、又は図１での構成のように新しいネットワークアドレスを供給し、ノード（１０１）にそれを提供する必要は全くない。代わりに、通信はスーパーノード（１５１）を介しノード（１０２）へフローするように方向付けられる。
【００４３】
ピアツーピアネットワーク上に１つ以上のスーパーノードがあり得、ノードすべてがスーパーノードそれぞれに直接アクセス可能というわけではない。ノード（１０２）がスーパーノード（１５１）によって直接アクセス可能でない場合、スーパーノード（１５１）によって通信は、ノード（１０２）に直接アクセス可能な別のスーパーノードへ転送され得る。このように、一実施形態においては、スーパーノード（１５１）は、相互接続（１８０）を含み、それはノード（１０２）が、スーパーノード（１５１）に直接アクセス可能であるか否かを決定し、そうでない場合、最終的にノード（１０２）に送信するためにスーパーノード（１５２）へ通信を転送する。
【００４４】
一実施形態においては、スーパーノード（１５１）は、帯域幅マネージャ（１７５）を含み、それはスーパーノード上のトラフィックの伝送によって占有される帯域幅を規制できる。例えば、スーパーノード（１５１）が、ネットワークアクセス（例えばワールドワイドウェブをブラウズすること）を必要とする他の活動のためにもコンピュータの使用を所望する関係者によって自発的に提供されるコンピュータであるとき、これは有用であり得る。例えば、帯域幅マネージャ（１７５）は、スーパーノードとしてのコンピュータの役割に関連しないこれら他の活動のため、十分な帯域幅が予約されることを保証できる。一実施形態においては、帯域幅マネージャ（１７５）は、予約された帯域幅を変更するために、（例えば、ネットワーク管理者などのユーザによって）構成可能であり得る。
【００４５】
ピアツーピア通信に割り当てられる帯域幅を規制するために使用され得る例示的な技法を図５に示す。ノードがブートストラップするときのように、ノードが、ピアツーピアネットワークを介し通信するためにスーパーノードにリクエストを出すとき、処理（５００）を開始できる。動作（５１０）において、処理（５００）の開始時、ピアツーピアネットワークを介し通信するためのノードからのリクエストが、スーパーノードによって受信される。リクエストは、そのノードと第２のノードとの間の情報の転送のために予期される帯域幅要件に関する情報を含み得る。予期される帯域幅要件は、ノードによって実行された前の通信活動を検査することによるなどの任意の適切な技法を使用し決定され得る。
【００４６】
動作（５２０）において、スーパーノードが、予期される帯域幅要件を支援できるための十分な帯域幅を有するか否かを決定するために、リクエストが検査される。スーパーノード（１５１）上の帯域幅マネージャ（１７５）は例えば、まず帯域幅の第１の部分をピアツーピア活動に割り当て、第２の部分を他の活動に割り当てることができる。
【００４７】
追加すると、スーパーノードは、ネットワーク上の他のノード間のピアツーピア通信を支援することに積極的に従事できる。結果として、スーパーノードは、まずピアツーピア活動に割り当てられる帯域幅の総量、進行中のピアツーピア通信に注がれる帯域幅の総量、及び／又は、ノードによって提供される予期される帯域幅要件を支援するために十分な帯域幅が存在しているか否かを決定させるための他の情報を検査できる。
【００４８】
予期される帯域幅要件を支援するために十分な帯域幅が存在していない決定がされる場合、動作（５３０）において、リクエストを拒否する通信がスーパーノードによってノードに送信され、処理を終了する。例えば、スーパーノードは、十分な帯域幅の不足のためにリクエストが拒否されたと指定するメッセージをノードに送信できる。例えば、ノードはその後、同様の接続リクエストを別のスーパーノードに送信できる。
【００４９】
動作（５２０）において、予期される帯域幅要件を支援するための帯域幅をスーパーノードが有することが決定された場合、動作（５４０）において、リクエストを承認する通信が、スーパーノードによってノードへ送信される。動作（５４０）の完了時、処理が完了する。その後、ノードはスーパーノードを介し通信を別のノードに送信できる。スーパーノードによって他方のノードに直接、通信を送信することができるか又はもう片方のノードへ最終的に送信するために、別のスーパーノードに送信することができる。
【００５０】
一実施形態においては、スーパーノード（１５１）によって中継及び／又は送信されるトラフィックにおいて（例えばセキュリティに関連する）ポリシーを課すためにプラグイン（１６８）を使用できる。例えば、企業のネットワークにおいてユーザ間のピアツーピア接続のために、スーパーノード（１５１）が使用される場合、企業は、ユーザ間のその通信がコンピュータウィルスがないことを確実にするためにプラグイン（１６８）を使用することができる
図６に示される例示的なコンピュータシステム（６００）のように、１つ以上のコンピュータシステムにおいて、本発明の多様な特徴の実施形態を実施できるのが十分理解されよう。コンピュータシステム（６００）は、入力装置（６０２）、出力装置（６０１）、プロセッサ（６０３）、メモリシステム（６０４）及びストレージ（６０６）を含み、直接又は間接的に相互接続装置（６０５）を介しそのすべてが結合されていて、相互接続装置（６０５）は１つ以上のバス又はスイッチを含み得る。入力装置（６０２）は、ユーザ又はマシン（例えば人間のオペレータ又は受話器）からの入力を受信し、出力装置（６０１）は情報をユーザ又はマシン（例えば液晶ディスプレイ）に表示するか又は送信する。
【００５１】
プロセッサ（６０３）は、他のコンピュータプログラムの実行を制御するオペレーティングシステムと呼ばれるプログラムを実行し、スケジューリング、入力／出力及び他の装置制御、課金、コンパイル、ストレージ割り当て、データ管理、メモリ管理、通信、及びデータフロー制御を提供する。プロセッサ及びオペレーティングシステムは、他のコンピュータプログラミング言語によってアプリケーションプログラムが記述されるコンピュータプラットフォームを定義する。
【００５２】
プロセッサ（６０３）はまた、本発明の特徴を実施するような多様な機能を実装するための１つ以上のプログラムを実行できる。手続き型プログラミング言語、オブジェクト指向プログラミング言語、マクロ言語、又はそれらの組み合わせのようなコンピュータプログラミング言語でこれらのプログラムを記述できる。
【００５３】
これらのプログラムは、ストレージシステム（６０６）にストアされ得る。ストレージシステムは、揮発性又は不揮発性媒体上に情報が保持され得、固定されているか又は取り外し可能であり得る。図７においてストレージシステムをさらに詳細に示す。それは通常、計算機可読であって書込み可能の不揮発性記録媒体（７０１）を含み、その記録媒体上にはプログラムを定義する信号又はそのプログラムによって使用される情報がストアされる。媒体は、例えばディスク又はフラッシュメモリがあり得る。稼働中、通常はプロセッサ（６０３）によって、データは不揮発性記録媒体（７０１）からプロセッサ（６０３）が、媒体（７０１）より速い情報へのアクセスを可能とする揮発性メモリ（７０２）（例えばランダムアクセスメモリ又はＲＡＭ）へ読み出される。図７に示されているようなストレージシステム（７０６）又は図６に示されるようなメモリシステム（６０４）の中に、このメモリ（７０２）を配置できる。プロセッサ（６０３）は一般に、集積回路メモリ（６０４）、（７０２）の内部でデータを操作し、その後、処理を終了した後に、データを媒体（７０１）に複製する。媒体（７０１）と集積回路メモリ素子（６０４）、（７０２）との間のデータ移動を管理するための様々なメカニズムが知られていて、本発明はそれに限定されない。本発明はまた、特定のメモリシステム（６０４）又はストレージシステム（６０６）にも限定されない。
【００５４】
多くの方法のうち何れかによって、本発明の前述の実施形態を実施できるのもまた、十分理解されよう。例えば、ハードウェア、ソフトウェア又はそれらの組み合わせを使用し、前述の機能を実装できる。ソフトウェアで実装されるとき、ソフトウェアコードは、任意の適切なプロセッサか又はプロセッサの集合上で実行され得るか、単一のコンピュータにおいて提供され得るか又は複数のコンピュータ中で分散され得る。この点において、前述の機能のエージェントが、マルチプロセス及び／又はシステムの中で分散できるのが十分理解されよう。本明細書記載の機能を実行するコンポーネント又は任意のコンポーネントの集合は、一般的に、前述の機能を制御する１つ以上のコントローラとみなすことができるのがさらに十分理解されよう。１つ以上のコントローラは、専用ハードウェアなどを使用した多くの方法、又は、前述の機能を実行するためのマイクロコード又はソフトウェアを使用しプログラムされる、１つ以上のプロセッサを使用することによって実装され得る。コントローラがシステムオペレーションのためのデータをストアするか、又は提供するところにおいては、セントラルリポジトリ、複数リポジトリ又はそれらの組み合わせにおいてそのようなデータをストアすることができる。
【００５５】
本発明の少なくとも一つの実施形態においていくつかの特徴について説明してきたが、その結果、当業者に様々な変更、修正及び改良が容易に気づくのが十分理解されよう。そのような変更、修正及び改良は、本開示の一部であることを意図し、本発明の趣旨と範囲の中にあることを意図する。従って、前記説明及び図面は、例としてのみ示すものである。
【図面の簡単な説明】
【００５６】
【図１】本発明の一実施形態によるリモートネットワークアクセスを容易にするために使用できる例示的なアーキテクチャのコンポーネントを示すブロック図である。
【図２】本発明の一実施形態による、クライアント装置によるネットワークへのリモートアクセスを容易にするためのクライアント装置におけるコンポーネントで実行され得る例示的な処理について示す流れ図である。
【図３】本発明の一実施形態による、リモートネットワークアクセスを容易にするためのサーバにおけるコンポーネントによって実行され得る例示的な処理について示す流れ図である。
【図４】本発明の一実施形態による、ピアツーピアネットワークへのアクセスを容易にするために使用できる例示的なアーキテクチャのコンポーネントについて示すブロック図である。
【図５】本発明の一実施形態による、ピアツーピア通信に割り当てられた帯域幅を規制するスーパーノードによって実行され得る例示的な処理について示す流れ図である。
【図６】本発明の実施形態の特徴を実施できるコンピュータについて示すブロック図である。
【図７】本発明の実施形態の特徴を実施できる例示的なメモリについて示すブロック図である。
【図１】
2009500968.tif 000003
【図２】
2009500968.tif 000004
【図３】
2009500968.tif 000005
【図４】
2009500968.tif 000006
【図５】
2009500968.tif 000007
【図６】
2009500968.tif 000008
【図７】
2009500968.tif 000009
【国際調査報告】
2009500968.tif 000010