JP7017112B2 - 誤差補正方法、分散処理システムおよび情報処理装置 - Google Patents

誤差補正方法、分散処理システムおよび情報処理装置 Download PDF

Info

Publication number
JP7017112B2
JP7017112B2 JP2018063510A JP2018063510A JP7017112B2 JP 7017112 B2 JP7017112 B2 JP 7017112B2 JP 2018063510 A JP2018063510 A JP 2018063510A JP 2018063510 A JP2018063510 A JP 2018063510A JP 7017112 B2 JP7017112 B2 JP 7017112B2
Authority
JP
Japan
Prior art keywords
information
information processing
difference
edge
notification message
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018063510A
Other languages
English (en)
Other versions
JP2019175204A (ja
Inventor
孝司 榎並
公敬 山崎
菜美 長田
仁 上野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2018063510A priority Critical patent/JP7017112B2/ja
Priority to US16/293,880 priority patent/US11055146B2/en
Publication of JP2019175204A publication Critical patent/JP2019175204A/ja
Application granted granted Critical
Publication of JP7017112B2 publication Critical patent/JP7017112B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • H04L67/125Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/562Brokering proxy services

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)

Description

本発明は、誤差補正方法、分散処理システムおよび情報処理装置に関する。
IoT(Internet of Things)の進展にともなって、エンドデバイスが生み出すデータ量が増加し、全てのデータの処理やデバイスの制御をクラウドで行うことが難しくなってきている。このため、エッジコンピューティングによる分散処理環境に注目が集まっている。エッジコンピューティングは、コンピュータネットワーク上で、利用者に近い場所に複数のエッジ装置を配置して、負荷の分散と通信の低遅延化を図る技術である。
先行技術としては、センサノードを収容するブローカノードが高負荷状態となった場合に、登録されたフィルタ条件を用いて、他のブローカノードを探索し、高負荷ブローカノードから低負荷ブローカノードへセンサノードの収容関係を切り替えるものがある。また、ネットワーク上の各ノードが、自ノードの処理負荷を収集して上限値を超えたことを検知し、他ノードの処理負荷情報を受け取り、自ノードの処理負荷の上限値および現在値を参照して、処理を受け入れることの可否を応答するものがある。
国際公開第2010/107105号 特開2005-4676号公報
しかしながら、従来技術では、複数のエッジ装置の負荷分散等を行うにあたり、クラウド側でエッジ装置の状態を把握するために、エッジ装置から通知されるメッセージの数が増えて通信量が増大するという問題がある。例えば、エッジ装置からクラウド側にメッセージを通知する回数(頻度)を減らすことも考えられるが、実際のエッジ装置の状態と、クラウド側で認識するエッジ装置の状態との間に大きな誤差が生じてしまう場合がある。
一つの側面では、本発明は、メッセージの数を抑えつつ適切に誤差を抑制することを目的とする。
1つの実施態様では、第1のネットワークを介して接続される複数の情報処理装置から、第2のネットワークを介して管理装置へ状態通知メッセージを送信する分散処理システムにおいて、前記複数の情報処理装置のうちの第1の情報処理装置が、前記第1の情報処理装置よりも前記管理装置への状態通知メッセージの送信頻度が高い第2の情報処理装置に、前記第1の情報処理装置の負荷状態に関する差分情報を送信し、前記第2の情報処理装置が、前記第1の情報処理装置から前記差分情報を受信した場合、前記管理装置に状態通知メッセージを送信する際に、当該状態通知メッセージに前記差分情報を含めて送信し、前記管理装置が、前記第2の情報処理装置から前記差分情報を含む状態通知メッセージを受信した場合、前記差分情報に基づいて、前記第1の情報処理装置の負荷状態を補正する、誤差補正方法が提供される。
本発明の一側面によれば、メッセージの数を抑えつつ適切に誤差を抑制することができる。
図1は、分散処理システム100のシステム構成例を示す説明図である。 図2は、分散処理システム100の処理例を示す説明図である。 図3は、エッジ装置Eiのハードウェア構成例を示すブロック図である。 図4は、対象エッジ管理テーブル110の記憶内容の一例を示す説明図である。 図5は、処理量管理テーブル120の記憶内容の一例を示す説明図である。 図6は、第1のプロセス情報管理テーブル130の記憶内容の一例を示す説明図である。 図7は、第2のプロセス情報管理テーブル140の記憶内容の一例を示す説明図である。 図8は、転送依頼差分情報テーブル150の記憶内容の一例を示す説明図である。 図9は、エッジ装置Eiの機能的構成例を示すブロック図である。 図10は、プロセスの終了時刻の予測を説明するための図である。 図11は、負荷差分量LDの算出例を示す説明図である。 図12は、管理装置101の機能的構成例を示すブロック図である。 図13は、第2のプロセス情報管理テーブル(管理用)160の更新例を示す説明図である。 図14は、対象エッジを変更する際の動作例を示す説明図である。 図15は、エッジ装置Eiの通知処理手順の一例を示すフローチャート(その1)である。 図16は、エッジ装置Eiの通知処理手順の一例を示すフローチャート(その2)である。 図17は、負荷差分量算出処理の具体的処理手順の一例を示すフローチャートである。 図18は、管理装置101の誤差処理手順の一例を示すフローチャートである。
以下に図面を参照して、本発明にかかる誤差補正方法、分散処理システムおよび情報処理装置の実施の形態を詳細に説明する。
(実施の形態)
まず、実施の形態にかかる分散処理システム100のシステム構成について説明する。
図1は、分散処理システム100のシステム構成例を示す説明図である。図1において、分散処理システム100は、エッジ装置E1~En(n:2以上の自然数)と、管理装置101と、を含む。分散処理システム100において、エッジ装置E1~Enは、ネットワークNW1を介して相互に通信可能に接続される。ネットワークNW1は、例えば、構内通信網(LAN:Local Area Network)である。また、エッジ装置E1~Enおよび管理装置101は、ネットワークNW2を介して相互に通信可能に接続される。ネットワークNW2は、例えば、広域通信網(WAN:Wide Area Network)、インターネットである。
以下の説明では、エッジ装置E1~Enのうちの任意のエッジ装置を「エッジ装置Ei」と表記する場合がある(i=1,2,…,n)。また、エッジ装置E1~Enのうちのエッジ装置Eiとは異なる他のエッジ装置を「他のエッジ装置Ej」と表記する場合がある(j≠i、j=1,2,…,n)。
ここで、エッジ装置Eiは、デバイス102から送出されるデータを受信し、受信したデータの内容に対応するプロセスを起動する情報処理装置である。エッジ装置Eiは、例えば、サーバ、ゲートウェイ装置、アクセスポイント、PC(Personal Computer)などである。
デバイス102は、例えば、工場などに設置される生産機器、組立機器、環境センサ、カメラなどの機器である。また、デバイス102は、PC、スマートフォンなどであってもよい。デバイス102から送出されるデータは、例えば、生産機器や組立機器のエラーログ、環境センサのセンシングデータ、カメラによって撮像される画像などである。
エッジ装置Eiは、近距離無線通信または有線通信により、デバイス102から送出されるデータを受信する。近距離無線通信としては、例えば、無線LAN、Bluetooth(登録商標)などを利用した通信が挙げられる。エッジ装置Eiは、管理装置101に比べて、デバイス102に近い位置に配置される。
デバイス102から送出されるデータの内容に対応するプロセスとしては、例えば、カメラによって撮像された画像を解析するプロセスや、環境センサのセンシングデータに対して簡単な演算を行うプロセスなどがある。画像を解析するプロセスは、センシングデータに対して簡単な演算を行うプロセスに比べて負荷が高い。
また、エッジ装置Eiは、対象エッジ管理テーブル110、処理量管理テーブル120、第1のプロセス情報管理テーブル130、第2のプロセス情報管理テーブル140および転送依頼差分情報テーブル150を有する。各種テーブル110,120,130,140,150の記憶内容については、図4~図8を用いて後述する。
管理装置101は、エッジ装置E1~Enの状態を管理するコンピュータである。例えば、管理装置101は、クラウドコンピューティングのサーバである。管理装置101は、第2のプロセス情報管理テーブル(管理用)160を有する。第2のプロセス情報管理テーブル(管理用)160の記憶内容については、図13を用いて後述する。なお、第2のプロセス情報管理テーブル(管理用)160のデータ構造は、エッジ装置Eiが有する第2のプロセス情報管理テーブル140と同様である。
ここで、複数のエッジ装置(例えば、エッジ装置E1~En)とクラウド(例えば、管理装置101)とが協調動作するシステムを構築するにあたり、クラウド側で各エッジ装置の状態を管理することは、負荷分散等を行うために重要である。クラウド側で管理するエッジ装置の状態は、例えば、実行中のプロセスの数や、実行中のプロセスの残りの処理時間などである。
このため、エッジ装置でプロセスが起動したり、プロセスが終了したりした際にクラウド側にメッセージを通知することで、クラウド側でエッジ装置の状態を管理することが考えられる。ところが、システム内のエッジ装置数やプロセス数が多くなると、エッジ装置/クラウド間で送受信されるメッセージの数が増大するおそれがある。エッジ装置/クラウド間の通信は、エッジ装置間の通信に比べて通信負荷がかかるため、できる限り増やしたくないという要望がある。
このため、エッジ装置でプロセスが終了した際には、クラウド側へメッセージを通知しないことで、メッセージ数を削減することが考えられる。具体的には、エッジ装置は、プロセスを起動した際に、プロセスの起動時刻と処理量とを含むメッセージをクラウド側に通知する一方で、プロセスが終了した際にはメッセージを通知しない。プロセスの処理量とは、プロセスが実際に行う仕事の量であり、プロセスを起動してから終了するまでにかかる負荷量をあらわす。
この場合、クラウド側では、メッセージに含まれるプロセスの起動時刻と処理量や、エッジ装置の処理能力などを利用して、プロセスの終了時刻を予測することができる。しかし、エッジ装置でプロセスが起動されると、その都度、クラウド側へメッセージが通知されるため、依然として、エッジ装置/クラウド間で送受信されるメッセージの数が増大するおそれがある。
このため、処理量が小さいプロセスの起動時にはクラウド側への通知を省略し、処理量が大きいプロセスの起動時に、エッジ装置の負荷状態に関する差分情報をあわせてクラウド側に通知することが考えられる。これによれば、処理量が小さいプロセスに関する通知分のメッセージを削減できるとともに、クラウド側に通知しなかったことにより生じた誤差を補正することができる。
しかしながら、エッジ装置において、処理量が大きいプロセスが発生せず、処理量が小さいプロセスばかり発生するような場合がある。例えば、工場内の作業員の動きなどを解析するために、カメラで撮像された画像を解析するプロセスは、カメラ近傍に人がいるときにのみ発生する。
したがって、カメラ近傍に人がいなければ、カメラで撮像された画像を解析するプロセスは発生しないことになる。一方で、環境センサのセンシングデータに対して演算を行うようなプロセスは、定期的にあるいは頻繁に発生することがある。このような場合、処理量が小さいプロセスに関する通知分のメッセージを削減できるものの、クラウド側に通知しなかったことにより生じる誤差を補正することができない。
そこで、本実施の形態では、エッジ装置Eiと管理装置101(クラウド側)との間でやり取りされるメッセージの数を抑えつつ適切に誤差を抑制する誤差補正方法について説明する。ここで、図2を用いて、分散処理システム100の処理例について説明する。
図2は、分散処理システム100の処理例を示す説明図である。図2において、各エッジ装置Ei,Ejは、処理量の大きいプロセスが起動した場合に、ネットワークNW2を介して、管理装置101へ状態通知メッセージを送信する。ここで、状態通知メッセージは、各エッジ装置Ei,Ejの状態を通知するためのメッセージであり、処理量が大きいプロセスの起動を通知するものである。
処理量の大きいプロセスとは、処理量が予め設定された閾値(後述する「閾値α」に相当)以上のプロセスである。例えば、カメラ(デバイス102)で撮像された画像を解析するプロセスは、処理量の大きいプロセスである。ここでは、管理装置101への状態通知メッセージの送信頻度は、エッジ装置Eiよりも他のエッジ装置Ejのほうが高い場合を想定する。
(1)エッジ装置Eiは、自装置よりも管理装置101への状態通知メッセージの送信頻度が高い他のエッジ装置Ejに、自装置の負荷状態に関する差分情報を送信する。ここで、差分情報は、エッジ装置Eiが認識する自装置の負荷量と、管理装置101が認識するエッジ装置Eiの負荷量との差分をあらわす情報である。換言すれば、差分情報は、処理量が小さいプロセスに関するメッセージを管理装置101に通知しなかったことにより生じた誤差をあらわす。
具体的には、例えば、エッジ装置Eiは、自装置の負荷状態に関する差分情報の管理装置101への転送要求を他のエッジ装置Ejに送信する。なお、状態通知メッセージの送信頻度が高い他のエッジ装置Ejを特定する情報は、例えば、管理装置101から得られる。
(2)他のエッジ装置Ejは、エッジ装置Eiから差分情報を受信した場合、管理装置101に状態通知メッセージを送信する際に、当該状態通知メッセージに差分情報を含めて送信する。具体的には、例えば、他のエッジ装置Ejは、自装置において処理量が大きいプロセスが起動したことに応じて、当該プロセスの起動を通知する状態通知メッセージに、受信した差分情報を含めて管理装置101に送信する。
(3)管理装置101は、他のエッジ装置Ejから差分情報を含む状態通知メッセージを受信した場合、当該差分情報に基づいて、エッジ装置Eiの負荷状態を補正する。具体的には、例えば、管理装置101は、差分情報に基づいて、エッジ装置Eiが認識する自装置の負荷量と、管理装置101が認識するエッジ装置Eiの負荷量との差分を解消するように、エッジ装置Eiの負荷状態を補正する。
このように、分散処理システム100によれば、エッジ装置Eiの負荷状態に関する差分情報を、エッジ装置Eiよりも管理装置101への状態通知メッセージの送信頻度が高い他のエッジ装置Ejから管理装置101に転送することができる。これにより、エッジ装置Eiにおいて、管理装置101へ起動通知する契機となるプロセスが起動しなくても、管理装置101で推定するエッジ装置Eiの負荷状態に関する誤差を補正することができる。
なお、図1の例では、ネットワークNW1として1つの構内通信網のみ表示したが、分散処理システム100には複数の構内通信網が含まれていてもよい。
(エッジ装置Eiのハードウェア構成例)
図3は、エッジ装置Eiのハードウェア構成例を示すブロック図である。図3において、エッジ装置Eiは、CPU(Central Processing Unit)301と、メモリ302と、I/F(Interface)303と、ディスクドライブ304と、ディスク305と、を有する。また、各構成部は、バス300によってそれぞれ接続される。
ここで、CPU301は、エッジ装置Eiの全体の制御を司る。CPU301は、複数のコアを有していてもよい。メモリ302は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMやROMが各種プログラムを記憶し、RAMがCPU301のワークエリアとして使用される。メモリ302に記憶されるプログラムは、CPU301にロードされることで、コーディングされている処理をCPU301に実行させる。
I/F303は、通信回線を通じてネットワークNW1,NW2に接続され、ネットワークNW1,NW2を介して他の装置(例えば、管理装置101、他のエッジ装置Ej)に接続される。そして、I/F303は、ネットワークNW1,NW2と装置内部とのインターフェースを司り、外部のコンピュータからのデータの入出力を制御する。I/F303には、例えば、モデムやLANアダプタなどを採用することができる。
ディスクドライブ304は、CPU301の制御に従ってディスク305に対するデータのリード/ライトを制御する。ディスク305は、ディスクドライブ304の制御で書き込まれたデータを記憶する。ディスク305としては、例えば、磁気ディスク、光ディスクなどが挙げられる。
なお、エッジ装置Eiは、上述した構成部のほかに、例えば、SSD(Solid State Drive)、入力装置、ディスプレイ等を有することにしてもよい。また、エッジ装置Eiは、図1に示したデバイス102と近距離無線通信を行う場合には、近距離無線I/Fを有する。また、管理装置101についても、エッジ装置Eiと同様のハードウェア構成により実現することができる。
(各種テーブル110,120,130,140,150の記憶内容)
つぎに、図4~図8を用いて、エッジ装置Eiが有する各種テーブル110,120,130,140,150の記憶内容について説明する。各種テーブル110,120,130,140,150は、例えば、図3に示したメモリ302、ディスク305などの記憶装置により実現される。
ここでは、エッジ装置Eiとして、「エッジ装置E1」を例に挙げて説明する。
図4は、対象エッジ管理テーブル110の記憶内容の一例を示す説明図である。図4において、対象エッジ管理テーブル110は、順位、対象エッジIDおよびアドレスのフィールドを有し、各フィールドに情報を設定することで、対象エッジ情報400-1~400-3をレコードとして記憶する。
ここで、順位は、管理装置101への状態通知メッセージの送信頻度の高さを示す順位である。ここでは、3位までの順位が示されている。対象エッジIDは、対象エッジを一意に識別する識別子である。対象エッジは、エッジ装置Eiの負荷状態に関する差分情報の管理装置101への転送を依頼する依頼先のエッジ装置である。アドレスは、対象エッジのアドレスである。アドレスとしては、例えば、IP(Internet Protocol)アドレスが設定される。
例えば、対象エッジ情報400-1は、対象エッジE2の順位「1」およびアドレス「192.168.1.15」を示す。なお、対象エッジIDには、自装置(図4の例では、エッジ装置E1)のエッジIDが設定されることもある。
図5は、処理量管理テーブル120の記憶内容の一例を示す説明図である。図5において、処理量管理テーブル120は、プログラムIDおよび処理量(Wproc)のフィールドを有し、各フィールドに情報を設定することで、処理量情報(例えば、処理量情報500-1,500-2)をレコードとして記憶する。
ここで、プログラムIDは、エッジ装置Eiで実行されるプログラムを一意に識別する識別子である。例えば、プログラムは、カメラによって撮像された画像を解析するプログラムや、環境センサのセンシングデータに対して演算を行うプログラムなどである。処理量(Wproc)は、プログラムの実行中に起動されるプロセスの処理量平均である。
プロセスは、プログラムの実行単位である。プロセスの処理量平均は、例えば、プログラムIDにより識別されるプログラムの実行中に起動されるプロセスの処理量の移動平均によってあらわされる。なお、処理量の単位は、例えば[秒]によってあらわすことができる。例えば、処理量情報500-1は、プログラムPG1の処理量「Wproc=98」を示す。
図6は、第1のプロセス情報管理テーブル130の記憶内容の一例を示す説明図である。図6において、第1のプロセス情報管理テーブル130は、プロセスID、処理量(Wproc_k)および更新時刻のフィールドを有し、各フィールドに情報を設定することで、第1のプロセス情報(例えば、第1のプロセス情報600-1)をレコードとして記憶する。
ここで、プロセスIDは、エッジ装置Eiで実行中のプロセスを一意に識別する識別子である。処理量(Wproc_k)は、エッジ装置Eiでプロセスを起動してから更新時刻までに処理した負荷量を示す。更新時刻は、処理量(Wproc_k)を更新した日時(年月日時分秒)を示す。
例えば、第1のプロセス情報600-1は、エッジ装置E1で起動されたプロセスp1の処理量「Wproc_k=120」および更新時刻「2017-06-26 11:24:00」を示す。
図7は、第2のプロセス情報管理テーブル140の記憶内容の一例を示す説明図である。図7において、第2のプロセス情報管理テーブル140は、エッジID、プロセス起動時刻およびプロセス終了予想時刻のフィールドを有し、各フィールドに情報を設定することで、第2のプロセス情報(例えば、第2のプロセス情報700-1,700-2)をレコードとして記憶する。
ここで、エッジIDは、エッジ装置Eiを一意に識別する識別子である。プロセス起動時刻は、エッジ装置Eiでプロセスが起動した日時(年月日時分秒)を示す。プロセス終了予想時刻は、エッジ装置Eiでプロセスが終了する予想日時(年月日時分秒)を示す。
例えば、第2のプロセス情報700-1は、エッジ装置E1で起動されたプロセスのプロセス起動時刻「2017-06-26 11:35:10」およびプロセス終了予想時刻「2017-06-26 11:36:13」を示す。
なお、図示は省略するが、第2のプロセス情報には、例えば、エッジ装置Eiで起動されたプロセスの処理量(Wproc)やプロセスIDが含まれていてもよい。
図8は、転送依頼差分情報テーブル150の記憶内容の一例を示す説明図である。図8において、転送依頼差分情報テーブル150は、エッジID、差分情報ID、差分情報送信日時および負荷差分量のフィールドを有し、各フィールドに情報を設定することで、転送依頼差分情報(例えば、転送依頼差分情報800-1)をレコードとして記憶する。
ここで、エッジIDは、管理装置101への差分情報の転送を依頼してきた依頼元のエッジ装置を一意に識別する識別子である。差分情報IDは、依頼元のエッジ装置の負荷状態に関する差分情報を一意に識別する識別子である。差分情報送信日時は、依頼元のエッジ装置がエッジ装置Eiに対して差分情報の転送依頼を送信した日時(年月日時分秒)を示す。負荷差分量は、依頼元のエッジ装置が認識する自装置の負荷量と、管理装置101が認識する依頼元のエッジ装置の負荷量との差分をあらわす。
例えば、転送依頼差分情報800-1は、エッジ装置E1がエッジ装置E2から転送依頼された差分情報の差分情報ID「D6」、差分情報送信日時「2017-06-26 11:30:15」および負荷差分量「112」を示す。
(エッジ装置Eiの機能的構成例)
図9は、エッジ装置Eiの機能的構成例を示すブロック図である。図9において、エッジ装置Eiは、データ処理部901と、情報管理部902と、処理量判断部903と、プロセス通知部904と、差分算出部905と、依頼送信部906と、依頼受信部907と、を含む。データ処理部901~依頼受信部907は制御部となる機能であり、具体的には、例えば、図3に示したメモリ302、ディスク305などの記憶装置に記憶されたプログラムをCPU301に実行させることにより、または、I/F303により、その機能を実現する。各機能部の処理結果は、例えば、メモリ302、ディスク305などの記憶装置に記憶される。
データ処理部901は、デバイス102から送出されたデータを受信すると、受信したデータを処理する。具体的には、例えば、データ処理部901は、近距離無線通信等により、デバイス102から送出されたデータを受信すると、受信したデータの内容に対応するプロセスを起動する。
例えば、データ処理部901は、デバイス102である環境センサからのセンシングデータを受信すると、受信したセンシングデータに対して簡単な演算を行うプロセスを起動する。また、データ処理部901は、デバイス102であるカメラによって撮像された画像を受信すると、受信した画像を解析するプロセスを起動する。
情報管理部902は、データ処理部901によってプロセスが起動されると、プロセスの状態を更新する。以下の説明では、エッジ装置Eiにおいて、新たに起動されたプロセスを「新規プロセス」と表記し、既に起動されて実行中のプロセスを「既存プロセス」と表記する場合がある。
具体的には、例えば、情報管理部902は、新規プロセスが起動されると、第1のプロセス情報管理テーブル130に新規プロセスの第1のプロセス情報を登録する。より詳細に説明すると、情報管理部902は、新規プロセスのプロセスIDと対応付けて、処理量(Wproc_k)および更新時刻を登録する。ただし、この時点では、処理量(Wproc_k)は「0」である。更新時刻は、新規プロセスが起動された時刻である。これにより、新たな第1のプロセス情報が第1のプロセス情報管理テーブル130にレコードとして記憶される。
さらに、情報管理部902は、新規プロセスが起動されると、第1のプロセス情報管理テーブル130内の既存プロセスの第1のプロセス情報を更新する。より詳細に説明すると、情報管理部902は、例えば、下記式(1)を用いて、既存プロセスの処理量(Wproc_k)を更新する。また、情報管理部902は、既存プロセスの更新時刻を、現在時刻に更新する。
proc_k=ΣkC・tk/Nk・・・(1)
ただし、Cは、エッジ装置Eiの処理能力をあらわす変数である。単一のエッジ装置Ei内では変数Cが一定であると仮定できるため、変数Cを処理能力「1」や処理能力「10」に設定すれば、処理量をエッジ装置Eiごとに正規化することができる。tは、プロセスの処理時間をあらわす変数である。処理時間は、処理に要する時間であり、現在時刻と更新時刻(直前の更新時刻)との差によりあらわすことができる。Nは、現在のプロセス数をあらわす変数である。kは、プロセスが起動してから終了するまでの間の各区間をあらわす変数である。
例えば、処理能力「10」のエッジ装置Eiが2つのプロセスを処理する場合、1つのプロセスに対してエッジ装置Eiは、C/Nにより処理能力「5」で処理する。そして、処理能力「5」に処理時間を掛け合わせることで、プロセスの処理量を算出することができる。なお、処理能力「1」の場合には、上記式(1)から変数Cを省略することができる。
これにより、エッジ装置Eiにおいて、新規プロセスが起動される度に、既存プロセスの処理量(Wproc_k)を更新することができる。
また、情報管理部902は、既存プロセスが終了すると、既存プロセスの状態を更新する。具体的には、例えば、情報管理部902は、既存プロセスが終了すると、第1のプロセス情報管理テーブル130の各既存プロセスの第1のプロセス情報を更新する。より詳細に説明すると、情報管理部902は、例えば、上記式(1)を用いて、既存プロセスの処理量(Wproc_k)を更新する。また、情報管理部902は、既存プロセスの更新時刻を、現在時刻に更新する。
つぎに、情報管理部902は、終了した既存プロセスの処理量の移動平均を算出する。また、情報管理部902は、終了した既存プロセスのプロセスIDに対応するプログラムIDを特定する。プロセスIDに対応するプログラムIDは、例えば、OSの機能より得ることができる。
そして、情報管理部902は、特定したプログラムIDに対応する処理量管理テーブル120内の処理量(Wproc)を、算出した移動平均によって更新する。また、情報管理部902は、第1のプロセス情報管理テーブル130から、終了した既存プロセスのプロセスIDに対応するエントリを削除する。
なお、既存プロセスの処理量の移動平均を算出するための情報は、例えば、プログラムIDと対応付けて、メモリ302、ディスク305などの記憶装置に記憶されている。既存プロセスの処理量の移動平均を算出するための情報とは、例えば、過去に算出された既存プロセスの処理量である。
これにより、エッジ装置Eiにおいて、既存プロセスが終了したタイミングで、その既存プロセスに対応する処理量(Wproc)を更新することができる。ただし、処理量管理テーブル120内の各プログラムIDに対応する処理量(Wproc)は、予め設定される固定値としてもよい。
処理量判断部903は、新規プロセスが起動されると、新規プロセスの処理量(Wproc)が閾値α以上であるか否かを判断する。ここで、閾値αは、任意に設定可能である。例えば、閾値αは、エッジ装置E1~Enで負荷分散等を行うにあたり、新規プロセスの処理量(Wproc)が閾値α以上であれば、新規プロセスの負荷が無視できない程度に大きいといえる値に設定される。換言すれば、新規プロセスの処理量(Wproc)が閾値α未満であれば、新規プロセスは短時間で終了する可能性が高く、管理装置101に起動通知を送信してプロセスの終了時刻を予測するほどの理由が乏しいといえる。
具体的には、例えば、処理量判断部903は、新規プロセスのプロセスIDに対応するプログラムIDを特定する。そして、処理量判断部903は、処理量管理テーブル120を参照して、特定したプログラムIDに対応する処理量(Wproc)を特定する。そして、処理量判断部903は、特定した処理量(Wproc)が閾値α以上であるか否かを判断する。
プロセス通知部904は、処理量判断部903によって新規プロセスの処理量(Wproc)が閾値α以上であると判断された場合、状態通知メッセージを管理装置101に送信する。ここで、状態通知メッセージは、例えば、処理量(Wproc)が閾値α以上である新規プロセスの起動を通知するものである。
状態通知メッセージは、新規プロセスの処理量(Wproc)と起動時刻とを含む。起動時刻は、新規プロセスが起動された時刻(例えば、年月日時分秒)である。状態通知メッセージには、新規プロセスのプロセスIDが含まれていてもよい。
差分算出部905は、エッジ装置Eiが認識する自装置の負荷量と、管理装置101が認識するエッジ装置Eiの負荷量との差分を算出する。以下の説明では、エッジ装置Eiが認識する自装置の負荷量と、管理装置101が認識するエッジ装置Eiの負荷量との差分を「負荷差分量LD」と表記する場合がある。
具体的には、例えば、差分算出部905は、新規プロセスが起動されると、第1のプロセス情報管理テーブル130および第2のプロセス情報管理テーブル140を参照して、負荷差分量LDを算出する。なお、負荷差分量LDを算出する具体的な処理内容については、図11を用いて後述する。
依頼送信部906は、自装置よりも管理装置101への状態通知メッセージの送信頻度が高い他のエッジ装置Ejに、自装置の負荷状態に関する差分情報を送信する。ここで、自装置の負荷状態に関する差分情報とは、エッジ装置Eiが認識する自装置の負荷量と、管理装置101が認識するエッジ装置Eiの負荷量との差分、すなわち、負荷差分量LDを示す情報である。
具体的には、例えば、依頼送信部906は、処理量判断部903によって新規プロセスの処理量(Wproc)が閾値α未満であると判断された場合、差分算出部905によって算出された負荷差分量LDが所定値β以上であるか否かを判断する。ここで、所定値βは、任意に設定可能である。例えば、所定値βは、エッジ装置E1~Enで負荷分散等を行うにあたり、負荷差分量LDが所定値β以上であれば、負荷差分量LDが無視できない程度に大きいといえる値に設定される。
そして、依頼送信部906は、負荷差分量LDが所定値β以上の場合に、図4に示した対象エッジ管理テーブル110を参照して、対象エッジを特定する。この際、依頼送信部906は、例えば、順位「1」の対象エッジを特定する。なお、対象エッジ管理テーブル110の記憶内容は、例えば、管理装置101からの対象エッジ更新要求に応じて更新される。
そして、依頼送信部906は、負荷差分量LDを示す差分情報の管理装置101への転送依頼を、特定した対象エッジに送信する。すなわち、依頼送信部906は、負荷差分量LDを示す差分情報を管理装置101に転送するよう他のエッジ装置Ejに依頼する。
以下の説明では、負荷差分量LDを示す差分情報の管理装置101への転送依頼を「差分情報パケット」と表記する場合がある。
差分情報パケットは、例えば、エッジID、差分情報ID、差分情報送信日時および負荷差分量を含む。エッジIDは、依頼元であるエッジ装置EiのエッジIDである。差分情報IDは、負荷差分量LDを示す差分情報の差分情報IDである。差分情報送信日時は、差分情報パケットを送信した日時である。負荷差分量は、負荷差分量LDである。
これにより、自装置(エッジ装置Ei)の負荷状態に関する差分情報を管理装置101に転送するよう、状態通知メッセージの送信頻度が高い他のエッジ装置Ejに依頼することができる。また、負荷差分量LDが所定値β未満の場合は差分情報の転送依頼を行わないことで、エッジ装置間の通信が頻繁に発生してしまうのを防ぐことができる。
依頼受信部907は、他のエッジ装置Ejから、他のエッジ装置Ejの負荷状態に関する差分情報を受信する。具体的には、例えば、依頼受信部907は、他のエッジ装置Ejからの差分情報パケットを受信する。ここで、他のエッジ装置Ejからの差分情報パケットは、他のエッジ装置Ejの負荷差分量LDを示す差分情報の管理装置101への転送依頼である。すなわち、依頼受信部907は、自装置が対象エッジになっている場合に、他のエッジ装置Ejから差分情報の管理装置101への転送依頼を受信する。
また、依頼受信部907は、他のエッジ装置Ejから差分情報パケットを受信した場合、受信した差分情報パケットに含まれるエッジID、差分情報ID、差分情報送信日時および負荷差分量を対応付けて転送依頼差分情報テーブル150に登録する。これにより、他のエッジ装置Ejから転送依頼された差分情報を転送依頼差分情報テーブル150に登録することができる。
また、プロセス通知部904は、依頼受信部907によって他のエッジ装置Ejからの差分情報が受信された場合、管理装置101に状態通知メッセージを送信する際に、当該状態通知メッセージに、他のエッジ装置Ejからの差分情報を含めて送信する。具体的には、例えば、プロセス通知部904は、転送依頼差分情報テーブル150に含まれる転送依頼差分情報を、状態通知メッセージに含めて管理装置101に送信する。
これにより、エッジ装置Eiにおいて処理量(Wproc)が閾値α以上の新規プロセスが起動したことをエッジ装置Eiから管理装置101に通知する際に、他のエッジ装置Ejから転送依頼された差分情報を転送することができる。
対象エッジが自装置の場合は、プロセス通知部904は、差分算出部905によって算出された自装置の負荷差分量LDを含む状態通知メッセージを管理装置101に送信する。なお、対象エッジが自装置の場合は、例えば、依頼送信部906が、自装置の負荷差分量LDを図8に示した転送依頼差分情報テーブル150に登録することにしてもよい。そして、プロセス通知部904が、管理装置101に状態通知メッセージを送信する際に、自装置の負荷差分量LDを含む転送依頼差分情報を、状態通知メッセージに含めて送信することにしてもよい。
また、情報管理部902は、プロセス通知部904によって状態通知メッセージが管理装置101に送信された場合に、管理装置101が認識する自装置の負荷量を更新する。具体的には、例えば、情報管理部902は、第2のプロセス情報管理テーブル140に、処理量(Wproc)が閾値α以上の新規プロセスについての第2のプロセス情報を登録する。また、情報管理部902は、第2のプロセス情報管理テーブル140内の既存プロセスについての第2のプロセス情報を更新する。
より詳細に説明すると、情報管理部902は、例えば、新規プロセスの処理量(Wproc)と起動時刻とに基づいて、新規プロセスの終了時刻を予測する。この際、情報管理部902は、自装置の処理能力をさらに考慮して、新規プロセスの終了時刻を予測することにしてもよい。
そして、情報管理部902は、エッジ装置EiのエッジIDと、新規プロセスの起動時刻と、予測した終了時刻とを対応付けて、第2のプロセス情報管理テーブル140に記憶する。この際、情報管理部902は、新規プロセスの処理量(Wproc)やプロセスIDをあわせて記憶することにしてもよい。これにより、新たな第2のプロセス情報が第2のプロセス情報管理テーブル140にレコードとして記憶される。
また、情報管理部902は、第2のプロセス情報管理テーブル140を参照して、既存プロセスの新たな終了時刻を予測する。そして、情報管理部902は、新たな終了時刻を予測した既存プロセスについて、第2のプロセス情報管理テーブル140内のプロセス終了予想時刻を更新する。
なお、プロセスの処理量(Wproc)と起動時刻とに基づいて、プロセスの終了時刻を予測する具体的な処理内容については、図10を用いて後述する。
また、情報管理部902は、予測した既存プロセスの終了時刻に基づいて、既存プロセスの終了を検出する。そして、情報管理部902は、既存プロセスの終了を検出した場合、処理量(Wproc)が閾値α以上の他の既存プロセスの新たな終了時刻を予測する。
具体的には、例えば、情報管理部902は、第2のプロセス情報管理テーブル140を参照して、いずれかのエントリのプロセス終了予想時刻を経過したか否かを監視する。そして、情報管理部902は、いずれかのエントリのプロセス終了予想時刻が経過した場合、第2のプロセス情報管理テーブル140から当該エントリを削除し、第2のプロセス情報管理テーブル140内の残りのエントリのプロセス終了予想時刻を更新する。すなわち、情報管理部902は、処理量(Wproc)が閾値α以上の既存プロセスの新たな終了時刻を予測する。そして、情報管理部902は、新たな終了時刻を予測した既存プロセスについて、第2のプロセス情報管理テーブル140内のプロセス終了予想時刻を更新する。
また、情報管理部902は、依頼送信部906によって差分情報パケットが対象エッジに送信された場合、自装置が認識する自装置の負荷量と管理装置101が認識する自装置の負荷量との誤差を補正することにしてもよい。あるいは、情報管理部902は、対象エッジから転送完了通知を受信した場合に、自装置が認識する自装置の負荷量と管理装置101が認識する自装置の負荷量との誤差を補正することにしてもよい。
ここで、転送完了通知は、対象エッジから管理装置101へエッジ装置Eiの差分情報を転送したことを示す通知である。具体的には、例えば、情報管理部902は、対象エッジに差分情報パケットが送信されたタイミング、または、対象エッジから転送完了通知が受信されたタイミングで、第2のプロセス情報管理テーブル140を更新する。
より詳細に説明すると、例えば、情報管理部902は、算出された差分負荷量LDに基づいて、第2のプロセス情報管理テーブル140内の既存プロセスについて、新たな終了時刻を予測する。そして、情報管理部902は、予測した新たな終了時刻により、第2のプロセス情報管理テーブル140内の既存プロセスのプロセス終了予想時刻を更新する。
これにより、対象エッジに差分情報パケットを送信したタイミング、または、対象エッジから転送完了通知を受信したタイミングで、自装置が認識する自装置の負荷量と管理装置101が認識する自装置の負荷量との誤差を補正することができる。
なお、エッジ装置Eiの差分負荷量LDに基づく第2のプロセス情報管理テーブル140内の既存プロセスの新たな終了時刻の予測例については、図13を用いて後述する、管理装置101の補正部1203(図12参照)の予測例と同様のため、図示および説明を省略する。
また、上述した説明では、依頼送信部906は、対象エッジ管理テーブル110を参照して、特定した対象エッジに差分情報パケットを送信する場合について説明したが、これに限らない。例えば、依頼送信部906は、エッジ装置E1~Enのうち自装置を除く残余のエッジ装置に差分情報パケットをブロードキャストすることにしてもよい。この場合、エッジ装置Eiを除くいずれかのエッジ装置において、管理装置101に状態通知メッセージを送信する際に、エッジ装置Eiの差分情報パケットがあわせて送信される。
ただし、管理装置101は、同一の差分情報パケットが複数回送信されてきても補正が重複しないように、差分情報IDを用いて差分情報パケットを管理する。また、他のエッジ装置Ejが、エッジ装置Eiの差分情報パケットを含めた状態通知メッセージを送信したことに応じて、当該差分情報パケットの転送完了通知をブロードキャストすることにしてもよい。これにより、同一の差分情報パケットの管理装置101への重複送信を防ぐことができる。
(プロセスの終了時刻の予測)
つぎに、図10を用いて、プロセスの処理量(Wproc)と起動時刻とに基づいて、プロセスの終了時刻を予測する具体的な処理内容について説明する。以下の説明において、プロセスA,Bは、処理量(Wproc)が閾値α以上のプロセスである。
図10は、プロセスの終了時刻の予測を説明するための図である。図10の(10-1)に示すように、エッジ装置Eiにおいて、時刻「0」に、処理量(Wproc)が「Wproc=150」のプロセスA(新規プロセス)が起動された場合を想定する。また、エッジ装置Eiの処理能力を「10」とする。
この場合、情報管理部902は、1つのプロセスAの処理量「150」を処理能力「10」で処理するため、プロセスAの終了時刻「15」(=処理量/処理能力)を予測する。すなわち、情報管理部902は、起動時刻を現在時刻とした場合、プロセスAが現在時刻から時刻「15」を経過すると離脱すると予測する。なお、時刻の単位は特に限定されず、例えば、時間、分、秒などいずれでもよい。
つぎに、図10の(10-2)に示すように、プロセスAが起動された時刻「0」から時刻「5」が経過した現在時刻に、処理量(Wproc)が「Wproc=200」のプロセスB(新規プロセス)が起動された場合を想定する。
この場合、情報管理部902は、プロセスAの残りの処理量を算出する。具体的には、処理能力「10」の全てを使用して、1つのプロセスAを処理した期間は、時刻「0」から時刻「5」である。このため、まず、情報管理部902は、時刻「0」から時刻「5」までに処理した処理量「50(=(処理能力/現在時刻までのプロセス数)×(現在時刻-プロセスAの起動時刻))」を算出する。そして、情報管理部902は、プロセスAの残りの処理量「100(=処理量「150」-処理量「50」)」を算出する。
一方、エッジ装置Eiにおいて、プロセスBが起動されると、時刻「5」以後は2つのプロセスA,Bを処理するために処理能力「10」の全てが使用される。例えば、エッジ装置Eiは、プロセスAとプロセスBのそれぞれを処理能力「5(=処理能力/プロセス数)」で処理する。
このため、情報管理部902は、プロセスAの残りの処理量「100」を処理能力「5」で処理するための処理時間「20(=処理量/処理能力)」を算出する。そして、情報管理部902は、現在時刻「5」であるため、プロセスAの新たな終了時刻「25(=現在時刻+処理時間)」を予測する。
なお、プロセスの新たな終了時刻が予測されると、例えば、第2のプロセス情報管理テーブル140内の当該プロセスのプロセス終了予想時刻が更新される。
また、プロセスBはまだ処理されていないため、情報管理部902は、プロセスBの残りの処理量「200」を処理能力「5」で処理するための処理時間「40(=処理量/処理能力)」を算出する。そして、情報管理部902は、現在時刻「5」であるため、プロセスBの終了時刻「45(=現在時刻+処理時間)」を予測する。
つぎに、図10の(10-3)に示すように、現在時刻がプロセスAの終了時刻「25」を経過すると、プロセスAが終了して離脱する。エッジ装置Eiは、時刻「25」以前は2つのプロセスA,Bを処理するために処理能力「5」を使用している。ここで、プロセスBの起動時刻から現在時刻までは経過時間「20(=時刻「25」-時刻「5」)」である。
このため、情報管理部902は、時刻「5」から時刻「25」までに処理した処理量「100(=(処理能力/現在時刻までのプロセス数)×(現在時刻-プロセスBの起動時刻))」を算出する。そして、情報管理部902は、プロセスBの残りの処理量「100(=処理量「200」-処理量「100」)」を算出する。
一方、エッジ装置Eiにおいて、プロセスAが離脱(終了)すると、時刻「25」以後は1つのプロセスBを処理するために処理能力「10」の全てが使用される。すなわち、エッジ装置Eiは、プロセスBを処理能力「10(=処理能力/新たなプロセス数)」で処理する。
このため、情報管理部902は、プロセスBの残りの処理量「100」を処理能力「10」で処理するための処理時間「10(=処理量/処理能力)」を算出する。そして、情報管理部902は、現在時刻「25」であるため、プロセスBの新たな終了時刻「35(=現在時刻+処理時間)」を予測する。
(負荷差分量LDの算出)
つぎに、図11を用いて、負荷差分量LDを算出する具体的な処理内容について説明する。ここでは、エッジ装置Eiとして「エッジ装置E1」を例に挙げて説明する。
図11は、負荷差分量LDの算出例を示す説明図である。図11の例では、第1のプロセス情報管理テーブル130に、第1のプロセス情報1100-1~1100-3が記憶されている場合を想定する。また、第2のプロセス情報管理テーブル140に、第2のプロセス情報1100-1が記憶されている場合を想定する。
また、第1のプロセス情報1100-1,1100-3が示すプロセスpa,pcを、処理量(Wproc)が閾値α以上のプロセスとする。第1のプロセス情報1100-2が示すプロセスpbを、処理量(Wproc)が閾値α未満のプロセスとする。また、現在時刻、すなわち、新規プロセス(プロセスpc)が起動された時刻を、「2017-06-26 11:24:00」とする。
この場合、まず、差分算出部905は、第1のプロセス情報管理テーブル130を参照して、全エントリのプロセスIDおよび処理量(Wproc_k)を取得する。つぎに、差分算出部905は、取得したプロセスIDに対応するプログラムIDを特定する。そして、差分算出部905は、処理量管理テーブル120を参照して、特定したプログラムIDに対応する処理量(Wproc)を特定する。
ここでは、プロセスID「pa,pc」に対応するプログラムIDを「PG#」とし、プログラムID「PG#」に対応する処理量(Wproc)を「Wproc=20」とする。また、プロセスID「pb」に対応するプログラムIDを「PG$」とし、プログラムID「PG$」に対応する処理量(Wproc)を「Wproc=5」とする。
つぎに、差分算出部905は、第1のプロセス情報管理テーブル130を参照して、下記式(2)を用いて、全エントリの(Wproc-Wproc_k)の和を求めることにより、エッジ装置E1の残負荷総量L1を算出する。残負荷総量L1は、エッジ装置Eiが認識する自装置の負荷量であり、エッジ装置E1で処理しないといけないと見込まれる残負荷の総量である。また、(Wproc-Wproc_k)は、エッジ装置Eiで実行中のプロセスが終了するまでの残りの処理量をあらわす。
L1=Σ(Wproc-Wproc_k) ・・・(2)
ただし、負になるエントリの分は「0」とする。また、登録されたばかりの最新エントリは除く。図11の例では、残負荷総量L1は、「13(=(20-10)+(5-2))」となる。
つぎに、差分算出部905は、第2のプロセス情報管理テーブル140を参照して、下記式(3)を用いて、全エントリの(プロセス終了予想時刻-現在時刻)の和を求めることにより、エッジ装置E1の残負荷総量L2を算出する。残負荷総量L2は、管理装置101が認識するエッジ装置E1の負荷量であり、クラウド側から見たエッジ装置E1の残負荷の総量である。
L2=Σ(プロセス終了予想時刻-現在時刻) ・・・(3)
図11の例では、残負荷総量L2は、「8(=(2017-06-26 11:24:08)-(2017-06-26 11:24:00))」となる。
そして、差分算出部905は、算出した残負荷総量L1,L2に基づいて、負荷差分量LDを算出する。具体的には、例えば、差分算出部905は、残負荷総量L1から残負荷総量L2を減算することにより、負荷差分量LDを算出する。図11の例では、負荷差分量LDは、「5(=13-8)」となる。この負荷差分量LD「5」は、管理装置101に起動が通知されなかったプロセスpbの分に相当する。
これにより、エッジ装置E1は、処理量(Wproc)が閾値α未満であるプロセスの起動を通知しなかったことにより生じた管理装置101との差分を計算することができる。
(管理装置101の機能的構成例)
図12は、管理装置101の機能的構成例を示すブロック図である。図12において、管理装置101は、通知受信部1201と、状態管理部1202と、補正部1203と、情報通知部1204と、決定部1205と、を含む。通知受信部1201~決定部1205は制御部となる機能であり、具体的には、例えば、管理装置101のメモリ、ディスクなどの記憶装置に記憶されたプログラムをCPUに実行させることにより、または、I/Fにより、その機能を実現する(例えば、図3参照)。各機能部の処理結果は、例えば、メモリ、ディスクなどの記憶装置に記憶される。
通知受信部1201は、エッジ装置Eiからの状態通知メッセージを受信する。ここで、状態通知メッセージは、処理量(Wproc)が閾値α以上である新規プロセスの起動を通知するものであり、新規プロセスの処理量(Wproc)と起動時刻とを含む。状態通知メッセージには、新規プロセスのプロセスIDが含まれていてもよい。
状態管理部1202は、エッジ装置Eiの状態を管理する。具体的には、例えば、状態管理部1202は、エッジ装置Eiからの状態通知メッセージが受信されると、第2のプロセス情報管理テーブル(管理用)160に、新規プロセスについての第2のプロセス情報を登録する。
より詳細に説明すると、状態管理部1202は、例えば、状態通知メッセージに含まれる新規プロセスの処理量(Wproc)と起動時刻とに基づいて、新規プロセスの終了時刻を予測する。この際、状態管理部1202は、エッジ装置Eiの処理能力をさらに考慮して、新規プロセスの終了時刻を予測することにしてもよい。
そして、状態管理部1202は、エッジ装置EiのエッジIDと、新規プロセスの起動時刻と、予測した終了時刻とを対応付けて、第2のプロセス情報管理テーブル(管理用)160に記憶する。この際、状態管理部1202は、新規プロセスの処理量(Wproc)やプロセスIDをあわせて記憶することにしてもよい。これにより、新たな第2のプロセス情報が第2のプロセス情報管理テーブル(管理用)160にレコードとして記憶される。
また、状態管理部1202は、エッジ装置Eiの既存プロセスの終了を検出すると、エッジ装置Eiの残りの既存プロセスについて、新たな終了時刻を予測する。そして、状態管理部1202は、新たな終了時刻を予測した残りの既存プロセスについて、第2のプロセス情報管理テーブル(管理用)160内のプロセス終了予想時刻を更新する。
なお、エッジ装置Eiの既存プロセスの終了は、例えば、第2のプロセス情報管理テーブル(管理用)160内のプロセス終了予想時刻をもとに検出される。具体的には、例えば、状態管理部1202は、第2のプロセス情報管理テーブル(管理用)160を参照して、エッジ装置Eiのいずれかの既存プロセスのプロセス終了予想時刻が経過したことに応じて、当該既存プロセスの終了を検出する。
なお、プロセスの終了時刻を予測する具体的な処理内容については、図10を用いて説明したエッジ装置Eiの情報管理部902の処理内容と同様のため、詳細な説明を省略する。
補正部1203は、他のエッジ装置Ejから、エッジ装置Eiの差分情報を含む状態通知メッセージを受信した場合、当該差分情報に基づいて、エッジ装置Eiの負荷状態を補正する。また、補正部1203は、エッジ装置Eiから、エッジ装置Eiの差分情報を含む状態通知メッセージを受信した場合、当該差分情報に基づいて、エッジ装置Eiの負荷状態を補正する。ここで、差分情報には、例えば、エッジID、差分情報ID、差分情報送信日時および負荷差分量が含まれる。
エッジIDは、エッジ装置EiのエッジIDである。差分情報IDは、差分情報を一意に識別する識別子である。差分情報送信日時は、エッジ装置Eiが他のエッジ装置Ejに対して差分情報の転送依頼を送信した日時(年月日時分秒)である。負荷差分量は、エッジ装置Eiの負荷差分量LDを示す。
具体的には、例えば、補正部1203は、差分情報に含まれるエッジ装置Eiの負荷差分量LDに基づいて、エッジ装置Eiで起動された既存プロセスの新たな終了時刻を予測する。そして、補正部1203は、予測した新たな終了時刻を用いて、第2のプロセス情報管理テーブル(管理用)160内のプロセス終了予想時刻を更新する。
なお、エッジ装置Eiの負荷差分量LDに基づく既存プロセスの新たな終了時刻の予測例については、図13を用いて後述する。
情報通知部1204は、エッジ装置Eiの差分情報を含む状態通知メッセージを受信した場合、または、補正部1203によってエッジ装置Eiの負荷状態の補正が完了した場合、エッジ装置Eiに更新完了通知を送信することにしてもよい。更新完了通知は、エッジ装置Eiの負荷状態の補正が完了したことを示す通知である。
なお、更新完了通知の送信先は、エッジ装置Eiの差分情報を含む状態通知メッセージの送信元である他のエッジ装置Ejであってもよい。この場合、他のエッジ装置Ejは、管理装置101からエッジ装置Eiの負荷状態の補正が完了したことを示す更新完了通知を受信すると、当該更新完了通知をエッジ装置Eiに転送する。
決定部1205は、通知受信部1201によってエッジ装置E1~Enそれぞれの状態通知メッセージが受信された頻度に基づいて、エッジ装置E1~Enの中から対象エッジを決定する。対象エッジは、エッジ装置Eiの負荷状態に関する差分情報の管理装置101への転送を依頼する依頼先のエッジ装置である。具体的には、例えば、決定部1205は、エッジ装置E1~Enについて、直近の一定期間内に状態通知メッセージを受信した回数を計数する。そして、決定部1205は、計数した回数が多い上位N個(例えば、N=3)のエッジ装置を対象エッジに決定する。
なお、エッジ装置Eiからの状態通知メッセージが受信された日時を特定する情報は、例えば、エッジ装置EiのエッジIDと対応付けて、メモリ、ディスクなどの記憶装置に記憶されている。また、一定期間は、任意に設定可能である。
これにより、直近の一定期間内における状態通知メッセージの送信頻度が高い上位N個のエッジ装置を対象エッジに決定することができる。また、決定部1205は、エッジ装置E1~Enのうち、状態通知メッセージを最後に受信したエッジ装置を対象エッジに決定することにしてもよい。
対象エッジを決定するタイミングは、例えば、エッジ装置E1~Enのうちのいずれかのエッジ装置Eiから状態通知メッセージを受信したときであってもよく、また、予め決められたタイミング(例えば、1時間ごと、1日ごとなど)であってもよい。
情報通知部1204は、決定部1205によって決定された対象エッジを特定する情報を、エッジ装置E1~Enに送信する。例えば、直近の一定期間内に状態通知メッセージを受信した回数が多い上位3個のエッジ装置が対象エッジに決定されたとする。この場合、情報通知部1204は、1位~3位の各順位の対象エッジを特定する情報を含む対象エッジ更新要求を、エッジ装置E1~Enに通知する。各エッジ装置Eiは、管理装置101から対象エッジ更新要求を受信すると、受信した対象エッジ更新要求に基づいて、対象エッジ管理テーブル110を更新する。
(既存プロセスの新たな終了時刻の予測例)
つぎに、図13を用いて、エッジ装置Eiの負荷差分量LDに基づく既存プロセスの新たな終了時刻の予測例について説明する。
図13は、第2のプロセス情報管理テーブル(管理用)160の更新例を示す説明図である。図13において、第2のプロセス情報管理テーブル(管理用)160は、エッジID、プロセス起動時刻およびプロセス終了予想時刻のフィールドを有し、各フィールドに情報を設定することで、第2のプロセス情報(例えば、第2のプロセス情報1300-1~1300-3)をレコードとして記憶する。
ここで、エッジIDは、エッジ装置Eiを一意に識別する識別子である。プロセス起動時刻は、エッジ装置Eiでプロセスが起動した日時(年月日時分秒)を示す。プロセス終了予想時刻は、エッジ装置Eiでプロセスが終了する予想日時(年月日時分秒)を示す。
以下、エッジ装置Eiとして「エッジ装置E1」を例に挙げて、エッジ装置E1で起動された既存プロセスの新たな終了時刻の予測例について説明する。ここでは、エッジ装置E1の差分情報に含まれるエッジ装置E1の負荷差分量LDを「LD=20」とする。
この場合、まず、補正部1203は、(13-1)の第2のプロセス情報管理テーブル(管理用)160から、差分情報に含まれるエッジID「E1」に対応するエントリを抽出する。そして、補正部1203は、例えば、下記式(4)を用いて、抽出した各エントリの新プロセス終了予想時刻ETnewを算出する。
ETnew=ET+(LD/p) ・・・(4)
ただし、ETnewは、既存プロセスの新たな終了時刻である。ETは、既存プロセスの現在の終了時刻(現プロセス終了予想時刻)である。LDは、負荷差分量である。pは、エッジ装置Eiで動作しているプロセスの数である。pは、抽出されたエントリ数に相当する。
図13の例では、エッジID「E1」に対応するエントリとして、第2のプロセス情報1300-1,1300-2が抽出される。このため、エッジ装置Eiで動作しているプロセスの数pは「p=2」である。この場合、補正部1203は、上記式(4)を用いて、第2のプロセス情報1300-1の新プロセス終了予想時刻ETnewを算出する。また、補正部1203は、上記式(4)を用いて、第2のプロセス情報1300-2の新プロセス終了予想時刻ETnewを算出する。
第2のプロセス情報1300-1の新プロセス終了予想時刻ETnewは、『ETnew=(2017-06-26 11:36:13)+(20/2)=2017-06-26 11:36:23』となる。
また、第2のプロセス情報1300-2の新プロセス終了予想時刻ETnewは、『ETnew=(2017-06-26 11:36:30)+(20/2)=2017-06-26 11:36:40』となる。
そして、補正部1203は、(13-2)に示すように、算出した新プロセス終了予想時刻ETnewにより、第2のプロセス情報管理テーブル(管理用)160内の第2のプロセス情報1300-1,1300-2のプロセス終了予想時刻を更新する。
(対象エッジの変更)
上述したように、エッジ装置Eiは、自装置の負荷差分量LDを示す差分情報の管理装置101への転送依頼(差分情報パケット)を、自装置よりも管理装置101への状態通知メッセージの送信頻度が高い対象エッジに送信する。しかし、対象エッジにおいて、処理量(Wproc)が閾値α以上のプロセスがすぐには起動されない場合がある。この場合、エッジ装置Eiの差分情報の管理装置101への転送が遅れるおそれがある。
そこで、対象エッジにおいて、エッジ装置Eiから差分情報パケットを受信したから一定時間t経過しても、処理量(Wproc)が閾値α以上のプロセスが起動されない場合、エッジ装置Eiに対して差分情報の再転送依頼を送信することにしてもよい。差分情報の再転送依頼とは、管理装置101への差分情報の転送依頼を、自エッジとは異なる他の対象エッジに送信するよう依頼するものである。一定時間tは、任意に設定可能である。例えば、一定時間tは、エッジ装置E1~Enにおける処理量(Wproc)が閾値α未満のプロセスの過去の発生間隔をもとに設定される。
ここで、図14を用いて、対象エッジを変更する際の動作例について説明する。
図14は、対象エッジを変更する際の動作例を示す説明図である。図14において、エッジ装置E1を、差分情報パケットの送信元のエッジ装置とする。また、エッジ装置E2を、エッジ装置E1よりも管理装置101への状態通知メッセージの送信頻度が高い順位「1」の対象エッジとする。また、エッジ装置E3を、エッジ装置E1よりも管理装置101への状態通知メッセージの送信頻度が高い順位「2」の対象エッジとする。
(14-1)エッジ装置E1は、差分情報パケットを順位「1」の対象エッジであるエッジ装置E2に送信する。
(14-2)エッジ装置E2は、エッジ装置E1から差分情報パケットを受信すると、当該差分情報パケットを管理装置101へ転送することなく、当該差分情報パケットを受信してから一定時間t経過したか否かを判断する。
(14-3)エッジ装置E2は、管理装置101へ差分情報パケットを転送することなく、当該差分情報パケットを受信してから一定時間t経過した場合、エッジ装置E1に対して差分情報の再転送依頼を送信する。なお、エッジ装置E2は、変更後の対象エッジを指定することにしてもよい。具体的には、例えば、エッジ装置E2は、対象エッジ管理テーブル110を参照して、自装置を除く順位が最も高いエッジ装置を対象エッジとして指定する。
(14-4)エッジ装置E1は、エッジ装置E2から差分情報の再転送依頼を受信すると、対象エッジを、順位「2」のエッジ装置E3に更新する。具体的には、例えば、エッジ装置E1は、対象エッジ管理テーブル110内の順位「1」の対象エッジと順位「2」の対象エッジとを入れ替える。なお、変更後の対象エッジは、例えば、エッジ装置E2から指定されることにしてもよい。
(14-5)エッジ装置E1は、差分情報パケットを更新後の対象エッジであるエッジ装置E3に送信する。
(14-6)エッジ装置E3は、エッジ装置E1から差分情報パケットを受信すると、管理装置101に状態通知メッセージを送信する際に、当該状態通知メッセージに、エッジ装置E1からの差分情報を含めて送信する。
このように、対象エッジであるエッジ装置E2において、エッジ装置E1からの差分情報パケットを受信してから一定時間t経過しても、管理装置101への状態通知メッセージが送信されなかった場合には、対象エッジを変更することができる。これにより、エッジ装置E1の差分情報の管理装置101への転送が遅れるのを防いで、エッジ装置E1の負荷状態に関する誤差を抑制することができる。
(エッジ装置Eiの通知処理手順)
つぎに、図15および図16を用いて、エッジ装置Eiの通知処理手順について説明する。
図15および図16は、エッジ装置Eiの通知処理手順の一例を示すフローチャートである。図15のフローチャートにおいて、まず、エッジ装置Eiは、新規プロセスが起動したか否かを判断する(ステップS1501)。ここで、新規プロセスが起動していない場合(ステップS1501:No)、エッジ装置Eiは、既存プロセスが終了したか否かを判断する(ステップS1502)。
ここで、既存プロセスが終了していない場合(ステップS1502:No)、エッジ装置Eiは、ステップS1501に戻る。一方、既存プロセスが終了した場合(ステップS1502:Yes)、エッジ装置Eiは、第1のプロセス情報管理テーブル130を更新して(ステップS1503)、本フローチャートによる一連の処理を終了する。
なお、ステップS1503では、エッジ装置Eiは、例えば、第1のプロセス情報管理テーブル130の各既存プロセスの第1のプロセス情報を更新したり、終了した既存プロセスの第1のプロセス情報を削除したりする。この際、エッジ装置Eiは、処理量管理テーブル120内の終了した既存プロセスの処理量(Wproc)を更新することにしてもよい。
また、ステップS1501において、新規プロセスが起動した場合(ステップS1501:Yes)、エッジ装置Eiは、図16に示すステップS1601に移行する。
図16のフローチャートにおいて、まず、エッジ装置Eiは、第1のプロセス情報管理テーブル130を更新する(ステップS1601)。具体的には、例えば、エッジ装置Eiは、第1のプロセス情報管理テーブル130に新規プロセスの第1のプロセス情報を登録したり、第1のプロセス情報管理テーブル130内の既存プロセスの第1のプロセス情報を更新したりする。
つぎに、エッジ装置Eiは、負荷差分量LDを算出する負荷差分量算出処理を実行する(ステップS1602)。負荷差分量算出処理の具体的な処理手順については、図17を用いて後述する。つぎに、エッジ装置Eiは、新規プロセスの処理量(Wproc)が閾値α以上であるか否かを判断する(ステップS1603)。
ここで、新規プロセスの処理量(Wproc)が閾値α以上の場合(ステップS1603:Yes)、エッジ装置Eiは、転送依頼差分情報テーブル150から転送依頼された差分情報(転送依頼差分情報)を読み出す(ステップS1604)。そして、エッジ装置Eiは、状態通知メッセージに、読み出した差分情報を含めて管理装置101に送信する(ステップS1605)。状態通知メッセージには、例えば、ステップS1602において算出された、エッジ装置Eiの負荷差分量LDを示す差分情報が含まれる。
つぎに、エッジ装置Eiは、管理装置101から更新完了通知を受信すると(ステップS1606)、第2のプロセス情報管理テーブル140を更新する(ステップS1607)。具体的には、例えば、エッジ装置Eiは、第2のプロセス情報管理テーブル140に新規プロセスの第2のプロセス情報を登録したり、第2のプロセス情報管理テーブル140内の既存プロセスの第2のプロセス情報を更新したりする。
そして、エッジ装置Eiは、転送依頼された差分情報の依頼元である他のエッジ装置Ejに転送完了通知を送信して(ステップS1608)、本フローチャートによる一連の処理を終了する。
また、ステップS1603において、新規プロセスの処理量(Wproc)が閾値α未満の場合(ステップS1603:No)、エッジ装置Eiは、算出した負荷差分量LDが所定値β以上であるか否かを判断する(ステップS1609)。ここで、負荷差分量LDが所定値β未満の場合(ステップS1609:No)、エッジ装置Eiは、本フローチャートによる一連の処理を終了する。
一方、負荷差分量LDが所定値β以上の場合(ステップS1609:Yes)、エッジ装置Eiは、対象エッジ管理テーブル110を参照して、対象エッジを特定する(ステップS1610)。そして、エッジ装置Eiは、特定した対象エッジに、算出した負荷差分量LDを示す差分情報の管理装置101への転送依頼を送信して(ステップS1611)、本フローチャートによる一連の処理を終了する。
これにより、エッジ装置Eiの負荷状態に関する差分情報を、エッジ装置Eiよりも管理装置101への状態通知メッセージの送信頻度が高い対象エッジ(他のエッジ装置Ej)から管理装置101に転送することができる。
なお、エッジ装置Eiは、例えば、ステップS1611の直後、または、ステップS1611の後に対象エッジから転送完了通知を受信すると、第2のプロセス情報管理テーブル140を更新する。具体的には、例えば、エッジ装置Eiは、負荷差分量LDに基づいて、第2のプロセス情報管理テーブル140内の既存プロセスの終了時刻を更新する。
また、図示は省略するが、エッジ装置Eiは、第2のプロセス情報管理テーブル140を参照して、いずれかのエントリのプロセス終了予想時刻を経過したか否かを監視する。そして、エッジ装置Eiは、いずれかのエントリのプロセス終了予想時刻が経過した場合、第2のプロセス情報管理テーブル140から当該エントリを削除し、第2のプロセス情報管理テーブル140内の残りのエントリのプロセス終了予想時刻を更新する。
つぎに、図17を用いて、図16に示したステップS1602の負荷差分量算出処理の具体的な処理手順について説明する。
図17は、負荷差分量算出処理の具体的処理手順の一例を示すフローチャートである。図17のフローチャートにおいて、まず、エッジ装置Eiは、第1のプロセス情報管理テーブル130から、全エントリのプロセスIDおよび処理量(Wproc_k)を取得する(ステップS1701)。
つぎに、エッジ装置Eiは、取得したプロセスIDに対応するプログラムIDを特定する(ステップS1702)。そして、エッジ装置Eiは、処理量管理テーブル120を参照して、特定したプログラムIDに対応する処理量(Wproc)を特定する(ステップS1703)。
つぎに、エッジ装置Eiは、第1のプロセス情報管理テーブル130を参照して、上記式(2)を用いて、全エントリの(Wproc-Wproc_k)の和を求めることにより、エッジ装置Eiの残負荷総量L1を算出する(ステップS1704)。
つぎに、エッジ装置Eiは、第2のプロセス情報管理テーブル140から、全エントリのプロセス終了予想時刻を取得する(ステップS1705)。そして、エッジ装置Eiは、上記式(3)を用いて、全エントリの(プロセス終了予想時刻-現在時刻)の和を求めることにより、エッジ装置Eiの残負荷総量L2を算出する(ステップS1706)。
そして、エッジ装置Eiは、算出した残負荷総量L1から残負荷総量L2を減算することにより、負荷差分量LDを算出して(ステップS1707)、負荷差分量算出処理を呼び出したステップに戻る。
これにより、エッジ装置E1は、処理量(Wproc)が閾値α未満であるプロセスの起動を通知しなかったことにより生じた管理装置101との差分を計算することができる。
(管理装置101の誤差処理手順)
つぎに、図18を用いて、管理装置101の誤差処理手順について説明する。
図18は、管理装置101の誤差処理手順の一例を示すフローチャートである。図18のフローチャートにおいて、まず、管理装置101は、エッジ装置Eiの差分情報を含む状態通知メッセージを他のエッジ装置Ejから受信したか否かを判断する(ステップS1801)。
ここで、管理装置101は、差分情報を含む状態通知メッセージを受信するのを待つ(ステップS1801:No)。そして、差分情報を含む状態通知メッセージを受信した場合(ステップS1801:Yes)、管理装置101は、差分情報に含まれるエッジ装置EiのエッジIDを特定する(ステップS1802)。
つぎに、管理装置101は、第2のプロセス情報管理テーブル(管理用)160から、特定したエッジ装置EiのエッジIDに対応するエントリを抽出する(ステップS1803)。つぎに、管理装置101は、上記式(4)を用いて、差分情報に含まれるエッジ装置Eiの負荷差分量LDに基づいて、抽出した各エントリの新プロセス終了予想時刻ETnewを算出する(ステップS1804)。
そして、管理装置101は、算出した新プロセス終了予想時刻ETnewにより、第2のプロセス情報管理テーブル(管理用)160内の当該各エントリのプロセス終了予想時刻を更新して(ステップS1805)、本フローチャートによる一連の処理を終了する。
これにより、管理装置101に対してエッジ装置Eiがプロセスの起動を通知しなかったことにより生じた負荷状態に関する誤差を補正することができる。
また、図示は省略するが、管理装置101は、第2のプロセス情報管理テーブル(管理用)160を参照して、いずれかのエントリのプロセス終了予想時刻を経過したか否かを監視する。そして、管理装置101は、いずれかのエントリのプロセス終了予想時刻が経過した場合、第2のプロセス情報管理テーブル(管理用)160から当該エントリを削除し、第2のプロセス情報管理テーブル(管理用)160内の残りのエントリのプロセス終了予想時刻を更新する。
以上説明したように、実施の形態にかかる分散処理システム100によれば、エッジ装置Eiは、自装置よりも管理装置101への状態通知メッセージの送信頻度が高い他のエッジ装置Ejに、自装置の負荷状態に関する差分情報の転送依頼を送信することができる。また、他のエッジ装置Ejは、エッジ装置Eiから差分情報の転送依頼を受信した場合、管理装置101に状態通知メッセージを送信する際に、当該状態通知メッセージにエッジ装置Eiの差分情報を含めて送信することができる。また、管理装置101は、他のエッジ装置Ejから、エッジ装置Eiの差分情報を含む状態通知メッセージを受信した場合、当該差分情報に基づいて、エッジ装置Eiの負荷状態を補正することができる。
これにより、エッジ装置Eiの負荷状態に関する差分情報を、エッジ装置Eiよりも管理装置101への状態通知メッセージの送信頻度が高い他のエッジ装置Ejから管理装置101に転送することができる。このため、エッジ装置Eiにおいて、処理量(Wproc)が閾値α以上であるプロセスが発生しなくても、クラウド側(管理装置101)で推定するエッジ装置Eiの負荷状態に関する誤差を補正することができる。
また、エッジ装置Eiは、デバイス102から送出されたデータを受信した場合に、受信したデータの内容に対応するプロセスを起動し、起動したプロセスの処理量(Wproc)が閾値α以上の場合に、起動したプロセスの処理量(Wproc)と起動時刻とを含む状態通知メッセージを管理装置101に送信する。すなわち、エッジ装置Eiは、起動したプロセスの処理量(Wproc)が閾値α未満の場合には、管理装置101に状態通知メッセージを送信しない。
これにより、エッジ装置Eiで起動された処理量(Wproc)が小さいプロセスの起動通知を送らないようにして、エッジ装置/クラウド間で送受信されるメッセージの数を削減することができる。
また、管理装置101は、エッジ装置Eiから状態通知メッセージを受信した場合、受信した状態通知メッセージに含まれるプロセスの処理量(Wproc)と起動時刻とに基づいて、プロセスの終了時刻を予測することができる。
これにより、プロセスの処理量(Wproc)と起動時刻からプロセスの終了時刻が予測可能となるため、エッジ装置Eiで起動されたプロセスの終了通知を省略して、エッジ装置/クラウド間で送受信されるメッセージの数を削減することができる。
また、エッジ装置Eiは、起動したプロセスの処理量(Wproc)が閾値α未満の場合、負荷差分量LDが所定値β以上であるか否かを判断することができる。そして、エッジ装置Eiは、負荷差分量LDが所定値β以上の場合に、負荷差分量LDを示す差分情報の管理装置101への転送依頼を対象エッジに送信することができる。
これにより、負荷差分量LDが所定値β未満の場合は差分情報の転送依頼を行わないようにして、エッジ装置間の通信が頻繁に発生してしまうのを防ぐことができる。
これらのことから、分散処理システム100によれば、エッジ装置/クラウド間でやり取りされるメッセージの数を抑えつつ、クラウド側(管理装置101)で推定するエッジ装置Eiの負荷状態に関する誤差を適切に抑制することができる。
なお、本実施の形態で説明した誤差補正方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本誤差補正プログラムは、ハードディスク、フレキシブルディスク、CD(Compact Disc)-ROM、MO(Magneto-Optical disk)、DVD(Digital Versatile Disk)、USB(Universal Serial Bus)メモリ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本誤差補正プログラムは、インターネット等のネットワークを介して配布してもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)第1のネットワークを介して接続される複数の情報処理装置から、第2のネットワークを介して管理装置へ状態通知メッセージを送信する分散処理システムにおいて、
前記複数の情報処理装置のうちの第1の情報処理装置が、
前記第1の情報処理装置よりも前記管理装置への状態通知メッセージの送信頻度が高い第2の情報処理装置に、前記第1の情報処理装置の負荷状態に関する差分情報を送信し、
前記第2の情報処理装置が、
前記第1の情報処理装置から前記差分情報を受信した場合、前記管理装置に状態通知メッセージを送信する際に、当該状態通知メッセージに前記差分情報を含めて送信し、
前記管理装置が、
前記第2の情報処理装置から前記差分情報を含む状態通知メッセージを受信した場合、前記差分情報に基づいて、前記第1の情報処理装置の負荷状態を補正する、
ことを特徴とする誤差補正方法。
(付記2)前記差分情報は、前記第1の情報処理装置が認識する自装置の負荷量と、前記管理装置が認識する前記第1の情報処理装置の負荷量との差分をあらわす、ことを特徴とする付記1に記載の誤差補正方法。
(付記3)前記複数の情報処理装置のそれぞれの情報処理装置は、
デバイスから送出されたデータを受信した場合に、前記データの内容に対応するプロセスを起動し、
前記プロセスの処理量が閾値以上の場合に、前記プロセスの処理量と起動時刻とを含む状態通知メッセージを前記管理装置に送信し、
前記管理装置は、
前記情報処理装置から前記状態通知メッセージを受信した場合、受信した前記状態通知メッセージに含まれる前記プロセスの処理量と起動時刻とに基づいて、前記プロセスの終了時刻を予測する、ことを特徴とする付記1または2に記載の誤差補正方法。
(付記4)前記第1の情報処理装置は、
前記プロセスの処理量が前記閾値未満の場合、前記第1の情報処理装置が認識する自装置の負荷量と、前記管理装置が認識する前記第1の情報処理装置の負荷量との差分が所定値以上となったか否かを判断し、
前記差分が前記所定値以上となった場合に、前記差分をあらわす差分情報を前記第2の情報処理装置に送信する、
ことを特徴とする付記3に記載の誤差補正方法。
(付記5)前記第1の情報処理装置が認識する自装置の負荷量は、前記第1の情報処理装置で実行中のプロセスが終了するまでの残りの処理量に応じて算出され、
前記管理装置が認識する前記第1の情報処理装置の負荷量は、前記第1の情報処理装置で起動された処理量が閾値以上のプロセスの処理量と起動時刻とに基づき予測される前記プロセスの終了時刻に応じて算出される、
ことを特徴とする付記4に記載の誤差補正方法。
(付記6)前記管理装置は、
前記複数の情報処理装置それぞれの状態通知メッセージを受信した頻度に基づいて、前記複数の情報処理装置の中から、前記第1の情報処理装置の負荷状態に関する差分情報の前記管理装置への転送を依頼する第2の情報処理装置を決定し、
決定した前記第2の情報処理装置を特定する情報を、前記第1の情報処理装置に送信する、ことを特徴とする付記1~5のいずれか一つに記載の誤差補正方法。
(付記7)前記第1のネットワークは、構内通信網であり、
前記第2のネットワークは、広域通信網である、ことを特徴とする付記1~6のいずれか一つに記載の誤差補正方法。
(付記8)第1のネットワークを介して接続される複数の情報処理装置から、第2のネットワークを介して管理装置へ状態通知メッセージを送信する分散処理システムにおいて、
前記複数の情報処理装置のうち、自装置よりも前記管理装置への状態通知メッセージの送信頻度が高い第2の情報処理装置に、自装置の負荷状態に関する差分情報を送信する第1の情報処理装置と、
前記第1の情報処理装置から前記差分情報を受信した場合、前記管理装置に状態通知メッセージを送信する際に、当該状態通知メッセージに前記差分情報を含めて送信する第2の情報処理装置と、を含み、
前記管理装置は、前記第2の情報処理装置から前記差分情報を含む状態通知メッセージを受信した場合、前記差分情報に基づいて、前記第1の情報処理装置の負荷状態を補正する、ことを特徴とする分散処理システム。
(付記9)第1のネットワークを介して接続され、第2のネットワークを介して管理装置へ状態通知メッセージを送信する複数の情報処理装置のうちのいずれかの情報処理装置であって、
前記複数の情報処理装置のうち、自装置よりも前記管理装置への状態通知メッセージの送信頻度が高い他の情報処理装置に、自装置の負荷状態に関する差分情報の前記管理装置への転送要求を送信し、
前記複数の情報処理装置のうちの他の情報処理装置から、当該他の情報処理装置の負荷状態に関する差分情報の前記管理装置への転送要求を受信した場合、前記管理装置に状態通知メッセージを送信する際に、当該状態通知メッセージに前記差分情報を含めて送信する、
制御部を有することを特徴とする情報処理装置。
100 分散処理システム
101 管理装置
102 デバイス
110 対象エッジ管理テーブル
120 処理量管理テーブル
130 第1のプロセス情報管理テーブル
140 第2のプロセス情報管理テーブル
150 転送依頼差分情報テーブル
160 第2のプロセス情報管理テーブル(管理用)
300 バス
301 CPU
302 メモリ
303 I/F
304 ディスクドライブ
305 ディスク
901 データ処理部
902 情報管理部
903 処理量判断部
904 プロセス通知部
905 差分算出部
906 依頼送信部
907 依頼受信部
1201 通知受信部
1202 状態管理部
1203 補正部
1204 情報通知部
1205 決定部

