(57)【特許請求の範囲】
【請求項１】
外部ネットワークと内部ネットワークとの通信を中継する通信中継装置であって、
前記外部ネットワークの端末から、通信の開始を通知する通信開始メッセージを受信した場合に、当該通信開始メッセージに、前記内部ネットワーク内の特定のアプリケーションに対して接続要求することを示す特定アプリ用アルゴリズムが含まれているか否かを判定する判定部と、
前記判定部によって前記通信開始メッセージに前記特定アプリ用アルゴリズムが含まれていると判定された場合に、前記通信開始メッセージに含まれる乱数を用いて、前記特定のアプリケーションの動作タイプを特定し、当該特定した前記動作タイプに対応して設定されているプロキシに関する情報を取得する取得部と、
前記取得部によって取得された前記プロキシに関する情報に基づいて、前記特定のアプリケーションの動作を、前記端末に代わって制御するプロキシ部と、
前記通信開始メッセージに対する応答メッセージの中に、前記通信開始メッセージに含まれる前記特定アプリ用アルゴリズムを組み入れて前記端末に送信する送信部と、
を備えることを特徴とする通信中継装置。
【請求項２】
前記特定のアプリケーションは、予め設定された前記動作タイプによるデータ処理を行う振舞いエンジンである、
ことを特徴とする請求項１記載の通信中継装置。
【請求項３】
請求項１または２記載の通信中継装置と、
前記外部ネットワークの端末と、を含むデータ処理システムであって、
前記外部ネットワークの端末は、前記特定アプリ用アルゴリズムを含むアルゴリズムリストおよび、前記特定のアプリケーションの動作タイプを特定可能な乱数を生成し、当該生成した前記アルゴリズムリストおよび前記乱数を前記通信開始メッセージに組み入れてから当該通信開始メッセージを前記通信中継装置に送信する、
ことを特徴とするデータ処理システム。
【請求項４】
前記外部ネットワークの端末は、前記通信中継装置から受信した前記応答メッセージの中に、前記特定アプリ用アルゴリズムが含まれる場合に、前記通信中継装置を介して、前記特定のアプリケーションとの間で前記動作タイプに従ったやり取りを開始する、
ことを特徴とする請求項３記載のデータ処理システム。
【請求項５】
外部ネットワークと内部ネットワークとの通信を中継する通信中継方法であって、
前記外部ネットワークの端末から、通信の開始を通知する通信開始メッセージを受信した場合に、当該通信開始メッセージに、前記内部ネットワーク内の特定のアプリケーションに対して接続要求することを示す特定アプリ用アルゴリズムが含まれているか否かを判定する判定ステップと、
前記判定ステップにおいて前記通信開始メッセージに前記特定アプリ用アルゴリズムが含まれていると判定された場合に、前記通信開始メッセージに含まれる乱数を用いて、前記特定のアプリケーションの動作タイプを特定し、当該特定した前記動作タイプに対応して設定されているプロキシに関する情報を取得する取得ステップと、
前記取得ステップにおいて取得された前記プロキシに関する情報に基づいて、前記特定のアプリケーションの動作を、前記端末に代わって制御するプロキシステップと、
前記通信開始メッセージに対する応答メッセージの中に、前記通信開始メッセージに含まれる前記特定アプリ用アルゴリズムを組み入れて前記端末に送信する送信ステップと、
を含むことを特徴とする通信中継方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信中継装置、データ処理システムおよび通信中継方法に関する。
【背景技術】
【０００２】
従来、企業等で行われる業務処理は、データセンターや社内等のプライベートな内部ネットワークで処理を実行し、この内部ネットワーク内の端末のみがシステムへのアクセスを許可されていた。近年、ユビキタス環境が整備されるにつれ、インターネット上のパソコンや携帯端末等を利用して外部ネットワークからプライベートな内部ネットワークにアクセスし、業務処理を遂行したいという要望が増大している。
【０００３】
下記特許文献１には、外部ネットワークの端末が、中継サーバを介して、内部ネットワークにアクセスする技術が開示されている。この技術では、端末を操作するユーザとそのユーザの役割（アプリケーション）を実行するアプリケーションサーバとを対応付けて記憶するデータベースを、中継サーバに備えている。中継サーバは、このデータベースを参照することで、ユーザが操作する端末とアプリケーションサーバとのセッションを管理している。また、この技術では、ＴＬＳ（Transfer Layer Security）プロトコルに従ったハンドシェイク処理を行うことで、セキュリティを確保した上でのアクセスを可能としている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−３６３８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記特許文献１に記載の技術では、ユーザの役割を事前にデータベースに登録しておかなければならず、さらに役割を変更するときには、中継サーバのデータベースを逐一更新する作業が発生してしまう。
【０００６】
本発明は、上述した課題を解決するためになされたものであり、内部ネットワーク内の特定のアプリケーションに対して外部ネットワークの端末を効率的かつ簡易に接続させることができる通信中継装置、データ処理システムおよび通信中継方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の通信中継装置は、外部ネットワークと内部ネットワークとの通信を中継する通信中継装置であって、前記外部ネットワークの端末から、通信の開始を通知する通信開始メッセージを受信した場合に、当該通信開始メッセージに、前記内部ネットワーク内の特定のアプリケーションに対して接続要求することを示す特定アプリ用アルゴリズムが含まれているか否かを判定する判定部と、前記判定部によって前記通信開始メッセージに前記特定アプリ用アルゴリズムが含まれていると判定された場合に、前記通信開始メッセージに含まれる乱数を用いて、前記特定のアプリケーションの動作タイプを特定し、当該特定した前記動作タイプに対応して設定されているプロキシに関する情報を取得する取得部と、前記取得部によって取得された前記プロキシに関する情報に基づいて、前記特定のアプリケーションの動作を、前記端末に代わって制御するプロキシ部と、前記通信開始メッセージに対する応答メッセージの中に、前記通信開始メッセージに含まれる前記特定アプリ用アルゴリズムを組み入れて前記端末に送信する送信部と、を備える。
【０００８】
本発明のデータ処理システムは、前記通信中継装置と、前記外部ネットワークの端末と、を含むデータ処理システムであって、前記外部ネットワークの端末は、前記特定アプリ用アルゴリズムを含むアルゴリズムリストおよび、前記特定のアプリケーションの動作タイプを特定可能な乱数を生成し、当該生成した前記アルゴリズムリストおよび前記乱数を前記通信開始メッセージに組み入れてから当該通信開始メッセージを前記通信中継装置に送信する。
【０００９】
本発明の通信中継方法は、外部ネットワークと内部ネットワークとの通信を中継する通信中継方法であって、前記外部ネットワークの端末から、通信の開始を通知する通信開始メッセージを受信した場合に、当該通信開始メッセージに、前記内部ネットワーク内の特定のアプリケーションに対して接続要求することを示す特定アプリ用アルゴリズムが含まれているか否かを判定する判定ステップと、前記判定ステップにおいて前記通信開始メッセージに前記特定アプリ用アルゴリズムが含まれていると判定された場合に、前記通信開始メッセージに含まれる乱数を用いて、前記特定のアプリケーションの動作タイプを特定し、当該特定した前記動作タイプに対応して設定されているプロキシに関する情報を取得する取得ステップと、前記取得ステップにおいて取得された前記プロキシに関する情報に基づいて、前記特定のアプリケーションの動作を、前記端末に代わって制御するプロキシステップと、前記通信開始メッセージに対する応答メッセージの中に、前記通信開始メッセージに含まれる前記特定アプリ用アルゴリズムを組み入れて前記端末に送信する送信ステップと、を含む。
【発明の効果】
【００１０】
本発明によれば、内部ネットワーク内の特定のアプリケーションに対して外部ネットワークの端末を効率的かつ簡易に接続させることができる。
【図面の簡単な説明】
【００１１】
【図１】実施形態における振舞いエンジンシステムの構成を例示するブロック図である。
【図２】実施形態における設定情報テーブルに格納される設定情報を例示する図である。
【図３】振舞いエンジンシステムの動作を説明するためのフローチャートである。
【図４】振舞いエンジン接続時におけるデータのやり取りを例示する図である。
【図５】変形例における振舞いエンジンシステムの構成を例示するブロック図である。
【図６】変形例における設定情報テーブルに格納される設定情報を例示する図である。
【発明を実施するための形態】
【００１２】
以下、添付図面を参照して、本発明に係る通信中継装置、データ処理システムおよび通信中継方法の好適な実施形態について説明する。
【００１３】
まず、図１を参照して、実施形態における通信中継装置としてのゲートウェイ装置を有する振舞いエンジンシステムの構成について説明する。振舞いエンジンシステムは、複数のチャネルを利用し、常時接続する特定のアプリケーションを実行するデータ処理システムである。特定のアプリケーションとしては、例えば振舞いエンジンが該当する。本実施形態では、特定のアプリケーションが振舞いエンジンである場合について説明するが、特定のアプリケーションは振舞いエンジンに限定されない。
【００１４】
振舞いエンジンは、予め設定された振舞い型（動作タイプ）によるデータ処理を行うアプリケーションである。振舞い型は、処理対象となるデータの入出力動作の内容を示す属性情報により表現する。具体的には、例えば、処理対象データが、順次読み込みのみ（Sequential Read Only（以下、「ＳＲＯ」という。））のデータである場合には、このようなデータに、振舞い型として“ＳＲＯ”を付与する。また、処理対象データが、順次書き込みのみ（Sequential Write Only（以下、「ＳＷＯ」という。)）のデータである場合には、このようなデータに、振舞い型として“ＳＷＯ”を付与する。データ処理としては、例えば、給与計算バッチや税金計算バッチ等の業務処理バッチが該当する。
【００１５】
図１に示すように、振舞いエンジンシステムは、クライアント端末２と、ゲートウェイ装置１と、振舞いエンジンサーバ群３００を構成する複数のサーバ装置３と、を備える。サーバ装置３は、例えば社内ネットワーク等の内部ネットワーク９に配置される。クライアント端末２は、内部ネットワーク９外に配置され、例えばインターネット等の外部ネットワーク８を介してゲートウェイ装置１に接続する。ゲートウェイ装置１は、外部ネットワーク８と内部ネットワーク９との境界に配置され、外部ネットワーク８と内部ネットワーク９とを中継する。
【００１６】
なお、本実施形態では、クライアント端末２が内部ネットワーク９内に構築されている社内システムに接続する場合について記載するが、接続先のシステムは社内システムに限定されない。例えば、データセンターに接続する場合やクラウド上にあるシステムに接続する場合等、セキュリティを確保した上で特定のアプリケーションを利用するシステムに接続する場合に本発明を適用することができる。
【００１７】
振舞いエンジンシステムでバッチ処理を実行するためには、内部ネットワーク９の振舞いエンジンサーバ群３００に接続してデータを読み書きする必要がある。本実施形態では、クライアント端末２の振舞いエンジンクライアント２１からゲートウェイ装置１にＳＳＬ（Secure Socket Layer）接続を行い、クライアント端末２がゲートウェイ装置１の振舞いエンジンプロキシ（ＳＲＯ）１３１を介して、サーバ装置３の振舞いエンジンサーバ（ＳＲＯ）３１に接続する場合について説明する。
【００１８】
クライアント端末２は振舞いエンジンクライアント２１を有し、サーバ装置３は振舞いエンジンサーバ３１を有する。振舞いエンジンクライアント２１と振舞いエンジンサーバ３１とで、特定のアプリケーションである振舞いエンジンを実行する。本実施形態における振舞いエンジンサーバ３１は、ＳＲＯ用の振舞いエンジンとして振舞うように設定されていることとする。振舞いエンジンとして振舞うための諸要件は、振舞いエンジンクライアント２１と振舞いエンジンサーバ３１との双方に設定されていることとする。
【００１９】
ゲートウェイ装置１は、クライアント端末２の接続をチェックし、認証や暗号化処理等を行い、必要に応じてアドレス変換やプロトコル変換等を行う機能を有する。
【００２０】
ゲートウェイ装置１は、チャネル管理部１１と、特定アプリ制御部１２と、プロキシ部１３とを有する。ゲートウェイ装置１は、上記各部が参照・更新等する設定情報を記憶する設定情報テーブル１９を備える。
【００２１】
図２に、設定情報テーブル１９に格納される設定情報を例示する。設定情報としては、例えば、アルゴリズム、特定アプリケーション、接続クライアント、接続サーバ、判定関数、乱数解析、振舞い型（ＳＲＯ）、振舞いエンジンプロキシ（ＳＲＯ）等に関する情報がある。
【００２２】
チャネル管理部１１は、外部ネットワーク８と内部ネットワーク９とを接続するチャネルを管理する。チャネル管理部１１は、一般的なゲートウェイとしての機能を有し、チャネルのセッション情報やＩＰ（Internet Protocol）アドレス等を管理する。
【００２３】
特定アプリ制御部１２は、特定のアプリケーションである振舞いエンジンの制御を行う。特定アプリ制御部１２は、振舞いエンジンサーバ群３００および振舞いエンジンクライアント２１と情報をやり取りし、その情報を設定情報テーブル１９に読み書きする。また、特定アプリ制御部１２は、プロキシ部１３を制御して、振る舞いエンジンプロキシ１３１を生成、削除、設定変更する。
【００２４】
特定アプリ制御部１２は、判定部１２１と、取得部１２２とを有する。
【００２５】
判定部１２１は、クライアント端末２から、通信の開始を通知する通信開始メッセージを受信した場合に、この通信開始メッセージに、内部ネットワーク９の振舞いエンジンに対して接続要求することを示す振舞いエンジン用アルゴリズムが含まれているか否かを判定する。
【００２６】
取得部１２２は、判定部１２１によって通信開始メッセージに振舞いエンジン用アルゴリズムが含まれると判定された場合に、通信開始メッセージに含まれる乱数を用いて、振舞いエンジンの振舞い型を特定し、この特定した振舞い型に対応して設定されている振舞いエンジンプロキシに関する情報を取得する。
【００２７】
チャネル管理部１１は、送信部１１１を有する。送信部１１１は、クライアント端末２から受信した通信開始メッセージへの応答メッセージの中に、通信開始メッセージに含まれる振舞いエンジン用アルゴリズムを組み入れてクライアント端末２に送信する。
【００２８】
プロキシ部１３は、振舞いエンジンプロキシ１３１を有する。
【００２９】
振舞いエンジンプロキシ１３１は、取得部１２２によって取得された振舞いエンジンプロキシに関する情報に基づいて、振舞いエンジンの動作を、クライアント端末２の代わりに制御する。
【００３０】
振舞いエンジンプロキシ１３１は、振舞いエンジンクライアント２１および振舞いエンジンサーバ３１のプロキシ機能を有し、データの転送を行う。また、振舞いエンジンプロキシ１３１は、振舞いエンジンクライアント２１および振舞いエンジンサーバ３１の接続状態に応じて、データの転送／保留や、チャネルの再接続等の機能を有する。また、振舞いエンジンプロキシ１３１は、外部ネットワーク８からの接続が切断されても、内部ネットワーク９の接続を一定時間保持する等、特定のアプリケーションの特性に合わせてチャネルの接続状態等を任意に設定、変更できる。本実施形態における振舞いエンジンプロキシ１３１は、振舞い型のＳＲＯを処理するプロキシとして動作する。
【００３１】
次に、図３を参照して、振舞いエンジンシステムの動作について説明する。この動作例では、クライアント端末２がゲートウェイ装置１にＳＳＬ接続を行い、振舞いエンジンプロキシ（ＳＲＯ）１３１を介して、振舞いエンジンサーバ（ＳＲＯ）３１に接続する場合について説明する。
【００３２】
最初に、クライアント端末２の振舞いエンジンクライアント２１は、バッチ処理を開始（ステップＳ１０１）するために、振舞いエンジンサーバ群３００に接続を試みる。
【００３３】
続いて、振舞いエンジンクライアント２１は、自端末２が内部ネットワーク９に存在しているか否かを判定する（ステップＳ１０２）。この判定がＹＥＳである場合（ステップＳ１０２；ＹＥＳ）には、通常の振舞いエンジンとしての接続処理を行い、内部ネットワーク９に存在しているときに行う通常処理を実行する（ステップＳ１０３）。そして、本動作を終了する。
【００３４】
一方、上記ステップＳ１０２の判定で、内部ネットワーク９に存在していないと判定した場合（ステップＳ１０２；ＮＯ）に、振舞いエンジンクライアント２１は、振舞いエンジン用のアルゴリズムリストおよび乱数を生成する(ステップＳ１０４)。
【００３５】
ここで、振舞いエンジン用のアルゴリズムリストには、ＳＳＬのハンドシェイクで生成するアルゴリズムの他に、振舞いエンジン接続用のアルゴリズムが追加される。また、ＳＳＬのハンドシェイクで生成する乱数と同様に３２バイトの乱数を生成する。
【００３６】
振舞いエンジン接続用のアルゴリズムは、例えば、振舞いエンジン型であることを示す標記（例えば“BET(Behavior Engine Type)”）＋ＳＳＬのアルゴリズム名称（例えば“TLS_RSA_WITH_NULL_MD5”）によって表すことができる。図２に示す設定情報のアルゴリズムのうち、“BET_TLS_RSA_WITH_NULL_MD5(0xF001)”および“BET_TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA(0xF012)”が、振舞いエンジン接続用のアルゴリズムに該当する。“BET_TLS_RSA_WITH_NULL_MD5(0xF001)”は、接続先の特定アプリケーションが振舞いエンジンであり、ＳＳＬの認証および暗号化が“TLS_RSA_WITH_NULL_MD5”によって行われることを表している。
【００３７】
また、乱数は、例えば以下の（１）〜（５）の手順により生成することができる。（１）ある乱数“ｒａ”を仮生成する。（２）設定情報の判定関数に設定されている“ｆ（ｒ）＝ｙ”に仮乱数“ｒａ”を代入して“ｙ”を算出する。（３）“ｙ”の値（または“ｙ”の一部）が、設定情報の乱数解析に設定されている指定値と一致するかどうかをチェックする。（４）指定値と一致しない場合には、再度（１）〜（４）までの手順を繰り返す。（５）指定値と一致する場合には、その値を乱数として生成する。
【００３８】
本動作例では、上記判定関数“ｆ（ｒ）”として、射影関数“ｆ１（ｒ）”が設定されていることとする。この射影関数“ｆ１（ｒ）”は、入力された乱数から“ｙ０（０ｘ００）”または“ｙ１（＝０ｘ０１）”を出力する関数であるとする。射影関数“ｆ１（ｒ）”の出力値が“ｙ１（＝０ｘ０１）”である場合には、振舞い型が“ＳＲＯ”であることを示す。
【００３９】
なお、判定関数として、例えば、射影関数や一方向関数等のように、任意の値を違うディメンジョンの値に変換する関数を用いることができる。また、任意のベクトルの固有値を規定する固有関数を判定関数に用いることができる。さらに、任意の特異点周りを展開した場合の発散／収束を判定に用いることとしてもよい。ただし、クライアント端末２とゲートウェイ装置１とに同じ判定関数や判定方法が設定されていることとする。
【００４０】
また、本動作例では、振舞い型が“ＳＲＯ”であるため、上記乱数として、“ｆ１（ｒ１）＝ｙ１（＝０ｘ０１）”が成立する乱数“ｒ１”を生成することとする。乱数を構成する３２バイトのうち、先頭から４バイトまでは時刻情報を格納する領域として使用することができる。なお、乱数の中に直接、指定値を組み入れることとしてもよい。
【００４１】
続いて、振舞いエンジンクライアント２１は、上記ステップＳ１０４で生成したアルゴリズムリストおよび乱数を組み入れたＣｌｉｅｎｔＨｅｌｌｏ（通信開始メッセージ）をゲートウェイ装置１に送信する(ステップＳ１０５)。これにより、ＳＳＬのハンドシェイク処理が開始する。
【００４２】
続いて、ゲートウェイ装置１の判定部１２１は、ＣｌｉｅｎｔＨｅｌｌｏに含まれるアルゴリズムリストを解析し(ステップＳ１０６)、振舞いエンジン接続用のアルゴリズムが含まれているか否かを判定する（ステップＳ１０７）。この判定がＮＯである場合（ステップＳ１０７；ＮＯ）に、チャネル管理部１１は、通常のＳＳＬ接続処理を実行する(ステップＳ１０８)。そして、本動作を終了する。
【００４３】
一方、上記ステップＳ１０７の判定で振舞いエンジン接続用のアルゴリズムが含まれていると判定された場合（ステップＳ１０７；ＹＥＳ）に、ゲートウェイ装置１の取得部１２２は、ＣｌｉｅｎｔＨｅｌｌｏに含まれる乱数を解析し(ステップＳ１０９)、判定関数“ｆ１（ｒ）”の値が指定値に含まれるか否かを判定する（ステップＳ１１０）。この判定がＮＯである場合（ステップＳ１１０；ＮＯ）に、チャネル管理部１１は、通常のＳＳＬ接続処理を実行し(ステップＳ１０８)、本動作を終了する。
【００４４】
一方、上記ステップＳ１１０の判定で判定関数“ｆ１（ｒ）”の値が指定値に含まれると判定された場合（ステップＳ１１０；ＹＥＳ）に、取得部１２２は、指定値に基づいて振舞い型を特定する（ステップＳ１１１）。本動作例では、判定関数“ｆ１（ｒ）”の値が“ｙ１（＝０ｘ０１）”となるため、振る舞い型は“ＳＲＯ”となる。
【００４５】
続いて、ゲートウェイ装置１の特定アプリ制御部１２は、特定した振舞い型に対応する振舞いエンジンプロキシ情報に基づいて、振舞いエンジンプロキシを生成する(ステップＳ１１２)。本動作例では、振る舞い型が“ＳＲＯ”であるため、振舞いエンジンプロキシ(ＳＲＯ)１３１を生成し、振舞いエンジンサーバ(ＳＲＯ)３１に接続する。
【００４６】
続いて、ゲートウェイ装置１の特定アプリ制御部１２は、ＣｌｉｅｎｔＨｅｌｌｏに含まれるアルゴリズムリストの中から振舞いエンジン接続用のアルゴリズムを選択してアルゴリズムを生成するとともに、乱数を生成する(ステップＳ１１３)。この乱数は、判定関数“ｆ１（ｒ）”の値が特定の振舞い型を示す値になるように生成する。本動作例では、振舞い型が“ＳＲＯ”であるため、判定関数“ｆ１（ｒ）”の値が“ｙ１（＝０ｘ０１）”になる乱数“ｒ１”を生成する。
【００４７】
続いて、ゲートウェイ装置１の送信部１１１は、ステップＳ１１３で生成されたアルゴリズムおよび乱数とサーバ証明書とを組み入れたＳｅｒｖｅｒＨｅｌｌｏを生成し、振舞いエンジンクライアント２１に送信する(ステップＳ１１４)。
【００４８】
続いて、振舞いエンジンクライアント２１は、ＳｅｒｖｅｒＨｅｌｌｏに含まれるアルゴリズムおよび乱数を解析する(ステップＳ１１５)。
【００４９】
続いて、振舞いエンジンクライアント２１は、ＳｅｒｖｅｒＨｅｌｌｏに含まれるアルゴリズムが振舞いエンジン接続用のアルゴリズムであるか否かを確認するとともに、乱数を判定関数“ｆ１（ｒ）”に代入し、判定関数の値が振舞い型を示す値であるか否かを確認することで、振舞いエンジン接続であるか否かを判定する（ステップＳ１１６）。この判定がＮＯである場合（ステップＳ１１６；ＮＯ）に、振舞いエンジンクライアント２１は、通常のＳＳＬ接続処理を実行し(ステップＳ１１７)、本動作を終了する。
【００５０】
一方、上記ステップＳ１１６の判定で、振舞いエンジン接続であると判定された場合（ステップＳ１１６；ＹＥＳ）に、振舞いエンジンクライアント２１は、振舞いエンジンプロキシ（ＳＲＯ）１３１を介して、振る舞いエンジンサーバ（ＳＲＯ）３１との間で振舞いエンジン接続を行う（ステップＳ１１８）。これにより、振舞いエンジンクライアント２１と振舞いエンジンサーバ３１との間でデータのやり取りが開始される。
【００５１】
図４を参照して、振舞いエンジン接続した振舞いエンジンクライアント２１と振舞いエンジンサーバ３１との間で行われるやり取りの内容について説明する。ここで、振舞いエンジンプロキシ（ＳＲＯ）１３１は、上記ステップＳ１１１で振る舞い型が“ＳＲＯ”であることを特定しているため、振舞いエンジン接続時には、振舞いエンジンクライアント２１と振る舞いエンジンサーバ（ＳＲＯ）３１とのチャネルが、ＳＲＯのチャネルであることを認知している。
【００５２】
まず、振舞いエンジンクライアント２１は、“データＡ”をカプセル化することなく（ＳＳＬトンネル接続を採用することなく）直接暗号化し、“暗号化データＡ”を生成する（ステップＳ２０１）。続いて、振舞いエンジンクライアント２１は、“暗号化データＡ”を振舞いエンジンプロキシ（ＳＲＯ）１３１に送信する（ステップＳ２０２）。続いて、振舞いエンジンプロキシ（ＳＲＯ）１３１は、“暗号化データＡ”の暗号化を解除して“データＡ”とし、ダイレクトに振舞いエンジンサーバ３１に転送する（ステップＳ２０３）。これにより、振舞いエンジンサーバ３１は、振舞いエンジンクライアント２１から“データＡ”を取得することになる。
【００５３】
このように、振舞いエンジンプロキシは、“暗号化データＡ”の暗号化を解除して、“データＡ”をダイレクトに振舞いエンジンサーバ３１に転送すればよいため、ＳＳＬ接続時のように、データの中身をチェックしてアプリケーションを特定する必要がない。また、振舞いエンジンプロキシは転送先を事前に認知しているため、データ転送フェーズになってからゲートウェイ装置とサーバ装置との接続を開始するＳＳＬ接続に比べて、ゲートウェイ装置１での処理が少なくなり、データ転送が早くなる。
【００５４】
一方、振舞いエンジンサーバ３１は、“データＢ”を振舞いエンジンプロキシ（ＳＲＯ）１３１に送信する（ステップＳ２０４）と、振舞いエンジンプロキシ（ＳＲＯ）１３１は、“データＢ”を暗号化して“暗号化データＢ”を生成する（ステップＳ２０５）。続いて、振舞いエンジンプロキシ（ＳＲＯ）１３１は、“暗号化データＢ”を振舞いエンジンクライアント２１に転送する（ステップＳ２０６）。続いて、振舞いエンジンクライアント２１は、“暗号化データＢ”の暗号化を解除して“データＢ”を取得する（ステップＳ２０７）。
【００５５】
上述したように、実施形態における振舞いエンジンシステムによれば、ＣｌｉｅｎｔＨｅｌｌｏに振舞いエンジンに関する情報が組み込まれているため、ＳＳＬのハンドシェイク処理の段階でどのような接続が行われるのかを識別することができる。これにより、振舞いエンジンの接続準備や振舞いエンジンサーバへのチャネル設定を、事前に進行させておくことができるため、外部にあるクライアント端末２からの接続を高速に行うことが可能となる。
【００５６】
また、実施形態における振舞いエンジンシステムによれば、外部と内部との接続を振舞いエンジンごとに最適化することができるため、再接続を高速に行うことが可能になる。例えば、振舞いエンジンプロキシに関する設定情報として、クライアント端末と振舞いエンジンプロキシとの接続が切断された場合に振舞いエンジンプロキシと振舞いエンジンサーバとの接続を維持する旨の設定を登録しておくことができる。この場合には、クライアント端末が振舞いエンジンプロキシに再接続してきたときに、クライアント端末と振舞いエンジンサーバとの接続を高速に実現することができる。
【００５７】
また、実施形態における振舞いエンジンシステムは、接続時に用いるパラメタとしてＳＳＬのパラメタのみを用いて実現することができるため、ファイアウォール等のネットワーク機器によって破棄される可能性を低減することができる。これにより、外部から内部への接続性を向上させることができる。また、パラメタの内部に振舞いエンジンの情報を組み込むため、第三者に見破られる可能性を低減することができる。
【００５８】
[変形例]
なお、上述した実施形態は、単なる例示に過ぎず、実施形態に明示していない種々の変形や技術の適用を排除するものではない。すなわち、本発明は、その趣旨を逸脱しない範囲で様々な形態に変形して実施することができる。
【００５９】
例えば、上述した実施形態では、特定のアプリケーションである振舞いエンジンが一つのチャネルを利用する場合について説明しているが、振舞いエンジンが複数のチャネルを利用する場合にも本発明を適用することができる。図５および図６を参照して、振舞いエンジンが二つのチャネルを利用する場合について説明する。図５は、振舞いエンジンシステムの構成を例示する図である。図６は、設定情報テーブル１９に格納される設定情報を例示する図である。以下においては、上述した一つのチャネルを利用する場合と異なる点について説明する。
【００６０】
図５に示すように、振舞いエンジンサーバ群３００は、振舞いエンジンサーバ（ＳＲＯ）３１Ａを有するサーバ装置３Ａと、振舞いエンジンサーバ（ＳＷＯ）３１Ｂを有するサーバ装置３Ｂと、を備える。図６に示すように、振舞い型情報には、“ＳＲＯ”と“ＳＷＯ”とが設定されている。また、振舞いエンジンサーバ（ＳＲＯ）３１Ａが、ＳＲＯエンジンとして振舞い、振舞いエンジンサーバ（ＳＷＯ）３１Ｂが、ＳＷＯエンジンとして振舞うように設定されている。また、振舞いエンジンサーバ（ＳＷＯ）３１Ｂに接続するプロキシとして、振舞いエンジンプロキシ（ＳＷＯ）１３２が設定され、振舞いエンジンプロキシ（ＳＷＯ）１３２が使用する判定関数として“ｆ２（ｒ）”が設定されている。さらに、ＳＷＯ用の接続の優先度が高くなるように設定されている。
【００６１】
また、上述した実施形態では、振舞いエンジンクライアント２１が、ＳｅｒｖｅｒＨｅｌｌｏに含まれる乱数を解析しているが、必ずしも乱数を解析する必要はない。乱数を解析しない場合には、ゲートウェイ装置１で生成する乱数は単なる乱数であってもよい。この場合、振舞いエンジンクライアント２１は、受信したＳｅｒｖｅｒＨｅｌｌｏに含まれるアルゴリズムの解析結果によって、振舞いエンジン接続であるか否かを判定することになる。
【００６２】
また、上述した実施形態の振舞いエンジンシステムにおいて、振舞いエンジンプロキシが振舞いエンジンサーバに接続するときには、同期接続してもよいし、非同期接続してもよい。同期接続する場合には、例えば、振舞いエンジンプロキシと振舞いエンジンサーバとが接続したことを確認してから処理を進行し、接続できないときに、エラーを返して通常のＳＳＬ接続により処理を進行する。一方、非同期接続する場合には、例えば、振舞いエンジンプロキシと振舞いエンジンサーバとの接続状態に関わりなく処理を進行する。
【００６３】
また、上述した実施形態の一部または全部は、以下の付記のようにも記載され得る。ただし、本発明を以下に限定するものではない。
【００６４】
（付記１）  外部ネットワークと内部ネットワークとの通信を中継する通信中継装置であって、前記外部ネットワークの端末から、通信の開始を通知する通信開始メッセージを受信した場合に、当該通信開始メッセージに、前記内部ネットワーク内の特定のアプリケーションに対して接続要求することを示す特定アプリ用アルゴリズムが含まれているか否かを判定する判定部と、前記判定部によって前記通信開始メッセージに前記特定アプリ用アルゴリズムが含まれていると判定された場合に、前記通信開始メッセージに含まれる乱数を用いて、前記特定のアプリケーションの動作タイプを特定し、当該特定した前記動作タイプに対応して設定されているプロキシに関する情報を取得する取得部と、前記取得部によって取得された前記プロキシに関する情報に基づいて、前記特定のアプリケーションの動作を、前記端末に代わって制御するプロキシ部と、前記通信開始メッセージに対する応答メッセージの中に、前記通信開始メッセージに含まれる前記特定アプリ用アルゴリズムを組み入れて前記端末に送信する送信部と、を備えることを特徴とする通信中継装置。
【００６５】
（付記２）  前記特定のアプリケーションは、予め設定された前記動作タイプによるデータ処理を行う振舞いエンジンである、ことを特徴とする付記１記載の通信中継装置。
【００６６】
（付記３）  付記１または２記載の通信中継装置と、前記外部ネットワークの端末と、を含むデータ処理システムであって、前記外部ネットワークの端末は、前記特定アプリ用アルゴリズムを含むアルゴリズムリストおよび、前記特定のアプリケーションの動作タイプを特定可能な乱数を生成し、当該生成した前記アルゴリズムリストおよび前記乱数を前記通信開始メッセージに組み入れてから当該通信開始メッセージを前記通信中継装置に送信する、ことを特徴とするデータ処理システム。
【００６７】
（付記４）  前記外部ネットワークの端末は、前記通信中継装置から受信した前記応答メッセージの中に、前記特定アプリ用アルゴリズムが含まれる場合に、前記通信中継装置を介して、前記特定のアプリケーションとの間で前記動作タイプに従ったやり取りを開始する、ことを特徴とする付記３記載のデータ処理システム。
【００６８】
（付記５）  外部ネットワークと内部ネットワークとの通信を中継する通信中継方法であって、前記外部ネットワークの端末から、通信の開始を通知する通信開始メッセージを受信した場合に、当該通信開始メッセージに、前記内部ネットワーク内の特定のアプリケーションに対して接続要求することを示す特定アプリ用アルゴリズムが含まれているか否かを判定する判定ステップと、前記判定ステップにおいて前記通信開始メッセージに前記特定アプリ用アルゴリズムが含まれていると判定された場合に、前記通信開始メッセージに含まれる乱数を用いて、前記特定のアプリケーションの動作タイプを特定し、当該特定した前記動作タイプに対応して設定されているプロキシに関する情報を取得する取得ステップと、前記取得ステップにおいて取得された前記プロキシに関する情報に基づいて、前記特定のアプリケーションの動作を、前記端末に代わって制御するプロキシステップと、前記通信開始メッセージに対する応答メッセージの中に、前記通信開始メッセージに含まれる前記特定アプリ用アルゴリズムを組み入れて前記端末に送信する送信ステップと、を含むことを特徴とする通信中継方法。
【符号の説明】
【００６９】
１…ゲートウェイ装置、２…クライアント端末、３…サーバ装置、８…外部ネットワーク、９…内部ネットワーク、１１…チャネル管理部、１２…特定アプリ制御部、１３…プロキシ部、１９…設定情報テーブル、２１…振舞いエンジンクライアント、３１…振舞いエンジンサーバ、１１１…送信部、１２１…判定部、１２２…取得部、１３１…振舞いエンジンプロキシ、３００…エンジンサーバ群。
【図１】
0005769133.tif 000002
【図２】
0005769133.tif 000003
【図３】
0005769133.tif 000004
【図４】
0005769133.tif 000005
【図５】
0005769133.tif 000006
【図６】
0005769133.tif 000007