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

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

▶ パナソニックIPマネジメント株式会社の特許一覧

<>
  • 特許-検証システム、検証方法及びプログラム 図1
  • 特許-検証システム、検証方法及びプログラム 図2
  • 特許-検証システム、検証方法及びプログラム 図3
  • 特許-検証システム、検証方法及びプログラム 図4
  • 特許-検証システム、検証方法及びプログラム 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-08-24
(45)【発行日】2023-09-01
(54)【発明の名称】検証システム、検証方法及びプログラム
(51)【国際特許分類】
   G06F 11/36 20060101AFI20230825BHJP
【FI】
G06F11/36 196
【請求項の数】 6
(21)【出願番号】P 2021045994
(22)【出願日】2021-03-19
(65)【公開番号】P2022144820
(43)【公開日】2022-10-03
【審査請求日】2022-01-26
(73)【特許権者】
【識別番号】314012076
【氏名又は名称】パナソニックIPマネジメント株式会社
(74)【代理人】
【識別番号】100109210
【弁理士】
【氏名又は名称】新居 広守
(74)【代理人】
【識別番号】100137235
【弁理士】
【氏名又は名称】寺谷 英作
(74)【代理人】
【識別番号】100131417
【弁理士】
【氏名又は名称】道坂 伸一
(72)【発明者】
【氏名】玉野 宏和
(72)【発明者】
【氏名】上辻 孝彦
【審査官】金田 孝之
(56)【参考文献】
【文献】国際公開第2021/038636(WO,A1)
【文献】国際公開第2020/017264(WO,A1)
【文献】特開2018-081400(JP,A)
【文献】国際公開第2018/142612(WO,A1)
【文献】特開2003-022296(JP,A)
【文献】米国特許出願公開第2009/0292514(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/00- 8/38
G06F 8/60- 8/77
G06F 9/44- 9/54
G06F 11/07
G06F 11/22-11/36
G06F 30/00-30/398
(57)【特許請求の範囲】
【請求項1】
制御対象の制御を行う制御装置を検証対象として検証を行う検証システムであって、
前記制御対象がハードウェアで構成されている実環境において、前記検証対象の検証を行ったときの応答性である実応答性を取得する実応答性取得部と、
前記制御対象が仮想的に構成されている仮想環境において、前記検証対象の検証を行ったときの応答性である仮想応答性を取得する仮想応答性取得部と、
前記仮想応答性が前記実応答性に近づくように、前記仮想環境の設定を変更する変更部と、を備え、
前記仮想環境の設定は、前記仮想環境が設けられるプラットフォームにおける計算リソースの割当の設定、前記仮想環境を構成するハイパーバイザの設定、及び、前記制御対象のエミュレーションを実行するデバイスの設定のうちの少なくとも1つを含む、
検証システム。
【請求項2】
前記検証システムは、前記仮想応答性取得部による前記仮想応答性の取得と、前記変更部による前記仮想環境の設定の変更とを繰り返し行う、
請求項1に記載の検証システム。
【請求項3】
前記実環境及び前記仮想環境は、それぞれハイパーバイザを含む、
請求項1又は2に記載の検証システム。
【請求項4】
前記実環境において検証が行われる前記検証対象と、前記仮想環境において検証が行われる前記検証対象とは、同じ制御装置である、
請求項1~3のいずれか1項に記載の検証システム。
【請求項5】
制御対象の制御を行う制御装置を検証対象として検証を行う検証方法であって、
前記制御対象がハードウェアで構成されている実環境において、前記検証対象の検証を行ったときの応答性である実応答性を取得する実応答性取得ステップと、
前記制御対象が仮想的に構成されている仮想環境において、前記検証対象の検証を行ったときの応答性である仮想応答性を取得する仮想応答性取得ステップと、
前記仮想応答性が前記実応答性に近づくように、前記仮想環境の設定を変更する変更ステップと、を含
前記仮想環境の設定は、前記仮想環境が設けられるプラットフォームにおける計算リソースの割当の設定、前記仮想環境を構成するハイパーバイザの設定、及び、前記制御対象のエミュレーションを実行するデバイスの設定のうちの少なくとも1つを含む、
検証方法。
【請求項6】
請求項に記載の検証方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、制御対象の制御を行う制御装置を検証対象として検証を行う検証システム、検証方法及びプログラムに関する。
【背景技術】
【0002】
従来、制御対象を制御する制御装置のソフトウェア開発において、まずは制御対象が仮想的に構成されている仮想環境で制御装置の検証を行った後、制御対象がハードウェアで構成されている実環境で制御装置の検証を行うことが一般的である。例えば、特許文献1には、仮想環境(ソフトウェア・シミュレーション装置)での検証で使用したデータをそのまま実環境(ハードウェア・シミュレーション装置)での検証に使用できるようにしたことを特徴とするシミュレーション装置が開示されている。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2008-269022号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記特許文献1では、どのようにして、仮想環境での検証で使用したデータをそのまま実環境での検証に使用できるようにしたのかが開示されていない。実環境のように制御対象が実際のハードウェアである場合と、仮想環境のように制御対象がソフトウェアによるエミュレーションである場合とでは、それぞれ応答性が異なっており、仮想環境での検証で使用したデータをそのまま実環境での検証に使用することは難しい。このため、仮想環境と実環境とで同じ動作シナリオを用いた検証を精度良く行うことが難しくなっている。
【0005】
そこで、本開示は、仮想環境と実環境とで同じ動作シナリオを用いた検証を精度良く行うことができる検証システムなどを提供する。
【課題を解決するための手段】
【0006】
本開示の一態様に係る検証システムは、制御対象の制御を行う制御装置を検証対象として検証を行う検証システムであって、前記制御対象がハードウェアで構成されている実環境において、前記検証対象の検証を行ったときの応答性である実応答性を取得する実応答性取得部と、前記制御対象が仮想的に構成されている仮想環境において、前記検証対象の検証を行ったときの応答性である仮想応答性を取得する仮想応答性取得部と、前記仮想応答性が前記実応答性に近づくように、前記仮想環境の設定を変更する変更部と、を備える。
【0007】
また、本開示の一態様に係る検証方法は、制御対象の制御を行う制御装置を検証対象として検証を行う検証方法であって、前記制御対象がハードウェアで構成されている実環境において、前記検証対象の検証を行ったときの応答性である実応答性を取得する実応答性取得ステップと、前記制御対象が仮想的に構成されている仮想環境において、前記検証対象の検証を行ったときの応答性である仮想応答性を取得する仮想応答性取得ステップと、前記仮想応答性が前記実応答性に近づくように、前記仮想環境の設定を変更する変更ステップと、を含む。
【0008】
また、本開示の一態様に係るプログラムは、上記の検証方法をコンピュータに実行させるためのプログラムである。
【発明の効果】
【0009】
本開示の一態様に係る検証システムなどによれば、仮想環境と実環境とで同じ動作シナリオを用いた検証を精度良く行うことができる。
【図面の簡単な説明】
【0010】
図1】実施の形態における実環境の一例を示す構成図である。
図2】実施の形態における実環境において、検証対象の検証を行ったときの実応答性が作成される際のシーケンス図である。
図3】実施の形態における仮想環境の一例を示す構成図である。
図4】実施の形態における仮想環境において、検証対象の検証を行ったときの実応答性が作成され、仮想環境の設定が変更される際のシーケンス図である。
図5】その他の実施の形態における検証方法の一例を示すフローチャートである。
【発明を実施するための形態】
【0011】
(実施の形態)
制御対象を制御する制御装置のソフトウェア開発において、制御装置の検証が行われる。以下、検証が行われる制御装置を検証対象とも呼ぶ。検証対象の検証は、制御対象がハードウェアで構成されている実環境、及び、制御対象が仮想的に構成されている仮想環境(例えば、制御対象のエミュレーションが行われている環境)において行われる。実施の形態における検証システムは、制御対象の制御を行う制御装置を検証対象として検証を行うシステムである。検証システムでは、実環境において検証対象の検証を行ったときの応答性である実応答性と、仮想環境において検証対象の検証を行ったときの応答性である仮想応答性とが用いられる。まず、実環境について図1を用いて説明する。
【0012】
図1は、実施の形態における実環境の一例を示す構成図である。
【0013】
実環境は、検証対象によって制御される制御対象がハードウェアで構成されている環境であり、図1では、制御対象として実デバイス200が示されている。例えば、検証対象が車載装置である場合、実デバイス200は、CAN(Controller Area Network)又はイーサネット(登録商標)などを介して、車載装置によって制御されるECU(Electronic Control Unit)や、IVI(In Vehicle Infotainment)用のタッチスクリーンディスプレイなどである。実デバイス200は、後述する検証対象VM130からの操作要求に応じた動作を行い、操作要求に対する応答である操作応答を出力する。
【0014】
例えば、検証対象などは、仮想化システムによって構築される。仮想化システムは、仮想化されたシステムであり、ハイパーバイザ(HV)などの仮想化基盤によって管理される複数の仮想マシン(VM)を有するシステムである。HVは、仮想化モニタ又は仮想化OSとも呼ばれる。図1では、仮想化システムとして、HV110a、及び、HV110aによって管理される複数のVMである実デバイスVM120a及び検証対象VM130が示されている。なお、実デバイスVM120a及び検証対象VM130以外の図示しないVMもHV110aによって管理されてもよい。
【0015】
HV110aは、VMを実現するための機能構成要素であり、実デバイスVM120a及び検証対象VM130を管理する。HV110aは、要求情報取得部111a及び応答情報取得部112aを備える。
【0016】
要求情報取得部111aは、検証対象VM130から実デバイス200への要求情報を、検証対象VM130から取得する。要求情報は、実デバイス200への操作要求を示す情報を含む。要求情報取得部111aは、取得した要求情報を、実デバイス200へ出力する。ここでは、要求情報取得部111aは、実デバイスVM120aを介して要求情報を実デバイス200へ出力する。また、要求情報取得部111aは、要求情報を取得した時刻である要求時刻を実デバイスVM120aへ出力する。
【0017】
応答情報取得部112aは、実デバイス200から検証対象VM130への応答情報を、実デバイス200から取得する(具体的には、実デバイスVM120aを介して取得する)。応答情報は、操作要求に対する応答である操作応答を含む。応答情報取得部112aは、取得した応答情報を、検証対象VM130へ出力する。また、応答情報取得部112aは、応答情報を取得した時刻である応答時刻を実デバイスVM120aへ出力する。
【0018】
なお、HV110aは、要求情報取得部111a及び応答情報取得部112aを備えていなくてもよく、実デバイスVM120aが要求情報取得部111a及び応答情報取得部112aを備えていてもよい。
【0019】
実デバイスVM120aは、実環境において検証対象VM130の検証を行うためのVMである。実デバイスVM120aは、動作シナリオ実行部121a、入出力部122a及び実応答性作成部124aを備える。
【0020】
動作シナリオ実行部121aは、検証対象VM130に動作シナリオに応じた動作を行わせるための処理部である。動作シナリオは、検証対象VM130の検証のためのテストパターンである。例えば、実デバイス200がIVI用のタッチスクリーンディスプレイであり、検証対象VM130がIVIアプリである場合、動作シナリオは、検証対象VM130に対して、音楽一覧画面を表示させ、テスト用の音楽データを選択させ、選択させた音楽データの再生を行わせるためのテストパターンである。動作シナリオ実行部121aは、動作シナリオに応じた動作を検証対象VM130に行わせた後、検証の結果を検証対象VM130から取得する。
【0021】
入出力部122aは、HV110a及び実デバイス200と情報のやり取りを行う。具体的には、入出力部122aは、HV110aから要求情報を取得し、取得した要求情報を実デバイス200へ出力し、また、実デバイス200から応答情報を取得し、取得した応答情報をHV110aへ出力する。
【0022】
実応答性作成部124aは、実環境において、検証対象VM130の検証を行ったときの応答性である実応答性を作成する。実応答性とは、制御対象である実デバイス200への操作要求に対して実デバイス200から操作応答が得られるまでの早さである。具体的には、実応答性作成部124aは、応答情報取得部112aが応答情報を取得した時刻と、要求情報取得部111aが要求情報を取得した時刻との差分を実応答性として作成する。つまり、実応答性は、動作シナリオが実行されてから実デバイス200が応答するまでにかかった時間となる。
【0023】
なお、要求情報取得部111aは要求時刻に加えて、要求情報に含まれる実デバイス200への操作要求を示す情報も実応答性作成部124aへ出力してもよく、実応答性作成部124aは、要求時刻と実デバイス200への操作要求を示す情報とを紐付けて、実応答性として作成してもよい。
【0024】
また、応答情報取得部112aは応答時刻に加えて、応答情報に含まれる、実デバイス200への操作要求に対する応答である操作応答も実応答性作成部124aへ出力してもよく、実応答性作成部124aは、応答時刻と実デバイス200からの操作応答を示す情報とを紐付けて、実応答性として作成してもよい。
【0025】
検証対象VM130は、制御対象である実デバイス200の制御を行う制御装置であり、例えば、VMによって実現される。検証対象VM130は、検証対象アプリ131及び入出力部132を備える。
【0026】
検証対象アプリ131は、検証対象VM130のソフトウェア開発において、検証が行われるアプリである。検証対象アプリ131は、動作シナリオに応じた動作を行う。検証対象アプリ131は、動作シナリオに応じた動作を行うことで、実デバイス200への操作要求を含む要求情報を出力する。具体的には、検証対象アプリ131は、入出力部132へ要求情報を通知する。
【0027】
入出力部132は、HV110aと情報のやり取りを行う。具体的には、入出力部132は、検証対象アプリ131から取得した要求情報をHV110aへ出力し、HV110aから応答情報を取得する。入出力部132が取得した応答情報は、検証対象アプリ131へ通知され、検証対象アプリ131は、動作シナリオに応じた動作が完了したことを実デバイスVM120aへ通知する。
【0028】
次に、実環境において実応答性が作成される際の各構成要素の動作について図2を用いて説明する。
【0029】
図2は、実施の形態における実環境において、検証対象(検証対象VM130)の検証を行ったときの実応答性が作成される際のシーケンス図である。
【0030】
まず、動作シナリオ実行部121aは、動作シナリオを取得する(ステップS101)。例えば、検証対象VM130に対応した動作シナリオが任意のメモリなどに記憶されており、動作シナリオ実行部121aは、当該メモリから検証対象VM130に対応した動作シナリオを取得する。
【0031】
動作シナリオ実行部121aは、実応答性の作成開始を実応答性作成部124aに通知する(ステップS102)。これにより、実応答性作成部124aは、実応答性の作成を開始することができる。
【0032】
また、動作シナリオ実行部121aは、動作シナリオに応じた動作指示を検証対象アプリ131に通知する(ステップS103)。動作シナリオがシナリオに沿って複数の部分に分かれている場合には、動作シナリオ実行部121aは、部分ごとに動作指示を検証対象アプリ131へ通知する。
【0033】
検証対象アプリ131は、実デバイス200への操作要求を含む要求情報を出力する(ステップS104)。要求情報取得部111aは、検証対象アプリ131から出力された要求情報を取得する。
【0034】
要求情報取得部111aは、要求情報を取得した時刻である要求時刻を出力する(ステップS105)。実応答性作成部124aは、要求情報取得部111aから出力された要求時刻を取得する。
【0035】
また、要求情報取得部111aは、実デバイス200への操作要求を含む要求情報を出力する(ステップS106)。実デバイス200は、要求情報取得部111aから出力された要求情報を取得し、操作要求に応じた動作を行う。
【0036】
実デバイス200は、操作要求に応じた動作を完了し、操作要求に対する操作応答を含む応答情報を出力する(ステップS107)。応答情報取得部112aは、実デバイス200から出力された応答情報を取得する。
【0037】
応答情報取得部112aは、応答情報を取得した時刻である応答時刻を出力する(ステップS108)。実応答性作成部124aは、応答情報取得部112aから出力された応答時刻を取得する。実応答性作成部124aは、取得した応答時刻及び要求時刻に基づいて、実応答性を作成する。動作シナリオがシナリオに沿って複数の部分に分かれている場合には、実応答性作成部124aは、部分ごとの実応答性を作成する。
【0038】
また、応答情報取得部112aは、実デバイス200からの操作応答を含む応答情報を出力する(ステップS109)。検証対象アプリ131は、応答情報取得部112aから出力された応答情報を取得する。これにより、検証対象アプリ131は、要求した操作が実行されたことを認識することができる。
【0039】
検証対象アプリ131は、操作要求に対する応答があったことを動作シナリオ実行部121aへ通知する(ステップS110)。
【0040】
動作シナリオがシナリオに沿って複数の部分に分かれている場合には、ステップS103からステップS110までの処理が部分ごとに繰り返し行われる。動作シナリオ実行部121aは、動作シナリオの全ての部分について、操作要求に対する応答があったことの通知を受けた場合、実応答性の作成終了を実応答性作成部124aへ通知する(ステップS111)。これにより、実応答性作成部124aは、実応答性の作成を終了することができる。
【0041】
実応答性作成部124aは、作成した実応答性を任意のメモリに記憶する(ステップS112)。実応答性が動作シナリオの部分ごとに作成されている場合には、実応答性作成部124aは、部分ごとに作成された実応答性をメモリに記憶する。
【0042】
このようにして、実環境において検証対象VM130の検証を行ったときの実応答性が作成される。
【0043】
次に、仮想環境について図3を用いて説明する。
【0044】
図3は、実施の形態における仮想環境の一例を示す構成図である。例えば、仮想環境はクラウドプラットフォーム(クラウドPF)100に設けられる。なお、図3には、クラウドPF100の他にパーソナルコンピュータ(PC)10も示している。
【0045】
仮想環境は、検証対象によって制御される制御対象が仮想的に構成されている環境であり、クラウドPF100において、図1に示される実デバイス200のエミュレーションが行われる。仮想環境では、ECUなどの実際のハードウェアを準備しなくてもよく、ソフトウェアによってECUなどの実際のハードウェアを模倣している。
【0046】
上述したように、例えば、検証対象などは、仮想化システムによって構築される。図3では、仮想化システムがクラウドPF100に設けられており、仮想化システムとして、HV110、及び、HV110によって管理される複数のVMである仮想デバイスVM120及び検証対象VM130が示されている。例えば、仮想環境において検証される検証対象VM130(具体的には検証対象アプリ131)は、実環境において検証される検証対象VM130(具体的には検証対象アプリ131)と同じものである。実環境はHV110aを含んでおり、仮想環境はHV110を含んでおり、HV上のVMであれば実環境と仮想環境とで検証対象VM130を変更することなく動作可能となっている。なお、仮想デバイスVM120及び検証対象VM130以外の図示しないVMもHV110によって管理されてもよい。
【0047】
HV110は、VMを実現するための機能構成要素であり、仮想デバイスVM120及び検証対象VM130を管理する。HV110は、要求情報取得部111、応答情報取得部112及びHV設定部113を備える。
【0048】
要求情報取得部111は、検証対象VM130から実デバイス200への要求情報を、検証対象VM130から取得する。要求情報は、実デバイス200への操作要求を含む。仮想環境では、実デバイス200は存在しないため、要求情報取得部111は、取得した要求情報を、実デバイス200のエミュレーションを実行する仮想デバイスVM120へ出力する。また、要求情報取得部111は、要求情報を取得した時刻である要求時刻を仮想デバイスVM120へ出力する。
【0049】
応答情報取得部112は、仮想デバイスVM120から検証対象VM130への応答情報を、仮想デバイスVM120から取得する。応答情報は、操作要求に対する操作応答を含む。応答情報取得部112は、取得した応答情報を、検証対象VM130へ出力する。また、応答情報取得部112は、応答情報を取得した時刻である応答時刻を仮想デバイスVM120へ出力する。
【0050】
HV設定部113は、仮想環境を構成するHV110の設定を行う処理部である。HV110の設定は、後述する変更部14によって変更することができる。HV110の設定の詳細については後述する。
【0051】
なお、HV110は、要求情報取得部111及び応答情報取得部112を備えていなくてもよく、仮想デバイスVM120が要求情報取得部111及び応答情報取得部112を備えていてもよい。
【0052】
仮想デバイスVM120は、仮想環境において検証対象VM130の検証を行うためのVMである。仮想デバイスVM120は、動作シナリオ実行部121、入出力部122、内部処理部123、仮想応答性作成部124及び内部処理設定部125を備える。
【0053】
動作シナリオ実行部121は、検証対象VM130に動作シナリオに応じた動作を行わせるための処理部である。動作シナリオ実行部121は、実環境において実行される動作シナリオと同じ動作シナリオを実行する。動作シナリオ実行部121は、動作シナリオに応じた動作を検証対象VM130に行わせた後、検証の結果を検証対象VM130から取得する。
【0054】
入出力部122は、HV110と情報のやり取りを行う。具体的には、入出力部122は、HV110から要求情報を取得し、取得した要求情報を内部処理部123へ通知し、また、内部処理部123から応答情報を取得し、取得した応答情報をHV110へ出力する。
【0055】
内部処理部123は、実デバイス200のエミュレーションを実行する処理部である。内部処理部123は、検証対象VM130からの操作要求に応じた動作を実デバイス200が行ったかのように内部処理を行い、操作要求に対する応答である操作応答を出力する。
【0056】
仮想応答性作成部124は、仮想環境において、検証対象VM130の検証を行ったときの応答性である仮想応答性を作成する。仮想応答性とは、制御対象である実デバイス200への操作要求に対して、仮想的に構成された制御対象である内部処理部123から操作応答が得られるまでの早さである。具体的には、仮想応答性作成部124は、応答情報取得部112が応答情報を取得した時刻と、要求情報取得部111が要求情報を取得した時刻との差分を仮想応答性として作成する。つまり、仮想応答性は、動作シナリオが実行されてから内部処理部123が応答するまでにかかった時間となる。仮想応答性作成部124は、作成した仮想応答性をPC10へ出力する。
【0057】
なお、要求情報取得部111は要求時刻に加えて、要求情報に含まれる実デバイス200への操作要求を示す情報も仮想応答性作成部124へ出力してもよく、仮想応答性作成部124は、要求時刻と実デバイス200への操作要求を示す情報とを紐付けて、仮想応答性として作成してもよい。
【0058】
また、応答情報取得部112は応答時刻に加えて、応答情報に含まれる、実デバイス200への操作要求に対する応答である操作応答も仮想応答性作成部124へ出力してもよく、仮想応答性作成部124は、応答時刻と実デバイス200(内部処理部123)からの操作応答を示す情報とを紐付けて、仮想応答性として作成してもよい。
【0059】
内部処理設定部125は、仮想環境において制御対象のエミュレーションを実行するデバイス(すなわち仮想デバイスVM120の内部処理部123)の設定を行う処理部である。内部処理部123の設定は、後述する変更部14によって変更することができる。内部処理部123の設定の詳細については後述する。
【0060】
計算リソース割当設定部140は、仮想環境が設けられるプラットフォーム(クラウドPF100)における計算リソースの割当の設定を行う処理部である。クラウドPF100における計算リソースの割当の設定は、後述する変更部14によって変更することができる。クラウドPF100における計算リソースの割当の設定の詳細については後述する。
【0061】
なお、実環境では制御対象がハードウェアで構成されており、仮想環境では制御対象が仮想的に構成されており、それぞれ異なる環境であるため、実応答性と仮想応答性とが異なってくる。仮想応答性が実応答性と異なっている仮想環境において、実環境で用いた動作シナリオと同じ動作シナリオを用いて検証対象VM130の検証を行った場合、正しい検証結果を得ることが難しい。このため、仮想応答性を実応答性に近づける必要がある。本開示では、検証システムは、仮想応答性を実応答性に近づけるための機能を有するPC10を備える。
【0062】
PC10は、仮想応答性を実応答性に近づけるための機能を有するコンピュータであり、実応答性取得部11、仮想応答性取得部12、設定変更要否判定部13、変更部14及び動作シナリオ再実行指示部15を備える。PC10は、プロセッサ及びメモリなどを含む。メモリは、ROM(Read Only Memory)及びRAM(Random Access Memory)などであり、プロセッサにより実行されるプログラムを記憶することができる。実応答性取得部11、仮想応答性取得部12、設定変更要否判定部13、変更部14及び動作シナリオ再実行指示部15は、メモリに格納されたプログラムを実行するプロセッサなどによって実現される。
【0063】
実応答性取得部11は、制御対象がハードウェアで構成されている実環境において、検証対象VM130の検証を行ったときの応答性である実応答性を取得する。具体的には、実応答性取得部11は、実デバイスVM120aの実応答性作成部124aが作成した実応答性を取得する。
【0064】
仮想応答性取得部12は、制御対象が仮想的に構成されている仮想環境において、検証対象VM130の検証を行ったときの応答性である仮想応答性を取得する。具体的には、仮想応答性取得部12は、仮想デバイスVM120の仮想応答性作成部124が作成した仮想応答性を取得する。
【0065】
設定変更要否判定部13は、仮想環境の設定を変更する必要があるか否かを判定する。例えば、設定変更要否判定部13は、仮想応答性と実応答性との差分に基づいて、仮想環境の設定を変更する必要があるか否かを判定する。仮想応答性と実応答性との差分が所定値以上の場合、設定変更要否判定部13は、仮想環境の設定を変更する必要があると判定し、変更部14の処理が行われる。仮想応答性と実応答性との差分が所定値未満の場合、設定変更要否判定部13は、仮想環境の設定を変更する必要がないと判定する。この場合、仮想環境と実環境とで応答性がほぼ同じとなっているため、仮想環境と実環境とで同じ動作シナリオを用いた検証を精度良く行うことができる。なお、所定値は特に限定されないが、仮想応答性と実応答性との差分が所定値未満となった場合に、仮想応答性と実応答性とがほぼ同じとみなすことができる程度の値に設定される。
【0066】
変更部14は、仮想応答性取得部12が取得した仮想応答性が、実応答性取得部11が取得した実応答性に近づくように、仮想環境の設定を変更する。
【0067】
例えば、仮想環境の設定は、仮想環境が設けられるクラウドPF100における計算リソースの割当の設定を含んでいてもよい。クラウドPF100における計算リソースの割当の設定は、クラウドPF100に設けられる仮想化システムなどの各機能に対して割り当てられる計算リソースの設定(例えば、CPUコア数、使用メモリ容量、ストレージアクセス速度などの設定)などである。
【0068】
例えば、仮想環境の設定は、仮想環境を構成するHV110の設定を含んでいてもよい。HV110の設定は、HV110上で動作する複数のVM(例えば、仮想デバイスVM120及び検証対象VM130並びに図示しないその他のVMなど)のそれぞれに対して割り当てられる計算リソースの設定(例えば、CPUコア数、使用メモリ容量などの設定)及びCPU割当て優先度の設定などである。例えば、検証対象VM130の仮想応答性が実応答性に対して早い場合には検証対象VM130のCPU割当て優先度を下げ、検証対象VM130の仮想応答性が実応答性に対して遅い場合には検証対象VM130のCPU割当て優先度を上げることで、仮想応答性を実応答性に近づけることができる。
【0069】
例えば、仮想環境の設定は、仮想デバイスVM120の内部処理部123の設定を含んでいてもよい。仮想デバイスVM120の内部処理部123の設定は、デバイスアクセス処理の優先度の設定、OS内で動作するプロセスごとの処理優先度の設定、及び、内部処理部123が使用するメモリ容量の設定などである。デバイスアクセス処理の優先度の設定は、例えば、内部処理部123が複数のVMからアクセス処理要求を受けている場合に、どのVMのアクセス処理要求を優先して処理するかの設定である。
【0070】
変更部14は、このような仮想環境の設定のうちの1以上の設定を、計算リソース割当設定部140、HV設定部113及び内部処理設定部125を介して変更することで、仮想応答性を調整することができる。
【0071】
動作シナリオ再実行指示部15は、動作シナリオ実行部121に対して、動作シナリオの再実行を指示する。これにより、設定が変更された仮想環境において改めて仮想応答性が作成され、仮想応答性取得部12は、変更された仮想環境に応じた仮想応答性を取得する。そして、変更部14は、仮想環境の設定を変更する必要があると判定された場合には、再度仮想環境の設定を変更する。例えば、仮想応答性が実応答性に近づいているか否かを確認しながら仮想環境の設定の変更が試行錯誤的に繰り返し行われることで、仮想応答性を実応答性に近づけることができる。このように、検証システム(例えばPC10)は、仮想応答性取得部12による仮想応答性の取得と、変更部14による仮想環境の設定の変更とを繰り返し行う。
【0072】
なお、検証システムは、少なくとも実応答性取得部11、仮想応答性取得部12及び変更部14を備えていればよい。図3に示されるように、実応答性取得部11、仮想応答性取得部12及び変更部14がPC10に備えられている場合には、検証システムはPC10を備える。或いは、検証システムは、PC10であってもよい。実応答性取得部11、仮想応答性取得部12及び変更部14が仮想デバイスVM120又はHV110に備えられていてもよく、この場合には、検証システムは、クラウドPF100を備える。或いは、検証システムは、クラウドPF100であってもよい。
【0073】
次に、仮想環境において仮想応答性が作成される際の各構成要素の動作、及び、仮想環境の設定が変更される際の動作について図4を用いて説明する。
【0074】
図4は、実施の形態における仮想環境において、検証対象VM130の検証を行ったときの仮想応答性が作成され、仮想環境の設定が変更される際のシーケンス図である。
【0075】
まず、動作シナリオ実行部121は、動作シナリオを取得し、仮想応答性の作成開始を仮想応答性作成部124に通知する(ステップS201)。これにより、仮想応答性作成部124は、仮想応答性の作成を開始することができる。
【0076】
また、動作シナリオ実行部121は、動作シナリオに応じた動作指示を検証対象アプリ131に通知する(ステップS202)。動作シナリオがシナリオに沿って複数の部分に分かれている場合には、動作シナリオ実行部121は、部分ごとに動作指示を検証対象アプリ131へ通知する。
【0077】
検証対象アプリ131は、実デバイス200への操作要求を含む要求情報を出力する(ステップS203)。要求情報取得部111は、検証対象アプリ131から出力された要求情報を取得する。
【0078】
要求情報取得部111は、要求情報を取得した時刻である要求時刻を出力する(ステップS204)。仮想応答性作成部124は、要求情報取得部111から出力された要求時刻を取得する。
【0079】
また、要求情報取得部111は、実デバイス200への操作要求を含む要求情報を出力する(ステップS205)。実デバイス200のエミュレーションを実行する内部処理部123は、要求情報取得部111から出力された要求情報を取得し、操作要求に応じた処理を行う。
【0080】
内部処理部123は、操作要求に応じた処理を完了し、操作要求に対する操作応答を含む応答情報を出力する(ステップS206)。応答情報取得部112は、内部処理部123から出力された応答情報を取得する。
【0081】
応答情報取得部112は、応答情報を取得した時刻である応答時刻を出力する(ステップS207)。仮想応答性作成部124は、応答情報取得部112から出力された応答時刻を取得する。仮想応答性作成部124は、取得した応答時刻及び要求時刻に基づいて、仮想応答性を作成する。動作シナリオがシナリオに沿って複数の部分に分かれている場合には、仮想応答性作成部124は、部分ごとの仮想応答性を作成する。
【0082】
また、応答情報取得部112は、内部処理部123からの操作応答を含む応答情報を出力する(ステップS208)。検証対象アプリ131は、応答情報取得部112から出力された応答情報を取得する。これにより、検証対象アプリ131は、要求した操作が実行されたことを認識することができる。
【0083】
検証対象アプリ131は、操作要求に対する応答があったことを動作シナリオ実行部121へ通知する(ステップS209)。
【0084】
動作シナリオがシナリオに沿って複数の部分に分かれている場合には、ステップS202からステップS209までの処理が部分ごとに繰り返し行われる。動作シナリオ実行部121は、動作シナリオの全ての部分について、操作要求に対する応答があったことの通知を受けた場合、仮想応答性の作成終了を仮想応答性作成部124へ通知する(ステップS210)。これにより、仮想応答性作成部124は、仮想応答性の作成を終了することができる。
【0085】
仮想応答性作成部124は、作成した仮想応答性をPC10へ出力する(ステップS211)。仮想応答性が動作シナリオの部分ごとに作成されている場合には、仮想応答性作成部124は、部分ごとに作成された仮想応答性をPC10へ出力する。
【0086】
PC10は、実環境において作成された実応答性と仮想環境において作成された仮想応答性とを比較する(ステップS212)。動作シナリオがシナリオに沿って複数の部分に分かれている場合には、PC10は、部分ごとに対応する実応答性と仮想応答性とを比較する。例えば、PC10は、実応答性と仮想応答性との差分を算出する。
【0087】
次に、PC10は、仮想環境の設定の変更の要否を判定する(ステップS213)。例えば、PC10は、実応答性と仮想応答性との差分が所定値以上の場合に、仮想環境の設定を変更する必要があると判定し、実応答性と仮想応答性との差分が所定値未満の場合に、仮想環境の設定を変更する必要がないと判定する。
【0088】
PC10は、仮想環境の設定を変更する必要がある場合には、仮想環境の設定を変更する(ステップS214)。例えば、PC10は、仮想応答性が実応答性よりも早いか遅いか、仮想応答性と実応答性との差分の大きさなどに応じて、仮想環境の設定を変更する。
【0089】
そして、PC10は、設定が変更された仮想環境において、再度同じ動作シナリオを実行するように動作シナリオ実行部121に指示する(ステップS215)。これにより、設定が変更された仮想環境において、再度ステップS201からステップS211までの処理が行われる。また、設定が変更された仮想環境において作成された仮想応答性を用いてステップS212及びステップS213での処理が行われる。このような処理が、仮想環境の設定の変更が不要となるまで(つまり、実応答性と仮想応答性との差分が所定未満となるまで)繰り返し行われる。このようにして、徐々に仮想応答性を実応答性に近づけることができる。
【0090】
(まとめ)
検証システム(例えばPC10)は、制御対象の制御を行う制御装置を検証対象として検証を行う検証システムであって、制御対象がハードウェアで構成されている実環境において、検証対象の検証を行ったときの応答性である実応答性を取得する実応答性取得部11と、制御対象が仮想的に構成されている仮想環境において、検証対象の検証を行ったときの応答性である仮想応答性を取得する仮想応答性取得部12と、仮想応答性が実応答性に近づくように、仮想環境の設定を変更する変更部14と、を備える。
【0091】
例えば、仮想環境の設定には、仮想環境が設けられるプラットフォームにおける計算リソースの割当の設定、仮想環境を構成するHVの設定、仮想環境において制御対象のエミュレーションを実行するデバイスの設定などがあり、これらの設定を変更することで、仮想環境において検証対象の検証を行ったときの仮想応答性を調整することができる。したがって、仮想環境の設定を変更することで、仮想環境において検証対象の検証を行ったときの仮想応答性を、実環境において検証対象の検証を行ったときの実応答性に近づけることができる。すなわち、仮想応答性が実応答性に近づくように仮想環境の設定が変更されることで、仮想環境と実環境とで同じ動作シナリオを用いた検証を精度良く行うことができる。
【0092】
例えば、検証システムは、仮想応答性取得部12による仮想応答性の取得と、変更部14による仮想環境の設定の変更とを繰り返し行ってもよい。
【0093】
例えば、仮想環境の設定の一度の変更で、仮想応答性を実応答性に近づけることは難しいため、仮想応答性の取得と、仮想環境の設定の変更とが繰り返し行われることで、徐々に仮想応答性を実応答性に近づけることができる。
【0094】
例えば、実環境及び仮想環境は、それぞれHVを含んでいてもよい。
【0095】
HV上のVMであれば、実環境と仮想環境とで検証対象を変更することなく動作させることができるため、仮想環境と実環境とで検証対象の変更を不要とすることができる。
【0096】
例えば、実環境において検証が行われる検証対象と、仮想環境において検証が行われる検証対象とは、同じ制御装置であってもよい。
【0097】
このように、実環境と仮想環境とで同じ制御装置が検証対象として検証されてもよい。
【0098】
例えば、仮想環境の設定は、仮想環境が設けられるプラットフォームにおける計算リソースの割当の設定を含んでいてもよい。
【0099】
このように、仮想環境が設けられるプラットフォームにおける計算リソースの割当の設定を変更することで、仮想応答性を実応答性に近づけることができる。
【0100】
例えば、仮想環境の設定は、仮想環境を構成するHVの設定を含んでいてもよい。
【0101】
このように、仮想環境を構成するHVの設定を変更することで、仮想応答性を実応答性に近づけることができる。
【0102】
例えば、仮想環境の設定は、制御対象のエミュレーションを実行するデバイスの設定を含んでいてもよい。
【0103】
このように、制御対象のエミュレーションを実行するデバイスの設定を変更することで、仮想応答性を実応答性に近づけることができる。
【0104】
(その他の実施の形態)
以上のように、本開示に係る技術の例示として実施の形態を説明した。しかしながら、本開示に係る技術は、これに限定されず、適宜、変更、置き換え、付加、省略等を行った実施の形態にも適用可能である。例えば、以下のような変形例も本開示の一実施の形態に含まれる。
【0105】
例えば、上記実施の形態では、検証システムは、仮想応答性取得部12による仮想応答性の取得と、変更部14による仮想環境の設定の変更とを繰り返し行う例について説明したが、仮想応答性取得部12による仮想応答性の取得と、変更部14による仮想環境の設定の変更とを繰り返し行わなくてもよい。
【0106】
例えば、上記実施の形態では、動作シナリオがシナリオに沿って複数の部分に分かれている例について説明したが、これに限らない。例えば、動作シナリオによってはシナリオに沿って複数の部分に分かれていないものがあり、この場合には、図2のステップS103からステップS110までの処理、及び、図4のステップS202からステップS209までの処理が繰り返し行われなくてもよい。
【0107】
例えば、上記実施の形態では、1つの動作シナリオが実行されたときの実応答性及び仮想応答性に基づいて、仮想環境の設定が変更される例について説明したが、これに限らない。例えば、複数の動作シナリオが連続して実行されたときの実応答性及び仮想応答性に基づいて、仮想環境の設定が変更されてもよい。この場合、複数の動作シナリオのそれぞれについての仮想応答性の平均値が、複数の動作シナリオのそれぞれについての実応答性の平均値に近づくように、仮想環境の設定が変更される。
【0108】
なお、本開示は、検証システムとして実現できるだけでなく、検証システムを構成する各構成要素が行うステップ(処理)を含む検証方法として実現できる。
【0109】
図5は、その他の実施の形態における検証方法の一例を示すフローチャートである。
【0110】
検証方法は、制御対象の制御を行う制御装置を検証対象として検証を行う方法であって、図5に示されるように、制御対象がハードウェアで構成されている実環境において、検証対象の検証を行ったときの応答性である実応答性を取得する実応答性取得ステップ(ステップS11)と、制御対象が仮想的に構成されている仮想環境において、検証対象の検証を行ったときの応答性である仮想応答性を取得する仮想応答性取得ステップ(ステップS12)と、仮想応答性が実応答性に近づくように、仮想環境の設定を変更する変更ステップ(ステップS13)と、を含む。
【0111】
例えば、検証方法におけるステップは、コンピュータ(コンピュータシステム)によって実行されてもよい。そして、本開示は、検証方法に含まれるステップを、コンピュータに実行させるためのプログラムとして実現できる。
【0112】
さらに、本開示は、そのプログラムを記録したCD-ROM等である非一時的なコンピュータ読み取り可能な記録媒体として実現できる。
【0113】
例えば、本開示が、プログラム(ソフトウェア)で実現される場合には、コンピュータのCPU、メモリ及び入出力回路等のハードウェア資源を利用してプログラムが実行されることによって、各ステップが実行される。つまり、CPUがデータをメモリ又は入出力回路等から取得して演算したり、演算結果をメモリ又は入出力回路等に出力したりすることによって、各ステップが実行される。
【0114】
また、上記実施の形態の検証システムに含まれる各構成要素は、専用又は汎用の回路として実現されてもよい。
【0115】
また、上記実施の形態の検証システムに含まれる各構成要素は、集積回路(IC:Integrated Circuit)であるLSI(Large Scale Integration)として実現されてもよい。
【0116】
また、集積回路はLSIに限られず、専用回路又は汎用プロセッサで実現されてもよい。プログラム可能なFPGA(Field Programmable Gate Array)、又は、LSI内部の回路セルの接続及び設定が再構成可能なリコンフィギュラブル・プロセッサが、利用されてもよい。
【0117】
さらに、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて、検証システムに含まれる各構成要素の集積回路化が行われてもよい。
【0118】
その他、実施の形態に対して当業者が思いつく各種変形を施して得られる形態、本開示の趣旨を逸脱しない範囲で各実施の形態における構成要素及び機能を任意に組み合わせることで実現される形態も本開示に含まれる。
【産業上の利用可能性】
【0119】
本開示は、例えば、車両に搭載される車載装置などを検証する検証システムに適用できる。
【符号の説明】
【0120】
10 PC
11 実応答性取得部
12 仮想応答性取得部
13 設定変更要否判定部
14 変更部
15 動作シナリオ再実行指示部
100 クラウドPF
110、110a HV
111、111a 要求情報取得部
112、112a 応答情報取得部
113 HV設定部
120 仮想デバイスVM
120a 実デバイスVM
121、121a 動作シナリオ実行部
122、122a、132 入出力部
123 内部処理部
124 仮想応答性作成部
124a 実応答性作成部
125 内部処理設定部
130 検証対象VM
131 検証対象アプリ
140 計算リソース割当設定部
200 実デバイス
図1
図2
図3
図4
図5