JP6523928B2 - 仮想試験システム、仮想試験方法およびプログラム - Google Patents

仮想試験システム、仮想試験方法およびプログラム Download PDF

Info

Publication number
JP6523928B2
JP6523928B2 JP2015225072A JP2015225072A JP6523928B2 JP 6523928 B2 JP6523928 B2 JP 6523928B2 JP 2015225072 A JP2015225072 A JP 2015225072A JP 2015225072 A JP2015225072 A JP 2015225072A JP 6523928 B2 JP6523928 B2 JP 6523928B2
Authority
JP
Japan
Prior art keywords
virtual
virtual machine
server
log
function
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2015225072A
Other languages
English (en)
Other versions
JP2017091467A (ja
Inventor
金子 博
博 金子
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Toshiba Infrastructure Systems and Solutions Corp
Original Assignee
Toshiba Corp
Toshiba Infrastructure Systems and Solutions Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp, Toshiba Infrastructure Systems and Solutions Corp filed Critical Toshiba Corp
Priority to JP2015225072A priority Critical patent/JP6523928B2/ja
Publication of JP2017091467A publication Critical patent/JP2017091467A/ja
Application granted granted Critical
Publication of JP6523928B2 publication Critical patent/JP6523928B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)

Description

本発明の実施形態は、コンピュータを利用して組み込み機器の開発を支援する技術に関する。
社会インフラに係るシステムは、実稼働前に多様な試験をパスすることを求められる。例えば、開発対象のアプリケーション(ソフトウェア)が組み込み機器(embedded device)において正常に機能するかを試験することは、重要である。しかしソースコードのバグ取り(Bug Fix)や、あらゆる状況を想定して機器の挙動を検証することはシステムが巨大化するにつれ困難になる。
ところで、QEMU(Quick EMUlator)などのOSS(Open Source Software)を用いてアーキテクチャの異なるCPU(Central Processing Unit)を模倣し、組み込みボードの開発を支援するという技術が知られている。この種の技術によればハードウェアボードの開発とソフトウェアの開発とを分離でき、ハードの完成を待たずにソフトを試験できるので開発プロセスを効率化することができる。
原嶋秀次, 蔭山佳輝, 河込和宏,仮想化技術による実機レステスト環境の構築,東芝レビュー,日本,2012年,Vol.67, No.8,Page.31-34
上記したように、仮想化技術を応用して試験環境を構築することが検討されている。この種の技術はいわゆる実機レステストと称されることもある。
しかしながら既存の技術は、より規模の大きなシステムレベルでの実機レステスト環境を構築できるまでには至っておらず、複雑化した近年の社会インフラシステムにそのまま適用することはできない。例えばテレビ放送局などに設置される設備(放送局設備、スタジオシステム、あるいはマスターシステムとも称される)は非常に大規模で、多様なハードウェアとソフトウェアとが複雑に絡み合って構成される。このため単一のボードを模倣するだけでは十分ではなく、複数のボードからなる個別機器を模倣できたとしてもやはり十分ではない。
また、機器間の連携処理、通信のリアルタイム性の確保、放送素材の厳密な同期、圧縮/伸長処理への対応、放送直前でのCM提供者の決定や変更、あるいは放送事故の撲滅など、スタジオシステムに特有の事情を考慮して仮想試験環境を構築したシステムは知られていない。さらに、機器が相互に協調動作する過程を検証したり、機器ごとに発生するログデータを統一的に解析したりするには技術的課題があった。
このような事情から、放送局設備の開発プロセスは依然として実機依存型なので、アプリケーションを試験するにはその組み込み先となるハードウェアの提供を待たなくてはならない。このため開発プロセスの終盤に人的負荷が集中したり、様々なリソースの無駄を生じたり、本来不要なコストがかかったりするので何らかの解決手段が要望されていた。
目的は、放送局設備の開発の効率を高めることの可能な仮想試験システム、仮想試験方法およびプログラムを提供することにある。
実施形態によれば、仮想試験システムは、それぞれアプリケーションにより制御される複数の機器を備える社会インフラを対象とする。この仮想試験システムは、実行環境構築機能と、仮想マシン生成機能と、シミュレート機能と、試験制御機能とを具備する。実行環境構築機能は、仮想化された共通の実行環境を構築する。仮想マシン生成機能は、アプリケーションを搭載された機器をそれぞれ仮想化して複数の仮想マシンを生成する。シミュレート機能は、実行環境における複数の仮想マシンの協調動作を模倣するシミュレーションを実行する。試験制御機能は、シミュレーションに基づいてアプリケーションを評価する手段を提供する。
図1は、地上波デジタル放送システムの一例を示す概念図である。 図2は、実施形態に係る放送局設備の一例を示す機能ブロック図である。 図3は、図2に示される放送局設備におけるイベントの発生に伴う制御シーケンスの一例を示す図である。 図4は、実施形態に係る仮想試験システムのハードウェア環境の一例を示す図である。 図5は、図4に示される仮想試験システムに備わる機能の一例を示す機能ブロック図である。 図6は、仮想実行環境における仮想マシンの一例を示す図である。 図7は、仮想試験システムの実行環境の一例を示すモデル図である。 図8は、実施形態に係る仮想マシンのレイヤ構成の一例を示す模式図である。 図9は、機器側におけるログ転送機能の一例を説明するための図である。 図10は、ログ収集サーバ側におけるログ収集機能の一例を説明するための図である。 図11は、クライアント端末700のモニタ75に表示されるGUIウインドウの一例を示す図である。 図12は、クライアント端末700のモニタ75に表示されるGUIウインドウの他の例を示す図である。 図13は、クライアント端末700のモニタ75に表示されるGUIウインドウの他の例を示す図である。 図14は、クライアント端末700のモニタ75に表示されるGUIウインドウの他の例を示す図である。 図15は、ログデータの一例を示す図である。
以下、図面を参照して本発明の実施の形態について説明する。例えば、映像音声機器の出力の合成処理を制御するシステムが広く知られている。このシステムが制御の対象とする放送関連機器はVTR、映像合成装置、映像出力信号切り替え装置(スイッチャ)、映像音声データ圧縮装置など多岐にわたる。これらの機器一式を局内に据え付けて運用を開始するまでには膨大な項目に及ぶ試験を実施する必要がある。
それぞれの機器は、専用に開発されたアプリケーションにより制御される、いわゆる組み込み機器である。この実施形態では、複数の放送関連機器を備える社会インフラとしての放送局設備を対象とする。より詳しくは、組み込み機器に搭載されるアプリケーションを試験する新規な手法について、以下に開示する。
図1は、地上デジタル放送システムの一例を示す概念図である。放送局100のマスタ送出システムで作成されたトランスポートストリーム(TS)は、専用線網などの通信ネットワーク200を経由して例えば電波塔300まで伝送される。電波塔300はTS信号をデジタル変調してマイクロ波帯で放射する。放射された電波は各家庭400の受像機で受信され、映像と音声が再生される。模式的に示すように、放送局100の例えば監視室に備えられる機器は大規模かつ多種多様であり、多数のモニタ画面や林立するラック(棚)を備える。
図2は、実施形態に係る放送局設備の一例を示す機能ブロック図である。放送局設備は、情報系10、信号処理系20、伝送系30、および監視系システム40を備える。これらはLAN(Local Area Network)などの局内ネットワーク50を介して相互接続される。
情報系10は、放送情報スケジューラ11、および放送スケジュール変更/通知部12を備える。
信号処理系20は、制御系60、スイッチャ21、エンコーダ(ENC)23、SI送出部24、VBR25、多重化部(MUX)26、およびSCR27を備える。信号処理系20は1系および0系を含む冗長構成をとることも可能である。
スイッチャ21は、番組/CM/提供情報、回線素材、スタジオからの映像/音声信号、あるいは各種機材から発生された信号を伝送系30から取り込み、番組表に従って経路切換して次段のエンコーダ23に接続する。エンコーダ23はいわゆる符号化多重化部制御装置(EMC:Encoder & Multiplexer Controller)であり、入力された信号の符号化及び多重化に関する制御を行う。
エンコーダ23は所定の手順に従って映像信号/音声信号/データ信号を符号化し、次段の多重化部26に入力する。多重化部26は、エンコーダ23からの符号化信号、SI送出部24からのSI(Service Information)信号、ECM信号、およびVBR25からの信号を多重化し、SCR27経由で、伝送系30のストリーム切り替え部31,32に送出する。
ストリーム切り替え部31,32は互いに冗長化され、MPEG(Moving Picture Experts Group)符号化方式で圧縮された放送TS(Transport Stream)信号をシームレスに切り替え、現用系、予備系および検証系の各TS信号を生成する。これらのTS信号は交換部33を経由して通信ネットワーク200(図1)に送出される。
信号処理系20の制御系60は、機器制御スケジューラ61、リアルタイムコントローラ62、ノード(NODE)63、およびMSM64を備える。機器制御スケジューラ61は、放送スケジュールの制御に係わる処理を実行する。リアルタイムコントローラ62は、実時間制御に係わる処理を実行する。
ノード63は、例えば、局内ネットワーク50への接続インタフェース持たない機材(アナログVTRなど)に接続され、局内ネットワーク50へのインタフェース機能を提供する。これにより旧式の機材なども放送局設備の制御下に置くことができる。必要に応じてノード63は複数設けられても良い。MSM64は、その他の各種制御に係わる処理を担う。
監視系システム40は、SECLOGGER、OA表示端末42、マルチモニタ43、監視卓44、監視指示端末45およびアラーム端末46などの、複数の監視制御用機器を備える。
図3は、図2に示される放送局設備におけるイベントの発生に伴う制御シーケンスの一例を示す図である。図3において、VTR1から10:00にオンエア(OA)データを出力するメッセージが、放送プログラム送出部91から機器制御スケジューラ61に与えられたとする。そうすると機器制御スケジューラ61はリアルタイムコントローラ62にCDTメッセージを与える。
これを受けたリアルタイムコントローラ62はSECNET3電文により、VTR−startメッセージ(START(PLAY))をVTR−NODE92に通知する。VTR93の機構的なタイムラグを考慮して、ターゲット時刻の3秒前(例えば09:59:57)にVTR93をスタートすべき指示をVTR−startメッセージに含ませても良い。これを受けたVTR−NODE92は、VTR93にPLAY指示を与えて映像再生が開始される。
一方、10:00:00に、クロスポイント(Xp)切替指示がリアルタイムコントローラ62からスイッチャ制御NODE94に与えられる。これにより、例えば色付きの電文メッセージがログに表示される(自動運行サービス制御)。
スイッチャ制御NODE94は、配下のスイッチャ21にクロスポイント切替指示を与え、これに応じてスイッチャ21はクロスポイントを切り替える(自動運行制御)。またスイッチャ21は、自らのクロスポイントの設定状態(Xp状態)を、タリー信号としてTP95に通知する(Xp状態表示切替)。
次に、上記したような放送局設備をコンピュータリソースを用いて仮想化し、仮想環境上でアプリケーションソフトウェアを試験する新規な形態について説明する。以下ではこの種のシステムを仮想試験システム、または仮想試験プラットフォーム(VTP:Virtual Test Platform)と称して説明する。
図4は、実施形態に係る仮想試験システムのハードウェア環境の一例を示す図である。図4に示される仮想試験システムは、サーバ500およびクライアント端末700を備える。サーバ500およびクライアント端末700は、ネットワーク600を介して互いに通信可能に接続される。クライアント端末700のモニタ75に表示される各種の情報に基づいて、ユーザはアプリケーションの試験の過程や結果などの情報を知ることができる。
ネットワーク600は有線LANまたは無線LAN(Wi−Fi(登録商標)など)、あるいは公衆網を経由するVPN(Virtual Private Network)などの通信ネットワークであっても良い。要するにサーバ500およびクライアント端末700は同じ建物内に在っても、離れた位置に在っても良い。なおクライアント端末700は、ノートパソコンやタブレット端末として、あるいはシンクライアント端末として実現されても良い。
図5は、図4に示される仮想試験システムに備わる機能の一例を示す機能ブロック図である。図5において、サーバ500およびクライアント端末700は、いずれもCPUおよびメモリを備えるコンピュータである。各コンピュータに搭載されるOS(Operating System)は、例えばWindows(登録商標)、Linux(登録商標)などの著名なOSはもとより、専用に開発されたOSであっても良い。特に、クライアント端末700がタブレット端末であればAndroid(登録商標)やiOS(登録商標)などのOSを搭載していてもよい。
サーバ500は、CPU51、メモリ52、およびインタフェース部53を備える。このうちインタフェース部53はネットワーク600を介してクライアント端末700と通信する。
メモリ52は、RAM(Random Access Memory)やROM(Read Only Memory)などの半導体メモリ、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)などの記憶デバイスである。磁気ディスク以外にも、光磁気ディスクやCD(Compact Disc)、DVD(Digital Versatile Disc)、ブルーレイ(登録商標)ディスクなどの光ディスクを利用してもよい。
メモリ52は、実行環境構築プログラム52a、仮想マシン生成プログラム52b、シミュレートプログラム52c、ログ収集プログラム52d、状態遷移設計データ52e、および機器モデルデータ52fを記憶する。
状態遷移設計データ52eは、イベントドリブン型の機器について、イベントの発生に応じた状態遷移を表す情報である。機器モデルデータ52fは、それぞれの機器の振る舞いを抽象化したモデルを示す情報である。機器の振る舞いを抽象化することで、例えば電源断やケーブル抜けなどの状態をエミュレートすることができる。
CPU51は、実行環境構築機能51a、仮想マシン生成機能51b、シミュレート機能51c、およびログ収集機能51dを備える。
実行環境構築機能51aは、実行環境構築プログラム52aに記述された命令をCPU51が解釈し、実行することで実現される処理機能である。実行環境構築機能51aは、サーバ500に、仮想化された共通の実行環境を構築する。
仮想マシン生成機能51bは、仮想マシン生成プログラム52bに記述された命令をCPU51が解釈し、実行することで実現される処理機能である。仮想マシン生成機能51bは、図2に示される放送局設備に含まれる機器をそれぞれ仮想化し、仮想マシンを生成する。それぞれの仮想マシンは、アプリケーションを搭載された機器を模倣するもので、仮想実行環境において機能するオブジェクトである。
なお、放送局設備における各機器のプラットフォームは普通、統一されていない。つまりx86アーキテクチャ、x64アーキテクチャをベースとする機器もあれば、PPC(PowerPC(登録商標))アーキテクチャで構成される機器、あるいはまったく別のアーキテクチャに基づく機器もある。アーキテクチャの差異は、CPUの違いによるエンディアン(バイトオーダー)の違い、アプリケーション及びOSの違い、デバイスにおけるデータ型(長さとアライメント)の違い、システムコールの違いなどあらゆる層(レイヤ)に及ぶ。このような機器間の差異は、多種多様な機器を備える放送局設備において特に著しい。
当然ながら、アプリケーションは組み込み先の機器のプラットフォーム向けに開発されるので、仮想実行空間上で複数機器の仮想マシンを動作させるには、プラットフォームの差異を解決する必要がある。そこで実施形態では、異なるプラットフォームの機器が混在するケースにおいて、仮想マシン生成機能51bは、プラットフォームの差異に基づくアプリケーションに固有の仕様を仮想実行環境に対して隠蔽して、仮想マシンを生成する。
また、仮想マシン生成機能51bは、メモリ52に記憶された状態遷移設計データ52eに基づいて、イベントドリブン型の機器を仮想化した仮想マシンを生成する。あるいは、仮想マシン生成機能51bは、メモリ52に記憶された機器モデルデータ52fに基づいて、それぞれの仮想マシンを生成する。
あるいは、仮想マシン生成機能51bは、与えられたメッセージに対する応答を登録して仮想マシンを生成する。いわば、仮想マシンのひな型にメッセージと応答との関係をシナリオとして登録することで、アプリケーションが未開発の機器をも仮想化することができる。つまり、メッセージに対するアプリケーションの実行の結果としての応答ではなく、メッセージと応答との関係を単純にテーブル化しておくことで、簡単な機能についてはその動作を模倣することができる。これにより、たとえアプリケーションが未開発であっても、機器を模倣することが可能になる。
シミュレート機能51cは、シミュレートプログラム52cに記述された命令をCPU51が解釈し、実行することで実現される処理機能である。シミュレート機能51cは、実行環境構築機能51aにより構築された仮想実行環境において、上記仮想マシンの協調動作を模倣するシミュレーションを実行する。
ログ収集機能51dは、ログ収集プログラム52dに記述された命令をCPU51が解釈し、実行することで実現される処理機能である。ログ収集機能51dは、上記シミュレーションの過程で発生するログデータを収集する。それぞれのログデータには、仮想実行環境におけるタイムスタンプが付与される。それぞれの仮想マシンは仮想実行環境における共通時刻を基準として機能するので、異なる仮想マシンで発生したログを時間軸上で統一的に管理することが可能になる。
クライアント端末700は、CPU71、メモリ72、インタフェース部73、操作部74、およびモニタ75を備える。このうちインタフェース部73はネットワーク600を介してサーバ500と通信する。操作部74およびモニタ75はマウス、キーボードあるいはタッチパネルなどの操作手段であり、GUI(Graphical User Interface)などのユーザインタフェースを提供する。
メモリ72は、半導体メモリ、HDD、SSD、光ディスク、光磁気ディスクなどの記憶デバイスである。メモリ72は、シミュレーション制御プログラム72a、ログ変換プログラム72b、およびログ出力プログラム72cを記憶する。
CPU71は、シミュレーション制御機能71a、ログ変換機能71b、およびログ出力機能71cを備える。
シミュレーション制御機能71aは、シミュレーション制御プログラム72aに記述された命令をCPU71が解釈し、実行することで実現される処理機能である。シミュレーション制御機能71aは、仮想マシンに搭載されたアプリケーションを、シミュレート機能51cにより実行されたシミュレーションに基づいて評価する手段を提供する。評価者が人間であれば、シミュレーションの進行する様子や結果をモニタ75に表示することで、評価者はアプリケーションの挙動や不具合を評価することができる。あるいは、シミュレーションの結果に基づいてアプリケーションを自動的に評価するツール(評価モジュール)を用意し、そのツールにシミュレーションの結果を渡す(リダイレクト)ようにしても良い。
ログ変換機能71bは、ログ変換プログラム72bに記述された命令をCPU71が解釈し、実行することで実現される処理機能である。ログ変換機能71bは、収集されたログデータの可読性を変換してログ出力機能に渡す。つまりログデータは、バイナリ表現などの人間には理解することの困難な形式で記述されることが多いので、ログ変換機能71bは、収集されたログデータを人間の理解しやすい形式(デシマル値による表現、テキストによる表現など)に翻訳する。
ログ出力機能71cは、ログ出力プログラム72cに記述された命令をCPU71が解釈し、実行することで実現される処理機能である。ログ出力機能71cは、収集されたログデータを、仮想実行環境におけるタイムスタンプと関連付けて出力する。
図6は、仮想実行環境における仮想マシンの一例を示す図である。サーバ500は、仮想マシンとしての機器制御スケジューラV1、リアルタイムコントローラV2、操作卓制御装置V3、マスタースイッチャV4、NTPサーバV5、および仮想試験サーバV6を備える。仮想試験サーバV6は、ログ収集サーバV7、仮想制御装置V8、および放送時刻コントローラV9を備える。これらはいずれもサーバ500のリソースを利用する仮想的なオブジェクトである。
クライアント端末700は、仮想マシンとしての手動送出制御部V10、機器監視部V11、送出サービススケジューラV12、電文ロガーV13、および仮想試験操作部V14を備える。仮想試験操作部V14は、ログ表示/検索部V15、VM(VirtualMachine:仮想マシン)操作部V16、およびエミュレータ操作部V17を備える。これらはいずれもクライアント端末700のリソースを利用する仮想的なオブジェクトである。
サーバ500およびクライアント端末700は、2種類の通信インタフェースを介して接続される。すなわちイーサネット(登録商標)をベースとする汎用LAN601と、制御専用ネットワーク602である。
汎用LAN601の用途は主に画像データや音声データの伝送であり、TCP/IPなどの汎用プロトコルを用いることができる。制御専用ネットワーク602はリアルタイム性を確保可能なネットワークで、主に機器間で電文を授受するために用いられる。この種のネットワークのトポロジはトークンリング型が代表的であり、例えばSECNET3として知られるネットワークを挙げることができる。
図6と図2との比較において、機器制御スケジューラV1は、機器制御スケジューラ61に対応する。リアルタイムコントローラV2は、リアルタイムコントローラ62に対応する。操作卓制御装置V3は、監視系システム40に対応する。マスタースイッチャV4は、スイッチャ21に対応する。このほかNTPサーバV5、仮想試験サーバV6、ログ収集サーバV7、仮想制御装置V8、および放送時刻コントローラV9も、放送局設備に備わるいずれかの機器に対応付けることが可能である。
また、機器監視部V11は、監視系システム40内に設けられる監視卓(図示せず)や監視指示端末に対応する。このほか手動送出制御部V10、送出サービススケジューラV12、電文ロガーV13、仮想試験操作部V14、ログ表示/検索部V15、VM操作部V16、エミュレータ操作部V17も、放送局設備に備わるいずれかの機器に対応付けることが可能である。次に、上記構成における作用を説明する。
図7は、仮想試験システムの実行環境の一例を示すモデル図である。実施形態において、サーバ500上に仮想試験サーバV6、仮想マシン実行環境V20、およびサーバアプリケーションV21が生成される。
仮想試験サーバV6は、ログ収集サーバV7、放送時刻コントローラV9、仮想汎用機器V22、およびログデータベース(LogDB)V23を備える。仮想汎用機器V22は、メッセージと応答との対応を登録することで、あらゆる機器をエミュレートした仮想マシンである。ログデータベースV23は、シミュレーションの過程で発生するログデータを記録するデータベース(ログデータベース17)を仮想化したオブジェクトである。
仮想マシン実行環境V20は、複数の仮想マシンVM1およびVM2を生成可能な環境として生成される。仮想マシンVM1は機器アプリケーションAP1を搭載し、仮想マシンVM2は機器アプリケーションAP2を搭載する。また、サーバアプリケーションV21は、サーバ500上に仮想的に生成される。
ここで、図7に示されるように、機器アプリケーションAP1はPPC向け、機器アプリケーションAP2はx86向け、サーバアプリケーションV21はx64向けにそれぞれ開発されたソフトウェアであるケースを考える。これは搭載される相手先の機器のアーキテクチャを反映するもので、各アプリケーションの仕様が異なると、共通の仮想実行環境下で複数の仮想マシンを動作させることはできない。
そこで実施形態では、仮想マシンVM1にVTP(Virtual Test Platform)インフラ1を実装し、仮想マシンVM2にVTPインフラ2を実装することで、各機器アプリケーションAP1、AP2に固有の仕様を、仮想実行環境に対して隠蔽するようにした。同様に、サーバアプリケーションV21にもVTPインフラ3を実装することで、サーバアプリケーションV21に固有の仕様を仮想実行環境に対して隠蔽するようにした。なお仮想マシンVM1、VM2に予め用意されたVMライブラリ4を実装して開発を省力化することも可能である。
このような構成により、異なるプラットフォーム向けに開発された個々の機器アプリケーションを共通の仮想実行環境下で動作させることができ、各仮想マシンの相互作用をシミュレートすることが可能になる。
図8は、実施形態に係る仮想マシンのレイヤ構成の一例を示す模式図である。図8において、機器制御スケジューラV1、リアルタイムコントローラV2、マスタースイッチャV4、ログ収集サーバV7、およびログ表示/検索部V15は、Linux(登録商標)やWindows(登録商標)、あるいはその他のOSをベースとする仮想マシンである。なおこのような階層形態は一例である。
機器制御スケジューラV1、リアルタイムコントローラV2、およびマスタースイッチャV4はLinux(登録商標)などのOS上に、低レベルから順にSECNET3用のドライバ、ログ出力ライブラリを備え、最上位レベルに専用のアプリケーション(APL)が載っている。また、ログ出力ライブラリが低位から中位階層にわたって実装される。
また、リアルタイムコントローラV2はV同期に対応する仮想ドライバを備え、マスタースイッチャV4は、SIO、PIO、およびV同期に対応可能な仮想ドライバを備える。なおV同期とはSECNET3におけるリアルタイム同期機能である。
ログ収集サーバV7は、最下層にLinux(登録商標)またはWindows(登録商標)などのOS層を備える。そして、サーバアプリケーションとDBコネクタ層とが実装されている。さらに、ログ表示/検索部V15においても、ログ収集サーバV7と同様の構成となっている。
各仮想マシン間の通信は最下層レイヤを介して実施される。イーサネット(登録商標)による通信環境は全ての仮想マシン間に形成されるが、SECNET3による通信環境は、例えば機器制御スケジューラV1、リアルタイムコントローラV2、およびマスタースイッチャV4の間にだけ形成するようにしても良い。
図9は、機器側におけるログ転送機能の一例を説明するための図である。例えば図8に示されるマスタースイッチャV4を例に採り説明する。ログデータが発生すると、ログ出力ライブラリ(Lib)7はログデータをログ入出力部7bに置き、ログ出力関数7aが生成するタイミングでログデータを読み出す。読み出しのタイミングは例えば設定ファイル8に予め記述される。このほか各種のログ出力パラメータを設定ファイル8に記述することが可能である。ログ出力パラメータは機器ごとに個別に設定可能である。ログ入出力部7bから読み出されたログデータはログファイル9にされるとともに、ログ転送部7c経由でログ収集サーバV7に、例えば非同期で転送される。転送のプロトコルには例えばTCP(Transmission Control Protocol)を用いることができる。さらに、ログファイル9はログ履歴として蓄積される。
図10は、ログ収集サーバV7側におけるログ収集機能の一例を説明するための図である。ログ収集サーバV7のログ収集サーバアプリケーション18は、ログ検索取り出し部18a、ログ表示コネクタ18b、ログ格納部18c、およびログ受信部18dを備える。図10において、ログ転送部7c(図9)から送信されたログデータはログ受信部18dにより、例えば非同期で受信されてログ格納部18cに渡される。ログ格納部18cは渡されたログデータをDBコネクタ経由でログDBに格納する(収集ログデータの格納)。また、ログデータの取り出し指示/結果の転送要求がログ表示/検索部V15から与えられると、ログ表示コネクタ18bは、取り出し指示/結果の転送要求をログ検索取り出し部18aに渡す。ログ検索取り出し部18aは、DBコネクタ経由でログDBを検索して、取り出し指示/結果の転送要求で指示されたログデータを取り出す。この取り出されたログデータはログ表示コネクタ18b経由で要求元のログ表示/検索部V15に返送される。
図11は、クライアント端末700のモニタ75に表示されるGUIウインドウの一例を示す図である。なお図11に示されるウインドウは、放送局設備のOA表示端末42(図2)、あるいはタッチパネルなどのユーザインタフェースに表示されても良い。
図11のウインドウは、例えば四角いアイコンで示される複数のクリッカブルボタンを備える。図11のウインドウは、例えば右端に表示されるデバイス操作ボタンがクリック(あるいはタッチ)された場合の表示内容を示す。このウインドウは、機器単体の設定条件を変更するためのウインドウで、ボタンをクリックすることで対応する機器の状態(例えばON/OFF)を設定することができる。
例えば津波に関する表示のON/OFFを設定するためのボタン、速報の表示に関するON/OFFを設定するためのボタン、あるいは局ロゴの表示に関するON/OFFを設定するためのボタンが示される。これらのボタンがクリックされると仮想マシンの挙動にもそのことが反映され、シミュレーションの過程が変化する。
図12は、図11のウインドウで設定された機器条件の結果を示すウインドウであり、右端のオンエア状態ボタンがクリックされると表示される。このウインドウは、現状のシステムの状態を視覚的に表示するものである。実際の運用では、図12のウインドウでシステム全体をチェックしながら必要に応じて図11のウインドウ戻って条件を変更する、という作業が繰り返されることになる。仮想実行環境下でのシミュレーションにおいても同様の手順を実施することが可能である。
図13は、クライアント端末700のモニタ75に表示されるGUIウインドウの他の例を示す図である。このウインドウは、例えばシナリオグループ、データ種別、送受信種別、送受信データ、繰り返し、間隔、T.O、状況、回数、日時、および詳細などを示す欄を備える。シミュレーションのシナリオは予め専用のエディタなどで作成され、クライアント端末700のメモリ72などに、例えばCSV(comma separated value)形式やXML(eXtensible Markup Language)形式で記憶される。図13のウインドウはシナリオ読み込み前の状態を示す。メインシナリオの送受信データの欄に記載される「test」が、シミュレーション用のシナリオであることを示す。
図14は、クライアント端末700のモニタ75に表示されるGUIウインドウの他の例を示す図である。図13の状態からシナリオが読み込まれると、図14に示されるように、メインシナリオの日時の欄が埋まり、「test」が送信される。「test」に対する返信データが受信されると、「未実施」のシナリオも次々に実行される。シナリオの数や内容(送受信データにて設定)、起動時間の間隔(ここではmsec)なども事前にシナリオ化することができる。
シナリオをあらかじめ準備することで、どの仮想マシンをどのように動作させるかを、シミュレーションの実行前に予め自由に設定することができる。また、正常な機器動作に必要なシナリオだけでなく、通常はあり得ないシナリオ(疑似シナリオ)も設定可能することが可能である。例えば、敢えてエラーを発生させるようなシナリオに沿ってシミュレーションを実施することで、システムの挙動をより詳しく把握し、これに基づき想定外の事象が発生した場合のシステムの安定性を高めることも可能になる。
図15は、ログデータの一例を示す図である。シミュレーションの途中で発生するログデータは、例えばシステム時刻、放送時刻、機器名、ソースID、送信元ID、宛先ID、および機器名の、複数の属性を含む。メッセージデータはログデータの内容に相当する。図15には4つのログデータが示される。このうちメッセージデータは16進数のバイナリ表記で表現されている。これは伝送帯域の削減などの利点を生む一方で、人間には理解しにくい表現である。
そこで実施形態では、ログ変換機能71b(図5)によりメッセージデータの内容を翻訳したうえでログ出力機能71cに渡すようにしている。つまりログデータに示される情報の可読性を変換するようにしている。この処理には別途用意された送信元IDテーブル(送信元IDの一覧表)、宛先IDテーブル(宛先IDの一覧表)、およびメッセージデータ変換テーブルなどを利用しても良い。このような処理により、進行中のシミュレーションの状態、あるいは終了したシミュレーションの結果をユーザは容易に理解することができる。さらには、予め用意されたログデータをシミュレータに流し込むことで、プラットフォーム間での翻訳も可能になる。
以上説明したようにこの実施形態では、異なるアーキテクチャ向けに開発されたアプリケーションを搭載する機器をエミュレートした仮想マシンを、共通の仮想実行環境上で動作させるため、各アプリケーションの仕様を仮想実行環境に対して隠蔽するようにした。
これにより、異種プラットフォームで動作するソフトウェアを、同じコンピュータ、複数の非専用機器、あるいは汎用コンピュータ上で仮想的に動作させることができる。これにより、放送局設備に適用されるソフトウェアを実機レスで試験することが可能になるので、機器の設置スペースやコストの問題などを解決できる。
既存の技術では、放送局設備を構成する機器を単独でエミュレートできるに過ぎなかった。また、これまでのスタジオシステムの開発は実機依存の傾向が強く、十分な台数の制御対象機器を揃えることや、実環境を構築する場所の確保、建物に付随するシステムの移設などに多大な時間とコストを要していた。自社システムに他社製機器を混在させる要求があると、試験期間中の資産保有のための調達費用もかかる。また、制御対象機器の制御プロセスを実現するソフトウェアにおいても、実機依存型のプロセスで開発されることが一般的であった。特に複数種類の開発を同時並行で実施する場合には開発者の数だけの実機を調達する必要があるので、さらにコストが嵩む。
これに対し実施形態によれば、複数の機器を個別にエミュレートできるにとどまらず、それら複数の仮想マシンによる相互作用を共通のプラットフォーム上でシミュレートすることができる。よってアプリケーションを搭載するハードウェアの完成を待つことなく、アプリケーションの完成度を評価し、試験することが可能になる。従って実機依存型の試験環境から脱却できる。よって放送局設備の実稼働までのリードタイムの短縮や、コスト削減を図ることができる。
また実施形態では、全ての仮想マシンで発生したログデータを一箇所で集中的に収集し、システム全体の時系列(基本は放送時刻)に合わせて配列できるようにした。従来のシステム開発では、アプリケーションが意図した動作をしなかった場合や、意図した動作をした根拠とする為の各サブシステムのアプリケーションの実行履歴(ログデータ)を確認するために、個別にログデータを収集し、検証する必要があった。実施形態によればこのような手間を大幅に削減できるようになる。
さらに実施形態では、収集されたログデータをユーザにとって可読性の高い表現に翻訳するようにしたので、より、ユーザフレンドリな試験環境を構築することができる。
これらのことから、放送局設備の開発の効率を高めることの可能な仮想試験システム、仮想試験方法およびプログラムを提供することが可能になる。
なお本発明は上記実施の形態に限定されるものではない。例えば、図6のサーバ500上の仮想試験サーバV6やNTPサーバV5は、実体を伴うコンピュータであっても良い。また、クライアント端末700の手動送出制御部V10、機器監視部V11、および送出サービススケジューラV12を、別体の第3のコンピュータ上で仮想化しても良い。
また、サーバ500の一部、または全ての機能をクラウドコンピューティングシステム(いわゆるクラウド)にインプリメントすることも可能である。例えば、アプリケーション(ソフトウェア)をサービスとして提供するSaaS(Software as a Service)、アプリケーションを稼働させるための基盤(プラットフォーム)をサービスとして提供するPaaS(Platform as a Service)、あるいは、サーバ装置、中央演算処理装置およびストレージなどのリソースをサービス(パブリッククラウド)として提供するIaaS(Infrastructure as a Service)が、クラウドの形態として知られている。実施形態の仮想試験システムはいずれの形態でも実現し得るが、特にPaaSとの親和性が高い。
また、実施形態に係る仮想試験システムを実現するプログラムを、コンピュータ読み取り可能な記録媒体に記録することも可能である。この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行させることにより、仮想試験システムを実現することが可能である。「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものであってもよい。
また「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、フラッシュメモリ等の書き込み可能な不揮発性メモリ、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(例えばDRAM(Dynamic Random Access Memory))のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
本発明の実施形態を説明したが、この実施形態は例として提示するものであり、発明の範囲を限定することは意図していない。この新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。この実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
2,3…VTPインフラ、4…VMライブラリ、7…ログ出力ライブラリ、7b…ログ入出力部、7c…ログ転送部、18…ログ収集サーバアプリケーション、18a…ログ検索取り出し部、18b…ログ表示コネクタ、18c…ログ格納部、18d…ログ受信部、51…CPU、51a…実行環境構築機能、51b…仮想マシン生成機能、51c…シミュレート機能、51d…ログ収集機能、52…メモリ、52a…実行環境構築プログラム、52b…仮想マシン生成プログラム、52c…シミュレートプログラム、52d…ログ収集プログラム、52e…状態遷移設計データ、52f…機器モデルデータ、71…CPU、71a…シミュレーション制御機能、71b…ログ変換機能、71c…ログ出力機能、72…メモリ、72a…シミュレーション制御プログラム、72b…ログ変換プログラム、72c…ログ出力プログラム、100…放送局、200…通信ネットワーク、500…サーバ、600…ネットワーク、700…クライアント端末、AP1,AP2…機器アプリケーション、VM1,VM2…仮想マシン

