以下に図面を参照して、本発明にかかる情報処理装置、情報処理プログラムおよび情報処理システムの実施の形態を詳細に説明する。
(実施の形態1)
まず、実施の形態1にかかる情報処理システム100のシステム構成例について説明する。情報処理システム100は、例えば、エッジコンピューティングによる分散処理環境に適用される。
図1は、情報処理システム100のシステム構成例を示す説明図である。図1において、情報処理システム100は、エッジ装置E1~En(n:2以上の自然数)と、管理装置101と、クライアント装置102と、を含む。情報処理システム100において、エッジ装置E1~En、管理装置101およびクライアント装置102は、有線または無線のネットワーク110を介して接続される。ネットワーク110は、例えば、LAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどである。
以下の説明では、エッジ装置E1~Enのうちの任意のエッジ装置を「エッジ装置Ei」と表記する場合がある(i=1,2,…,n)。
ここで、エッジ装置Eiは、処理を実行する情報処理装置(コンピュータ)である。例えば、エッジ装置Eiは、サーバ、ゲートウェイ装置、アクセスポイント、PC(Personal Computer)などである。処理は、例えば、デバイスdvから送出されるデータに対する処理である。
デバイスdvは、例えば、自動車用センサ、機器センサ、環境センサ、カメラなどである。デバイスdvから送出されるデータは、例えば、各種センサのセンシングデータやカメラによって撮像される画像などである。データに対する処理は、例えば、分析、解析処理などを行うための前処理である。前処理としては、例えば、センシングデータの平均値を計算したり、画像の特徴量を抽出したりする処理などがある。
エッジ装置Eiは、管理テーブル120を有する。管理テーブル120は、エッジ装置Eiで実行される処理に関する管理情報を記憶する。管理テーブル120の記憶内容については、図5を用いて後述する。以下の説明では、エッジ装置Eiで実行される処理を「処理Pi」と表記する場合がある。
管理装置101は、エッジ装置Eiに対する処理Piの実行依頼を行う情報処理装置(コンピュータ)である。例えば、管理装置101は、クラウドコンピューティングのサーバである。管理装置101は、データ格納情報DB130を有する。データ格納情報DB130は、処理対象となるデータの格納場所を示す情報を記憶する。処理対象となるデータは、例えば、デバイスdvから送出されるデータである。データ格納情報DB130によれば、どのようなデータがどのエッジ装置に格納されているのかを特定することができる。
クライアント装置102は、情報処理システム100の利用者が使用するコンピュータである。利用者は、例えば、前処理を依頼したり、前処理して得られたデータを分析したりする場合に情報処理システム100を利用する。例えば、クライアント装置102は、PC、タブレットPC、スマートフォンなどである。
例えば、データ分析を行うにあたり、利用者は、エッジ装置(例えば、エッジ装置Ei)に蓄積されたデータのうち、有効そうなデータについて、前処理して、分析パラメータなどを変更しながら、試行錯誤を繰り返すことがある。この際、試した分析で期待した結果が得られずに処理を中止すると、改めて同じ処理を行う場合に、同じことを繰り返すことになる。例えば、エッジ装置が低スペックの場合、度々負荷が高まり、レイテンシが大きくなるおそれがある。
このため、各エッジ装置で一度処理の実行が開始された場合、中止されてもエッジ装置側では処理を継続し、次回の処理依頼に備えて、前処理済みのデータを保存しておくことが考えられる。しかし、試行錯誤中のデータを、その都度保存することになると、すぐにストレージリソースが枯渇してしまう。
また、ストレージリソースの枯渇を防ぐべく、予め定めた期限を過ぎたデータを消去したり、古いものから順に上書きしたりするといったルールを決めることも考えられる。しかし、データを消去するまでの時間設定を適切に行わないと、消去後に再度処理依頼され、依然として無駄な処理が生じてしまう。
また、例えば、保存されたデータの読み出しやクラウドへの転送に時間がかかる場合には、前処理済みのデータを保存していても、トータル時間(前処理+転送)の改善が小さいか、かえって悪化してしまうおそれがある。すなわち、前処理済みのデータを保存しておくメリットがない。
そこで、本実施の形態では、エッジ装置Eiに蓄積されたデータに対する処理の効率化を図る情報処理システム100について説明する。具体的には、例えば、エッジ装置Eiは、自装置におけるデータに対する処理Piの実行が、処理Piの依頼元からの中止依頼に応じて中止された場合、自装置における処理Piの処理速度に基づいて、処理Piの実行および処理Piの実行結果の保存を行うか否かを決定する。
処理Piの依頼元は、例えば、管理装置101である。処理Piの中止依頼は、例えば、試した分析で期待した結果が得られなかった場合に、情報処理システム100の利用者の指示に応じて行われる。処理Piの処理速度は、処理Piの実行が進む速さを示す指標値であり、例えば、単位時間あたりの処理データ量によって表される。
すなわち、エッジ装置Eiは、中止された処理Piと同じ処理の処理依頼が再度行われることを考慮して、事前に処理Piを実行して、処理Piの実行結果を保存しておくべきかを決定する。エッジ装置Eiにおいて、中止された処理Piの実行を行うにあたり、中止された処理Piの実行を再開して継続実行(すなわち、途中までの処理Piの実行結果を引き継ぐ)してよく、また、処理Piを再実行する(すなわち、最初から実行し直す)ことにしてもよい。
ここで、処理Piを実行するにあたり、保存したデータ(処理対象となるデータ)の読み出しにかかる時間が、データの処理時間よりも遅ければ、データの読み出しがボトルネックとなるため、事前に処理Piを実行して実行結果を保存しておくメリットが少ない。このため、エッジ装置Eiは、例えば、処理Piの処理速度と、処理対象となるデータが保存されているストレージ(例えば、後述の図7に示すストレージ710)から当該データを読み出す際の読出速度とに基づいて、中止された処理Piの実行および処理Piの実行結果の保存を行うか否かを決定することにしてもよい。
また、処理Piの依頼元への実行結果の転送にかかる時間が、データの処理時間よりも遅ければ、データの転送がボトルネックとなるため、事前に処理Piを実行して実行結果を保存しておくメリットが少ない。このため、エッジ装置Eiは、例えば、処理Piの処理速度と、処理Piの依頼元に処理Piの実行結果を転送する際の転送速度とに基づいて、中止された処理Piの実行および処理Piの実行結果の保存を行うか否かを決定することにしてもよい。
ここで、図2を用いて、エッジ装置Eiの具体的な処理例について説明する。
図2は、処理時間と読出時間または転送時間との関係を示す説明図である。例えば、エッジ装置Eiは、処理時間Tpと、読出時間Trまたは転送時間Ttとを比較する。ここで、処理時間Tpは、データに対する処理Piの実行にかかる時間であり、例えば、処理Piの処理速度と、処理対象のデータ量とから計算される。
読出時間Trは、処理対象となるデータが保存されているストレージから当該データを読み出すのにかかる時間であり、例えば、データの読出速度と、処理対象のデータ量とから計算される。データの読出速度は、例えば、単位時間あたりの読み出しデータ量によって表される。
転送時間Ttは、処理Piの依頼元に処理Piの実行結果を転送するのにかかる時間であり、例えば、データの転送速度と、処理Piの実行結果のデータ量とから計算される。データの転送速度は、例えば、単位時間あたりの転送データ量によって表される。
例えば、エッジ装置Eiは、処理時間Tpが、読出時間Tr以下、かつ、転送時間Tt以下の場合、処理Piの実行がボトルネックとなる可能性が低いため、中止された処理Piの実行および処理Piの実行結果の保存を行わないと決定する(図2の左側参照)。一方、エッジ装置Eiは、処理時間Tpが、読出時間Trまたは転送時間Ttよりも大きい場合、処理Piの実行がボトルネックとなる可能性が高いため、中止された処理Piの実行および処理Piの実行結果の保存を行うと決定する(図2の右側参照)。
これにより、次回以降の処理依頼時に処理Piを実行する場合に比べて、所要時間の短縮が見込まれるときだけ、事前に処理Piを実行して、処理Piの実行結果を保存しておくことができる。換言すれば、所要時間の短縮が見込まれないにもかかわらず、事前に処理Piを実行して、処理Piの実行結果を保存しておくといった無駄な処理が行われるのを防ぐことができる。また、中止された処理Piの実行は、処理リソースが空いているときにバックグラウンドで行われるようにすることで、処理リソースを効率的に使用することが可能となる。
なお、上述した説明では、エッジ装置Eiが、中止された処理Piの実行および処理Piの実行結果の保存を行うか否かを決定することにしたが、これに限らない。例えば、管理装置101が、エッジ装置Eiにおける処理Piの実行が中止された場合に、エッジ装置Eiにおいて処理Piの実行および処理Piの実行結果の保存を行うか否かを決定することにしてもよい。
つぎに、図3を用いて、処理Piの依頼元からの中止依頼に応じて、処理Piの実行が中止された場合のエッジ装置Eiの動作例について説明する。
図3は、処理Piの実行が中止された場合のエッジ装置Eiの動作例を示す説明図である。ここでは、処理対象のデータを「データA」とし、処理Piを「前処理1A」とし、処理Piの実行結果を「データ1A」とする。また、管理装置101からの中止依頼に応じて、エッジ装置Eiにおける前処理1Aの実行が中止された場合を想定する。管理装置101は、前処理1Aの依頼元である。
この場合、エッジ装置Eiは、中止された前処理1Aの実行および前処理1Aの実行結果の保存を行うか否かを決定する。具体的には、例えば、エッジ装置Eiは、前処理1Aの処理時間Tpと、データAの読出時間Trと、データ1Aの転送時間Ttとを算出(予測)する。そして、エッジ装置Eiは、前処理1Aの処理時間Tpと、データAの読出時間Trとを比較する。また、エッジ装置Eiは、前処理1Aの処理時間Tpと、データ1Aの転送時間Ttとを比較する。
ここで、前処理1Aの処理時間Tpが、データAの読出時間Tr以下、かつ、データ1Aの転送時間Tt以下の場合、エッジ装置Eiは、中止された前処理1Aの実行および前処理1Aの実行結果の保存を行わないと決定する。この場合、中止された前処理1Aの実行は行われないため、前処理1Aの実行結果であるデータ1Aはエッジ装置Eiに保存されない。
一方、前処理1Aの処理時間Tpが、データAの読出時間Trまたはデータ1Aの転送時間Ttよりも大きい場合、エッジ装置Eiは、中止された前処理1Aの実行および前処理1Aの実行結果の保存を行うと決定する。この場合、中止された前処理1Aの実行が行われ、前処理1Aの実行結果であるデータ1Aがエッジ装置Eiに保存される。
これにより、中止された前処理1Aと同じ処理について再度処理依頼されたときの所要時間、すなわち、前処理1Aの依頼元にデータ1A(実行結果)が届くまでの時間を抑えることができる。エッジ装置Eiにおいて、中止された前処理1Aの実行は、中止された前処理1Aを実行して前処理1Aの実行結果を保存すると決定されたことに応じて直ぐに行われてもよく、また、処理リソースの空き時間に行われてもよい。
なお、図3中、前処理1Xは、管理装置101からエッジ装置Eiに処理依頼されたデータXに対する処理である。エッジ装置Eiにおいて、前処理1Xは途中で中止されることなく実行され、前処理1Xの実行結果であるデータ1Xが管理装置101に送られている。また、管理装置101において、データ1Xに対する分析Xが行われて、分析Xの結果であるデータ2Xが保存されている。
(エッジ装置Eiおよび管理装置101のハードウェア構成例)
つぎに、エッジ装置Eiおよび管理装置101のハードウェア構成例について説明する。ここでは、エッジ装置Eiおよび管理装置101を「エッジ装置Ei等」と表記する。
図4は、エッジ装置Ei等のハードウェア構成例を示すブロック図である。図4において、エッジ装置Eiは、CPU(Central Processing Unit)401と、メモリ402と、ディスクドライブ403と、ディスク404と、通信I/F(Interface)405と、可搬型記録媒体I/F406と、可搬型記録媒体407と、を有する。また、各構成部は、バス400によってそれぞれ接続される。
ここで、CPU401は、エッジ装置Ei等の全体の制御を司る。CPU401は、複数のコアを有していてもよい。メモリ402は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMがOS(Operating System)のプログラムを記憶し、ROMがアプリケーションプログラムを記憶し、RAMがCPU401のワークエリアとして使用される。メモリ402に記憶されるプログラムは、CPU401にロードされることで、コーディングされている処理をCPU401に実行させる。
ディスクドライブ403は、CPU401の制御に従ってディスク404に対するデータのリード/ライトを制御する。ディスク404は、ディスクドライブ403の制御で書き込まれたデータを記憶する。ディスク404としては、例えば、磁気ディスク、光ディスクなどが挙げられる。
通信I/F405は、通信回線を通じてネットワーク110に接続され、ネットワーク110を介して外部のコンピュータに接続される。そして、通信I/F405は、ネットワーク110と装置内部とのインターフェースを司り、外部のコンピュータからのデータの入出力を制御する。通信I/F405には、例えば、モデムやLANアダプタなどを採用することができる。
可搬型記録媒体I/F406は、CPU401の制御に従って可搬型記録媒体407に対するデータのリード/ライトを制御する。可搬型記録媒体407は、可搬型記録媒体I/F406の制御で書き込まれたデータを記憶する。可搬型記録媒体407としては、例えば、CD(Compact Disc)-ROM、DVD(Digital Versatile Disk)、USB(Universal Serial Bus)メモリなどが挙げられる。
なお、エッジ装置Ei等は、上述した構成部のほかに、例えば、SSD(Solid State Drive)、入力装置、ディスプレイ等を有することにしてもよい。また、エッジ装置Eiは、上述した構成部のうち、例えば、ディスクドライブ403、ディスク404、可搬型記録媒体I/F406、可搬型記録媒体407を有していなくてもよい。また、図1に示したクライアント装置102についても、エッジ装置Ei等と同様のハードウェア構成により実現することができる。ただし、クライアント装置102は、上述した構成部のほかに、入力装置、ディスプレイなどを有する。
(管理テーブル120の記憶内容)
つぎに、エッジ装置Eiが有する管理テーブル120の記憶内容について説明する。管理テーブル120は、例えば、図4に示したエッジ装置Eiのメモリ402、ディスク404などの記憶装置により実現される。
図5は、管理テーブル120の記憶内容の一例を示す説明図である。図5において、管理テーブル120は、管理ID、データ名、処理名、読出時間、処理時間、転送時間、読出速度、処理速度、転送速度およびデータ量のフィールドを有し、各フィールドに情報を設定することで、管理情報(例えば、管理情報500-1)をレコードとして記憶する。
ここで、管理IDは、レコードを一意に識別する識別子である。データ名は、処理対象となるデータの名称である。データ名は、処理対象となるデータに付与されるタグ情報の一例である。処理名は、処理対象となるデータに対する処理Piの名称である。読出時間は、処理対象となるデータを読み出すのにかかる時間である。処理時間は、処理対象となるデータに対する処理Piの実行にかかる時間である。転送時間は、処理Piの実行結果を転送するのにかかる時間である。
読出速度は、単位時間あたりの読み出しデータ量である。読出速度の単位は、例えば、[byte/s]である。処理速度は、単位時間あたりの処理データ量である。処理速度の単位は、例えば、[byte/s]である。転送速度は、単位時間あたりの転送データ量である。転送速度の単位は、例えば、[byte/s]である。データ量は、処理対象となるデータのデータ量である。データ量の単位は、例えば、[byte]である。
(管理装置101の機能的構成例)
つぎに、管理装置101の機能的構成例について説明する。
図6は、管理装置101の機能的構成例を示すブロック図である。図6において、管理装置101は、処理管理部601と、通信部602と、を含む。具体的には、例えば、処理管理部601および通信部602は、図4に示した管理装置101のメモリ402、ディスク404などの記憶装置に記憶されたプログラムをCPU401に実行させることにより、または、通信I/F405により、その機能を実現する。各機能部の処理結果は、例えば、管理装置101のメモリ402、ディスク404などの記憶装置に記憶される。
処理管理部601は、処理依頼を受け付ける。ここで、処理依頼は、データに対する処理の実行を要求するものである。処理依頼には、例えば、どのようなデータに対して、どのような処理(例えば、前処理)を行うのかを特定する情報が含まれる。より詳細に説明すると、例えば、処理依頼には、処理対象となるデータのデータ名と、処理対象となるデータに対する処理の処理名とが含まれる。処理対象となるデータに対する処理は、例えば、分析、解析処理などを行うための前処理である。
具体的には、例えば、処理管理部601は、外部アプリから処理依頼を受信することにより、受信した処理依頼を受け付ける。外部アプリとは、管理装置101またはネットワーク110で接続された計算機で動作するアプリケーションであり、図1に示したクライアント装置102からの指示に応じて、前処理の処理依頼をしたり、前処理して得られたデータの分析処理をしたりする。
また、処理管理部601は、処理依頼を受け付けたことに応じて、エッジ装置Eiに対して処理Piの実行を指示する。具体的には、例えば、処理管理部601は、データ格納情報DB130(図1参照)を参照して、受け付けた処理依頼から特定されるデータを格納しているエッジ装置Eiを特定する。そして、処理管理部601は、特定したエッジ装置Eiに対して、受け付けた処理依頼から特定される処理Piの処理依頼を送信する。
処理Piの処理依頼には、例えば、処理対象となるデータと、処理Piの処理内容とを特定する情報が含まれる。より詳細に説明すると、例えば、処理Piの処理依頼には、処理対象となるデータのデータ名と、処理Piの処理名とが含まれる。
なお、情報処理システム100において、処理対象となるデータには、タグ情報が付与される。タグ情報は、処理対象となるデータを特定する情報であり、例えば、データ名、データ種別などである。処理対象となるデータに付与されるタグ情報は、管理装置101とエッジ装置Riとの間で同期しているものとする。
通信部602は、エッジ装置Eiから処理Piの実行結果を受信する。ここで、処理Piの実行結果は、例えば、処理Piが処理対象となるデータに対する前処理であれば、前処理して得られるデータである。また、エッジ装置Eiにおいて、処理対象となるデータに対する処理Piは、例えば、処理対象となるデータを所定のデータ単位で分割したデータごとに実行される。この場合、通信部602は、エッジ装置Eiにおいて分割したデータの実行が完了すると、その都度、当該データに対する処理Piの実行結果を受信する。
受信された処理Piの実行結果は、例えば、ストレージ610に記憶される。具体的には、例えば、通信部602は、処理Piの実行結果を、処理対象となるデータのデータ名(タグ情報)と、処理Piの処理名と対応付けて、ストレージ610に保存する。また、処理Piの実行結果には、エッジ装置Eiを特定する情報が対応付けられることにしてもよい。ストレージ610は、例えば、管理装置101のディスク404により実現される。より具体的には、例えば、ストレージ610は、HDD(Hard Disk Drive)やSSDなどである。
また、処理管理部601は、中止依頼を受け付ける。ここで、中止依頼は、処理依頼に応じて実行中の処理の中止を要求するものである。中止依頼には、例えば、実行中の処理を特定する情報が含まれる。より詳細に説明すると、例えば、中止依頼には、処理対象となるデータのデータ名と、処理対象となるデータに対する処理の処理名とが含まれる。
また、処理管理部601は、中止依頼を受け付けたことに応じて、エッジ装置Eiに対して処理Piの中止を指示する。具体的には、例えば、処理管理部601は、受け付けた中止依頼から特定される処理Piを実行中のエッジ装置Eiを特定する。そして、処理管理部601は、特定したエッジ装置Eiに対して、受け付けた中止依頼から特定される処理Piの中止依頼を送信する。
処理Piの中止依頼には、例えば、実行中の処理Piを特定する情報が含まれる。より詳細に説明すると、例えば、処理Piの中止依頼には、処理対象となるデータのデータ名と、処理Piの処理名とが含まれる。
また、処理管理部601は、処理依頼された処理の実行結果を出力する。具体的には、例えば、処理管理部601は、ストレージ610に保存された処理Piの実行結果を出力する。処理管理部601の出力形式としては、例えば、外部アプリへの出力、管理装置101の通信I/F405による他のコンピュータへの送信などがある。
例えば、外部アプリに出力された処理Piの実行結果は、クライアント装置102の利用者に参照されたり、分析処理に用いられたりする。
(エッジ装置Eiの機能的構成例)
図7は、エッジ装置Eiの機能的構成例を示すブロック図である。図7において、エッジ装置Eiは、処理制御部701と、処理部702と、読出時間計測部703と、処理時間計測部704と、転送時間計測部705と、切替部706と、転送部707と、を含む。具体的には、例えば、処理制御部701~転送部707は、図4に示したエッジ装置Eiのメモリ402、ディスク404などの記憶装置に記憶されたプログラムをCPU401に実行させることにより、または、通信I/F405により、その機能を実現する。各機能部の処理結果は、例えば、エッジ装置Eiのメモリ402、ディスク404などの記憶装置に記憶される。
処理制御部701は、処理Piの処理依頼を受け付ける。また、処理制御部701は、処理Piの処理依頼を受け付けた場合、処理部702に処理Piを実行させる。ここで、処理Piの処理依頼には、例えば、処理対象となるデータと、処理Piの処理内容とを特定する情報(データ名、処理名)が含まれる。
具体的には、例えば、処理制御部701は、管理装置101から処理Piの処理依頼を受信することにより、受信した処理Piの処理依頼を受け付ける。また、処理制御部701は、処理Piの処理依頼を受け付けた場合、処理部702に対して処理Piの処理依頼を出力する。
処理部702は、処理制御部701からの処理Piの処理依頼に応じて、処理Piを実行する。具体的には、例えば、処理部702は、ストレージ710から、処理Piの処理依頼から特定される処理対象となるデータを取得する。ここで、ストレージ710は、処理対象となるデータを保存する記憶部である。ストレージ710は、例えば、エッジ装置Eiのディスク404により実現される。より具体的には、例えば、ストレージ710は、HDDやSSDなどである。
処理対象となるデータは、例えば、デバイスdvから送出されるセンシングデータや撮像画像などである。処理対象となるデータには、データ名やデータ種別などのタグ情報が付与されている。以下の説明では、処理対象となるデータを「対象データ」と表記する場合がある。
より詳細に説明すると、例えば、処理部702は、ストレージ710から、処理Piの処理依頼に含まれるデータ名に対応するデータを対象データとして取得する。そして、処理部702は、取得した対象データに対して、処理Piの実行を開始する。処理Piの処理内容は、例えば、処理Piの処理依頼に含まれる処理名から特定される。
ここで、対象データに対する処理Piは、例えば、対象データの全データを所定のデータ単位で分割したデータごとに実行される。以下の説明では、対象データの全データを所定のデータ単位で分割したデータを「分割データ」と表記する場合がある。また、対象データを分割する際の分割数を「N」と表記する場合がある。
より詳細に説明すると、例えば、処理部702は、ストレージ710から、対象データを分割した分割データを取得する。そして、処理部702は、分割データに対して、処理Piを実行する。処理部702は、全分割データの実行が完了するまで、分割データに対する処理Piを逐次実行する。
なお、処理Piの実行結果は、切替部706に出力され、切替部706から転送部707またはストレージ710に出力される。例えば、対象データを分割した分割データに対する処理Piの実行が完了すると、その都度、当該分割データに対する処理Piの実行結果が切替部706に出力される。
ここで、処理Piの依頼元からの処理依頼に応じて実行された処理Piの実行結果の転送先は、処理Piの依頼元である。このため、切替部706は、処理Piの実行結果を転送部707に出力する。転送部707は、処理Piの依頼元に対して、処理Piの実行結果を転送する。一方、処理制御部701によって中止された処理Piの実行を行うと決定された場合、切替部706は、処理Piの実行結果の出力先を、転送部707からストレージ710に切り替える。
また、処理制御部701は、処理Piの中止依頼を受け付ける。ここで、処理Piの中止依頼は、実行中の処理Piの中止を要求するものである。処理Piの中止依頼には、例えば、実行中の処理Piを特定する情報が含まれる。より詳細に説明すると、例えば、処理Piの中止依頼には、処理対象となるデータのデータ名と、処理対象となるデータに対する処理の処理名とが含まれる。具体的には、例えば、処理制御部701は、管理装置101から処理Piの中止依頼を受信することにより、受信した処理Piの中止依頼を受け付ける。
また、処理制御部701は、処理Piの中止依頼を受け付けた場合、処理部702による処理Piの実行を中止する。具体的には、例えば、処理制御部701は、処理部702に対して、処理Piの中止依頼を通知する。これにより、処理Piの依頼元からの中止依頼に応じて、処理部702による処理Piの実行を中止することができる。
読出時間計測部703は、データ読出時間を計測する。ここで、データ読出時間は、データの読み出しにかかる時間である。具体的には、例えば、読出時間計測部703は、ストレージ710からダミーデータを読み出す。この際、読出時間計測部703は、ダミーデータの読み出し開始から、読み出し完了までのデータ読出時間を計測する。
これにより、ダミーデータの読み出しにかかるデータ読出時間を得ることができる。なお、ダミーデータは、データ読出時間の算出に用いられるデータである。ダミーデータとして、ストレージ710内のいかなるデータを用いることにしてもよい。計測されたデータ読出時間は、例えば、ダミーデータのデータ量とともに、処理制御部701に通知される。
処理時間計測部704は、データ処理時間を計測する。ここで、データ処理時間は、データに対する処理Piの実行にかかる時間である。具体的には、例えば、処理時間計測部704は、対象データを分割した分割データに対する処理Piの実行にかかる処理時間を、データ処理時間として計測する。
これにより、分割データに対する処理Piの実行にかかるデータ処理時間を得ることができる。計測されたデータ処理時間は、例えば、分割データのデータ量とともに、処理制御部701に通知される。
転送時間計測部705は、データ転送時間を計測する。ここで、データ転送時間は、データの転送にかかる時間である。具体的には、例えば、転送時間計測部705は、対象データを分割した分割データに対する処理Piの実行結果が、依頼元である管理装置101に転送される際に、当該実行結果の転送開始から、転送完了までのデータ転送時間を計測する。
これにより、対象データを分割した分割データに対する処理Piの実行結果の依頼元への転送にかかるデータ転送時間を得ることができる。計測されたデータ転送時間は、例えば、分割データに対する処理Piの実行結果のデータ量とともに、処理制御部701に通知される。
処理制御部701は、ストレージ710から対象データを読み出す際の読出速度Srを算出する。読出速度Srは、単位時間あたりの読み出しデータ量である。具体的には、例えば、処理制御部701は、読出時間計測部703から通知された、ダミーデータのデータ量をデータ読出時間で割ることにより、読出速度Srを算出する。
また、処理制御部701は、自装置における処理Piの処理速度Spを算出する。処理速度Spは、単位時間あたりの処理データ量である。具体的には、例えば、処理制御部701は、処理時間計測部704から通知された、分割データのデータ量をデータ処理時間で割ることにより、処理速度Spを算出する。
ここで、処理時間計測部704から、複数の分割データについて、各分割データのデータ量とデータ処理時間とが通知される場合がある。この場合、処理制御部701は、算出した複数の分割データそれぞれの処理速度の平均値を、処理速度Spとして算出することにしてもよい。
また、処理制御部701は、処理Piの依頼元に対して、処理Piの実行結果を転送する際の転送速度Stを算出する。転送速度Stは、単位時間あたりの転送データ量である。具体的には、例えば、処理制御部701は、転送時間計測部705から通知された、分割データに対する処理Piの実行結果のデータ量をデータ転送時間で割ることにより、転送速度Stを算出する。
ここで、転送時間計測部705から、複数の分割データについて、各分割データに対する処理Piの実行結果のデータ量とデータ転送時間とが通知される場合がある。この場合、処理制御部701は、算出した複数の分割データそれぞれの転送速度の平均値を、転送速度Stとして算出することにしてもよい。
算出された読出速度Sr、処理速度Spおよび転送速度Stは、例えば、対象データのデータ名、データ量および処理Piの処理名と対応付けて、図5に示した管理テーブル120に記憶される。
また、処理制御部701は、処理Piの実行が中止依頼に応じて中止された場合、自装置における処理Piの処理速度Spに基づいて、中止された処理Piの実行および処理Piの実行結果の保存を行うか否かを決定する。ここで、中止された処理Piを実行するとは、中止された処理Piの実行を再開して継続実行することであってもよく、また、中止された処理Piを最初から実行し直すことであってもよい。
具体的には、例えば、処理制御部701は、管理テーブル120を参照して、自装置における処理Piの処理速度Spと、ストレージ710から対象データを読み出す際の読出速度Srとに基づいて、中止された処理Piの実行および処理Piの実行結果の保存を行うか否かを決定することにしてもよい。
より具体的には、例えば、処理制御部701は、処理速度Spが読出速度Sr以上の場合、中止された処理Piの実行および処理Piの実行結果の保存を行わないと決定する。一方、処理速度Spが読出速度Sr未満の場合、すなわち、処理速度Spが読出速度Srより遅い場合には、処理制御部701は、中止された処理Piの実行および処理Piの実行結果の保存を行うと決定する。
また、処理制御部701は、処理速度Spと読出速度Srとを比較する代わりに、処理時間Tpと読出時間Trとを比較することにしてもよい。
ここで、読出時間Trは、ストレージ710からの対象データの読み出しにかかる時間である。具体的には、例えば、処理制御部701は、読出速度Srに対象データのデータ量を掛けることにより、読出時間Trを算出する。
これにより、対象データに対する処理Piの実行が途中で中止された場合であっても、ストレージ710からダミーデータを読み出した際の情報から、ストレージ710からの対象データの読み出しにかかる処理時間Tpを予測することができる。
また、処理時間Tpは、対象データに対する処理Piの実行にかかる時間である。具体的には、例えば、処理速度Spに、対象データのデータ量を掛けることにより、対象データに対する処理Piの実行にかかる処理時間Tpを算出する。
これにより、対象データに対する処理Piの実行が途中で中止された場合であっても、対象データを分割した分割データに対する処理Piを実行した際の情報から、対象データに対する処理Piの実行にかかる処理時間Tpを予測することができる。
そして、処理制御部701は、処理時間Tpが読出時間Tr以下の場合、中止された処理Piの実行および処理Piの実行結果の保存を行わないと決定する。一方、処理時間Tpが読出時間Trより大きい場合、処理制御部701は、中止された処理Piの実行および処理Piの実行結果の保存を行うと決定する。なお、処理制御部701は、例えば、処理時間Tpが読出時間Trより所定時間以上大きい場合に、中止された処理Piの実行および処理Piの実行結果の保存を行うと決定することにしてもよい。
また、例えば、処理制御部701は、管理テーブル120を参照して、自装置における処理Piの処理速度Spと、処理Piの依頼元に処理Piの実行結果を転送する際の転送速度Stとに基づいて、中止された処理Piの実行および処理Piの実行結果の保存を行うか否かを決定することにしてもよい。
ただし、処理対象となるデータに対する処理Piの実行結果のデータ量は、処理対象となるデータのデータ量と異なることがある。このため、処理制御部701は、処理速度Spと転送速度Stとを単純に比較するのではなく、処理時間Tpと転送時間Ttとを比較することにしてもよい。
ここで、転送時間Ttは、処理Piの依頼元への対象データに対する処理Piの実行結果の転送にかかる時間である。具体的には、例えば、まず、処理制御部701は、転送時間計測部705から通知された、分割データに対する処理Piの実行結果のデータ量の平均値(平均データ量)を算出する。
つぎに、処理制御部701は、算出した平均データ量に、対象データの分割数Nを掛けることにより、対象データに対する処理Piの実行結果のデータ量を予測する。そして、処理制御部701は、転送速度Stに、予測したデータ量を掛けることにより、対象データに対する処理Piの実行結果の転送にかかる転送時間Ttを算出する。
これにより、対象データに対する処理Piの実行が途中で中止された場合であっても、分割データに対する処理Piの実行結果を転送した際の情報から、対象データに対する処理Piの実行結果の転送にかかる転送時間Ttを予測することができる。
そして、処理制御部701は、処理時間Tpが転送時間Tt以下の場合、中止された処理Piの実行および処理Piの実行結果の保存を行わないと決定する。一方、処理時間Tpが転送時間Ttより大きい場合には、処理制御部701は、中止された処理Piの実行および処理Piの実行結果の保存を行うと決定する。なお、処理制御部701は、例えば、処理時間Tpが転送時間Ttより所定時間以上大きい場合に、中止された処理Piの実行および処理Piの実行結果の保存を行うと決定することにしてもよい。
算出された読出時間Tr、処理時間Tpおよび転送時間Ttは、例えば、対象データのデータ名、データ量および処理Piの処理名と対応付けて、管理テーブル120に記憶される。
また、例えば、処理制御部701は、自装置における処理Piの処理速度Spが予め設定された閾値未満であれば、中止された処理Piの実行および処理Piの実行結果の保存を行うと決定してもよい。一方、処理速度Spが閾値以上であれば、処理制御部701は、中止された処理Piの実行および処理Piの実行結果の保存を行わないと決定してもよい。ここで、閾値は、任意に設定可能であり、例えば、ストレージ710と同種のストレージにおけるデータの平均的な読出速度や、インターネットなどでのデータの平均的な転送速度などをもとに定められる。
また、処理制御部701は、中止された処理Piの実行および処理Piの実行結果の保存を行うと決定した場合、処理部702に、中止された処理Piを実行させ、処理Piの実行結果をストレージ710に保存させる。具体的には、例えば、処理制御部701は、切替部706に対して、中止された処理Piの実行結果の出力先を、転送部707からストレージ710に切り替えるよう指示する。そして、処理制御部701は、処理部702に対して、中止された処理Piの処理依頼を出力する。
この結果、処理部702により処理Piが実行され、処理Piの実行結果がストレージ710に書き込まれる。具体的には、例えば、処理部702は、切替部706を介して、対象データに対する処理Piの実行結果を、対象データおよび処理Piを識別する情報と対応付けて、ストレージ710に書き込む。
ストレージ710において、対象データに対する処理Piの実行結果は、例えば、図8に示すような実行結果テーブル800に書き込まれる。ここで、実行結果テーブル800の記憶内容について説明する。
図8は、実行結果テーブル800の記憶内容の一例を示す説明図である。図8において、実行結果テーブル800は、データ名、処理名および実行結果のフィールドを有し、各フィールドに情報を設定することで、実行結果情報(例えば、実行結果情報800-1)をレコードとして記憶する。
ここで、データ名は、対象データの名称である。処理名は、処理Piの名称である。実行結果は、対象データに対する処理Piの実行結果を示す。なお、図8の例では、実行結果フィールドには、対象データに対する処理Piの実行結果のデータ名を表記している。
これにより、中止された処理Piと同じ処理の処理依頼があったときに、実行結果テーブル800内の実行結果を利用することができる。
具体的には、例えば、処理制御部701は、処理Piの処理依頼を受け付けた場合、実行結果テーブル800を参照して、当該処理依頼に含まれるデータ名と処理名との組み合わせに対応する実行結果情報を検索する。ここで、実行結果情報が検索されなかった場合は、処理制御部701は、処理部702に処理Piを実行させる。
一方、実行結果情報が検索された場合、処理制御部701は、転送部707により、検索された実行結果情報に含まれる実行結果を、処理Piの依頼元(管理装置101)に転送する。これにより、次回以降の処理依頼時は、処理Piの依頼元へ処理Piの実行結果を転送するまでの所要時間を短くすることができる。
なお、依頼元(管理装置101)に転送された処理Piの実行結果については、エッジ装置Eiのストレージ710から削除することにしてもよい。これにより、ストレージ710の空き容量が不足するのを防ぐことができる。また、ストレージ710に保存された処理Piの実行結果には、保存期間を設定することにしてもよい。この場合、エッジ装置Eiは、保存期間を経過したデータについては、ストレージ710から削除することにしてもよい。
処理制御部701から処理部702に対して、中止された処理Piの処理依頼を出力するタイミングは、任意に設定可能である。例えば、処理制御部701は、中止された処理Piを実行して処理Piの実行結果を保存すると決定したことに応じて、中止された処理Piの処理依頼を処理部702に出力することにしてもよい。この場合、中止された処理Piが直ぐに実行され、次回以降の処理依頼に備えて、処理Piの実行結果がストレージ710に保存される。
また、処理制御部701は、処理リソースの使用状況に応じて、中止された処理Piの処理依頼を出力するタイミングを制御することにしてもよい。具体的には、例えば、処理制御部701は、CPU401の使用率が所定値β以上であれば、中止された処理Piの処理依頼を保留することにしてもよい。そして、処理制御部701は、CPU401の使用率が所定値β未満となったときに、中止された処理Piの処理依頼を処理部702に出力することにしてもよい。所定値βは、任意に設定可能であり、例えば、50%~70%程度の値が設定される。
この場合、CPU401が空いているときにバックグラウンドで処理Piを実行できるため、処理リソースを有効活用することができる。また、中止された処理Piの実行により、エッジ装置Eiの処理性能が低下して、要求性能を確保できなくなるのを防ぐことができる。
なお、中止された処理Piの実行を行うにあたり、中止された処理Piの実行を再開して継続実行する場合、中止前に実行済みの処理Piの実行結果についてもストレージ710に保存することが望ましい。このため、処理部702は、対象データに対する処理Piの実行が完了するまでの間、途中の実行結果(分割データに対する処理Piの実行結果)を、エッジ装置Eiのメモリ402等に保持しておくことにしてもよい。
これにより、中止された処理Piの実行を再開した際に、メモリ402等に保持しておいた途中の実行結果についても、ストレージ710(実行結果テーブル800)に保存することができる。このように、中止された処理Piの実行を再開して継続実行する場合、途中の実行結果を保持しておく必要はあるものの、途中までの処理が無駄にならないというメリットがある。
また、ストレージ710には、読み書き回数、読み書き量等に応じて決まる耐用期間が設けられていることがある。例えば、SSDであれば、データの書き込み回数に上限が設けられている。ストレージ710の書き込み可能な残りの回数が書き込み可能な上限回数に近づいているときに、テンポラリーなデータ(次回の処理依頼に備えて実行した処理Piの実行結果)を保存するために使用することは望ましくない。
このため、処理制御部701は、ストレージ710の書き込み可能な残り回数が所定値α以下の場合には、中止された処理Piの実行および処理Piの実行結果の保存を行わないと決定してもよい。所定値αは、任意に設定可能である。これにより、中止された処理Piの実行結果がストレージ710に書き込まれないため、テンポラリーなデータの書き込みによりストレージ710の耐用期間が短くなるのを防ぐことができる。
なお、エッジ装置Eiの各機能部は、管理装置101により実現されることにしてもよい。また、エッジ装置Eiの各機能部は、情報処理システム200内の複数のコンピュータ(例えば、管理装置101とエッジ装置Ei)により実現されることにしてもよい。例えば、エッジ装置Eiの機能部のうち、処理制御部701を管理装置101で実現し、その他の機能部はエッジ装置Eiで実現することにしてもよい。ただし、管理装置101が、エッジ装置Eiにおいて中止された処理Piの実行および処理Piの実行結果の保存を行うか否かを決定するのに必要な情報は、エッジ装置Eiから収集することになる。
(情報処理システム100の動作例)
つぎに、図9A、図9Bおよび図9Cを用いて、情報処理システム100の動作例について説明する。なお、図9A、図9Bおよび図9Cでは、管理装置101の各機能部については、図示を省略している。
図9A、図9Bおよび図9Cは、情報処理システム100の動作例を示すシーケンス図である。図9Aのシーケンス図において、まず、管理装置101の処理管理部601は、外部アプリから前処理依頼を受け付ける(ステップS901)。
エッジ装置Eiの読出時間計測部703は、データ読出時間の計測を開始する(ステップS902)。つぎに、エッジ装置Eiの読出時間計測部703は、ストレージ710からダミーデータを読み出す(ステップS903)。管理装置101の処理管理部601は、データ格納情報DB130(図1参照)を参照して、受け付けた処理依頼から特定されるデータを検索する(ステップS904)。
エッジ装置Eiの読出時間計測部703は、ダミーデータの読み出しが完了したら、データ読出時間を計測する(ステップS905)。そして、エッジ装置Eiの読出時間計測部703は、計測したデータ読出時間を、ダミーデータのデータ量とともに、処理制御部701に通知する(ステップS906)。
つぎに、管理装置101の処理管理部601は、ステップS904において検索したデータを格納しているエッジ装置Eiに対して、前処理依頼を送信する(ステップS907)。この前処理依頼は、処理Piの処理依頼に相当し、データ名と処理名とを含む。
エッジ装置Eiの処理制御部701は、管理装置101から前処理依頼を受信すると、処理部702に対して、前処理(処理Piに相当)の処理依頼を出力する(ステップS908)。そして、エッジ装置Eiの処理制御部701は、エッジ装置Eiの処理時間計測部704に対して、処理依頼時刻を通知する(ステップS909)。処理依頼時刻は、処理部702に対して、前処理の処理依頼を出力した時刻である。
図9Bのシーケンス図において、エッジ装置Eiの処理部702は、処理制御部701からの前処理の処理依頼に応じて、ストレージ710から、前処理の処理依頼に含まれるデータ名に対応するデータを取得する(ステップS910)。ここでは、対象データを分割した分割データごとに、前処理を逐次実行する場合を想定する。図9B中、点線枠で示す一連の処理は、対象データを分割した分割データごとに実行される。
そして、エッジ装置Eiの処理部702は、取得したデータに対して、前処理を実行する(ステップS911)。つぎに、エッジ装置Eiの処理部702は、前処理の実行結果を、エッジ装置Eiの切替部706に通知する(ステップS912)。
エッジ装置Eiの切替部706は、前処理の実行結果を受信すると、エッジ装置Eiの処理時間計測部704に、前処理の実行結果の受信時刻を通知する(ステップS913)。この際、エッジ装置Eiの切替部706は、前処理の実行結果のデータ量もあわせて通知する。
エッジ装置Eiの処理時間計測部704は、前処理の実行結果の受信時刻および受信データ量を受信すると、ステップS909において通知された処理依頼時刻に基づいて、データ処理時間を計算する(ステップS914)。具体的には、エッジ装置Eiの処理時間計測部704は、処理依頼時刻と、前処理の実行結果の受信時刻と差分から、初回のデータ処理時間を計算する。次回以降は、エッジ装置Eiの処理時間計測部704は、前処理の実行結果の受信時刻の差分から、データ処理時間を計算する。ただし、このデータ処理時間には、データ(分割データ)の読み出しにかかるデータ読出時間が含まれる。
エッジ装置Eiの切替部706は、受信した前処理の実行結果を転送部707に通知し、転送部707により、前処理の実行結果を管理装置101に転送する(ステップS915)。エッジ装置Eiの処理時間計測部704は、計算したデータ処理時間をエッジ装置Eiの処理制御部701に通知する(ステップS916)。この際、エッジ装置Eiの処理時間計測部704は、前処理の実行結果のデータ量もあわせて通知する。
エッジ装置Eiの切替部706は、前処理の実行結果の転送時刻をエッジ装置Eiの転送時間計測部705に通知する(ステップS917)。転送時刻は、転送部707により前処理の実行結果が管理装置101に転送された時刻を示す。この際、エッジ装置Eiの切替部706は、ACK受信時刻もあわせて通知する。ACK受信時刻は、転送部707が管理装置101からACKを受信した時刻である。
エッジ装置Eiの転送時間計測部705は、転送時刻およびACK受信時刻を受信すると、転送時刻とACK受信時刻との差分から、データ転送時間を計測する(ステップS918)。そして、エッジ装置Eiの転送時間計測部705は、計測したデータ転送時間をエッジ装置Eiの処理制御部701に通知する(ステップS919)。
エッジ装置Eiの処理制御部701は、データ読出時間(データ量を含む)、データ処理時間(データ量を含む)およびデータ転送時間(データ量を含む)を受信すると、読出速度Sr、処理速度Spおよび転送速度Stを算出する(ステップS920)。
ただし、受信されたデータ処理時間には、データ(分割データ)の読み出しにかかるデータ読出時間が含まれる。このため、処理速度Spを算出する際には、受信されたデータ処理時間からデータ(分割データ)のデータ読出時間を引いたものを使う。データ(分割データ)のデータ読出時間は、データ(分割データ)のデータ量と読出速度Srとから求めることができる。
図9Cのシーケンス図において、管理装置101の処理管理部601は、外部アプリから前処理の中止依頼を受け付ける(ステップS921)。管理装置101の処理管理部601は、前処理の中止依頼を受け付けたことに応じて、エッジ装置Eiに前処理の中止依頼を送信する(ステップS922)。
エッジ装置Eiの処理制御部701は、管理装置101からの前処理の中止依頼を受信すると、処理部702に対して、前処理の中止依頼を通知する(ステップS923)。この結果、処理部702による前処理の実行が中止される。
つぎに、エッジ装置Eiの処理制御部701は、中止された前処理の実行を行うか否かを決定する(ステップS924)。具体的には、例えば、処理制御部701は、算出した読出速度Sr、処理速度Spおよび転送速度Stに基づいて、読出時間Tr、処理時間Tpおよび転送時間Ttを算出する。そして、処理制御部701は、処理時間Tpと読出時間Tr/転送時間Ttとを比較した結果に基づいて、中止された処理Piの実行および処理Piの実行結果の保存を行うか否かを決定する。
ここでは、中止された処理Piの実行および処理Piの実行結果の保存を行うと決定された場合を想定する。
この場合、エッジ装置Eiの処理制御部701は、切替部706に対して、中止された前処理の実行結果の出力先を、転送部707からストレージ710に切り替えるよう指示する(ステップS925)。この結果、中止された前処理の実行結果の出力先が、ストレージ710に切り替わる。
つぎに、エッジ装置Eiの処理制御部701は、処理部702により、中止された前処理を実行させる(ステップS926)。エッジ装置Eiの処理部702は、実行した前処理の実行結果を、切替部706に通知する(ステップS927)。
エッジ装置Eiの切替部706は、前処理の実行結果を受信すると、受信した前処理の実行結果をストレージ710(例えば、実行結果テーブル800)に書き込む(ステップS928)。前処理の実行結果は、対象データの全データに対する前処理の実行結果である。
これにより、次回以降の処理依頼時に所要時間の短縮が見込まれるときだけ、事前に処理Piを実行して、処理Piの実行結果を保存しておくことができる。
以上説明したように、実施の形態1にかかる情報処理システム100によれば、エッジ装置Eiは、自装置における対象データに対する処理Piの実行が、処理Piの依頼元からの中止依頼に応じて中止された場合、自装置における処理Piの処理速度に基づいて、処理Piの実行および処理Piの実行結果の保存を行うか否かを決定することができる。
これにより、エッジ装置Eiにおける処理Piの処理速度を考慮して、次回以降の処理依頼に備えて、事前に処理Piを実行して、処理Piの実行結果を保存しておくべきかを判断することができる。例えば、次回以降の処理依頼時に処理Piを実行する場合に比べて、所要時間の短縮が見込まれるときだけ、事前に処理Piを実行して、処理Piの実行結果を保存しておくことができる。換言すれば、所要時間の短縮が見込まれないにもかかわらず、事前に処理Piを実行して、処理Piの実行結果を保存しておくといった無駄な処理が行われるのを防ぐことができる。
また、エッジ装置Eiは、処理Piの処理速度と、対象データが保存されているストレージ710から対象データを読み出す際の読出速度とに基づいて、中止された処理Piの実行および処理Piの実行結果の保存を行うか否かを決定することができる。
これにより、処理Piの実行を行うにあたり、対象データの読み出しよりも、処理Piの実行(データ処理自体)がボトルネックとなるときに、事前に処理Piを実行して、処理Piの実行結果を保存しておくことができる。換言すれば、処理Piの実行(データ処理自体)よりも、対象データの読み出しがボトルネックとなるときには、事前に処理Piを実行しないようにすることができる。
また、エッジ装置Eiは、処理Piの処理速度と、処理Piの依頼元(管理装置101)に処理Piの実行結果を転送する際の転送速度とに基づいて、中止された処理Piの実行および処理Piの実行結果の保存を行うか否かを決定することができる。
これにより、処理Piの実行を行うにあたり、処理Piの依頼元へのデータ(実行結果)の転送よりも、処理Piの実行(データ処理自体)がボトルネックとなるときに、事前に処理Piを実行して、処理Piの実行結果を保存しておくことができる。換言すれば、処理Piの実行(データ処理自体)よりも、データ(実行結果)の転送がボトルネックとなるときには、事前に処理Piを実行しないようにすることができる。
また、エッジ装置Eiは、中止された処理Piの実行および処理Piの実行結果の保存を行うと決定した場合、処理部702に、中止された処理Piを実行させ、処理Piの実行結果を、対象データおよび処理Piを識別する情報(例えば、データ名、処理名)と対応付けてストレージ710に保存させることができる。
これにより、次回以降の処理依頼時に、処理Piの処理依頼に含まれるデータ名や処理名をキーにして、ストレージ710から対応する実行結果を検索して返すことができる。
また、エッジ装置Eiは、ストレージ710の書き込み可能な残り回数が所定値α以下の場合には、中止された処理Piの実行および処理Piの実行結果の保存を行わないと決定することができる。
これにより、テンポラリーなデータ(次回以降の処理依頼に備えて実行した処理Piの実行結果)の書き込みにより、ストレージ710の耐用期間が短くなるのを防ぐことができる。
これらのことから、実施の形態1にかかる情報処理システム100によれば、エッジ装置Eiに蓄積されているデータに対する処理の効率化を図ることができる。
(実施の形態2)
つぎに、実施の形態2にかかる情報処理システム100について説明する。なお、実施の形態1で説明した箇所と同一の箇所については、同一符号を付して図示および説明を省略する。
情報処理システム100において、例えば、外部アプリ等からの処理依頼に応じて管理装置101から依頼された前処理を実行するエッジ装置が複数存在する場合がある。この場合、クラウド(管理装置101)において、複数のエッジ装置からの前処理の実行結果が全て揃った後に分析処理等を行うことになる。
ここで、複数のエッジ装置からの前処理の実行結果が全て揃った後に分析処理を行う場合の全体の処理時間について説明する。ここでは、管理装置101から処理依頼された前処理を実行する複数のエッジ装置を「エッジ装置E1,E2,E3」とする。
図10は、分析処理が完了するまでの全体の処理時間を示す説明図である。図10に示すように、各エッジ装置E1,E2,E3で実行された前処理の実行結果が管理装置101に転送されるまでの所要時間TR1,TR2,TR3は、各エッジ装置E1,E2,E3の処理性能、対象データのデータ量、ネットワーク状況などにより異なるものとなる。
図10の例では、エッジ装置E3で実行された前処理の実行結果が管理装置101に転送されるまでの所要時間TR3が最も長い。したがって、エッジ装置E1~E3で実行された前処理の実行結果を全て使ってクラウド側で分析処理を行う場合、全体の処理時間は、所要時間TRが大きいエッジ装置E3に依存して遅くなる。換言すれば、エッジ装置E1,E2のレイテンシを小さく抑えても、一番レイテンシが大きいエッジ装置E3のレイテンシにより全体の処理時間が決まってしまう。
そこで、実施の形態2では、複数のエッジ装置からデータ収集する処理が中止された場合に、中止された処理の実行および当該処理の実行結果の保存を行うか否かを決定するにあたり、複数のエッジ装置のうち全体の処理時間の短縮に寄与するエッジ装置のみ実行を行うと決定する。これにより、全体の処理時間の短縮に寄与しない無駄な処理を行わないようにして、効率的にリソースを使用できるようにする。
(エッジ装置Eiの機能的構成例)
つぎに、実施の形態2にかかるエッジ装置Eiの機能的構成例について説明する。
図11は、実施の形態2にかかるエッジ装置Eiの機能的構成例を示すブロック図である。図11において、エッジ装置Eiは、処理制御部701と、処理部702と、読出時間計測部703と、処理時間計測部704と、転送時間計測部705と、切替部706と、転送部707と、を含む。図7に示した実施の形態1にかかるエッジ装置Eiの機能的構成例と異なる点は、読出時間計測部703、処理時間計測部704および転送時間計測部705それぞれと切替部706とが接続されている点である。
以下、実施の形態1にかかるエッジ装置Eiと異なる機能についてのみ説明する。
読出時間計測部703は、計測したデータ読出時間を、例えば、ダミーデータのデータ量とともに、管理装置101に通知する。具体的には、データ読出時間(ダミーデータのデータ量を含む)は、切替部706に出力され、切替部706から転送部707に出力される。転送部707は、切替部706から受信したデータ読出時間(ダミーデータのデータ量を含む)を、管理装置101に転送する。
処理時間計測部704は、計測したデータ処理時間を、例えば、分割データのデータ量とともに、管理装置101に通知する。具体的には、データ処理時間(分割データのデータ量を含む)は、切替部706に出力され、切替部706から転送部707に出力される。転送部707は、切替部706から受信したデータ処理時間(分割データのデータ量を含む)を、管理装置101に転送する。
転送時間計測部705は、計測したデータ転送時間を、例えば、分割データに対する処理Piの実行結果のデータ量とともに、管理装置101に通知する。具体的には、データ転送時間(実行結果のデータ量を含む)は、切替部706に出力され、切替部706から転送部707に出力される。転送部707は、切替部706から受信したデータ転送時間(実行結果のデータ量を含む)を、管理装置101に転送する。
処理制御部701は、処理Piの実行が中止依頼に応じて中止された場合、管理装置101から前処理継続依頼から受信したことに応じて、中止された処理Piの実行および処理Piの実行結果の保存を行うか否かを決定することにしてもよい。ここで、前処理継続依頼は、中止された処理Piを実行して、処理Piの実行結果をエッジ装置Ei(ストレージ710)に保存するよう依頼するものである。
この際、処理制御部701は、管理装置101から前処理継続依頼から受信したことに応じて、実施の形態1で説明したように、中止された処理Piの実行および処理Piの実行結果の保存を行うか否かを決定することにしてもよい。例えば、処理制御部701は、処理時間Tpと読出時間Trまたは転送時間Ttとを比較した結果に基づいて、中止された処理Piの実行および処理Piの実行結果の保存を行うか否かを決定することにしてもよい。
また、処理制御部701は、管理装置101から前処理継続依頼から受信したことに応じて、中止された処理Piの実行および処理Piの実行結果の保存を行うと決定してもよい。すなわち、管理装置101から前処理継続依頼があったときは、処理制御部701は、中止された処理Piの実行および処理Piの実行結果の保存を行うと決定してもよい。
(管理装置101の機能的構成例)
つぎに、実施の形態2にかかる管理装置101の機能的構成例について説明する。ただし、実施の形態2にかかる管理装置101の機能的構成例は、実施の形態1にかかる管理装置101の機能的構成例と同様のため、図示は省略する。
以下、実施の形態1にかかる管理装置101と異なる機能についてのみ説明する。以下の説明では、外部アプリ等からの処理依頼に応じて管理装置101から処理依頼された処理を実行する複数のエッジ装置を「複数のエッジ装置E」と表記し、管理装置101から実行指示された処理を「処理P」と表記する場合がある。
処理管理部601は、複数のエッジ装置Eにおけるデータに対する処理Pの実行が中止された場合、複数のエッジ装置Eの各エッジ装置Eの処理Pにかかるレイテンシを算出する。すなわち、処理管理部601は、外部アプリ等からの中止依頼に応じて、複数のエッジ装置Eにおけるデータに対する処理Pの実行が中止された場合、各エッジ装置Eの処理Pにかかるレイテンシを算出する。
ここで、各エッジ装置Eの処理Pにかかるレイテンシとは、対象データの読み出し、対象データに対する処理P、対象データに対する処理Pの実行結果の転送にかかる総時間を示す。すなわち、各エッジ装置Eの処理Pにかかるレイテンシは、各エッジ装置Eの読出時間Trと処理時間Tpと転送時間Ttとを足したものとなる。
具体的には、例えば、処理管理部601は、各エッジ装置Eにおいて対象データを読み出す際の読出速度Srを算出する。読出速度Srは、単位時間あたりの読み出しデータ量である。具体的には、例えば、処理管理部601は、通信部602によって各エッジ装置Eから受信された、ダミーデータのデータ量をデータ読出時間で割ることにより、各エッジ装置Eの読出速度Srを算出する。
また、処理管理部601は、各エッジ装置Eにおける処理Pの処理速度Spを算出する。具体的には、例えば、処理管理部601は、通信部602によって各エッジ装置Eから受信された、分割データのデータ量をデータ処理時間で割ることにより、処理速度Spを算出する。
ここで、各エッジ装置Eから、複数の分割データについて、各分割データのデータ量とデータ処理時間とが通知される場合がある。この場合、処理管理部601は、算出した複数の分割データそれぞれの処理速度の平均値を、処理速度Spとして算出することにしてもよい。また、各エッジ装置Eから通知されたデータ処理時間に、データ(分割データ)の読み出しにかかるデータ読出時間が含まれる場合、処理速度Spを算出する際に、受信されたデータ処理時間からデータ(分割データ)のデータ読出時間を引いたものを使う。
また、処理管理部601は、各エッジ装置Eにおける処理Pの実行結果を転送する際の転送速度Stを算出する。具体的には、例えば、処理管理部601は、通信部602によって各エッジ装置Eから受信された、分割データに対する処理Piの実行結果のデータ量をデータ転送時間で割ることにより、転送速度Stを算出する。
ここで、各エッジ装置Eから、複数の分割データについて、各分割データに対する処理Piの実行結果のデータ量とデータ転送時間とが通知される場合がある。この場合、処理管理部601は、算出した複数の分割データそれぞれの転送速度の平均値を、転送速度Stとして算出することにしてもよい。
算出された各エッジ装置Eの読出速度Sr、処理速度Spおよび転送速度Stは、例えば、各エッジ装置EのエッジID、各エッジ装置Eにおける対象データのデータ名、データ量および処理Pの処理名と対応付けて、図12に示すような管理テーブル1200に記憶される。管理テーブル1200は、例えば、図4に示した管理装置101のメモリ402、ディスク404などの記憶装置により実現される。
図12は、管理テーブル1200の記憶内容の一例を示す説明図である。図12において、管理テーブル1200は、エッジID、管理ID、データ名、処理名、読出時間、処理時間、転送時間、読出速度、処理速度、転送速度およびデータ量のフィールドを有し、各フィールドに情報を設定することで、管理情報(例えば、管理情報1200-1)をレコードとして記憶する。
ここで、エッジIDは、エッジ装置Eを一意に識別する識別子である。管理IDは、エッジ装置E内でレコードを一意に識別する識別子である。データ名は、処理対象となるデータの名称である。処理名は、処理対象となるデータに対する処理Pの名称である。読出時間は、処理対象となるデータを読み出すのにかかる時間である。処理時間は、処理対象となるデータに対する処理Piの実行にかかる時間である。転送時間は、処理Pの実行結果を転送するのにかかる時間である。
読出速度は、単位時間あたりの読み出しデータ量である。読出速度の単位は、例えば、[byte/s]である。処理速度は、単位時間あたりの処理データ量である。処理速度の単位は、例えば、[byte/s]である。転送速度は、単位時間あたりの転送データ量である。転送速度の単位は、例えば、[byte/s]である。データ量は、処理対象となるデータのデータ量である。データ量の単位は、例えば、[byte]である。
例えば、処理管理部601は、管理テーブル1200を参照して、各エッジ装置Eの読出速度Srに対象データのデータ量を掛けることにより、各エッジ装置Eの読出時間Trを算出する。また、処理管理部601は、管理テーブル1200を参照して、各エッジ装置Eの処理速度Spに、対象データのデータ量を掛けることにより、各エッジ装置Eにおける対象データに対する処理Pの実行にかかる処理時間Tpを算出する。
また、処理管理部601は、各エッジ装置Eから通知された、分割データに対する処理Pの実行結果のデータ量の平均値(平均データ量)を算出する。つぎに、処理管理部601は、算出した平均データ量に、対象データの分割数Nを掛けることにより、対象データに対する処理Pの実行結果のデータ量を予測する。
そして、処理管理部601は、管理テーブル1200を参照して、各エッジ装置Eの転送速度Stに、予測したデータ量を掛けることにより、各エッジ装置Eにおける対象データに対する処理Pの実行結果の転送にかかる転送時間Ttを算出する。なお、各エッジ装置Eにおける対象データの分割数Nは、例えば、各エッジ装置Eから管理装置101に通知される。
算出された各エッジ装置Eの読出時間Tr、処理時間Tpおよび転送時間Ttは、例えば、各エッジ装置EのエッジID、各エッジ装置Eにおける対象データのデータ名、データ量および処理Pの処理名と対応付けて、管理テーブル1200に記憶される。
そして、処理管理部601は、管理テーブル1200を参照して、各エッジ装置Eの読出時間Trと処理時間Tpと転送時間Ttとを足し合わせることにより、各エッジ装置Eの処理Pにかかるレイテンシを算出する。なお、各エッジ装置Eの転送時間Ttを算出するにあたり、対象データに対する処理Pの実行結果のデータ量を予測するのではなく、対象データのデータ量を用いることにしてもよい。
つぎに、処理管理部601は、算出した各エッジ装置Eのレイテンシと、各エッジ装置Eにおける処理Pの処理時間Tpとに基づいて、各エッジ装置Eにおいて、中止された処理Pの実行および処理Pの実行結果の保存を行うか否かを決定する。具体的には、例えば、まず、処理管理部601は、管理テーブル1200を参照して、複数のエッジ装置Eのうち、最もレイテンシが遅い第1のエッジ装置Eについては、中止された処理Pの実行および処理Pの実行結果の保存を行うと決定する。
この場合、処理管理部601は、第1のエッジ装置Eに前処理継続依頼を送信する。前処理継続依頼は、中止された処理Pを実行して、処理Pの実行結果をエッジ装置E(ストレージ710)に保存するよう依頼するものである。
つぎに、処理管理部601は、複数のエッジ装置Eのうち、最もレイテンシが遅い第1のエッジ装置Eのレイテンシから当該第1のエッジ装置Eにおける処理Pの処理時間Tpを引いた時間と、次にレイテンシが遅い第2のエッジ装置Eのレイテンシとを比較する。そして、処理管理部601は、比較した結果に基づいて、第2のエッジ装置Eにおいて、中止された処理Pの実行および処理Pの実行結果の保存を行うか否かを決定する。
より詳細に説明すると、例えば、処理管理部601は、第2のエッジ装置Eのレイテンシが、第1のエッジ装置Eのレイテンシから当該第1のエッジ装置Eの処理時間Tpを引いた時間よりも大きい場合、第2のエッジ装置Eにおいて、中止された処理Pの実行および処理Pの実行結果の保存を行うと決定する。そして、処理管理部601は、第2のエッジ装置Eを、最もレイテンシが遅い第1のエッジ装置Eとして、同様の処理を行う。
一方、第2のエッジ装置Eのレイテンシが、第1のエッジ装置Eのレイテンシから当該第1のエッジ装置Eの処理時間Tpを引いた時間以下の場合、処理管理部601は、第2のエッジ装置Eにおいて、中止された処理Pの実行および処理Pの実行結果の保存を行わないと決定する。この場合、処理管理部601は、第2のエッジ装置Eよりもレイテンシが小さい他のエッジ装置Eについて、中止された処理Pの実行および処理Pの実行結果の保存を行わないと決定する。
これにより、複数のエッジ装置Eのうち、事前に処理Pを実行しておくことで、次回以降の依頼時に全体の処理時間を短縮可能なエッジ装置Eに対してのみ、前処理継続依頼を通知することができる。
なお、各エッジ装置Eの処理Pにかかるレイテンシは、各エッジ装置Eにおいて算出されて管理装置101に通知されることにしてもよい。この場合、管理装置101は、各エッジ装置Eのレイテンシの算出は行わなくてよい。そして、管理装置101は、各エッジ装置Eから通知されたレイテンシを利用して、各エッジ装置Eにおいて、中止された処理Pの実行および処理Pの実行結果の保存を行うか否かを決定することにしてもよい。
(実行結果テーブル1300の記憶内容)
管理装置101のストレージ610において、通信部602によって受信される、エッジ装置Eからの処理Pの実行結果は、例えば、図13に示すような実行結果テーブル1300に書き込まれる。ここで、実行結果テーブル1300の記憶内容について説明する。
図13は、実行結果テーブル1300の記憶内容の一例を示す説明図である。図13において、実行結果テーブル1300は、データ名、処理名、実行結果および保存期間のフィールドを有し、各フィールドに情報を設定することで、実行結果情報(例えば、実行結果情報1300-1)をレコードとして記憶する。
ここで、データ名は、対象データの名称である。処理名は、処理Pの名称である。実行結果は、対象データに対する処理Pの実行結果を示す。図13の例では、実行結果フィールドには、対象データに対する処理Pの実行結果のデータ名を表記している。保存期間は、対象データに対する処理Pの実行結果の保存期間である。保存期間は、任意に設定可能であり、例えば、処理Pの依頼日時から数週間程度の期間に設定される。図13の例では、保存期間フィールドには、保存期間の最終日時が設定されている。
これにより、管理装置101は、実行済みの処理Pと同じ処理の処理依頼があったときに、実行結果テーブル1300内の実行結果を利用することができる。
ただし、実行結果テーブル1300内の実行結果を保存し続けると、ストレージ610の枯渇を招くおそれがある。このため、管理装置101において、処理Pの実行結果の保存期間を設定する。処理管理部601は、実行結果テーブル1300を参照して、保存期間を経過した処理Pの実行結果については、実行結果テーブル1300から削除する。
これにより、利用されなくなったデータを削除して、ストレージ610の空き容量が不足するのを防ぐことができる。
また、処理管理部601は、処理Pの実行結果の利用頻度に応じて保存期間を延長することにしてもよい。具体的には、例えば、処理管理部601は、処理Pの処理依頼を受け付ける度に、処理Pの実行結果の保存期間を延長することにしてもよい。より具体的には、例えば、処理管理部601は、処理Pの処理依頼を受け付ける度に、処理Pの実行結果の保存期間を数日延長することにしてもよい。これにより、頻繁に利用されるデータが削除されるのを防ぐことができる。
さらに、処理管理部601は、処理Pの実行結果の保存期間が度々延長されて一定期間を超えた場合、処理Pの実行結果を公開することにしてもよい。処理Pの実行結果を公開するとは、例えば、保存期間を設けずに、インターネット上にアクセス可能な状態で公開することである。
ここで、図14を用いて、処理Pの実行結果の利用例について説明する。ここでは、処理Pの実行結果として、「前処理1A」の実行結果である「データ1A」を例に挙げて説明する。
図14は、前処理の実行結果の利用例を示す説明図である。図14において、管理装置101に保存されているデータ1Aは、エッジ装置Eiにおいて実行された前処理1Aの実行結果である。ここで、データ1Aが利用されなくなって保存期間を経過した場合、データ1Aは削除される。
一方、データ1Aが頻繁に利用されることで、データ1Aの保存期間が度々延長されて一定期間を超えた場合、データ1Aは公開される。これにより、頻繁に利用されるデータ1Aをインターネット上などに公開して検索可能なデータとすることができ、他の分析者やアプリから利用することが可能となる。
(情報処理システム100の動作例)
つぎに、図15A、図15Bおよび図15Cを用いて、実施の形態2にかかる情報処理システム100の動作例について説明する。なお、図15A、図15Bおよび図15Cでは、管理装置101の各機能部については、図示を省略している。また、図15A、図15Bおよび図15Cでは、管理装置101から前処理依頼される複数のエッジ装置Eのうちのいずれか一つのエッジ装置Eiの動作例のみ示している。
図15A、図15Bおよび図15Cは、実施の形態2にかかる情報処理システム100の動作例を示すシーケンス図である。図15Aのシーケンス図において、まず、管理装置101の処理管理部601は、外部アプリから前処理依頼を受け付ける(ステップS1501)。
エッジ装置Eiの読出時間計測部703は、データ読出時間の計測を開始する(ステップS1502)。つぎに、エッジ装置Eiの読出時間計測部703は、ストレージ710からダミーデータを読み出す(ステップS1503)。管理装置101の処理管理部601は、データ格納情報DB130(図1参照)を参照して、受け付けた処理依頼から特定されるデータを検索する(ステップS1504)。
エッジ装置Eiの読出時間計測部703は、ダミーデータの読み出しが完了したら、データ読出時間を計測する(ステップS1505)。そして、エッジ装置Eiの読出時間計測部703は、計測したデータ読出時間を、ダミーデータのデータ量とともに、管理装置101に通知する(ステップS1506)。この際、エッジ装置Eiの読出時間計測部703は、処理制御部701にも、データ読出時間(データ量を含む)を通知する。
つぎに、管理装置101の処理管理部601は、ステップS1504において検索したデータを格納しているエッジ装置Eiに対して、前処理依頼を送信する(ステップS1507)。この前処理依頼は、処理Piの処理依頼に相当し、データ名と処理名とを含む。
エッジ装置Eiの処理制御部701は、管理装置101から前処理依頼を受信すると、処理部702に対して、前処理の処理依頼を出力する(ステップS1508)。そして、エッジ装置Eiの処理制御部701は、エッジ装置Eiの処理時間計測部704に対して、処理依頼時刻を通知する(ステップS1509)。
図15Bのシーケンス図において、エッジ装置Eiの処理部702は、処理制御部701からの前処理の処理依頼に応じて、ストレージ710から、前処理の処理依頼に含まれるデータ名に対応するデータを取得する(ステップS1510)。ここでは、対象データを分割した分割データごとに、前処理を逐次実行する場合を想定する。図15B中、点線枠で示す一連の処理は、対象データを分割した分割データごとに実行される。
そして、エッジ装置Eiの処理部702は、取得したデータに対して、前処理を実行する(ステップS1511)。つぎに、エッジ装置Eiの処理部702は、前処理の実行結果を、エッジ装置Eiの切替部706に通知する(ステップS1512)。
エッジ装置Eiの切替部706は、前処理の実行結果を受信すると、エッジ装置Eiの処理時間計測部704に、前処理の実行結果の受信時刻を通知する(ステップS1513)。この際、エッジ装置Eiの切替部706は、前処理の実行結果のデータ量もあわせて通知する。
エッジ装置Eiの処理時間計測部704は、前処理の実行結果の受信時刻およびデータ量を受信すると、ステップS1509において通知された処理依頼時刻に基づいて、データ処理時間を計算する(ステップS1514)。
エッジ装置Eiの処理時間計測部704は、計算したデータ処理時間を管理装置101に通知する(ステップS1515)。この際、エッジ装置Eiの処理時間計測部704は、前処理の実行結果のデータ量もあわせて通知する。また、エッジ装置Eiの処理時間計測部704は、処理制御部701にも、データ処理時間(データ量を含む)を通知する。
エッジ装置Eiの切替部706は、受信した前処理の実行結果を転送部707に通知し、転送部707により、前処理の実行結果を管理装置101に転送する(ステップS1516)。管理装置101の通信部602は、エッジ装置Eiから前処理の実行結果を受信すると、受信した前処理の実行結果をストレージ610に書き込む(ステップS1517)。
エッジ装置Eiの切替部706は、前処理の実行結果の転送時刻をエッジ装置Eiの転送時間計測部705に通知する(ステップS1518)。この際、エッジ装置Eiの切替部706は、ACK受信時刻もあわせて通知する。
エッジ装置Eiの転送時間計測部705は、転送時刻およびACK受信時刻を受信すると、転送時刻とACK受信時刻との差分から、データ転送時間を計測する(ステップS1519)。そして、エッジ装置Eiの転送時間計測部705は、計測したデータ転送時間を管理装置101に通知する(ステップS1520)。この際、エッジ装置Eiの転送時間計測部705は、前処理の実行結果のデータ量もあわせて通知する。また、エッジ装置Eiの処理時間計測部704は、処理制御部701にも、データ転送時間(データ量を含む)を通知する。
図15Cのシーケンス図において、管理装置101の処理管理部601は、外部アプリから前処理の中止依頼を受け付ける(ステップS1521)。管理装置101の処理管理部601は、前処理の中止依頼を受け付けたことに応じて、エッジ装置Eiに前処理の中止依頼を送信する(ステップS1522)。
エッジ装置Eiの処理制御部701は、管理装置101からの前処理の中止依頼を受信すると、処理部702に対して、前処理の中止依頼を通知する(ステップS1523)。この結果、処理部702による前処理の実行が中止される。
管理装置101の処理管理部601は、前処理継続依頼処理を実行する(ステップS1524)。前処理継続依頼処理は、前処理継続依頼を通知するエッジ装置Eiを決定する処理である。前処理継続依頼処理の具体的な処理手順については、図16を用いて後述する。
エッジ装置Eiの処理制御部701は、管理装置101から前処理継続依頼を受信すると(ステップS1525)、中止された前処理の実行および前処理の実行結果の保存を行うか否かを決定する。具体的には、例えば、処理制御部701は、読出時間Tr、処理時間Tpおよび転送時間Ttを算出する。そして、処理制御部701は、処理時間Tpと読出時間Tr/転送時間Ttとを比較した結果に基づいて、中止された前処理の実行および前処理の実行結果の保存を行うか否かを決定する。
ここでは、中止された前処理の実行および前処理の実行結果の保存を行うと決定された場合を想定する。この場合、以下のように、図15C中、点線枠で示す一連の処理が実行される。
エッジ装置Eiの処理制御部701は、切替部706に対して、中止された前処理の実行結果の出力先を、転送部707からストレージ710に切り替えるよう指示する(ステップS1526)。この結果、中止された前処理の実行結果の出力先が、ストレージ710に切り替わる。
つぎに、エッジ装置Eiの処理制御部701は、処理部702により、中止された前処理を実行させる(ステップS1527)。エッジ装置Eiの処理部702は、実行した前処理の実行結果を、切替部706に通知する(ステップS1528)。
エッジ装置Eiの切替部706は、前処理の実行結果を受信すると、受信した前処理の実行結果をストレージ710(例えば、実行結果テーブル800)に書き込む(ステップS1529)。前処理の実行結果は、対象データの全データに対する前処理の実行結果である。
つぎに、図16を用いて、図15Cに示したステップS1524の前処理継続依頼処理の具体的な処理手順について説明する。
図16は、前処理継続依頼処理の具体的処理手順の一例を示すフローチャートである。図16のフローチャートにおいて、まず、管理装置101の処理管理部601は、受信した各エッジ装置Eのデータ読出時間(データ量を含む)、データ処理時間(データ量を含む)およびデータ転送時間(データ量を含む)に基づいて、各エッジ装置Eの読出速度Sr、処理速度Spおよび転送速度Stを算出する(ステップS1601)。
ただし、受信されたデータ処理時間には、データ(分割データ)の読み出しにかかるデータ読出時間が含まれる。このため、処理速度Spを算出する際には、受信されたデータ処理時間からデータ(分割データ)のデータ読出時間を引いたものを使う。
つぎに、管理装置101の処理管理部601は、算出した各エッジ装置Eの読出速度Sr、処理速度Spおよび転送速度Stに基づいて、各エッジ装置Eの読出時間Tr、処理時間Tpおよび転送時間Ttを算出する(ステップS1602)。そして、管理装置101の処理管理部601は、算出した各エッジ装置Eの読出時間Tr、処理時間Tpおよび転送時間Ttに基づいて、各エッジ装置EのレイテンシLを算出する(ステップS1603)。
つぎに、管理装置101の処理管理部601は、算出したレイテンシLの大きい順に、複数のエッジ装置Eをソートする(ステップS1604)。ここでは、複数のエッジ装置Eの数を「m」とし(mは、2以上の自然数)、ソート後の複数のエッジ装置Eを「エッジ装置E[1]~E[m]」と表記する。また、エッジ装置E[1]~E[m]のうちの任意のエッジ装置を「エッジ装置E[p]」と表記する。
つぎに、管理装置101の処理管理部601は、「p」を「p=1」とし(ステップS1605)、エッジ装置E[p]に前処理継続依頼を送信する(ステップS1606)。そして、管理装置101の処理管理部601は、エッジ装置E[p+1]のレイテンシL[p+1]が、エッジ装置E[p]のレイテンシL[p]から処理時間Tp[p]を引いた時間より大きいか否かを判断する(ステップS1607)。なお、処理時間Tp[p]は、エッジ装置E[p]の処理時間Tpである。
ここで、レイテンシL[p+1]がレイテンシL[p]から処理時間Tp[p]を引いた時間より大きい場合(ステップS1607:Yes)、管理装置101の処理管理部601は、「p」をインクリメントして(ステップS1608)、ステップS1606に戻る。
一方、レイテンシL[p+1]がレイテンシL[p]から処理時間Tp[p]を引いた時間以下の場合(ステップS1607:No)、管理装置101の処理管理部601は、本フローチャートによる一連の処理を終了する。
これにより、全体の処理時間の短縮に寄与するエッジ装置Eのみ選択して、前処理継続依頼を通知することができる。なお、管理装置101がいない場合、エッジ装置E1~Enのいずれかのエッジ装置Eがマスタとなり、他のエッジ装置Eを管理する管理装置として動作して、レイテンシの算出、中止された処理Pの実行および処理Pの実行結果の保存を行うか否かの決定および前処理継続依頼を行ってもよい。
以上説明したように、実施の形態2にかかる情報処理システム100によれば、管理装置101は、複数のエッジ装置Eにおけるデータに対する処理Pの実行が中止された場合、複数のエッジ装置Eの各エッジ装置の処理Pにかかるレイテンシを算出する。そして、管理装置101は、算出した各エッジ装置Eのレイテンシと、各エッジ装置Eにおける処理Pの処理時間とに基づいて、各エッジ装置Eにおいて、処理Pの実行および処理Pの実行結果の保存を行うか否かを決定することができる。
これにより、複数のエッジ装置Eからデータ収集する処理が中止された場合に、全体の処理時間の短縮に寄与するエッジ装置Eのみ選択して、中止された処理Pの実行および処理Pの実行結果の保存を行わせることで、効率的にリソースを使用することができる。
また、管理装置101は、ストレージ610に保存された処理Pの実行結果の利用頻度に応じて、処理Piの実行結果の保存期間を延長することができる。これにより、利用頻度が高いデータ(実行結果)は残しつつ、利用頻度が低いデータは削除するようにして、ストレージリソースを効率的に使用することができる。
また、管理装置101は、ストレージ610に保存された処理Pの実行結果の保存期間が延長されて一定期間を超えた場合、処理Pの実行結果を公開することができる。これにより、頻繁に利用されて保存期間が一定期間を超えたデータについては、インターネット上などに公開して検索可能なデータとすることで、他の分析者やアプリから利用可能とすることができる。
なお、本実施の形態で説明した情報処理方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本情報処理プログラムは、ハードディスク、フレキシブルディスク、CD-ROM、DVD、USBメモリ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本情報処理プログラムは、インターネット等のネットワークを介して配布してもよい。
また、本実施の形態で説明したエッジ装置Eiおよび管理装置101は、スタンダードセルやストラクチャードASIC(Application Specific Integrated Circuit)などの特定用途向けICやFPGAなどのPLD(Programmable Logic Device)によっても実現することができる。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)情報処理装置におけるデータに対する処理の実行が、前記処理の依頼元からの中止依頼に応じて中止された場合、前記情報処理装置における前記処理の処理速度に基づいて、前記情報処理装置において、前記処理の実行および前記処理の実行結果の保存を行うか否かを決定する処理制御部、
を有することを特徴とする情報処理装置。
(付記2)前記処理制御部は、
前記処理の処理速度と、前記データが保存されているストレージから前記データを読み出す際の読出速度とに基づいて、前記処理の実行および前記処理の実行結果の保存を行うか否かを決定する、ことを特徴とする付記1に記載の情報処理装置。
(付記3)前記処理制御部は、
前記処理の処理速度と、前記処理の依頼元に前記処理の実行結果を転送する際の転送速度とに基づいて、前記処理の実行および前記処理の実行結果の保存を行うか否かを決定する、ことを特徴とする付記1または2に記載の情報処理装置。
(付記4)前記処理制御部は、
前記処理の実行および前記処理の実行結果の保存を行うと決定した場合、前記情報処理装置の処理部に、前記処理を実行させ、前記処理の実行結果を、前記データおよび前記処理を識別する情報と対応付けて前記情報処理装置のストレージに保存させる、ことを特徴とする付記1~3のいずれか一つに記載の情報処理装置。
(付記5)前記処理制御部は、
前記ストレージの書き込み可能な残り回数が所定値以下の場合には、前記処理の実行および前記処理の実行結果の保存を行わないと決定する、ことを特徴とする付記4に記載の情報処理装置。
(付記6)前記処理の実行結果は、前記処理の実行結果の利用頻度に応じて保存期間が延長される、ことを特徴とする付記1~5のいずれか一つに記載の情報処理装置。
(付記7)情報処理装置におけるデータに対する処理の実行が、前記処理の依頼元からの中止依頼に応じて中止された場合、前記情報処理装置における前記処理の処理速度に基づいて、前記情報処理装置において、前記処理の実行および前記処理の実行結果の保存を行うか否かを決定する、
処理をコンピュータに実行させることを特徴とする情報処理プログラム。
(付記8)前記決定する処理は、
前記処理の処理速度と、前記データが保存されているストレージから前記データを読み出す際の読出速度とに基づいて、前記処理の実行および前記処理の実行結果の保存を行うか否かを決定する、ことを特徴とする付記7に記載の情報処理プログラム。
(付記9)前記決定する処理は、
前記処理の処理速度と、前記処理の依頼元に前記処理の実行結果を転送する際の転送速度とに基づいて、前記処理の実行および前記処理の実行結果の保存を行うか否かを決定する、ことを特徴とする付記7または8に記載の情報処理プログラム。
(付記10)第1の情報処理装置と、前記第1の情報処理装置からの処理依頼に応じて、データに対する処理を実行する第2の情報処理装置と、を含み、
前記第2の情報処理装置は、
前記第1の情報処理装置からの中止依頼に応じて前記処理の実行が中止された場合、前記第2の情報処理装置における前記処理の処理速度に基づいて、前記処理の実行および前記処理の実行結果の保存を行うか否かを決定する、
ことを特徴とする情報処理システム。
(付記11)前記第2の情報処理装置は、
前記処理の処理速度と、前記データが保存されているストレージから前記データを読み出す際の読出速度とに基づいて、前記処理の実行および前記処理の実行結果の保存を行うか否かを決定する、ことを特徴とする付記10に記載の情報処理システム。
(付記12)前記第2の情報処理装置は、
前記処理の処理速度と、前記処理の依頼元に前記処理の実行結果を転送する際の転送速度とに基づいて、前記処理の実行および前記処理の実行結果の保存を行うか否かを決定する、ことを特徴とする付記10または11に記載の情報処理システム。
(付記13)前記第1の情報処理装置は、
複数の情報処理装置におけるデータに対する処理の実行が中止された場合、前記複数の情報処理装置の各情報処理装置の前記処理にかかるレイテンシと、前記各情報処理装置における前記処理の処理時間とに基づいて、前記各情報処理装置において、前記処理の実行および前記処理の実行結果の保存を行うか否かを決定する、
ことを特徴とする付記10~12のいずれか一つに記載の情報処理システム。
(付記14)前記第1の情報処理装置は、
前記複数の情報処理装置のうち、最もレイテンシが遅い情報処理装置のレイテンシから当該情報処理装置における前記処理の処理時間を引いた時間と、次にレイテンシが遅い情報処理装置のレイテンシとを比較した結果に基づいて、前記次にレイテンシが遅い情報処理装置において、前記処理の実行および前記処理の実行結果の保存を行うか否かを決定する、ことを特徴とする付記13に記載の情報処理システム。
(付記15)前記各情報処理装置のレイテンシは、前記各情報処理装置における前記処理の処理速度、前記データの読出速度、および、前記処理の実行結果の転送速度に基づき算出される、ことを特徴とする付記13または14に記載の情報処理システム。