(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6844067
(24)【登録日】2021年2月26日
(45)【発行日】2021年3月17日
(54)【発明の名称】IoT環境におけるエッジデバイスへのソフトウェアアプリケーションの供給
(51)【国際特許分類】
G06F 9/50 20060101AFI20210308BHJP
G06F 8/61 20180101ALI20210308BHJP
G16Y 40/20 20200101ALI20210308BHJP
【FI】
G06F9/50 150C
G06F8/61
G16Y40/20
【請求項の数】15
【全頁数】17
(21)【出願番号】特願2020-517507(P2020-517507)
(86)(22)【出願日】2018年9月19日
(65)【公表番号】特表2020-535532(P2020-535532A)
(43)【公表日】2020年12月3日
(86)【国際出願番号】EP2018075346
(87)【国際公開番号】WO2019063383
(87)【国際公開日】20190404
【審査請求日】2020年5月26日
(31)【優先権主張番号】17193359.1
(32)【優先日】2017年9月27日
(33)【優先権主張国】EP
【早期審査対象出願】
(73)【特許権者】
【識別番号】517291346
【氏名又は名称】シーメンス アクチエンゲゼルシヤフト
【氏名又は名称原語表記】Siemens Aktiengesellschaft
(74)【代理人】
【識別番号】100114890
【弁理士】
【氏名又は名称】アインゼル・フェリックス=ラインハルト
(74)【代理人】
【識別番号】100098501
【弁理士】
【氏名又は名称】森田 拓
(74)【代理人】
【識別番号】100116403
【弁理士】
【氏名又は名称】前川 純一
(74)【代理人】
【識別番号】100135633
【弁理士】
【氏名又は名称】二宮 浩康
(74)【代理人】
【識別番号】100162880
【弁理士】
【氏名又は名称】上島 類
(72)【発明者】
【氏名】アミット ヴェルマ
【審査官】
安藤 一道
(56)【参考文献】
【文献】
米国特許出願公開第2016/0232366(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/50
G06F 8/61
G16Y 40/20
(57)【特許請求の範囲】
【請求項1】
IoT環境(100)におけるエッジデバイス(104A〜N)にソフトウェアアプリケーションを供給する方法であって、前記方法は、
プロセッサ(202)によって、前記IoT環境(100)における1つ以上のエッジデバイス(104A〜N)上での前記ソフトウェアアプリケーションの動作をシミュレーション可能な複数のシミュレーションインスタンス(402A〜N)を生成するステップであって、それぞれの前記シミュレーションインスタンス(402A〜N)には、固有リソース構成(404A〜N)が設定されている、ステップと、
プラント(103)からのデータを使用して、それぞれの前記シミュレーションインスタンス(402A〜N)上で前記ソフトウェアアプリケーションを処理するステップと、
前記シミュレーションインスタンス(402A〜N)上での前記ソフトウェアアプリケーションの処理に基づいて、前記ソフトウェアアプリケーションに関連する最適リソース構成(404B)を計算するステップと、
を含み、
前記ソフトウェアアプリケーションに関連する前記最適リソース構成(404B)の計算するステップは、
複数の前記シミュレーションインスタンス(402A〜N)から、前記ソフトウェアアプリケーションの動作が十分である少なくとも1つのシミュレーションインスタンス(402B)を特定するステップと、
特定した前記シミュレーションインスタンス(402B)に関連する前記固有リソース構成(404B)を特定するステップと、
を含み、
前記固有リソース構成(404B)は、1つ以上の前記エッジデバイス(104A〜N)上で前記ソフトウェアアプリケーションを実行するのに必要な最小リソースを示す前記最適リソース構成である、
方法。
【請求項2】
アプリケーションリポジトリ(112)内の、前記ソフトウェアアプリケーションに関連するメタファイル内に前記最適リソース構成(402B)を格納するステップをさらに含む、請求項1記載の方法。
【請求項3】
前記ソフトウェアアプリケーションの前記動作をシミュレーション可能な複数の前記シミュレーションインスタンス(402A〜N)を生成するステップは、
複数の固有リソース構成から固有リソース構成(404A〜N)の集合を選択するステップであって、固有リソース構成(404A〜N)の前記集合は、前記IoT環境(100)における前記エッジデバイス(104A〜N)のリアルタイムリソース機能に対応する、ステップと、
固有リソース構成(404A〜N)の選択した前記集合に基づいて複数の前記シミュレーションインスタンス(402A〜N)を生成するステップと、
を含む、請求項1記載の方法。
【請求項4】
それぞれの前記固有リソース構成(404A〜N)は、前記ソフトウェアアプリケーションの前記動作に影響を及ぼすリソース制約を有する、請求項1または3記載の方法。
【請求項5】
前記プラント(103)からの前記データを使用して、それぞれの前記シミュレーションインスタンス(402A〜N)上での前記ソフトウェアアプリケーションを処理するステップは、
それぞれの前記シミュレーションインスタンス(402A〜N)の前記固有リソース構成(404A〜N)に基づき、前記プラント(103)からの前記データを使用して、それぞれの前記シミュレーションインスタンス(402A〜N)上で前記ソフトウェアアプリケーションの前記動作をシミュレーションするステップと、
それぞれの前記シミュレーションインスタンス(402A〜N)上での前記ソフトウェアアプリケーションのシミュレーション中に、前記ソフトウェアアプリケーションの前記動作を示すパラメータ値を取り込むステップと、
を含む、請求項1記載の方法。
【請求項6】
1つ以上の前記エッジデバイス(104A〜N)に前記ソフトウェアアプリケーションをデプロイするのに必要な前記最適リソース構成(404B)を計算するステップは、
取り込んだ前記パラメータ値に基づき、複数の前記シミュレーションインスタンス(402A〜N)から、前記ソフトウェアアプリケーションの前記動作が十分である少なくとも1つのシミュレーションインスタンス(402B)を特定するステップと、
前記固有リソース構成を特定するステップと、
を含む、請求項5記載の方法。
【請求項7】
前記ソフトウェアアプリケーションに関連する前記最適リソース構成(404B)に基づいて、前記ソフトウェアアプリケーションを実行するために、前記IoT環境(100)における少なくとも1つのエッジデバイス(104A)のリアルタイムリソース機能を評価するステップと、
前記エッジデバイス(104A)の前記リアルタイムリソース機能の評価に基づいて、前記エッジデバイス(104A)に前記ソフトウェアアプリケーションを供給するステップと、
をさらに含む、請求項1記載の方法。
【請求項8】
IoT環境(100)におけるエッジデバイス(104A〜N)にソフトウェアアプリケーションを供給するシステム(102)であって、前記システム(102)は、
1つ以上のプロセッサ(202)と、
前記プロセッサ(202)に接続されておりかつ複数のソフトウェアアプリケーションを格納可能なアプリケーションリポジトリ(112)を有するメモリユニット(204)と、
シミュレーションモジュール(106)と、
を有し、
前記シミュレーションモジュール(106)は、
前記IoT環境(100)における1つ以上のエッジデバイス(104A〜N)上での前記ソフトウェアアプリケーションの動作をシミュレーション可能な複数のシミュレーションインスタンス(402A〜N)を生成し、この際、それぞれの前記シミュレーションインスタンス(402A〜N)には、固有リソース構成(404A〜N)が設定されており、
プラント(103)からのデータを使用して、それぞれの前記シミュレーションインスタンス(402A〜N)上で前記ソフトウェアアプリケーションを処理し、
前記シミュレーションインスタンス(402A〜N)上での前記ソフトウェアアプリケーションの処理に基づいて、前記ソフトウェアアプリケーションに関連する最適リソース構成(404B)を計算する、
ように構成されており、前記シミュレーションモジュール(106)は、 複数の前記シミュレーションインスタンス(402A〜N)から、前記ソフトウェアアプリケーションの動作が十分である少なくとも1つのシミュレーションインスタンス(402B)を特定することにより、かつ
特定した前記シミュレーションインスタンス(402B)に関連する前記固有リソース構成(404B)を特定することにより、
前記ソフトウェアアプリケーションに関連する前記最適リソース構成(404B)を計算するように構成されており、
前記固有リソース構成(404B)は、1つ以上の前記エッジデバイス(104A〜N)上で前記ソフトウェアアプリケーションを実行するのに必要な最小リソースを示す前記最適リソース構成である、
システム(102)。
【請求項9】
前記シミュレーションモジュール(106)は、前記アプリケーションリポジトリ(112)内の、前記ソフトウェアアプリケーションに関連するメタファイルに前記最適リソース構成(404B)を格納するように構成されている、請求項8記載のシステム(102)。
【請求項10】
前記シミュレーションモジュール(106)は、
複数の固有リソース構成から、固有リソース構成(404A〜N)の集合を選択し、
固有リソース構成(404A〜N)の前記集合は、前記IoT環境(100)における前記エッジデバイス(104A〜N)のリアルタイムリソース機能に対応し、それぞれの前記固有リソース構成(404B)は、前記ソフトウェアアプリケーションの前記動作に影響を及ぼすリソース制約を有し、
選択した、固有リソース構成(404A〜N)の前記集合に基づき、複数の前記シミュレーションインスタンス(402A〜N)を生成する、
ように構成されている、請求項8または9記載のシステム(102)。
【請求項11】
前記シミュレーションモジュール(106)は、
それぞれの前記シミュレーションインスタンス(402A〜N)の前記固有リソース構成(404A〜N)に基づき、前記プラント(103)からの前記データを使用して、それぞれの前記シミュレーションインスタンス(402A〜N)上で前記ソフトウェアアプリケーションの前記動作をシミュレーションし、
それぞれの前記シミュレーションインスタンス(402A〜N)上での前記ソフトウェアアプリケーションのシミュレーション中に、前記ソフトウェアアプリケーションの前記動作を示すパラメータ値を取り込む、
ように構成されている、請求項8または10記載のシステム(102)。
【請求項12】
前記シミュレーションモジュール(106)は、
取り込んだ前記パラメータ値に基づき、複数の前記シミュレーションインスタンス(402A〜N)から、前記ソフトウェアアプリケーションの前記動作が十分であることが判明した少なくとも1つのシミュレーションインスタンス(402B)を特定し、
特定した前記シミュレーションインスタンス(402B)に関連する前記固有リソース構成(404B)を特定する、
ように構成されており、
前記固有リソース構成(404B)は、前記最適リソース構成である、
請求項11記載のシステム(102)。
【請求項13】
前記ソフトウェアアプリケーションに関連する前記最適リソース構成(404B)に基づいて前記ソフトウェアアプリケーションを実行するために、前記IoT環境(100)における少なくとも1つのエッジデバイス(104A)のリアルタイムリソース機能を評価するように構成されているエッジデバイス管理モジュール(110)をさらに有する、請求項8記載のシステム(102)。
【請求項14】
さらに、前記エッジデバイス(104A)の前記リアルタイムリソース機能の評価に基づいて、前記エッジデバイス(104A)に前記ソフトウェアアプリケーションが供給される、請求項13記載のシステム(102)。
【請求項15】
プロセッサ(202)によって実行される場合に、前記プロセッサ(202)に、請求項1から7までのいずれか1項に記載の方法ステップを実行させる機械読み出し可能命令が格納されているコンピュータ読み出し可能記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般にモノのインターネット(IoT:Internet-of-Things)の分野に関し、より詳細にはIoT環境におけるエッジデバイスにソフトウェアアプリケーションを供給する方法およびシステムに関する。
【0002】
インダストリアルIoT(IIOT:Industrial IoT)のようなIoT環境では、複数のエッジデバイスが、インターネットを介してIoTクラウドプラットフォームと、センサと、アクチュエータとに接続されている。エッジデバイスは、軽量かつ低価格の装置であってよく、この装置により、プラントに配備されているさまざまなセンサおよびアクチュエータからデータが収集され、収集したデータが格納およびバッファリングされ、収集したこの分析が行われ、分析の結果に基づいてアクション(例えば、制御コマンドの発行)が実行される。エッジデバイスはまた、プラントデータを集計し、フィルタリングし、選択的にリポートし、圧縮し、暗号化し、かつ/またはこれと別の前処理を行うように構成可能であり、これによってIoTクラウドプラットフォームに通信されるデータを少なくし、かつ/またはデータに価値を付加することができる。これにより、このような前処理が行われていない場合に必要または消費され得るよりも、ネットワーク通信、バックエンド記憶容量、および処理リソースの消費を少なくすることが可能である。一般に、それぞれのエッジデバイスは、そこにデプロイされた1つ以上のソフトウェアアプリケーションを使用して上記の機能を実行可能である。IoTクラウドプラットフォームの役割は、エッジデバイスを管理し、エッジデバイスから受信した(生または前処理された)データを管理し、エッジデバイスにソフトウェアアプリケーションを供給することである。
【0003】
一般にIoT環境におけるエッジデバイスは、リソース制約型デバイスである。さらに、それぞれのリソース制約型デバイスは、ハードウェアスペックの点において異なることがあり、またIoTクラウドプラットフォームによって供給される新しいソフトウェアアプリケーションを実行するためのリアルタイムリソースの機能が異なり得る。例えばRaspberry Pi(商標)上で動作するエッジデバイスは、一般的な産業PCベースのエッジデバイスとは異なるアプリケーションを実行可能であってよい。また、リアルタイムリソース機能は、エッジデバイスにデプロイされているソフトウェアアプリケーションの個数、およびこれらのソフトウェアアプリケーションをランタイム中に実行する際にエッジデバイスによって利用されるリソースに基づいて異なり得る。互換性のないハードウェアおよびリソース制約を有するエッジデバイスにデプロイされる新たなソフトウェアアプリケーションは、リアルタイムでのソフトウェアアプリケーションの実行中に性能問題(例えばデバイス動作可能時間)に見舞われることがある。またこれは、プラントデータの誤った分析をまねくことがある。
【0004】
米国特許出願公開第2016/0232366号明細書には、与えられたシナリオにおいてリアルタイムデバイスの性能をシミュレート可能な検証システムが開示されている。この検証システムは、関心対象のデバイスの機能をシミュレートする仮想シミュレータに読み込まれる、特定のシナリオについての情報を受信し、この仮想シミュレータによって一連のシミュレーションイベントを実行し、このデバイスの性能が目標性能を満たすか否かを特定する。この検証システムは、デバイスの性能が目標性能を満たす場合、リアルタイムデバイスにデバイス構成プロファイルをデプロイする。しかしながらこの検証システムによって、上記の問題は解決されない。
【0005】
上記のことを考慮すると、IoT環境におけるエッジデバイスにソフトウェアアプリケーションを供給するための改善された方法およびシステムが必要である。
【0006】
したがって本発明の1つの目的は、IoT環境におけるエッジデバイスにソフトウェアアプリケーションを供給する方法およびシステムを提供することである。
【0007】
本発明のこの目的は、IoT環境におけるエッジデバイスにソフトウェアアプリケーションを供給する方法によって達成される。例えば、このソフトウェアアプリケーションは、エッジデバイス上でデータ分析を実行するアプリケーションである。
【0008】
択一的には、ソフトウェアアプリケーションは、エッジデバイス上で機能を実行する任意の別のアプリケーションであってよい。ソフトウェアアプリケーションは、新しいアプリケーションまたはアップグレードパッチであってよい。上記の方法では、IoT環境における1つ以上のエッジデバイス上でのソフトウェアアプリケーションの動作をシミュレーション可能な複数のシミュレーションインスタンスを生成する。それぞれのシミュレーションインスタンスには、固有リソース構成が設定されている。本発明による方法では、工業プラントからのデータを使用して、それぞれの上記シミュレーションインスタンス上でソフトウェアアプリケーションを処理し、シミュレーションインスタンス上でのソフトウェアアプリケーションの処理に基づいて、ソフトウェアアプリケーションに関連する最適リソース構成を計算する。ソフトウェアアプリケーションに関連する最適リソース構成は、複数のシミュレーションインスタンスから、ソフトウェアアプリケーションの動作が十分である少なくとも1つのシミュレーションインスタンスを特定することにより、また特定したシミュレーションインスタンスに関連する固有リソース構成を特定することによって計算可能であり、この固有リソース構成設定(404B)が、最適リソース構成である。最適リソース構成は、1つ以上のエッジデバイス上でソフトウェアアプリケーションを実行するのに必要な最小リソースを示す。したがってソフトウェアアプリケーションは、最適リソース構成に基づいて少なくとも1つのエッジデバイスに供給される。
【0009】
好ましい一実施形態において、この方法では、アプリケーションリポジトリ内の、ソフトウェアアプリケーションに関連するメタファイルに最適リソース構成を格納可能である。
【0010】
好ましい別の一実施形態において、この方法では、ソフトウェアアプリケーションに関連する最適リソース構成に基づいてソフトウェアアプリケーションを実行するために、IoT環境における少なくとも1つのエッジデバイスのリアルタイムリソース機能を評価可能である。例えば、リアルタイムリソース機能は、ソフトウェアアプリケーションを実行するためにエッジデバイス上で利用可能なリアルタイムリソースを示す。リアルタイムリソースは、ハードウェアリソースもソフトウェアリソースも共に含んでいてよい。リアルタイムリソースは、エッジデバイス上のハードウェア機能および利用されないリソースを含んでいてよい。上記の方法では、上記エッジデバイスのリアルタイムリソース機能の評価に基づいて、上記エッジデバイスにソフトウェアアプリケーションを供給可能である。
【0011】
さらに別の好ましい一実施形態において、この方法では、複数の固有リソース構成から、固有リソース構成の集合を選択可能であり、この固有リソース構成の集合は、IoT環境におけるエッジデバイスのリアルタイムリソース機能に対応する。この方法では、固有リソース構成の選択した集合に基づいて複数のシミュレーションインスタンスを生成可能である。それぞれの固有リソース構成は、ソフトウェアアプリケーションの動作に影響を及ぼすリソース制約を有する。
【0012】
さらに別の好ましい一実施形態において、この方法では、それぞれの上記シミュレーションインスタンスの固有リソース構成に基づき、工業プラントからのデータを使用して、それぞれの上記シミュレーションインスタンス上でソフトウェアアプリケーションをシミュレーションすることが可能である。この方法では、それぞれの上記シミュレーションインスタンス上でのソフトウェアアプリケーションのシミュレーション中に、ソフトウェアアプリケーションの動作を示すパラメータ値を取り込むことが可能である。有利には、異なるリソース構成を有するエッジデバイス上でのソフトウェアアプリケーションの性能は、このエッジデバイス上にソフトウェアアプリケーションを供給する前に特定可能である。
【0013】
さらに別の好ましい一実施形態において、この方法では、取り込んだパラメータ値に基づき、複数のシミュレーションインスタンスから、ソフトウェアアプリケーションの最適な動作が十分である少なくとも1つのシミュレーションインスタンスを特定可能である。この方法ではまた、特定したシミュレーションインスタンスに関連する固有リソース構成を特定することができ、ここではこの固有リソース構成は、最適リソース構成である。
【0014】
本発明の目的はまた、IoT環境におけるエッジデバイスにソフトウェアアプリケーションを供給するシステムによって達成される。例示的な一実施形態において、システムは、プラントにおけるエッジデバイスに通信接続されたクラウドインフラストラクチャにおけるIoTクラウドプラットフォームであってよい。例示的な別の一実施形態において、システムは、プラントにおけるエッジデバイスに通信接続されたリモートサーバであってよい。システムは、1つ以上のプロセッサと、このプロセッサに接続されておりかつ複数のソフトウェアアプリケーションを格納可能なアプリケーションリポジトリを有するメモリとを有する。このシステムはまた、IoT環境における1つ以上のエッジデバイス上でのソフトウェアアプリケーションの動作をシミュレーション可能な複数のシミュレーションインスタンスを生成するために構成されたシミュレーションモジュールを有する。それぞれのシミュレーションインスタンスには、固有リソース構成が設定されている。このシミュレーションモジュールは、工業プラントからのデータを使用して、それぞれの上記シミュレーションインスタンス上でソフトウェアアプリケーションを処理するように、かつシミュレーションインスタンス上でのソフトウェアアプリケーションの処理に基づいて、1つ以上のエッジデバイスにおける、ソフトウェアアプリケーションに関連する最適リソース構成を計算するように構成されている。このシミュレーションモジュールは、複数のシミュレーションインスタンスから、ソフトウェアアプリケーションの動作が十分である少なくとも1つのシミュレーションインスタンスを特定することにより、かつ特定したシミュレーションインスタンスに関連する固有リソース構成を特定することにより、ソフトウェアアプリケーションに関連する最適リソース構成を計算するように構成されており、固有リソース構成(404B)は、最適リソース構成である。最適リソース構成は、1つ以上のエッジデバイス上でソフトウェアアプリケーションを実行する必要な最小リソースを示す。したがって、ソフトウェアアプリケーションは、最適リソース構成に基づいて少なくとも1つのエッジデバイスに供給される。
【0015】
好ましい一実施形態において、システムは、構成されたエッジデバイス管理モジュールを有していてよく、このエッジデバイス管理モジュールは、ソフトウェアアプリケーションに関連する最適リソース構成に基づいてソフトウェアアプリケーションを実行するために、IoT環境における少なくとも1つのエッジデバイスのリアルタイムリソース機能を評価するように構成されている。この好ましい実施形態において、システムは、上記エッジデバイスのリアルタイムリソース機能の評価に基づいて、上記エッジデバイスにソフトウェアアプリケーションを供給するように構成された供給モジュールを有していてよい。
【0016】
別の好ましい一実施形態において、シミュレーションモジュールは、アプリケーションリポジトリ内の、ソフトウェアアプリケーションに関連するメタファイルに最適リソース構成を格納するように構成可能である。
【0017】
さらに別の好ましい一実施形態において、シミュレーションモジュールは、複数の固有リソース構成から、固有リソース構成の集合を選択するように構成可能である。固有リソース構成の集合は、IoT環境におけるエッジデバイスのリアルタイムリソース機能に対応する。それぞれの固有リソース構成は、ソフトウェアアプリケーションの動作に影響を及ぼすリソース制約を有する。シミュレーションモジュールは、選択した、固有リソース構成の集合に基づき、複数のシミュレーションインスタンスを生成するように構成可能である。
【0018】
さらに別の好ましい一実施形態において、シミュレーションモジュールは、それぞれの上記シミュレーションインスタンスの固有リソース構成に基づき、工業プラントからのデータを使用して、それぞれの上記シミュレーションインスタンス上でソフトウェアアプリケーションをシミュレーションするように構成されていてよい。このシミュレーションモジュールはまた、それぞれの上記シミュレーションインスタンス上でのソフトウェアアプリケーションのシミュレーション中に、ソフトウェアアプリケーションの動作を示すパラメータ値を取り込む、ように構成可能である。
【0019】
さらに別の好ましい一実施形態において、シミュレーションモジュールは、取り込んだパラメータ値に基づき、複数のシミュレーションインスタンスから、ソフトウェアアプリケーションの動作が十分であることが判明した少なくとも1つのシミュレーションインスタンスを特定するように構成可能である。さらにこのシミュレーションモジュールは、特定したシミュレーションインスタンスに関連する固有リソース構成を特定するように構成可能であり、ここではこの固有リソース構成は、最適リソース構成である。
【0020】
本発明の目的はまた、プロセッサによって実行される場合に、このプロセッサに、上記のステップを実行させる機械読み出し可能命令が格納されているコンピュータプログラム製品によって達成される。このプロセッサは、IoTクラウドプラットフォームのプロセッサであってよい。
【0021】
本発明の上記の特徴および別の特徴を以下、本発明の添付図面を参照して取り扱う。図示した実施形態は、本発明の説明を意図したものであり、限定を意図したものではない。
【0022】
以下、添付図面に示した例示的な実施形態を参照して、本発明をさらに説明する。
【図面の簡単な説明】
【0023】
【
図1】本発明の一実施形態によるモノのインターネット(IoT: Internet-of-Things)環境の概略図である。
【
図2】本発明の実施形態による、
図1に示したIoTクラウドプラットフォームのブロック図である。
【
図3】本発明の実施形態にしたがい、IoTクラウドプラットフォームによって、エッジデバイスにソフトウェアアプリケーションを供給する例示的な方法を説明する流れ図である。
【
図4】本発明の実施形態にしたがい、エッジデバイスにソフトウェアアプリケーションをデプロイするための最適リソース構成を計算するシミュレーション環境の概略図である。
【0024】
図面に関連してさまざまな実施形態が示されており、ここでは、同様の参照符号は、これらの図面を参照するために示されており、同様の参照符号は、全体を通して、同様の構成要素を参照するために使用されている。以下の説明では、説明を目的として、1つ以上の実施形態が完全に理解されるようにするために多数の具体的な詳細が示されている。これらの実施形態は、これらの具体的な詳細がなくても実施できることは明らかであろう。
【0025】
図1は、本発明の一実施形態による、モノのインターネット(IoT: Internet-of-Things)環境100の概略図である。IoT環境100には、IoTクラウドプラットフォーム102と、エッジデバイス104A〜N、およびセンサ/アクチュエータ116A〜Nのグループを含むプラント103と、ユーザデバイス114A〜Cとが含まれている。センサ/アクチュエータ116A〜Nのそれぞれのグループは、有線ネットワークまたは無線ネットワークを介して、対応するエッジデバイス104A〜Nに接続されている。それぞれのエッジデバイス104A〜Nは、ワイドエリアネットワークのようなネットワーク接続を介してIoTクラウドプラットフォーム102に接続されている。同様にユーザデバイス114A〜Cもワイドエリアネットワークを介してIoTクラウドプラットフォーム102に接続されている。
【0026】
図示されていないが、いくつかのまたはすべてのエッジデバイス104A〜Nは、エッジゲートウェイを介してIoTクラウドプラットフォーム102に接続可能である。同様にIoTクラウドプラットフォーム102は、異なる地理的位置に設置されているプラント103のエッジデバイスに接続可能である。
【0027】
プラント103では、センサ/アクチュエータ116A〜Nのグループは、設備およびプロセスを監視および制御するために配備されている。センサの一例は、プラント103に配備されている赤外線カメラであってよい。エッジデバイス104A〜Nは、バッテリ駆動式デバイスであってよく、またエッジオペレーティングシステムを装備していてよい。例えば、エッジデバイス104A〜Nは、センサ116A〜Nの対応するグループからプラントデータを収集し、エッジデバイス104A〜Nにデプロイされた一式のソフトウェアアプリケーションを使用して、収集したプラントデータを分析するように構成されている。エッジデバイス104A〜Nは、収集したプラントデータの分析の結果に基づいて、対応するアクチュエータに命令を送信可能である。エッジデバイス104A〜Nはまた、生の/処理されたプラントデータおよび/またはプラントデータの分析の結果をIoTクラウドプラットフォーム102に出力することも可能である。
【0028】
IoTクラウドプラットフォーム102は、エッジデバイス104A〜Nへのソフトウェアアプリケーションの供給のような、クラウドベースサービスを提供可能なクラウドインフラストラクチャであってよい。IoTクラウドプラットフォーム102は、パブリッククラウドおよび/またはプライベートクラウドの一部であってよい。IoTクラウドプラットフォーム102は、データサイエンティスト/ソフトウェアベンダが、ソフトウェアアプリケーションをサービスとして提供できるようにすることが可能であり、その際にはユーザによるソフトウェアのメンテナンス、アップグレートおよびバックアップは不要である。ソフトウェアアプリケーションは、完全なアプリケーション、またはソフトウェアパッチであってよい。いくつかの実施形態において、ソフトウェアアプリケーションは、エッジデバイス104A〜N上でデータ分析を行う分析アプリケーションであってよい。例えば、ソフトウェアアプリケーションは、時系列データのダウンサンプリング、閾値または移動平均に基づく時系列データのフィルタリング、振動データへの高速フーリエ変換の実行および異常値を示す周波数のフィルタリング、線形回帰および傾向予測、サポートベクターマシン分類器、ニューラルネットワークまたはディープラーニング分類器を使用した局所分類の実行、ストリーム分析の実行などのためのアプリケーションを含んでいてよい。
【0029】
IoTクラウドプラットフォーム102はさらに、
図2により詳細に示されている。
図2を参照すると、IoTクラウドプラットフォーム102は、シミュレーションモジュール106と、供給モジュール108と、エッジデバイス管理モジュール110と、プロセッサ202と、メモリユニット204と、通信インタフェース206とを有する。シミュレーションモジュール106、供給モジュール108およびエッジデバイス管理モジュール110は、組み込みソフトウェアを有するプロセッサのようなハードウェア、またはコンピュータプログラム製品(例えばメモリユニット204)に格納されておりプロセッサ202によって実行可能な機械読み出し可能命令の形態のコンピュータプログラムの形態をとってよい。プロセッサ202は、1つ以上の処理ユニット(例えばサーバ)であってよい。プロセッサ202はまた、プラントデータの処理、プラントデータの分析、分析されたプラントデータの視覚化の提供、アクチュエータへの制御コマンドの発行、エッジデバイス104A〜Nの管理などのようなさまざまな機能を実行するために、メモリユニット204のようなコンピュータ読み出し可能記憶媒体に格納されている機械読み出し可能命令を実行可能である。メモリユニット204は、揮発性メモリまたは不揮発性メモリであってよい。好ましい実施形態において、メモリユニット204は、アプリケーションリポジトリ112を格納するように構成されている。アプリケーションリポジトリ112は、エッジデバイス104A〜Nに供給するためのソフトウェアアプリケーションを格納可能である。ソフトウェアアプリケーションは、アプリケーションリポジトリ112内の、関連する最適リソース構成と共にアプリケーションバイナリとして、メタファイルに格納されている。通信インタフェース206は、エッジデバイス104A〜Nと、IoTクラウドプラットフォーム102との間の通信チャネルを確立するように構成されている。同様に通信インタフェース206は、IoTクラウドプラットフォーム102と、ユーザデバイス114A〜Cとの間に通信チャネルを確立するように構成されている。
【0030】
シミュレーションモジュール106は、シミュレーション環境において、複数のシミュレーションインスタンス上でソフトウェアアプリケーションの動作をシミュレーションするように構成されている。それぞれのシミュレーションインスタンスは、IoT環境100におけるエッジデバイスを表す。それぞれのシミュレーションインスタンスにはまた、固有リソース構成が設定されている。固有リソース構成は、エッジデバイスのリアルタイムリソース機能に対応する。固有リソース構成は、ソフトウェアアプリケーションの動作に影響を及ぼすリソース制約を有する。例示的な一実装において、シミュレーションモジュール106は、あらかじめ定めた時間の間、順次または並列に複数のシミュレーションインスタンス上でソフトウェアアプリケーションを実行する。シミュレーションモジュール106は、ソフトウェアアプリケーションのシミュレーションの結果に基づいて、ソフトウェアアプリケーションに関連する最適リソース構成を計算するように構成されている。最適リソース構成は、IoT環境100におけるエッジデバイス104A〜N上でソフトウェアアプリケーションを実行するのに必要な最小リソースを示す。シミュレーションモジュール106は、アプリケーションリポジトリ112内の、ソフトウェアアプリケーションに関連するメタファイルに最適リソース構成を格納するように構成されている。
【0031】
エッジデバイス管理モジュール110は、ソフトウェアアプリケーションに関連する最適リソース構成に基づいてソフトウェアアプリケーションを実行するための、エッジデバイス104A〜Nのリアルタイムリソース機能を評価するように構成されている。例えば、リソースは、ハードウェアリソースであってもソフトウェアリソースであってもよい。リソースは、ネットワークリソース、記憶装置リソース、計算リソースなどであってよい。最適リソース構成は、エッジデバイス104A〜N上でソフトウェアアプリケーションをリアルタイムに実行するのに必要な最小リソースを示す。供給モジュール108は、1つ以上のエッジデバイス104A〜Nが、ソフトウェアアプリケーションを実行するのに十分なリアルタイムリソース機能を有する場合に、1つの以上のエッジデバイス104A〜Nにソフトウェアアプリケーションを供給するように構成されている。ソフトウェアアプリケーションをシミュレートし、後にエッジデバイス104A〜Nにソフトウェアアプリケーションを供給するために、IoTクラウドプラットフォーム102によって実行されるステップを、以下の説明においてより詳しく説明する。
【0032】
ユーザデバイス114A〜Cは、ラップトップ、デスクトップ、タブレットコンピュータ、スマートフォンおよび同様のデバイスなどのクラウドを意識したデバイスであってよい。ユーザデバイス114A〜Cは、インターネットを介し、クラウドユーザインタフェースを使用してIoTクラウドプラットフォーム102にアクセスするように構成されている。一実施形態では、ユーザデバイス114A〜Cは、クラウドユーザインタフェースを介して、生の/処理されたプラントデータ、および/またはプラントデータの分析の結果が視られるように構成されている。別の一実施形態では、ユーザデバイス114A〜Cは、エッジデバイス104A〜Nに供給されるソフトウェアアプリケーションをアプリケーションリポジトリ112にアップロードするように構成されている。例えば、ソフトウェアアプリケーションは、一般に、ターゲットユーザ事例毎にデータサイエンティストまたはソフトウェアベンダによって作成され、エッジデバイス104A〜Nに供給するためにIoTクラウドプラットフォーム102にアップロードされる。さらに別の一実施形態では、ユーザデバイス114A〜Cは、所望のソフトウェアアプリケーションのシミュレーションを介して、最適リソース構成の計算を要求し、また最適リソース構成に基づいて、プラント103の複数のエッジデバイス104A〜Nのうちの1つにソフトウェアアプリケーションを供給するように構成されている。さらに別の一実施形態では、ユーザデバイス114A〜Cは、プラントデータの分析の結果に基づきかつエッジデバイス104A〜Nを介してアクチュエータ116A〜Nにコマンドを発行する携帯型の人間対機械インタフェースデバイスとして動作可能である。
【0033】
図3は、本発明の実施形態にしたがい、IoTクラウドプラットフォーム102によって、エッジデバイス104Aにソフトウェアアプリケーションを供給する例示的な方法を説明するプロセスフローチャート300である。ステップ302では、エッジデバイス104A〜N上でのソフトウェアアプリケーションの動作をシミュレーション可能な複数のシミュレーションインスタンスを生成する。例えば、ソフトウェアアプリケーションは、プラント103に配備された赤外線カメラからのリアルタイムビデオストリームを分析して、生産される製品の品質を特定する分析アプリケーションであってよい。好ましい実施形態では、複数の固有リソース構成から、固有リソース構成の集合を選択する。この固有リソース構成の集合は、IoT環境100におけるエッジデバイス104A〜Nのリアルタイムリソース機能にリソース構成が対応する、ように選択される。シミュレーション中にソフトウェアアプリケーションの動作に影響を及ぼすそれぞれの選択された固有リソース構成は、リソース制約から成る。例示的なリソース制約は、読み出しアクセスメモリ(RAM:read-access memory)サイズ、プロセッサタイプ、記憶装置サイズ、バスサイズなどを含んでいてよい。この好ましい実施形態では、固有リソース構成の選択した集合に基づいて複数のシミュレーションインスタンスを生成する。例えば、シミュレーションインスタンスには、対応する固有リソース構成を設定する。シミュレーションインスタンスおよび関連するリソース構成の個数は、シミュレーションされるソフトウェアアプリケーションのタイプに基づいて決定される。
【0034】
ステップ304では、プラント103からのデータを使用して、シミュレーションインスタンス上でソフトウェアアプリケーションを処理する。例えば、プラント103からのデータは、プラント103から収集されるリアルタイムデータまたは履歴データであってよい。製品品質を分析するためのデータには、赤外線カメラから取得されるリアルタイムビデオストリームが含まれていてよい。好ましい一実施形態では、プラント103からのデータを使用して、シミュレーションインスタンス上でソフトウェアアプリケーションを実行することによってソフトウェアアプリケーションの動作をシミュレーションする。例示的な一実装では、あらかじめ定めた時間の間、シミュレーションインスタンス上でソフトウェアアプリケーションを並列に実行する。択一的には、あらかじめ定めた時間の間、あらかじめ定めた順序でソフトウェアアプリケーションをシミュレーションインスタンス上で実行する。好ましい実施形態では、シミュレーションインスタント毎に、ソフトウェアアプリケーションの動作を示すパラメータ値をシミュレーション中に取り込む。例えば、シミュレーションインスタンス毎に取り込まれるこのパラメータ値は、関連する固有リソース構成でエッジデバイス上で実行される場合に、ソフトウェアアプリケーションの性能を示すキー性能指標である。
【0035】
ステップ306では、シミュレーションインスタンス上でのソフトウェアアプリケーションの処理に基づいて、ソフトウェアアプリケーションに関連する最適リソース構成を計算する。好ましい一実施形態では、取り込んだパラメータ値に基づき、複数のシミュレーションインスタンスから、シミュレーションインスタンスを特定する。言い換えると、ソフトウェアアプリケーションの動作が最適になるシミュレーションインスタンスが、最善のシミュレーションインスタンスとして特定される。
【0036】
この好ましい実施形態では、このシミュレーションインスタンスに関連する固有リソース構成を特定する。この固有リソース構成は、このソフトウェアアプリケーションを実行するのに最適なリソース構成とみなされる。最適リソース構成は、このソフトウェアアプリケーションが、関連するシミュレーションインスタンス上でシミュレーションされる場合に結果的にこのソフトウェアアプリケーションの十分な性能が得られるリソース構成である。最適リソース構成は、エッジデバイス上でこのソフトウェアアプリケーションの十分な性能を得るために、エッジデバイス上で利用できるはずである最低限に推奨されるリソース構成を示す。したがって最適リソース構成は、エッジデバイスにソフトウェアアプリケーションを供給するために、エッジデバイスが処理しなければならない最小限のリソース構成である。
【0037】
ステップ308では、アプリケーションリポジトリ112内の、ソフトウェアアプリケーションに関連するメタファイルに最適リソース構成を格納する。ステップ310では、ソフトウェアアプリケーションに関連する最適リソース構成に基づいて、ソフトウェアアプリケーションを実行するための、少なくとも1つのエッジデバイス104Aのリアルタイムリソース機能を評価する。
【0038】
好ましい実施形態において、ソフトウェアアプリケーションを実行するために利用可能なリアルタイムリソースは、エッジデバイス104Aから得られる。同様に、エッジデバイス104Aにデプロイされる場合にソフトウェアアプリケーションの十分な性能に必要な最小リソースを示す最適リソース構成は、ソフトウェアアプリケーションに関連するメタファイルから得られる。ここでは、この利用可能なリアルタイムリソースが、ソフトウェアアプリケーションを供給するのに必要な最小リソース以上であるか否かを特定する。利用可能なリアルタイムリソースが、必要な最小リソース以上である場合、ステップ312において、ソフトウェアアプリケーションをエッジデバイス104Aに供給する。次に、ソフトウェアアプリケーションをインストールし、エッジデバイス104A上で利用可能なリアルタイムリソースを使用して、エッジデバイス104A上でこのソフトウェアアプリケーションをリアルタイムに実行する。
【0039】
利用可能なこのリアルタイムリソースが、必要な最小リソースを下回る場合、エッジデバイス104Aは、不要のソフトウェアアプリケーションをアンインストールすることによってリソースを開放可能である。択一的には、IoTクラウドプラットフォーム102は、ソフトウェアアプリケーションに関連する最適リソース構成が、エッジデバイス104A上で利用可能なリアルタイムリソース以下になるように、ソフトウェアアプリケーションをカスタマイズすることが可能である。
【0040】
図4は、本発明の実施形態にしたがい、エッジデバイス104A〜Nにソフトウェアアプリケーションをデプロイするための最適リソース構成を計算するシミュレーション環境400の概略図を示している。
【0041】
プラント103において赤外線カメラから取得した、製品のリアルタイムビデオストリームを分析し、製品品質における偏差をリアルタイムに識別するために分析アプリケーションが開発されるものとする。この分析アプリケーションは、それぞれの層に約100ノードを有する3層の畳み込みニューラルネットワーク(CNN:Convolutional Neural Network)モデルとして実装可能である。CNNモデルは、トレーニングビデオデータを使用して、データサイエンティストによって作成される。分析アプリケーションは、製造される製品の赤外線ビデオストリームを取得する赤外線カメラに接続されかつ製品の品質の偏差を計算する、プラント103の1つ以上のエッジデバイス104A〜Nにデプロイされるように設計されている。一般に、分析アプリケーションのデプロイの前には、エッジデバイス104Aにデプロイされた場合に、性能上のいかなる問題なしに分析アプリケーションがスムーズに動作するか否かは明らかではない。したがって、本発明では、シミュレーション環境400において、分析アプリケーションの動作をシミュレーションし、エッジデバイス104Aにデプロイするのに必要な、分析アプリケーションについての最適リソース構成を、以下に説明するように計算する。
【0042】
好ましい実施形態によれば、分析アプリケーションは、1つ以上のエッジデバイス104A〜Nに供給するために、クラウドコンテナ(例えばDocker(商標)Hub)としてアプリケーションレジストリ112に加えられる。シミュレーションモジュール106は、分析アプリケーションの動作をシミュレーションするシミュレーションインスタンス402A〜Nを有するシミュレーション環境400を準備する。説明のために、シミュレーション環境400には、シミュレーションインスタンス402A、シミュレーションインスタンス402B、およびシミュレーションインスタンス402Cが含まれるものとする。
【0043】
シミュレーションモジュール106は、シミュレーションインスタンス402Aに固有リソース構成404Aを設定する。この固有リソース構成404Aには、リソース制約、すなわち64MBのRAM、シングルコアプロセッサで512MHz、512MBの記憶容量、および128MHzの内部通信バスを有する。同様に、シミュレーションモジュール106は、シミュレーションインスタンス402Bに固有リソース構成404Bを設定する。固有リソース構成402Bは、リソース制約、すなわち512MBのRAM、デュアルコアプロセッサで1GHz、2GBの記憶容量、1GHzの内部通信バス、および512MBのGPU(Graphical Processing Unit)を有する。同様に、シミュレーションモジュール106は、シミュレーションインスタンス402Cに固有リソース構成404Cを設定する。固有リソース構成404Cは、リソース制約、すなわち、2GBのRAM、エイトコアプロセッサで2GHz、4GBのSSD(Solid State Drive)、2GHzの内部通信バス、2GBのGPUおよびテンソルプロセッシングユニットを有する。シミュレーションインスタンス402Aのリソース構成404Aが、低リソース機能の組み込みデバイスのリソース構成にとって一般的なリソース構成であることがわかる。逆に、シミュレーションインスタンス402Cは、ビルトインGPUおよびテンソルプロセッシングユニットおよび高いリソース機能を有するパワフルなエッジデバイスの固有リソース構成のような固有リソース構成404Cを有する。
【0044】
シミュレーションモジュール106は、アプリケーションリポジトリ112から分析アプリケーションのクラウドコンテナを取得し、同時に分析アプリケーションのクラウドコンテナをシミュレーションインスタンス402A〜Cにデプロイする。シミュレーションインスタンス402A〜Cは、対応する固有リソース構成にしたがい、特定の期間(例えば48時間)の間、赤外線ビデオストリームデータを使用して分析アプリケーションを実行する。例示的な一実装において、シミュレーションインスタンス402A〜Cは、分析アプリケーションのクラウドコンテナを動作させるDocker(商標)ランタイムを有していてよい。クラウドコンテナは、同様に赤外線ビデオストリームデータを含んでいてよい。この期間中、シミュレーションモジュール106は、シミュレーションインスタンス402A〜Cにおいてシミュレーションされる分析アプリケーションの動作を監視する。シミュレーションモジュール106は、それぞれのシミュレーションインスタンス402A〜C上での分析アプリケーションの動作を示すパラメータ値を計算する。パラメータ値は、分析アプリケーションの出力の精度、プロセッサにおける平均/ピーク負荷、平均/ピーク読み出しおよび書き込み、GPU/テンソルプロセッシングユニットの平均/ピーク利用率などを指し示してよい。
【0045】
シミュレーションモジュール106は、それぞれのシミュレーションインスタンスに関連するパラメータ値が、あらかじめ定めた閾値レベル内にあるか否かをチェックする。例えば、あらかじめ定めた、プロセッサの利用率についての閾値が75%であるのに対し、特定のシミュレーションインスタンス(例えばシミュレーションインスタンス402A)上でのプロセッサの平均利用率が90%であることをパラメータ値が指し示している場合、特定のシミュレーションインスタンス(例えばシミュレーションインスタンス402A)上での分析アプリケーションの動作または性能は、不十分であるかまたは許容できないとされる。このことは、分析アプリケーションが、上記の特定のシミュレーションインスタンスの構成のような構成を有するエッジデバイス上で動作される場合には性能問題をまねくことになり得る。この例において分析アプリケーションには計算コストがかかり、したがってリソース構成404Aの低いシミュレーションインスタンス402A上では、分析アプリケーションの性能は不十分である。
【0046】
パラメータ値に基づき、シミュレーションモジュール106は、シミュレーションインスタンス402A〜Cから、分析アプリケーションの動作が十分であることが判明した1つ以上のシミュレーションインスタンスを識別する。言い換えると、これらのシミュレーションインスタンスについて計算されたパラメータ値は、あらかじめ定めた閾値レベル内にある。シミュレーションモジュール106により、分析アプリケーションの動作が十分であるシミュレーションインスタンス402Bおよび402Cが識別されるとする。
【0047】
シミュレーションモジュール106は、シミュレーションインスタンス402Bおよび402Cのうちで最も低い固有リソース構成を有するシミュレーションインスタンスを特定する。このケースでは、シミュレーションモジュール106は、エッジデバイス104A〜Nに分析アプリケーションをデプロイするのに最適なリソース構成として、シミュレーションインスタンス402Bに関連する固有リソース構成404Bを識別する。最適リソース構成は、分析アプリケーションのデプロイに適格であると認定されるためにエッジデバイスが有すべき最小の推奨されるリソース構成である。シミュレーションモジュール106は、アプリケーションリポジトリ112内の、分析アプリケーションに関連するメタファイルに最適リソース構成を格納する。
【0048】
エッジデバイス104Aに分析アプリケーションを供給するリクエストを受信すると、エッジデバイス管理モジュール110は、エッジデバイス104Aから、リアルタイムリソース利用可能情報を取得する。エッジデバイス管理モジュール110は、リアルタイプリソース利用可能情報および最適リソース構成に基づいて分析アプリケーションをリアルタイムに実行するために、エッジデバイス104Aのリアルタイムリソース機能を評価する。エッジデバイス104Aが最適リソース構成を有する場合、供給モジュール108は、エッジデバイス104Aに分析アプリケーションを供給する。このことは、分析アプリケーションがエッジデバイス104A上で実行される場合に、分析アプリケーションの性能が十分になり得ることを保証するのに役立つ。
【0049】
本発明は、1つ以上のコンピュータ、プロセッサまたは命令実行システムによって使用されるかもしくはこれらに関連するプログラムコードを格納するコンピュータ使用可能もしくはコンピュータ読み出し可能媒体から入手可能なプログラムモジュールを有するコンピュータプログラム製品の形態を取ることが可能である。この説明のために、コンピュータ使用可能もしくはコンピュータ読み出し可能媒体は、命令実行システム、装置またはデバイスによって使用されるかまたはこれらに関連するプログラムを含み、格納し、通信し、伝搬し、または伝送することが可能な任意の装置であってよい。上記の媒体は、電子的な、磁気的な、光学的な、電磁的な、赤外線式の、または半導体システム(または装置またはデバイス)または伝搬媒体それ自体であってよい。というのは、信号担体は、物理的なコンピュータ読み出し可能媒体の定義に含まれていないからである。上記の媒体には、半導体またはソリッドステートメモリ、磁気テープ、リムーバブルコンピュータディスケット、ランダムアクセスメモリ(RAM)、読出専用メモリ(ROM)、固定磁気ディスクおよびコンパクトディスク読出専用メモリ(CD−ROM)、コンパクトディスク読み出し/書き込み、およびDVDのような光学ディスクなどが含まれている。このテクノロジのそれぞれの様相を実現するためのプロセッサおよびプログラムコードの両方は、当業者に公知のように、一元化または分散化(またはこれらの組み合わせ)可能である。
【0050】
特定の実施形態を参照して本発明を詳しく説明したが、当然のことながら本発明はこれらの実施形態に限定されない。本開示を考慮すれば、当業者には、ここに説明した本発明のさまざまな実施形態の範囲から逸脱することなく、多くの修正形態および変化形態が想到されよう。したがって本発明の範囲は、上記の説明によるのではなくむしろ添付の請求項によって示される。請求項の同等物の意味および範囲内に入るすべての変更形態、修正形態および変化形態は、その範囲内に入るものと見される。方法についての請求項に示したすべての有利な実施形態は、システム/装置についての請求項にも適用可能である。