(57)【特許請求の範囲】
【請求項１】
それぞれアプリケーションにより制御される、放送局設備に備えられる複数の放送関連機器を備える社会インフラを対象とする仮想試験システムであって、
仮想化された共通の実行環境を構築する実行環境構築機能と、
前記アプリケーションを搭載された前記放送関連機器をそれぞれ仮想化して複数の仮想マシンを生成する仮想マシン生成機能と、
前記実行環境における前記複数の仮想マシンの協調動作を模倣するシミュレーションを実行するシミュレート機能と、
前記シミュレーションに基づいて前記アプリケーションを評価する手段を提供する試験制御機能とを具備する、仮想試験システム。
【請求項２】
第１のプラットフォームに基づく放送関連機器と第２のプラットフォームに基づく放送関連機器とが前記社会インフラ内に混在する場合に、
前記仮想マシン生成機能は、前記第１のプラットフォームと前記第２のプラットフォームとの差異に基づく前記アプリケーションに固有の仕様を前記実行環境に対して隠蔽して前記仮想マシンを生成する、請求項１に記載の仮想試験システム。
【請求項３】
前記シミュレーションの過程で発生するログデータを収集するログ収集機能と、
前記収集されたログデータを前記実行環境におけるタイムスタンプと関連付けて出力するログ出力機能とをさらに具備する、請求項１に記載の仮想試験システム。
【請求項４】
前記ログ出力機能は、前記収集されたログデータを人間の理解しやすい形式に翻訳して出力する変換機能を備える、請求項３に記載の仮想試験システム。
【請求項５】
前記仮想マシン生成機能は、イベントの発生に応じた状態遷移を表す情報に基づいて、イベントドリブン型の放送関連機器を仮想化した仮想マシンを生成する、請求項１に記載の仮想試験システム。
【請求項６】
前記仮想マシン生成機能は、前記放送関連機器の振る舞いを抽象化したモデルに基づいて前記仮想マシンを生成する、請求項１に記載の仮想試験システム。
【請求項７】
前記仮想マシン生成機能は、与えられたメッセージに対する応答を登録して前記仮想マシンを生成する、請求項１に記載の仮想試験システム。
【請求項８】
それぞれアプリケーションにより制御される、放送局設備に備えられる複数の放送関連機器を備える社会インフラを対象とする仮想試験を、クライアントおよびサーバにより実行する仮想試験方法であって、
前記サーバが、仮想化された共通の実行環境を構築し、
前記サーバが、前記アプリケーションを搭載された前記放送関連機器をそれぞれ仮想化して複数の仮想マシンを生成し、
前記サーバが、前記実行環境における前記複数の仮想マシンの協調動作を模倣するシミュレーションを実行し、
前記クライアントが、前記シミュレーションに基づいて前記アプリケーションを評価する手段を提供する、仮想試験方法。
【請求項９】
第１のプラットフォームに基づく放送関連機器と第２のプラットフォームに基づく放送関連機器とが前記社会インフラ内に混在する場合に、
前記サーバは、前記第１のプラットフォームと前記第２のプラットフォームとの差異に基づく前記アプリケーションに固有の仕様を前記実行環境に対して隠蔽して前記仮想マシンを生成する、請求項８に記載の仮想試験方法。
【請求項１０】
前記サーバが、前記シミュレーションの過程で発生するログデータを収集し、
前記クライアントが、前記収集されたログデータを前記実行環境におけるタイムスタンプと関連付けて出力する、請求項８に記載の仮想試験方法。
【請求項１１】
前記クライアントは、前記収集されたログデータを人間の理解しやすい形式に翻訳して出力する、請求項１０に記載の仮想試験方法。
【請求項１２】
前記サーバは、イベントの発生に応じた状態遷移を表す情報に基づいて、イベントドリブン型の機器を仮想化した仮想マシンを生成する、請求項８に記載の仮想試験方法。
【請求項１３】
前記サーバは、前記放送関連機器の振る舞いを抽象化したモデルに基づいて前記仮想マシンを生成する、請求項８に記載の仮想試験方法。
【請求項１４】
前記サーバは、与えられたメッセージに対する応答を登録して前記仮想マシンを生成する、請求項８に記載の仮想試験方法。
【請求項１５】
請求項８乃至１４のいずれか１項に記載の方法を、クライアントおよびサーバを含むコンピュータ群に実行させるための命令を含む、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、コンピュータを利用して組み込み機器の開発を支援する技術に関する。
【背景技術】
【０００２】
社会インフラに係るシステムは、実稼働前に多様な試験をパスすることを求められる。例えば、開発対象のアプリケーション（ソフトウェア）が組み込み機器（embedded device）において正常に機能するかを試験することは、重要である。しかしソースコードのバグ取り（Bug Fix）や、あらゆる状況を想定して機器の挙動を検証することはシステムが巨大化するにつれ困難になる。
【０００３】
ところで、ＱＥＭＵ（Quick EMUlator）などのＯＳＳ（Open Source Software）を用いてアーキテクチャの異なるＣＰＵ（Central Processing Unit）を模倣し、組み込みボードの開発を支援するという技術が知られている。この種の技術によればハードウェアボードの開発とソフトウェアの開発とを分離でき、ハードの完成を待たずにソフトを試験できるので開発プロセスを効率化することができる。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】原嶋秀次, 蔭山佳輝, 河込和宏，仮想化技術による実機レステスト環境の構築，東芝レビュー，日本，２０１２年，Vol.67, No.8，Page.31-34
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記したように、仮想化技術を応用して試験環境を構築することが検討されている。この種の技術はいわゆる実機レステストと称されることもある。  
しかしながら既存の技術は、より規模の大きなシステムレベルでの実機レステスト環境を構築できるまでには至っておらず、複雑化した近年の社会インフラシステムにそのまま適用することはできない。例えばテレビ放送局などに設置される設備（放送局設備、スタジオシステム、あるいはマスターシステムとも称される）は非常に大規模で、多様なハードウェアとソフトウェアとが複雑に絡み合って構成される。このため単一のボードを模倣するだけでは十分ではなく、複数のボードからなる個別機器を模倣できたとしてもやはり十分ではない。
【０００６】
また、機器間の連携処理、通信のリアルタイム性の確保、放送素材の厳密な同期、圧縮／伸長処理への対応、放送直前でのＣＭ提供者の決定や変更、あるいは放送事故の撲滅など、スタジオシステムに特有の事情を考慮して仮想試験環境を構築したシステムは知られていない。さらに、機器が相互に協調動作する過程を検証したり、機器ごとに発生するログデータを統一的に解析したりするには技術的課題があった。
【０００７】
このような事情から、放送局設備の開発プロセスは依然として実機依存型なので、アプリケーションを試験するにはその組み込み先となるハードウェアの提供を待たなくてはならない。このため開発プロセスの終盤に人的負荷が集中したり、様々なリソースの無駄を生じたり、本来不要なコストがかかったりするので何らかの解決手段が要望されていた。
【０００８】
目的は、放送局設備の開発の効率を高めることの可能な仮想試験システム、仮想試験方法およびプログラムを提供することにある。
【課題を解決するための手段】
【０００９】
実施形態によれば、仮想試験システムは、それぞれアプリケーションにより制御される複数の機器を備える社会インフラを対象とする。この仮想試験システムは、実行環境構築機能と、仮想マシン生成機能と、シミュレート機能と、試験制御機能とを具備する。実行環境構築機能は、仮想化された共通の実行環境を構築する。仮想マシン生成機能は、アプリケーションを搭載された機器をそれぞれ仮想化して複数の仮想マシンを生成する。シミュレート機能は、実行環境における複数の仮想マシンの協調動作を模倣するシミュレーションを実行する。試験制御機能は、シミュレーションに基づいてアプリケーションを評価する手段を提供する。
【図面の簡単な説明】
【００１０】
【図１】図１は、地上波デジタル放送システムの一例を示す概念図である。
【図２】図２は、実施形態に係る放送局設備の一例を示す機能ブロック図である。
【図３】図３は、図２に示される放送局設備におけるイベントの発生に伴う制御シーケンスの一例を示す図である。
【図４】図４は、実施形態に係る仮想試験システムのハードウェア環境の一例を示す図である。
【図５】図５は、図４に示される仮想試験システムに備わる機能の一例を示す機能ブロック図である。
【図６】図６は、仮想実行環境における仮想マシンの一例を示す図である。
【図７】図７は、仮想試験システムの実行環境の一例を示すモデル図である。
【図８】図８は、実施形態に係る仮想マシンのレイヤ構成の一例を示す模式図である。
【図９】図９は、機器側におけるログ転送機能の一例を説明するための図である。
【図１０】図１０は、ログ収集サーバ側におけるログ収集機能の一例を説明するための図である。
【図１１】図１１は、クライアント端末７００のモニタ７５に表示されるＧＵＩウインドウの一例を示す図である。
【図１２】図１２は、クライアント端末７００のモニタ７５に表示されるＧＵＩウインドウの他の例を示す図である。
【図１３】図１３は、クライアント端末７００のモニタ７５に表示されるＧＵＩウインドウの他の例を示す図である。
【図１４】図１４は、クライアント端末７００のモニタ７５に表示されるＧＵＩウインドウの他の例を示す図である。
【図１５】図１５は、ログデータの一例を示す図である。
【発明を実施するための形態】
【００１１】
以下、図面を参照して本発明の実施の形態について説明する。例えば、映像音声機器の出力の合成処理を制御するシステムが広く知られている。このシステムが制御の対象とする放送関連機器はＶＴＲ、映像合成装置、映像出力信号切り替え装置（スイッチャ）、映像音声データ圧縮装置など多岐にわたる。これらの機器一式を局内に据え付けて運用を開始するまでには膨大な項目に及ぶ試験を実施する必要がある。
【００１２】
それぞれの機器は、専用に開発されたアプリケーションにより制御される、いわゆる組み込み機器である。この実施形態では、複数の放送関連機器を備える社会インフラとしての放送局設備を対象とする。より詳しくは、組み込み機器に搭載されるアプリケーションを試験する新規な手法について、以下に開示する。
【００１３】
図１は、地上デジタル放送システムの一例を示す概念図である。放送局１００のマスタ送出システムで作成されたトランスポートストリーム（ＴＳ）は、専用線網などの通信ネットワーク２００を経由して例えば電波塔３００まで伝送される。電波塔３００はＴＳ信号をデジタル変調してマイクロ波帯で放射する。放射された電波は各家庭４００の受像機で受信され、映像と音声が再生される。模式的に示すように、放送局１００の例えば監視室に備えられる機器は大規模かつ多種多様であり、多数のモニタ画面や林立するラック（棚）を備える。
【００１４】
図２は、実施形態に係る放送局設備の一例を示す機能ブロック図である。放送局設備は、情報系１０、信号処理系２０、伝送系３０、および監視系システム４０を備える。これらはＬＡＮ（Local Area Network）などの局内ネットワーク５０を介して相互接続される。
【００１５】
情報系１０は、放送情報スケジューラ１１、および放送スケジュール変更／通知部１２を備える。
【００１６】
信号処理系２０は、制御系６０、スイッチャ２１、エンコーダ（ＥＮＣ）２３、ＳＩ送出部２４、ＶＢＲ２５、多重化部（ＭＵＸ）２６、およびＳＣＲ２７を備える。信号処理系２０は１系および０系を含む冗長構成をとることも可能である。
【００１７】
スイッチャ２１は、番組／ＣＭ／提供情報、回線素材、スタジオからの映像／音声信号、あるいは各種機材から発生された信号を伝送系３０から取り込み、番組表に従って経路切換して次段のエンコーダ２３に接続する。エンコーダ２３はいわゆる符号化多重化部制御装置（ＥＭＣ：Encoder & Multiplexer Controller）であり、入力された信号の符号化及び多重化に関する制御を行う。
【００１８】
エンコーダ２３は所定の手順に従って映像信号／音声信号／データ信号を符号化し、次段の多重化部２６に入力する。多重化部２６は、エンコーダ２３からの符号化信号、ＳＩ送出部２４からのＳＩ（Service Information）信号、ＥＣＭ信号、およびＶＢＲ２５からの信号を多重化し、ＳＣＲ２７経由で、伝送系３０のストリーム切り替え部３１，３２に送出する。
【００１９】
ストリーム切り替え部３１，３２は互いに冗長化され、ＭＰＥＧ（Moving Picture Experts Group）符号化方式で圧縮された放送ＴＳ（Transport Stream）信号をシームレスに切り替え、現用系、予備系および検証系の各ＴＳ信号を生成する。これらのＴＳ信号は交換部３３を経由して通信ネットワーク２００（図１）に送出される。
【００２０】
信号処理系２０の制御系６０は、機器制御スケジューラ６１、リアルタイムコントローラ６２、ノード（ＮＯＤＥ）６３、およびＭＳＭ６４を備える。機器制御スケジューラ６１は、放送スケジュールの制御に係わる処理を実行する。リアルタイムコントローラ６２は、実時間制御に係わる処理を実行する。
【００２１】
ノード６３は、例えば、局内ネットワーク５０への接続インタフェース持たない機材（アナログＶＴＲなど）に接続され、局内ネットワーク５０へのインタフェース機能を提供する。これにより旧式の機材なども放送局設備の制御下に置くことができる。必要に応じてノード６３は複数設けられても良い。ＭＳＭ６４は、その他の各種制御に係わる処理を担う。  
監視系システム４０は、ＳＥＣＬＯＧＧＥＲ、ＯＡ表示端末４２、マルチモニタ４３、監視卓４４、監視指示端末４５およびアラーム端末４６などの、複数の監視制御用機器を備える。
【００２２】
図３は、図２に示される放送局設備におけるイベントの発生に伴う制御シーケンスの一例を示す図である。図３において、ＶＴＲ１から１０：００にオンエア（ＯＡ）データを出力するメッセージが、放送プログラム送出部９１から機器制御スケジューラ６１に与えられたとする。そうすると機器制御スケジューラ６１はリアルタイムコントローラ６２にＣＤＴメッセージを与える。
【００２３】
これを受けたリアルタイムコントローラ６２はＳＥＣＮＥＴ３電文により、ＶＴＲ−ｓｔａｒｔメッセージ（ＳＴＡＲＴ（ＰＬＡＹ））をＶＴＲ−ＮＯＤＥ９２に通知する。ＶＴＲ９３の機構的なタイムラグを考慮して、ターゲット時刻の３秒前（例えば０９:５９:５７）にＶＴＲ９３をスタートすべき指示をＶＴＲ−ｓｔａｒｔメッセージに含ませても良い。これを受けたＶＴＲ−ＮＯＤＥ９２は、ＶＴＲ９３にＰＬＡＹ指示を与えて映像再生が開始される。
【００２４】
一方、１０:００:００に、クロスポイント（Ｘｐ）切替指示がリアルタイムコントローラ６２からスイッチャ制御ＮＯＤＥ９４に与えられる。これにより、例えば色付きの電文メッセージがログに表示される（自動運行サービス制御）。
【００２５】
スイッチャ制御ＮＯＤＥ９４は、配下のスイッチャ２１にクロスポイント切替指示を与え、これに応じてスイッチャ２１はクロスポイントを切り替える（自動運行制御）。またスイッチャ２１は、自らのクロスポイントの設定状態（Ｘｐ状態）を、タリー信号としてＴＰ９５に通知する（Ｘｐ状態表示切替）。
【００２６】
次に、上記したような放送局設備をコンピュータリソースを用いて仮想化し、仮想環境上でアプリケーションソフトウェアを試験する新規な形態について説明する。以下ではこの種のシステムを仮想試験システム、または仮想試験プラットフォーム（ＶＴＰ：Virtual Test Platform）と称して説明する。
【００２７】
図４は、実施形態に係る仮想試験システムのハードウェア環境の一例を示す図である。図４に示される仮想試験システムは、サーバ５００およびクライアント端末７００を備える。サーバ５００およびクライアント端末７００は、ネットワーク６００を介して互いに通信可能に接続される。クライアント端末７００のモニタ７５に表示される各種の情報に基づいて、ユーザはアプリケーションの試験の過程や結果などの情報を知ることができる。
【００２８】
ネットワーク６００は有線ＬＡＮまたは無線ＬＡＮ（Ｗｉ−Ｆｉ（登録商標）など）、あるいは公衆網を経由するＶＰＮ（Virtual Private Network）などの通信ネットワークであっても良い。要するにサーバ５００およびクライアント端末７００は同じ建物内に在っても、離れた位置に在っても良い。なおクライアント端末７００は、ノートパソコンやタブレット端末として、あるいはシンクライアント端末として実現されても良い。
【００２９】
図５は、図４に示される仮想試験システムに備わる機能の一例を示す機能ブロック図である。図５において、サーバ５００およびクライアント端末７００は、いずれもＣＰＵおよびメモリを備えるコンピュータである。各コンピュータに搭載されるＯＳ（Operating System）は、例えばＷｉｎｄｏｗｓ（登録商標）、Ｌｉｎｕｘ（登録商標）などの著名なＯＳはもとより、専用に開発されたＯＳであっても良い。特に、クライアント端末７００がタブレット端末であればＡｎｄｒｏｉｄ（登録商標）やｉＯＳ（登録商標）などのＯＳを搭載していてもよい。
【００３０】
サーバ５００は、ＣＰＵ５１、メモリ５２、およびインタフェース部５３を備える。このうちインタフェース部５３はネットワーク６００を介してクライアント端末７００と通信する。  
メモリ５２は、ＲＡＭ（Random Access Memory）やＲＯＭ（Read Only Memory）などの半導体メモリ、ハードディスクドライブ（ＨＤＤ）、ソリッドステートドライブ（ＳＳＤ）などの記憶デバイスである。磁気ディスク以外にも、光磁気ディスクやＣＤ（Compact Disc）、ＤＶＤ（Digital Versatile Disc）、ブルーレイ（登録商標）ディスクなどの光ディスクを利用してもよい。
【００３１】
メモリ５２は、実行環境構築プログラム５２ａ、仮想マシン生成プログラム５２ｂ、シミュレートプログラム５２ｃ、ログ収集プログラム５２ｄ、状態遷移設計データ５２ｅ、および機器モデルデータ５２ｆを記憶する。
【００３２】
状態遷移設計データ５２ｅは、イベントドリブン型の機器について、イベントの発生に応じた状態遷移を表す情報である。機器モデルデータ５２ｆは、それぞれの機器の振る舞いを抽象化したモデルを示す情報である。機器の振る舞いを抽象化することで、例えば電源断やケーブル抜けなどの状態をエミュレートすることができる。
【００３３】
ＣＰＵ５１は、実行環境構築機能５１ａ、仮想マシン生成機能５１ｂ、シミュレート機能５１ｃ、およびログ収集機能５１ｄを備える。  
実行環境構築機能５１ａは、実行環境構築プログラム５２ａに記述された命令をＣＰＵ５１が解釈し、実行することで実現される処理機能である。実行環境構築機能５１ａは、サーバ５００に、仮想化された共通の実行環境を構築する。
【００３４】
仮想マシン生成機能５１ｂは、仮想マシン生成プログラム５２ｂに記述された命令をＣＰＵ５１が解釈し、実行することで実現される処理機能である。仮想マシン生成機能５１ｂは、図２に示される放送局設備に含まれる機器をそれぞれ仮想化し、仮想マシンを生成する。それぞれの仮想マシンは、アプリケーションを搭載された機器を模倣するもので、仮想実行環境において機能するオブジェクトである。
【００３５】
なお、放送局設備における各機器のプラットフォームは普通、統一されていない。つまりｘ８６アーキテクチャ、ｘ６４アーキテクチャをベースとする機器もあれば、ＰＰＣ（ＰｏｗｅｒＰＣ（登録商標））アーキテクチャで構成される機器、あるいはまったく別のアーキテクチャに基づく機器もある。アーキテクチャの差異は、ＣＰＵの違いによるエンディアン（バイトオーダー）の違い、アプリケーション及びＯＳの違い、デバイスにおけるデータ型（長さとアライメント）の違い、システムコールの違いなどあらゆる層（レイヤ）に及ぶ。このような機器間の差異は、多種多様な機器を備える放送局設備において特に著しい。
【００３６】
当然ながら、アプリケーションは組み込み先の機器のプラットフォーム向けに開発されるので、仮想実行空間上で複数機器の仮想マシンを動作させるには、プラットフォームの差異を解決する必要がある。そこで実施形態では、異なるプラットフォームの機器が混在するケースにおいて、仮想マシン生成機能５１ｂは、プラットフォームの差異に基づくアプリケーションに固有の仕様を仮想実行環境に対して隠蔽して、仮想マシンを生成する。
【００３７】
また、仮想マシン生成機能５１ｂは、メモリ５２に記憶された状態遷移設計データ５２ｅに基づいて、イベントドリブン型の機器を仮想化した仮想マシンを生成する。あるいは、仮想マシン生成機能５１ｂは、メモリ５２に記憶された機器モデルデータ５２ｆに基づいて、それぞれの仮想マシンを生成する。
【００３８】
あるいは、仮想マシン生成機能５１ｂは、与えられたメッセージに対する応答を登録して仮想マシンを生成する。いわば、仮想マシンのひな型にメッセージと応答との関係をシナリオとして登録することで、アプリケーションが未開発の機器をも仮想化することができる。つまり、メッセージに対するアプリケーションの実行の結果としての応答ではなく、メッセージと応答との関係を単純にテーブル化しておくことで、簡単な機能についてはその動作を模倣することができる。これにより、たとえアプリケーションが未開発であっても、機器を模倣することが可能になる。
【００３９】
シミュレート機能５１ｃは、シミュレートプログラム５２ｃに記述された命令をＣＰＵ５１が解釈し、実行することで実現される処理機能である。シミュレート機能５１ｃは、実行環境構築機能５１ａにより構築された仮想実行環境において、上記仮想マシンの協調動作を模倣するシミュレーションを実行する。
【００４０】
ログ収集機能５１ｄは、ログ収集プログラム５２ｄに記述された命令をＣＰＵ５１が解釈し、実行することで実現される処理機能である。ログ収集機能５１ｄは、上記シミュレーションの過程で発生するログデータを収集する。それぞれのログデータには、仮想実行環境におけるタイムスタンプが付与される。それぞれの仮想マシンは仮想実行環境における共通時刻を基準として機能するので、異なる仮想マシンで発生したログを時間軸上で統一的に管理することが可能になる。
【００４１】
クライアント端末７００は、ＣＰＵ７１、メモリ７２、インタフェース部７３、操作部７４、およびモニタ７５を備える。このうちインタフェース部７３はネットワーク６００を介してサーバ５００と通信する。操作部７４およびモニタ７５はマウス、キーボードあるいはタッチパネルなどの操作手段であり、ＧＵＩ（Graphical User Interface）などのユーザインタフェースを提供する。
【００４２】
メモリ７２は、半導体メモリ、ＨＤＤ、ＳＳＤ、光ディスク、光磁気ディスクなどの記憶デバイスである。メモリ７２は、シミュレーション制御プログラム７２ａ、ログ変換プログラム７２ｂ、およびログ出力プログラム７２ｃを記憶する。
【００４３】
ＣＰＵ７１は、シミュレーション制御機能７１ａ、ログ変換機能７１ｂ、およびログ出力機能７１ｃを備える。  
シミュレーション制御機能７１ａは、シミュレーション制御プログラム７２ａに記述された命令をＣＰＵ７１が解釈し、実行することで実現される処理機能である。シミュレーション制御機能７１ａは、仮想マシンに搭載されたアプリケーションを、シミュレート機能５１ｃにより実行されたシミュレーションに基づいて評価する手段を提供する。評価者が人間であれば、シミュレーションの進行する様子や結果をモニタ７５に表示することで、評価者はアプリケーションの挙動や不具合を評価することができる。あるいは、シミュレーションの結果に基づいてアプリケーションを自動的に評価するツール（評価モジュール）を用意し、そのツールにシミュレーションの結果を渡す（リダイレクト）ようにしても良い。
【００４４】
ログ変換機能７１ｂは、ログ変換プログラム７２ｂに記述された命令をＣＰＵ７１が解釈し、実行することで実現される処理機能である。ログ変換機能７１ｂは、収集されたログデータの可読性を変換してログ出力機能に渡す。つまりログデータは、バイナリ表現などの人間には理解することの困難な形式で記述されることが多いので、ログ変換機能７１ｂは、収集されたログデータを人間の理解しやすい形式（デシマル値による表現、テキストによる表現など）に翻訳する。
【００４５】
ログ出力機能７１ｃは、ログ出力プログラム７２ｃに記述された命令をＣＰＵ７１が解釈し、実行することで実現される処理機能である。ログ出力機能７１ｃは、収集されたログデータを、仮想実行環境におけるタイムスタンプと関連付けて出力する。
【００４６】
図６は、仮想実行環境における仮想マシンの一例を示す図である。サーバ５００は、仮想マシンとしての機器制御スケジューラＶ１、リアルタイムコントローラＶ２、操作卓制御装置Ｖ３、マスタースイッチャＶ４、ＮＴＰサーバＶ５、および仮想試験サーバＶ６を備える。仮想試験サーバＶ６は、ログ収集サーバＶ７、仮想制御装置Ｖ８、および放送時刻コントローラＶ９を備える。これらはいずれもサーバ５００のリソースを利用する仮想的なオブジェクトである。
【００４７】
クライアント端末７００は、仮想マシンとしての手動送出制御部Ｖ１０、機器監視部Ｖ１１、送出サービススケジューラＶ１２、電文ロガーＶ１３、および仮想試験操作部Ｖ１４を備える。仮想試験操作部Ｖ１４は、ログ表示／検索部Ｖ１５、ＶＭ（VirtualMachine：仮想マシン）操作部Ｖ１６、およびエミュレータ操作部Ｖ１７を備える。これらはいずれもクライアント端末７００のリソースを利用する仮想的なオブジェクトである。
【００４８】
サーバ５００およびクライアント端末７００は、２種類の通信インタフェースを介して接続される。すなわちイーサネット（登録商標）をベースとする汎用ＬＡＮ６０１と、制御専用ネットワーク６０２である。
【００４９】
汎用ＬＡＮ６０１の用途は主に画像データや音声データの伝送であり、ＴＣＰ／ＩＰなどの汎用プロトコルを用いることができる。制御専用ネットワーク６０２はリアルタイム性を確保可能なネットワークで、主に機器間で電文を授受するために用いられる。この種のネットワークのトポロジはトークンリング型が代表的であり、例えばＳＥＣＮＥＴ３として知られるネットワークを挙げることができる。
【００５０】
図６と図２との比較において、機器制御スケジューラＶ１は、機器制御スケジューラ６１に対応する。リアルタイムコントローラＶ２は、リアルタイムコントローラ６２に対応する。操作卓制御装置Ｖ３は、監視系システム４０に対応する。マスタースイッチャＶ４は、スイッチャ２１に対応する。このほかＮＴＰサーバＶ５、仮想試験サーバＶ６、ログ収集サーバＶ７、仮想制御装置Ｖ８、および放送時刻コントローラＶ９も、放送局設備に備わるいずれかの機器に対応付けることが可能である。
【００５１】
また、機器監視部Ｖ１１は、監視系システム４０内に設けられる監視卓（図示せず）や監視指示端末に対応する。このほか手動送出制御部Ｖ１０、送出サービススケジューラＶ１２、電文ロガーＶ１３、仮想試験操作部Ｖ１４、ログ表示／検索部Ｖ１５、ＶＭ操作部Ｖ１６、エミュレータ操作部Ｖ１７も、放送局設備に備わるいずれかの機器に対応付けることが可能である。次に、上記構成における作用を説明する。
【００５２】
図７は、仮想試験システムの実行環境の一例を示すモデル図である。実施形態において、サーバ５００上に仮想試験サーバＶ６、仮想マシン実行環境Ｖ２０、およびサーバアプリケーションＶ２１が生成される。
【００５３】
仮想試験サーバＶ６は、ログ収集サーバＶ７、放送時刻コントローラＶ９、仮想汎用機器Ｖ２２、およびログデータベース（ＬｏｇＤＢ）Ｖ２３を備える。仮想汎用機器Ｖ２２は、メッセージと応答との対応を登録することで、あらゆる機器をエミュレートした仮想マシンである。ログデータベースＶ２３は、シミュレーションの過程で発生するログデータを記録するデータベース（ログデータベース１７）を仮想化したオブジェクトである。
【００５４】
仮想マシン実行環境Ｖ２０は、複数の仮想マシンＶＭ１およびＶＭ２を生成可能な環境として生成される。仮想マシンＶＭ１は機器アプリケーションＡＰ１を搭載し、仮想マシンＶＭ２は機器アプリケーションＡＰ２を搭載する。また、サーバアプリケーションＶ２１は、サーバ５００上に仮想的に生成される。
【００５５】
ここで、図７に示されるように、機器アプリケーションＡＰ１はＰＰＣ向け、機器アプリケーションＡＰ２はｘ８６向け、サーバアプリケーションＶ２１はｘ６４向けにそれぞれ開発されたソフトウェアであるケースを考える。これは搭載される相手先の機器のアーキテクチャを反映するもので、各アプリケーションの仕様が異なると、共通の仮想実行環境下で複数の仮想マシンを動作させることはできない。
【００５６】
そこで実施形態では、仮想マシンＶＭ１にＶＴＰ（Virtual Test Platform）インフラ１を実装し、仮想マシンＶＭ２にＶＴＰインフラ２を実装することで、各機器アプリケーションＡＰ１、ＡＰ２に固有の仕様を、仮想実行環境に対して隠蔽するようにした。同様に、サーバアプリケーションＶ２１にもＶＴＰインフラ３を実装することで、サーバアプリケーションＶ２１に固有の仕様を仮想実行環境に対して隠蔽するようにした。なお仮想マシンＶＭ１、ＶＭ２に予め用意されたＶＭライブラリ４を実装して開発を省力化することも可能である。
【００５７】
このような構成により、異なるプラットフォーム向けに開発された個々の機器アプリケーションを共通の仮想実行環境下で動作させることができ、各仮想マシンの相互作用をシミュレートすることが可能になる。
【００５８】
図８は、実施形態に係る仮想マシンのレイヤ構成の一例を示す模式図である。図８において、機器制御スケジューラＶ１、リアルタイムコントローラＶ２、マスタースイッチャＶ４、ログ収集サーバＶ７、およびログ表示／検索部Ｖ１５は、Ｌｉｎｕｘ（登録商標）やＷｉｎｄｏｗｓ（登録商標）、あるいはその他のＯＳをベースとする仮想マシンである。なおこのような階層形態は一例である。
【００５９】
機器制御スケジューラＶ１、リアルタイムコントローラＶ２、およびマスタースイッチャＶ４はＬｉｎｕｘ（登録商標）などのＯＳ上に、低レベルから順にＳＥＣＮＥＴ３用のドライバ、ログ出力ライブラリを備え、最上位レベルに専用のアプリケーション（ＡＰＬ）が載っている。また、ログ出力ライブラリが低位から中位階層にわたって実装される。
【００６０】
また、リアルタイムコントローラＶ２はＶ同期に対応する仮想ドライバを備え、マスタースイッチャＶ４は、ＳＩＯ、ＰＩＯ、およびＶ同期に対応可能な仮想ドライバを備える。なおＶ同期とはＳＥＣＮＥＴ３におけるリアルタイム同期機能である。
【００６１】
ログ収集サーバＶ７は、最下層にＬｉｎｕｘ（登録商標）またはＷｉｎｄｏｗｓ（登録商標）などのＯＳ層を備える。そして、サーバアプリケーションとＤＢコネクタ層とが実装されている。さらに、ログ表示／検索部Ｖ１５においても、ログ収集サーバＶ７と同様の構成となっている。
【００６２】
各仮想マシン間の通信は最下層レイヤを介して実施される。イーサネット（登録商標）による通信環境は全ての仮想マシン間に形成されるが、ＳＥＣＮＥＴ３による通信環境は、例えば機器制御スケジューラＶ１、リアルタイムコントローラＶ２、およびマスタースイッチャＶ４の間にだけ形成するようにしても良い。
【００６３】
図９は、機器側におけるログ転送機能の一例を説明するための図である。例えば図８に示されるマスタースイッチャＶ４を例に採り説明する。ログデータが発生すると、ログ出力ライブラリ（Ｌｉｂ）７はログデータをログ入出力部７ｂに置き、ログ出力関数７ａが生成するタイミングでログデータを読み出す。読み出しのタイミングは例えば設定ファイル８に予め記述される。このほか各種のログ出力パラメータを設定ファイル８に記述することが可能である。ログ出力パラメータは機器ごとに個別に設定可能である。ログ入出力部７ｂから読み出されたログデータはログファイル９にされるとともに、ログ転送部７ｃ経由でログ収集サーバＶ７に、例えば非同期で転送される。転送のプロトコルには例えばＴＣＰ（Transmission Control Protocol）を用いることができる。さらに、ログファイル９はログ履歴として蓄積される。
【００６４】
図１０は、ログ収集サーバＶ７側におけるログ収集機能の一例を説明するための図である。ログ収集サーバＶ７のログ収集サーバアプリケーション１８は、ログ検索取り出し部１８ａ、ログ表示コネクタ１８ｂ、ログ格納部１８ｃ、およびログ受信部１８ｄを備える。図１０において、ログ転送部７ｃ（図９）から送信されたログデータはログ受信部１８ｄにより、例えば非同期で受信されてログ格納部１８ｃに渡される。ログ格納部１８ｃは渡されたログデータをＤＢコネクタ経由でログＤＢに格納する（収集ログデータの格納）。また、ログデータの取り出し指示／結果の転送要求がログ表示／検索部Ｖ１５から与えられると、ログ表示コネクタ１８ｂは、取り出し指示／結果の転送要求をログ検索取り出し部１８ａに渡す。ログ検索取り出し部１８ａは、ＤＢコネクタ経由でログＤＢを検索して、取り出し指示／結果の転送要求で指示されたログデータを取り出す。この取り出されたログデータはログ表示コネクタ１８ｂ経由で要求元のログ表示／検索部Ｖ１５に返送される。
【００６５】
図１１は、クライアント端末７００のモニタ７５に表示されるＧＵＩウインドウの一例を示す図である。なお図１１に示されるウインドウは、放送局設備のＯＡ表示端末４２（図２）、あるいはタッチパネルなどのユーザインタフェースに表示されても良い。
【００６６】
図１１のウインドウは、例えば四角いアイコンで示される複数のクリッカブルボタンを備える。図１１のウインドウは、例えば右端に表示されるデバイス操作ボタンがクリック（あるいはタッチ）された場合の表示内容を示す。このウインドウは、機器単体の設定条件を変更するためのウインドウで、ボタンをクリックすることで対応する機器の状態（例えばＯＮ／ＯＦＦ）を設定することができる。
【００６７】
例えば津波に関する表示のＯＮ／ＯＦＦを設定するためのボタン、速報の表示に関するＯＮ／ＯＦＦを設定するためのボタン、あるいは局ロゴの表示に関するＯＮ／ＯＦＦを設定するためのボタンが示される。これらのボタンがクリックされると仮想マシンの挙動にもそのことが反映され、シミュレーションの過程が変化する。
【００６８】
図１２は、図１１のウインドウで設定された機器条件の結果を示すウインドウであり、右端のオンエア状態ボタンがクリックされると表示される。このウインドウは、現状のシステムの状態を視覚的に表示するものである。実際の運用では、図１２のウインドウでシステム全体をチェックしながら必要に応じて図１１のウインドウ戻って条件を変更する、という作業が繰り返されることになる。仮想実行環境下でのシミュレーションにおいても同様の手順を実施することが可能である。
【００６９】
図１３は、クライアント端末７００のモニタ７５に表示されるＧＵＩウインドウの他の例を示す図である。このウインドウは、例えばシナリオグループ、データ種別、送受信種別、送受信データ、繰り返し、間隔、Ｔ．Ｏ、状況、回数、日時、および詳細などを示す欄を備える。シミュレーションのシナリオは予め専用のエディタなどで作成され、クライアント端末７００のメモリ７２などに、例えばＣＳＶ（comma separated value）形式やＸＭＬ（eXtensible Markup Language）形式で記憶される。図１３のウインドウはシナリオ読み込み前の状態を示す。メインシナリオの送受信データの欄に記載される「ｔｅｓｔ」が、シミュレーション用のシナリオであることを示す。
【００７０】
図１４は、クライアント端末７００のモニタ７５に表示されるＧＵＩウインドウの他の例を示す図である。図１３の状態からシナリオが読み込まれると、図１４に示されるように、メインシナリオの日時の欄が埋まり、「ｔｅｓｔ」が送信される。「ｔｅｓｔ」に対する返信データが受信されると、「未実施」のシナリオも次々に実行される。シナリオの数や内容（送受信データにて設定）、起動時間の間隔（ここではｍｓｅｃ）なども事前にシナリオ化することができる。
【００７１】
シナリオをあらかじめ準備することで、どの仮想マシンをどのように動作させるかを、シミュレーションの実行前に予め自由に設定することができる。また、正常な機器動作に必要なシナリオだけでなく、通常はあり得ないシナリオ（疑似シナリオ）も設定可能することが可能である。例えば、敢えてエラーを発生させるようなシナリオに沿ってシミュレーションを実施することで、システムの挙動をより詳しく把握し、これに基づき想定外の事象が発生した場合のシステムの安定性を高めることも可能になる。
【００７２】
図１５は、ログデータの一例を示す図である。シミュレーションの途中で発生するログデータは、例えばシステム時刻、放送時刻、機器名、ソースＩＤ、送信元ＩＤ、宛先ＩＤ、および機器名の、複数の属性を含む。メッセージデータはログデータの内容に相当する。図１５には４つのログデータが示される。このうちメッセージデータは１６進数のバイナリ表記で表現されている。これは伝送帯域の削減などの利点を生む一方で、人間には理解しにくい表現である。
【００７３】
そこで実施形態では、ログ変換機能７１ｂ（図５）によりメッセージデータの内容を翻訳したうえでログ出力機能７１ｃに渡すようにしている。つまりログデータに示される情報の可読性を変換するようにしている。この処理には別途用意された送信元ＩＤテーブル（送信元ＩＤの一覧表）、宛先ＩＤテーブル（宛先ＩＤの一覧表）、およびメッセージデータ変換テーブルなどを利用しても良い。このような処理により、進行中のシミュレーションの状態、あるいは終了したシミュレーションの結果をユーザは容易に理解することができる。さらには、予め用意されたログデータをシミュレータに流し込むことで、プラットフォーム間での翻訳も可能になる。
【００７４】
以上説明したようにこの実施形態では、異なるアーキテクチャ向けに開発されたアプリケーションを搭載する機器をエミュレートした仮想マシンを、共通の仮想実行環境上で動作させるため、各アプリケーションの仕様を仮想実行環境に対して隠蔽するようにした。
【００７５】
これにより、異種プラットフォームで動作するソフトウェアを、同じコンピュータ、複数の非専用機器、あるいは汎用コンピュータ上で仮想的に動作させることができる。これにより、放送局設備に適用されるソフトウェアを実機レスで試験することが可能になるので、機器の設置スペースやコストの問題などを解決できる。
【００７６】
既存の技術では、放送局設備を構成する機器を単独でエミュレートできるに過ぎなかった。また、これまでのスタジオシステムの開発は実機依存の傾向が強く、十分な台数の制御対象機器を揃えることや、実環境を構築する場所の確保、建物に付随するシステムの移設などに多大な時間とコストを要していた。自社システムに他社製機器を混在させる要求があると、試験期間中の資産保有のための調達費用もかかる。また、制御対象機器の制御プロセスを実現するソフトウェアにおいても、実機依存型のプロセスで開発されることが一般的であった。特に複数種類の開発を同時並行で実施する場合には開発者の数だけの実機を調達する必要があるので、さらにコストが嵩む。
【００７７】
これに対し実施形態によれば、複数の機器を個別にエミュレートできるにとどまらず、それら複数の仮想マシンによる相互作用を共通のプラットフォーム上でシミュレートすることができる。よってアプリケーションを搭載するハードウェアの完成を待つことなく、アプリケーションの完成度を評価し、試験することが可能になる。従って実機依存型の試験環境から脱却できる。よって放送局設備の実稼働までのリードタイムの短縮や、コスト削減を図ることができる。
【００７８】
また実施形態では、全ての仮想マシンで発生したログデータを一箇所で集中的に収集し、システム全体の時系列（基本は放送時刻）に合わせて配列できるようにした。従来のシステム開発では、アプリケーションが意図した動作をしなかった場合や、意図した動作をした根拠とする為の各サブシステムのアプリケーションの実行履歴（ログデータ）を確認するために、個別にログデータを収集し、検証する必要があった。実施形態によればこのような手間を大幅に削減できるようになる。  
さらに実施形態では、収集されたログデータをユーザにとって可読性の高い表現に翻訳するようにしたので、より、ユーザフレンドリな試験環境を構築することができる。
【００７９】
これらのことから、放送局設備の開発の効率を高めることの可能な仮想試験システム、仮想試験方法およびプログラムを提供することが可能になる。
【００８０】
なお本発明は上記実施の形態に限定されるものではない。例えば、図６のサーバ５００上の仮想試験サーバＶ６やＮＴＰサーバＶ５は、実体を伴うコンピュータであっても良い。また、クライアント端末７００の手動送出制御部Ｖ１０、機器監視部Ｖ１１、および送出サービススケジューラＶ１２を、別体の第３のコンピュータ上で仮想化しても良い。
【００８１】
また、サーバ５００の一部、または全ての機能をクラウドコンピューティングシステム（いわゆるクラウド）にインプリメントすることも可能である。例えば、アプリケーション（ソフトウェア）をサービスとして提供するＳａａＳ（Software as a Service）、アプリケーションを稼働させるための基盤（プラットフォーム）をサービスとして提供するＰａａＳ（Platform as a Service）、あるいは、サーバ装置、中央演算処理装置およびストレージなどのリソースをサービス（パブリッククラウド）として提供するＩａａＳ（Infrastructure as a Service）が、クラウドの形態として知られている。実施形態の仮想試験システムはいずれの形態でも実現し得るが、特にＰａａＳとの親和性が高い。
【００８２】
また、実施形態に係る仮想試験システムを実現するプログラムを、コンピュータ読み取り可能な記録媒体に記録することも可能である。この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行させることにより、仮想試験システムを実現することが可能である。「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものであってもよい。
【００８３】
また「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、フラッシュメモリ等の書き込み可能な不揮発性メモリ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（例えばＤＲＡＭ（Dynamic Random Access Memory））のように、一定時間プログラムを保持しているものも含むものとする。
【００８４】
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
【００８５】
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【００８６】
本発明の実施形態を説明したが、この実施形態は例として提示するものであり、発明の範囲を限定することは意図していない。この新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。この実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００８７】
２，３…ＶＴＰインフラ、４…ＶＭライブラリ、７…ログ出力ライブラリ、７ｂ…ログ入出力部、７ｃ…ログ転送部、１８…ログ収集サーバアプリケーション、１８ａ…ログ検索取り出し部、１８ｂ…ログ表示コネクタ、１８ｃ…ログ格納部、１８ｄ…ログ受信部、５１…ＣＰＵ、５１ａ…実行環境構築機能、５１ｂ…仮想マシン生成機能、５１ｃ…シミュレート機能、５１ｄ…ログ収集機能、５２…メモリ、５２ａ…実行環境構築プログラム、５２ｂ…仮想マシン生成プログラム、５２ｃ…シミュレートプログラム、５２ｄ…ログ収集プログラム、５２ｅ…状態遷移設計データ、５２ｆ…機器モデルデータ、７１…ＣＰＵ、７１ａ…シミュレーション制御機能、７１ｂ…ログ変換機能、７１ｃ…ログ出力機能、７２…メモリ、７２ａ…シミュレーション制御プログラム、７２ｂ…ログ変換プログラム、７２ｃ…ログ出力プログラム、１００…放送局、２００…通信ネットワーク、５００…サーバ、６００…ネットワーク、７００…クライアント端末、ＡＰ１，ＡＰ２…機器アプリケーション、ＶＭ１，ＶＭ２…仮想マシン
【図１】
0006523928.tif 000002
【図２】
0006523928.tif 000003
【図３】
0006523928.tif 000004
【図４】
0006523928.tif 000005
【図５】
0006523928.tif 000006
【図６】
0006523928.tif 000007
【図７】
0006523928.tif 000008
【図８】
0006523928.tif 000009
【図９】
0006523928.tif 000010
【図１０】
0006523928.tif 000011
【図１１】
0006523928.tif 000012
【図１２】
0006523928.tif 000013
【図１３】
0006523928.tif 000014
【図１４】
0006523928.tif 000015
【図１５】
0006523928.tif 000016