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

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

▶ インターナショナル・ビジネス・マシーンズ・コーポレーションの特許一覧 ▶ ユニバーシティ・カレッジ・ダブリンの特許一覧

特許7401163HiLaaS(Hardware-in-the-Loop as a Service)を使用した埋め込みシステムおよびアプリケーションのテスト
<>
  • 特許-HiLaaS(Hardware-in-the-Loop  as  a  Service)を使用した埋め込みシステムおよびアプリケーションのテスト 図1
  • 特許-HiLaaS(Hardware-in-the-Loop  as  a  Service)を使用した埋め込みシステムおよびアプリケーションのテスト 図2
  • 特許-HiLaaS(Hardware-in-the-Loop  as  a  Service)を使用した埋め込みシステムおよびアプリケーションのテスト 図3
  • 特許-HiLaaS(Hardware-in-the-Loop  as  a  Service)を使用した埋め込みシステムおよびアプリケーションのテスト 図4
  • 特許-HiLaaS(Hardware-in-the-Loop  as  a  Service)を使用した埋め込みシステムおよびアプリケーションのテスト 図5
  • 特許-HiLaaS(Hardware-in-the-Loop  as  a  Service)を使用した埋め込みシステムおよびアプリケーションのテスト 図6
  • 特許-HiLaaS(Hardware-in-the-Loop  as  a  Service)を使用した埋め込みシステムおよびアプリケーションのテスト 図7
  • 特許-HiLaaS(Hardware-in-the-Loop  as  a  Service)を使用した埋め込みシステムおよびアプリケーションのテスト 図8
  • 特許-HiLaaS(Hardware-in-the-Loop  as  a  Service)を使用した埋め込みシステムおよびアプリケーションのテスト 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-11
(45)【発行日】2023-12-19
(54)【発明の名称】HiLaaS(Hardware-in-the-Loop as a Service)を使用した埋め込みシステムおよびアプリケーションのテスト
(51)【国際特許分類】
   H04L 41/147 20220101AFI20231212BHJP
   H04L 41/40 20220101ALI20231212BHJP
   H04L 43/50 20220101ALI20231212BHJP