Claims (15)

  1. それぞれアプリケーションにより制御される、放送局設備に備えられる複数の放送関連機器を備える社会インフラを対象とする仮想試験システムであって、
    仮想化された共通の実行環境を構築する実行環境構築機能と、
    前記アプリケーションを搭載された前記放送関連機器をそれぞれ仮想化して複数の仮想マシンを生成する仮想マシン生成機能と、
    前記実行環境における前記複数の仮想マシンの協調動作を模倣するシミュレーションを実行するシミュレート機能と、
    前記シミュレーションに基づいて前記アプリケーションを評価する手段を提供する試験制御機能とを具備する、仮想試験システム。
  2. 第1のプラットフォームに基づく放送関連機器と第2のプラットフォームに基づく放送関連機器とが前記社会インフラ内に混在する場合に、
    前記仮想マシン生成機能は、前記第1のプラットフォームと前記第2のプラットフォームとの差異に基づく前記アプリケーションに固有の仕様を前記実行環境に対して隠蔽して前記仮想マシンを生成する、請求項1に記載の仮想試験システム。
  3. 前記シミュレーションの過程で発生するログデータを収集するログ収集機能と、
    前記収集されたログデータを前記実行環境におけるタイムスタンプと関連付けて出力するログ出力機能とをさらに具備する、請求項1に記載の仮想試験システム。
  4. 前記ログ出力機能は、前記収集されたログデータを人間の理解しやすい形式に翻訳して出力する変換機能を備える、請求項3に記載の仮想試験システム。
  5. 前記仮想マシン生成機能は、イベントの発生に応じた状態遷移を表す情報に基づいて、イベントドリブン型の放送関連機器を仮想化した仮想マシンを生成する、請求項1に記載の仮想試験システム。
  6. 前記仮想マシン生成機能は、前記放送関連機器の振る舞いを抽象化したモデルに基づいて前記仮想マシンを生成する、請求項1に記載の仮想試験システム。
  7. 前記仮想マシン生成機能は、与えられたメッセージに対する応答を登録して前記仮想マシンを生成する、請求項1に記載の仮想試験システム。
  8. それぞれアプリケーションにより制御される、放送局設備に備えられる複数の放送関連機器を備える社会インフラを対象とする仮想試験を、クライアントおよびサーバにより実行する仮想試験方法であって、
    前記サーバが、仮想化された共通の実行環境を構築し、
    前記サーバが、前記アプリケーションを搭載された前記放送関連機器をそれぞれ仮想化して複数の仮想マシンを生成し、
    前記サーバが、前記実行環境における前記複数の仮想マシンの協調動作を模倣するシミュレーションを実行し、
    前記クライアントが、前記シミュレーションに基づいて前記アプリケーションを評価する手段を提供する、仮想試験方法。
  9. 第1のプラットフォームに基づく放送関連機器と第2のプラットフォームに基づく放送関連機器とが前記社会インフラ内に混在する場合に、
    前記サーバは、前記第1のプラットフォームと前記第2のプラットフォームとの差異に基づく前記アプリケーションに固有の仕様を前記実行環境に対して隠蔽して前記仮想マシンを生成する、請求項8に記載の仮想試験方法。
  10. 前記サーバが、前記シミュレーションの過程で発生するログデータを収集し、
    前記クライアントが、前記収集されたログデータを前記実行環境におけるタイムスタンプと関連付けて出力する、請求項8に記載の仮想試験方法。
  11. 前記クライアントは、前記収集されたログデータを人間の理解しやすい形式に翻訳して出力する、請求項10に記載の仮想試験方法。
  12. 前記サーバは、イベントの発生に応じた状態遷移を表す情報に基づいて、イベントドリブン型の機器を仮想化した仮想マシンを生成する、請求項8に記載の仮想試験方法。
  13. 前記サーバは、前記放送関連機器の振る舞いを抽象化したモデルに基づいて前記仮想マシンを生成する、請求項8に記載の仮想試験方法。
  14. 前記サーバは、与えられたメッセージに対する応答を登録して前記仮想マシンを生成する、請求項8に記載の仮想試験方法。
  15. 請求項8乃至14のいずれか1項に記載の方法を、クライアントおよびサーバを含むコンピュータ群に実行させるための命令を含む、プログラム。
