説明

通信中継装置、データ処理システムおよび通信中継方法

【課題】内部ネットワーク内の特定のアプリケーションに対して外部ネットワークの端末を効率的かつ簡易に接続させる。
【解決手段】クライアント端末2から通信開始メッセージを受信した場合に、通信開始メッセージに特定アプリ用アルゴリズムが含まれているか否かを判定する判定部121と、通信開始メッセージに特定アプリ用アルゴリズムが含まれていると判定された場合に、通信開始メッセージに含まれる乱数を用いて特定のアプリケーションの動作タイプを特定し、動作タイプに対応して設定されているプロキシ情報を取得する取得部122と、プロキシ情報に基づいて特定のアプリケーションの動作をクライアント端末に代わって制御するプロキシ部13と、応答メッセージの中に、通信開始メッセージに含まれる特定アプリ用アルゴリズムを組み入れてクライアント端末に送信する送信部111と、を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信中継装置、データ処理システムおよび通信中継方法に関する。
【背景技術】
【0002】
従来、企業等で行われる業務処理は、データセンターや社内等のプライベートな内部ネットワークで処理を実行し、この内部ネットワーク内の端末のみがシステムへのアクセスを許可されていた。近年、ユビキタス環境が整備されるにつれ、インターネット上のパソコンや携帯端末等を利用して外部ネットワークからプライベートな内部ネットワークにアクセスし、業務処理を遂行したいという要望が増大している。
【0003】
下記特許文献1には、外部ネットワークの端末が、中継サーバを介して、内部ネットワークにアクセスする技術が開示されている。この技術では、端末を操作するユーザとそのユーザの役割(アプリケーション)を実行するアプリケーションサーバとを対応付けて記憶するデータベースを、中継サーバに備えている。中継サーバは、このデータベースを参照することで、ユーザが操作する端末とアプリケーションサーバとのセッションを管理している。また、この技術では、TLS(Transfer Layer Security)プロトコルに従ったハンドシェイク処理を行うことで、セキュリティを確保した上でのアクセスを可能としている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2007−36389号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
上記特許文献1に記載の技術では、ユーザの役割を事前にデータベースに登録しておかなければならず、さらに役割を変更するときには、中継サーバのデータベースを逐一更新する作業が発生してしまう。
【0006】
本発明は、上述した課題を解決するためになされたものであり、内部ネットワーク内の特定のアプリケーションに対して外部ネットワークの端末を効率的かつ簡易に接続させることができる通信中継装置、データ処理システムおよび通信中継方法を提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明の通信中継装置は、外部ネットワークと内部ネットワークとの通信を中継する通信中継装置であって、前記外部ネットワークの端末から、通信の開始を通知する通信開始メッセージを受信した場合に、当該通信開始メッセージに、前記内部ネットワーク内の特定のアプリケーションに対して接続要求することを示す特定アプリ用アルゴリズムが含まれているか否かを判定する判定部と、前記判定部によって前記通信開始メッセージに前記特定アプリ用アルゴリズムが含まれていると判定された場合に、前記通信開始メッセージに含まれる乱数を用いて、前記特定のアプリケーションの動作タイプを特定し、当該特定した前記動作タイプに対応して設定されているプロキシに関する情報を取得する取得部と、前記取得部によって取得された前記プロキシに関する情報に基づいて、前記特定のアプリケーションの動作を、前記端末に代わって制御するプロキシ部と、前記通信開始メッセージに対する応答メッセージの中に、前記通信開始メッセージに含まれる前記特定アプリ用アルゴリズムを組み入れて前記端末に送信する送信部と、を備える。
【0008】
本発明のデータ処理システムは、前記通信中継装置と、前記外部ネットワークの端末と、を含むデータ処理システムであって、前記外部ネットワークの端末は、前記特定アプリ用アルゴリズムを含むアルゴリズムリストおよび、前記特定のアプリケーションの動作タイプを特定可能な乱数を生成し、当該生成した前記アルゴリズムリストおよび前記乱数を前記通信開始メッセージに組み入れてから当該通信開始メッセージを前記通信中継装置に送信する。
【0009】
本発明の通信中継方法は、外部ネットワークと内部ネットワークとの通信を中継する通信中継方法であって、前記外部ネットワークの端末から、通信の開始を通知する通信開始メッセージを受信した場合に、当該通信開始メッセージに、前記内部ネットワーク内の特定のアプリケーションに対して接続要求することを示す特定アプリ用アルゴリズムが含まれているか否かを判定する判定ステップと、前記判定ステップにおいて前記通信開始メッセージに前記特定アプリ用アルゴリズムが含まれていると判定された場合に、前記通信開始メッセージに含まれる乱数を用いて、前記特定のアプリケーションの動作タイプを特定し、当該特定した前記動作タイプに対応して設定されているプロキシに関する情報を取得する取得ステップと、前記取得ステップにおいて取得された前記プロキシに関する情報に基づいて、前記特定のアプリケーションの動作を、前記端末に代わって制御するプロキシステップと、前記通信開始メッセージに対する応答メッセージの中に、前記通信開始メッセージに含まれる前記特定アプリ用アルゴリズムを組み入れて前記端末に送信する送信ステップと、を含む。
【発明の効果】
【0010】
本発明によれば、内部ネットワーク内の特定のアプリケーションに対して外部ネットワークの端末を効率的かつ簡易に接続させることができる。
【図面の簡単な説明】
【0011】
【図1】実施形態における振舞いエンジンシステムの構成を例示するブロック図である。
【図2】実施形態における設定情報テーブルに格納される設定情報を例示する図である。
【図3】振舞いエンジンシステムの動作を説明するためのフローチャートである。
【図4】振舞いエンジン接続時におけるデータのやり取りを例示する図である。
【図5】変形例における振舞いエンジンシステムの構成を例示するブロック図である。
【図6】変形例における設定情報テーブルに格納される設定情報を例示する図である。
【発明を実施するための形態】
【0012】
以下、添付図面を参照して、本発明に係る通信中継装置、データ処理システムおよび通信中継方法の好適な実施形態について説明する。
【0013】
まず、図1を参照して、実施形態における通信中継装置としてのゲートウェイ装置を有する振舞いエンジンシステムの構成について説明する。振舞いエンジンシステムは、複数のチャネルを利用し、常時接続する特定のアプリケーションを実行するデータ処理システムである。特定のアプリケーションとしては、例えば振舞いエンジンが該当する。本実施形態では、特定のアプリケーションが振舞いエンジンである場合について説明するが、特定のアプリケーションは振舞いエンジンに限定されない。
【0014】
振舞いエンジンは、予め設定された振舞い型(動作タイプ)によるデータ処理を行うアプリケーションである。振舞い型は、処理対象となるデータの入出力動作の内容を示す属性情報により表現する。具体的には、例えば、処理対象データが、順次読み込みのみ(Sequential Read Only(以下、「SRO」という。))のデータである場合には、このようなデータに、振舞い型として“SRO”を付与する。また、処理対象データが、順次書き込みのみ(Sequential Write Only(以下、「SWO」という。))のデータである場合には、このようなデータに、振舞い型として“SWO”を付与する。データ処理としては、例えば、給与計算バッチや税金計算バッチ等の業務処理バッチが該当する。
【0015】
図1に示すように、振舞いエンジンシステムは、クライアント端末2と、ゲートウェイ装置1と、振舞いエンジンサーバ群300を構成する複数のサーバ装置3と、を備える。サーバ装置3は、例えば社内ネットワーク等の内部ネットワーク9に配置される。クライアント端末2は、内部ネットワーク9外に配置され、例えばインターネット等の外部ネットワーク8を介してゲートウェイ装置1に接続する。ゲートウェイ装置1は、外部ネットワーク8と内部ネットワーク9との境界に配置され、外部ネットワーク8と内部ネットワーク9とを中継する。
【0016】
なお、本実施形態では、クライアント端末2が内部ネットワーク9内に構築されている社内システムに接続する場合について記載するが、接続先のシステムは社内システムに限定されない。例えば、データセンターに接続する場合やクラウド上にあるシステムに接続する場合等、セキュリティを確保した上で特定のアプリケーションを利用するシステムに接続する場合に本発明を適用することができる。
【0017】
振舞いエンジンシステムでバッチ処理を実行するためには、内部ネットワーク9の振舞いエンジンサーバ群300に接続してデータを読み書きする必要がある。本実施形態では、クライアント端末2の振舞いエンジンクライアント21からゲートウェイ装置1にSSL(Secure Socket Layer)接続を行い、クライアント端末2がゲートウェイ装置1の振舞いエンジンプロキシ(SRO)131を介して、サーバ装置3の振舞いエンジンサーバ(SRO)31に接続する場合について説明する。
【0018】
クライアント端末2は振舞いエンジンクライアント21を有し、サーバ装置3は振舞いエンジンサーバ31を有する。振舞いエンジンクライアント21と振舞いエンジンサーバ31とで、特定のアプリケーションである振舞いエンジンを実行する。本実施形態における振舞いエンジンサーバ31は、SRO用の振舞いエンジンとして振舞うように設定されていることとする。振舞いエンジンとして振舞うための諸要件は、振舞いエンジンクライアント21と振舞いエンジンサーバ31との双方に設定されていることとする。
【0019】
ゲートウェイ装置1は、クライアント端末2の接続をチェックし、認証や暗号化処理等を行い、必要に応じてアドレス変換やプロトコル変換等を行う機能を有する。
【0020】
ゲートウェイ装置1は、チャネル管理部11と、特定アプリ制御部12と、プロキシ部13とを有する。ゲートウェイ装置1は、上記各部が参照・更新等する設定情報を記憶する設定情報テーブル19を備える。
【0021】
図2に、設定情報テーブル19に格納される設定情報を例示する。設定情報としては、例えば、アルゴリズム、特定アプリケーション、接続クライアント、接続サーバ、判定関数、乱数解析、振舞い型(SRO)、振舞いエンジンプロキシ(SRO)等に関する情報がある。
【0022】
チャネル管理部11は、外部ネットワーク8と内部ネットワーク9とを接続するチャネルを管理する。チャネル管理部11は、一般的なゲートウェイとしての機能を有し、チャネルのセッション情報やIP(Internet Protocol)アドレス等を管理する。
【0023】
特定アプリ制御部12は、特定のアプリケーションである振舞いエンジンの制御を行う。特定アプリ制御部12は、振舞いエンジンサーバ群300および振舞いエンジンクライアント21と情報をやり取りし、その情報を設定情報テーブル19に読み書きする。また、特定アプリ制御部12は、プロキシ部13を制御して、振る舞いエンジンプロキシ131を生成、削除、設定変更する。
【0024】
特定アプリ制御部12は、判定部121と、取得部122とを有する。
【0025】
判定部121は、クライアント端末2から、通信の開始を通知する通信開始メッセージを受信した場合に、この通信開始メッセージに、内部ネットワーク9の振舞いエンジンに対して接続要求することを示す振舞いエンジン用アルゴリズムが含まれているか否かを判定する。
【0026】
取得部122は、判定部121によって通信開始メッセージに振舞いエンジン用アルゴリズムが含まれると判定された場合に、通信開始メッセージに含まれる乱数を用いて、振舞いエンジンの振舞い型を特定し、この特定した振舞い型に対応して設定されている振舞いエンジンプロキシに関する情報を取得する。
【0027】
チャネル管理部11は、送信部111を有する。送信部111は、クライアント端末2から受信した通信開始メッセージへの応答メッセージの中に、通信開始メッセージに含まれる振舞いエンジン用アルゴリズムを組み入れてクライアント端末2に送信する。
【0028】
プロキシ部13は、振舞いエンジンプロキシ131を有する。
【0029】
振舞いエンジンプロキシ131は、取得部122によって取得された振舞いエンジンプロキシに関する情報に基づいて、振舞いエンジンの動作を、クライアント端末2の代わりに制御する。
【0030】
振舞いエンジンプロキシ131は、振舞いエンジンクライアント21および振舞いエンジンサーバ31のプロキシ機能を有し、データの転送を行う。また、振舞いエンジンプロキシ131は、振舞いエンジンクライアント21および振舞いエンジンサーバ31の接続状態に応じて、データの転送/保留や、チャネルの再接続等の機能を有する。また、振舞いエンジンプロキシ131は、外部ネットワーク8からの接続が切断されても、内部ネットワーク9の接続を一定時間保持する等、特定のアプリケーションの特性に合わせてチャネルの接続状態等を任意に設定、変更できる。本実施形態における振舞いエンジンプロキシ131は、振舞い型のSROを処理するプロキシとして動作する。
【0031】
次に、図3を参照して、振舞いエンジンシステムの動作について説明する。この動作例では、クライアント端末2がゲートウェイ装置1にSSL接続を行い、振舞いエンジンプロキシ(SRO)131を介して、振舞いエンジンサーバ(SRO)31に接続する場合について説明する。
【0032】
最初に、クライアント端末2の振舞いエンジンクライアント21は、バッチ処理を開始(ステップS101)するために、振舞いエンジンサーバ群300に接続を試みる。
【0033】
続いて、振舞いエンジンクライアント21は、自端末2が内部ネットワーク9に存在しているか否かを判定する(ステップS102)。この判定がYESである場合(ステップS102;YES)には、通常の振舞いエンジンとしての接続処理を行い、内部ネットワーク9に存在しているときに行う通常処理を実行する(ステップS103)。そして、本動作を終了する。
【0034】
一方、上記ステップS102の判定で、内部ネットワーク9に存在していないと判定した場合(ステップS102;NO)に、振舞いエンジンクライアント21は、振舞いエンジン用のアルゴリズムリストおよび乱数を生成する(ステップS104)。
【0035】
ここで、振舞いエンジン用のアルゴリズムリストには、SSLのハンドシェイクで生成するアルゴリズムの他に、振舞いエンジン接続用のアルゴリズムが追加される。また、SSLのハンドシェイクで生成する乱数と同様に32バイトの乱数を生成する。
【0036】
振舞いエンジン接続用のアルゴリズムは、例えば、振舞いエンジン型であることを示す標記(例えば“BET(Behavior Engine Type)”)+SSLのアルゴリズム名称(例えば“TLS_RSA_WITH_NULL_MD5”)によって表すことができる。図2に示す設定情報のアルゴリズムのうち、“BET_TLS_RSA_WITH_NULL_MD5(0xF001)”および“BET_TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA(0xF012)”が、振舞いエンジン接続用のアルゴリズムに該当する。“BET_TLS_RSA_WITH_NULL_MD5(0xF001)”は、接続先の特定アプリケーションが振舞いエンジンであり、SSLの認証および暗号化が“TLS_RSA_WITH_NULL_MD5”によって行われることを表している。
【0037】
また、乱数は、例えば以下の(1)〜(5)の手順により生成することができる。(1)ある乱数“ra”を仮生成する。(2)設定情報の判定関数に設定されている“f(r)=y”に仮乱数“ra”を代入して“y”を算出する。(3)“y”の値(または“y”の一部)が、設定情報の乱数解析に設定されている指定値と一致するかどうかをチェックする。(4)指定値と一致しない場合には、再度(1)〜(4)までの手順を繰り返す。(5)指定値と一致する場合には、その値を乱数として生成する。
【0038】
本動作例では、上記判定関数“f(r)”として、射影関数“f1(r)”が設定されていることとする。この射影関数“f1(r)”は、入力された乱数から“y0(0x00)”または“y1(=0x01)”を出力する関数であるとする。射影関数“f1(r)”の出力値が“y1(=0x01)”である場合には、振舞い型が“SRO”であることを示す。
【0039】
なお、判定関数として、例えば、射影関数や一方向関数等のように、任意の値を違うディメンジョンの値に変換する関数を用いることができる。また、任意のベクトルの固有値を規定する固有関数を判定関数に用いることができる。さらに、任意の特異点周りを展開した場合の発散/収束を判定に用いることとしてもよい。ただし、クライアント端末2とゲートウェイ装置1とに同じ判定関数や判定方法が設定されていることとする。
【0040】
また、本動作例では、振舞い型が“SRO”であるため、上記乱数として、“f1(r1)=y1(=0x01)”が成立する乱数“r1”を生成することとする。乱数を構成する32バイトのうち、先頭から4バイトまでは時刻情報を格納する領域として使用することができる。なお、乱数の中に直接、指定値を組み入れることとしてもよい。
【0041】
続いて、振舞いエンジンクライアント21は、上記ステップS104で生成したアルゴリズムリストおよび乱数を組み入れたClientHello(通信開始メッセージ)をゲートウェイ装置1に送信する(ステップS105)。これにより、SSLのハンドシェイク処理が開始する。
【0042】
続いて、ゲートウェイ装置1の判定部121は、ClientHelloに含まれるアルゴリズムリストを解析し(ステップS106)、振舞いエンジン接続用のアルゴリズムが含まれているか否かを判定する(ステップS107)。この判定がNOである場合(ステップS107;NO)に、チャネル管理部11は、通常のSSL接続処理を実行する(ステップS108)。そして、本動作を終了する。
【0043】
一方、上記ステップS107の判定で振舞いエンジン接続用のアルゴリズムが含まれていると判定された場合(ステップS107;YES)に、ゲートウェイ装置1の取得部122は、ClientHelloに含まれる乱数を解析し(ステップS109)、判定関数“f1(r)”の値が指定値に含まれるか否かを判定する(ステップS110)。この判定がNOである場合(ステップS110;NO)に、チャネル管理部11は、通常のSSL接続処理を実行し(ステップS108)、本動作を終了する。
【0044】
一方、上記ステップS110の判定で判定関数“f1(r)”の値が指定値に含まれると判定された場合(ステップS110;YES)に、取得部122は、指定値に基づいて振舞い型を特定する(ステップS111)。本動作例では、判定関数“f1(r)”の値が“y1(=0x01)”となるため、振る舞い型は“SRO”となる。
【0045】
続いて、ゲートウェイ装置1の特定アプリ制御部12は、特定した振舞い型に対応する振舞いエンジンプロキシ情報に基づいて、振舞いエンジンプロキシを生成する(ステップS112)。本動作例では、振る舞い型が“SRO”であるため、振舞いエンジンプロキシ(SRO)131を生成し、振舞いエンジンサーバ(SRO)31に接続する。
【0046】
続いて、ゲートウェイ装置1の特定アプリ制御部12は、ClientHelloに含まれるアルゴリズムリストの中から振舞いエンジン接続用のアルゴリズムを選択してアルゴリズムを生成するとともに、乱数を生成する(ステップS113)。この乱数は、判定関数“f1(r)”の値が特定の振舞い型を示す値になるように生成する。本動作例では、振舞い型が“SRO”であるため、判定関数“f1(r)”の値が“y1(=0x01)”になる乱数“r1”を生成する。
【0047】
続いて、ゲートウェイ装置1の送信部111は、ステップS113で生成されたアルゴリズムおよび乱数とサーバ証明書とを組み入れたServerHelloを生成し、振舞いエンジンクライアント21に送信する(ステップS114)。
【0048】
続いて、振舞いエンジンクライアント21は、ServerHelloに含まれるアルゴリズムおよび乱数を解析する(ステップS115)。
【0049】
続いて、振舞いエンジンクライアント21は、ServerHelloに含まれるアルゴリズムが振舞いエンジン接続用のアルゴリズムであるか否かを確認するとともに、乱数を判定関数“f1(r)”に代入し、判定関数の値が振舞い型を示す値であるか否かを確認することで、振舞いエンジン接続であるか否かを判定する(ステップS116)。この判定がNOである場合(ステップS116;NO)に、振舞いエンジンクライアント21は、通常のSSL接続処理を実行し(ステップS117)、本動作を終了する。
【0050】
一方、上記ステップS116の判定で、振舞いエンジン接続であると判定された場合(ステップS116;YES)に、振舞いエンジンクライアント21は、振舞いエンジンプロキシ(SRO)131を介して、振る舞いエンジンサーバ(SRO)31との間で振舞いエンジン接続を行う(ステップS118)。これにより、振舞いエンジンクライアント21と振舞いエンジンサーバ31との間でデータのやり取りが開始される。
【0051】
図4を参照して、振舞いエンジン接続した振舞いエンジンクライアント21と振舞いエンジンサーバ31との間で行われるやり取りの内容について説明する。ここで、振舞いエンジンプロキシ(SRO)131は、上記ステップS111で振る舞い型が“SRO”であることを特定しているため、振舞いエンジン接続時には、振舞いエンジンクライアント21と振る舞いエンジンサーバ(SRO)31とのチャネルが、SROのチャネルであることを認知している。
【0052】
まず、振舞いエンジンクライアント21は、“データA”をカプセル化することなく(SSLトンネル接続を採用することなく)直接暗号化し、“暗号化データA”を生成する(ステップS201)。続いて、振舞いエンジンクライアント21は、“暗号化データA”を振舞いエンジンプロキシ(SRO)131に送信する(ステップS202)。続いて、振舞いエンジンプロキシ(SRO)131は、“暗号化データA”の暗号化を解除して“データA”とし、ダイレクトに振舞いエンジンサーバ31に転送する(ステップS203)。これにより、振舞いエンジンサーバ31は、振舞いエンジンクライアント21から“データA”を取得することになる。
【0053】
このように、振舞いエンジンプロキシは、“暗号化データA”の暗号化を解除して、“データA”をダイレクトに振舞いエンジンサーバ31に転送すればよいため、SSL接続時のように、データの中身をチェックしてアプリケーションを特定する必要がない。また、振舞いエンジンプロキシは転送先を事前に認知しているため、データ転送フェーズになってからゲートウェイ装置とサーバ装置との接続を開始するSSL接続に比べて、ゲートウェイ装置1での処理が少なくなり、データ転送が早くなる。
【0054】
一方、振舞いエンジンサーバ31は、“データB”を振舞いエンジンプロキシ(SRO)131に送信する(ステップS204)と、振舞いエンジンプロキシ(SRO)131は、“データB”を暗号化して“暗号化データB”を生成する(ステップS205)。続いて、振舞いエンジンプロキシ(SRO)131は、“暗号化データB”を振舞いエンジンクライアント21に転送する(ステップS206)。続いて、振舞いエンジンクライアント21は、“暗号化データB”の暗号化を解除して“データB”を取得する(ステップS207)。
【0055】
上述したように、実施形態における振舞いエンジンシステムによれば、ClientHelloに振舞いエンジンに関する情報が組み込まれているため、SSLのハンドシェイク処理の段階でどのような接続が行われるのかを識別することができる。これにより、振舞いエンジンの接続準備や振舞いエンジンサーバへのチャネル設定を、事前に進行させておくことができるため、外部にあるクライアント端末2からの接続を高速に行うことが可能となる。
【0056】
また、実施形態における振舞いエンジンシステムによれば、外部と内部との接続を振舞いエンジンごとに最適化することができるため、再接続を高速に行うことが可能になる。例えば、振舞いエンジンプロキシに関する設定情報として、クライアント端末と振舞いエンジンプロキシとの接続が切断された場合に振舞いエンジンプロキシと振舞いエンジンサーバとの接続を維持する旨の設定を登録しておくことができる。この場合には、クライアント端末が振舞いエンジンプロキシに再接続してきたときに、クライアント端末と振舞いエンジンサーバとの接続を高速に実現することができる。
【0057】
また、実施形態における振舞いエンジンシステムは、接続時に用いるパラメタとしてSSLのパラメタのみを用いて実現することができるため、ファイアウォール等のネットワーク機器によって破棄される可能性を低減することができる。これにより、外部から内部への接続性を向上させることができる。また、パラメタの内部に振舞いエンジンの情報を組み込むため、第三者に見破られる可能性を低減することができる。
【0058】
[変形例]
なお、上述した実施形態は、単なる例示に過ぎず、実施形態に明示していない種々の変形や技術の適用を排除するものではない。すなわち、本発明は、その趣旨を逸脱しない範囲で様々な形態に変形して実施することができる。
【0059】
例えば、上述した実施形態では、特定のアプリケーションである振舞いエンジンが一つのチャネルを利用する場合について説明しているが、振舞いエンジンが複数のチャネルを利用する場合にも本発明を適用することができる。図5および図6を参照して、振舞いエンジンが二つのチャネルを利用する場合について説明する。図5は、振舞いエンジンシステムの構成を例示する図である。図6は、設定情報テーブル19に格納される設定情報を例示する図である。以下においては、上述した一つのチャネルを利用する場合と異なる点について説明する。
【0060】
図5に示すように、振舞いエンジンサーバ群300は、振舞いエンジンサーバ(SRO)31Aを有するサーバ装置3Aと、振舞いエンジンサーバ(SWO)31Bを有するサーバ装置3Bと、を備える。図6に示すように、振舞い型情報には、“SRO”と“SWO”とが設定されている。また、振舞いエンジンサーバ(SRO)31Aが、SROエンジンとして振舞い、振舞いエンジンサーバ(SWO)31Bが、SWOエンジンとして振舞うように設定されている。また、振舞いエンジンサーバ(SWO)31Bに接続するプロキシとして、振舞いエンジンプロキシ(SWO)132が設定され、振舞いエンジンプロキシ(SWO)132が使用する判定関数として“f2(r)”が設定されている。さらに、SWO用の接続の優先度が高くなるように設定されている。
【0061】
また、上述した実施形態では、振舞いエンジンクライアント21が、ServerHelloに含まれる乱数を解析しているが、必ずしも乱数を解析する必要はない。乱数を解析しない場合には、ゲートウェイ装置1で生成する乱数は単なる乱数であってもよい。この場合、振舞いエンジンクライアント21は、受信したServerHelloに含まれるアルゴリズムの解析結果によって、振舞いエンジン接続であるか否かを判定することになる。
【0062】
また、上述した実施形態の振舞いエンジンシステムにおいて、振舞いエンジンプロキシが振舞いエンジンサーバに接続するときには、同期接続してもよいし、非同期接続してもよい。同期接続する場合には、例えば、振舞いエンジンプロキシと振舞いエンジンサーバとが接続したことを確認してから処理を進行し、接続できないときに、エラーを返して通常のSSL接続により処理を進行する。一方、非同期接続する場合には、例えば、振舞いエンジンプロキシと振舞いエンジンサーバとの接続状態に関わりなく処理を進行する。
【0063】
また、上述した実施形態の一部または全部は、以下の付記のようにも記載され得る。ただし、本発明を以下に限定するものではない。
【0064】
(付記1) 外部ネットワークと内部ネットワークとの通信を中継する通信中継装置であって、前記外部ネットワークの端末から、通信の開始を通知する通信開始メッセージを受信した場合に、当該通信開始メッセージに、前記内部ネットワーク内の特定のアプリケーションに対して接続要求することを示す特定アプリ用アルゴリズムが含まれているか否かを判定する判定部と、前記判定部によって前記通信開始メッセージに前記特定アプリ用アルゴリズムが含まれていると判定された場合に、前記通信開始メッセージに含まれる乱数を用いて、前記特定のアプリケーションの動作タイプを特定し、当該特定した前記動作タイプに対応して設定されているプロキシに関する情報を取得する取得部と、前記取得部によって取得された前記プロキシに関する情報に基づいて、前記特定のアプリケーションの動作を、前記端末に代わって制御するプロキシ部と、前記通信開始メッセージに対する応答メッセージの中に、前記通信開始メッセージに含まれる前記特定アプリ用アルゴリズムを組み入れて前記端末に送信する送信部と、を備えることを特徴とする通信中継装置。
【0065】
(付記2) 前記特定のアプリケーションは、予め設定された前記動作タイプによるデータ処理を行う振舞いエンジンである、ことを特徴とする付記1記載の通信中継装置。
【0066】
(付記3) 付記1または2記載の通信中継装置と、前記外部ネットワークの端末と、を含むデータ処理システムであって、前記外部ネットワークの端末は、前記特定アプリ用アルゴリズムを含むアルゴリズムリストおよび、前記特定のアプリケーションの動作タイプを特定可能な乱数を生成し、当該生成した前記アルゴリズムリストおよび前記乱数を前記通信開始メッセージに組み入れてから当該通信開始メッセージを前記通信中継装置に送信する、ことを特徴とするデータ処理システム。
【0067】
(付記4) 前記外部ネットワークの端末は、前記通信中継装置から受信した前記応答メッセージの中に、前記特定アプリ用アルゴリズムが含まれる場合に、前記通信中継装置を介して、前記特定のアプリケーションとの間で前記動作タイプに従ったやり取りを開始する、ことを特徴とする付記3記載のデータ処理システム。
【0068】
(付記5) 外部ネットワークと内部ネットワークとの通信を中継する通信中継方法であって、前記外部ネットワークの端末から、通信の開始を通知する通信開始メッセージを受信した場合に、当該通信開始メッセージに、前記内部ネットワーク内の特定のアプリケーションに対して接続要求することを示す特定アプリ用アルゴリズムが含まれているか否かを判定する判定ステップと、前記判定ステップにおいて前記通信開始メッセージに前記特定アプリ用アルゴリズムが含まれていると判定された場合に、前記通信開始メッセージに含まれる乱数を用いて、前記特定のアプリケーションの動作タイプを特定し、当該特定した前記動作タイプに対応して設定されているプロキシに関する情報を取得する取得ステップと、前記取得ステップにおいて取得された前記プロキシに関する情報に基づいて、前記特定のアプリケーションの動作を、前記端末に代わって制御するプロキシステップと、前記通信開始メッセージに対する応答メッセージの中に、前記通信開始メッセージに含まれる前記特定アプリ用アルゴリズムを組み入れて前記端末に送信する送信ステップと、を含むことを特徴とする通信中継方法。
【符号の説明】
【0069】
1…ゲートウェイ装置、2…クライアント端末、3…サーバ装置、8…外部ネットワーク、9…内部ネットワーク、11…チャネル管理部、12…特定アプリ制御部、13…プロキシ部、19…設定情報テーブル、21…振舞いエンジンクライアント、31…振舞いエンジンサーバ、111…送信部、121…判定部、122…取得部、131…振舞いエンジンプロキシ、300…エンジンサーバ群。

