(57)【要約】【課題】ＨｉＬａａＳ（Hardware-in-the-Loop as a Service）を使用した埋め込みシステムおよびアプリケーションのテストを提供する。【解決手段】ＨｉＬａａＳ（Hardware-in-the-Loop as a Service）として示される、プロセッサによってモノのインターネット（ＩｏＴ）環境内で埋め込みシステムおよびそれらのアプリケーションをテストするための実施形態。シミュレートされる環境内で、ネットワーク化システム内の１つまたは複数のシミュレートされる実体および１つまたは複数の現実の実体が、価格に関する受信された制御パラメータに従ってリアルタイムにテストされてよい。この価格は、他のパラメータに基づいてシステムによって推定され、承認または拒否するためにユーザに提供される。代替として、ユーザが価格を指定してよく、システムが制御パラメータを推定し、ユーザがそれらの制御パラメータを承認または拒否することができる。価格および制御パラメータが承認された場合、１つまたは複数のシミュレートされる実体のテストに基づいて、１つもしくは複数の実体、ネットワーク・システム、またはその組み合わせの１つまたは複数の特性が推定されてよい。【選択図】図６
2021512526.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサによって、モノのインターネット（ＩｏＴ）環境内のネットワーク化システムをテストするための方法であって、
シミュレーション環境に関連する１つまたは複数の制御パラメータおよび情報を受信することと、
前記シミュレーション環境内で、ネットワーク・システムに関連付けられた１つもしくは複数のエンティティ、前記ネットワーク・システムに関連付けられた１つもしくは複数のシミュレートされるエンティティ、またはその組み合わせを、前記１つまたは複数の制御パラメータに従ってＴａａＳ（testing as a service）としてテストすることと、
前記１つまたは複数のシミュレートされるエンティティの前記テストに基づいて、前記１つもしくは複数のエンティティ、前記ネットワーク・システム、またはその組み合わせの１つまたは複数の特性を推定することとを含んでいる、方法。
【請求項２】
前記シミュレーション環境内で前記ＴａａＳとしてテストすることが、
前記１つもしくは複数の制御パラメータに従って前記シミュレーション環境内でテストするための価格を推定すること、
前記テストの前記推定された価格の承認を受信すること、あるいは
前記１つもしくは複数のエンティティ、前記１つもしくは複数のシミュレートされるエンティティ、またはその組み合わせをテストすることをさらに含んでいる、請求項１に記載の方法。
【請求項３】
前記シミュレーション環境内で前記ＴａａＳとしてテストすることが、
前記シミュレーション環境内でテストするための最大しきい値価格、価格設定の範囲、またはその組み合わせを受信すること、
前記シミュレーション環境内でテストするための前記最大しきい値価格、前記価格設定の範囲、またはその組み合わせに従って１つまたは複数の制御パラメータを調整すること、
前記調整された制御の承認を受信すること、あるいは
前記１つもしくは複数のエンティティ、前記１つもしくは複数のシミュレートされるエンティティ、またはその組み合わせをテストすることをさらに含んでいる、請求項１に記載の方法。
【請求項４】
前記シミュレーション環境に関連する前記１つまたは複数の制御パラメータおよび前記情報を受信することが、
前記シミュレーション環境の記述を受信すること、
前記ネットワーク・システムの記述を受信することであって、前記記述が前記ネットワーク・システムのトポロジーを少なくとも含んでいる、前記受信すること、
前記ネットワーク・システムの動作に関連する履歴データを受信すること、
前記ネットワーク・システムの前記動作の選択された期間に関するスケジューリング・データを受信すること、
リアルタイムにストリーミングされたデータを前記１つもしくは複数のエンティティから受信すること、または
リアルタイムにストリーミングされたデータを１つもしくは複数のサードパーティから受信することを含んでいる、請求項１に記載の方法。
【請求項５】
前記１つまたは複数の制御パラメータを受信することが、
前記テストを実行してテスト結果を提供するための選択された時間を受信すること、
前記１つもしくは複数のシミュレートされるエンティティを前記テストすることに関する１つもしくは複数の条件を受信すること、
前記テスト中のシステムの前記１つもしくは複数のエンティティを前記テストすることに関する１つもしくは複数の条件を受信すること、または
前記テストの精度の測定値を受信することをさらに含んでいる、請求項１に記載の方法。
【請求項６】
前記シミュレーション環境内で前記ＴａａＳとしてテストする前に、
前記１つもしくは複数の制御パラメータに従って選択された期間にわたってシミュレートするための前記１つもしくは複数のエンティティの数を推定すること、
前記１つもしくは複数の制御パラメータに従って、前記ネットワーク化システムに関連付けられた前記１つもしくは複数のエンティティ、前記１つもしくは複数のシミュレートされるエンティティ、および環境の間の相互作用の数を推定すること、または
前記１つもしくは複数の制御パラメータに従って、選択された期間にわたって前記１つもしくは複数のエンティティおよび前記相互作用の数をシミュレートするのに必要な１つもしくは複数のコンピューティング・システムを推定することをさらに含んでいる、請求項１に記載の方法。
【請求項７】
前記テストすることが、
前記制御パラメータに従って前記１つまたは複数のエンティティをシミュレートすることと、
前記シミュレーション中に前記シミュレーション環境をリアルタイムに更新することであって、前記ネットワーク・システムの動作の履歴データを少なくとも含んでいる、前記更新することとをさらに含んでいる、請求項１に記載の方法。
【請求項８】
前記１つまたは複数のシミュレートされるエンティティに関してリアルタイムにストリーミングされたデータを、前記１つまたは複数のシミュレートされるエンティティの前記テストの出力として提供することをさらに含んでいる、請求項１に記載の方法。
【請求項９】
前記シミュレートされる環境にアクセスするために、前記１つもしくは複数のエンティティ、ユーザ、またはその組み合わせによるリモート・アクセス用のインターフェイスを提供することをさらに含んでいる、請求項１に記載の方法。
【請求項１０】
シミュレーション環境の記述および価格を受信することと、
前記価格およびシミュレーション環境の前記記述に従って、テストの前記１つまたは複数の制御パラメータを推定することと、
前記１つまたは複数の制御パラメータの承認時に、前記制御パラメータに従って、関連付けられた前記１つもしくは複数のエンティティ、前記１つもしくは複数のシミュレートされるエンティティ、またはその組み合わせをテストすることと、
前記１つまたは複数のシミュレートされるエンティティの前記テストに基づいて、前記１つもしくは複数のエンティティ、前記ネットワーク・システム、またはその組み合わせの前記１つまたは複数の特性を推定することとをさらに含んでいる、請求項１に記載の方法。
【請求項１１】
モノのインターネット（ＩｏＴ）ネットワーク環境内のネットワーク化システムをテストするためのシステムであって、
実行可能な命令を含む１つまたは複数のコンピュータを備えており、前記命令が、実行された場合に、前記システムに、
シミュレーション環境に関連する１つまたは複数の制御パラメータおよび情報を受信することと、
前記シミュレーション環境内で、ネットワーク・システムに関連付けられた１つもしくは複数のエンティティ、前記ネットワーク・システムに関連付けられた１つもしくは複数のシミュレートされるエンティティ、またはその組み合わせを、前記１つまたは複数の制御パラメータに従ってＴａａＳ（testing as a service）としてテストすることと、
前記１つまたは複数のシミュレートされるエンティティの前記テストに基づいて、前記１つもしくは複数のエンティティ、前記ネットワーク・システム、またはその組み合わせの１つまたは複数の特性を推定することとを実行させる、システム。
【請求項１２】
前記実行可能な命令が、実行された場合に、前記システムに、
前記１つもしくは複数の制御パラメータに従って前記シミュレーション環境内でテストするための価格を推定すること、
前記テストの前記推定された価格の承認を受信すること、
前記シミュレーション環境内でテストするための最大しきい値価格、価格設定の範囲、もしくはその組み合わせを受信すること、
前記シミュレーション環境内でテストするための前記最大しきい値価格、前記価格設定の範囲、もしくはその組み合わせに従って１つもしくは複数の制御パラメータを調整すること、
前記調整された制御の承認を受信すること、あるいは
前記１つもしくは複数のエンティティ、前記１つもしくは複数のシミュレートされるエンティティ、またはその組み合わせをテストすることを実行させる、請求項１１に記載のシステム。
【請求項１３】
前記シミュレーション環境に関連する前記１つまたは複数の制御パラメータおよび前記情報を受信することに従って、前記実行可能な命令が、実行された場合に、前記システムに、
前記シミュレーション環境の記述を受信すること、
前記ネットワーク・システムの記述を受信することであって、前記記述が前記ネットワーク・システムのトポロジーを少なくとも含んでいる、前記受信すること、
前記ネットワーク・システムの動作に関連する履歴データを受信すること、
前記ネットワーク・システムの前記動作の選択された期間に関するスケジューリング・データを受信すること、
リアルタイムにストリーミングされたデータを前記１つもしくは複数のエンティティから受信すること、
リアルタイムにストリーミングされたデータを１つもしくは複数のサードパーティから受信することであって、前記ストリーミングされたデータが気象監視データ、汚染監視データ、衛星画像データ、もしくは航空画像データ、またはその組み合わせを含んでいる、前記受信すること、
前記テストを実行してテスト結果を提供するための選択された時間を受信すること、
前記１つもしくは複数のシミュレートされるエンティティを前記テストすることに関する１つもしくは複数の条件を受信すること、
前記テスト中のシステムの前記１つもしくは複数のエンティティを前記テストすることに関する１つもしくは複数の条件を受信すること、あるいは
前記テストの精度の測定値を受信することを実行させる、請求項１１に記載のシステム。
【請求項１４】
前記実行可能な命令が、実行された場合に、前記システムに、
前記１つもしくは複数の制御パラメータに従って選択された期間にわたってシミュレートするための前記１つもしくは複数のエンティティの数を推定すること、
前記１つもしくは複数の制御パラメータに従って、前記ネットワーク化システムに関連付けられた前記１つもしくは複数のエンティティ、前記１つもしくは複数のシミュレートされるエンティティ、および環境の間の相互作用の数を推定すること、または
前記１つもしくは複数の制御パラメータに従って、選択された期間にわたって前記１つもしくは複数のエンティティおよび前記相互作用の数をシミュレートするのに必要な１つもしくは複数のコンピューティング・システムを推定することを実行させる、請求項１１に記載のシステム。
【請求項１５】
前記実行可能な命令が、実行された場合に、前記システムに、
前記制御パラメータに従って前記１つもしくは複数のエンティティをシミュレートすること、
前記シミュレーション中に前記シミュレーション環境をリアルタイムに更新することであって、前記ネットワーク・システムの動作の履歴データを少なくとも含んでいる、前記更新すること、または
前記１つもしくは複数のシミュレートされるエンティティに関してリアルタイムにストリーミングされたデータを、前記１つもしくは複数のシミュレートされるエンティティのテストの出力として提供することを実行させる、請求項１１に記載のシステム。
【請求項１６】
前記実行可能な命令が、実行された場合に、前記システムに、前記シミュレートされる環境にアクセスするために、前記１つもしくは複数のエンティティ、ユーザ、またはその組み合わせによるリモート・アクセス用のインターフェイスを提供することを実行させる、請求項１１に記載のシステム。
【請求項１７】
前記実行可能な命令が、実行された場合に、前記システムに、
シミュレーション環境の記述および価格を受信することと、
前記価格およびシミュレーション環境の前記記述に従って、テストの前記１つまたは複数の制御パラメータを推定することと、
前記１つまたは複数の制御パラメータの承認時に、前記制御パラメータに従って、関連付けられた前記１つもしくは複数のエンティティ、前記１つもしくは複数のシミュレートされるエンティティ、またはその組み合わせをテストすることと、
前記１つまたは複数のシミュレートされるエンティティの前記テストに基づいて、前記１つもしくは複数のエンティティ、前記ネットワーク・システム、またはその組み合わせの前記１つまたは複数の特性を推定することとを実行させる、請求項１１に記載のシステム。
【請求項１８】
プロセッサによって、コンピューティング環境内のネットワーク化システムをテストするためのコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品が、コンピュータ可読プログラム・コード部分が格納されている非一過性コンピュータ可読記憶媒体を備えており、前記コンピュータ可読プログラム・コード部分が、
シミュレーション環境に関連する１つまたは複数の制御パラメータおよび情報を受信する実行可能な部分と、
前記シミュレーション環境内で、ネットワーク・システムに関連付けられた１つもしくは複数のエンティティ、前記ネットワーク・システムに関連付けられた１つもしくは複数のシミュレートされるエンティティ、またはその組み合わせを、前記１つまたは複数の制御パラメータに従ってＴａａＳ（testing as a service）としてテストする実行可能な部分と、
前記１つまたは複数のシミュレートされるエンティティの前記テストに基づいて、前記１つもしくは複数のエンティティ、前記ネットワーク・システム、またはその組み合わせの１つまたは複数の特性を推定する実行可能な部分とを含んでいる、コンピュータ・プログラム製品。
【請求項１９】
前記シミュレーション環境内で前記ＴｓｓＳとしてテストする前記実行可能な部分が、
前記１つもしくは複数の制御パラメータに従って前記シミュレーション環境内でテストするための価格を推定すること、
前記テストの前記推定された価格の承認を受信すること、
前記シミュレーション環境内でテストするための最大しきい値価格、価格設定の範囲、もしくはその組み合わせを受信すること、
前記シミュレーション環境内でテストするための前記最大しきい値価格、前記価格設定の範囲、もしくはその組み合わせに従って１つもしくは複数の制御パラメータを調整すること、
前記調整された制御の承認を受信すること、あるいは
前記１つもしくは複数のエンティティ、前記１つもしくは複数のシミュレートされるエンティティ、またはその組み合わせをテストすることをさらに実行する、請求項１８に記載のコンピュータ・プログラム製品。
【請求項２０】
前記シミュレーション環境の記述を受信すること、
前記ネットワーク・システムの記述を受信することであって、前記記述が前記ネットワーク・システムのトポロジーを少なくとも含んでいる、前記受信すること、
前記ネットワーク・システムの動作に関連する履歴データを受信すること、
前記ネットワーク・システムの前記動作の選択された期間に関するスケジューリング・データを受信すること、
リアルタイムにストリーミングされたデータを前記１つもしくは複数のエンティティから受信すること、
リアルタイムにストリーミングされたデータを１つもしくは複数のサードパーティから受信することであって、前記ストリーミングされたデータが気象監視データ、汚染監視データ、衛星画像データ、もしくは航空画像データ、またはその組み合わせを含んでいる、前記受信すること、
前記テストを実行してテスト結果を提供するための選択された時間を受信すること、
前記１つもしくは複数のシミュレートされるエンティティを前記テストすることに関する１つもしくは複数の条件を受信すること、
前記テスト中のシステムの前記１つもしくは複数のエンティティを前記テストすることに関する１つもしくは複数の条件を受信すること、あるいは
前記テストの精度の測定値を受信することを実行する実行可能な部分をさらに含んでいる、請求項１８に記載のコンピュータ・プログラム製品。
【請求項２１】
前記１つもしくは複数の制御パラメータに従って選択された期間にわたってシミュレートするための前記１つもしくは複数のエンティティの数を推定すること、
前記１つもしくは複数の制御パラメータに従って、前記ネットワーク化システムに関連付けられた前記１つもしくは複数のエンティティ、前記１つもしくは複数のシミュレートされるエンティティ、および環境の間の相互作用の数を推定すること、または
前記１つもしくは複数の制御パラメータに従って、選択された期間にわたって前記１つもしくは複数のエンティティおよび前記相互作用の数をシミュレートするのに必要な１つもしくは複数のコンピューティング・システムを推定することを実行する実行可能な部分をさらに含んでいる、請求項１８に記載のコンピュータ・プログラム製品。
【請求項２２】
前記制御パラメータに従って前記１つもしくは複数のエンティティをシミュレートすること、
前記シミュレーション中に前記シミュレーション環境をリアルタイムに更新することであって、前記ネットワーク・システムの動作の履歴データを少なくとも含んでいる、前記更新すること、または
前記１つもしくは複数のシミュレートされるエンティティに関してリアルタイムにストリーミングされたデータを、前記１つもしくは複数のシミュレートされるエンティティのテストの出力として提供することを実行する実行可能な部分をさらに含んでいる、請求項１８に記載のコンピュータ・プログラム製品。
【請求項２３】
前記シミュレートされる環境にアクセスするために、前記１つもしくは複数のエンティティ、ユーザ、またはその組み合わせによるリモート・アクセス用のインターフェイスを提供する実行可能な部分をさらに含んでいる、請求項１８に記載のコンピュータ・プログラム製品。
【請求項２４】
シミュレーション環境の記述および価格を受信することと、
前記価格およびシミュレーション環境の前記記述に従って、テストの前記１つまたは複数の制御パラメータを推定することと、
前記１つまたは複数の制御パラメータの承認時に、前記制御パラメータに従って、関連付けられた前記１つもしくは複数のエンティティ、前記１つもしくは複数のシミュレートされるエンティティ、またはその組み合わせをテストすることと、
前記１つまたは複数のシミュレートされるエンティティの前記テストに基づいて、前記１つもしくは複数のエンティティ、前記ネットワーク・システム、またはその組み合わせの前記１つまたは複数の特性を推定することとを実行する実行可能な部分をさらに含んでいる、請求項１８に記載のコンピュータ・プログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願につながるプロジェクトは、協定書第６９２４５５号の下でＥｌｅｃｔｒｏｎｉｃ  Ｃｏｍｐｏｎｅｎｔ  Ｓｙｓｔｅｍｓ  ｆｏｒ  Ｅｕｒｏｐｅａｎ  Ｌｅａｄｅｒｓｈｉｐ  Ｊｏｉｎｔ  Ｕｎｄｅｒｔａｋｉｎｇから資金提供を受けた。このＪｏｉｎｔ  Ｕｎｄｅｒｔａｋｉｎｇは、欧州連合のＨｏｒｉｚｏｎ  ２０２０研究および革新プログラムならびにオーストリア、デンマーク、ドイツ、フィンランド、チェコ共和国、イタリア、スペイン、ポルトガル、ポーランド、アイルランド、ベルギー、フランス、オランダ、イギリス、スロバキア、ノルウェーから支援を受けている。
【０００２】
本発明は、一般に、コンピューティング・システムに関連しており、より詳細には、接続されたさまざまなセンサを使用してネットワーク化システムがリアルタイムに監視される環境（モノのインターネット（ＩｏＴ：Internet of Things）とも呼ばれる）で、かつ、埋め込みシステムの一部が製造された形態で使用可能であり、その他の埋め込みシステムが、オンデマンドでシミュレートされ、ＨｉＬａａＳ（Hardware-in-the-Loop as a Service）として示される環境内の、埋め込みシステムのさまざまなテストに関連している。
【背景技術】
【０００３】
現在の社会において、消費者、実業家、教育者、およびその他の人々は、さまざまなコンピューティング・システムをさまざまな設定で使用し、それらのコンピューティング・システムの多くは、前述のシステムの相互接続を含んでいる。集積回路の出現およびさらなる小型化に伴って、コンピューティング・システムは、多種多様な個人用デバイス、ビジネス用デバイス、健康用デバイス、家庭用デバイス、教育用デバイス、娯楽用デバイス、旅行用デバイス、およびその他のデバイスに統合できるようになった。例えば、あらゆる種類の車両は、複数のコンピューティング・システムを備えている。そのようなデータ処理デバイスの使用が社会全体に広まり続けるにつれて、そのようなデバイスに依存するようになっている。そのようなデバイスおよび特にそれらの相互作用を信頼するには、そのようなデバイスの特性のテストが極めて重要になる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ＨｉＬａａＳ（Hardware-in-the-Loop as a Service）を使用した埋め込みシステムおよびアプリケーションのテストを提供する。
【課題を解決するための手段】
【０００５】
１つの態様によれば、プロセッサによって、モノのインターネット（ＩｏＴ）環境内のネットワーク化システムをテストするための方法が提供されており、この方法は、シミュレーション環境に関連する１つまたは複数の制御パラメータおよび情報を受信することと、シミュレーション環境内で、ネットワーク・システムに関連付けられた１つもしくは複数のエンティティ、ネットワーク・システムに関連付けられた１つもしくは複数のシミュレートされるエンティティ、またはその組み合わせを、１つまたは複数の制御パラメータに従ってＴａａＳ（testing as a service）としてテストすることと、１つまたは複数のシミュレートされるエンティティのテストに基づいて、１つもしくは複数のエンティティ、ネットワーク・システム、またはその組み合わせの１つまたは複数の特性を推定することとを含む。
【０００６】
別の態様によれば、モノのインターネット（ＩｏＴ）ネットワーク環境内のネットワーク化システムをテストするためのシステムが提供されており、このシステムは、実行可能な命令を含む１つまたは複数のコンピュータを備えており、これらの実行可能な命令は、実行されたときに、システムに、シミュレーション環境に関連する１つまたは複数の制御パラメータおよび情報を受信することと、シミュレーション環境内で、ネットワーク・システムに関連付けられた１つもしくは複数のエンティティ、ネットワーク・システムに関連付けられた１つもしくは複数のシミュレートされるエンティティ、またはその組み合わせを、１つまたは複数の制御パラメータに従ってＴａａＳ（testing as a service）としてテストすることと、１つまたは複数のシミュレートされるエンティティのテストに基づいて、１つもしくは複数のエンティティ、ネットワーク・システム、またはその組み合わせの１つまたは複数の特性を推定することとを実行させる。
【０００７】
別の態様によれば、プロセッサによって、コンピューティング環境内のネットワーク化システムをテストするコンピュータ・プログラム製品が提供されており、このコンピュータ・プログラム製品は、コンピュータ可読プログラム・コード部分が格納された非一過性コンピュータ可読記憶媒体を備えており、このコンピュータ可読プログラム・コード部分は、シミュレーション環境に関連する１つまたは複数の制御パラメータおよび情報を受信する実行可能な部分と、シミュレーション環境内で、ネットワーク・システムに関連付けられた１つもしくは複数のエンティティ、ネットワーク・システムに関連付けられた１つもしくは複数のシミュレートされるエンティティ、またはその組み合わせを、１つまたは複数の制御パラメータに従ってＴａａＳ（testing as a service）としてテストする実行可能な部分と、１つまたは複数のシミュレートされるエンティティのテストに基づいて、１つもしくは複数のエンティティ、ネットワーク・システム、またはその組み合わせの１つまたは複数の特性を推定する実行可能な部分とを含む。
【０００８】
モノのインターネット（ＩｏＴ）環境内のネットワーク化システムをテストするためのさまざまな実施形態が提供される。１つの実施形態では、単に例として、プロセッサによって、コンピューティング環境内でＨｉＬａａＳ（Hardware-in-the-Loop as a Service）を使用して埋め込みシステムおよびアプリケーションをテストするための方法が提供される。ＨｉＬａａＳテストは、制御パラメータに従って、１つまたは複数のネットワーク化システムの１つまたは複数のシミュレートされるエンティティと一緒にリアルタイムにテストされる、１つまたは複数の現実の埋め込みシステムを含む。シミュレーション用の制御パラメータは、シミュレーション環境内でテストされるために、受信されるか、または定義されるか、あるいはその両方が実行されてよい。ＨｉＬａａＳテストのコストは、制御パラメータおよびネットワーク化システムによって決まることがある。ＨｉＬａａＳテストの出力は、１つまたは複数のシミュレートされるエンティティのテストに基づく、１つもしくは複数のエンティティ、ネットワーク・システム、またはその組み合わせの１つまたは複数の特性の推定値であってよい。
【０００９】
本発明の利点を容易に理解するために、上で簡単に説明された本発明のより詳細な説明が、添付の図面において示された特定の実施形態を参照することによって提供される。これら図面が本発明の典型的な実施形態のみを表しており、したがって、本発明の範囲の制限と見なされるべきではないということを理解して、添付の図面を使用することによって、追加の特殊性および詳細と共に本発明が表され、説明される。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施形態に従って例示的なコンピューティング・ノードを示すブロック図である。
【図２】本発明の実施形態に従って例示的なクラウド・コンピューティング環境を示す追加のブロック図である。
【図３】本発明の実施形態に従って抽象モデル・レイヤを示す追加のブロック図である。
【図４】本発明の実施形態に従って機能する、モノのインターネット（ＩｏＴ）コンピューティング・ネットワーク環境内の交通シミュレーション・テスト用の例示的なシステムを示す図である。
【図５】本発明の実施形態に従って機能する、モノのインターネット（ＩｏＴ）コンピューティング・ネットワーク環境内の交通シミュレーション・テスト用の例示的なシステムを示す追加の図である。
【図６】ＨｉＬａａＳ（Hardware-in-the-Loop as a Service）を使用してモノのインターネット（ＩｏＴ）コンピューティング・ネットワーク環境内の埋め込みシステムおよびアプリケーションをテストするための例示的な方法を示すフローチャート図であり、やはりこの方法で、本発明のさまざまな実施形態が実装されてよい。
【図７】ＨｉＬａａＳ（Hardware-in-the-Loop as a Service）を使用してモノのインターネット（ＩｏＴ）ネットワーク環境内の埋め込みシステムおよびアプリケーションをテストするための例示的な方法を示す追加のフローチャート図であり、やはりこの方法で、本発明のさまざまな実施形態が実装されてよい。
【図８】ＨｉＬａａＳを使用してＩｏＴネットワーク環境内の埋め込みシステムおよびアプリケーションをテストするための例示的な方法を示す追加のフローチャート図であり、この方法で、本発明のさまざまな実施形態が実装されてよい。
【図９】ＨｉＬａａＳを使用してＩｏＴネットワーク環境内の埋め込みシステムおよびアプリケーションをテストするための例示的な方法を示す追加のフローチャート図であり、やはりこの方法で、本発明のさまざまな実施形態が実装されてよい。
【発明を実施するための形態】
【００１１】
コンピュータおよびネットワーク技術の出現は、世界の一方の側から他方への人々またはデバイスの相互通信を可能にした。例えば、クラウド・コンピューティングが、ＩａａＳ（Infrastructure as a Service）、ＰａａＳ（Platform as a Service）、またはＳａａＳ（Software as a Service）、あるいはその組み合わせなどの形態で、インターネットを経由したサービスとして提供されることがある。ＩａａＳは、通常、物理コンピューティング・デバイスもしくは仮想コンピューティング・デバイス、または出来高払いに基づく付属物、あるいはその両方を提供することができ、クライアント／ユーザは、それらのコンピューティング・デバイス上でプラットフォーム、アプリケーション、またはデータ、あるいはその組み合わせを読み込むか、またはインストールするか、あるいはその両方を実行し、管理することができる。ＰａａＳは、コンピューティング・プラットフォームおよびソリューション・スタックを、例えば、ソフトウェア開発プラットフォーム、アプリケーション・サービスなどのサービス（チームの共同作業、Ｗｅｂサービスの統合、データベースの統合、または開発者コミュニティの促進、あるいはその組み合わせなど）として提供できる。ＳａａＳは、オンデマンドのサービスとして使用するために、ソフトウェア・ライセンスをアプリケーションとして顧客に展開できる。ＳａａＳソフトウェア・ベンダーは、それらが所有するクラウド上でアプリケーションをホストするか、またはそのようなアプリケーションをクラウドからクラウドのクライアントにダウンロードし、使用後またはオンデマンド契約の終了後に、アプリケーションを無効にすることができる。
【００１２】
追加の態様では、モノのインターネット（Internet of Things）（Internet of objectsとも呼ばれる）とは、日常的な物のネットワーク化された相互接続またはコンピューティング・デバイスの相互接続（ＩｏＴデバイス）のことを指す。モノのインターネットは、すべての物を相互接続するという目的を持つセンサの無線ネットワークを自己構成することとして説明される。ＩｏＴデバイスは、一意に識別可能であることができ、コンピューティング・ネットワークを介して１つまたは複数の他のＩｏＴデバイスと通信し、デバイス構成を形成することができる。複数のプロトコル、ドメイン、およびアプリケーションが、ＩｏＴデバイスにおいて実装されてよい。ＩｏＴデバイスは、家庭用電気製品、製造装置、産業用プリンタ、自動車、サーモスタット、スマート信号機、車両、建物などの、さまざまな物理デバイスまたは製品に埋め込まれてよい。さらに、ＩｏＴコンピューティング・システムは、例えば、住宅の顧客の電力負荷を部分的に制御する能力を提供する「需要応答管理」を含んでよく、例えば、電力負荷をリモートから制御することなどを行うことができる。その他の例として、輸送業界では、ＩｏＴコンピューティング・システムの要素が、１つまたは複数の種類の車両を含むことがある。
【００１３】
しかし、現在の課題は、さまざまなクラウド・コンピューティング・システムおよびＩｏＴコンピューティング・システムに影響を与えている。例えば、ＩｏＴコンピューティング・システムでは、数十万のセンサ（例えば、「スマート・ワイヤ」およびワイヤ上の温度の測定）を同時に展開することは困難であり、提案されたパイロット・プロジェクトにおいてわずか数個のセンサを展開することからセンサの効果を予測することも、困難であることがある。したがって、本発明は、モノのインターネット（ＩｏＴ）ネットワーク環境内で、ＨｉＬａａＳ（Hardware-in-the-Loop as a Service）を使用して埋め込みシステムおよびアプリケーションをテストするための解決策を提供しようとするのが好ましい。
【００１４】
一実施形態では、ループ内のハードウェアが、固定された数のシミュレートされる要素を含むシミュレーション・エンジン（例えば、単純なシミュレーション・エンジン）と連携して、例えば、４つの車輪の静止摩擦および１つの駆動輪からの入力をシミュレートしながら、他の車両から独立している車両のエンジンをテストすることに適用されてよい。ＩｏＴアプリケーションでは、シミュレートされる要素の数が変化する傾向があり、非常に多くなる傾向があり（例えば、数千の車両）、結果の精度はシミュレートされる要素の数によって決まる。そのため、本発明は、ＨｉＬａａＳテストを、テスト中のネットワーク化システム内の要素の数が時間と共に変化するようなネットワーク化システムに適用することを可能にするのが好ましい。したがって、実施形態例のメカニズムは、ネットワーク化システムのシミュレーションを提供することができ、データをリアルタイムに提供するために一部の実際の要素または現実の要素を備えながら、時間と共に変化する数のその他の要素をシミュレートすることができる。例えば、電力システムでは、ＨｉＬａａＳテストは、ある期間にわたって一定であることがあるトポロジーを単にテストすること（例えば、発電所の停止の影響をテストすること）を越えて、時間と共に変化するトポロジーのテスト（例えば、最適な送電の切り替え）、および個々のユーザの割り込みを考慮するテスト（例えば、ユーザが電力負荷を増減することによって引き起こされる電力負荷の個々の割り込みのテスト）の両方にまで及ぶ。追加の例として、実施形態例のメカニズムは、実際の現実の車両および時間と共に変化する数の他の車両（例えば、交通シミュレーション・テストにおける時間と共に変化する数の他のシミュレートされる車両）の全地球測位衛星（ＧＰＳ：global positioning satellites）を使用して交通をシミュレートすることによって、輸送部門をテストするＨｉＬａａＳを提供することができる。
【００１５】
一実施形態では、ネットワーク化システムのＨｉＬａａＳテストの場合、時間と共に変化する数のエンティティが、長期間の解析にとって極めて重要である。例えば、多くのアプリケーション（例えば、電力システム、輸送、ネットワーク）にわたる需要は、極めて短い期間（例えば、数分）が考慮される場合にのみ、定常性を示す。したがって、本発明は、選択された期間（例えば、２４時間以上）にわたってアプリケーションまたはシステムをシミュレートするために、非定常の方法で複数のシミュレートされるエンティティの数が変化できるようにするのが好ましい。現実のエンティティの数は、シミュレーションが長期間（例えば、自動運転車両の道路の安全性のテストでは数年）実行される場合、例えば現実的な理由など（例えば、故障、シミュレーションの拡大など）に起因して、変化することもある。
【００１６】
一実施形態では、シミュレートするイベントの頻度が、例えば低頻度（例えば、１ヘルツ「Ｈｚ」）のイベントなどとして定義されることがあり、一方、ネットワーク化システム内の要素の数が、大量（例えば、数千の要素）になることがある。例えば、道路上に３千台の車両が存在する５４キロメートル（「ｋｍ」）の環状道路または幹線道路に関する速度推奨システム（speed advisory system）などの、輸送アプリケーションでは、各車両が１時間の間、道路上に留まることがあり、したがって、道路上の車両の１Ｈｚの頻度の到着および出発を考慮する。都市規模の速度推奨システムでは、ピーク時に、３０Ｈｚの頻度の到着および出発を伴って、１５０ｋｍの道路網上に数十万台の車両が存在することがある。さらに、輸送アプリケーションでは、車両が任意の速さに加速および減速することができないことがあり、多くのその他のイベントに関しても、提案される頻度の現実的な時間の離散化を行う。
【００１７】
ネットワーク化システムを含むＩｏＴコンピューティング・システムに適用されるＨｉＬａａＳテストは、（複数の要素を個別にテストすることに比べて）要素の相互作用（例えば、非線形相互作用）をテストすることを含むことができる。例えば、車両の速度を決定することにおいて、前述の車両の速度は、同じ車線内の先行車両または後続車両、ならびにこの車線に合流する車両、および場合によっては、他の車線内の車両の速度を含む、複数の要因に基づいて設定される。理想的には、本明細書の例において検討される速度推奨システムは、道路上のすべての車両の速度を含む、そのようなすべての要因を考慮し、道路上のすべての車両の速度を一緒に設定することができる。ネットワーク化システムの個々の要素の接続および自動化が改善されるため、相互作用を監視してシミュレートすることが可能になることがあり、それによって、シミュレーション精度が向上する。
【００１８】
速度推奨の例を詳細に示すために、例えば領域「Ａ」などの選択された地理的領域内で、速度推奨システムが動作中であり、通り上のある数の実際の車両の位置がその入力であると仮定する。従来、そのようなシステムは、シミュレーションにおいてのみテストされ、その後、すべてのユーザがシミュレートされたテストに反応するように、すべてのユーザに展開された。ＨｉＬａａＳテストでは、ＨｉＬａａＳテスト・システムが、道路ユーザのうちの１人または複数に展開されてよく、傾斜計測データなどのセンサ・データを吸収しながら、他の道路ユーザの挙動をシミュレートしてよい。例えば、引継ぎがシミュレートされない限り、シミュレートされる車両の速度が、位置が入力されて吸収される実際の車両の速度を超えることができないなどの、シミュレーション環境における１つまたは複数のルールが定義されてよい。道路ユーザの推奨された速度の順守などの、その他のルールは、概算であってよい。さらに、ＨｉＬａａＳテストは、現実の車両とシミュレートされる車両の間のさまざまな相互作用を考慮することによって、交通密度および時間の経過に伴う交通密度の発達などの、ネットワーク・システムの特性の推定を可能にする。
【００１９】
追加の例として、電力システムでは、報告された風速の低下は、電力の大口ユーザ（企業または組織など）が電力価格の上昇を予想するため、有効電力に対する需要の低下を引き起こすことがある。ＨｉＬａａＳテストでは、そのような相互作用をモデル化することもできる。ＨｉＬａａＳテストでは、多数の実際のエンティティが存在するのが好ましいということに、注意するべきである。輸送アプリケーションでは、少数の実際の車両のみがその位置を提供し、少数の実際の車両が「敵対的」である（例えば、交通渋滞の印象を意図的に作り出そうとして、非常にゆっくり運転している）場合、速度推奨システムは、準最適な推奨を提供することがある。その結果、多くの運転者は、大規模な展開においては移動ルートの変更が厳密には必要ない場合でも、移動ルートを変更することがある。
【００２０】
大規模なネットワーク化システムをテストするには、選択された期間（例えば、短期間）の間の高性能の計算（例えば、数百個または数千個あるいはその両方の計算ノード）が必要になることがある。テストの目的で高性能のハードウェアを購入するのは経済的でないことがあるが、ＨｉＬａａＳテストは、高性能のハードウェアへのアクセスを「サービスとして」（例えば、オンデマンドのサービスとして）提供し、それによって、高性能のコンピューティング設備がクラウド・コンピューティング環境内で共有される。
【００２１】
一実施形態では、本発明のメカニズムは、シミュレーション環境内で、さまざまなシミュレーション・パラメータ（例えば、「入力」）をＨｉＬａａＳテストに使用することができる。シミュレーション・パラメータ（例えば、「入力」）は、ネットワーク・システムに関連する静的データ（例えば、電力システムの記述および詳細、輸送網の記述および詳細など）と、選択された期間に関するデータ（例えば、始動停止スケジュール、輸送の時刻表／スケジュール、カレンダー・データなどの「１日当たりのデータ」）と、ネットワーク化システムに関連付けられた１つまたは複数のエンティティおよび環境からリアルタイムにストリーミングされたデータ（例えば、割り込み可能な負荷のうちの１つの負荷、テスト車両の位置）と、１つまたは複数のエンティティに関連する情報（例えば、ＨｉＬａａＳテスト用のシミュレーション・エンジンの種類、ＨｉＬａａＳテストの構成、エンティティの挙動、または他のユーザによって定義された情報）とを含んでよいが、これらに限定されない。
【００２２】
ＨｉＬａａＳテストは、さまざまなシミュレーション・パラメータまたは「入力」を使用して、複数のエンティティを推定し、ネットワーク化システムのシミュレートされるエンティティ、現実のエンティティ（例えば、シミュレートされないエンティティ）、および環境の間の相互作用をシミュレートするか、または推定するか、あるいはその両方を実行することができる。ネットワーク化システムのＨｉＬａａＳテストの出力は、シミュレートされるエンティティのリアルタイムにストリーミングされたデータ、および他のアプリケーションにおける可能性のある使用に関する、シミュレートされるエンティティの同じデータの予測を提供することができる。例えば、予測に基づいて、リアルタイムに提供されるサービスの価格を設定する（例えば、ネットワーク・システムの挙動を予測して、選択された価格でＨｉＬａａＳサービスを提供する）などの、１つまたは複数の理由または動機のために、ネットワーク・システムの挙動が予測されてよいということに、注意するべきである。ネットワーク化システムのＨｉＬａａＳテストの出力は、シミュレートされるエンティティおよびその予測に基づいて、ネットワーク化システムの１つまたは複数の特性を推定してもよい。
【００２３】
実施形態例のさまざまな態様のその他の例および対応する利益が、本明細書においてさらに説明される。
【００２４】
本開示にはクラウド・コンピューティングの詳細な説明が含まれているが、本明細書において示された教示の実装は、クラウド・コンピューティング環境に限定されないということが、あらかじめ理解される。本発明の実施形態は、現在既知であるか、または今後開発される任意のその他の種類のコンピューティング環境と組み合わせて実装できる。
【００２５】
クラウド・コンピューティングは、構成可能な計算リソース（例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス）の共有プールへの便利なオンデマンドのネットワーク・アクセスを可能にするためのサービス提供モデルであり、管理上の手間またはサービス・プロバイダとのやりとりを最小限に抑えて、これらのリソースを迅速にプロビジョニングおよび解放することができる。このクラウド・モデルは、少なくとも５つの特徴、少なくとも３つのサービス・モデル、および少なくとも４つのデプロイメント・モデルを含むことができる。
【００２６】
特徴は、次のとおりである。
オンデマンドのセルフ・サービス：クラウドの利用者は、サーバの時間、ネットワーク・ストレージなどの計算能力を一方的に、サービス・プロバイダとの人間的なやりとりを必要とせず、必要に応じて自動的にプロビジョニングすることができる。
幅広いネットワーク・アクセス：クラウドの能力は、ネットワークを経由して利用可能であり、標準的なメカニズムを使用してアクセスできるため、異種のシン・クライアントまたはシック・クライアント・プラットフォーム（例えば、携帯電話、ラップトップ、およびＰＤＡ）による利用を促進する。
リソース・プール：プロバイダの計算リソースは、プールされ、マルチテナント・モデルを使用して複数の利用者に提供される。さまざまな物理的および仮想的リソースが、要求に従って動的に割り当ておよび再割り当てされる。場所に依存しないという感覚があり、利用者は通常、提供されるリソースの正確な場所に関して管理することも知ることもないが、さらに高い抽象レベルでは、場所（例えば、国、州、またはデータセンター）を指定できる場合がある。
迅速な順応性：クラウドの能力は、迅速かつ柔軟に、場合によっては自動的にプロビジョニングされ、素早くスケール・アウトし、迅速に解放されて素早くスケール・インすることができる。プロビジョニングに使用できる能力は、利用者には、多くの場合、任意の量をいつでも無制限に購入できるように見える。
測定されるサービス：クラウド・システムは、計測機能を活用することによって、サービスの種類（例えば、ストレージ、処理、帯域幅、およびアクティブなユーザのアカウント）に適した抽象レベルで、リソースの使用を自動的に制御および最適化する。リソースの使用量は監視、制御、および報告することができ、利用されるサービスのプロバイダと利用者の両方に透明性が提供される。
【００２７】
サービス・モデルは、次のとおりである。
ＳａａＳ（Software as a Service）：利用者に提供される能力は、クラウド・インフラストラクチャ上で稼働しているプロバイダのアプリケーションの利用である。それらのアプリケーションは、Ｗｅｂブラウザ（例えば、Ｗｅｂベースの電子メール）などのシン・クライアント・インターフェイスを介して、さまざまなクライアント・デバイスからアクセスできる。利用者は、ネットワーク、サーバ、オペレーティング・システム、ストレージ、または個々のアプリケーション機能を含む基盤になるクラウド・インフラストラクチャを、限定的なユーザ固有のアプリケーション構成設定を行う可能性を除き、管理することも制御することもない。
ＰａａＳ（Platform as a Service）：利用者に提供される能力は、プロバイダによってサポートされるプログラミング言語およびツールを使用して作成された、利用者が作成または取得したアプリケーションをクラウド・インフラストラクチャにデプロイすることである。利用者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む基盤になるクラウド・インフラストラクチャを管理することも制御することもないが、デプロイされたアプリケーション、および場合によってはアプリケーション・ホスティング環境の構成を制御することができる。
ＩａａＳ（Infrastructure as a Service）：利用者に提供される能力は、処理、ストレージ、ネットワーク、およびその他の基本的な計算リソースのプロビジョニングであり、利用者は、オペレーティング・システムおよびアプリケーションを含むことができる任意のソフトウェアをデプロイして実行できる。利用者は、基盤になるクラウド・インフラストラクチャを管理することも制御することもないが、オペレーティング・システム、ストレージ、およびデプロイされたアプリケーションを制御することができ、場合によっては、選択されたネットワーク・コンポーネント（例えば、ホスト・ファイアウォール）を限定的に制御できる。
【００２８】
デプロイメント・モデルは、次のとおりである。
プライベート・クラウド：このクラウド・インフラストラクチャは、ある組織のためにのみ運用される。この組織またはサードパーティによって管理することができ、オンプレミスまたはオフプレミスに存在することができる。
コミュニティ・クラウド：このクラウド・インフラストラクチャは、複数の組織によって共有され、関心事（例えば、任務、セキュリティ要件、ポリシー、およびコンプライアンスに関する考慮事項）を共有している特定のコミュニティをサポートする。これらの組織またはサードパーティによって管理することができ、オンプレミスまたはオフプレミスに存在することができる。
パブリック・クラウド：このクラウド・インフラストラクチャは、一般ユーザまたは大規模な業界団体が使用できるようになっており、クラウド・サービスを販売する組織によって所有される。
ハイブリッド・クラウド：このクラウド・インフラストラクチャは、データとアプリケーションの移植を可能にする標準化された技術または独自の技術（例えば、クラウド間の負荷バランスを調整するためのクラウド・バースト）によって固有のエンティティを残したまま互いに結合された２つ以上のクラウド（プライベート、コミュニティ、またはパブリック）の複合である。
【００２９】
クラウド・コンピューティング環境は、ステートレス、疎結合、モジュール性、および意味的相互運用性に重点を置いたサービス指向の環境である。クラウド・コンピューティングの中心になるのは、相互接続されたノードのネットワークを備えるインフラストラクチャである。
【００３０】
ここで図１を参照すると、クラウド・コンピューティング・ノードの例の概略図が示されている。クラウド・コンピューティング・ノード１０は、適切なクラウド・コンピューティング・ノードの一例に過ぎず、本明細書に記載された本発明の実施形態の使用または機能の範囲に関して、いかなる制限を示唆することも意図されていない。いずれにせよ、クラウド・コンピューティング・ノード１０は、前述した機能のいずれかを実装すること、または実行すること、あるいはその両方を行うことができる。
【００３１】
クラウド・コンピューティング・ノード１０内には、他の多数の汎用または専用のコンピューティング・システム環境または構成で運用できるコンピュータ・システム／サーバ１２が存在する。コンピュータ・システム／サーバ１２と共に使用するのに適した周知のコンピューティング・システム、環境、または構成、あるいはその組み合わせの例は、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルドまたはラップトップ・デバイス、マイクロプロセッサ・システム、マイクロプロセッサベース・システム、セット・トップ・ボックス、プログラマブル・コンシューマ・エレクトロニクス、ネットワークＰＣ、マイクロコンピュータ・システム、メインフレーム・コンピュータ・システム、およびこれらの任意のシステムまたはデバイスを含む分散クラウド・コンピューティング環境などを含むが、これらに限定されない。
【００３２】
コンピュータ・システム／サーバ１２は、コンピュータ・システムによって実行されているプログラム・モジュールなどの、コンピュータ・システムによって実行可能な命令との一般的な関連において説明されてよい。通常、プログラム・モジュールは、特定のタスクを実行するか、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、論理、データ構造などを含んでよい。コンピュータ・システム／サーバ１２は、通信ネットワークを介してリンクされたリモート処理デバイスによってタスクが実行される、分散クラウド・コンピューティング環境内で実践されてよい。分散クラウド・コンピューティング環境において、プログラム・モジュールは、メモリ・ストレージ・デバイスを含む、ローカルおよびリモートの両方のコンピュータ・システム記憶媒体に配置されてよい。
【００３３】
図１に示すように、クラウド・コンピューティング・ノード１０内のコンピュータ・システム／サーバ１２は、汎用コンピューティング・デバイスの形態で示されている。コンピュータ・システム／サーバ１２のコンポーネントは、１つまたは複数のプロセッサまたはプロセッシング・ユニット１６、システム・メモリ２８、およびシステム・メモリ２８を含むさまざまなシステム・コンポーネントをプロセッサ１６に結合するバス１８を含むことができるが、これらに限定されない。
【００３４】
バス１８は、メモリ・バスまたはメモリ・コントローラ、ペリフェラル・バス、アクセラレーテッド・グラフィックス・ポート、および任意のさまざまなバス・アーキテクチャを使用するプロセッサまたはローカル・バスを含む、任意の複数の種類のバス構造のうちの１つまたは複数を表す。例として、そのようなアーキテクチャは、ＩＳＡ（Industry Standard Architecture）バス、ＭＣＡ（Micro Channel Architecture）バス、ＥＩＳＡ（Enhanced ISA）バス、ＶＥＳＡ（Video Electronics Standards Association）ローカル・バス、およびＰＣＩ（Peripheral Component Interconnects）バスを含むが、これらに限定されない。
【００３５】
コンピュータ・システム／サーバ１２は、通常、さまざまなコンピュータ・システム可読媒体を含む。そのような媒体は、コンピュータ・システム／サーバ１２によってアクセスできる任意の使用可能な媒体であってよく、揮発性および不揮発性媒体、取り外し可能および取り外し不可の媒体を含む。
【００３６】
システム・メモリ２８は、ランダム・アクセス・メモリ（ＲＡＭ：random access memory）３０またはキャッシュ・メモリ３２あるいはその両方などの、揮発性メモリの形態でのコンピュータ・システム可読媒体を含むことができる。コンピュータ・システム／サーバ１２は、その他の取り外し可能／取り外し不可、揮発性／不揮発性のコンピュータ・システム・ストレージ媒体をさらに含んでよい。単に例として、取り外し不可、不揮発性の磁気媒体（図示されておらず、通常は「ハード・ドライブ」と呼ばれる）に対する読み取りと書き込みを行うために、ストレージ・システム３４を提供することができる。図示されていないが、取り外し可能、不揮発性の磁気ディスク（例えば、「フロッピー（Ｒ）・ディスク」）に対する読み取りと書き込みを行うための磁気ディスク・ドライブ、およびＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、またはその他の光媒体などの取り外し可能、不揮発性の光ディスクに対する読み取りと書き込みを行うための光ディスク・ドライブを提供することができる。そのような例では、それぞれを、１つまたは複数のデータ媒体インターフェイスによってバス１８に接続することができる。下で詳細に示され、説明されているように、システム・メモリ２８は、本発明の実施形態の機能を実行するように構成された一連の（例えば、少なくとも１つの）プログラム・モジュールを備える少なくとも１つのプログラム製品を含んでよい。
【００３７】
例えば、一連の（少なくとも１つの）プログラム・モジュール４２を含んでいるプログラム／ユーティリティ４０がシステム・メモリ２８に格納されてよいが、これに限定されず、オペレーティング・システム、１つまたは複数のアプリケーション・プログラム、その他のプログラム・モジュール、およびプログラム・データも格納されてよい。オペレーティング・システム、１つまたは複数のアプリケーション・プログラム、その他のプログラム・モジュール、およびプログラム・データまたはこれらの組み合わせの各々は、ネットワーク環境の実装を含んでよい。プログラム・モジュール４２は、通常、本明細書に記載された本発明の実施形態の機能または方法あるいはその両方を実行する。
【００３８】
また、コンピュータ・システム／サーバ１２は、キーボード、ポインティング・デバイス、ディスプレイ２４などの１つまたは複数の外部デバイス１４、ユーザがコンピュータ・システム／サーバ１２と情報をやりとりできるようにする１つまたは複数のデバイス、またはコンピュータ・システム／サーバ１２が１つまたは複数の他のコンピューティング・デバイスと通信できるようにする任意のデバイス（例えば、ネットワーク車両、モデムなど）、あるいはその組み合わせと通信することもできる。そのような通信は、入出力（Ｉ／Ｏ：Input/Output）インターフェイス２２を介して行うことができる。さらに、コンピュータ・システム／サーバ１２は、ローカル・エリア・ネットワーク（ＬＡＮ：local area network）、一般的な広域ネットワーク（ＷＡＮ：wide area network）、またはパブリック・ネットワーク（例えば、インターネット）、あるいはその組み合わせなどの１つまたは複数のネットワークと、ネットワーク・アダプタ２０を介して通信することができる。図示されているように、ネットワーク・アダプタ２０は、バス１８を介してコンピュータ・システム／サーバ１２の他のコンポーネントと通信する。図示されていないが、その他のハードウェア・コンポーネントまたはソフトウェア・コンポーネントあるいはその両方を、コンピュータ・システム／サーバ１２と併用できるということが理解されるべきである。その例として、マイクロコード、デバイス・ドライバ、冗長プロセッシング・ユニット、外部ディスク・ドライブ・アレイ、ＲＡＩＤシステム、テープ・ドライブ、およびデータ・アーカイブ・ストレージ・システムなどが挙げられるが、これらに限定されない。
【００３９】
ここで図２を参照すると、例示的なクラウド・コンピューティング環境５０が示されている。図示されているように、クラウド・コンピューティング環境５０は、クラウドの利用者によって使用されるローカル・コンピューティング・デバイス（例えば、ＰＤＡ（Personal Digital Assistant）または携帯電話５４Ａ、デスクトップ・コンピュータ５４Ｂ、ラップトップ・コンピュータ５４Ｃ、または自動車コンピュータ・システム５４Ｎ、あるいはその組み合わせなど）が通信できる１つまたは複数のクラウド・コンピューティング・ノード１０を備える。ノード１０は、互いに通信することができる。ノード１０は、１つまたは複数のネットワーク内で、本明細書において前述されたプライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、またはハイブリッド・クラウド、あるいはこれらの組み合わせなどに、物理的または仮想的にグループ化されてよい（図示されていない）。これによって、クラウド・コンピューティング環境５０は、クラウドの利用者がローカル・コンピューティング・デバイス上でリソースを維持する必要のないインフラストラクチャ、プラットフォーム、またはＳａａＳ、あるいはその組み合わせを提供できる。図２に示されたコンピューティング・デバイス５４Ａ〜Ｎの種類は、例示のみが意図されており、コンピューティング・ノード１０およびクラウド・コンピューティング環境５０は、任意の種類のネットワークまたはネットワーク・アドレス可能な接続（例えば、Ｗｅｂブラウザを使用した接続）あるいはその両方を経由して任意の種類のコンピュータ制御デバイスと通信することができると理解される。
【００４０】
ここで図３を参照すると、クラウド・コンピューティング環境５０（図２）によって提供される機能的抽象レイヤのセットが示されている。図３に示されたコンポーネント、レイヤ、および機能は、例示のみが意図されており、本発明の実施形態がこれらに限定されないということが、あらかじめ理解されるべきである。図示されているように、次のレイヤおよび対応する機能が提供される。
【００４１】
デバイス・レイヤ５５は、クラウド・コンピューティング環境５０内のさまざまなタスクを実行するために、電子機器、センサ、アクチュエータ、およびその他の物体に埋め込まれているか、またはスタンドアロンであるか、あるいはその両方である、物理デバイスまたは仮想デバイスあるいはその両方を含む。デバイス・レイヤ５５内のデバイスの各々は、デバイスから取得された情報が他の機能的抽象レイヤに提供されてよいように、または他の抽象レイヤからの情報がデバイスに提供されてよいように、あるいはその両方が行われるように、他の機能的抽象レイヤへのネットワーク能力を組み込んでいる。１つの実施形態では、デバイス・レイヤ５５を含めて、さまざまなデバイスが、「モノのインターネット」（ＩｏＴ：internet of things）と総称されるエンティティのネットワークを組み込んでよい。そのようなエンティティのネットワークは、当業者が理解するであろうように、データの相互通信、収集、および配布を可能にし、多種多様な目的を実現する。
【００４２】
図に示されているデバイス・レイヤ５５は、図に示されているセンサ５２、アクチュエータ５３、処理、センサ、およびネットワーク電子機器が内蔵された「学習」サーモスタット５６、カメラ５７、制御可能な家庭用コンセント５８、ならびに制御可能な電気スイッチ５９を含んでいる。その他の可能性のあるデバイスとしては、さまざまな追加のセンサ・デバイス、ネットワーク・デバイス、電子デバイス（遠隔制御デバイスなど）、追加のアクチュエータ・デバイス、いわゆる「スマート」電化製品（冷蔵庫または洗濯機／乾燥機など）、および多種多様なその他の可能性のある相互接続された物体が挙げられ得るが、これらに限定されない。
【００４３】
ハードウェアおよびソフトウェア・レイヤ６０は、ハードウェア・コンポーネントおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例としては、メインフレーム６１、ＲＩＳＣ（Reduced Instruction Set Computer）アーキテクチャ・ベースのサーバ６２、サーバ６３、ブレード・サーバ６４、ストレージ・デバイス６５、ならびにネットワークおよびネットワーク・コンポーネント６６が挙げられる。一部の実施形態では、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア６７およびデータベース・ソフトウェア６８を含む。
【００４４】
仮想化レイヤ７０は、仮想サーバ７１、仮想ストレージ７２、仮想プライベート・ネットワークを含む仮想ネットワーク７３、仮想アプリケーションおよびオペレーティング・システム７４、ならびに仮想クライアント７５などの仮想的エンティティを提供できる抽象レイヤを備える。
【００４５】
一例を挙げると、管理レイヤ８０は、以下で説明される機能を提供することができる。リソース・プロビジョニング８１は、クラウド・コンピューティング環境内でタスクを実行するために利用される計算リソースおよびその他のリソースの動的調達を行う。計測および価格設定８２は、クラウド・コンピューティング環境内でリソースが利用される際のコスト追跡、およびそれらのリソースの利用に対する請求書の作成と送付を行う。一例を挙げると、それらのリソースは、アプリケーション・ソフトウェア・ライセンスを含んでよい。セキュリティは、クラウドの利用者およびタスクのＩＤ検証を行うとともに、データおよびその他のリソースの保護を行う。ユーザ・ポータル８３は、クラウド・コンピューティング環境へのアクセスを利用者およびシステム管理者に提供する。サービス・レベル管理８４は、必要なサービス・レベルを満たすように、クラウドの計算リソースの割り当てと管理を行う。サービス水準合意（ＳＬＡ：Service Level Agreement）計画および実行８５は、今後の要求が予想されるクラウドの計算リソースの事前準備および調達を、ＳＬＡに従って行う。
【００４６】
ワークロード・レイヤ９０は、クラウド・コンピューティング環境で利用できる機能の例を示している。このレイヤから提供できるワークロードおよび機能の例は、マッピングおよびナビゲーション９１、ソフトウェア開発およびライフサイクル管理９２、仮想クラスルーム教育の配信９３、データ分析処理９４、トランザクション処理９５、ならびに本発明の実施形態例との関連において、ＨｉＬａａＳを使用して埋め込みシステムおよびアプリケーションをテストするためのさまざまなワークロードおよび機能９６を含む。加えて、ＨｉＬａａＳを使用して埋め込みシステムおよびアプリケーションをテストするためのワークロードおよび機能９６は、データ分析、データ解析、およびさらに説明されるように、通知機能などの動作を含んでよい。当業者は、ＨｉＬａａＳを使用して埋め込みシステムおよびアプリケーションをテストするためのワークロードおよび機能９６が、さまざまな抽象レイヤの他の部分（ハードウェアおよびソフトウェア６０、仮想化７０、管理８０、およびその他のワークロード９０（例えば、データ分析処理９４など）内の部分など）と連動して動作し、本発明の実施形態例のさまざまな目的を実現してもよいということを理解するであろう。
【００４７】
前述したように、実施形態例のメカニズムは、コンピューティング環境内でＨｉＬａａＳを使用して埋め込みシステムおよびアプリケーションをテストするための新しい方法を提供する。１つまたは複数の現実のエンティティおよび１つまたは複数のシミュレートされるエンティティを使用してシミュレーション環境内でテストされるシミュレーション・パラメータが、受信されるか、または定義されるか、あるいはその両方であってよい。シミュレートされる環境内で、１つもしくは複数のエンティティのうちの１つもしくは複数のシミュレートされるエンティティ、またはネットワーク化システム内の現実のエンティティ、あるいはその両方が、シミュレーション・パラメータに従ってリアルタイムにテストされてよい。１つまたは複数のシミュレートされるエンティティのテストに基づいて、１つもしくは複数のエンティティ、ネットワーク・システム、またはその組み合わせの１つまたは複数の特性が推定されてよい。
【００４８】
一実施形態では、シミュレートされる環境内で、受信された制御パラメータに従って、選択された価格（例えば、選択された範囲内の価格、または価格設定しきい値を下回る価格）に対して、ネットワーク化システム内の１つまたは複数のシミュレートされるエンティティおよび１つまたは複数の現実のエンティティがリアルタイムにテストされてよい。この価格は、他のパラメータに基づいてシステムによって推定され、承認または拒否するためにユーザに提供される。代替として、ユーザが価格を指定してよく、システムが制御パラメータを推定し、ユーザがそれらの制御パラメータを承認または拒否することができる。価格および制御パラメータが承認された場合、１つまたは複数のシミュレートされるエンティティのテストに基づいて、１つもしくは複数のエンティティ、ネットワーク・システム、またはその組み合わせの１つまたは複数の特性が推定されてよい。
【００４９】
一実施形態では、１つまたは複数のエンティティが、互いに、およびネットワーク化システムに関連付けられた環境と、相互作用してよい。シミュレーション環境内のシミュレートされるエンティティの数は、選択された期間にわたって調整または修正されてよい。すなわち、選択された期間にわたってシミュレートされるエンティティの数は、同一の分布からのサンプルを含まず、現実のエンティティからのリアルタイムの情報（例えば、現実のエンティティからリアルタイムにストリーミングされたデータ）によって影響を受けるか、選択されるか、または決定されるか、あるいはその組み合わせであることに加え、特定の日に関する履歴データおよびスケジュール・データによって影響を受けるか、選択されるか、または決定されるか、あるいはその組み合わせである。例えば、輸送アプリケーションについて考える。従来、道路（例えば、ネットワークまたは「道路網」）上の車両の数は、静的であるか、または週の各時間に固有である、需要のモデルからサンプリングされることが期待されることがあった。この車両の数は調整されてよいが、実際の車両からの入力（車両の速度など）、およびサードパーティのセンサ（例えば、交通制御システムの誘導ループまたは降雪量を測定するセンサなど）からの入力を考慮する。これによって、より正確なシミュレーションを生成することができる。
【００５０】
加えて、実施形態例のメカニズムは、１人または複数のユーザ、ネットワーク・システム、シミュレートされるエンティティ、またはネットワーク・システムの現実のエンティティ、あるいはその組み合わせから取得されてよいリアルタイムのフィードバックを組み込んでよい。例えば、取得されるフィードバックは、１つまたは複数の現実のエンティティのリアルタイムにストリーミングされたデータを含んでよい。このようにして、フィードバック情報は、さまざまなシミュレーション・パラメータを変化させる、更新する、変更する、または修正する、あるいはその組み合わせを実行するために、使用されてもよい。
【００５１】
さらに、実施形態例のメカニズムは、１つのアプリケーション・ドメイン内でデータを完全に共有するか、部分的に共有するか、または全く共有せずに、テスト中のネットワーク化システムの複数の現実の要素からデータを入力できる、柔軟な「共有された」サービスを、複数のユーザに提供する。また、実施形態例のメカニズムは、広範囲のアプリケーションにサービス（交通シミュレーションの場合、例えば、加速の助言、速度の推奨、ルート選択の助言など）を提供することができ、各アプリケーションは、現実のデータ、エミュレートされたデータ、またはシミュレートされたデータ、あるいはその組み合わせ、およびデータ交換の特定の組み合わせに依存する。テスト中のネットワーク化システムの現実の要素は、シミュレーション環境内でシミュレートされる仮想環境のデータに完全にアクセスできるか、部分的にアクセスできるか、またはアクセスできない。
【００５２】
ここで図４を参照すると、この図は、ＩｏＴネットワーク環境内の交通シミュレーションのテスト用の例示的なシステムを示している。図４は、移動中の車両４０２との関連において示された、例示的な計算、データ処理、知覚、ＨｉＬａａＳを使用するテスト中の埋め込みシステムおよびアプリケーション、ならびにその他のコンポーネント４００の図を示しており、この図において、本発明のさまざまな実施形態が実装されてよい。さまざまなコンポーネント４００は、ＨｉＬａａＳを使用してＩｏＴネットワーク環境内で埋め込みシステムおよびアプリケーションをテストするために同時に連携してよい。
【００５３】
図４に示されているように、テスト・システム４０８（例えば、シミュレーション・エンジン）を使用してテスト中のシステム４０６（例えば、シミュレーション環境）内の１つまたは複数の車両４０２（例えば、ＩｏＴネットワークのエンティティ）の交通をシミュレートする例が示されている。すなわち、１つまたは複数の車両４０２が、テスト中のシステム４０６内でテストされてよい。しかし、ＨｉＬａａＳ４０４（例えば、ＨｉＬａａＳインターフェイス４０４）を使用するテスト中のシステム４０６は、さまざまな背景、シナリオ、またはその他の種類のネットワーク化システム、あるいはその組み合わせにおいて採用されてよい。本明細書において使用されるとき、「車両」は、自動車、自転車、ホバークラフト、スクーター、バス、オートバイ、ボート、船、航空機、飛行機、ヘリコプター、ドローン、オフロード車、トラック、トラクター、または移動もしくは輸送に使用されるその他のデバイス、あるいはその組み合わせであってよい。さらに、「車両」は、テスト中のシステム４０６内でテストするために、１つまたは複数の「現実の」車両または実際の車両をシミュレートするためにテスト中のシステム４０６によって使用されてよい、仮想車両であってよい。一実施形態では、例えばユーザ４１０などの１人または複数のユーザが、ＨｉＬａａＳ４０４（例えば、ＨｉＬａａＳインターフェイス４０４）と通信してもよい。
【００５４】
一実施形態では、車両４０２は、一種類のみ（例えば、自動車のみ）の車両であってよい。代替として、車両４０２は、車両の種類（例えば、自動車、オートバイ、バス、スクーター、自転車上のサイクリストなど）の組み合わせであってよい。車両４０２の各々は、例えば、燃料消費センサ、カメラ、無線自動識別（ＲＦＩＤ：radio frequency identification）リーダ、生体測定センサ、ウェアラブル・センサ、コンピュータ、ハンドヘルド・デバイス（例えば、全地球測位システム（ＧＰＳ：Global Positioning System）デバイスまたは歩数計）、スマートフォン、またはその他のセンサに基づくデバイス、あるいはその組み合わせなどの、１つまたは複数の種類のＩｏＴデバイス（例えば、ＩｏＴセンサ・デバイス）を含んでよい。
【００５５】
１つの実施形態では、テスト中のシステム４０６は、１）車両４０２の位置、２）リアルタイムの傾斜計測データ、または３）需要のさらなる観測（例えば、グローバル・システム・フォー・モバイル・コミュニケーションズ（ＧＳＭ：Global System for Mobile Communications）ネットワークの基地局からの観測）、あるいはその組み合わせに基づいて車両４０２の速度を設定する、速度推奨システムであってよい。例えば、需要の観測は、位置Ａから位置Ｂに移動しようとしている車両の数であってよい。位置Ａから位置Ｂに移動しようとしている車両の数を変更するために、１つまたは複数の発着地（ＯＤ：origin-destination）行列が使用されてよい。需要の観測が、時間と共に変化し、条件付きでもあるということを前提として、その他の表現が車両に使用されてよい。
【００５６】
テスト・システム４０８は、テスト中のシステム４０６の１つまたは複数の特性をテストして検証するために使用されてよい。テスト・システム４０８は、例えば、車両交通のマイクロシミュレータ（例えば、ＳＵＭＯ（Simulation of Urban Mobility））、車両交通の巨視的シミュレータ（例えば、キューのネットワークに基づく）、マルチモデル・シミュレータ（ＭＯＶＳＩＭ：multi-model simulator）、歩行者シミュレータ、またはサイクリスト・シミュレータ、あるいはその組み合わせなどの、１つまたは複数のシミュレータ・エンジンであってよい。
【００５７】
さらに、テスト・システム４０８は、ＨｉＬａａＳ４０４を使用して、シミュレーション環境または「仮想」環境内で、例えばテスト中のシステム４０６などのネットワーク・システムをテストする。ＨｉＬａａＳ４０４は、データをテスト・システム４０８に送信するか、またはデータをテスト・システム４０８から受信するか、あるいはその両方を実行してよい。さらに具体的には、１つまたは複数の車両４０２が、リアルタイムにストリーミングされたデータを、ＨｉＬａａＳ４０４を介してテスト・システム４０８に提供してよい。
【００５８】
示されているように、ユーザ４１０は、１つまたは複数の制御パラメータをＨｉＬａａＳ４０４に送信してよい（例えばユーザは、ＨｉＬａａＳ４０４の制御パラメータを設定してよい）。例えばユーザ４１０は、ＨｉＬａａＳインターフェイス４０４を介して１つまたは複数の制御パラメータをテスト・システム４０８に送信してよい。ＨｉＬａａＳ４０４は、テストを実行するための価格設定情報をユーザに提供してよい。ユーザ４１０は、価格情報を許可または承認あるいはその両方を実行してよい。
【００５９】
さらに、１つまたは複数の車両４０２が、１つまたは複数の車両４０２に関連する情報（例えば、位置、速度データ、方向指示器情報など）の状態更新（「ｓｔａｔｕｓ（）」）をＨｉＬａａＳ４０４に提供してよい。次に、テスト・システム４０８は、例えば、選択された数の１つまたは複数の車両４０２からデータを受信するなど、（例えば、「ｇｅｔ  ｔｒａｆｆｉｃ  ｉｎｆｏ（）」関数または「ｇｅｔ  ｅｎｖｉｒｏｎｍｅｎｔ  ｉｎｆｏ（）」関数の操作を使用して）交通情報をＨｉＬａａＳ４０４から受信してよい。ＨｉＬａａＳ４０４は、１つまたは複数の車両４０２のうちの現実の車両または「実際の」車両に関連するデータを提供してよい。したがって、テスト・システム４０８は、実際の環境内の実際の車両４０２をシミュレートすることによって、「錯覚」をユーザに提供してよい。
【００６０】
さらに、テスト中のシステム４０６は、１つまたは複数のシミュレーション・パラメータを使用して、例えば、各車両４０２が軌道内の各位置で移動している速度、各車両が運転されている方向、またはシミュレーション・パラメータのその他の出力などの、１つまたは複数の車両４０２の挙動を（テストの出力として）示してよい。代替として、１つまたは複数の車両４０２は、シミュレーション環境に関連する特定の情報（例えば、「ＧｅｔＳｏｍｅＳｅｒｖｉｃｅ（）」関数）をテスト中のシステム４０６から取り出してよい。一実施形態では、単に例として、テスト・システム４０８が交通シミュレータを輸送設定に含む。テスト中のシステム４０６は、速度推奨システムであってよい。したがって、テスト・システム４０８はシミュレータであってよく、テスト中のシステム４０６はテスト対象のシステムであってよい。
【００６１】
動作中に、テスト・システム４０８は、例えば、すべてのシナリオにわたって何らかの「安全性特性」を検証するための高レベルの抽象的状況などの、一連の「シナリオ」（シミュレーション・パラメータおよびルールを含んでよい）を考慮してよい。例えば、１つのシナリオは、事故の後に、２本の車線が１本に合流する場合をテストしてよい。各安全性特性は、モデルおよび時相論理を使用して説明することができ、これによって、例えば、「軌道のいずれかの位置で車両が互いに１０センチメートル未満に近づくことができない」などの、テキスト言語をＨｉＬａａＳ４０４に提供することができ、ユーザまたはエンティティが、車両４０２（例えば、速度、加速、制動など）およびテスト中のシステム４０６（例えば、速度推奨システム）を含むシミュレーション・パラメータおよびルールを論理的に判断することができる。
【００６２】
ＨｉＬａａＳ４０４は、「シナリオ」を「インスタンス化」し、具体化するために、テスト中のシステム４０６の車両４０２のうちの個々の車両の実際の移動を、１）速度推奨システムがＩｏＴネットワーク内の所定の位置に配置され、２）「シナリオ」がＩｏＴネットワーク内で実際に動作中であるかの「ように」、シミュレートできるようにする。選択された数の車両４０２（その運転手が、例えば、フロントガラスへの投影などの音声手段または視覚的手段を介して、シミュレーション・シナリオを認識している）からのＧＰＳ軌道に関するデータに基づいて、テスト・システム４０８は、他の車両４０２（完全に仮想的であるか、または誘導ループ（例えば、誘導ループ交通検出器（inductive-loop traffic detectors）などの車両を数える手段）によって記録された道路区分への既知の到着に対応するかのいずれかであるか、または軌道上にさらに使用可能なデータがないか、あるいはその両方である）の軌道を導き出す。
【００６３】
ＨｉＬａａＳ４０４およびテスト・システム４０８の詳細な説明として、ＨｉＬａａＳ４０４およびテスト・システム４０８は互いに連携して動作してよいが、ＨｉＬａａＳ４０４は、テスト中のシステム４０６を認識できなくてよい。ＨｉＬａａＳ４０４は、クラウド・コンピューティング・システム上でシミュレーションを実行できるようにし、現実のエンティティをシミュレーション環境のシミュレーションに接続するか、または関連付けることができるようにするサービスであってよい。ＨｉＬａａＳ４０４は、アプリケーションに依存しなくてよい。特定のアプリケーションまたはサービスをテストするために、一連のテスト・ケースおよびシナリオが実行され、評価されてよく、これが、テスト・システム４０８の役割であってよい。テスト・システム４０８は、（ＨｉＬａａＳ４０４を使用して）アプリケーションに関連する特定のシナリオを実行し、それらのシナリオにおけるアプリケーションの成功を測定するシステムであってよい。
【００６４】
ＨｉＬａａＳ４０４は、テストを実行できるようにするユニット・テスト・フレームワークに関連してよいが、テスト中のシステムを認識できず、テスト・システム４０８は、特定のテスト中のシステムおよびテスト対象の特性（「アプリケーション」）に固有であるユニット・テストに関連してよい。例えば、速度推奨システムが車両に関してテストされるということを仮定する。速度推奨システムの目的は、１つまたは複数の理由のために交通を「良い状態」に維持しながら、汚染を減らす目的で、車両の最適な速度を推奨することである。道路の安全性に対する速度推奨システムの影響を評価するために、速度推奨システムが、異なる条件でどの程度適切に動作するかを評価するために、または汚染および交通渋滞に対する速度推奨アルゴリズムのパラメータの影響を調査するために、あるいはその両方のために、一連の定義済みのシナリオおよびパラメータを含んでいるテスト・システム４０８が提供されてよい。テスト・システム４０８は、場合によっては１つまたは複数の実際の（または現実の）車両をシミュレーションに接続して、ＨｉＬａａＳ４０４上でシミュレーションを実行してよく、テスト・システム４０８は、速度推奨システムの結果および交通および汚染全体に対する影響を監視する。テスト・システム４０８は、運転者の満足、または運転者の挙動に対する速度推奨の影響もしくは速度推奨に対する運転者の挙動の影響を反映する、現実の車両および運転者から来るデータを解析することもできる。
【００６５】
ここで図５を参照すると、テスト・システム４０８（例えば、シミュレーション・エンジン）を使用して１つまたは複数の車両４０２（例えば、ＩｏＴネットワークのエンティティ）の交通をシミュレートする追加の例が示されている。すなわち、図５は、交通シミュレーションにおける１つまたは複数の車両との関連において示された、例示的な計算、データ処理、知覚、ＨｉＬａａＳを使用するテスト中の埋め込みシステムおよびアプリケーション、ならびにその他のコンポーネント５００の図を示している。示されるように、図１〜４の１つまたは複数の実施形態は、図５に含まれるか、または図５と共に実施されるか、あるいはその両方であってもよい。例えば、コンポーネント５００は、本発明のさまざまな実施形態に従ってさまざまな計算機能、データ処理機能、およびその他の機能を実行するための１つまたは複数のプロセッシング・ユニット１６を組み込んでいる、図１のコンピュータ・システム／サーバ１２に含まれるか、または関連付けられるか、あるいはその両方であってよい。さまざまなコンポーネント５００は、ＨｉＬａａＳを使用してＩｏＴネットワーク環境内で埋め込みシステムおよびアプリケーションをテストするために同時に連携してよい。
【００６６】
示されているように、コンポーネント５００は、ユーザ５０２と、図４の１つまたは複数の車両４０２と、ＨｉＬａａＳ  インターフェイス４０４（例えば、ＨｉＬａａＳ  Ｒｅｓｔｆｕｌアプリケーション・プログラミング・インターフェイス（ＡＰＩ：Application programming interface））と、１つまたは複数の交通／ネットワーク・シミュレータ（例えば、図４のテスト・システム４０８など）とを含んでいる。一実施形態では、図４で説明されたユーザ４１０とＨｉＬａａＳ４０４の間の動作が、ユーザ５０２とＨｉＬａａＳインターフェイス４０４の間にも発生してよい（例えば、制御パラメータを設定し、ＨｉＬａａＳの価格設定を推定／設定し、価格設定を承認する）。
【００６７】
動作中に、ユーザ５０２が１つまたは複数の照会をＨｉＬａａＳインターフェイス４０４に送信してよい。例えば、ユーザ５０２は、ＨｉＬａａＳインターフェイス４０４を介して、シミュレーション開始操作をテスト・システム４０８に送信するか（例えば、「ＳｔａｒｔＳｉｍｕｌａｔｉｏｎ」関数）、シミュレーションに対する状態更新を要求するか（例えば、「ＧｅｔＳｉｍｕｌａｔｉｏｎＳｔａｔｕｓ」関数）、シミュレーションを更新するか（例えば、「ＵｐｄａｔｅＳｉｍｕｌａｔｉｏｎ」関数）、またはシミュレーション停止コマンドを送信するか（例えば、「ＳｔｏｐＳｉｍｕｌａｔｉｏｎ」関数）、あるいはその組み合わせを実行してよい。
【００６８】
１つまたは複数の車両４０２は、リアルタイムにストリーミングされたデータをＨｉＬａａＳインターフェイス４０４に提供してもよい。例えば、１つまたは複数の車両４０２は、ＨｉＬａａＳインターフェイス４０４を介して、１つまたは複数の車両４０２をチェックインするためのデータをテスト・システム４０８に送信してよい（例えば、「ＣｈｅｃｋＩｎＶｅｈｉｃｌｅ」関数）。１つまたは複数の車両４０４は、ＨｉＬａａＳインターフェイス４０４を使用して、１つまたは複数の車両４０２のデータを更新する、リアルタイムにストリーミングされたデータを提供するか（例えば、「ＵｐｄａｔｅＶｅｈｉｃｌｅＤａｔａ」関数）、シミュレーションに対する状態更新を要求するか（例えば、「ＧｅｔＳｉｍｕｌａｔｉｏｎＳｔａｔｕｓ」関数）、または車両をチェックアウトするためにリアルタイムにストリーミングされたデータを送信するか（例えば、テスト・システム４０８内で実際の車両を考慮することを停止するか、またはテスト・システム４０８での考慮から車両を除外するか、あるいはその両方を実行する関数などの、「ＣｈｅｃｋＯｕｔＶｅｈｉｃｌｅ」関数）、あるいはその組み合わせを実行してよい。
【００６９】
実施形態例のメカニズムとの関連において、図１〜５を使用して前に説明したように、以下の例が使用事例として提供される。他の使用事例も適用可能であってよいということに、注意するべきである。
【００７０】
第１の使用事例では、ユーザが、現在の交通条件の状態に関して、異なる種類のリアルタイムの駐車情報および関連する結果に応答した運転者の運転動作を解析することを望んでいると仮定する。ユーザは、サービス（例えば、ＨｉＬａａＳサービス）に登録してよく、認証情報がユーザに提供されてよい。ＨｉＬａａＳインターフェイスを使用するためのＲＥＳＴベース（またはその他の種類）のＡＰＩへのアクセスがユーザに提供されてよい。ユーザは、シミュレーションを作成してよく、例えば、構成ファイルを介して特定のシナリオを定義するなど、１つまたは複数のシミュレーション・パラメータ（例えば、ネットワーク選択、交通の状態、駐車場の数、駐車の需要など）を定義してよい。ユーザは、１つまたは複数の現実の車両をシミュレーションにチェックインしてよい。ユーザは、例えばＧＰＳ位置の各更新で、車両データをシミュレーションに更新できる。ユーザは、シミュレーションを（リアルタイムに、または「実行中に」）更新してよく（例えば、シミュレートされる車両のルートを「実行中に」変更する）、それによって、構成ファイルの更新が必要になることがある。ユーザは、シミュレーションの状態を取り出すことができ、すべてのシミュレートされる車両のデータにアクセスすることができる。ユーザは、任意の車両の状態を取り出すことができる。ユーザは、取り出されたシミュレーションおよび車両の状態を利用して、助言を現実の運転されている車両に提供する、分析サービスを使用することもできる。特定の推奨に対する現実の車両の反応が、後で解析するために（履歴データとして）格納されてよい。ユーザは、車両をチェックアウトし、シミュレーションを停止する（例えば、車両が、テスト・システム４０８による考慮から除外されてよい）。
【００７１】
第２の使用事例では、ユーザが、顧客満足、購入される商品の数、歩行の快適さなどを最適化するために、混雑している商店街、観光都市などでの商用のルート選択の助言に対する歩行者の応答を解析することを望んでいるか、または解析しようとしていると仮定する。ユーザは、サービス（例えば、ＨｉＬａａＳサービス）に登録してよく、認証情報がユーザに提供されてよい。ＨｉＬａａＳインターフェイスを使用するためのＲＥＳＴベース（またはその他の種類）のＡＰＩへのアクセスがユーザに提供されてよい。ユーザは、シミュレーションを作成してよく、構成ファイルを介して特定のシナリオ（例えば、領域の選択、道路の負荷、商店の容量など）を定義してよい。ユーザは、１人または複数の歩行者（例えば、ＧＰＳロガーを持つ歩行者）をシミュレーションにチェックインしてよい。歩行者に装備させるコストが低いということに、注意するべきである（例えば、アプリケーションが、コンピューティング・デバイス上で使用されてよく、ユーザが、アプリケーションをコンピューティング・デバイスにダウンロードできる）。ユーザは、例えばＧＰＳ位置の各更新で、歩行者データを（マイクロ）シミュレーションに更新できる。ユーザは、シミュレーションを（リアルタイムに、または「実行中に」）更新してよく（例えば、シミュレートされる歩行者のルートを実行中に変更するなど）、それによって、構成ファイルの更新が必要になることがある。ユーザは、シミュレーションを（リアルタイムに、または「実行中に」）更新してよく（例えば、シミュレートされる車両のルートを「実行中に」変更する）、すべてのシミュレートされる歩行者データにアクセスできでよい。ユーザは、任意の車両の状態、特に、例えば特定の車両の種類に関する情報を取り出すことができる。ユーザは、取り出されたシミュレーションおよび歩行者の状態を利用して、助言を装備した歩行者に提供する、分析サービスを使用することもできる。特定の推奨に対する歩行者の反応（および歩行者の交通に対する推奨の影響）が解析されてよい。ユーザは、分析サービスを使用してもよい。ユーザは、歩行者をシミュレーションからチェックアウトし、シミュレーションを停止してよい。
【００７２】
第３の使用事例では、ユーザが、例えば汚染回避などのルート選択の助言に応答したサイクリストの挙動を調査すること、または悪天候の発生時に、覆われる領域を最適化することを、望んでいると仮定する。ユーザは、サービス（例えば、ＨｉＬａａＳサービス）に登録してよく、認証情報がユーザに提供されてよい。ＨｉＬａａＳインターフェイスを使用するためのＲＥＳＴベース（またはその他の種類）のＡＰＩへのアクセスがユーザに提供されてよい。ユーザは、シミュレーションを作成してよく、例えば、構成ファイルを介して特定のシナリオを定義するなど、１つまたは複数のシミュレーション・パラメータ（例えば、領域選択、発着地行列または輸送に対する需要をモデル化するその他の手段、交通の状態、天候条件など）を定義してよい。ユーザは、１人または複数のサイクリスト（例えば、ＧＰＳロガーを持つサイクリストなど）をシミュレーションにチェックインしてよい。例えば、モバイル・デバイス（例えば、スマートフォンまたはその他のコンピューティング・デバイス）にインストールされたアプリケーションをサイクリストに提供し、サードパーティのアプリケーションを実行できる広範囲に広がった携帯電話を考慮することなどによって、サイクリストに装備させるコストが低いということに、注意するべきである。ユーザは、例えばＧＰＳ位置の各更新で、サイクリストのデータを（マイクロ）シミュレーションに更新できる。ユーザは、シミュレーションをリアルタイムに、または「実行中に」更新してよい（例えば、シミュレートされるサイクリストのルートまたは天候条件を実行中に変更するなど）。ユーザは、シミュレーションの状態を取り出してよく、すべてのシミュレートされるサイクリストのデータ、およびサイクリストのルート上で車両の交通によって生成された汚染物質濃度データに、アクセスすることができる。ユーザは、サイクリストの状態（例えば、サイクリストの種類に対応するサイクリストの状態）を取り出してよい。ユーザは、取り出されたシミュレーション・データおよびサイクリストの状態を利用して、助言を現実のサイクリストに提供する、分析サービスを使用することもできる。特定の推奨に対するサイクリストの反応が解析されてよい。ユーザは、サイクリストをシミュレーションからチェックアウトし、シミュレーションを停止できる。
【００７３】
ここで図６を参照すると、プロセッサによってＨｉＬａａＳ（Hardware-in-the-Loopas a Service）を使用してモノのインターネット（ＩｏＴ）ネットワーク環境内の埋め込みシステムおよびアプリケーションをテストするための方法６００が示されており、この方法で、実施形態例のさまざまな態様が実装されてよい。機能６００は、マシン上で命令として実行される方法として実装されてよく、それらの命令は、少なくとも１つのコンピュータ可読媒体または非一過性機械可読記憶媒体に含まれる。機能６００は、ブロック６０２で開始してよい。ブロック６０４で、シミュレーション環境に関連する制御パラメータおよび情報が受信されてよい。ブロック６０６で、シミュレートされる環境内で、ネットワーク化システム内の１つまたは複数のエンティティのうちの１つまたは複数のシミュレートされるエンティティが、シミュレーション・パラメータに従ってリアルタイムにテストされてよい。ブロック６０８で、１つまたは複数のシミュレートされるエンティティのテストに基づいて、１つもしくは複数のエンティティ、ネットワーク・システム、またはその組み合わせの１つまたは複数の特性が推定されてよい。機能６００は、ブロック６１０で終了してよい。
【００７４】
ここで図７を参照すると、プロセッサによってＨｉＬａａＳ（Hardware-in-the-Loopas a Service）を使用してモノのインターネット（ＩｏＴ）ネットワーク環境内の埋め込みシステムおよびアプリケーションをテストするための追加の方法７００が示されている。機能７００は、マシン上で命令として実行される方法として実装されてよく、それらの命令は、少なくとも１つのコンピュータ可読媒体または非一過性機械可読記憶媒体に含まれる。機能７００は、ブロック７０２で開始してよい。ブロック７０４で、シミュレーション・パラメータをテストするために、ネットワーク・システムに関連する静的データと、選択された期間に関するデータと、ネットワーク化システムに関連付けられた１つまたは複数のエンティティおよび外部システムからリアルタイムにストリーミングされたデータと、１つまたは複数のエンティティに関連する情報とが使用されて（またはシミュレーション・パラメータの一部として受信されるか、あるいはその両方が実行されて）よい。ブロック７０６で、１つまたは複数の制御パラメータ（例えば、ネットワーク化システムの１つまたは複数の特性の推定値の信頼区間）が設定されてよい。ブロック７０８で、選択された期間にわたってシミュレートする１つまたは複数のエンティティの数が推定されてよく、またはネットワーク化システムに関連付けられた１つまたは複数のエンティティおよび１つまたは複数のシミュレートされるエンティティと、外部システムとの間の相互作用の数が推定されてよく、あるいはその両方が実行されてよい。ブロック７１０で、ＴａａＳが承認されてよい（例えば、テストの価格が推定され、そのテストの価格が承認されてよい）。ブロック７１２で、１つまたは複数のシミュレートされるエンティティに関してリアルタイムにストリーミングされたデータが、提供されてよい。ブロック７１４で、１つまたは複数のシミュレートされるエンティティに基づいて、ネットワーク・システムの１つまたは複数の特性が推定されてよい。機能７００は、ブロック７１６で終了してよい。
【００７５】
一実施形態では、図６〜７の少なくとも１つのブロックと連動して、または図６〜７の少なくとも１つのブロックの一部として、あるいはその両方として、方法６００または７００の動作が次の各々を含んでよい。方法６００または７００の動作は、ネットワーク・システムに関連するデータを受信するか、選択された期間に関するスケジューリング・データを受信するか、リアルタイムにストリーミングされたデータを１つまたは複数のエンティティから受信するか、またはテストに使用するために、ある種類のシミュレータに関連する情報を受信するか、あるいはその組み合わせを実行してよい。シミュレートされる環境にアクセスするために、ＨｉＬａａＳインターフェイスが、１つもしくは複数のエンティティ、ユーザ、またはその組み合わせによって、使用されるか、またはアクセスされるか、あるいはその両方が実行されてよい。
【００７６】
選択された期間にわたってシミュレートするために、１つまたは複数のエンティティの数が推定されてよい。ネットワーク化システムに関連付けられた１つまたは複数のエンティティ、１つまたは複数のシミュレートされるエンティティ、および環境の間の相互作用の数が推定されてもよい。
【００７７】
方法６００または７００の動作は、１つまたは複数のシミュレートされるエンティティのテストに基づいて、１つまたは複数のエンティティに関してリアルタイムにストリーミングされたデータを提供してよい。方法６００または７００の動作は、シミュレーション・パラメータに従って１つまたは複数のエンティティをシミュレートしてよく、またはシミュレーション中にシミュレーション・パラメータをリアルタイムに更新してよく、あるいはその両方を実行してよい。さらに、方法６００または７００の動作は、シミュレーション環境内の１つまたは複数のエンティティおよび１つまたは複数のシミュレートされるエンティティの１つまたは複数の動作を同期させてよい。
【００７８】
ここで図８を参照すると、プロセッサによってＨｉＬａａＳを使用してモノのインターネット（ＩｏＴ）ネットワーク環境内の埋め込みシステムおよびアプリケーションをテストするための方法８００が示されており、この方法で、実施形態例のさまざまな態様が実装されてよい。機能８００は、マシン上で命令として実行される方法として実装されてよく、それらの命令は、少なくとも１つのコンピュータ可読媒体または非一過性機械可読記憶媒体に含まれる。機能８００は、ブロック８０２で開始してよい。ブロック８０４で、シミュレーション環境の記述および価格が受信されてよい。ブロック８０６で、価格およびシミュレーション環境の記述に従って、テストの１つまたは複数の制御パラメータが推定されてよい。ブロック８０７で、１つまたは複数の制御パラメータの承認時に、ネットワーク・システム内の１つもしくは複数のエンティティ、１つもしくは複数のシミュレートされるエンティティ、またはその組み合わせが、１つまたは複数の制御パラメータに従ってテストされてよい。ブロック８０８で、１つまたは複数のシミュレートされるエンティティのテストに基づいて、１つもしくは複数のエンティティ、ネットワーク・システム、またはその組み合わせの１つまたは複数の特性が推定されてよい。機能８００は、ブロック８１０で終了してよい。
【００７９】
ここで図９を参照すると、プロセッサによってＨｉＬａａＳを使用してモノのインターネット（ＩｏＴ）ネットワーク環境内の埋め込みシステムおよびアプリケーションをテストするための方法９００が示されている。機能９００は、マシン上で命令として実行される方法として実装されてよく、それらの命令は、少なくとも１つのコンピュータ可読媒体または非一過性機械可読記憶媒体に含まれる。機能９００は、ブロック９０２で開始してよい。ブロック９０４で、シミュレーション環境に関連する１つまたは複数の制御パラメータおよび情報が受信されてよい。ブロック９０６で、シミュレーション環境内で、ネットワーク・システムに関連付けられた１つもしくは複数のエンティティ、ネットワーク・システムに関連付けられた１つもしくは複数のシミュレートされるエンティティ、またはその組み合わせが、１つまたは複数の制御パラメータに従って、（例えばＨｉＬａａＳなどの）ＴａａＳ（testing as a service）としてテストされてよい。ブロック９０８で、１つまたは複数のシミュレートされるエンティティのテストに基づいて、１つもしくは複数のエンティティ、ネットワーク・システム、またはその組み合わせの１つまたは複数の特性が推定されてよい。機能９００は、ブロック９１０で終了してよい。
【００８０】
一実施形態では、図８〜９の少なくとも１つのブロックと連動して、または図８〜９の少なくとも１つのブロックの一部として、あるいはその両方として、方法８００または９００の動作が次の各々を含んでよい。方法８００または９００は、１つもしくは複数の制御パラメータに従ってシミュレーション環境内でテストするための価格を推定すること、テストの推定された価格の承認を受信すること、または１つもしくは複数のエンティティ、１つもしくは複数のシミュレートされるエンティティ、またはその組み合わせをテストすること、あるいはその組み合わせを実行してよい。さらに、方法８００または９００は、シミュレーション環境内でテストするための最大しきい値価格、価格設定の範囲、もしくはその組み合わせを受信すること、シミュレーション環境内でテストするための最大しきい値価格、価格設定の範囲、もしくはその組み合わせに従って１つまたは複数の制御パラメータを調整すること、調整された制御の承認を受信すること、または１つもしくは複数のエンティティ、１つもしくは複数のシミュレートされるエンティティ、またはその組み合わせをテストすること、あるいはその組み合わせを実行してよい。
【００８１】
シミュレーション環境に関連する１つまたは複数の制御パラメータおよび情報を受信することに従って、方法８００または９００は、シミュレーション環境の記述を受信すること、ネットワーク・システムの記述を受信することであって、この記述が少なくともネットワーク・システムのトポロジーを含んでいる、受信すること、ネットワーク・システムの動作に関連する履歴データを受信すること、ネットワーク・システムの動作の選択された期間に関するスケジューリング・データを受信すること、リアルタイムにストリーミングされたデータを１つもしくは複数のエンティティから受信すること、リアルタイムにストリーミングされたデータを１つまたは複数のサードパーティから受信することであって、ストリーミングされたデータが気象監視データ、汚染監視データ、衛星画像データ、もしくは航空画像データ、またはその組み合わせ（もしくは、サードパーティによって提供されたデータ、またはその組み合わせ）を含んでよい、受信すること、テストを実行し、テスト結果を提供するための選択された時間を受信すること、１つもしくは複数のシミュレートされるエンティティのテストに関する１つもしくは複数の条件を受信すること、テスト中のシステムの１つもしくは複数のエンティティのテストに関する１つもしくは複数の条件を受信すること、またはテストの精度の測定値を受信すること、あるいはその組み合わせを実行してよい。
【００８２】
方法８００または９００は、１つもしくは複数の制御パラメータに従って選択された期間にわたってシミュレートするための１つもしくは複数のエンティティの数を推定すること、１つもしくは複数の制御パラメータに従ってネットワーク化システムに関連付けられた１つもしくは複数のエンティティ、１つもしくは複数のシミュレートされるエンティティ、および環境の間の相互作用の数を推定すること、または１つもしくは複数の制御パラメータに従って選択された期間にわたって１つもしくは複数のエンティティおよび相互作用の数をシミュレートするのに必要な１つもしくは複数のコンピューティング・システムを推定すること、あるいはその組み合わせを実行してよい。
【００８３】
方法８００または９００は、制御パラメータに従って１つもしくは複数のエンティティをシミュレートすること、シミュレーション中にシミュレーション環境をリアルタイムに更新することであって、ネットワーク・システムの動作の履歴データを少なくとも含んでいる、更新すること、または１つもしくは複数のシミュレートされるエンティティに関してリアルタイムにストリーミングされたデータを１つもしくは複数のシミュレートされるエンティティのテストの出力として提供すること、あるいはその組み合わせを実行してよい。方法８００または９００は、シミュレートされる環境にアクセスするために、１つもしくは複数のエンティティ、ユーザ、またはその組み合わせによるリモート・アクセス用のインターフェイスを提供してよい。
【００８４】
方法８００または９００は、シミュレーション環境の記述および価格を受信すること、価格およびシミュレーション環境の記述に従ってテストの１つもしくは複数の制御パラメータを推定すること、１つもしくは複数の制御パラメータの承認時に、制御パラメータに従って関連付けられた１つもしくは複数のエンティティ、１つもしくは複数のシミュレートされるエンティティ、またはその組み合わせをテストすること、または１つもしくは複数のシミュレートされるエンティティのテストに基づいて、１つもしくは複数のエンティティ、ネットワーク・システム、またはその組み合わせの１つもしくは複数の特性を推定すること、あるいはその組み合わせを実行してよい。
【００８５】
本発明は、システム、方法、またはコンピュータ・プログラム製品、あるいはその組み合わせであってよい。コンピュータ・プログラム製品は、プロセッサに本発明の実施形態を実行させるためのコンピュータ可読プログラム命令を含んでいるコンピュータ可読記憶媒体を含んでよい。
【００８６】
コンピュータ可読記憶媒体は、命令実行デバイスによって使用するための命令を保持および格納できる有形のデバイスであることができる。コンピュータ可読記憶媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適切な組み合わせであってよいが、これらに限定されない。コンピュータ可読記憶媒体のさらに具体的な例の非網羅的リストは、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ：random access memory）、読み取り専用メモリ（ＲＯＭ：read-only memory）、消去可能プログラマブル読み取り専用メモリ（ＥＰＲＯＭ：erasable programmable read-only memoryまたはフラッシュ・メモリ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ：static random access memory）、ポータブル・コンパクト・ディスク読み取り専用メモリ（ＣＤ−ＲＯＭ：compact disc read-only memory）、デジタル多用途ディスク（ＤＶＤ：digital versatile disk）、メモリ・スティック、フロッピー（Ｒ）・ディスク、パンチカードまたは命令が記録されている溝の中の隆起構造などの機械的にエンコードされるデバイス、およびこれらの任意の適切な組み合わせを含む。本明細書において使用されるとき、コンピュータ可読記憶媒体は、それ自体が、電波またはその他の自由に伝搬する電磁波、導波管またはその他の送信媒体を伝搬する電磁波（例えば、光ファイバ・ケーブルを通過する光パルス）、あるいはワイヤを介して送信される電気信号などの一過性の信号であると解釈されるべきではない。
【００８７】
本明細書に記載されたコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体から各コンピューティング・デバイス／処理デバイスへ、またはネットワーク（例えば、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、または無線ネットワーク、あるいはその組み合わせ）を介して外部コンピュータまたは外部ストレージ・デバイスへダウンロードされ得る。このネットワークは、銅伝送ケーブル、光伝送ファイバ、無線送信、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組み合わせを備えてよい。各コンピューティング・デバイス／処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェイスは、コンピュータ可読プログラム命令をネットワークから受信し、それらのコンピュータ可読プログラム命令を各コンピューティング・デバイス／処理デバイス内のコンピュータ可読記憶媒体に格納するために転送する。
【００８８】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ（ＩＳＡ：instruction-set-architecture）命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、あるいは、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋などのオブジェクト指向プログラミング言語、および「Ｃ」プログラミング言語または同様のプログラミング言語などの従来の手続き型プログラミング言語を含む１つまたは複数のプログラミング言語の任意の組み合わせで記述されたソース・コードまたはオブジェクト・コードであってよい。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全体的に実行すること、ユーザのコンピュータ上でスタンドアロン・ソフトウェア・パッケージとして部分的に実行すること、ユーザのコンピュータ上およびリモート・コンピュータ上でそれぞれ部分的に実行すること、あるいはリモート・コンピュータ上またはサーバ上で全体的に実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ：local area network）または広域ネットワーク（ＷＡＮ：wide area network）を含む任意の種類のネットワークを介してユーザのコンピュータに接続されてよく、または接続は、（例えば、インターネット・サービス・プロバイダを使用してインターネットを介して）外部コンピュータに対して行われてよい。一部の実施形態では、本発明の実施形態を実行するために、例えばプログラマブル論理回路、フィールドプログラマブル・ゲート・アレイ（ＦＰＧＡ：field-programmable gate arrays）、またはプログラマブル・ロジック・アレイ（ＰＬＡ：programmable logic arrays）を含む電子回路は、コンピュータ可読プログラム命令の状態情報を利用することによって、電子回路をカスタマイズするためのコンピュータ可読プログラム命令を実行してよい。
【００８９】
本発明の態様は、本明細書において、本発明の実施形態に従って、方法、装置（システム）、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して説明される。フローチャート図またはブロック図あるいはその両方の各ブロック、ならびにフローチャート図またはブロック図あるいはその両方に含まれるブロックの組み合わせが、コンピュータ可読プログラム命令によって実装され得るということが理解されるであろう。
【００９０】
これらのコンピュータ可読プログラム命令は、コンピュータまたはその他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方のブロックに指定される機能／動作を実施する手段を作り出すべく、汎用コンピュータ、専用コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに提供されてマシンを作り出すものであってよい。これらのコンピュータ可読プログラム命令は、命令が格納されたコンピュータ可読記憶媒体がフローチャートまたはブロック図あるいはその両方のブロックに指定される機能／動作の態様を実施する命令を含んでいる製品を備えるように、コンピュータ可読記憶媒体に格納され、コンピュータ、プログラム可能なデータ処理装置、または他のデバイス、あるいはその組み合わせに特定の方式で機能するように指示できるものであってもよい。
【００９１】
コンピュータ可読プログラム命令は、コンピュータ上、その他のプログラム可能な装置上、またはその他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方のブロックに指定される機能／動作を実施するように、コンピュータ、その他のプログラム可能なデータ処理装置、またはその他のデバイスに読み込まれてもよく、それによって、一連の動作可能なステップを、コンピュータ上、その他のプログラム可能な装置上、またはコンピュータ実装プロセスを生成するその他のデバイス上で実行させる。
【００９２】
図内のフローチャートおよびブロック図は、本発明のさまざまな実施形態に従って、システム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、および動作を示す。これに関連して、フローチャートまたはブロック図内の各ブロックは、規定された論理機能を実装するための１つまたは複数の実行可能な命令を備える、命令のモジュール、セグメント、または部分を表してよい。一部の代替の実装では、ブロックに示された機能は、図に示された順序とは異なる順序で発生してよい。例えば、連続して示された２つのブロックは、実際には、含まれている機能に応じて、実質的に同時に実行されるか、または場合によっては逆の順序で実行されてよい。ブロック図またはフローチャート図あるいはその両方の各ブロック、ならびにブロック図またはフローチャート図あるいはその両方に含まれるブロックの組み合わせは、規定された機能または動作を実行するか、または専用ハードウェアとコンピュータ命令の組み合わせを実行する専用ハードウェアベースのシステムによって実装され得るということにも注意する。
【図１】
2021512526.tif 000003
【図２】
2021512526.tif 000004
【図３】
2021512526.tif 000005
【図４】
2021512526.tif 000006
【図５】
2021512526.tif 000007
【図６】
2021512526.tif 000008
【図７】
2021512526.tif 000009
【図８】
2021512526.tif 000010
【図９】
2021512526.tif 000011
【国際調査報告】
2021512526.tif 000012
2021512526.tif 000013
2021512526.tif 000014