JP2015225072A 2015-11-17 2015-11-17 仮想試験システム、仮想試験方法およびプログラム Active JP6523928B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015225072A JP6523928B2 (ja) 2015-11-17 2015-11-17 仮想試験システム、仮想試験方法およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015225072A JP6523928B2 (ja) 2015-11-17 2015-11-17 仮想試験システム、仮想試験方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2017091467A JP2017091467A (ja) 2017-05-25
JP6523928B2 true JP6523928B2 (ja) 2019-06-05

Family

ID=58767975

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015225072A Active JP6523928B2 (ja) 2015-11-17 2015-11-17 仮想試験システム、仮想試験方法およびプログラム

Country Status (1)

Country Link
JP (1) JP6523928B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009035100A1 (ja) * 2007-09-14 2009-03-19 National Institute Of Advanced Industrial Science And Technology バーチャルリアリティ環境生成装置及びコントローラ装置
JP6946122B2 (ja) * 2017-09-07 2021-10-06 株式会社東芝 トリガー信号出力装置、トリガー信号出力方法、放送マスターシステム、およびプログラム
TWI723602B (zh) * 2019-10-30 2021-04-01 國立中央大學 社群式學習創建系統與電腦程式產品
CN112463614B (zh) * 2020-12-01 2023-07-14 北京计算机技术及应用研究所 一种基于硬件板卡接入的软件虚拟化测试环境构建方法
JPWO2023073839A1 (ja) * 2021-10-27 2023-05-04

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003006265A (ja) * 2001-06-26 2003-01-10 Matsushita Electric Ind Co Ltd 動作モデル生成方法および動作モデル生成装置
JP2006211405A (ja) * 2005-01-28 2006-08-10 Sony Corp 機器試験システム、機器評価装置及び機器試験方法
JP2011150736A (ja) * 2011-05-09 2011-08-04 Fujitsu Ltd プロファイリングプログラム、プロファイリング方法、およびコンピュータ
JP5882052B2 (ja) * 2011-12-28 2016-03-09 日立オートモティブシステムズ株式会社 協調シミュレーション用計算機システム、組込みシステムの検証方法及びプログラム
JP2014102734A (ja) * 2012-11-21 2014-06-05 Renesas Electronics Corp 性能検証プログラム、性能検証方法及び性能検証装置

