説明

ステートレス通信プロトコルにおけるサーバ状態推測

ステートレス通信プロトコルに基づくネットワーク上で、アプリケーションサーバとクライアントデバイスとの間で送信されるパケット間の仲介サーバによって、そのアプリケーションサーバとクライアントデバイスとの間で送信されるこれらのパケットをモニタおよび解析することで、サーバ状態オブジェクトは、同定される。これらのパケットは、複数の名前−値のペア(データオブジェクト)に構文解析される。同じ名前フィールドを有する名前−値のペアのエントロピが計算され、その計算されたエントロピに基づいて、サーバ状態オブジェクトとなりそうな候補データオブジェクトが選択される。アプリケーションサーバとクライアントデバイスとの間で双方向に送信された候補データオブジェクトが、サーバ状態オブジェクトとして同定される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般的に、ステートレス通信プロトコルに関する。より特定的には、XML(拡張可能マークアップ言語)またはSOAP(シンプルオブジェクトアクセスプロトコル)のようなステートレス通信プロトコル下において、サーバとクライアントデバイスとの間で送信されるパケット間のサーバ状態オブジェクトを同定することに関する。
【背景技術】
【0002】
HTTP(ハイパーテキスト転送プロトコル)、XMLまたはSOAPのようなステートレス通信プロトコルは、以前のコマンドの状態情報を一切維持することなく、各コマンドを独立に実行する。このように、厳格にステートレスなプロトコルにおいて、サーバは、サーバと以前通信したクライアントデバイスのアイデンティティを格納しない。それゆえ、そのサーバは、以前のトランザクションを考慮して、そのクライアントの現在のトランザクションを処理しない。
【0003】
クッキーまたは隠れフィールドのようなサーバ状態オブジェクトは、このように、ステートレス通信プロトコルを使用するサーバと通信するクライアントデバイスを同定するために、よく使用される。例えば、クッキーは、サーバウェブサイトが、クライアントデバイス上に、クライアントデバイスに関する自分自身の情報を格納できるサーバ状態オブジェクトである。これは、サーバウェブサイトが、後に、クライアントデバイスのアイデンティティをその後判断し得るようにするためである。このように、サーバは、サーバ状態オブジェクトを調査することで、クライアントデバイスがそのサーバと以前に通信したことを判断し得るので、サーバが、そのクライアントデバイスの同定のために追加の試みを行わなくても、クライアントデバイスは、その確立されたアイデンティティに基づいて、そのサーバとトランザクションできる。
【0004】
サーバ状態オブジェクトは、サーバにクライアントデバイスを同定し、クライアントデバイスは、その判断されたアイデンティティに基づいて、サーバと通信できるので、サーバは、クライアントデバイスの特定のアイデンティティを装う不正な企てから自衛する手段を有しているはずである。それゆえ、サーバがこのような不正な企てに遭わないようにするために、サーバ状態オブジェクトは、典型的には、ステートレス通信プロトコル下において、不変である。言い換えれば、サーバがクライアントデバイスにサーバ状態オブジェクトを送信するとき、サーバは、そのサーバ状態オブジェクトが、そのクライアントデバイス上で変更も改竄もされずに、戻ってくることを期待する。
【0005】
HTTPのような構造化された明確な通信プロトコル下では、ファイアウォール、ゲートウェーまたはアプリケーションプロキシのような仲介サーバは、アプリケーションサーバとクライアントデバイスとの間で送信されたパケット間のサーバ状態オブジェクトを容易に同定し得る。なぜなら、サーバ状態オブジェクトを含むパケットは、このようなサーバ状態オブジェクトを同定する特定のフィールドを含むように構成されるからである。例えば、クッキーは、<set−cookie:......>のようなストリングを含み、隠れフィールドは、<input type=hidden...>のようなストリングを含み、これらは、仲介サーバによって容易に同定され得る。
【0006】
しかしながら、XMLまたはSOAPのような構造化度の少ないステートレス通信プロトコルにおいて、仲介サーバは、サーバ状態オブジェクトを容易に同定し得ない。なぜなら、これらのプロトコルは、アプリケーション設計者が、設計者自身のオブジェクトを任意に定義できるからである。ファイアウォールのような仲介サーバは、典型的には、アプリケーション設計者によって、アプリケーションサーバに与えられたプロトコル定義へのアクセスを有しないので、それゆえ、アプリケーション設計者によって任意に定義されたサーバ状態オブジェクトは、仲介サーバによって、容易に同定し得ない。例えば、一つのアプリケーションサーバにおいて、サーバ状態は、「課金番号」オブジェクトに保持され得るが、別の一つのアプリケーションにおいて、同じサーバ状態は、「クライアントID」オブジェクトに保持され得る。アプリケーションサーバは、これらプロトコル定義に対するアクセスを有し、こうして、これらサーバ状態オブジェクトを同定し得る。しかしながら、仲介サーバ(ファイアウォールまたは他のフィルタ)は、仲介サーバの背後にある全てのアプリケーションのプロトコル/アプリケーション定義を有しない。
【0007】
それゆえ、仲介サーバによって、サーバ状態オブジェクトを同定する所定の方法を有しないXMLまたはSOAPのような構造化度の低いステートレス通信プロトコル下において、サーバとクライアントデバイスとの間で送信されるサーバ状態オブジェクトを同定する必要性がある。
【発明の開示】
【課題を解決するための手段】
【0008】
(発明の概要)
本発明は、ステートレス通信プロトコルに基づくネットワーク上で、アプリケーションサーバとクライアントデバイスとの間で送信されるパケット間のサーバ状態オブジェクトを同定することを提供する。ここで、パケットは、クライアントデバイスおよびアプリケーションサーバによって使用されるプロトコル定義に対するアクセスを有しない仲介サーバによって受信される。アプリケーションサーバとクライアントデバイスとの間で送信されるパケットは、仲介サーバによってモニタされ、複数の名前−値のペア(データオブジェクト)に構文解析される。同じ名前フィールドを有するデータオブジェクトのエントロピが計算され、サーバ状態オブジェクトとなりそうな候補データオブジェクトが、選択される。一実施形態において、閾値より高いエントロピを有するデータオブジェクトが、候補データオブジェクトとして選択される。最終的に、アプリケーションサーバとクライアントデバイスとの間で双方向に送信されたと判断される候補データオブジェクトが、サーバ状態オブジェクトとして同定される。
【0009】
一実施形態において、データオブジェクトのエントロピは、同じ名前フィールドを有する構造解析されたデータオブジェクトの値フィールドを連結すること、エントロピベースの圧縮アルゴリズムを用いて、この連結値フィールドを圧縮すること、および、圧縮連結値フィールドの合計サイズを、同じ名前フィールドを有するデータオブジェクトの合計数で割ることによって計算される。
【0010】
本発明の実施形態は、たとえ、XMLまたはSOAPのような構造化度の低いステートレス通信プロトコルが使用されたときでも、アプリケーションサーバとクライアントデバイスとの間で送信されるサーバ状態オブジェクトを同定し得る。このように、仲介サーバは、同定されたサーバ状態オブジェクトを調査すると、アプリケーションサーバとクライアントとによって使用される基盤アプリケーションプロトコルに何らアクセスを有しなくても、そのアプリケーションサーバと以前に通信したクライアントデバイスを同定し得る。これによって、仲介サーバによって保持される情報を絶えず更新することを必要とせずに、基盤アプリケーションプロトコルが変更されることも、あるいは、新たなアプリケーションがネットワーク上でホストされることも可能になる。また、これによって、このように構造化度の低いステートレスデータ通信プロトコルを用いるインターネットトランザクションのインプリメンテーションが容易になる。
【発明を実施するための最良の形態】
【0011】
(実施形態の詳細な説明)
図1は、本発明の一実施形態に従うサーバ状態オブジェクトを同定するシステム100のアーキテクチャを示すブロック図である。システム100は、アプリケーションサーバ102とクライアントデバイス104との間で送信されるパケット118をモニタするためにアプリケーションサーバ102とクライアントデバイス104との間に結合される。パケット118は、アプリケーションサーバ102とクライアントデバイス104との間で双方向に、あるいは、アプリケーションサーバ102からクライアントデバイス104への一方向にのみ、または、その逆の一方向にのみ送信され得る。パケット118は、XML、SOAPまたはHTTPのようなステートレスデータ通信プロトコルを用いて、アプリケーションサーバ102とクライアントデバイスとの間を送信される。しかしながら、システム100は、アプリケーションサーバ102によって与えられるプロトコル定義を典型的には有しない。このアプリケーションサーバ106は、サーバ状態オブジェクトを同定するために、パケットを解析する。図1には、単一のクライアントデバイス104が示されているが、実際には、アプリケーションサーバ102と通信する多数のクライアントデバイス104があることは、理解されるべきである。また、単一のアプリケーションサーバ102が示されているが、任意の数のアプリケーションサーバ102が、クライアントデバイス104をサービスするために、システム100の背後に配備され得る。
【0012】
一実施形態において、システム100は、アプリケーションファイアウォール106、学習エンジン108、および、データストレージモジュール110を含む。アプリケーションファイアウォール106は、サーバ102からクライアントデバイス104に、および、クライアントデバイス104からサーバ102に送信されるパケット118をモニタする。アプリケーションファイアウォール106は、モニタされたパケット118を構文解析し、学習エンジン108によって提供されるフィルタリングルール116に従って、悪意あるパケットまたは望まれぬパケット118をフィルタリングする。フィルタリングルール116は、サーバ102とクライアントデバイス104との間で送信される特定のパケット118を通過または阻止する基準を有するアプリケーションファイアウォール106を提供する。
【0013】
アプリケーションファイアウォール106は、モニタされたパケット118を構文解析し、学習エンジン108によって提供されたデータ収集パラメータ112に従って収集されたデータ114を学習エンジン108に提供する。データ収集パラメータ112は、アプリケーションファイアウォール106に、アプリケーションファイアウォール106がモニタされたパケット118から収集すべきデータの型に関する基準を提供する。これらデータ収集パラメータ112は、例えば、通信プロトコルに従うパケット118に対応する名前−値(名前−属性)のペアを集めるために、パケット118を構文解析する方法を含む。しかしながら、典型的な実施形態において、アプリケーションファイアウォール106は、アプリケーションサーバ104によって使用されるような基盤プロトコル定義(例えば、文書型定義(DTD))に対するアクセスを有しない。
【0014】
一実施形態において、アプリケーションファイアウォール106自身は、そのアプリケーションファイアウォール機能専用のコンピュータシステム実行中ソフトウェアであり得る。別の実施形態において、アプリケーションファイアウォール106は、コンピュータシステム100上で実行中の大きなソフトウェアシステムの一部であるソフトウェアモジュールであり得る。
【0015】
学習エンジン108は、フィルタリングルール116およびデータ収集パラメータ112をアプリケーションファイアウォール106に提供し、データ収集パラメータ112に従って、アプリケーションファイアウォール106によって収集されたデータ114を受信する。パケット118は、使用された通信プロトコルに従って、サーバ102とクライアントデバイス104との間で送信されるパケットである。例えば、パケット118は、また、XMLパケットまたはSOAPパケットでもあり得る。アプリケーションファイアウォール106は、パケット118を名前−値(名前−属性)のペア114に構文解析し、学習エンジン108は、パケット118間のサーバ状態オブジェクトを同定するさらなる処理のために、これらの名前−値のペア114を受信する。名前−値(名前−属性)のペアは、また、本明細書で、「データオブジェクト」とも称される。
【0016】
学習エンジン108は、アプリケーションファイアウォール106から受信されたデータオブジェクト114すなわち名前−値のペア114を解析することによって、サーバ102とクライアントデバイス104との間で送信されるパケット118間のサーバ状態オブジェクトを同定する。この点について、学習エンジン108は、名前−値のペア114を同定し、各同定された名前フィールドに対して、その名前に対する値を連結する。各名前に対する値の最小数を累積した後、学習エンジン108は、次いで、圧縮アルゴリズムを用いて、その名前に対する連結値を圧縮する。圧縮アルゴリズムは、Lempel−Ziv型圧縮アルゴリズムのようなエントロピベースの圧縮アルゴリズムであり得る。次いで、学習エンジン108は、圧縮値の合計サイズをその同じ名前を有する値の合計数で割ることで、圧縮値のそれぞれのエントロピを計算する。
【0017】
学習エンジン108は、データオブジェクトの計算されたエントロピに従って、データオブジェクトからサーバ状態オブジェクトでありそうな候補データオブジェクトを選択する。サーバ状態オブジェクトは、典型的には、各クライアントの状態を維持するために、データオブジェクトの値フィールド内の比較的明確なストリングを含むので、サーバ状態オブジェクトのエントロピは、高くなりそうである。このように、一実施形態において、学習エンジン108は、候補データオブジェクトとして、閾値より高いエントロピ値を有するデータオブジェクトを選択する。エントロピに対する閾値は、パケット118の通信に用いられる基盤通信プロトコルによって異なる。典型的なサーバ状態オブジェクトは、32ビット以上に相当するエントロピ値を有する。なぜなら、そのオブジェクトは、さらに、サーバインプリメンテーションまたはデータベーステーブル内のキーを参照するオブジェクトであることが多いからである。このように、一実施形態において、閾値は、24ビットに相当するエントロピレベルに設定される。
【0018】
候補データオブジェクトが、アプリケーションサーバ102からクライアントデバイス104へ、かつ、クライアントデバイス104からアプリケーションサーバ102へと双方に送信された場合、学習エンジン108は、1つ以上の候補データオブジェクトをサーバ状態オブジェクトとして同定する。これは、サーバ状態オブジェクトが、アプリケーションサーバ102によってクライアントデバイス104に送信され、クライアントデバイス104に格納されたからである。こうして、アプリケーションサーバ102は、後にクライアントデバイス104を同定し得る。また、サーバ状態オブジェクトが、後に、クライアントデバイス104からアプリケーションサーバ102に送信されたからである。こうして、クライアントデバイス104は、自らをアプリケーションサーバ102に同定し得る。
【0019】
一実施形態において、学習エンジン108は、通信プロトコル下にある関連パケットを、サーバからクライアントデバイスに送信された第一のパケットのグループと、クライアントデバイスからサーバに送信された第二のパケットのグループとに、分けることによって、サーバ102とクライアントデバイス104との間で双方向に送信された候補データオブジェクトを同定する。関連パケットは、通信プロトコル下の「関連メッセージ」に対応するパケットである。例えば、HTTPセッションの要求/応答通信の一部を形成するパケットは、HTTPプロトコル下の関連パケットである。SOAPにおいて、要求および応答は、個別の接続で実行され得る。それゆえ、SOAP下の関連パケットの概念は、外部的に提供される。一実施形態において、(ソースIPアドレス/ポートと目的地IPアドレス/ポートとに基づく)同じソースポイントと目的地ポイントとの間のメッセージは、SOAP下の関連パケットと考えられ得る。他の実施形態において、(URL(統一リソースロケータ)によって同定された)2つの同じサービスの間のメッセージは、SOAP下の関連パケットと考えられる。学習エンジン108は、サーバ状態オブジェクトとして、第一のパケットのグループと第二のパケットのグループとの双方に含まれる候補データオブジェクトを同定する。
【0020】
一実施形態において、データストレージモジュール110は、収集されたデータ114および他の暫定データを一時的に格納する。その間、パケット118の中からサーバ状態オブジェクトを同定するために、データオブジェクト114が、アプリケーションファイアウォール106から受信されたとき、学習エンジン108は、収集されたデータ114をリアルタイムで解析する。別の実施形態において、ストレージモジュール110は、所定の期間にわたり、または、格納されたデータオブジェクトが特定の閾値に達するまで、収集されたデータ114の中に受信されたデータオブジェクトを格納し、学習エンジン108は、このデータオブジェクトがサーバ状態オブジェクトであるかどうかを判断するために、格納されたデータオブジェクトをバッチ処理する。
【0021】
図2は、ステートレス通信プロトコルに基づくネットワーク上で、サーバ102とクライアントデバイス104との間で送信されたパケット118の中から、サーバ状態オブジェクトを同定する方法を示す流れ図である。図2に記載された方法は、図1のシステム100内で実行され得る。
【0022】
本方法が、開始202されると、アプリケーションファイアウォール106は、サーバ102からクライアントデバイス104に、あるいは、クライアントデバイス104からサーバ102に送信されたパケット118を、複数の名前−値のペア(データオブジェクト)に構文解析204する。図3は、名前−値のペア303の例を示す。図3を参照すると、パケット118は、構文解析され、名前302と、その名前302に対応する値(属性)304とに分けられる。例えば、名前「注文ID」305は、ウェブサイト102とクライアントデバイス104との間で実行されたインターネット販売のトランザクションに対応する名前であり得る。これらの名前フィールド「注文ID」305は、対応する値フィールド「ABCDEFABCDEF」、「111BBCCCDDD」および「DDDCCCl112233」を有する。名前フィールド「著者」306、「課金番号」307および「題名」308は、対応する値フィールド「ジョン」、「123456789」および「インターネット販売」をそれぞれ有する。図3は、3つの名前−値のペア303しか示していないが、実際には、いつでも、アプリケーションファイアウォール106によって維持管理される数百あるいは数千もの名前−値のペア303であり得る。
【0023】
図2に戻って参照すると、学習エンジン108は、同じ名前フィールドを有する構文解析されたデータオブジェクトの値フィールドを連結206する。例えば、図3の名前−値のペアの幾つかは、同じ名前「注文ID」305を有する。このように、名前「注文ID」に対応する値フィールド304は、名前フィールド「注文ID」305に対応する連結値「ABCDEFABCDEF111BBCCCDDDDDDCCC1112233」を得るために、連結される。
【0024】
任意の所定の名前に対する最小数の名前−値のペアが、同定された後、学習エンジン108は、圧縮アルゴリズムを用いて、その名前に対する連結値を圧縮208する。一実施形態において、圧縮アルゴリズムは、Lempel−Zivタイプの圧縮アルゴリズムのようなエントロピベースの圧縮アルゴリズムであり得る。次いで、学習エンジン108は、圧縮連結値リストの合計サイズを、その名前に対する名前−値のペアの合計数で割ることによって、圧縮連結値のエントロピを計算210する。それゆえ、図3に示す例において、連結値リスト「ABCDEFABCDEF111BBCCCDDDDDDCCC1112233」は、圧縮アルゴリズムを用いて、圧縮208され、圧縮連結値の合計サイズは、その同じ名前フィールド(「注文ID」)を有する名前−値のペアの数(図3に示す例では、3)で割られる。
【0025】
明らかなように、サーバ状態オブジェクトとなる潜在的候補となるデータオブジェクトは多数あり、これら各候補のそれぞれに対し、計算されたエントロピメジャがある。この潜在的候補のセットから、学習エンジン108は、計算されたエントロピに従って、サーバ状態オブジェクトとなりそうな候補名前−値のペアを選択212する。既に述べたように、一実施形態において、学習エンジン108は、候補名前−値のペアとして、所定の閾値より高いエントロピメジャを有する名前−値のペアを選択する。エントロピに対する閾値は、パケット118の送信に使用される基盤通信プロトコルによって異なる。典型的なサーバ状態オブジェクトは、32ビット以上に相当するエントロピ値を有する。なぜなら、そのオブジェクトは、サーバインプリメンテーションまたはデータベーステーブル内のキーを参照するオブジェクトであることが多いからである。このように、一実施形態において、閾値は、24ビットに相当するエントロピレベルに設定される。こうして、前述の「注文ID」および「課金番号」は、十分に高いエントロピを有するものとして選択され得る。その一方、「著者」および「題名」は、十分に高いエントロピを有するものとして選択され得ない。
【0026】
次いで、学習エンジン108は、どの名前−値のペアが、アプリケーションサーバ102とクライアントデバイス104との間で双方向に送信されたかを判断214する。その候補名前−値のペアが双方向に送信されたら、学習エンジン108は、その名前−値のペアをサーバ状態オブジェクトとして、ラベル付け218する。その候補名前−値のペアが双方向に送信されなかったたら、学習エンジン108は、その名前−値のペアはサーバ状態オブジェクトでないと、判断216する。
【0027】
図4は、図2に記載されたようにサーバとクライアントデバイスとの間で双方向に送信された名前−値のペアを同定するプロセスを示す。前述のように、学習エンジン108は、候補名前−値のペアがアプリケーションサーバ102とクライアントデバイス104との間で双方向に送信された場合、その名前−値のペアの1つ以上をサーバ状態オブジェクトとして同定する。これは、サーバ状態オブジェクトが、アプリケーションサーバ102によってクライアントデバイス104に送信され、クライアントデバイス104に格納されたからである。こうして、アプリケーションサーバ102は、後にクライアントデバイス104を同定し得る。また、サーバ状態オブジェクトが、後に、クライアントデバイス104からアプリケーションサーバ102に送信されたからである。こうして、クライアントデバイス104は、自らをアプリケーションサーバ102に同定し得る。
【0028】
図4を参照すると、一実施形態において、学習エンジン108は、通信プロトコル下にある関連パケット118を、アプリケーションファイアウォール106によって対応するパケットの受領を示すそのパケットの関連タイムスタンプの順番に、アプリケーションサーバ102からクライアントデバイス104に送信された第一のパケットのグループ402と、クライアントデバイス104からアプリケーションサーバ102に送信された第二のパケットのグループ404とに分ける。関連パケットは、通信プロトコル下の関連メッセージに対応するパケットである。例えば、HTTPセッションの要求/応答通信の一部を形成するパケットは、HTTPプロトコル下の関連パケットである。SOAPにおいて、要求および応答は、個別の接続で実行され得る。それゆえ、SOAP下の関連パケットの概念は、外部的に提供される。一実施形態において、(ソースIPアドレス/ポートと目的地IPアドレス/ポートとに基づく)同じソースポイントと目的地ポイントとの間のメッセージは、SOAP下の関連パケットと考えられ得る。他の実施形態において、(URL(統一リソースロケータ)によって同定された)2つの同じサービス間のメッセージは、SOAP下の関連パケットと考えられる。図4に示す例において、名前−値のペア406、408、410および412は、アプリケーションサーバ102とクライアントデバイス104との間で双方向に送信された候補名前−値のペアである。図4には示されていないが、これらの名前−値のペア406、408、410、412以外にも、追加の候補名前−値のペアも、またあり得ることは留意されるべきである。
【0029】
学習エンジン108は、第一のパケットのグループ402と第二のパケットのグループ404との双方に含まれる名前−値のペアを、サーバ状態オブジェクトとし、同定する。例えば、候補名前−値のペア406、408、410、412、420、422は、第一のパケットのグループ402と第二のパケットのグループ404との双方に含まれ、学習エンジン108によって、サーバ状態オブジェクトと判断される。しかしながら、候補名前−値のペア416および418は、第二のパケットのグループ404の中にしか含まれておらず、それゆえ、サーバ状態オブジェクトではない。
【0030】
本発明は、たとえ、仲介サーバが基盤通信プロトコルに対するアクセスを有しないXMLまたはSOAPのような構造化度の低いステートレスデータ通信が使用されたときでさえも、アプリケーションサーバとクライアントデバイスとの間で双方向に送信されるサーバ状態オブジェクトが、フィルタまたはゲートウェーのような仲介サーバによって同定され得るというメリットを有する。これによって、このように構造化度の低いステートレスデータ通信プロトコルを用いるインターネットトランザクションのインプリメンテーションが容易になる。なぜなら、サーバは、サーバ状態オブジェクトを調査することによって、そのサーバと以前に通信したクライアントデバイスを同定し得るからである。
【0031】
本発明は、幾つかの実施形態の観点から、以上に説明されてきたが、様々な変更も本発明の範囲内でなされ得る。例えば、本発明は、任意の通信プロトコルに限定されないし、また、任意のステートレス通信プロトコルとともに使用され得る。図1のシステム100のアーキテクチャは、単なる例示に過ぎず、システム100がアプリケーションサーバ102とクライアントデバイス104との間で送信されるパケットをモニタし得るシステムである限り、任意の方法で変更され得る。データオブジェクトの値フィールドの圧縮は、任意のタイプの圧縮アルゴリズムを用いて行われ得、連結圧縮データオブジェクトのエントロピの計算方法は、本明細書の記載に限定されない。双方向パケットを同定する方法は、本明細書の図4で記載されたことに限定されないし、異なる方法も、アプリケーションサーバ102とクライアントデバイスとの間で双方向に送信されるパケットを同定する適切な方法である限り、使用され得る。また、複数のクライアントデバイス104が、1つのアプリケーションサーバ102と通信するときも、あるいは、1つのクライアントデバイス104が複数のアプリケーション102と通信するときも、本発明は、サーバ状態オブジェクトを同定するために使用され得る。
【0032】
したがって、本発明の開示は、本発明の範囲を例示するものであって、限定するものではなく、本発明の範囲は以下の請求項で示される。
【図面の簡単な説明】
【0033】
【図1】図1は、本発明の一実施形態に従って、サーバ状態オブジェクトを同定するシステムのアーキテクチャを示すブロック図である。
【図2】図2は、本発明の一実施形態に従って、サーバ状態オブジェクトを同定する方法を示す流れ図である。
【図3】図3は、名前−値のペアを示す図である。
【図4】図4は、サーバとクライアントデバイスとの間の双方向送信される名前−値のペアを同定するステップを示す図である。