【FI】
H04L41/147
H04L41/40
H04L43/50
【請求項の数】 13
(21)【出願番号】P 2020537611
(86)(22)【出願日】2019-01-11
(65)【公表番号】
(43)【公表日】2021-05-13
(86)【国際出願番号】 EP2019050614
(87)【国際公開番号】W WO2019149504
(87)【国際公開日】2019-08-08
【審査請求日】2021-06-23
(31)【優先権主張番号】15/883,290
(32)【優先日】2018-01-30
(33)【優先権主張国・地域又は機関】US
【前置審査】
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(73)【特許権者】
【識別番号】506357055
【氏名又は名称】ユニバーシティー カレッジ ダブリン、ナショナル ユニバーシティー オブ アイルランド、ダブリン
【氏名又は名称原語表記】University College Dublin,National University of Ireland,Dublin
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(72)【発明者】
【氏名】エパーレイン、ジョナサン、ピーター
(72)【発明者】
【氏名】ガンベッラ、クラウディオ
(72)【発明者】
【氏名】グリッグス、ウィニータ、メイ
(72)【発明者】
【氏名】ラソウド、ヤシーン
(72)【発明者】
【氏名】マレチェク、ヤクブ
(72)【発明者】
【氏名】メヴィッセン、マーティン
(72)【発明者】
【氏名】モンテイル、ジュリアン
(72)【発明者】
【氏名】オルドネス-ウルタド、ロドリゴ、ハーマン
(72)【発明者】
【氏名】ルッソ、ジョバンニ
(72)【発明者】
【氏名】ショルテン、ロバート
(72)【発明者】
【氏名】ツック、セルギイ
【審査官】安藤 一道
(56)【参考文献】
【文献】特開2017-106911(JP,A)
【文献】特開2014-191765(JP,A)
【文献】特表2014-534487(JP,A)
【文献】中国特許出願公開第105630683(CN,A)
【文献】米国特許出願公開第2017/0372171(US,A1)
【文献】中国特許出願公開第104378252(CN,A)
【文献】アーキテクチャーを変え使用性を高める モバイルアプリ開発の新潮流,日経SYSTEMS 第244号 ,日本,日経BP社 Nikkei Business Publications,Inc.,2013年07月26日,pp. 34-37
(58)【調査した分野】(Int.Cl.,DB名)
H04L 41/00
H04L 43/00
(57)【特許請求の範囲】
【請求項1】
プロセッサによって、モノのインターネット(IoT)環境内のネットワーク化システムをテストするための方法であって、
シミュレーション環境に関連する制御パラメータおよび情報を受信することと、
前記シミュレーション環境内で、ネットワーク・システムに関連付けられた1つ以上の現実のエンティティおよび前記ネットワーク・システムに関連付けられた1つ以上のシミュレートされるエンティティ前記現実のエンティティおよび前記シミュレートされるエンティティの間の相互作用を考慮して、前記制御パラメータに従ってTaaS(testing as a service)としてテストすることであって、選択された期間にわたるテスト対象の前記1つ以上のシミュレートされるエンティティの数が、他のセンサからのデータおよび前記現実のエンティティを含む1つ以上のエンティティから受信したテストデータに従ってリアルタイムに決定および調整される、前記テストすることと、
前記1つ以上のシミュレートされるエンティティの前記テストに基づいて、前記1つ以上の現実のエンティティおよび前記1つ以上のシミュレートされるエンティティを含む複数のエンティティ、前記ネットワーク・システム、またはその組み合わせの特性を推定することとを含んでいる、方法。
【請求項2】
前記シミュレーション環境内で前記TaaSとしてテストすることが、
前記制御パラメータに従って前記シミュレーション環境内でテストするための価格を推定すること、あるいは
前記テストの前記推定された価格の承認を受信することをさらに含んでいる、請求項1に記載の方法。
【請求項3】
前記シミュレーション環境内で前記TaaSとしてテストすることが、
前記シミュレーション環境内でテストするための最大しきい値価格、価格設定の範囲、またはその組み合わせを受信すること、
前記シミュレーション環境内でテストするための前記最大しきい値価格、前記価格設定の範囲、またはその組み合わせに従って前記制御パラメータを調整すること、あるいは
前記調整された制御の承認を受信することをさらに含んでいる、請求項1に記載の方法。
【請求項4】
前記シミュレーション環境に関連する前記制御パラメータおよび前記情報を受信することが、
前記シミュレーション環境の記述を受信すること、
前記ネットワーク・システムの記述を受信することであって、前記記述が前記ネットワーク・システムのトポロジーを少なくとも含んでいる、前記受信すること、
前記ネットワーク・システムの動作に関連する履歴データを受信すること、
前記ネットワーク・システムの前記動作の選択された期間に関するスケジューリング・データを受信すること、
リアルタイムにストリーミングされたデータを前記1つ以上の現実のエンティティから受信すること、または
リアルタイムにストリーミングされたデータをサードパーティの前記他のセンサから受信することを含んでいる、請求項1に記載の方法。
【請求項5】
前記制御パラメータを受信することが、
前記テストを実行してテスト結果を提供するための前記選択された時間を受信すること、
前記1つ以上のシミュレートされるエンティティを前記テストすることに関する条件を受信すること、
前記テスト中のシステムの前記1つ以上の現実のエンティティを前記テストすることに関する条件を受信すること、または
前記テストの精度の測定値を受信することをさらに含んでいる、請求項1に記載の方法。
【請求項6】
前記シミュレーション環境内で前記TaaSとしてテストする前に、
前記制御パラメータに従って選択された期間にわたる前記1以上のシミュレートされるエンティティの数を推定すること、
前記制御パラメータに従って、前記ネットワーク化システムに関連付けられた前記1つ以上の現実のエンティティ、前記1つ以上のシミュレートされるエンティティ、および環境の間の相互作用の数を推定すること、または
前記制御パラメータに従って、選択された期間にわたって前記複数のエンティティおよび前記相互作用の数をシミュレートするのに必要なコンピューティング・システムを推定することをさらに含んでいる、請求項1に記載の方法。
【請求項7】
前記テストすることが、
前記制御パラメータに従って前記エンティティをシミュレートすることと、
シミュレーション中に前記シミュレーション環境をリアルタイムに更新することであって、前記ネットワーク・システムの動作の履歴データを少なくとも含んでいる、前記更新することとをさらに含んでいる、請求項1に記載の方法。
【請求項8】
前記1つ以上のシミュレートされるエンティティに関してリアルタイムにストリーミングされたデータを、前記1つ以上のシミュレートされるエンティティの前記テストの出力として提供することをさらに含んでいる、請求項1に記載の方法。
【請求項9】
前記シミュレートされる環境にアクセスするために、前記エンティティ、ユーザ、またはその組み合わせによるリモート・アクセス用のインターフェイスを提供することをさらに含んでいる、請求項1に記載の方法。
【請求項10】
シミュレーション環境の記述および価格を受信することと、
前記価格およびシミュレーション環境の前記記述に従って、テストの前記制御パラメータを推定することと、
前記制御パラメータの承認時に、前記制御パラメータに従って、関連付けられた前記エンティティ、前記シミュレートされるエンティティ、またはその組み合わせをテストすることと、
前記シミュレートされるエンティティの前記テストに基づいて、前記エンティティ、前記ネットワーク・システム、またはその組み合わせの前記特性を推定することとをさらに含んでいる、請求項1に記載の方法。
【請求項11】
モノのインターネット(IoT)ネットワーク環境内のネットワーク化システムをテストするためのシステムであって、
シミュレーション環境に関連する制御パラメータおよび情報を受信することと、
前記シミュレーション環境内で、ネットワーク・システムに関連付けられた1つ以上の現実のエンティティおよび前記ネットワーク・システムに関連付けられた1つ以上のシミュレートされるエンティティ前記現実のエンティティおよび前記シミュレートされるエンティティの間の相互作用を考慮して、前記制御パラメータに従ってTaaS(testing as a service)としてテストすることであって、選択された期間にわたるテスト対象の前記1つ以上のシミュレートされるエンティティの数が、他のセンサからのデータおよび前記現実のエンティティを含む1つ以上のエンティティから受信したテストデータに従ってリアルタイムに決定および調整される、前記テストすることと、
前記1つ以上のシミュレートされるエンティティの前記テストに基づいて、前記1つ以上の現実のエンティティおよび前記1つ以上のシミュレートされるエンティティを含む複数のエンティティ、前記ネットワーク・システム、またはその組み合わせの特性を推定することとを実行する、システム。
【請求項12】
前記シミュレーション環境に関連する前記制御パラメータおよび前記情報を受信することに従って、実行可能な命令が、実行された場合に、前記システムに、
前記シミュレーション環境の記述を受信すること、
前記ネットワーク・システムの記述を受信することであって、前記記述が前記ネットワーク・システムのトポロジーを少なくとも含んでいる、前記受信すること、
前記ネットワーク・システムの動作に関連する履歴データを受信すること、
前記ネットワーク・システムの前記動作の選択された期間に関するスケジューリング・データを受信すること、
リアルタイムにストリーミングされたデータを前記1つ以上の現実のエンティティから受信すること、
リアルタイムにストリーミングされたデータをサードパーティから受信することであって、前記ストリーミングされたデータが気象監視データ、汚染監視データ、衛星画像データ、もしくは航空画像データ、またはその組み合わせを含んでいる、前記受信すること、
前記テストを実行してテスト結果を提供するための選択された時間を受信すること、
前記1つ以上のシミュレートされるエンティティを前記テストすることに関する条件を受信すること、
前記テスト中のシステムの前記1つ以上の現実のエンティティを前記テストすることに関する条件を受信すること、あるいは
前記テストの精度の測定値を受信することを実行させる、請求項11に記載のシステム。
【請求項13】
プロセッサによって、コンピューティング環境内のネットワーク化システムをテストするためのコンピュータ・プログラムであって、前記プロセッサに、
シミュレーション環境に関連する制御パラメータおよび情報を受信することと、
前記シミュレーション環境内で、ネットワーク・システムに関連付けられた1つ以上の現実のエンティティおよび前記ネットワーク・システムに関連付けられた1つ以上のシミュレートされるエンティティ前記現実のエンティティおよび前記シミュレートされるエンティティの間の相互作用を考慮して、前記制御パラメータに従ってTaaS(testing as a service)としてテストすることであって、選択された期間にわたるテスト対象の前記1つ以上のシミュレートされるエンティティの数が、他のセンサからのデータおよび前記現実のエンティティを含む1つ以上のエンティティから受信したテストデータに従ってリアルタイムに決定および調整される、前記テストすることと、
前記1つ以上のシミュレートされるエンティティの前記テストに基づいて、前記1つ以上の現実のエンティティおよび前記1つ以上のシミュレートされるエンティティを含む複数のエンティティ、前記ネットワーク・システム、またはその組み合わせの特性を推定することとを実行させるためのコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本出願につながるプロジェクトは、協定書第692455号の下でElectronic Component Systems for European Leadership Joint Undertakingから資金提供を受けた。このJoint Undertakingは、欧州連合のHorizon 2020研究および革新プログラムならびにオーストリア、デンマーク、ドイツ、フィンランド、チェコ共和国、イタリア、スペイン、ポルトガル、ポーランド、アイルランド、ベルギー、フランス、オランダ、イギリス、スロバキア、ノルウェーから支援を受けている。
【0002】
本発明は、一般に、コンピューティング・システムに関連しており、より詳細には、接続されたさまざまなセンサを使用してネットワーク化システムがリアルタイムに監視される環境(モノのインターネット(IoT:Internet of Things)とも呼ばれる)で、かつ、埋め込みシステムの一部が製造された形態で使用可能であり、その他の埋め込みシステムが、オンデマンドでシミュレートされ、HiLaaS(Hardware-in-the-Loop as a Service)として示される環境内の、埋め込みシステムのさまざまなテストに関連している。
【背景技術】
【0003】
現在の社会において、消費者、実業家、教育者、およびその他の人々は、さまざまなコンピューティング・システムをさまざまな設定で使用し、それらのコンピューティング・システムの多くは、前述のシステムの相互接続を含んでいる。集積回路の出現およびさらなる小型化に伴って、コンピューティング・システムは、多種多様な個人用デバイス、ビジネス用デバイス、健康用デバイス、家庭用デバイス、教育用デバイス、娯楽用デバイス、旅行用デバイス、およびその他のデバイスに統合できるようになった。例えば、あらゆる種類の車両は、複数のコンピューティング・システムを備えている。そのようなデータ処理デバイスの使用が社会全体に広まり続けるにつれて、そのようなデバイスに依存するようになっている。そのようなデバイスおよび特にそれらの相互作用を信頼するには、そのようなデバイスの特性のテストが極めて重要になる。
【発明の概要】
【発明が解決しようとする課題】
【0004】
HiLaaS(Hardware-in-the-Loop as a Service)を使用した埋め込みシステムおよびアプリケーションのテストを提供する。
【課題を解決するための手段】
【0005】
1つの態様によれば、プロセッサによって、モノのインターネット(IoT)環境内のネットワーク化システムをテストするための方法が提供されており、この方法は、シミュレーション環境に関連する1つまたは複数の制御パラメータおよび情報を受信することと、シミュレーション環境内で、ネットワーク・システムに関連付けられた1つもしくは複数のエンティティ、ネットワーク・システムに関連付けられた1つもしくは複数のシミュレートされるエンティティ、またはその組み合わせを、1つまたは複数の制御パラメータに従ってTaaS(testing as a service)としてテストすることと、1つまたは複数のシミュレートされるエンティティのテストに基づいて、1つもしくは複数のエンティティ、ネットワーク・システム、またはその組み合わせの1つまたは複数の特性を推定することとを含む。
【0006】
別の態様によれば、モノのインターネット(IoT)ネットワーク環境内のネットワーク化システムをテストするためのシステムが提供されており、このシステムは、実行可能な命令を含む1つまたは複数のコンピュータを備えており、これらの実行可能な命令は、実行されたときに、システムに、シミュレーション環境に関連する1つまたは複数の制御パラメータおよび情報を受信することと、シミュレーション環境内で、ネットワーク・システムに関連付けられた1つもしくは複数のエンティティ、ネットワーク・システムに関連付けられた1つもしくは複数のシミュレートされるエンティティ、またはその組み合わせを、1つまたは複数の制御パラメータに従ってTaaS(testing as a service)としてテストすることと、1つまたは複数のシミュレートされるエンティティのテストに基づいて、1つもしくは複数のエンティティ、ネットワーク・システム、またはその組み合わせの1つまたは複数の特性を推定することとを実行させる。
【0007】
別の態様によれば、プロセッサによって、コンピューティング環境内のネットワーク化システムをテストするコンピュータ・プログラム製品が提供されており、このコンピュータ・プログラム製品は、コンピュータ可読プログラム・コード部分が格納された非一過性コンピュータ可読記憶媒体を備えており、このコンピュータ可読プログラム・コード部分は、シミュレーション環境に関連する1つまたは複数の制御パラメータおよび情報を受信する実行可能な部分と、シミュレーション環境内で、ネットワーク・システムに関連付けられた1つもしくは複数のエンティティ、ネットワーク・システムに関連付けられた1つもしくは複数のシミュレートされるエンティティ、またはその組み合わせを、1つまたは複数の制御パラメータに従ってTaaS(testing as a service)としてテストする実行可能な部分と、1つまたは複数のシミュレートされるエンティティのテストに基づいて、1つもしくは複数のエンティティ、ネットワーク・システム、またはその組み合わせの1つまたは複数の特性を推定する実行可能な部分とを含む。
【0008】
モノのインターネット(IoT)環境内のネットワーク化システムをテストするためのさまざまな実施形態が提供される。1つの実施形態では、単に例として、プロセッサによって、コンピューティング環境内でHiLaaS(Hardware-in-the-Loop as a Service)を使用して埋め込みシステムおよびアプリケーションをテストするための方法が提供される。HiLaaSテストは、制御パラメータに従って、1つまたは複数のネットワーク化システムの1つまたは複数のシミュレートされるエンティティと一緒にリアルタイムにテストされる、1つまたは複数の現実の埋め込みシステムを含む。シミュレーション用の制御パラメータは、シミュレーション環境内でテストされるために、受信されるか、または定義されるか、あるいはその両方が実行されてよい。HiLaaSテストのコストは、制御パラメータおよびネットワーク化システムによって決まることがある。HiLaaSテストの出力は、1つまたは複数のシミュレートされるエンティティのテストに基づく、1つもしくは複数のエンティティ、ネットワーク・システム、またはその組み合わせの1つまたは複数の特性の推定値であってよい。
【0009】
本発明の利点を容易に理解するために、上で簡単に説明された本発明のより詳細な説明が、添付の図面において示された特定の実施形態を参照することによって提供される。これら図面が本発明の典型的な実施形態のみを表しており、したがって、本発明の範囲の制限と見なされるべきではないということを理解して、添付の図面を使用することによって、追加の特殊性および詳細と共に本発明が表され、説明される。
【図面の簡単な説明】
【0010】
図1】本発明の実施形態に従って例示的なコンピューティング・ノードを示すブロック図である。
図2】本発明の実施形態に従って例示的なクラウド・コンピューティング環境を示す追加のブロック図である。
図3】本発明の実施形態に従って抽象モデル・レイヤを示す追加のブロック図である。
図4】本発明の実施形態に従って機能する、モノのインターネット(IoT)コンピューティング・ネットワーク環境内の交通シミュレーション・テスト用の例示的なシステムを示す図である。
図5】本発明の実施形態に従って機能する、モノのインターネット(IoT)コンピューティング・ネットワーク環境内の交通シミュレーション・テスト用の例示的なシステムを示す追加の図である。
図6】HiLaaS(Hardware-in-the-Loop as a Service)を使用してモノのインターネット(IoT)コンピューティング・ネットワーク環境内の埋め込みシステムおよびアプリケーションをテストするための例示的な方法を示すフローチャート図であり、やはりこの方法で、本発明のさまざまな実施形態が実装されてよい。
図7】HiLaaS(Hardware-in-the-Loop as a Service)を使用してモノのインターネット(IoT)ネットワーク環境内の埋め込みシステムおよびアプリケーションをテストするための例示的な方法を示す追加のフローチャート図であり、やはりこの方法で、本発明のさまざまな実施形態が実装されてよい。
図8】HiLaaSを使用してIoTネットワーク環境内の埋め込みシステムおよびアプリケーションをテストするための例示的な方法を示す追加のフローチャート図であり、この方法で、本発明のさまざまな実施形態が実装されてよい。
図9】HiLaaSを使用してIoTネットワーク環境内の埋め込みシステムおよびアプリケーションをテストするための例示的な方法を示す追加のフローチャート図であり、やはりこの方法で、本発明のさまざまな実施形態が実装されてよい。
【発明を実施するための形態】
【0011】
コンピュータおよびネットワーク技術の出現は、世界の一方の側から他方への人々またはデバイスの相互通信を可能にした。例えば、クラウド・コンピューティングが、IaaS(Infrastructure as a Service)、PaaS(Platform as a Service)、またはSaaS(Software as a Service)、あるいはその組み合わせなどの形態で、インターネットを経由したサービスとして提供されることがある。IaaSは、通常、物理コンピューティング・デバイスもしくは仮想コンピューティング・デバイス、または出来高払いに基づく付属物、あるいはその両方を提供することができ、クライアント/ユーザは、それらのコンピューティング・デバイス上でプラットフォーム、アプリケーション、またはデータ、あるいはその組み合わせを読み込むか、またはインストールするか、あるいはその両方を実行し、管理することができる。PaaSは、コンピューティング・プラットフォームおよびソリューション・スタックを、例えば、ソフトウェア開発プラットフォーム、アプリケーション・サービスなどのサービス(チームの共同作業、Webサービスの統合、データベースの統合、または開発者コミュニティの促進、あるいはその組み合わせなど)として提供できる。SaaSは、オンデマンドのサービスとして使用するために、ソフトウェア・ライセンスをアプリケーションとして顧客に展開できる。SaaSソフトウェア・ベンダーは、それらが所有するクラウド上でアプリケーションをホストするか、またはそのようなアプリケーションをクラウドからクラウドのクライアントにダウンロードし、使用後またはオンデマンド契約の終了後に、アプリケーションを無効にすることができる。
【0012】
追加の態様では、モノのインターネット(Internet of Things)(Internet of objectsとも呼ばれる)とは、日常的な物のネットワーク化された相互接続またはコンピューティング・デバイスの相互接続(IoTデバイス)のことを指す。モノのインターネットは、すべての物を相互接続するという目的を持つセンサの無線ネットワークを自己構成することとして説明される。IoTデバイスは、一意に識別可能であることができ、コンピューティング・ネットワークを介して1つまたは複数の他のIoTデバイスと通信し、デバイス構成を形成することができる。複数のプロトコル、ドメイン、およびアプリケーションが、IoTデバイスにおいて実装されてよい。IoTデバイスは、家庭用電気製品、製造装置、産業用プリンタ、自動車、サーモスタット、スマート信号機、車両、建物などの、さまざまな物理デバイスまたは製品に埋め込まれてよい。さらに、IoTコンピューティング・システムは、例えば、住宅の顧客の電力負荷を部分的に制御する能力を提供する「需要応答管理」を含んでよく、例えば、電力負荷をリモートから制御することなどを行うことができる。その他の例として、輸送業界では、IoTコンピューティング・システムの要素が、1つまたは複数の種類の車両を含むことがある。
【0013】
しかし、現在の課題は、さまざまなクラウド・コンピューティング・システムおよびIoTコンピューティング・システムに影響を与えている。例えば、IoTコンピューティング・システムでは、数十万のセンサ(例えば、「スマート・ワイヤ」およびワイヤ上の温度の測定)を同時に展開することは困難であり、提案されたパイロット・プロジェクトにおいてわずか数個のセンサを展開することからセンサの効果を予測することも、困難であることがある。したがって、本発明は、モノのインターネット(IoT)ネットワーク環境内で、HiLaaS(Hardware-in-the-Loop as a Service)を使用して埋め込みシステムおよびアプリケーションをテストするための解決策を提供しようとするのが好ましい。
【0014】
一実施形態では、ループ内のハードウェアが、固定された数のシミュレートされる要素を含むシミュレーション・エンジン(例えば、単純なシミュレーション・エンジン)と連携して、例えば、4つの車輪の静止摩擦および1つの駆動輪からの入力をシミュレートしながら、他の車両から独立している車両のエンジンをテストすることに適用されてよい。IoTアプリケーションでは、シミュレートされる要素の数が変化する傾向があり、非常に多くなる傾向があり(例えば、数千の車両)、結果の精度はシミュレートされる要素の数によって決まる。そのため、本発明は、HiLaaSテストを、テスト中のネットワーク化システム内の要素の数が時間と共に変化するようなネットワーク化システムに適用することを可能にするのが好ましい。したがって、実施形態例のメカニズムは、ネットワーク化システムのシミュレーションを提供することができ、データをリアルタイムに提供するために一部の実際の要素または現実の要素を備えながら、時間と共に変化する数のその他の要素をシミュレートすることができる。例えば、電力システムでは、HiLaaSテストは、ある期間にわたって一定であることがあるトポロジーを単にテストすること(例えば、発電所の停止の影響をテストすること)を越えて、時間と共に変化するトポロジーのテスト(例えば、最適な送電の切り替え)、および個々のユーザの割り込みを考慮するテスト(例えば、ユーザが電力負荷を増減することによって引き起こされる電力負荷の個々の割り込みのテスト)の両方にまで及ぶ。追加の例として、実施形態例のメカニズムは、実際の現実の車両および時間と共に変化する数の他の車両(例えば、交通シミュレーション・テストにおける時間と共に変化する数の他のシミュレートされる車両)の全地球測位衛星(GPS:global positioning satellites)を使用して交通をシミュレートすることによって、輸送部門をテストするHiLaaSを提供することができる。
【0015】
一実施形態では、ネットワーク化システムのHiLaaSテストの場合、時間と共に変化する数のエンティティが、長期間の解析にとって極めて重要である。例えば、多くのアプリケーション(例えば、電力システム、輸送、ネットワーク)にわたる需要は、極めて短い期間(例えば、数分)が考慮される場合にのみ、定常性を示す。したがって、本発明は、選択された期間(例えば、24時間以上)にわたってアプリケーションまたはシステムをシミュレートするために、非定常の方法で複数のシミュレートされるエンティティの数が変化できるようにするのが好ましい。現実のエンティティの数は、シミュレーションが長期間(例えば、自動運転車両の道路の安全性のテストでは数年)実行される場合、例えば現実的な理由など(例えば、故障、シミュレーションの拡大など)に起因して、変化することもある。
【0016】
一実施形態では、シミュレートするイベントの頻度が、例えば低頻度(例えば、1ヘルツ「Hz」)のイベントなどとして定義されることがあり、一方、ネットワーク化システム内の要素の数が、大量(例えば、数千の要素)になることがある。例えば、道路上に3千台の車両が存在する54キロメートル(「km」)の環状道路または幹線道路に関する速度推奨システム(speed advisory system)などの、輸送アプリケーションでは、各車両が1時間の間、道路上に留まることがあり、したがって、道路上の車両の1Hzの頻度の到着および出発を考慮する。都市規模の速度推奨システムでは、ピーク時に、30Hzの頻度の到着および出発を伴って、150kmの道路網上に数十万台の車両が存在することがある。さらに、輸送アプリケーションでは、車両が任意の速さに加速および減速することができないことがあり、多くのその他のイベントに関しても、提案される頻度の現実的な時間の離散化を行う。
【0017】
ネットワーク化システムを含むIoTコンピューティング・システムに適用されるHiLaaSテストは、(複数の要素を個別にテストすることに比べて)要素の相互作用(例えば、非線形相互作用)をテストすることを含むことができる。例えば、車両の速度を決定することにおいて、前述の車両の速度は、同じ車線内の先行車両または後続車両、ならびにこの車線に合流する車両、および場合によっては、他の車線内の車両の速度を含む、複数の要因に基づいて設定される。理想的には、本明細書の例において検討される速度推奨システムは、道路上のすべての車両の速度を含む、そのようなすべての要因を考慮し、道路上のすべての車両の速度を一緒に設定することができる。ネットワーク化システムの個々の要素の接続および自動化が改善されるため、相互作用を監視してシミュレートすることが可能になることがあり、それによって、シミュレーション精度が向上する。
【0018】
速度推奨の例を詳細に示すために、例えば領域「A」などの選択された地理的領域内で、速度推奨システムが動作中であり、通り上のある数の実際の車両の位置がその入力であると仮定する。従来、そのようなシステムは、シミュレーションにおいてのみテストされ、その後、すべてのユーザがシミュレートされたテストに反応するように、すべてのユーザに展開された。HiLaaSテストでは、HiLaaSテスト・システムが、道路ユーザのうちの1人または複数に展開されてよく、傾斜計測データなどのセンサ・データを吸収しながら、他の道路ユーザの挙動をシミュレートしてよい。例えば、引継ぎがシミュレートされない限り、シミュレートされる車両の速度が、位置が入力されて吸収される実際の車両の速度を超えることができないなどの、シミュレーション環境における1つまたは複数のルールが定義されてよい。道路ユーザの推奨された速度の順守などの、その他のルールは、概算であってよい。さらに、HiLaaSテストは、現実の車両とシミュレートされる車両の間のさまざまな相互作用を考慮することによって、交通密度および時間の経過に伴う交通密度の発達などの、ネットワーク・システムの特性の推定を可能にする。
【0019】
追加の例として、電力システムでは、報告された風速の低下は、電力の大口ユーザ(企業または組織など)が電力価格の上昇を予想するため、有効電力に対する需要の低下を引き起こすことがある。HiLaaSテストでは、そのような相互作用をモデル化することもできる。HiLaaSテストでは、多数の実際のエンティティが存在するのが好ましいということに、注意するべきである。輸送アプリケーションでは、少数の実際の車両のみがその位置を提供し、少数の実際の車両が「敵対的」である(例えば、交通渋滞の印象を意図的に作り出そうとして、非常にゆっくり運転している)場合、速度推奨システムは、準最適な推奨を提供することがある。その結果、多くの運転者は、大規模な展開においては移動ルートの変更が厳密には必要ない場合でも、移動ルートを変更することがある。
【0020】
大規模なネットワーク化システムをテストするには、選択された期間(例えば、短期間)の間の高性能の計算(例えば、数百個または数千個あるいはその両方の計算ノード)が必要になることがある。テストの目的で高性能のハードウェアを購入するのは経済的でないことがあるが、HiLaaSテストは、高性能のハードウェアへのアクセスを「サービスとして」(例えば、オンデマンドのサービスとして)提供し、それによって、高性能のコンピューティング設備がクラウド・コンピューティング環境内で共有される。
【0021】
一実施形態では、本発明のメカニズムは、シミュレーション環境内で、さまざまなシミュレーション・パラメータ(例えば、「入力」)をHiLaaSテストに使用することができる。シミュレーション・パラメータ(例えば、「入力」)は、ネットワーク・システムに関連する静的データ(例えば、電力システムの記述および詳細、輸送網の記述および詳細など)と、選択された期間に関するデータ(例えば、始動停止スケジュール、輸送の時刻表/スケジュール、カレンダー・データなどの「1日当たりのデータ」)と、ネットワーク化システムに関連付けられた1つまたは複数のエンティティおよび環境からリアルタイムにストリーミングされたデータ(例えば、割り込み可能な負荷のうちの1つの負荷、テスト車両の位置)と、1つまたは複数のエンティティに関連する情報(例えば、HiLaaSテスト用のシミュレーション・エンジンの種類、HiLaaSテストの構成、エンティティの挙動、または他のユーザによって定義された情報)とを含んでよいが、これらに限定されない。
【0022】
HiLaaSテストは、さまざまなシミュレーション・パラメータまたは「入力」を使用して、複数のエンティティを推定し、ネットワーク化システムのシミュレートされるエンティティ、現実のエンティティ(例えば、シミュレートされないエンティティ)、および環境の間の相互作用をシミュレートするか、または推定するか、あるいはその両方を実行することができる。ネットワーク化システムのHiLaaSテストの出力は、シミュレートされるエンティティのリアルタイムにストリーミングされたデータ、および他のアプリケーションにおける可能性のある使用に関する、シミュレートされるエンティティの同じデータの予測を提供することができる。例えば、予測に基づいて、リアルタイムに提供されるサービスの価格を設定する(例えば、ネットワーク・システムの挙動を予測して、選択された価格でHiLaaSサービスを提供する)などの、1つまたは複数の理由または動機のために、ネットワーク・システムの挙動が予測されてよいということに、注意するべきである。ネットワーク化システムのHiLaaSテストの出力は、シミュレートされるエンティティおよびその予測に基づいて、ネットワーク化システムの1つまたは複数の特性を推定してもよい。
【0023】
実施形態例のさまざまな態様のその他の例および対応する利益が、本明細書においてさらに説明される。
【0024】
本開示にはクラウド・コンピューティングの詳細な説明が含まれているが、本明細書において示された教示の実装は、クラウド・コンピューティング環境に限定されないということが、あらかじめ理解される。本発明の実施形態は、現在既知であるか、または今後開発される任意のその他の種類のコンピューティング環境と組み合わせて実装できる。
【0025】
クラウド・コンピューティングは、構成可能な計算リソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)の共有プールへの便利なオンデマンドのネットワーク・アクセスを可能にするためのサービス提供モデルであり、管理上の手間またはサービス・プロバイダとのやりとりを最小限に抑えて、これらのリソースを迅速にプロビジョニングおよび解放することができる。このクラウド・モデルは、少なくとも5つの特徴、少なくとも3つのサービス・モデル、および少なくとも4つのデプロイメント・モデルを含むことができる。
【0026】
特徴は、次のとおりである。
オンデマンドのセルフ・サービス:クラウドの利用者は、サーバの時間、ネットワーク・ストレージなどの計算能力を一方的に、サービス・プロバイダとの人間的なやりとりを必要とせず、必要に応じて自動的にプロビジョニングすることができる。
幅広いネットワーク・アクセス:クラウドの能力は、ネットワークを経由して利用可能であり、標準的なメカニズムを使用してアクセスできるため、異種のシン・クライアントまたはシック・クライアント・プラットフォーム(例えば、携帯電話、ラップトップ、およびPDA)による利用を促進する。
リソース・プール:プロバイダの計算リソースは、プールされ、マルチテナント・モデルを使用して複数の利用者に提供される。さまざまな物理的および仮想的リソースが、要求に従って動的に割り当ておよび再割り当てされる。場所に依存しないという感覚があり、利用者は通常、提供されるリソースの正確な場所に関して管理することも知ることもないが、さらに高い抽象レベルでは、場所(例えば、国、州、またはデータセンター)を指定できる場合がある。
迅速な順応性:クラウドの能力は、迅速かつ柔軟に、場合によっては自動的にプロビジョニングされ、素早くスケール・アウトし、迅速に解放されて素早くスケール・インすることができる。プロビジョニングに使用できる能力は、利用者には、多くの場合、任意の量をいつでも無制限に購入できるように見える。
測定されるサービス:クラウド・システムは、計測機能を活用することによって、サービスの種類(例えば、ストレージ、処理、帯域幅、およびアクティブなユーザのアカウント)に適した抽象レベルで、リソースの使用を自動的に制御および最適化する。リソースの使用量は監視、制御、および報告することができ、利用されるサービスのプロバイダと利用者の両方に透明性が提供される。
【0027】
サービス・モデルは、次のとおりである。
SaaS(Software as a Service):利用者に提供される能力は、クラウド・インフラストラクチャ上で稼働しているプロバイダのアプリケーションの利用である。それらのアプリケーションは、Webブラウザ(例えば、Webベースの電子メール)などのシン・クライアント・インターフェイスを介して、さまざまなクライアント・デバイスからアクセスできる。利用者は、ネットワーク、サーバ、オペレーティング・システム、ストレージ、または個々のアプリケーション機能を含む基盤になるクラウド・インフラストラクチャを、限定的なユーザ固有のアプリケーション構成設定を行う可能性を除き、管理することも制御することもない。
PaaS(Platform as a Service):利用者に提供される能力は、プロバイダによってサポートされるプログラミング言語およびツールを使用して作成された、利用者が作成または取得したアプリケーションをクラウド・インフラストラクチャにデプロイすることである。利用者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む基盤になるクラウド・インフラストラクチャを管理することも制御することもないが、デプロイされたアプリケーション、および場合によってはアプリケーション・ホスティング環境の構成を制御することができる。
IaaS(Infrastructure as a Service):利用者に提供される能力は、処理、ストレージ、ネットワーク、およびその他の基本的な計算リソースのプロビジョニングであり、利用者は、オペレーティング・システムおよびアプリケーションを含むことができる任意のソフトウェアをデプロイして実行できる。利用者は、基盤になるクラウド・インフラストラクチャを管理することも制御することもないが、オペレーティング・システム、ストレージ、およびデプロイされたアプリケーションを制御することができ、場合によっては、選択されたネットワーク・コンポーネント(例えば、ホスト・ファイアウォール)を限定的に制御できる。
【0028】
デプロイメント・モデルは、次のとおりである。
プライベート・クラウド:このクラウド・インフラストラクチャは、ある組織のためにのみ運用される。この組織またはサードパーティによって管理することができ、オンプレミスまたはオフプレミスに存在することができる。
コミュニティ・クラウド:このクラウド・インフラストラクチャは、複数の組織によって共有され、関心事(例えば、任務、セキュリティ要件、ポリシー、およびコンプライアンスに関する考慮事項)を共有している特定のコミュニティをサポートする。これらの組織またはサードパーティによって管理することができ、オンプレミスまたはオフプレミスに存在することができる。
パブリック・クラウド:このクラウド・インフラストラクチャは、一般ユーザまたは大規模な業界団体が使用できるようになっており、クラウド・サービスを販売する組織によって所有される。
ハイブリッド・クラウド:このクラウド・インフラストラクチャは、データとアプリケーションの移植を可能にする標準化された技術または独自の技術(例えば、クラウド間の負荷バランスを調整するためのクラウド・バースト)によって固有のエンティティを残したまま互いに結合された2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)の複合である。
【0029】
クラウド・コンピューティング環境は、ステートレス、疎結合、モジュール性、および意味的相互運用性に重点を置いたサービス指向の環境である。クラウド・コンピューティングの中心になるのは、相互接続されたノードのネットワークを備えるインフラストラクチャである。
【0030】
ここで図1を参照すると、クラウド・コンピューティング・ノードの例の概略図が示されている。クラウド・コンピューティング・ノード10は、適切なクラウド・コンピューティング・ノードの一例に過ぎず、本明細書に記載された本発明の実施形態の使用または機能の範囲に関して、いかなる制限を示唆することも意図されていない。いずれにせよ、クラウド・コンピューティング・ノード10は、前述した機能のいずれかを実装すること、または実行すること、あるいはその両方を行うことができる。
【0031】
クラウド・コンピューティング・ノード10内には、他の多数の汎用または専用のコンピューティング・システム環境または構成で運用できるコンピュータ・システム/サーバ12が存在する。コンピュータ・システム/サーバ12と共に使用するのに適した周知のコンピューティング・システム、環境、または構成、あるいはその組み合わせの例は、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルドまたはラップトップ・デバイス、マイクロプロセッサ・システム、マイクロプロセッサベース・システム、セット・トップ・ボックス、プログラマブル・コンシューマ・エレクトロニクス、ネットワークPC、マイクロコンピュータ・システム、メインフレーム・コンピュータ・システム、およびこれらの任意のシステムまたはデバイスを含む分散クラウド・コンピューティング環境などを含むが、これらに限定されない。
【0032】
コンピュータ・システム/サーバ12は、コンピュータ・システムによって実行されているプログラム・モジュールなどの、コンピュータ・システムによって実行可能な命令との一般的な関連において説明されてよい。通常、プログラム・モジュールは、特定のタスクを実行するか、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、論理、データ構造などを含んでよい。コンピュータ・システム/サーバ12は、通信ネットワークを介してリンクされたリモート処理デバイスによってタスクが実行される、分散クラウド・コンピューティング環境内で実践されてよい。分散クラウド・コンピューティング環境において、プログラム・モジュールは、メモリ・ストレージ・デバイスを含む、ローカルおよびリモートの両方のコンピュータ・システム記憶媒体に配置されてよい。
【0033】
図1に示すように、クラウド・コンピューティング・ノード10内のコンピュータ・システム/サーバ12は、汎用コンピューティング・デバイスの形態で示されている。コンピュータ・システム/サーバ12のコンポーネントは、1つまたは複数のプロセッサまたはプロセッシング・ユニット16、システム・メモリ28、およびシステム・メモリ28を含むさまざまなシステム・コンポーネントをプロセッサ16に結合するバス18を含むことができるが、これらに限定されない。
【0034】
バス18は、メモリ・バスまたはメモリ・コントローラ、ペリフェラル・バス、アクセラレーテッド・グラフィックス・ポート、および任意のさまざまなバス・アーキテクチャを使用するプロセッサまたはローカル・バスを含む、任意の複数の種類のバス構造のうちの1つまたは複数を表す。例として、そのようなアーキテクチャは、ISA(Industry Standard Architecture)バス、MCA(Micro Channel Architecture)バス、EISA(Enhanced ISA)バス、VESA(Video Electronics Standards Association)ローカル・バス、およびPCI(Peripheral Component Interconnects)バスを含むが、これらに限定されない。
【0035】
コンピュータ・システム/サーバ12は、通常、さまざまなコンピュータ・システム可読媒体を含む。そのような媒体は、コンピュータ・システム/サーバ12によってアクセスできる任意の使用可能な媒体であってよく、揮発性および不揮発性媒体、取り外し可能および取り外し不可の媒体を含む。
【0036】
システム・メモリ28は、ランダム・アクセス・メモリ(RAM:random access memory)30またはキャッシュ・メモリ32あるいはその両方などの、揮発性メモリの形態でのコンピュータ・システム可読媒体を含むことができる。コンピュータ・システム/サーバ12は、その他の取り外し可能/取り外し不可、揮発性/不揮発性のコンピュータ・システム・ストレージ媒体をさらに含んでよい。単に例として、取り外し不可、不揮発性の磁気媒体(図示されておらず、通常は「ハード・ドライブ」と呼ばれる)に対する読み取りと書き込みを行うために、ストレージ・システム34を提供することができる。図示されていないが、取り外し可能、不揮発性の磁気ディスク(例えば、「フロッピー(R)・ディスク」)に対する読み取りと書き込みを行うための磁気ディスク・ドライブ、およびCD-ROM、DVD-ROM、またはその他の光媒体などの取り外し可能、不揮発性の光ディスクに対する読み取りと書き込みを行うための光ディスク・ドライブを提供することができる。そのような例では、それぞれを、1つまたは複数のデータ媒体インターフェイスによってバス18に接続することができる。下で詳細に示され、説明されているように、システム・メモリ28は、本発明の実施形態の機能を実行するように構成された一連の(例えば、少なくとも1つの)プログラム・モジュールを備える少なくとも1つのプログラム製品を含んでよい。
【0037】
例えば、一連の(少なくとも1つの)プログラム・モジュール42を含んでいるプログラム/ユーティリティ40がシステム・メモリ28に格納されてよいが、これに限定されず、オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、その他のプログラム・モジュール、およびプログラム・データも格納されてよい。オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、その他のプログラム・モジュール、およびプログラム・データまたはこれらの組み合わせの各々は、ネットワーク環境の実装を含んでよい。プログラム・モジュール42は、通常、本明細書に記載された本発明の実施形態の機能または方法あるいはその両方を実行する。
【0038】
また、コンピュータ・システム/サーバ12は、キーボード、ポインティング・デバイス、ディスプレイ24などの1つまたは複数の外部デバイス14、ユーザがコンピュータ・システム/サーバ12と情報をやりとりできるようにする1つまたは複数のデバイス、またはコンピュータ・システム/サーバ12が1つまたは複数の他のコンピューティング・デバイスと通信できるようにする任意のデバイス(例えば、ネットワーク車両、モデムなど)、あるいはその組み合わせと通信することもできる。そのような通信は、入出力(I/O:Input/Output)インターフェイス22を介して行うことができる。さらに、コンピュータ・システム/サーバ12は、ローカル・エリア・ネットワーク(LAN:local area network)、一般的な広域ネットワーク(WAN:wide area network)、またはパブリック・ネットワーク(例えば、インターネット)、あるいはその組み合わせなどの1つまたは複数のネットワークと、ネットワーク・アダプタ20を介して通信することができる。図示されているように、ネットワーク・アダプタ20は、バス18を介してコンピュータ・システム/サーバ12の他のコンポーネントと通信する。図示されていないが、その他のハードウェア・コンポーネントまたはソフトウェア・コンポーネントあるいはその両方を、コンピュータ・システム/サーバ12と併用できるということが理解されるべきである。その例として、マイクロコード、デバイス・ドライバ、冗長プロセッシング・ユニット、外部ディスク・ドライブ・アレイ、RAIDシステム、テープ・ドライブ、およびデータ・アーカイブ・ストレージ・システムなどが挙げられるが、これらに限定されない。
【0039】
ここで図2を参照すると、例示的なクラウド・コンピューティング環境50が示されている。図示されているように、クラウド・コンピューティング環境50は、クラウドの利用者によって使用されるローカル・コンピューティング・デバイス(例えば、PDA(Personal Digital Assistant)または携帯電話54A、デスクトップ・コンピュータ54B、ラップトップ・コンピュータ54C、または自動車コンピュータ・システム54N、あるいはその組み合わせなど)が通信できる1つまたは複数のクラウド・コンピューティング・ノード10を備える。ノード10は、互いに通信することができる。ノード10は、1つまたは複数のネットワーク内で、本明細書において前述されたプライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、またはハイブリッド・クラウド、あるいはこれらの組み合わせなどに、物理的または仮想的にグループ化されてよい(図示されていない)。これによって、クラウド・コンピューティング環境50は、クラウドの利用者がローカル・コンピューティング・デバイス上でリソースを維持する必要のないインフラストラクチャ、プラットフォーム、またはSaaS、あるいはその組み合わせを提供できる。図2に示されたコンピューティング・デバイス54A~Nの種類は、例示のみが意図されており、コンピューティング・ノード10およびクラウド・コンピューティング環境50は、任意の種類のネットワークまたはネットワーク・アドレス可能な接続(例えば、Webブラウザを使用した接続)あるいはその両方を経由して任意の種類のコンピュータ制御デバイスと通信することができると理解される。
【0040】
ここで図3を参照すると、クラウド・コンピューティング環境50(図2)によって提供される機能的抽象レイヤのセットが示されている。図3に示されたコンポーネント、レイヤ、および機能は、例示のみが意図されており、本発明の実施形態がこれらに限定されないということが、あらかじめ理解されるべきである。図示されているように、次のレイヤおよび対応する機能が提供される。
【0041】
デバイス・レイヤ55は、クラウド・コンピューティング環境50内のさまざまなタスクを実行するために、電子機器、センサ、アクチュエータ、およびその他の物体に埋め込まれているか、またはスタンドアロンであるか、あるいはその両方である、物理デバイスまたは仮想デバイスあるいはその両方を含む。デバイス・レイヤ55内のデバイスの各々は、デバイスから取得された情報が他の機能的抽象レイヤに提供されてよいように、または他の抽象レイヤからの情報がデバイスに提供されてよいように、あるいはその両方が行われるように、他の機能的抽象レイヤへのネットワーク能力を組み込んでいる。1つの実施形態では、デバイス・レイヤ55を含めて、さまざまなデバイスが、「モノのインターネット」(IoT:internet of things)と総称されるエンティティのネットワークを組み込んでよい。そのようなエンティティのネットワークは、当業者が理解するであろうように、データの相互通信、収集、および配布を可能にし、多種多様な目的を実現する。
【0042】
図に示されているデバイス・レイヤ55は、図に示されているセンサ52、アクチュエータ53、処理、センサ、およびネットワーク電子機器が内蔵された「学習」サーモスタット56、カメラ57、制御可能な家庭用コンセント58、ならびに制御可能な電気スイッチ59を含んでいる。その他の可能性のあるデバイスとしては、さまざまな追加のセンサ・デバイス、ネットワーク・デバイス、電子デバイス(遠隔制御デバイスなど)、追加のアクチュエータ・デバイス、いわゆる「スマート」電化製品(冷蔵庫または洗濯機/乾燥機など)、および多種多様なその他の可能性のある相互接続された物体が挙げられ得るが、これらに限定されない。
【0043】
ハードウェアおよびソフトウェア・レイヤ60は、ハードウェア・コンポーネントおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例としては、メインフレーム61、RISC(Reduced Instruction Set Computer)アーキテクチャ・ベースのサーバ62、サーバ63、ブレード・サーバ64、ストレージ・デバイス65、ならびにネットワークおよびネットワーク・コンポーネント66が挙げられる。一部の実施形態では、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア67およびデータベース・ソフトウェア68を含む。
【0044】
仮想化レイヤ70は、仮想サーバ71、仮想ストレージ72、仮想プライベート・ネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティング・システム74、ならびに仮想クライアント75などの仮想的エンティティを提供できる抽象レイヤを備える。
【0045】
一例を挙げると、管理レイヤ80は、以下で説明される機能を提供することができる。リソース・プロビジョニング81は、クラウド・コンピューティング環境内でタスクを実行するために利用される計算リソースおよびその他のリソースの動的調達を行う。計測および価格設定82は、クラウド・コンピューティング環境内でリソースが利用される際のコスト追跡、およびそれらのリソースの利用に対する請求書の作成と送付を行う。一例を挙げると、それらのリソースは、アプリケーション・ソフトウェア・ライセンスを含んでよい。セキュリティは、クラウドの利用者およびタスクのID検証を行うとともに、データおよびその他のリソースの保護を行う。ユーザ・ポータル83は、クラウド・コンピューティング環境へのアクセスを利用者およびシステム管理者に提供する。サービス・レベル管理84は、必要なサービス・レベルを満たすように、クラウドの計算リソースの割り当てと管理を行う。サービス水準合意(SLA:Service Level Agreement)計画および実行85は、今後の要求が予想されるクラウドの計算リソースの事前準備および調達を、SLAに従って行う。
【0046】
ワークロード・レイヤ90は、クラウド・コンピューティング環境で利用できる機能の例を示している。このレイヤから提供できるワークロードおよび機能の例は、マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想クラスルーム教育の配信93、データ分析処理94、トランザクション処理95、ならびに本発明の実施形態例との関連において、HiLaaSを使用して埋め込みシステムおよびアプリケーションをテストするためのさまざまなワークロードおよび機能96を含む。加えて、HiLaaSを使用して埋め込みシステムおよびアプリケーションをテストするためのワークロードおよび機能96は、データ分析、データ解析、およびさらに説明されるように、通知機能などの動作を含んでよい。当業者は、HiLaaSを使用して埋め込みシステムおよびアプリケーションをテストするためのワークロードおよび機能96が、さまざまな抽象レイヤの他の部分(ハードウェアおよびソフトウェア60、仮想化70、管理80、およびその他のワークロード90(例えば、データ分析処理94など)内の部分など)と連動して動作し、本発明の実施形態例のさまざまな目的を実現してもよいということを理解するであろう。
【0047】
前述したように、実施形態例のメカニズムは、コンピューティング環境内でHiLaaSを使用して埋め込みシステムおよびアプリケーションをテストするための新しい方法を提供する。1つまたは複数の現実のエンティティおよび1つまたは複数のシミュレートされるエンティティを使用してシミュレーション環境内でテストされるシミュレーション・パラメータが、受信されるか、または定義されるか、あるいはその両方であってよい。シミュレートされる環境内で、1つもしくは複数のエンティティのうちの1つもしくは複数のシミュレートされるエンティティ、またはネットワーク化システム内の現実のエンティティ、あるいはその両方が、シミュレーション・パラメータに従ってリアルタイムにテストされてよい。1つまたは複数のシミュレートされるエンティティのテストに基づいて、1つもしくは複数のエンティティ、ネットワーク・システム、またはその組み合わせの1つまたは複数の特性が推定されてよい。
【0048】
一実施形態では、シミュレートされる環境内で、受信された制御パラメータに従って、選択された価格(例えば、選択された範囲内の価格、または価格設定しきい値を下回る価格)に対して、ネットワーク化システム内の1つまたは複数のシミュレートされるエンティティおよび1つまたは複数の現実のエンティティがリアルタイムにテストされてよい。この価格は、他のパラメータに基づいてシステムによって推定され、承認または拒否するためにユーザに提供される。代替として、ユーザが価格を指定してよく、システムが制御パラメータを推定し、ユーザがそれらの制御パラメータを承認または拒否することができる。価格および制御パラメータが承認された場合、1つまたは複数のシミュレートされるエンティティのテストに基づいて、1つもしくは複数のエンティティ、ネットワーク・システム、またはその組み合わせの1つまたは複数の特性が推定されてよい。
【0049】
一実施形態では、1つまたは複数のエンティティが、互いに、およびネットワーク化システムに関連付けられた環境と、相互作用してよい。シミュレーション環境内のシミュレートされるエンティティの数は、選択された期間にわたって調整または修正されてよい。すなわち、選択された期間にわたってシミュレートされるエンティティの数は、同一の分布からのサンプルを含まず、現実のエンティティからのリアルタイムの情報(例えば、現実のエンティティからリアルタイムにストリーミングされたデータ)によって影響を受けるか、選択されるか、または決定されるか、あるいはその組み合わせであることに加え、特定の日に関する履歴データおよびスケジュール・データによって影響を受けるか、選択されるか、または決定されるか、あるいはその組み合わせである。例えば、輸送アプリケーションについて考える。従来、道路(例えば、ネットワークまたは「道路網」)上の車両の数は、静的であるか、または週の各時間に固有である、需要のモデルからサンプリングされることが期待されることがあった。この車両の数は調整されてよいが、実際の車両からの入力(車両の速度など)、およびサードパーティのセンサ(例えば、交通制御システムの誘導ループまたは降雪量を測定するセンサなど)からの入力を考慮する。これによって、より正確なシミュレーションを生成することができる。
【0050】
加えて、実施形態例のメカニズムは、1人または複数のユーザ、ネットワーク・システム、シミュレートされるエンティティ、またはネットワーク・システムの現実のエンティティ、あるいはその組み合わせから取得されてよいリアルタイムのフィードバックを組み込んでよい。例えば、取得されるフィードバックは、1つまたは複数の現実のエンティティのリアルタイムにストリーミングされたデータを含んでよい。このようにして、フィードバック情報は、さまざまなシミュレーション・パラメータを変化させる、更新する、変更する、または修正する、あるいはその組み合わせを実行するために、使用されてもよい。
【0051】
さらに、実施形態例のメカニズムは、1つのアプリケーション・ドメイン内でデータを完全に共有するか、部分的に共有するか、または全く共有せずに、テスト中のネットワーク化システムの複数の現実の要素からデータを入力できる、柔軟な「共有された」サービスを、複数のユーザに提供する。また、実施形態例のメカニズムは、広範囲のアプリケーションにサービス(交通シミュレーションの場合、例えば、加速の助言、速度の推奨、ルート選択の助言など)を提供することができ、各アプリケーションは、現実のデータ、エミュレートされたデータ、またはシミュレートされたデータ、あるいはその組み合わせ、およびデータ交換の特定の組み合わせに依存する。テスト中のネットワーク化システムの現実の要素は、シミュレーション環境内でシミュレートされる仮想環境のデータに完全にアクセスできるか、部分的にアクセスできるか、またはアクセスできない。
【0052】
ここで図4を参照すると、この図は、IoTネットワーク環境内の交通シミュレーションのテスト用の例示的なシステムを示している。図4は、移動中の車両402との関連において示された、例示的な計算、データ処理、知覚、HiLaaSを使用するテスト中の埋め込みシステムおよびアプリケーション、ならびにその他のコンポーネント400の図を示しており、この図において、本発明のさまざまな実施形態が実装されてよい。さまざまなコンポーネント400は、HiLaaSを使用してIoTネットワーク環境内で埋め込みシステムおよびアプリケーションをテストするために同時に連携してよい。
【0053】
図4に示されているように、テスト・システム408(例えば、シミュレーション・エンジン)を使用してテスト中のシステム406(例えば、シミュレーション環境)内の1つまたは複数の車両402(例えば、IoTネットワークのエンティティ)の交通をシミュレートする例が示されている。すなわち、1つまたは複数の車両402が、テスト中のシステム406内でテストされてよい。しかし、HiLaaS404(例えば、HiLaaSインターフェイス404)を使用するテスト中のシステム406は、さまざまな背景、シナリオ、またはその他の種類のネットワーク化システム、あるいはその組み合わせにおいて採用されてよい。本明細書において使用されるとき、「車両」は、自動車、自転車、ホバークラフト、スクーター、バス、オートバイ、ボート、船、航空機、飛行機、ヘリコプター、ドローン、オフロード車、トラック、トラクター、または移動もしくは輸送に使用されるその他のデバイス、あるいはその組み合わせであってよい。さらに、「車両」は、テスト中のシステム406内でテストするために、1つまたは複数の「現実の」車両または実際の車両をシミュレートするためにテスト中のシステム406によって使用されてよい、仮想車両であってよい。一実施形態では、例えばユーザ410などの1人または複数のユーザが、HiLaaS404(例えば、HiLaaSインターフェイス404)と通信してもよい。
【0054】
一実施形態では、車両402は、一種類のみ(例えば、自動車のみ)の車両であってよい。代替として、車両402は、車両の種類(例えば、自動車、オートバイ、バス、スクーター、自転車上のサイクリストなど)の組み合わせであってよい。車両402の各々は、例えば、燃料消費センサ、カメラ、無線自動識別(RFID:radio frequency identification)リーダ、生体測定センサ、ウェアラブル・センサ、コンピュータ、ハンドヘルド・デバイス(例えば、全地球測位システム(GPS:Global Positioning System)デバイスまたは歩数計)、スマートフォン、またはその他のセンサに基づくデバイス、あるいはその組み合わせなどの、1つまたは複数の種類のIoTデバイス(例えば、IoTセンサ・デバイス)を含んでよい。
【0055】
1つの実施形態では、テスト中のシステム406は、1)車両402の位置、2)リアルタイムの傾斜計測データ、または3)需要のさらなる観測(例えば、グローバル・システム・フォー・モバイル・コミュニケーションズ(GSM:Global System for Mobile Communications)ネットワークの基地局からの観測)、あるいはその組み合わせに基づいて車両402の速度を設定する、速度推奨システムであってよい。例えば、需要の観測は、位置Aから位置Bに移動しようとしている車両の数であってよい。位置Aから位置Bに移動しようとしている車両の数を変更するために、1つまたは複数の発着地(OD:origin-destination)行列が使用されてよい。需要の観測が、時間と共に変化し、条件付きでもあるということを前提として、その他の表現が車両に使用されてよい。
【0056】
テスト・システム408は、テスト中のシステム406の1つまたは複数の特性をテストして検証するために使用されてよい。テスト・システム408は、例えば、車両交通のマイクロシミュレータ(例えば、SUMO(Simulation of Urban Mobility))、車両交通の巨視的シミュレータ(例えば、キューのネットワークに基づく)、マルチモデル・シミュレータ(MOVSIM:multi-model simulator)、歩行者シミュレータ、またはサイクリスト・シミュレータ、あるいはその組み合わせなどの、1つまたは複数のシミュレータ・エンジンであってよい。
【0057】
さらに、テスト・システム408は、HiLaaS404を使用して、シミュレーション環境または「仮想」環境内で、例えばテスト中のシステム406などのネットワーク・システムをテストする。HiLaaS404は、データをテスト・システム408に送信するか、またはデータをテスト・システム408から受信するか、あるいはその両方を実行してよい。さらに具体的には、1つまたは複数の車両402が、リアルタイムにストリーミングされたデータを、HiLaaS404を介してテスト・システム408に提供してよい。
【0058】
示されているように、ユーザ410は、1つまたは複数の制御パラメータをHiLaaS404に送信してよい(例えばユーザは、HiLaaS404の制御パラメータを設定してよい)。例えばユーザ410は、HiLaaSインターフェイス404を介して1つまたは複数の制御パラメータをテスト・システム408に送信してよい。HiLaaS404は、テストを実行するための価格設定情報をユーザに提供してよい。ユーザ410は、価格情報を許可または承認あるいはその両方を実行してよい。
【0059】
さらに、1つまたは複数の車両402が、1つまたは複数の車両402に関連する情報(例えば、位置、速度データ、方向指示器情報など)の状態更新(「status()」)をHiLaaS404に提供してよい。次に、テスト・システム408は、例えば、選択された数の1つまたは複数の車両402からデータを受信するなど、(例えば、「get traffic info()」関数または「get environment info()」関数の操作を使用して)交通情報をHiLaaS404から受信してよい。HiLaaS404は、1つまたは複数の車両402のうちの現実の車両または「実際の」車両に関連するデータを提供してよい。したがって、テスト・システム408は、実際の環境内の実際の車両402をシミュレートすることによって、「錯覚」をユーザに提供してよい。
【0060】
さらに、テスト中のシステム406は、1つまたは複数のシミュレーション・パラメータを使用して、例えば、各車両402が軌道内の各位置で移動している速度、各車両が運転されている方向、またはシミュレーション・パラメータのその他の出力などの、1つまたは複数の車両402の挙動を(テストの出力として)示してよい。代替として、1つまたは複数の車両402は、シミュレーション環境に関連する特定の情報(例えば、「GetSomeService()」関数)をテスト中のシステム406から取り出してよい。一実施形態では、単に例として、テスト・システム408が交通シミュレータを輸送設定に含む。テスト中のシステム406は、速度推奨システムであってよい。したがって、テスト・システム408はシミュレータであってよく、テスト中のシステム406はテスト対象のシステムであってよい。
【0061】
動作中に、テスト・システム408は、例えば、すべてのシナリオにわたって何らかの「安全性特性」を検証するための高レベルの抽象的状況などの、一連の「シナリオ」(シミュレーション・パラメータおよびルールを含んでよい)を考慮してよい。例えば、1つのシナリオは、事故の後に、2本の車線が1本に合流する場合をテストしてよい。各安全性特性は、モデルおよび時相論理を使用して説明することができ、これによって、例えば、「軌道のいずれかの位置で車両が互いに10センチメートル未満に近づくことができない」などの、テキスト言語をHiLaaS404に提供することができ、ユーザまたはエンティティが、車両402(例えば、速度、加速、制動など)およびテスト中のシステム406(例えば、速度推奨システム)を含むシミュレーション・パラメータおよびルールを論理的に判断することができる。
【0062】
HiLaaS404は、「シナリオ」を「インスタンス化」し、具体化するために、テスト中のシステム406の車両402のうちの個々の車両の実際の移動を、1)速度推奨システムがIoTネットワーク内の所定の位置に配置され、2)「シナリオ」がIoTネットワーク内で実際に動作中であるかの「ように」、シミュレートできるようにする。選択された数の車両402(その運転手が、例えば、フロントガラスへの投影などの音声手段または視覚的手段を介して、シミュレーション・シナリオを認識している)からのGPS軌道に関するデータに基づいて、テスト・システム408は、他の車両402(完全に仮想的であるか、または誘導ループ(例えば、誘導ループ交通検出器(inductive-loop traffic detectors)などの車両を数える手段)によって記録された道路区分への既知の到着に対応するかのいずれかであるか、または軌道上にさらに使用可能なデータがないか、あるいはその両方である)の軌道を導き出す。
【0063】
HiLaaS404およびテスト・システム408の詳細な説明として、HiLaaS404およびテスト・システム408は互いに連携して動作してよいが、HiLaaS404は、テスト中のシステム406を認識できなくてよい。HiLaaS404は、クラウド・コンピューティング・システム上でシミュレーションを実行できるようにし、現実のエンティティをシミュレーション環境のシミュレーションに接続するか、または関連付けることができるようにするサービスであってよい。HiLaaS404は、アプリケーションに依存しなくてよい。特定のアプリケーションまたはサービスをテストするために、一連のテスト・ケースおよびシナリオが実行され、評価されてよく、これが、テスト・システム408の役割であってよい。テスト・システム408は、(HiLaaS404を使用して)アプリケーションに関連する特定のシナリオを実行し、それらのシナリオにおけるアプリケーションの成功を測定するシステムであってよい。
【0064】
HiLaaS404は、テストを実行できるようにするユニット・テスト・フレームワークに関連してよいが、テスト中のシステムを認識できず、テスト・システム408は、特定のテスト中のシステムおよびテスト対象の特性(「アプリケーション」)に固有であるユニット・テストに関連してよい。例えば、速度推奨システムが車両に関してテストされるということを仮定する。速度推奨システムの目的は、1つまたは複数の理由のために交通を「良い状態」に維持しながら、汚染を減らす目的で、車両の最適な速度を推奨することである。道路の安全性に対する速度推奨システムの影響を評価するために、速度推奨システムが、異なる条件でどの程度適切に動作するかを評価するために、または汚染および交通渋滞に対する速度推奨アルゴリズムのパラメータの影響を調査するために、あるいはその両方のために、一連の定義済みのシナリオおよびパラメータを含んでいるテスト・システム408が提供されてよい。テスト・システム408は、場合によっては1つまたは複数の実際の(または現実の)車両をシミュレーションに接続して、HiLaaS404上でシミュレーションを実行してよく、テスト・システム408は、速度推奨システムの結果および交通および汚染全体に対する影響を監視する。テスト・システム408は、運転者の満足、または運転者の挙動に対する速度推奨の影響もしくは速度推奨に対する運転者の挙動の影響を反映する、現実の車両および運転者から来るデータを解析することもできる。
【0065】
ここで図5を参照すると、テスト・システム408(例えば、シミュレーション・エンジン)を使用して1つまたは複数の車両402(例えば、IoTネットワークのエンティティ)の交通をシミュレートする追加の例が示されている。すなわち、図5は、交通シミュレーションにおける1つまたは複数の車両との関連において示された、例示的な計算、データ処理、知覚、HiLaaSを使用するテスト中の埋め込みシステムおよびアプリケーション、ならびにその他のコンポーネント500の図を示している。示されるように、図1~4の1つまたは複数の実施形態は、図5に含まれるか、または図5と共に実施されるか、あるいはその両方であってもよい。例えば、コンポーネント500は、本発明のさまざまな実施形態に従ってさまざまな計算機能、データ処理機能、およびその他の機能を実行するための1つまたは複数のプロセッシング・ユニット16を組み込んでいる、図1のコンピュータ・システム/サーバ12に含まれるか、または関連付けられるか、あるいはその両方であってよい。さまざまなコンポーネント500は、HiLaaSを使用してIoTネットワーク環境内で埋め込みシステムおよびアプリケーションをテストするために同時に連携してよい。
【0066】
示されているように、コンポーネント500は、ユーザ502と、図4の1つまたは複数の車両402と、HiLaaS インターフェイス404(例えば、HiLaaS Restfulアプリケーション・プログラミング・インターフェイス(API:Application programming interface))と、1つまたは複数の交通/ネットワーク・シミュレータ(例えば、図4のテスト・システム408など)とを含んでいる。一実施形態では、図4で説明されたユーザ410とHiLaaS404の間の動作が、ユーザ502とHiLaaSインターフェイス404の間にも発生してよい(例えば、制御パラメータを設定し、HiLaaSの価格設定を推定/設定し、価格設定を承認する)。
【0067】
動作中に、ユーザ502が1つまたは複数の照会をHiLaaSインターフェイス404に送信してよい。例えば、ユーザ502は、HiLaaSインターフェイス404を介して、シミュレーション開始操作をテスト・システム408に送信するか(例えば、「StartSimulation」関数)、シミュレーションに対する状態更新を要求するか(例えば、「GetSimulationStatus」関数)、シミュレーションを更新するか(例えば、「UpdateSimulation」関数)、またはシミュレーション停止コマンドを送信するか(例えば、「StopSimulation」関数)、あるいはその組み合わせを実行してよい。
【0068】
1つまたは複数の車両402は、リアルタイムにストリーミングされたデータをHiLaaSインターフェイス404に提供してもよい。例えば、1つまたは複数の車両402は、HiLaaSインターフェイス404を介して、1つまたは複数の車両402をチェックインするためのデータをテスト・システム408に送信してよい(例えば、「CheckInVehicle」関数)。1つまたは複数の車両404は、HiLaaSインターフェイス404を使用して、1つまたは複数の車両402のデータを更新する、リアルタイムにストリーミングされたデータを提供するか(例えば、「UpdateVehicleData」関数)、シミュレーションに対する状態更新を要求するか(例えば、「GetSimulationStatus」関数)、または車両をチェックアウトするためにリアルタイムにストリーミングされたデータを送信するか(例えば、テスト・システム408内で実際の車両を考慮することを停止するか、またはテスト・システム408での考慮から車両を除外するか、あるいはその両方を実行する関数などの、「CheckOutVehicle」関数)、あるいはその組み合わせを実行してよい。
【0069】
実施形態例のメカニズムとの関連において、図1~5を使用して前に説明したように、以下の例が使用事例として提供される。他の使用事例も適用可能であってよいということに、注意するべきである。
【0070】
第1の使用事例では、ユーザが、現在の交通条件の状態に関して、異なる種類のリアルタイムの駐車情報および関連する結果に応答した運転者の運転動作を解析することを望んでいると仮定する。ユーザは、サービス(例えば、HiLaaSサービス)に登録してよく、認証情報がユーザに提供されてよい。HiLaaSインターフェイスを使用するためのRESTベース(またはその他の種類)のAPIへのアクセスがユーザに提供されてよい。ユーザは、シミュレーションを作成してよく、例えば、構成ファイルを介して特定のシナリオを定義するなど、1つまたは複数のシミュレーション・パラメータ(例えば、ネットワーク選択、交通の状態、駐車場の数、駐車の需要など)を定義してよい。ユーザは、1つまたは複数の現実の車両をシミュレーションにチェックインしてよい。ユーザは、例えばGPS位置の各更新で、車両データをシミュレーションに更新できる。ユーザは、シミュレーションを(リアルタイムに、または「実行中に」)更新してよく(例えば、シミュレートされる車両のルートを「実行中に」変更する)、それによって、構成ファイルの更新が必要になることがある。ユーザは、シミュレーションの状態を取り出すことができ、すべてのシミュレートされる車両のデータにアクセスすることができる。ユーザは、任意の車両の状態を取り出すことができる。ユーザは、取り出されたシミュレーションおよび車両の状態を利用して、助言を現実の運転されている車両に提供する、分析サービスを使用することもできる。特定の推奨に対する現実の車両の反応が、後で解析するために(履歴データとして)格納されてよい。ユーザは、車両をチェックアウトし、シミュレーションを停止する(例えば、車両が、テスト・システム408による考慮から除外されてよい)。
【0071】
第2の使用事例では、ユーザが、顧客満足、購入される商品の数、歩行の快適さなどを最適化するために、混雑している商店街、観光都市などでの商用のルート選択の助言に対する歩行者の応答を解析することを望んでいるか、または解析しようとしていると仮定する。ユーザは、サービス(例えば、HiLaaSサービス)に登録してよく、認証情報がユーザに提供されてよい。HiLaaSインターフェイスを使用するためのRESTベース(またはその他の種類)のAPIへのアクセスがユーザに提供されてよい。ユーザは、シミュレーションを作成してよく、構成ファイルを介して特定のシナリオ(例えば、領域の選択、道路の負荷、商店の容量など)を定義してよい。ユーザは、1人または複数の歩行者(例えば、GPSロガーを持つ歩行者)をシミュレーションにチェックインしてよい。歩行者に装備させるコストが低いということに、注意するべきである(例えば、アプリケーションが、コンピューティング・デバイス上で使用されてよく、ユーザが、アプリケーションをコンピューティング・デバイスにダウンロードできる)。ユーザは、例えばGPS位置の各更新で、歩行者データを(マイクロ)シミュレーションに更新できる。ユーザは、シミュレーションを(リアルタイムに、または「実行中に」)更新してよく(例えば、シミュレートされる歩行者のルートを実行中に変更するなど)、それによって、構成ファイルの更新が必要になることがある。ユーザは、シミュレーションを(リアルタイムに、または「実行中に」)更新してよく(例えば、シミュレートされる車両のルートを「実行中に」変更する)、すべてのシミュレートされる歩行者データにアクセスできでよい。ユーザは、任意の車両の状態、特に、例えば特定の車両の種類に関する情報を取り出すことができる。ユーザは、取り出されたシミュレーションおよび歩行者の状態を利用して、助言を装備した歩行者に提供する、分析サービスを使用することもできる。特定の推奨に対する歩行者の反応(および歩行者の交通に対する推奨の影響)が解析されてよい。ユーザは、分析サービスを使用してもよい。ユーザは、歩行者をシミュレーションからチェックアウトし、シミュレーションを停止してよい。
【0072】
第3の使用事例では、ユーザが、例えば汚染回避などのルート選択の助言に応答したサイクリストの挙動を調査すること、または悪天候の発生時に、覆われる領域を最適化することを、望んでいると仮定する。ユーザは、サービス(例えば、HiLaaSサービス)に登録してよく、認証情報がユーザに提供されてよい。HiLaaSインターフェイスを使用するためのRESTベース(またはその他の種類)のAPIへのアクセスがユーザに提供されてよい。ユーザは、シミュレーションを作成してよく、例えば、構成ファイルを介して特定のシナリオを定義するなど、1つまたは複数のシミュレーション・パラメータ(例えば、領域選択、発着地行列または輸送に対する需要をモデル化するその他の手段、交通の状態、天候条件など)を定義してよい。ユーザは、1人または複数のサイクリスト(例えば、GPSロガーを持つサイクリストなど)をシミュレーションにチェックインしてよい。例えば、モバイル・デバイス(例えば、スマートフォンまたはその他のコンピューティング・デバイス)にインストールされたアプリケーションをサイクリストに提供し、サードパーティのアプリケーションを実行できる広範囲に広がった携帯電話を考慮することなどによって、サイクリストに装備させるコストが低いということに、注意するべきである。ユーザは、例えばGPS位置の各更新で、サイクリストのデータを(マイクロ)シミュレーションに更新できる。ユーザは、シミュレーションをリアルタイムに、または「実行中に」更新してよい(例えば、シミュレートされるサイクリストのルートまたは天候条件を実行中に変更するなど)。ユーザは、シミュレーションの状態を取り出してよく、すべてのシミュレートされるサイクリストのデータ、およびサイクリストのルート上で車両の交通によって生成された汚染物質濃度データに、アクセスすることができる。ユーザは、サイクリストの状態(例えば、サイクリストの種類に対応するサイクリストの状態)を取り出してよい。ユーザは、取り出されたシミュレーション・データおよびサイクリストの状態を利用して、助言を現実のサイクリストに提供する、分析サービスを使用することもできる。特定の推奨に対するサイクリストの反応が解析されてよい。ユーザは、サイクリストをシミュレーションからチェックアウトし、シミュレーションを停止できる。
【0073】
ここで図6を参照すると、プロセッサによってHiLaaS(Hardware-in-the-Loopas a Service)を使用してモノのインターネット(IoT)ネットワーク環境内の埋め込みシステムおよびアプリケーションをテストするための方法600が示されており、この方法で、実施形態例のさまざまな態様が実装されてよい。機能600は、マシン上で命令として実行される方法として実装されてよく、それらの命令は、少なくとも1つのコンピュータ可読媒体または非一過性機械可読記憶媒体に含まれる。機能600は、ブロック602で開始してよい。ブロック604で、シミュレーション環境に関連する制御パラメータおよび情報が受信されてよい。ブロック606で、シミュレートされる環境内で、ネットワーク化システム内の1つまたは複数のエンティティのうちの1つまたは複数のシミュレートされるエンティティが、シミュレーション・パラメータに従ってリアルタイムにテストされてよい。ブロック608で、1つまたは複数のシミュレートされるエンティティのテストに基づいて、1つもしくは複数のエンティティ、ネットワーク・システム、またはその組み合わせの1つまたは複数の特性が推定されてよい。機能600は、ブロック610で終了してよい。
【0074】
ここで図7を参照すると、プロセッサによってHiLaaS(Hardware-in-the-Loopas a Service)を使用してモノのインターネット(IoT)ネットワーク環境内の埋め込みシステムおよびアプリケーションをテストするための追加の方法700が示されている。機能700は、マシン上で命令として実行される方法として実装されてよく、それらの命令は、少なくとも1つのコンピュータ可読媒体または非一過性機械可読記憶媒体に含まれる。機能700は、ブロック702で開始してよい。ブロック704で、シミュレーション・パラメータをテストするために、ネットワーク・システムに関連する静的データと、選択された期間に関するデータと、ネットワーク化システムに関連付けられた1つまたは複数のエンティティおよび外部システムからリアルタイムにストリーミングされたデータと、1つまたは複数のエンティティに関連する情報とが使用されて(またはシミュレーション・パラメータの一部として受信されるか、あるいはその両方が実行されて)よい。ブロック706で、1つまたは複数の制御パラメータ(例えば、ネットワーク化システムの1つまたは複数の特性の推定値の信頼区間)が設定されてよい。ブロック708で、選択された期間にわたってシミュレートする1つまたは複数のエンティティの数が推定されてよく、またはネットワーク化システムに関連付けられた1つまたは複数のエンティティおよび1つまたは複数のシミュレートされるエンティティと、外部システムとの間の相互作用の数が推定されてよく、あるいはその両方が実行されてよい。ブロック710で、TaaSが承認されてよい(例えば、テストの価格が推定され、そのテストの価格が承認されてよい)。ブロック712で、1つまたは複数のシミュレートされるエンティティに関してリアルタイムにストリーミングされたデータが、提供されてよい。ブロック714で、1つまたは複数のシミュレートされるエンティティに基づいて、ネットワーク・システムの1つまたは複数の特性が推定されてよい。機能700は、ブロック716で終了してよい。
【0075】
一実施形態では、図6~7の少なくとも1つのブロックと連動して、または図6~7の少なくとも1つのブロックの一部として、あるいはその両方として、方法600または700の動作が次の各々を含んでよい。方法600または700の動作は、ネットワーク・システムに関連するデータを受信するか、選択された期間に関するスケジューリング・データを受信するか、リアルタイムにストリーミングされたデータを1つまたは複数のエンティティから受信するか、またはテストに使用するために、ある種類のシミュレータに関連する情報を受信するか、あるいはその組み合わせを実行してよい。シミュレートされる環境にアクセスするために、HiLaaSインターフェイスが、1つもしくは複数のエンティティ、ユーザ、またはその組み合わせによって、使用されるか、またはアクセスされるか、あるいはその両方が実行されてよい。
【0076】
選択された期間にわたってシミュレートするために、1つまたは複数のエンティティの数が推定されてよい。ネットワーク化システムに関連付けられた1つまたは複数のエンティティ、1つまたは複数のシミュレートされるエンティティ、および環境の間の相互作用の数が推定されてもよい。
【0077】
方法600または700の動作は、1つまたは複数のシミュレートされるエンティティのテストに基づいて、1つまたは複数のエンティティに関してリアルタイムにストリーミングされたデータを提供してよい。方法600または700の動作は、シミュレーション・パラメータに従って1つまたは複数のエンティティをシミュレートしてよく、またはシミュレーション中にシミュレーション・パラメータをリアルタイムに更新してよく、あるいはその両方を実行してよい。さらに、方法600または700の動作は、シミュレーション環境内の1つまたは複数のエンティティおよび1つまたは複数のシミュレートされるエンティティの1つまたは複数の動作を同期させてよい。
【0078】
ここで図8を参照すると、プロセッサによってHiLaaSを使用してモノのインターネット(IoT)ネットワーク環境内の埋め込みシステムおよびアプリケーションをテストするための方法800が示されており、この方法で、実施形態例のさまざまな態様が実装されてよい。機能800は、マシン上で命令として実行される方法として実装されてよく、それらの命令は、少なくとも1つのコンピュータ可読媒体または非一過性機械可読記憶媒体に含まれる。機能800は、ブロック802で開始してよい。ブロック804で、シミュレーション環境の記述および価格が受信されてよい。ブロック806で、価格およびシミュレーション環境の記述に従って、テストの1つまたは複数の制御パラメータが推定されてよい。ブロック807で、1つまたは複数の制御パラメータの承認時に、ネットワーク・システム内の1つもしくは複数のエンティティ、1つもしくは複数のシミュレートされるエンティティ、またはその組み合わせが、1つまたは複数の制御パラメータに従ってテストされてよい。ブロック808で、1つまたは複数のシミュレートされるエンティティのテストに基づいて、1つもしくは複数のエンティティ、ネットワーク・システム、またはその組み合わせの1つまたは複数の特性が推定されてよい。機能800は、ブロック810で終了してよい。
【0079】
ここで図9を参照すると、プロセッサによってHiLaaSを使用してモノのインターネット(IoT)ネットワーク環境内の埋め込みシステムおよびアプリケーションをテストするための方法900が示されている。機能900は、マシン上で命令として実行される方法として実装されてよく、それらの命令は、少なくとも1つのコンピュータ可読媒体または非一過性機械可読記憶媒体に含まれる。機能900は、ブロック902で開始してよい。ブロック904で、シミュレーション環境に関連する1つまたは複数の制御パラメータおよび情報が受信されてよい。ブロック906で、シミュレーション環境内で、ネットワーク・システムに関連付けられた1つもしくは複数のエンティティ、ネットワーク・システムに関連付けられた1つもしくは複数のシミュレートされるエンティティ、またはその組み合わせが、1つまたは複数の制御パラメータに従って、(例えばHiLaaSなどの)TaaS(testing as a service)としてテストされてよい。ブロック908で、1つまたは複数のシミュレートされるエンティティのテストに基づいて、1つもしくは複数のエンティティ、ネットワーク・システム、またはその組み合わせの1つまたは複数の特性が推定されてよい。機能900は、ブロック910で終了してよい。
【0080】
一実施形態では、図8~9の少なくとも1つのブロックと連動して、または図8~9の少なくとも1つのブロックの一部として、あるいはその両方として、方法800または900の動作が次の各々を含んでよい。方法800または900は、1つもしくは複数の制御パラメータに従ってシミュレーション環境内でテストするための価格を推定すること、テストの推定された価格の承認を受信すること、または1つもしくは複数のエンティティ、1つもしくは複数のシミュレートされるエンティティ、またはその組み合わせをテストすること、あるいはその組み合わせを実行してよい。さらに、方法800または900は、シミュレーション環境内でテストするための最大しきい値価格、価格設定の範囲、もしくはその組み合わせを受信すること、シミュレーション環境内でテストするための最大しきい値価格、価格設定の範囲、もしくはその組み合わせに従って1つまたは複数の制御パラメータを調整すること、調整された制御の承認を受信すること、または1つもしくは複数のエンティティ、1つもしくは複数のシミュレートされるエンティティ、またはその組み合わせをテストすること、あるいはその組み合わせを実行してよい。
【0081】
シミュレーション環境に関連する1つまたは複数の制御パラメータおよび情報を受信することに従って、方法800または900は、シミュレーション環境の記述を受信すること、ネットワーク・システムの記述を受信することであって、この記述が少なくともネットワーク・システムのトポロジーを含んでいる、受信すること、ネットワーク・システムの動作に関連する履歴データを受信すること、ネットワーク・システムの動作の選択された期間に関するスケジューリング・データを受信すること、リアルタイムにストリーミングされたデータを1つもしくは複数のエンティティから受信すること、リアルタイムにストリーミングされたデータを1つまたは複数のサードパーティから受信することであって、ストリーミングされたデータが気象監視データ、汚染監視データ、衛星画像データ、もしくは航空画像データ、またはその組み合わせ(もしくは、サードパーティによって提供されたデータ、またはその組み合わせ)を含んでよい、受信すること、テストを実行し、テスト結果を提供するための選択された時間を受信すること、1つもしくは複数のシミュレートされるエンティティのテストに関する1つもしくは複数の条件を受信すること、テスト中のシステムの1つもしくは複数のエンティティのテストに関する1つもしくは複数の条件を受信すること、またはテストの精度の測定値を受信すること、あるいはその組み合わせを実行してよい。
【0082】
方法800または900は、1つもしくは複数の制御パラメータに従って選択された期間にわたってシミュレートするための1つもしくは複数のエンティティの数を推定すること、1つもしくは複数の制御パラメータに従ってネットワーク化システムに関連付けられた1つもしくは複数のエンティティ、1つもしくは複数のシミュレートされるエンティティ、および環境の間の相互作用の数を推定すること、または1つもしくは複数の制御パラメータに従って選択された期間にわたって1つもしくは複数のエンティティおよび相互作用の数をシミュレートするのに必要な1つもしくは複数のコンピューティング・システムを推定すること、あるいはその組み合わせを実行してよい。
【0083】
方法800または900は、制御パラメータに従って1つもしくは複数のエンティティをシミュレートすること、シミュレーション中にシミュレーション環境をリアルタイムに更新することであって、ネットワーク・システムの動作の履歴データを少なくとも含んでいる、更新すること、または1つもしくは複数のシミュレートされるエンティティに関してリアルタイムにストリーミングされたデータを1つもしくは複数のシミュレートされるエンティティのテストの出力として提供すること、あるいはその組み合わせを実行してよい。方法800または900は、シミュレートされる環境にアクセスするために、1つもしくは複数のエンティティ、ユーザ、またはその組み合わせによるリモート・アクセス用のインターフェイスを提供してよい。
【0084】
方法800または900は、シミュレーション環境の記述および価格を受信すること、価格およびシミュレーション環境の記述に従ってテストの1つもしくは複数の制御パラメータを推定すること、1つもしくは複数の制御パラメータの承認時に、制御パラメータに従って関連付けられた1つもしくは複数のエンティティ、1つもしくは複数のシミュレートされるエンティティ、またはその組み合わせをテストすること、または1つもしくは複数のシミュレートされるエンティティのテストに基づいて、1つもしくは複数のエンティティ、ネットワーク・システム、またはその組み合わせの1つもしくは複数の特性を推定すること、あるいはその組み合わせを実行してよい。
【0085】
本発明は、システム、方法、またはコンピュータ・プログラム製品、あるいはその組み合わせであってよい。コンピュータ・プログラム製品は、プロセッサに本発明の実施形態を実行させるためのコンピュータ可読プログラム命令を含んでいるコンピュータ可読記憶媒体を含んでよい。
【0086】
コンピュータ可読記憶媒体は、命令実行デバイスによって使用するための命令を保持および格納できる有形のデバイスであることができる。コンピュータ可読記憶媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適切な組み合わせであってよいが、これらに限定されない。コンピュータ可読記憶媒体のさらに具体的な例の非網羅的リストは、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM:random access memory)、読み取り専用メモリ(ROM:read-only memory)、消去可能プログラマブル読み取り専用メモリ(EPROM:erasable programmable read-only memoryまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM:static random access memory)、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD-ROM:compact disc read-only memory)、デジタル多用途ディスク(DVD:digital versatile disk)、メモリ・スティック、フロッピー(R)・ディスク、パンチカードまたは命令が記録されている溝の中の隆起構造などの機械的にエンコードされるデバイス、およびこれらの任意の適切な組み合わせを含む。本明細書において使用されるとき、コンピュータ可読記憶媒体は、それ自体が、電波またはその他の自由に伝搬する電磁波、導波管またはその他の送信媒体を伝搬する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、あるいはワイヤを介して送信される電気信号などの一過性の信号であると解釈されるべきではない。
【0087】
本明細書に記載されたコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体から各コンピューティング・デバイス/処理デバイスへ、またはネットワーク(例えば、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、または無線ネットワーク、あるいはその組み合わせ)を介して外部コンピュータまたは外部ストレージ・デバイスへダウンロードされ得る。このネットワークは、銅伝送ケーブル、光伝送ファイバ、無線送信、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組み合わせを備えてよい。各コンピューティング・デバイス/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェイスは、コンピュータ可読プログラム命令をネットワークから受信し、それらのコンピュータ可読プログラム命令を各コンピューティング・デバイス/処理デバイス内のコンピュータ可読記憶媒体に格納するために転送する。
【0088】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA:instruction-set-architecture)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、あるいは、Smalltalk、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様のプログラミング言語などの従来の手続き型プログラミング言語を含む1つまたは複数のプログラミング言語の任意の組み合わせで記述されたソース・コードまたはオブジェクト・コードであってよい。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全体的に実行すること、ユーザのコンピュータ上でスタンドアロン・ソフトウェア・パッケージとして部分的に実行すること、ユーザのコンピュータ上およびリモート・コンピュータ上でそれぞれ部分的に実行すること、あるいはリモート・コンピュータ上またはサーバ上で全体的に実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN:local area network)または広域ネットワーク(WAN:wide area network)を含む任意の種類のネットワークを介してユーザのコンピュータに接続されてよく、または接続は、(例えば、インターネット・サービス・プロバイダを使用してインターネットを介して)外部コンピュータに対して行われてよい。一部の実施形態では、本発明の実施形態を実行するために、例えばプログラマブル論理回路、フィールドプログラマブル・ゲート・アレイ(FPGA:field-programmable gate arrays)、またはプログラマブル・ロジック・アレイ(PLA:programmable logic arrays)を含む電子回路は、コンピュータ可読プログラム命令の状態情報を利用することによって、電子回路をカスタマイズするためのコンピュータ可読プログラム命令を実行してよい。
【0089】
本発明の態様は、本明細書において、本発明の実施形態に従って、方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して説明される。フローチャート図またはブロック図あるいはその両方の各ブロック、ならびにフローチャート図またはブロック図あるいはその両方に含まれるブロックの組み合わせが、コンピュータ可読プログラム命令によって実装され得るということが理解されるであろう。
【0090】
これらのコンピュータ可読プログラム命令は、コンピュータまたはその他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方のブロックに指定される機能/動作を実施する手段を作り出すべく、汎用コンピュータ、専用コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに提供されてマシンを作り出すものであってよい。これらのコンピュータ可読プログラム命令は、命令が格納されたコンピュータ可読記憶媒体がフローチャートまたはブロック図あるいはその両方のブロックに指定される機能/動作の態様を実施する命令を含んでいる製品を備えるように、コンピュータ可読記憶媒体に格納され、コンピュータ、プログラム可能なデータ処理装置、または他のデバイス、あるいはその組み合わせに特定の方式で機能するように指示できるものであってもよい。
【0091】
コンピュータ可読プログラム命令は、コンピュータ上、その他のプログラム可能な装置上、またはその他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方のブロックに指定される機能/動作を実施するように、コンピュータ、その他のプログラム可能なデータ処理装置、またはその他のデバイスに読み込まれてもよく、それによって、一連の動作可能なステップを、コンピュータ上、その他のプログラム可能な装置上、またはコンピュータ実装プロセスを生成するその他のデバイス上で実行させる。
【0092】
図内のフローチャートおよびブロック図は、本発明のさまざまな実施形態に従って、システム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、および動作を示す。これに関連して、フローチャートまたはブロック図内の各ブロックは、規定された論理機能を実装するための1つまたは複数の実行可能な命令を備える、命令のモジュール、セグメント、または部分を表してよい。一部の代替の実装では、ブロックに示された機能は、図に示された順序とは異なる順序で発生してよい。例えば、連続して示された2つのブロックは、実際には、含まれている機能に応じて、実質的に同時に実行されるか、または場合によっては逆の順序で実行されてよい。ブロック図またはフローチャート図あるいはその両方の各ブロック、ならびにブロック図またはフローチャート図あるいはその両方に含まれるブロックの組み合わせは、規定された機能または動作を実行するか、または専用ハードウェアとコンピュータ命令の組み合わせを実行する専用ハードウェアベースのシステムによって実装され得るということにも注意する。
図1
図2
図3
図4
図5
図6
図7
図8
図9