(57)【特許請求の範囲】
【請求項１】
他の装置における外部アプリケーションからのメッセージを自己の内部アプリケーションによって処理するための情報処理装置であって、
複数の前記外部アプリケーション間で共通の集約ポート番号を含むように前記外部アプリケーションによって生成されたメッセージを１または複数の前記外部アプリケーションから受信するためのメッセージ受信部と、
前記メッセージ受信部によって受信された前記メッセージに対応する前記内部アプリケーションを判別するための判別部と、
前記判別部によって判別された前記内部アプリケーションへ対応の前記メッセージを転送するためのメッセージ転送部とを備える、情報処理装置。
【請求項２】
前記判別部は、前記メッセージ受信部によって受信された前記メッセージに基づいて、前記メッセージに対応する前記内部アプリケーションの個別ポート番号を判別し、
前記メッセージ転送部は、前記メッセージの集約ポート番号を前記個別ポート番号に置き換えた前記メッセージを生成して転送する、請求項１に記載の情報処理装置。
【請求項３】
前記情報処理装置は、さらに、
前記内部アプリケーションと前記メッセージに含まれる所定の文字列との対応関係を示すアプリケーション情報を記憶するためのアプリケーション情報記憶部を備え、
前記判別部は、前記メッセージ受信部によって受信された前記メッセージの文字列と前記アプリケーション情報における前記所定の文字列とを照合することにより、前記メッセージに対応する前記内部アプリケーションを判別する、請求項１または２に記載の情報処理装置。
【請求項４】
前記情報処理装置は、さらに、
前記内部アプリケーション、および前記内部アプリケーションとコネクション確立済みの前記外部アプリケーションを実行する他の装置の識別情報を示すコネクション情報を記憶するためのコネクション情報記憶部を備え、
前記判別部は、前記メッセージ受信部によって受信された前記メッセージの送信元の識別情報と前記コネクション情報における前記識別情報とを照合することにより、前記メッセージに対応する前記内部アプリケーションを判別する、請求項１から３のいずれかに記載の情報処理装置。
【請求項５】
前記判別部は、前記メッセージ受信部によって受信された前記メッセージに対応する前記内部アプリケーションを判別した後、判別した前記メッセージに対応する前記コネクション情報が存在しない場合には、判別した前記メッセージに対応する前記内部アプリケーションおよび前記メッセージを送信してきた前記外部アプリケーションを実行する他の装置の識別情報を前記コネクション情報に追加する、請求項４に記載の情報処理装置。
【請求項６】
前記メッセージ受信部は、メッセージを前記内部アプリケーションから受信し、
前記判別部は、前記内部アプリケーションからの前記メッセージに対応する前記外部アプリケーションを判別し、判別できなかった場合には前記メッセージを廃棄し、
前記メッセージ転送部は、前記判別部が前記メッセージに対応する前記外部アプリケーションを判別できた場合には、前記メッセージを前記外部アプリケーションに転送する、請求項１から５のいずれかに記載の情報処理装置。
【請求項７】
前記情報処理装置は、さらに、
前記メッセージ受信部によって受信された複数の前記メッセージを蓄積するためのメッセージ蓄積部と、
前記メッセージ蓄積部によって蓄積された複数の前記メッセージに対してパターンマッチングを行なうことにより、前記所定の文字列を抽出し、前記内部アプリケーションおよび抽出した前記所定の文字列の対応関係を示すアプリケーション情報を生成するためのパターン分析部とを備える、請求項３に記載の情報処理装置。
【請求項８】
クライアントと、
サーバーとを備え、
前記クライアントは、実行する各アプリケーションによって前記各アプリケーション間で共通の集約ポート番号を含むように生成されるメッセージを前記サーバーへ送信し、
前記サーバーは、
前記集約ポート番号を含むメッセージを１または複数の前記アプリケーションから受信し、受信した前記メッセージに対応する自己のアプリケーションを判別し、判別した前記アプリケーションへ対応の前記メッセージを転送する、情報処理システム。
【請求項９】
他の装置における外部アプリケーションからのメッセージを自己の内部アプリケーションによって処理するための情報処理装置におけるメッセージ処理方法であって、
複数の前記外部アプリケーション間で共通の集約ポート番号を含むように前記外部アプリケーションによって生成されたメッセージを１または複数の前記外部アプリケーションから受信するステップと、
受信した前記メッセージに対応する前記内部アプリケーションを判別するステップと、
判別した前記内部アプリケーションへ対応の前記メッセージを転送するステップとを含む、メッセージ処理方法。
【請求項１０】
他の装置における外部アプリケーションからのメッセージを自己の内部アプリケーションによって処理するための情報処理装置におけるメッセージ処理プログラムであって、コンピュータに、
複数の前記外部アプリケーション間で共通の集約ポート番号を含むように前記外部アプリケーションによって生成されたメッセージを１または複数の前記外部アプリケーションから受信するステップと、
受信した前記メッセージに対応する前記内部アプリケーションを判別するステップと、
判別した前記内部アプリケーションへ対応の前記メッセージを転送するステップとを実行させる、メッセージ処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理システム、メッセージ処理方法およびメッセージ処理プログラムに関し、特に、他の装置のアプリケーションからのメッセージを処理する情報処理装置、情報処理システム、メッセージ処理方法およびメッセージ処理プログラムに関する。
【背景技術】
【０００２】
クライアント・サーバーモデルにおいて、ＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）通信分野等のデータ転送に関する構成の一例が、特表２００６−０６７８３１号公報（特許文献１）に開示されている。すなわち、ファイアウォールには、通過を許容する１または複数のポートを集約した集約ポートのみが許可設定されている。通信元クライアントは、内部ネットワークに接続する目的の接続要求先と接続する場合、目的の接続要求先が設定された接続要求情報を、集約ポートを宛先として発行する。中継機サーバーでは、接続要求情報取得手段は、ファイアウォールを通過し、集約ポートより入力された接続要求情報を読み出す。中継手段は、接続要求情報に基づいて宛先を目的の接続要求先に変更し、その接続要求情報を目的の接続要求先に送信して接続要求を行なうとともに、目的の接続要求先から取得した接続結果情報を通信元クライアントに送信する。
【０００３】
また、特表２０００−０１６２０１号公報（特許文献２）には、以下のような技術が開示されている。すなわち、複数のクライアントのＰＣに組込まれたｈｔｔｐ（HyperText Transfer Protocol）によりＷｅｂサーバーと連動するアプリケーションプログラムと上記各クライアントＰＣ（Personal Computer）と、インターネットおよび／又はイントラネットを介して接続されｈｔｔｐの通信プログラムおよびアプリケーションを実行するためのＣＧＩ（Common Gateway Interface）インターフェイスを有すると共にＷｅｂ型チャットサーバーを有するＷｅｂサーバーとからなり、該Ｗｅｂ型チャットサーバーがＰＣのアプリケーションを使って各クライアント同士がインターネットおよび／又はイントラネットを通して、擬似リアルタイムの状態で電子文のやり取りできるように構成されたｈｔｔｐプロトコル連動のマルチメディアダイレクト通信システムである。
【０００４】
また、特開２００７−１４２６７５号公報（特許文献３）には、以下のような技術が開示されている。すなわち、通信装置は、所定のプロトコルに含まれる第１のプロトコルで送信される第１のメッセージをサーバーに送信したときにネットワーク中継装置がアドレス変換した変換後ポート番号を含むポート番号情報メッセージをサーバーから受信する送受信部と、送信元ポート番号を変換後ポート番号と同一の値に設定した第２のメッセージを作成するＵＤＰ（User Datagram Protocol）処理部と、第２のメッセージを所定のプロトコルに含まれない第２のプロトコルでカプセル化した第３のメッセージを作成するＥＳＰ（Encapsulated Security Payload）処理部と、第３のメッセージを所定のプロトコルに含まれる第３のプロトコルでカプセル化した第４のメッセージを作成するＵＤＰ処理部と、第４のメッセージを、ネットワーク中継装置を介してサーバーに送信する送受信部とを備える。
【０００５】
また、特開２０１０−０９３４６５号公報（特許文献４）には、以下のような技術が開示されている。すなわち、ヘッダー領域、ペイロード領域およびトレイラー領域で構成されるデータパケットを、データ送信元より経路選択装置を経由してデータ転送先に送信するデータ転送システムにおいて、上記データ送信元は、上記データパケットのトレイラー領域に次のデータパケットのヘッダー情報を付与する次データヘッダー付与部を備え、上記経路選択装置は、上記データ送信元より受信したデータパケットに付与された次データヘッダー情報に基づいて次データパケットの転送先ポートを決定するヘッダー解析部を備える。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特表２００６−０６７８３１号公報
【特許文献２】特表２０００−０１６２０１号公報
【特許文献３】特開２００７−１４２６７５号公報
【特許文献４】特開２０１０−０９３４６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
図１５は、関連技術の課題１を説明するための図である。
【０００８】
図１５を参照して、ＴＣＰ／ＩＰ通信を行なうアプリケーションでは、各アプリケーションのポート番号が重複していると通信が成立しない。具体的には、アプリケーション１および２に対応するポート番号が８５００で競合していると、サーバー側のアプリケーション２は起動することができない（課題１）。
【０００９】
図１６は、関連技術の課題２を説明するための図である。
【００１０】
図１６を参照して、課題１を解決するために、ファイアウォールでは、ＴＣＰ／ＩＰ通信を行なうアプリケーションのサービス数だけポートの穴開け処理すなわちアクセス制限の例外処理を行なう必要がある。具体的には、アプリケーション１に対応するポート番号８５００、およびアプリケーション２に対応するポート番号８５０１の２つのポート番号の穴開け処理を行なう必要がある。しかしながら、このようなポートの穴空け処理は、ファイアウォールのセキュリティを弱める要因となってしまう（課題２）。
【００１１】
また、クライアント側に専用モジュールおよび専用サーバーを用意してファイアウォールの穴開け数を集約することは可能であるが、モジュールの設定工数およびサーバーの購入費がかかるという課題があった。
【００１２】
そして、特許文献１〜特許文献４には、このような課題を解決するための構成は開示されていない。
【００１３】
この発明は、上述の課題を解決するためになされたもので、その目的は、簡易な構成で、他の装置のアプリケーションからのメッセージを処理するとともに、セキュリティの向上を図ることが可能な情報処理装置、情報処理システム、メッセージ処理方法およびメッセージ処理プログラムを提供することである。
【課題を解決するための手段】
【００１４】
上記課題を解決するために、この発明のある局面に係わる情報処理装置は、他の装置における外部アプリケーションからのメッセージを自己の内部アプリケーションによって処理するための情報処理装置であって、複数の前記外部アプリケーション間で共通の集約ポート番号を含むように前記外部アプリケーションによって生成されたメッセージを１または複数の前記外部アプリケーションから受信するためのメッセージ受信部と、前記メッセージ受信部によって受信された前記メッセージに対応する前記内部アプリケーションを判別するための判別部と、前記判別部によって判別された前記内部アプリケーションへ対応の前記メッセージを転送するためのメッセージ転送部とを備える。
【００１５】
上記課題を解決するために、この発明のある局面に係わる情報処理システムは、クライアントと、サーバーとを備え、前記クライアントは、実行する各アプリケーションによって前記各アプリケーション間で共通の集約ポート番号を含むように生成されるメッセージを前記サーバーへ送信し、前記サーバーは、前記集約ポート番号を含むメッセージを１または複数の前記アプリケーションから受信し、受信した前記メッセージに対応する自己のアプリケーションを判別し、判別した前記アプリケーションへ対応の前記メッセージを転送する。
【００１６】
上記課題を解決するために、この発明のある局面に係わるメッセージ処理方法は、他の装置における外部アプリケーションからのメッセージを自己の内部アプリケーションによって処理するための情報処理装置におけるメッセージ処理方法であって、複数の前記外部アプリケーション間で共通の集約ポート番号を含むように前記外部アプリケーションによって生成されたメッセージを１または複数の前記外部アプリケーションから受信するステップと、受信した前記メッセージに対応する前記内部アプリケーションを判別するステップと、判別した前記内部アプリケーションへ対応の前記メッセージを転送するステップとを含む。
【００１７】
上記課題を解決するために、この発明のある局面に係わるメッセージ処理プログラムは、他の装置における外部アプリケーションからのメッセージを自己の内部アプリケーションによって処理するための情報処理装置におけるメッセージ処理プログラムであって、コンピュータに、複数の前記外部アプリケーション間で共通の集約ポート番号を含むように前記外部アプリケーションによって生成されたメッセージを１または複数の前記外部アプリケーションから受信するステップと、受信した前記メッセージに対応する前記内部アプリケーションを判別するステップと、判別した前記内部アプリケーションへ対応の前記メッセージを転送するステップとを実行させる。
【発明の効果】
【００１８】
本発明によれば、簡易な構成で、他の装置のアプリケーションからのメッセージを処理するとともに、セキュリティの向上を図ることができる。
【図面の簡単な説明】
【００１９】
【図１】本発明の第１の実施の形態に係る情報処理システムの構成を示す図である。
【図２】本発明の第１の実施の形態に係るサーバーの概略構成図である。
【図３】本発明の第１の実施の形態に係る情報処理装置におけるアプリケーション判別データベースの内容の一例を示す図である。
【図４】本発明の第１の実施の形態に係る情報処理装置におけるｓｒｃ／ｄｓｔ情報データベースの内容の一例を示す図である。
【図５】本発明の第１の実施の形態に係る情報処理装置がメッセージ処理を行なう際の動作手順を示すフローチャートである。
【図６】本発明の第１の実施の形態に係る情報処理装置がメッセージ処理を行なう際の動作手順を示すフローチャートである。
【図７】本発明の第１の実施の形態に係る情報処理装置がメッセージ処理を行なう際の動作手順を示すフローチャートである。
【図８】本発明の第２の実施の形態に係る情報処理システムの構成を示す図である。
【図９】本発明の第２の実施の形態に係る情報処理装置におけるアプリケーションデータ蓄積データベースの内容の一例を示す図である。
【図１０】本発明の第２の実施の形態に係る情報処理装置がメッセージ蓄積処理を行なう際の動作手順を示すフローチャートである。
【図１１】本発明の第２の実施の形態に係る情報処理システムの構成を示す図である。
【図１２】本発明の第２の実施の形態に係る情報処理装置がメッセージ学習処理を行なう際の動作手順を示すフローチャートである。
【図１３】本発明の第２の実施の形態に係る情報処理システムの構成を示す図である。
【図１４】本発明の第２の実施の形態に係る情報処理システムの構成を示す図である。
【図１５】関連技術の課題１を説明するための図である。
【図１６】関連技術の課題２を説明するための図である。
【発明を実施するための形態】
【００２０】
以下、本発明の第１の実施の形態について図面を用いて説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰り返さない。
【００２１】
＜第１の実施の形態＞
［構成および基本動作］
図１は、本発明の第１の実施の形態に係る情報処理システムの構成を示す図である。
【００２２】
図１を参照して、情報処理システム４０１は、情報処理装置であるサーバー３０およびクライアント１０，２０を備える。図１では、情報処理システム４０１におけるクライアントを２つとしているが、情報処理システム４０１が１つまたは３つ以上のクライアントを備える構成であってもよい。
【００２３】
本発明の第１の実施の形態に係る情報処理装置は、典型的には、汎用的なアーキテクチャを有するコンピュータを基本構造としており、予めインストールされたプログラムを実行することで、後述するような各種機能を提供する。一般的に、このようなプログラムは、フレキシブルディスク（Flexible Disk）およびＣＤ−ＲＯＭ（Compact Disk Read Only Memory）などの記録媒体に格納されて、あるいはネットワークなどを介して流通する。
【００２４】
本発明の第１の実施の形態に係るプログラムは、ＯＳ等の他のプログラムの一部に組み込まれて提供されるものであってもよい。この場合でも、本発明の第１の実施の形態に係るプログラム自体は、上記のような組み込み先の他のプログラムが有するモジュールを含んでおらず、当該他のプログラムと協働して処理が実行される。すなわち、本発明の第１の実施の形態に係るプログラムとしては、このような他のプログラムに組み込まれた形態であってもよい。
【００２５】
なお、代替的に、プログラムの実行により提供される機能の一部もしくは全部を専用のハードウェア回路として実装してもよい。
【００２６】
図２は、本発明の第１の実施の形態に係るサーバーの概略構成図である。クライアント１０，２０の構成は、たとえばサーバー３０と同様である。
【００２７】
図２を参照して、サーバー３０は、演算処理部であるＣＰＵ（Central Processing Unit）１０１と、メインメモリ１０２と、ハードディスク１０３と、入力インターフェイス１０４と、表示コントローラ１０５と、データリーダ／ライタ１０６と、通信インターフェイス１０７とを備える。これらの各部は、バス１２１を介して、互いにデータ通信可能に接続される。
【００２８】
ＣＰＵ１０１は、ハードディスク１０３に格納されたプログラム（コード）をメインメモリ１０２に展開し、これらを所定順序で実行することにより、各種の演算を実施する。メインメモリ１０２は、典型的には、ＤＲＡＭ（Dynamic Random Access Memory）などの揮発性の記憶装置であり、ハードディスク１０３から読み出されたプログラムに加えて、各種の演算処理結果を示すデータなどを保持する。また、ハードディスク１０３は不揮発性の磁気記憶装置であり、ＣＰＵ１０１で実行されるプログラムに加えて、各種設定値などが格納される。このハードディスク１０３にインストールされるプログラムは、後述するように、記録媒体１１１に格納された状態で流通する。なお、ハードディスク１０３に加えて、あるいはハードディスク１０３に代えて、フラッシュメモリなどの半導体記憶装置を採用してもよい。
【００２９】
入力インターフェイス１０４は、ＣＰＵ１０１とキーボード１０８、マウス１０９および図示しないタッチパネルなどの入力部との間のデータ伝送を仲介する。すなわち、入力インターフェイス１０４は、ユーザが入力部を操作することで与えられる操作指令などの外部からの入力を受け付ける。
【００３０】
表示コントローラ１０５は、表示部の典型例であるディスプレイ１１０と接続され、ディスプレイ１１０での表示を制御する。すなわち、表示コントローラ１０５は、ＣＰＵ１０１による画像処理の結果などをユーザに対して表示する。ディスプレイ１１０は、たとえばＬＣＤ（Liquid Crystal Display）またはＣＲＴ（Cathode Ray Tube）である。
【００３１】
データリーダ／ライタ１０６は、ＣＰＵ１０１と記録媒体１１１の間のデータ伝送を仲介する。すなわち、記録媒体１１１は、サーバー３０で実行されるプログラムなどが格納された状態で流通し、データリーダ／ライタ１０６は、この記録媒体１１１からプログラムを読み出す。また、データリーダ／ライタ１０６は、ＣＰＵ１０１の内部指令に応答して、サーバー３０における処理結果などを記録媒体１１１へ書き込む。なお、記録媒体１１１は、たとえば、ＣＦ（Compact Flash）およびＳＤ（Secure Digital）などの汎用的な半導体記憶デバイス、フレキシブルディスク（Flexible Disk）などの磁気記憶媒体、またはＣＤ−ＲＯＭ（Compact Disk Read Only Memory）などの光学記憶媒体である。
【００３２】
通信インターフェイス１０７は、ＣＰＵ１０１と他のパーソナルコンピュータおよびサーバー装置などの間のデータ伝送を仲介する。通信インターフェイス１０７は、典型的には、イーサネット（登録商標）またはＵＳＢ（Universal Serial Bus）の通信機能を有する。なお、記録媒体１１１に格納されたプログラムをサーバー３０にインストールする形態に代えて、通信インターフェイス１０７を介して配信サーバーなどからダウンロードしたプログラムをサーバー３０にインストールしてもよい。
【００３３】
また、サーバー３０には、必要に応じてプリンタなどの他の出力装置が接続されてもよい。
【００３４】
［制御構造］
次に、サーバー３０におけるメッセージ処理機能を提供するための制御構造について説明する。
【００３５】
図１は、本発明の第１の実施の形態に係る情報処理装置が提供する制御構造も示している。図１に示すサーバー３０における各ブロックは、ハードディスク１０３に格納されたプログラム（コード）などをメインメモリ１０２に展開して、ＣＰＵ１０１に実行させることで提供される。なお、図１に示す制御構造の一部もしくは全部を専用ハードウェアおよび／または配線回路によって実現してもよい。
【００３６】
図１を参照して、サーバー３０は、その制御構造として、メッセージ送受部３３と、メッセージ転送部３５と、画面出力部３９と、判別部４１とを備える。また、サーバー３０は、アプリケーション判別データベース（アプリケーション情報記憶部）３８と、ＧＵＩ（Graphical User Interface）４０と、ｓｒｃ／ｄｓｔ情報データベース（コネクション情報記憶部）４２とを備える。判別部４１は、データベース（ＤＢ）参照部４１ａと、整合判断部４１ｂと、データベース（ＤＢ）書き換え部４１ｃとを含む。アプリケーション判別データベース（ＤＢ）３８およびｓｒｃ／ｄｓｔ情報データベース（ＤＢ）４２は、図２に示すメインメモリ１０２またはハードディスク１０３に保存される。
【００３７】
なお、ＧＵＩ４０はサーバー３０に実装される構成に限らず、別の装置に実装されてもよい。
【００３８】
サーバー３０には、アプリケーション３１と、アプリケーション３２とが実装されている。クライアント１０には、アプリケーション１１と、アプリケーション１２とが実装されている。クライアント２０には、アプリケーション２１と、アプリケーション２２とが実装されている。アプリケーション３１、アプリケーション１１およびアプリケーション２１は、同じ種類のアプリケーションＡとして対応しており、アプリケーション３２、アプリケーション１２およびアプリケーション２２は、同じ種類のアプリケーションＢとして対応している。
【００３９】
また、クライアント上アプリケーション（外部アプリケーション）１１，１２，２１，２２の受け付けポートはそれぞれ１１１１，２２２２，３３３３，４４４４番ポートである。クライアント上アプリケーション１１，１２，２１，２２のサーバー３０への送信先ポートは８５００番ポートであり、サーバー上アプリケーション（内部アプリケーション）３１，３２の受け付けポートはそれぞれ８５０１，８５０２番ポートである。
【００４０】
サーバー３０は、クライアント１０，２０におけるクライアント上アプリケーションからのメッセージを自己のサーバー上アプリケーション３１，３２によって処理する。
【００４１】
クライアント１０，２０は、実行する各アプリケーションによって生成されるメッセージに集約ポート番号を含めてサーバー３０へ送信する。
【００４２】
サーバー３０は、集約ポート番号を含むメッセージを各アプリケーションから受信し、受信したメッセージに対応する自己のアプリケーションを判別し、判別したアプリケーションへ対応のメッセージを転送する。
【００４３】
より詳細には、サーバー３０において、メッセージ送受部３３は、集約ポート番号を含むメッセージを各クライアント上アプリケーションから受信する。
【００４４】
判別部４１は、メッセージ送受部３３によって受信されたメッセージに対応するサーバー上アプリケーションを判別する。
【００４５】
メッセージ転送部３５は、判別部４１によって判別されたサーバー上アプリケーションへ対応のメッセージを転送する。
【００４６】
たとえば、判別部４１は、メッセージ送受部３３によって受信されたメッセージに基づいて、メッセージに対応するサーバー上アプリケーションの個別ポート番号を判別する。
【００４７】
メッセージ転送部３５は、メッセージ送受部３３によって受信されたメッセージの集約ポート番号を、判別部４１によって判別された個別ポート番号に置き換えたメッセージを生成して転送する。
【００４８】
図３は、本発明の第１の実施の形態に係る情報処理装置におけるアプリケーション判別データベースの内容の一例を示す図である。
【００４９】
図３を参照して、アプリケーション判別データベース３８は、判別ルール、すなわちサーバー上アプリケーションとメッセージに含まれる所定の文字列との対応関係を示すアプリケーション情報を記憶する。アプリケーション判別ＤＢ３８は、判別部４１における整合判断部４１ｂがメッセージの転送先情報を得るために利用される。
【００５０】
判別部４１は、メッセージ送受部３３によって受信されたメッセージの文字列とアプリケーション情報における所定の文字列とを照合することにより、メッセージに対応するサーバー上アプリケーションを判別する。
【００５１】
たとえば、アプリケーション判別ＤＢ３８には、アプリケーション名、メッセージ方向、サーバー上アプリケーションへの転送先ポート、比較箇所、および比較文字列が格納される。
【００５２】
本発明の第１の実施の形態に係る情報処理システムでは、管理者により与えられた判別ルールを用いる。
【００５３】
まず、一般にプロトコルの仕様が公開されているため事前に判別ルールを用意しておけるメッセージに対して、テンプレートを作成しておきアプリケーション判別ＤＢ３８に格納しておく。
【００５４】
たとえば、アプリケーションＢとして、ＲＦＣ（Request for Comments）で公開されているＨＴＴＰ（HyperText Transfer Protocol）のメッセージであって、メッセージ方向がＣｌｉｅｎｔ→Ｓｅｒｖｅｒのメッセージは「ＧＥＴ  ＊＊＊＊  ＨＴＴＰ／＊＊＊＊」というプロトコルヘッダーを有する。ここで、「＊＊＊＊」は固定で無い文字列である。このため、「ＧＥＴ  」という固定文字列を判別ルールとしてテンプレート化しておくことが可能である。
【００５５】
また、メッセージ方向がＳｅｒｖｅｒ→Ｃｌｉｅｎｔのメッセージは「ＨＴＴＰ／＊＊＊＊  ２００  ＯＫ」というプロトコルヘッダーを有するため、「ＨＴＴＰ／」という固定文字列を判別ルールとしてテンプレート化しておくことが可能である。
【００５６】
なお、判別ルール作成のアルゴリズムを追加することにより、これらの他にも判別ルールを用意することが可能である。たとえば、ＳＭＴＰ（Simple Mail Transfer Protocol）については「ＨＥＬＯ」といった固定文字列を判別ルールとしてテンプレート化しておくことが可能である。
【００５７】
図４は、本発明の第１の実施の形態に係る情報処理装置におけるｓｒｃ／ｄｓｔ情報データベースの内容の一例を示す図である。
【００５８】
図４を参照して、ｓｒｃ／ｄｓｔ情報データベース４２は、サーバー上アプリケーション、およびサーバー上アプリケーションとコネクション確立済みのクライアント上アプリケーションを実行するクライアントの識別情報を示すコネクション情報を記憶する。
【００５９】
判別部４１は、メッセージ送受部３３によって受信されたメッセージの送信元の識別情報とコネクション情報における識別情報とを照合することにより、メッセージに対応するサーバー上アプリケーションを判別する。
【００６０】
たとえば、ｓｒｃ／ｄｓｔ情報ＤＢ４２には、判別部４１におけるＤＢ書き換え部４１ｃによりアプリケーション名、クライアント情報（送信元情報）たとえばＩＰアドレスおよびクライアント上アプリケーションの受け付けポート、およびサーバー上アプリケーションへの転送先ポート（送信先情報）が格納される。ｓｒｃ／ｄｓｔ情報ＤＢ４２は、一度コネクション確立したクライアント上アプリケーションからのメッセージをアプリケーション判別ＤＢ３８における判別ルールと照合せずにサーバー上アプリケーションに転送するために利用される。
【００６１】
［動作］
次に、本発明の第１の実施の形態に係る情報処理装置の動作について図面を用いて説明する。本発明の第１の実施の形態では、サーバー３０を動作させることによって、本発明の第１の実施の形態に係るメッセージ処理方法が実施される。よって、本発明の第１の実施の形態に係るメッセージ処理方法の説明は、以下のサーバー３０の動作説明に代える。なお、以下の説明においては、適宜図１を参照する。
【００６２】
図５および図６は、本発明の第１の実施の形態に係る情報処理装置がメッセージ処理を行なう際の動作手順を示すフローチャートである。
【００６３】
図５および図６を参照して、まず、クライアント１０におけるアプリケーション１１から送信されたメッセージ（ステップＳ３０３）は、サーバー３０におけるメッセージ送受部３３で受信され、整合判断部４１ｂに送られる（ステップＳ２１５）。
【００６４】
次に、整合判断部４１ｂは、ＤＢ参照部４１ａ経由でアプリケーション判別ＤＢ３８を参照する（ステップＳ２１６）。
【００６５】
次に、整合判断部４１ｂは、ＤＢ参照部４１ａ経由でアプリケーション判別ＤＢ３８に格納されている判別ルールを呼び出し、当該メッセージに該当する判別ルールがあるか照らし合わせ（ステップＳ２１７）、該当判別ルールの有無により場合分けされた処理を行なう。
【００６６】
すなわち、整合判断部４１ｂは、該当判別ルールが存在しない場合には（ステップＳ２１８でＮＯ）、当該メッセージを廃棄する（ステップＳ２１９）。
【００６７】
次に、整合判断部４１ｂは、画面出力部３９からＧＵＩ４０に結果を表示させて処理を終了する。ＧＵＩ４０は、エラー情報として「未登録のメッセージが廃棄されました。」を表示する（ステップＳ２２０，Ｓ２２１）。
【００６８】
一方、整合判断部４１ｂは、該当判別ルールが存在する場合には（ステップＳ２１８でＹＥＳ）、ＤＢ書き換え部４１ｃを経由してｓｒｃ／ｄｓｔ情報ＤＢ４２に当該メッセージの送信元情報および送信先情報が格納されているかを確認する（ステップＳ２２２）。
【００６９】
整合判断部４１ｂは、ｓｒｃ／ｄｓｔ情報ＤＢ４２に該当情報が格納されていない場合には、ＤＢ書き換え部４１ｃにて該当情報をｓｒｃ／ｄｓｔ情報ＤＢ４２に格納する（ステップＳ２２３）。すなわち、整合判断部４１ｂは、メッセージ送受部３３によって受信されたメッセージに対応するサーバー上アプリケーションを判別した後（ステップＳ２１８でＹＥＳ）、判別したメッセージに対応するコネクション情報が存在しない場合には（ステップＳ２２２でＮＯ）、判別したメッセージに対応するサーバー上アプリケーションおよびメッセージを送信してきたクライアント上アプリケーションを実行するクライアントの識別情報をｓｒｃ／ｄｓｔ情報ＤＢ４２におけるコネクション情報に追加する。
【００７０】
そして、整合判断部４１ｂは、当該メッセージをメッセージ転送部３５からサーバー上アプリケーションに転送する（ステップＳ２２４）。
【００７１】
一方、整合判断部４１ｂは、ｓｒｃ／ｄｓｔ情報ＤＢ４２に該当情報が格納されている場合には、単に当該メッセージをメッセージ転送部３５からサーバー上アプリケーションに転送する（ステップＳ２２４）。
【００７２】
次に、サーバー上アプリケーションは、メッセージ転送部３５からメッセージを受信して（ステップＳ１０３）、応答メッセージを送信する（ステップＳ１０４）。
【００７３】
次に、整合判断部４１ｂは、サーバー上アプリケーションから応答メッセージを受信して（ステップＳ２２５）、ＤＢ参照部４１ａ経由でアプリケーション判別ＤＢ３８を参照する（ステップＳ２２６）。
【００７４】
次に、整合判断部４１ｂは、ＤＢ参照部４１ａ経由でアプリケーション判別ＤＢ３８に格納されている判別ルールを呼び出し、サーバー上アプリケーションからの応答メッセージについても該当する判別ルールがあるか照らし合わせ（ステップＳ２２７）、該当判別ルールの有無により場合分けされた処理を行なう。
【００７５】
すなわち、整合判断部４１ｂは、該当判別ルールが存在しない場合には（ステップＳ２２８でＮＯ）、当該メッセージを廃棄する（ステップＳ２２９）。
【００７６】
次に、整合判断部４１ｂは、画面出力部３９からＧＵＩ４０に結果を表示させて処理を終了する。ＧＵＩ４０は、エラー情報として「未登録のメッセージが廃棄されました。」を表示する（ステップＳ２３０，Ｓ２３１）。
【００７７】
一方、整合判断部４１ｂは、該当判別ルールが存在する場合には（ステップＳ２２８でＹＥＳ）、単に当該メッセージをメッセージ送受部３３からクライアント上アプリケーションに送信する（ステップＳ２３２）。
【００７８】
次に、クライアント上アプリケーションは、整合判断部４１ｂから当該メッセージを受信する（ステップＳ３０４）。
【００７９】
図７は、本発明の第１の実施の形態に係る情報処理装置がメッセージ処理を行なう際の動作手順を示すフローチャートである。
【００８０】
図７は、図５および図６に示す処理が行われ、クライアント上アプリケーションおよびサーバー上アプリケーション間のコネクションが確立している状態における動作を示している。
【００８１】
まず、クライアント上アプリケーションおよびサーバー上アプリケーション間のコネクションが確立されている状態において、クライアント１０におけるアプリケーション１１からメッセージが送信される（ステップＳ３０５）。
【００８２】
次に、サーバー３０におけるメッセージ送受部３３は、当該メッセージを受信し、整合判断部４１ｂに送る（ステップＳ２３３）。
【００８３】
次に、整合判断部４１ｂは、ＤＢ書き換え部４１ｃ経由でｓｒｃ／ｄｓｔ情報ＤＢ４２を参照し、当該メッセージに含まれる送信元情報すなわちクライアントのＩＰアドレスおよびクライアント上アプリケーションの受け付けポートに基づいて、ｓｒｃ／ｄｓｔ情報ＤＢ４２に格納されている送信先情報すなわち転送先ポートを呼び出す（ステップＳ２３４）。そして、整合判断部４１ｂは、当該メッセージに送信先情報を含めて、メッセージ転送部３５から該当アプリケーション宛にメッセージを転送する（ステップＳ２３５）。
【００８４】
次に、アプリケーション３１は、メッセージ転送部３５からメッセージを受信して（ステップＳ１０５）、応答メッセージを送信する（ステップＳ１０６）。
【００８５】
次に、メッセージ送受部３３は、当該応答メッセージを受信して（ステップＳ２３６）、単に当該応答メッセージをクライアント１０におけるアプリケーション１１へ送信する（ステップＳ２３７）。
【００８６】
次に、アプリケーション１１は、メッセージ送受部３３から当該応答メッセージを受信する（ステップＳ３０６）。
【００８７】
次に、アプリケーション１１は、アプリケーション３１とのコネクションを切断しない場合には（ステップＳ３０７でＮＯ）、処理を終了する。
【００８８】
一方、アプリケーション１１は、アプリケーション３１とのコネクションを切断する場合には（ステップＳ３０７でＹＥＳ）、サーバー３０に対してＦＩＮパケットを送信する（ステップＳ３０８）。
【００８９】
次に、整合判断部４１ｂは、ＦＩＮパケットを受信すると（ステップＳ２３８）、ＦＩＮパケットをメッセージ転送部３５からアプリケーション３１に転送する（ステップＳ２４１）。
【００９０】
ここで、整合判断部４１ｂは、ＦＩＮパケットの送信元に関する情報がｓｒｃ／ｄｓｔ情報ＤＢ４２に存在する場合には（ステップＳ２３９でＹＥＳ）、ＤＢ書き換え部４１ｃを制御して、該当情報をｓｒｃ／ｄｓｔ情報ＤＢ４２から削除する（ステップＳ２４０）。
【００９１】
次に、アプリケーション３１は、ＦＩＮパケットを受信して（ステップＳ１０７）、ＡＣＫパケットを送信する（ステップＳ１０８）。
【００９２】
次に、メッセージ送受部３３は、アプリケーション３１からＡＣＫパケットを受信して（ステップＳ２４２）、ＡＣＫパケットをクライアント１０におけるアプリケーション１１へ送信する（ステップＳ２４３）。
【００９３】
次に、クライアント１０におけるアプリケーション１１がＡＣＫパケットを受信して、処理を終了する（ステップＳ３０９）。
【００９４】
ところで、ＴＣＰ／ＩＰ通信を行なうアプリケーションでは、各アプリケーションのポート番号が重複していると通信が成立しない。また、ＴＣＰ／ＩＰ通信を行なうアプリケーションのサービス数だけポートの穴開け処理を行なうと、ファイアウォールのセキュリティを弱める要因となってしまう。
【００９５】
また、クライアント側に専用モジュールおよび専用サーバーを用意してファイアウォールの穴開け数を集約することは可能であるが、モジュールの設定工数およびサーバーの購入費がかかってしまう。具体的には、ファイアウォールの穴開けを最小に留める構成であっても、クライアント・サーバーモデルに複数アプリケーションをインストールする場合、専用モジュールおよび専用サーバーを用意したり、アプリケーションの設定変更およびメッセージの判別ルールを事前設定したりする必要があり、人手の工数およびハードウェア費用がかかってしまう。
【００９６】
たとえば、特許文献１に記載の構成は、通信元クライアントにおいて目的の接続要求先をパケットに含めておく構成であるため、通信元クライアントにおいて専用モジュール等が必要となってしまう。
【００９７】
これに対して、本発明の第１の実施の形態に係る情報処理装置では、メッセージ送受部３３は、集約ポート番号を含むメッセージを１または複数のクライアント上アプリケーションから受信する。判別部４１は、メッセージ送受部３３によって受信されたメッセージに対応するサーバー上アプリケーションを判別する。そして、メッセージ転送部３５は、判別部４１によって判別されたサーバー上アプリケーションへ対応のメッセージを転送する。
【００９８】
具体的には、「パターンマッチングによりアプリケーションを判別するための判別ルール」を用意し、アプリケーション判別ＤＢに格納する。この判別ルールは、管理者により与えられてもよいし、自動的な蓄積および学習により得られてもよいし、あるいはその他の何らかの方法で得ることができる。
【００９９】
そして、集約ポート宛にメッセージを送信するようにクライアント上アプリケーションを設定しておく。そして、サーバーが、該当ポートを経由するメッセージを、アプリケーション判別ＤＢ内の判別ルールとを照合して整合性を判断し、サーバー上にある本来の送信先であるアプリケーションの受け付けポートに対して転送する。
【０１００】
このように、本発明の第１の実施の形態に係る情報処理装置では、複数サービスの使用ポートを集約し、各サービスのクライアントからの接続を同一ポートで受け付ける。これにより、ファイアウォールの設定変更をなくし、セキュリティ強度を高めることができる。言い換えれば、複数アプリケーションが共存する環境で、クライアント側に専用モジュールおよび専用サーバーを設けることなく、ファイアウォールの穴開けを集約する、すなわちクライアントからサーバー宛に送信されるメッセージのサーバー側受け付けポートを集約することが可能となり、セキュリティを強固に保つことができる。
【０１０１】
また、クライアント側において専用モジュールおよび専用サーバーを用意する必要がないことから、大規模環境であるほど、クライアント側における設定のための工数およびハードウェア費用を削減する効果を顕著に得ることができる。
【０１０２】
すなわち、本発明の第１の実施の形態に係る情報処理装置における各構成要素のうち、メッセージ送受部３３と、メッセージ転送部３５と、判別部４１とからなる最小構成により、簡易な構成で、他の装置のアプリケーションからのメッセージを処理するとともに、セキュリティの向上を図るという本発明の目的を達成することが可能となる。
【０１０３】
また、本発明の第１の実施の形態に係る情報処理装置では、判別部４１は、メッセージ送受部３３によって受信されたメッセージに基づいて、メッセージに対応するサーバー上アプリケーションの個別ポート番号を判別する。そして、メッセージ転送部３５は、メッセージの集約ポート番号を、判別部４１によって判別された個別ポート番号に置き換えたメッセージを生成して転送する。
【０１０４】
このような構成により、クライアント上アプリケーションからサーバー上アプリケーションへのメッセージ転送を、サーバー側における簡易な処理で行なうことが可能となる。
【０１０５】
また、本発明の第１の実施の形態に係る情報処理装置では、アプリケーション判別データベース３８は、サーバー上アプリケーションとメッセージに含まれる所定の文字列との対応関係を示すアプリケーション情報を記憶する。そして、判別部４１は、メッセージ送受部３３によって受信されたメッセージの文字列とアプリケーション情報における所定の文字列とを照合することにより、メッセージに対応するサーバー上アプリケーションを判別する。
【０１０６】
このような構成により、クライアント上アプリケーションから受信したメッセージに対応するサーバー上アプリケーションの判別を、サーバー側における簡易な構成および処理で行なうことが可能となる。
【０１０７】
また、本発明の第１の実施の形態に係る情報処理装置では、ｓｒｃ／ｄｓｔ情報データベース４２は、サーバー上アプリケーション、およびサーバー上アプリケーションとコネクション確立済みのクライアント上アプリケーションを実行するクライアントの識別情報を示すコネクション情報を記憶する。そして、判別部４１は、メッセージ送受部３３によって受信されたメッセージの送信元の識別情報とコネクション情報における識別情報とを照合することにより、メッセージに対応するサーバー上アプリケーションを判別する。
【０１０８】
このような構成により、コネクションを確立したクライアント上アプリケーションからのメッセージを、判別ルールとの照合処理を行なうことなく、簡易な処理でサーバー上アプリケーションへ転送することができる。
【０１０９】
また、本発明の第１の実施の形態に係る情報処理装置では、判別部４１は、メッセージ送受部３３によって受信されたメッセージに対応するサーバー上アプリケーションを判別した後、判別したメッセージに対応するコネクション情報が存在しない場合には、判別したメッセージに対応するサーバー上アプリケーションおよびメッセージを送信してきたクライアント上アプリケーションを実行するクライアントの識別情報をコネクション情報に追加する。
【０１１０】
このような構成により、コネクション情報すなわちｓｒｃ／ｄｓｔ情報データベース４２に、必要な情報を適切に追加することができる。
【０１１１】
また、本発明の第１の実施の形態に係る情報処理装置では、判別部４１は、サーバー上アプリケーションとクライアント上アプリケーションとのコネクションが切断される場合には、クライアント上アプリケーションに対応する情報をコネクション情報から削除する。
【０１１２】
このような構成により、コネクション情報すなわちｓｒｃ／ｄｓｔ情報データベース４２から、不要となった情報を適切に削除することができる。
【０１１３】
また、本発明の第１の実施の形態に係る情報処理装置では、メッセージ送受部３３は、メッセージをサーバー上アプリケーションから受信する。判別部４１は、サーバー上アプリケーションからのメッセージに対応するクライアント上アプリケーションを判別し、判別できなかった場合にはメッセージを廃棄する。そして、メッセージ転送部３５は、判別部４１がメッセージに対応するクライアント上アプリケーションを判別できた場合には、メッセージをクライアント上アプリケーションに転送する。
【０１１４】
このような構成により、サーバー上アプリケーションからクライアント上アプリケーションへのメッセージについて、誤った転送処理を防ぐことが可能となる。
【０１１５】
また、本発明の第１の実施の形態に係る情報処理装置では、判別部４１は、メッセージ送受部３３によって受信されたメッセージに対応するアプリケーションを判別できない場合には、エラー情報を出力する。
【０１１６】
このような構成により、メッセージ転送処理における異常をユーザに適切に通知することが可能となる。
【０１１７】
なお、メッセージ転送部３５は、メッセージ送受部３３によって受信されたメッセージの集約ポート番号を、判別部４１によって判別された個別ポート番号に置き換えたメッセージを生成して転送する構成であるとしたが、これに限定するものではない。メッセージ転送部３５は、当該メッセージに個別ポート番号を追加してサーバー上アプリケーションに転送する構成であってもよいし、個別ポート番号を用いずに何らかの方法で当該メッセージを対応のサーバー上アプリケーションに転送する構成であってもよい。
【０１１８】
次に、本発明の他の実施の形態について図面を用いて説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰り返さない。
【０１１９】
＜第２の実施の形態＞
本実施の形態は、判別ルールを自動的な蓄積および学習により構築する情報処理装置に関する。以下で説明する内容以外は第１の実施の形態に係る情報処理装置と同様である。
【０１２０】
図８は、本発明の第２の実施の形態に係る情報処理システムの構成を示す図である。図８は、サーバー３０によるメッセージの蓄積段階を示している。
【０１２１】
図８を参照して、情報処理システム４０２は、情報処理装置であるサーバー３０およびクライアント１０，２０を備える。図８では、情報処理システム４０２におけるクライアントを２つとしているが、情報処理システム４０２が１つまたは３つ以上のクライアントを備える構成であってもよい。
【０１２２】
サーバー３０は、その制御構造として、本発明の第１の実施の形態に係るサーバー３０と比べて、さらに、蓄積部３４と、学習部３６とを備える。蓄積部３４は、メッセージ格納部３４ａを含む。学習部３６は、メッセージ呼出部３６ａと、パターン分析部３６ｂと、パターン格納部３６ｃとを含む。
【０１２３】
また、サーバー３０は、本発明の第１の実施の形態に係るサーバーと比べて、さらに、アプリケーションデータ蓄積データベース（メッセージ蓄積部）３７を備える。アプリケーションデータ蓄積データベース（ＤＢ）３７は、図２に示すメインメモリ１０２またはハードディスク１０３に保存される。
【０１２４】
図９は、本発明の第２の実施の形態に係る情報処理装置におけるアプリケーションデータ蓄積データベースの内容の一例を示す図である。
【０１２５】
図９を参照して、アプリケーションデータ蓄積データベース３７は、メッセージ送受部３３によって受信された複数のメッセージを蓄積する。
【０１２６】
たとえば、アプリケーションデータ蓄積ＤＢ３７には、蓄積部３４におけるメッセージ格納部３４ａにより、アプリケーション名、クライアント情報、メッセージ方向、およびメッセージ全文が蓄積される。アプリケーションデータ蓄積ＤＢ３７は、学習部３６におけるパターン分析部３６ｂがメッセージの判別ルールを作成するために利用される。
【０１２７】
すなわち、パターン分析部３６ｂは、アプリケーションデータ蓄積データベース３７によって蓄積された複数のメッセージに対してパターンマッチングを行なうことにより、所定の文字列を抽出し、サーバー上アプリケーションおよび抽出した所定の文字列の対応関係を示すアプリケーション情報を生成する。
【０１２８】
ここでは、前提条件として、蓄積段階および学習段階は個々のアプリケーション毎に行われるため、複数アプリケーションによる通信が同時に行われていない必要がある。たとえば、アプリケーション１１に対して蓄積および学習を行った後に、アプリケーション２１に関する蓄積および学習を行なう、といったように推移させる。
【０１２９】
まず、蓄積段階について、図８の構成図および図１０のフローチャートを用いて説明する。
【０１３０】
図１０は、本発明の第２の実施の形態に係る情報処理装置がメッセージ蓄積処理を行なう際の動作手順を示すフローチャートである。
【０１３１】
図１０を参照して、クライアント１０におけるアプリケーション１１から送信されたメッセージ（ステップＳ３０１）は、サーバー３０のメッセージ送受部３３において受信される（ステップＳ２０１）。
【０１３２】
次に、メッセージ格納部３４ａは、当該メッセージに基づいて該当データをアプリケーションデータ蓄積ＤＢ３７に格納する（ステップＳ２０２）。
【０１３３】
次に、アプリケーションデータ蓄積ＤＢ３７への該当データの格納が終了すると、メッセージ転送部３５は、当該メッセージをアプリケーション３１に転送する（ステップＳ２０３）。ここで、クライアント上アプリケーションの送信先ポート、およびサーバー上アプリケーションの受け付けポートは事前に設定される。ここでは、クライアント上アプリケーションの送信先ポートは８５００番ポートであり、サーバー上アプリケーションの受け付けポートは８５０１または８５０２番ポートである。
【０１３４】
次に、アプリケーション３１は、メッセージ転送部３５からメッセージを受信して（ステップＳ１０１）、応答メッセージを送信する（ステップＳ１０２）。
【０１３５】
次に、メッセージ格納部３４ａは、アプリケーション３１から応答メッセージを受信して（ステップＳ２０４）、当該応答メッセージに基づいて該当データをアプリケーションデータ蓄積ＤＢ３７に格納する（ステップＳ２０５）。
【０１３６】
なお、アプリケーションの仕様として応答メッセージを送信しない場合には、サーバー上アプリケーションからクライアント上アプリケーションへの応答メッセージは蓄積されないものとする。
【０１３７】
次に、メッセージ送受部３３は、応答メッセージをクライアント１０におけるアプリケーション１１に送信する（ステップＳ２０６）。
【０１３８】
次に、アプリケーション１１は、メッセージ送受部３３から応答メッセージを受信する（ステップＳ３０２）。
【０１３９】
サーバー３０は、上記の処理を繰り返すことにより、アプリケーションデータ蓄積ＤＢ３７にメッセージを蓄積していく。
【０１４０】
続いて、学習段階について、図１１の構成図および図１２のフローチャートを用いて説明する。
【０１４１】
図１１は、本発明の第２の実施の形態に係る情報処理システムの構成を示す図である。図１１は、サーバー３０によるメッセージの学習段階を示している。図１２は、本発明の第２の実施の形態に係る情報処理装置がメッセージ学習処理を行なう際の動作手順を示すフローチャートである。
【０１４２】
図１１および図１２を参照して、まず、メッセージ呼出部３６ａは、アプリケーションデータ蓄積ＤＢ３７から蓄積されたメッセージを呼び出す（ステップＳ２０７）。
【０１４３】
次に、パターン分析部３６ｂは、メッセージのパターンマッチングを行なう（ステップＳ２０８）。
【０１４４】
ここで、図９に示すアプリケーションデータ蓄積ＤＢ３７を参照して、パターンマッチングのアルゴリズムについて説明する。メッセージ方向がＣｌｉｅｎｔ→Ｓｅｒｖｅｒのメッセージ「ＡＰＰ１１  ＊＊＊＊＊＊」に対して、蓄積されている全メッセージの先頭から文字列を走査し、同一文字列を抽出する。「＊＊＊＊＊＊」は固定で無い文字列である。
【０１４５】
このメッセージ例では１Ｂｙｔｅ目〜５Ｂｙｔｅ目までは順当に同一文字として抽出するが、６Ｂｙｔｅ目移行はメッセージ毎に異なる文字列となっている。このため、「ＡＰＰ１１」が全てのメッセージで１Ｂｙｔｅ〜５Ｂｙｔｅ目に記載されている、という情報を抽出する。
【０１４６】
同様に、メッセージ方向がＳｅｒｖｅｒ→Ｃｌｉｅｎｔのメッセージ「ＲＥＴＵＲＮ  ＡＰＰ１１」に対して、「ＲＥＴＵＲＮ  ＡＰＰ１１」が全ての応答メッセージで１Ｂｙｔｅ〜１２Ｂｙｔｅ目に記載されている、という情報を抽出する。
【０１４７】
再び図１２を参照して、判別ルールが作成できるパターンであるかどうかにより以降の処理が場合分けされる。
【０１４８】
すなわち、パターン分析部３６ｂは、判別ルールが作成できない場合には（ステップＳ２０９でＮＯ）、画面出力部３９からＧＵＩ４０に結果を表示させて処理を終了する。ＧＵＩ４０は、分析結果として「特定パターンの無いメッセージです。」を表示する（ステップＳ２１０，２１１）。
【０１４９】
この例では、パターン分析部３６ｂが判別ルールを作成することができたため（ステップＳ２０９でＹＥＳ）、パターン格納部３６ｃは、作成された判別ルールをアプリケーション判別ＤＢ３８に格納する（ステップＳ２１２）。アプリケーション判別ＤＢ３８の内容は、たとえば図３に示すようになる。
【０１５０】
次に、パターン格納部３６ｃは、画面出力部３９からＧＵＩ４０に結果を表示させて処理を終了する。ＧＵＩ４０は、分析結果として「パターン分析完了しました。」を表示する（ステップＳ２１３，２１４）。
【０１５１】
図１３および図１４は、本発明の第２の実施の形態に係る情報処理システムの構成を示す図である。図１３は、クライアント上アプリケーションおよびサーバー上アプリケーション間のコネクションが未確立の状態におけるメッセージ転送処理を示している。図１４は、クライアント上アプリケーションおよびサーバー上アプリケーション間のコネクションが確立している状態におけるメッセージ転送処理を示している。
【０１５２】
図１３および図１４に示すメッセージ転送処理は、本発明の第１の実施の形態に係る情報処理システムと同様である。
【０１５３】
このように、本発明の第２の実施の形態に係る情報処理装置では、アプリケーションデータ蓄積データベース３７は、メッセージ送受部３３によって受信された複数のメッセージを蓄積する。そして、パターン分析部３６ｂは、アプリケーションデータ蓄積データベース３７によって蓄積された複数のメッセージに対してパターンマッチングを行なうことにより、所定の文字列を抽出し、サーバー上アプリケーションおよび抽出した所定の文字列の対応関係を示すアプリケーション情報を生成する。
【０１５４】
このような構成により、適切な判別ルールを自動的に生成することが可能となる。
【０１５５】
その他の構成および動作は第１の実施の形態に係る情報処理装置と同様であるため、ここでは詳細な説明を繰り返さない。
【０１５６】
上記実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記説明ではなく特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【産業上の利用可能性】
【０１５７】
本発明は、クライアント・サーバーモデルにおけるＴＣＰ／ＩＰ通信分野に適用できる。したがって、本発明は、産業上の利用可能性を有している。
【０１５８】
上記実施の形態の一部または全部は以下の付記のようにも記載されうるが、本発明の範囲は、以下の付記に限定されるものではない。
【０１５９】
［付記１］
他の装置における外部アプリケーションからのメッセージを自己の内部アプリケーションによって処理するための情報処理装置であって、
集約ポート番号を含むメッセージを１または複数の前記外部アプリケーションから受信するためのメッセージ受信部と、
前記メッセージ受信部によって受信された前記メッセージに対応する前記内部アプリケーションを判別するための判別部と、
前記判別部によって判別された前記内部アプリケーションへ対応の前記メッセージを転送するためのメッセージ転送部とを備える、情報処理装置。
【０１６０】
［付記２］
前記判別部は、前記メッセージ受信部によって受信された前記メッセージに基づいて、前記メッセージに対応する前記内部アプリケーションの個別ポート番号を判別し、
前記メッセージ転送部は、前記メッセージの集約ポート番号を前記個別ポート番号に置き換えた前記メッセージを生成して転送する、付記１に記載の情報処理装置。
【０１６１】
［付記３］
前記情報処理装置は、さらに、
前記内部アプリケーションと前記メッセージに含まれる所定の文字列との対応関係を示すアプリケーション情報を記憶するためのアプリケーション情報記憶部を備え、
前記判別部は、前記メッセージ受信部によって受信された前記メッセージの文字列と前記アプリケーション情報における前記所定の文字列とを照合することにより、前記メッセージに対応する前記内部アプリケーションを判別する、付記１または２に記載の情報処理装置。
【０１６２】
［付記４］
前記情報処理装置は、さらに、
前記内部アプリケーション、および前記内部アプリケーションとコネクション確立済みの前記外部アプリケーションを実行する他の装置の識別情報を示すコネクション情報を記憶するためのコネクション情報記憶部を備え、
前記判別部は、前記メッセージ受信部によって受信された前記メッセージの送信元の識別情報と前記コネクション情報における前記識別情報とを照合することにより、前記メッセージに対応する前記内部アプリケーションを判別する、付記１から３のいずれかに記載の情報処理装置。
【０１６３】
［付記５］
前記判別部は、前記メッセージ受信部によって受信された前記メッセージに対応する前記内部アプリケーションを判別した後、判別した前記メッセージに対応する前記コネクション情報が存在しない場合には、判別した前記メッセージに対応する前記内部アプリケーションおよび前記メッセージを送信してきた前記外部アプリケーションを実行する他の装置の識別情報を前記コネクション情報に追加する、付記４に記載の情報処理装置。
【０１６４】
［付記６］
前記判別部は、前記内部アプリケーションと前記外部アプリケーションとのコネクションが切断される場合には、前記外部アプリケーションに対応する情報を前記コネクション情報から削除する、付記４または５に記載の情報処理装置。
【０１６５】
［付記７］
前記メッセージ受信部は、メッセージを前記内部アプリケーションから受信し、
前記判別部は、前記内部アプリケーションからの前記メッセージに対応する前記外部アプリケーションを判別し、判別できなかった場合には前記メッセージを廃棄し、
前記メッセージ転送部は、前記判別部が前記メッセージに対応する前記外部アプリケーションを判別できた場合には、前記メッセージを前記外部アプリケーションに転送する、付記１から６のいずれかに記載の情報処理装置。
【０１６６】
［付記８］
前記判別部は、前記メッセージ受信部によって受信された前記メッセージに対応するアプリケーションを判別できない場合には、エラー情報を出力する、付記１から７のいずれかに記載の情報処理装置。
【０１６７】
［付記９］
前記情報処理装置は、さらに、
前記メッセージ受信部によって受信された複数の前記メッセージを蓄積するためのメッセージ蓄積部と、
前記メッセージ蓄積部によって蓄積された複数の前記メッセージに対してパターンマッチングを行なうことにより、前記所定の文字列を抽出し、前記内部アプリケーションおよび抽出した前記所定の文字列の対応関係を示すアプリケーション情報を生成するためのパターン分析部とを備える、付記３に記載の情報処理装置。
【０１６８】
［付記１０］
クライアントと、
サーバーとを備え、
前記クライアントは、実行する各アプリケーションによって生成されるメッセージに集約ポート番号を含めて前記サーバーへ送信し、
前記サーバーは、
前記集約ポート番号を含むメッセージを１または複数の前記アプリケーションから受信し、受信した前記メッセージに対応する自己のアプリケーションを判別し、判別した前記アプリケーションへ対応の前記メッセージを転送する、情報処理システム。
【０１６９】
［付記１１］
他の装置における外部アプリケーションからのメッセージを自己の内部アプリケーションによって処理するための情報処理装置におけるメッセージ処理方法であって、
集約ポート番号を含むメッセージを１または複数の前記外部アプリケーションから受信するステップと、
受信した前記メッセージに対応する前記内部アプリケーションを判別するステップと、
判別した前記内部アプリケーションへ対応の前記メッセージを転送するステップとを含む、メッセージ処理方法。
【０１７０】
［付記１２］
前記内部アプリケーションを判別するステップにおいては、受信した前記メッセージに基づいて、前記メッセージに対応する前記内部アプリケーションの個別ポート番号を判別し、
前記メッセージを転送するステップにおいては、前記メッセージの集約ポート番号を前記個別ポート番号に置き換えた前記メッセージを生成して転送する、付記１１に記載のメッセージ処理方法。
【０１７１】
［付記１３］
前記メッセージ処理方法は、さらに、
前記内部アプリケーションと前記メッセージに含まれる所定の文字列との対応関係を示すアプリケーション情報を記憶するステップを含み、
前記内部アプリケーションを判別するステップにおいては、受信した前記メッセージの文字列と前記アプリケーション情報における前記所定の文字列とを照合することにより、前記メッセージに対応する前記内部アプリケーションを判別する、付記１１または１２に記載のメッセージ処理方法。
【０１７２】
［付記１４］
前記メッセージ処理方法は、さらに、
前記内部アプリケーション、および前記内部アプリケーションとコネクション確立済みの前記外部アプリケーションを実行する他の装置の識別情報を示すコネクション情報を記憶するステップを含み、
前記内部アプリケーションを判別するステップにおいては、受信した前記メッセージの送信元の識別情報と前記コネクション情報における前記識別情報とを照合することにより、前記メッセージに対応する前記内部アプリケーションを判別する、付記１１から１３のいずれかに記載のメッセージ処理方法。
【０１７３】
［付記１５］
前記内部アプリケーションを判別するステップにおいては、受信した前記メッセージに対応する前記内部アプリケーションを判別した後、判別した前記メッセージに対応する前記コネクション情報が存在しない場合には、判別した前記メッセージに対応する前記内部アプリケーションおよび前記メッセージを送信してきた前記外部アプリケーションを実行する他の装置の識別情報を前記コネクション情報に追加する、付記１４に記載のメッセージ処理方法。
【０１７４】
［付記１６］
前記内部アプリケーションを判別するステップにおいては、前記内部アプリケーションと前記外部アプリケーションとのコネクションが切断される場合には、前記外部アプリケーションに対応する情報を前記コネクション情報から削除する、付記１４または１５に記載のメッセージ処理方法。
【０１７５】
［付記１７］
前記メッセージ処理方法は、さらに、
メッセージを前記内部アプリケーションから受信するステップと、
前記内部アプリケーションからの前記メッセージに対応する前記外部アプリケーションを判別し、判別できなかった場合には前記メッセージを廃棄するステップと、
前記メッセージに対応する前記外部アプリケーションを判別できた場合には、前記メッセージを前記外部アプリケーションに転送するステップとを含む、付記１１から１６のいずれかに記載のメッセージ処理方法。
【０１７６】
［付記１８］
前記内部アプリケーションまたは前記外部アプリケーションを判別するステップにおいては、受信した前記メッセージに対応するアプリケーションを判別できない場合には、エラー情報を出力する、付記１１から１７のいずれかに記載のメッセージ処理方法。
【０１７７】
［付記１９］
前記メッセージ処理方法は、さらに、
受信した複数の前記メッセージを蓄積するステップと、
蓄積した複数の前記メッセージに対してパターンマッチングを行なうことにより、前記所定の文字列を抽出し、前記内部アプリケーションおよび抽出した前記所定の文字列の対応関係を示すアプリケーション情報を生成するステップとを含む、付記１３に記載のメッセージ処理方法。
【０１７８】
［付記２０］
他の装置における外部アプリケーションからのメッセージを自己の内部アプリケーションによって処理するための情報処理装置におけるメッセージ処理プログラムであって、コンピュータに、
集約ポート番号を含むメッセージを１または複数の前記外部アプリケーションから受信するステップと、
受信した前記メッセージに対応する前記内部アプリケーションを判別するステップと、
判別した前記内部アプリケーションへ対応の前記メッセージを転送するステップとを実行させる、メッセージ処理プログラム。
【０１７９】
［付記２１］
前記内部アプリケーションを判別するステップにおいては、受信した前記メッセージに基づいて、前記メッセージに対応する前記内部アプリケーションの個別ポート番号を判別し、
前記メッセージを転送するステップにおいては、前記メッセージの集約ポート番号を前記個別ポート番号に置き換えた前記メッセージを生成して転送する、付記２０に記載のメッセージ処理プログラム。
【０１８０】
［付記２２］
前記メッセージ処理プログラムは、さらに、コンピュータに、
前記内部アプリケーションと前記メッセージに含まれる所定の文字列との対応関係を示すアプリケーション情報を記憶するステップを実行させ、
前記内部アプリケーションを判別するステップにおいては、受信した前記メッセージの文字列と前記アプリケーション情報における前記所定の文字列とを照合することにより、前記メッセージに対応する前記内部アプリケーションを判別する、付記２０または２１に記載のメッセージ処理プログラム。
【０１８１】
［付記２３］
前記メッセージ処理プログラムは、さらに、コンピュータに、
前記内部アプリケーション、および前記内部アプリケーションとコネクション確立済みの前記外部アプリケーションを実行する他の装置の識別情報を示すコネクション情報を記憶するステップを実行させ、
前記内部アプリケーションを判別するステップにおいては、受信した前記メッセージの送信元の識別情報と前記コネクション情報における前記識別情報とを照合することにより、前記メッセージに対応する前記内部アプリケーションを判別する、付記２０から２２のいずれかに記載のメッセージ処理プログラム。
【０１８２】
［付記２４］
前記内部アプリケーションを判別するステップにおいては、受信した前記メッセージに対応する前記内部アプリケーションを判別した後、判別した前記メッセージに対応する前記コネクション情報が存在しない場合には、判別した前記メッセージに対応する前記内部アプリケーションおよび前記メッセージを送信してきた前記外部アプリケーションを実行する他の装置の識別情報を前記コネクション情報に追加する、付記２３に記載のメッセージ処理プログラム。
【０１８３】
［付記２５］
前記内部アプリケーションを判別するステップにおいては、前記内部アプリケーションと前記外部アプリケーションとのコネクションが切断される場合には、前記外部アプリケーションに対応する情報を前記コネクション情報から削除する、付記２３または２４に記載のメッセージ処理プログラム。
【０１８４】
［付記２６］
前記メッセージ処理プログラムは、さらに、コンピュータに、
メッセージを前記内部アプリケーションから受信するステップと、
前記内部アプリケーションからの前記メッセージに対応する前記外部アプリケーションを判別し、判別できなかった場合には前記メッセージを廃棄するステップと、
前記メッセージに対応する前記外部アプリケーションを判別できた場合には、前記メッセージを前記外部アプリケーションに転送するステップとを実行させる、付記２０から２５のいずれかに記載のメッセージ処理プログラム。
【０１８５】
［付記２７］
前記内部アプリケーションまたは前記外部アプリケーションを判別するステップにおいては、受信した前記メッセージに対応するアプリケーションを判別できない場合には、エラー情報を出力する、付記２０から２６のいずれかに記載のメッセージ処理プログラム。
【０１８６】
［付記２８］
前記メッセージ処理プログラムは、さらに、コンピュータに、
受信した複数の前記メッセージを蓄積するステップと、
蓄積した複数の前記メッセージに対してパターンマッチングを行なうことにより、前記所定の文字列を抽出し、前記内部アプリケーションおよび抽出した前記所定の文字列の対応関係を示すアプリケーション情報を生成するステップとを実行させる、付記２２に記載のメッセージ処理プログラム。
【符号の説明】
【０１８７】
１０，２０  クライアント
１１，１２，２１，２２，３１，３２  アプリケーション
３０  サーバー
３３  メッセージ送受部
３４  蓄積部
３４ａ  メッセージ格納部
３５  メッセージ転送部
３６  学習部
３６ａ  メッセージ呼出部
３６ｂ  パターン分析部
３６ｃ  パターン格納部
３７  、アプリケーションデータ蓄積データベース（メッセージ蓄積部）
３８  アプリケーション判別データベース（アプリケーション情報記憶部）
３９  画面出力部
４０  ＧＵＩ
４１  判別部
４１ａ  データベース参照部
４１ｂ  整合判断部
４１ｃ  データベース書き換え部
４２  ｓｒｃ／ｄｓｔ情報データベース
１０１  ＣＰＵ
１０２  メインメモリ
１０３  ハードディスク
１０４  入力インターフェイス
１０５  表示コントローラ
１０６  データリーダ／ライタ
１０７  通信インターフェイス
１０８  キーボード
１０９  マウス
１１０  ディスプレイ
１１１  記録媒体
１２１  バス
２０１  情報処理装置
４０１，４０２  情報処理システム
【図１】
0005672899.tif 000002
【図２】
0005672899.tif 000003
【図３】
0005672899.tif 000004
【図４】
0005672899.tif 000005
【図５】
0005672899.tif 000006
【図６】
0005672899.tif 000007
【図７】
0005672899.tif 000008
【図８】
0005672899.tif 000009
【図９】
0005672899.tif 000010
【図１０】
0005672899.tif 000011
【図１１】
0005672899.tif 000012
【図１２】
0005672899.tif 000013
【図１３】
0005672899.tif 000014
【図１４】
0005672899.tif 000015
【図１５】
0005672899.tif 000016
【図１６】
0005672899.tif 000017