(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-09-05
(45)【発行日】2022-09-13
(54)【発明の名称】情報処理装置、データ処理方法及びデータ処理プログラム
(51)【国際特許分類】
G06F 9/50 20060101AFI20220906BHJP
【FI】
G06F9/50 150C
G06F9/50 150D
(21)【出願番号】P 2019161840
(22)【出願日】2019-09-05
【審査請求日】2021-01-08
(73)【特許権者】
【識別番号】000227205
【氏名又は名称】NECプラットフォームズ株式会社
(74)【代理人】
【識別番号】100103894
【氏名又は名称】家入 健
(72)【発明者】
【氏名】神宮寺 岳
【審査官】三坂 敏夫
(56)【参考文献】
【文献】特開平09-293057(JP,A)
【文献】特開2010-239312(JP,A)
【文献】特開2019-125093(JP,A)
【文献】特開2019-046397(JP,A)
【文献】特開2017-016494(JP,A)
【文献】特開2008-135868(JP,A)
【文献】特開2018-200603(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/455-9/54
(57)【特許請求の範囲】
【請求項1】
端末装置から受信されたデータを他の情報処理装置に転送する場合の転送時間を予測する学習結果に基づいて、前記転送時間を予測するとともに、前記データを自装置で処理する場合の処理開始時間を算出し、前記転送時間と前記処理開始時間とに基づいて、前記データを前記他の情報処理装置に転送するか否かを判定する判定部と、
前記判定部が前記データを転送しないと判定した場合、前記データを処理するデータ処理部と、
前記判定部が前記データを転送すると判定した場合、前記データを前記他の情報処理装置に転送する通信部と、を備え、
前記通信部は、前記他の情報処理装置から
前記自装置にデータを転送する許可を求める転送要求を前記他の情報処理装置から受けた場合において、前記データ処理部が高負荷と判断される状態である場合には、前記転送要求を拒否する応答を前記他の情報処理装置に送信する情報処理装置。
【請求項2】
前記学習結果は、前記転送時間を予測することに加えて、前記端末装置から受信されたデータを自装置で処理する場合の処理時間も予測する学習結果であり、
前記判定部は、前記学習結果に基づいて、自装置において処理待ちのデータに対する前記処理時間を予測し、前記処理時間に基づいて、前記処理開始時間を算出する、請求項1に記載の情報処理装置。
【請求項3】
前記学習結果は、前記データのデータサイズと、前記データのプロトコル又は拡張子とを入力し、前記転送時間及び前記処理時間の予測値を出力する学習結果である、請求項2に記載の情報処理装置。
【請求項4】
前記データ処理部は、前記判定部が前記データを前記他の情報処理装置に転送すると判定する場合であって、前記データを転送する転送先の情報処理装置が存在しない場合、前記データを自装置で処理する、請求項1~3のいずれか1項に記載の情報処理装置。
【請求項5】
前記データ処理部は、前記判定部が前記データを前記他の情報処理装置に転送すると判定する場合であって、前記データの転送処理が失敗した場合、前記データを自装置で処理する、請求項1~4のいずれか1項に記載の情報処理装置。
【請求項6】
前記学習結果は、自装置及び前記他の情報処理装置により処理されたデータの処理時間及び転送時間の結果に基づいて学習された学習結果である、請求項1~5のいずれか1項に記載の情報処理装置。
【請求項7】
前記端末装置から受信されたデータを処理するUTM機能を選択する選択部を備え、
前記学習結果は、前記UTM機能毎に学習された学習結果であり、
前記判定部は、前記選択されたUTM機能についての学習結果に基づいて、前記データを前記他の情報処理装置に転送するか否かを判定する、請求項1~6のいずれか1項に記載の情報処理装置。
【請求項8】
自装置に帰属する端末装置から受信されたデータを前記自装置とは異なる他の情報処理装置に転送する場合の転送時間を予測する学習結果に基づいて、前記転送時間を予測することと、
前記データを自装置で処理する場合の開始時間を算出することと、
前記転送時間と前記開始時間とに基づいて、前記データを前記他の情報処理装置に転送するか否かを判定することと、
前記データを転送しないことが判定された場合、前記データを処理することと、
前記データを転送することが判定された場合、前記データを前記他の情報処理装置に転送することと、
前記他の情報処理装置から
前記自装置にデータを転送する許可を求める転送要求を前記他の情報処理装置から受けた場合において、前記データの処理状態が高負荷と判断される状態である場合には、前記転送要求を拒否する応答を前記他の情報処理装置に送信することと、を含むデータ処理方法。
【請求項9】
自装置内のコンピュータで実行されるデータ処理プログラムであって、
前記自装置に帰属する端末装置から受信されたデータを前記自装置とは異なる他の情報処理装置に転送する場合の転送時間を予測する学習結果に基づいて、前記転送時間を予測することと、
前記データを前記自装置で処理する場合の開始時間を算出することと、
前記転送時間と前記開始時間とに基づいて、前記データを前記他の情報処理装置に転送するか否かを判定することと、
前記データを転送しないことが判定された場合、前記データを処理することと、
前記データを転送することが判定された場合、前記データを前記他の情報処理装置に転送することと、
前記他の情報処理装置から
前記自装置にデータを転送する許可を求める転送要求を前記他の情報処理装置から受けた場合において、前記データの処理状態が高負荷と判断される状態である場合には、前記転送要求を拒否する応答を前記他の情報処理装置に送信することと、を前記コンピュータに実行させるデータ処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、情報処理装置、データ処理方法及びデータ処理プログラムに関する。
【背景技術】
【0002】
近年、企業を狙ったサーバ攻撃が増加している。また、サーバ攻撃方法も進化しており、ファイアウォールのみでの対応が難しくなっており、UTM(Unified Threat Management)をセキュリティ対策として導入をする企業が増えている。しかし、UTMは複数のセキュリティ機能を1つの装置内で動作させるため、ユーザ数やセッション数が多い場所では負荷が高くなり回線速度の低下等、処理能力が高い状態を維持できないことが多い。
【0003】
UTMを有する装置を複数台稼働させた場合、通信量や利用するUTMの機能により装置毎に受ける負荷は異なる。負荷が高くなった装置では、UTMの処理能力低下や通信速度の遅延が発生する。
【0004】
ここで、複数の装置における処理負荷を考慮してデータを処理する装置を分散し、各装置における処理負荷を抑制する技術が知られている(例えば、特許文献1及び2)。特許文献1には、負荷分散装置が複数のセキュリティ管理のためのデータ処理を行うサーバ装置の負荷状態に基づいて、端末装置のセキュリティ管理を行うサーバ装置を選択し、各サーバ装置における処理負荷を抑制する技術が開示されている。特許文献2には、マスターが各エージェントの処理結果等を考慮して、ジョブを割り当てるエージェントを決定することにより各エージェントの処理負荷を抑制した分散処理を行う分散処理システムが開示されている。
【先行技術文献】
【特許文献】
【0005】
【文献】国際公開第2016/046920号
【文献】特開2012-256380号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
特許文献1に開示された技術では、負荷分散装置が、データ処理を行うサーバ装置を選択している。そのため、特許文献1に開示された技術では、負荷分散装置を設ける必要があり、さらに、負荷分散を行うために、負荷分散装置と、各サーバ装置との間で負荷情報等を送受信する必要がある。また、特許文献2に開示された技術においても、マスターと各エージェントとの間で処理結果等を送受信する必要がある。すなわち、特許文献1及び2に開示された技術では、負荷分散を行うために、負荷情報及び処理結果等を常時送受信する必要があり、システム内の回線速度の低下につながる虞がある。
【0007】
また、負荷を分散させるために別装置へ処理データを転送する方法も想定されるが、処理データを転送せずに自装置で処理する方が速い場合もあり得る。また、各装置において、処理負荷が高くなり、処理できないデータが増えてきた場合に、当該データを全て別装置に転送することも考えられる。しかしながら、処理できないデータを全て別装置に転送すると、システム内の回線速度がさらに低下してしまう虞がある。
【0008】
本開示の目的は、上述した課題を解決するためになされたものであり、システム内の回線速度の低下を抑制することが可能な情報処理装置、データ処理方法及びデータ処理プログラムを提供することにある。
【課題を解決するための手段】
【0009】
本開示にかかる情報処理装置は、
端末装置から受信されたデータを他の情報処理装置に転送する場合の転送時間を予測する学習結果に基づいて、前記転送時間を予測するとともに、前記データを自装置で処理する場合の処理開始時間を算出し、前記転送時間と前記処理開始時間とに基づいて、前記データを前記他の情報処理装置に転送するか否かを判定する判定部と、
前記判定部が前記データを転送しないと判定した場合、前記データを処理するデータ処理部と、
前記判定部が前記データを転送すると判定した場合、前記データを前記他の情報処理装置に転送する通信部と、を備える。
【0010】
本開示にかかるデータ処理方法は、
端末装置から受信されたデータを他の情報処理装置に転送する場合の転送時間を予測する学習結果に基づいて、前記転送時間を予測することと、
前記データを自装置で処理する場合の開始時間を算出することと、
前記転送時間と前記開始時間とに基づいて、前記データを前記他の情報処理装置に転送するか否かを判定することと、
前記データを転送しないことが判定された場合、前記データを処理することと、
前記データを転送することが判定された場合、前記データを前記他の情報処理装置に転送することと、を含むデータ処理方法である。
【0011】
本開示にかかるデータ処理プログラムは、
端末装置から受信されたデータを他の情報処理装置に転送する場合の転送時間を予測する学習結果に基づいて、前記転送時間を予測することと、
前記データを自装置で処理する場合の開始時間を算出することと、
前記転送時間と前記開始時間とに基づいて、前記データを前記他の情報処理装置に転送するか否かを判定することと、
前記データを転送しないことが判定された場合、前記データを処理することと、
前記データを転送することが判定された場合、前記データを前記他の情報処理装置に転送することと、をコンピュータに実行させるデータ処理プログラムである。
【発明の効果】
【0012】
本開示によれば、システム内の回線速度の低下を抑制することが可能な情報処理装置、データ処理方法及びデータ処理プログラムを提供できる。
【図面の簡単な説明】
【0013】
【
図1】実施の形態1にかかる情報処理装置の構成例を示すブロック図である。
【
図2】実施の形態2にかかる情報処理システムの構成例を示す図である。
【
図3】学習結果DBに格納された学習結果の一例を示す図である。
【
図6】転送処理結果テーブルの一例を示す図である。
【
図7】UTM処理結果テーブルの一例を示す図である。
【
図8】実施の形態2にかかる情報処理装置の動作例を示すフローチャートである。
【
図9】本開示の各実施の形態にかかる情報処理装置のハードウェア構成を例示するブロック図である。
【発明を実施するための形態】
【0014】
以下、図面を参照して本開示の実施の形態について説明する。なお、以下の記載及び図面は、説明の明確化のため、適宜、省略及び簡略化がなされている。また、以下の各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
【0015】
(実施の形態1)
図1を用いて、実施の形態1にかかる情報処理装置1について説明する。
図1は、実施の形態1にかかる情報処理装置の構成例を示す図である。情報処理装置1は、例えば、サーバ装置、パーソナルコンピュータ装置等であってもよい。情報処理装置1は、判定部2と、データ処理部3と、通信部4とを備える。
【0016】
判定部2は、端末装置(不図示)から受信されたデータを他の情報処理装置(不図示)に転送する場合の転送時間を予測する学習結果に基づいて、転送時間を予測する。判定部2は、データを自装置で処理する場合の開始時間を算出する。判定部2は、転送時間と開始時間とに基づいて、端末装置から受信されたデータを他の情報処理装置に転送するか否かを判定する。
【0017】
データ処理部3は、判定部2がデータを他の情報処理装置に転送しないと判定した場合、データを処理する。
通信部4は、判定部2がデータを他の情報処理装置に転送すると判定した場合、データを他の情報処理装置に転送する。
【0018】
情報処理装置1は、上記構成を有するので、他の情報処理装置との通信を行わずに、端末装置から受信されたデータを自装置で処理するのか他の情報処理装置に転送するのかを判定できる。したがって、本実施の形態にかかる情報処理装置1によれば、システム内の回線速度の低下を抑制することが可能となる。
【0019】
(実施の形態2)
続いて、実施の形態2について説明する。実施の形態2は、実施の形態1を具体的にした実施の形態である。
<情報処理システムの構成例>
図2を用いて、実施の形態2にかかる情報処理システム100の構成例について説明する。
図2は、実施の形態2にかかる情報処理システムの構成例を示す図である。情報処理システム100は、端末装置10_1~10_3と、情報処理装置20_1~20_3と、機械学習装置30と、転送先一覧DB(DataBase)40とを備える。
【0020】
なお、情報処理システム100は、端末装置を3台備える構成としているが、1台以上の端末装置を備える構成であればよい。また、情報処理システム100は、情報処理装置を3台備える構成としているが、2台以上の情報処理装置を備える構成であればよい。以降の説明において、端末装置10_1~10_3を区別しない場合、端末装置10と記載することがあり、情報処理装置20_1~20_3を区別しない場合、情報処理装置20と記載することがある。
【0021】
端末装置10_1~10_3は、それぞれ情報処理装置20_1~20_3のいずれかに処理対象のデータを送信する。端末装置10_1~10_3は、それぞれ任意に情報処理装置20_1~20_3からデータを処理する情報処理装置を選択して、処理対象のデータを選択した情報処理装置に送信する。
【0022】
情報処理装置20_1~20_3は、UTM機能を有する情報処理装置である。UTM機能は、例えば、アンチウィルス、Webフィルタリング、IPS(Intrusion Prevention System)等の機能であってもよい。情報処理装置20_1~20_3は、同様の構成をしており、それぞれ端末装置10_1~10_3から処理対象のデータを受信すると、受信したデータに基づいて、使用するUTM機能を選択する。
【0023】
情報処理装置20_1~20_3は、それぞれ端末装置10から受信されたデータを自装置で処理するのか他の情報処理装置に転送するのかを判定する。情報処理装置20_1~20_3は、端末装置10から受信されたデータを自装置で処理する場合、自装置で処理し、端末装置10から受信されたデータを他の情報処理装置に転送する場合、他の情報処理装置に転送する。
【0024】
機械学習装置30は、情報処理装置20_1~20_3から送信される情報に基づいて、機械学習を行う装置である。機械学習装置30は、UTM機能毎に機械学習された学習結果を生成し、生成した学習結果を情報処理装置20_1~20_3に送信する。
【0025】
転送先一覧DB40は、情報処理装置20_1~20_3が端末装置10_1~10_3のいずれかから受信したデータを他の情報処理装置に転送する場合の転送先一覧を記憶する。転送先一覧DB40は、転送先一覧を情報処理装置20_1~20_3に送信する。
【0026】
<情報処理装置の構成例>
次に、情報処理装置20_1~20_3の構成例について説明する。情報処理装置20_1~20_3は、それぞれ同様の構成をしているため、情報処理装置20_1を用いて説明する。情報処理装置20_1は、UTM実行機能選択部21と、転送・待機判定部22と、通信部23と、UTM処理部24と、記憶部25とを備える。
【0027】
UTM実行機能選択部21は、端末装置10から情報処理装置20_1において処理されるデータを受信する。UTM実行機能選択部21は、端末装置10から受信された受信データを処理するUTM機能を選択する。UTM実行機能選択部21は、受信データのプロトコル又は拡張子に基づいて、受信データに対して使用するUTM機能を選択する。なお、使用するUTM機能は情報処理装置の設定及び処理順序等に従って決定される。
【0028】
転送・待機判定部22は、実施の形態1における判定部2に対応する。転送・待機判定部22は、端末装置10から受信されたデータを他の情報処理装置に転送する場合の転送時間を予測する学習結果に基づいて、転送時間を予測する。転送・待機判定部22は、端末装置10から受信されたデータを自装置で処理する場合の処理時間を予測する学習結果に基づいて、処理時間を予測する。
【0029】
また、転送・待機判定部22は、端末装置10から受信されたデータを自装置で処理する場合の処理開始時間を算出する。そして、転送・待機判定部22は、予測された転送時間と、処理開始時間とに基づいて、端末装置10から受信されたデータを他の情報処理装置に転送するのか否かを判定する。
【0030】
ここで、
図3を用いて、学習結果DB251に格納された学習結果について説明するとともに、転送・待機判定部22が転送時間及び処理時間を予測する処理について説明する。
図3は、学習結果DBに格納された学習結果の一例を示す図である。
【0031】
学習結果は、UTM機能単位で(UTM機能毎に)生成され、学習結果DB251に格納される。学習結果は、機械学習装置30により機械学習された学習結果であり、UTM機能毎に、情報処理装置20_1~20_3において処理されたデータの処理時間及び転送時間の結果に基づいて機械学習された学習結果である。
【0032】
具体的には、学習結果は、機械学習装置30が、UTM機能毎に、情報処理装置20_1~20_3において処理されたデータのデータサイズと、当該データのプロトコル又は拡張子と、処理時間及び転送時間の結果(実績値)とを学習データとして機械学習を行い生成された学習結果である。
【0033】
図3に示すように、学習結果は、例えば、テーブル形式で保持されており、データサイズと、プロトコル/拡張子と、予測処理時間と、予測転送時間とが対応付けて設定されている。学習結果は、データサイズと、プロトコル又は拡張子とが入力されると、予測処理時間と、予測転送時間とを出力する。予測処理時間は、情報処理装置20_1が端末装置10から受信されたデータを自装置で処理する場合に予測される処理時間である。予測転送時間は、情報処理装置20_1が端末装置10から受信されたデータを他の情報処理装置に転送する場合に予測される転送時間である。つまり、学習結果は、端末装置10から受信されたデータを自装置で処理する場合の処理時間を予測する学習結果であり、かつ、端末装置10から受信されたデータを他の情報処理装置に転送する場合の転送時間を予測する学習結果である。具体的には、学習結果は、端末装置10から受信されたデータのデータサイズと、当該データのプロトコル又は拡張子とを入力し、他の情報処理装置に逓送する転送時間及び自装置で処理する処理時間の予測値を出力する学習結果である。
【0034】
なお、本実施形態における学習結果には、データサイズに加えて、対象データのプロトコル又は拡張子が含まれる。例えば、アンチウィルス等の機能では、ZIPファイル等の圧縮ファイルを一度解凍してから解析をする。そのため、学習結果にプロトコル又は拡張子が含まれていることにより、拡張子又は解凍後のサイズによる処理時間の差分を考慮できるため好ましい。具体的には、IPS等のパケット内の情報で判定する機能の場合、プロトコル(TCP、UDP、ICMP等)により調査箇所及び内容が異なるため、データサイズが同じであっても処理時間に差分が生じる。そのため、本実施の形態では、学習結果は、プロトコル又は拡張子を含む構成となっている。このようにすることにより、プロトコル又は拡張子も含めた転送時間及び処理時間を予測することができるため、転送時間及び処理時間の予測精度が向上する。
【0035】
次に、転送・待機判定部22が転送時間及び処理時間を予測する処理について説明する。転送・待機判定部22は、端末装置10から処理対象のデータを受信すると、受信したデータに使用するUTM機能と、受信したデータのデータサイズと、当該データのプロトコル又は拡張子とを判断する。転送・待機判定部22は、受信したデータに使用するUTM機能と一致する学習結果を選択する。転送・待機判定部22は、データサイズと、プロトコル又は拡張子とを学習結果に入力し、学習結果を用いて、データサイズと、プロトコル又は拡張子とに対応付けられた予測処理時間及び予測転送時間を取得する。転送・待機判定部22は、取得した予測処理時間及び予測転送時間に基づいて処理時間及び転送時間を予測する。
【0036】
次に、
図4を用いて、待機一覧テーブル252について説明するとともに、転送・待機判定部22が処理開始時間を算出する処理について説明する。
図4は、待機一覧テーブルの一例を示す図である。
【0037】
待機一覧テーブル252は、情報処理装置20_1において処理待ちのデータを一覧化したテーブルであり、UTM機能毎に保持される。待機一覧テーブル252には、左から順に番号、データサイズ、及び予測処理時間が設定される。
【0038】
番号は、自装置において処理待ちのデータに割り当てられた番号が設定される。例えば、番号が1として設定されたデータは、1番目に処理されるデータであることを示している。待機一覧テーブル252に設定された最後の番号は、処理待ちのデータの数に対応しており、
図4に示す一例では、n個のデータが自装置において処理待ちのデータであることを示している。
【0039】
データサイズには、処理待ちのデータのデータサイズが設定される。
予測処理時間には、処理待ちのデータデータの予測処理時間が設定される。予測処理時間には、処理待ちのデータに対して予測された処理時間が設定され、転送・待機判定部22が学習結果に基づいて予測した処理時間(取得した予測処理時間)が設定される。
【0040】
次に、転送・待機判定部22が処理開始時間を算出する処理について説明する。転送・待機判定部22は、端末装置10から処理対象のデータを受信すると、受信したデータに使用するUTM機能を判断し、判断したUTM機能と一致する待機一覧テーブルを取得する。転送・待機判定部22は、取得した待機一覧テーブル252の予測処理時間の合計時間を算出し、処理開始時間として算出する。端末装置10から受信したデータは、待機一覧テーブル252に設定された全てのデータが処理完了した後に処理される。そのため、転送・待機判定部22は、待機一覧テーブル252に設定されたデータの予測処理時間の合計時間を処理開始時間として算出する。
【0041】
図2に戻り説明を続ける。転送・待機判定部22は、学習結果に基づいて予測された転送時間と、算出した処理開始時間とを比較する。転送・待機判定部22は、処理開始時間が転送時間よりも大きい場合、UTMの負荷が大きいと判定し、端末装置10から受信されたデータを他の情報処理装置(情報処理装置20_2又は20_3)に転送すると判定する。そして、転送・待機判定部22は、端末装置10から受信されたデータを通信部23に出力する。
【0042】
一方、転送・待機判定部22は、転送時間が処理開始時間よりも大きい場合、UTMの負荷が小さいと判定し、端末装置10から受信されたデータを情報処理装置20_1で処理すると判定する。そして、転送・待機判定部22は、端末装置10から受信されたデータのデータサイズ及び予測された処理時間を待機一覧テーブル252に追加し、受信されたデータをUTM処理部24に出力する。
【0043】
通信部23は、実施の形態1における通信部4に対応する。通信部23は、転送・待機判定部22が端末装置10から受信されたデータを情報処理装置20_2又は20_3に転送すると判定した場合、情報処理装置20_2又は20_3に上記データを転送する。
【0044】
通信部23は、転送先一覧テーブル253から転送先となる情報処理装置を選択する。ここで、
図5を用いて、転送先一覧テーブル253について説明する。
図5は、転送先一覧テーブルの一例を示す図である。
【0045】
転送先一覧テーブル253は、端末装置10から受信されたデータを他の情報処理装置に転送する場合に候補となる転送先の情報処理装置に関する情報が設定されるテーブルである。転送先一覧テーブル253は、転送先一覧DB40が管理し、転送先一覧DB40が定期的に情報処理装置20_1~20_3に配信し、更新されるテーブルである。転送先一覧DB40は、例えば、情報処理システム100に含まれる情報処理装置20_1~20_3のうち、転送先一覧テーブル253を配信する情報処理装置を除外した情報処理装置を一覧として生成する。そして、転送先一覧DB40は、生成した一覧を転送先一覧テーブル253として情報処理装置20_1~20_3に配信する。つまり、転送先一覧DB40は、情報処理システム100に含まれる情報処理装置20_1~20_3を一覧として保持しており、情報処理装置20_1に配信する転送先一覧テーブル253には、情報処理装置20_1を除いた情報処理装置20の情報を設定する。
【0046】
図5に示すように、転送先一覧テーブル253には、管理番号と、転送先とが対応付けて設定される。
図5が情報処理装置20_1に配信された転送先一覧テーブル253である場合、転送先一覧テーブル253には、情報処理装置20_2及び20_3が転送先一覧として設定される。
【0047】
管理番号には、情報処理装置20_2及び20_3のそれぞれを識別する管理番号が設定される。
転送先には、情報処理装置20_2及び20_3のアドレス情報が設定される。
【0048】
通信部23は、転送先一覧テーブル253において、例えば、管理番号の若番から順に転送先となる情報処理装置を選択する。なお、通信部23は、転送先一覧テーブル253からランダムに転送先となる情報処理装置を選択してもよい。もしくは、通信部23は、自装置と位置が近いと推定される情報処理装置を選択してもよい。もしくは、通信部23は、転送先となる情報処理装置20との回線容量が大きい順に情報処理装置20を選択してもよい。
【0049】
通信部23は、転送先一覧テーブル253から転送先となる情報処理装置を選択すると、選択した情報処理装置に端末装置10から受信されたデータの転送要求を送信する。通信部23が、例えば、転送先一覧テーブル253から情報処理装置20_2を選択した場合、情報処理装置20_2に転送要求を送信する。なお、以降の説明では、通信部23が転送先一覧テーブル253から情報処理装置20_2を選択したこととして説明する。
【0050】
通信部23は、転送要求に対する応答を、転送要求を送信した情報処理装置20_2から受信する。通信部23は、上記応答が転送を許可することを示す場合、端末装置10から受信されたデータを情報処理装置20_2に転送する。
【0051】
通信部23は、情報処理装置20_2へのデータ転送が失敗した場合、受信されたデータのデータサイズ及び予測された処理時間を待機一覧テーブル252に追加し、受信されたデータをUTM処理部24に出力する。
【0052】
通信部23は、上記応答が転送を拒否することを示す場合、又は転送要求の送信に失敗した場合、転送先一覧テーブル253から新たな転送先となる情報処理装置を選択する。通信部23は、転送要求を送信してから所定期間内に上記応答を受信しなかった場合、転送要求の送信に失敗したと判定する。通信部23は、新たな転送先となる情報処理装置を選択すると、当該情報処理装置に転送要求の送信、及び応答の受信を行い、新たな転送先となる情報処理装置に、受信されたデータの転送が可能であるか否かを確認する。
【0053】
通信部23は、転送先一覧テーブル253から選択できる情報処理装置が存在しなくなった場合、いずれの情報処理装置にもデータを転送できないと判定する。そして、通信部23は、受信されたデータのデータサイズ及び予測された処理時間を待機一覧テーブル252に追加し、受信されたデータをUTM処理部24に出力する。
【0054】
また、通信部23は、転送先一覧テーブル253から最初の転送先となる情報処理装置を選択する時刻から、端末装置10から受信されたデータの転送が完了した時刻するまでの転送時間を計測する。通信部23は、計測した転送時間を含む転送処理の結果を転送処理結果テーブル254に追加する。なお、通信部23は、転送先一覧テーブル253から選択できる情報処理装置が存在しなくなった場合、又はデータ転送が失敗した場合、転送時間の計測を終了する。
【0055】
ここで、
図6を用いて、転送処理結果テーブル254について説明する。
図6は、転送処理結果テーブルの一例を示す図である。
図6に示すように、転送処理結果テーブル254には、左から順に番号、機能、データサイズ、転送時間、プロトコル/拡張子が設定される。
【0056】
番号には、端末装置10から受信されたデータのうち、通信部23が情報処理装置20_2及び20_3に転送したデータを特定する番号が設定される。例えば、番号が1であれば、端末装置10から受信されたデータのうち、通信部23が1番目に情報処理装置20_2又は20_3に転送されたデータであることを示している。
【0057】
機能には、通信部23が情報処理装置20_2及び20_3に転送したデータに使用されるUTM機能であって、UTM実行機能選択部21が選択したUTM機能が設定される。
データサイズには、通信部23が情報処理装置20_2及び20_3に転送したデータのデータサイズが設定される。
【0058】
転送時間には、通信部23が情報処理装置20_2及び20_3に転送したデータについての転送時間であって、通信部23が計測した転送時間が設定される。
プロトコル/拡張子には、通信部23が情報処理装置20_2及び20_3に転送したデータのプロトコル/拡張子が設定される。
【0059】
通信部23は、情報処理装置20_2及び20_3に転送したデータについて、転送時間を計測すると、転送処理結果テーブル254に、番号、UTM機能、データサイズ、転送時間、プロトコル/拡張子を設定する。
【0060】
通信部23は、転送処理結果テーブル254を一定間隔で機械学習装置30に送信する。なお、機械学習装置30は、通信部23から転送処理結果テーブル254を受信して、転送処理結果テーブル254に設定された、データサイズ、プロトコル又は拡張子、及び転送時間を学習データ(教師データ)として機械学習を行う。
【0061】
図2に戻り、UTM処理部24について説明する。UTM処理部24は、実施の形態1におけるデータ処理部3に対応する。UTM処理部24は、UTM機能毎の待機一覧テーブル252に設定されたデータを取得して、UTM機能毎に処理を行う。UTM処理部24は、例えば、待機一覧テーブル252に設定されているデータのうち、番号が小さい順にデータを取得して、当該データに対応するUTM機能で処理を行う。
【0062】
UTM処理部24は、処理するデータのそれぞれについて、UTM処理を開始した時刻からUTM処理が終了した時刻までの処理時間を計測する。UTM処理部24は、計測された処理時間を含むUTM処理の結果をUTM処理結果テーブル255に追加する。
【0063】
ここで、
図7を用いて、UTM処理結果テーブル255について説明する。
図7は、UTM処理結果テーブルの一例を示す図である。
図7に示すように、UTM処理結果テーブル255には、左から順に番号、機能、データサイズ、処理時間、プロトコル/拡張子が設定される。
【0064】
番号には、端末装置10から受信されたデータのうち、UTM処理部24が処理したデータを特定する番号が設定される。例えば、番号が1であれば、端末装置10から受信されたデータのうち、1番目にUTM処理部24が処理したデータであることを示している。
【0065】
機能には、UTM処理部24が処理したデータに使用されるUTM機能であって、UTM実行機能選択部21が選択したUTM機能が設定される。
データサイズには、UTM処理部24が処理したデータのデータサイズが設定される。
【0066】
処理時間には、UTM処理部24が処理したデータの処理時間であって、UTM処理部24が計測した処理時間が設定される。
プロトコル/拡張子には、UTM処理部24が処理したデータのプロトコル/拡張子が設定される。
【0067】
UTM処理部24は、処理したデータについて、処理時間を計測すると、UTM処理結果テーブル255に、番号、UTM機能、データサイズ、処理時間、プロトコル/拡張子を設定する。
【0068】
UTM処理部24は、UTM処理結果テーブル255を一定間隔で機械学習装置30に送信する。なお、機械学習装置30は、UTM処理部24からUTM処理結果テーブル255を受信して、UTM処理結果テーブル255に設定された、データサイズ、プロトコル又は拡張子、及び処理時間を学習データ(教師データ)として機械学習を行う。
【0069】
記憶部25は、学習結果DB251、待機一覧テーブル252、転送先一覧テーブル253、転送処理結果テーブル254、及びUTM処理結果テーブル255を記憶する。
【0070】
<情報処理装置の構成例>
続いて、
図8を用いて、情報処理装置20_1~20_3の動作例について説明する。情報処理装置20_1~20_3は同様の構成であるため、情報処理装置20_1を用いて、情報処理装置20_1の動作例を説明する。
図8は、実施の形態2にかかる情報処理装置の動作例を示すフローチャートである。
【0071】
UTM実行機能選択部21は、端末装置10から処理対象のデータを受信し(ステップS201)、受信した処理対象のデータに使用するUTM機能を選択する(ステップS202)。UTM実行機能選択部21は、受信した処理対象のデータに使用するUTM機能を情報処理装置20_1の設定及び処理順序に従って選択する。
【0072】
転送・待機判定部22は、受信した処理対象のデータについて、学習結果に基づいて転送時間及び処理時間を予測するとともに、処理開始時間を算出する(ステップS203)。
【0073】
転送・待機判定部22は、ステップS202において選択されたUTM機能に一致する学習結果を学習結果DB251から取得する。転送・待機判定部22は、ステップS201において受信された処理対象のデータのデータサイズと、当該データのプロトコル/又は拡張子とを学習結果に入力し、予測処理時間及び予測転送時間を取得する。予測処理時間及び予測転送時間は、学習結果に基づいて予測された処理時間及び転送時間である。つまり、転送・待機判定部22は、学習結果に基づいて、処理時間及び転送時間を予測する。
【0074】
また、転送・待機判定部22は、処理対象のデータに使用するUTM機能と一致する待機一覧テーブルを取得する。転送・待機判定部22は、取得した待機一覧テーブル252の予測処理時間の合計時間を算出し、処理開始時間として算出する。なお、予測処理時間は、情報処理装置20_1において処理待ちのデータに対して、学習結果に基づいて予測された処理時間である。
【0075】
次に、転送・待機判定部22は、ステップS203において予測した転送時間が処理開始時間よりも大きいか判定する(ステップS204)。
【0076】
転送・待機判定部22は、ステップS203で予測した転送時間と処理開始時間とを比較して、処理対象のデータを他の情報処理装置に転送するのか、又は自装置で処理するために待機するのかを判定する。
【0077】
予測した転送時間が処理開始時間よりも大きい場合(ステップS204のYES)、情報処理装置20_1は、UTMの負荷が大きいと判定し、処理対象のデータについて、ステップS205以降の転送処理を開始する。
【0078】
一方、予測した転送時間が処理開始時間以下である場合(ステップS204のNO)、転送・待機判定部22は、UTMの負荷が小さいと判定し、処理対象のデータを待機一覧テーブル252に追加する(ステップS213)。
【0079】
ステップS205において、通信部23は、転送先一覧テーブル253から最初の転送先となる情報処理装置を選択するタイミングで転送時間の計測を開始する(ステップS205)。そして、通信部23は、転送先一覧テーブル253から処理対象のデータを転送する転送先の情報処理装置を選択する(ステップS206)。
【0080】
通信部23は、ステップS206において、転送先一覧テーブル253から転送先の情報処理装置が存在したか(選択できたか)を判定する(ステップS207)。
【0081】
通信部23は、転送先の情報処理装置が存在する(選択できた)場合(ステップS207のYES)、選択された情報処理装置に、処理対象のデータの転送が可能であるかを判定する(ステップS208)。
【0082】
一方、転送先の情報処理装置が存在しない(選択できない)場合(ステップS207のNO)、通信部23は、処理対象のデータを待機一覧テーブル252に追加する(ステップS213)。
【0083】
通信部23は、転送先一覧テーブル253から転送先の情報処理装置が選択できた場合、当該情報処理装置に転送要求を送信する。通信部23は、転送要求が正常に送信された場合、転送可能であると判定する。通信部23は、転送要求が正常に送信されなかった場合、転送可能ではないと判定する。通信部23は、例えば、転送要求を送信してから所定時間内に応答が受信されなかった場合、転送要求が正常に送信されなかったと判定する。
【0084】
通信部23は、転送要求に対する応答を、転送要求を送信した情報処理装置から受信する。通信部23は、応答が転送を許可することを示す場合、転送可能であると判定する。通信部23は、応答が転送を拒否することを示す場合、転送可能ではないと判定する。
【0085】
選択された情報処理装置に、処理対象のデータの転送が可能であると判定する場合(ステップS208のYES)、通信部23は、選択された情報処理装置に、処理対象のデータを転送する(転送処理を行う)(ステップS209)。
【0086】
一方、選択された情報処理装置に、処理対象のデータの転送が可能でないと判定する場合(ステップS208のNO)、通信部23は、ステップS206に戻り、転送先一覧テーブル253から新たな転送先となる情報処理装置を選択する。
【0087】
ステップS210において、通信部23は、転送処理が成功したか否かを判定する(ステップS210)。
【0088】
転送処理が成功した場合(ステップS210のYES)、通信部23は、転送時間の計測を終了する(ステップS211)。
【0089】
通信部23は、転送処理が完了すると転送処理結果を転送処理結果テーブル254に格納する(ステップS212)。通信部23は、転送処理結果テーブル254に、番号、転送した処理対象のデータに使用するUTM機能、転送した処理対象のデータのデータサイズ、計測した転送時間、転送した処理対象のデータのプロトコル/拡張子を設定する。
【0090】
一方、転送処理が成功しなかった場合(失敗した場合)(ステップS210のNO)、通信部23は、処理対象のデータを待機一覧テーブル252に追加する(ステップS213)。
【0091】
UTM処理部24は、待機一覧テーブル252から処理するデータを順番に取得し、処理するデータのそれぞれに対して、UTM処理を行う前に処理時間の計測を開始する(ステップS214)。
【0092】
UTM処理部24は、UTM処理を行い(ステップS215)、UTM処理が完了すると、処理時間の計測を終了し(ステップS216)、UTM処理結果をUTM処理結果テーブル255に格納する(ステップS217)。
【0093】
UTM処理部24は、UTM機能毎の待機一覧テーブル252に設定されたデータを取得して、UTM機能毎に処理を行う。そして、UTM処理部24は、処理対象のデータの処理が終了した場合、処理したデータについて、UTM処理結果テーブル255に、番号、UTM機能、データサイズ、処理時間、プロトコル/拡張子を設定する。
【0094】
なお、
図8には図示していないが、通信部23及びUTM処理部24は、それぞれ転送処理結果テーブル254及びUTM処理結果テーブル255を一定間隔で機械学習装置30に送信する。そして、機械学習装置30は、取得した上記2つのテーブルを学習データ(教師データ)としてUTM機能毎に機械学習を行い、学習結果を生成する。機械学習装置30は、生成した学習結果を、情報処理装置20_1~20_3の学習結果DB251に格納して、情報処理装置20_1~20_3の学習結果を更新する。
【0095】
また、転送先一覧DB40は、転送先一覧テーブル253を情報処理装置20_1~20_3のそれぞれにあわせた形で生成する。転送先一覧DB40生成した転送先一覧テーブル253を情報処理装置20_1~20_3のそれぞれに送信し、転送先一覧テーブル253の更新を行う。
【0096】
以上説明したように、転送・待機判定部22は、処理対象のデータについて、予測された転送時間と、処理開始時間とに基づいて、UTMの負荷が高いか否かを判断する。そして、転送・待機判定部22は、UTMの負荷が高い場合、他の情報処理装置に処理対象のデータを転送する。このように、情報処理装置20は、自装置でUTMの負荷を考慮して、自装置で処理対象のデータを処理するのか、他の情報処理装置に転送するのかを判断して動作する。すなわち、情報処理装置20は、特許文献1及び2に開示された技術のように、情報処理システム100内の回線を利用して他の情報処理装置からの情報を必要とせずに、自装置で処理対象のデータを処理するのか、他の情報処理装置に転送するのかを判断できる。したがって、本実施の形態にかかる情報処理装置20を用いることにより、情報処理システム100内の回線速度の低下を抑制することが可能となる。
【0097】
上記のように、情報処理装置20は、転送・待機判定部22がUTMの負荷が高いと判定した場合、他の情報処理装置に転送して負荷分散を図る。そのため、本実施の形態にかかる情報処理装置20を用いることにより、情報処理システム100内の特定の情報処理装置20の負荷が高くなることを抑制できる。したがって、本実施の形態にかかる情報処理装置20を用いることにより、情報処理システム100内の特定の情報処理装置20において、回線速度等の処理能力が低下することを抑制できる。
【0098】
また、情報処理装置20は、他の情報処理装置から転送要求を受信した場合、自装置のUTMの負荷が高ければ、転送を拒否する応答を送信し、UTMの負荷が高くなければ、処理対象のデータを処理可能であれば転送を許可する応答を送信する。情報処理装置20は、上記した負荷分散を図る動作に加えて、上記動作を行うため、情報処理システム100内の特定の情報処理装置20に処理対象のデータが集まってしまうことを抑制できる。すなわち、本実施の形態にかかる情報処理装置20を用いることにより、情報処理システム100内で負荷の高い情報処理装置と負荷の低い情報処理装置のバラつきを防ぐことが可能になる。
【0099】
情報処理装置20は、転送処理の結果及びUTM処理の結果を学習データとして機械学習された学習結果に基づいて、転送時間及び処理時間を予測している。機械学習装置30は、情報処理システム100内に存在する全ての情報処理装置(情報処理装置20_1~20_3)における転送処理の結果及びUTM処理の結果を学習データとしている。したがって、情報処理装置20_1~20_3において処理されるデータが増えれば増えるほど精度の高い学習結果とすることができる。
【0100】
さらに、情報処理システム100に情報処理装置を新たに追加した場合であっても、機械学習された学習結果を用いることで、情報処理装置20_1~20_3と同様の動作を行うことが可能となる。
【0101】
(他の実施の形態)
上述した実施の形態において説明した情報処理装置1及び20_1~20_3(以下、情報処理装置1等と称する)は、次のようなハードウェア構成を有していてもよい。
図9は、本開示の各実施の形態にかかる情報処理装置のハードウェア構成を例示するブロック図である。
【0102】
図9を参照すると、情報処理装置1等は、ネットワーク・インターフェース1201、プロセッサ1202及びメモリ1203を含む。ネットワーク・インターフェース1201は、端末装置10、他の情報処理装置、機械学習装置30及び転送先一覧DB40と通信するために使用される。ネットワーク・インターフェース1201は、例えば、IEEE(Institute of Electrical and Electronics Engineers) 802.11 series、IEEE 802.3 series等を含む通信方式に準拠したネットワークインターフェースカード(NIC)を含んでもよい。
【0103】
プロセッサ1202は、メモリ1203からソフトウェア(コンピュータプログラム)を読み出して実行することで、上述の実施形態においてフローチャートを用いて説明された情報処理装置1等の処理を行う。プロセッサ1202は、例えば、マイクロプロセッサ、MPU(Micro Processing Unit)、又はCPU(Central Processing Unit)であってもよい。プロセッサ1202は、複数のプロセッサを含んでもよい。
【0104】
メモリ1203は、揮発性メモリ及び不揮発性メモリの組み合わせによって構成される。メモリ1203は、プロセッサ1202から離れて配置されたストレージを含んでもよい。この場合、プロセッサ1202は、図示されていないI/Oインターフェースを介してメモリ1203にアクセスしてもよい。
【0105】
図9の例では、メモリ1203は、ソフトウェアモジュール群を格納するために使用される。プロセッサ1202は、これらのソフトウェアモジュール群をメモリ1203から読み出して実行することで、上述の実施形態において説明された情報処理装置1等の処理を行うことができる。
【0106】
図9を用いて説明したように、情報処理装置1等が有するプロセッサの各々は、図面を用いて説明されたアルゴリズムをコンピュータに行わせるための命令群を含む1または複数のプログラムを実行する。
【0107】
上述の例において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)を含む。さらに、非一時的なコンピュータ可読媒体の例は、CD-ROM(Read Only Memory)、CD-R、CD-R/Wを含む。さらに、非一時的なコンピュータ可読媒体の例は、半導体メモリを含む。半導体メモリは、例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory)を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【0108】
なお、本開示は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。また、本開示は、それぞれの実施の形態を適宜組み合わせて実施されてもよい。
【符号の説明】
【0109】
1、20_1~20_3 情報処理装置
2 判定部
3 データ処理部
4、23 通信部
10_1~10_3 端末装置
21 UTM実行機能選択部
22 転送・待機判定部
24 UTM処理部
25 記憶部
30 機械学習装置
40 転送先一覧DB
100 情報処理システム
251 学習結果DB
252 待機一覧テーブル
253 転送先一覧テーブル
254 転送処理結果テーブル
255 UTM処理結果テーブル