(57)【要約】クライアントとプライベートデータ通信ネットワークとの間にバーチャルプライベートネットワーク（ＶＰＮ）を構築するためのシステムおよび方法である。セキュアソケット層（ＳＳＬ）データ通信セッションのような暗号化されたデータ通信セッションは、パブリックデータ通信ネットワークを介することにより、ゲートウェイとクライアントとの間に構築される。その後、ゲートウェイは、その上での自動的なインストールおよび実行のために、プログラミングコンポーネントをクライアントに送信する。プログラミングコンポーネントは、プライベートデータ通信ネットワーク上のリソースに向けられたクライアントアプリケーションからの通信を遮断し、プライベートデータ通信ネットワーク上のリソースの代わりに、暗号化されたデータ通信セッションを介することにより、遮断した通信を送信するように動作する。l【特許請求の範囲】
【請求項１】
クライアントとプライベートデータ通信ネットワークとの間に、暗号化されたバーチャルプライベートネットワークを構築する方法であって、該クライアントは、パブリックデータ通信ネットワークを介することにより、該プライベートデータ通信ネットワークに接続されており、該方法は、
該パブリックデータ通信ネットワークを介することにより、クライアントとの暗号化されたデータ通信セッションを構築することと、
該暗号化されたデータ通信セッションの構築に応答して、該クライアント上での自動的なインストールと実行とのために、該クライアントにプログラミングコンポーネントを送信することと
を包含し、
該プログラミングコンポーネントは、該プライベートデータ通信ネットワーク上のリソースに向けられたクライアントアプリケーションからの通信を遮断して、該プライベートデータ通信ネットワーク上の該リソースの代わりに、該暗号化されたデータ通信セッションを介することにより、該遮断された通信をゲートウェイに送信するように構成されている、方法。
【請求項２】
クライアントとの暗号化されたデータ通信セッションを構築することは、クライアントとのセキュアソケット層のデータ通信セッションを構築することを包含する、請求項１に記載の方法。
【請求項３】
プログラミングコンポーネントを前記クライアントに送信することは、
第１のプログラムを該クライアントに送信することであって、該第１のプログラムは、第２のプログラムを該クライアントにインストールするように構成されている、こと
を包含し、
該第２のプログラムは、該プライベートデータ通信ネットワーク上のリソースに向けられたクライアントアプリケーションからの通信を遮断して、該プライベートデータ通信ネットワーク上の該リソースの代わりに、該暗号化されたデータ通信セッションを介することにより、ゲートウェイに送信するために、該遮断された通信を該第１のプログラムに提供するように構成されている、請求項１に記載の方法。
【請求項４】
第１のプログラムを前記クライアントに送信することは、ＡｃｔｉｖｅＸ制御を該クライアントに送信することを包含する、請求項３に記載の方法。
【請求項５】
第１のプログラムを前記クライアントに送信することは、Ｊａｖａ（登録商標）アプレットを該クライアントに送信することを包含する、請求項３に記載の方法。
【請求項６】
第２のプログラムをクライアント上にインストールするように構成された第１のプログラムを該クライアントに送信することは、
動的な遮断子を該クライアントのオペレーティングシステムの層にインストールするように構成された第１のプログラムを該クライアントに送信すること
を包含する、請求項１に記載の方法。
【請求項７】
前記暗号化されたデータ通信セッションを介することにより、前記クライアントから暗号化された通信を受信することと、
該暗号化された通信を復号化することと、
前記プライベートデータ通信ネットワーク上のリソースに該復号化された通信を提供することと
をさらに包含する、請求項１に記載の方法。
【請求項８】
前記プライベートデータ通信ネットワーク上のリソースに前記復号化された通信を提供する前に、該復号化された通信を処理すること
をさらに包含する、請求項７に記載の方法。
【請求項９】
前記復号化された通信を処理することは、
再暗号化、
データ圧縮、
ロードバランシング、
認証、承認、および、アカウンティング、または、
キャッシング
のうちの少なくとも１つを実行することを包含する、請求項８に記載の方法。
【請求項１０】
前記クライアントに向けられた通信を前記プライベートデータ通信ネットワーク上のリソースから受信することと、
前記暗号化されたデータ通信セッションを介することにより、該プライベートデータ通信ネットワーク上の該リソースから、該クライアントに該通信を送信することと
をさらに包含する、請求項１に記載の方法。
【請求項１１】
クライアントとプライベートデータ通信ネットワークとの間に、バーチャルプライベートネットワークを構築する方法であって、該プライベートデータ通信ネットワークは、パブリックデータ通信ネットワークを介することにより、該クライアントに接続されており、該方法は、
該パブリックデータ通信ネットワークを介することにより、ゲートウェイとの暗号化されたデータ通信セッションを構築することと、
該プライベート通信ネットワーク上のリソースに向けられたクライアントアプリケーションからの通信を遮断することと、
該プライベートデータ通信ネットワーク上の該リソースの代わりに、該遮断された通信を該ゲートウェイに送信することであって、該遮断された通信は、該暗号化されたデータ通信セッションを介することにより、該ゲートウェイに送信される、ことと
を包含する、方法。
【請求項１２】
ゲートウェイとの暗号化されたデータ通信セッションを構築することは、ゲートウェイとのセキュアソケット層のデータ通信セッションを構築することを包含する、請求項１１に記載の方法。
【請求項１３】
前記暗号化されたデータ通信セッションを介することにより、前記遮断された通信を前記ゲートウェイに送信することは、
該遮断された通信を暗号化することと、
前記パブリックデータ通信ネットワークを介することにより、該暗号化された遮断された通信を該ゲートウェイに送信することと
を包含する、請求項１１に記載の方法。
【請求項１４】
前記暗号化されたデータ通信セッションの構築に応答して、該ゲートウェイからプログラミングコンポーネントを受信することと、
該プログラミングコンポーネントを実行することであって、該プログラミングコンポーネントは、該プライベートデータ通信ネットワーク上のリソースに向けられたクライアントアプリケーションからの通信を遮断して、該暗号化されたデータ通信セッションを介することにより、該ゲートウェイに送信するために、該遮断された通信を第１のプログラムに提供するように構成されている、ことと
をさらに包含する、請求項１１に記載の方法。
【請求項１５】
前記プログラミングコンポーネントを受信することは、
第１のプログラムを前記ゲートウェイから受信することと、
該第１のプログラムを実行することであって、該第１のプログラムを実行することは、第２のプログラムをインストールすることを包含する、ことと
を包含し、
該第２のプログラムは、該プライベートデータ通信ネットワーク上のリソースに向けられたクライアントアプリケーションからの通信を遮断して、該暗号化されたデータ通信セッションを介することにより、該ゲートウェイに送信するために、該遮断された通信を該第１のプログラムに提供するように構成されている、請求項１４に記載の方法。
【請求項１６】
第１のプログラムを前記ゲートウェイから受信することは、ＡｃｔｉｖｅＸ制御を該ゲートウェイから受信することを包含する、請求項１５に記載の方法。
【請求項１７】
第１のプログラムを前記ゲートウェイから受信することは、Ｊａｖａ（登録商標）アプレットを該ゲートウェイから受信することを包含する、請求項１５に記載の方法。
【請求項１８】
第２のプログラムをインストールすることは、動的な遮断子を前記クライアントのオペレーティングシステムの層にインストールすることを包含する、請求項１５に記載の方法。
【請求項１９】
前記暗号化されたデータ通信セッションを介することにより、前記ゲートウェイから暗号化された通信を受信することであって、該暗号化された通信は、前記プライベートデータ通信ネットワーク上のリソースから発せられた通信を含んでいる、ことと、
該ゲートウェイからの該暗号化された通信を復号化することと、
該復号化された通信をクライアントアプリケーションに提供することと
をさらに包含する、請求項１１に記載の方法。
【請求項２０】
前記遮断された通信を前記ゲートウェイに提供する前に、該遮断された通信を処理すること
をさらに包含する、請求項１１に記載の方法。
【請求項２１】
前記遮断された通信を処理することは、ドメイン名サーバ（ＤＳＮ）の名前解決を実行することを包含する、請求項２０に記載の方法。
【請求項２２】
パブリックデータ通信ネットワークを介することにより、クライアントとの暗号化されたデータ通信セッションを構築するための手段と、
該暗号化されたデータ通信セッションの構築に応答して、該クライアント上での自動的なインストールと実行とのために、該クライアントにプログラミングコンポーネントを送信する手段と
を含み、
該プログラミングコンポーネントは、該プライベートデータ通信ネットワーク上のリソースに向けられたクライアントアプリケーションからの通信を遮断して、該プライベートデータ通信ネットワーク上の該リソースの代わりに、該暗号化されたデータ通信セッションを介することにより、該遮断された通信をゲートウェイに送信するように構成されている、ゲートウェイ。
【請求項２３】
クライアントとの暗号化されたデータ通信セッションを構築する手段は、クライアントとのセキュアソケット層のデータ通信セッションを構築することを含む、請求項２２に記載のゲートウェイ。
【請求項２４】
プログラミングコンポーネントを前記クライアントに送信する手段は、
第１のプログラムを該クライアントに送信する手段であって、該第１のプログラムは、第２のプログラムを該クライアントにインストールするように構成されている、手段
を含み、
該第２のプログラムは、該プライベートデータ通信ネットワーク上のリソースに向けられたクライアントアプリケーションからの通信を遮断して、該プライベートデータ通信ネットワーク上の該リソースの代わりに、該暗号化されたデータ通信セッションを介することにより、ゲートウェイに送信するために、該遮断された通信を該第１のプログラムに提供するように構成されている、請求項２２に記載のゲートウェイ。
【請求項２５】
第１のプログラムを前記クライアントに送信する手段は、ＡｃｔｉｖｅＸ制御を該クライアントに送信する手段を含む、請求項２４に記載のゲートウェイ。
【請求項２６】
第１のプログラムを前記クライアントに送信する手段は、Ｊａｖａ（登録商標）アプレットを該クライアントに送信する手段を含む、請求項２４に記載のゲートウェイ。
【請求項２７】
第２のプログラムをクライアント上にインストールするように構成された第１のプログラムを該クライアントに送信する手段は、
動的な遮断子を該クライアントのオペレーティングシステムの層にインストールするように構成された第１のプログラムを該クライアントに送信する手段
を含む、請求項２４に記載のゲートウェイ。
【請求項２８】
前記暗号化されたデータ通信セッションを介することにより、前記クライアントから暗号化された通信を受信する手段と、
該暗号化された通信を復号化する手段と、
前記プライベートデータ通信ネットワーク上のリソースに該復号化された通信を提供する手段と
をさらに含む、請求項２２に記載のゲートウェイ。
【請求項２９】
前記プライベートデータ通信ネットワーク上のリソースに前記復号化された通信を提供する前に、該復号化された通信を処理する手段
をさらに含む、請求項２８に記載のゲートウェイ。
【請求項３０】
前記暗号化された通信を処理する手段は、
再暗号化、
データ圧縮、
ロードバランシング、
認証、承認、および、アカウンティング、または、
キャッシング
のうちの少なくとも１つを実行する手段を含む、請求項２９に記載のゲートウェイ。
【請求項３１】
前記クライアントに向けられた通信を前記プライベートデータ通信ネットワーク上のリソースから受信する手段と、
前記暗号化されたデータ通信セッションを介することにより、該プライベートデータ通信ネットワーク上の該リソースから、該クライアントに該通信を送信する手段と
をさらに含む、請求項２２に記載のゲートウェイ。
【請求項３２】
パブリックデータ通信ネットワークを介することにより、ゲートウェイとの暗号化されたデータ通信セッションを構築する手段と、
プライベートデータ通信ネットワーク上のリソースに向けられたクライアントアプリケーションからの通信を遮断する手段と、
該プライベートデータ通信ネットワーク上の該リソースの代わりに、該遮断された通信を該ゲートウェイに送信する手段であって、該遮断された通信は、該暗号化されたデータ通信セッションを介することにより、該ゲートウェイに送信される、手段と
を含む、クライアント。
【請求項３３】
ゲートウェイとの暗号化されたデータ通信セッションを構築する手段は、ゲートウェイとのセキュアソケット層のデータ通信セッションを構築する手段を含む、請求項３２に記載のクライアント。
【請求項３４】
前記暗号化されたデータ通信セッションを介することにより、前記遮断された通信を前記ゲートウェイに送信する手段は、
該遮断された通信を暗号化する手段と、
前記パブリックデータ通信ネットワークを介することにより、該暗号化された遮断された通信を該ゲートウェイに送信する手段と
を含む、請求項３２に記載のクライアント。
【請求項３５】
前記暗号化されたデータ通信セッションの構築に応答して、該ゲートウェイからプログラミングコンポーネントを受信する手段と、
該プログラミングコンポーネントを実行する手段であって、該プログラミングコンポーネントは、該プライベートデータ通信ネットワーク上のリソースに向けられたクライアントアプリケーションからの通信を遮断して、該暗号化されたデータ通信セッションを介することにより、該ゲートウェイに送信するために、該遮断された通信を第１のプログラムに提供するように構成されている、手段と
をさらに含む、請求項３２に記載のクライアント。
【請求項３６】
前記ゲートウェイからプログラミングコンポーネントを受信する手段は、第１のプログラムを前記ゲートウェイから受信する手段をさらに含み、
該プログラミングコンポーネントを実行する手段は、該第１のプログラムを実行する手段を含み、該第１のプログラムを実行することは、第２のプログラムをインストールすることを含み、該第２のプログラムは、該プライベートデータ通信ネットワーク上のリソースに向けられたクライアントアプリケーションからの通信を遮断して、該暗号化されたデータ通信セッションを介することにより、該ゲートウェイに送信するために、該遮断された通信を該第１のプログラムに提供するように構成されている、請求項３５に記載のクライアント。
【請求項３７】
第１のプログラムを前記ゲートウェイから受信する手段は、ＡｃｔｉｖｅＸ制御を該ゲートウェイから受信する手段を含む、請求項３６に記載のクライアント。
【請求項３８】
第１のプログラムを前記ゲートウェイから受信する手段は、Ｊａｖａ（登録商標）アプレットを該ゲートウェイから受信する手段を含む、請求項３６に記載のクライアント。
【請求項３９】
第２のプログラムをインストールすることは、動的な遮断子を前記クライアントのオペレーティングシステムの層にインストールすることを含む、請求項３６に記載のクライアント。
【請求項４０】
前記暗号化されたデータ通信セッションを介することにより、前記ゲートウェイから暗号化された通信を受信する手段であって、該暗号化された通信は、前記プライベートデータ通信ネットワーク上のリソースから発せられた通信を含んでいる、手段と、
該ゲートウェイからの該暗号化された通信を復号化する手段と、
該復号化された通信をクライアントアプリケーションに提供する手段と
をさらに含む、請求項３２に記載のクライアント。
【請求項４１】
前記遮断された通信を前記ゲートウェイに提供する前に、該遮断された通信を処理する手段
をさらに含む、請求項３２に記載のクライアント。
【請求項４２】
前記遮断された通信を処理する手段は、ドメイン名サーバ（ＤＳＮ）の名前解決を実行する手段を含む、請求項４１に記載のクライアント。
【発明の詳細な説明】
【技術分野】
【０００１】
（本発明の分野）
本発明は、概してデータ通信ネットワークに関する。特に、本発明は、インターネットのようなパブリックデータ通信ネットワークを介することにより、複数のエンティティの間にバーチャルプライベートネットワーク（ＶＰＮ）を構築することに関する。
【背景技術】
【０００２】
（背景）
企業は、エンタープライズネットワークの周囲の外側に位置する従業員およびパートナーに対し、所有するアプリケーションおよびデータへのアクセスを提供することが、ますます求められている。このことを費用効率が良い方法で行なうため、企業は、インターネットのようなパブリックネットワークを活用して遠隔アクセスを提供することに期待を寄せている。しなしながら、インターネットはプライバシーにアクセスし得るネットワークであるため、ネットワークセキュリティの問題が発生する。
【０００３】
インターネット通信を安全にするためには、複数の技術が利用可能である。上記技術は、セキュアソケット層（ＳＳＬ；Ｓｅｑｕｒｅ  Ｓｏｃｋｅｔｓ  Ｌａｙｅｒ）暗号化またはインターネットプロトコルセキュリティ（ＩＰＳｅｃ；Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ  Ｓｅｃｕｒｉｔｙ）暗号化に依存する技術を含むが、それらには限定されない。ＳＳＬ暗号化は、ほとんどのＷｅｂブラウザに組み込まれ、こんにちのインターネットユーザによって利用されている一方で、現在ＩＰＳｅｃはそうではない。
【０００４】
ＳＳＬ技術は制限されているが、プライベートネットワークへの遠隔アクセスを提供する能力において、ＳＳＬ暗号化されたクライアントは、上記プライベートネットワーク内では、ドメイン名サーバ、ウィンドウズ（登録商標）インターネットネーミングサービス（ＷＩＮＳ）サーバ、または、プライベートネットワーク上のその他のリソース（エンタープライズネットワークの外側からは不可視であるが、ネットワーク上のリソースに到達するためには主要なリソース）に対し、直接的にアクセスすることができない。加えて、典型的には、ファイアウォールが、様々なポートを介して特定のトラフィックをブロックし、様々なインターネットプロトコル（ＩＰ）アドレスを自動的に制限することにより、ＳＳＬ暗号化されたクライアントが、エンタープライズネットワーク上の特定の行き先にアクセスしないようにする。最後に、様々なクライアントサーバのｅ−メールプログラムやその他のエンタープライズアプリケーションプログラムのような重要なアプリケーションは、もともとはＳＳＬ暗号化をサポートしていないため、これらリソースに安全な遠隔アクセスを提供するということにおいて、ＳＳＬの効果を制限する。
【０００５】
バーチャルプライベートネットワーク（ＶＰＮ）接続は、遠隔的なユーザおよびクライアントプログラム（換言すると、直接的に接続されていないユーザおよびクライアントプログラム）が、パブリックインターネットワーク（例えば、インターネット）を介することにより、プライベートデータネットワークへと、暗号化された遠隔的なアクセスを果たすことを可能にする。ＶＰＮを構成するための従来のアプローチは、プレインストールされた「シック・クライアント（ｔｈｉｃｋ  ｃｌｉｅｎｔ）」を用いることにより、遠隔アクセスを構成することに含まれていた。上記アプローチは、ＩＰＳｅｃ基準またはＳＳＬ、および、Ｗｅｂブラウザベースの動的なＳＳＬ  ＶＰＮ技術の早期のバージョンに基づいていた。各々は、以下でより詳細に説明される。
【０００６】
ＩＰＳｅｃ技術に基づくＶＰＮシック・クライアントは、インターネットを介することにより、パケット全体を暗号化された形態で伝送することを必要とする。強固なロバスト性と安全性とに関し、ＩＰＳｅｃ技術は、顕著な制限を有する。これら制限は、とりわけ、遠隔アクセスのユーザに対してＶＰＮクライアントソフトウェアを展開し、管理し、そして維持するという点において、管理上の挑戦を含んでいる。なぜならば、すべてのユーザは、彼または彼女のコンピュータ上でＩＰＳｅｃソフトウェアをダウンロードし、インストールしなければならないからである。加えて、ＩＰＳｅｃ  ＶＰＮ技術を利用することにより、ユーザは、代替的なエンドポイント（ｅｎｄｐｏｉｎｔ；換言すると、ユーザが関連のあるソフトウェアをインストールしていない任意のデバイス）からは、重要なリソースへとアクセスすることができない。さらに、ファイアウォールによって保護されている場所へのユーザのアクセスは、制限されていたり、いくつかの場合においては、存在しない。
【０００７】
従来のＳＳＬバージョンのシック・クライアントは、通常ファイアウォールが開（ｏｐｅｎ）を維持する標準的なＳＳＬポートを用いることにより、ＩＰＳｅｃシック・クライアントのファイアウォール制限を回避していた。しかしながら、依然として、そのような実施は、アクセスが行なわれるどこかの場所からプレインストールされたクライアントソフトウェアを有さなければならないという不都合を被っていた。これらの不都合は、管理の複雑さと、特別なソフトウェアをインストールする必要なしには、標準的なＷｅｂブラウザを実装する任意のクライアントコンピュータからのアクセスを提供することができないという点とを含んでいる。
【０００８】
従来の動的ポートプロキシ・アプローチは、ＳＳＬシック・クライアントのファイアウォールをトラバースする能力を備え、Ｗｅｂブラウザに組み込まれた暗号化能力を利用することにより、ＩＰＳｅｃシック・クライアントとＳＳＬシック・クライアントとの両方の制限にアドレスし、これにより、特別なクライアントソフトウェアをインストールする必要性を排除する。そのようなアプローチにしたがって、アクセスサーバ上のゲートウェイのデバイスまたはプログラムは、Ｊａｖａ（登録商標）アプレットをダウンロードし、暗号化されたトラフィックに対するポートをモニタする。暗号化されたトラフィックが検出される場合、暗号化されたデータを送信するクライアントは、利用可能な安全なポートを介することにより、そのトラフィックをリダイレクト（ｒｅ−ｄｉｒｅｃｔ）するように構成される。しかしながら、この技術に伴う問題は、名前を有するアドレスに対してのみ機能するということである。換言すると、上記技術は、静的なＩＰアドレスによって、または、サーバのＩＰアドレスおよび／またはポートが動的に変化する場所では、機能し得ない。したがって、これらの実施は、動的に割り当てられたＩＰアドレス、動的に変化するポートを用いるアプリケーション、あるいは、名前付けされていないリソースに到達させるためのハード・コードされたＩＰアドレスを用いるアプリケーションを取り扱うことができない。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
したがって、パブリックデータ通信ネットワークを介することにより、エンタープライズネットワークにおけるアプリケーションおよびデータに対する安全な遠隔アクセスを提供するためのシステムおよび方法が所望される。
【課題を解決するための手段】
【００１０】
（本発明の概要）
本発明は、その最も広い用途において、クライアントとプライベートデータ通信ネットワークとの間に、バーチャルプライベートネットワーク（ＶＰＮ）を構築するためのシステムおよび方法に向けられている。上記システムおよび方法において、クライアントは、パブリックデータ通信ネットワークを介することにより、プライベートデータ通信ネットワークに安全に接続されている。本発明の一実施形態にしたがうと、プライベートデータ通信ネットワークは、企業が所有するアプリケーションとデータとが存在するエンタープライズネットワークと、パブリックデータ通信ネットワーク（インターネットを含む）とを備える。
【００１１】
本発明の一実施形態にしたがう方法において、パブリックデータ通信ネットワークを介し、アクセスサーバ上のゲートウェイまたはプログラムとクライアントとの間に、暗号化されたデータ通信セッションが構築される。通信セッションは、様々な方法を介して暗号化され得る。上記方法は、セキュアソケット層（ＳＳＬ）プロトコル、インターネットプロトコルセキュリティ（ＩＰＳｅｃ）、または、その他の暗号化方法を含むが、それらには限定されない。
【００１２】
暗号化されたデータ通信セッションの構築に応答して、アクセスサーバ上のゲートウェイまたはプログラムは、もとのクライアントにプログラムを送信する。一実施形態において、プログラムは、クライアントのＷｅｂブラウザによって自動的にインストールされ実行される制御コンポーネントまたはプログラミングコンポーネント（すなわち、ネットワークのどこでも実行され得る自給自足型のプログラム）を備える。一実施形態において、プログラムは、一旦クライアントにインストールされると、クライアント上のオペレーティングシステムのトランスポート層に「フック（ｈｏｏｋ）」としてインストールされる遮断子（ｉｎｔｅｒｃｅｐｔｏｒ）として振舞うことにより、指定されたプライベートデータ通信ネットワーク上のリソースに向けられたクライアントアプリケーションからの通信を動的に遮断する能力に従事する。
【００１３】
一実施形態において、プログラムはまた、そのような遮断された通信に対するエンドポイントを提供することにより、遮断された通信に対する通信プロキシとしても振舞う。プログラムはさらに、暗号化されたデータ通信セッションにおける暗号化のエンドポイントとしての役割を担う能力を提供し、暗号化されたデータ通信セッションを介することにより、そのような通信をゲートウェイまたはアクセスサーバに配向し得る。代替的な実施形態において、プログラムは、２つ以上の別個のプログラムに分割され得る。第１のプログラムは、クライアント上で動的な遮断機能を実行し、第２のプログラムは、とりわけ、ネットワークプロキシ機能と暗号化機能とを実行し得る。
【００１４】
本発明の一実施形態は、プログラムにより、名前の翻訳（ｎａｍｅ  ｔｒａｎｓｌａｔｉｏｎ）と通信要求とを遮断することを含む。そのような実施形態にしたがってＶＰＮを介して通信するクライアントおよびサーバは、ランタイム中にＩＰアドレスを動的に変化させることができるのと同時に、選択したどのようなＩＰアドレスをも自由に用いることができる。なぜならば、そのような実施形態は、名前からアドレスへの静的な翻訳に依存しないからである。
【００１５】
ゲートウェイまたはアクセスサーバは、暗号化された通信セッションを介することにより、暗号化された通信をクライアントから受信するとき、暗号化された通信を復号化し、プライベートデータ通信ネットワーク上の適切な行き先のリソースに上記復号化された通信を提供する。一実施形態において、ゲートウェイは、トラフィックを（プロキシとして）終端し、その後さらに、プライベートネットワーク上の行き先に単に直接的に送信するだけではなく、以下に記述されるように、要求を処理することができる。この実施形態において、接続上で追加的な処理を実行することができる。上記追加的な処理は、バックエンドの暗号化、キャッシュ外の応答の提供、ローカルエリアネットワークのロードバランシング、グローバルサービスのロードバランシング、または、圧縮を含むが、これらには限定されない。
【００１６】
行き先のリソースからの任意の応答通信が存在する場合、これらは、暗号化されたデータ通信セッションを介することにより、インストールされたクライアントプログラムに転送するために、ゲートウェイに配向される（そして、以下で記述されるように、バックエンドの暗号化が利用される場所で潜在的に暗号化される）。インストールされたクライアントプログラムは、応答通信を復号化し、それらを適切なクライアントアプリケーションに引き渡す。
【００１７】
本発明の一実施形態にしたがう特定の方法において、例えばセキュアソケット層（ＳＳＬ）セッションのような暗号化されたデータ通信セッションは、パブリックデータ通信ネットワークを介することにより、ゲートウェイとクライアントとの間に構築される。その後、ゲートウェイは、暗号化されたデータ通信セッションの構築に応答して、第１のプログラムをクライアントに送信する。一実施形態において、第１のプログラムは、クライアントのＷｅｂブラウザによって自動的にインストールされ実行されるＡｃｔｉｖｅＸ（Ａｃｔｉｖｅ  Ｘ）制御のような、動的に送達されるプログラムコンポーネントを備える。その他のそのようなコンポーネントは、Ｊａｖａ（登録商標）アプレット、Ｊａｖａ（登録商標）スクリプト、動的共有ライブラリ、または、その他のそのようなプログラムコンポーネントであり得る。
【００１８】
第１のプログラムは、クライアントによって実行されるとき、とりわけ、第２のプログラムをクライアント上にインストールする。第２のプログラムは、プライベートデータ通信ネットワーク上のリソースに向けられたクライアントアプリケーションからの通信を遮断するように動作する。第２のプログラムはまた、プライベートデータ通信ネットワーク上のリソースに直接的に提供する代わりに、暗号化されたデータ通信ネットワークを介することにより、ゲートウェイに送信するために、遮断された通信を第１のプログラムに提供するように動作する。一実施形態において、第２のプログラムは、例えば、クライアントのオペレーティングシステムのトランスポート層に「フック」としてインストールされるフィルタデバイスドライバのような動的な遮断子を備える。
【００１９】
一実施形態において、第１のプログラムは、遮断された通信に対するエンドポイントを提供する接続プロキシとして振舞う。その他のプレインストールされないＳＳＬ  ＶＰＮ（ポートプロキシを含む）は、すべての通信に対するプロキシとしては振舞うことができないが、その代わりに、サポートのためにポートプロキシが前もって構成されている名前の付けられたリソースおよびポートのみに対するエンドポイントとしての役割を担うことができる。
【００２０】
ゲートウェイは、プログラムコンポーネントによって構築された暗号化されたデータ通信セッションを介することにより、暗号化された通信をクライアントから受信するとき、暗号化された通信を復号化し、プライベートデータ通信ネットワーク上の適切な行き先のリソースに上記復号化された通信を提供する。
【００２１】
別の実施形態において、ゲートウェイは、ＶＰＮを介して送信されたアプリケーショントラフィックに対する中間的なプロキシとしての役割を担い得、その後さらに、プライベートネットワーク上の行き先に直接的に送信するだけではなく、アプリケーション要求を処理することができる。この実施形態は、ゲートウェイが接続上でさらなる処理を実行することを許容し、これにより、ユーザが追加的なネットワークセキュリティを入手することを可能にする。上記処理は、トラフィックがプライベートデータ通信ネットワーク上の適切な行き先に送達される前にゲートウェイによって暗号化されるバックエンドの暗号化のようなものである。さらに、そのような処理により、ゲートウェイは、行き先のリソースにより、追加的な仕事を要求するだけではなく、キャッシュ外の応答を提供することが可能になる。ゲートウェイは、代替的または追加的に、ローカルネットワークのロードバランシング、グローバルサービスのロードバランシング、または、接続データの圧縮を実行し得る。
【００２２】
行き先のリソースからの任意の応答通信が存在する場合、これらは、暗号化されたデータ通信セッションを介することにより、ゲートウェイに提供され（そして、ゲートウェイに伝送される前に、行き先のリソースによって（一実施形態においてはバックエンドの暗号化が利用される場所で）潜在的に暗号化され、エンド・トゥ・エンドのセキュリティを提供する）第１のプログラムに転送される。第１のプログラムは、それぞれの通信を復号化し、第２のプログラムを介することにより、それらを適切なクライアントアプリケーションに引き渡す。
【００２３】
本発明の一実施形態にしたがうと、ユーザは、クライアントのシステムまたはデバイスにいかなるソフトウェアをもインストールすることを要求されない。その代わりに、必要なコンポーネントは、ゲートウェイにログインした結果として、クライアント上に動的にインストールされ、その後、ログアウト時に解除される。このことは、例えば、ＩＰＳｅｃ技術に基づくソリューション（ソフトウェアは、ユーザによってクライアント上にプレインストールされなければならない）のような遠隔アクセスを保護するための従来の技術とは、異なる利点を示している。
【００２４】
さらに、本発明の一実施形態にしたがうと、クライアントアプリケーションからプライベートデータ通信ネットワーク上に存在するリソースへの通信は、それらの通信の遮断に基づいて、ゲートウェイにリダイレクトされる。このことは、動的なポートプロキシを利用する従来のＶＰＮソリューションに対して非常に対照的であり、動作のために、クライアント上で、名前からアドレスへの翻訳を要求する。本発明の実施形態は、名前の翻訳と接続要求との遮断に基づいているため、ポートプロキシよりもむしろ、本発明の一実施形態にしたがうＶＰＮを介することによって通信するクライアントおよびサーバは、ランタイム中にＩＰアドレスを動的に変化させることができるのと同時に、選択したどのようなＩＰアドレスをも自由に用いることができる。なぜならば、そのような実施形態は、名前からアドレスへの静的な翻訳に依存しないからである。したがって、本発明の実施形態は、ハードコードされたＩＰアドレス、動的なＩＰアドレス、および、動的なポートを用いることを許容する。
【００２５】
加えて、本発明の一実施形態は、プロキシ接続に基づくＶＰＮソリューションを提供する。例えば、本発明の一実施形態は、遠隔アクセスを保護するために、接続プロキシングをベースとする暗号化されたトンネルを提供する。上記暗号化されたトンネルは、接続を終端し、オリジナルの接続のＴＣＰペイロードを抽出すること、および、そのようなアプリケーションのペイロードを新しいＴＣＰペイロード（別個のＴＣＰ接続を介して伝送されたもの）にカプセル化することが可能である。従来のＩＰＳｅｃソリューションは、すべてのパケットを暗号化し、ネットワークのパケット層に構築されたトンネルを用いることにより、デバイス間の通信を行なう。従来のその他のＳＳＬソリューションにおいて、複数のアプリケーションからのトラフィックは、ポートプロキシまたはその他のソリューションによって構築された新しいＴＣＰ接続の内部において、すべてのＴＣＰヘッダを含む完全なＴＣＰパケットをトンネリングすることにより、伝送され得る。カプセル化を行なう接続は、オリジナルの接続をゲートウェイにそのまま送達する第２のＴＣＰ接続であり、すべてのヘッダを改変することなしに含む。上記ゲートウェイは、カプセル化を行なうＴＣＰ接続からのオリジナルのペイロードをアンラップ（ｕｎｗｒａｐ）し、プライベートネットワークの最終目的地に向け、ここでも改変することなしに、送達する。
【００２６】
その他の接続の内部で完全なＴＣＰ接続をスレディングするこのアプローチは、問題の可能性を引き起こす。ＴＣＰプロトコルは、パケット損失またはパケット遅延、あるいは、認識されたパケット遅延またはパケット損失の後に、再伝送および承認を生成するため、トンネリングソリューション下のＴＣＰの２重層は、ＴＣＰプロトコルが追加的なスローダウン、再伝送、および、承認を生成する際に、そのような任意のパケット損失またはパケット遅延を増幅させる。このようにして、新しいレベルの遅延および再伝送は、オリジナルのスローダウンを顕著に強め、ＴＣＰ  ｏｖｅｒ  ＴＣＰの接続トンネルを介して複数のＴＣＰペイロードを送達することを顕著に制限する。
【００２７】
対照的に、本発明の一実施形態において、各アプリケーション接続に対して、別個の暗号化セッションが形成される。そのような実施形態における各接続は、終端またはプロキシされ、ＴＣＰペイロードは、新しく生成されたＴＣＰ接続を介して分離して送達される。このようにして、この実施形態は、ＴＣＰ  ｏｖｅｒ  ＴＣＰの問題を克服することにより、カスケード接続の遅延をより容易に克服し得る。アプリケーションのペイロードは、一組の別個のＴＣＰ接続を介して送信されるため、ネットワークにおけるパケット遅延の損失は、１つの接続のみに影響を与え、トンネル化された場合とは異なり、カスケードされた再伝送を誘導しない。そのような実施形態はまた、トンネル内のアプリケーションコンテンツのトラフィックの接続に固有の追加的な処理と容易に統合され得る。
【００２８】
本発明の一実施形態は、プロキシ（クライアントにおける接続を、そのようなデータを暗号化する前に終端し、ＳＳＬまたはその他のセッショントンネルを介することにより、上記データを送信する）として振舞うＶＰＮソリューションを提供するため、そのような遮断されたパケットの追加的な処理は、より効率的に実行される。上述のように、クライアントアプリケーションが、自らが選択したどんなＩＰアドレスをもランタイム中に動的に変化させることができるのと同時に、それらのアドレスを用いることができるようにするために、そのような処理は、そのようなトラフィックのＤＮＳ名前解決を含み得る。そのような追加的な処理はまた、本発明が、グローバルサービスのデータバランシングのような、その他の技術と効率的に統合されることを可能にし、分散したゲートウェイまたはサーバの間で、より大きな利用性とより大きな効率性とをもたらす。上述の実施形態および接続に関する処理は、本発明が、詳細なログおよび統計を維持することをも可能にする。
【００２９】
接続に固有のさらなるコンテンツ処理をアプリケーションデータに行なうことにより、本発明の実施形態はまた、ＳＳＬ  ＶＰＮ能力のようなＶＰＮ能力と、ゲートウェイによってエンタープライズネットワークに提供され得るその他の有利な機能との統合をも可能にする。例えば、本発明の一実施形態は、ゲートウェイにおいて、アプリケーション層の最適化、スイッチング特性、および、セキュリティ特性の統合を可能にする。特に、本発明の一実施形態にしたがう接続ごとのトンネリングは、ＶＰＮ特性とリクエストスイッチング技術との容易な統合を可能にする。リクエストスイッチング技術は、２００２年６月２５日に発行され、「Ｉｎｔｅｒｎｅｔ  Ｃｌｉｅｎｔ−Ｓｅｒｖｅｒ  Ｍｕｌｔｉｐｌｅｘｅｒ」と題された、米国特許第６，４１１，９８６号、および、２０００年１０月１８日に出願され、「Ａｐｐａｒａｔｕｓ，Ｍｅｔｈｏｄ  ａｎｄ  Ｃｏｍｐｕｔｅｒ  Ｐｒｏｇｒａｍ  Ｐｒｏｄｕｃｔ  ｆｏｒ  Ｅｆｆｉｃｉｅｎｔｌｙ  Ｐｏｏｌｉｎｇ  Ｃｏｎｎｅｃｔｉｏｎｓ  Ｂｅｔｗｅｅｎ  Ｃｌｉｅｎｔｓ  ａｎｄ  Ｓｅｒｖｅｒｓ」と題された、同時係属中の米国特許出願第０９／６９０，４３７号に記述されており、上記特許（出願）の各々は、本明細書において、あたかも完全に開示されたもののように援用される。リクエストスイッチング技術は、そのようなデータ処理能力を、非常に高いスループットで、インターリーブされた複数のデータストリームに適用することが可能である。本発明の一実施形態のＶＰＮ特性はまた、リクエストレベルのロードバランシング、ハイパーテキスト転送プロトコル（ＨＴＴＰ；Ｈｙｐｅｒｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）の動的なアプリケーションキャッシング、ＨＴＴＰ圧縮、伝送制御プロトコル（ＴＣＰ；Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）圧縮、ＴＣＰおよびＨＴＴＰの分散型サービス攻撃に対抗する防御、ＨＴＴＰウィルスの防御の走査、および、その他類似のものと、容易に統合され得る。
【００３０】
最後に、本発明の一実施形態において、ＶＰＮ特性の統合は、ＳＳＬ復号化の処理、および、上述のエンドポイントの処理を、ゲートウェイにおいて実行される接続に関するその他の処理と同期化することにより、拡張される。その他の処理は、ロードバランシング、ＨＴＴＰの動的なアプリケーションキャッシング、ＨＴＴＰ圧縮、ＴＣＰ圧縮、ＴＣＰおよびＨＴＴＰの分散型サービス攻撃に対抗する防御、ＨＴＴＰウィルスの防御の走査、および、その他類似のものを含む。このように、本発明の一実施形態は、そのような統合された処理の利点を加えることができる。上記利点は、いくつかの異なるシステムを相互接続せずに、処理機能の組み合わせを特定の順序で提供することにより（例えば、暗号化の前にキャッシングを行い、キャッシングの前に圧縮を行なう）、ネットワークを単純化することと；アプリケーション層のデータを１回検査して、その上で複数の動作を行なうことにより、処理を加速化することと；統一されたポリシー・システムを用い、取られるべき動作を示すことにより、管理を単純化すること、等を含む。
【００３１】
本発明の様々な実施形態の構造および動作と同様に、本発明のさらなる特性および利点は、添付の図面を参照して以下で詳細に記述される。本発明は、本明細書に記述されている特定の実施形態に限定されないことに留意されたい。本明細書において、そのような実施形態は、例示のみを目的として提示されている。当業者（単数または複数）は、本明細書に含まれる教示に基づき、追加的な実施形態を理解し得る。
【発明を実施するための最良の形態】
【００３２】
本明細書に援用され、本明細書の一部分をなしている添付の図面は、本発明を示しており、詳細な記述と共に、本発明の原理を説明する役割をさらに担い、当業者が本発明を実施および使用することを可能にする。
【００３３】
本発明の特性および利点は、図面を参照したときに、以下で開示されている詳細な記述から、さらに良く理解され得る。複数の図面の全体において、同じ参照番号は、対応する要素を同定する。一般に、複数の図面において、同じ参照番号は、同じ要素、機能的に類似した要素、および／または、構造的に類似した要素を示す。ある要素が初めて現れる図面は、対応する参照番号における最も左の桁によって示される。
【００３４】
（本発明の詳細な記述）
（Ａ．本発明の一実施形態にしたがうバーチャルプライベートネットワークを構築するためのシステム）
図１は、本発明の一実施形態にしたがう、バーチャルプライベートネットワーク（ＶＰＮ）を構築するための、例示的なシステム１００の基本的な要素を示している。図１に示されているように、システム１００は、プライベートデータ通信ネットワーク１０６と、複数のクライアント１０２ａ〜１０２ｎとを含む。上記クライアントは、パブリックデータ通信ネットワーク１０４を介することにより、遠隔的に、および、通信可能なように、プライベートデータ通信ネットワーク１０６に接続されている。一実施形態において、プライベートデータ通信ネットワーク１０６は、エンタープライズネットワークを備える。上記エンタープライズネットワークに存在するアプリケーションおよびデータは、企業（例えば、私的なビジネス組織）に所有されており、パブリックデータ通信ネットワーク１０４は、インターネットを備える。しなしながら、本発明は、そのようには限定されない。
【００３５】
図１にさらに示されているように、プライベートデータ通信ネットワーク１０６は、ゲートウェイ１０８と、複数のサーバ１１０ａ〜１１０ｎとを含む。ゲートウェイ１０８は、パブリックデータ通信ネットワーク１０４上のエンティティとプライベートデータ通信ネットワーク１０６上のリソースとの間のインターフェースとして振舞うシステムまたはデバイスである。特に、以下で詳細に記述されるように、ゲートウェイ１０８は、クライアント１０２ａ〜１０２ｎのうちの任意の１つが、遠隔的かつ安全に、リソース（例えば、サーバ１１０ａ〜１１０ｎ上で実行するか格納されているアプリケーションおよびデータ）にアクセスすることを容易にするように構成されている。
【００３６】
一実施形態において、ゲートウェイ１０８は、様々なネットワークタスクに加えて本発明の特性を実行するように構成されたネットワークサーバを備える。上記ネットワークタスクは、Ｗｅｂベースの最適化、および／または、クライアントアプリケーションの最適化、トラフィック管理、および、セキュリティに関連したものである。しかしながら、本発明はそのようには限定されず、ゲートウェイ１０８は、本発明の特性を実行するように構成された任意のネットワークシステムまたはデバイスを備え得る。
【００３７】
各クライアント１０２ａ〜１０２ｎは、パブリックデータ通信ネットワーク１０４上のその他のエンティティと通信するように適合されたシステムまたはデバイスを備え得る。上記システムまたはデバイスは、ゲートウェイ１０８を含むが、これには限定されない。当業者（単数または複数）に理解されるように、従来のさまざまな通信プロトコルは、各クライアント１０２ａ〜１０２ｎとパブリックデータ通信ネットワーク１０４上のその他のエンティティとの間の通信を実施するように用いられ得る。例えば、一実施形態において、伝送制御プロトコル／インターネットプロトコル（ＴＣＰ／ＩＰ）の一式は、リンクと転送データとを構築するように用いられるが、ハイパーテキスト転送プロトコル（ＨＴＴＰ）またはファイル転送プロトコル（ＦＴＰ）アプリケーション層は、クライアントサーバの通信のために用いられる。しかしながら、これらの例は、例示のためのものに過ぎない。本発明は、特定の通信プロトコルまたはアプリケーションに限定されることを意図されておらず、その他の専用または専用ではない、ネットワーク通信プロトコルまたはアプリケーションが用いられ得る。
【００３８】
一実施形態において、各クライアント１０２ａ〜１０２ｎは、オペレーティングシステムの制御下で実行され、ネットワーク通信のために商業的に入手可能なＷｅｂブラウザを実装するパーソナルコンピュータ（ＰＣ）を備える。例えば、各クライアント１０２ａ〜１０２ｎは、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）のオペレーティングシステムを実行し、Ｍｉｃｒｏｓｏｆｔ  Ｉｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒ（登録商標）のＷｅｂブラウザを実装するＰＣを備え得る。代替的に、各クライアント１０２ａ〜１０２ｎは、Ｍａｃｈｉｎｔｏｓｈ（登録商標）のオペレーティングシステムを実行し、Ｎｅｔｓｃａｐｅ  Ｎａｖｉｇａｔｏｒ（登録商標）のＷｅｂブラウザを実装するＰＣを備え得る。しかしながら、本発明は、これらの例には限定されず、その他のオペレーティングシステムとブラウザとが用いられ得る。加えて、本発明は、パーソナルコンピュータには限定されず、各クライアント１０２ａ〜１０２ｎは、パブリックデータ通信ネットワーク１０４を介して通信することが可能な任意のデバイスまたはシステムを備え得る。上記デバイスまたはシステムは、ラップトップコンピュータ、タブレットコンピュータ、セットトップボックス、および、ネットワーク能力を有するテレビ、携帯型コンピュータおよび携帯電話を含むが、これらには限定されない。
【００３９】
（Ｂ．本発明の一実施形態にしたがうバーチャルプライベートネットワークを構築するための方法）
図２は、本発明の一実施形態にしたがう、ＶＰＮを構築するための方法のフローチャート２００を示している。しかしながら、本発明は、フローチャート２００によって提供された記述には限定されない。むしろ、当業者は、本明細書に提供された教示から、その他の機能上の流れが本発明の範囲と精神との内にあることを理解し得る。フローチャート２００は、図１に関連して上記で記述された例示的なシステム１００を継続的に参照することによって記述され得る。しかしながら、本発明は、その実施形態には限定されない。
【００４０】
フローチャート２００の方法は、ステップ２０２から開始し、上記ステップにおいて、クライアント１０２ａ〜１０２ｎのうちの１つのクライアント（以下では一般的にクライアント１０２として参照される）は、パブリックデータ通信ネットワーク１０４を介することにより、ログイン手続きを実行し、ゲートウェイ１０８との暗号化されたデータ通信セッションを構築する。本明細書において詳細に記述されるように、暗号化されたデータ通信セッションは、クライアント１０２からプライベートデータ通信ネットワーク１０６中のゲートウェイ１０８の背後に存在する任意のサーバ１１０ａ〜１１０ｎへとトラフィックを橋渡しするためのトンネルとして用いられる。一実施形態において、クライアント１０２は、例えばＭｉｃｒｏｓｏｆｔ  Ｉｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒ（登録商標）またはＮｅｔｓｃａｐｅ  Ｎａｖｉｇａｔｏｒ（登録商標）のような商業的に入手可能なＷｅｂブラウザを用いてログインし、セキュアソケット層（ＳＳＬ）またはその他の暗号化方法（ＩＰＳｅｃ等を含む）を用いてゲートウェイ１０８とのデータ通信セッションを構築する。セキュアソケット上ハイパーテキスト転送プロトコル（ＨＴＴＰＳ；Ｈｙｐｅｒｔｅｘｓｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ  ｏｖｅｒ  Ｓｅｃｕｒｅ  Ｓｏｃｋｅｔｓ  Ｌａｙｅｒ）のようなプロトコルは、暗号化されたデータ通信セッションを初期化するように用いられ得る。
【００４１】
ステップ２０４に示されているように、ゲートウェイ１０８は、ログインと暗号化されたデータ通信セッションの構築とに応答して、パブリックデータ通信ネットワーク１０４を介することにより、第１のプログラムをクライアント１０２に送信する。第１のプログラムは、暗号化されたデータ通信セッションを介することにより、通信に対するトンネル・エンドポイントとして振舞うように構成される。一実施形態において、第１のプログラムは、クライアントのＷｅｂブラウザによって自動的にインストールされ実行されるプラグインアプリケーションを備える。例えば、第１のプログラムは、Ｍｉｃｒｏｓｏｆｔ  Ｉｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒ（登録商標）のＷｅｂブラウザによって実行されるプラグインとして提供されるＡｃｔｉｖｅＸ制御を備え得る。代替的に、第１のプログラムは、Ｎｅｔｓｃａｐｅ  Ｎａｖｉｇａｔｏｒ（登録商標）のＷｅｂブラウザによって実行されるプラグインとして提供されるＪａｖａ（登録商標）アプレット、または、ネットワーク環境にわたって機能する別の制御コンポーネントまたはプログラミングコンポーネントを備え得る。
【００４２】
ステップ２０６において、クライアント１０２は、第１のプログラムをインストールして実行する。ここに、第１のプログラムを実行することは、第２のコンポーネントをクライアント１０２上にインストールすることを含む。一部では、第２のプログラムは、クライアント１０２上で実行されるプライベートデータ通信ネットワーク１０６上のリソースに向けられたアプリケーションからの通信を遮断して、暗号化されたデータ通信セッションを介することにより、ゲートウェイ１０８に送信するために、遮断された通信を第１のプログラムに提供する。第２のプログラムはまた、インターネット・ネットワークの名前解決サービスを提供し、ネットワークのトラフィックを随意的に分割することができるように構成される。本発明の一実施形態は、トラフィックを分割することにより、どのトラフィックがＳＳＬトンネルに誘導されるのかと、どのトラフィックが正規の処理をされ続けるのかとを、トランスポート層のスタックによって決定される。
【００４３】
一実施形態において、第２のプログラムは、「フック」としてクライアント１０２のオペレーティングシステムに挿入される動的な遮断子（例えば、フィルタデバイスドライバ）を備える。例えば、第２のプログラムは、クライアントのオペレーティングシステムのトランスポート層のスタック（例えば、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）のオペレーティングシステムのトランスポート層のスタック）に付加されるフィルタデバイスドライバを備え得る。
【００４４】
ステップ２０８に示されているように、一旦第１および第２のプログラムがインストールされると、クライアント１０２上で実行されるアプリケーションは、構築された暗号化されたデータ通信セッションを介することにより、プライベートデータ通信ネットワーク１０６上のリソース（例えば、アプリケーションおよびデータ）に通信およびアクセスし得る。この通信を行なう方法は、図３に関連して以下でより詳細に議論される。代替的な実施形態において、上記で議論された第１のプログラムと第２のプログラムとの機能は、単一の制御コンポーネントまたはプログラミングコンポーネント（すなわち、ネットワーク環境のいたるところで実行され得る自給自足型のプログラム）によって実行される。上記制御コンポーネントまたはプログラミングコンポーネントは、クライアント１０２によって自動的にインストールされ、実行される。
【００４５】
ステップ２１０において、クライアント１０２は、プライベートデータ通信ネットワーク１０６からの接続を断つために、ログアウト手続きを実行する。このことは、ゲートウェイ１０８との暗号化されたデータ通信セッションを終端する。一実施形態において、ログアウト時に、第１のプログラムは、オペレーティングシステムをそのオリジナルな状態に戻すために、クライアントのオペレーティングシステムに対してなされた改変を自動的に一掃する。
【００４６】
図３は、本発明の一実施形態にしたがう、クライアントがプライベートデータ通信ネットワーク上のリソースに通信およびアクセスするための方法のフローチャート３００を示している。特に、フローチャート３００の方法は、フローチャート２００のステップ２０８が実行され得る１つの方法を示している。
【００４７】
フローチャート３００の方法は、ステップ３０２から開始し、上記ステップにおいて、クライアントアプリケーションは、新しい接続を形成するか、あるいは、クライアントのオペレーティングシステムのトランスポート層のスタックへのドメイン名を解決する。ステップ３０４に示されているように、このことが行なわれると、トランスポート層のどのような機能が開始されるよりも前に、第２のプログラムの機能が自動的に呼び出される。上記で記述されたように、一実施形態において、第２のプログラムは、動的な遮断子を備える。上記遮断子は、例えば、クライアントのオペレーティングシステムのトランスポート層のスタックに付加されるフィルタデバイスドライバのようなものであり得る。
【００４８】
ステップ３０６において、第２のプログラムは、プライベートデータ通信ネットワーク１０６上のリソースに向けられたクライアントアプリケーションからの通信を遮断し、それらを第１のプログラムに再ルーティングする。一実施形態において、上記第１のプログラムは、ＡｃｔｉｖｅＸ制御のプラグイン、Ｊａｖａ（登録商標）アプレット、または、ネットワーク環境にわたって機能するその他の制御コンポーネントまたはプログラミングコンポーネントを備える。
【００４９】
ステップ３０８において、遮断された通信の各々は、終端またはプロキシされ、第１のプログラムは、ペイロードを分離し、構築され暗号化されたデータ通信セッションを介して送達するために、上記ペイロードを新しい接続にカプセル化する。一実施形態において、ペイロードは、ＴＣＰペイロードであり、新しいＴＣＰ接続にカプセル化される。
【００５０】
ステップ３１０において、第１のプログラムは、あらかじめ構築された暗号化されたデータ通信セッションを介し、パブリックデータ通信ネットワーク１０４上で遮断された通信をゲートウェイ１０８に送信する。このことは、遮断された通信を暗号化し、暗号化された遮断された通信をゲートウェイ１０８に送信することを含む。一実施形態において、暗号化は、ＳＳＬプロトコルにしたがって実行される。
【００５１】
ステップ３１２において、ゲートウェイ１０８は、第１のプログラムによって送信された通信を終端するプロキシとして振る舞い、クライアント１０２上の第１のプログラムから受信した通信を復号化し、ゲートウェイ１０８がプライベートネットワーク１０６上の行き先のリソースを用いて構築した異なる通信を介することにより、プライベートネットワーク１０６上の適切な行き先のリソースに復号化された通信を引き渡す。一実施形態において、復号化は、ＳＳＬプロトコルにしたがって実行されるか、または、その他の適用可能な暗号化および復号化のプロトコルを用いて実行される。ステップ３１４において、行き先のリソースは、復号化された通信を処理する。
【００５２】
ステップ３１６に示されているように、復号化された通信が、応答が存在する要求を含む場合、行き先のリソースは、応答通信をゲートウェイ１０８に送信する。ステップ３１８において、ゲートウェイ１０８は、あらかじめ構築された暗号化されたデータ通信セッションを介し、パブリックデータ通信ネットワーク１０４上の応答通信をクライアント１０２上の第１のプログラムに送信する。このことは、応答通信を暗号化し、暗号化された応答通信を第１のプログラムに送信することを含む。一実施形態において、暗号化は、ＳＳＬプロトコルにしたがって実行されるか、または、その他の適用可能な暗号化および復号化のプロトコルを用いて実行される。
【００５３】
ステップ３２０において、第１のプログラムは、応答通信を復号化し、第２のプログラムを介することにより、適切なクライアントアプリケーションにそれらを引き渡す。第２のプログラムは、クライアントのオペレーティングシステムのトランスポート層のスタックに付加される。
【００５４】
ステップ３０８において、本発明の代替的な実施形態にしたがうと、クライアント１０２は、遮断された通信をパブリックデータ通信ネットワーク１０４を介して送信する前に、遮断された通信の追加的な処理を実行する。本発明の一実施形態は、データを暗号化し、そのデータをあらかじめ構築されたデータ通信セッションを介して送信する前に、クライアントにおいて通信を終端するプロキシとして振舞うＶＰＮソリューションを提供するため、そのような処理は、より効率的に実行され得る。クライアントアプリケーションが、ランタイム中にＩＰアドレスを動的に変化させるのと同時に、自らが選択したどのようなＩＰアドレスをも用いることができるようにするために、そのような処理は、遮断された通信のＤＮＳ名前解決を含み得る。そのような追加的な処理は、本発明の一実施形態が、その他の技術（例えば、グローバルサービスのロードバランシング）と効率的に統合され、分散したゲートウェイまたはサーバの間で、より大きな利用度とより大きな効率性とをもたらすことを可能にする。追加的な接続の処理はまた、遮断された通信に関する詳細なログおよび統計を維持することをも可能にする。
【００５５】
ステップ３１２に示されているように、本発明のさらに代替的な実施形態において、ゲートウェイ１０８は、クライアント１０２上の第１のプログラム（プロキシとして）から受信した通信を終端し、プライベートデータ通信ネットワーク１０６上の行き先に単に通信を直接的に送信するだけではなく、そこに含まれている１つ以上の要求をさらに処理する。このさらなる処理は、バックエンドの暗号化を含み得る。通信は、プライベートデータ通信ネットワーク１０６上の適切な行き先に送達される前に、ゲートウェイ１０８によって再処理され、その結果、エンド・トゥ・エンドのネットワークセキュリティを提供する。その後、行き先は、トラフィックを復号化し、適切に応答する。さらに、そのような処理は、ゲートウェイ１０８が、行き先のサーバによって追加的な仕事を要求するだけではなく、キャッシュ外の応答にも役立つことを可能にする。ゲートウェイは、グローバルサービスのロードバランシング、および／または、通信の圧縮を実行し、プライベートデータ通信ネットワーク１０６の効率性と応答性とを向上させる。
【００５６】
上記で記述された方法にしたがうと、暗号化されたデータ通信セッションに基づくＶＰＮは、クライアント１０２とプライベートデータ通信ネットワーク１０６との間に構築される。例えば、一実施形態において、セキュアなＶＰＮは、ＨＴＴＰＳを介して構築される。その後、クライアント１０２からプライベートデータ通信ネットワーク１０６へのすべての通信は、第１のプログラムを介することにより、ゲートウェイ１０８にルーティングされ、この暗号化されたデータ通信セッションを介することにより、その逆が行なわれる。
【００５７】
暗号化されたデータ通信セッションは、ＨＴＴＰＳを用いて構築され得るが、暗号化されたデータ通信セッションを通過する通信は、必ずしもＨＴＴＰＳパケットデータである必要はなく、さらには必ずしもＨＴＴＰパケットデータである必要すらないことに留意されたい。例えば、通信はまた、伝送制御プロトコル／ユーザデータグラムプロトコル（ＴＣＰ／ＵＤＰ）またはインターネット制御メッセージプロトコル（ＩＣＭＰ）のパケットデータをも含み得る。しかしながら、これらの例は、限定を意図したものではない。
【００５８】
上記では、本発明の一実施形態のクライアント側の様々な機能が、第１のプログラムおよび第２のプログラムによって実行されるものとして記述されてきたが、当業者（単数または複数）は、それらの機能は、単一のプログラムまたは複数のプログラムによって実行され得ることを容易に理解し得る。
【００５９】
さらに、図３を参照して記述されている方法は、クライアント１０２上のアプリケーションとプライベートデータ通信ネットワーク１０６上のリソースとの間の要求・応答型の通信を記述しているが、本発明にしたがう暗号化された通信は、必ずしも要求・応答ベースである必要はない。むしろ、通信は、任意のタイプであり得る。このため、例えばＵＤＰセッションのような、接続または通信セッションを構築し得る任意のクライアントアプリケーションは、本発明の一実施形態にしたがう暗号化された通信を送信および受信し得る。
【００６０】
上記で記述されたＶＰＮを構築するための方法は、接続をプロキシする。上記方法において、暗号化されたデータ通信セッションは、通信を終端し、各アプリケーション接続に対して、オリジナルの接続のＴＣＰペイロードを新しいＴＣＰ接続へとカプセル化することにより、形成される。このことは、従来のＩＰＳｅｃアプローチ（暗号化されたトンネルがネットワークレベルで構築されるために、任意の特定のアプリケーションまたは通信セッションとつながりをもたない）とは、対照的である。
【００６１】
上記で記述された方法はまた、例えばポートプロキシアプローチ（各通信は、ポートプロキシによって構築された新しい暗号化されたＴＣＰ接続の内部で、すべてのＴＣＰヘッダを含む完全なエンティティとしてカプセル化される）のような、その他の従来のＳＳＬソリューションとも区別される。カプセル化を行なう接続は、オリジナルの接続をゲートウェイにそのまま送達するセッション全体にわたる第２のＴＣＰ接続であり、すべてのヘッダを改変することなしに含む。上記ゲートウェイは、カプセル化を行なうＴＣＰ接続からのオリジナルの接続のペイロードをアンラップし、プライベートネットワークの最終目的地に向け、改変することなしに送達する。上記で記述された、ＳＳＬ接続上のトンネル化されたその他の接続の内部でＴＣＰ接続をスレディングするポートプロキシ・アプローチは、複数の完全なＴＣＰペイロードが単一のＳＳＬ  ＴＣＰチャネルを介して送達されるという問題を被る。なぜならば、ＴＣＰプロトコルは、パケット損失またはパケット遅延またはパケット伝送が顕著に増幅される際に、スローダウンと再伝送と承認とを生成するためである。この実施形態は、終端またはプロキシされた接続のＴＣＰペイロード（別個に構築された新しい接続を介して析出および送達される）のみをゲートウェイに伝送することにより、これら遅延を克服する。
【００６２】
本発明の一実施形態は、プロキシ（クライアントにおける接続を、そのようなデータを暗号化する前に終端し、ＳＳＬセッションのトンネルを介することにより、上記データを送信する）として振舞うＶＰＮソリューションを提供するため、プログラムは、接続をベースとしたパケットフローを、そのような遮断されたパケットの追加的な処理を可能にする方法によって、より巧みに管理する。そのような追加的な処理は、本発明をグローバルサービスのロードバランシングのようなその他の技術と効率的に統合し、分散したゲートウェイまたはサーバとの間で、より大きな利用性とより大きな効率性とをもたらすことを可能にする。上記の実施形態および追加的な接続の処理はまた、本発明が、パケットに関する詳細なログおよび統計を維持することをも可能にする。
【００６３】
加えて、接続プロキシングをベースとするＶＰＮ（オリジナルの接続のＴＣＰペイロードのみが、セキュアなＶＰＮを介してゲートウェイに伝送される）を提供することにより、上記で記述された方法はまた、ＶＰＮのゲートウェイにおけるキャッシング技術との統合をも可能にする。上記キャッシング技術は、ネットワークの性能を改良するために、Ｗｅｂのオブジェクト要求をモニタし、サーバから抽出を行なうオブジェクトを格納する。さらに、上記で記述された方法は、ゲートウェイにおいて接続をプロキシすることにより、ＳＳＬ  ＶＰＮをその他のネットワーク技術（ロードバランシングおよびＴＣＰバッファリングを含む）に首尾よく統合し、その結果、ゲートウェイにおいてさらなる処理の機会を生じさせることを可能にする。
【００６４】
上記で記述されたＶＰＮを構築するための方法は、接続プロキシングをベースとしているため、認証、承認、および、アカウンティング（ＡＡＡ）ポリシー、キャッシング、圧縮、スイッチング、接続のマルチプレキシング、ＳＹＮフラッドおよびその他の形態の攻撃からの防御とより良く両立し、従来のＶＰＮアプローチよりもトンネリングを分割するような方法で、アプリケーションデータを転送することが可能になる。前の段落で記述されたような接続プロキシングをベースとするＶＰＮを実行することの利点を示すために、そのような接続に関する任意の追加的な処理がゲートウェイにおいて実行され得るような上記で記述された方法（前の段落に記述された各方法を含む）は、単純かつ効率的に実行され得る。なぜならば、ゲートウェイは、暗号化されたセッションに対するプロキシのエンドポイントとしての役割を担うからである。特に、一実施形態において、上記で記述された方法におけるゲートウェイが接続を終端する際、上記ゲートウェイは、そのような処理のうち１つ以上の形態の処理を実行することにより、そのようなゲートウェイは、ＴＣＰペイロードにアクセスして操作することにより、そのような処理を実行させることが可能である。対照的に、接続のトンネリングを含むその他のアプローチは、当然ながら、ゲートウェイにおいて接続を終端することができない（むしろ、上記アプローチは、暗号化されたトンネルセッションのみを暗号化する）ため、上記アプローチは、暗号化されたセッションの内部でトンネリングされたＴＣＰ接続を終端するように、第２のレベルの処理を要求する。ゲートウェイが接続上でさらなる処理を実行するという要求の結果として、これらのアプローチは、本質的により複雑であり、ゲートウェイでそのような任意の接続上の追加的な機能の処理を実行するという点において、効率が悪くなる傾向がある。
【００６５】
最後に、一実施形態において、本発明のＶＰＮ特性の統合は、ＳＳＬ復号化の処理、および、上記で記述されたエンドポイントの処理を、ゲートウェイにおいて実行される接続に関するその他の処理と同期化することにより、拡張され得る。その他の処理は、ロードバランシング、ＨＴＴＰの動的なアプリケーションキャッシング、ＨＴＴＰ圧縮、ＴＣＰ圧縮、ＴＣＰおよびＨＴＴＰの分散型サービス攻撃に対抗する防御、ＨＴＴＰウィルスの防御の走査、および、その他類似のものを含む。
【００６６】
上記で記述されたように効率を処理することに加え、本発明の一実施形態は、クライアントまたはクライアント制御を用いることにより、各接続に対して別個のＴＣＰ接続を形成し、ゲートウェイでそのような各接続を終端する。これにより、本発明の一実施形態は、そのような各接続上の追加的な処理を単純かつ効率的に順序付ける能力を提供する。
【００６７】
接続のトンネリングアプローチを含むその他のアプローチにおいて、ゲートウェイは、上記の段落において既に記述されたような追加的な処理問題（本発明のより効率的なアプローチとは対照的に実行されなければならない追加的な接続の処理に関係する問題）に直面する。この効率的ではないアプローチにおいて、複数のアプリケーションは、単一の暗号化されたセッショントンネルを介してトンネリングされ得るため、ゲートウェイにおける内部のＴＣＰ接続の処理は、より複雑になり、ゲートウェイのプロセッサ・リソースにおいてそれらを使用するという点において、より不経済になり得る。このようにして、本発明の一実施形態は、暗号化セッションのゲートウェイにおける処理をその他の処理と統合することの効率性を向上させる。
【００６８】
上記で記述された方法は、クライアントによって通信が開始される実施形態を参照して記述されてきたが、本発明はまた、プライベートデータ通信ネットワーク１０６上のエンティティによって通信が開始される実施形態をも含む。そのような実施形態にしたがうと、プライベートデータ通信ネットワーク１０６上のバーチャルなクライアントおよびエンティティ（例えば、サーバ１１０ａ〜１１０ｎ）として振舞うゲートウェイ１０８は、任意のクライアント１０２ａ〜１０２ｎ上に存在するアプリケーションとの通信を開始する。そのような実施形態において、ＶＰＮセッションは、図３を参照して上記で記述された方法と同じ方法で構築されるが、セッションが構成された後、クライアントまたはサーバのいずれか一方は、ＵＤＰセッションのような接続セッションまたは通信セッションを開始し、互いに対して通信を送信し得る。
【００６９】
（Ｃ．本発明の一実施形態にしたがう例示的なクライアント／サーバ／ゲートウェイ）
クライアント１０２ａ〜１０２ｎ、サーバ１１０ａ〜１１０ｎ、および、ゲートウェイ１０８ｎの各々によってそれぞれ実行されるような本発明の機能は、ハードウェア、ソフトウェア、または、それらの組み合わせを用いて実行され得、１つ以上のコンピュータシステムまたはその他の処理システムに統合され得る。例えば、図４は、本発明の実施形態にしたがうクライアント１０２ａ〜１０２ｎ、サーバ１１０ａ〜１１０ｎ、および／または、ゲートウェイ１０８ｎのうちの任意のものを実装するように利用され得る例示的なコンピュータシステム４００を示している。
【００７０】
図４に示されているように、例示的なコンピュータシステム４００は、本発明の実施形態にしたがうソフトウェアルーチンを実行するためにプロセッサ４０４を含む。明確化のため、単一のプロセッサのみが示されているが、コンピュータシステム４００はまた、マルチプロセッサシステムをも備え得る。プロセッサ４０４は、コンピュータシステム４００のその他のコンポーネントと通信するために、通信設備４０６に接続される。通信設備４０６は、例えば、通信バス、クロスバー、または、ネットワークを備え得る。
【００７１】
コンピュータシステム４００は、例えばランダムアクセスメモリ（ＲＡＭ）のようなメインメモリ４０８と、２次メモリ４１０とをさらに含む。２次メモリ４１０は、例えば、ハードディスクドライブ４１２、および／または、リムーバブル格納ドライブ４１４を含み得る。上記リムーバブル格納ドライブは、フロッピー（登録商標）ディスクドライブ、磁気テープドライブ、光学ディスクドライブ、または、その他類似のものを含み得る。リムーバブル格納ドライブ４１４は、周知な方法により、リムーバブル格納ユニット４１８から読み出したり、および／または、書き込んだりする。リムーバブル格納ユニット４１８は、フロッピー（登録商標）ディスク、磁気テープ、光学ディスク、または、その他類似のものであり得、リムーバブル格納ドライブ４１４により、読み出されたり、書き込まれたりする。当業者（単数または複数）によって理解され得るように、リムーバブル格納ユニット４１８は、コンピュータが使用することが可能な格納媒体（コンピュータソフトウェアおよび／またはデータが格納されている）を含み得る。
【００７２】
代替的な実施形態において、２次メモリ４１０は、コンピュータプログラムまたはその他の命令をコンピュータシステム４００にロードすることを可能にするその他類似の手段を含み得る。そのような手段は、例えば、リムーバブル格納ユニット４２２と、インターフェース４２０とを含み得る。リムーバブル格納ユニット４２２とインターフェース４２０との例は、プログラムカートリッジおよびカートリッジインターフェース（例えば、ビデオゲームのコンソールボックスに見出されるようなもの）、リムーバブルメモリチップ（例えば、ＥＰＲＯＭまたはＰＲＯＭ）および関連するソケット、ならびに、その他のリムーバブル格納ユニット４２２およびインターフェース４２０（ソフトウェアおよびデータがリムーバブル格納ユニット４２２からコンピュータシステム４００へと転送することを可能にする）を含む。
【００７３】
コンピュータシステム４００は、ディスプレイユニット４３０上でユーザに表示するために、グラフィックス、テキスト、および、その他のデータを、通信インターフェース４０６またはフレームバッファ（図示されず）から転送する、ディスプレイ・インターフェース４０２をさらに含む。
【００７４】
コンピュータシステム４００はまた、少なくとも１つの通信インターフェース４２４をも含む。通信インターフェース４２４は、ソフトウェアおよびデータが、通信経路４２６を介して通信システム４００と外部のデバイスとの間で転送されることを可能にする。本発明の一実施形態において、通信インターフェース４２４は、コンピュータシステム４００と、例えばパブリックデータ通信ネットワーク１０４またはプライベートデータ通信ネットワーク１０６のようなデータ通信ネットワークとの間で、データが転送されることを可能にする。通信インターフェース４２４の例は、モデム、ネットワークインターフェース（例えば、イーサネット（登録商標）カード）、通信ポート、および、その他類似のものを含み得る。通信インターフェース４２４を介して転送されるソフトウェアおよびデータは、電子的、電磁気的、光学的であり得る信号、または、通信インターフェース４２４によって受信されることが可能なその他の信号の形態であり得る。これらの信号は、通信経路４２６を介することにより、通信インターフェースに提供される。
【００７５】
本明細書において用いられているように、「コンピュータプログラム製品」という用語は、一部では、リムーバブル格納ユニット４１８、リムーバブル格納ユニット４２２、ハードディスクドライブ４１２にインストールされたハードディスク、または、通信経路４２６（ワイヤレスリンクまたはケーブル）を介してコンピュータインターフェース４２４に搬送される搬送波を参照し得る。コンピュータが使用することが可能な媒体は、磁気媒体、光学媒体、または、その他の記録可能媒体、または、搬送波またはその他の信号を伝送する媒体を含み得る。これらのコンピュータプログラム製品は、ソフトウェアをコンピュータシステム４００に提供する手段である。
【００７６】
コンピュータプログラム（コンピュータ制御ロジックとも呼称される）は、メインメモリ４０８および／または２次メモリ４１０に格納される。コンピュータプログラムはまた、通信インターフェース４２４を介して受信され得る。このようなコンピュータプログラムは、実行されたときに、コンピュータシステム４００が上記で記述された本発明の１つ以上の特性を実行することができるようにする。特に、コンピュータプログラムは、実行されたときに、プロセッサ４０４が本発明の特性を実行することができるようにする。したがって、そのようなコンピュータプログラムは、コンピュータシステム４００のコントローラに相当する。
【００７７】
本発明は、ソフトウェア、ファームウェア、ハードウェア、または、そられの任意の組み合わせにおける制御ロジックとして実施され得る。本発明がソフトウェアを用いて実施される実施形態において、上記ソフトウェアは、リムーバブル格納ドライブ４１４、ハードディスクドライブ４１２、または、インターフェース４２０を用いることにより、コンピュータプログラム製品に格納され、コンピュータシステム４００にロードされ得る。代替的に、コンピュータプログラム製品は、通信経路４２６を介することにより、コンピュータシステム４００にダウンロードされ得る。ソフトウェアは、プロセッサ４０４によって実行されたときに、プロセッサ４０４が本明細書に記述された本発明の機能を実行できるようにする。
【００７８】
（Ｄ．結論）
上記では、本発明の様々な実施形態が記述されてきたが、それらは単に例示のために提供され、限定のために提供されたものではないことが、理解されるべきである。したがって、当業者は、添付の請求の範囲に定義された本発明の精神および範囲から逸れることなしに、形式および細部に関する様々な変更がなされ得ることを理解し得る。したがって、本発明の広さおよび範囲は、上記で記述された任意の例示的な実施形態によって限定され得、添付の請求の範囲とその均等物のみにしたがって定義され得る。
【図面の簡単な説明】
【００７９】
【図１】図１は、本発明の一実施形態にしたがう、バーチャルプライベートネットワーク（ＶＰＮ）を構築するためのシステムを示している。
【図２】図２は、本発明の一実施形態にしたがう、ＶＰＮを構築するための方法のフローチャートを示している。
【図３】図３は、本発明の一実施形態にしたがう、プライベートデータ通信ネットワーク上のリソースに通信およびアクセスするための方法に関するフローチャートである。
【図４】図４は、本発明の一実施形態にしたがう、クライアント、サーバ、および／または、ゲートウェイのコンピュータシステムをベースとした実施の例を示している。
【図１】
2008505545.tif 000002
【図２】
2008505545.tif 000003
【図３】
2008505545.tif 000004
【図４】
2008505545.tif 000005