(57)【要約】本発明の実施例では、システムは、マルチ・チャネルで高信頼性のネットワーク・ハードウェアとプロキシ（４８）とを有する１又は複数のサーバ・コンピュータ（４４）を含む。プロキシは、クライアント・コンピュータ（４２）からパケット指向トラフィックを受け取り、このパケット指向トラフィックのセッションをトランザクションに変換し、このトランザクションを１又は複数のサーバ・コンピュータに送信することができる。トランザクションは、リモート・ダイレクト・メモリ・アクセス・メッセージを含んでいる。
2004526218.tif 000002
【特許請求の範囲】
【請求項１】
マルチ・チャネルで高信頼性のネットワーク・ハードウェアを有する第１のコンピュータからの接続リクエストをルータに処理させるステップと、
前記ルータに、前記接続リクエストに対する確認応答（ＡＣＫ）を前記第１のコンピュータへ送信させることにより、前記第１のコンピュータとマルチ・チャネルで高信頼性のネットワーク・ハードウェアを有する第２のコンピュータとの間に直接接続が確立させるステップと、
マルチ・チャネルで高信頼性のネットワーク・ハードウェアを有するコンピュータ群の中から、前記接続リクエストの中にあり不透過データを含むの情報に従って、前記ルータに、前記第２のコンピュータを選択させるステップと、
を含むことを特徴とする方法。
【請求項２】
請求項１記載の方法において、前記ルータは、前記接続リクエストをトランスポート層の内部又はそれよりも上位の層においてのみ処理することを特徴とする方法。
【請求項３】
請求項１記載の方法において、
前記ルータに、所定のポリシに従って、前記接続リクエストをフィルタリングさせるステップを更に含むことを特徴とする方法。
【請求項４】
マルチ・チャネルで高信頼性のネットワーク・ハードウェアを有する第１のコンピュータとマルチ・チャネルで高信頼性のネットワーク・ハードウェアを有する第２のコンピュータとの間の接続をイネーブルすることにより、前記第１のコンピュータから前記第２のコンピュータへのアップストリーム・トラフィックが前記接続を介して通信され、前記第２のコンピュータから前記第１のコンピュータへのダウンストリーム・トラフィックが前記接続を介して直接に通信されるようにするステップを含む方法。
【請求項５】
請求項４記載の方法において、
前記ルータに、トランスポート層の内部又はそれよりも上位の層においてのみ前記アップストリーム・トラフィックを処理させるステップと、
前記ルータに、所定のポリシに従って前記アップストリーム・トラフィックをフィルタリングさせるステップと、
前記ルータに、前記アップストリーム・トラフィックに関する情報を収集させるステップと、
前記ルータに、前記アップストリーム・トラフィックの中の情報に従って、マルチ・チャネルで高信頼性のネットワーク・ハードウェアを有するコンピュータ群から前記第２のコンピュータを選択させるステップと、
の中の少なくとも１つのステップを含むことを特徴とする方法。
【請求項６】
ルータに、第１のコンピュータから第２のコンピュータへの接続を介するトラフィックを処理させるステップであって、前記第１及び第２のコンピュータは共にマルチ・チャネルで高信頼性のネットワーク・ハードウェアである、ステップと、
前記第２のコンピュータが、リモート・ダイレクト・メモリ・アクセス・メッセージを用いて前記接続を介して前記第２のコンピュータまで直接にデータを転送することをイネーブルするステップと、
前記ルータに、前記第２のコンピュータから前記第１のコンピュータまでの前記接続を介する非リモート・ダイレクト・メモリ・アクセス・トラフィックを処理させるステップと、
を含むことを特徴とする方法。
【請求項７】
請求項６記載の方法において、前記ルータは前記トラフィックをトランスポート層の内部又はそれよりも上位の層においてのみ処理することを特徴とする方法。
【請求項８】
請求項６記載の方法において、
前記ルータに、所定のポリシに従って前記トラフィックをフィルタリングさせるステップと、
前記ルータに、前記トラフィックに関する情報を収集させるステップと、
前記ルータに、前記トラフィックの中の情報に従って、マルチ・チャネルで高信頼性のネットワーク・ハードウェアを有するコンピュータ群から前記第２のコンピュータを選択させるステップと、
の中の少なくとも１つのステップを含むことを特徴とする方法。
【請求項９】
ルータに、共にマルチ・チャネルで高信頼性のネットワーク・ハードウェアを有する第１のコンピュータと第２のコンピュータとの間で、トランザクション・トラフィックを、前記トランザクション・トラフィックの一部だけを処理しながら、転送させるステップを含む方法。
【請求項１０】
請求項９記載の方法において、前記一部は、
前記トランザクション・トラフィックのコマンド及びコマンド・パラメータと、
前記第１のコンピュータから前記第２のコンピュータまでの接続リクエストと、
前記第１のコンピュータから前記第２のコンピュータまでのアップストリーム・トラフィックと、
の中の少なくとも１つのステップを含むことを特徴とする方法。
【請求項１１】
請求項９記載の方法において、前記処理は、
所定のポリシに従って前記一部をフィルタリングするステップと、
前記一部に関する情報を収集するステップと、
の少なくとも一方を含むことを特徴とする方法。
【請求項１２】
請求項９記載の方法において、
前記ルータに、前記一部の中の情報に従って、マルチ・チャネルで高信頼性のネットワーク・ハードウェアを有するコンピュータ群から前記第２のコンピュータを選択させるステップを更に含むことを特徴とする方法。
【請求項１３】
請求項１、請求項４、請求項６及び請求項９の任意の請求項に記載の方法において、
前記ルータに、負荷均衡化の考慮に従って、マルチ・チャネルで高信頼性のネットワーク・ハードウェアを有するコンピュータ群から前記第２のコンピュータを選択させるステップを更に含むことを特徴とする方法。
【請求項１４】
パケット指向トラフィックのセッションをリモート・ダイレクト・メモリ・アクセス・メッセージに変換するステップを含むことを特徴とする方法。
【請求項１５】
請求項１４記載の方法において、前記パケット指向トラフィックはトランスポート制御プロトコル・トラフィックであることを特徴とする方法。
【請求項１６】
請求項１４記載の方法において、前記変換は、
パケット指向トラフィックの前記セッションを終端するステップと、
前記セッションからデータを抽出するステップと、
前記データを、リモート・ダイレクト・メモリ・アクセス・メッセージとして、マルチ・チャネルで高信頼性のネットワーク・ハードウェアを有する少なくとも１つのリモート・ノードのメモリに送信するステップと、
を含むことを特徴とする方法。
【請求項１７】
請求項１４記載の方法において、
所定のポリシに従って前記トラフィックをフィルタリングするステップと、
所定のポリシに従って前記トラフィックに関する情報を収集するステップと、
前記トラフィックの中の情報に従って前記トランザクションをルーティングするステップと、
負荷均衡化の考慮に従って前記トランザクションをルーティングするステップと、
の中の少なくとも１つのステップを含むことを特徴とする方法。
【請求項１８】
マルチ・チャネルで高信頼性のネットワーク・ハードウェアを有する複数のコンピュータの間のトランザクションを処理し、前記トランザクションの中の情報に従って前記複数のコンピュータの間で前記トランザクションを方向付けることができる１又は複数のルータを備えていることを特徴とするシステム。
【請求項１９】
請求項１８記載のシステムにおいて、
前記ルータはカスケード状に配列されている、
前記ルータの中の１又は複数は、前記トランザクションの中の情報に従って、前記ルータの間で前記トランザクションを方向付けることができる、
前記ルータの中の１又は複数は、負荷均衡化の考慮に従って、前記コンピュータの間で前記トランザクションを方向付けることができる、
前記ルータの中の１又は複数は、所定のポリシに従って前記トランザクションをフィルタリングする、及び／又は、前記トランザクションに関する情報を収集することができる、
の中の少なくとも１つの特徴を有することを特徴とするシステム。
【請求項２０】
マルチ・チャネルで高信頼性のネットワーク・ハードウェアを有する１又は複数のサーバ・コンピュータと、
クライアント・コンピュータからパケット指向トラフィックを受け取り、前記パケット指向トラフィックのセッションをリモート・ダイレクト・メモリ・アクセス・メッセージを含むトランザクションに変換し、前記トランザクションを前記サーバ・コンピュータの中の１つに送信することができるプロキシと、
を備えていることを特徴とするシステム。
【請求項２１】
請求項２０記載のシステムにおいて、前記パケット指向トラフィックはトランスポート制御プロトコル・トラフィックであることを特徴とするシステム。
【請求項２２】
請求項２０記載のシステムにおいて、
トランスポート層の内部又はそれよりも上位の層においてのみ前記トランザクションを処理することができる１又は複数のルータを更に備えていることを特徴とするシステム。
【請求項２３】
請求項２２記載のシステムにおいて、前記ルータの１又は複数は、前記トランザクションの中の情報及び／又は負荷均衡化の考慮に従って、前記サーバ・コンピュータ及び／又は前記ルータの間で前記トランザクションを方向付けることができることを特徴とするシステム。
【請求項２４】
請求項２２記載のシステムにおいて、前記ルータの中の１又は複数は、所定のポリシに従って前記トランザクションをフィルタリングする、及び／又は、前記トランザクションに関する情報を収集することができることを特徴とするシステム。
【請求項２５】
請求項１７及び請求項２０に記載の任意のシステムにおいて、前記マルチ・チャネルで高信頼性のネットワーク・ハードウェアは、仮想インターフェース・ハードウェアと、インフィニバンド・ハードウェアと、ファイバ・チャネル・ハードウェアと、ＳＣＳＩハードウェアと、非同期転送モード・ハードウェアと、拡張イーサネット（登録商標）ハードウェアと、ＴＣＰ／ＩＰ上のリモート・ダイレクト・メモリ・アクセス・ネットワーク・ハードウェアとを含むグループから選択されることを特徴とするシステム。
【請求項２６】
請求項１７及び請求項２０に記載の任意のシステムにおいて、前記トランザクションは、データベース・トランザクションと、リモート・プロシージャ・コール・トランザクションと、ストレージ・アクセス・トランザクションと、ファイル・アクセス・トランザクションと、ソケット・トランザクションとを含むグループから選択されることを特徴とするシステム。
【発明の詳細な説明】
【０００１】
【発明の背景】
ネットワーク・トラフィックに関する現在の技術によれば、複数のコンピュータ装置の間を、毎秒１ギガバイトを超えるデータ伝送速度で、データを伝送することが可能である。しかし、コンテンツ・フィルタリング及び負荷均衡化（バランシング）のための既存のシステムでは、すべてのネットワーク・トラフィックが１つの入力／出力ポートを介して移動するので、単一の故障箇所が生じ、パフォーマンスにマイナスの影響を生じることがある。そのようなシステムでは、トラフィックを検査及びフィルタリングすると共に、トラフィックを、その負荷に応じて複数のサーバの中の１つに分散することができる。このようなシステムは、通常、ＴＣＰ／ＩＰプロトコルを用いて動作し、それぞれのセッションに対する通信状態に従って、許容可能なコンテンツ・フィルタリング及び負荷均衡化を達成している。
【０００２】
この手順は、多くの処理能力を用い、主にＨＴＴＰやＦＴＰなど周知の単純なプロトコルに適している。この方法は、トランザクションの中に遅延を挿入するのが通常であり、冗長な通信処理を含む。既存の方法は、リモート・プロシージャ・コール（ＲＰＣ）、ストレージ・トラフィック、データベース・トラフィック及び大きなトラフィック負荷の負荷均衡化やフェイル・オーバ手順の管理には適していない。故障が生じた場合に、ロールバックや他のマシンへの再送信などの手順が利用可能でないことがある。更に、通信が切断されたときでも、意図したトラフィックのどの部分が切断に先だって宛先に到達したのかがわからない。
【０００３】
よりよいパフォーマンスを有し中央処理装置（ＣＰＵ）資源の使用がより少ない、効率的で有用性の高いコンテンツ・フィルタリング技術に対する需要が存在している。
【０００４】
本発明と見なされる主題は、冒頭の特許請求の範囲において特定的に指摘され明晰判明に特許請求されている。しかし、本発明は、その構成、動作方法、目的、特徴及び効果に関して、添付の図面を参照しながら以下の詳細な説明を読むことによって最もよく理解されるはずである。
【０００５】
図解の単純化及び明瞭化のため、図面に示されている要素は、必ずしも寸法通りに描かれてはいない。例えば、いくつかの要素の寸法は、明瞭化のために、他の要素と比較して誇張されている場合がある。更に、適切であると考えられる場合には、複数の図面にわたって同じ参照番号を用いて、対応する又は類似の要素を示している。
【０００６】
【発明の実施の態様】
以下の詳細な説明では、多数の特定の詳細を与えることによって、本発明の完全な理解を提供している。しかし、この技術分野の当業者であれば、本発明は、これらの特定的な詳細から離れても実現できることを理解するはずである。また、本発明を曖昧にしないために、周知の方法、手順、コンポーネント及び回路に関する詳細に関しては、記載がなされていない。
【０００７】
本発明のいくつかの実施例は、パフォーマンスが改善され負荷均衡化及びフェイル・オーバ機構を備えておりフィルタリングのなされたピア・ツー・ピア通信を可能にするシステムに関するものである。図１に図解されているこのようなシステムによれば、１又は複数のクライアント・コンピュータと１又は複数のサーバ・コンピュータとに結合されている１又は複数のルータがトランザクションを受信することが可能になる。また、このシステムは、そのトランザクションと関連付けられたデータが、安全で効率的な態様で、サーバとクライアントとの間を直接に移動することを可能にする。
【０００８】
いくつかの実施例では、このシステムは、リモート・ダイレクト・メモリ・アクセス（ＲＤＭＡ）能力を有する効率的でマルチチャネルの信頼性の高いネットワークにおいて実現することができる。ＲＤＭＡは、１つのコンピュータから他のコンピュータのメモリにデータを直接に送ることを可能にする機能である。受信側のコンピュータのＣＰＵは、データ転送と関係することがなくなり、従って、コンピュータの全体的な動作が高速化される。効率的でマルチチャネルの信頼性が高いネットワークの例としては、制限列挙ではないが、新たなシステム・エリア・ネットワーク（ＳＡＮ）、インフィニバンド・ネットワーク、ファイバ・チャネル・ネットワーク、非同期転送モード（ＡＴＭ）ネットワーク、ＴＣＰ／ＩＰ上のＲＤＭＡネットワークなどがある。これらのネットワークは、一般に、「相互接続（インターコネクト）」と称される場合がある。
【０００９】
本発明の他の実施例では、トランザクション認識型（ｔｒａｎｓａｃｔｉｏｎ−ａｗａｒｅ）通信ソフトウェアとしての実装により、要求される機能が得られる。例えば、このソフトウェアは、ＲＤＭＡリクエストを受信しより上位の層及び／又はアプリケーションとは関係なくＲＤＭＡ動作をエミュレートする（例えば、リクエスト側との間でメモリ・ブロックを移動させる）ことができるカーネル・ソフトウェア要素でありうる。
【００１０】
場合によっては、クライアント・ネットワーキング・ソフトウェア及び／又はハードウェアを代替することができないことがある。そのような場合には、図４に示されている本発明の実施例により、１又は複数のルータとクライアント・コンピュータとの間にプロキシ要素を追加することができる。プロキシは、クライアントによって提供されるパケット（例えば、ＴＣＰ／ＩＰパケット）を収集して、クライアント・コンピュータの代わりにトランザクションを発生する。プロキシは、また、結果データをパケットに変換することもできる。
【００１１】
ここで、図１を参照する。図１は、本発明の実施例によるコンテンツ・フィルタリング及び負荷均衡化のためのシステムのブロック図による図解である。この明細書を通じて、「コンテンツ・フィルタリング」という用語は、例えば、セキュリティ、キャッシング、計算、サービスの質などの動作を意味する。
【００１２】
システム１０は、少なくとも１つのクライアント・コンピュータ１２と、少なくとも１つのサーバ・コンピュータ１４と、クライアント・コンピュータ１２とサーバ・コンピュータ１４とに結合された少なくとも１つのルータ１６とを含んでいる。特許請求の範囲を含むこの明細書を通じて、「クライアント・コンピュータ」という用語はトランザクションを開始するコンピュータ（例えば、ウェブ・サーバ）を意味し、「サーバ・コンピュータ」という用語はそのトランザクションを処理するコンピュータ（例えば、データベース又はストレージ装置）を意味する。１つのコンピュータが、同時に、あるアプリケーションに関してはクライアント・コンピュータ１２であり、別のアプリケーションに関してはサーバ・コンピュータ１４であるということもありうる。ルータ１６は、ソフトウェア・パッケージ、埋込式デバイス、電子デバイス及びこれらの組合せとして実現することができる。
【００１３】
システム１０は、例えば、ソケット・ダイレクト・プロトコル（ＳＤＰ）、ダイレクト・アクセス・ファイル・システム（ＤＡＦＳ）、ＳＣＳＩ ＲＤＭＡプロトコル（ＳＲＰ）などのプロトコルを、例えば、ＶＩやインフィニバンドなどの技術の上で用いるＲＤＭＡネットワーク環境において実現することができる。システム１０は、また、ＴＣＰ／ＩＰプロトコルをＲＤＭＡをサポートするように拡張することによって、標準的なＴＣＰ／ＩＰネットワーク環境において実現することができる。システム１０は、特別なハードウェアを既存のネットワークにふかして用いることなく、ＲＤＭＡ機能を提供することができる軽量のソフトウェア実装を統合している。例えば、より上位の層及び／又はアプリケーションと関係することなく、ＲＤＭＡリクエストを受信しＲＤＭＡ動作（例えば、メモリ・ブロックをリクエスト側との間で移動させること）をエミュレートするカーネル・ソフトウェア要素を実現する。
【００１４】
可用性（アベイラビリティ）、能力及び機能性を向上させ負荷を共有する、類似の又は異なる機能を有するルータは、複数ありうる。ルータ１６は、遠隔的に管理することができる。ルータ１６は、セキュリティ対策を講じて、外部的な攻撃に対する脆弱性を減少させることができる。このシステムは、ワイド・エリア・ネットワークだけでなく、ローカル・エリア・ネットワークやサーバ環境において実現することができる。
【００１５】
ルータ１６は、所定の方針（ポリシー）に従ってコンテンツ・フィルタリングとルーティングとを管理するように構成することができる。システム１０は、セキュリティ・フィルタ、キャッシング・フィルタ、計算（ａｃｃｏｕｎｔｉｎｇ）フィルタ及びサービル・フィルタの質を含むグループからの少なくとも１つのフィルタを有しており複数のカスケード接続されたルータを含む。ルータ１６は、トランザクションをフィルタリングし、更なるフィルタリングのために、フィルタリングされたトランザクションをサーバ・コンピュータ１４の中の１つ又は別のルータ１６にルーティングすることができる。ルータ１６は、更に、負荷均衡化を管理するように構成することもできる。ルータ１６は、例えば、時々刻々の可用性、負荷情報、サービスの質などに基づいて、コマンド処理のためのサーバ・コンピュータを選択する。
【００１６】
既存のコンテンツ・フィルタリング・システムでは、クライアントとサーバとの間のすべてのトラフィックは、ルータを介して転送される。これとは対照的に、本発明の実施例では、ルータ１６は、それぞれのトランザクション（すなわち、コマンド）の一部だけを受信し処理することがあるし、あるいは、ルータ１６は、接続リクエストだけを受信し処理することもある。接続リクエストの処理には、その接続リクエストの中の情報に従って、サーバ１４を選択することが含まれることがある。この情報は、通信プロトコルによっては用いられない不透過データを含みうる。トランザクション（すなわち、データ）の主要な部分は、ＣＰＵ資源を多く消費することはない効率的なピア・ツー・ピア動作を用いた安全な態様で、クライアント１２とサーバ１４との間を直接的に移動することができる。あるいは、データは、処理されることなく、ルータ１６を介して移動する場合もある。ルータ１６は、負荷や故障のために、又は、トラフィック・コンテンツに基づいて、他のサーバにトランザクションを分散するという判断もできる。
【００１７】
例えば、ＲＰＣアプリケーション、データベース・アプリケーション、ストレージ・アクセス・アプリケーション、ファイル・アクセス・アプリケーションなど多くのアプリケーションは、トランザクションを用いる。トランザクションとは、コマンドの送信と結果又はリクエストされたデータの受信とを含む双方向の通信である。多くのアプリケーションにおいて、信頼できるマシンによって提供された受信データは、検査する必要がない。時には、コマンドのパラメータのいくつかについてさえ、検査は不要である。
【００１８】
アプリケーションによっては、トランザクションはステートレス（ｓｔａｔｅｌｅｓｓ）である。あるいは、トランザクションは、ステートレスにすることができる。あるステート（状態）の開始及び終了にしるし（マーク）が付されているときには、負荷均衡化及びフェイル・オーバ機構を実現することができる（例えば、ロールバック動作や再送信動作）。本発明のいくつかの実施例では、故障の場合に別のサーバにシフトすることは、アプリケーションに対して透過的である。これとは対照的に、ほとんどの既存のフェイル・オーバ機構は、サーバが故障してクライアント・アプリケーションが再接続コマンドを生じるように要求されるときに、接続を失う傾向を有する。
【００１９】
トランザクションは、次の複数の要素に分割することができる。
１．例えば、ＳＱＬステートメント、ＲＰＣオブジェクト、ファイル・リクエスト、呼び出し方法（ｍｅｔｈｏｄ ｔｏ ｉｎｖｏｋｅ）などのコマンド。
【００２０】
２．コマンド処理に必要な場合がある追加データであるコマンド・パラメータ（オプション）。
３．処理及び／又はコマンドの完了状態（例えば、成功やエラー）の結果として生じるリターン・データ及び／又は結果。
【００２１】
本発明のいくつかの実施例によると、それぞれのトランザクションは分離することができ、検査、負荷均衡化及びフェイル・オーバ動作は、トランザクションの粒度（ｇｒａｎｕｌａｒｉｔｙ）において、すなわち、ステートレスなトランザクションとして実行することができる。トランザクションは、故障のために終了されなかった場合には、別のサーバに再度割り当てられる。サーバからデータを受信するバッファは、複数存在することがありうる。大きなトランザクションの場合には、複数の結果バッファとパラメータ・バッファとが作成されることがある。大きなトランザクションは、複数のサブ・トランザクションに分割されることがある。
【００２２】
ルータ１６は、負荷均衡化については、既知の方法の任意のものを用いることができる。負荷均衡化の非制限的な例としては、すべてのサーバに番犬機能（ｗａｔｃｈ−ｄｏｇ）を維持して負荷情報を周期的に受け取るという方法がある。負荷均衡化方法は、サーバの心拍（ｈｅａｒｔ−ｂｅａｔ）、負荷、パフォーマンス及び状態を決定することがある。
【００２３】
セキュリティを増加させるために、追加的なセキュリティ・キー及び／又は署名をパラメータ及び／又は結果バッファ・ポインタに追加して、サーバ・ソフトウェアが、正しい（干渉を受けていない）パラメータ及び／又はポインタが受信されたのかどうかをチェックできるようにすることができる。
【００２４】
次に、図２を参照する。図２は、本発明の実施例による例示的なトランザクションのデータ・フローの図解である。
クライアント・コンピュータ１２は、コマンドを、１又は複数のメモリ・バッファと共に、ルータ１６に送る（ステップ２０）。いくつかのトランザクションでは、クライアント・コンピュータ１２は、更に、少なくとも１つの必須コマンド・パラメータをルータ１６に送る。必須コマンド・パラメータの非制限的な例としては、接続リクエスト、ＳＱＬ、コマンド動作、ファイル動作などがある。少なくとも１つのメモリ・バッファが、オプションではあるが、追加的なコマンド・パラメータを記憶する。少なくとも１つのメモリ・バッファは、サーバ１４から受信されたデータを記憶する。システム１０がルータ１６を複数含む場合には、クライアント・コンピュータ１２のアプリケーションが、どのルータが使用可能であるかを判断する。
【００２５】
ルータ１６は、コマンドを調べる。コマンドが所定のフィルタリング・ポリシーに従っている場合には、ルータ１６は、使用可能なサーバ１４を探す（負荷均衡化スケジュリング・アルゴリズムを用いて）。そして、ルータ１６波、コマンドとバッファのポインタとをサーバ１４に送る（ステップ２２）。サーバ１４は、コマンドを処理し、更に、並列的に、クライアント・コンピュータ１２のメモリから直接にコマンド・パラメータをフェッチすることがある。フェッチ・プロセスは、ＲＤＭＡ読み出し動作を用いる。
【００２６】
サーバ１４は、いったんコマンドの処理を終了すると、その結果を直接にクライアント・コンピュータ１２のメモリに送る（ステップ２４）。あるいは、パラメータとデータとは、ルータ１６を介し、それによって処理されることなく、送られる。サーバ１４は、ＲＤＭＡ書き込み動作を用いる。クライアント・コンピュータ１２は、コマンドの終了に関する告知を受ける。そして、クライアント・アプリケーションは、結果を受け取る。インフィニバンド（Ｉｎｆｉｎｉｂａｎｄ）、ＩＶ又はそれ以外のＲＤＭＡ機能付きのハードウェア実装に基づくネットワークでは、ネットワーキング装置が、プロセスの終了についてクライアント・コンピュータ１２に告知する。あるいは、主にソフトウェア実装の場合であるが、適切なプロトコルが、終了についてクライアント・コンピュータ１２に告知を行う。
【００２７】
ルータ１６は、また、アプリケーションとターゲット・マシンとに関する情報を含む接続リクエストを、クライアント１２から受け取る。ルータは、所定のポリシー（方針）と接続リクエストにおいて受信された情報とに基づいて、どのサーバがそのトラフィックを取り扱うのかを判断する。その時点から接続の終了まで、トラフィックは、クライアント１２とサーバ１４との間を直接に、又は、追加的なコンテンツ・フィルタリングのための追加的ルータを介して、移動する。
【００２８】
システム１０は、例えば、サービスの質、キャッシング及び請求など、様々なコンテンツ・ベースのアプリケーションに対して適切である。これらのコンテンツ・ベースのアプリケーションは、そのコンテンツに従って、トラフィックをルーティングする。トラフィックに関する情報を収集するものもある。システム１０を用いることにより、セキュリティが改善され、フェイル・オーバ・イベントが減少し、スケーラビリティが改善され、遅延が縮小するという効果が得られ、同時に、以下で説明するように、マシン・パフォーマンスとＣＰＵ負荷とは維持される。第１に、システム１０においては、故障地点が１つだけ存在するということはない。第２に、クライアント・コンピュータ第１及び第２のは、サーバ１４へのどの通信も直接に開始するということがない。クライアント・コンピュータ１２は、サーバ１４のアドレスを知らないという場合もあるのであり、それによって、クライアントがサーバを攻撃するという危険が排除される。
【００２９】
第３に、ほとんどのトラフィックは、遅延なしに、サーバ１４からクライアント１２へ直接に、又は、ルータ１６を介してそこでは処理されることなく、移動する。サーバ１４からクライアント１２へのデータの直接的な流れがあると、既存のパフォーマンス・レベルとマシンのＣＰＵの負荷とを維持することが可能になる。場合によっては、標準的なセキュリティ対策が講じられていないＴＣＰ／ＩＰによるクライアント／サーな通信と比較して、ＣＰＵの負荷を減少させることができる。更に、ＲＤＭＡ機構が、パフォーマンスを向上させることさえありうる。
【００３０】
次に図３を参照する。図３には、本発明の実施例によるトランザクション認識型通信アプリケーションを有するコンピュータが示されている。このコンピュータとは、クライアント１２又はサーバ１４である。
【００３１】
標準的なネットワークでは、ユーザ間の通信の間、一端では、そのコンピュータにおける層の全体の下方向へそれぞれの層を通過するデータ・フローがあり、他端では、データが到着すると、受信側のコンピュータにおける層の上方向への別のディレクタ・フローが、最終的にはエンド・ユーザまで存在する。これとは対照的に、本発明の実施例では、マルチ・チャネルの信頼性の高い通信ハードウェアが、以下で説明するように、トランザクション認識型通信アプリケーションと直接に通信する。そのような実施例では、マルチ・チャネルの信頼性の高い通信ハードウェアが、標準的なネットワーク・カードに取って代わることになる。ＯＳＩモデルとの関係では、マルチ・チャネルの信頼性の高い通信ハードウェアは、より下位にある４つのＯＳＩ層と、それよりも上位のＯＳＩ層のいくつかの機能を代替する。
【００３２】
コンピュータ３０は、１又は複数のアプリケーション３２と、ネットワーク・トラフィックをキャプチャするように構成された１又は複数のアプリケーション・インターフェース３４と、マルチ・チャネル通信ハードウェア３６とを含む。アプリケーション・インターフェース３４は、トランスポート・プロバイダ及び／又はソケット・アプリケーションでありうる。
【００３３】
コンピュータ３０は、また、カーネル・エージェント３８を含む。「カーネル・エージェント」という用語は、カーネル・システムのハードウェア要素を初期化するカーネル・システムのソフトウェア要素を意味する。これらのソフトウェア要素は、更に、チャネルの配置や、エラーの処理などを行うように構成されている。
【００３４】
通信ハードウェア３６は、プロセスからプロセスへデータを直接に信頼性を維持しながら転送するという特別の通信機能を提供する。そのような通信機能の非制限的な例としては、エラー検出、キューイング、メモリ管理、多重化、セキュリティなどが含まれる。従って、アプリケーション間の通信パフォーマンスが著しく増加する可能性がある。というのは、これらの機能は、アプリケーション間の通信のソフトウェア部分において与えられる必要がもはやないからである。注すべきは、通信ハードウェア３６は、ハードウェアとして実現されたトランスポート通信層を含み、カーネル・バイパス機能を有しうるという点である。
【００３５】
通信ハードウェア３６の非制限的な例としては、新たなシステム・エリア・ネットワーク（ＳＡＮ）技術、仮想インターフェース（ＶＩ）、インフィニバンド、ファイバ・チャネル、ＳＣＳＩ、非同期転送モード（ＡＴＭ）、ＴＣＰ／ＩＰネットワーク上のＲＤＭＡ、拡張型イーサネット（登録商標）などである。
【００３６】
アプリケーション・インターフェース３４は、標準的なネットワークの層の間に埋め込むことができる。あるいは、アプリケーション・インターフェース３４は、標準的アプリケーション及び／又はＯＳＩモデルのセッション・ネットワーク層を代替することがある。アプリケーション・インターフェース３４は、また、ソケット・アプリケーション・プログラミング・インターフェース（ＡＰＩ）を代替する場合もある。ＡＰＩの非制限的な例としては、バークレー・ソフトウェア・ディストリビューション（ＢＳＤ）、ウィンソック、トランスポート・データ・インターフェース（ＴＤＩ）などがある。２つのコンピュータの間でメッセージを転送する標準的なプロセスは、一方のコンピュータにおいて物理層までのそれぞれの層を通過するデータ・フローと、メッセージが到着する際の、受信側コンピュータにおける各層を通じて上方向へのそして最終的にはアプリケーションに至る別のデータ・フローとが含まれる。
【００３７】
次に、クライアント・アプリケーション・インターフェース３４について説明する。本発明の実施例では、アプリケーション・インターフェース３４がトランザクションを受け取る。受信されたデータは、コマンドと、クライアント・コンピュータのアドレスと、追加的なパラメータ・バッファへのポインタと、結果バッファへのポインタとを含む。アプリケーション・インターフェース３４は、トランザクションをキャッシュし、トランザクションを要素（コマンド、パラメータ、リターン・データ）に分割し、コマンドと必須パラメータとをルータ１６に送る。
【００３８】
クライアント・コンピュータ１２は、ルータ１６のアドレスを維持し、ルータ１６の過剰負荷又は故障の場合には、アドレスが、他の使用可能なルータのものに代替される。この手順は、既知の負荷均衡化アルゴリズムを用いて、実行される。
【００３９】
パラメータの実際のフェッチとトランザクション結果の転送とは、クライアント１２のアプリケーション３２とは関係することなく、ＲＤＭＡ動作を用いる。いったんトランザクションが終了すると、アプリケーション・インターフェース３４に告知がなされる。アプリケーション・インターフェース３４はタイマを維持しており、タイムアウトの場合には、クライアント１２は、トランザクションを別のサーバへ再送信する。ルータ１６に故障に関する告知をすることが必要なこともある。問題が継続する場合にだけ、クライアント・アプリケーション３２に故障が告知される。
【００４０】
次に、サーバ・アプリケーション・インターフェース３４について説明する。サーバ・アプリケーション・インターフェース３４は、送信（Ｓｅｎｄ）やＲＤＭＡなどの動作を介して、ハードウェアとの間で直接にトランザクションを送受信するように構成されている。アプリケーション・インターフェース３４は、ＲＤＭＡ動作を用いて例えばインフィニバンドなどの技術の上の新たなタイプのプロトコルで受信されたトランザクションやコマンドを、標準的なアプリケーション及び／又はＯＳＩモデルのセッション層インターフェースに変換するように構成されている。この変換は、シームレスな態様で実行されうる。このようなプロトコルの非制限的な例としては、ＳＤＰ、ＤＡＦＳ、ＳＲＰなどがある。
【００４１】
アプリケーション・インターフェース３４は、また、トランザクション・パラメータやリターンされた結果及びデータを変換するようにも構成できる。このインターフェースは、オペレーティング・システムの提供者によって供給されるオペレーティング・システムに一体的に含まれている部分であるか、又は、標準的なオペレーティング・システムへのアドオンでありうる。
【００４２】
場合によっては、クライアントのネットワーキング・ソフトウェア及び／又はハードウェアを交換することは不可能である。例えば、クライアント１２がウェブ・クライアントであって、サーバ１４がウェブ・サーバであるような場合である。そのような場合には、本発明の実施例によると、ルータ１６とクライアント１２との間に、プロキシ要素を追加することができる。プロキシは、クライアント１２によって提供されるパケット（例えば、ＴＣＰ／ＩＰパケット）を収集して、クライアント１２の代わりにトランザクションを発生する。また、プロキシは、結果データをパケットに変換して戻すこともできる。
【００４３】
次に、図４を参照する。図４は、本発明の実施例によるプロキシ要素を有するコンテンツ・フィルタリング及び負荷均衡化システムのブロック図である。システム４０は、少なくとも１つのクライアント・コンピュータ４２と、少なくとも１つのサーバ・コンピュータ４４と、サーバ・コンピュータ４４に結合された少なくとも１つのルータ４６とを含む。システム４０は、更に、クライアント・コンピュータ４２とサーバ・コンピュータ４６とに結合された１又は複数のプロキシ要素４８を含む。プロキシ４８は、ソフトウェア、ハードウェア、埋込式デバイス、電子デバイス及びこれらの任意の組合せとして実現することができる。
【００４４】
プロキシ要素４８は、また、ルータ４６の中に一体化することもできる。プロキシ要素は、パケット／フレーム指向の通信（例えば、ＴＣＰ／ＩＰ）をトランザクション指向の通信に変換する、及び／又は、ＲＤＭＡ動作を実現するように構成されている。ソースの真のオリジン（プロキシの背後にある）を保持する必要が存在する場合もある。この場合には、プロキシ４８は、クライアント４２のアドレスをコマンドに追加する。サーバ側では、アドレスはアプリケーションに送ることができる。
【００４５】
次に、図５を参照する。図５は、本発明の実施例によるコンテンツ・フィルタリング及び負荷均衡化のためのシステムの図解である。このような実施例では、クライアントは標準的なＴＣＰ／ＩＰネットワークに結合され、他方で、サーバは、ＲＤＭＡ機能（例えば、ＶＩ、インフィニバンド、ｉＳＣＳＩ、ＲＤＭＡ機能を伴うＴＣＰ／ＩＰなど）を有する進んだネットワーキング・ハードウェア及び／又はソフトウェアを含む。
【００４６】
システム５０は、少なくとも１つのサーバ５４と少なくとも１つのクライアント５２とに結合されたゲートウェイ５６を含む。ゲートウェイ５６は、プロキシ要素とルータとの両方を含み、クライアントのアプリケーションへのコンプライアンスを維持しシームレスな統合を可能にしながら、パフォーマンスと信頼性とサーバ・ファーム・ネットワークのオフロード効果とを維持するように構成されている。ゲートウェイ５６は、更に、セキュリティ、コンテンツ・フィルタリング、負荷均衡化、サービスの質、計算、キャッシュ機能などを追加するように構成されうる。ゲートウェイ５６は、ソフトウェア・パッケージ、埋込式デバイス、電子デバイス及びそれらの任意の組合せを含みうる。ゲートウェイ５６は、任意の組合せを有する複数のマシンとして実現することができる。例えば、より大きな可用性を許容しバンド幅を増加させることを並列的に行う複数のゲートウェイも存在しうる。更に、複数のカスケード接続されたゲートウェイを用いて、例えば、セキュリティ、計算、サービスの質及びキャッシングなどのコンテンツ・ベースのフィルタリング機能を追加することもできる。
【００４７】
ゲートウェイ５６は、ファイアウォール６０と、復号化／暗号化ユニット６２と、クライアント・プロトコル・スタック６４とを含む。ファイアウォール６０は、ソフトウェア、ハードウェア又はそれらの任意の組合せとして実現されるネットワーク・セキュリティ・ユニットである。ファイアウォール６０は、どのネットワーク資源（ポート）がゲートウェイ５６にアクセスするかを制御するように構成されている標準的な要素でよい。ゲートウェイ５６に提供される通信は暗号化され、及び／又は、認証される（例えば、ＩＰ Ｓｅｃ、ＳＳＬ、ＳＥＴなど）場合には、ゲートウェイ５６は、データを復号化する機能を備えている。復号化／暗号化ユニット６２は、それを次の局に送る前に情報を復号化するように構成されている。パフォーマンスを向上させるためには、復号化／暗号化ユニット６２は、完全に又は部分的にハードウェアとして実現される。
【００４８】
クライアント・プロトコル・スタック６４は、例えば、ＴＣＰ／ＩＰプロトコル・スタックである。そのような場合には、プロトコル・スタック６４は、ＴＣＰ／ＩＰパケットを信頼性の高いセッションに変換するという責任を負う。パフォーマンスを向上させるためには、クライアント・プロトコル・スタック６４は、完全に又は部分的にハードウェアとして実現される。
【００４９】
ゲートウェイ５６は、更に、プロキシ要素６６と、１又は複数のアプリケーション・レベルのコンテンツ・フィルタリング・フィルタ６８と、ルータ７０とを含む。プロキシ要素６６は、クライアント５２に対して、それがサーバ５４であるかのように応答するように構成されている。プロキシ要素６６は、入力／出力データをキャッシュし完全なトランザクションを形成するように構成される。プロキシ６６は、サーバ５４に対するキャッシュとして作用してトランザクションへの回答を記憶するように強化することもできる。プロキシ６６は、そのキャッシュに記憶されているコマンドの１つと一致するコマンドを受け取る場合には、そのコマンドをサーバ５４に転送することを必要とせずに、データを瞬時にリターンすることができる。例えば、ウェブ・サーバの場合には、ピクチャ・データベースを、プロキシ６６のキャッシュに記憶することができる。ユーザがキャッシュに記憶されているピクチャをリクエストすると、それを実際のウェブ・サーバにリクエストすることなく、ピクチャはクライアント１２を介してそのユーザに提供されうる。
【００５０】
アプリケーション・レベルのセキュリティ・フィルタ６８は、処置のセキュリティ・ポリシに基づいてトランザクションをフィルタリングするように構成されている。ルータ７０は、サーバの可用性と負荷とに基づいて、どのサーバにコマンドを送るべきかを判断するように構成されている。ゲートウェイ５６は、サーバ・プロトコル・スタック７２を更に備えていることがある。サーバ・プロトコル・スタック７２は、効率的な動作（例えば、ＲＤＭＡ）を用いて、サーバとの接続を維持するように構成される。インフィニバンド、ＶＩ及びそれ以外の新たな標準では、サーバ・プロトコル・スタック７２は、ハードウェアと直接に通信する薄型のユーザ・モード・ソフトウェア層である。ＴＣＰ／ＩＰプロトコル上でのトンネリングを用いると、パフォーマンスの向上なしに、負荷均衡化及び／又はコンテンツ・フィルタリングを行うことができる。
【００５１】
次に示す表１には、本発明の実施例によるいくつかの要素に分割されたトランザクションの非制限的な例が示されている。トランザクションは、異なった態様で分割が可能である。
【００５２】
【表１】
2004526218.tif 000003
【００５３】
以上で、本発明の特徴を図解し説明したが、この技術分野の当業者には、多くの修正、代替、変更及び均等が可能であろう。従って、冒頭の特許請求の範囲は、本発明の真の精神に含まれるこれらの修正や変更をすべてカバーすることを意図している。
【図面の簡単な説明】
【図１】
本発明の実施例によるコンテンツ・フィルタリング及び負荷均衡化システムのブロック図による図解である。
【図２】
本発明の実施例による例示的なトランザクションのデータ・フローに関する図解である。
【図３】
本発明の実施例によるトランザクション認識型の通信アプリケーションを有するコンピュータのブロック図による図解である。
【図４】
本発明の実施例によるプロキシ要素を有するコンテンツ・フィルタリング及び負荷均衡化システムのブロック図による図解である。
【図５】
本発明の実施例によるコンテンツ・フィルタリング及び負荷均衡化システムのブロック図による図解である。
【図１】
2004526218.tif 000004
【図２】
2004526218.tif 000005
【図３】
2004526218.tif 000006
【図４】
2004526218.tif 000007
【図５】
2004526218.tif 000008
【国際公開パンフレット】
2004526218.tif 000009
2004526218.tif 000010
2004526218.tif 000011
2004526218.tif 000012
2004526218.tif 000013
2004526218.tif 000014
2004526218.tif 000015
2004526218.tif 000016
2004526218.tif 000017
2004526218.tif 000018
2004526218.tif 000019
2004526218.tif 000020
2004526218.tif 000021
2004526218.tif 000022
2004526218.tif 000023
2004526218.tif 000024
2004526218.tif 000025
2004526218.tif 000026
2004526218.tif 000027
2004526218.tif 000028
2004526218.tif 000029
2004526218.tif 000030
2004526218.tif 000031
【国際公開パンフレット（コレクトバージョン）】
2004526218.tif 000032
2004526218.tif 000033
【国際調査報告】
2004526218.tif 000034