JP2007505409A - プロトコルゲートウェイでソフトウェアを動的に更新するシステム及び方法 - Google Patents
プロトコルゲートウェイでソフトウェアを動的に更新するシステム及び方法 Download PDFInfo
- Publication number
- JP2007505409A JP2007505409A JP2006526370A JP2006526370A JP2007505409A JP 2007505409 A JP2007505409 A JP 2007505409A JP 2006526370 A JP2006526370 A JP 2006526370A JP 2006526370 A JP2006526370 A JP 2006526370A JP 2007505409 A JP2007505409 A JP 2007505409A
- Authority
- JP
- Japan
- Prior art keywords
- message
- software module
- protocol
- old
- new
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/656—Updates while running
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Small-Scale Networks (AREA)
Abstract
ソフトウェアモジュールを動的に更新する方法は、既存のソフトウェアモジュールを置き換えるために新たなソフトウェアモジュールをロードするステップを含んでいる。古いソフトウェアモジュールが終了する前に、既存の通信セッションのような既存のルーチンに古いソフトウェアモジュールが関わっているか、既存の通信セッションのような既存のルーチンにより古いソフトウェアモジュールが使用されているかを判定するためにチェックが実行される。古いソフトウェアモジュールが使用されている場合、それが保存される。古いソフトウェアモジュールもはや使用されなくなると、それは終了され、全ての新たなルーチンが新たなソフトウェアモジュールを使用するために構成される。
Description
本発明は、デジタル通信ネットワークの分野全般に関し、より詳細には、インスタントメッセージ“Instant Message”プロトコルのようなダイナミックプロトコルを含むネットワークにわたる複数のプロトコルの管理に関する。
ローカル又はプロプライエタリネットワークに結合されるローカルのコンピュータ装置がネットワーク外にあるリモートコンピュータ装置と通信するとき、ネットワークは、侵入の試みを受け易くなる。侵入は、たとえば、ネットワークに不正にアクセスするのを誰かが試みるとして定義することができる。また、侵入は、ネットワークで利用可能なリソースに不正にアクセスしようとする、コンピュータウィルスのようなプログラムとしても定義することができる。たとえば、コンピュータウィルスは、リモートコンピュータ装置からローカルコンピュータ装置に送出することができ、ローカルコンピュータ装置で動作することが許可された場合、ネットワークのローカルコンピュータ装置にとって利用可能なリソースのような、他のローカルリソースと同様にローカルコンピュータ装置でリソースを調達することができる。別の例として、リモートコンピュータ装置は、適切なリソースへのそのローカルコンピュータ装置によりアクセスを防止すること、又はそのローカルコンピュータ装置への他によるアクセスを防止することによるような、ローカルコンピュータ装置へのサービスを拒否しようとして1セットのメッセージを生成するか、さもなければローカルコンピュータ装置でのサービスへの影響を有する。
あるケースでは、侵入は、ネットワークに向けられるメッセージにより生じ、他のケースでは、侵入は、コンピュータウィルスの制御下でネットワーク内のコンピュータ装置又はネットワークを不正に使用する雇用者のような、ネットワーク内部からのメッセージにより生じることができる。ネットワーク内のコンピュータ装置は、そのコンピュータ装置の悪意のあるユーザ、すなわち望まれないやり方でローカルリソースにアクセスしようとするユーザにより汚染される可能性がある。また、コンピュータ装置は、プログラムがローカルリソースへのアクセスを有する装置に無害に導入されたときのように、比較的無害なやり方で汚染される可能性があり、この場合、プログラム自身は、望まれないやり方でローカルリソースにアクセスしようとする機能を含んでいる。
それ故、特に、ネットワークのビジネスの観点に向けられないメッセージプロトコルをメッセージが使用しないとき、ネットワークでメッセージを扱うためのポリシールールを適用することが望まれることがある。たとえば、個人の使用が主要である多数のメッセージプロトコルが最近開発されているが、これら多数のメッセージプロトコルは、企業ネットワークのようなプロプライエタリネットワークへの道をなし、可能性のある乱用を受ける。これらメッセージプロトコルは、たとえば、インスタントメッセージ(IM)プロトコル、ピア・ツー・ピア(P2P)及び他のファイルシェアリングプロトコル、インタラクティブゲームプロトコル、分散コンピューティングプロトコル、HTTPトンネリング、及びコンピュータプログラムインタラクションの“NET”又は“SOAP”方法を含む。企業ネットワークに入るこれらメッセージプロトコルから生じる可能性のある乱用の幾つかは、企業ネットワーク内のクライアント装置へのコンピュータウィルスの偶発的な伝達、企業ネットワーク内のクライアント装置と企業ネットワーク外のクライアント装置との間のセンシティブ又はプロプライエタリな情報の伝達、及び企業ネットワーク内の他の許可されていないユーザの振る舞いである。
企業ネットワークにおけるメッセージにポリシールールを適用する従来の方法は、TCP(transmission control protocol)及びIP(Internet protocol)のような比較的下位のメッセージプロトコルに主に向けられる。記載されたプロトコルは、典型的に、ISO(International Organization for Standard)モデルで表されるように、上位のTCP/IPプロトコルスタックで実現される。しばしば、速度及び結果の観点で、たとえばファイアウォールサーバは、ISOモデルにおける上位レベルを含むメッセージプロトコルに対して効果的ではないか、企業ネットワークに対して比較的新しくしたがってファイアウォールサーバにより予想されないメッセージプロトコルに対して非常に効果的ではない。さらに、多くのかかるプロトコルは、メッセージプロトコルを認識及び途中で捕らえ、これらのメセージプロトコルにポリシールールを強制する新たなシステム及び方法を配置するのが実施可能なよりも迅速に、迅速に開発及び変更される。
プロトコル管理システムは、所定のメッセージプロトコルを検出し、ポリシールールを検出されたメッセージプロトコルに適用可能であり、ネットワークリソースの侵入、又は乱用を防止する。1態様では、プロトコルメッセージゲートウェイは、ISOプロトコルスタックのレイヤ7にあるプロトコルのような上位レベルのメッセージプロトコルに適用するために構成される。
別の態様では、プロトコル管理システムは、ネットワークに入出するメッセージを途中で捕らえ、メッセージに関連するメッセージプロトコルを調べるために構成される。メッセージプロトコルが定義されたプロトコルテンプレートに整合する場合、メッセージは、メッセージプロトコルのポリシールールが適用されるように、プロトコルメッセージゲートウェイを使用するのに強制される。
別の態様では、外部サーバが目的地にメッセージを再度向き直すように構成される場合、外部サーバへのネットワークから向かうメッセージの目的地を決定することができる。目的地がネットワーク内にあることが決定された場合、メッセージは、シンプルに、目的地に再び向けることができる。
本発明のこれらの特徴及び他の特徴、並びに実施の形態は、発明の詳細な説明の好適な実施の形態と題されるセクションで以下に記載される。本発明の特徴、態様及び実施の形態は、添付図面と共に記載される。
図1は、本明細書で記載されるシステム及び方法にかかるプロトコル管理システム100とインタフェースするために構成される企業ネットワーク110の例示的な実施の形態を示している。図1の例では、企業ネットワーク110は、ファイアウォール120を通して外部ネットワーク130に結合される。企業ネットワーク110は、企業ネットワーク110へのユーザ172のアクセスを提供するために構成される、少なくとも1つのローカルクライアント170に結合される。代替的な実施の形態では、プロキシサーバ(図示せず)は、外部ネットワーク130を企業ネットワーク110に結合するためのファイアウォール120に代わって使用することができる。
図1で分かるように、システム100は、プロトコルメッセージゲートウェイ122、プロキシエンフォーサ150、及び認証モジュール160を含んでいる。プロトコルメッセージゲートウェイ122、プロキシエンフォーサ150、及び認証モジュールの実施の形態、配置及びアプリケーションは、以下に更に詳細に記載される。
本明細書で記載されるように、企業ネットワーク110は、LAN(local area network)、WAN(wide area network)、ローカルスイッチネットワーク、又はパブリックスイッチネットワーク、他の通信技術又はその組み合わせのような、1以上の内部ネットワークを含んでおり、これらにより、企業ネットワーク110にローカルに結合される装置は互いに通信することができる。企業ネットワーク110がLANを含む1実施の形態が本明細書では記載されるが、企業ネットワーク110がLANを含むこと、又は特定のネットワークコンフィギュレーションが利用されるべきことについて、特に要件がない。
外部ネットワーク130は、インターネットを含むことができるが、他の実施の形態では、外部ネットワーク130は、イントラネット、エクストラネット、バーチャルプライベートネットワーク(VPN)、LAN、WAN、ローカルスイッチネットワーク又はパブリックスイッチネットワーク、他の通信技術、又はそれらの組み合わせを含むことができる。外部ネットワーク130がインターネットを含む実施の形態が本明細書で記載されるが、外部ネットワーク130がインターネット又は他の特定のタイプのネットワークを使用することの特定の要件が存在しない。
ファイアウォール120は、ISOレイヤのプロトコルモデルの選択されたレベルでフォーマット化されるメッセージを認識及び傍受し、それらのメッセージが所定のメッセージプロトコルフォーマットで受信されることが意図された情報を搬送するかを判定する選択されたフィルタリング基準に合致させるための従来の装置を含むことができる。
システム100の1実施の形態では、プロトコルメッセージゲートウェイ120、プロキシエンフォーサ150、及び認証モジュール160は、管理コンソール180に結合することができ、このコンソールは、システム100のターゲットとなるように定義された所定のプロトコルに関するパラメータ及びポリシーを設定するためにシステムアドミニストレータによる使用のために構成することができる。
さらに、所定の実施の形態では、プロトコルメッセージゲートウェイ122及びプロキシエンフォーサ150は、会社データベース125に結合することができ、このデータベースは、ユーザスクリーン名又はエイリアスを会社ネットワーク110内の特定のユーザと関連付けするために使用される。プロトコルメッセージゲートウェイ120、及びプロキシエンフォーサ150は、所定の実施の形態では、データトランスポートサービス190を含むロギング及びアーカイブサブシステムに結合される。データトランスポートサービス190は、プロトコルメッセージログ記録のためのリレーショナルモデルに変換し、ログを、リポート198が生成されるリポートデータベース196に記録するために構成される。所定の他の実施の形態では、かかるリポートは、アドミニストレータ192にメールされる電子メールに変換されるか、又は電子メールアーカイブサービス194により記録保管される。
図2は、更に詳細に記載されるプロキシエンフォーサ250を含む通信システム200を例示するブロック図である。また、システム200は、企業ネットワーク210、ファイアウォール220、外部ネットワーク230、プロトコルメッセージゲートウェイ240、プロキシエンフォーサ250、及びクライアント装置260のセットを含む。
以下に説明されるように、プロトコルメッセージゲートウェイ240は、所定のターゲットプロトコルを使用しているメッセージを認識し、ターゲットプロトコルに関連するポリシールールを実現するために構成される。これらターゲットプロトコルは、企業ネットワーク210に入り存在しつつ、検出を逃れるたとえばISOレベル7のようなハイレベルのプロトコルである。たとえば、これらのメッセージプロトコルは、企業ネットワーク210との監視されない通信コネクションを発見することがあり、メッセージが検出を逃れるのを可能にする。しかし、プロキシエンフォーサ250は、企業ネットワーク210に入出する全てのメッセージを傍受し、それらを、たとえばプロトコルメッセージゲートウェイ240の定義されたポートといった定義された通信コネクションを通して通過させる。このようにして、プロキシエンフォーサ250は、企業ネットワーク210に入出する全てのメッセージが要求されたようにプロトコルメッセージゲートウェイ240により処理されたことを保証し、これにより、適切なプロトコルルールをメッセージに適用することができる。
したがって、1実施の形態では、プロキシエンフォーサ250は、ファイアウォール220に結合され、企業ネットワーク210の内外にファイアウォール220を通して流れる個々のパケットを含むメッセージを受動的に聞くことができるように配置される。プロキシエンフォーサ250は、プロトコル定義ルール254のセットに基づく1セットのエンフォースメントルール252を含んでいる。それぞれのプロトコル定義ファイル254は、ターゲットプロトコルを認識し、複数のコネクションにわたり状態を管理するインテリジェントヒューリスティックをもつ実行可能なコードの部分である。たとえば、ターゲットプロトコルの各クラス又はサブタイプについて、個々の定義ファイル254が存在する。個々のプロトコル定義ファイル254は、他のプロトコル定義ファイル254とは異なることができる。さらに、エンフォースメントルール252とプロトコル定義ルール254のセットは、異なるターゲットプロトコル及びターゲットプロトコルを処理する異なるやり方に応じて必要により拡張することができる。1実施の形態では、更なるエンフォースメントルール252及びプロトコル定義ファイル254は、企業ネットワーク210とインタフェースされるサーバからダウンロードすることができる。したがって、システムアドミニストレータは、たとえば、新たなエンフォースメントルール252及び/又はプロトコル定義254及びアップデートプロキシエンフォーサ250を必要に応じて定義することができる。
プロトコル定義ファイル254は、プロトコルテンプレートとして作用する。プロキシエンフォーサ250は、したがって、企業ネットワーク210においてメッセージを傍受し、次いで、それらをプロトコル定義ファイル254で定義されたプロトコルテンプレートに比較する。整合が生じた場合、プロキシエンフォーサ290は、対応するエンフォースメントルール252を実現するために構成することができる。整合パターンに全体的に依存する慣習的なウィルス認識ソフトウェアとは異なり、プロキシエンフォーサ50は、ターゲットプロトコルが複数のポート及び/又はストリームを使用するときのように、2つの異なるメッセージ又は同じメッセージ内の2つの異なるブロックの相関をとる。これは、たとえば、プロトコル定義ファイル254が他のポート、パケット及びデータストリームに関連する情報を記憶するため、それ自身のデータ構造及びテーブルを形成するために構成することができるために達成することができる。
プロトコル定義ストリームは、メッセージのためのソースIPアドレス、メッセージのための目的地IPアドレス、メッセージに関連するポート番号、メッセージに埋め込まれたヘッダストリング又はデータ値の他のセット、又はその組み合わせの観点でターゲットプロトコルを識別するために構成することができる。プロキシエンフォーサ250は、メッセージの系列に応答してプロキシエンフォーサ250により保持される一貫された状態に応答して関心のあるプロトコルを検出するために構成することもできる。
動作において、リモートサーバ280は、外部ネットワーク230に結合され、クライアント装置260に対するターゲットプロトコル及びクライアント装置260からのターゲットプロトコルを使用してメッセージを送出及び受信するために構成することができる。たとえば、リモートサーバ280は、IMメッセージをクライアント装置260に伝達するために構成することができる。
プロキシエンフォーサ250は、たとえばファイアウォールを通して流れるときメッセージを受動的に聞くように構成される。プロキシエンフォーサ250は、たとえばエンフォースメントルールデータベース256に保持されているプロキシエンフォースメントルール252のセットを有する。プロキシエンフォーサ250がIMメッセージ、ターゲットプロトコルを傍受したとき、プロキシエンフォーサ250は、プロキシ定義ファイル254を使用してIMメッセージを整合する。プロキシエンフォーサ250は、関連されるエンフォースメントルール252を実行することができる。エンフォースメントルール252は、傍受されたIMメッセージと関連されるIMプロトコルの態様を無視するように構成することができる。たとえば、プロキシエンフォースメントルール252は、IMメッセージがプロトコルメッセージゲートウェイ240を通過することを必要とし、プロトコルメッセージゲートウェイ240は、全てのIMメッセージのプロキシとして作用するために構成される。
プロキシエンフォーサ250は、プロキシエンフォースメントルール252に従わない場合、メッセージが有効になるのを妨げるために構成される。メッセージが有効になるのをプロキシエンフォーサ250が防止する1つのやり方は、企業ネットワーク210又は外部ネットワーク230でメッセージが生じるか否かで、メッセージのサービスと目的地との間の通信コネクションを無くすことである。代替的な実施の形態では、プロキシエンフォーサ250は、メッセージに関連される通信コネクションをリセットするために構成することができる。他の実施の形態では、エンフォースメントルール252は、プロキシエンフォーサ250にメッセージに関連する情報を記憶させる。記録された情報は、以下に記載されるようにログ及びリポートを生成するために使用することができる。
図3は、プロキシエンフォーサ250のようなプロキシエンフォーサを使用して、ネットワークにおける通信トラフィックを管理する例となる方法を例示するフローチャートである。はじめに、ステップ302では、プロキシエンフォーサ250は、通信トラフィックを含むメッセージを受動的に聞くために構成することができる。次いで、ステップ304では、プロキシエンフォーサ250は、メッセージを傍受し、ステップ306で、メッセージに関連されるプロトコルを調べる。ステップ306でメッセージを調べることは、ソースIPアドレス、目的地IPアドレス、ポート番号、及びメッセージに関連するテキストのセットのような情報を決定するステップを含む。ステップ306では、プロキシエンフォーサ250は、たとえばステップ306で決定された情報に基づいて、プロトコルがターゲットプロトコルテンプレートに整合するかを判定する。テンプレートは、先に記載されたように、1以上のプロトコル定義ファイル254により定義される。ステップ303で整合があった場合、プロキシエンフォーサ250は、関連されるエンフォースメントルール252を実行するために構成することができる。整合がない場合、プロキシエンフォーサ250は、受動的に聞き続けるために構成される(ステップ302)。
プロトコル定義ファイル254は、ターゲットプロトコルを使用するメッセージと関連する値のパターンを定義する。したがって、プロキシエンフォーサ250は、メッセージトラフィックデータベース258に保持されるデータと値のパターンを整合するために構成される(ステップ303)。可能な例は、たとえば、ポート5190の全てのトラフィック、文字列“?ymessage”を含むポート8080の全てのトラフィック、たとえば%1をメッセージトラフィックデータベース258に保持される値である文字列“?pword”を含むポート8080の全てのトラフィック、たとえば5つの文字をIMプロトコルで使用されるインスタントメッセージの署名である到来するパケットヘッダにおける5つの文字列を含むポート5190の全てのトラフィックを整合することを含む。
所定の実施の形態では、エンフォースメントルール252及び整合のタイプに依存して、メッセージの更なる分析を実行することができる。これは、たとえば、メッセージがHTTPトラフィックとしてIMマスカレードであることを最初の分析が示唆する場合に特に有効である。
ステップ310では、プロキシエンフォーサ250は、複数のトリガされたエンフォース面とルール252のうちの1つと関連されるアクションを実行する。1実施の形態では、第一のトリガされたエンフォースメントルール252に関連するアクションのみが実行されるが、代替的な実施の形態では、1を超えるアクションが実行される場合があり、パフォーマンスのオーダが、エンフォースメントルール252がエンフォースメントデータベース256に保持されるオーダに応じる。
所定の実施の形態では、エンフォースメント252は、メッセージトラフィックデータベース258における可能な記録値を含めて、傍受されたメッセージに関して行う特定のアクション含む。先に説明されたように、エンフォースメントルール252に応答して行われるアクションの可能な例は、メッセージに関連するコネクションを無くし、ソケットコネクションをリセットし、(値が将来的に認識することができるように、整合されたとき、及び/又はログに値%1を記憶するとき、%1は文字列“?pword”)メッセージトラフィックデータベース258に値%1を記録し、メッセージテキストを分析し、並びに、メッセージ及びメッセージテキストが時間的に将来的なポイントで再び見ることができるように、1以上の個々のユーザと関連されるログにメッセージを記憶する。これは、音楽ファイルをダウンロードする従業員のようなネットワークの許可されていない使用のレコードを発生するために使用することができる。
したがって、プロキシエンフォーサ250、又は類似のプロキシエンフォーサ150は、プロトコルメッセージゲートウェイ122を通してターゲットプロトコルパスを使用するメッセージを保証するために構成される。図1で分かるように、ファイアウォール120は、「インスペクトスクリプト“inspect script”」とも呼ばれる認識パターン124のセットを記憶するために構成されるメモリ126を含むことができる。認識パターン124は、たとえば、ファイアウォール120のアドミニストレータにより選択することができ、ターゲットプロトコルを使用してファイアウォール120のメッセージに記述するのに十分な情報を含むことができる。
ファイアウォール120は、認識パターン124に応答して、それが処理するメッセージのうちの少なくとも幾つかをプロトコルメッセージゲートウェイ122に再び向けるために構成することができる。1実施の形態では、たとえば、メッセージは、従来のコンテンツベクトリングプロトコル(Content Vectoring Protocol)技術を使用して再び向け直すことができ、メッセージを処理し、プロトコルメッセージゲートウェイ122により更に処理されるべきことを判定した後、ファイアウォール12は、メッセージをプロトコルメッセージゲートウェイ120に伝送する。CVDを使用して再び向けること( redirection)は、図6と共に更に詳細に記載される。ひとたびプロトコルメッセージゲートウェイ122がメッセージを受けると、ターゲットプロトコルのポリシールールがメッセージを処理するために利用されることを保証する。
図4は、更に詳細にプロトコルメッセージゲートウェイ122の1実施の形態を例示する図である。分かるように、プロトコルメッセージゲートウェイ122は、プロトコルメッセージパーサ410、ゲートウェイマネージャ420、プロトコルアダプタ430のセット、ポリシーエンフォースメントモジュール440、認証モジュール450、更なるモジュールアダプタ460のセットを含むことができる。
1実施の形態では、プロトコルメッセージパーサ410は、先に記載されたように、従来のCVP技術を使用してファイアウォール120に結合される。プロトコルメッセージパーサ410は、ファイアウォール120からターゲットメッセージを受ける。プロトコルメッセージパーサ410は、受けたメッセージを分析し、受けたメッセージを処理するためにどのプロトコルアダプタの430のセットが適切であるかを判定する。プロトコルメッセージは、メッセージをゲートウェイマネージャ420に送出するために構成することができる。所定の実施の形態では、プロトコルメッセージゲートウェイ122は、1を超えるプロトコルメッセージパーサ410を含む。複数のプロトコルメッセージパーサの包含は、多数のターゲットメッセージを受け、精度又は応答時間のいずれかにおける実質的な品質低下なしに、それらのメッセージを分析して分散するプロトコルメッセージゲートウェイ122の能力を比較的容易かつ有効にスケーリングするのを可能にする。
ゲートウェイマネージャ420は、分析されたメッセージを受け、メッセージに関連する必要なデータ構造422を作成する。これらのデータ構造422のなかで、ゲートウェイマネージャ420は、メッセージイベント404を受信することに関心があることを示すプロトコルアダプタ430及びモジュールアダプタ460に公表する新たなメッセージイベント404を作成するために構成される。メッセージイベント404を公表するとき、ゲートウェイマネージャ420は、メッセージを処理するための適切なプロトコルアダプタ430のような分析されたメッセージに関連する情報、及び、ユーザ、ユーザ名、メッセージに関連するスクリーン名等のようなメッセージ関する他の識別情報を含む。
1実施の形態では、ゲートウェイマネージャ420は、プロトコルアダプタ430がメッセージを処理するために適切なアダプタであるかを判定する。適切なプロトコルアダプタ430は、メッセージ及びその関連するメッセージイベント404を受けることができ、メッセージが関連するメッセージプロトコルの処理パラダイムにどのようにフィットするかを判定することができる。たとえば、メッセージが送信者と受信者、すなわちIMメッセージの送信者と受信者との間のセッションを始める場合、プロトコルアダプタ430は、新たなセッションが生成されるべきかを判定し、新たなセッションイベント406を生成する。この例では、生成されゲートウェイマネージャ420により使用されるデータ構造422は、データ構造422の一部としてのセッションデータ構造を含んでおり、このセッションデータ構造は、関連するメッセージプロトコルを使用して、送出するクライアント装置170と受信するクライアント装置との間の通信セッションに関連する情報を含む。
メッセージを処理するために割り当てられるプロトコルアダプタ430は、特定のメッセージ又はメッセージイベント406に関心があることを示したプロトコルアダプタ430又はモジュールアダプタ460に発するためのゲートウェイマネージャ420に生成する新たなイベント406を送出するために構成される。
プロトコルメッセージゲートウェイ122における1を超えるプロトコルアダプタ430の包含は、多数のメッセージを受け、精度又は応答時間のいずれかにおける実質的な品質の低下なしにプロトコルメッセージゲートウェイ122でのメッセージを個々に処理するために、比較的容易かつ有効なプロトコルメッセージゲートウェイ122のスケーリングを可能にする。さらに、それぞれが類似のターゲットプロトコルのセットの異なる変形例について特に設計された、複数のプロトコルアダプタ430の使用により、クライアント装置170は、プロトコルメッセージゲートウェイ122の一部への特別の変換の必要なしに、及びクライアント装置170の変更の必要なしに、異なる変形例を使用して通信することが可能である。
さらに、ゲートウェイマネージャ420は、メッセージイベント406に関心を示すプロトコルアダプタ430又はモジュールアダプタ460にメッセージイベント406を発するために構成される。関心を示したプロトコルアダプタ430又はモジュールアダプタ460のなかには、たとえば、ポリシーエンフォースメントモジュール440、認証モジュール450、及び選択された他の更なるモジュールアダプタ460がある。
認証モジュール450は、認証モジュール450が関連するメッセージに関連されるスクリーン名を認証するように、セッションイベント406を受けるために構成される。以下に更に詳細に記載されるように、認証モジュール450は、かかるスクリーン名に関連する実際のユーザを固有に識別し、認証モジュール450に関連されるユーザデータベース454にその識別情報を記録し、セッションイベント406についてゲートウェイマネージャ420により保持されるデータ構造422における包含のためにゲートウェイマネージャ420にその識別情報を送出するために構成される。
プロトコルメッセージゲートウェイ122は、送出するクライアント装置170からプロトコルメッセージゲートウェイ122により受信されたとき、受信するクライアント装置170または外部ネットワーク130のクライアント装置にプロトコルメッセージゲートウェイ122により送出されたとき、メッセージをログする機能を提供するために構成されるロギングオジュール470を含む。言い換えれば、ロギング470は、プロトコルメッセージゲートウェイ122にわたり交換される全てのメッセージの一貫したログを保持するための機能を提供する。1実施の形態では、ロギングモジュール470は、ログをロギングデータベース474に出力するために構成され、データベースのサーチが行われ、リポートが生成される。別の実施の形態では、ロギングモジュール470は、暗号化されたフォーマットでロギングデータベース474にログ情報を出力するために構成され、ロギングデータベース474へのアクセスが割り当てられている、ロギングモジュール470に関連する装置170、又はおそらくゲートウェイ122に関連する装置170に対するロギングデータベース474における情報へのアクセスを制限する。アクセスは、実施の形態に依存して、情報を暗号化するために使用されるフォーマットについて適切な鍵を使用して割り当てられる。
ロギングモジュール470は、送出するクライアント装置170と受信するクライアント装置との間の感知しにくい通信を含むメッセージを記録するやり方を提供する。かかる持続性のある記録は、それらクライアント装置間の通信のフォレンジックな調査(forensic investigation)を可能にする。同様に、かかる持続性のある記録は、規制する要件、又はかかるクライアント装置間の通信の記録のメンテナンスを必要とする他の管理上のルールをとの互換線を可能にする。たとえば、送出するクライアント装置170及び受信するクライアント装置は、財政機関の部門におけるユーザにより制御される場合がある。規制する要件は、分析又は選択されたセキュリティの推薦に関する通信のような、かかるユーザ間の通信が所定のトピックスを回避することを要求する。かかる通信をログすることは、かかる要件に従うことを保証するのに役立つ。
プロトコルメッセージゲートウェイ122は、実施の形態に依存して、ポリシーエンフォースメントモジュール440を含むことができる。ポリシーエンフォースメントモジュール440は、それぞれのメッセージに関する情報を受信し、特定のメッセージが変更されていないフォームで送出するクライアント装置170から送出されるか否かを判定するために構成することができる。ポリシーエンフォースメントモジュール440は、以下を含む所定のクラスの情報のうちの少なくとも1つに応じて特定のポリシールールを含むポリシールールデータベース444へのアクセスを有する。送出するクライアント装置170の性質、受信するクライアント装置の性質、メッセージの性質、メッセージに含まれるキーワードを含む情報、メッセージが送出されたか又は受信されることが意図される週の日又は日時、メッセージがアタッチメント、ウィルスを含む実行可能なファイルアタッチメント等を含むか否かを含むメッセージのサイズ、選択された時間期間の間に送出するクライアント装置170により既に送出されか、又は受信するクライアント装置により既に受信されたトラフィックの量、若しくは、企業ネットワーク110の管理者により関連すると思われる他のクラスの情報。
所定の実施の形態では、プロトコルメッセージゲートウェイ122は、1以上の論理的に遠隔のアドミニストレータコンソール180から管理することができ、このコンソールは、企業ネットワーク110、外部のネットワーク130に結合される別のネットワーク、又は外部のネットワーク130それ自身に結合することができる。リモートアドミニストレータコンソール180の使用は、プロトコルメッセージゲートウェイ122に含まれる各種モジュール又はアダプタが遠隔の位置から動的に更新されるのを可能にする。たとえば、動的なポリシールールデータベース444は、実質的にリアルタイムでアドミニストレータコンソール180から動的に変更することができ、これにより、ターゲットプロトコルに関してリアルタイムの更新を可能にする。迅速に危険又は有害なプロトコルがポップアップすると、かかるプロトコルをできるだけ迅速に処理する必要性、かかる動的な更新の機能は非常に貴重となる。さらに、動的な更新を遠隔的に実行できる事実は、外部のネットワーク130でさえも、ネットワーク管理者はそれらの企業ネットワーク110をプロテクトするために常に存在することはできないので、より貴重となる。
図5は、プロトコルメッセージゲートウェイ122が企業ネットワーク110のようなネットワークにおける通信トラフィックを管理することができる例となる方法を例示するフローチャートである。はじめに、ステップ502では、プロトコルメッセージゲートウェイ122は、メッセージを受け、受けたメッセージをプロトコルメッセージパーサ410に送出し、このプロトコルメッセージパーサは、ステップ504でメッセージを分析し、メッセージの処理のためにどのプロトコルアダプタ430のセットが適しているかを判定する。ステップ504の一部として、プロトコルメッセージパーサ410、メッセージを更なる処理のためにゲートウェイマネージャ420に送出するために構成される。
ステップ506では、ゲートウェイマネージャ420は、分析されたメッセージを受け、メッセージに関連する必要なデータ構造422を作成する。先に述べたように、これらのデータ構造422のなかで、ゲートウェイマネージャ420は、メッセージイベント404を受信することに関心があることを示したプロトコルアダプタ430及びモジュールアダプタ460に発することができる、新たなメッセージイベントを作成するために構成される。先に更に述べたように、メッセージイベント404を発したとき、ゲートウェイマネージャ420は、メッセージを処理するために適切なプロトコルアダプタ430のようなメッセージに関連する情報、メッセージに関連するユーザ、ユーザ名、又はスクリーン名のようなメッセージに関する他の識別情報を含む。
ステップ508では、少なくとも1つのプロトコルアダプタ430は、メッセージを認識し、ステップ10で関連されるメッセージプロトコルの処理パラダイムにメッセージがどのようにフィットするかを判定する。ステップ512では、プロトコルアダプタ430は、メッセージが関連されるプロトコルについて処理パラダイムにどのようにフィットするかに応じて、適切であると思われる新たなイベント406を生成するために構成される。プロトコルアダプタ430により発生されたかかる新たなイベント406は、ステップ514でゲートウェイマネージャ122に送出することができる。
ステップ516では、ゲートウェイマネージャ122は、新たなイベント406をプロトコルアダプタ430、又はイベント406のクラスに関心を示した他のモジュールアダプタに発する。
認証モジュールアダプタ450は、ステップ518で、新たなセッションイベント406を受け、関連するメッセージに関連するスクリーン名を認証する。
ステップ520では、ロギングモジュールアダプタ470は、メッセージのためのロギングエントリを生成し、ロギングデータベース474にログを出力し、ロギングデータベースから、データベースのサーチが行われ、リポートが生成される。先に述べたように、ロギングモジュールアダプタ470は、暗号化された形式でロギングデータベース474のためのログ情報を出力する。
ステップ522では、ポリシーエンフォースメントモジュール440は、それぞれのメッセージに関する情報を受け、特定のメッセージが送出するクライアント装置170から受信するクライアント装置に変更されない形式で送出されるべきか否かで判定する。先に述べたように、ポリシーエンフォースメントモジュール440は、少なくとも1つの、おそらく1を超える多数のクラスのポリシー情報に応じて特定のポリシールールを含む、ポリシールールデータベース444へのアクセスを有する。
プロトコルメッセージゲートウェイ122を実現するとき、使用することができる幾つかの開発オプションが存在する。たとえば、図6は、先に記載されたCVP方法を使用したプロトコルメッセージゲートウェイ122の開発を例示したブロック図である。したがって、ファイアウォール620は、CVP API610を有し、このCVP APIは、プロトコルメッセージゲートウェイ122に結合される。ファイアウォール620は、このケースではプロトコルメッセージゲートウェイ122である、これを通して外部サーバが結合されるCVPインタフェースメカニズムを有するために構成される。ファイアウォール620は、たとえば通信ポート5190又は通信ポート2020から、CVP API610を使用したCVPインタフェースメカニズムを通してプロトコルメッセージゲートウェイ122にメッセージを向ける。
代替的に、図7は、本実施の形態で記載されるシステム及び方法の別の実施の形態に係るゲートウェイプロキシ方法を使用したプロトコルメッセージゲートウェイの開発を例示するブロック図である。図7の例では、プロトコルメッセージゲートウェイ122は、プロキシモジュール760を有する。一般に、プロキシは、サーバ又はサーバのコンポーネントであり、ローカルクライアント装置770のようなクライアントへのプロトコル及びクライアントからのプロトコルを含むメッセージをリモートサーバ780のようなサーバに中継するために構成される。プロキシは、外部ネットワーク730からの侵入からクライアント装置770をシールドするために使用される。また、プロキシは、プロトコルメッセージゲートウェイ122のようなファイアウォール720又はゲートウェイを通して制御されるポータルとして使用される。したがって、プロキシモジュール760が設けられたプロトコルメッセージゲートウェイ122は、プロトコルメッセージゲートウェイ122がプロキシとして機能するのを許容し、ネットワーク710内のメッセージを調べるために構成される。
しかし、それぞれのローカルクライアント装置770のそれぞれのクライアントアプリケーションは、プロキシとしてプロトコルメッセージゲートウェイ122を使用するために構成される。かかるコンフィギュレーションなしで、ローカルクライアント装置770は、パス744により示されるように、企業ネットワーク710、ファイアウォール720及び外部ネットワーク730を通過することで、リモートサーバ780と通信することができる。したがって、協力的でない、教育されていないユーザは、リモートサーバ780と通信するため、プロとコルメッセージゲートウェイ122及びパス744のようなダイレクトパスを快く又は未知にバイパスする。この可能性を回避するのを助けるため、ファイアウォール720は、プロキシ760から生じている通信を除く全ての通信をブロックするために構成される。残念なことに、従来のファイアウォール720は、所定のIMプロトコルのような多くのはっきりしないプロトコルを検出するために設けられていない。したがって、プロキシエンフォーサ750は、ネットワーク710を進むメッセージが先に記載されたようにプロトコルメッセージゲートウェイ122を使用するのを保証するために使用される。
したがって、許可されていないパスがブロックされて、ユーザは、プロトコルメッセージゲートウェイ122により許可されるように、パス742によりプロキシ742を介してリモートサーバ780に接続される。プロキシモジュール760を流れる全ての通信トラフィックにより、プロトコルメッセージゲートウェイ122は、ターゲットプロトコルの全てのトラフィックをモニタし、先に記載されたように、かかるプロトコルのポリシーを強制する。
便宜的に、ユーザがログオンするたびに、ローカルクライアント装置770でスクリプトが実行される。スクリプトは、装置770で実行している全てのクライアントアプリケーションがプロトコルメッセージゲートウェイ122をプロキシとして有することを保証する。スクリプトは、それらのプロキシを手動で構成する必要がない点で、追加された便利さをユーザに与える。さらに、スクリプトは、たとえば、アドミニストレータのワークステーション120を使用して遠隔的に更新される。
図8及び図9は、本実施の形態で記載されるシステム及び方法の代替的な実施の形態に係るドメイン名サービス(DNS)リディレクションを使用したプロトコルメッセージゲートウェイ122の開発を例示する。ネットワークにわたる通信において、クライアントは、ホスト名により識別されたサーバに伝達する。通信の始めで、クライアントは、ホスト名を解くためにネームサーバを要求する。発見された場合、ネームサーバは、サーバのネットワークアドレスに応答する。図8及び図9の実施の形態では、クライアントには、所定のサーバのホスト名が要求されるたびに、ゲートウェイ122のアドレスが与えられる。
図8は、DNSリディレクションを使用したプロトコルメッセージゲートウェイの配置を例示するブロック図を示しており、ここでは外部のネームサーバ890のみが使用される。外部のネームサーバ890は、外部ネットワーク830に接続されている。通常のDNS要求は、クライアント装置870から外部のネームサーバ890にパス840を通してなされる。プロキシエンフォーサ850又はファイアウォール820のいずれかを使用して、DNS要求はブロックされ、クライアント装置は、DNSプロキシとしてDNS要求のたえにプロトコルメッセージゲートウェイ122を使用するのを強制される。クライアント装置870がパス842を通して疑わしいホスト名を要求した場合、プロトコルメッセージゲートウェイ122は、それ自身が所有のアドレスを対応するアドレスとしてそのホストに与えるために構成され、これによりプロトコルメッセージゲートウェイ122がリモートサーバ880であると信じるようにクライアント870を騙す。次いで、プロトコルメッセージゲートウェイ122は、リモートサーバ880にメッセージを中継し、これとの通信を監視及び規制する。たとえばターゲットプロトコルに関連するサーバといった所定のサーバに属する1つであるとホスト名が知られていない場合、ゲートウェイ122は、パス844を通して外部のネームサーバ890に要求をなし、外部のネームサーバ890により与えられた応答でクライアント装置870に応答する。
図9は、DNSリディレクションを使用したプロトコルメッセージゲートウェイの配置を例示するブロック図を示しており、ここで内部のネームサーバ920は、企業ネットワーク910内の全てのクライアント装置970により使用される。内部のネームサーバ920は、たとえば、企業のネットワーク910に結合される。ローカルクライアント装置970は、サーバのホスト名のアドレスを解くためにパス950を通してDNS要求をなす。アドレスリストを最新に保持するため、内部のネームサーバ960は、パス942を通して、「ゾーントランスファ」と呼ばれる、外部ネットワーク930に接続される外部のネームサーバ990とのアドレスリストを周期的に同期させる。これを補うため、プロトコルメッセージゲートウェイ122は、パス940を介して、ターゲットプロトコルに関連するサーバのホスト名のDNS要求を向け直すために内部のネームサーバ960に代替のホスト名を供給する。
図8及び図9は、DNSリディレクション方法を使用してプロトコルメッセージゲートウェイ122を配置するシステムの例示的な実施の形態として与えられる。しかし、様々な等価な技術及びネームサーバのプロトコルは、DNSの騙し(spoofing)を通してリディレクション(redirection)を達成するために使用されることが理解される。
図10は、HTTPトンネル方法を使用したプロトコルメッセージゲートウェイ122の配置を例示したブロック図である。たとえば、図10に例示される配置が使用される。ファイアウォール1020は、HTTPを除いてインターネットへの全ての外部のアクセスをブロックするために構成される。かかる状況では、ファイアウォール1020は、外部ネットワーク1060に仮想的に存在するとして作用するように構成される、すなわち外部ネットワーク1060への、及び外部ネットワークからの全てのアクセスがDMZホスト1010を通して進む、「デリミタライズド ゾーン」(DMZ)ホスト1010に結合される。ローカルクライアント装置1070が外部ネットワーク1060に向けられたメッセージを送出するとき、メッセージは、たとえば先に記載された機能を実行するために構成される、プロトコルメッセージゲートウェイ122を通して最初に通過するように強制される。次いで、メッセージは、HTTPトンネルモジュール1050によりHTTPメッセージとして現れるように構成される。このように、たとえば、メッセージは、ファイアウォール1020を通して通過する。
HTTPトンネルモジュール1050は、スタンドアロンモジュールとして構成されるか、実施の形態に依存してプロトコルメッセージゲートウェイ122に組み込まれる。実際、HTTPトンネルモジュール1050は、本実施の形態で記載された機能を実行するために構成される限り、ファイアウォール1020内を含めて、企業ネットワークの何処かにある。
HTTPモジュール1050がメッセージをひとたびフォーマット化すると、たとえばDMZホスト1010の一部として含まれるウェブプロキシ1030にファイアウォール1020を通して通過される。ウェブプロキシ1030は、必要に応じてHTTPフォーマット化を元通りにし、外部ネットワーク1060の外部メッセージを送出するリレー1040にメッセージを送出するために構成される。
図11は、CVP方法を使用した配置に類似した、ISAアプリケーションフィルタ方法を使用してプロトコルメッセージゲートウェイ122の配置を例示するブロック図である。したがって、ファイアウォール1120は、ターゲットプロトコルを含むメッセージをプロトコルメッセージゲートウェイ122に送出するために構成されるISAアプリケーションフィルタ1110を含んでいる。
したがって、企業ネットワーク内、又は他のローカルネットワーク内のメッセージに関連するメッセージプロトコルを適合及び強制するために構成される。プロトコルメッセージゲートウェイ122は、先のパラグラフで記載されたものを含む様々なやり方で配置することができる。さらに、プロキシエンフォーサ150のようなプロキシエンフォーサは、かかるプロトコルメッセージゲートウェイ122を通過するためにネットワーク内にメッセージを強制的に進行させるため、企業ネットワーク内に配置することができる。プロキシエンフォーサ150は、メッセージにプロトコルメッセージゲートウェイ122を強制的に通過させるのが不可能なとき、通信コネクションを終了するために構成することができる。代替的に、フォーサプロキシエンフォーサ150は、プロトコルメッセージゲートウェイ122を通して強制されるメッセージに関連される情報をログし、及び/又はプロトコルメッセージゲートウェイ122を通して強制されるメッセージに関連するリポートを生成するため、強制的にプロトコルメッセージゲートウェイ122を通過されるメッセージに関連する通信コネクションをリセットするために構成される。
図1でわかるように、プロトコルマネージメントシステム100は、認証モジュール160を含むことができる。認証モジュール160は、企業ネットワーク110に通過されるか、企業ネットワークから通過される関連するメッセージのターゲットプロトコルにより使用される、スクリーン名又はエイリアスから企業ネットワーク110内のユーザのアイデンティティを識別するために構成される。たとえば、IMアプリケーションは、ユーザのためのエイリアスとしてスクリーン名を使用することがある。IMアプリケーションにより生成されたメッセージは、スクリーン名を含む。スクリーン名に関連する実際のユーザを識別するためにプロトコルメッセージゲートウェイ122を使用したポリシーを適合又は強制するときに有効である。認証モジュール160は、かかるアイデンティフィケーションを実行するために構成される。さらに、認証モジュール160は、たとえば既に識別されたスクリーン名を使用して同じユーザにより生成されたIMメッセージを処理するときに後に検索できるように、識別情報を記憶するために構成される。
図12は、本実施の形態で記載されるシステム及び方法に従って構成される認証モジュール160の1実施の形態を例示する図である。図12の例示的な実施の形態で分かるように、認証モジュール160は、プロトコルメッセージゲートウェイ122の一部を含むことができる。代替的に、認証モジュール160は、図1に例示されるように、プロトコルメッセージゲートウェイ122から離れてスタンドアロンモジュールとして作用する。かかる実現では、認証モジュール160は、たとえば、個別のサーバ、又は企業ネットワーク110とインタフェースされるローカルクライアント装置にロードされる。同様に、プロトコルメッセージゲートウェイ122は、ユーザデータベース1252を含むローカルサーバ1250を含んでいる。さらに、代替的な実施の形態では、ローカルサーバ1250及びユーザデータベース1252は、特定の実施の形態により必要とされるときは、プロとコルメッセージゲートウェイ122の外にある。ユーザデータベース1252は、企業ネットワーク110内のターゲットプロトコルにより使用される、ユーザ名とスクリーン名、又はエイリアスとの間の関連を保持するために構成される。
1実施の形態では、先に記載されたように、プロトコルメッセージゲートウェイ122は、クライアント装置170から傍受されるメッセージを受信可能なセッションマネージャを含む。セッションマネージャ1220は、傍受されたメッセージを分析し、これに関連するメッセージプロトコルを決定するために構成される。セッションマネージャ1220は、メッセージ又はこれに等価な情報をローカルサーバ1250に送出するために構成され、このローカルサーバは、メッセージの受信を示す新たなセッションイベント1244を生成するために構成される。所定の実施の形態では、複数のローカルサーバ1250が含まれ、たとえばそれぞれは、異なるタイプのターゲットプロトコルの処理のために適合される。
セッションマネージャ1220は、セッションイベント1244を、認証モジュール160のようなプロトコルメッセージゲートウェイ122内の1以上の他のモジュールに分散するために構成される。認証モジュール160は、セッションイベント1244を受信し、ネームリクエストメッセージ1246を認証サーバ128に送出し、ネームレスポンスメッセージ1242を認証サーバ128から受信する。
たとえば、認証モジュール160により認証サーバ128に送出されたネームリクエストメッセージ1246は、メッセージを送出しているクライアント装置170のためのIPアドレスを含んでいる。認証サーバ128により認証モジュール160に送出されたネームレスポンスメッセージ1242は、メッセージを送出するクライアント装置170に関連する固有なユーザ名を含んでいる。ひとたびネームレスポンスメッセージ1242が受信されると、認証モジュール160は、セッションイベント1244に関連するセッションがなおアクティブであるかをはじめに判定するために構成される。アクティブである場場合、認証モジュール160は、固有のユーザ名をメッセージに関連されるスクリーン名と関連付けし、ユーザデータベース1252に関連を記憶する。同じスクリーン名を含むその後のメッセージが受信されたとき、認証モジュール160は、メッセージを送出する実際のユーザを識別するため、ユーザデータベース1252から関連情報にシンプルにアクセスすることができる。
ポリシーエンフォースメントモジュール1230、プロトコルアダプタ1220、及びロギングモジュール1260は、ユーザの識別に基づいてメッセージを処理する。たとえば、ポリシーエンフォースメントモジュール1230は、メッセージを送出しているユーザのアイデンティフィケーションに基づいて、メッセージをそのオリジナルに意図された目的地に送出するのを可能にするかを判定する。
複数のスクリーン名は、1つのユーザと関連することができる。したがって、ユーザデータベース1292に記憶される識別情報は、特定のユーザにより使用される、全てのスクリーン名、又はエイリアスの完全な関連を含むことができる。
図13は、本実施の形態に記載されるシステム及び方法に従う、固有のユーザ名とスクリーン名を関連付けする例示的な方法を例示するフローチャートである。
はじめに、ステップ1302で、プロトコルメッセージゲートウェイ122は、受信されたメッセージを分析し、関連されるメッセージプロトコルを決定する。次いで、ステップ1309で、プロトコルメッセージゲートウェイ122は、メッセージをローカルサーバ1250に送出し、ステップ1306で、メッセージを送出しているユーザがローカルユーザであるか、すなわち企業ネットワーク130に結合されているかを判定する。送出しているユーザがローカルユーザである場合、ステップ1308で、ローカルユーザ1250は、メッセージに応答してセッションイベント1244を生成するために構成される。ユーザがローカルユーザではない場合、プロセスは、ステップ1312にジャンプする。
ステップ1310では、プロトコルメッセージゲートウェイ122内のローカルユーザ1250は、メッセージを送出しているユーザがローカルサーバ1250に知られているか、すなわちローカルサーバ1250により保持されているユーザデータベース1252におけるスクリーン名に関連するユーザ名であるかを判定する。メッセージを送出しているユーザがローカルユーザ1250に知られている場合、何も行われる必要がなく、ステップ1328で、メッセージは、これに応じて処理される。メッセージを送出しているユーザがローカルサーバ1250に知られていない場合、ステップ1312で、ローカルサーバ1250は、ゲストセッション、すなわちセッションを始めている新たなユーザによる新たなセッションを作成するために構成される。次いで、ステップ1314では、ローカルサーバ1250は、ユーザにとっての固有なユーザ名を得るのを認証サーバ128に要求する、認証サーバ128にメッセージを送出するために構成される。さらに、1実施の形態では、サーバ1250から認証サーバ128へのメッセージは、メッセージの送出者に関連するIPアドレスを含む。
ステップ1316では、認証サーバ128は、たとえばローカルサーバ1250から受信された送出されたIPアドレスと関連されるクライアント装置170を識別し、クライアント装置170のためのグローバルユーザID(GUID)を決定するためにそのクライアント装置170でのレジストリを問い合わせる。認証サーバ128はクライアント装置170でのレジストリを直接的に問い合わせるので、ローカルサーバ1290は、それらユーザによる協力の要件なしに、それらユーザの制御下でクライアント装置の協力の要件なしに、ユーザを固有に識別する情報を取得する。IMプロトコルを使用した個々のユーザがたとえば複数のスクリーン名を有する場合、ローカルサーバ1250は、それらのスクリーン名の全てを固有のユーザと関連付けする。
次に、ステップ1319では、認証サーバ128は、ドメインコントローラ132から、先に得られたGUIDに関連する固有のユーザ名を要求する。ドメインコントローラ132は、固有のユーザ名を送出することで応答するために構成される。
認証サーバ128は、ステップ1320で、ローカルサーバ1250に固有のユーザ名を送出するために構成される。
ステップ1322で、ローカルサーバ1250は、メッセージに関連されるセッションがなお進行中であるかを判定するために構成される。セッションが進行中でない、たとえばセッションがメッセージの送出者によりドロップされた場合、プロセスは終了する。セッションが進行中である場合、ステップ1324で、ローカルサーバ1250は、固有のユーザ名、及びそのスクリーン名との関連をユーザデータベース1252に記録する。
プロトコルメッセージゲートウェイ122は、実際のユーザによるそのメッセージの扱いを集合するために適合され、スクリーン名にかかわらず、それら実際のユーザは、それらの通信を選択する。したがって、個々のユーザが2つの個別のスクリーン名を有する場合、プロトコルメッセージゲートウェイ122は、2つの個別のスクリーン名を含むメッセージへの彼のメッセージのユーザ分離にもかかわらず、実際のユーザに関するポリシールールを実施する。たとえば、特定のポリシールールがそれぞれの時間当たり100のIMメッセージを超えるメッセージをユーザが送信又は受信するのを制限した場合、プロトコルメッセージゲートウェイ122は、1以上のスクリーン名の下で動作している個々の実際のユーザが、結合された全てのスクリーン名についてそれぞれの時間当たり100のIMメッセージを超えるメッセージを送信又は受信するのを制限する。
ユーザデータベース1252に記憶されるスクリーン名の関連情報は、企業ネットワーク110内のユーザにより生成されたメッセージが企業ネットワーク110内にある目的地に意図されるのを識別するために使用される。たとえば、企業ネットワーク110内の1ユーザ172は、IMメッセージを企業ネットワーク内の別のユーザ172に送出することができる。従来のシステムでは、最初のユーザから送出されたIMメッセージは、IMメッセージの目的地を判定するために構成されるリモートサーバに外部ネットワーク130を通してネットワーク110の外に通過させる必要がある。リモートサーバは、そのメッセージを、このケースでは企業ネットワーク110内の第二のユーザに送出する。本実施の形態に記載されるシステム及び方法に従って構成されるプロトコルメッセージゲートウェイ122は、目的地に関連されるスクリーン名を使用して、第二のユーザが企業ネットワーク110内にあり、企業ネットワーク110を出て、リモートサーバに到達するのを可能にするのとは反対に、第二のユーザにメッセージをシンプルに反映することを認識することができる。
したがって、プロトコルメッセージゲートウェイ122が新たなメッセージを受信したとき、メッセージのソースに関連するスクリーン名がユーザデータベース1252における固有のユーザ名と関連されているかを判定するだけではなく、プロトコルメッセージゲートウェイ122は、メッセージの目的地に関連されるスクリーン名がユーザデータベース1252における固有のユーザ名に関連されているかを判定するために構成されている。メッセージのソースに関連するユーザ名がユーザデータベース1252における固有のユーザ名と関連する場合、そのメッセージのポリシーエンフォースメントは、先に記載されたように実現される。メッセージのソースに関連するスクリーン名が固有なユーザ名と関連しない場合、スクリーン名と固有のユーザ名を関連付けする先に記載されたプロセスは、かかる関連付けを生成するために実現することができ、これは、ユーザデータベース1252に記憶することができる。
同様に、メッセージの目的地に関連されるセッション名が固有なユーザ名及びユーザデータベース1252と関連する場合、プロトコルメッセージゲートウェイ122は、固有のユーザ名と関連するクライアント装置170にメッセージをシンプルに反映するために構成される。このように、プロトコルメッセージゲートウェイ122は、メッセージが企業ネットワーク110、外部ネットワーク130からリモートサーバに進行して、戻るのを妨げる。この速度が企業ネットワーク110内のユーザ172間で伝達するだけでなく、企業ネットワーク110の外の通信と関連する問題を回避する。
目的地に関連するスクリーン名がユーザデータベース1252における固有のデータベースと関連しない場合、スクリーン名を固有のユーザ名と関連付けする類似のプロセスを実現することができるが、このケースでは、認証サーバ128は、目的地が企業ネットワーク110の外にあることができるため、関連付けをなすことができない場合がある。かかるケースでは、メッセージが反映されず、メッセージについて適切なポリシーエンフォースメントルールが実現される。
本実施の形態で記載されたシステム及び方法は、たとえば外部ネットワーク130を介してインタフェースされた複数のゲートウェイにわたり適用することができる。言い換えれば、企業は、複数のプロトコルメッセージゲートウェイを実現することができ、それぞれのゲートウェイ122は、他のゲートウェイ122及び関連するクライアント装置170に関連する情報を有する。したがって、ユーザデータベース1252に記憶される関連情報は、所定の実施の形態では、別のプロトコルメッセージゲートウェイ122に関連するユーザに関連する情報を有する。このケースでは、第一のプロトコルメッセージゲートウェイ122が、受信されたメッセージに関連されるスクリーン名又は目的地が関連されるプロトコルメッセージゲートウェイ122に順次に関連する固有のユーザ名と関連するとき、第一のプロトコルメッセージゲートウェイ122は、たとえば外部のネットワーク130及び関連されるプロトコルメッセージゲートウェイ122を通して、リモートサーバをバイパスして、目的地に直接的にメッセージをシンプルに送出するために構成される。
本実施の形態で記載されるシステム及び方法の別の実施の形態では、プロトコルメッセージゲートウェイ122は、ローカルクライアント装置122とリモートクライアント装置との間のプライバシートンネルを構築するために構成される。プライバシートンネルを考案するプロセスは、複数のプロトコルメッセージゲートウェイが含まれるときにメッセージを反映するプロセスに幾分類似しているが、このケースでは、リモートのクライアント装置は、プロトコルメッセージゲートウェイ122に順次に関連されるプロトコルメッセージゲートウェイに関連される必要がない。プロトコルメッセージゲートウェイ122は、リモートクライアント装置及び/又はこれと関連するプロトコルメッセージゲートウェイに関連する情報を知る必要がある。ローカルクライアント装置170がリモートクライアント装置に意図されるメッセージを生成したとき、プロトコルメッセージゲートウェイ122は、リモートクライアント装置及び/又はその関連されるプロトコルメッセージゲートウェイとの直接的な通信リンクをセットアップするために構成される。言い換えれば、プロトコルメッセージゲートウェイ122がローカルクライアント装置70により生成されたメッセージがダイレクトコネクション情報を処理するリモートクライアント装置について意図されることを認識したとき、リモートすなわちローカルサーバはバイパスされる。さらに、ローカルクライアント装置170とリモートクライアント装置との間の通信リンクは、リモートサーバを介した通信がセキュアでないときでさえセキュアにされる。
図14には、本実施の形態で記載されるシステム及び方法に係るプライバシートンネルを生成するための例示的な実施の形態を例示するフローチャートが示されている。はじめに、ステップ1402では、ローカルユーザ、又はリモートユーザは、プロトコルメッセージゲートウェイ122に信号を送出することでセキュアな通信セッションを始める1実施の形態では、ユーザは、“<secure>”のような特定の文字列を送信することでセキュアなセッションを始める。プロトコルメッセージゲートウェイ122は、ステップ1404で要求を観察し、ステップ1406でリモートクライアント装置にセキュアなシンクライアント(thin client)をダウンロードすることでセキュアな通信チャネルを発動する。リモートクライアント装置は、ステップ1408でシンクライアントを発動する。プロトコルメッセージゲートウェイ122は、ステップ1410で外部ネットワーク130を通してセキュアな通信チャネルを確立する。
プロトコルクライアント装置がリモートクライアント装置にメッセージを送出するとき、プロトコルメッセージゲートウェイ122は、ステップ1413でメッセージを傍受し、ステップ1414で、リモートクライアント装置で実行しているシンクライアントに送出する。
ユーザがセキュア通信を終了するのを望むとき、それらのクライアント装置は、ステップ1416でプロトコルメッセージゲートウェイ122に示される信号を送出する。1実施の形態では、セキュアなかかるセッションの終了は、“<endsecure>”のような文字列を使用して指定される。プロトコルメッセージゲートウェイ122は、ステップ1410で要求を受信し、セキュアな通信チャネルを終了する。終了に応じて、シンクライアントは、その実行を終了し、リモートクライアント装置は、ステップ1420でシンクライアントにより使用された全てのリソースを解放する。リモートクライアント装置は、ステップ1422でシンクライアント装置を削除する。
所定の実施の形態では、プロトコルメッセージゲートウェイ122は、ローカルクライアントからメッセージを傍受し、それらをリモートクライアント装置に送出する前に、1つのメッセージプロトコルから別のプロトコルに変換する。これは、たとえば、リモートクライアント装置とローカルクライアント装置が異なるメッセージプロトコルを使用する場合に有効である。
図15は、たとえばネットワーク110内のアプリケーションにユーザがログオンしたときを検出及び報告するために構成されるメッセージプロトコルゲートウェイ1500を例示する図である。図15の例では、プロトコルメッセージゲートウェイ1500は、メッセージプロトコルエレメント1510及びユーセージデータベース1520を含む。メッセージプロトコルエレメント1510は、たとえば企業ネットワークを使用して、クライアント装置170にメッセージを送出し、クライアント装置170からのメッセージを受信し、たとえば企業ネットワーク110及び外部ネットワーク130を使用して、外部のクライアント装置にメッセージを送出し、外部のクライアント装置からメッセージを受信する。メッセージプロトコルエレメント1510により送出又は受信されたメッセージは、それら先に記載されたような様々なターゲットプロトコルを実現することができる。
ユーセージデータベース1520は、ユーザテーブル1550及び反転されたユーザテーブル1560を含む、データベーステーブルのセットを含む。ユーセージデータベース1520はユーザの存在を検出及び報告するのに関して本実施の形態で記載されるが、ユーセージデータベース1520は、他のリソースの存在又は不存在を検出及び報告すること、他のタイプのイベントを検出及び報告することへの非常に一般的な拡張が可能であることは明らかである。また、ユーセージデータベース1520は、SQLインストラクション1522のセット及びSQLエクステンション1540のセットを含むデータベースコードのセットを含む。勿論、ユーセージデータベース1520は、本実施の形態ではSQLに関してデータベース操作及び問合せ言語の個々の例として記載しているが、ユーセージデータベース1520は、他のタイプのデータベース操作及び問合せについて、他のタイプのデータベース又はデータソース一般に対して構成することができることを理解されたい。
1実施の形態では、ユーザテーブル1550は、それぞれが選択されたユーザについて情報を含む、「行」と呼ばれることがあるエントリ1552のセットを含んでいる。かかる実施の形態では、ユーザテーブル1550は、そのエントリ1552に関連されるユーザについて、それぞれが選択されたデータアイテム又はデータアイテムのリストを含む、それぞれのエントリ1552について「列」と呼ばれることがあるフィールド1554のセットを含んでいる。たとえば、ユーザテーブル1550は、選択されたユーザに関連するユーザ名を含む第一のフィールド1554a、選択されたユーザに関連するコンタクトリストを含む第二のフィールド1554b、及び選択されたユーザに関連するオンライン/オフラインステータスを含む第三のフィールド1554cを含んでいる。
フィールド1554bは、実施の形態に依存して、多次元の列を含んでおり、すなわちフィールド1554に関連する値がそれ自身にリストとなる。SQLエクステンション1540は、たとえば多次元の列1554からの複数の行のリストを生成可能な機能、及びリストから多次元の列1554を生成可能な機能を含む。これは、特に多数のデータベーステーブルをリンクすることを含むデータベースの問い合わせは、1つのデータベーステーブルでの動作を使用して実行可能であるという作用を有する。たとえば、多次元の列を使用することなしに、コンタクトリストを選択されたユーザとの関連付けすることは、すなわちユーザA及びユーザBといったそれぞれのユーザのペアについて、ユーザBがユーザAのコンタクトリストにあるかを示す個別のリンクテーブルを含んでいる。したがって、コンタクトリストの問合せを行うことは、リンキングテーブルの少なくとも1つのサーチ、及びユーザテーブルの少なくとも2つのサーチを含んでいる。多次元の列を使用することで、コンタクトリストを選択されたユーザと関連付けすることは、ユーザテーブルそれ自身の1つのサーチと、コンタクトリストについて使用される多次元の列からリストを生成するためのSQLエクステンション1540の使用を含んでいる。
1実施の形態では、ユーザテーブル1550に類似した、反転されたユーザテーブル1560は、それぞれが選択されたユーザ172について情報を含むエントリ1557のセットを含んでいる。ユーザテーブル1550に類似した、反転されたユーザテーブル1560は、そのエントリ1556に関連されるユーザについて、選択されたデータアイテム又はデータアイテムのリストをそれぞれが含む、それぞれのエントリ1556にフィールド158のセットを含んでいる。1実施の形態では、反転されたユーザテーブル1560は、選択されたユーザに関連するユーザ名を含む第一のフィールド1558a、及び選択されたユーザに関連する反転されたコンタクトリストを含む第二のフィールド1558bを含む。このケースにおけるその選択されたユーザに関連する反転されたコンタクトリストは、それらのコンタクトリストで選択されたユーザを列挙した他のユーザを示すために使用することができる。これに応じて、新たにログインしたユーザが検出されたとき、その新たにログインしたユーザの存在が通知されるのを望む他のユーザのセットをサーチするは比較的容易である。
1実施の形態では、SQLエクステンション1540は、頻繁に実行されることが期待されるデータベースの問合せのセットを指定可能な機能を含み、反転されたユーザテーブル1560とユーザテーブル1550との間の関係に類似した、オリジナルテーブルに応答して反転されたテーブルを構築するのが望まれる。かかる実施の形態では、SQLエクステンション1540は、たとえば、以下の機能のうちの1以上を含んでいる。反転されたユーザテーブル1560とユーザテーブル1550との間の関係に類似した、オリジナルテーブルに応答して反転されたテーブルが自動的に構築されるべきかを設計者が規定し、構築されるべき場合、反転されたテーブルのフィールド1558がオリジナルテーブルの対応するフィールド1554にどのように関連するかを設計者が規定するのを可能にする機能、オリジナルテーブルに関連する問合せが反転されたテーブルに関連して実行されるべき問合せに変換されるべきかを設計者が規定するのを可能にし、変換されるべき場合、反転されたテーブルのフィールド1558がオリジナルテーブルのフィールド1554のテストに対応してどのように試験されるべきかを設計者が規定するのを可能にする機能、オリジナルテーブル又は反転されたテーブルのいずれかに関連する問い合わせが後の仕様のためにキャッシュされるその結果を有するべきかを設計者が規定するのを可能にし、有するべき場合、トリガに応じて、問合せ及び/又は後の使用が実行される。
たとえば、コンタクトリストのどのユーザがログインしたかに関すル問合せは、以下のトリガの1以上に応じて実行される場合がある。(1)ユーザがログインしたとき、(2)ユーザがログアウトしたとき、(3)選択された時間が経過した後、(4)プロトコルメッセージゲートウェイ1500がリブート又はリセットされた後、及び(5)選択された数のメッセージが処理された後。
また、SQLエクステンション1540は、オリジナルテーブル又は反転されたテーブルのいずれかに関連する問合せが実行され、その結果が実際の要求の前に計算されるべきであるか、計算されるべきである場合、トリガに応答してその問合せが実行されるべきことを設計者が規定するのを可能にする機能を含む。
また、SQLエクステンション1540は、テーブルが多次元の列を含むべきか、含むべき場合に、その多次元の列が問い合わせの結果に応答してどのように扱われるべきかを設計者が規定するのを可能にする機能を含む。たとえば、コンタクトリストのどのユーザがログインしたかに関する問合せは、それぞれのユーザのコンタクトリストに関連する多次元の列を含み、問合せの実行に応じて、多次元の列からの結果が集められ、問合せされたユーザのコンテンツリストの1つである特定のユーザの個々の行応答に分割される。
したがって、プロトコルメッセージゲートウェイ1500は、効率的、ネットワーク110に存在するユーザの時間の節約される検出を可能にするために構成され、ユーザに使用されているアプリケーションにログオンすることができる。これは、ネットワーク110内の処理及び他のリソースを節約することができる。この機能は、たとえば、他のタイプのデータベース及びデータベースサーチについて、ネットワークアドミニストレータが多次元の列及び多次元の列の関連付けを定義するのを可能にすることで拡張される。
図16は、本実施の形態で記載されるシステム及び方法の1実施の形態に係るユーザの存在を検出及び報告する例示的な方法を説明するフローチャートである。はじめに、ステップ1602では、クライアント装置170での内部ユーザ172、又は外部クライアント装置での外部ユーザは、アプリケーションを使用するためにログインするのを試みる。ステップ160で、関連されるクライアント装置170は、たとえばユーザ名又はスクリーン名をログインするのを試みることを示し、ログインするのが必要とされる情報を含むメッセージをプロトコルメッセージゲートウェイ122に送出するために構成される。ステップ1606では、プロトコルメッセージゲートウェイ122は、ログインする試みを示すメッセージを受信し、たとえばその受信を示してクライアント装置170に応答する。ステップ1608では、プロトコルメッセージゲートウェイ122がログインの試みを証明するか、又はログインの試みを否定するに十分な情報を有する場合、そのように示してクライアント装置170に応答するために構成される。
たとえば、プロトコルメッセージゲートウェイ122は、どの内部ユーザ172及びどの外部ユーザがアプリケーションを使用するためにログインすることが現在許可されているか示す、外部サーバから利用可能なキャッシュされた情報を有するために構成することができる。かかる実施の形態では、アプリケーションの使用は、外部サーバへのアクセスに関連される。したがって、ログインは、たとえばアプリケーションに関連される外部サーバといったサーバにログインする試みである。
別の実現では、プロとコルメッセージゲートウェイ122は、たとえば公開鍵の暗号化システム又は他の信頼されるサーバへの参照によるような、ログインメッセージが有効であるかを判定することができる利用可能な公知の手順を有するために構成される。
ステップ1610では、ログインが成功した場合、プロセスはステップ1612に続く。しかし、ログインが失敗した場合、プロトコルメッセージゲートウェイ122は、試みを拒否し、別のメッセージを待つ(ステップ1602)。ステップ1612では、プロトコルメッセージゲートウェイ122は、ログインに関連されるSQLインストラクション1520を実行するために構成される。たとえば、SQLインストラクション1520は、たとえば複数の多次元の列を使用するときのような、SQLエクステンション1540のセットを要求する。
1実施の形態では、ログインメッセージに関連されるSQLインストラクション1520は、内部ユーザ172又は外部ユーザである、新たにログインされたユーザについてコンタクトリストの他のユーザもログインしたかを検出することを含む。たとえば、SQLインストラクション1520は、新たにログインしたユーザに関連するコンタクトリストをサーチし、そのコンタクトリストのユーザが既にログインしたかを判定する、ユーザテーブル1550に対して実行されるべき問合せを含む。したがって、新たにログインしたユーザは、既にログインした関連するユーザが通知される。
別の実施の形態では、ログインに関連されるSQLインストラクション1520は、新たにログインしたユーザが既にログインしたユーザのコンタクトリストであるかを検出することを含んでいる。したがって、その新たにログインされたユーザのコンタクトリストにある場合、既にログインされたユーザは、新たにログインしたユーザの存在が通知される。
したがって、ステップ1612で、SQLインストラクション1520を実行することは、ユーセージデータベース1520に、新たにログインされたユーザについて反転されたユーザテーブル1560をサーチするように指示する。1実施の形態では、ログインに関連されるSQLインストラクション1520は、新たにログインされたユーザについて反転されたユーザテーブル1560をサーチするためにSQLエクステンション1540のセットを要求する。たとえば、1実施の形態では、それらのコンタクトリストの新たにログインされたユーザを列挙するユーザのセットは、サーチを実行する作用によりかかるユーザのリストが提供されて、多次元の列を含むためにSQLエクステンション1540により規定される。この例では、多次元の列は、それぞれがそれらのコンタクトリストに新たにログインされたユーザを列挙する1つのユーザを示す、行のセットに拡張されるべきSQKエクステンション1540により規定される。したがって、SQLインストラクション1520又は他のインストラクションは、新たにログインされたユーザの、ユーザの存在をそれらのユーザのそれぞれに通知するために利用することができる。プロトコルメッセージゲートウェイ122は、ユーザの存在のそれらのコンタクトリストの新たにログインされたユーザを列挙しているユーザのセットにそれぞれを通知するために構成される。
類似のステップは、たとえば、新たなユーザがプロトコルメッセージゲートウェイ122により登録されたとき、システムアドミニストレータ又はチャットルームファシレータのような選択されたタイプのユーザがそれらのユーザの存在の状態を変えたとき、又はユーザがログアウトしたときを含めた、ユーザの存在の状態の作用を有する他のアクションに応答して、プロトコルメッセージゲートウェイ122により実行されることが明らかである。
たとえば、プロトコルメッセージゲートウェイ122により使用されるソフトウェアエレメントを更新することが必要なことがある。しかし、ソフトウェアが更新されている間にそれらのプロトコルの使用がディスエーブルにされる必要があるため、ソフトウェアエレメントを更新するためにプロトコルメッセージゲートウェイ122をシャットオフすることは望まれないことがあり、ソフトウェアが更新されるときに進行中のプロトコルセッションが終了されることも可能である。
したがって、図17は、本実施の形態で記載されたシステム及び方法の1実施の形態に従って動的に更新されるプラガブル(pluggable)モジュールをもつ例示的な通信装置1700を例示する図である。装置1700は、たとえばモジュール1722,1724及び/又は1726を含むプラガブルモジュール1720のセットを通して通信ネットワーク1710に結合される。それぞれのプラガブルモジュールは、1722,1724及び/又は1726は、セントラルモジュール1730と結合されている。セントラルモジュール1730は、たとえば、カーネルのようなプラガブルであるように設計されないモジュール、又はプラガブルモジュールマネージャを含む。先に記載されたように、従来のシステムでは、プラガブルモジュール1722,1724及び/又は1726が更新されたとき、そのモジュールに関わる通信がシャットダウンされる必要がある。さらに、アップグレードプロセスの間、そのモジュールを通した通信が行われない。
図17の例では、プラガブルモジュール1722,1724及び/又は1726は、サービスへの混乱なしにアップグレードされる。たとえば、モジュール1722がプロトコルAをサポートし、モジュールBがプロトコルBをサポートし、及びモジュール1726がプロトコルCをサポートするとする。たとえば新たなモジュール1728といったプロトコルAをサポートする新たなモジュールが利用可能であって、アップグレードが望まれるとき、装置1700は、アップグレードを要求するために構成することができる。しかし、アップグレードが要求されたときに、モジュール1722が通信をサポートすることに関与する場合、新たなモジュール1728をロードすることができ、しかし、モジュール1722を使用した全ての通信が終了するまで、モジュール1722を保持することができる。アップグレード、すなわちモジュール1728のロードが行われた後、プロトコルAを使用した新たな通信は、モジュール1722とは対照的にモジュール1778によりサポートされる。さらに、モジュール1722を使用した全ての通信がひとたび停止すると、モジュール1722に関連するリソースがリリースされ、アップグレードプロセスが完了される。
通信装置1700は、たとえばプロトコルメッセージゲートウェイ122である。別の実施の形態では、通信装置1700は、プロキシエンフォーサ150とすることができ、この場合、プラガブルモジュール1722,1724及び/又は1726は、プロトコルインスペクタとすることができる。記載されたシステム及び方法は、新たなソフトウェアモジュールをアップロードするために構成される多岐にわたる装置に適用されることを理解されたい。
図18は、図4に例示されるものに対する類似した詳細でプロトコルメッセージゲートウェイ122を例示する図である。図18の例では、しかし、プロトコルメッセージゲートウェイ122を含むモジュール又はアダプタは、本実施の形態で記載されるシステム及び方法に従って動的に更新される。したがって、プロトコルメッセージゲートウェイ122は、プロトコルメッセージパーサ410、ゲートウェイマネージャ420、プロトコルアダプタ430のセット、ポリシーエンフォースメントモジュール440、認証モジュール450、更なるモジュールアダプタ460のセットを含んでおり、これらは以下に更に記載される。
プロトコルアダプタ430は、たとえば、第一の古いプロトコルアダプタ1832のセット、第二の新たなプロトコルアダプタ1834のセットを含んでいる。結果として、古いプロトコルアダプタ1832は、関連するメッセージプロトコルを使用している通信セッションに関して使用されている。古いプロトコルアダプタ1832に関連する特定のメッセージプロトコルは、たとえばもはや関心がないか、又は新たなバージョンのプロトコルアダプタ1832が利用可能であって、新たなプロトコルアダプタ1834のロードとなる。
1実施の形態では、プロトコルメッセージパーサ410は、インバウンド及びアウトバンドメッセージを受信し、受信されたメッセージを調べ、特定の受信されたメッセージを処理するためにどのプロトコルアダプタ430が適切であるかを判定する。プロトコルメッセージパーサ410は、受信されたメッセージを更なる処理のためにゲートウェイマネージャ420に送出する。ゲートウェイマネージャ420は、メッセージを受信し、メッセージと関連されるべき必要なデータ構造422を作成するために構成することができる。データ構造422は、幾つかのプロトコルが複数のメッセージにわたり状態情報を保持するので新たな通信セッション又は古い通信セッションに関連される。
ゲートウェイマネージャ420は、プロトコルメッセージゲートウェイ122内の他のコンポーネントへのメッセージに関連する情報を発するために構成される。たとえあ、ゲートウェイマネージャ420は、選択されたプロトコルアダプタ430若しくは他のモジュール又はアダプタへのメッセージに関する情報を発するために構成される。したがって、少なくとも1つのプロトコルアダプタ430は、メッセージに関連するプロトコルを認識すべきであって、したがって、ゲートウェイマネージャ420により発せられるプロトコルメッセージ及び関連される情報を受信する。メッセージ及び情報を受信するプロトコルマネージャ430は、メッセージプロトコルに関連する処理パラダイムにメッセージがどのようにフィットするかを判定するために構成される。たとえば、メッセージがIMメッセージの送出者と受信者のような送出者と受信者との間でセッションを始動する場合、関連するプロトコルアダプタ430は、新たなセッションが作成されるべきことを判定するために構成される。
また、プロトコルメッセージゲートウェイ122は、ポリシーエンフォースメントモジュール440及び関連されるポリシールールデータベース444、認証モジュール450及び関連する認証データベース454、ロギングモジュール470及び関連するロギングデータベース474のような他のモジュール又はアダプタを有する。実現に依存して、これらモジュール又はアダプタのそれぞれは、特定の通信セッション及び関連するメッセージプロトコルに関連する不断の状態情報を保持するために構成される。
時間的に特定の瞬間で、プロトコルメッセージゲートウェイ122は、1以上のモジュール又はアダプタの新たなバージョンと古いバージョンの両者を含む、これらモジュール又はアダプタのそれぞれのうちで1を超えるモジュール又はアダプタを含む。同様に、ポリシールールデータベース444、認証データベース454、ロギングデータベース474、又は他のデータ構造422のような、それらモジュール又はアダプタに関連するデータベースの多数のバージョンは、ゲートウェイマネージャ420又はプロトコルメッセージゲートウェイ122の他のエレメントにより保持される。
たとえば、古いプロトコルアダプタ1832は、本実施の形態で記載されるシステム及び方法に従って新たなプロトコルアダプタ1834で置き換えられる。結果として、プロトコルメッセージゲートウェイ122は、古いプロトコルアダプタ1832及び新たなプロトコルアダプタ1834の両者を同時に含む。しかし、古いプロトコルアダプタ1832は既存の通信セッションに関わる場合、全ての係る既存のセッションが完了するまで保持される。そのとき、新たなセッションは、新たなプロトコルアダプタ1834を使用するために構成され、古いプロトコルアダプタ1832は除かれる。この能力により、プロトコルメッセージゲートウェイ122は、たとえばプロトコルメッセージゲートウェイをパワーダウンするか、又は既存の通信セッションを終了する必要なしに動的に更新することができる。
図19は、本実施の形態で記載されるシステム及び方法に従ってソフトウェアモジュールを動的に更新するための例示的な方法を説明するフローチャートである。たとえば、図19の方法は、新たなモジュールアダプタ1834で古いモジュールアダプタ1832を更新するために使用する。したがって、ステップ1902では、メッセージパーサ410は、受信されたメッセージに関連するメッセージプロトコルを決定し、ステップ1904でメッセージをゲートウェイマネージャ420に送出するために構成される。ステップ1906では、ゲートウェイマネージャ420は、たとえばデータ構造422により示されるように、公知の進行しているセッションとメッセージが関連付けされているかを判定するために構成される。
メッセージが実際に公知の進行しているセッションと関連している場合、ゲートウェイマネージャ420は、ステップ1908で、たとえば古いプロトコルアダプタ1832といったどのプロトコルアダプタ430がメッセージと関連しているか、及び特定のセッションがどのメッセージに属するかを含めて、データ構造422から情報を検索するために構成される。メッセージが古いプロトコルアダプタ1832と関連している場合、ゲートウェイマネージャ420は、少なくとも1つのセッションについてなお使用していることを示して、ステップ1910で、古いプロトコルアダプタ1832に関する状態情報を維持するために構成される。
ステップ1912で、ゲートウェイマネージャ420は、場合に応じて古いプロトコルアダプタ1832又は新たなプロトコルアダプタ1834のいずれかである、指定されたプロトコルアダプタ430にメッセージの到達に関する情報を送出する。
ステップ1902で受信されたメッセージが進行しているセッションの一部ではない場合、ステップ1914で、ゲートウェイマネージャ420は、たとえばデータ構造422から、どのプロトコルアダプタ430とメッセージが関連しているかに関する情報を検索する。ステップ1916で、同時に存在する新たなプロトコルアダプタ1834及び古いプロトコルアダプタ1832があるかが判定される。同時に存在する古いプロトコルアダプタ1832及び新たなプロトコルアダプタ1834がある場合、ゲートウェイマネージャ420は、新たなプロトコルアダプタ1834を選択し、ステップ1918で新たなプロトコルアダプタ1834にメッセージを送出する。次いで、ステップ1920で、メッセージが処理される。
ステップ1922では、プロトコルメッセージゲートウェイ122は、新たなプロトコルアダプタ1834を受ける準備がある。ステップ1924では、プロトコルメッセージゲートウェイ122は、新たなプロトコルアダプタ1834をインストールし、新たなプロトコルアダプタ1834を使用するのに利用可能にする。ステップ1926では、ゲートウェイマネージャ420は、新たなプロトコルアダプタ1834が関連するメッセージプロトコルに関連されることを示すため、データ構造422を変更する。ステップ1928では、ゲートウェイマネージャ420は、古いプロトコルアダプタ1832を使用したセッションはなお動作中であるかを判定するため、データ構造422をチェックするために構成される。かかるセッションがある場合、ゲートウェイマネージャ420は、指定された時間を待ち、ステップ1928を繰り返す。かかるセッションが存在しない場合、ゲートウェイマネージャ420は、古いプロトコルマネージャ1832がもはや使用されないことを判定して、古いプロトコルアダプタ1832を消去する。
このようにして、ソフトウェアモジュールは、サービスにおける割込みなしで動的に更新される。したがって、たとえば、プロトコルメッセージゲートウェイ122は、最新のアダプタおよびモジュールを維持しつつ、全ての既存のセッション及びメッセージをサービスし続ける。ひとたび全ての既存のセッション及びメッセージがサービスされると、新たな更新されたモジュールは、全ての新たなメッセージ及びセッションをサービスするために使用される。
本発明の所定の実施の形態が先に記載されたが、記載された実施の形態は例示するのみであることを理解されたい。したがって、本発明は、記載された実施の形態に基づいて制限されるべきではない。むしろ、本実施の形態で記載される本発明の範囲は、先の記載及び添付図面と共に読まれたときに従う特許請求の範囲に照らしてのみ制限される。
Claims (21)
- ソフトウェアモジュールを動的に更新する方法であって、
新たなソフトウェアモジュールをダウンロードするステップと、
古いソフトウェアモジュールが既存のルーチンをサービスしているかを判定するステップと、
古いソフトウェアモジュールが既存のルーチンをサービスしている場合、前記新たなサービスモジュールが新たなルーチンをサービスするのを可能にしつつ、前記古いソフトウェアモジュールが前記既存のルーチンをサービスし続けるのを可能にするステップと、
を含むことを特徴とする方法。 - 前記古いソフトウェアモジュールがもはやルーチンをサービスしないときを判定し、前記古いソフトウェアモジュールを終了するステップとを更に含む、
請求項1記載の方法。 - 前記古いソフトウェアが既存のルーチンをサービスしない場合、前記新たなソフトウェアモジュールが新たなルーチンをサービスするのを可能にして前記古いソフトウェアモジュールを終了するステップを更に含む、
請求項1記載の方法。 - 前記既存のルーチン及び新たなルーチンは通信セッションである、
請求項1記載の方法。 - 前記古いソフトウェアモジュール及び新たなソフトウェアモジュールはプロトコルアダプタである、
請求項1記載の方法。 - 前記新たなソフトウェアモジュールが利用可能であるかを判定するステップと、前記新たなソフトウェアモジュールが利用可能であると判定されたとき、前記新たなソフトウェアモジュールをダウンロードするステップとを更に含む、
請求項1記載の方法。 - ソフトウェアモジュールを動的に更新する方法であって、
ソフトウェアモジュールに関連されるメッセージを受信するステップと、
1を超えるバージョンのソフトウェアモジュールが存在するかを判定するステップと、
1を超えるバージョンが存在する場合に、古いバージョンのソフトウェアモジュールによりメッセージがサービスされているかを判定するステップと、
古いバージョンのソフトウェアモジュールによりメッセージがサービスされたと判定された場合、前記古いバージョンのソフトウェアモジュールによりメッセージがサービスされ続けるのを可能にするステップと、
を含むことを特徴とする方法。 - 唯一のバージョンのソフトウェアモジュールが存在する場合、前記ソフトウェアモジュールによりメッセージがサービスされるのを可能にするステップを更に含む、
請求項7記載の方法。 - 古いバージョンのソフトウェアモジュールによりメッセージがサービスされていると判定されない場合、新たなバージョンのソフトウェアモジュールによりメッセージがサービスされるのを可能にするステップを更に含む、
請求項7記載の方法。 - 前記古いバージョンのソフトウェアモジュールによりメッセージがサービスされるかを判定するステップと、前記古いバージョンのソフトウェアモジュールによりメッセージがサービスされない場合に、前記古いバージョンのソフトウェアモジュールを終了するステップとを更に含む、
請求項7記載の方法 - 古いバージョンのソフトウェアモジュールによりメッセージがサービスされるかを判定するステップは、どのバージョンのソフトウェアモジュールがメッセージをサービスしているかを判定するためにデータ構造をチェックするステップを含む、
請求項7記載の方法。 - 通信装置により受信されたメッセージをサービスするために構成される古いソフトウェアモジュールと、
新たなソフトウェアモジュールをダウンロードするために構成される通信インタフェースと、
前記古いソフトウェアモジュールが既存のルーチンをサービスしているかを判定し、前記古いソフトウェアモジュールが既存のルーチンをサービスしている場合、前記新たなソフトウェアモジュールが新たなルーチンをサービスするのを可能にしつつ、前記古いソフトウェアモジュールが既存のルーチンをサービスし続けるのを可能にするために構成されるゲートウェイマネージャと、
を有することを特徴とする通信装置。 - 前記ゲートウェイマネージャは、前記古いソフトウェアモジュールがもはやルーチンをサービスしないときを判定し、前記古いソフトウェアモジュールを終了させるために更に構成される、
請求項12記載の通信装置。 - 前記ゲートウェイマネージャは、前記古いソフトウェアが既存のルーチンをサービスしていない場合に、前記新たなソフトウェアモジュールが新たなルーチンをサービスするのを可能にしつつ前記古いソフトウェアモジュールを終了させるために更に構成される、
請求項12記載の通信装置。 - 前記古いソフトウェアモジュール及び新たなソフトウェアモジュールはプロトコルアダプタである、
請求項12記載の通信装置。 - 前記古いソフトウェアモジュール及び新たなソフトウェアモジュールは認証モジュールである、
請求項12記載の通信装置。 - 前記古いソフトウェアモジュール及び新たなソフトウェアモジュールは、ポリシーエンフォースメントモジュールである、
請求項12記載の通信装置。 - 前記古いソフトウェアモジュール及び新たなソフトウェアモジュールは、ロギングモジュールアダプタである、
請求項12記載の通信装置。 - 前記古いソフトウェアモジュール及び新たなソフトウェアモジュールは、データベースモジュールである、
請求項12記載の通信装置。 - メッセージを受信し、受信されたメッセージを処理するためにどのソフトウェアモジュールが必要とされるかを判定するために構成されるメッセージパーサを更に有する、
請求項12記載の通信装置。 - 前記ゲートウェイマネージャは、前記受信されたメッセージのデータ構造を生成するために更に構成され、古いバージョンのソフトウェアモジュールによりメッセージがサービスされているかを判定することは、どのバージョンのソフトウェアモジュールがメッセージをサービスしているかを判定するためにデータ構造をチェックすることを含む、
請求項19記載の通信装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US66122603A | 2003-09-11 | 2003-09-11 | |
PCT/US2004/029848 WO2005026915A2 (en) | 2003-09-11 | 2004-09-13 | Systems and methods for dynamically updating software in a protocol gateway |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007505409A true JP2007505409A (ja) | 2007-03-08 |
Family
ID=34312723
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006526370A Pending JP2007505409A (ja) | 2003-09-11 | 2004-09-13 | プロトコルゲートウェイでソフトウェアを動的に更新するシステム及び方法 |
Country Status (5)
Country | Link |
---|---|
EP (1) | EP1664974A4 (ja) |
JP (1) | JP2007505409A (ja) |
AU (1) | AU2004272201A1 (ja) |
CA (1) | CA2539470A1 (ja) |
WO (1) | WO2005026915A2 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008538673A (ja) * | 2005-04-22 | 2008-10-30 | トムソン ライセンシング | 安全な匿名の無線lanアクセス機構 |
WO2011158367A1 (ja) * | 2010-06-17 | 2011-12-22 | 富士通株式会社 | 実行中のプログラムの更新技術 |
US8271792B2 (en) | 2008-02-20 | 2012-09-18 | Ricoh Company, Ltd. | Image processing apparatus, authentication package installation method, and computer-readable recording medium |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090225781A1 (en) * | 2008-03-07 | 2009-09-10 | Software Ag, Inc. | System, method and computer program product for bulk event transfer |
DE602009000139D1 (de) * | 2008-07-09 | 2010-10-07 | Research In Motion Ltd | Lieferung von E-Mail-Nachrichten in mehreren Teilen |
CN102244666A (zh) * | 2010-05-10 | 2011-11-16 | 中兴通讯股份有限公司 | M2m平台处理报文的方法和m2m平台系统 |
CN108228192B (zh) * | 2016-12-14 | 2020-12-29 | 中国航空工业集团公司西安航空计算技术研究所 | 一种面向服务的机载软件的动态管理的实现方法 |
CN110659033B (zh) * | 2018-06-29 | 2023-08-11 | 深圳耐看科技有限公司 | 协议注册分发方法、存储介质、电子设备及系统 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4425618A (en) * | 1981-11-23 | 1984-01-10 | Bell Telephone Laboratories, Incorporated | Method and apparatus for introducing program changes in program-controlled systems |
US5339430A (en) * | 1992-07-01 | 1994-08-16 | Telefonaktiebolaget L M Ericsson | System for dynamic run-time binding of software modules in a computer system |
DE59309391D1 (de) * | 1993-01-18 | 1999-04-01 | Siemens Ag | Realzeit-Steuerungssystem |
DE19810802A1 (de) * | 1998-03-12 | 1999-09-16 | Ericsson Telefon Ab L M | Störungsfreies Aktualisieren von Daten |
US6341321B1 (en) * | 1999-02-22 | 2002-01-22 | International Business Machines Corporation | Method and apparatus for providing concurrent patch using a queued direct input-output device |
US6334215B1 (en) * | 1999-05-05 | 2001-12-25 | International Business Machines Corporation | Methodology for migration of legacy applications to new product architectures |
US6516349B1 (en) * | 1999-09-07 | 2003-02-04 | Sun Microsystems, Inc. | System for updating a set of instantiated content providers based on changes in content provider directory without interruption of a network information services |
-
2004
- 2004-09-13 EP EP04783898A patent/EP1664974A4/en not_active Withdrawn
- 2004-09-13 JP JP2006526370A patent/JP2007505409A/ja active Pending
- 2004-09-13 CA CA002539470A patent/CA2539470A1/en not_active Abandoned
- 2004-09-13 WO PCT/US2004/029848 patent/WO2005026915A2/en active Application Filing
- 2004-09-13 AU AU2004272201A patent/AU2004272201A1/en not_active Abandoned
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008538673A (ja) * | 2005-04-22 | 2008-10-30 | トムソン ライセンシング | 安全な匿名の無線lanアクセス機構 |
JP4848421B2 (ja) * | 2005-04-22 | 2011-12-28 | トムソン ライセンシング | 安全な匿名の無線lanアクセス機構 |
US8271792B2 (en) | 2008-02-20 | 2012-09-18 | Ricoh Company, Ltd. | Image processing apparatus, authentication package installation method, and computer-readable recording medium |
WO2011158367A1 (ja) * | 2010-06-17 | 2011-12-22 | 富士通株式会社 | 実行中のプログラムの更新技術 |
JP5387767B2 (ja) * | 2010-06-17 | 2014-01-15 | 富士通株式会社 | 実行中のプログラムの更新技術 |
Also Published As
Publication number | Publication date |
---|---|
WO2005026915A3 (en) | 2006-04-27 |
WO2005026915A2 (en) | 2005-03-24 |
EP1664974A4 (en) | 2008-12-17 |
EP1664974A2 (en) | 2006-06-07 |
AU2004272201A1 (en) | 2005-03-24 |
CA2539470A1 (en) | 2005-03-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7882265B2 (en) | Systems and methods for managing messages in an enterprise network | |
US7664822B2 (en) | Systems and methods for authentication of target protocol screen names | |
US7707401B2 (en) | Systems and methods for a protocol gateway | |
US7818565B2 (en) | Systems and methods for implementing protocol enforcement rules | |
US7774832B2 (en) | Systems and methods for implementing protocol enforcement rules | |
US10621344B2 (en) | System and method for providing network security to mobile devices | |
US20220046060A1 (en) | System and method for providing network and computer firewall protection with dynamic address isolation to a device | |
US10999302B2 (en) | System and method for providing data and device security between external and host devices | |
US7472422B1 (en) | Security management system including feedback and control | |
JP4734592B2 (ja) | クライアントリダイレクトによるプライベートネットワークへの安全なアクセス提供方法およびシステム | |
US20080196099A1 (en) | Systems and methods for detecting and blocking malicious content in instant messages | |
JP2007505409A (ja) | プロトコルゲートウェイでソフトウェアを動的に更新するシステム及び方法 | |
WO2006062961A2 (en) | Systems and methods for implementing protocol enforcement rules | |
WO2008086224A2 (en) | Systems and methods for detecting and blocking malicious content in instant messages |