Also Published As

Publication number Publication date
JP2017091467A (ja) 2017-05-25

Similar Documents

Publication Publication Date Title
JP6523928B2 (ja) 仮想試験システム、仮想試験方法およびプログラム
CN109271325B (zh) 应用的测试方法、系统、电子设备和存储介质
Ahrenholz Comparison of CORE network emulation platforms
US9632914B2 (en) Error diagnostic in a production environment
US8433733B2 (en) Web application record-replay system and method
US9135150B2 (en) Automated execution of functional test scripts on a remote system within a unit testing framework
US8561063B2 (en) Platform independent replication using virtual machines
US20130212435A1 (en) Integrated Fuzzing
US11237948B2 (en) Rendering engine component abstraction system
Christensen et al. The IEC 61499 function block standard: Software tools and runtime platforms
US11409639B2 (en) Shadow testing
Rechert et al. Introduction to an emulation-based preservation strategy for software-based artworks
Berdahl et al. Embedded Networking and Hardware-Accelerated Graphics with Satellite CCRMA.
Jones et al. Scalability of VM provisioning systems
JP6538529B2 (ja) 仮想試験システム、映像作成方法およびプログラム
Sendorek et al. Software‐Defined Virtual Testbed for IoT Systems
JP6797643B2 (ja) プレビューシステム、端末装置およびプレビュー方法
US20140156252A1 (en) Hybrid platform-dependent simulation interface
Bullington-McGuire et al. Docker for Developers: Develop and run your application with Docker containers using DevOps tools for continuous delivery
CN111708704B (zh) 一种云真机测试方法、装置、终端及存储介质
CN115993937A (zh) 一种多进程固态硬盘仿真环境实现方法和装置
JP6707438B2 (ja) プレビューシステム、プレビュー方法およびプログラム
Ribiere Emulation of obsolete hardware in open source virtualization software
CN108255570A (zh) 异构虚拟机监视器平台间的虚拟机迁移方法、装置和系统
KR101498700B1 (ko) 가상화시스템 환경에서의 스토리지 성능 테스팅장치

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20170904

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20170905

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180307

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190108

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190311

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190402

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190426

R150 Certificate of patent or registration of utility model

Ref document number: 6523928

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150