Claims (6)

  1. 第1のネットワークを介して接続される複数の情報処理装置から、第2のネットワークを介して管理装置へ状態通知メッセージを送信する分散処理システムにおいて、
    前記複数の情報処理装置のうちの第1の情報処理装置が、
    前記第1の情報処理装置よりも前記管理装置への状態通知メッセージの送信頻度が高い第2の情報処理装置に、前記第1の情報処理装置の負荷状態に関する差分情報を送信し、
    前記第2の情報処理装置が、
    前記第1の情報処理装置から前記差分情報を受信した場合、前記管理装置に状態通知メッセージを送信する際に、当該状態通知メッセージに前記差分情報を含めて送信し、
    前記管理装置が、
    前記第2の情報処理装置から前記差分情報を含む状態通知メッセージを受信した場合、前記差分情報に基づいて、前記第1の情報処理装置の負荷状態を補正する、
    ことを特徴とする誤差補正方法。
  2. 前記差分情報は、前記第1の情報処理装置が認識する自装置の負荷量と、前記管理装置が認識する前記第1の情報処理装置の負荷量との差分をあらわす、ことを特徴とする請求項1に記載の誤差補正方法。
  3. 前記複数の情報処理装置のそれぞれの情報処理装置は、
    デバイスから送出されたデータを受信した場合に、前記データの内容に対応するプロセスを起動し、
    前記プロセスの処理量が閾値以上の場合に、前記プロセスの処理量と起動時刻とを含む状態通知メッセージを前記管理装置に送信し、
    前記管理装置は、
    前記情報処理装置から前記状態通知メッセージを受信した場合、受信した前記状態通知メッセージに含まれる前記プロセスの処理量と起動時刻とに基づいて、前記プロセスの終了時刻を予測する、ことを特徴とする請求項1または2に記載の誤差補正方法。
  4. 前記第1の情報処理装置は、
    前記プロセスの処理量が前記閾値未満の場合、前記第1の情報処理装置が認識する自装置の負荷量と、前記管理装置が認識する前記第1の情報処理装置の負荷量との差分が所定値以上となったか否かを判断し、
    前記差分が前記所定値以上となった場合に、前記差分をあらわす差分情報を前記第2の情報処理装置に送信する、
    ことを特徴とする請求項3に記載の誤差補正方法。
  5. 第1のネットワークを介して接続される複数の情報処理装置から、第2のネットワークを介して管理装置へ状態通知メッセージを送信する分散処理システムにおいて、
    前記複数の情報処理装置のうち、自装置よりも前記管理装置への状態通知メッセージの送信頻度が高い第2の情報処理装置に、自装置の負荷状態に関する差分情報を送信する第1の情報処理装置と、
    前記第1の情報処理装置から前記差分情報を受信した場合、前記管理装置に状態通知メッセージを送信する際に、当該状態通知メッセージに前記差分情報を含めて送信する第2の情報処理装置と、を含み、
    前記管理装置は、前記第2の情報処理装置から前記差分情報を含む状態通知メッセージを受信した場合、前記差分情報に基づいて、前記第1の情報処理装置の負荷状態を補正する、ことを特徴とする分散処理システム。
  6. 第1のネットワークを介して接続され、第2のネットワークを介して管理装置へ状態通知メッセージを送信する複数の情報処理装置のうちのいずれかの情報処理装置であって、
    前記複数の情報処理装置のうち、自装置よりも前記管理装置への状態通知メッセージの送信頻度が高い他の情報処理装置に、自装置の負荷状態に関する差分情報の前記管理装置への転送要求を送信し、
    前記複数の情報処理装置のうちの他の情報処理装置から、当該他の情報処理装置の負荷状態に関する差分情報の前記管理装置への転送要求を受信した場合、前記管理装置に状態通知メッセージを送信する際に、当該状態通知メッセージに前記差分情報を含めて送信する、
    制御部を有することを特徴とする情報処理装置。