【特許請求の範囲】
【請求項1】
外部ネットワークと内部ネットワークとの通信を中継する通信中継装置であって、
前記外部ネットワークの端末から、通信の開始を通知する通信開始メッセージを受信した場合に、当該通信開始メッセージに、前記内部ネットワーク内の特定のアプリケーションに対して接続要求することを示す特定アプリ用アルゴリズムが含まれているか否かを判定する判定部と、
前記判定部によって前記通信開始メッセージに前記特定アプリ用アルゴリズムが含まれていると判定された場合に、前記通信開始メッセージに含まれる乱数を用いて、前記特定のアプリケーションの動作タイプを特定し、当該特定した前記動作タイプに対応して設定されているプロキシに関する情報を取得する取得部と、
前記取得部によって取得された前記プロキシに関する情報に基づいて、前記特定のアプリケーションの動作を、前記端末に代わって制御するプロキシ部と、
前記通信開始メッセージに対する応答メッセージの中に、前記通信開始メッセージに含まれる前記特定アプリ用アルゴリズムを組み入れて前記端末に送信する送信部と、
を備えることを特徴とする通信中継装置。
【請求項2】
前記特定のアプリケーションは、予め設定された前記動作タイプによるデータ処理を行う振舞いエンジンである、
ことを特徴とする請求項1記載の通信中継装置。
【請求項3】
請求項1または2記載の通信中継装置と、
前記外部ネットワークの端末と、を含むデータ処理システムであって、
前記外部ネットワークの端末は、前記特定アプリ用アルゴリズムを含むアルゴリズムリストおよび、前記特定のアプリケーションの動作タイプを特定可能な乱数を生成し、当該生成した前記アルゴリズムリストおよび前記乱数を前記通信開始メッセージに組み入れてから当該通信開始メッセージを前記通信中継装置に送信する、
ことを特徴とするデータ処理システム。
【請求項4】
前記外部ネットワークの端末は、前記通信中継装置から受信した前記応答メッセージの中に、前記特定アプリ用アルゴリズムが含まれる場合に、前記通信中継装置を介して、前記特定のアプリケーションとの間で前記動作タイプに従ったやり取りを開始する、
ことを特徴とする請求項3記載のデータ処理システム。
【請求項5】
外部ネットワークと内部ネットワークとの通信を中継する通信中継方法であって、
前記外部ネットワークの端末から、通信の開始を通知する通信開始メッセージを受信した場合に、当該通信開始メッセージに、前記内部ネットワーク内の特定のアプリケーションに対して接続要求することを示す特定アプリ用アルゴリズムが含まれているか否かを判定する判定ステップと、
前記判定ステップにおいて前記通信開始メッセージに前記特定アプリ用アルゴリズムが含まれていると判定された場合に、前記通信開始メッセージに含まれる乱数を用いて、前記特定のアプリケーションの動作タイプを特定し、当該特定した前記動作タイプに対応して設定されているプロキシに関する情報を取得する取得ステップと、
前記取得ステップにおいて取得された前記プロキシに関する情報に基づいて、前記特定のアプリケーションの動作を、前記端末に代わって制御するプロキシステップと、
前記通信開始メッセージに対する応答メッセージの中に、前記通信開始メッセージに含まれる前記特定アプリ用アルゴリズムを組み入れて前記端末に送信する送信ステップと、
を含むことを特徴とする通信中継方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2013−74364(P2013−74364A)
【公開日】平成25年4月22日(2013.4.22)
【国際特許分類】
【出願番号】特願2011−210236(P2011−210236)
【出願日】平成23年9月27日(2011.9.27)
【出願人】(000004237)日本電気株式会社 (19,353)
【Fターム(参考)】