(57)【要約】      （修正有）【課題】仮想環境上の分散制御システムに含まれるサブシステムをそれぞれ実現する仮想計算機間でのデータのやり取りを従来に比して簡便に実現する。【解決手段】キュー調停機構３０は、サブシステム毎に形成された各仮想計算機２１〜２４に対応したキュー３１、キューＩＯ制御部３２及びキューバッファ３３を有する。仮想計算機２１〜２４が他の仮想計算機宛のデータを対応するキュー３１へ登録すると、宛先制御部３４は、当該キュー３１に対応するキューＩＯ制御部３２により読み出されたデータファイルを、その宛先となる仮想計算機に対応するキューバッファ３３に書き込む。仮想計算機２１〜２４が受信要求をキュー３１に登録すると、対応するキューＩＯ制御部３２は、対応するキューバッファ３３からデータファイルを読み出しキュー３１に書き込む。受信要求をした仮想計算機２１〜２４は、キュー３１からデータファイルを読み出す。【選択図】図４
2015045906.tif 000002
【特許請求の範囲】
【請求項１】
それぞれに機器が接続された複数のコントローラ及び前記各コントローラを介して前記機器の管理を行う管理装置それぞれに対応した仮想計算機それぞれに対応して設けられたキュー及びデータファイル一時記憶部を有し、前記仮想計算機間で実施されるデータ交換を支援するデータ交換支援手段を有し、
前記データ交換支援手段は、
他の前記コントローラを宛先とするデータの送信要求の旨を示す情報及び前記データファイルが、いずれかの前記キューに登録された場合、当該キューに登録されたデータファイルの宛先となる前記コントローラに対応した前記仮想計算機に対応して設けられた前記データ一時記憶部に、当該キューに登録されたデータファイルを書き込む送信要求処理部と、
データの受信要求の旨を示す情報が、いずれかの前記キューに登録された場合、当該キューに対応した前記仮想計算機に対応して設けられた前記データ一時記憶部に書き込まれているデータファイルを読み出し、当該キューに登録する受信要求処理部と、
を有することを特徴とする動作検証装置。
【請求項２】
前記送信要求処理部は、
前記仮想計算機それぞれに対応して設けられ、前記送信要求の旨を示す情報及び前記データファイルが、対応する前記キューに登録された場合、当該キューに登録されたデータファイルを宛先制御部へ送るファイル送信部と、
前記ファイル送信部から送られてきたデータファイルの宛先となる前記コントローラを特定し、その特定した前記コントローラに対応した前記仮想計算機に対応した前記データ一時記憶部に、当該データファイルを書き込む前記宛先制御部と、
を有することを特徴とする請求項１に記載の動作検証装置。
【請求項３】
前記受信要求処理部は、
前記仮想計算機に対応して設けられた前記キューに前記受信要求の旨を示す情報が登録されたものの前記データ一時記憶部にデータファイルが存在しない場合、受信すべきデータがない旨を示す情報を、当該仮想計算機に対応した前記データ一時記憶部に書き込むこと
を特徴とする請求項１に記載の動作検証装置。
【請求項４】
コンピュータを、それぞれに機器が接続された複数のコントローラ及び前記各コントローラを介して前記機器の管理を行う管理装置それぞれに対応した仮想計算機間で実施されるデータ交換を支援するデータ交換支援手段として機能させ、
前記データ交換支援手段は、
前記送信要求の旨を示す情報及び前記データファイルが、いずれかの前記仮想計算機に対応して設けられたキューに登録された場合、当該キューに登録されたデータファイルの宛先となる前記コントローラに対応した前記仮想計算機に対応して設けられたデータ一時記憶部に、当該キューに登録されたデータファイルを書き込む送信要求処理部と、
前記受信要求の旨を示す情報が、いずれかの前記キューに登録された場合、当該キューに対応した前記仮想計算機に対応して設けられた前記データ一時記憶部に書き込まれているデータファイルを読み出し、当該キューに登録する受信要求処理部と、
を有することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動作検証装置及びプログラム、特にサブシステム間で連携動作するアプリケーションの動作検証に関する。
【背景技術】
【０００２】
ビル管理システムは、ビル内の防犯、空調、照明等の機能毎に独立した複数のサブシステムを組み合わせることで構築する。各サブシステムは、空調、照明等の機器を機種毎に分類してサブシステムコントローラに接続して形成する。システム管理装置は、各サブシステムコントローラをネットワークを介して接続し、各サブシステムコントローラと連携動作しながらビル全体の機能を統合管理する。このように、ビル管理システムは、サブシステムを機能毎に構築して構成する分散制御システムの形態を採る。
【０００３】
ビル内に設置された各機器に所望の動作をさせるためには、所望の動作をさせるためのパラメータ設定等が定義された動作設定情報を設計する必要がある。すなわち、ビル物件に納入するビル管理システムは、その仕様が定まると、実機システムの構築と各機器の動作設定情報の設計が同時並行して行われる。
【０００４】
各機器の動作設定情報の設計は、設定内容に従った機器の動作を確認しながら調整を行うことが望ましいが、実機システムの構築完了を待つことになると動作設定情報の調整完了まで、つまりビル管理システムの完成の長期化を招くことにもなりうるので、仮想計算機上に構築した仮想ハードウェアを利用してテストを行う場合がある。
【０００５】
すなわち、１台の実計算機上にシステム管理装置及び各サブシステムコントローラをそれぞれ動作させる仮想計算機を設定し、システム管理装置の仮想計算機と各サブシステムコントローラの仮想計算機との間でのデータ通信テストや各仮想計算機上での処理テスト等を行う。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００６−２４２４２９号公報
【特許文献２】特許第４２９７２１１号明細書
【特許文献３】特開平１０−２０７５０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、ビル管理システムの仮想環境の構築には、一般的な分散制御システムにおける仮想環境と比較してサブシステム間の連動制御を実現する必要がある。つまり、システム管理装置と各サブシステムコントローラとの間だけでなく、サブシステムコントローラ間で連携動作させる必要がある。
【０００８】
例えば、入退室管理サブシステムと照明サブシステムを連動させて、ある部屋における在室者の最終退出が確認されたら当該部屋の照明を自動消灯するような場合である。この場合、実機システムでは、各サブシステムコントローラは、システム管理装置と各サブシステムコントローラとを接続する単一のネットワークを介して他のサブシステムコントローラとデータ通信を行うことになるが、物理的なネットワークを有していない仮想環境上において、一台の仮想計算機がシステム管理装置に加えて他のサブシステムコントローラの仮想計算機、すなわち複数の仮想計算機との間で相互にデータのやり取りを実現することは困難である。つまり、サブシステムを実現する仮想計算機間でデータのやり取りがある場合、従来においては、仮想環境上で動作設定情報の設計テストを行うことは困難である。
【０００９】
本発明は、仮想環境上の分散制御システムに含まれるサブシステムをそれぞれ実現する仮想計算機間でのデータのやり取りを従来に比して簡便に実現することを目的とする。
【課題を解決するための手段】
【００１０】
本発明に係る動作検証装置は、それぞれに機器が接続された複数のコントローラ及び前記各コントローラを介して前記機器の管理を行う管理装置それぞれに対応した仮想計算機それぞれに対応して設けられたキュー及びデータファイル一時記憶部を有し、前記仮想計算機間で実施されるデータ交換を支援するデータ交換支援手段を有し、前記データ交換支援手段は、前記送信要求の旨を示す情報及び前記データファイルが、いずれかの前記キューに登録された場合、当該キューに登録されたデータファイルの宛先となる前記コントローラに対応した前記仮想計算機に対応して設けられた前記データ一時記憶部に、当該キューに登録されたデータファイルを書き込む送信要求処理部と、前記受信要求の旨を示す情報が、いずれかの前記キューに登録された場合、当該キューに対応した前記仮想計算機に対応して設けられた前記データ一時記憶部に書き込まれているデータファイルを読み出し、当該キューに登録する受信要求処理部と、を有するものである。
【００１１】
また、前記送信要求処理部は、前記仮想計算機それぞれに対応して設けられ、前記送信要求の旨を示す情報及び前記データファイルが、対応する前記キューに登録された場合、当該キューに登録されたデータファイルを宛先制御部へ送るファイル送信部と、前記ファイル送信部から送られてきたデータファイルの宛先となる前記コントローラを特定し、その特定した前記コントローラに対応した前記仮想計算機に対応した前記データ一時記憶部に、当該データファイルを書き込む前記宛先制御部と、を有することを特徴とする。
【００１２】
また、前記受信要求処理部は、前記仮想計算機に対応して設けられた前記キューに前記受信要求の旨を示す情報が登録されたものの前記データ一時記憶部にデータファイルが存在しない場合、受信すべきデータがない旨を示す情報を、当該仮想計算機に対応した前記データ一時記憶部に書き込むものである。
【００１３】
本発明に係るプログラムは、コンピュータを、それぞれに機器が接続された複数のコントローラ及び前記各コントローラを介して前記機器の管理を行う管理装置それぞれに対応した仮想計算機間で実施されるデータ交換を支援するデータ交換支援手段として機能させ、前記データ交換支援手段は、前記送信要求の旨を示す情報及び前記データファイルが、いずれかの前記仮想計算機に対応して設けられたキューに登録された場合、当該キューに登録されたデータファイルの宛先となる前記コントローラに対応した前記仮想計算機に対応して設けられたデータ一時記憶部に、当該キューに登録されたデータファイルを書き込む送信要求処理部と、前記受信要求の旨を示す情報が、いずれかの前記キューに登録された場合、当該キューに対応した前記仮想計算機に対応して設けられた前記データ一時記憶部に書き込まれているデータファイルを読み出し、当該キューに登録する受信要求処理部と、を有するものである。
【発明の効果】
【００１４】
本発明によれば、仮想環境上の分散制御システムに含まれるサブシステムをそれぞれ実現する仮想計算機間でのデータのやり取りを従来に比して簡便に実現することができる。
【図面の簡単な説明】
【００１５】
【図１】動作設定情報の設計テストの対象とされるビル管理システムの全体構成を示す図である。
【図２】本実施の形態における動作検証装置を形成するコンピュータのハードウェア構成図である。
【図３】本実施の形態における動作検証装置の全体構成図である。
【図４】本実施の形態におけるキュー調停機構の内部構成を示す図である。
【図５】本実施の形態における動作検証装置の一部の機能ブロック構成図である。
【図６】本実施の形態における仮想ハードウェアにおける処理を示すフローチャートである。
【図７】本実施の形態におけるキュー調停機構における処理を示すフローチャートである。
【発明を実施するための形態】
【００１６】
以下、図面に基づいて、本発明の好適な実施の形態について説明する。
【００１７】
図１は、動作設定情報の設計テストの対象とされるビル管理システムの全体構成を示す図である。ビル管理システムは、ビル内の防犯、空調、照明等の各機能を発揮する機器１を接続し、機能毎に独立したサブシステムとして管理するサブシステムコントローラ２と、各サブシステムコントローラ２の動作制御を行うことによって各サブシステムコントローラ２を介して機器１の管理を行うシステム管理装置３と、がネットワーク４で接続されて構成される。システム管理装置３と各サブシステムコントローラ２との間の通信には、ＢＡＣｎｅｔ（登録商標）／ＩＰ（Ｂｕｉｌｄｉｎｇ  Ａｕｔｏｍａｔｉｏｎ  ａｎｄ  Ｃｏｎｔｒｏｌ  Ｎｅｔｗｏｒｋｓ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）通信が行われる。なお、本実施の形態では、サブシステムＡコントローラとサブシステムＢコントローラとを総称してサブシステムコントローラ（以下、単に「コントローラ」ともいう）と記載する。
【００１８】
監視端末５は、ビルの運用状況等を監視するために用いられるコンピュータであり、ネットワーク４に接続される。ビル管理者は、監視端末５をネットワーク４経由でシステム管理装置３に接続し、システム管理装置３に蓄積されている実績情報等各種情報をＷｅｂブラウザにより表示されるビル管理画面を通じて参照することで各機器１の状態の把握、設定変更を行う。システム管理装置３と監視端末５との間の通信には、ＨＴＭＬ（ＨｙｐｅｒＴｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）通信が行われる。
【００１９】
各機器１は、サブシステムＡコントローラのように直接接続してもよいし、サブシステムＢコントローラのようにローカル機器コントローラ６を介して間接的に接続してもよい。ローカル機器コントローラ６を介して接続しても、後述する動作検証には影響されない。なお、サブシステムコントローラ２は、機器１とは独自の仕様の通信プロトコルで、またローカル機器コントローラ６とはフィールドバス通信で、それぞれ通信を行うように設計してもよい。また、ローカル機器コントローラ６は、各機器１とシリアル通信で通信を行うように設計してもよい。本実施の形態では、サブシステムコントローラ２と、機器１及びローカル機器コントローラ６と、の間をＩＰパケットによりデータ通信するものとして説明する。
【００２０】
本実施の形態における動作検証装置１０は、図１に示したビル管理システム（実機システム）に適用される動作設定情報の設計テストを行うために用いられる装置である。図２は、本実施の形態における動作検証装置１０を形成するコンピュータのハードウェア構成図である。本実施の形態において動作検証装置１０を形成するコンピュータは、パーソナルコンピュータ（ＰＣ）など従前から存在する汎用的なハードウェア構成で実現できる。すなわち、コンピュータは、図２に示したようにＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、ハードディスクドライブ（ＨＤＤ）１４を接続したＨＤＤコントローラ１５、入力手段として設けられたマウス１６とキーボード１７、及び表示装置として設けられたディスプレイ１８をそれぞれ接続する入出力コントローラ１９、通信手段として設けられたネットワークコントローラ２０を内部バス９に接続して構成される。
【００２１】
図３は、本実施の形態における動作検証装置１０の全体構成図である。動作検証装置１０は、図示しない形成手段により形成された仮想計算機２１〜２４及び仮想機器２５，２６、そしてキュー調停機構３０を有している。仮想計算機２１〜２４はそれぞれ、図１に示した監視端末５、システム管理装置３、サブシステムＡコントローラ２及びサブシステムＢコントローラ２が提供する機能を提供する、動作検証装置１０に仮想的に形成されたコンピュータである。仮想計算機２１〜２４はそれぞれ、監視端末５、システム管理装置３及び各サブシステムコントローラ２のハードウェアが提供する機能を仮想的に実現する仮想ハードウェア機能処理部として仮想ハードウェアを有している。更に、図示しないアプリケーション実行部により実行される、監視端末５、システム管理装置３及び各コントローラ２で動作するアプリケーションを有している。具体的には、監視端末５として動作する仮想計算機２１は、仮想ハードウェア上で実行するＷｅｂブラウザを含む。システム管理装置３として動作する仮想計算機２２は、仮想ハードウェア上で実行するシステム管理用のアプリケーションを含む。サブシステムＡコントローラ２として動作する仮想計算機２３は、仮想ハードウェア上で実行するサブシステムＡ用のアプリケーションを含む。サブシステムＢコントローラ２として動作する仮想計算機２４は、仮想ハードウェア上で実行するサブシステムＢ用のアプリケーションを含む。また、仮想計算機２３，２４は、動作設定情報の設定内容に従い仮想機器２５，２６の動作制御を行う。仮想機器２５，２６は、それぞれ仮想計算機２３，２４に接続された機器１をソフトウェアにより仮想的に実現する。システム管理者等は、仮想機器２５，２６の動作を確認しながら動作設定情報に設定するパラメータの調整を行うなどして動作設定情報の設計テストを行う。
【００２２】
キュー調停機構３０は、データ交換支援手段として設けられ、仮想計算機２１〜２４間で実施されるデータ交換を支援する。そして、送信要求の旨を示す情報及びデータファイルが、仮想計算機２１〜２４それぞれに対応させて設けられたいずれかのキューに登録された場合、当該キューに登録されたデータファイルの宛先となるコントローラ２に対応した仮想計算機に対応したキューバッファに、当該キューに登録されたデータファイルを書き込む送信要求処理部として機能する。更に、受信要求の旨を示す情報が、いずれかのキュー３１に登録された場合、当該キューに対応した仮想計算機に対応したキューバッファに書き込まれているデータファイルを読み出し、当該キューに登録する受信要求処理部として機能する。
【００２３】
図４は、本実施の形態におけるキュー調停機構３０の内部構成を示す図である。図４には、図３に示した仮想計算機２１〜２４それぞれに対応させて設けられたキュー３１、キューＩＯ制御部３２及びデータファイル一時記憶部として設けられたキューバッファ３３と、宛先制御部３４とが示されている。キュー３１には、対応する仮想計算機２１〜２４との間でやり取りされるデータファイルが登録される。キューバッファ３３にも仮想計算機２１〜２４との間でやり取りされるデータファイルが登録されるが、各キュー３１には仮想計算機２１〜２４又はキューＩＯ制御部３２により、各キューバッファ３３には宛先制御部３４のみにより、データファイルが書き込まれる。
【００２４】
動作検証装置１０における各構成要素２１〜２６，３０は、動作検証装置１０を形成するコンピュータと、コンピュータに搭載されたＣＰＵ１１で動作するプログラムとの協調動作により実現される。但し、キュー３１及びキューバッファ３３は、動作検証装置１０に搭載されたＨＤＤ１４にて実現される。あるいは、ＲＡＭ１３又は外部にある記憶手段をネットワーク４経由で利用してもよい。
【００２５】
図５は、本実施の形態における動作検証装置１０の一部の機能ブロック構成図である。図５においては、図３に示したサブシステムＡコントローラ２及びサブシステムＢコントローラ２に対応する構成を代表させて示している。つまり、図５において、アプリケーション実行部４０及び仮想ハードウェア６０は、それぞれ仮想計算機２３に含まれるサブシステムＡコントローラアプリケーションを実行するアプリケーション実行部及びサブシステムＡコントローラ仮想ハードウェアに対応する。一方、アプリケーション実行部５０及び仮想ハードウェア７０は、それぞれ仮想計算機２４に含まれるサブシステムＢコントローラアプリケーションを実行するアプリケーション実行部及びサブシステムＢコントローラ仮想ハードウェアに対応する。また、キュー調停機構８０は、キュー調停機構３０に対応する。また、キュー８１及びキューバッファ８３は仮想計算機２３に対応して設けられたキュー３１及びキューバッファ３３に、キュー８７及びキューバッファ８５は仮想計算機２４に対応して設けられたキュー３１及びキューバッファ３３に、それぞれ対応している。基本的には、各アプリケーション実行部４０，５０、各仮想ハードウェア６０，７０、仮想計算機２３，２４にそれぞれ対応して設けられるキュー８１，８７、キューＩＯ制御部８２，８６及びキューバッファ８３，８５は、同様の構成であるが、説明の便宜上、図面を適宜省略している場合もある。なお、本実施の形態の説明に用いない構成要素については、図５から省略している。
【００２６】
アプリケーション実行部４０は、要求送信部４１、パケット送信部４２及びパケット受信部４３を有している。なお、ネットワーク４を介してシステム管理装置３や他のコントローラ２とデータの交換を行う場合、本実施の形態では、ＢＡＣｎｅｔ／ＩＰでデータ通信を行うので、データをＩＰパケット化してからデータの交換を行うようにしている。要求送信部４１は、機器１から収集したデータを送信するときなどにデータの送信要求を送信する。また、システム管理装置３又は他のコントローラ２からデータを取得するときなどにデータの受信要求を送信する。アプリケーション実行部５０もアプリケーション実行部４０と同様に機能する、要求送信部５１、パケット送信部５２及びパケット受信部５３を有している。
【００２７】
なお、アプリケーションは、仮想環境上で動作しようと実機システムで動作しようと、その違いを意識することなく動作するが、以下の説明では、便宜的に実機システムではなく仮想環境上で動作していることを明示して説明する。すなわち、アプリケーションは、仮想計算機宛にデータを送信するわけではなく実機宛にデータを送信する。例えば、サブシステムＡコントローラ２におけるアプリケーションは、サブシステムＢコントローラ２へデータを送信しようとするが、以下の説明では、便宜上、サブシステムＢコントローラ２に対応する仮想環境上の仮想計算機２４へデータを送信すると説明する。
【００２８】
仮想ハードウェア６０は、要求受付部６１、パケット受信部６２、ファイル化処理部６３、キュー登録部６４、キュー読出部６５、パケット化処理部６６、パケット送信部６７及び制御部６８を有している。要求受付部６１は、アプリケーション実行部４０から送られてくる要求を受け付ける。パケット受信部６２は、アプリケーション実行部４０から送られてきた要求がデータの送信要求のときにアプリケーション実行部４０から送られてくるパケット化されたデータを受信する。ファイル化処理部６３は、パケット受信部６２により受信されたパケット形式のデータを、キュー８１に登録可能なファイル形式に変換する。キュー登録部６４は、送信要求登録部として設けられ、データの送信要求の旨を示す情報（ライト要求）及びファイル化処理部６３による変換により生成されたデータファイルを、データの送信要求先として指定された仮想計算機に対応して形成されたキュー８１に登録する。キュー登録部６４は、更に受信要求登録部として設けられ、アプリケーション実行部４０により送信されたデータの受信要求に応じて当該受信要求の旨を示す情報（リード要求）を、データの受信要求先として指定された仮想計算機に対応して形成されたキュー８１に登録する。キュー読出部６５、パケット化処理部６６及びパケット送信部６７は、データ送信部として設けられている。このうち、キュー読出部６５は、受信要求登録部として機能するキュー登録部６４による登録に応じて、キューＩＯ制御部８２により当該キュー８１に登録されたデータファイルを読み出す。パケット化処理部６６は、読み出したデータファイルを、アプリケーション実行部４０で実行されるアプリケーションで用いるパケット形式に変換する。パケット送信部６７は、パケット形式に変換されたデータをアプリケーション実行部４０へ送信する。制御部６８は、他の構成要素６１〜６７と連携動作して仮想ハードウェア６０としての機能を実現する。仮想ハードウェア７０も仮想ハードウェア６０と同様に機能する、要求受付部７１、パケット受信部７２、ファイル化処理部７３、キュー登録部７４、キュー読出部７５、パケット化処理部７６、パケット送信部７７及び制御部７８を有している。
【００２９】
キュー調停機構８０は、仮想計算機２３に対応して設けられたキュー８１、キューＩＯ制御部８２及びキューバッファ８３と、仮想計算機２４に対応して設けられたキュー８７、キューＩＯ制御部８６及びキューバッファ８５と、宛先制御部８４と、制御部８８と、を有している。キューＩＯ制御部８２は、要求受付部８２１、ライト要求処理部８２２及びリード要求処理部８２３を有し、キュー８１に対する入出力の制御を行う。要求受付部８２１は、仮想ハードウェア６０によりキュー８１に登録された要求（ライト要求又はリード要求）を読み出し受け付ける。また、ライト要求の場合は送信対象のデータファイルを合わせて読み出す。ライト要求処理部８２２は、ファイル送信部として設けられ、宛先制御部８４と共に送信要求処理部としての機能を発揮する。すなわち、ライト要求処理部８２２は、ライト要求及びデータファイルがキュー８１に登録された場合、要求受付部８２１により読み出されたデータファイルを取得すると、そのデータファイルを宛先制御部８４へ送る。
【００３０】
リード要求処理部８２３は、受信要求処理部としての機能を発揮し、リード要求がキュー８１に登録された場合、当該キュー８１に対応した仮想計算機２３に対応したキューバッファ８３に書き込まれているデータファイルを読み出し、当該キュー８１に登録する。
【００３１】
宛先制御部８４は、ライト要求処理部８２２，８６２から送られてきたデータファイルの宛先となるコントローラ２を特定し、その特定したコントローラ２に対応した仮想計算機に対応したキューバッファに当該データファイルを書き込む。宛先制御部８４は、ライト要求処理部８２２，８６２から送られてきたデータファイルを受信する読出データ受信部８４１、受信したデータファイルの宛先を特定する宛先特定部８４２及び特定した宛先に対応するキューバッファにデータファイルを書き込むキューバッファ書込部８４３を有している。
【００３２】
本実施の形態における動作検証装置上で動作するプログラムは、通信手段により提供することはもちろん、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭ等のコンピュータ読み取り可能な記録媒体に格納して提供することも可能である。通信手段や記録媒体から提供されたプログラムはコンピュータにインストールされ、コンピュータのＣＰＵ１１がプログラムを順次実行することで各種処理が実現される。
【００３３】
図６は、本実施の形態における仮想ハードウェアにおける処理を示すフローチャートであり、図７は、本実施の形態におけるキュー調停機構における処理を示すフローチャートである。以下、各フローチャート及び図５を用いて、本実施の形態における動作について説明する。本実施の形態では、サブシステムＡコントローラからサブシステムＢコントローラへデータを送信する場合、より詳細には、サブシステムＡコントローラで動作するアプリケーションがサブシステムＢコントローラを宛先としてパケット形式にてデータを送信する場合を例にして説明する。仮想環境上では、仮想計算機２３で動作するアプリケーションから仮想計算機２４で動作するアプリケーションへデータを送信する場合に相当する。
【００３４】
仮想機器２５からデータを受け取るなどして仮想計算機２４におけるアプリケーションへ送信すべきデータが存在すると、アプリケーション実行部４０における要求送信部４１は、データの送信要求を仮想ハードウェア６０へ送信する。また、パケット送信部４２は、送信対象のデータをＩＰパケット化して仮想ハードウェア６０へ送信する。
【００３５】
図６において、仮想ハードウェア６０における要求受付部６１がアプリケーション実行部４０から送られてきた要求を受け付けると（ステップ１０１）、その受け付けた要求が送信要求の場合（ステップ１０２）、パケット受信部６２がアプリケーション実行部４０から送られてきたパケットを受信する（ステップ１０３）。続いて、ファイル化処理部６３は、パケット受信部６２により受信されたパケット形式のデータを、キュー８１に登録可能なファイル形式に変換する（ステップ１０４）。キュー登録部６４は、データの送信要求の旨を示す情報（ライト要求）及びファイル化処理部６３によりファイル化されたデータをキュー８１に登録する（ステップ１０５）。
【００３６】
図７において、キュー８１に書き込みがあると、要求受付部８２１は、キュー８１に登録された要求を読み出すことで受け付ける（ステップ２０１）。受け付けた要求がライト要求の場合（ステップ２０２）、続けて、要求受付部８２１は、データファイルを読み出す（ステップ２０３）。ライト要求処理部８２２は、要求受付部８２１により読み出されたデータファイルを取得すると、そのデータファイルを宛先制御部８４へ送る。
【００３７】
なお、データの送信要求の場合、ライト要求に続けてデータファイルがキュー８１に登録されているように説明したが、ライト要求をデータファイルと別個に取り扱うのではなく、データファイルが書き込まれていたことによってライト要求と判断してもよい。換言すると、データファイルをライト要求として取り扱うようにしてもよい。
【００３８】
宛先制御部８４における読出データ受信部８４１がキューＩＯ制御部８２から送られてきたデータファイルを受信すると、宛先特定部８４２は、受信したデータファイルのヘッダ等に設定されている情報から宛先を特定する（ステップ２０４）。この例では、サブシステムコントローラＢが設定されている。キューバッファ書込部８４３は、特定された宛先に対応して設けられたキューバッファ８５にデータファイルを書き込む（ステップ２０５）。
【００３９】
一方、サブシステムコントローラＢに対応して形成された仮想計算機２４のアプリケーション実行部５０における要求送信部５１は、データの受信要求を仮想ハードウェア７０へ送信する。これは、システム管理装置３や他のコントローラ２からデータが送信されてこないか、定期的に問い合わせるためである。
【００４０】
図６において、仮想ハードウェア７０における要求受付部７１がアプリケーション実行部５０から送られてきた要求を受け付けると（ステップ１０１）、その受け付けた要求が受信要求の場合（ステップ１０２）、キュー登録部７４は、データの受信要求の旨を示す情報（リード要求）をキュー８７に登録する（ステップ１０６）。
【００４１】
図７において、キュー８７に書き込みがあると、要求受付部８６１は、キュー８７に登録された要求を読み出すことで受け付ける（ステップ２０１）。受け付けた要求がリード要求の場合（ステップ２０２）、続けて、リード要求処理部８６３は、キューバッファ８５からデータファイルが登録されていることにより読み出すことができると（ステップ２０６でＹ）、読み出したデータファイルをキュー８７に登録する（ステップ２０７）。
【００４２】
ここで、リード要求処理部８６３は、キューバッファ８５からデータファイルを一定時間内、例えば３０秒以内に読み出せなかった場合（ステップ２０６でＮ）、リード要求処理部８６３は、受信すべきデータがない旨を示す情報をキュー８７に登録して利用要求に応じた処理を終了してもよい（ステップ２０８）。
【００４３】
図６において、リード要求をキュー８７に登録した後、キューＩＯ制御部８６によりデータファイルが一定時間内にキュー８７に書き込まれることにより、キュー読出部７５がキュー８７からデータファイルを読み出すことができた場合（ステップ１０７でＹ）、パケット化処理部７６は、読み出されたデータファイルをパケット形式に変換する（ステップ１０８）。そして、パケット送信部７７は、パケット化処理部７６によりパケット化されたデータをアプリケーション実行部５０へ送信する（ステップ１０９）。これにより、データ受信要求を送信していたアプリケーション実行部５０は、パケット受信部５３により、仮想ハードウェア７０から送信されたパケットを受信する
【００４４】
一方、一定時間内にキュー８７にデータファイルが書き込まれなった場合、あるいは受信すべきデータがない旨を示す情報がキュー８７に書き込まれていたことによりデータファイルが取得できなかった場合（ステップ１０７でＮ）、パケット送信部７７は、受信すべきデータがない旨を示す情報を含むパケットをアプリケーション実行部５０へ送信することでデータがない旨を通知する（ステップ１１０）。この通知を受けたアプリケーション実行部５０で動作するアプリケーションは、データ受信要求を再度送信するなど、アプリケーションの仕様に応じた処理に移行する。
【００４５】
本実施の形態においては、以上のようにして、サブシステムＡコントローラ２は、サブシステムＢコントローラ２へデータを送信することができる。すなわち、本実施の形態によれば、ビル管理システムにおいてコントローラ２間で連携した動作を仮想環境上で実現することができるので、コントローラ２間の連携動作に係る動作確認を仮想環境上でも簡便に行うことができる。
【００４６】
本実施の形態が利用したように、仮想計算機間のデータのやり取りにファイル入出力インタフェースであるキューを利用することが考えられるが、キューを単純に利用して相互のデータのやり取りを行おうとしても、複数先からキューへの書き込みや読み出しが発生すると、キューを利用するために様々な制限や条件が必要となり仮想環境の構築が面倒である。本実施の形態においては、キュー３１及びキューバッファ３３を仮想計算機それぞれに対応させて設けることで、仮想計算機間でのデータのやり取りを簡便に実現できるようにした。
【００４７】
なお、本実施の形態は、ビル監視システムにおける監視対象の各機器１に対する動作設定情報の設計テストに適用した場合を例にしたが、ビル監視システムに限定する必要はなく、コントローラ２間でデータのやり取りが発生しうるシステムに適用可能である。また、動作設定情報の設計テスト以外にも利用してもよい。
【符号の説明】
【００４８】
１  機器、２  サブシステムコントローラ、３  システム管理装置、４  ネットワーク、５  監視端末、６  ローカル機器コントローラ、９  内部バス、１０  動作検証装置、１１  ＣＰＵ、１２  ＲＯＭ、１３  ＲＡＭ、１４  ハードディスクドライブ（ＨＤＤ）、１５  ＨＤＤコントローラ、１６  マウス、１７  キーボード、１８  ディスプレイ、１９  入出力コントローラ、２０  ネットワークコントローラ、２１，２２，２３，２４  仮想計算機、２５，２６  仮想機器、３０，８０  キュー調停機構、３１，８１，８７  キュー、３２，８２，８６  キューＩＯ制御部、３３，８３，８５  キューバッファ、３４，８４  宛先制御部、４０，５０  アプリケーション実行部、４１，５１  要求送信部、４２，５２  パケット送信部、４３，５３  パケット受信部、６０，７０  仮想ハードウェア、６１，７１，８２１，８６１  要求受付部、６２，７２  パケット受信部、６３，７３  ファイル化処理部、６４，７４  キュー登録部、６５，７５  キュー読出部、６６，７６  パケット化処理部、６７，７７  パケット送信部、６８，７８  制御部、８２２，８６２  ライト要求処理部、８２３，８６３  リード要求処理部、８４１  読出データ受信部、８４２  宛先特定部、８４３  キューバッファ書込部。
【図１】
2015045906.tif 000003
【図２】
2015045906.tif 000004
【図３】
2015045906.tif 000005
【図４】
2015045906.tif 000006
【図５】
2015045906.tif 000007
【図６】
2015045906.tif 000008
【図７】
2015045906.tif 000009