(57)【要約】【課題】仮想計算機内の環境を変えずに仮想計算機間でのデータの伝送を模擬する伝送模擬装置を得ること。【解決手段】仮想計算機に対応付けられ、自身と他の複数の仮想計算機のデータを各メモリに保持するメモリ領域と、複数のメモリに保持されるデータそれぞれのタイムスタンプ情報を保持する第１のタイムスタンプ情報領域と、複数の仮想計算機のデータを各バッファに保持するバッファ領域と、複数のバッファに保持されるデータそれぞれのタイムスタンプ情報を保持する第２のタイムスタンプ情報領域と、メモリ領域と、バッファ領域とについて、データの経路を示すデータフロー上で処理対象の仮想計算機より前に位置する仮想計算機のデータを保持するメモリとバッファとのどちらのデータを他方に上書きするか、タイムスタンプ情報に基づいて判定するデータ複製部と、を備えた。【選択図】          図１
2015103208.tif 000002
【特許請求の範囲】
【請求項１】
仮想計算機に対応付けられ、自身と他の複数の仮想計算機のデータを各メモリに保持するメモリ領域と、
複数の前記メモリに保持されるデータそれぞれのタイムスタンプ情報を保持する第１のタイムスタンプ情報領域と、
複数の前記仮想計算機のデータを各バッファに保持するバッファ領域と、
複数の前記バッファに保持されるデータそれぞれのタイムスタンプ情報を保持する第２のタイムスタンプ情報領域と、
前記メモリ領域と、前記バッファ領域とについて、データの経路を示すデータフロー上で処理対象の仮想計算機より前に位置する仮想計算機のデータを保持するメモリとバッファとのどちらのデータを他方に上書きするか、第１のタイムスタンプ情報領域のタイムスタンプ情報と第２のタイムスタンプ情報領域のタイムスタンプ情報とに基づいて判定するデータ複製部と、
を備えることを特徴とする伝送模擬装置。
【請求項２】
前記データ複製部は、処理対象の仮想計算機に対応付けられた前記メモリ領域のメモリから処理対象の仮想計算機のデータを、前記処理対象の仮想計算機に対応付けられた前記バッファ領域のバッファに保存するとともに、メモリのタイムスタンプ情報とバッファのタイムスタンプ情報とに現在の時刻を保存することを特徴とする請求項１に記載の伝送模擬装置。
【請求項３】
各前記仮想計算機について、前記データフロー上の直前に位置する仮想計算機からの伝送遅延を示す伝送遅延時間を保持するネットワークトポロジ情報保存部を備え、
前記データ複製部は、処理対象の仮想計算機の前記伝送遅延時間が経過すると、前記データフロー上で次に位置する仮想計算機を新たな処理対象の仮想計算機とすることを特徴とする請求項１又は２に記載の伝送模擬装置。
【請求項４】
前記ネットワークトポロジ情報保存部は、仮想計算機が前記データフロー上で直前に位置する仮想計算機と接続されているか否かを示す状態を保持し、
前記データ複製部は、処理対象の仮想計算機に対応付けられた前記メモリ領域と前記バッファ領域とについて、前記データフロー上で処理対象の仮想計算機より前に位置する仮想計算機のうち、前記状態が切断である仮想計算機より前に位置する仮想計算機のメモリとバッファと、それぞれ対応するタイムスタンプ情報とを変更しないことを特徴とする請求項１から３のいずれか一項に記載の伝送模擬装置。
【請求項５】
前記ネットワークトポロジ情報保存部は、前記データフロー毎に前記データフロー上の仮想計算機のデータを更新する更新タイミングを保持し、
前記更新タイミングが経過すると、前記データフローに対応する前記データ複製部に通知する更新タイミング管理部を備えることを特徴とする請求項１から４のいずれか一項に記載の伝送模擬装置。
【請求項６】
前記データ複製部は、前記データフロー上の最後尾の仮想計算機まで処理が終了すると前記更新タイミング管理部に通知し、
前記更新タイミング管理部は、前記更新タイミングに達していない場合、前記データ複製部に保持している計算機リソースを解放するように通知することを特徴とする請求項１から５のいずれか一項に記載の伝送模擬装置。
【請求項７】
前記ネットワークトポロジ情報保存部は、複数の前記データフローについて同一の前記更新タイミングを保持し、
前記更新タイミング管理部は、前記更新タイミングになると、同一の前記更新タイミングの前記データフローに対応する複数の前記データ複製部に通知することを特徴とする請求項１から６のいずれか一項に記載の伝送模擬装置。
【請求項８】
仮想計算機に対応付けられたメモリ領域の各メモリに、自身と他の複数の仮想計算機のデータをそれぞれ保存するステップと、
複数の前記メモリに保存されたデータそれぞれのタイムスタンプ情報を第１のタイムスタンプ情報領域に保存するステップと、
バッファ領域の各バッファに、複数の前記仮想計算機のデータを保存するステップと、
複数の前記バッファに保存されたデータそれぞれのタイムスタンプ情報を第２のタイムスタンプ情報領域に保存するステップと、
前記メモリ領域と、前記バッファ領域とについて、データの経路を示すデータフロー上で処理対象の仮想計算機より前に位置する仮想計算機のデータを保持するメモリとバッファとのどちらのデータを他方に上書きするか、第１のタイムスタンプ情報領域のタイムスタンプ情報と第２のタイムスタンプ情報領域のタイムスタンプ情報とに基づいて判定するデータ複製ステップと、
を有する伝送模擬方法。
【発明の詳細な説明】
【技術分野】
【０００１】
装置間の伝送を仮想計算機により模擬する伝送模擬装置に関する。
【背景技術】
【０００２】
複数の計算機から構成されるシステムの試験を実施するとき、仮想計算機技術を利用することがある。仮想計算機技術を利用することにより、物理的にシステムを構築せずに試験を実施することができる。従来では、複数の仮想計算機が利用可能な共有メモリを設けることにより、仮想計算機間でのデータの伝送を模擬していた。しかし、仮想計算機から共有メモリに書き込まれたデータが、すぐに他の仮想計算機から参照できるため、ネットワークトポロジによる影響を模擬することができないという問題があった。
【０００３】
そこで、共有メモリを有するマルチプロセッサシステムにおいて、各プロセッサをネットワークによって接続し、各々のプロセッサに共有データ通信用のレジスタを割り当てて、このレジスタに共有データを書き込む技術がある（例えば、特許文献１）。特許文献１では、時刻情報に基づいて、共有データレジスタへのデータ登録を遅延させる技術も開示されている。特許文献１を仮想計算機に適用することにより、ネットワークトポロジによる影響を模擬することが可能となる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−２７１５７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１では、仮想計算機で動作するソフトウェアを改修する必要があるという問題点があった。ソフトウェアを改修することにより、仮想計算機の環境は試験対象の計算機の環境とは異なるものとなってしまい、試験の意味をなさない。
【０００６】
本発明は上記のような問題点を解決するためになされたもので、仮想計算機内の環境を変えずに仮想計算機間でのデータの伝送を模擬する伝送模擬装置を得ることを目的としている。
【課題を解決するための手段】
【０００７】
仮想計算機に対応付けられ、自身と他の複数の仮想計算機のデータを各メモリに保持するメモリ領域と、複数のメモリに保持されるデータそれぞれのタイムスタンプ情報を保持する第１のタイムスタンプ情報領域と、複数の仮想計算機のデータを各バッファに保持するバッファ領域と、複数のバッファに保持されるデータそれぞれのタイムスタンプ情報を保持する第２のタイムスタンプ情報領域と、メモリ領域と、バッファ領域とについて、データの経路を示すデータフロー上で処理対象の仮想計算機より前に位置する仮想計算機のデータを保持するメモリとバッファとのどちらのデータを他方に上書きするか、第１のタイムスタンプ情報領域のタイムスタンプ情報と第２のタイムスタンプ情報領域のタイムスタンプ情報とに基づいて判定するデータ複製部と、を備えた。
【発明の効果】
【０００８】
本発明によれば、仮想計算機内の環境を変えずに仮想計算機間でのデータの伝送を模擬することができる。
【図面の簡単な説明】
【０００９】
【図１】実施の形態１に係る伝送模擬装置の構成を示すブロック図。
【図２】実施の形態１に係るメモリ領域及びタイムスタンプ情報領域の構成を示すブロック図。
【図３】実施の形態１に係るバッファ領域及びタイムスタンプ情報領域の構成を示すブロック図。
【図４】実施の形態１に係るネットワークトポロジ情報保存部に保存されるネットワークトポロジ情報を示す図。
【図５】実施の形態１に係るデータ伝送複製部の処理の流れを示すフローチャート。
【図６】実施の形態１に係るメモリ領域及びタイムスタンプ情報領域と、バッファ領域及びタイムスタンプ領域を示す図。
【図７】実施の形態１に係るメモリ領域及びタイムスタンプ情報領域と、バッファ領域及びタイムスタンプ領域を示す図。
【図８】実施の形態１に係るメモリ領域及びタイムスタンプ情報領域と、バッファ領域及びタイムスタンプ領域を示す図。
【図９】実施の形態１に係るメモリ領域及びタイムスタンプ情報領域と、バッファ領域及びタイムスタンプ領域を示す図。
【図１０】実施の形態２に係る伝送模擬装置の構成を示すブロック図。
【図１１】実施の形態２に係る更新タイミング情報を示す図。
【図１２】実施の形態２に係る更新タイミング管理部の処理の流れを示すフローチャート。
【図１３】実施の形態３に係る更新タイミング管理部の処理の流れを示すフローチャート。
【図１４】実施の形態４に係る仮想計算機が模擬するネットワークの構成を示す図。
【図１５】実施の形態４に係るネットワークトポロジ情報保存部に保存されるネットワークトポロジ情報を示す図。
【図１６】実施の形態４に係る更新タイミング情報を示す図。
【図１７】実施の形態４に係る更新タイミング管理部の処理の流れを示すフローチャート。
【発明を実施するための形態】
【００１０】
実施の形態１．
本発明では、ネットワーク上のＮ台の機器がそれぞれ保持しているデータを共有するようなシステムを１台の物理計算機上で模擬することを想定している。このようなシステムは、例えば、ネットワーク上の機器の死活監視やセンサデータを共有するために利用されている。また、ＦＡ（Ｆａｃｔｏｒｙ  Ａｕｔｏｍａｔｉｏｎ）分野において、ネットワーク上の機器のデータを共有するのに利用されることもある。本実施の形態のネットワークにおいて、データの流れる経路（以下、データフローと称す）は、Ｍ個とする。
【００１１】
図１は、実施の形態１に係る伝送模擬装置の構成を示すブロック図である。伝送模擬装置としての物理計算機１１は、複数の仮想計算機１２ａ〜ｎ、仮想計算機１２ａ〜ｎそれぞれに対応して設けられたメモリ領域１３ａ〜ｎ並びにタイムスタンプ情報領域１４ａ〜ｎ、及び伝送模擬機構部１５から構成される。メモリ領域１３ａ〜ｎは、それぞれ仮想計算機１２ａ〜ｎに対応付けられている。各メモリのタイムスタンプ情報は、タイムスタンプ情報領域１４ａ〜ｎに保存される。
【００１２】
伝送模擬機構部１５は、データフローと同数のデータ複製部１６ａ〜ｍ、データ複製部１６ａ〜ｍそれぞれに対応して設けられたバッファ１７ａ〜ｍ並びにタイムスタンプ情報領域１８ａ〜ｍ、及びネットワークトポロジ情報保存部１９から構成される。バッファ領域１７ａ〜ｍは、データフローが各々保持するバッファである。各バッファのタイムスタンプ情報は、タイムスタンプ情報領域１４ａ〜ｎに保存される。ネットワークトポロジ情報保存部１９は、模擬するネットワークのトポロジ及びデータフローの状態を保持する。トポロジとは、仮想計算機の接続形態を示す。データフローの状態とは、接続又は切断である。
【００１３】
メモリ領域１３ａ〜ｎは、対応する仮想計算機１２ａ〜ｎ及びデータ複製部１６ａ〜ｍからアクセスすることができる。タイムスタンプ情報領域１４ａ〜ｎは、データ複製部１６ａ〜ｍからアクセスすることができる。タイムスタンプ情報領域１８ａ〜ｍ及びネットワークトポロジ情報保存部１９は、データ複製部１６ａ〜ｍからアクセスすることができる。
【００１４】
図２は、実施の形態１に係るメモリ領域１３ａ及びタイムスタンプ情報領域１４ａの構成を示すブロック図である。メモリ領域１３ａ及びタイムスタンプ情報領域１４ａは、Ｎ個のメモリ２１ａ〜ｎ及びタイムスタンプ情報２２ａ〜ｎに分割され、それぞれ仮想計算機１２ａ〜ｎに対応する。メモリ２１ａ〜ｎには、対応する仮想計算機１２ａ〜ｎのデータが保存されている。タイムスタンプ情報２２ａ〜ｎには、対応する仮想計算機１２ａ〜ｎからデータが伝送された時刻がタイムスタンプとして保存されている。
【００１５】
仮想計算機１２ａ〜ｎは、メモリ２１ａ〜ｎのうち当該仮想計算機に対応するメモリのみ書き込み可能であり、その他のメモリは読み取りのみ可能である。データ複製部１６ａ〜ｍは、すべてのメモリ２１ａ〜ｎ及びタイムスタンプ情報２２ａ〜ｎの読み取りと書き込みが可能である。
なお、図２では、メモリ領域１３ａ及びタイムスタンプ情報領域１４ａの構成を例示したが、メモリ領域１３ｂ〜ｎ及びタイムスタンプ情報領域１４ｂ〜ｎについても同様の構成である。
【００１６】
図３は、実施の形態１に係るバッファ領域１７ａ及びタイムスタンプ情報領域１８ａの構成を示すブロック図である。バッファ領域１７ａ及びタイムスタンプ情報領域１８ａは、Ｎ個のバッファ３１ａ〜ｎ及びタイムスタンプ情報３２ａ〜ｎに分割され、それぞれ仮想計算機１２ａ〜ｎに対応する。バッファ３１ａ〜ｎには、対応する仮想計算機１２ａ〜ｎのデータが保存されている。タイムスタンプ情報３２ａ〜ｎには、対応する仮想計算機１２ａ〜ｎからデータが伝送された時刻がタイムスタンプとして保存されている。
【００１７】
仮想計算機１２ａ〜ｎは、バッファ３１ａ〜ｎ及びタイムスタンプ情報２２ａ〜ｎのうち当該仮想計算機に対応するメモリ及びタイムスタンプ情報のみ書き込み可能であり、その他のバッファ及びタイムスタンプ情報は読み取りのみ可能である。データ複製部１６ａ〜ｍは、すべてのバッファ３１ａ〜ｎ及びタイムスタンプ情報３２ａ〜ｎの読み取りと書き込みが可能である。
なお、図３では、バッファ領域１７ａ及びタイムスタンプ情報領域１８ａの構成を例示したが、バッファ領域１７ｂ〜ｎ及びタイムスタンプ情報領域１８ｂ〜ｎについても同様の構成である。
【００１８】
タイムスタンプ情報３２ａ〜ｎの初期値は、それぞれ対応する仮想計算機１２ａ〜ｎに対応するタイムスタンプ情報２２ａ〜ｎの時刻よりも過去の時刻が設定される。
【００１９】
図４は、実施の形態１に係るネットワークトポロジ情報保存部１９に保存されるネットワークトポロジ情報４１を示す図である。ネットワークトポロジ情報４１には、データフロー、仮想計算機、状態、伝送遅延の項目が保存される。データフローの項目には、データフローの識別子が保存される。仮想計算機の項目には、データフローに接続される仮想計算機の識別子が接続順に保存される。状態の項目には、１つ前の順番の仮想計算機との伝送路の状態が保存される。伝送遅延の項目には、１つ前の順番の仮想計算機からの伝送における伝送遅延時間が保存される。ネットワークトポロジ情報４１の内容は、ユーザから入力される内容に従って保存される。
【００２０】
例えば、データフローａは、仮想計算機１２ａ、仮想計算機１２ｂ、仮想計算機１２ｃ、仮想計算機１２ｄの順に接続され、データが伝送されることを示している。データフローａは、仮想計算機１２ａが先頭で、仮想計算機１２ｄが最後尾である。仮想計算機１２ａはデータフローの先頭であり、１つ前の順番の計算機は存在しないため、状態は設定されない。仮想計算機１２ｂの状態は「接続」であり、仮想計算機１２ａに接続されていることを示している。仮想計算機１２ｃの状態は「接続」であり、仮想計算機１２ｂに接続されていることを示している。仮想計算機１２ｄの状態は「切断」であり、仮想計算機１２ｃとは切断されていることを示している。
【００２１】
仮想計算機１２ａはデータフローの先頭であり、１つ前の順番の計算機は存在しないため、伝送遅延は設定されない。仮想計算機１２ｂの伝送遅延は「１００ｍｓ」であり、仮想計算機１２ａから仮想計算機１２ｂまでの伝送による伝送遅延が１００ｍｓであることを示している。仮想計算機１２ｃの伝送遅延は「２００ｍｓ」であり、仮想計算機１２ｂから仮想計算機１２ｃまでの伝送による伝送遅延が２００ｍｓであることを示している。仮想計算機１２ｄの伝送遅延は、「１００ｍｓ」であり、仮想計算機１２ｃから仮想計算機１２ｄまでの伝送による伝送遅延が１００ｍｓであることを示している。
【００２２】
次に、動作について図５〜９を用いて説明する。データフローａにおいて、仮想計算機１２ａから仮想計算機１２ｄまで順にデータを伝送する場合を例として説明する。
図５は、実施の形態１に係るデータ複製部１６ａの処理の流れを示すフローチャートである。
【００２３】
図６は、実施の形態１に係るメモリ領域１３ａ及びタイムスタンプ情報領域１４ａと、バッファ領域１７ａ及びタイムスタンプ領域１８ａを示す図である。各領域は、（１）〜（３）の順に更新される。メモリ領域１３ａは、仮想計算機１２ａのメモリ領域である。メモリ２１ａａは、メモリ領域１３ａのうち仮想計算機１２ａに対応するメモリである。メモリ２１ａｂは、メモリ領域１３ａのうち仮想計算機１２ｂに対応するメモリである。メモリ２１ａｃは、メモリ領域１３ａのうち仮想計算機１２ｃに対応するメモリである。メモリ２１ａｄは、メモリ領域１３ａのうち仮想計算機１２ｄに対応するメモリである。
【００２４】
タイムスタンプ情報領域１４ａは、仮想計算機１２ａのタイムスタンプ情報領域である。タイムスタンプ情報２２ａａは、タイムスタンプ情報領域１４ａのうち仮想計算機１２ａに対応するタイムスタンプ情報である。タイムスタンプ情報２２ａｂは、タイムスタンプ情報領域１４ａのうち仮想計算機１２ｂに対応するタイムスタンプ情報である。タイムスタンプ情報２２ａｃは、タイムスタンプ情報領域１４ａのうち仮想計算機１２ｃに対応するタイムスタンプ情報である。タイムスタンプ情報２２ａｄは、タイムスタンプ情報領域１４ａのうち仮想計算機１２ｄに対応するタイムスタンプ情報である。
【００２５】
図７は、実施の形態１に係るメモリ領域１３ｂ及びタイムスタンプ情報領域１４ｂと、バッファ領域１７ａ及びタイムスタンプ領域１８ａを示す図である。各領域は、（１）〜（４）の順に更新される。メモリ領域１３ｂは、仮想計算機１２ｂのメモリ領域である。メモリ２１ｂａは、メモリ領域１３ｂのうち仮想計算機１２ａに対応するメモリである。メモリ２１ｂｂは、メモリ領域１３ｂのうち仮想計算機１２ｂに対応するメモリである。メモリ２１ｂｃは、メモリ領域１３ｂのうち仮想計算機１２ｃに対応するメモリである。メモリ２１ｂｄは、メモリ領域１３ｂのうち仮想計算機１２ｄに対応するメモリである。
【００２６】
タイムスタンプ情報領域１４ｂは、仮想計算機１２ｂのタイムスタンプ情報領域である。タイムスタンプ情報２２ｂａは、タイムスタンプ情報領域１４ｂのうち仮想計算機１２ａに対応するタイムスタンプ情報である。タイムスタンプ情報２２ｂｂは、タイムスタンプ情報領域１４ｂのうち仮想計算機１２ｂに対応するタイムスタンプ情報である。タイムスタンプ情報２２ｂｃは、タイムスタンプ情報領域１４ｂのうち仮想計算機１２ｃに対応するタイムスタンプ情報である。タイムスタンプ情報２２ｂｄは、タイムスタンプ情報領域１４ｂのうち仮想計算機１２ｄに対応するタイムスタンプ情報である。
【００２７】
図８は、実施の形態１に係るメモリ領域１３ｃ及びタイムスタンプ情報領域１４ｄと、バッファ領域１７ａ及びタイムスタンプ領域１８ａを示す図である。各領域は、（１）〜（４）の順に更新される。メモリ領域１３ｃは、仮想計算機１２ｃのメモリ領域である。メモリ２１ｃａは、メモリ領域１３ｃのうち仮想計算機１２ａに対応するメモリである。メモリ２１ｃｂは、メモリ領域１３ｃのうち仮想計算機１２ｂに対応するメモリである。メモリ２１ｃｃは、メモリ領域１３ｃのうち仮想計算機１２ｃに対応するメモリである。メモリ２１ｃｄは、メモリ領域１３ｃのうち仮想計算機１２ｄに対応するメモリである。
【００２８】
タイムスタンプ情報領域１４ｄは、仮想計算機１２ｃのタイムスタンプ情報領域である。タイムスタンプ情報２２ｄａは、タイムスタンプ情報領域１４ｄのうち仮想計算機１２ａに対応するタイムスタンプ情報である。タイムスタンプ情報２２ｄｂは、タイムスタンプ情報領域１４ｄのうち仮想計算機１２ｂに対応するタイムスタンプ情報である。タイムスタンプ情報２２ｄｃは、タイムスタンプ情報領域１４ｄのうち仮想計算機１２ｃに対応するタイムスタンプ情報である。タイムスタンプ情報２２ｄｄは、タイムスタンプ情報領域１４ｄのうち仮想計算機１２ｄに対応するタイムスタンプ情報である。
【００２９】
図９は、実施の形態１に係るメモリ領域１３ｄ及びタイムスタンプ情報領域１４ｄと、バッファ領域１７ａ及びタイムスタンプ領域１８ａを示す図である。各領域は、（１）〜（３）の順に更新される。メモリ領域１３ｄは、仮想計算機１２ｄのメモリ領域である。メモリ２１ｄａは、メモリ領域１３ｄのうち仮想計算機１２ａに対応するメモリである。メモリ２１ｄｂは、メモリ領域１３ｄのうち仮想計算機１２ｂに対応するメモリである。メモリ２１ｄｃは、メモリ領域１３ｄのうち仮想計算機１２ｃに対応するメモリである。メモリ２１ｄｄは、メモリ領域１３ｄのうち仮想計算機１２ｄに対応するメモリである。
【００３０】
タイムスタンプ情報領域１４ｄは、仮想計算機１２ｃのタイムスタンプ情報領域である。タイムスタンプ情報２２ｄａは、タイムスタンプ情報領域１４ｄのうち仮想計算機１２ａに対応するタイムスタンプ情報である。タイムスタンプ情報２２ｄｂは、タイムスタンプ情報領域１４ｄのうち仮想計算機１２ｂに対応するタイムスタンプ情報である。タイムスタンプ情報２２ｄｃは、タイムスタンプ情報領域１４ｄのうち仮想計算機１２ｃに対応するタイムスタンプ情報である。タイムスタンプ情報２２ｄｄは、タイムスタンプ情報領域１４ｄのうち仮想計算機１２ｄに対応するタイムスタンプ情報である。
【００３１】
図６〜９のバッファ領域１７ａについて説明する。バッファ領域１７ａは、データフローａのバッファ領域である。バッファ３１ａは、バッファ領域１７ａのうち仮想計算機１２ａに対応するバッファである。バッファ３１ｂは、バッファ領域１７ａのうち仮想計算機１２ｂに対応するバッファである。バッファ３１ｃは、バッファ領域１７ａのうち仮想計算機１２ｃに対応するバッファである。バッファ３１ｄは、バッファ領域１７ａのうち仮想計算機１２ｄに対応するバッファである。
【００３２】
図６〜９のタイムスタンプ情報領域１８ａについて説明する。タイムスタンプ情報領域１８ａは、データフローａのタイムスタンプ情報領域である。タイムスタンプ情報３２ａは、タイムスタンプ情報領域１８ａのうち仮想計算機１２ａに対応するバッファである。タイムスタンプ情報３２ｂは、タイムスタンプ情報領域１８ａのうち仮想計算機１２ｂに対応するバッファである。タイムスタンプ情報３２ｃは、タイムスタンプ情報領域１８ａのうち仮想計算機１２ｃに対応するバッファである。タイムスタンプ情報３２ｄは、タイムスタンプ情報領域１８ａのうち仮想計算機１２ｄに対応するバッファである。
【００３３】
図５において、ユーザからデータフローａが指定されると、データ複製部１６ａはステップＳ５１より処理を開始する。
【００３４】
ステップＳ５１において、データ複製部１６ａは、データ伝送の処理対象となる仮想計算機を１台選択する。ここでは、仮想計算機１２ａが選択されたとする。図６（１）は、仮想計算機１２ａのメモリ領域１３ａ及びタイムスタンプ情報領域１４ａと、データフローａのバッファ領域１７ａ及びタイムスタンプ領域１８ａの現在の状態を示す図である。メモリ２１ａａにデータＡ、タイムスタンプ情報２２ａａにｔ０が保存されている。処理はステップＳ５２へ進む。
【００３５】
ステップＳ５２において、データ複製部１６ａは、ネットワークトポロジ情報４１を参照する。仮想計算機１２ａはデータフローａの先頭のため、状態は設定されていない。処理はステップＳ５３へ進む。
【００３６】
ステップＳ５３において、データ複製部１６ａは、メモリ領域１３ａのメモリ２１ａａに保存されているデータＡを、バッファ領域１７ａのバッファ３１ａにコピーする。この処理は、仮想計算機１２ａがデータＡをデータフローａに送出することを模擬している。図６（２）は、仮想計算機１２ａのメモリ領域１３ａ及びタイムスタンプ情報領域１４ａと、データフローａのバッファ領域１７ａ及びタイムスタンプ領域１８ａの現在の状態を示す図である。処理はステップＳ５４へ進む。
【００３７】
ステップＳ５４において、データ複製部１６ａは、タイムスタンプ情報領域１４ａのタイムスタンプ情報２２ａａ及びタイムスタンプ情報領域１８ａのタイムスタンプ情報３２ａに現在の時刻ｔ１０を保存する。図６（３）は、仮想計算機１２ａのメモリ領域１３ａ及びタイムスタンプ情報領域１４ａと、データフローａのバッファ領域１７ａ及びタイムスタンプ領域１８ａの現在の状態を示す図である。処理はステップＳ５５へ進む。
【００３８】
ステップＳ５５において、データ複製部１６ａは、データフローａ上で仮想計算機１２ａより前に位置する仮想計算機のうち、データフローａの先頭の仮想計算機又は状態が切断となっている仮想計算機から仮想計算機１２ａの直前に位置する仮想計算機について、それぞれタイムスタンプ情報を比較する。仮想計算機１２ａは先頭であり、比較対象の仮想計算機は存在しないため、処理はステップＳ５７へ進む。
【００３９】
ステップＳ５７において、データ複製部１６ａは、ステップＳ５１〜Ｓ５７までにかかった処理時間を測定し、仮想計算機１２ａの伝送遅延時間と比較する。処理時間より遅延時間が大きい場合、処理はステップＳ５８へ進む。大きくない場合、処理はステップＳ５９へ進む。仮想計算機１２ａはデータフローａの先頭のため、伝送遅延時間は設定されていない。処理はステップＳ５１に戻る。
【００４０】
ステップＳ５１において、データ複製部１６ａは、データフローａにおける次の仮想計算機１２ｂを選択する。図７（１）は、仮想計算機１２ｂのメモリ領域１３ｂ及びタイムスタンプ情報領域１４ｂと、データフローａのバッファ領域１７ａ及びタイムスタンプ領域１８ａの現在の状態を示す図である。メモリ２１ｂａにデータＸ、タイムスタンプ情報２２ｂａにｔ５、メモリ２１ｂｂにデータＢ、タイムスタンプ情報２２ｂｂにｔ０が保存されている。ネットワークには複数のデータフローが存在し、データフローａ上の仮想計算機が他のデータフローにも含まれる場合がある。メモリ２１ｂａ、タイムスタンプ情報２２ｂａは、他のデータフローの処理によって保存された値である。処理はステップＳ５２へ進む。
【００４１】
ステップＳ５２において、データ複製部１６ａは、ネットワークトポロジ情報４１を参照し、仮想計算機１２ｂの状態「接続」を取得する。処理はステップＳ５３へ進む。
【００４２】
ステップＳ５３において、データ複製部１６ａは、メモリ領域１３ｂのメモリ２１ｂｂに保存されているデータＢを、バッファ領域１７ａのバッファ３１ｂにコピーする。この処理は、仮想計算機１２ｂがデータＢをデータフローａに送出することを模擬している。図７（２）は、仮想計算機１２ｂのメモリ領域１３ｂ及びタイムスタンプ情報領域１４ｂと、データフローａのバッファ領域１７ａ及びタイムスタンプ領域１８ａの現在の状態を示す図である。処理はステップＳ５４へ進む。
【００４３】
ステップＳ５４において、データ複製部１６ａは、タイムスタンプ情報領域１４ｂのタイムスタンプ情報２２ｂｂ及びタイムスタンプ情報領域１８ａのタイムスタンプ情報３２ｂに現在の時刻ｔ２０を保存する。図７（３）は、仮想計算機１２ｂのメモリ領域１３ｂ及びタイムスタンプ情報領域１４ｂと、データフローａのバッファ領域１７ａ及びタイムスタンプ領域１８ａの現在の状態を示す図である。処理はステップＳ５５へ進む。
【００４４】
ステップＳ５５〜Ｓ５６の処理は、仮想計算機１２ａから新たに送出されたデータがあれば、仮想計算機１２ｂが受信することを模擬する。
【００４５】
ステップＳ５５において、データ複製部１６ａは、データフローａ上で仮想計算機１２ａより前に位置する仮想計算機のうち、データフローａの先頭の仮想計算機又は状態が切断となっている仮想計算機から仮想計算機１２ｂの直前に位置する仮想計算機について、それぞれタイムスタンプ情報を比較する。ここでは、タイムスタンプ情報の比較をするのは、仮想計算機１２ａである。図７（３）を参照すると、タイムスタンプ情報２２ｂａにはｔ５、タイムスタンプ情報３２ａにはｔ１０が保存されている。データ複製部１６ａは、メモリ２１ｂａよりバッファ３１ａの値が新しいと判定し、処理はステップＳ５６へ進む。
【００４６】
ステップＳ５６において、データ複製部１６ａは、タイムスタンプ情報３２ａのｔ１０をタイムスタンプ情報２２ｂａにコピーする。また、データ複製部１６ａは、バッファ３１ａのデータＡをメモリ２１ｂａにコピーする。この処理は、仮想計算機１２ｂが仮想計算機１２ａから送出されたデータを受信することを模擬している。図７（４）は、仮想計算機１２ｂのメモリ領域１３ｂ及びタイムスタンプ情報領域１４ｂと、データフローａのバッファ領域１７ａ及びタイムスタンプ領域１８ａの現在の状態を示す図である。処理はステップＳ５７へ進む。
【００４７】
ステップＳ５７において、データ複製部１６ａは、ステップＳ５１〜Ｓ５７までにかかった処理時間を測定し、仮想計算機１２ｂの遅延時間１００ｍｓと比較する。処理時間より遅延時間が大きい場合、処理はステップＳ５８へ進む。大きくない場合、ステップＳ５９へ進む。
【００４８】
ステップＳ５８において、データ複製部１６ａは、遅延時間１００ｍｓが経過するまで待つ。時間が経過すると、処理はステップＳ５９へ進む。
【００４９】
ステップＳ５９において、データ複製部１６ａは、仮想計算機１２ｂがデータフローの最後尾かどうか判定する。仮想計算機１２ｂはデータフローの最後尾ではないため、処理はステップＳ５１に戻る。
【００５０】
ステップＳ５１において、データ複製部１６ａは、データフローａにおける次の仮想計算機１２ｃを選択する。図８（１）は、仮想計算機１２ｃのメモリ領域１３ｃ及びタイムスタンプ情報領域１４ｃと、データフローａのバッファ領域１７ａ及びタイムスタンプ領域１８ａの現在の状態を示す図である。メモリ２１ｃｃにデータＣ、タイムスタンプ情報２２ｃｃにｔ０が保存されている。処理はステップＳ５２へ進む。
【００５１】
ステップＳ５２において、データ複製部１６ａは、ネットワークトポロジ情報４１を参照し、仮想計算機１２ｂの状態「切断」を取得する。処理はステップＳ５９へ進む。
【００５２】
ステップＳ５３において、データ複製部１６ａは、メモリ領域１３ｃのメモリ２１ｃｃに保存されているデータＣを、バッファ領域１７ａのバッファ３１ｃにコピーする。この処理は、仮想計算機１２ｃがデータＣをデータフローａに送出することを模擬している。図８（２）は、仮想計算機１２ｃのメモリ領域１３ｃ及びタイムスタンプ情報領域１４ｃと、データフローａのバッファ領域１７ａ及びタイムスタンプ領域１８ａの現在の状態を示す図である。処理はステップＳ５４へ進む。
【００５３】
ステップＳ５４において、データ複製部１６ａは、タイムスタンプ情報領域１４ｃのタイムスタンプ情報２２ｃｃ及びタイムスタンプ情報領域１８ａのタイムスタンプ情報３２ｃに現在の時刻ｔ３０を保存する。図８（３）は、仮想計算機１２ｃのメモリ領域１３ｃ及びタイムスタンプ情報領域１４ｃと、データフローａのバッファ領域１７ａ及びタイムスタンプ領域１８ａの現在の状態を示す図である。処理はステップＳ５５へ進む。
【００５４】
ステップＳ５５において、データ複製部１６ａは、データフローａ上で仮想計算機１２ａより前に位置する仮想計算機のうち、データフローａの先頭の仮想計算機又は状態が切断となっている仮想計算機から仮想計算機１２ｃの直前に位置する仮想計算機について、それぞれタイムスタンプ情報を比較する。仮想計算機１２ｃは仮想計算機１２ｂとは切断されており、比較対象の仮想計算機はない。この処理は、仮想計算機１２ｃは仮想計算機１２ｂとは切断されているため、仮想計算機１２ａ及び仮想計算機１２ｂが送出するデータを受信しないことを意味している。処理はステップＳ５７へ進む。
【００５５】
ステップＳ５７において、データ複製部１６ａは、ステップＳ５１〜Ｓ５７までにかかった処理時間を測定し、仮想計算機１２ｃの伝送遅延１００ｍｓと比較する。処理時間より遅延時間が大きい場合、処理はステップＳ５８へ進む。大きくない場合、処理はステップＳ５９へ進む。
【００５６】
ステップＳ５８において、データ複製部１６ａは、伝送遅延１００ｍｓが経過するまで待つ。時間が経過すると、処理はステップＳ５９へ進む。
【００５７】
ステップＳ５９において、データ複製部１６ａは、仮想計算機１２ｃがデータフローの最後尾かどうか判定する。仮想計算機１２ｃはデータフローの最後尾ではないため、処理はステップＳ５１に戻る。
【００５８】
ステップＳ５１において、データ複製部１６ａは、データフローａにおける次の仮想計算機１２ｄを選択する。図９（１）は、仮想計算機１２ｄのメモリ領域１３ｄ及びタイムスタンプ情報領域１４ｄと、データフローａのバッファ領域１７ａ及びタイムスタンプ領域１８ａの現在の状態を示す図である。メモリ２１ｄｂにデータＺ、タイムスタンプ情報２２ｄｂにｔ２５、メモリ２１ｄｃにデータＹ、タイムスタンプ情報２２ｄｃにｔ３５、メモリ２１ｄｄにデータＤ、タイムスタンプ情報２２ｄｄにｔ５が保存されている。処理はステップＳ５２へ進む。
【００５９】
ステップＳ５２において、データ複製部１６ａは、ネットワークトポロジ情報４１を参照し、仮想計算機１２ｄの状態「接続」を取得する。処理はステップＳ５３へ進む。
【００６０】
ステップＳ５３において、データ複製部１６ａは、メモリ領域１３ｄのメモリ２１ｄｄに保存されているデータＤを、バッファ領域１７ａのバッファ３１ｄにコピーする。この処理は、仮想計算機１２ｄがデータＤをデータフローａに送出することを模擬している。図９（２）は、仮想計算機１２ｄのメモリ領域１３ｄ及びタイムスタンプ情報領域１４ｄと、データフローａのバッファ領域１７ａ及びタイムスタンプ領域１８ａの現在の状態を示す図である。処理はステップＳ５４へ進む。
【００６１】
ステップＳ５４において、データ複製部１６ａは、タイムスタンプ情報領域１４ｄのタイムスタンプ情報２２ｄｄ及びタイムスタンプ情報領域１８ａのタイムスタンプ情報３２ｄに現在の時刻ｔ４０を保存する。図９（３）は、仮想計算機１２ｄのメモリ領域１３ｄ及びタイムスタンプ情報領域１４ｄと、データフローａのバッファ領域１７ａ及びタイムスタンプ領域１８ａの現在の状態を示す図である。処理はステップＳ５５へ進む。
【００６２】
ステップＳ５５〜Ｓ５６の処理は、仮想計算機１２ｃから新たに送出されたデータがあれば、仮想計算機１２ｄが受信することを模擬する。
【００６３】
ステップＳ５５において、データ複製部１６ａは、データフローａ上で仮想計算機１２ａより前に位置する仮想計算機のうち、データフローａの先頭の仮想計算機又は状態が切断となっている仮想計算機から仮想計算機１２ｄの直前に位置する仮想計算機について、それぞれタイムスタンプ情報を比較する。ここでは、タイムスタンプ情報の比較をするのは、仮想計算機１２ｃである。図９（３）を参照すると、タイムスタンプ情報２２ｄｃにはｔ３５、タイムスタンプ情報３２ｃにはｔ３０が保存されている。データ複製部１６ａは、メモリ２１ｄｃよりバッファ３１ｃの値が新しくないと判定し、処理はステップＳ５７へ進む。
【００６４】
メモリ２１ｄｃの値が新しくても、データ複製部１６ａがバッファ３１ｃにコピーしないのは次の理由からである。本発明では、仮想計算機が自身のデータをデータフローに送出し、他の仮想計算機の送出したデータを受信することを模擬している。仮想計算機１２ｄは、メモリ２１ｄｄに自身の送出するデータを保存し、メモリ２１ｄａ〜ｄｃに他の仮想計算機から受信したデータを保存する。よって、メモリ２１ｄｃは仮想計算機１２ｃから受信したデータであり、他の仮想計算機には送出しないため、バッファ３１ｃにはコピーしない。
【００６５】
ステップＳ５７において、データ複製部１６ａは、ステップＳ５１〜Ｓ５７までにかかった処理時間を測定し、遅延時間２００ｍｓと比較する。処理時間より遅延時間が大きい場合、処理はステップＳ５８へ進む。大きくない場合、ステップＳ５９へ進む。
【００６６】
ステップＳ５８において、データ複製部１６ａは、遅延時間２００ｍｓが経過するまで待つ。時間が経過すると、処理はステップＳ５９へ進む。
【００６７】
ステップＳ５９において、データ複製部１６ａは、仮想計算機１２ｂがデータフローの最後尾かどうか判定する。仮想計算機１２ｄはデータフローの最後尾のため、処理は終了する。
【００６８】
したがって、本実施の形態では、仮想計算機に対応付けられ、自身と他の複数の仮想計算機のデータを各メモリに保持するメモリ領域と、複数のメモリに保持されるデータそれぞれのタイムスタンプ情報を保持する第１のタイムスタンプ情報領域と、複数の仮想計算機のデータを各バッファに保持するバッファ領域と、複数のバッファに保持されるデータそれぞれのタイムスタンプ情報を保持する第２のタイムスタンプ情報領域と、メモリ領域と、バッファ領域とについて、データの経路を示すデータフロー上で処理対象の仮想計算機より前に位置する仮想計算機のデータを保持するメモリとバッファとのどちらのデータを他方に上書きするか、第１のタイムスタンプ情報領域のタイムスタンプ情報と第２のタイムスタンプ情報領域のタイムスタンプ情報とに基づいて判定するデータ複製部と、を備え、データ複製部は、処理対象の仮想計算機に対応付けられたメモリ領域のメモリから処理対象の仮想計算機のデータを、処理対象の仮想計算機に対応付けられたバッファ領域のバッファに保存するとともに、メモリのタイムスタンプ情報とバッファのタイムスタンプ情報とに現在の時刻を保存するので、仮想計算機内の環境を変えずに仮想計算機間でのデータの伝送を模擬することができる。
【００６９】
また、データフロー上の各仮想計算機について、データフロー上の直前に位置する仮想計算機からの伝送遅延を示す伝送遅延時間を保持するネットワークトポロジ情報保存部を備え、データ複製部は、処理対象の仮想計算機の伝送遅延時間が経過すると、データフロー上で次に位置する仮想計算機を新たな処理対象の仮想計算機とするので、仮想計算機内の環境を変えずに、データの伝送における遅延を模擬することができる。
【００７０】
また、ネットワークトポロジ情報保存部は、仮想計算機がデータフロー上で直前に位置する仮想計算機と接続されているか否かを示す状態を保持し、データ複製部は、処理対象の仮想計算機に対応付けられたメモリ領域とバッファ領域とについて、データフロー上で処理対象の仮想計算機より前に位置する仮想計算機のうち、状態が切断である仮想計算機より前に位置する仮想計算機のメモリとバッファと、それぞれ対応するタイムスタンプ情報とを変更しないので、仮想計算機内の環境を変えずにネットワークが切断されている場合のデータ伝送を模擬することができる。
【００７１】
実施の形態２．
以上の実施の形態１では、データフローの先頭からデータを伝送する場合を模擬したものであるが、本実施の形態においては、周期的にデータが更新される実施の形態を示す。
なお、本実施の形態においては、実施の形態１に記載の構成を全て備えた上で、更に付加的な構成について説明する。
【００７２】
図１０は、実施の形態２に係る伝送模擬装置の構成を示すブロック図である。伝送模擬装置としての物理計算機１０１は、伝送模擬機構部１０２にメモリの更新タイミングを管理する更新タイミング管理部１０３を設けている。また、ネットワークトポロジ情報保存部１０４は、ネットワークトポロジ情報４１の他にメモリの更新タイミングを示す更新タイミング情報１１１を保持する。
【００７３】
図１１は、実施の形態２に係る更新タイミング情報１１１を示す図である。例えば、データフローａは１００００ｍｓごとにメモリを更新することを示している。
【００７４】
次に、動作について説明する。
図１２は、実施の形態２に係る更新タイミング管理部１０３の処理の流れを示すフローチャートである。データフローａにおいて伝送する場合を例として説明する。ユーザからデータフローａが指定されると、更新タイミング管理部１０３は、ステップＳ１２１より処理を開始する。
【００７５】
ステップＳ１２１において、更新タイミング管理部１０３は、更新タイミング管理部１０３の更新タイミング情報１１１を参照し、データフローａの更新タイミング「１００００ｍｓ」を取得する。処理はステップＳ１２２へ進む。
【００７６】
ステップＳ１２２において、更新タイミング管理部１０３は、データ複製部１６ａにデータフローａにおける伝送を指示する。データ複製部１６ａから処理が終了したことを通知されると、処理はステップＳ１２３へ進む。
【００７７】
ステップＳ１２３において、更新タイミング管理部１０３は、データ複製部１６ａの処理にかかった時間を測定し、更新タイミングの時間と比較する。更新タイミングに達している場合、処理はステップＳ１２２へ進む。更新タイミングに達していない場合、処理はステップＳ１２４へ進む。
【００７８】
ステップＳ１２４において、更新タイミング管理部１０３は、更新タイミングまで待つ。更新タイミングに達すると、処理はステップＳ１２２へ進む。
【００７９】
したがって、本実施の形態では、ネットワークトポロジ情報保存部は、データフロー毎にデータフロー上の仮想計算機のデータを更新する更新タイミングを保持し、更新タイミングが経過すると、データフローに対応するデータ複製部に通知する更新タイミング管理部を備えているので、周期的にデータが更新される場合の伝送を模擬することができる。
【００８０】
実施の形態３．
以上の実施の形態２では、周期的にデータが更新される場合の伝送を模擬するようにしたものであるが、本実施の形態においては、複数のデータフローの伝送を模擬する場合に効率よくＣＰＵパワーを使用する実施の形態を示す。
本実施の形態において、伝送模擬装置としての物理計算機１０１の構成は図１０と同じであるため、説明を割愛する。
【００８１】
動作について説明する。
図１３は、実施の形態３に係る更新タイミング管理部１０３の処理の流れを示すフローチャートである。データフローａとともにデータフローｂの処理が同時に実施されている場合を例として説明する。更新タイミング管理部１０３は、模擬するデータフローａ、ｂが入力されるとステップＳ１３１より処理を開始する。
【００８２】
ステップＳ１３１において、更新タイミング管理部１０３は、更新タイミング情報１１１を参照し、データフローａの更新タイミング「１００００ｍｓ」及びデータフローｂの更新タイミング「１２０００ｍｓ」を取得する。処理はステップＳ１３２へ進む。
【００８３】
ステップＳ１３２において、更新タイミング管理部１０３は、データ複製部１６ａ及びデータ複製部１６ｂのデータ複製部にメモリの更新を指示する。処理はステップＳ１３３へ進む。
【００８４】
ステップＳ１３３において、更新タイミング管理部１０３は、データ複製部１６ａ又はデータ複製部１６ｂのいずれかから更新処理が終了したことを通知されると、処理はステップＳ１３４へ進む。更新処理が終了していない場合、処理はステップＳ１３３に戻る。ここでは、データ複製部１６ａから更新処理が終了したことを通知されたとする。
【００８５】
ステップＳ１３４において、更新タイミング管理部１０３は、データ複製部１６ａの処理にかかった時間を測定し、更新タイミングの時間と比較する。更新タイミングの場合、処理はステップＳ１３２へ進む。更新タイミングでない場合、処理はステップＳ１３４へ進む。
【００８６】
ステップＳ１３５において、更新タイミング管理部１０３は、データ複製部１６ｂが処理中かどうか判定する。データ複製部１６ｂが処理中の場合、処理はステップＳ１３６へ進む。処理中でない場合、処理はステップＳ１３７へ進む。
【００８７】
ステップＳ１３６において、更新タイミング管理部１０３は、データ複製部１６ａに割り当てられていたＣＰＵリソースを解放するように通知する。処理はステップＳ１３７へ進む。
【００８８】
ステップＳ１３７において、更新タイミング管理部１０３は、更新タイミングまで待つ。更新タイミングに達すると、処理はステップＳ１３２に戻る。
【００８９】
したがって、本実施の形態では、データ複製部は、データフロー上の最後尾の仮想計算機まで処理が終了すると更新タイミング管理部に通知し、更新タイミング管理部は、更新タイミングに達していない場合、データ複製部に保持している計算機リソースを解放するように通知するので、複数のデータフローの伝送を模擬する場合に効率よくＣＰＵパワーを使用することができる。
【００９０】
実施の形態４．
以上の実施の形態３では、複数のデータフローの伝送を模擬する場合に効率よくＣＰＵパワーを使用するようにしたものであるが、本実施の形態においては、リング状のデータフローの伝送を模擬する実施の形態を示す。
本実施の形態において、伝送模擬装置としての物理計算機１０１の構成は図１０と同じであるため、説明を割愛する。
【００９１】
図１４は、実施の形態４に係る仮想計算機１２ａ〜ｃが模擬するネットワークの構成を示す図である。
図１５は、実施の形態４に係るネットワークトポロジ情報保存部１０４に保存されるネットワークトポロジ情報１５１を示す図である。ネットワークトポロジ情報１５１には、データフローｃ及びデータフローｄのネットワークトポロジ情報が保存されている。データフローｃは、仮想計算機１２ａ、仮想計算機１２ｂ、仮想計算機１２ｃの順にリング状に接続されたデータフローである。各仮想計算機の状態は接続で、伝送遅延はｔｘである。データフローｄは、仮想計算機１２ａ、仮想計算機１２ｃ、仮想計算機１２ｂの順にリング状に接続されたデータフローである。各仮想計算機の状態は接続で、伝送遅延はｔｘである。データフローｃとデータフローｄは、同じ仮想計算機から成るデータフローである。データフローｃは時計回り方向であるのに対し、データフローｄは反時計回り方向である。
【００９２】
図１６は、実施の形態４に係る更新タイミング情報１６１を示す図である。データフローｃとデータフローｄはともにｔｙごとにメモリを更新することを示している。
【００９３】
動作について説明する。
図１７は、実施の形態４に係る更新タイミング管理部１０３の処理の流れを示すフローチャートである。更新タイミング管理部１０３は、模擬するデータフローｃ、ｄが入力されるとステップＳ１７１より処理を開始する。
【００９４】
ステップＳ１７１において、更新タイミング管理部１０３は、更新タイミング管理部１０３の更新タイミング情報１６１を参照し、データフローｃ及びデータフローｄの更新タイミングｔｙを取得する。処理はステップＳ１７２へ進む。
【００９５】
ステップＳ１７２において、更新タイミング管理部１０３は、データ複製部１６ｃ及びデータ複製部１６ｄの両方に更新を指示する。処理はステップＳ１７３へ進む。
【００９６】
ステップＳ１７３において、更新タイミング管理部１０３は、データ複製部１６ｃ又はデータ複製部１６ｄのいずれかから更新処理が終了したことを通知されると、処理はステップＳ１７４へ進む。更新処理が終了していない場合、処理はステップＳ１７３に戻る。ここでは、データ複製部１６ｃから更新処理が終了したことを通知されたとする。
【００９７】
ステップＳ１７４において、更新タイミング管理部１０３は、他のデータ複製部としてデータ複製部１６ｄが処理中かどうか判定する。データ複製部１６ｄが処理中の場合、処理はステップＳ１７５へ進む。処理中でない場合、処理はステップＳ１７６へ進む。
【００９８】
ステップＳ１７５において、更新タイミング管理部１０３は、データ複製部１６ｃに割り当てられていたＣＰＵリソースを明示的に解放するように通知する。処理はステップＳ１７６へ進む。
【００９９】
ステップＳ１７６において、更新タイミング管理部１０３は、データ複製部１６ｃの処理にかかった時間を測定し、更新タイミングの時間と比較する。更新タイミングの場合、処理はステップＳ１７２に戻る。更新タイミングでない場合、処理はステップＳ１７４へ進む。
【０１００】
ステップＳ１７７において、更新タイミング管理部１０３は、更新タイミングまで待つ。更新タイミングに達すると、処理はステップＳ１７２に戻る。
【０１０１】
したがって、本実施の形態では、ネットワークトポロジ情報保存部は、複数のデータフローについて同一の更新タイミングを保持し、更新タイミング管理部は、更新タイミングになると、同一の更新タイミングのデータフローに対応する複数のデータ複製部に通知するので、複数のデータフローの更新タイミングを合わせることができる。
【符号の説明】
【０１０２】
１１、１０１  物理計算機
１２ａ〜ｎ  仮想計算機
１３ａ〜ｎ  メモリ領域
１４ａ〜ｎ  タイムスタンプ情報領域
１５、１０２  伝送模擬機構部
１６ａ〜ｍ  データ複製部
１７ａ〜ｍ  バッファ
１８ａ〜ｍ  タイムスタンプ情報領域
１９、１０４  ネットワークトポロジ情報保存部
２１ａ〜ｎ、２１ａａ〜２１ａｄ、２１ｂａ〜２１ｂｄ、２１ｃａ〜２１ｃｄ、２１ｄａ〜２１ｄｄ  メモリ
２２ａ〜ｎ、２２ａａ〜２２ａｄ、２２ｂａ〜２２ｂｄ、２２ｃａ〜２２ｃｄ、２２ｄａ〜２２ｄｄ、３２ａ〜ｎ  タイムスタンプ情報
３１ａ〜ｎ  バッファ
４１、１５１  ネットワークトポロジ情報
１０３  更新タイミング管理部
１１１、１６１  更新タイミング情報
【図１】
2015103208.tif 000003
【図２】
2015103208.tif 000004
【図３】
2015103208.tif 000005
【図４】
2015103208.tif 000006
【図５】
2015103208.tif 000007
【図６】
2015103208.tif 000008
【図７】
2015103208.tif 000009
【図８】
2015103208.tif 000010
【図９】
2015103208.tif 000011
【図１０】
2015103208.tif 000012
【図１１】
2015103208.tif 000013
【図１２】
2015103208.tif 000014
【図１３】
2015103208.tif 000015
【図１４】
2015103208.tif 000016
【図１５】
2015103208.tif 000017
【図１６】
2015103208.tif 000018
【図１７】
2015103208.tif 000019