(57)【要約】  ゲートウェイのスケーリングおよび管理を実行できるシステムおよび方法。一つの実施形態において、方法は、クライアント装置からの要求に応答して、プライベートネットワークへのゲートウェイを実装するコンピュータシステムにより、該クライアント装置と該ゲートウェイとの間にネットワークトンネルを確立することと、該ネットワークトンネルの確立後に、該クライアント装置と、該プライベートネットワーク内の一つ以上のネットワーク装置との間のネットワークトラフィックを選択的に遮断しおよび可能にするための、該コンピュータシステムに関するファイアウォールルールの独立したセットを有する独立したファイアウォールサービスを開始することとを含む。
2019511156.tif 000002
【特許請求の範囲】
【請求項１】
クライアント装置からの要求に応答して、プライベートネットワークへの第一のゲートウェイを実装する第一のコンピュータシステムにより、前記クライアント装置と前記第一のゲートウェイとの間に第一のネットワークトンネルを確立することと、
前記第一のネットワークトンネルの確立後に、前記クライアント装置と、前記プライベートネットワーク内の一つ以上のネットワーク装置との間のネットワークトラフィックを選択的に遮断しおよび可能にするための、前記第一のコンピュータに関するファイアウォールルールの独立したセットを有する独立したファイアウォールサービスを開始することと、を含む、コンピュータが実施する方法。
【請求項２】
前記独立したファイアウォールサービスは、前記クライアント装置と、前記プライベートネットワーク内の前記ネットワーク装置との間のネットワーク接続の状態の経過を追うための状態リストを含むステートフルファイアウォールである、請求項１に記載の方法。
【請求項３】
前記第一のコンピュータシステムにより、前記状態リストと前記クライアント装置を同期させることをさらに含む、請求項２に記載の方法。
【請求項４】
前記第一のコンピュータシステムにより、前記状態リストを、前記クライアント装置が変更できないようにすることをさらに含む、請求項３に記載の方法。
【請求項５】
前記第一のネットワークトンネルの故障に応動して、第二のコンピュータシステムにより、前記プライベートネットワークへの第二のゲートウェイを実装することをさらに含み、前記実装することは、
前記クライアント装置から、前記クライアント装置と前記第二のゲートウェイとの間に第二のネットワークトンネルを確立するための第二の要求を受信することと、
前記クライアント装置から、前記状態リストを受信することと、
前記クライアント装置と前記第二のゲートウェイとの間に第二のネットワークトンネルを確立することと、
前記第二のネットワークトンネルの確立後に、前記クライアント装置と、前記プライベートネットワーク内の前記一つ以上のネットワーク装置との間のネットワークトラフィックを選択的に遮断しおよび可能にするための、前記第二のコンピュータシステムに関するファイアウォールルールの前記独立したセットを用いて、第二の独立したファイアウォールサービスを開始することと、
前記状態リストを用いて、前記第二の独立したファイアウォールサービス内の前記独立したファイアウォールサービスの前記状態を復元することと、を含む、請求項３に記載の方法。
【請求項６】
前記第一のコンピュータシステムにより、前記クライアント装置から、前記クライアント装置と通信できるようになっている前記プライベートネットワーク内の前記ネットワーク装置のクライアントアクセスを示すクライアントアクセスリストを受信することと、
前記クライアントアクセスリストの受信後に、前記クライアントアクセスリストから、前記独立したファイアウォールサービスの場合のファイアウォールルールを決定することと、
前記第一のネットワークトンネルの前記故障に応動して、前記第二のコンピュータシステムにより、前記クライアント装置から、前記クライアントアクセスリストを受信することと、
前記第二のコンピュータシステムにより、前記クライアントアクセスリストから、前記第二の独立したファイアウォールサービスの場合のファイアウォールルールを決定することと、をさらに含む、請求項５に記載の方法。
【請求項７】
前記第一のコンピュータシステムは、複数のプロセッサコアを備え、
前記第一のコンピュータシステムは、各プロセッサコア上でプロセスを実行するように構成され、および
前記独立したファイアウォールサービスを開始することは、前記プロセスにより、前記独立したファイアウォールサービスを、前記複数のプロセッサコアのうちの一つに供給するための新たな処理スレッドを開始することをさらに含む、請求項１に記載の方法。
【請求項８】
前記独立したファイアウォールサービスを開始することは、前記複数のプロセッサコアのうちの一つを選択し、それによって前記独立したファイアウォールサービスを実行するための前記プロセスを選択することをさらに含み、前記方法は、前記独立したファイアウォールサービスの開始後に、前記第一のネットワークトンネルからのペイロードデータを前記新たな処理スレッドへ送ることをさらに含む、請求項７に記載の方法。
【請求項９】
前記新たな処理スレッドにより、前記クライアント装置のためのペイロードデータを暗号化することと、
前記クライアント装置からのペイロードデータを解読することと、をさらに含む、請求項７に記載の方法。
【請求項１０】
前記複数のプロセッサコアは、前記暗号化することまたは解読することの少なくとも一方を実行するためのハードウェアアクセラレーションを備える、請求項９に記載の方法。
【請求項１１】
少なくとも一つのプロセッサコアであって、各コアがプロセスを動作させるように構成されたプロセッサコアと、
前記少なくとも一つのプロセッサコアに、
クライアント装置からの要求に応答して、前記クライアント装置と、プライベートネットワークへのゲートウェイとの間にネットワークトンネルを確立するように、および
前記ネットワークトンネルの確立後に、前記クライアント装置と、前記プライベートネットワーク内の一つ以上のネットワーク装置との間のネットワークトラフィックを選択的に遮断しおよび可能にするためのファイアウォールルールの独立したセットを有する独立したファイアウォールサービスを開始するように、命令するように構成された命令を格納する記憶装置と、
を備えるシステム。
【請求項１２】
前記独立したファイアウォールサービスを開始することは、前記複数のプロセッサコアの第一のコアの第一のプロセスにより、前記独立したファイアウォールサービスを、前記複数のプロセッサコアの第二のコア上に供給するための新たな処理スレッドを開始することをさらに含む、請求項１１に記載のシステム。
【請求項１３】
前記第二のコアは、前記独立したファイアウォールサービスを実行する、請求項１２に記載のシステム。
【請求項１４】
前記命令はさらに、前記独立したファイアウォールサービスを開始した後に、前記ネットワークトンネルからのペイロードデータを前記新たな処理スレッドへ送るように、前記少なくとも一つのプロセッサコアに命令するように構成される、請求項１３に記載のシステム。
【請求項１５】
前記ファイアウォールルールの独立したセットを格納する記憶装置をさらに備える、請求項１１に記載のシステム。
【請求項１６】
コンピュータ可読命令を格納する非一時的なコンピュータ可読記憶媒体であって、実行時に、第一のコンピュータシステムに、
クライアント装置からの要求に応答して、前記クライアント装置と第一のゲートウェイとの間に第一のネットワークトンネルを確立させ、および
前記第一のネットワークトンネルの確立後に、前記クライアント装置と、前記プライベートネットワーク内の一つ以上のネットワーク装置との間のネットワークトラフィックを選択的に遮断しおよび可能にするための、前記第一のコンピュータシステムに関するファイアウォールルールの独立したセットを有する独立したファイアウォールサービスを開始させる、非一時的なコンピュータ可読記憶媒体。
【請求項１７】
前記命令はさらに、前記第一のコンピュータシステムに、前記第一のネットワークトンネルの故障に応動して、第二のコンピュータシステムによる、前記プライベートネットワークへの第二のゲートウェイの実装を生じさせ、前記実装は、前記クライアント装置と前記第二のゲートウェイとの間に第二のネットワークトンネルを確立し、前記実装はさらに、前記ファイアウォールルールの独立したセットを用いて第二の独立したファイアウォールサービスを開始する、請求項１６に記載の記憶媒体。
【請求項１８】
前記命令はさらに、前記第一のコンピュータシステムに、
前記クライアント装置と通信できるようになっている、前記プライベートネットワーク内の前記ネットワーク装置のクライアントアクセスを示すクライアントアクセスリストを受信させ、
前記クライアントアクセスリストから、前記独立したファイアウォールサービスの場合のファイアウォールルールを決定させ、
前記第一のネットワークトンネルの故障に応動して、前記第二のコンピュータシステムへの前記クライアントアクセスリストの提供を生じさせる、請求項１７に記載の記憶媒体。
【請求項１９】
前記独立したファイアウォールサービスは、前記クライアント装置と前記ネットワーク装置との間のネットワーク接続の状態の経過を追うための状態リストを備えるステートフルファイアウォールである、請求項１６に記載の記憶媒体。
【請求項２０】
前記命令はさらに、前記第一のコンピュータシステムに、前記クライアント装置のためのペイロードデータを暗号化させる、請求項１６に記載の記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願
この出願は、Ｇｌａｚｅｍａｋｅｒｓ等による、２０１６年３月２４日に出願された米国特許出願第１５／０５３，４２２号および２０１６年２月８日に出願された米国特許仮出願第６２／２９２，７０２号の利益を主張するとともに、それらに対して優先権を主張するものであり、これらの出願の内容全体は、本願明細書に完全に記載されているかのように、参照によって本願明細書に組み込まれるものとする。
【０００２】
分野
少なくともいくつかの実施形態は、一般に、ネットワーク保護の分野に関し、より具体的には、限定するものではないが、ＶＰＮサーバやファイアウォール等のトンネルサーバを含むゲートウェイによるプライベートネットワークの保護に関する。
【背景技術】
【０００３】
プライベートネットワークを、迷惑なネットワークアクセスから保護するために、ファイアウォールを、該プライベートネットワークからのおよび該プライベートネットワークへの通信を選択的にフィルターにかけるため、ゲートウェイに実装することができる。ファイアウォールルールを適用することにより、該ファイアウォールは、一方向または両方向において、ネットワークパケットを通過させるか、または遮断する。該ルールは、典型的には、該ネットワークパケットのソースおよび／または宛先アドレス、または、該ネットワークパケットの該ソースおよび／または宛先ポートによって定義される。
【０００４】
ファイアウォールはさらに、ステートフルパケットインスペクションを実行し、それによって、例えば、ＴＣＰまたはＵＤＰネットワーキング接続等のネットワーキング接続の状態の経過を追うことができる。このように、微細な制御は、該ルールが該ネットワーク接続に依存するようになって動的になるため可能である。該ファイアウォールは、テーブル、すなわち、すべての進行中の接続に関する状態テーブルまたは状態リストを維持することにより、すべてのオープンネットワーク接続の経過を追う。
【０００５】
ゲートウェイによって通過するネットワークトラフィックをより良好に制御するため、上記ファイアウォールは、ネットワーキングパケットのペイロードデータを制御することにより、ディープパケットインスペクションをさらに実行してもよい。このように、例えば、ユーザアクセスまたは認可、プロトコルコンプライアンス、スパムフィルタリングおよびウィルス検出等の異なる種類の制御を実施することができる。
【０００６】
プライベートネットワークをさらに保護するために、上記ゲートウェイのファイアウォールは、ネットワークトンネリングと組合せてもよい。その場合、該プライベートネットワークへのアクセスは、クライアント装置と該ゲートウェイとの間に安全なネットワーキングトンネルが設定されるＶＰＮ（バーチャルプライベートネットワーク）によって確立することができる。このようなトンネルの設定は、該ゲートウェイとの認証成功時にのみ許可され、該ゲートウェイは、その場合、ＶＰＮサーバとして機能する。該ゲートウェイ内でのファイアウォールとＶＰＮサーバとの組合せにより、該プライベートネットワーク内の装置へのアクセスは、該ＶＰＮサーバによってクライアントまたはユーザレベルで、および該ファイアウォールによってネットワークレベルで許可することができる。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
概要
上述したような複合ゲートウェイシステムに関しては、いくつかの問題が生じる可能性がある。第一に、ファイアウォールルールの量が、各追加的なユーザとともに増加して、大きなシステムに対しては、該すべてのルールの管理を困難にするであろう。このため、入ってくる各パケットは、それらのルールのすべてと対照して処理しなければならないであろう。
【０００８】
第二の問題は、上記ゲートウェイのフェイルオーバーに関するものである。パッシブフェイルオーバーと呼ばれる一つのフェイルオーバースキームにおいては、該ゲートウェイ内のすべての情報（すなわち、ファイアウォールルール、状態リストおよびアクティブネットワーキングトンネル）は、第二の冗長ゲートウェイと常に同期されている。該第一のゲートウェイに不具合があった場合、該第二のゲートウェイは、該第一のゲートウェイから自動的に引き継ぐ。該同期のため、フェイルオーバー中に、アクティブなネットワーク接続は失われない。
【０００９】
アクティブフェイルオーバーと呼ばれる別のフェイルオーバースキームでは、いくつかのゲートウェイも互いに同期されるが、該ゲートウェイ間で負荷のバランスをとることができるように、すべてが同時にアクティブになっている。また、この場合、該同期により、一つのゲートウェイは、故障時に、該ネットワーク接続を失うことなく、別のゲートウェイからすべての接続を引き継ぐことができる。
【００１０】
該システムは、新たなゲートウェイを追加するだけでは拡張することができないため、上記二つのスキームに関する問題は拡張性である。第一に、同期に必要な該ゲートウェイ間の帯域幅が、ゲートウェイの量または数に関して指数関数的に増加するであろう。第二に、上記状態リストは同期状態が維持されるため、スケーリング時に、各ゲートウェイの該状態リストおよびファイアウォールルールのサイズも線形的に増加するであろう。このため、各ゲートウェイの電力およびメモリ空間を処理する該必要な帯域幅は、新たなゲートウェイの追加時に増加するであろう。
【００１１】
本願明細書には、上記の問題を緩和し、および容易かつ直接的な方法で拡張および管理することができるゲートウェイを提供するさまざまな実施形態が記載されている。いくつかの実施形態を、この章で要約する。
【課題を解決するための手段】
【００１２】
本開示の実施形態は、ネットワーク装置を不正アクセスから守るのに役立つ。特に、本開示の実施形態は、クライアントがアクセスを許可されていないネットワーク装置のすべてのアクセス（または認識も）防ぎながら、該クライアントがアクセスを許可されているアプリケーションサーバおよび他のネットワーク装置への十分なアクセスを可能にする。
【００１３】
本開示の一つの実施形態による、コンピュータが実施する方法は、クライアント装置からの要求時に、プライベートネットワークへのゲートウェイを実装するコンピュータシステムにより、該クライアント装置と該ゲートウェイとの間にネットワークトンネルを確立することと、該ネットワークトンネルの確立時に、該クライアント装置と、該プライベートネットワーク内の一つ以上のネットワーク装置との間のネットワークトラフィックを選択的に遮断しおよび可能にするための、該コンピュータシステムに関するファイアウォールルールの独立したセットを有する独立したファイアウォールサービスを開始することを含む。
【００１４】
本開示は、さまざまな方法、そのような方法を実行する（コンピュータシステムを含む）さまざまな装置、およびコンピューティングシステムにより実行される場合に、該コンピューティングシステムに、そのような方法を実行させる命令を含むコンピュータ可読媒体を含む。
【００１５】
他の特徴は、添付図面から、および以下の詳細な説明から明らかになるであろう。
【００１６】
上記実施形態は、該添付図面の図において例としておよび非限定的に説明されており、同様の参照符号は同様の要素を示すものとする。
【図面の簡単な説明】
【００１７】
【図１】図１は、本開示のさまざまな態様による、迷惑なネットワークアクセスからのネットワーク装置の保護のための例示的なシステムである。
【図２】図２は、本開示の構成要素によって実行することができる、クライアント装置とプライベートネットワークとの間にネットワーキングトンネルを確立するための例示的なプロセスである。
【図３】図３は、一つの実施形態による、ゲートウェイを実装するコンピューティングシステムの異なるプロセッサコアにファイアウォールサービスを分散させる例示的なプロセスである。
【図４】図４は、一つの実施形態による、ファイアウォールサービスを実施するゲートウェイによって分離されるクライアント装置とプライベートネットワークとの間のネットワーキングトンネルの確立のための例示的なシステムである。
【図５】図５は、本開示の構成要素によって実行することができる、ゲートウェイに実装されたファイアウォールを同期する例示的なプロセスである。
【図６】図６は、本開示のさまざまな態様による、迷惑なネットワークアクセスからのネットワーク装置の保護のための、複数のゲートウェイを含む例示的なシステムである。
【図７】図７は、本開示の構成要素によって実行される、ファイアウォールサービスを一つのゲートウェイから別のゲートウェイにシームレスで転送する例示的なプロセスである。
【図８】図８は、本開示のさまざまな態様による例示的なコンピューティングシステムを示す。
【発明を実施するための形態】
【００１８】
詳細な説明
次に、本発明の一部を構成し、および具体的な実施形態例を例示として示す添付図面を参照して、本発明の主題をより完全に説明する。しかし、発明の主題は、さまざまな異なる形態で具体化することができ、そのため、カバーされたまたは請求された発明の主題は、本願明細書に記載されたいずれかの実施形態例に限定されないものと解釈されるように意図され、実施形態例は、単に例示として記載されている。同様に、請求されたまたはカバーされた発明の主題に対しては、合理的な幅広い範囲が意図されている。特に、例えば、発明の主題は、方法、装置、構成要素またはシステムとして具体化することができる。そのため、実施形態は、例えば、ハードウェア、ソフトウェア、ファームウェアまたは（本質的にソフトウェア以外の）これらの組合せの形を取ることができる。したがって、以下の詳細な説明は、限定的な意味で解釈されるように意図されていない。
【００１９】
添付図面において、いくつかの形状構成は、特定の構成要素の詳細（図に示す何らかのサイズ、材料および同様の詳細は、例示的であり、かつ限定的ではないことが意図されている）を示すように誇張されている可能性がある。そのため、本願明細書で開示されている具体的な構造上および機能的な詳細は、限定するものとしてではなく、当業者に教示して、開示されている実施形態をさまざまに採用するための単なる典型的な基盤として解釈すべきである。
【００２０】
「一つの実施形態」または「実施形態」に関するこの明細書における言及は、該実施形態とともに記載されている具体的な機能、構造または特徴が、本開示の少なくとも一つの実施形態に含まれていることを意味する。該明細書のさまざまな個所における「一つの実施形態において」というフレーズの登場は、必ずしもすべてが同じ実施形態を指すものではなく、他の実施形態を互いに除外した、独立したまたは代替的な実施形態でもない。さらに、いくつかの実施形態によって提示することができ、およびその他によっては提示できないさまざまな機能が記載されている。同様に、いくつかの実施形態のための要件である可能性があるが、その他の実施形態のための要件ではないさまざまな要件が記載されている。
【００２１】
本願明細書に示されている該方法の該要素の任意の組合せおよび／またはサブセットは、互いに組合せてもよく、さまざまな条件に基づいて、選択的に実行しまたは実行しなくてもよく、任意の所望の回数だけ繰り返してもよく、および任意の適当な順番でまたは任意の適当なシステム、装置および／またはプロセスとともに実施してもよい。本願明細書に記載されおよび示されている該方法は、何らかの適当な方法で、例えば、一つ以上のコンピュータシステム上で実行するソフトウェアを介して実施することができる。該ソフトウェアは、有形のコンピュータ可読媒体（例えば、コンピュータシステムのメモリ）に格納されたコンピュータ可読命令を含んでもよく、およびさまざまな実施形態の該方法を実行するための一つ以上のプロセッサによって実行することができる。
【００２２】
図１は、本開示のさまざまな態様による、迷惑なネットワークアクセスからのネットワーク装置の保護のための例示的なシステムを示す。この実施例では、三つのネットワーク装置（アプリケーションサーバ１４１、１４２および１４３）が、プライベートネットワーク１４０の一部となっている。該サーバ１４１〜１４３へのアクセスは、プライベートネットワークアドレスを介して該プライベートネットワーク１４０内から得られる。これに関連して、「プライベート」という用語は、該アプリケーションサーバ１４１〜１４３が、グローバルにルーティング可能ではないことを指している。換言すると、該アプリケーションサーバ１４１〜１４３は、それらのプライベートネットワークアドレスによって、外部のプライベートネットワーク１４０から対処することができない。
【００２３】
該プライベートネットワーク１４０および図１の他の構成要素は、インターネットプロトコル（ＩＰ）または送信制御プロトコル／インターネットプロトコル（ＴＣＰ／ＩＰ）とも呼ばれている任意の数および任意の種類の通信プロトコルを利用することができる。例えば、該プライベートネットワーク１４０は、インターネットプロトコルバージョン４のＲＦＣ１９１８、または、インターネットプロトコルバージョン６またはＩＰｖ６のＲＦＣ４１９３によって設定されているアドレス範囲を有することができる。
【００２４】
ネットワーキング装置１４１〜１４３は、該ネットワーク１４０を通じて他のコンピューティング装置へサービスを提供するアプリケーションサーバに相当する。例えば、メールサーバー、ファイルサーバー、顧客関係管理（Ｃｕｓｔｏｍｅｒ  Ｒｅｌａｔｉｏｎｓｈｉｐ  Ｍａｎａｇｅｍｅｎｔ）またはＣＲＭサービス、企業資源計画（Ｅｎｔｅｒｐｒｉｓｅ  Ｒｅｓｏｕｒｃｅ  Ｐｌａｎｎｉｎｇ）またはＥＲＰサービス、および／またはドキュメント管理サービス等の任意の数および任意の種類のアプリケーションサーバおよび関連するサービスを、本開示の実施形態とともに用いることができる。
【００２５】
その場合、データ接続は、該サービスに関連するポート上（または、ポート範囲）のそれぞれのアプリケーションサーバによって、通信ソケットを開くことにより、アプリケーションサーバ１４１〜１４３のいずれかによって確立することができる。アプリケーションサーバ１４１〜１４３は、物理的ネットワーキングインタフェースがプライベートネットワークアドレスと関連付けられている物理的装置に対応させることができる。別法として、アプリケーションサーバ１４１〜１４３は、一つ以上の物理的サーバで作動する仮想サーバインスタンスに対応させてもよい。仮想サーバインスタンスは、各々が、関連するプライベートネットワークアドレスとの仮想ネットワークインタフェースを有することができる。仮想サーバインスタンスは、（ソフトウェアコンテナ、仮想エンジン、仮想専用サーバおよび／またはｊａｉｌとしても知られている）一つ以上のユーザスペースインスタンスを含んでもよく、および該ユーザスペースインスタンスとともに作動してもよい。このようなユーザスペースインスタンスは、例えば、ＤＯＣＫＥＲソフトウェアツールを介することを含む任意の適当な方法で実施することができる。
【００２６】
図１に示す実施例において、該プライベートネットワーク１４０は、ゲートウェイ１００によって外部ネットワークから隔離され、それにより、該外部ネットワークと、該プライベートネットワーク１４０との間のネットワーキングトラフィックを管理された方法で可能にしている。図１の該システムは、該プライベートネットワーク上で作動する該サービスを利用するための、該プライベートネットワーク１４０内の該アプリケーションサーバ１４１〜１４３のうちの一つ以上へのアクセス権を有する「トラステッドクライアント」としてクライアント１２１〜１２６を識別することができる。該クライアント１２１〜１２６は、物理的ハードウェアおよび／または仮想コンポーネントであってもよく、または、該ハードウェアおよび／またはコンポーネントを含んでもよい。例えば、クライアント１２１〜１２６は、携帯機器等の物理的装置上で作動する仮想オペレーティングシステムを含んでもよい。該システムは、該クライアント１２１〜１２６がアクセスできるようになっている該アプリケーションサーバ１４１〜１４３の選択に関するネットワークアクセスを許可することもでき、および該クライアント１２１〜１２６がアクセスできないようになっているいずれかのアプリケーションサーバへのネットワークアクセスを拒否することができる。
【００２７】
該クライアント１２１〜１２６による該アプリケーションサーバ１４１〜１４３へのアクセスを制御するために、ネットワーキングトンネル１３１〜１３３が、該クライアント１２１〜１２６と該ゲートウェイ１００との間に確立される。このように、該プライベートネットワーク１４０は、該クライアント１２１〜１２６まで拡張される。いくつかの実施形態において、仮想専用回線（または「ＶＰＮ」）は、トンネル１３１〜１３３を介して確立される。このようにして、クライアント１２１〜１２６は、該プライベートネットワーク１４０内では物理的になっていないが、該プライベートネットワーク１４０の範囲内でのプライベートネットワークアドレスが与えられ、およびそれに伴って、（以下で、より詳細に説明するように、アクセスできるようになっているという条件で）それら各々のプライベートネットワークアドレスによって、すべてのアプリケーションサーバ１４１〜１４３に潜在的にアクセスすることができる。
【００２８】
クライアント１２１〜１２６からのすべての最初のネットワーク接続要求は、ゲートウェイ１００に実装されたトンネルモジュール１０１によって処理される。一つの実施形態において、トンネルモジュール１０１は、該最初の接続（例えば、典型的には、届いている最初のＴＬＳパケット）を調べた後、メタデータの場合には該接続を（以下で説明する）管理モジュール１０２へハンドオーバするか否かを、または、該クライアントからの実際のトンネルトラフィック（すなわち、データ）の場合には（以下で説明する）トンネルサービス１５０、１５１の一方へハンドオーバするか否かを判断する。一旦、該接続がハンドオーバされると（例えば、このことは、ファイルディスクリプタを、管理モジュール１０２へ、または、該トンネルサービスモジュールの一つへ引き渡すことによって行うことができる）、トンネルモジュール１０１は、もはや関与しない。その結果、該接続は、該クライアントから管理モジュール１０２へ、または、選択されたトンネルサービス１５０、１５１へ直接進む。
【００２９】
該最初のネットワーク接続要求は、現存するトンネル内での新たなクライアント装置または新たなネットワーク接続要求による新たなトンネルを確立するための接続要求であってもよい。該トンネル１３１〜１３３内での該接続を通じて進むデータは、暗号化により、例えば、インターネットプロトコルセキュリティ（または、「ＩＰｓｅｃプロトコル」）、トランスポートレイヤーセキュリティ（または、「ＴＬＳ」）および／またはデータグラムトランスポートレイヤーセキュリティ（または、「ＤＴＬＳ」）に従ってさらに保護してもよい。実施例では、該トンネルモジュール１０１は、ＴＬＳまたはＳＳＬに従って作動し、および該ネットワーキング接続をＴＣＰネットワーク接続として設定する。そうするために、該クライアントは、該ゲートウェイ１００のオープンポートまたはポート範囲に、好ましくは、ＴＬＳ／ＳＳＬで暗号化されたＴＣＰ接続のための標準ポート４４３へ該要求を送信する。
【００３０】
ゲートウェイ１００はさらに、ファイアウォールサービス１１１〜１１６を実装している。その場合、各ファイアウォールサービスは、それぞれのクライアント装置と、該プライベートネットワーク内の該ネットワーク装置１４１〜１４３との間のネットワークトラフィックを選択的に遮断しおよび可能にするファイアウォールを実装している。各ファイアウォールサービスは、それぞれのクライアント装置のためのアクセスルールを定義するファイアウォールルールのセットも備えている。換言すると、ゲートウェイ１００は、各接続済みのクライアント１２１〜１２６のための別々のファイアウォールを作動させる。このことの利点は、ファイアウォールサービスの該ファイアウォールルールのサイズが、接続済みのクライアントの量に伴って増大しないということである。このように、接続済みのクライアントの増加は、単一のファイアウォールサービスによって管理しなければならないファイアウォールルールの該量の増加によるパフォーマンス損失をもたらさない。
【００３１】
図２は、図１による該ゲートウェイ１００を含む、本開示の構成要素によって実行することができる例示的なプロセスを示す。このプロセスにより、クライアント装置１２１〜１２６は、該ゲートウェイ１００を介して該プライベートネットワーク１４０に接続される。実施例として、クライアント装置１２１に関して該プロセスを説明する。第一のステップ２０１において、該トンネルモジュール１０１は、該ゲートウェイ１００との第一のネットワーク接続を確立するために、クライアントネットワーキング装置１２１から第一の接続要求、例えば、該ゲートウェイのポート４４３で受信した安全なＴＣＰネットワーク接続要求を受信する。その結果、該ネットワーク接続が、ステップ２０２の下で、例えば、ＴＣＰネットワーク接続の場合、三方向ハンドシェイクによって確立される。この第一のネットワーク接続は、該クライアント１２１と、該ゲートウェイ１００との間で、より具体的には、該ゲートウェイ１００に実装された該管理モジュール１０２によって制御情報をやりとりするのに用いられる。該接続が制御目的のためであることを理解するために、該トンネルモジュールは、新たに確立された各ネットワーク接続を通じてやりとりされた第一のデータパケットを検査することができる。該データパケットが制御データパケットである場合、該トンネルモジュール１０１は、該ネットワーク接続を制御接続として識別し、この接続を通じて受信したすべての追加的なパケットを該管理モジュール１０２へリダイレクトする。該制御データパケットは、例えば、該ＴＬＳパケットのヘッダ内の特定のＴＳＬ拡張フィールドを検査することによって識別してもよい。
【００３２】
次のステップ２０３では、該管理モジュール１０２は、該第一のネットワーク接続を通じて、該クライアント装置１２１からトンネル情報を受信する。この情報は、クライアントトンネルリストとも呼ばれる。このクライアントトンネルリストは、該ゲートウェイとの該ネットワーキングトンネル１３１を確立するための情報、例えば、該ゲートウェイによって該クライアントを認証するための認証情報を含む。該管理モジュール１０２による認証の成功の後、該プロセスはステップ２０４へ進む。
【００３３】
ステップ２０４において、該管理モジュール１０２は、クライアント１２１からクライアントアクセスリストを受信する。このクライアントアクセスリストは、該クライアント装置がアクセスできるようになっている該プライベートネットワーク１４０内の該ネットワーキング装置またはアプリケーションの一覧表から成る。該一覧表は、例えば、該プライベートネットワーク１４０内のそれぞれのネットワーキング装置を識別するＩＰｖ４またはＩＰｖ６ネットワークアドレス等のネットワークアドレスを含む。また、該それぞれのネットワーキング装置への該アクセスを、一つ以上の特定のアプリケーションに制限するために、ポート数またはポート数範囲を指定してもよい。また、該一覧表は、そのホスト名によって、または、完全修飾ドメイン名（ｆｕｌｌｙ  ｑｕａｌｉｆｉｅｄ  ｄｏｍａｉｎ  ｎａｍｅ：ＦＱＤＮ）によってそれぞれのネットワーキング装置を識別してもよい。また、該一覧表は、一つ以上のそれぞれのネットワーキング装置が受信することができる場所からのさらなるサービスを指定することにより、該それぞれのネットワーキング装置を間接的に識別してもよい。このようなサービスは、例えば、Ａｍａｚｏｎクラウド内の仮想インスタンスに割り当てられたメタデータによるＡＷＳ  ＲＥＳＴ  ＡＰＩを用いて、ネットワーク装置のリストの検索を可能にするＡｍａｚｏｎ  Ｗｅｂ  Ｓｅｒｖｉｃｅであってもよい。
【００３４】
該クライアント１２１はさらに、プライベートネットワーク１４０への該クライアントアクセスを管理する認証サービスからこのクライアントアクセスリストおよび／またはトンネルリストを検索することができる。該クライアントが、該クライアントアクセスリストおよび／またはトンネルリストに不正にアクセスする状況を避けるために、これらのリストは、変更できないようにしてもよい（すなわち、該リストの一方または両方の変更を該管理モジュール１０２によって検出できるように保護してもよい）。
【００３５】
さらに、該クライアントを認証し、およびクライアントおよびトンネルリストを提供するためのさまざまな方法およびシステムが、米国特許第９，１４８，４０８（Ｂ１）号明細書に開示されており、該明細書は、参照によって、その全体が本願明細書に組み込まれるものとする。
【００３６】
次に、ステップ２０５において、該トンネルモジュール１０１は、該クライアント１２１の要求時に、該クライアント１２１との第二のネットワーク接続を確立する。これは、新たな接続であるため、該トンネルモジュール１０１は、この第二の接続を通じて受信した該第一のデータパケットを検査する。該クライアント１２１は、該ゲートウェイ１００との制御情報のやりとりのために該第一の接続を既に確立しているため、この第二の接続は、実際のネットワーキングトンネル１３１のために用いられる。そのため、検査したデータパケットは、まだ確立されていないネットワーキングトンネル１３１のための第一のパケットとして識別される。
【００３７】
より具体的には、一つの実施形態においては、各トンネル（１３１、１３２、１３３）のために、二つの接続（例えば、ＴＬＳトンネルの場合、二つのＴＣＰ接続）が必要である。一方の接続は、トークン（メタデータ）をアップロードするためのものであり、他方の接続は、実際のトンネルトラフィックのためのものである。該トンネル１３１は、ステップ２０７（以下を参照）の後だけに確立され、および該ファイアウォールは、デフォルトで遮断されるため、ステップ２０８（以下を参照）後のトラフィックを可能にするだけである。
【００３８】
その後、ステップ２０６において、該トンネルモジュール１０１は、該第二のネットワーク接続（該クライアント１２１から来る該トラフィックをトンネリングするのに関与している該接続）をトンネルサービス１５０に通す。トンネルサービス１５０および１５１は、トンネルトラフィック（１３１、１３２、１３３）を処理する。トンネルサービス１５０、１５１は、該ゲートウェイ１００上に実装された各クライアント（１２１、１２２、…１２６）に行き来する該トラフィックの解読／暗号化に関与している。そして、該トンネルサービスは、該管理モジュール１０２を用いて、該ネットワーキングトンネル１３１を確立することができるか否かを確認する。次のステップ２０７では、該トンネルサービス１５０は、該ファイアウォールサービス１１１を開始することにより、該ネットワーキングトンネル１３１を確立する。この瞬間から、該第二のネットワーク接続ならびに該ネットワーキングトンネル１３１を通じてやりとりしたすべてのデータは、ファイアウォールサービス１１１を通過する。換言すると、該ネットワーキングトンネル１３１からのペイロードデータは、該開始されたファイアウォールサービス１１１へ転送される。このファイアウォールサービス１１１は、該クライアント１２１とプライベートネットワーク１４０との間のすべてのトラフィックをデフォルトで遮断するファイアウォールを実施する。次のステップ２０８では、ファイアウォールサービス１１１は、該管理モジュール１０２から該ファイアウォールルールを検索することにより、適切なファイアウォールルールを該ファイアウォールに適用する。その動作時の該管理モジュール１０２は、それらのファイアウォールルールを該クライアントアクセスリストから引き出す。
【００３９】
より具体的には、一つの実施形態において、該アクセスルールは、基本的に記述的なファイアウォールルールであり、該管理モジュール１０２は、それらの記述のうちのいくつかを書き込む。いくつかの実施例は、以下の通りである。
【００４０】
１．１．１．１ポート８０へのＴＣＰトラフィックを可能にする（これは、ファイアウォールルールと完全に一致するアクセスルールであることに留意する）。
【００４１】
ｗｗｗ．ｇｏｏｇｌｅ．ｃｏｍポート８０へのＴＣＰトラフィックを可能にする（これは、複数のＦＷルールへの翻訳、例えば、
１７３．１９４．７１．１０３ポート８０へのＴＣＰトラフィックを可能にする
１７３．１９４．７１．１０５ポート８０へのＴＣＰトラフィックを可能にする
１７３．１９４．７１．９９ポート８０へのＴＣＰトラフィックを可能にする
等を必要とするアクセスルールであることに留意する）。
したがって、一つのアクセスルールが、例えば、多くのファイアウォールルールを生じさせることができる。場合により、アクセスルールは、ＡＷＳウェブサービスのようなＩＡＡＳプロバイダへの発呼とすることができ、および例えば、次のような［該記述にファイナンスを有するすべてのインスタンス］へのＴＣＰトラフィックを可能にすることができる。
【００４２】
このようにして、図２による該プロセスにより、該クライアント装置１２１と、該ゲートウェイ１００との間のネットワークトンネル１３１は、該クライアント装置１２１と、該プライベートネットワーク１４０内の該ネットワーク装置１４１〜１４３との間のネットワークトラフィックを選択的に遮断しおよび可能にするファイアウォールルールの独立したセットを備えた独立したファイアウォールとともに確立される。このプロセスは、該プライベートネットワーク１４０に接続しているすべてのクライアント１２１〜１２６に対して実行され、それによって、それぞれのファイアウォールサービス１１１〜１１６を取得する。
【００４３】
さらなる実施形態によれば、該ゲートウェイ１００は、複数のプロセッサコアを備えているコンピュータシステムに実装される。その場合、管理モジュール１０２、トンネルモジュール１０１、トンネルサービス１５０およびファイアウォールサービス１１１、１１２および１１３は、該プロセッサコア上で実行されるコンピュータ可読命令により、該コンピュータシステム上で実施することができる。その場合、該ゲートウェイ１００は、各プロセッサコア上で実行する独立したトンネルサービスを含む。このことは、図１の該例示的な実施形態によって図示されており、トンネルサービス１５０と、ファイアウォールサービス１１１、１１２および１１３は、第一のプロセッサコア１６０に実装され、およびトンネルサービス１５１と、ファイアウォールサービス１１４、１１５および１１６は、第二のプロセッサコア１６１に実装されている。トンネルサービス１５０および１５１は、例えば、該それぞれのプロセッサコア上で実行するソフトウェアプロセスとして実装することができる。該ファイアウォールサービスは、該それぞれのソフトウェアプロセスによって実行するソフトウェアスレッド（すなわち、該それぞれのトンネルサービス）として実装してもよい。
【００４４】
別々のトンネルサービスを各プロセッサコア上で実行させるという利点は、該ファイアウォールサービス間のプロセス間通信と、ファイアウォールサービスと該トンネルサービスとの間の通信が、該同じコアに限定されるということである。その結果として、より多くのプロセッサコアを追加することによって、該ゲートウェイ１００の機能が高められた場合、プロセス間通信の増加によるパフォーマンスの損失はなくなるであろう。
【００４５】
図３は、図１による該ゲートウェイ１００を含む、本開示の構成要素によって実行することができる例示的なプロセスを示す。該プロセスにより、該クライアント接続、すなわち、該ネットワーキングトンネルは、異なるコア１６０、１６１にわたって分散させることができる。該プロセスは、図２のステップ２０５に関して上述したように、ステップ３０５における第二の接続の確立時に始動する。次いで、該プロセスは、ステップ３０６に進み、この場合、該トンネルモジュールは、該第二の接続を転送することになる該トンネルサービス１５０、１５１の一方を選択する。このことは、いくつかの方法で行うことができる。例えば、該トンネルモジュールは、毎回、隣のプロセッサコアに該接続を転送することによるラウンドロビン方式で該接続を分散させることができる。別法として、該トンネルモジュールは、最も多くのリソース、例えば、処理能力、メモリまたはこれらの任意の組合せが利用可能である該プロセッサに該接続を転送してもよい。該プロセッサコアが選択されると、該トンネルモジュール１０１は、図２のステップ２０６に関して上述したように、ステップ３０７において、該第二の接続を該選択したトンネルサービスに転送する。
【００４６】
図４は、本開示によるゲートウェイ１００に、例えば、図１の該ファイアウォールサービス１１１〜１１６として実装することができる例示的なファイアウォールサービス４１１の詳細を示す。例示のため、ファイアウォールサービス４１１は、クライアント１２１とプライベートネットワーク１４０との間に該ネットワーキングトンネル１３１を備えているファイアウォールサービス１１１に相当すると仮定する。ファイアウォールサービス４１１が開始される場合、該サービスは、該それぞれのクライアント装置１２１と、該プライベートネットワーク１４０内の該ネットワーク装置１４１〜１４３との間のネットワークトラフィックを選択的に遮断しおよび可能にするファイアウォールコンポーネント４２０を備えている。どの該トラフィックが遮断され、または可能にされるかに従って該ファイアウォール４２０により用いられる該ルールが、ファイアウォールルール４２１として格納される。これらのルールは、例えば、該ゲートウェイ１００を実装している該コンピューティングシステムのメモリ内にあるファイルまたはデータベースに格納することができる。
【００４７】
ファイアウォール４２０は、ステートフルパケットインスペクションを実行するように構成されたステートフルファイアウォールとすることができ、それにより、クライアント１２１と、該プライベートネットワーク１４０内のネットワーク装置１４１〜１４３との間の該ネットワーキングトンネル１３１を通じて確立されたネットワーキング接続の状態の経過を追うことができる。このような各接続は、ＴＣＰまたはＵＤＰネットワーク接続に関連している可能性がある。このようにして、該ルールが、該ネットワーク接続に依存するようになり、それに伴って動的になるため、精微な制御が可能である。該ファイアウォールは、すべての保留中の接続とともに、リスト、すなわち、該状態リスト４２２を維持することにより、すべてのオープンネットワーク接続の経過を追う。それらの状態は、例えば、該ゲートウェイ１００を実装している該コンピューティングシステムのメモリ内にあるファイルまたはデータベースに格納することができる。
【００４８】
このようにして、各ファイアウォールサービス４１１は、独立した状態リスト４２２を維持する。このことの利点は、該ファイアウォールサービス４１１の該状態リストの該サイズが、該ゲートウェイ１００に接続されたクライアントの量に伴って増大しないということである。このようにして、接続済みのクライアントの増加は、単一のファイアウォールサービスによって管理しなければならない該状態の量の増加によるパフォーマンスの損失をもたらさない。
【００４９】
ファイアウォールサービス４１１は、該クライアント１２１へ送信した、または、該クライアントから受信したデータをそれぞれ暗号化および解読するための暗号化および／または解読コンポーネント４２３をさらに含むことができる。さらに、暗号化および解読は、該インターネットプロトコルセキュリティ（または、「ＩＰｓｅｃプロトコル」）、トランスポートレイヤーセキュリティ（または、「ＴＬＳ」）および／またはデータグラムトランスポートレイヤーセキュリティ（または、「ＤＴＬＳ」）に従って実行してもよい。さらに、暗号化および解読は、該ファイアウォールサービス４１１がその上で作動する該プロセッサコア内のハードウェアコンポーネントによって速められるハードウェアであってもよい。
【００５０】
図５は、本開示の構成要素、例えば、図４の該ファイアウォールサービス４１１によって実行することができる例示的なプロセスを示す。このプロセスにより、バックアップを該コンピュータシステム、すなわち、該ファイアウォールサービス４１１がその上で作動する該ゲートウェイの故障中に利用することができるように、該ファイアウォールサービスのバックアップが行われる。ステップ５０１では、ファイアウォール４２０は、クライアント１２１と、該プライベートネットワーク１４０内のネットワーキング装置またはネットワーキングアプリケーションとの間のネットワーク接続の確立を可能にする。このようにして、このネットワーク接続は、既に確立されているネットワーキングトンネル１３１を通じて確立される。この新たな接続を通じて該トラフィックの経過を追うために、およびそれに伴って、この接続のトラフィックが該ファイアウォール４２０を通過することを可能にするために、該ファイアウォールは、ステップ５０１で、該接続を該ファイアウォール状態リスト４２２とともに登録する。次いで、ステップ５０２において、該ファイアウォール４２０は、該状態リスト４２２を複製して、ステップ５０３において、秘密署名鍵で該複製に署名する。このようにして、該ファイアウォールは、該複製が、未許可のパーティによって変更されていないことを後に確認することができる。その後、ステップ５０４において、該複製が該クライアント１２１へ送信される。このようにして、該状態リスト、すなわち、該ファイアウォール４２０の該状態が、該クライアント１２１と同期される。該状態リストは、ステップ５０２で署名されているため、該状態リストに対する変更を、該署名をチェックすることによって発見することができる。
【００５１】
図５の該プロセスにより、該ゲートウェイ１００内の各ファイアウォールの独立したバックアップを実行することができる。このことには、いくつかの利点がある。まず第一に、毎回、状態の限定されたセットのみが送信される必要があるため、このことは、迅速に行うことができる。その結果として、該システムが拡張される場合、単一のファイアウォールサービス４１１の同期のための時間は増加しない。第二に、このことは、以下で論証するように拡張可能であるフェイルオーバー構成を可能にする。
【００５２】
図６は、一つの実施形態による、プライベートネットワーク１４０へのアクセスを保護するためのシステムを示す。アクセスは、各々が、一つ以上のファイアウォールサービスを実装している、トンネルモジュール１０１（図示せず）、管理モジュール１０２（図示せず）および一つ以上のトンネルサービス１５０、１５１（図示せず）を実装することによってもまた、ゲートウェイ１００に相当するゲートウェイ６００、６０１および６０２によって制御される。明確にするために、ゲートウェイ６００内には、二つのファイアウォールサービス６１１Ａおよび６１６Ａのみが図示されている。
【００５３】
図７は、該ゲートウェイ６００〜６０２のうちの一つの故障の場合に、図６の該構成要素によって実行することができる例示的なプロセスを示す（以下の実施例では、ゲートウェイ６００の故障について説明する）。該プロセスのステップ７０１において、ゲートウェイ６００は、該プライベートネットワーク内のネットワーキング装置１４１〜１４３へのアクセスを該クライアント６２１に与えるために、クライアント装置６２１との第一のネットワーキングトンネル６３１を確立する。これにより、該ファイアウォールサービス６１１Ａが開始され、それによって該ファイアウォールルールおよび状態リストをさらに含むステートフルファイアウォールを実施する。ステップ７０１は、例えば、図２に従って実行することができる。
【００５４】
該ネットワーキングトンネル６３１の確立後、ファイアウォールサービス６１１Ａは、該状態リストの複製またはアップデート６５０を該クライアント装置６２１へ定期的に送信することにより、該状態リストを該クライアント６２１と継続的に同期させる。例えば、該状態は、実際の状態が変化したときにのみ同期される必要がある。したがって、該クライアントが、該保護されているサーバに対して新たな接続を開かない場合、状態同期は行われない。また、この同期は、設定可能であり、および例えば、継続的に、または、少なくとも一秒〜五秒ごと等に行うことができる。該ネットワーキングトンネル６３１が定位置にある限り、該同期は、ループ７０３〜７０２によって図示されているように能動的である。さらに、該状態リストの該同期は、図５に示すような該プロセスに従って実行することができる。
【００５５】
例示的な説明のため、特定の時点で、該ネットワーキングトンネル６３１が切断されると仮定する。この切断の結果として、該プロセスは、ステップ７０４に進む。該ネットワーキングトンネル６３１の該切断は、いくつかの要因により、例えば、該クライアント６２１と該ゲートウェイ６００との間のネットワーキング経路の故障、または、該ゲートウェイ６００自体の故障等によって引き起こされる可能性がある。該クライアントが、該ネットワーキングトンネルの該故障を検知した場合、該クライアントは、第二のゲートウェイ６０１との新たなネットワーキングトンネル６３２を確立し、そのことは、プライベートネットワーク１４０へのアクセスも与える。このことは、例えば、該トンネル認証情報６５３およびクライアントアクセスリスト６５２を該第二のゲートウェイ６０１へ転送することによる図２に示すような該プロセスによって行うことができる。
【００５６】
より具体的には、一つの実施形態において、利用可能なゲートウェイ（６００、６０１、６０２）のすべてに関する情報は、上述した該トンネルリストの一部である。この情報は、例えば、上記参照によって本願明細書に組み込まれる、米国特許第９，１４８，４０８（Ｂ１）号明細書に開示されているような中央認証サーバ（制御部）から来る可能性がある。この情報は、該第一の接続時（すなわち、該第一の接続に不具合が生じる前）に利用可能である。該中央認証サーバは、単純に、該トンネルリストから別の候補を取得して、該接続を確立する。複製またはアップデート６５０から来るソース情報のみが、一旦、新たなトンネルが確立されると同期される該ファイアウォールサービスからの実際の接続状態である。
【００５７】
該トンネル６３２の確立時に、該同じアクセスリスト６５２が、該ファイアウォールルールを引き出すためにゲートウェイ６０１の該管理モジュールによって利用されたため、ファイアウォールサービス６１１Ａで用いられるような同一のファイアウォールルールを用いて、該ファイアウォールサービス６１１Ｂがゲートウェイ６０１で開始される。
【００５８】
該第二のネットワークトンネル６３２の確立時に、該クライアント６２１はまた、該プロセスのステップ７０５で、該状態リスト６５１を該ゲートウェイ６０１へ送信する。一つの実施形態において、該複製またはアップデート６５０は、状態リスト６５１の該ソースである。該接続は、フェイルオーバーの前に、トンネル６３１へ行っている。該能動的接続の間、該状態は、クライアント６２１と継続的に同期され、また、該状態が、ファイアウォールサービス６１１Ａのためにアップデートされたときにアップデートされる。該トンネルが中断した場合、新たなトンネルが確立されて、受信した最新の状態６５１がファイアウォールサービス６１１Ｂに同期される。
【００５９】
該状態リスト６５１は、例えば、該管理モジュールへ転送することができる。該管理モジュールは、該状態リストが、該クライアントによって変更されていないことをチェックし、その後、ステップ７０６で、該ファイアウォールの該状態を回復させるために、該状態リストを、その状態リストとして利用する該ファイアウォールサービス６１１Ｂに提供する。該ファイアウォールの該状態を回復させた後、該クライアントは、ステップ７０７で、該プライベートネットワーク１４０との通信を再開し、（該最初のネットワーキングトンネル６３１を通じて確立した該保留中のネットワーク接続の喪失を伴うことなく）継続的なフェイルオーバーを実現する。
【００６０】
別法として、該状態リストは、該ネットワーキングトンネルを通じて、該ファイアウォールサービス６１１Ｂに直接、送信してもよく、この場合、このサービスは、該状態リストが変更されていないことをチェックすることになる。このチェックは、該ゲートウェイ間での該同じ（共用）秘密署名鍵を用いることによって行うことができる。一つの実施形態においては、ファイアウォール状態は、該クライアント上のメモリに一時的に格納されているため、該状態に関する不正な改ざんという潜在的なリスクがある。このリスクを避けるために、該状態は、該ゲートウェイ間での秘密共有鍵で署名される。そのため、該状態が改ざんされた場合、該署名は破棄され、該状態は受け入れられないことになる。
【００６１】
図７の該プロセスには、該ゲートウェイ６００とゲートウェイ６０１との間のファイアウォールルールおよび状態に関して同期は必要ないという利点がある。そのため、該システムは、該ゲートウェイ間の帯域要件を要することなく、ゲートウェイ（例えば、ゲートウェイ６０２）を追加することによって、容易に拡張することができる（該ゲートウェイ間で利用される任意の帯域に対しても要件がないことに留意する）。さらに、ゲートウェイ６００の故障時に、該ネットワーキングトンネルは、該ゲートウェイ６０１および６０２にわたって移すことができる。例えば、該ファイアウォールサービス６１６Ａは、サービス６１６Ｂとしてゲートウェイ６０２へ移動させることができるとともに、ファイアウォール６１６Ａは、サービス６１１Ｂとしてゲートウェイ６０１へ移される。
【００６２】
図８は、上記の実施形態による、該ゲートウェイを実装する適切な例示的コンピューティングシステム８００を示す。コンピューティングシステム８００は、一般に、適当な汎用コンピュータとして構成することができ、およびバス８１０と、一つ以上のプロセッサコア８０２と、ローカルメモリ８０４と、一つ以上の光学式入力インタフェース８１４と、一つ以上の光学式出力インタフェース８１６と、一つ以上の通信インタフェース８１２と、記憶素子インタフェース８０６と、一つ以上の記憶素子８０８とを備えていてもよい。バス８１０は、該コンピューティングシステム８００の構成要素間での通信を可能にする一つ以上のコンダクタを備えていてもよい。プロセッサコア８０２は、プログラミング命令を解釈して実行する、従来の何らかの種類のプロセッサまたはマイクロプロセッサを含んでもよい。ローカルメモリ８０４は、ランダムアクセスメモリ（ＲＡＭ）またはプロセッサコア８０２による実行のための情報および命令を格納する別の種類の動的記憶装置および／または読出し専用メモリ（ＲＯＭ）またはプロセッサ８０２によって用いられる静的情報および命令を格納する別の種類の静的記憶装置を含んでもよい。入力インタフェース８１４は、オペレータが、情報を該コンピューティング装置８００に入力することを可能にする、一つ以上の従来の機構、例えば、キーボード８２０、マウス８３０、ペン、音声認識および／または生態認証機構等を備えていてもよい。出力インタフェース８１６は、情報を該オペレータに対して出力する一つ以上の従来の機構、例えば、ディスプレイ８４０を備えていてもよい。通信インタフェース８１２は、トランシーバーのような何らかの機構、例えば、コンピューティングシステム８００が、他の装置および／またはシステム８０１と通信することを可能にする一つ以上のイーサネット（登録商標）インタフェースを備えていてもよい。コンピューティングシステム８００の該通信インタフェース８１２は、ローカルエリアネットワーク（ＬＡＮ）またはワイドエリアネットワーク（ＷＡＮ）、例えば、インターネットを用いて、このような別のコンピューティングシステムに接続することができる。記憶素子インタフェース８０６は、記憶インタフェース、例えば、シリアルＡＴＡ（Ｓｅｒｉａｌ  Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ：ＳＡＴＡ）インタフェース、または、バス８１０を、一つ以上のローカルディスク、例えば、ＳＡＴＡディスクドライブ等の一つ以上の記憶素子８０８に接続するためのスモールコンピュータシステムインタフェース（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ：ＳＣＳＩ）等を備えていてもよく、およびこれらの記憶素子８０８へのデータの書込みおよび／または該記憶素子からのデータの読出しを制御することができる。上記の記憶素子８０８は、例えば、ローカルディスクとして説明されているが、一般に、リムーバルマグネティックディスク、ＣＤ−ＲＯＭまたはＤＶＤ−ＲＯＭディスク等の光学記憶媒体、ソリッドステートドライブ、フラッシュメモリカード等の何らかの他の適当なコンピュータ可読媒体を用いることができるであろう。上述した該システム８００は、物理的なハードウェア上の仮想マシンとして作動してもよい。
【００６３】
上記プロセスに従って実行されるステップは、コンピュータが実行可能な命令として実施してもよい。その場合、それらの命令は、該プロセスの実行時に、プロセッサコア８０２上で実行することができる。このようにして、例えば、トンネルモジュール１０１、管理モジュール１０２、トンネルサービス１５０、１５１およびファイアウォールサービス１１１〜１１６によって実行されるステップは、コンピューティングシステム８００上の命令として実施することができ、それによってゲートウェイ１００を実装することができる。プロセッサコア８０２は、プロセッサコア８０２は、ゲートウェイ１００のプロセッサコア１６０、１６１に相当する。その場合、トンネルサービス１５０、１５１は、各該プロセッサコア８０２上で作動する。そして、各プロセッサコア８０２は、それぞれが該トンネルサービスのうちの一つによって開始された独立したファイアウォールサービスを作動させる。クライアント装置１２１〜１２６と、該ゲートウェイ１００との間のデータパケット通信は、ネットワーキングインタフェース８１２を通じて実行することができる。また、ゲートウェイ１００とプライベートネットワーク１４０との間のデータパケット通信は、ネットワーキングインタフェース８１２を通じてやりとりすることができる。該コンピュータ実行可能命令は、記憶素子８０８または何らかのコンピュータ可読記憶媒体上に格納されるコンピュータプログラムプロダクトを構成してもよく、または、該コンピュータプログラムプロダクトの一部であってもよい。
【００６４】
本開示の実施形態とともに作動するシステム、装置および構成要素間の通信は、何らかの適当な通信方法、例えば、電話網、エクストラネット、イントラネット、該インターネット、加盟店端末装置（販売時点情報管理装置、携帯情報端末（例えば、ｉＰｈｏｎｅ（登録商標）、Ｐａｌｍ  Ｐｉｌｏｔ（登録商標）、Ｂｌａｃｋｂｅｒｒｙ（登録商標））、携帯電話、キオスク等）、オンライン通信、衛星通信、オフライン通信、無線通信、トランスポンダ通信、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、バーチャルプライベートネットワーク（ＶＰＮ）、ネットワーク装置またはリンク装置、キーボード、マウスおよび／または何らかの適当な通信またはデータ入力様式等を用いて実行することができる。本開示のシステムおよび装置は、ＴＣＰ／ＩＰ通信プロトコルならびにＩＰＸ、Ａｐｐｌｅｔａｌｋ、ＩＰ−６、ＮｅｔＢＩＯＳ、ＯＳＩ、何らかのトンネリングプロトコル（例えば、ＩＰｓｅｃ，ＳＳＨ）または任意の数の既存または将来のプロトコルを利用することができる。
【００６５】
いくつかの実施形態は、十分に機能するコンピュータおよびコンピュータシステムにおいて実施することができるが、さまざまな実施形態は、さまざまな形態のコンピューティングプロダクトとして分散させることができ、および特定の種類のマシン、または、該分散を実際に行うのに用いられるコンピュータ可読媒体とは無関係に適用されることが可能である。
【００６６】
機械可読媒体は、データ処理システムによって実行される場合に、該システムにさまざまな方法を実行させるソフトウェアおよびデータを格納するのに用いることができる。該実行可能なソフトウェアおよびデータは、例えば、ＲＯＭ、揮発性ＲＡＭ、不揮発性メモリおよび／またはキャッシュを含むさまざまな場所に格納することができる。このソフトウェアおよび／またはデータの一部は、これらの記憶装置のうちのいずれか一つに格納してもよい。さらに、該データおよび命令は、集中型サーバまたはピアツーピアネットワークから取得することができる。該データおよび命令の異なる部分は、異なる時間に、および異なる通信セッション時に、または、同じ通信セッション時に、異なる集中型サーバおよび／またはピアツーピアネットワークから取得することができる。該データおよび命令は、該アプリケーションの実行前に、全体として取得することができる。別法として、該データおよび命令の一部は、実行が必要な場合に、ジャストインタイムで動的に取得することができる。したがって、該データおよび命令は、特定のインスタンス時に、全体として機械可読媒体上にあることは必要ない。
【００６７】
コンピュータ可読媒体の実例は、限定するものではないが、特に、記録可能なおよび記録不可能なタイプの媒体、例えば、揮発性および不揮発性メモリデバイス、読取り専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、フラッシュメモリデバイス、フロッピーおよび他のリムーバブルディスク、磁気ディスク記憶媒体、光学記憶媒体（例えば、コンパクトディスク読取り専用メモリ（ＣＤ  ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）等）を含む。該コンピュータ可読媒体は、該命令を格納することができる。
【００６８】
さまざまな実施形態において、上記技術的方法を実施するために、配線回路をソフトウェア命令とともに用いることができる。したがって、該技術的方法は、ハードウェア回路およびソフトウェアのいずれかの特定の組合せに限定されず、該データ処理システムによって実行される該命令のためのどの特定のソースにも限定されない。
【００６９】
該図面のいくつかは、複数の動作を特定の順序で示しているが、順序依存ではない動作は、順序を変えてもよく、および他の動作は、組合せまたは抜き出してもよい。いくつかの順序変えまたは他のグループ化について具体的に述べたが、他のことも当業者には明白であり、そのため、代替例の網羅的なリストも存在しない。さらに、上記段階は、ハードウェア、ファームウェア、ソフトウェアまたはこれらの任意の組合せで実施することができることを認識すべきである。
【００７０】
簡潔にするために、従来のデータネットワーキング、アプリケーション開発、および該システムの他の機能的態様（および該システムの個々の作動構成要素の構成要素）は、本願明細書には詳細に記載されていない可能性がある。さらに、本願明細書に含まれている該さまざまな図面に示す接続ラインは、該さまざまな要素間の例示的な機能的関係および／または物理的結合を表すことが意図されている。実際のシステムにおいては、多くの代替的または追加的な機能的関係または物理的接続が存在する可能性があることに留意すべきである。
【００７１】
本願明細書で説明した該さまざまなシステム構成要素は、次のもの、すなわち、デジタルデータを処理するプロセッサを含むホストサーバまたは他のコンピューティングシステム、該プロセッサに結合された、デジタルデータを格納するための記憶装置、該プロセッサに結合された、デジタルデータを入力するための入力デジタイザ、該記憶装置に格納され、および該プロセッサによってアクセス可能な、該プロセッサによってデジタルデータの処理を指示するためのアプリケーションプログラム、該プロセッサおよび記憶装置に結合された、該プロセッサによって処理されたデジタルデータから得られる情報を表示するためのディスプレイ装置、および複数のデータベースのうちの一つ以上を含んでもよい。本願明細書で用いられるさまざまなデータベースは、出荷データ、パッケージデータ、および／または該システムの該動作において有用な何らかのデータを含んでもよい。
【００７２】
ウェブブラウザおよび／またはウェブブラウザを利用するアプリケーションインタフェース接続を介して、さまざまな機能を実行してもよい。そのようなブラウザアプリケーションは、さまざまな機能を実行するためのコンピューティングユニットまたはシステム内にインストールされたインターネットブラウジングソフトウェアを備えてもよい。それらのコンピューティングユニットまたはシステムは、一つのコンピュータまたはコンピュータのセットの形態をとってもよく、および、ラップトップ、ノートブック、タブレット、ハンドヘルドコンピュータ、携帯情報端末、セットトップボックス、ワークステーション、コンピュータサーバ、メインフレームコンピュータ、ミニコンピュータ、ＰＣサーバ、コンピュータのネットワークセット、パーソナルコンピュータおよびタブレットコンピュータ、例えば、ｉＰａｄ（登録商標）、ｉＭＡＣ、ＭａｃＢｏｏｋ、キオスク、端末、販売時点情報管理（ＰＯＳ）装置および／または端末、テレビジョン、または、ネットワークを通じてデータを受信することが可能な他の何らかの装置等を含む、どのような種類のコンピューティング装置またはシステムを用いてもよい。さまざまな実施形態は、Ｍｉｃｒｏｓｏｆｔ  Ｉｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒ、Ｍｏｚｉｌｌａ  Ｆｉｒｅｆｏｘ、Ｇｏｏｇｌｅ  Ｃｈｒｏｍｅ、Ａｐｐｌｅ  Ｓａｆａｒｉ、Ｏｐｅｒａ、または、該インターネットをブラウジングするために利用可能な他の何らかの無数のソフトウェアパッケージを利用することができる。
【００７３】
さまざまな実施形態は、何らかの適当なオペレーティングシステム（例えば、Ｗｉｎｄｏｗｓ  ＮＴ、９５／９８／２０００／ＣＥ／Ｍｏｂｉｌｅ／、Ｗｉｎｄｏｗｓ７／８、ＯＳ２、ＵＮＩＸ（登録商標）、Ｌｉｎｕｘ（登録商標）、Ｓｏｌａｒｉｓ、ＭａｃＯＳ、ＰａｌｍＯＳ等）ならびに典型的にはコンピュータに付随する従来のさまざまなサポートソフトウェアおよびドライバとともに作動することができる。さまざまな実施形態は、何らかの適当なパーソナルコンピュータ、ネットワークコンピュータ、ワークステーション、携帯情報端末、携帯電話、スマートフォン、ミニコンピュータ、メインフレーム等を含んでもよい。実施形態は、セキュリティプロトコル、例えば、セキュアソケットレイヤ（ＳＳＬ）、トランスポートレイヤセキュリティ（ＴＬＳ）およびセキュアシェル（ＳＳＨ）等を実装してもよい。実施形態は、ｈｔｔｐ、ｈｔｔｐｓ、ｆｔｐおよびｓｆｔｐを含む何らかの所望のアプリケーションレイヤプロトコルを実装してもよい。
【００７４】
該さまざまなシステムコンポーネントは、例えば、典型的には、標準モデム通信、ケーブルモデム、衛星ネットワーク、ＩＳＤＮ、デジタル加入者線（ＤＳＬ）、または、さまざまな無線通信方法とともに接続に用いられるような、ローカルループを通じてインターネットサービスプロバイダ（ＩＰＳ）への接続を含むデータリンクを通じてネットワークに独立して、別々にまたは一緒に適切に結合することができる。本開示の実施形態は、インタラクティブテレビジョン（ＩＴＶ）ネットワーク等の何らかの適当な種類のネットワークとともに作動することができることに留意されたい。
【００７５】
該システムは、クラウドコンピューティングを利用して、部分的または完全に実施してもよい。「クラウド」または「クラウドコンピューティング」は、最小限の管理労力またはサービスプロバイダのやりとりで、迅速にプロビジョニングし、および解放することができる設定可能なコンピューティングリソース（例えば、ネットワーク、サーバ、ストレージ、アプリケーションおよびサービス）の共有プールへの便利なオンデマンドネットワークアクセスを可能にするモデルを含む。クラウドコンピューティングは、位置独立のコンピューティングを含んでもよく、それにより、共有サーバは、要求に応じて、リソース、ソフトウェアおよびデータを、コンピュータや他の装置へ提供する。
【００７６】
さまざまな実施形態は、ウェブサービス、ユーティリティコンピューティング、普及している個別化コンピューティング、セキュリティおよびアイデンティティソリューション、自律コンピューティング、クラウドコンピューティング、コモディティコンピューティング、モビリティおよび無線ソリューション、オープンソース、生態認証、グリッドコンピューティングおよび／またはメッシュコンピューティングとともに用いてもよい。
【００７７】
本願明細書で説明したデータベースは、どれも、リレーショナル構造、階層構造、グラフィック構造またはオブジェクト指向構造および／または他の何らかのデータベース構成を含んでいてもよい。さらに、該データベースは、何らかの適当な方法で、例えば、データテーブルまたはルックアップテーブルとして体系化してもよい。各レコードは、単一のファイル、一連のファイル、リンクされた一連のデータフィールドまたは他の何らかのデータ構造とすることができる。特定のデータの関連付けは、任意の所望のデータ関連付け方法、例えば、当技術分野において既知のまたは実施されている方法によって実現することができる。例えば、該関連付けは、手動でまたは自動的に実現することができる。
【００７８】
どのようなデータベース、システム、装置、サーバー、または、該システムの他の構成要素も、単一の場所に、または、複数の場所に配置することができ、この場合、各データベースまたはシステムは、さまざまな適切なセキュリティ機能、例えば、ファイアウォール、アクセスコード、暗号化、解読、圧縮、復元等のうちのいずれかを含む。
【００７９】
暗号化は、当技術分野において現在利用可能な方法、または、利用可能になる可能性がある方法、例えば、Ｔｗｏｆｉｓｈ、ＲＳＡ、ＥＩ、Ｇａｍａｌ、Ｓｃｈｏｒｒ  ｓｉｇｎａｔｕｒｅ、ＤＳＡ、ＰＧＰ、ＰＫＩおよび対称および非対称暗号系のうちのいずれかによって実行することができる。
【００８０】
実施形態は、標準的なダイヤルアップ、ケーブル、ＤＳＬ、または、当技術分野において公知の他のインターネットプロトコルを用いて、該インターネットまたはイントラネットに接続することができる。トランザクションは、他のネットワークのユーザからの不正アクセスを防ぐために、ファイアウォールを介して送ることができる。
【００８１】
本願明細書で説明した該コンピュータは、適当なウェブサイト、または、ユーザがアクセス可能な他のインターネットベースのグラフィカルユーザインタフェースを提供することができる。例えば、Ｍｉｃｒｏｓｏｆｔ  Ｉｎｔｅｒｎｅｔ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｓｅｒｖｅｒ（ＩＩＳ）、Ｍｉｃｒｏｓｏｆｔ  Ｔｒａｎｓａｃｔｉｏｎ  Ｓｅｒｖｅｒ（ＭＴＳ）およびＭｉｃｒｏｓｏｆｔ  ＳＱＬ  Ｓｅｖｅｒは、Ｍｉｃｒｏｓｏｆｔオペレーティングシステム、Ｍｉｃｒｏｓｏｆｔ  ＮＴウェブサーバソフトウェア、Ｍｉｃｒｏｓｏｆｔ  ＳＱＬ  ＳｅｒｖｅｒデータベースシステムおよびＭｉｃｒｏｓｏｆｔ  Ｃｏｍｍｅｒｃｅ  Ｓｅｒｖｅｒとともに用いてもよい。さらに、Ａｃｔｉｖｅ  Ｄａｔａ  Ｏｂｊｅｃｔ（ＡＤＯ）準拠のデータベース管理システムを提供するために、ＡｃｃｅｓｓまたはＭｉｃｒｏｓｏｆｔ  ＳＱＬ  Ｓｅｒｖｅｒ、Ｏｒａｃｌｅ、Ｓｙｂａｓｅ、Ｉｎｆｏｒｍｉｘ、ＭｙＳＱＬ、Ｉｎｔｅｒｂａｓｅ等のコンポーネントを用いてもよい。別の実施例では、Ａｐａｃｈｅウェブサーバを、Ｌｉｎｕｘ（登録商標）オペレーティングシステム、ＭｙＳＱＬデータベース、およびＰｅｒｌ、ＰＨＰおよび／またはＰｙｔｈｏｎプログラミング言語とともに用いることができる。
【００８２】
本願明細書で説明した該通信、入力、記憶、データベースまたは表示のうちのいずれかは、ウェブページを有するウェブサイトを介して容易にすることができる。「ウェブページ」という用語は、本願明細書において用いる場合、該ユーザとやりとりするのに用いられる可能性があるドキュメントおよびアプリケーションの種類を限定することを意味しない。例えば、典型的なウェブサイトは、標準的なＨＴＭＬドキュメントに加えて、さまざまな形式、すなわち、Ｊａｖａ（登録商標）アプレット、ＪａｖａＳｃｒｉｐｔ（登録商標）、アクティブサーバーページ（ａｃｔｉｖｅ  ｓｅｒｖｅｒ  ｐａｇｅ：ＡＳＰ）、ＣＧＩ（ｃｏｍｍｏｎ  ｇａｔｅｗａｙ  ｉｎｔｅｒｆａｃｅ）スクリプト、ＸＭＬ（ｅｘｔｅｎｓｉｂｌｅ  ｍａｒｋｕｐ  ｌａｎｇｕａｇｅ）、動的ＨＴＭＬ、カスケードスタイルシート（ｃａｓｃａｄｉｎｇ  ｓｔｙｌｅ  ｓｈｅｅｔ：ＣＳＳ）、ＡＪＡＸ（Ａｓｙｎｃｈｒｏｎｏｕｓ  Ｊａｖａｓｃｒｉｐｔ（登録商標）  Ａｎｄ  ＸＭＬ）、ヘルパーアプリケーション、プラグイン等を含んでもよい。サーバーは、ウェブサーバから要求を受け取るウェブサービスを含んでもよく、該要求は、ＵＲＬおよびＩＰアドレスを含む。該ウェブサーバは、適当なウェブページを検索し、および該ウェブページのための該データまたはアプリケーションをＩＰアドレスに送信する。ウェブサービスは、該インターネット等の通信手段を通じて、他のアプリケーションとやりとりすることが可能であるアプリケーションである。
【００８３】
さまざまな実施形態は、ブラウザベースのドキュメント内にデータを表示するために、所望の任意の数の方法を採用してもよい。例えば、データは、標準的なテキストとして表示してもよく、または、固定リスト、スクロール可能なリスト、ドロップダウンリスト、編集可能なテキストフィールド、固定テキストフィールド、ポップアップウィンドウ等の中に表示することができる。同様に、実施形態は、ウェブページ内のデータを変更するための所望の任意の数の方法、例えば、キーボード、メニュー項目の選択、チェックボックス、オプションボックス等を用いるフリーテキストエントリを利用してもよい。
【００８４】
本願明細書で説明した該例示的システムおよび方法は、機能ブロック構成要素、スクリーンショット、オプション選択およびさまざまな処理ステップに関して記載されている可能性がある。このような機能ブロックは、特定の機能を実行するように構成された任意の数のハードウェアおよび／またはソフトウェアコンポーネントによって実現してもよいことを正しく認識すべきである。例えば、該システムは、一つ以上のマイクロプロセッサまたは他の制御装置の制御下で、さまざまな機能を実行することができるさまざまな集積回路コンポーネント、例えば、記憶素子、処理要素、論理素子、ルックアップテーブル等を利用してもよい。同様に、該システムのソフトウェア要素は、さまざまなアルゴリズムが、データ構造、オブジェクト、プロセス、ルーチンまたは他のプログラミング要素の任意の組合せによって実装されている状態で、Ｃ、Ｃ＋＋、Ｃ＃、Ｊａｖａ（登録商標）、ＪａｖａＳｃｒｉｐｔ（登録商標）、ＶＢＳｃｒｉｐｔ、Ｍａｃｒｏｍｅｄｉａ  Ｃｏｌｄ  Ｆｕｓｉｏｎ、ＣＯＢＯＬ、Ｍｉｃｒｏｓｏｆｔ  Ａｃｔｉｖｅ  Ｓｅｒｖｅｒ  Ｐａｇｅｓ、アセンブリ、ＰＥＲＬ、ＰＨＰ、ＡＷＫ、Ｐｙｔｈｏｎ、Ｖｉｓｕａｌ  Ｂａｓｉｃ、ＳＱＬストアドプロシージャ、ＰＬ／ＳＱＬ、任意のＵＮＩＸ（登録商標）シェルスクリプト、拡張可能マークアップ言語（ＸＭＬ）等の任意のプログラミング言語またはスクリプト言語とともに実装することができる。さらに、該システムは、データ送信、シグナリング、データ処理、ネットワーク制御等のための任意の数の従来の技術的方法を採用してもよいことに留意すべきである。さらにまた、該システムは、クライアント側のスクリプト言語、例えば、ＪａｖａＳｃｒｉｐｔ（登録商標）、ＶＢＳｃｒｉｐｔ等に関するセキュリティ問題を検出または防止するのに用いることができる。
【００８５】
本開示の該システムおよび方法は、現存のシステムのカスタマイズ化、アドオンプロダクト、アップグレードされたソフトウェアを実行する処理装置、スタンドアロンシステム、分散システム、方法、データ処理システム、データ処理用装置および／またはコンピュータプログラムプロダクトとして具体化することができる。したがって、該システムまたはモジュールの任意の部分は、コードを実行する処理装置、インターネットベースの実施形態、全体がハードウェア実施形態、または、該インターネット、ソフトウェアおよびハードウェアの実施形態を組合せた態様の形態をとることができる。さらに、該システムは、該記憶媒体内にコンピュータ可読プログラムコード手段を具体化させたコンピュータ可読記憶媒体上のコンピュータプログラムプロダクトの形態をとることができる。ハードディスク、ＣＤ−ＲＯＭ、光学記憶装置、磁気記憶装置等を含む、何らかの適当なコンピュータ可読記憶媒体を利用することができる。
【００８６】
本願明細書では、該システムおよび方法は、さまざまな実施形態による方法、装置（例えば、システム）およびコンピュータプログラムプロダクトのスクリーンショット、ブロック図およびフローチャートのイラストに関して説明されている。該ブロック図および該フローチャートの図の各機能ブロック、および該ブロック図およびフローチャートの図における機能ブロックの組合せを、それぞれ、コンピュータプログラム命令によって実装することができることは理解されるであろう。
【００８７】
それらのコンピュータプログラム命令は、該コンピュータまたは他のプログラム可能なデータ処理装置上で実行する該命令が、該フローチャートの一つのブロックまたは複数のブロック内で指定されている該機能を実施するための手段を生み出すように、汎用コンピュータ、専用コンピュータ、または、マシンを形成するための他のプログラム可能なデータ処理装置上にロードすることができる。これらのコンピュータプログラム命令は、該コンピュータ可読メモリ内に格納された該命令が、該フローチャートのブロックまたは複数のブロック内で指定された該機能を実施する命令手段を含む製品をもたらすように、特定の方法でコンピュータまたは他のプログラム可能なデータ処理装置が機能するように指示することができるコンピュータ可読メモリにも格納することができる。該コンピュータプログラム命令は、該コンピュータまたは他のプログラム可能な装置上で実行する該命令が、該フローチャートのブロックまたは複数のブロックで指定された該機能を実施するためのステップを生成するように、一連の作動ステップを、該コンピュータまたは他のプログラム可能な装置上で実行させてコンピュータ実施プロセスを生成するコンピュータまたは他のプログラム可能なデータ処理装置上にロードすることもできる。
【００８８】
したがって、該ブロック図およびフローチャートの図の機能ブロックは、該指定された機能を実行するための手段の組合せ、該指定された機能を実行するためのステップの組合せ、および該指定された機能を実行するためのプログラム命令手段をサポートする。また、該ブロック図およびフローチャートの図の各機能ブロック、および該ブロック図およびフローチャートの図の機能ブロックの組合せを、該指定された機能またはステップを実行する専用ハードウェアベースのコンピュータシステム、または、専用ハードウェアとコンピュータ命令の適当な組合せのいずれかによって実装することができることは理解されるであろう。さらに、プロセスフローの図およびその記述は、ユーザウィンドウ、ウェブページ、ウェブサイト、ウェブフォーム、プロンプト等を参照してもよい。熟練者は、本願明細書に記載された図示ステップが、該ウィンドウ、ウェブページ、ウェブフォーム、ポップアップウィンドウ、プロンプト等の利用を含む任意の数の形態で構成してもよいことを正しく認識するであろう。さらに、図示されおよび記載されているような複数のステップを単一のウェブページおよび／またはウィンドウに結合してもよいが、単純化のために既に拡張されている可能性があることを正しく認識すべきである。他の事例では、単一のプロセスステップとして図示されおよび記載されているステップは、複数のウェブページおよび／またはウィンドウに分けてもよいが、単純化のために既に結合されている可能性がある。
【００８９】
「非一時的」という該用語は、クレームの範囲から伝播する一時的信号自体のみを取り除くように理解すべきであり、および伝播する一時的信号自体だけではないすべての標準的なコンピュータ可読媒体に対する権利を放棄するものではない。換言すると、該「非一時的なコンピュータ可読媒体」という用語の意味は、Ｉｎ  Ｒｅ  Ｎｕｉｊｔｅｎにおいて判決が下されて、米国特許法第１０１条の下で、特許性の有る対象の範囲から外された、一時的なコンピュータ可読媒体の当該種類のみを除外するように解釈すべきである。
【００９０】
本願明細書において、利益、他の利点、および課題に対する解決策について、特定の実施形態に関して説明してきた。しかし、該利益、利点、課題に対する解決策、および何らかの利益、利点または解決策を発生させ、またはより顕著にさせる可能性がある何らかの要素は、本開示の重要な、所要の、または、本質的な形状構成または要素として解釈すべきではない。
【００９１】
本開示は方法を含むが、該方法は、有形のコンピュータ可読担体上に、例えば、磁気または光メモリ、または、磁気または光学ディスク上のコンピュータプログラム命令として具体化してもよいことが意図されている。当業者に対して公知されている、上述した例示的な実施形態の該要素に対するすべての構造的、化学的および機能的等価物は、参照によって本願明細書に明確に組み込まれ、および本発明のクレームによって包含されることが意図されている。また、装置または方法は、それらが本発明のクレームによって包含されるようにするために、本開示によって解決しようとする各課題またはすべての課題に対処する必要はない。さらに、本開示における要素、構成要素または方法ステップは、該要素、構成要素または方法ステップが該クレームにおいて明白に列挙されているか否かに関係なく、公衆に提供されることが意図されている。本願明細書におけるクレーム要素は、該要素が、「〜する手段」というフレーズを用いて明確に列挙されていない限り、米国特許法第１１２条の第六項の規定により解釈すべきではない。「備える」、「備えている」という該用語、または、これらの他の任意の変形は、本願明細書で用いる場合、要素の一覧を備えるプロセス、方法、物品または装置が、それらの要素のみを含むのではなく、明確に列挙されていない、または、そのようなプロセス、方法、物品または装置に固有のものではない他の要素を含んでもよいように、非排他的包含をカバーすることが意図されている。
【００９２】
「Ａ、ＢまたはＣのうちの少なくとも一つ」、「Ａ、ＢおよびＣのうちの少なくとも一つ」、「一つ以上のＡ、ＢまたはＣ」または「Ａ、ＢおよびＣのうちの一つ以上」と同様のフレーズが用いられている場合、該フレーズは、実施形態において、Ａのみが存在している可能性があること、実施形態において、Ｂのみが存在している可能性があること、実施形態において、Ｃのみが存在している可能性があること、または、単一の実施形態において、該要素Ａ、ＢおよびＣの任意の組合せ、例えば、ＡおよびＢ、ＡおよびＣ、ＢおよびＣ、または、ＡおよびＢおよびＣが存在している可能性があることを意味するように解釈されることが意図されている。
【００９３】
本開示の該範囲から逸脱することなく、該開示されている実施形態に対して、変形および変更を行ってもよい。それらのおよびその他の変形または変更は、以下のクレームで述べられているように、本開示の該範囲内に含まれることが意図されている。
【図１】
2019511156.tif 000003
【図２】
2019511156.tif 000004
【図３】
2019511156.tif 000005
【図４】
2019511156.tif 000006
【図５】
2019511156.tif 000007
【図６】
2019511156.tif 000008
【図７】
2019511156.tif 000009
【図８】
2019511156.tif 000010
【国際調査報告】
2019511156.tif 000011
2019511156.tif 000012