(57)【要約】  メッセージ処理エンジンは、仮想ネットワークインターフェース及び物理的ネットワークインターフェースの間のインターフェースを橋渡しすることにより、発信メッセージ及び着信メッセージを傍受しうる。メッセージ処理エンジンは、ポリシーに基づいてパケットが処理されることになるか否かを判定しうるＲＡＷパケット分析器を有し、その後にプロトコルの第１のセットを使用してパケットをデコードし、デコードされた状態で変換（ｔｒａｎｓｌａｔｉｏｎ）を実行し、その後に同じ又は異なるプロトコルのセットを使用してパケットをエンコードしうる。メッセージ処理エンジンは、２つの他の互換性のないデバイスが通信することを可能にすると同時に、セキュリティプロトコルを含む多様なプロトコルを同様に構成された別のデバイスとの通信に適用するための変換を実行するのに使用しうる。多くの実施形態において、ＲＡＷパケット分析器は管理権限でのサービスでありうるが、デコーダー、エンコーダー及び変換器はユーザー権限で動作しうる。
2011511559.tif 000002
【特許請求の範囲】
【請求項１】
仮想ネットワークインターフェース上で第１のパケットを受信するステップ（３０２）と、
前記第１のパケットを分析するステップ（３０４）、及び前記第１のパケットが第１のパケットタイプであることを判定するステップであって、前記第１のパケットタイプは第１のポリシーで定義されているステップと、
第１のプロトコルのセットを使用して前記第１のパケットをデコードするステップ（３１０）と、
第２のプロトコルのセットを使用して前記第１のパケットをエンコードするステップ（３２０）と、
物理的ネットワークインターフェース上で前記第１のパケットを送信するステップ（３２４）とを備えたことを特徴とする方法。
【請求項２】
前記物理的ネットワークインターフェース上で第２のパケットを受信するステップと、
前記第２のパケットを分析するステップ、及び前記第２のパケットが前記第１のパケットタイプであることを判定するステップと、
第２のプロトコルのセットを使用して前記第２のパケットをデコードするステップと、
第１のプロトコルのセットを使用して前記第２のパケットをエンコードするステップと、
前記仮想ネットワークインターフェース上で前記第２のパケットを送信するステップとをさらに備えたことを特徴とする請求項１に記載の方法。
【請求項３】
前記第２のパケットはマルチキャストパケットであることを特徴とする請求項２に記載の方法。
【請求項４】
前記第１のパケットはマルチキャストパケットであることを特徴とする請求項１に記載の方法。
【請求項５】
前記受信するステップ及び前記分析するステップは、管理権限を有する処理により実行され、前記デコードするステップ及び前記エンコードするステップは、ユーザー権限を有する処理により実行されることを特徴とする請求項１に記載の方法。
【請求項６】
前記デコードするステップの後で前記エンコードするステップの前に、前記第１のパケットの変換を実行するステップをさらに備えたことを特徴とする請求項１に記載の方法。
【請求項７】
前記プロトコルの第１のセット及び前記プロトコルの第２のセットは、同じプロトコルのセットであることを特徴とする請求項４に記載の方法。
【請求項８】
前記仮想ネットワークインターフェース上で第３のパケットを受信するステップと、
前記第３のパケットを分析するステップ、及び前記第３のパケットが第２のパケットタイプであることを判定するステップであって、前記第２のパケットタイプは前記第１のポリシーで定義されないステップと、
前記物理的ネットワークインターフェース上で前記第３のパケットを送信するステップとをさらに備えたことを特徴とする請求項１に記載の方法。
【請求項９】
前記第１のポリシーは第１のアプリケーションに関連付けられて前記第１のパケットタイプを定義し、第２のポリシーは第２のアプリケーションに関連付けられて前記第２のパケットタイプを定義することを特徴とする請求項８に記載の方法。
【請求項１０】
請求項１に記載の方法を実行するよう構成されたコンピューター実行可能命令を備えることを特徴とするコンピューター読み取り可能な媒体。
【請求項１１】
仮想ネットワークインターフェース（１０６）と、
第１のパケットタイプ、第１のプロトコルのセット及び第２のプロトコルのセットについての識別メカニズムを備える第１のポリシー（１１１）と、
第１のパケットを受信し、前記第１のパケットが第１のパケットタイプのであることを判定するよう構成されたＲＡＷパケット分析器であって、前記第１のパケットタイプは第１のポリシーで定義されているＲＡＷパケット分析器（１１０）と、
前記パケットのデコードされた状態を作成するために、前記第１のプロトコルのセットを使用して、前記第１のパケットをデコードするよう構成されたデコーダー（１１４）と、
前記第２のプロトコルのセットを使用して、前記デコードされた状態から前記第１のパケットをエンコードするよう構成されたエンコーダー（１１２）と、
物理的ネットワーク接続（１０８）とを備えることを特徴とするデバイス。
【請求項１２】
前記ＲＡＷパケット分析器は前記仮想ネットワークインターフェースから前記第１のパケットを受信するよう構成されることを特徴とする請求項１１に記載のデバイス。
【請求項１３】
前記ＲＡＷパケット分析器は前記物理的ネットワークインターフェースから前記第１のパケットを受信するよう構成されることを特徴とする請求項１１に記載のデバイス。
【請求項１４】
前記第１のパケットはマルチキャストパケットであることを特徴とする請求項１１に記載のデバイス。
【請求項１５】
前記デコードされた状態における前記第１のパケットを変換するよう構成された変換器
をさらに備えることを特徴とする請求項１１に記載のデバイス。
【請求項１６】
前記プロトコルの第１のセット及び前記プロトコルの第２のセットは同じプロトコルのセットであることを特徴とする請求項１５に記載のデバイス。
【請求項１７】
前記第１のパケットタイプは第１のアプリケーションと関連付けられることを特徴とする請求項１１に記載のデバイス。
【請求項１８】
第２のパケットタイプ、第３のプロトコルのセット及び第４のプロトコルについての識別メカニズムを備える第２のポリシーであって、前記第２のパケットタイプが第２のアプリケーションに関連付けられている第２のポリシーをさらに備えることを特徴とする請求項１１に記載のデバイス。
【請求項１９】
前記デコーダーは前記第３のプロトコルのセットを使用してデコードするようさらに構成され、前記エンコーダーは前記第４のプロトコルのセットを使用してエンコードするようさらに構成されることを特徴とする請求項１８に記載のデバイス。
【請求項２０】
前記ＲＡＷパケット分析器は管理権限で動作し、前記エンコーダー及び前記デコーダーはユーザー権限で動作していることを特徴とする請求項１１に記載のデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
様々なデバイス間の通信は、通信への参加者の各々が実装を試みようとする多様なプロトコルの採用により、多くの場合に容易となる。
【背景技術】
【０００２】
プロトコルは、様々な参加者により開発されうる様々なサービス及びアプリケーション間の標準化された通信を確立するのに使用されうる。いくつかのプロトコルは、メッセージの送信を完了することを保証するか、メッセージ送信をスピードアップするために他のデバイスからメッセージを取得することを防ぐか、又は他の任意の目的のために使用されうる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
プロトコルが様々な参加者によって実装されるとき、プロトコル仕様書又はある参加者が実装するかもしれないし、他の参加者が実装しないかもしれない仕様書内の選択的な特徴のいくつかの誤った解釈が多くの場合に存在する。小さな相違でさえ、いくつかの通信に失敗を引き起こしうる。
【課題を解決するための手段】
【０００４】
メッセージ処理エンジンは、仮想ネットワークインターフェース及び物理的ネットワークインターフェースの間のインターフェースを橋渡しすることにより、発信メッセージ及び着信メッセージを傍受することができる。メッセージ処理エンジンは、ポリシーに基づいてパケットが処理されることになるか否かを判定することができるＲＡＷパケット分析器を有し、その後にプロトコルの第１のセットを使用してパケットをデコードし、デコードされた状態で変換（ｔｒａｎｓｌａｔｉｏｎ）を実行し、その後に同じ又は異なるプロトコルのセットを使用してパケットをエンコードすることができる。メッセージ処理エンジンは、２つの他の互換性のないデバイスが通信することを可能にすると同時に、セキュリティプロトコルを含む多様なプロトコルを同様に構成された別のデバイスとの通信に適用するための変換を実行するのに使用することができる。多くの実施形態において、ＲＡＷパケット分析器は管理権限でのサービスであってもよいし、デコーダー、エンコーダー及び変換器はユーザー権限で動作してもよい。
【０００５】
この課題を解決するための手段は、発明を実施するための形態において以下でさらに説明される簡略化された形式における概念の選択を紹介するために提供される。この課題を解決するための手段は、特許請求された主題の主要な特徴又は本質的な特徴を特定することを意図せず、特許請求された主題の範囲を限定するのに使用されることも意図しない。
【図面の簡単な説明】
【０００６】
【図１】メッセージ処理エンジンを有するシステムを示す実施形態の概略図である。
【図２】メッセージ処理エンジンを有するデバイスを有するネットワークを示す実施形態の概略図である
【図３】メッセージを処理する方法を示す実施形態のフロー図である。
【発明を実施するための形態】
【０００７】
メッセージ処理エンジンは、着信メッセージ及び発信メッセージを傍受及び処理するために仮想ネットワークインターフェースで動作することができる。メッセージ処理エンジンはアプリケーションレベルで多様な変換又は修正を実行できると同時に、メッセージを送信するのに使用されるプロトコルを修正することが可能でもよい。
【０００８】
ある用途シナリオにおいて、メッセージ処理エンジンは、いずれのアプリケーションに任意の修正又は変更をすることなく、２つのアプリケーション間で送信されたメッセージを修正するのに使用されてもよい。このような用途は、ソースコードが利用可能でない古いシステム又はアプリケーションソフトウェアと接続するためのメカニズムであってもよい。
【０００９】
別の用途シナリオにおいて、２つ以上のデバイスは、メッセージを作成するアプリケーションにより適用されなかった多様なセキュリティプロトコルを使用して互いに接続するためにメッセージ処理エンジンを使用してもよい。このような一実施形態は、発信メッセージ及び着信メッセージに１つ以上のセキュリティ関連プロトコルを適用してもよい。
【００１０】
メッセージ処理エンジンはアプリケーションとのネットワーク通信をキャプチャーするのに仮想ネットワークインターフェースを使用する。仮想ネットワークインターフェースは物理的ネットワークインターフェースとして機能しうるが、ソフトウェア又はファームウェアにおいて実行されてもよい。仮想ネットワークインターフェースは、多様な処理を実行するために仮想ネットワークインターフェースが発信パケット及び着信パケットをキャプチャー及びルーティングすることが可能でもよい。
【００１１】
仮想ネットワークインターフェースにまたがる通信は、メッセージ処理エンジンを通して管理されてもよいし、物理的ネットワーク接続に渡されてもよい。同様に物理的ネットワーク接続上で受信されたメッセージは、同様の方式で分析及び処理されてもよい。ポリシーのセットは、着信パケット及び発信パケットの処分のために、ＲＡＷパケット分析器により使用されてもよい。
【００１２】
分析において使用されるポリシーは、パケット及びプロトコル、変換、又は指定のパケットに適用されうる他の処理のための識別メカニズムを含んでもよい。いくつかの実施形態において、いくつかの様々なポリシーは様々なタイプのメッセージに適用されてもよい。
【００１３】
メッセージ処理エンジンは、パケットに関連付けられうる多様なプロトコルを使用してパケットをデコードすることによってパケットを開封してもよいし、アプリケーションレベルでパケットに含まれるメッセージを処理してもよい。いくつかの場合において、複数のパケットはアプリケーションレベルのメッセージを再作成するために統合されうる。他の場合において、単一のパケットは多くのアプリケーションレベルのメッセージを含みうる。
【００１４】
一旦、アプリケーションレベルのメッセージが１つ以上のパケットから形成されると、多様な変換が実行されうる。アプリケーションレベルのメッセージは、ネットワーク上でメッセージを転送するのに使用しうる任意のプロトコル、エンコーディング又は他の処理に先立って、アプリケーションによって作成された形式と同じ形式であってもよい。アプリケーションレベルでの処理の後、メッセージ及びパケットに適用された発信ポリシーから１つ以上のパケットが作成されてもよい。パケットはその後、物理的ネットワークインターフェースに沿って送信されてもよい。着信パケットは上記処理を逆にすることによって扱われてもよい。
【００１５】
メッセージ処理エンジンが変換動作を実行する用途シナリオにおいて、デコーディングプロトコル及びエンコーディングプロトコルは同じプロトコルであってもよい。いくつかの他の用途シナリオにおいて、デコーディングプロトコル及びエンコーディングプロトコルは異なるプロトコルであってもよい。
【００１６】
本明細書を通して、似た参照番号は図面の説明を通して同じ要素を示す。
【００１７】
要素が「接続」又は「結合」と呼ばれるとき、それらの要素は直接に接続若しくは一緒に結合できるか、又は１以上の仲介要素も存在してもよい。
【００１８】
主題は、デバイス、システム、方法及び／又はコンピュータープログラム製品として具体化されてもよい。したがって、主題のいくつか又はすべてはハードウェア及び／又はソフトウェア（ファームウェア、常駐ソフトウェア、マイクロコード、状態マシン、ゲートアレイ等を含む）において具体化されてもよい。さらに主題は、命令実行システムに使用されるか又は接続されて媒体に具体化されるコンピューター使用可能又はコンピューター読み取り可能なプログラムコードを有するコンピューター使用可能又はコンピューター読み取り可能な記憶媒体上のコンピュータープログラム製品の形式を取ってもよい。この文書の背景において、コンピューター使用可能又はコンピューター読み取り可能な媒体は、命令実行システム、装置若しくはデバイスによる使用のためか又は接続されて、プログラムを含むか、格納するか、通信するか、伝播する又は転送できる任意の媒体であってもよい。
【００１９】
コンピューター使用可能又はコンピューター読み取り可能な媒体は、例えば、電子、磁気、光、電磁気、赤外線又は半導体システム、装置、デバイス又は伝播媒体であってもよいが、これらに限定されない。例としてであり限定ではなく、コンピューター読み取り可能な媒体はコンピューター記憶媒体及び通信媒体を含んでもよい。
【００２０】
コンピューター記憶媒体は、コンピューター読み取り可能な命令、データ構造、プログラムモジュール又は他のデータなどの情報の格納のための任意の方法又は技術において実装された、揮発性及び不揮発性、取り外し可能及び固定の媒体を含む。コンピューター記憶媒体は、所望の情報を格納するのに使用でき、命令実行システムによってアクセスできる、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ若しくは他のメモリ技術、ＣＤ−ＲＯＭ、ＤＶＤ（ｄｉｇｉｔａｌ ｖｅｒｓａｔｉｌｅ ｄｉｓｋ）又は他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ又は他の磁気ストレージディスク若しくは任意の他の媒体を含むがこれらに限定されない。コンピューター使用可能又はコンピューター読み取り可能な媒体は、プログラムを、例えば紙又は他の媒体の光スキャンを介して電子的にキャプチャーでき、その後コンパイルし、解釈し、必要ならば適当な方式で処理し、その後コンピューターメモリに格納できるように、プログラムが印刷された紙又は別の適切な媒体でありえることに留意されたい。
【００２１】
通信媒体は典型的に、コンピューター読み取り可能な命令、データ構造、プログラムモジュール、又は搬送波若しくは他の転送メカニズム等の変調データ信号における他のデータを具体化し、任意の情報搬送媒体を含む。「変調データ信号」という用語は、１以上の特性セットを有するか、又は信号内の情報をエンコードするような方式で変更される信号を意味する。例としてであり限定ではなく、通信媒体は、有線ネットワーク又は直接有線接続などの有線媒体、及び音波、ＲＦ、赤外線及び他の無線媒体などの無線媒体を含む。上述の任意の組み合わせも、コンピューター読み取り可能な媒体の範囲内に含まれなければならない。
【００２２】
主題がコンピューター実行可能命令の一般的な内容において具体化されるとき、実施形態は１以上のシステム、コンピューター又は他のデバイスにより実行されるプログラムモジュールを含んでいてもよい。一般に、プログラムモジュールは、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造等を含み、特定のタスクを実行するか、又は特定の抽象データタイプを実装する。典型的には、プログラムモジュールの機能性を、多様な実施形態において望むように結合又は分散してもよい。
【００２３】
図１はメッセージ処理エンジンを有するシステムを示す実施形態１００の概略図である。実施形態１００は、メッセージ処理エンジンの多様な特性、特徴及び用途を強調するのに使用される簡略化された例である。
【００２４】
図１の概略図は、システムの機能的コンポーネントを図示し、システムのハードウェア及びソフトウェアコンポーネントと直接に対応していない場合もある。いくつかの場合において、コンポーネントはハードウェアコンポーネント、ソフトウェアコンポーネント又はハードウェア及びソフトウェアの組み合わせであってもよい。ハードウェアコンポーネントは、多くの様々なタスクを実行するために適用可能な汎用のコンポーネント、又はとても特有な機能を実行するために最適化されうる特別に設計されたコンポーネントを含んでもよい。コンポーネントのいくつかはアプリケーションレベルのソフトウェアであってもよいし、他のコンポーネントはオペレーティングシステムレベルのコンポーネントであってもよい。いくつかの場合において、あるコンポーネントの別のコンポーネントへの接続は、２つ以上のコンポーネントが単一のハードウェアプラットフォーム上で動作する閉鎖的な接続であってもよい。別の場合において、接続は長い距離に及ぶネットワーク接続上でなされてもよい。各実施形態は、上述の多様な機能を達成するための様々なハードウェア、ソフトウェア及び相互接続アーキテクチャを使用してもよい。
【００２５】
実施形態１００は、コンピューターシステム等のデバイス全体の一部としてのメッセージ処理エンジン１０２の機能的コンポーネントの図示である。実施形態１００に図示されるコンポーネントは単一のデバイスの一部であってもよい。
【００２６】
アプリケーション１０４は、動作の通常のコースを通して仮想ネットワークインターフェース１０６にパケットを送ってもよい。仮想ネットワークインターフェース１０６は物理的ネットワーク接続１０８をシミュレートするソフトウェア構成であってもよい。アプリケーション１０４が物理的ネットワークインターフェース１０８ではなく仮想ネットワークインターフェース１０６を通してネットワーク通信を送信及び受信するような方式で、仮想ネットワークインターフェース１０６をインストールしてもよい。
【００２７】
物理的ネットワーク接続１０８は、動作デバイスの外部の物理接続上でメッセージを送信及び受信するネットワーク接続であってもよい。多くの実施形態においてコンピューターデバイスは配線で接続されたイーサーネット接続、無線接続、又はネットワークへのいくつかの他の物理インターフェースを有してもよい。
【００２８】
メッセージ処理エンジン１０２は、仮想ネットワークインターフェース１０６と物理ネットワーク接続１０８との間の着信メッセージ及び発信メッセージを処理してもよい。入ってくるパケット及び出ていくパケットのそれぞれは、メッセージ処理エンジン１０２によりパケットが処理されることになるか否かを判定するために分析されてもよい。メッセージが処理されることにならない場合、メッセージは仮想ネットワークインターフェース１０６間で物理的ネットワーク接続１０８に転送されてもよい。
【００２９】
実施形態１００における矢印は、アプリケーション１０４から送信された発信パケットが、どのようにメッセージ処理エンジン１０２を通して処理されうるかを図示する。メッセージ処理エンジン１０２は着信パケットについて類似する処理を適用してもよい。
【００３０】
アプリケーション１０４がメッセージを送信するとき、メッセージは複数パケットに分割されてもよい。いくつかの場合において、単一のパケットは多くのアプリケーションレベルのメッセージを含んでもよい。
【００３１】
仮想ネットワークインターフェース１０６に送信されたパケットは、ポリシー１１に基づいてパケットを分析及び処分しうるＲＡＷパケット分析器１１０によって分析されてもよい。ＲＡＷパケット分析器１１０は物理的ネットワーク接続１０８にパケットを転送するか、又はメッセージ処理エンジン１０２を通してパケットを送ってもよい。
【００３２】
ＲＡＷパケット分析器１１０は、処理するパケットのタイプ並びにパケットのそのタイプで実行されうる多様な処理及び変換を定義しうるポリシー１１１のセットを使用してもよい。ＲＡＷパケット分析器１１０により使用される識別子はパケットの任意の特性であってもよい。いくつかの場合において、パケットのヘッダー又はパケットの中身はパケットのタイプを判定するために検査されてもよい。他の場合において、目的アドレス、ポート又は他のパラメータ等の多様なルーティング情報を使用してもよい。
【００３３】
いくつかの実施形態は、アプリケーション１０４及び外部デバイス又はサービス間の通信セッションを確立し、セッションに関連付けられたパケットを識別してもよい。このセッションは多様なハンドシェイク又は他の通信を通して確立されてもよい。セッションを確立する間、ＲＡＷパケット分析器１１０はセッションに関連付けられたパケットがメッセージ処理エンジン１０２により処理されることになることを判定してもよい。
【００３４】
発信パケットが仮想ネットワークインターフェース１０６上で受信され、パケットが処理されることになる判定が行われるとき、パケットはバッファー１１２に置かれてもよい。バッファー１１２は、ＲＡＷパケット分析器１１０がメッセージ処理エンジン１０２の残りと同期しないで動作することを可能としてもよい。
【００３５】
パケットはその後デコーダー１１４に進み、パケットはアプリケーション１０４によって使用されるプロトコルのセットを使用してデコードされてもよい。デコーディング処理は、パケットの中身を元のアプリケーションレベルのメッセージに戻すためにパケット上で実行されたいかなる変換、パッケージング又は設定も取り除いてもよい。
【００３６】
多くのアプリケーションは、２つ以上の処理間の通信を容易にするために使用されうる多様なプロトコルを使用する。このようなプロトコルの例は、ＴＣＰ、ＳＯＡＰ、及び多くの他のプロトコルを含む。いくつかのプロトコルがメッセージが完全に到達して失われた部分がないことを保証するのに使用しうる一方で、他のプロトコルは暗号化しうるか、又はさもなければ侵入者からメッセージ内のデータを保護してもよい。いくつかの実施形態において、多くのプロトコルはアプリケーション１０４によってパケットに適用されてもよい。
【００３７】
いくつかの例において、メッセージ処理エンジン１０２をパケットに関連付けられたプロトコルを変更するのに使用し、アプリケーションレベルでパケットを変換しなくてもよい。このような例において、フィルター１１６はデコーダー１１４からエンコーダー１２２への発信パケットを変換してもよい。
【００３８】
パケットに対してアプリケーションレベルの変換が示されているとき、パケットはメッセージアシミレーター１１８に転送されてもよい。メッセージアシミレーター１１８は、場合によって、複数のパケットからアプリケーションレベルのメッセージを作成してもよいし、単一のパケットから複数のアプリケーションレベルのメッセージを作成してもよい。いくつかの場合において、メッセージを作り上げるパケットをデコードすることにより、順番にパケットを配列することにより、及びデコードされたパケットの中身を一緒に統合することにより、アプリケーションレベルのメッセージを作成してもよい。
【００３９】
変換器１２０は、パケットに関連付けられたポリシーに１１１において定義されるように、アプリケーションレベルのメッセージに任意のタイプの変換、変形又は変更を実行しうる。いくつかの場合において、小さい変更はアプリケーション層メッセージのフォーマットになされてもよいし、一方で他の場合において、メッセージの総合的な変形が起こってもよい。それぞれの実施形態は成されうる様々なタイプの変更を有し、このような変更は複合的なアルゴリズム又は任意の他のメカニズムにより定義されてもよい。
【００４０】
変換器１２０がアプリケーション層メッセージを修正した後、メッセージは、パケットに変換され、エンコーダー１２２により同じ又は異なるプロトコルのセットでエンコードされ、バッファー１２４に入り、ＲＡＷパケット分析器１１０によって物理的ネットワーク接続１０８に送信されてもよい。
【００４１】
同じ用途シナリオにおいて、エンコーダー１２２は、パケットをデコードするためにデコーダー１１４がしたのと同じプロトコルを、パケットをエンコードするために適用しうる。他の実施形態において、様々なプロトコルのセットがデコーダー１１４だけでなくエンコーダー１２２によって適用されてもよい。いくつかの用途シナリオは本明細書において後に論じられる。
【００４２】
多くの実施形態において、仮想ネットワークインターフェース１０６は管理者又はカーネルレベルの権限で動作されるサービスであってもよい。多くのコンピューティング環境において、カーネルレベルのサービスは一般に高く権限化され、プログラミングに特別な配慮をして作成されうる。このような環境において、カーネルレベルのサービスにより可能にされる機能は、特にカーネルのサービスが強力な権限を有するとき、他のサービスとの干渉の問題を引き起こすことを避けるために制限されてもよい。
【００４３】
実施形態１００は、ＲＡＷパケット分析器１１０及び仮想ネットワークインターフェース１０６が管理者モード１２６又はカーネル処理でありうるように、構成されてもよい。メッセージ処理エンジン１０２の残っている部分も、アプリケーション１０４も、ユーザーモード１２８又はユーザー特有の権限で動作してもよい。ユーザーモード１２８及び管理者モード１２６処理の間の架け橋の役割を、バッファー１１２及びバッファー１２４が果たしてもよい。
【００４４】
この方式で処理を分割することにより、ポリシー１１１のセットは、メッセージ処理エンジン１０２又は物理的ネットワーク接続１０８を通してパケットをルーティングするために、ＲＡＷパケット分析器１１０により使用されてもよい。メッセージ処理エンジン１０２内の残っている処理は、アプリケーション１０４と同じユーザー権限で動作してもよい。このような実施形態において、多様な変換器１２０及びデコーダー１１４及びエンコーダー１２２により使用されるプロトコルが、ユーザー基準及びユーザーの許可設定によりインストールされ、動作し、ユーザー上で制御されてもよい。
【００４５】
発信パケットを扱うとして示されているが、実施形態１００は同様な様式で着信パケットを処理するのにも使用されてもよい。パケットが物理的ネットワーク接続１０８上で受信されるとき、ＲＡＷパケット分析器１１０はポリシー１１１を使用してパケットを分析し、仮想ネットワークインターフェース１０６に直接、又はメッセージ処理エンジン１０２を通してパケットをルーティングしてもよい。
【００４６】
着信メッセージはその後、エンコードされて、仮想ネットワークインターフェース１０６に、そしてその後アプリケーション１０４に渡される前に、デコーディング、フィルタリング、同化（アシミレーション）及び変換の多様なステップを通過してもよい。この方式においてメッセージ処理エンジン１０２は、着信メッセージ及び発信メッセージの両方に、プロトコル変更及びアプリケーションレベルの変換を提供することができる。
【００４７】
図２は、メッセージ処理エンジンを有するデバイス付きのネットワークを示す実施形態２００の概略図である。実施形態２００はネットワーク環境におけるメッセージ処理エンジンの多様な特性、特徴及び用途を強調するために使用される簡略化された例である。
【００４８】
図２の概略図は、システムの機能的なコンポーネントを図示し、システムのハードウェア及びソフトウェアコンポーネントに直接対応していない場合もある。いくつかの場合において、コンポーネントはハードウェアコンポーネント、ソフトウェアコンポーネント、又はハードウェア及びソフトウェアの組み合わせであってもよい。ハードウェアコンポーネントは、多くの異なるタスクを実行するのに適用可能な汎用のコンポーネント、又は非常に特殊な機能を実行するために最適化されうる特別に設計されたコンポーネントを含んでもよい。コンポーネントのいくつかはアプリケーションレベルのソフトウェアであってもよいし、他のコンポーネントはオペレーティングシステムレベルのコンポーネントであってもよい。いくつかの場合において、あるコンポーネントの別のコンポーネントへの接続は、２つ以上のコンポーネントが単一のハードウェアプラットフォーム上で動作している閉鎖的な接続であってもよい。他の場合において、長い距離の範囲のネットワーク接続上で接続がなされうる。各実施形態は、上述の多様な機能を達成するために、様々なハードウェア、ソフトウェア及び相互接続アーキテクチャを使用してもよい。
【００４９】
実施形態２００は、ネットワーク環境におけるメッセージ処理エンジンの様々な用途シナリオを図示する。デバイス２０２及びデバイス２０４はネットワーク２０８と接続し、それぞれがメッセージ処理エンジンを有してもよい。デバイス２０６はメッセージ処理エンジンなしでネットワーク２０８に接続してもよい。
【００５０】
デバイス２０２は、仮想ネットワークインターフェース２１２と通信するアプリケーション１２０を含むという点で実施形態１００と似ていてもよい。メッセージ処理エンジン２１６は着信メッセージ及び発信メッセージを処理し、仮想ネットワークインターフェース２１２及び物理的ネットワーク接続２１４間の橋渡しをすることができる。物理的ネットワーク接続２１４はネットワーク２０８及びデバイス２０２間の接続であってもよい。
【００５１】
同様に、デバイス２０４は、仮想ネットワークインターフェース２２０と通信するアプリケーション２１８を含みうるという点で実施形態１００と似ていてもよい。メッセージ処理エンジン２２４は着信メッセージ及び発信メッセージを処理し、仮想ネットワークインターフェース２２０及び物理的ネットワーク接続２２２間の橋渡しをすることができる。物理的ネットワーク接続２２２はネットワーク２０８及びデバイス２０４間の接続であってもよい。
【００５２】
デバイス２０６は、物理的ネットワーク接続２２８と直接に通信しうるアプリケーション２２６を有し、ネットワーク２０８に接続することができる。
【００５３】
実施形態２００はメッセージ処理エンジンについての多くの用途シナリオを図示するのに使用されてもよい。
【００５４】
ある用途シナリオにおいて、メッセージ処理エンジンを有するデバイスは、メッセージ処理エンジンを有さない別のデバイスに接続してもよい。このようなシナリオにおいて、メッセージ処理エンジンは２つのアプリケーション又はサービス間の変換を提供するために使用されてもよい。この変換はあるメッセージプロトコルから別のメッセージプロトコルへの逆であり、メッセージの中身へのアプリケーションレベルの変更も包含してもよい。
【００５５】
この用途シナリオにおいて、メッセージ処理エンジンは２つのアプリケーション又はサービス間で、これらのアプリーション又はサービスに変更を行うことなく橋渡し又は変換の役割を果たしてもよい。
【００５６】
例えば、デバイス２０６上のアプリケーション２２６は、第三者により提供され、インターネット上でホストされるウェブサービスであってもよい。アプリケーション２２６は、サービスを使用するクライアントデバイスと通信するための特有のプロトコルのセットを使用してもよい。この例において、デバイス２０２は、開発者がアプリケーション２２６と接続を望む古いアプリケーション２１０を有するクライアントデバイスであってもよい。この開発者は２つのアプリケーションを接続するためにメッセージ処理エンジン２１６により使用されうるポリシー２３０を作成してもよい。メッセージ処理エンジン２１６は、あるプロトコルのセットと共にアプリケーション２１０から発信メッセージを受信し、このメッセージをデコードし、アプリケーション２２６が受け入れられるプロトコルのセットでメッセージをエンコードしてもよい。同様に、アプリケーション２２６からのメッセージは、メッセージ処理エンジン２１６によって受信され、デコードされ、アプリケーション２１０によって期待されるプロトコルのセットを使用してエンコードされてもよい。
【００５７】
この用途シナリオにおいて、仮想ネットワークインターフェース２１２は、メッセージ処理エンジン２１６がアプリケーション２１０又はアプリケーション２２６を修正する必要なく着信メッセージ及び発信メッセージを傍受、分析及び修正することを可能にした。ポリシー２３０を定義することにより、開発者は、さもなければ通信することができないかもしれない２つのアプリケーション間の通信を可能にすることができる。ユーザーの視点から、ユーザーのアプリケーション２１０がリモートサービス２２６とのインターフェースをとることにより追加の機能性を有することを可能にするポリシー２３０を、ユーザーはインストール可能であってもよい。
【００５８】
多くのこのようなシナリオにおいて、メッセージ処理エンジン２１６は単にパケットへのプロトコル変更を提供してもよい。あるアプリケーションは特有のプロトコルのより古いバージョンを使用してもよいし、別のユーザーはより新しいバージョンを使用し、このバージョンは若干、互換性がなくてもよい。より新しいプロトコルは、例えば改善されたセキュリティのために使用されてもよい。このような変更は、技術の観点から比較的単純であってもよいが、より古いアプリケーション２１０がクライアントデバイス上で使用中であり、アプリケーション２２６においてリモートでホストされたサービスが互換性がないとき、代替の解決は、より古いアプリケーション２１０をアップグレードすることであってもよい。代わりに、より古いアプリケーション２１０がより古いプロトコルを使用して仮想ネットワークインターフェース２１２でメッセージを送り及び受信することを可能にすることをポリシー２３０が実装してもよいし、メッセージ処理エンジン２１６はネットワーク２０８での通信が新しいプロトコルに適合しうることを保証する。
【００５９】
いくつかのシナリオにおいて、メッセージ処理エンジン２１６は着信メッセージ及び発信メッセージのアプリケーションレベルの変換を提供してもよい。このようなシナリオは、２つのアプリケーションがアプリケーションレベル通信の２つの異なるバージョンを実装しようとするとき役に立ちうる。
【００６０】
別の用途シナリオにおいて、２つのデバイス上のメッセージ処理エンジンは、ＶＰＮ（Ｖｉｒｔｕａｌ  Ｐｒｉｖａｔｅ  Ｎｅｔｗｏｒｋ）又は他のポイントツーポイントのセキュリティメカニズムを使用することなく、デバイス間のセキュアな通信のために使用されてもよい。このような用途シナリオにおいて、デバイス２０２及びデバイス２０４のそれぞれは、ポリシー２３０及びポリシー２３２を有するメッセージ処理エンジン２１６及びメッセージ処理エンジン２２４をそれぞれ有する。いくつかの実施形態は、マルチポイント又はブロードキャストのメッセージ送信技術を用いてもよい。
【００６１】
ポリシー２３０及びポリシー２３２は、１つ以上のセキュリティプロトコルを他のデバイス宛の発信メッセージに適用し、セキュリティプロトコルを使用して着信メッセージをデコードするよう構成されてもよい。この方式で、デバイス２０２及びデバイス２０４の間のネットワーク２０８での多様な通信が、適切なポリシー２３０及びポリシー２３２を単に適用することにより、セキュアとなりうる。
【００６２】
図３はメッセージを処理するための方法を示す実施形態３００のフローチャート図である。実施形態３００は、発信メッセージを処理するために使用されうるステップのシーケンスの簡略化された例である。他の実施形態は様々な用語又は術語を使用し、追加のステップを含んでもよいし、単一のステップに２つ以上のステップを組み合わせてもよい。他の実施形態において、連続で図示したいくつかのステップは並列及び順番を逆にして実施されてもよい。
【００６３】
実施形態３００は発信メッセージを処理するための方法の一例である。着信メッセージは同様の方式で扱われてもよい。
【００６４】
ブロック３０２において、パケットは仮想ネットワークインターフェース上で受信されてもよい。処理の後、ブロック３２４において、パケットは物理的ネットワーク接続上で送信されてもよい。着信メッセージを扱う一実施形態において、パケットは、物理的ネットワーク接続上で受信され、仮想ネットワークインターフェース上で送信されてもよい。両方のタイプの実施形態は同じ基本方式でパケットを処理してもよい。
【００６５】
パケットは、ポリシーに反してブロック３０４において分析されてもよい。ポリシーは、メッセージ処理エンジンにより処理されうるパケットのタイプを定義してもよい。このようなポリシーは、パケットをデコード及びエンコードするのに使用される多様なプロトコルだけでなく、アプリケーションレベルのメッセージ上で実行されうる任意の変換を定義することもできる。
【００６６】
ブロック３０６においてパケットがポリシーに適合しない場合、ブロック３２４においてパケットは物理的ネットワーク接続上に送信される。このような場合において、パケットは処理されることなく仮想ネットワークインターフェースから物理的ネットワーク接続に単に移動されてもよい。
【００６７】
ブロック３０６においてパケットがポリシーに適合する場合、ブロック３０８においてパケットはバッファーに置かれてもよい。バッファーは、メッセージ処理エンジンの他の一部で、ブロック３０４及びブロック３０６の機能を実行しうるＲＡＷパケット分析器の非同期の動作を可能にすることができる。
【００６８】
ブロック３１０においてパケットはポリシーにおいて定義されるプロトコルを使用してデコードされてもよい。プロトコルは、転送、セキュリティ又は任意の他の理由をパケットに適用しうる任意のタイプのプロトコルであってもよい。
【００６９】
ブロック３１２においてパケットがアプリケーション層で変換されない場合、ブロック３２０において処理はエンコードに進む。
【００７０】
ブロック３１２においてパケットがアプリケーション層で変換される場合、ブロック３１４においてアプリケーションメッセージは１以上のパケットから作成されてもよい。いくつかの実施形態において、アプリケーションメッセージはいくつかのパケットで送信されてもよい。他の実施形態において、単一のパケットはいくつかのアプリケーションメッセージを含んでもよい。ブロック３１２において、多様なパケットがアプリケーション層のメッセージにバッファー、組織化及び集約される。
【００７１】
ブロック３１６においてメッセージは変換されてもよい。変換は、アプリケーション層のメッセージへの任意のタイプの操作、追加、除去、分析、変換又は他の変更を含んでもよい。
【００７２】
変換の後、ブロック３１８においてメッセージが送信のために準備されてもよい。例えば、メッセージは送信のために分離したパケットに分けられてもよい。いくつかの場合において、２つ以上のメッセージが単一のパケットに包含されてもよい。
【００７３】
ブロック３２０において、パケットはポリシーにおいて指定されたプロトコルを使用してエンコードされてもよい。エンコーディングプロトコルは、ブロック３１０においてパケットをデコードするのに使用されていたプロトコルと同一のプロトコルであってもよいが、同一のプロトコルでなくてもよい。
【００７４】
パケットはバッファー３２２に置かれ、ブロック３２４において物理的ネットワーク上で送信されてもよい。
【００７５】
実施形態３００は、発信パケットのキャプチャー、処理及び送信するのに使用されうる簡略化されたアルゴリズムである。
【００７６】
主題の前述の説明は、図示及び説明の目的で示されてきた。包括的であること又は開示された精密な形式に主題を限定することを意図せず、上述の教示に照らして他の修正及び変化が可能でありうる。発明の本質を最も良く説明するために実施形態は選ばれ説明され、この実質的なアプリケーションはしたがって、多様な実施形態においてこの発明を最も利用し、熟考された特定の用途に合うように多様な修正することを当業者に可能にする。添付の特許請求の範囲は、従来技術により限定される範囲で除外する他の代替の実施形態を含むよう構成されることを意図する。
【図１】
2011511559.tif 000003
【図２】
2011511559.tif 000004
【図３】
2011511559.tif 000005
【国際調査報告】
2011511559.tif 000006
2011511559.tif 000007