(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-05-10
(45)【発行日】2023-05-18
(54)【発明の名称】システム、システムの制御方法、システムの制御に用いるコンピュータプログラム、及び、その記録媒体
(51)【国際特許分類】
G06F 9/50 20060101AFI20230511BHJP
【FI】
G06F9/50 150D
(21)【出願番号】P 2019123695
(22)【出願日】2019-07-02
【審査請求日】2022-06-30
【早期審査対象出願】
(73)【特許権者】
【識別番号】319000436
【氏名又は名称】ラトナ株式会社
(74)【代理人】
【識別番号】100185878
【氏名又は名称】植田 晋一
(72)【発明者】
【氏名】高橋 智
(72)【発明者】
【氏名】ソバージュ アントワン
(72)【発明者】
【氏名】垣内 洋祐
【審査官】漆原 孝治
(56)【参考文献】
【文献】国際公開第2017/168999(WO,A1)
【文献】特開2006-018600(JP,A)
【文献】特表2014-524096(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/50
(57)【特許請求の範囲】
【請求項1】
オーケストレーション技術により論理的に割り当てたハードウェアリソースを用いてコンテナを動作させる複数の端末を階層的に接続し通信可能に構成して成
り、前記オーケストレーション技術により前記複数の端末にまたがって生成されるコンテナの実行環境の管理が可能なシステムであって、
前記複数の端末のうちの一の端末である親端末は、
前記親端末より下位に配置されて接続された子端末の処理状態を監視し、コンテナにより実現される、処理状態監視部と、
前記子端末上の処理状態が所定の条件を満たす場合に、前記子端末において行われるべき処理の一部又は全体を前記親端末において代替的に実行し、コンテナにより実現される、代替実行処理部と、を備える、システム。
【請求項2】
前記処理状態監視部は、
前記子端末の処理負荷状態を監視する負荷状態監視部を備え、
前記所定の条件は、前記子端末の処理負荷が所定の閾値を超えることである、請求項1に記載のシステム。
【請求項3】
前記処理負荷状態は、前記子端末のハードウェアの稼働率である、請求項2に記載のシステム。
【請求項4】
前記子端末は、さらに、
前記親端末により代替的な処理が実行される場合には、代替実行された処理に関連するコンテナの動作を制御するコンテナ制御部を備える、請求項1に記載のシステム。
【請求項5】
前記子端末は、さらに、
前記親端末による代替的な処理に必要なデータを前記親端末へと送信するデータ送信部を備える、請求項1に記載のシステム。
【請求項6】
前記親端末は、さらに、
前記子端末にて行われるべき処理を前記親端末により代替的に実行することの可否に関する情報を保持する情報保持部を備える、請求項1に記載のシステム。
【請求項7】
前記子端末は、さらに、センサを備え、
前記子端末は、
前記センサから取得される情報を処理するセンサ情報処理部を備える、請求項1に記載のシステム。
【請求項8】
前記子端末は、さらに、作業機器を備え、
前記子端末は、
前記作業機器を制御する作業機器制御部を備える、請求項1に記載のシステム。
【請求項9】
前記親端末は、さらに、第1の基地局を備え、
前記子端末は、さらに、第2の基地局を備え、
前記親端末と前記子端末の間の通信は、前記第1の基地局と前記第2の基地局を介して行われる、請求項1に記載のシステム。
【請求項10】
オーケストレーション技術により論理的に割り当てたハードウェアリソースを用いてコンテナを動作させる複数の端末を階層的に接続し通信可能に構成して成
り、前記オーケストレーション技術により前記複数の端末にまたがって生成されるコンテナの実行環境の管理が可能なシステムの制御方法であって、
前記複数の端末のうちの一の端末である親端末は、
前記親端末より下位に配置されて接続された子端末の処理状態を監視する、処理状態監視ステップと、
前記子端末上の処理状態が所定の条件を満たす場合に、前記子端末において行われるべき処理の一部又は全体を前記親端末において代替的に実行する、代替実行処理ステップと、を実行し、
前記処理状態監視ステップ及び前記代替実行処理ステップを実行するアプリケーションは、前記コンテナにより実現される、システムの制御方法。
【請求項11】
オーケストレーション技術により論理的に割り当てたハードウェアリソースを用いてコンテナを動作させる複数の端末を階層的に接続し通信可能に構成して成
り、前記オーケストレーション技術により前記複数の端末にまたがって生成されるコンテナの実行環境の管理が可能なシステムの制御に用いられるコンピュータプログラムであって、
前記複数の端末のうちの一の端末である親端末に、
前記親端末より下位に配置されて接続された子端末の処理状態を監視する、処理状態監視ステップと、
前記子端末上の処理状態が所定の条件を満たす場合に、前記子端末において行われるべき処理の一部又は全体を前記親端末において代替的に実行する、代替実行処理ステップと、を実行させ、
前記処理状態監視ステップ及び前記代替実行処理ステップを実行するアプリケーションは、前記コンテナにより実現される、コンピュータプログラム。
【請求項12】
オーケストレーション技術により論理的に割り当てたハードウェアリソースを用いてコンテナを動作させる複数の端末を階層的に接続し通信可能に構成して成
り、前記オーケストレーション技術により前記複数の端末にまたがって生成されるコンテナの実行環境の管理が可能なシステムの制御に用いられるコンピュータプログラムを格納した記録媒体であって、
前記複数の端末のうちの一の端末である親端末に、
前記親端末より下位に配置されて接続された子端末の処理状態を監視する、処理状態監視ステップと、
前記子端末上の処理状態が所定の条件を満たす場合に、前記子端末において行われるべき処理の一部又は全体を前記親端末において代替的に実行する、代替実行処理ステップと、を実行させ、
前記処理状態監視ステップ及び前記代替実行処理ステップを実行するアプリケーションは、前記コンテナにより実現される、コンピュータプログラムを格納した記録媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンテナオーケストレーション技術を利用したエッジシステム、エッジシステムの制御方法、エッジシステムの制御に用いるコンピュータプログラム、及び、その記録媒体に関する。
【背景技術】
【0002】
工場や建設現場等のローカル環境において、所定の作業を行う作業機器に関連する情報をセンサにより取得し、取得されたセンサ情報の監視や、センサ情報に基づいた作業機器の制御を、ネットワーク側、すなわちクラウドから行うシステムが知られている。しかしながら、この種のシステムにおいて作業機器やセンサの数が多数となると、センサ情報のデータ量や処理負荷の増大に伴い、ネットワーク負荷の増大、処理時間の遅延の問題が生じる。また、情報セキュリティ等の懸念も存在する。そこで、センサ情報の処理をネットワークの末端(エッジ)であるローカル環境、例えば、工場内などにおいて行うエッジシステムが検討されている。
【0003】
一方、ローカル環境においてセンサ情報の取得や解析などを行う技術が近年注目されており、エッジコンピューティング又はMEC(Mobile Edge Computing)等と呼ばれている。このとき、ローカル環境に配置される機器は、エッジ端末又はMEC等と呼ばれる場合がある。ところで、エッジ端末において、多数の機能を実現しようとすると、ホストPCにインストールされたOS(オペレーションシステム)上において、複数のアプリケーションを動作させることとなる。しかしながら、複数のアプリケーションを同時に動作させる場合には、OSにおけるシステムリソースをアプリケーション間で共有する必要があるため、OS毎にアプリケーションの設計を変更しなければならず、開発負担が大きい。
【0004】
そこで、エッジ端末のOS上で論理的な区間を作り、その区画内で、アプリケーション本体に加えてアプリケーションの動作に必要な環境をまとめたコンテナアプリケーションを展開(デプロイ)する技術が知られている。この技術によれば、OS上のリソースを論理的に分離して複数のコンテナに使用させることができる。そのため、アプリケーションの設計のOS依存性が低減し、システム開発の負担を軽減することができる。このようなコンテナ技術は、OS上にインストールされるコンテナ管理ソフトによって実現される。コンテナ管理ソフトの一例として、Dockerなどがあげられる(例として、特許文献1)。
【0005】
近年、コンテナ技術の進化や、システムの冗長化の要望に伴って、ネットワーク接続、記憶領域、及び、ホストPCの設定が複雑化しており、複数のコンテナアプリケーションをスケジューリングする必要性が高まっている。そこで、これらの設定を自動的に行いコンテナアプリケーションの管理を統合的に行うオーケストレーションツールの開発が進められている。
【0006】
オーケストレーションツールが用いられることにより、複数のコンテナアプリケーションのデプロイ、実行、管理及びスケジューリングなどを容易に行うことができるため、さらにシステム開発の負担が軽減されている。コンテナオーケストレーションツールとしては、Kubernetes、Apache Mesosなどが知られる。
【先行技術文献】
【特許文献】
【0007】
【発明の概要】
【発明が解決しようとする課題】
【0008】
上述の技術的背景の下、工場内等の所定のローカル環境において、作業機器の操作やセンサ情報の解析などのため、複数のエッジ端末を用いてエッジシステムを構成することが検討されている。しかしながら、工場内等のローカル環境においては、コスト等の観点から、必ずしもセンサや作業機器のそれぞれに対して同程度の能力をもった端末を用いることができるとは限らない。その場合、システム全体としての効率性は低下する。
【0009】
また、この種のシステムに対しては、ハードウェア等への依存性の少ないコンテナオーケストレーション技術を用いることが有効と考えられるものの、そのアーキテクチャの設計論は未だ途上である。
【0010】
本発明は、上述の技術的背景に鑑みてなされたものであり、その目的とすることころは、様々な能力の端末により構成される場合であっても、高い処理効率を有するシステムを提供することにある。
【課題を解決するための手段】
【0011】
上述の課題は、以下の構成を有するシステム等により解決することができる。
【0012】
すなわち、本発明の一態様に係るシステムは、オーケストレーション技術により論理的に割り当てたハードウェアリソースを用いてコンテナを動作させる複数の端末を階層的に接続し通信可能に構成して成るシステムであって、前記複数の端末のうちの一の端末である親端末は、前記親端末より下位に配置されて接続された子端末の処理状態を監視する、処理状態監視部と、前記子端末上の処理状態が所定の条件を満たす場合に、前記子端末において行われるべき処理の一部又は全体を前記親端末において代替的に実行する、代替実行処理部と、を備えている。
【発明の効果】
【0013】
本発明の一態様によれば、端末間において処理状態の監視がなされ、所定の条件を満たす場合には処理が代替実行される。そのため、様々な能力の端末から成る場合であっても高い処理効率を有するシステムを提供することができる。
【図面の簡単な説明】
【0014】
【
図1】
図1は、第1実施形態に係るエッジシステムを備える監視システムの構成を示すブロック図である。
【
図2】
図2は、エッジシステムのブロック図である。
【
図3】
図3は、エッジシステムの機能を説明するためのブロック図である。
【
図4】
図4は、MECのハードウェア構成図である。
【
図5】
図5は、MECのソフトウェア構成図である。
【
図6】
図6は、オーケストレーションツールが用いられる場合のMECのソフトウェア構成図である。
【
図9】
図9は、リソース管理処理を示すフローチャートである。
【
図10】
図10は、代替実行先におけるポッドの代替実行処理を示すフローチャートである。
【
図11】
図11は、代替実行元におけるポッドの代替実行処理を示すフローチャートである。
【
図12】
図12は、第2実施形態のエッジシステムのブロック図である。
【
図13】
図13は、エッジシステムの機能を説明するためのブロック図である。
【
図14】
図14は、応用例である第1適用例のエッジシステムの概略構成図である。
【
図15】
図15は、他の応用例である第2適用例のエッジシステムの概略構成図である。
【発明を実施するための形態】
【0015】
以下、図面を参照して、本発明の第1実施形態について説明する。
【0016】
(第1実施形態)
図1は、本発明の実施形態に係るエッジシステムを備える監視システムの構成を示すブロック図である。この図に示されるように、監視システム100において、ローカル環境11に設けられたエッジシステム10は、WAN(Wide Area Network)13に接続され、WAN13を介してターミナル14及び、イメージレジストリ15と通信可能に構成されている。
【0017】
エッジシステム10は、一例として、工場や建設現場などのローカル環境11において、製造工程や建設工程などの監視をするとともに、これらの工程に用いられる作業機器を制御するシステムである。エッジシステム10は、通信や制御などの複数の機能を実現する複合機12により構成され、本実施形態においては、複合機12A~12Dによって構成されている。また、エッジシステム10は、無線通信又は有線通信によりWAN13と接続される。なお、WAN13は、その一部または全部が移動体通信ネットワークにより構成されてもよい。
【0018】
後述のように、複合機12A~12Dは、センサにより取得されたセンサ情報を処理するMECを有する。なお、MECは、エッジ端末の一例であって、コンテナオーケストレーション技術を用いて制御されるコンテナにより、作業機器の制御やセンサ情報の収集などを行う。
【0019】
エッジシステム10においては、親機である第1世代の第1複合機12Aに対して、子機となる第2世代の第2複合機12B、及び、第3複合機12Cが接続され、さらに、第2複合機12Bには孫機である第3世代の第4複合機12Dが接続されている。
【0020】
なお、本実施形態においては、親機、子機、及び、孫機の3世代の複合機12によってエッジシステム10が構成される例を説明するが、任意の世代数の複合機12によってエッジシステム10を構成してもよい。また、エッジシステム10を構成する複合機12の数も任意である。また、以下において、第1複合機12A、第2複合機12B、第3複合機12C、及び、第4複合機12Dについて、構成を区別する必要がない場合には、これらを総称して複合機12と称する。なお、他の構成についても同様であり、同じ構成が複数あり、それらの構成を区別する必要がない場合には、複数の構成を総称して添え字を省略して記載する。
【0021】
また、本実施形態においては、イメージレジストリ15は、WAN13を介してネットワーク上に存在することとしたが、このような構成に限定されない。従って、イメージレジストリ15は、ローカル環境11であるエッジシステム10内に設けられてもよく、例えば、MEC内に配置されてもよい。
【0022】
WAN13には、ターミナル14、及び、イメージレジストリ15が接続される。エッジシステム10、ターミナル14、及び、イメージレジストリ15は、WAN13を介して相互に通信できる。
【0023】
ターミナル14は、ディスプレイ、CPU(Central Processing Unit)及びGPU(Graphics Processing Unit)、メモリ、ネットワークインターフェースなどを備える機器であり、WAN13を介してエッジシステム10と接続され、エッジシステム10から送信される監視結果を表示する。ターミナル14は、例えば、パーソナルコンピュータ、スマートフォン、及び、タブレット端末などの表示部を備える情報端末である。
【0024】
イメージレジストリ15は、一例としては汎用的なデータサーバである。後述のように、エッジシステム10を構成する複合機12の一部であるMECにおいては、コンテナオーケストレーション技術を用いてコンテナが実行されており、イメージレジストリ15には、MECにデプロイされるコンテナのイメージが記憶されている。
【0025】
イメージレジストリ15に記憶されているコンテナのイメージは、WAN13、及び、移動体通信ネットワークを介してエッジシステム10へと送信されて、複合機12のMECにおいてデプロイされる。
【0026】
【0027】
複合機12Aは、センサ情報の取得や管理を行うMEC21Aを有している。
【0028】
MEC21Aは、CPU及びGPU、メモリ、及び、ネットワークインターフェースなどを備える機器であり、記憶されたプログラムを実行可能に構成されている。MEC21Aは、汎用的なコンピュータを用いて構成してもよいし、専用端末であってもよい。
【0029】
MEC21Aには、OS(Operating System)上に、コンテナオーケストレーションを実現するミドルウェアがインストールされている。そして、MEC21Aにおいては、所定の機能を実現するコンテナがデプロイされる。なお、MEC21Aについては、後に、
図4を用いてハードウェアの構成を、
図5を用いてソフトウェアの構成を説明する。
【0030】
MEC21Aは、主に、ローカル環境11内の他の複合機12B~12Dが備える作業機器22B~22Dの制御情報や、センサ23B~23Dにより取得されるセンサ情報などについて監視や機械学習などを行う。MEC21Aは、無線通信又は有線通信を介して、監視結果や機械学習により得られる学習済みモデルなどを、ターミナル14へ送信する。また、後述のように、MEC21Aは、他のMEC21B~21Dの間におけるリソースの分配を行う。
【0031】
複合機12Bは、MEC21Bに加えて、作業機器22B、及び、センサ23Bを備える。作業機器22Bは、ローカル環境11内における製造工程や建設工程の1つまたは複数において用いられる機器であり、例えば、工場におけるロボットアームや建設現場におけるトラック等の中・大型機器から、半導体基板から成るディスプレイモジュール等の小型機器まで様々である。センサ23Bは、作業機器22Bに直接又は間接的に関連する情報を取得する機器であり、例えば、カメラや赤外線センサなどである。センサ23Bは、取得したセンサ情報をMEC21Bに出力する。
【0032】
MEC21Bは、主に、センサ23Bにより取得されるセンサ情報、及び、作業機器22Bの制御情報について解析及び機械学習を行う。MEC21Bは、さらに、自律的に、または、他のMEC21やターミナル14からの指示に応じて作業機器22Bを制御してもよい。そして、MEC21Bは、センサ情報を用いた監視結果や機械学習の成果物である学習済みモデルなどを、第1複合機12Aへと送信する。
【0033】
複合機12Cは、複合機12Bと同様に、MEC21C、作業機器22C、センサ23Cを備え、MEC21Cにおいては、作業機器22Cの制御やセンサ23Cによるセンサ情報の取得などが行われる。なお、複合機12Dも、複合機12B、12Cと同様に構成される。なお、複合機12A~12Dにおいては、複合機12だけでなく、MEC21Aは第1世代の親機、MEC21B、22Cは第2世代の子機、MEC21Dは第3世代の孫機に相当することになり、互いに連携して処理を行う。
【0034】
図3は、エッジシステム10の機能を説明するためのブロック図である。
【0035】
この図に示されるように、エッジシステム10は、点線で示されるローカル環境11において、二点鎖線で示され、MEC21A~21Dにより構成される情報処理系統31を備える。すなわち、情報処理系統31においては、エッジシステム10における具体的なセンサ情報や機械学習に関する学習済みモデルなどの情報処理が行われる。
【0036】
情報処理系統31においては、第1世代のMEC21Aと、第2世代のMEC21B、21Cと、第3世代のMEC21Dとが階層化されて構成される。各世代のMEC21は、それぞれの世代間で協働した情報処理ができるように構成されるとともに、第2世代のMEC21B、21Cのような同世代のMEC21間では相互に協働して情報処理ができるよう可能に構成される。
【0037】
MEC21A~21Dは、基本的なハードウェア構成は同じであるが、同一である必要はなく、処理能力や記憶容量などは異なってもよい。本実施形態においては、MEC21Aは、情報処理能力が高く、記憶容量が大きいものが選択され、MEC21B、21Cは、情報処理能力及び記憶容量が中型のものが選択され、MEC21Dは、情報処理能力及び記憶容量が小型のものが選択される。
【0038】
【0039】
MEC21は、全体を制御するCPU及びGPU等により構成される制御部41と、ROM(Read Only Memory)、RAM(Random Access Memory)、ハードディスク又はストレージ等により構成され、プログラムや各種のデータ等を記憶する記憶部42と、外部機器とのデータの入出力を行う入出力ポート43と、他のMEC21と通信を行う通信部44と、ディスプレイ、LED、又はスピーカ等からなりデータに応じた表示を行う表示部45と、外部からの入力を受け付ける入力部46と、を備える。制御部41、記憶部42、入出力ポート43、通信部44、表示部45、及び、入力部46は、バス接続により互いに通信可能に構成されている。なお、このハードウェア構成は、FPGA等のハードウェア回路により実現してもよい。
【0040】
なお、上述のようにMEC21A~21Dは同一のハードウェア構成となっていない。MEC21Aは、制御部41の情報処理能力が高く、かつ、記憶部42の容量が大きく、MEC21B、22Cは、制御部41の情報処理能力、及び、記憶部42の容量は中程度である。MEC21Dは、制御部41の情報処理能力が低く、かつ、記憶部42の容量が小さい。
【0041】
【0042】
MEC21は、ハードウェア51の上に、オペレーションシステム(OS)52がインストールされている。オペレーションシステム52においては、汎用ミドルウェア53に加えて、コンテナエンジン54、及び、コンテナエンジン54とともに動作するオーケストレーションツール55がインストールされている。
【0043】
MEC21においては、コンテナエンジン54、及び、オーケストレーションツール55によって、コンテナ56のデプロイ及び実行がなされる。コンテナ56には、所定の機能を実現するアプリケーション(APL)57に加えて、コンテナエンジン54の動作仕様に従うミドルウェア(MW)58が含まれる。なお、ミドルウェア58は、ライブラリなどを含んでもよい。
【0044】
ハードウェア51は、
図4に示されたハードウェア構成を備える。これらのハードウェア51のリソースを用いて、MEC21は所定の動作を行うことができる。
【0045】
オペレーションシステム52は、MEC21におけるソフトウェア構成の基本システムである。オペレーションシステム52によって、MEC21の全体の動作が制御される。
【0046】
汎用ミドルウェア53は、一般に、オペレーションシステム52のベンダーなどにより提供される機能ブロックであり、
図4に示された通信部44による通信機能や、表示部45による表示動作、入力部46からの入力制御などの、基本的な動作を実現するための機能ブロックである。
【0047】
コンテナエンジン54は、オペレーションシステム52にインストールされるミドルウェアの1つであって、コンテナ56を動作させるエンジンである。詳細には、コンテナエンジン54は、コンテナ56内のミドルウェア58に含まれる設定ファイルなどに基づいて、ハードウェア51及びオペレーションシステム52のリソースをコンテナ56へ割り当てる。
【0048】
オーケストレーションツール55は、コンテナエンジン54に対してハードウェア51などのリソースの割り当てを行わせる機能ブロックである。オーケストレーションツール55によって、1つ又は複数のコンテナ56がポッド(
図5において不図示)と称される単位にまとめられ、各ポッドが論理的に異なるエリアであるノード(
図5において不図示)にデプロイされる。オーケストレーションツール55による動作の詳細については、後に
図6を用いて説明する。
【0049】
コンテナ56は、所定の機能を実現するアプリケーション57だけでなく、ライブラリなどのミドルウェア58を含む。コンテナ56は、コンテナエンジン54によって割り当てられたハードウェア51及びオペレーションシステム52のリソースを用いて動作する。コンテナエンジン54によるコンテナ56へのリソースの割り当ては、コンテナ56内のミドルウェア58に含まれる設定ファイルなどに基づいて行われる。このように、リソース管理がコンテナエンジン54によって保証されるため、コンテナ56の動作の環境依存性を低下させることができる。
【0050】
図6は、オーケストレーションツール55が用いられる場合のコンテナ56の動作環境となるMEC21の概略構成図である。なお、上述のようにMEC21のハードウェア構成は、それぞれのMEC21A~21Dにおいて異なるため、この図に示されるコンテナ56の数などは一例である。
【0051】
オーケストレーションツール55は、コンテナエンジン54が割り当てるハードウェアリソースを管理する。オーケストレーションツール55により管理される論理的な空間は、クラスタと称される。本実施形態においては、オーケストレーションツール55は、MEC21A~21Dのハードウェアリソースを用いてクラスタを形成する。
【0052】
オーケストレーションツール55は、コンテナ56の実行環境の管理を、ノード61と称される単位で行う。同時に、オーケストレーションツール55によって、ノード61の全体の動作を管理するマスタ62が設けられる。
【0053】
ノード61においては、この図の例においては、2つのポッド611がデプロイされている。ポッド611は、複数のコンテナ56からなる所定のサービスを実現する機能ブロックであり、この図の例では、ポッド611は、2つのコンテナ56を有する。ポッド611は、オーケストレーションツール55によってコンテナ56を管理する単位となる。ノード61内におけるポッド611の全体の動作は、ポッド管理ライブラリ612により制御される。
【0054】
ポッド管理ライブラリ612は、論理的に割り当てられたハードウェアリソースをポッド611(コンテナ56)に使用させるためのコンテナランタイム6121、マスタ62からの制御を受け付けるエージェント6122、及び、ポッド611間やノード61とマスタ62との間などの通信を行うネットワーク(NW)プロキシ6123などを有する。このような構成を備えるポッド管理ライブラリ612によって、ポッド611は、同一のノード61内のポッド611や、他のノード61のポッド611などと相互に通信しながら、ハードウェアリソースを用いて、所定の機能を実現する。
【0055】
マスタ62は、ポッド611のデプロイを行うアプリサーバ621、アプリサーバ621によるコンテナ56のデプロイ状況を管理するマネージャ622、いずれのノード61にコンテナ56を配置するかを決定するスケジューラ623、及び、データの共有を行うデータ共有部624などを含む。なお、マスタ62は、各ノード61における処理負荷が一定となるようにポッド611の削除やデプロイを行うことができるので、高メンテナンス性を実現することができる。
【0056】
図7は、MEC21A~21Dにより構成されるクラスタの概略構成図である。
【0057】
前述のように、MEC21A~21Dには、それぞれにおいて、コンテナエンジン54(
図7において不図示)、及び、オーケストレーションツール55(
図7において不図示)がインストールされている。そのため、MEC21A~21Dのハードウェアリソースを用いて、1つのクラスタが形成される。そして、そのクラスタ内においては、1つのマスタ62と複数のノード61とが構成され、ノード61においては、複数のコンテナ56(
図7において不図示)からなるポッド611が実行される。なお、MEC21Aは第1世代の親機、MEC21B、21Cは第2世代の子機、MEC21Dは第3世代の孫機である。
【0058】
MEC21Aにおいては、マスタ62が設けられるとともに、1つのノード61Aが設けられる。
【0059】
マスタ62においては、オーケストレーションツール55により実現される機能によってリソース管理が行われる。このようなオーケストレーションツール55を用いたリソース管理は、マスタ62による各ポッド611の制御状況などに応じて行われる。なお、一般に、コンテナオーケストレーション技術を用いる場合における複数の端末におけるリソース管理は、オーケストレーション技術を提供するミドルウェアにおいて行われる。しかしながら、ミドルウェアにおけるリソース管理は、端末における実際の処理状態を十分に考慮していない。本実施形態においては、後述するように、管理ポッド6111による監視と代替処理が行われるので、より適切なリソース管理が実現される。
【0060】
ノード61Aにおいては、1つの管理ポッド6111と、所定の機能の実現を行う処理ポッド6112Aとが設けられている。
【0061】
管理ポッド6111は、MEC21A~21Dにおける処理負荷の状況に応じて処理ポッド6112のリソース管理を行う。ここで、処理負荷とは、例えば、各MEC21の制御部(CPU、GPU等)における処理の負荷、記憶部(各種メモリ、ストレージ等)の容量、又は接続されるネットワークの負荷などを含む。管理ポッド6111によるリソース管理は、マスタ62によるオーケストレーション技術を用いたリソース管理とは異なり、MEC21のそれぞれにおいて直接的に観測された情報処理が行われている状況に応じて行われる。なお、MEC21において観測される情報処理が行われている状況は、処理情報としてまとめられる。
【0062】
詳細には、MEC21A以外のMEC21B~21Dには、監視ポッド6113が1つずつ設けられており、管理ポッド6111は、他のMEC21の監視ポッド6113から受信する処理情報に基づいて、ある処理ポッド6112の処理を他の処理ポッド6112に代替的に行わせることで、リソース管理を行う。なお、当該リソース管理については、後に
図9を用いて、詳細に説明する。また、管理ポッド6111が管理を行う対象となるポッドは、同一のMEC21A内に配置されていてもよい。
【0063】
第1処理ポッド6112Aには、MEC21B~21Dにおける複合機12B~12Dにより取得されるセンサ情報の解析や機械学習などの所定の機能を実現するために、所定のコンテナがデプロイされる。
【0064】
MEC21Bにおいては、ハードウェア処理能力が中程度であり、3つのノード61Bが構成され、それぞれのノード61Bにおいて2つずつポッド611がデプロイされるので、MEC21Bにおいては計6つのポッド611がデプロイされる。詳細には、1つのノード61Bにおいては、監視ポッド6113Bと、第1処理ポッド6112Bが設けられ、他の2つのノード61Bにおいては、さらに、第2~第5処理ポッド6112Bが設けられている。
【0065】
監視ポッド6113Bは、自身が設けられるMEC21Bの負荷状態と、MEC21Bにおける第1~第5処理ポッド6112Bの情報処理が行われている状況を示す処理情報とを、MEC21Aの管理ポッド6111へと送信する。監視ポッド6113Bが送信する処理情報については、後に
図8を用いて説明する。
【0066】
MEC21Cにおいては、ハードウェア処理能力が中程度であるが、冗長性を確保するために、MEC21Bよりも少ない2つのノード61Cが構成され、それぞれのノード61Bにおいて、2つずつ処理ポッド6112Bがデプロイされる。そして、1つのノード61Cにおいて監視ポッド6113Bと、第1処理ポッド6112Cが設けられ、その他のノード61Cにおいて、第2、第3処理ポッド6112Cが設けられている。
【0067】
MEC21Dにおいては、ハードウェア処理能力が比較的低いため、1つのノード61Dが構成され、そのノード61Dにおいて、監視ポッド6113Dと、第1処理ポッド6112Dとが設けられている。
【0068】
図8は、管理ポッド6111が監視ポッド6113B~6113Cから受信するMEC21B~21Dの処理情報を示す表である。この表によれば、処理情報は、各MEC21のハードウェアの処理負荷と、第1~第5処理ポッド6112Bの代替可否の状態をあわせて処理情報とにより構成される。
【0069】
例えば、MEC21Bにおいて、第1、第2処理ポッド6112Bは、作業機器22Bの現在または直後の工程に直接影響があるものであるため、自身とは異なるMEC21A、22C、及び、22Dにおいて代替できない(代替不可)と判断される。また、第3~第5処理ポッド6112Bは、センサ23Bにより取得されるセンサ情報の解析や、作業機器22Bの制御に関する機械学習を行うものであるため、親機であるMEC21Aにて代替的に実行可(MEC21Aで代替可)と判断される。
【0070】
なお、図下方に示されるように、MEC21Dに関して、第1処理ポッド6112Dは、「MEC21A,22Bにて代替可」となる。これは、MEC21Dは第3世代であるため、第1世代であるMEC21A、及び、第2世代であるMEC21Bのいずれかにおいて代替的に実行が可能であることを示す。
【0071】
このように、MEC21B~21Dに設けられる監視ポッド6113B~6113Dは、MEC21の処理負荷と、処理ポッド6112についての他のMEC21での代替的な実行の可否を示す情報とを含む処理情報を生成する。そして、MEC21Aの管理ポッド6111は、MEC21B~22Cの監視ポッド6113B~6113Dから送信される処理情報に応じて、MEC21B~21Cにおける処理ポッド6112の他のMEC21での代替的な実行を行うことにより、リソースの配分を行う。
【0072】
図9は、管理ポッド6111が行うリソース管理処理を示すフローチャートである。
【0073】
ステップS91において、管理ポッド6111は、MEC21B~21Dの監視ポッド6113B~6113Dから、MEC21B~21Dの処理情報(
図8)を受信する。そして、管理ポッド6111は、次にステップS92の処理を行う。
【0074】
ステップS92において、管理ポッド6111は、処理情報に基づいて、MEC21B~21Dのうち処理負荷が所定の閾値を超えたMEC21があるか否かを判定する。処理負荷が所定の負荷閾値を超えたMEC21がある場合には(S92:Yes)、管理ポッド6111は、次にステップS93の処理を行う。処理負荷が負荷閾値を超えたMEC21がない場合には(S92:No)、管理ポッド6111は、リソース管理処理を終了する。
【0075】
なお、ステップS92の判定に用いられる負荷閾値は、マスタ62においてコンテナオーケストレーション技術を用いて行われるリソース管理に用いられる基準よりも低いものとする。このようにすることで、MEC21B~21Dの実際の処理負荷に応じたリソース管理を行うことができる。
【0076】
ステップS93において、管理ポッド6111は、処理情報に基づいて、処理負荷が負荷閾値を超えたMEC21において実行されている処理ポッド6112の代替可否の状態を確認する。
【0077】
そして、管理ポッド6111は、処理ポッド6112のうち、他のMEC21において代替的に実行可能な処理ポッド6112があるか否かを判定する。他のMEC21において代替的に実行可能な処理ポッド6112がある場合には(S93:Yes)、管理ポッド6111は、次にステップS94の処理を行う。全ての処理ポッド6112が「代替不可」であり、他のMEC21において代替的に実行可能な処理ポッド6112がない場合には(S93:No)、管理ポッド6111は、リソース管理処理を終了する。
【0078】
ステップS94において、管理ポッド6111は、他のMEC21において代替的に実行可能な処理ポッド6112を削除するとともに、削除した処理ポッド6112と同一の処理を実行可能な処理ポッド6112を実現するプログラムを、処理情報に示された代替先のMEC21のノード61において代替実行する。なお、処理ポッド6112を削除することに代えて処理ポッド6112を再起動し所定の待機状態としてもよい。
【0079】
図10は、
図9のステップS94における、処理ポッド6112の代替実行処理を示すフローチャートである。なお、処理ポッド6112の代替実行は、管理ポッド6111が主体となって行われる。
【0080】
ステップS101において、親機であるMEC21Aにおける管理ポッド6111は、初期設定を行うことで、処理ポッド6112Aの代替実行処理を開始させる。
【0081】
ステップS102において、管理ポッド6111は、子機であるMEC21Bの処理ポッド6112Bに代替実行を指示する。なお、この代替実行の指示においては、代替実行を行う処理ポッド6112Bと、その代替実行をさせるMEC21Aとが示されている。
【0082】
ステップS103において、管理ポッド6111は、代替実行の指示に応じてMEC21Bから送信される処理ポッド6112Bの処理中データを受信すると、その処理中データを処理ポッド6112Aへと記憶させる。
【0083】
ステップS104において、管理ポッド6111は、処理ポッド6112Aに対して、受信した子機であるMEC21Bにおける処理中データを用いて、処理を開始させる。このようにして、親機MEC21Aにおける処理ポッド6112Aにおける代替実行が行われる。
【0084】
図11は、
図9のステップS94における、代替実行元である子機であるMEC21Bにおける処理ポッド6112Bの代替実行処理を示すフローチャートである。
【0085】
ステップS111において、子機であるMEC21Bにおいて、監視ポッド6113Bは、
図10のステップS102に示されるように、親機であるMEC21Aから、子機であるMEC21Bの処理ポッド6112Bに代替実行の指示を受信する。なお、上述のように、この代替実行の指示には、代替実行を行う処理ポッド6112Bと、その代替的に実行可能させるMEC21Aとが示されている。
【0086】
ステップS112において、監視ポッド6113Bは、代替実行の指示に応じて、代替実行の対象である処理ポッド6112Bに対して、処理を停止すると、ステップS113において、処理中データを、親機であるMEC21Aに送信する。なお、この処理中データがMEC21Aに受信されると、
図10のステップS103の処理が行われる。
【0087】
このように、子機であるMEC21Bの処理負荷が高い場合には、処理ポッド6112Bによる処理中のデータを親機であるMEC21Aに送信するデータ連携を行った上で、処理ポッド6112Bによる処理を、MEC21Aの処理ポッド6112Aに実行させることができる。このようにして、親機であるMEC21Aと子機であるMEC21Bとの間におけるリソース管理を適切に行うことができる。
【0088】
なお、上述の例においては、MEC21Aの管理ポッド6111が、MEC21Bの処理ポッド6112Bを、自身(MEC21A)において代替的に実行する例について説明したが、これに限らない。例えば、MEC21Cのノード61Cなどに実行させてもよい。このように構成することで、親機と子機との間に限らず、子機同士や、子機と孫機との間でもリソース管理を適切に行うことができるので、エッジシステム10の設計の自由度を向上させることができる。
【0089】
本実施形態によれば、以下の効果を得ることができる。
【0090】
本実施形態のエッジシステム10において、親機である第1複合機12Aが有するMEC21Aは、子機である第2複合機12Bが有するMEC21Bと比較すると処理能力が高い。このような場合において、比較的処理能力の低いMEC21Bにおいて、処理負荷が高くなり処理がオーバーフローするおそれがある。コンテナオーケストレーション技術を用いた制御がなされる場合には、このリソース管理はマスタ62側で行われるが、マスタ62で管理する情報に基づいて行われているに過ぎず、実際のMEC21の情報処理の状態に応じていないことがある。
【0091】
これに対して、本実施形態においては、子機であるMEC21Bは、監視ポッド6113Bによって、自身が配置されたMEC21Bの処理状態を監視し、監視結果である処理情報を親機であるMEC21Aの管理ポッド6111に送信する。MEC21Aは、管理ポッド6111によって、受信した処理情報に基づいてMEC21Bの情報処理の負荷状態について所定の条件判定を行う。そして、MEC21Aは、MEC21Bが所定の条件を満たす場合には、MEC21Bの処理ポッド6112Bによる処理中のデータをMEC21Bの処理ポッド6112Bに送信するデータ連携を行った上で、MEC21Bにおいて行われる予定であった処理の一部または全部をMEC21Aにおいて代替的に実行することで、親機であるMEC21Aと子機であるMEC21Bとの間におけるリソース管理を行う。
【0092】
このように構成することにより、MEC21Bが情報処理することが困難である時には、MEC21Bの処理ポッド6112Bの処理の一部をMEC21Aにおいて代替的に実行することができるので、適切にリソース管理が行われてMEC21Bの処理を滞りなく行うことができる。そのため、全てのMEC21を処理能力が高いハードウェア構成のものを用いる必要性が低くなり、エッジシステム10の設計の自由度が向上するとともに、一部のMEC21Bのハードウェア構成を簡素化できるので、コストの低減を図ることができる。
【0093】
また、コンテナオーケストレーション技術においては、マスタ62側において把握している処理ポッド6112の動作状況に基づいてリソース管理が行われる。これに対して、本実施形態においては、管理ポッド6111により行われるリソース管理は、個々のMEC21の処理負荷や、処理ポッド6112の代替実行の可否などの実際の処理状態に応じてリソース管理がなされており、エッジシステム10の実稼動状態に適した適切なリソース管理を行うことができる。
【0094】
さらに、本実施形態のエッジシステム10によれば、子機である監視ポッド6113Bにより生成される処理情報は、MEC21Bの処理負荷を含む。そのため、親機であるMEC21Aは、管理ポッド6111によって、処理情報に示されるMEC21Bの処理負荷に基づいて、MEC21Bが情報処理することが困難であるか否かを判定する。そして、MEC21Aは、MEC21Bが情報処理することが困難であると判断する場合には、MEC21Bの処理ポッド6112Bの一部または全部をMEC21Aにて代替的に実行することで、リソース管理を行う。このように構成することで、MEC21Bの実際の情報処理が行われている状態に応じてMEC21Bが情報処理することが困難であるか否かを判断することができるため、より適切なリソース管理を行うことがきる。
【0095】
さらに、本実施形態のエッジシステム10によれば、子機である監視ポッド6113Bにより生成される処理情報は、処理ポッド6112BがMEC21Aにおいて代替的に実行可能か否かを示す処理情報を含む。そのため、親機であるMEC21Aは、管理ポッド6111によって、MEC21Bが情報処理することが困難であると判断する場合には、処理情報に示される処理ポッド6112Bの代替可否の情報に基づいて、MEC21Bの処理ポッド6112Bの一部または全部を代替先となりうるMEC21Aにおいて代替的に実行する。
【0096】
MEC21Bにおいて実行されている処理ポッド6112の中には、その稼動状況によってはMEC21Bにて実行されることが必須のものや、他のMEC21にて代替的に実行可能なものがある。そこで、代替的に実行可能な処理ポッド6112Bを、MEC21Aにおいて代替的に実行することにより、処理ポッド6112の処理に影響を与えることなくリソース管理を行うことができる。
【0097】
さらに、本実施形態のエッジシステム10によれば、子機であるMEC21Bは、監視ポッド6113Bによって、処理ポッド6112Bの稼動状況に応じて、処理ポッド6112がMEC21Aにおいて代替的に実行可能か否かを示す処理情報を生成する。例えば、処理ポッド6112Bが、作業機器22Bの現在の作業工程と直接的に関係ない処理を行うものであれば、他のMEC21において代替的に実行可能と判定する。このように構成することで、処理ポッド6112Bの個々の稼動状況がより適切に考慮されながら、エッジシステム10のリソース管理を行うことができる。
【0098】
さらに、本実施形態のエッジシステム10によれば、MEC21Aは、管理ポッド6111によって、MEC21Dの処理ポッド6112Dの一部または全部を、MEC21Cにおいて代替的に実行してもよい。このように、処理ポッド6112Dの代替的な実行を、エッジシステム10を構成する任意のMEC21において行うことができるので、設計の自由度の向上を図ることができる。
【0099】
(第2実施形態)
第2実施形態は、各MEC21間においてデータ連携や代替的な処理の実行が行われる点において第1実施形態と同様である。しかしながら、第2実施形態においては、複合機12が、さらに移動体通信ネットワーク等に利用可能な基地局121を有する。すなわち、各MEC21が、基地局121を介して相互に通信する例について説明する。なお、第1の実施形態と同一又は略同一の構成については同一の符号が付されている点に留意されたい。
【0100】
図12は、エッジシステム10の詳細を示す図である。
【0101】
複合機12Aは、MEC21Aに加えて、移動体通信ネットワークと通信可能な基地局121Aをさらに有している。複合機12Aは、移動体通信ネットワークと通信可能な基地局121Aと、センサ情報の取得や管理を行うMEC21Aとを有しており、基地局121AとMEC21Aとは、シリアル通信などによって互いに通信可能に構成されている。なお、基地局121Aは、比較的大型であり、ローカル環境11における移動体通信ネットワークの全体を制御できる。
【0102】
複合機12Bは、MEC21B、作業機器22B、及び、センサ23Bに加えて、基地局121Bを有している。同様に、複合機12C、及び、複合機12Dは、それぞれ、基地局121C、及び、121Dをさらに備える。なお、基地局121B、及び、121Cは、中型であり、基地局121Dは、小型であるものとする。
【0103】
ここで、複合機12が有する基地局121は、それぞれにおいて、比較的帯域の高い周波数の信号を用いるとともに、複数のアンテナ素子を用いて指向性を持たせた通信(ビームフォーミング)を行うことができる。そのため、ローカル環境11においては、基地局121間においてビームフォーミングを用いた移動体通信が可能なシステムが構成される。基地局121がビームフォーミングによる通信を行うことにより、通信対象に対する指向性が高まるので、複合機12間においては低遅延かつ大容量のネットワークが構成できる。なお、ビームフォーミングを用いずにLAN等を介して通常の無線通信を行ってもよい。
【0104】
図13は、エッジシステム10の機能を説明するためのブロック図である。
【0105】
この図に示されるように、本実施形態に係るエッジシステム10は、二点鎖線で示され、MEC21A~21Dにより構成される情報処理系統31に加えて、一点鎖線で示され、基地局121A~121Dを含む移動体通信ネットワークにより構成される通信処理系統131を備える。情報処理系統31におけるセンサ情報や学習済みモデルなどの具体的情報の通信処理は主に移動体通信ネットワークを介して行われる。
【0106】
通信処理系統131は、第1世代の基地局121Aと、第2世代の基地局121B、121Cと、第3世代の基地局121Dとが階層化されて構成される。第1世代の基地局121Aは、エッジシステム10において最上位に位置しており、大容量通信が可能である。
【0107】
そのため、基地局121Aは比較的サイズが大型で大容量のものが選択される。また、第2世代の基地局121B、121Cや、第3世代の基地局121Dは、それぞれ、作業機器22B、22C、及び、22Dなどと一体となって、複合機12B、12C、及び、12Dを構成する。作業機器22B、22Cがトラックなどのように大型機器である場合には、基地局121B、121Cは、処理能力が中程度でサイズが中型のものが選択される。作業機器22Dがドローンのような小型機器である場合には、基地局121Dは、処理能力が低いがサイズが小型のものが選択される。
【0108】
このように構成される第2実施形態のエッジシステム10によれば、各複合機12に備えられた基地局121を介して相互に通信が可能であるので、低遅延かつ大容量の通信が実現でき、より信頼性の高いデータ連携を行うことができる。従って、各MEC21間における処理の代替的実行がより高い信頼性の下に行われることとなる。
【0109】
上述の実施形態においては、親子関係は固定的なものとして説明した。しかしながら、本発明はこのような構成に限定されない。従って、例えば、デプロイを再度行うことにより親子関係を動的に変更してもよい。なお、このとき、必ずしも親となるMEC21の能力が子となるMEC21よりも高いことを要しない。
【0110】
また、以上の実施形態においては、MEC21、作業機器22、各種センサ23を含む複合機を用いて説明を行った。しかしながら、本発明はそのような構成に限定されない。従って、例えば、MEC21のみによりシステムを構成してもよいし、MEC21と他の装置(基地局121、作業機器22、各種センサ23等)との任意の組合せからなる複合機を用いてシステムを構成してもよい。
【0111】
(第1適用例)
第1適用例においては、エッジシステム10の工場への応用例を説明する。
【0112】
図14は、エッジシステム10を工場内において自動運転されるフォークリフトシステムへと応用した適用例の概略構成図である。この例において、ローカル環境11は、工場内に相当する。
【0113】
エッジシステム10は、階層構造を有しており、一台の親世代となる複合機12Aの下に、二台の子世代となる複合機12B(MEC21B)、複合機12Cが接続され、MEC21Bの下に四台の孫世代となる複合機12D、12E及び2台の作業機器22F、22Gが接続されている。なお、いずれのMEC21にもコンテナオーケストレーションツールがインストールされている。
【0114】
複合機12Aは、比較的に大型の基地局121Aと親世代のMEC21Aとを有しており主にシステム外との通信や高次の制御を行う。
【0115】
子世代の複合機12B(MEC21B)は、複合機12AのMEC21A、孫世代のMEC21D、21E及び孫世代のフォークリフト22F、22Gと接続されている。フォークリフト22F、22Gは、MEC21Bにより制御され自動運転により移動する。なお、MEC21Bは上述の実施形態のように孫世代のMEC21D、21Eの負荷状態を監視している。
【0116】
複合機12Cは、自動運転により移動するフォークリフトに相当する。複合機12Cは、比較的に小型の基地局121Cと、子世代のMEC21Cと、作業機器22Cとしてのフォークリフトと、動作や姿勢の検出等に用いられる各種のセンサ23Cを備えている。
【0117】
複合機12D、12Eは、工場内を監視するカメラ23D、23Eと、カメラ23D、23Eから取得された情報の処理を行う孫世代のMEC21D、21Eとを備えている。
【0118】
また、このとき、MEC21の情報処理能力は様々であるが、上の世代程、情報処理能力の高いMEC21が使用されている。
【0119】
このような状態において、エッジシステム10が稼働し、例えば、孫世代のMEC21Dの処理負荷が上昇し所定の閾値を超えると、子世代の複合機12B(MEC21B)は、処理の可否につき確認した上で、本来孫世代のMEC21Dにて行われる予定であった処理を代替的に行う。
【0120】
このような構成によれば、様々な能力のMEC21から成る場合であっても高い効率性を有する工場向けのエッジシステムを提供することができる。
【0121】
(第2適用例)
第2適用例においては、エッジシステム10の工場への応用例を説明する。
【0122】
図15は、エッジシステム10の工場への応用した適用例の概略構成図である。この例において、ローカル環境11は、工場に相当する。
【0123】
この例においては、複合機12A、12Bは、固定型の基地局121を備えているものとする。また、複合機12C、12Eは、それぞれ、作業機器22C、22Eを備えず、センサ23C、23Dのみが監視カメラとして機能する。複合機12D、12Fは、それぞれ、作業機器22D、22Fはドローンであり、多機能センサであるセンサ23D、23Fを有する。
【0124】
この例に示されるように、複合機12A、12Bが第1世代であり、複合機12C~12Eが第2世代である。複合機12Fは、第2世代の複合機12Bと、第3世代の複合機12Dと接続される。なお、いずれの複合機12にもコンテナオーケストレーションツールがインストールされている。
【0125】
ここで、複合機12D、12Fは、ドローンである作業機器22D、22Fが移動しながらセンサ情報を収集するため、センサ情報のデータ量や解析の処理負荷が高くなる。しかしながら、複合機12D、12Fは軽量化が必要であるので、MEC21D、21Fは小型で処理能力の低いものを用いる必要がある。そこで、MEC21D、21Fにおいて実行中の処理ポッド6112D、6112Fの処理を、他のMEC21で代替的に実行することで、リソース管理が行われ、エッジシステム10を安定的に運用することができる。
【0126】
以上、本発明の実施形態について説明したが、上記実施形態は本発明の適用例の一部を示したに過ぎず、本発明の技術的範囲を上記実施形態の具体的構成に限定する趣旨ではない。
【符号の説明】
【0127】
10 エッジシステム
11 ローカル環境
12 複合機
15 イメージレジストリ
21 MEC(エッジ端末)
22 作業機器
23 センサ
61 ノード
62 マスタ
611 ポッド
6111 管理ポッド
6112 処理ポッド
6113 監視ポッド
121 基地局
100 監視システム