JP2018063510A 2018-03-29 2018-03-29 誤差補正方法、分散処理システムおよび情報処理装置 Active JP7017112B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018063510A JP7017112B2 (ja) 2018-03-29 2018-03-29 誤差補正方法、分散処理システムおよび情報処理装置
US16/293,880 US11055146B2 (en) 2018-03-29 2019-03-06 Distribution process system and distribution process method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018063510A JP7017112B2 (ja) 2018-03-29 2018-03-29 誤差補正方法、分散処理システムおよび情報処理装置

Publications (2)

Publication Number Publication Date
JP2019175204A JP2019175204A (ja) 2019-10-10
JP7017112B2 true JP7017112B2 (ja) 2022-02-08

Family

ID=68054393

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018063510A Active JP7017112B2 (ja) 2018-03-29 2018-03-29 誤差補正方法、分散処理システムおよび情報処理装置

Country Status (2)

Country Link
US (1) US11055146B2 (ja)
JP (1) JP7017112B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7261195B2 (ja) * 2020-03-25 2023-04-19 株式会社日立製作所 サーバ負荷予測システム及びサーバ負荷予測方法
US20220075628A1 (en) * 2020-09-09 2022-03-10 Deka Products Limited Partnership System and Method for Supervising Processes Among Embedded Systems
CN113157625B (zh) * 2021-04-27 2023-12-19 百富计算机技术(深圳)有限公司 数据传输方法、装置、终端设备及计算机可读存储介质
CN115037627B (zh) * 2022-04-29 2024-05-07 阿里云计算有限公司 网络配置信息处理方法、sdn控制器、系统及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005250521A (ja) 2004-03-01 2005-09-15 Mitsubishi Electric Corp データ処理システム及びデータ処理装置及びデータ処理方法
JP2012522320A (ja) 2009-03-31 2012-09-20 マイクロソフト コーポレーション 優先度ベースのシステム負荷レベルを管理するためのシステムおよび方法
JP2014157460A (ja) 2013-02-15 2014-08-28 Sharp Corp コンテンツ発見支援装置、コンテンツ表示システム及びプログラム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09259090A (ja) * 1996-01-17 1997-10-03 Toshiba Corp 分散処理計算機システム
JP2005004676A (ja) 2003-06-16 2005-01-06 Fujitsu Ltd 適応型分散処理システム
JPWO2010107105A1 (ja) 2009-03-19 2012-09-20 日本電気株式会社 ネットワークシステム
US10592379B2 (en) * 2014-11-18 2020-03-17 Comcast Cable Communications Management, Llc Methods and systems for status determination
US20180006951A1 (en) * 2016-07-02 2018-01-04 Intel Corporation Hybrid Computing Resources Fabric Load Balancer

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005250521A (ja) 2004-03-01 2005-09-15 Mitsubishi Electric Corp データ処理システム及びデータ処理装置及びデータ処理方法
JP2012522320A (ja) 2009-03-31 2012-09-20 マイクロソフト コーポレーション 優先度ベースのシステム負荷レベルを管理するためのシステムおよび方法
JP2014157460A (ja) 2013-02-15 2014-08-28 Sharp Corp コンテンツ発見支援装置、コンテンツ表示システム及びプログラム