【特許請求の範囲】
【請求項1】
通信プロトコルに基づくネットワーク上で、サーバとクライアントデバイスとの間で送信されるパケット間のサーバ状態オブジェクトを同定する方法であって、該方法は、
該パケット中の複数のデータオブジェクトに対するエントロピメジャを計算することと、
該複数のデータオブジェクトのエントロピメジャに従って、該複数のデータオブジェクトから候補データオブジェクトを選択することと、
該候補データオブジェクトの少なくとも1つを、該少なくとも1つの候補データオブジェクトが該サーバと該クライアントデバイスとの間で双方向に送信されることに応答して、サーバ状態オブジェクトとして同定することと
を包含する、方法。
【請求項2】
エントロピメジャを計算することは、
前記データオブジェクトを圧縮することと、
該圧縮データオブジェクトの該エントロピメジャを計算することと
を包含する、請求項1に記載の方法。
【請求項3】
前記データオブジェクトを圧縮することは、
同じ名前フィールドを有する該データオブジェクトを連結することと、
圧縮アルゴリズムを用いて、該連結データオブジェクトを圧縮することと
を包含する、請求項2に記載の方法。
【請求項4】
前記圧縮アルゴリズムは、エントロピベースの圧縮アルゴリズムである、請求項3に記載の方法。
【請求項5】
前記圧縮データオブジェクトの前記エントロピメジャを計算することは、前記圧縮連結データオブジェクトの値フィールドの合計サイズを、前記同じ名前フィールドを有するデータオブジェクトの合計数で割ることを包含する、請求項3に記載の方法。
【請求項6】
前記少なくとも1つの候補データオブジェクトが、前記サーバと前記クライアントデバイスとの間で双方向に送信されたことは、
前記通信プロトコル下にある関連パケットを、該サーバから該クライアントデバイスに送信された第一のパケットのグループと、該クライアントデバイスから該サーバに送信された第二のパケットのグループとに分けることと、
前記少なくとも1つの候補データオブジェクトは、該第一のパケットのグループと該第二のパケットのグループとの双方に含まれるかどうかを判断することと
によって判断される、請求項1に記載の方法。
【請求項7】
前記関連パケットは、前記通信プロトコル下の関連メッセージに対応するパケットである、請求項6に記載の方法。
【請求項8】
通信プロトコルに基づくネットワーク上で、サーバとクライアントデバイスとの間で送信されるパケット間のサーバ状態オブジェクトを同定する方法であって、該方法は、
該パケットを複数の名前−値のペアに構文解析することと、
同じ名前を有する名前−値のペアのエントロピを計算することと、
該サーバ状態オブジェクトに対する候補として、閾値より高いエントロピを有する名前−値のペアを選択することと、
該候補が、該サーバと該クライアントデバイスとの間で双方向に送信されたかどうかを判断することと、
該候補の少なくとも1つを、該少なくとも1つの候補が該サーバと該クライアントデバイスとの間で双方向に送信されたことに応答して、サーバ状態オブジェクトとして同定することと
を包含する、方法。
【請求項9】
同じ名前を有する前記名前−値のペアの前記エントロピを計算することは、
該同じ名前を有する該名前−値のペアを圧縮することと、
該圧縮名前−値のペアの該エントロピを計算することと
を包含する、請求項8に記載の方法。
【請求項10】
前記同じ名前を有する前記名前−値のペアを圧縮することは、
該同じ名前を有する該名前−値のペアの値フィールドを連結することと、
圧縮アルゴリズムを用いて、該名前−値のペアの該連結値フィールドを圧縮することと
を包含する、請求項9に記載の方法。
【請求項11】
前記圧縮アルゴリズムは、エントロピベースの圧縮アルゴリズムである、請求項10に記載の方法。
【請求項12】
前記圧縮名前−値のペアの前記エントロピを計算することは、前記名前−値のペアの前記圧縮連結値フィールドの合計サイズを、前記同じ名前を有する該名前−値のペアの合計数によって割ることを包含する、請求項10に記載の方法。
【請求項13】
前記候補が、前記サーバと前記クライアントデバイスとの間で双方向に送信されたかどうかを判断することは、
前記通信プロトコル下にある関連パケットを、該サーバから該クライアントデバイスに送信された第一のパケットのグループと、該クライアントデバイスから該サーバに送信された第二のパケットのグループとに分けることと、
前記候補は、該第一のパケットのグループと該第二のパケットのグループとの双方に含まれるかどうかを判断することと
を包含する、請求項8に記載の方法。
【請求項14】
前記関連パケットは、前記通信プロトコル下の関連メッセージに対応するパケットである、請求項13に記載の方法。
【請求項15】
通信プロトコルに基づくネットワーク上で、サーバとクライアントデバイスとの間で送信されるパケット間のサーバ状態オブジェクトを同定するシステムであって、該システムは、
該サーバと該クライアントデバイスとの間に結合され、両者間で送信されたパケットを複数のデータオブジェクト間で送信されたパケットを複数の名前−値のペアに構文解析するための構文解析モジュールと、
該構文解析モジュールに結合され、該データオブジェクトを受信し、該データオブジェクトがサーバ状態オブジェクトであるかどうかを
該データオブジェクトのエントロピメジャを計算することと、
該複数のデータオブジェクトのエントロピメジャに従って、該複数のデータオブジェクトから候補データオブジェクトを選択することと、
該候補データオブジェクトの少なくとも1つを、該サーバと該クライアントデバイスとの間で双方向に送信される該少なくとも1つのデータオブジェクトに応答して、サーバ状態オブジェクトとして同定することと
によって判断する解析モジュールと
を備える、システム。
【請求項16】
前記構文解析モジュールは、前記解析モジュールによって提供されるルールに従って、前記サーバと前記クライアントデバイスとの間で送信される前記パケットをフィルタリングするファイアウォールとして動作する、請求項15に記載のシステム。
【請求項17】
前記構文解析モジュールは、前記解析モジュールによって提供されるデータ収集パラメータに従って、前記サーバと前記クライアントデバイスとの間で送信される前記パケットに関するデータを収集する、請求項15に記載のシステム。
【請求項18】
前記データオブジェクトが前記構文解析モジュールから受信されるとき、該データオブジェクトがサーバ状態オブジェクトであるかどうかを判断するために、前記解析モジュールは、該データオブジェクトをリアルタイムで処理する、請求項15に記載のシステム。
【請求項19】
前記解析モジュールに結合されたストレージモジュールをさらに備え、
該解析モジュールは、前記受信したデータオブジェクトを該ストレージモジュールの中に格納し、該データオブジェクトがサーバ状態オブジェクトであるかどうかを判断するために、該格納されたデータオブジェクトをバッチで処理する、請求項15に記載のシステム。
【請求項20】
前記解析モジュールは、前記データオブジェクトの前記エントロピメジャを
該データオブジェクトを圧縮することと、
該圧縮データオブジェクトの該エントロピメジャを計算することと
によって計算する、請求項15に記載のシステム。
【請求項21】
前記解析モジュールは、前記データオブジェクトを
同じ名前フィールドを有する該データオブジェクトを連結することと、
圧縮アルゴリズムを用いて、該連結データオブジェクトを圧縮することと
によって圧縮する、請求項20に記載のシステム。
【請求項22】
前記圧縮アルゴリズムは、エントロピベースの圧縮アルゴリズムである、請求項21に記載のシステム。
【請求項23】
前記解析モジュールは、前記圧縮連結データオブジェクトの値フィールドの合計サイズを、前記同じ名前フィールドを有するデータオブジェクトの合計数で割ることによって、前記圧縮データオブジェクトの前記エントロピメジャを計算する、請求項21に記載のシステム。
【請求項24】
前記解析モジュールは、前記少なくとも1つの候補データオブジェクトが、前記サーバと前記クライアントデバイスとの間で双方向に送信されたことを
前記通信プロトコル下にある関連パケットを、該サーバから該クライアントデバイスに送信された第一のパケットのグループと、該クライアントデバイスから該サーバに送信された第二のパケットのグループとに分けることと、
前記少なくとも1つの候補データオブジェクトは、該第一のパケットのグループと該第二のパケットのグループとの双方に含まれるかどうかを判断することと
によって判断する、請求項15に記載のシステム。
【請求項25】
前記関連パケットは、前記通信プロトコル下の関連メッセージに対応するパケットである、請求項24に記載のシステム。
【請求項26】
通信プロトコルに基づくネットワーク上で、サーバとクライアントデバイスとの間で送信されるパケット間のサーバ状態オブジェクトを同定するシステムであって、該システムは、
該サーバと該クライアントデバイスとの間に結合され、両者間で送信されたパケットを複数の名前−値のペアに構文解析するための構文解析モジュールと、
同じ名前を有する該名前−値のペアのエントロピを計算することと、
該サーバ状態オブジェクトに対する候補として、閾値より高いエントロピを有する該名前−値のペアを選択することと、
該サーバと該クライアントデバイスとの間で双方向に送信されたかどうかを判断することと、
該候補の少なくとも1つは、該少なくとも1つの候補が該サーバと該クライアントデバイスとの間で双方向に送信されたとの判断に応答して、サーバ状態オブジェクトであると判断することと
によって判断する解析モジュールと
を備える、システム。
【請求項27】
前記構文解析モジュールは、前記解析モジュールによって提供されるルールに従って、前記サーバと前記クライアントデバイスとの間で送信される前記パケットをフィルタリングするファイアウォールとして動作する、請求項26に記載のシステム。
【請求項28】
前記構文解析モジュールは、前記解析モジュールによって提供されるデータ収集パラメータに従って、前記サーバと前記クライアントデバイスとの間で送信される前記パケットに関するデータを収集する、請求項26に記載のシステム。
【請求項29】
前記名前−値のペアが前記構文解析モジュールから受信されるとき、該名前−値のペアがサーバ状態オブジェクトであるかどうかを判断するために、前記解析モジュールは、該名前−値のペアをリアルタイムで処理する、請求項26に記載のシステム。
【請求項30】
前記解析モジュールに結合されたストレージモジュールをさらに備え、
該解析モジュールは、該ストレージモジュールの中に前記受信した名前−値のペアを格納し、該名前−値のペアがサーバ状態オブジェクトであるかどうかを判断するために、該格納された名前−値のペアをバッチで処理する、請求項26に記載のシステム。
【請求項31】
前記解析モジュールは、同じ名前を有する前記名前−値のペアの前記エントロピを
該同じ名前を有する該名前−値のペアを圧縮することと、
該圧縮名前−値のペアの該エントロピを計算することと
によって計算する、請求項26に記載のシステム。
【請求項32】
前記解析モジュールは、前記同じ名前を有する前記名前−値のペアを
該同じ名前を有する該名前−値のペアの値フィールドを連結することと、
圧縮アルゴリズムを用いて、該名前−値のペアの該連結値フィールドを圧縮することと
によって圧縮する、請求項31に記載のシステム。
【請求項33】
前記圧縮アルゴリズムは、エントロピベースの圧縮アルゴリズムである、請求項32に記載のシステム。
【請求項34】
前記解析モジュールは、前記圧縮名前−値のペアの前記エントロピを
該名前−値のペアの前記圧縮連結値フィールドの合計サイズを、前記同じ名前を有する該名前−値のペアの合計数によって割ること
によって計算する、請求項32に記載のシステム。
【請求項35】
前記解析モジュールは、前記候補が前記サーバと前記クライアントデバイスとの間で双方向に送信されたことを
前記通信プロトコル下にある関連パケットを、該サーバから該クライアントデバイスに送信された第一のパケットのグループと、該クライアントデバイスから該サーバに送信された第二のパケットのグループとに分けることと、
前記候補は、該第一のパケットのグループと該第二のパケットのグループとの双方に含まれるかどうかを判断することと
によって判断する、請求項26に記載のシステム。
【請求項36】
前記関連パケットは、前記通信プロトコル下の関連メッセージに対応するパケットである、請求項35に記載のシステム。
【請求項37】
コンピュータ可読媒体上に格納され、通信プロトコルに基づくネットワーク上でサーバとクライアントデバイスとの間で送信されるパケット間のサーバ状態オブジェクトを同定する方法を実行するように適合されたコンピュータプログラム製品であって、該方法は、
該パケット中の複数のデータオブジェクトに対するエントロピメジャを計算することと、
該複数のデータオブジェクトのエントロピメジャに従って、該複数のデータオブジェクトから候補データオブジェクトを選択することと、
該候補データオブジェクトの少なくとも1つを、該少なくとも1つの候補データオブジェクトが該サーバと該クライアントデバイスとの間で双方向に送信されることに応答して、サーバ状態オブジェクトとして同定することと
を包含する、コンピュータプログラム製品。
【請求項38】
エントロピメジャを計算することは、
前記データオブジェクトを圧縮することと、
該圧縮データオブジェクトの該エントロピメジャを計算することと
を包含する、請求項37に記載のコンピュータプログラム製品。
【請求項39】
前記データオブジェクトを圧縮することは、
同じ名前フィールドを有する該データオブジェクトを連結することと、
圧縮アルゴリズムを用いて、該連結データオブジェクトを圧縮することと
を包含する、請求項38に記載のコンピュータプログラム製品。
【請求項40】
前記圧縮データオブジェクトの前記エントロピメジャを計算することは、前記圧縮連結データオブジェクトの値フィールドの合計サイズを、前記同じ名前フィールドを有するデータオブジェクトの合計数で割ることを包含する、請求項39に記載のコンピュータプログラム製品。
【請求項41】
前記少なくとも1つの候補データオブジェクトが、前記サーバと前記クライアントデバイスとの間で双方向に送信されたことは、
前記通信プロトコル下にある関連パケットを、該サーバから該クライアントデバイスに送信された第一のパケットのグループと、該クライアントデバイスから該サーバに送信された第二のパケットのグループとに分けることと、
前記少なくとも1つの候補データオブジェクトは、該第一のパケットのグループと該第二のパケットのグループとの双方に含まれるかどうかを判断することと
によって判断される、請求項37に記載のコンピュータプログラム製品。
【請求項42】
コンピュータ可読媒体上に格納され、通信プロトコルに基づくネットワーク上でサーバとクライアントデバイスとの間で送信されるパケット間のサーバ状態オブジェクトを同定する方法を実行するように適合されたコンピュータプログラム製品であって、該方法は、
該パケットを複数の名前−値のペアに構文解析することと、
同じ名前を有する名前−値のペアのエントロピを計算することと、
該サーバ状態オブジェクトに対する候補として、閾値より高いエントロピを有する名前−値のペアを選択することと、
該候補が、該サーバと該クライアントデバイスとの間で双方向に送信されたかどうかを判断することと、
該候補の少なくとも1つを、該少なくとも1つの候補が該サーバと該クライアントデバイスとの間で双方向に送信されたことに応答して、サーバ状態オブジェクトとして同定することと
を包含する、コンピュータプログラム製品。
【請求項43】
同じ名前を有する前記名前−値のペアの前記エントロピを計算することは、
該同じ名前を有する該名前−値のペアを圧縮することと、
該圧縮名前−値のペアの該エントロピを計算することと
を包含する、請求項42に記載のコンピュータプログラム製品。
【請求項44】
前記同じ名前を有する前記名前−値のペアを圧縮することは、
該同じ名前を有する該名前−値のペアの値フィールドを連結することと、
圧縮アルゴリズムを用いて、該名前−値のペアの該連結値フィールドを圧縮することと
を包含する、請求項43に記載のコンピュータプログラム製品。
【請求項45】
前記圧縮名前−値のペアの前記エントロピを計算することは、前記名前−値のペアの前記圧縮連結値フィールドの合計サイズを、前記同じ名前を有する該名前−値のペアの合計数によって割ることを包含する、請求項44に記載のコンピュータプログラム製品。
【請求項46】
前記候補が、前記サーバと前記クライアントデバイスとの間で双方向に送信されたかどうかを判断することは、
前記通信プロトコル下にある関連パケットを、該サーバから該クライアントデバイスに送信された第一のパケットのグループと、該クライアントデバイスから該サーバに送信された第二のパケットのグループとに分けることと、
前記候補は、該第一のパケットのグループと該第二のパケットのグループとの双方に含まれるかどうかを判断することと
を包含する、請求項42に記載のコンピュータプログラム製品。
【請求項47】
通信プロトコルに基づくネットワーク上で、サーバとクライアントデバイスとの間で送信されるパケット間のサーバ状態オブジェクトを同定するシステムであって、該システムは、
該サーバと該クライアントデバイスとの間に結合され、両者間で送信されたパケットを複数のデータオブジェクトに構文解析するための構文解析手段と、
該構文解析手段に結合され、該データオブジェクトを受信し、該データオブジェクトがサーバ状態オブジェクトであるかどうかを
該データオブジェクトのエントロピメジャを計算することと、
該複数のデータオブジェクトのエントロピメジャに従って、該複数のデータオブジェクトから候補データオブジェクトを選択することと、
該候補データオブジェクトの少なくとも1つを、該サーバと該クライアントデバイスとの間で双方向に送信される該少なくとも1つのデータオブジェクトに応答して、サーバ状態オブジェクトとして同定することと
によって判断する解析手段と
を備える、システム。
【請求項48】
通信プロトコルに基づくネットワーク上で、サーバとクライアントデバイスとの間で送信されるパケット間のサーバ状態オブジェクトを同定するシステムであって、該システムは、
該サーバと該クライアントデバイスとの間に結合され、両者間で送信されたパケットを複数の名前−値のペアに構文解析するための構文解析手段と、
該構文解析手段に結合され、該名前−値のペアを受信し、該名前−値のペアがサーバ状態オブジェクトであるかどうかを
同じ名前を有する該名前−値のペアのエントロピを計算することと、
該サーバ状態オブジェクトに対する候補として、所定の閾値より高いエントロピを有する該名前−値のペアを選択することと、
該サーバと該クライアントデバイスとの間で双方向に送信されたかどうかを判断することと、
該候補の少なくとも1つは、該少なくとも1つの候補が該サーバと該クライアントデバイスとの間で双方向に送信されたとの判断に応答して、サーバ状態オブジェクトであることを判断することと
によって判断する解析手段と
を備える、システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公表番号】特表2008−507010(P2008−507010A)
【公表日】平成20年3月6日(2008.3.6)
【国際特許分類】
【出願番号】特願2007−518111(P2007−518111)
【出願日】平成17年6月13日(2005.6.13)
【国際出願番号】PCT/US2005/020919
【国際公開番号】WO2006/011987
【国際公開日】平成18年2月2日(2006.2.2)
【出願人】(506422696)テロス, インコーポレイテッド (1)
【Fターム(参考)】