IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社日立製作所の特許一覧

特開2023-117665管理装置、管理方法、および管理プログラム
<>
  • 特開-管理装置、管理方法、および管理プログラム 図1
  • 特開-管理装置、管理方法、および管理プログラム 図2
  • 特開-管理装置、管理方法、および管理プログラム 図3
  • 特開-管理装置、管理方法、および管理プログラム 図4
  • 特開-管理装置、管理方法、および管理プログラム 図5
  • 特開-管理装置、管理方法、および管理プログラム 図6
  • 特開-管理装置、管理方法、および管理プログラム 図7
  • 特開-管理装置、管理方法、および管理プログラム 図8
  • 特開-管理装置、管理方法、および管理プログラム 図9
  • 特開-管理装置、管理方法、および管理プログラム 図10
  • 特開-管理装置、管理方法、および管理プログラム 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023117665
(43)【公開日】2023-08-24
(54)【発明の名称】管理装置、管理方法、および管理プログラム
(51)【国際特許分類】
   G06F 11/20 20060101AFI20230817BHJP
【FI】
G06F11/20 635
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2022020353
(22)【出願日】2022-02-14
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110001678
【氏名又は名称】藤央弁理士法人
(72)【発明者】
【氏名】高田 正法
【テーマコード(参考)】
5B034
【Fターム(参考)】
5B034BB17
5B034CC01
(57)【要約】
【課題】データ取得装置および装置の物理配置を考慮した可用性確保を実現すること。
【解決手段】データ取得装置群からのデータ群を制御する制御装置群を管理する管理装置は、前記データ取得装置群および前記制御装置群の各々の装置の配置位置と前記装置間の前記配置位置に基づく距離とを規定した配置位置情報にアクセス可能であり、前記プロセッサは、前記配置位置情報における前記距離を参照して、前記データ取得装置群の中の特定のデータ取得装置と通信可能な制御装置を前記制御装置群の中から検索する検索処理と、前記検索処理によって検索された制御装置を、前記特定のデータ取得装置の制御を担当する第1制御装置に設定する第1設定処理と、前記制御装置群のうち前記検索処理によって検索された前記第1制御装置とは異なる他の制御装置を、前記第1制御装置の切替先となる第2制御装置に設定する第2設定処理と、を実行する。
【選択図】図1
【特許請求の範囲】
【請求項1】
データ取得装置群からのデータ群を制御する制御装置群を管理する管理装置であって、
プログラムを実行するプロセッサと、前記プログラムを記憶する記憶デバイスと、を有し、
前記データ取得装置群および前記制御装置群の各々の装置の配置位置と前記装置間の前記配置位置に基づく距離とを規定した配置位置情報にアクセス可能であり、
前記プロセッサは、
前記配置位置情報における前記距離を参照して、前記データ取得装置群の中の特定のデータ取得装置と通信可能な制御装置を前記制御装置群の中から検索する検索処理と、
前記検索処理によって検索された制御装置を、前記特定のデータ取得装置の制御を担当する第1制御装置に設定する第1設定処理と、
前記制御装置群のうち前記検索処理によって検索された前記第1制御装置とは異なる他の制御装置を、前記第1制御装置の切替先となる第2制御装置に設定する第2設定処理と、
を実行することを特徴とする管理装置。
【請求項2】
請求項1に記載の管理装置であって、
前記プロセッサは、
前記配置位置情報にアクセス可能であるか否かを判定する判定処理を実行し、
前記検索処理では、前記プロセッサは、前記判定処理によって前記配置位置情報にアクセス可能であると判定された場合、前記配置位置情報における前記距離を参照して、前記特定のデータ取得装置と通信可能な前記制御装置を前記制御装置群の中から検索し、前記判定処理によって前記配置位置情報にアクセス不可能であると判定された場合、前記制御装置の各々に、前記データ取得装置群の中から通信可能なデータ取得装置の存否を検索させる、
ことを特徴とする管理装置。
【請求項3】
請求項1に記載の管理装置であって、
前記プロセッサは、
前記検索処理によって前記第1制御装置が検索されなかった場合、前記第1制御装置が存在しない旨を示す情報を出力する出力処理、
を実行することを特徴とする管理装置。
【請求項4】
請求項1に記載の管理装置であって、
前記プロセッサは、
前記検索処理によって前記第2制御装置が検索されなかった場合、前記第2制御装置が存在しない旨を示す情報を出力する出力処理、
を実行することを特徴とする管理装置。
【請求項5】
請求項1に記載の管理装置であって、
前記第1設定処理では、前記プロセッサは、前記検索処理によって前記特定のデータ取得装置と通信可能な複数の制御装置が検索された場合、前記複数の制御装置のうち前記特定のデータ取得装置との距離が最小となる制御装置を前記第1制御装置に設定し、
前記第2設定処理では、前記プロセッサは、前記複数の制御装置のうち前記第1制御装置以外の他の制御装置を前記第2制御装置に設定する、
ことを特徴とする管理装置。
【請求項6】
請求項5に記載の管理装置であって、
前記プロセッサは、
前記第2制御装置に前記特定のデータ取得装置を制御する機能が実装されていない場合、前記機能を前記第2制御装置に実装する第3設定処理、
を実行することを特徴とする管理装置。
【請求項7】
データ取得装置群からのデータ群を制御する制御装置群を管理する管理装置による管理方法であって、
前記管理装置は、プログラムを実行するプロセッサと、前記プログラムを記憶する記憶デバイスと、を有し、
前記管理装置は、前記データ取得装置群および前記制御装置群の各々の装置の配置位置と前記装置間の前記配置位置に基づく距離とを規定した配置位置情報にアクセス可能であり、
前記プロセッサが、前記配置位置情報における前記距離を参照して、前記データ取得装置群の中の特定のデータ取得装置と通信可能な制御装置を前記制御装置群の中から検索する検索処理と、
前記プロセッサが、前記検索処理によって検索された制御装置を、前記特定のデータ取得装置の制御を担当する第1制御装置に設定する第1設定処理と、
前記プロセッサが、前記制御装置群のうち前記検索処理によって検索された前記第1制御装置とは異なる他の制御装置を、前記第1制御装置の切替先となる第2制御装置に設定する第2設定処理と、
を実行することを特徴とする管理方法。
【請求項8】
データ取得装置群からのデータ群を制御する制御装置群の管理をプロセッサに実行する管理プログラムであって、
前記プロセッサは、前記データ取得装置群および前記制御装置群の各々の装置の配置位置と前記装置間の前記配置位置に基づく距離とを規定した配置位置情報にアクセス可能であり、
前記プロセッサに、
前記配置位置情報における前記距離を参照して、前記データ取得装置群の中の特定のデータ取得装置と通信可能な制御装置を前記制御装置群の中から検索する検索処理と、
前記検索処理によって検索された制御装置を、前記特定のデータ取得装置の制御を担当する第1制御装置に設定する第1設定処理と、
前記制御装置群のうち前記検索処理によって検索された前記第1制御装置とは異なる他の制御装置を、前記第1制御装置の切替先となる第2制御装置に設定する第2設定処理と、
を実行させることを特徴とする管理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、管理対象を管理する管理装置、管理方法、および管理プログラムに関する。
【背景技術】
【0002】
実世界の情報収集、画像解析等の技術による人や人の行動の分析、および、パブリックセーフティ用途やロボットによる支援等に、カメラ等のIoT(Internet of Things)機器を活用するユースケースが登場している。今後、システム規模は拡大する方向で、安価かつ大規模にスケールできるIoT機器制御用IT(Information Technology)インフラが必要になる。
【0003】
一方で、スマートフォンに代表される、組み込み用途向けSoC(System-on-a-Chip)が普及しており、高性能化が進んでいる。このような組み込み用途向けSoCは、価格や電力あたりの性能で優れ、無線等の通信インタフェースも有することから、エッジコンピューティング用途に向いている。
【0004】
下記特許文献1は、複数のノードと、クラスタネットワークと、を備えるクラスタストレージシステムを開示する。このクラスタストレージシステムは、それぞれのノードは、ボリュームを単位としてデータを格納可能であり、複数のノードに格納されている複数のボリュームにより構成されるボリュームグループを複数有し、ノードを、クラスタネットワークを介して同一のボリュームグループのボリュームを同期させるように構成する。ノードは、クラスタネットワークにおける通信が分断された場合に、ボリュームの同期が実行不可能となった分断ボリュームグループに属するいずれか1つのボリュームに対するクライアント装置からのアクセスを実行可能な状態とする。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2019-219954号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
今後、リアルタイム性を求めるアプリケーションの増加が予想されることから、IoT機器と直接通信するエッジ装置をIoT機器との通信が必要な場所に分散配置し、そこでリアルタイム推論処理を行うシステムが普及すると考えられる。
【0007】
ロボット制御等、人に関わる制御には可用性が必要であり、可用性や性能要件を満たしやすいようにエッジ装置が配置される。しかしながら、IoT機器を制御するエッジコンピューティング環境の場合、多数のIoT機器との通信ができるよう、エッジ装置を分散配置する必要があり、IoT機器およびエッジ装置の物理配置を考慮した可用性を確保する必要がある。
【0008】
本発明は、IoT機器およびエッジ装置の物理配置を考慮した可用性確保を実現することを目的とする。
【課題を解決するための手段】
【0009】
本願において開示される発明の一側面となる管理装置は、データ取得装置群からのデータ群を制御する制御装置群を管理する管理装置であって、プログラムを実行するプロセッサと、前記プログラムを記憶する記憶デバイスと、を有し、前記データ取得装置群および前記制御装置群の各々の装置の配置位置と前記装置間の前記配置位置に基づく距離とを規定した配置位置情報にアクセス可能であり、前記プロセッサは、前記配置位置情報における前記距離を参照して、前記データ取得装置群の中の特定のデータ取得装置と通信可能な制御装置を前記制御装置群の中から検索する検索処理と、前記検索処理によって検索された制御装置を、前記特定のデータ取得装置の制御を担当する第1制御装置に設定する第1設定処理と、前記制御装置群のうち前記検索処理によって検索された前記第1制御装置とは異なる他の制御装置を、前記第1制御装置の切替先となる第2制御装置に設定する第2設定処理と、を実行することを特徴とする。
【発明の効果】
【0010】
本発明の代表的な実施の形態によれば、IoT機器およびエッジ装置の物理配置を考慮した可用性確保を実現することができる。前述した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【0011】
図1図1は、エッジコンピューティングシステムのシステム構成例を示す説明図である。
図2図2は、コンピュータのハードウェア構成例を示すブロック図である。
図3図3は、アセットDBの一例を示す説明図である。
図4図4は、アセット情報のツリー構造例を示す説明図である。
図5図5は、管理テーブルの一例を示す説明図である。
図6図6は、管理装置によるフェイルオーバ先設定処理手順例を示すフローチャートである。
図7図7は、管理装置の表示画面の一例を示す説明図である。
図8図8は、管理装置の表示画面の他の例を示す説明図である。
図9図9は、エッジ装置内のデータ冗長化処理手順例を示すフローチャートである。
図10図10は、フェイルオーバ先エッジ装置E#の引継ぎ処理手順例を示すフローチャートである。
図11図11は、エッジ装置E#によるフェイルオーバ先データ読出し処理手順例を示すフローチャートである。
【発明を実施するための形態】
【0012】
<システム構成>
図1は、エッジコンピューティングシステムのシステム構成例を示す説明図である。エッジコンピューティングシステム100は、コア装置101と、管理装置102と、アセットDB103と、エッジ装置E1~E7(エッジ装置E1~E7を区別しない場合は、エッジ装置E#(#は番号))と、IoT機器110と、を有する。
【0013】
コア装置101は、たとえば、データセンタに配置されるようなサーバである。コア装置101は、管理装置102、アセットDB103、エッジ装置E#およびIoT機器110と、インターネット、LAN(Local Area Network)、WAN(Wide Area Network)などの有線または無線のネットワーク120を介して通信可能に接続される。コア装置101は、エッジ装置E#からのデータを収集する。
【0014】
管理装置102は、IoT機器110の切替先のエッジ装置E#を決定するコンピュータであり、エッジ装置E#とコア装置101とを連携動作させるための制御を実行する。管理装置102は、コア装置101、アセットDB103、およびエッジ装置E#とネットワーク120を介して通信可能に接続される。管理装置102の機能は、コア装置101に実装されてもよい。
【0015】
アセットDB103は、アセット情報を管理する配置位置情報であり、ネットワーク120を介して管理装置102からアクセス可能なデータベースである。アセットDB103は、管理装置102内に実装されてもよい。アセット情報とは、エッジ装置E#およびIoT機器110の配置位置を示す情報である。
【0016】
エッジ装置E#は、通信圏内のIoT機器110を制御する。エッジ装置E#は、施設X内に分散配置される。具体的には、たとえば、エッジ装置E1は、施設X内の建物Aの2階廊下に配置されており、エッジ装置E2は、施設X内の建物Aの2階の201号室に配置されている。同様に、エッジ装置E3は、施設X内の建物Aの3階の303号室に配置されており、エッジ装置E4は、施設X内の建物Aの3階廊下に配置されている。エッジ装置E5~E7は、施設X内の建物Bの1階にあるホールに配置されている。エッジ装置E#は、通信圏内に配置されたIoT機器110とWiFiやlocal5Gのような無線ネットワークにより通信可能に接続される。
【0017】
IoT機器110は、配置位置に関する情報を取得するデータ取得機器であり、固定配置でもよく、通信相手のエッジ装置E#の通信圏内で移動可能であってもよい。IoT機器110は、コア装置101により制御される。以下、IoT機器110を具体的に例示する。
【0018】
カメラC1,C2は、建物Aの2階の201号室に設置されたIoT機器110であり、201号室内を撮影する。本例では、カメラC1,C2はともに、エッジ装置E1,E2の通信圏内に配置されている。
【0019】
ライダー(LiDAR)L1は、建物Aの2階の303号室に設置されたIoT機器110であり、物体までの距離や物体の移動方向を検出するIoT機器110である。表示装置S1は、建物Aの2階の303号室に設置されたIoT機器110であり、ディスプレイやプロジェクタのように、映像を表示可能である。本例では、ライダーL1および表示装置S1はともに、エッジ装置E1,E2の通信圏内に配置されている。
【0020】
ドローンD1は、施設X内の建物Bの1階のホール内を飛行するIoT機器110であり、ドローンD1に設けられたカメラによりホール内を撮影する。本例では、ドローンD1は、エッジ装置E5~E7の通信圏内に配置されている。
【0021】
カメラC3は、建物Bの1階のホールに設置されたIoT機器110であり、ホール内を撮影する。本例では、カメラC3は、エッジ装置E5~E7の通信圏内に配置されている。
【0022】
自走ロボットR1は、施設X内の建物Bの1階のホール内を走行するIoT機器110であり、自走ロボットR1に設けられたカメラによるホール内の撮影のほか、映像を表示したり、人と対話したり、人を先導したり、または人に追従したりする。自走ロボットR1は、本例では、エッジ装置E5~E7の通信圏内に配置されている。
【0023】
図1において、IoT機器110と実線矢印で接続されているエッジ装置E#は、当該IoT機器110のフェイルオーバ元の通信機器であり、IoT機器110と点線矢印で接続されているエッジ装置E#は、当該IoT機器110のフェイルオーバ先の通信機器である。たとえば、エッジ装置E1は、カメラC1のフェイルオーバ元の通信機器であるが、エッジ装置E1で障害が発生した場合、カメラC1はフェイルオーバ先であるエッジ装置E2に接続される。
【0024】
なお、図1に示したエッジ装置E#の設置数および配置位置は一例であり、施設X内の図示しない他の場所に配置されたエッジ装置E#があってもよい。また、IoT機器110の種類、台数、および配置位置も一例であり、他の種類のIoT機器110(たとえば、顔や指紋を認証する認証装置)があってもよく、図示しない他の場所に配置されたIoT機器110があってもよい。
【0025】
<コンピュータのハードウェア構成例>
つぎに、図1に示したコンピュータ(コア装置101、管理装置102、エッジ装置E#、およびIoT機器110)のハードウェア構成例について説明する。
【0026】
図2は、コンピュータのハードウェア構成例を示すブロック図である。コンピュータ200は、プロセッサ201と、記憶デバイス202と、入力デバイス203と、出力デバイス204と、通信インタフェース(通信IF)205と、を有する。プロセッサ201、記憶デバイス202、入力デバイス203、出力デバイス204、および通信IF205は、バス206により接続される。プロセッサ201は、コンピュータ200を制御する。記憶デバイス202は、プロセッサ201の作業エリアとなる。また、記憶デバイス202は、各種プログラムやデータを記憶する非一時的なまたは一時的な記録媒体である。記憶デバイス202としては、たとえば、ROM(Read Only Memory)、RAM(Random Access Memory)、HDD(Hard Disk Drive)、フラッシュメモリがある。入力デバイス203は、データを入力する。入力デバイス203としては、たとえば、キーボード、マウス、タッチパネル、テンキー、スキャナ、マイク、センサがある。出力デバイス204は、データを出力する。出力デバイス204としては、たとえば、ディスプレイ、プリンタ、スピーカがある。通信IF205は、ネットワークと接続し、データを送受信する。
【0027】
<アセットテーブル>
図3は、アセットテーブルの一例を示す説明図である。アセットテーブル300は、アセットDB103内に設けられ、フィールドとして、デバイス301と、配置位置302と、を有する。デバイス301は、エッジ装置E#またはIoT機器110を特定する。配置位置302は、デバイス301が配置される位置を特定する。
【0028】
図4は、アセット情報のツリー構造例を示す説明図である。ツリー構造データ400は、アセットDB103内に設けられ、アセットテーブル300の配置位置302の関係をツリー状に構成し、その末端をデバイス301としたデータである。配置位置302間を結ぶ線分はリンクであり、リンクに付与されている数値は、リンクの両端間の距離の大きさを示す距離コストcである。距離コストcが小さいほどリンクの両端間の距離が小さいことを示す。本例では、通信可能な距離コストcの合計を4以下とする。したがって、IoT機器110とエッジ装置E#とを最短経路のリンクで結んだときの距離コストcの合計が4以下であれば、そのIoT機器110はそのエッジ装置E#の通信圏内に配置されていることになる。
【0029】
<管理テーブル>
図5は、管理テーブルの一例を示す説明図である。管理テーブル500は、管理装置102がアクセス可能なテーブルであり、たとえば、管理装置102の記憶デバイス202に実装される。
【0030】
管理テーブル500は、管理装置102がIoT機器110のフェイルオーバ元およびフェイルオーバ先のエッジ装置E#が規定されたテーブルである。具体的には、たとえば、管理テーブル500は、フィールドとして、エッジ装置ID501と、通信対象IoT機器502と、フェイルオーバ先エッジ装置ID503と、を有する。
【0031】
エッジ装置ID501は、あらかじめ設定されており、通信対象IoT機器502およびフェイルオーバ先エッジ装置ID503は、後述する図6の処理で設定される。通信対象IoT機器502およびフェイルオーバ先エッジ装置ID503は、エッジ装置ID501とともにあらかじめ設定されてもよい。
【0032】
エッジ装置ID501は、通信対象IoT機器502のフェイルオーバ元のエッジ装置E#を一意に特定する。フェイルオーバ先エッジ装置ID503は、通信対象IoT機器502のフェイルオーバ先のエッジ装置E#を一意に特定する。
【0033】
通信対象IoT機器502は、エッジ装置ID501で特定されるエッジ装置E#をフェイルオーバ元、フェイルオーバ先エッジ装置ID503で特定されるエッジ装置E#をフェイルオーバ先とするIoT機器110である。すなわち、通信対象IoT機器502は、エッジ装置ID501で特定されるエッジ装置E#およびフェイルオーバ先エッジ装置ID503で特定されるエッジ装置E#の両方の通信圏内に配置される。
【0034】
なお、管理テーブル500は、エッジ装置E#にも実装される。具体的には、たとえば、エッジ装置E#は、管理テーブル500のエントリ511~517のうち、自身のIDがエッジ装置ID501に存在するエントリと、自身のIDがフェイルオーバ先エッジ装置ID503に存在するエントリと、を保持する。
【0035】
たとえば、エッジ装置E1は、エントリ511、512を保持する。エッジ装置E2は、エントリ511、512を保持する。エッジ装置E3は、エントリ513、514を保持する。エッジ装置E4は、エントリ513、514を保持する。エッジ装置E5は、エントリ515、516を保持する。エッジ装置E6は、エントリ516、517を保持する。エッジ装置E7は、エントリ515、517を保持する。
【0036】
<管理装置102によるフェイルオーバ先設定処理>
図6は、管理装置102によるフェイルオーバ先設定処理手順例を示すフローチャートである。図6の実行の契機は、たとえば、管理装置102の起動時、IoT機器110の追加、削除または配置位置302の変更時、または、エッジ装置E#またはIoT機器110に実装されているアプリケーションソフトウェアの追加、変更、または削除があった場合である。
【0037】
管理装置102は、アセットDB103を参照可能であるか否かを判断する(ステップS601)。管理装置102は、通常、アセットDB103を参照可能である(ステップS601:Yes)が、たとえば、アセットDB103のメンテナンス中のようなアクセス不能な場合は、参照不可である(ステップS601:No)。
【0038】
アセットDB103を参照可能である場合(ステップS601:Yes)、管理装置102は、アセットDB103を参照し、IoT機器110ごとに、IoT機器110と通信可能なエッジ装置E#を検索する(ステップS602)。具体的には、たとえば、管理装置102は、ツリー構造データ400を参照して、IoT機器110までの距離コストcの合計が所定のしきい値以下となるエッジ装置E#を、IoT機器110と通信可能なエッジ装置E#として検索する(ステップS602)。
【0039】
たとえば、カメラC1からエッジ装置E1までの距離コストcの合計は「4」であり、通信可能な距離コストcの合計「4」以下となる。同様に、カメラC1からエッジ装置E2までの距離コストcの合計は「2」であり、通信可能な距離コストcの合計「4」以下となる。
【0040】
一方、カメラC1からエッジ装置E3までの距離コストcの合計は「8」であり、通信可能な距離コストcの合計「4」を超える。エッジ装置E4も同様である。また、カメラC1からエッジ装置E5~E7の各々までの距離コストcの合計はそれぞれ「13」であり、通信可能な距離コストcの合計「4」を超える。
【0041】
したがって、管理装置102は、カメラC1と通信可能なエッジ装置E#として、エッジ装置E1,E2を検索する。
【0042】
一方、アセットDB103を参照不可能である場合(ステップS601:No)、管理装置102は、IoT機器110と通信可能なエッジ装置E#を検索する(ステップS603)。具体的には、たとえば、管理装置102は、エッジ装置E#にアクセスして、当該エッジ装置E#にIoT機器110との通信テストを実行させ、テスト結果を管理装置102に返す。管理装置102は、テスト結果が所定の通信品質を充足する場合(たとえば、遅延時間が所定のしきい値以下)、当該エッジ装置E#をテスト相手のIoT機器110と通信可能なエッジ装置E#として検索する。なお、通信テストのテスト結果は、ステップS603の実行前の最新のテスト結果でもよい。このようにして、管理装置102は、通信可能なIoT機器110の存否を各エッジ装置E#に検索させる。
【0043】
ステップS602またはS603のあと、管理装置102は、IoT機器110ごとに、IoT機器110と通信可能なエッジ装置E#があるか否かを判断する(ステップS604)。すなわち、管理装置102は、ステップS602またはS603において、エッジ装置E#が検索できたか否かを判断する。
【0044】
IoT機器110と通信可能なエッジ装置E#がない場合(ステップS604:No)、当該IoT機器110については、管理装置102は、IoT機器110の制御ができない旨、エッジ装置E#の増設または移動が必要な旨を、出力デバイス204に表示可能に出力し(ステップS605)、一連の処理を終了する。
【0045】
図7は、管理装置102の表示画面の一例を示す説明図である。表示画面700には、文字列701と、該当IoT機器702と、エッジ装置推奨追加場所703と、が表示される。文字列701は、制御担当が存在しない旨、すなわち、IoT機器110の制御ができない旨を示す。該当IoT機器702とは、通信可能なエッジ装置E#がないIoT機器110(ステップS604:No)である。エッジ装置推奨追加場所703とは、エッジ装置E#の配置位置302として推奨される場所、すなわち、該当IoT機器110の配置位置302である。
【0046】
図6に戻り、通信可能なエッジ装置E#があるIoT機器110については(ステップS604:Yes)、管理装置102は、当該エッジ装置E#を、当該IoT機器110の制御担当に設定する(ステップS606)。
【0047】
また、通信可能なエッジ装置E#があるIoT機器110が複数存在する場合、アセットDB103と参照可能であれば(ステップS601:Yes)、管理装置102は、IoT機器110と通信可能な複数のエッジ装置E#のうち距離コストcの合計が最小となるエッジ装置E#を、当該IoT機器110の制御担当に設定する。たとえば、カメラC1の場合、通信可能な複数のエッジ装置E#は、エッジ装置E1,E2である。エッジ装置E1との距離コストcの合計は「4」であり、エッジ装置E2との距離コストcの合計は「2」である。したがって、管理装置102は、エッジ装置E2をカメラC1の制御担当に決定する。
【0048】
また、通信可能なエッジ装置E#があるIoT機器110が複数存在する場合、アセットDB103と参照不可能であれば(ステップS601:No)、管理装置102は、通信テストのテスト結果においてIoT機器110と通信品質が最も良いと判断されたエッジ装置E#(たとえば、遅延時間が最小)を制御担当に決定する。
【0049】
この場合、管理装置102は、管理テーブル500のエッジ装置ID501が「E2」のエントリにおいて、通信対象IoT機器502にカメラC1がなければ追加する。
【0050】
そして、管理装置102は、制御担当以外に他に当該IoT機器110と通信可能なエッジ装置E#があるか否かを判断する(ステップS606)。制御担当以外に当該IoT機器110と通信可能な他のエッジ装置E#がない場合(ステップS607:No)、フェイルオーバ先のエッジ装置E#が存在しないことになる。この場合、管理装置102は、エッジ装置E#の可用性が確保できていない旨、可用性確保にはエッジ装置E#の増設または移動必要な旨を、出力デバイス204に表示可能に出力し(ステップS608)、一連の処理を終了する。
【0051】
図8は、管理装置102の表示画面の他の例を示す説明図である。表示画面800には、文字列801と、該当IoT機器802と、エッジ装置推奨追加場所803と、片系動作中エッジ装置804と、が表示される。文字列801は、フェイルオーバ先が存在しない旨、すなわち、エッジ装置E#の可用性が確保できていない旨を示す。該当IoT機器802とは、制御担当のエッジ装置E#の制御対象となる当該IoT機器110(ステップS606)である。
【0052】
エッジ装置推奨追加場所803とは、エッジ装置E#の配置位置302として推奨される場所、すなわち、制御担当のエッジ装置E#の制御対象となる当該IoT機器110(ステップS606)の配置位置302である。片系動作中エッジ装置804は、フェイルオーバ元となる制御担当のエッジ装置E#である。
【0053】
図6に戻り、制御担当以外に当該IoT機器110と通信可能な他のエッジ装置E#がある場合(ステップS607:Yes)、管理装置102は、他のエッジ装置E#をフェイルオーバ先に設定する(ステップS609)。具体的には、たとえば、管理装置102は、管理テーブル500のエッジ装置ID501が制御担当のIDであるエントリにおいて、他のエッジ装置E#のエッジ装置ID501をフェイルオーバ先エッジ装置ID503に追加する。上記の例では、エッジ装置ID501が「E1」でかつ通信対象IoT機器502が「カメラC1」であるエントリ511において、フェイルオーバ先エッジ装置ID503に、他のエッジ装置E2のエッジ装置ID:「E2」が追加される。
【0054】
このあと、管理装置102は、フェイルオーバ先エッジ装置E#に制御担当のエッジ装置E#が通信対象IoT機器502を制御するプログラムが実装されているかを、フェイルオーバ先エッジ装置E#に確認する。フェイルオーバ先エッジ装置E#に制御担当のエッジ装置E#が通信対象IoT機器502を制御するプログラムが実装されていない場合、管理装置102は、当該プログラムをフェイルオーバ先エッジ装置E#に実装する(ステップS610)。
【0055】
なお、管理装置102が当該プログラムを有していない場合、管理装置102は、コア装置101から管理装置102に当該プログラムをデプロイするよう指示してもよく、制御担当のエッジ装置E#からフェイルオーバ先エッジ装置E#に複製してもよい。
【0056】
また、管理装置102は、管理テーブル500に通信対象IoT機器502およびフェイルオーバ先エッジ装置ID503の追加があったエントリについては、追加後のエントリを、エッジ装置ID501およびフェイルオーバ先エッジ装置ID503で特定されるエッジ装置E#に送信する。追加後のエントリを受信したエッジ装置E#は、既存のエントリを追加後のエントリに更新する。
【0057】
<エッジ装置E#内のデータ冗長化>
図9は、エッジ装置E#内のデータ冗長化処理手順例を示すフローチャートである。エッジ装置E#は、通信対象IoT機器502からデータを取得する(ステップS901)。つぎに、エッジ装置E#は、取得したデータを、エッジ装置内ストレージ(記憶デバイス202)に格納する(ステップS902)。
【0058】
エッジ装置E#は、あらかじめ冗長化が必要なデータと必要でないデータとを把握しており、取得したデータが冗長化が不要なデータであれば(ステップS903:No)、一連の処理を終了する。一方、取得したデータが冗長化が必要なデータであれば(ステップS903:Yes)、フェイルオーバ先エッジ装置E#が存在するか否かを、エッジ装置E#が保持する管理テーブル500のエントリを参照して判断する(ステップS904)。
【0059】
フェイルオーバ先エッジ装置E#が存在する場合(ステップS904:Yes)、エッジ装置E#は、ステップS901で取得したデータを、フェイルオーバ先エッジ装置E#に転送する(ステップS905)。これにより、エッジ装置E#で取得した通信対象IoT機器502からのデータが、フェイルオーバ先エッジ装置E#で冗長化データとして保持される。
【0060】
一方、フェイルオーバ先エッジ装置E#が存在しない場合(ステップS904:No)、当該エッジ装置E#は片系動作中であるため、エッジ装置E#は、ステップS901で取得したデータを、コア装置101に転送する(ステップS906)。
【0061】
なお、ステップS904においてフェイルオーバ先が存在する場合(ステップS904:Yes)においても、エッジ装置E#は、フェイルオーバ先エッジ装置E#だけではなく、コア装置101にも、通信対象IoT機器502からのデータを転送する。この場合、冗長化データとしてフェイルオーバ先エッジ装置E#に転送済みであるため、エッジ装置E#は、当該転送後の所定のタイミングでコア装置101に転送すればよい。
【0062】
なお、ステップS905による転送後、エッジ装置E#は、記憶領域の空き容量確保のため、当該データをエッジ装置内ストレージ(記憶デバイス202)から直ちにまたは一定期間経過後に消去してもよく、ラウンドロビンで最古の冗長化データから消去してもよい。
【0063】
また、フェイルオーバ先エッジ装置E#は、冗長化データ用の記憶領域の空き容量が所定容量以下になった場合に、ラウンドロビンで最古の冗長化データから消去してもよい。また、フェイルオーバ先エッジ装置E#は、コア装置101に転送した旨の通知を受信した場合、当該冗長化データを消去してもよい。
【0064】
<フェイルオーバ先エッジ装置E#の引継ぎ処理>
図10は、フェイルオーバ先エッジ装置E#の引継ぎ処理手順例を示すフローチャートである。フェイルオーバ先エッジ装置E#は、通信対象IoT機器502の制御担当のエッジ装置E#に対し繰り返し生存確認を行っており、制御担当のエッジ装置E#の通信不能を検出する(ステップS1001)。
【0065】
つぎに、フェイルオーバ先エッジ装置E#は、自身の管理テーブル500のエントリを参照して、制御担当のエッジ装置E#の通信対象IoT機器502を特定して通信を確立する(ステップS1002)。
【0066】
そして、フェイルオーバ先エッジ装置E#は、通信対象IoT機器502を制御するアプリケーションプログラムを起動する(ステップS1003)。これにより、制御担当のエッジ装置E#からフェイルオーバ先エッジ装置E#への引継ぎが完了する。
【0067】
この場合、フェイルオーバ先エッジ装置E#が通信対象IoT機器502の制御担当になる。たとえば、制御担当であるエッジ装置E1で障害が発生したことにより、カメラC1の制御担当がフェイルオーバ先エッジ装置E2に引き継がれた場合、フェイルオーバ先エッジ装置E2は、自身の管理テーブル500のエントリ512のフェイルオーバ先エッジ装置ID512の「E1」を消去する。この消去は、エントリ512を有するエッジ装置E#および管理装置102に反映される。
【0068】
その後、エッジ装置E1が障害から復旧すると、図6に示した処理が実行され、エントリ512のフェイルオーバ先エッジ装置ID512に「E1」が追加される。
【0069】
<エッジ装置E#によるフェイルオーバ先データ読出し>
図11は、エッジ装置E#によるフェイルオーバ先データ読出し処理手順例を示すフローチャートである。この処理は、たとえば、エッジ装置E#が、フェイルオーバ先エッジ装置E#に転送した冗長化データをフェイルオーバ先エッジ装置E#から読み出したい場合に実行される処理である。
【0070】
なお、エッジ装置E#は、冗長化データと同じデータをステップS902で格納するが、ステップS906でコア装置101への転送後に消去する。このため、エッジ装置E#は、当該データを用いた処理をコア装置101への転送後に実行したい場合、フェイルオーバ先エッジ装置E#から冗長化データを読み出す必要がある。
【0071】
まず、エッジ装置E#は、自身のエッジ装置内ストレージ(記憶デバイス202)に、読出対象データが存在するか否かを判断する(ステップS1101)。読出対象データが存在しない場合(ステップS1102:No)、エッジ装置E#は、読出対象データを転送したコア装置101から、読出対象データを取得する(ステップS1102)。なお、エッジ装置E#は、フェイルオーバ先エッジ装置E#から読出対象データを取得してもよい。
【0072】
一方、読出対象データが存在する場合(ステップS1103:Yes)、エッジ装置E#は、自身のエッジ装置内ストレージ(記憶デバイス202)から読出対象データを取得する(ステップS1103)。これにより、一連の処理が終了する。
【0073】
このように、本実施例によれば、物理配置に制約あるため分散して設置されたエッジ装置E#間で、フェイルオーバやデータ冗長化を実現し、可用性の向上を図ることができる。
【0074】
なお、本発明は前述した実施例に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例及び同等の構成が含まれる。たとえば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに本発明は限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。また、ある実施例の構成に他の実施例の構成を加えてもよい。また、各実施例の構成の一部について、他の構成の追加、削除、または置換をしてもよい。
【0075】
また、前述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、たとえば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサがそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。
【0076】
各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、SSD(Solid State Drive)等の記憶装置、又は、IC(Integrated Circuit)カード、SDカード、DVD(Digital Versatile Disc)の記録媒体に格納することができる。
【0077】
また、制御線や情報線は説明上必要と考えられるものを示しており、実装上必要な全ての制御線や情報線を示しているとは限らない。実際には、ほとんど全ての構成が相互に接続されていると考えてよい。
【符号の説明】
【0078】
100 エッジコンピューティングシステム
101 コア装置
102 管理装置
103 アセットDB
110 IoT機器
120 ネットワーク
201 プロセッサ
202 記憶デバイス
300 アセットテーブル
400 ツリー構造データ
500 管理テーブル
E# エッジ装置
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11