Also Published As

Publication number Publication date
US11055146B2 (en) 2021-07-06
JP2019175204A (ja) 2019-10-10
US20190303210A1 (en) 2019-10-03

Similar Documents

Publication Publication Date Title
JP7017112B2 (ja) 誤差補正方法、分散処理システムおよび情報処理装置
US10484464B2 (en) Connection control device, connection control system, and non-transitory computer readable medium
US7890632B2 (en) Load balancing using replication delay
US10231102B2 (en) Techniques for mobility-aware dynamic service placement in mobile clouds
EP1825654B1 (en) Routing a service query in an overlay network
JP2018512678A (ja) 時間ベースのノード選出方法及び装置
CN103002005A (zh) 云服务监测系统
US10198212B2 (en) Distributed backup system
US9191330B2 (en) Path selection for network service requests
CN104052678A (zh) 利用反馈请求的源驱动开关探测的方法和系统
US10789101B2 (en) Information processing apparatus, processing distribution method, and storage medium
CN114338695B (zh) 基于多副本的领导者选举方法、装置、设备及存储介质
JP7305990B2 (ja) 転送プログラム、転送方法、および情報処理装置
US20210326224A1 (en) Method and system for processing device failure
US20150237122A1 (en) Peer-to-peer connection system with capability of peer-to-peer connection path routing, path routing method of peer-to-peer connection and computer application program thereof
US9432218B2 (en) Secure message delivery to a transient recipient in a routed network
Zhou et al. TAP: Timeliness‐aware predication‐based replica selection algorithm for key‐value stores
US20140244728A1 (en) Controller, method for controlling, and computer-readable recording medium having stored therein control program
US20180349190A1 (en) Process control program, process control method, information processing device, and communication device
US11233886B2 (en) Storage medium and packet analyzing device
US20160182364A1 (en) Architected data transfer
JP7275758B2 (ja) ゲートウェイ装置、情報通信システム、データ処理方法、およびプログラム
KR101973537B1 (ko) 하둡 분산 파일 시스템에서의 하트비트 교환 주기 관리 장치 및 방법
US20230269170A1 (en) Path setting system, control device, program and path setting method
KR102013027B1 (ko) 피어 신뢰도 계산 방법 및 피어 평가 데이터의 업데이트 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210113

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211208

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20211228

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220110

R150 Certificate of patent or registration of utility model

Ref document number: 7017112

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150