(57)【特許請求の範囲】
【請求項１】
複数のシミュレータが他のシミュレータとデータ交換を実施しながらシミュレーションを実施するシミュレーション装置において、少なくとも１以上のシミュレータが接続されている複数のネットワークと、上記ネットワークに接続されているシミュレータの時刻進行を管理するとともに、上記シミュレータから送信されたデータを同一ネットワークに接続されている他のシミュレータに配信する複数のシミュレータ管理手段と、上記複数のネットワーク間に接続され、ネットワーク間のデータ転送を実施するネットワーク接続手段とを備え、上記シミュレータ管理手段は、自己と同じネットワークに接続されている全てのシミュレータと上記ネットワーク接続手段から時刻進行要求を受信した時点で、上記シミュレータと上記ネットワーク接続手段の時刻進行を許可し、上記ネットワーク接続手段はあるネットワークに接続されているシミュレータ管理手段から配信されたデータを受信すると、上記データを他のネットワークに接続されているシミュレータ管理手段に直ちに転送してから、時刻進行要求を上記複数のシミュレータ管理手段に送信することを特徴とするシミュレーション装置。
【請求項２】
複数のネットワーク接続手段が複数のネットワーク間に接続されている場合、あるネットワーク接続手段があるネットワークに接続されているシミュレータ管理手段から配信されたデータを受信すると、他のネットワークに接続されているシミュレータ管理手段を介して、上記データを他のネットワーク接続手段に直ちに転送することを特徴とする請求項１記載のシミュレーション装置。
【請求項３】
ネットワーク接続手段は、複数のシミュレータが時刻進行を要求している論理時刻と同じ論理時刻に時刻を進める時刻進行要求をシミュレータ管理手段に送信して、上記シミュレータ管理手段から時刻進行の許可を受けると、上記論理時刻に時刻を進めることを特徴とする請求項１または請求項２記載のシミュレーション装置。
【請求項４】
シミュレータが論理時刻を最小タイムステップの自然数倍だけ進める時刻進行要求をシミュレータ管理手段に送信するとともに、ネットワーク接続手段が論理時刻を最小タイムステップだけ進める時刻進行要求を上記シミュレータ管理手段に送信し、上記シミュレータ管理手段から時刻進行の許可を受けると、上記シミュレータが論理時刻を最小タイムステップの自然数倍だけ進め、上記ネットワーク接続手段が論理時刻を最小タイムステップだけ進めることを特徴とする請求項１または請求項２記載のシミュレーション装置。
【請求項５】
ネットワーク接続手段は、複数のシミュレータが時刻進行を要求している論理時刻の中で、最も小さい論理時刻に時刻を進める時刻進行要求をシミュレータ管理手段に送信して、上記シミュレータ管理手段から時刻進行の許可を受けると、上記論理時刻に時刻を進めることを特徴とする請求項１記載のシミュレーション装置。
【請求項６】
ネットワーク接続手段は、複数のシミュレータが時刻進行を要求している論理時刻の中で、最も小さい論理時刻を求めるとともに、他のネットワーク接続手段により求められた最も小さい論理時刻を受信し、求めた論理時刻と受信した論理時刻のうち、小さい方の論理時刻に時刻を進める時刻進行要求をシミュレータ管理手段に送信して、上記シミュレータ管理手段から時刻進行の許可を受けると、上記論理時刻に時刻を進めることを特徴とする請求項２記載のシミュレーション装置。
【請求項７】
複数のシミュレータが他のシミュレータとデータ交換を実施しながらシミュレーションを実施するシミュレーション装置において、少なくとも１以上のシミュレータが接続されている複数のネットワークと、上記ネットワークに接続されているシミュレータの時刻進行を管理するとともに、上記シミュレータから送信されたデータを同一ネットワークに接続されている他のシミュレータに配信する複数のシミュレータ管理手段と、上記複数のネットワーク間に接続され、ネットワーク間のデータ転送を実施するネットワーク接続手段とを備え、上記シミュレータ管理手段は、自己と同じネットワークに接続されている全てのシミュレータと上記ネットワーク接続手段から時刻進行要求を受信した時点で、上記シミュレータと上記ネットワーク接続手段の時刻進行を許可し、上記ネットワーク接続手段はあるネットワークに接続されているシミュレータ管理手段から配信されたデータを時刻進行要求中に受信すると、時刻進行後に、他のネットワークに接続されているシミュレータ管理手段に転送してから、上記複数のシミュレータのタイムステップより小さなタイムステップで時刻を進める時刻進行要求をシミュレータ管理手段に送信して、上記シミュレータ管理手段から時刻進行の許可を受けると、論理時刻を上記タイムステップだけ進めることを特徴とするシミュレーション装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、複数のシミュレータが他のシミュレータとデータ交換を実施しながらシミュレーションを実施するシミュレーション装置に関するものである。
【背景技術】
【０００２】
あるシステムのシミュレーションを行う際に、システムの各構成要素を個別のシミュレータで模擬し、それらのシミュレータを協調して動作させることが考えられる。
この技術は「並列シミュレーション」と呼ばれ、「実行時間が短縮できる」、「別のシミュレーションにシミュレータを再利用できる」などの利点がある。
また、協調して動作するシミュレータ群や、シミュレータを制御する機能を持つソフトウェアから構成されるシステムを「シミュレーションシステム」と呼ぶことにする。
【０００３】
個々のシミュレータは、「時刻」を持ち、現在時刻における状態や、他のシミュレータから受け取ったデータに基づいて、少し先の未来がどのようになるかについてのシミュレーションの実行を繰り返しながら、少しずつ時刻を進めていくようにする。
その際、個々のシミュレータは、必要に応じてデータを他のシミュレータに送信する。
一般に、シミュレータ間でやり取りされるデータには、「そのデータがどの時刻に対応するものかを表す数値」が付与されており、この数値は「タイムスタンプ」と呼ばれる。
時刻の進め方としてはいくつかの方法が考えられるが、本明細書ではタイムステップ方式を前提とする。
タイムステップ方式では、各シミュレータにおける時刻の進行幅（タイムステップ）が常に一定である（ただし、シミュレータによって、タイムステップが異なる可能性はある）。
【０００４】
ここで、「時刻」について混乱がないように整理する。
一般に、並列シミュレーションにおいては、３種類の時刻の概念が存在する。即ち、「物理時刻」と「シミュレーション時刻」と「ウォールクロック時刻」が存在する。
「物理時刻」とは、シミュレーション対象のシステムにおける時刻のことである。
また、「シミュレーション時刻」とは、物理時刻のシミュレータ内部における表現である。
また、「ウォールクロック時刻」とは、シミュレーションを実行している側の時刻である。
【０００５】
例えば、２００８年１月１日の列車運行のシミュレーションを行う場合を考える。この場合、物理時刻は「２００８年１月１日０時〜２００８年１月１日２４時」の範囲を考えることになる。
また、シミュレーションにおいて、１時間を１単位として処理する場合、シミュレーション時刻は、例えば「０〜２４」の範囲の数値を取ることになる。また、シミュレーションを２００７年１２月１日の午後に実行する場合、ウォールクロック時刻は、例えば「２００７年１２月１日１３時〜１７時」の範囲となる。
以下、本明細書において、「時刻」と表記する場合、特に断りのない限り、上記のシミュレーション時刻のことを指すものとする。また、個々のシミュレータのシミュレーション時刻のことを「論理時刻」とも称する。
【０００６】
さて、全体のシミュレーションを矛盾なく実行するためには、「各シミュレータは、現在時刻よりも過去のタイムスタンプ付きのデータを受け取ってはならない」、「各シミュレータはデータをタイムスタンプ順に処理しなければならない」などの制約を守る必要がある。
そのためには、シミュレータへのデータ配信や、シミュレータの時刻進行の制御が適切に行われなければならない。この機能は「時刻管理機能」と呼ばれる。
【０００７】
例えば、ＨＬＡ（Ｈｉｇｈ  Ｌｅｖｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ、ＩＥＥＥ  １５１６）のように標準化された並列シミュレーションシステムの構築アーキテクチャにおいては、シミュレータの管理を行う基盤ソフトウェアＲＴＩ（Ｒｕｎ−Ｔｉｍｅ  Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ）のインターフェース等が定められている。
この基盤ソフトウェアＲＴＩは、シミュレータを制御するための様々な機能を有するが、その１つとして時刻管理機能を有している。
シミュレータ間のデータ通信やシミュレータの時刻進行の全ては、基盤ソフトウェアＲＴＩが介在して行うようになっている。
【０００８】
ここまでは、単一のシミュレーションシステムについて説明したが、さらに、複数のシミュレーションシステムを協調して動作させて、大規模なシミュレーションを実施させたい場合がある。
これは、例えば、複数のシミュレーションシステムをまとめて、単一のシミュレーションシステムに再構成するために、シミュレータの改修等に手間がかかる場合などが相当する。
そこで、シミュレーションシステム間のデータ配信を特別なシミュレータ（ブリッジ）を介して行う方式が提案されている（例えば、非特許文献１や非特許文献２を参照）。
【０００９】
しかし、ブリッジを利用する複数のシミュレーションシステムの連接方式では、シミュレーションシステムを跨ぐデータの配信に遅延が発生する可能性がある。
以下、図１２から図１５を参照しながら説明する。
図１２は複数のシミュレーションシステムの連接方式を実現するシミュレーション装置を示す構成図である。
図において、シミュレータＡ１，Ａ２，Ｂ１，Ｂ２は、所定のタイムステップの時間間隔で、シミュレーションを繰り返し実行し、そのシミュレーションの結果をタイムスタンプ付きのデータとして、シミュレータ管理手段Ａ，Ｂ経由で他のシミュレータやシミュレーションシステム接続手段に送信するとともに、他のシミュレータやシミュレーションシステム接続手段から送信されたタイムスタンプ付きのデータをシミュレータ管理手段Ａ，Ｂ経由で受信する。
【００１０】
シミュレータ管理手段Ａは、シミュレータＡ１，Ａ２及びシミュレーションシステム接続手段間のデータ交換を制御するとともに、シミュレータＡ１，Ａ２及びシミュレーションシステム接続手段の時刻進行を制御するものである。
また、シミュレータ管理手段Ｂは、シミュレータＢ１，Ｂ２及びシミュレーションシステム接続手段間のデータ交換を制御するとともに、シミュレータＢ１，Ｂ２及びシミュレーションシステム接続手段の時刻進行を制御するものである。
なお、シミュレータ管理手段Ａ，Ｂは、ＨＬＡにおける基盤ソフトウェアＲＴＩに相当する。
【００１１】
シミュレーションシステム接続手段は、シミュレータ管理手段Ａとシミュレータ管理手段Ｂの間に接続され、上述のブリッジ機能を有している。
なお、シミュレータＡ１，Ａ２、シミュレータ管理手段Ａ及びシミュレーションシステム接続手段はネットワークＡに接続されており、シミュレータＢ１，Ｂ２、シミュレータ管理手段Ｂ及びシミュレーションシステム接続手段はネットワークＢに接続されている。
【００１２】
シミュレータ管理手段ＡがシミュレータＡ１，Ａ２及びシミュレーションシステム接続手段を管理し、シミュレータ管理手段ＢがシミュレータＢ１，Ｂ２及びシミュレーションシステム接続手段を管理する。
つまり、シミュレータ管理手段Ａ、シミュレータＡ１、シミュレータＡ２及びシミュレーションシステム接続手段から、１つのシミュレーションシステムが構成されている。
同様に、シミュレータ管理手段Ｂ、シミュレータＢ１、シミュレータＢ２及びシミュレーションシステム接続手段から、もう１つのシミュレーションシステムが構成されている。
以降、前者のシミュレーションシステムにはＡの識別子を割り当て、後者のシミュレーションシステムにはＢの識別子を割り当てるものとする。
【００１３】
図１３は各シミュレータの１回分の時刻進行に対応する処理手順を示すフローチャートである。
ただし、タイムステップは“１”としている。また、初期状態として、各シミュレータの時刻はｔであり、各シミュレータは時刻ｔ以下のタイムスタンプ付きのデータを全て受信済みであるものとする。
【００１４】
まず、ステップＳＴ１１において、シミュレータは、時刻ｔにおける状態と、受信済みの時刻ｔ以下のタイムスタンプ付きのデータとに基づいて、１時刻分のシミュレーションを実施する。
また、１時刻分のシミュレーション結果のうち、他のシミュレータに影響を与える可能性があるシミュレーション結果をタイムスタンプ付きデータとして送信する。
ここで、データの送信先は、当該シミュレータを管理しているシミュレータ管理手段である。
即ち、シミュレータＡ１，Ａ２の場合、データの送信先はシミュレータ管理手段Ａとなり、シミュレータＢ１，Ｂ２の場合、データの送信先はシミュレータ管理手段Ｂとなる。
また、データに付与されるタイムスタンプは、当該シミュレータの現在時刻よりも未来でなければならない制約がある。これは、全体のシミュレーションを矛盾なく実行するために必要な条件である。
【００１５】
次に、ステップＳＴ１２において、シミュレータは、時刻ｔにおけるシミュレーションが終了したら、「時刻ｔ＋１への時刻進行要求」を、自己を管理しているシミュレータ管理手段に送信する。
この際、シミュレータは「時刻進行要求中」の状態に遷移する。この状態になると、以降、当該シミュレータは、時刻ｔ＋１以下のタイムスタンプの付いたデータを送信することができなくなる。
【００１６】
次に、ステップＳＴ１３において、「時刻進行要求中」の状態に遷移しているシミュレータは、自己を管理しているシミュレータ管理手段から、時刻進行要求先時刻である時刻ｔ＋１以下のタイムスタンプ付きのデータを受信する。
シミュレータ管理手段は、管理しているシミュレータに対する時刻ｔ＋１以下のタイムスタンプ付きのデータの配信が完了すると、そのシミュレータに対して「時刻進行許可」を送信する。
【００１７】
次に、ステップＳＴ１４において、シミュレータは、自己を管理しているシミュレータ管理手段から「時刻進行許可」を受信すると、論理時刻を時刻ｔ＋１に進める。
これにより、シミュレータは、「時刻進行要求中でない」状態に遷移し、ステップＳＴ１１の処理に戻る。
ただし、ステップＳＴ１１において、ｔをｔ＋１と読み替えるものとする。
【００１８】
ここで、シミュレータ管理手段における「管理しているシミュレータに対する時刻ｔ＋１以下のタイムスタンプ付きのデータの配信が完了しているか否か」の判定は、管理対象のシミュレータ及びシミュレーションシステム接続手段の現在時刻を参照し、さらに、以下の事項を考慮することにより行うことができる。
・時刻進行要求中でないシミュレータ及びシミュレーションシステム接続手段は、現在時刻以下のタイムスタンプ付きのデータは送信できない。
・時刻進行要求中のシミュレータ及びシミュレーションシステム接続手段は、時刻進行要求先時刻以下のタイムスタンプ付きのデータは送信できない。
【００１９】
図１４はシミュレーションシステム接続手段の１回分の時刻進行に対応する処理手順を示すフローチャートである。
ただし、タイムステップは“１”としている。また、初期状態として、シミュレーションシステム接続手段の時刻はｔであり、シミュレーションシステム接続手段は、時刻ｔ以下のタイムスタンプ付きのデータを全て受信済みであるものとする。
【００２０】
まず、ステップＳＴ２１において、シミュレーションシステム接続手段は、シミュレータ管理手段Ａ，Ｂから受信したデータを他方のシミュレータ管理手段Ｂ，Ａに転送する。シミュレータと異なり、シミュレーションは実施しない。
即ち、データの送信元がシミュレータ管理手段Ａであれば、そのデータをシミュレータ管理手段Ｂに転送し、データの送信元がシミュレータ管理手段Ｂであれば、そのデータをシミュレータ管理手段Ａに転送する。
なお、データに付与されているタイムスタンプは現在時刻以下であるので、上述した送信データのタイムスタンプに関する制約を満足させるため、現在時刻より大きくなるようにタイムスタンプの書き換えを行う。
【００２１】
次に、ステップＳＴ２２において、シミュレーションシステム接続手段は、データの転送が完了すると、「時刻ｔ＋１への時刻進行要求」を全てのシミュレータ管理手段Ａ，Ｂに送信する。
この際、シミュレーションシステム接続手段は「時刻進行要求中」の状態に遷移する。この状態になると、以降、シミュレーションシステム接続手段は、時刻ｔ＋１以下のタイムスタンプの付いたデータを送信することができなくなる。
【００２２】
次に、ステップＳＴ２３において、「時刻進行要求中」の状態に遷移しているシミュレーションシステム接続手段は、各シミュレータ管理手段Ａ，Ｂから、時刻進行要求先時刻である時刻ｔ＋１以下のタイムスタンプ付きのデータを受信する。
各シミュレータ管理手段Ａ，Ｂは、シミュレーションシステム接続手段に対する時刻ｔ＋１以下のタイムスタンプ付きのデータの配信が完了すると、「時刻進行許可」をシミュレーションシステム接続手段に送信する。
【００２３】
次に、ステップＳＴ２４において、シミュレーションシステム接続手段は、各シミュレータ管理手段Ａ，Ｂから「時刻進行許可」を受信すると、論理時刻を時刻ｔ＋１に進める。
これにより、シミュレーションシステム接続手段は、「時刻進行要求中でない」状態に遷移し、ステップＳＴ２１の処理に戻る。
ただし、ステップＳＴ２１において、ｔをｔ＋１と読み替えるものとする。
【００２４】
図１５はシミュレータＡ１，Ａ２，Ｂ１，Ｂ２及びシミュレーションシステム接続手段の具体的な処理の進行の例を示す説明図である。
図１５では、ウォールクロック時刻順に、各時点（１）〜（５）における状況を示している。
図１５において、縦軸が論理時刻であり、下向きに時刻が進行する。
各時間軸において、○印はシミュレータＡ１，Ａ２，Ｂ１，Ｂ２及びシミュレーションシステム接続手段の現在論理時刻を表している。また、各時間軸に接している丸みを帯びた矢印は時刻進行状況を表している。
【００２５】
ここで、破線の矢印は「矢印先の時刻への時刻進行要求中」であることを表し、また、実線の矢印は「矢印先の時刻への時刻進行済み」であることを表している。
さらに、図１５において、例えば「Ｄ（ｔ＋１）」は、「タイムスタンプｔ＋１のデータ」を表している。
以下、（１）〜（５）の各時点における具体的な状況を説明する。ただし、図１５において、タイムステップは全て共通で“１”、また、初期状態において、シミュレータＡ１，Ａ２，Ｂ１，Ｂ２及びシミュレーションシステム接続手段の論理時刻は“ｔ”であるとする。
【００２６】
まず、時点（１）において、シミュレータＡ１，Ａ２，Ｂ１，Ｂ２が時刻ｔにおけるシミュレーションを実施し、シミュレータＡ１がシミュレーション結果に対応するデータとして、タイムスタンプｔ＋１付きのデータＤ（ｔ＋１）を送信するものとする。ただし、説明の簡単化のため、シミュレータＡ１以外のシミュレータは、シミュレーション結果に対応するデータの送信を行わないものとする。
その後、時点（２）において、シミュレータＡ１，Ａ２及びシミュレーションシステム接続手段が、時刻ｔ＋１への時刻進行要求をシミュレータ管理手段Ａに送信し、シミュレータＢ１，Ｂ２及びシミュレーションシステム接続手段が、時刻ｔ＋１への時刻進行要求をシミュレータ管理手段Ｂに送信する。
そして、シミュレータＡ２及びシミュレーションシステム接続手段は、シミュレータＡ１から送信されたデータＤ（ｔ＋１）をシミュレータ管理手段Ａ経由で受信する。
【００２７】
時点（２）においては、シミュレータＡ１，Ａ２，Ｂ１，Ｂ２及びシミュレーションシステム接続手段は、時刻ｔ＋１以下のタイムスタンプの付いたデータを送信できない状態にある。
したがって、シミュレータＡ１，Ａ２，Ｂ１，Ｂ２及びシミュレーションシステム接続手段に関しては、時刻ｔ＋１以下のタイムスタンプ付きのデータの配信が完了していると判定することができるので、次の段階として、各シミュレータ管理手段Ａ，Ｂから時刻進行許可が出されることになる。
【００２８】
そこで、時点（３）において、シミュレータＡ１，Ａ２，Ｂ１，Ｂ２及びシミュレーションシステム接続手段は、論理時刻をｔ＋１の時刻に進める。
ここで、シミュレーションシステム接続手段は、受信済みのデータＤ（ｔ＋１）をシミュレータ管理手段Ｂに送信することになるが、この時点でシミュレーションシステム接続手段の論理時刻がｔ＋１なので、タイムスタンプｔ＋１のデータを送信することができない。したがって、タイムスタンプを、例えばｔ＋２に付け替えて送信することになる。
また、シミュレータＡ１，Ａ２，Ｂ１，Ｂ２においてシミュレーションが行われるが、ここでは簡単のため、シミュレーション結果に対応するデータの送信が行われないものとする。
【００２９】
その後、時点（４）において、シミュレータＡ１，Ａ２及びシミュレーションシステム接続手段が、時刻ｔ＋２への時刻進行要求をシミュレータ管理手段Ａに送信し、シミュレータＢ１，Ｂ２及びシミュレーションシステム接続手段が、時刻ｔ＋２への時刻進行要求をシミュレータ管理手段Ｂに送信する。
そして、シミュレータＢ１，Ｂ２は、シミュレーションシステム接続手段から送信されたデータＤ（ｔ＋２）をシミュレータ管理手段Ｂ経由で受信する。
時点（４）の段階では、シミュレータＡ１，Ａ２，Ｂ１，Ｂ２及びシミュレーションシステム接続手段に関しては、時刻ｔ＋２以下のタイムスタンプ付きのデータの配信が完了していると判定することができるので、次の段階として、各シミュレータ管理手段Ａ，Ｂから時刻進行許可が出されることになる。
そこで、時点（５）において、シミュレータＡ１，Ａ２，Ｂ１，Ｂ２及びシミュレーションシステム接続手段は、論理時刻をｔ＋２の時刻に進める。
【００３０】
図１５の例では、上述のように、シミュレータＡ１から送信されたタイムスタンプｔ＋１付きのデータは、シミュレータＢ１，Ｂ２が論理時刻をｔ＋２に進める際に配信されている。
タイムスタンプｔ＋１付きのデータは、本来、論理時刻をｔ＋１に進める際に配信されるべきデータであり、シミュレーションシステム接続手段が介在するために、１時刻分のデータ配信遅延が生じている。
このようにデータ配信が遅延すると、全体としてのシミュレーション結果が不正確なものとなる可能性があるので好ましくない。
【００３１】
【非特許文献１】W. Braudaway and R. Little. "The High Level Architecture's Bridge Federate", In Procs. of the Fall Simulation Interoperability Workshop, 97F-SIW-078, September 1997.
【非特許文献２】J. Dingel, D. Garlan and C. Damon. "Bridging the HLA: Problems and Solutions", in Procs. of 6th DSRT、 pp.33-42 USA, October 2002
【発明の開示】
【発明が解決しようとする課題】
【００３２】
従来のシミュレーション装置は以上のように構成されているので、複数のシミュレーションシステムを連接して、大規模なシミュレーションシステムを構築することができる。しかし、シミュレーションシステムを跨ぐデータの配信に遅延が発生して、全体としてのシミュレーション結果が不正確なものになる可能性があるなどの課題があった。
【００３３】
この発明は上記のような課題を解決するためになされたもので、シミュレーションシステムを跨ぐデータの配信を行う場合でも、データ配信の遅延を防止して、正確なシミュレーション結果を得ることができるシミュレーション装置を得ることを目的とする。
【課題を解決するための手段】
【００３４】
この発明に係るシミュレーション装置は、シミュレータ管理手段が、自己と同じネットワークに接続されている全てのシミュレータとネットワーク接続手段から時刻進行要求を受信した時点で、シミュレータとネットワーク接続手段の時刻進行を許可し、ネットワーク接続手段が、あるネットワークに接続されているシミュレータ管理手段から配信されたデータを受信すると、そのデータを他のネットワークに接続されているシミュレータ管理手段に直ちに転送してから、時刻進行要求を複数のシミュレータ管理手段に送信するようにしたものである。
【発明の効果】
【００３５】
この発明によれば、シミュレータ管理手段が、自己と同じネットワークに接続されている全てのシミュレータとネットワーク接続手段から時刻進行要求を受信した時点で、シミュレータとネットワーク接続手段の時刻進行を許可し、ネットワーク接続手段が、あるネットワークに接続されているシミュレータ管理手段から配信されたデータを受信すると、そのデータを他のネットワークに接続されているシミュレータ管理手段に直ちに転送してから、時刻進行要求を複数のシミュレータ管理手段に送信するように構成したので、他のネットワークに接続されているシミュレータにデータの配信を行う場合でも、データ配信の遅延を防止して、正確なシミュレーション結果を得ることができる効果がある。
【発明を実施するための最良の形態】
【００３６】
実施の形態１．
図１はこの発明の実施の形態１によるシミュレーション装置を示す構成図であり、図において、シミュレータＡ１，Ａ２，Ｂ１，Ｂ２は所定のタイムステップの時間間隔で、シミュレーションを繰り返し実行し、そのシミュレーションの結果をタイムスタンプ付きのデータとして、シミュレータ管理手段Ａ，Ｂ経由で他のシミュレータやシミュレーションシステム接続部に送信するとともに、他のシミュレータやシミュレーションシステム接続部から送信されたタイムスタンプ付きのデータをシミュレータ管理手段Ａ，Ｂ経由で受信する。
【００３７】
ネットワークＡにはシミュレータＡ１，Ａ２、シミュレータ管理部Ａ及びシミュレーションシステム接続部３が接続されており、シミュレータＡ１，Ａ２、シミュレータ管理部Ａ、シミュレーションシステム接続部３及びネットワークＡからシミュレーションシステムＡが構成されている。
ネットワークＢにはシミュレータＢ１，Ｂ２、シミュレータ管理部Ｂ及びシミュレーションシステム接続部３が接続されており、シミュレータＢ１，Ｂ２、シミュレータ管理部Ｂ、シミュレーションシステム接続部３及びネットワークＢからシミュレーションシステムＢが構成されている。
【００３８】
シミュレータ管理部Ａはデータ配信部１及び時刻進行管理部２から構成されており、ネットワークＡに接続されているシミュレータＡ１，Ａ２及びシミュレーションシステム接続部３の時刻進行を管理するとともに、例えば、シミュレータＡ１から送信されたデータをシミュレータＡ２及びシミュレーションシステム接続部３に配信し、また、シミュレータＡ１，Ａ２及びシミュレーションシステム接続部３から時刻進行要求を受信した時点で、シミュレータＡ１，Ａ２及びシミュレーションシステム接続部３の時刻進行を許可するなどの処理を実施する。
シミュレータ管理部Ａのデータ配信部１は例えばシミュレータＡ１から送信されたデータをシミュレータＡ２及びシミュレーションシステム接続部３に配信し、シミュレーションシステム接続部３から転送されたデータをシミュレータＡ１，Ａ２に配信するなどの処理を実施する。
シミュレータ管理部Ａの時刻進行管理部２はシミュレータＡ１，Ａ２及びシミュレーションシステム接続部３の時刻進行を管理する処理を実施する。
【００３９】
シミュレータ管理部Ｂはデータ配信部１及び時刻進行管理部２から構成されており、ネットワークＢに接続されているシミュレータＢ１，Ｂ２及びシミュレーションシステム接続部３の時刻進行を管理するとともに、例えば、シミュレータＢ１から送信されたデータをシミュレータＢ２及びシミュレーションシステム接続部３に配信し、また、シミュレータＢ１，Ｂ２及びシミュレーションシステム接続部３から時刻進行要求を受信した時点で、シミュレータＢ１，Ｂ２及びシミュレーションシステム接続部３の時刻進行を許可するなどの処理を実施する。
シミュレータ管理部Ｂのデータ配信部１は例えばシミュレータＢ１から送信されたデータをシミュレータＢ２及びシミュレーションシステム接続部３に配信し、シミュレーションシステム接続部３から転送されたデータをシミュレータＢ１，Ｂ２に配信するなどの処理を実施する。
シミュレータ管理部Ｂの時刻進行管理部２はシミュレータＢ１，Ｂ２及びシミュレーションシステム接続部３の時刻進行を管理する処理を実施する。
なお、シミュレータ管理部Ａ，Ｂはそれぞれシミュレータ管理手段を構成している。
【００４０】
シミュレーションシステム接続部３は時刻管理部４及びデータ転送部５から構成されており、例えば、シミュレータ管理部Ａから配信されたデータを受信すると、そのデータをシミュレータ管理部Ｂに直ちに転送してから、シミュレータＡ１，Ａ２，Ｂ１，Ｂ２が「時刻進行要求中」の状態になったことを確認後、時刻進行要求をシミュレータ管理部Ａ，Ｂに送信するなどの処理を実施する。
時刻管理部４はシミュレータ管理部Ａ，Ｂの時刻進行管理部２に保持されている時刻進行情報を参照して、シミュレータＡ１，Ａ２，Ｂ１，Ｂ２が時刻進行要求中であることを確認できた時点で、シミュレータＡ１，Ａ２，Ｂ１，Ｂ２の時刻進行要求先時刻を越えない範囲内での時刻進行要求をシミュレータ管理部Ａ，Ｂに送信し、シミュレータ管理部Ａ，Ｂにより時刻進行が許可されると、シミュレーションシステム接続部３の論理時刻を要求した時刻まで進める。
データ転送部５はシミュレータ管理部Ａから配信されたデータを受信すると、そのデータをシミュレータ管理部Ｂに直ちに転送し、シミュレータ管理部Ｂから配信されたデータを受信すると、そのデータをシミュレータ管理部Ａに直ちに転送するなどの処理を実施する。
なお、シミュレーションシステム接続部３はネットワーク接続手段を構成している。
【００４１】
次に動作について説明する。
図２はシミュレーションシステム接続部３の１回分の時刻進行に対応する処理手順を示すフローチャートである。
まず、ステップＳＴ１において、シミュレーションシステム接続部３のデータ転送部５は、シミュレーションシステムＡ，Ｂ間のデータの中継を行う。
即ち、シミュレータ管理部Ａからデータを受信すると、そのデータを速やかにシミュレータ管理部Ｂに転送する。
また、シミュレータ管理部Ｂからデータを受信すると、そのデータを速やかにシミュレータ管理部Ａに転送する。
【００４２】
次に、ステップＳＴ２において、シミュレーションシステム接続部３の時刻管理部４は、シミュレータ管理部Ａ，Ｂの時刻進行管理部２に保持されている時刻進行情報を参照して、シミュレータＡ１，Ａ２，Ｂ１，Ｂ２が時刻進行要求中であるか否かを確認し、シミュレータＡ１，Ａ２，Ｂ１，Ｂ２の全てが時刻進行要求中になると、その時点で、シミュレータＡ１，Ａ２，Ｂ１，Ｂ２の時刻進行要求先時刻を越えない範囲内での時刻進行要求をシミュレータ管理部Ａ，Ｂに送信する。
このとき、シミュレーションシステム接続部３の時刻管理部４は、「時刻進行要求中」の状態に遷移する。
【００４３】
シミュレータ管理部Ａの時刻進行管理部２は、シミュレータＡ１，Ａ２及びシミュレーションシステム接続部３から時刻進行要求を受信した時点で、シミュレータＡ１，Ａ２及びシミュレーションシステム接続部３の時刻進行を許可する。
ここで、時刻進行が許可されるのは、時刻進行後に過去のタイムスタンプが付与されたデータを受信することがないと保証できるシミュレータおよびシミュレーションシステム接続部、つまり、「時刻進行要求先時刻が、これらのシミュレータおよびシミュレーションシステム接続部３の時刻進行要求先時刻以下である」シミュレータおよびシミュレーションシステム接続部に限られる。
また、シミュレータ管理部Ｂの時刻進行管理部２は、シミュレータＢ１，Ｂ２及びシミュレーションシステム接続部３から時刻進行要求を受信した時点で、シミュレータＢ１，Ｂ２及びシミュレーションシステム接続部３の時刻進行を許可する。
ここで、時刻進行が許可されるのは、時刻進行後に過去のタイムスタンプが付与されたデータを受信することがないと保証できるシミュレータおよびシミュレーションシステム接続部、つまり、「時刻進行要求先時刻が、これらのシミュレータおよびシミュレーションシステム接続部３の時刻進行要求先時刻以下である」シミュレータおよびシミュレーションシステム接続部に限られる。
【００４４】
次に、ステップＳＴ３において、シミュレーションシステム接続部３の時刻管理部４は、シミュレータ管理部Ａ，Ｂから時刻進行許可を受信すると、論理時刻を要求した時刻まで進める。
この際、シミュレーションシステム接続部３は「時刻進行要求中でない」状態に遷移する。
【００４５】
以下、シミュレーションシステムＡ，Ｂ間を跨ぐデータ配信について説明する。
例えば、シミュレータＡ１から送信されたデータは、シミュレータＡ１を管理対象とするシミュレータ管理部Ａ経由で、速やかにシミュレーションシステム接続部３のデータ転送部５に受信される。
ミュレーションシステム接続部３のデータ転送部５は、受信したデータを送信元以外のシミュレータ管理部であるシミュレータ管理部Ｂに速やかに転送する。
シミュレータ管理部Ｂのデータ配信部１は、ミュレーションシステム接続部３から転送されたデータを受信すると、そのデータに付与されているタイムスタンプに応じた時刻に、そのデータをシミュレータＢ１，Ｂ２に送信する。
したがって、データがシミュレーションシステム接続部３を経由する際に、１時刻分の遅延が発生する問題は起こらない。
【００４６】
また、シミュレータ管理部Ａ，Ｂの時刻進行管理部２は、上述したように、管理対象の全シミュレータとシミュレーションシステム接続部３の状態が「時刻進行要求中」になった後に、「時刻進行要求先時刻が、同じシミュレーションシステムに属する他シミュレータ及びシミュレーションシステム接続部３の時刻進行要求先時刻以下である」シミュレータおよびシミュレーションシステム接続部に対して時刻進行許可を送信する。
一方、シミュレーションシステム接続部３の時刻進行要求先時刻は、全シミュレータの時刻進行要求先時刻を越えないように設定されるため、結局、「時刻進行要求先時刻が、全シミュレータの時刻進行要求先時刻の最小値以下である」シミュレータおよびシミュレーションシステム接続部に対して時刻進行許可が与えられることになる。
【００４７】
したがって、時刻進行許可が与えられるシミュレータについては、「時刻進行要求先時刻以下のタイムスタンプ付きデータの配信が全て完了している」ことが保証される。つまり、シミュレータが過去のタイムスタンプ付きデータを受信するという現象は生じ得ないので、シミュレーションに不整合が生じない。
よって、図１のシミュレーション装置を利用することにより、複数のシミュレーションシステムＡ，Ｂ間を跨るタイムスタンプ付きデータの配信を不整合が生じないように、かつ、遅延が発生しないように実施することができる。
【００４８】
以下、全シミュレータのタイムステップが全て同一である場合を考える。
この場合、シミュレーションシステム接続部３の時刻管理部４及びシミュレータ管理部Ａ，Ｂの時刻進行管理部２の動作を以下のように具体化することができる。
シミュレーションシステム接続部３の時刻管理部４は、時刻進行要求の際、シミュレータＡ１，Ａ２，Ｂ１，Ｂ２と同一のタイムステップだけ未来の時刻への時刻進行要求を送信する。
シミュレータ管理部Ａ，Ｂの時刻進行管理部２は、時刻進行許可の際、管理対象の全シミュレータとシミュレーションシステム接続部３が時刻進行要求中となった後に、管理対象の全シミュレータ及びシミュレーションシステム接続部３に対して時刻進行許可を送信する。
【００４９】
図３は全シミュレータのタイムステップが同一である場合の全シミュレータ及びシミュレーションシステム接続部３の具体的な処理の進行の例を示す説明図である。
図３では、ウォールクロック時刻順に、各時点（１）〜（４）における状況を示している。
ただし、図３において、シミュレータＡ１，Ａ２，Ｂ１，Ｂ２のタイムステップは全て共通で“１”、また、初期状態において、シミュレータＡ１，Ａ２，Ｂ１，Ｂ２及びシミュレーションシステム接続部３の論理時刻は“ｔ”であるとする。この場合、上述のように、シミュレーションシステム接続部３のタイムステップも“１”で固定となる。
【００５０】
まず、時点（１）において、シミュレータＡ１，Ａ２，Ｂ１，Ｂ２が時刻ｔにおけるシミュレーションを実施し、シミュレータＡ１がシミュレーション結果に対応するデータとして、タイムスタンプｔ＋１付きのデータＤ（ｔ＋１）を送信するものとする。ただし、説明の簡単化のため、シミュレータＡ１以外のシミュレータは、シミュレーション結果に対応するデータの送信を行わないものとする。
その後、時点（２）において、シミュレータＡ１，Ａ２が、時刻ｔ＋１への時刻進行要求をシミュレータ管理部Ａに送信し、シミュレータＢ１，Ｂ２が、時刻ｔ＋１への時刻進行要求をシミュレータ管理部Ｂに送信する。
この際、シミュレータＡ２は、シミュレータＡ１から送信されたデータＤ（ｔ＋１）をシミュレータ管理部Ａ経由で受信する。
また、シミュレーションシステム接続部３のデータ転送部５も、シミュレータＡ１から送信されたデータＤ（ｔ＋１）をシミュレータ管理部Ａ経由で受信し、そのデータＤ（ｔ＋１）を速やかにシミュレータ管理部Ｂに転送する。
【００５１】
時点（２）の状況においては、全てのシミュレータＡ１，Ａ２，Ｂ１，Ｂ２が「時刻進行要求中」の状態にあり、シミュレータＡ１，Ａ２の時刻進行情報がシミュレータ管理部Ａの時刻進行管理部２に保持され、シミュレータＢ１，Ｂ２の時刻進行情報がシミュレータ管理部Ｂの時刻進行管理部２に保持されている。
そこで、シミュレーションシステム接続部３の時刻管理部４は、シミュレータ管理部Ａ，Ｂの時刻進行管理部２に保持されている時刻進行情報を参照して、全シミュレータが「時刻進行要求中」の状態にあることを確認する。
【００５２】
次に、時点（３）において、シミュレーションシステム接続部３の時刻管理部４は、上記のようにして、全シミュレータが「時刻進行要求中」の状態にあることを確認すると、時刻ｔ＋１への時刻進行要求をシミュレータ管理部Ａ，Ｂに送信する。
シミュレータＢ１，Ｂ２は、シミュレーションシステム接続部３により転送されたデータＤ（ｔ＋１）をシミュレータ管理部Ｂ経由で受信する。
時点（３）の状況においては、全てのシミュレータＡ１，Ａ２，Ｂ１，Ｂ２及びシミュレーションシステム接続部３が「時刻進行要求中」の状態にあるので、シミュレータ管理部Ａの時刻進行管理部２が時刻進行許可をシミュレータＡ１，Ａ２及びシミュレーションシステム接続部３に送信し、シミュレータ管理部Ｂの時刻進行管理部２が時刻進行許可をシミュレータＢ１，Ｂ２及びシミュレーションシステム接続部３に送信する。
【００５３】
ここで、上記のように時刻進行許可を送信しても良い理由を説明する。
まず、時点（３）の状況において、全てのシミュレータＡ１，Ａ２，Ｂ１，Ｂ２及びシミュレーションシステム接続部３は、時刻ｔ＋１以下のタイムスタンプの付いたデータを送信することができない状態にある。
したがって、シミュレータＡ１，Ａ２，Ｂ１，Ｂ２及びシミュレーションシステム接続部３に関し、時刻ｔ＋１以下のタイムスタンプ付きのデータの配信が完了していると判定することができる。
よって、もし、シミュレータＡ１，Ａ２，Ｂ１，Ｂ２及びシミュレーションシステム接続部３が時刻ｔ＋１に時刻進行しても、シミュレータＡ１，Ａ２，Ｂ１，Ｂ２及びシミュレーションシステム接続部３が過去のタイムスタンプ付きのデータを受信する状況が生じ得ないので、時刻ｔ＋１への時刻進行許可を出してもよい。
【００５４】
このため、時点（４）において、全てのシミュレータＡ１，Ａ２，Ｂ１，Ｂ２及びシミュレーションシステム接続部３は、論理時刻をｔ＋１に進める。
図３の例では、上述したように、シミュレータＡ１から送信されたタイムスタンプｔ＋１のデータが、シミュレータＢ１，Ｂ２において、論理時刻がｔ＋１に進行する際に配信されており、シミュレーションシステムを跨ぐデータ配信においても遅延が発生していないことが分かる。
【００５５】
以上で明らかなように、この実施の形態１によれば、シミュレータ管理部Ａ，Ｂが、自己と同じネットワークに接続されている全てのシミュレータとシミュレーションシステム接続部３から時刻進行要求を受信した時点で、全てのシミュレータＡ１，Ａ２，Ｂ１，Ｂ２とシミュレーションシステム接続部３の時刻進行を許可し、シミュレーションシステム接続部３が、例えば、ネットワークＡに接続されているシミュレータ管理部Ａから配信されたデータを受信すると、そのデータをネットワークＢに接続されているシミュレータ管理部Ｂに直ちに転送してから、シミュレータＡ１，Ａ２，Ｂ１，Ｂ２が「時刻進行要求中」の状態になったことを確認後、時刻進行要求をシミュレータ管理部Ａ，Ｂに送信するように構成したので、ネットワークＢに接続されているシミュレータＢ１，Ｂ２にデータの配信を行う場合でも、データ配信の遅延を防止して、正確なシミュレーション結果を得ることができる効果を奏する。
【００５６】
なお、この実施の形態１では、各シミュレーションシステムを構成するシミュレータの数が２台の例について説明したが、シミュレータの台数が３以上の場合でも、同様に適用することができる。
また、この実施の形態１では、２つのシミュレーションシステムＡ，Ｂを連接する場合について説明したが、３つ以上のシミュレーションシステムを連接する場合でも、異なるシミュレーションシステムが単一のシミュレーションシステム接続部３を介してデータ交換を行うようにシミュレーション装置を構成することにより、同様に適用することができる。
図４は１つのシミュレーションシステム接続部３が３つのシミュレーションシステムＡ，Ｂ，Ｃを連接して、シミュレータＡ１，Ａ２，Ｂ１，Ｂ２，Ｃ１，Ｃ２がデータ交換を実施しながらシミュレーションを実施するシミュレーション装置を示す構成図である。
この場合、データ交換を行う２つのシミュレーションシステムを取り上げると、これらの関係は図１のシミュレーション装置と全く同じ動作になる。
【００５７】
最後にＨＬＡを利用する実施の形態１の実装方針について述べる。
ＨＬＡを利用する場合、シミュレータ管理部Ａ，Ｂ（ＨＬＡでは、ＲＴＩに対応）からは、シミュレータＡ１，Ａ２，Ｂ１，Ｂ２及びシミュレーションシステム接続部３が、同等な「フェデレート」として扱われる。
ＨＬＡの規格では、データはＴＳＯ（Ｔｉｍｅ  Ｓｔａｍｐ  Ｏｒｄｅｒ）なものと、そうでないもの（ＲＯ（Ｒｅｃｅｉｖｅ  Ｏｒｄｅｒ）と呼ばれる）とに分類される。
ＴＳＯデータはタイムスタンプを持ち、各フェデレートがＴＳＯデータを受信する場合には、タイムスタンプ順に受信しなければならない。また、過去のタイムスタンプ付きのＴＳＯデータは、シミュレーションを矛盾なく実行する関係上、受信することができない。
【００５８】
各フェデレートは、ｔｉｍｅ−ｒｅｇｕｌａｔｉｎｇなものと、そうでないものとに分類される。
ｔｉｍｅ−ｒｅｇｕｌａｔｉｎｇなフェデレートとは、ＴＳＯデータを送信可能なフェデレートのことである。
また、各フェデレートは、ｔｉｍｅ−ｃｏｎｓｔｒａｉｎｅｄなものと、そうでないものとにも分類される。
ｔｉｍｅ−ｃｏｎｓｔｒａｉｎｅｄなフェデレートとは、ＴＳＯデータを受信可能なフェデレートのことである。
ｔｉｍｅ−ｒｅｇｕｌａｔｉｎｇなフェデレートがＴＳＯデータを送信した場合、ｔｉｍｅ−ｃｏｎｓｔｒａｉｎｅｄでないフェデレートでは、ＲＯデータとして受信されることになる。
【００５９】
フェデレートは、上述したように、過去のタイムスタンプ付きのＴＳＯデータを受信することができないとの制約があり、この制約を満たすために、ＴＳＯデータを受信するフェデレートは、時刻進行が制御される。
つまり、「ｔｉｍｅ−ｒｅｇｕｌａｔｉｎｇなフェデレートは他のフェデレートの時刻進行を制御する」「ｔｉｍｅ−ｃｏｎｓｔｒａｉｎｅｄなフェデレートは他のフェデレートによって時刻進行を制御される」と表現することができる。
通常、何らかのシステムを正確にシミュレーションする場合、システムの構成要素を模擬する各シミュレータの時刻同期を取りながらシミュレーションを進める必要があり、この場合、各シミュレータはｔｉｍｅ−ｒｅｇｕｌａｔｉｎｇで、かつ、ｔｉｍｅ−ｃｏｎｓｔｒａｉｎｅｄであると設定すればよい。
【００６０】
この実施の形態１におけるシミュレーションシステム接続部３は、異なるシミュレーションシステムに属するシミュレータ間の時刻同期を取るため、「他のフェデレートの時刻進行を制御する」能力を持つ必要があるため、ｔｉｍｅ−ｒｅｇｕｌａｔｉｎｇとしなければならない。
一方、ｔｉｍｅ−ｃｏｎｓｔｒａｉｎｅｄとすると、あるＴＳＯデータの受信は、シミュレーションシステム接続部３が、そのタイムスタンプまで、もしくは、そのタイムスタンプを越えるまで、時刻進行する際に行われることになる（ＴＳＯデータを確実にタイムスタンプ順に受信する為）。
その場合、「発明が解決しようとする課題」で述べたような、データ配信におけるシミュレーションシステム接続部３での遅延が不可避となる。
逆に、ｔｉｍｅ−ｃｏｎｓｔｒａｉｎｅｄでないものとした場合は、タイムスタンプに関わらず、データを速やかに受信することができる（この場合は、全てのデータをＲＯデータとして受信する）。
したがって、シミュレーションシステム接続部３はｔｉｍｅ−ｃｏｎｓｔｒａｉｎｅｄでないものとして設定する。
【００６１】
以上のように、シミュレーションシステム接続部３をｔｉｍｅ−ｒｅｇｕｌａｔｉｎｇで、かつ、ｔｉｍｅ−ｃｏｎｓｔｒａｉｎｅｄでないものとして設定することにより、データに付与されたタイムスタンプに関わらず、各シミュレータが送信したデータを速やかに受信し（ｔｉｍｅ−ｃｏｎｓｔｒａｉｎｅｄでない為）、さらに、ＴＳＯデータとして速やかに送信することができる（ｔｉｍｅ−ｒｅｇｕｌａｔｉｎｇである為）。
【００６２】
一方、この実施の形態１を実現するためには、シミュレーションシステム接続部３は、シミュレータ管理部Ａ，Ｂの時刻進行管理部２（ＲＴＩ）に保持されている時刻進行情報を参照する必要がある。
これは、ＨＬＡにおけるＭＯＭ（Ｍａｎａｇｅｍｅｎｔ  Ｏｂｊｅｃｔ  Ｍｏｄｅｌ：フェデレートのモニタなどを実施するための機能）機能を利用することにより、実装することができる。もしくは、Ｑｕｅｒｙ  ＧＡＬＴやＱｕｅｒｙ  ＬＩＴＳなどのＨＬＡに関するＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｅｒ’ｓ  Ｉｎｔｅｒｆａｃｅ）を利用してもよい（各フェデレートにおいて、これらのＡＰＩを利用すると、ＴＳＯデータを受信する可能性がある最小時刻などの諸元が得られる。この最小時刻は、各フェデレートの時刻進行状況の変化に伴って変化するものである）。
また、ＲＴＩは、この実施の形態で述べたシミュレータ管理部Ａ，Ｂの機能を有する。
したがって、ＨＬＡを利用して、この実施の形態１で述べたシミュレーション装置を実装することが可能である。
【００６３】
実施の形態２．
上記実施の形態１では、シミュレータＡ１，Ａ２，Ｂ１，Ｂ２のタイムステップが全て同一である場合について示したが、この実施の形態２では、全てのシミュレータＡ１，Ａ２，Ｂ１，Ｂ２のタイムステップが、最小タイムステップの自然数倍であるものについて説明する。
図５はシミュレータＡ１，Ａ２，Ｂ１，Ｂ２のタイムステップが最小タイムステップの自然数倍である場合のシミュレータＡ１，Ａ２，Ｂ１，Ｂ２及びシミュレーションシステム接続部３の具体的な処理の進行の例を示す説明図である。
【００６４】
シミュレーション装置の構成は図１と同じである。
ただし、シミュレーションシステム接続部３の時刻管理部４は、時刻進行を要求する際、最小タイムステップだけ未来の時刻への時刻進行要求をシミュレータ管理部Ａ，Ｂに送信する。
シミュレータ管理部Ａ，Ｂの時刻進行管理部２は、時刻進行を許可する際、管理対象のシミュレータとシミュレーションシステム接続部３が時刻進行要求中の状態になった後、管理対象のシミュレータ及びシミュレーションシステム接続部３の時刻進行要求先時刻の最小時刻を求め、時刻進行要求先時刻がその最小時刻と等しいという条件を満たす管理対象のシミュレータ及びシミュレーションシステム接続部３に対して時刻進行許可を送信する。
以下、具体的な処理の進行例を説明する。
【００６５】
図５において、最小タイムステップが“１”、シミュレータＡ１，Ｂ１のタイムステップが“１”、シミュレータＡ２，Ｂ２のタイムステップが“２”であるものとする。
この場合、シミュレーションシステム接続部３のタイムステップは、最小タイムステップの“１”で固定となる。
また、初期状態において、シミュレータＡ１，Ａ２，Ｂ１，Ｂ２及びシミュレーションシステム接続部３の論理時刻が“ｔ”であるものとする。
【００６６】
まず、時点（１）において、シミュレータＡ１，Ａ２，Ｂ１，Ｂ２が時刻ｔにおけるシミュレーションを実施し、シミュレータＡ１がシミュレーション結果に対応するデータとして、タイムスタンプｔ＋１付きのデータＤ（ｔ＋１）を送信するものとする。ただし、説明の簡単化のため、シミュレータＡ１以外のシミュレータは、シミュレーション結果に対応するデータの送信を行わないものとする。
その後、時点（２）において、シミュレータＡ１，Ｂ１が、固有のタイムステップであるタイムステップ“１”分の未来への時刻進行要求をシミュレータ管理部Ａ，Ｂにそれぞれ送信し、シミュレータＡ２，Ｂ２が、固有のタイムステップであるタイムステップ“２”分の未来への時刻進行要求をシミュレータ管理部Ａ，Ｂにそれぞれ送信する。
【００６７】
この際、シミュレータＡ２は、シミュレータ管理部Ａ経由で、データＤ（ｔ＋１）を受信する。
また、シミュレーションシステム接続部３も、シミュレータ管理部Ａ経由で、データＤ（ｔ＋１）を受信し、そのデータＤ（ｔ＋１）を速やかにシミュレータ管理部Ｂに転送する。
時点（２）の状況においては、全てのシミュレータＡ１，Ａ２，Ｂ１，Ｂ２が「時刻進行要求中」の状態にあり、シミュレータＡ１，Ａ２の時刻進行情報がシミュレータ管理部Ａの時刻進行管理部２に保持され、シミュレータＢ１，Ｂ２の時刻進行情報がシミュレータ管理部Ｂの時刻進行管理部２に保持されている。
そこで、シミュレーションシステム接続部３の時刻管理部４は、シミュレータ管理部Ａ，Ｂの時刻進行管理部２に保持されている時刻進行情報を参照して、全てのシミュレータＡ１，Ａ２，Ｂ１，Ｂ２が「時刻進行要求中」の状態にあることを確認する。
【００６８】
次に、時点（３）において、シミュレーションシステム接続部３の時刻管理部４は、上記のようにして、全シミュレータが「時刻進行要求中」の状態にあることを確認すると、最小タイムステップだけ未来の時刻への進行要求、即ち、時刻ｔ＋１への時刻進行要求をシミュレータ管理部Ａ，Ｂに送信する。
シミュレータＢ１，Ｂ２は、シミュレーションシステム接続部３により転送されたデータＤ（ｔ＋１）をシミュレータ管理部Ｂ経由で受信する。
時点（３）の状況においては、全てのシミュレータＡ１，Ａ２，Ｂ１，Ｂ２及びシミュレーションシステム接続部３が「時刻進行要求中」の状態にあるので、シミュレータ管理部Ａ，Ｂの時刻進行管理部２が、管理対象のシミュレータ及びシミュレーションシステム接続部３の時刻進行要求先時刻の最小時刻を求める（具体的には、シミュレータ管理部Ａ，Ｂともｔ＋１を求める）。
シミュレータ管理部Ａ，Ｂの時刻進行管理部２は、時刻進行要求先時刻がｔ＋１と等しいという条件を満たす管理対象のシミュレータ及びシミュレーションシステム接続部３に対して時刻進行許可を送信する。
【００６９】
ここで、上記のように、時刻進行許可を送信しても良い理由を説明する。
まず、時点（３）の状況において、全てのシミュレータＡ１，Ａ２，Ｂ１，Ｂ２及びシミュレーションシステム接続部３は、時刻進行要求先時刻の最小時刻であるｔ＋１以下のタイムスタンプの付いたデータを送信することができない状態にある。
したがって、シミュレータＡ１，Ａ２，Ｂ１，Ｂ２及びシミュレーションシステム接続部３に関し、時刻ｔ＋１以下のタイムスタンプ付きのデータの配信が完了していると判定することができる。
よって、もし、時刻進行要求先時刻がｔ＋１と等しいシミュレータ及びシミュレーションシステム接続部３が、要求通りに時刻ｔ＋１に時刻進行しても、シミュレータＡ１，Ａ２，Ｂ１，Ｂ２、もしくは、シミュレーションシステム接続部３が過去のタイムスタンプ付きのデータを受信する状況が生じ得ないので、時刻ｔ＋１への時刻進行許可を送信してもよい。
このため、時点（４）において、シミュレータＡ１，Ｂ１及びシミュレーションシステム接続部３は、論理時刻をｔ＋１に時刻を進める。
【００７０】
次に、時点（５）において、シミュレータＡ１，Ｂ１がシミュレーションを実施する。ただし、ここでは、説明の簡単化のため、シミュレーション結果に対応するデータの送信は行われないものとする。
その後、シミュレータＡ１，Ｂ１は、時刻ｔ＋２への時刻進行要求をシミュレータ管理部Ａ，Ｂに送信する。
時点（５）の状況においては、全てのシミュレータＡ１，Ａ２，Ｂ１，Ｂ２が「時刻進行要求中」の状態にあるので、シミュレーションシステム接続部３は、時点（６）において、自らも時刻ｔ＋２への時刻進行要求をシミュレータ管理部Ａ，Ｂに送信する。
【００７１】
時点（６）において、シミュレーションシステム接続部３が時刻ｔ＋２への時刻進行要求をシミュレータ管理部Ａ，Ｂに送信したのち、シミュレータ管理部Ａ，Ｂから全てのシミュレータＡ１，Ａ２，Ｂ１，Ｂ２及びシミュレーションシステム接続部３に対して時刻進行許可が出されると、シミュレータＡ１，Ａ２，Ｂ１，Ｂ２及びシミュレーションシステム接続部３が論理時刻をｔ＋２に時刻を進める。
【００７２】
図５の例では、上述したように、シミュレータＡ１から送信されたタイムスタンプｔ＋１のデータが、シミュレータＢ１，Ｂ２において、論理時刻がｔ＋１に進行する際、もしくは、論理時刻がｔ＋１を越えて進行する際に配信されており、シミュレーションシステムを跨ぐデータ配信においても遅延が発生していないことが分かる。
以上のように、所定の最小タイムステップに対して、各シミュレータのタイムステップが最小タイムステップの自然数倍で表されている場合、比較的小さな処理コストで、データ遅延が発生しないような複数シミュレーションシステムの連接を行うことができる。
【００７３】
実施の形態３．
上記実施の形態１では、全てのシミュレータＡ１，Ａ２，Ｂ１，Ｂ２のタイムステップが同一である場合について示したが、この実施の形態３では、シミュレータＡ１，Ａ２，Ｂ１，Ｂ２のタイムステップについて、特に制約が設けられていない場合を説明する。
図６はシミュレータＡ１，Ａ２，Ｂ１，Ｂ２のタイムステップについて特に制約が設けられていない場合のシミュレータＡ１，Ａ２，Ｂ１，Ｂ２及びシミュレーションシステム接続部３の具体的な処理の進行の例を示す説明図である。
【００７４】
シミュレーション装置の構成は図１と同じである。
ただし、シミュレーションシステム接続部３の時刻管理部４は、シミュレータ管理部Ａ，Ｂの時刻進行管理部２に保持されている時刻進行情報を参照し、全てのシミュレータＡ１，Ａ２，Ｂ１，Ｂ２の状態が時刻進行要求中となった時点で、時刻進行要求先時刻の最小値を求め、さらに、各シミュレータ管理部Ａ，Ｂに渡っての時刻進行要求先時刻最小値の最小値を求めて、シミュレーションシステム接続部３自身の次の時刻進行要求先時刻として時刻進行要求をシミュレータ管理部Ａ，Ｂに送信する。
シミュレータ管理部Ａ，Ｂの時刻進行管理部２は、時刻進行を許可する際、管理対象のシミュレータとシミュレーションシステム接続部３が時刻進行要求中の状態になった後、管理対象のシミュレータ及びシミュレーションシステム接続部３の時刻進行要求先時刻の最小時刻を求め、時刻進行要求先時刻がその最小時刻と等しいという条件を満たす管理対象のシミュレータ及びシミュレーションシステム接続部３に対して時刻進行許可を送信する。
以下、具体的な処理の進行例を説明する。
【００７５】
図６において、シミュレータＡ１，Ｂ１のタイムステップが“ａ”、シミュレータＡ２，Ｂ２のタイムステップが“ｂ”であるものとする。
また、初期状態において、シミュレータＡ１，Ａ２，Ｂ１，Ｂ２及びシミュレーションシステム接続部３の論理時刻が“ｔ”であるものとする。
【００７６】
まず、時点（１）において、シミュレータＡ１，Ａ２，Ｂ１，Ｂ２が時刻ｔにおけるシミュレーションを実施し、シミュレータＡ１がシミュレーション結果に対応するデータとして、タイムスタンプｔ＋ａ付きのデータＤ（ｔ＋ａ）を送信するものとする。ただし、説明の簡単化のため、シミュレータＡ１以外のシミュレータは、シミュレーション結果に対応するデータの送信を行わないものとする。
その後、時点（２）において、シミュレータＡ１，Ｂ１が、固有のタイムステップであるタイムステップ“ａ”分の未来への時刻進行要求をシミュレータ管理部Ａ，Ｂにそれぞれ送信し、シミュレータＡ２，Ｂ２が、固有のタイムステップであるタイムステップ“ｂ”分の未来への時刻進行要求をシミュレータ管理部Ａ，Ｂにそれぞれ送信する。
【００７７】
この際、シミュレータＡ２は、シミュレータ管理部Ａ経由で、データＤ（ｔ＋ａ）を受信する。
また、シミュレーションシステム接続部３のデータ転送部５も、シミュレータ管理部Ａ経由で、データＤ（ｔ＋ａ）を受信し、そのデータＤ（ｔ＋ａ）を速やかにシミュレータ管理部Ｂに転送する。
時点（２）の状況においては、全てのシミュレータＡ１，Ａ２，Ｂ１，Ｂ２が「時刻進行要求中」の状態にあり、シミュレータＡ１，Ａ２の時刻進行情報がシミュレータ管理部Ａの時刻進行管理部２に保持され、シミュレータＢ１，Ｂ２の時刻進行情報がシミュレータ管理部Ｂの時刻進行管理部２に保持されている。
そこで、シミュレーションシステム接続部３の時刻管理部４は、シミュレータ管理部Ａ，Ｂの時刻進行管理部２に保持されている時刻進行情報を参照して、全てのシミュレータＡ１，Ａ２，Ｂ１，Ｂ２が「時刻進行要求中」の状態にあることを確認する。
【００７８】
シミュレーションシステム接続部３の時刻管理部４は、上記のようにして、全シミュレータが「時刻進行要求中」の状態にあることを確認すると、自らの時刻進行要求先時刻を決めるために、シミュレータ管理部Ａ，Ｂにおけるシミュレータの時刻進行要求先時刻の最小値を求める。
図６（２）の場合、シミュレータ管理部Ａ，Ｂとも、時刻進行要求先時刻の最小値が、ｍｉｎ（ｔ＋ａ、ｔ＋ｂ）＝ｔ＋ａとなる。
その後、シミュレータ管理部Ａ，Ｂに渡っての、時刻進行要求先時刻最小値の最小値を求めて、シミュレーションシステム接続部３自身の次の時刻進行要求先時刻とする。
図６（２）の場合、シミュレータ管理部Ａ，Ｂに渡っての時刻進行要求先時刻最小値の最小値は、ｍｉｎ（ｔ＋ａ、ｔ＋ａ）＝ｔ＋ａとなる。
【００７９】
したがって、時点（３）の状況において、シミュレーションシステム接続部３の時刻管理部４は、時刻ｔ＋ａへの時刻進行要求をシミュレータ管理部Ａ，Ｂに送信する。
シミュレータＢ１，Ｂ２は、シミュレーションシステム接続部３により転送されたデータＤ（ｔ＋ａ）をシミュレータ管理部Ｂ経由で受信する。
時点（３）の状況においては、全てのシミュレータＡ１，Ａ２，Ｂ１，Ｂ２及びシミュレーションシステム接続部３が「時刻進行要求中」の状態にあるので、シミュレータ管理部Ａ，Ｂの時刻進行管理部２が、管理対象のシミュレータ及びシミュレーションシステム接続部３の時刻進行要求先時刻の最小時刻を求める（具体的には、シミュレータ管理部Ａ，Ｂともｔ＋ａを求める）。
シミュレータ管理部Ａ，Ｂの時刻進行管理部２は、時刻進行要求先時刻がｔ＋ａと等しいという条件を満たす管理対象のシミュレータ及びシミュレーションシステム接続部３に対して時刻進行許可を送信する。
【００８０】
ここで、上記のように、時刻進行許可を送信しても良い理由を説明する。
まず、時点（３）の状況において、全てのシミュレータＡ１，Ａ２，Ｂ１，Ｂ２及びシミュレーションシステム接続部３は、時刻進行要求先時刻の最小時刻であるｔ＋ａ以下のタイムスタンプの付いたデータを送信することができない状態にある。
したがって、シミュレータＡ１，Ａ２，Ｂ１，Ｂ２及びシミュレーションシステム接続部３に関し、時刻ｔ＋ａ以下のタイムスタンプ付きのデータの配信が完了していると判定することができる。
よって、もし、時刻進行要求先時刻がｔ＋ａと等しいシミュレータ及びシミュレーションシステム接続部３が、要求通りに時刻ｔ＋ａに時刻進行しても、シミュレータＡ１，Ａ２，Ｂ１，Ｂ２、もしくは、シミュレーションシステム接続部３が過去のタイムスタンプ付きのデータを受信する状況が生じ得ないので、時刻ｔ＋ａへの時刻進行許可を送信してもよい。
このため、時点（４）において、シミュレータＡ１，Ｂ１及びシミュレーションシステム接続部３は、論理時刻をｔ＋ａに時刻を進める。
【００８１】
図６の例では、上述したように、シミュレータＡ１から送信されたタイムスタンプｔ＋ａのデータが、シミュレータＢ１，Ｂ２において、論理時刻がｔ＋ａに進行する際、もしくは、論理時刻がｔ＋ａを越えて進行する際に配信されており、シミュレーションシステムを跨ぐデータ配信においても遅延が発生していないことが分かる。
以上のように、各シミュレータのタイムステップに制約が設けられていない場合でも、データ遅延が発生しないような複数シミュレーションシステムの連接を行うことができる。
【００８２】
実施の形態４．
図７はこの発明の実施の形態４によるシミュレーション装置を示す構成図であり、図において、図１と同一符号は同一または相当部分を示すので説明を省略する。
ネットワークＣにはシミュレータＣ１，Ｃ２、シミュレータ管理部Ｃ及びシミュレーションシステム接続部３−２が接続されており、シミュレータＣ１，Ｃ２、シミュレータ管理部Ｃ、シミュレーションシステム接続部３−２及びネットワークＣからシミュレーションシステムＣが構成されている。
【００８３】
シミュレータ管理部Ｃはデータ配信部１及び時刻進行管理部２から構成されており、ネットワークＣに接続されているシミュレータＣ１，Ｃ２及びシミュレーションシステム接続部３−２の時刻進行を管理するとともに、例えば、シミュレータＣ１から送信されたデータをシミュレータＣ２及びシミュレーションシステム接続部３−２に配信し、また、シミュレータＣ１，Ｃ２及びシミュレーションシステム接続部３−２から時刻進行要求を受信した時点で、シミュレータＣ１，Ｃ２及びシミュレーションシステム接続部３−２の時刻進行を許可するなどの処理を実施する。
シミュレータ管理部Ｃのデータ配信部１は例えばシミュレータＣ１から送信されたデータをシミュレータＣ２及びシミュレーションシステム接続部３−２に配信し、シミュレーションシステム接続部３−２から転送されたデータをシミュレータＣ１，Ｃ２に配信するなどの処理を実施する。
シミュレータ管理部Ｃの時刻進行管理部２はシミュレータＣ１，Ｃ２及びシミュレーションシステム接続部３−２の時刻進行を管理する処理を実施する。
なお、シミュレータ管理部Ｃはシミュレータ管理手段を構成している。
【００８４】
シミュレーションシステム接続部３−１は時刻管理部４及びデータ転送部５から構成されており、例えば、シミュレータ管理部Ａから配信されたデータを受信すると、そのデータをシミュレータ管理部Ｂに直ちに転送してから、全シミュレータが「時刻進行要求中」の状態になったことを確認後、時刻進行要求をシミュレータ管理部Ａ，Ｂに送信するなどの処理を実施する。
シミュレーションシステム接続部３−１の時刻管理部４はシミュレータ管理部Ａ，Ｂの時刻進行管理部２に保持されている時刻進行情報を参照して、シミュレータＡ１，Ａ２，Ｂ１，Ｂ２が時刻進行要求中であることを確認できた時点で、「担当範囲時刻進行要求メッセージ」を送信する。担当範囲時刻進行要求メッセージとは、各シミュレーションシステム接続部について、そのシミュレーションシステム接続部が属しているシミュレーションシステムに含まれる全てのシミュレータが時刻進行要求中になったことを示すメッセージである。担当範囲時刻進行要求メッセージの送信および、自分以外の全シミュレーションシステム接続部からの担当範囲時刻進行要求メッセージの受信が完了すると、全シミュレータが「時刻進行要求中」の状態になったと判定することができる。このようにして全シミュレータが「時刻進行要求中」の状態になったと判定できたら、シミュレーションシステム接続部３−１の時刻管理部４は、全シミュレータの時刻進行要求先時刻を越えない範囲内での時刻進行要求をシミュレータ管理部Ａ，Ｂに送信し、シミュレータ管理部Ａ，Ｂにより時刻進行が許可されると、シミュレーションシステム接続部３−１の論理時刻を要求した時刻まで進める。
シミュレーションシステム接続部３−１のデータ転送部５は例えばシミュレータ管理部Ａから配信されたデータを受信すると、そのデータをシミュレータ管理部Ｂに直ちに転送するなどの処理を実施する。
シミュレーションシステム接続部３−２は時刻管理部４及びデータ転送部５から構成されており、例えば、シミュレータ管理部Ｂから配信されたデータを受信すると、そのデータをシミュレータ管理部Ｃに直ちに転送してから、全シミュレータが「時刻進行要求中」の状態になったことを確認後、時刻進行要求をシミュレータ管理部Ｂ，Ｃに送信するなどの処理を実施する。
シミュレーションシステム接続部３−２の時刻管理部４はシミュレータ管理部Ｂ，Ｃの時刻進行管理部２に保持されている時刻進行情報を参照して、シミュレータＢ１，Ｂ２，Ｃ１，Ｃ２が時刻進行要求中であることを確認できた時点で、担当範囲時刻進行要求メッセージを送信する。担当範囲時刻進行要求メッセージの送信および、自分以外の全シミュレーションシステム接続部からの担当範囲時刻進行要求メッセージの受信が完了して、全シミュレータが「時刻進行要求中」の状態になったと判定できたら、シミュレーションシステム接続部３−２の時刻管理部４は、全シミュレータの時刻進行要求先時刻を越えない範囲内での時刻進行要求をシミュレータ管理部Ｂ，Ｃに送信し、シミュレータ管理部Ｂ，Ｃにより時刻進行が許可されると、シミュレーションシステム接続部３−２の論理時刻を要求した時刻まで進める。
シミュレーションシステム接続部３−２のデータ転送部５は例えばシミュレータ管理部Ｂから配信されたデータを受信すると、そのデータをシミュレータ管理部Ｃに直ちに転送するなどの処理を実施する。
なお、シミュレーションシステム接続部３−１，３−２はそれぞれネットワーク接続手段を構成している。
【００８５】
次に動作について説明する。
以下、シミュレーションシステムＡ，Ｂ，Ｃ間を跨ぐデータ配信について説明する。
例えば、シミュレータＡ１から送信されたデータは、シミュレータＡ１を管理対象とするシミュレータ管理部Ａ経由で、速やかにシミュレーションシステム接続部３−１のデータ転送部５に受信される。
ミュレーションシステム接続部３−１のデータ転送部５は、受信したデータを送信元以外のシミュレータ管理部であるシミュレータ管理部Ｂに速やかに転送する。シミュレータ管理部Ｂはデータを受信すると、そのデータを速やかにシミュレーションシステム接続部３−２に送信する。
ミュレーションシステム接続部３−２のデータ転送部５は、受信したデータを速やかにシミュレータ管理部Ｃに転送する。
【００８６】
シミュレータ管理部Ｂのデータ配信部１は、また、シミュレーションシステム接続部３−１から転送されたデータを受信すると、そのデータに付与されているタイムスタンプに応じた時刻に、そのデータをシミュレータＢ１，Ｂ２に送信する。
また、シミュレータ管理部Ｃのデータ配信部１は、ミュレーションシステム接続部３−２から転送されたデータを受信すると、そのデータに付与されているタイムスタンプに応じた時刻に、そのデータをシミュレータＣ１，Ｃ２に送信する。
したがって、データがシミュレーションシステム接続部３−１，３−２を経由する際に遅延が発生する問題は起こらない。
【００８７】
また、シミュレータ管理部Ａ，Ｂ，Ｃの時刻進行管理部２は、管理対象の全シミュレータとシミュレーションシステム接続部の状態が「時刻進行要求中」になった後に、「時刻進行要求先時刻が、同じシミュレーションシステムに属する他シミュレータ及びシミュレーションシステム接続部の時刻進行要求先時刻以下である」シミュレータおよびシミュレーションシステム接続部に対して時刻進行許可を送信する。
一方、シミュレーションシステム接続部３−１，３−２の時刻進行要求先時刻は、全シミュレータの時刻進行要求先時刻を越えないように設定されるため、結局、「時刻進行要求先時刻が、全シミュレータの時刻進行要求先時刻の最小値以下である」シミュレータおよびシミュレーションシステム接続部に対して時刻進行許可が与えられることになる。
【００８８】
したがって、時刻進行許可が与えられるシミュレータについては、「時刻進行要求先時刻以下のタイムスタンプ付きデータの配信が全て完了している」ことが保証される。つまり、シミュレータが過去のタイムスタンプ付きデータを受信するという現象は生じ得ないので、シミュレーションに不整合が生じない。
よって、図７のシミュレーション装置を利用することにより、複数のシミュレーションシステムＡ，Ｂ，Ｃ間を跨るタイムスタンプ付きデータの配信を不整合が生じないように、かつ、遅延が発生しないように実施することができる。
【００８９】
以下、全シミュレータのタイムステップが全て同一である場合を考える。
この場合、シミュレーションシステム接続部３−１，３−２の時刻管理部４及びシミュレータ管理部Ａ，Ｂ，Ｃの時刻進行管理部２の動作を以下のように具体化することができる。
シミュレーションシステム接続部３−１，３−２の時刻管理部４は、時刻進行要求の際、シミュレータＡ１，Ａ２，Ｂ１，Ｂ２，Ｃ１，Ｃ２と同一のタイムステップだけ未来の時刻への時刻進行要求を送信する。
シミュレータ管理部Ａ，Ｂ，Ｃの時刻進行管理部２は、時刻進行許可の際、管理対象の全シミュレータとシミュレーションシステム接続部が時刻進行要求中となった後に、管理対象の全シミュレータ及びシミュレーションシステム接続部に対して時刻進行許可を送信する。
【００９０】
図８は全シミュレータのタイムステップが同一である場合の全シミュレータ及びシミュレーションシステム接続部３−１，３−２の具体的な処理の進行の例を示す説明図である。
ただし、図８において、シミュレータＡ１，Ａ２，Ｂ１，Ｂ２，Ｃ１，Ｃ２のタイムステップは全て共通で“１”、また、初期状態において、シミュレータＡ１，Ａ２，Ｂ１，Ｂ２，Ｃ１，Ｃ２及びシミュレーションシステム接続部３−１，３−２の論理時刻は“ｔ”であるとする。この場合、上述のように、シミュレーションシステム接続部３−１，３−２のタイムステップも“１”で固定となる。
「Ｍｓｇ」は担当範囲時刻進行要求メッセージを表している。
図８においては、シミュレータＡ２，Ｂ２，Ｃ２に関する記述は、説明の簡単化のために省略している。
【００９１】
まず、時点（１）において、シミュレータＡ１，Ａ２，Ｂ１，Ｂ２，Ｃ１，Ｃ２が時刻ｔにおけるシミュレーションを実施し、シミュレータＡ１がシミュレーション結果に対応するデータとして、タイムスタンプｔ＋１付きのデータＤ（ｔ＋１）を送信するものとする。ただし、説明の簡単化のため、シミュレータＡ１以外のシミュレータは、シミュレーション結果に対応するデータの送信を行わないものとする。
その後、時点（２）において、シミュレータＡ１，Ａ２が、時刻ｔ＋１への時刻進行要求をシミュレータ管理部Ａに送信し、シミュレータＢ１，Ｂ２が、時刻ｔ＋１への時刻進行要求をシミュレータ管理部Ｂに送信し、シミュレータＣ１，Ｃ２が、時刻ｔ＋１への時刻進行要求をシミュレータ管理部Ｃに送信する。
この際、シミュレータＡ２は、シミュレータＡ１から送信されたデータＤ（ｔ＋１）をシミュレータ管理部Ａ経由で受信する。
また、シミュレーションシステム接続部３−１のデータ転送部５は、シミュレータＡ１から送信されたデータＤ（ｔ＋１）をシミュレータ管理部Ａ経由で受信し、そのデータＤ（ｔ＋１）を速やかにシミュレータ管理部Ｂに転送する。
【００９２】
時点（２）の状況においては、全てのシミュレータＡ１，Ａ２，Ｂ１，Ｂ２，Ｃ１，Ｃ２が「時刻進行要求中」の状態にあり、シミュレータＡ１，Ａ２の時刻進行情報がシミュレータ管理部Ａの時刻進行管理部２に保持され、シミュレータＢ１，Ｂ２の時刻進行情報がシミュレータ管理部Ｂの時刻進行管理部２に保持され、シミュレータＣ１，Ｃ２の時刻進行情報がシミュレータ管理部Ｃの時刻進行管理部２に保持されている。
そこで、シミュレーションシステム接続部３−１の時刻管理部４は、シミュレータ管理部Ａ，Ｂの時刻進行管理部２に保持されている時刻進行情報を参照して、シミュレータＡ１，Ａ２，Ｂ１，Ｂ２が「時刻進行要求中」の状態にあることを確認する。
また、シミュレーションシステム接続部３−２の時刻管理部４は、シミュレータ管理部Ｂ，Ｃの時刻進行管理部２に保持されている時刻進行情報を参照して、シミュレータＢ１，Ｂ２，Ｃ１，Ｃ２が「時刻進行要求中」の状態にあることを確認する。
【００９３】
時点（３）の状況において、シミュレーションシステム接続部３−１の時刻管理部４は、シミュレータＡ１，Ａ２，Ｂ１，Ｂ２が「時刻進行要求中」の状態にあることを確認すると、担当範囲時刻進行要求メッセージを送信する。
また、シミュレーションシステム接続部３−２の時刻管理部４も、シミュレータＢ１，Ｂ２，Ｃ１，Ｃ２が「時刻進行要求中」の状態にあることを確認すると、担当範囲時刻進行要求メッセージを送信する。
シミュレータＢ１，Ｂ２は、シミュレーションシステム接続部３−１により転送されたデータＤ（ｔ＋１）をシミュレータ管理部Ｂ経由で受信する。
また、シミュレーションシステム接続部３−２の時刻管理部４も、シミュレーションシステム接続部３−１により転送されたデータＤ（ｔ＋１）をシミュレータ管理部Ｂ経由で受信し、そのデータＤ（ｔ＋１）を速やかにシミュレータ管理部Ｃに転送する。
【００９４】
次の時点（４）において、シミュレータＣ１，Ｃ２は、シミュレーションシステム接続部３−２により転送されたデータＤ（ｔ＋１）をシミュレータ管理部Ｃ経由で受信する。
シミュレーションシステム接続部３−１の時刻管理部４は、シミュレーションシステム接続部３−２から送信された担当範囲時刻進行要求メッセージをシミュレータ管理部Ｂ経由で受信する。
また、シミュレーションシステム接続部３−２の時刻管理部４も、シミュレーションシステム接続部３−１から送信された担当範囲時刻進行要求メッセージをシミュレータ管理部Ｂ経由で受信する。
したがって、時点（４）の状況においては、シミュレーションシステム接続部３−１，３−２の時刻管理部４は、担当範囲時刻進行要求メッセージの送信と、自分以外の全シミュレーションシステム接続部からの担当範囲時刻進行要求メッセージの受信を完了していることになる。
よって、時点（４）で、シミュレーションシステム接続部３−１，３−２の時刻管理部４は、全シミュレータが時刻進行要求中であると判定することができる。
【００９５】
次に、時点（５）において、シミュレーションシステム接続部３−１，３−２の時刻管理部４は、上記のようにして、全シミュレータが「時刻進行要求中」の状態にあることを確認すると、時刻ｔ＋１への時刻進行要求を直接接続されているシミュレータ管理部に送信する。
時点（５）の状況においては、全てのシミュレータＡ１，Ａ２，Ｂ１，Ｂ２，Ｃ１，Ｃ２及びシミュレーションシステム接続部３−１，３−２が「時刻進行要求中」の状態にあるので、シミュレータ管理部Ａの時刻進行管理部２が時刻進行許可をシミュレータＡ１，Ａ２及びシミュレーションシステム接続部３−１に送信し、シミュレータ管理部Ｂの時刻進行管理部２が時刻進行許可をシミュレータＢ１，Ｂ２及びシミュレーションシステム接続部３−１，３−２に送信し、シミュレータ管理部Ｃの時刻進行管理部２が時刻進行許可をシミュレータＣ１，Ｃ２及びシミュレーションシステム接続部３−２に送信する。
【００９６】
ここで、上記のように時刻進行許可を送信しても良い理由を説明する。
まず、時点（５）の状況において、全てのシミュレータＡ１，Ａ２，Ｂ１，Ｂ２，Ｃ１，Ｃ２及びシミュレーションシステム接続部３−１，３−２は、時刻ｔ＋１以下のタイムスタンプの付いたデータを送信することができない状態にある。
したがって、シミュレータＡ１，Ａ２，Ｂ１，Ｂ２，Ｃ１，Ｃ２及びシミュレーションシステム接続部３−１，３−２に関し、時刻ｔ＋１以下のタイムスタンプ付きのデータの配信が完了していると判定することができる。
よって、もし、シミュレータＡ１，Ａ２，Ｂ１，Ｂ２，Ｃ１，Ｃ２及びシミュレーションシステム接続部３−１，３−２が時刻ｔ＋１に時刻進行しても、シミュレータＡ１，Ａ２，Ｂ１，Ｂ２，Ｃ１，Ｃ２及びシミュレーションシステム接続部３−１，３−２が過去のタイムスタンプ付きのデータを受信する状況が生じ得ないので、時刻ｔ＋１への時刻進行許可を出してもよい。
【００９７】
このため、時点（６）において、全てのシミュレータＡ１，Ａ２，Ｂ１，Ｂ２，Ｃ１，Ｃ２及びシミュレーションシステム接続部３−１，３−２は、論理時刻をｔ＋１に進める。
図８の例では、上述したように、シミュレータＡ１から送信されたタイムスタンプｔ＋１のデータが、シミュレータＢ１，Ｂ２，Ｃ１，Ｃ２において、論理時刻がｔ＋１に進行する際に配信されており、シミュレーションシステムを跨ぐデータ配信においても遅延が発生していないことが分かる。
以上のように、全シミュレータのタイムステップが全て同一である場合、小さな処理コストで、データ遅延が発生しないような複数シミュレーションシステムの連接を行うことができる。
【００９８】
なお、この実施の形態４では、３つのシミュレーションシステムを連接する場合について示したが、４つ以上のシミュレーションシステムを連接するようにしてもよく、同様の効果を奏することができる。
また、この実施の形態４では、３つのシミュレーションシステムが、シミュレーションシステム接続部３−１，３−２を介して、特定のつながり方をしているものについて示したが（シミュレーションシステムＡ，Ｂ，Ｃが直列に接続されている）、これは一例に過ぎず、他のつながり方をしている場合でも、同様に適用することができる。
【００９９】
実施の形態５．
上記実施の形態４では、全てのシミュレータＡ１，Ａ２，Ｂ１，Ｂ２，Ｃ１，Ｃ２のタイムステップが全て同一である場合について示したが、この実施の形態５では、全てのシミュレータＡ１，Ａ２，Ｂ１，Ｂ２，Ｃ１，Ｃ２のタイムステップが、最小タイムステップの自然数倍であるものについて説明する。
図９はシミュレータＡ１，Ａ２，Ｂ１，Ｂ２，Ｃ１，Ｃ２のタイムステップが最小タイムステップの自然数倍である場合のシミュレータＡ１，Ｂ１，Ｃ１及びシミュレーションシステム接続部３−１，３−２の具体的な処理の進行の例を示す説明図である。
【０１００】
シミュレーション装置の構成は図７と同じである。
ただし、シミュレーションシステム接続部３−１，３−２の時刻管理部４は、時刻進行を要求する際、最小タイムステップだけ未来の時刻への時刻進行要求を送信する。
シミュレータ管理部Ａ，Ｂ，Ｃの時刻進行管理部２は、時刻進行を許可する際、管理対象の全シミュレータとシミュレーションシステム接続部が時刻進行要求中の状態になった後、管理対象のシミュレータ及びシミュレーションシステム接続部の時刻進行要求先時刻の最小時刻を求め、時刻進行要求先時刻がその最小時刻と等しいという条件を満たす管理対象のシミュレータ及びシミュレーションシステム接続部に対して時刻進行許可を送信する。
以下、具体的な処理の進行例を説明する。
【０１０１】
図９において、最小タイムステップが“１”、シミュレータＡ１，Ａ２，Ｃ１，Ｃ２のタイムステップが“１”、シミュレータＢ１，Ｂ２のタイムステップが“２”であるものとする。
この場合、シミュレーションシステム接続部３−１，３−２のタイムステップは、最小タイムステップの“１”で固定となる。
また、初期状態において、シミュレータＡ１，Ａ２，Ｂ１，Ｂ２，Ｃ１，Ｃ２及びシミュレーションシステム接続部３−１，３−２の論理時刻が“ｔ”であるものとする。
図９においては、シミュレータＡ２，Ｂ２，Ｃ２に関する記述は、説明の簡単化のために省略している。
【０１０２】
まず、時点（１）において、シミュレータＡ１，Ａ２，Ｂ１，Ｂ２，Ｃ１，Ｃ２が時刻ｔにおけるシミュレーションを実施し、シミュレータＡ１がシミュレーション結果に対応するデータとして、タイムスタンプｔ＋１付きのデータＤ（ｔ＋１）を送信するものとする。ただし、説明の簡単化のため、シミュレータＡ１以外のシミュレータは、シミュレーション結果に対応するデータの送信を行わないものとする。
その後、時点（２）において、シミュレータＡ１，Ａ２が、固有のタイムステップであるタイムステップ“１”分の未来への時刻進行要求をシミュレータ管理部Ａに送信し、シミュレータＣ１，Ｃ２が、固有のタイムステップであるタイムステップ“１”分の未来への時刻進行要求をシミュレータ管理部Ｃに送信し、シミュレータＢ１，Ｂ２が、固有のタイムステップであるタイムステップ“２”分の未来への時刻進行要求をシミュレータ管理部Ｂに送信する。
この際、シミュレータＡ２は、シミュレータＡ１から送信されたデータＤ（ｔ＋１）をシミュレータ管理部Ａ経由で受信する。
また、シミュレーションシステム接続部３−１のデータ転送部５は、シミュレータＡ１から送信されたデータＤ（ｔ＋１）をシミュレータ管理部Ａ経由で受信し、そのデータＤ（ｔ＋１）を速やかにシミュレータ管理部Ｂに転送する。
【０１０３】
時点（２）の状況においては、全てのシミュレータＡ１，Ａ２，Ｂ１，Ｂ２，Ｃ１，Ｃ２が「時刻進行要求中」の状態にあり、シミュレータＡ１，Ａ２の時刻進行情報がシミュレータ管理部Ａの時刻進行管理部２に保持され、シミュレータＢ１，Ｂ２の時刻進行情報がシミュレータ管理部Ｂの時刻進行管理部２に保持され、シミュレータＣ１，Ｃ２の時刻進行情報がシミュレータ管理部Ｃの時刻進行管理部２に保持されている。
そこで、シミュレーションシステム接続部３−１の時刻管理部４は、シミュレータ管理部Ａ，Ｂの時刻進行管理部２に保持されている時刻進行情報を参照して、シミュレータＡ１，Ａ２，Ｂ１，Ｂ２が「時刻進行要求中」の状態にあることを確認する。
また、シミュレーションシステム接続部３−２の時刻管理部４は、シミュレータ管理部Ｂ，Ｃの時刻進行管理部２に保持されている時刻進行情報を参照して、シミュレータＢ１，Ｂ２，Ｃ１，Ｃ２が「時刻進行要求中」の状態にあることを確認する。
【０１０４】
時点（３）の状況において、シミュレーションシステム接続部３−１の時刻管理部４は、シミュレータＡ１，Ａ２，Ｂ１，Ｂ２が「時刻進行要求中」の状態にあることを確認すると、担当範囲時刻進行要求メッセージを送信する。
また、シミュレーションシステム接続部３−２の時刻管理部４も、シミュレータＢ１，Ｂ２，Ｃ１，Ｃ２が「時刻進行要求中」の状態にあることを確認すると、担当範囲時刻進行要求メッセージを送信する。
シミュレータＢ１，Ｂ２は、シミュレーションシステム接続部３−１により転送されたデータＤ（ｔ＋１）をシミュレータ管理部Ｂ経由で受信する。
また、シミュレーションシステム接続部３−２の時刻管理部４も、シミュレーションシステム接続部３−１により転送されたデータＤ（ｔ＋１）をシミュレータ管理部Ｂ経由で受信し、そのデータＤ（ｔ＋１）を速やかにシミュレータ管理部Ｃに転送する。
【０１０５】
次の時点（４）において、シミュレータＣ１，Ｃ２は、シミュレーションシステム接続部３−２により転送されたデータＤ（ｔ＋１）をシミュレータ管理部Ｃ経由で受信する。
シミュレーションシステム接続部３−１の時刻管理部４は、シミュレーションシステム接続部３−２から送信された担当範囲時刻進行要求メッセージをシミュレータ管理部Ｂ経由で受信する。
また、シミュレーションシステム接続部３−２の時刻管理部４も、シミュレーションシステム接続部３−１から送信された担当範囲時刻進行要求メッセージをシミュレータ管理部Ｂ経由で受信する。
したがって、時点（４）の状況においては、シミュレーションシステム接続部３−１，３−２の時刻管理部４は、担当範囲時刻進行要求メッセージの送信と、自分以外の全シミュレーションシステム接続部からの担当範囲時刻進行要求メッセージの受信を完了していることになる。
よって、時点（４）で、シミュレーションシステム接続部３−１，３−２の時刻管理部４は、全シミュレータが時刻進行要求中であると判定することができる。
【０１０６】
次に、時点（５）において、シミュレーションシステム接続部３−１，３−２の時刻管理部４は、上記のようにして、全シミュレータが「時刻進行要求中」の状態にあることを確認すると、最小タイムステップだけ未来の時刻への進行要求、即ち、時刻ｔ＋１への時刻進行要求を直接接続されているシミュレータ管理部に送信する。
時点（５）の状況においては、全てのシミュレータＡ１，Ａ２，Ｂ１，Ｂ２，Ｃ１，Ｃ２及びシミュレーションシステム接続部３−１，３−２が「時刻進行要求中」の状態にあるので、シミュレータ管理部Ａ，Ｂ，Ｃの時刻進行管理部２が、管理対象のシミュレータ及びシミュレーションシステム接続部の時刻進行要求先時刻の最小時刻を求める（具体的には、シミュレータ管理部Ａ，Ｂ，Ｃともｔ＋１を求める）。
シミュレータ管理部Ａ，Ｂ，Ｃの時刻進行管理部２は、時刻進行要求先時刻がｔ＋１と等しいという条件を満たす管理対象のシミュレータ及びシミュレーションシステム接続部に対して時刻進行許可を送信する。
【０１０７】
ここで、上記のように、時刻進行許可を送信しても良い理由を説明する。
まず、時点（５）の状況において、全てのシミュレータＡ１，Ａ２，Ｂ１，Ｂ２，Ｃ１，Ｃ２及びシミュレーションシステム接続部３−１，３−２は、時刻進行要求先時刻の最小時刻であるｔ＋１以下のタイムスタンプの付いたデータを送信することができない状態にある。
したがって、シミュレータＡ１，Ａ２，Ｂ１，Ｂ２，Ｃ１，Ｃ２及びシミュレーションシステム接続部３−１，３−２に関し、時刻ｔ＋１以下のタイムスタンプ付きのデータの配信が完了していると判定することができる。
よって、もし、時刻進行要求先時刻がｔ＋１と等しいシミュレータ及びシミュレーションシステム接続部３−１，３−２が、要求通りに時刻ｔ＋１に時刻進行しても、シミュレータＡ１，Ａ２，Ｂ１，Ｂ２，Ｃ１，Ｃ２、もしくは、シミュレーションシステム接続部３−１，３−２が過去のタイムスタンプ付きのデータを受信する状況が生じ得ないので、時刻ｔ＋１への時刻進行許可を送信してもよい。
【０１０８】
このため、時点（６）において、シミュレータＡ１，Ａ２，Ｃ１，Ｃ２及びシミュレーションシステム接続部３−１，３−２は、論理時刻をｔ＋１に進める。
図９の例では、上述したように、シミュレータＡ１から送信されたタイムスタンプｔ＋１のデータが、シミュレータＢ１，Ｂ２，Ｃ１，Ｃ２において、論理時刻がｔ＋１に進行する際、もしくは、ｔ＋１を越えて進行する際に配信されており、シミュレーションシステムを跨ぐデータ配信においても遅延が発生していないことが分かる。
以上のように、所定の最小タイムステップに対して、各シミュレータのタイムステップが最小タイムステップの自然数倍で表されている場合、比較的小さな処理コストで、データ遅延が発生しないような複数シミュレーションシステムの連接を行うことができる。
【０１０９】
実施の形態６．
上記実施の形態４では、全てのシミュレータＡ１，Ａ２，Ｂ１，Ｂ２，Ｃ１，Ｃ２のタイムステップが全て同一である場合について示したが、この実施の形態６では、シミュレータＡ１，Ａ２，Ｂ１，Ｂ２，Ｃ１，Ｃ２のタイムステップについて、特に制約が設けられていない場合を説明する。
図１０はシミュレータＡ１，Ａ２，Ｂ１，Ｂ２，Ｃ１，Ｃ２のタイムステップについて特に制約が設けられていない場合のシミュレータＡ１，Ｂ１，Ｃ１及びシミュレーションシステム接続部３−１，３−２の具体的な処理の進行の例を示す説明図である。
【０１１０】
シミュレーション装置の構成は図７と同じである。
ただし、シミュレーションシステム接続部３−１，３−２の時刻管理部４は、直接接続されている各シミュレータ管理部に保持されている時刻進行情報を参照し、そこに記載のある全てのシミュレータが時刻進行要求中となった時点で、時刻進行要求先時刻の最小値を求める。そして、さらに、直接接続されている各シミュレータ管理部に渡っての、時刻進行要求先時刻最小値の最小値を求めて担当範囲最小時刻とし、担当範囲最小時刻を含む担当範囲時刻進行要求メッセージをシミュレータ管理部経由で、他のシミュレーションシステム接続部に送信する。担当範囲時刻進行要求メッセージの送信と、自分以外の全シミュレーションシステム接続部からの担当範囲時刻進行要求メッセージの受信後に、自分が送信した担当範囲時刻進行要求メッセージ、また、受信した全ての担当範囲時刻進行要求メッセージに含まれる担当範囲最小時刻の最小時刻を次の時刻進行要求先時刻として、直接接続されているシミュレータ管理部に時刻進行要求を送信する。
シミュレータ管理部Ａ，Ｂ，Ｃの時刻進行管理部２は、時刻進行を許可する際、管理対象の全シミュレータとシミュレーションシステム接続部が時刻進行要求中となった後、時刻進行要求先時刻の最小時刻を求め、時刻進行要求先時刻がその最小時刻と等しいという条件を満たす管理対象のシミュレータおよびシミュレーションシステム接続部に対して時刻進行許可を送信する。
以下、具体的な処理の進行例を説明する。
【０１１１】
図１０において、シミュレータＡ１，Ａ２のタイムステップが“ｂ”、シミュレータＢ１，Ｂ２のタイムステップが“ｃ”、シミュレータＣ１，Ｃ２のタイムステップが“ａ”であるものとする。
また、初期状態において、シミュレータＡ１，Ａ２，Ｂ１，Ｂ２，Ｃ１，Ｃ２及びシミュレーションシステム接続部３−１，３−２の論理時刻が“ｔ”であるものとする。
「Ｍｓｇ［ｔ＋ａ］」は、担当範囲最小時刻が“ｔ＋ａ”である担当範囲時刻進行要求メッセージを表している。
図１０においては、シミュレータＡ２，Ｂ２，Ｃ２に関する記述は、説明の簡単化のために省略している。
【０１１２】
まず、時点（１）において、シミュレータＡ１，Ａ２，Ｂ１，Ｂ２，Ｃ１，Ｃ２が時刻ｔにおけるシミュレーションを実施し、シミュレータＡ１がシミュレーション結果に対応するデータとして、タイムスタンプｔ＋ｂ付きのデータＤ（ｔ＋ｂ）を送信するものとする。ただし、説明の簡単化のため、シミュレータＡ１以外のシミュレータは、シミュレーション結果に対応するデータの送信を行わないものとする。
その後、時点（２）において、シミュレータＡ１，Ａ２が、固有のタイムステップであるタイムステップ“ｂ”分の未来への時刻進行要求をシミュレータ管理部Ａに送信し、シミュレータＢ１，Ｂ２が、固有のタイムステップであるタイムステップ“ｃ”分の未来への時刻進行要求をシミュレータ管理部Ｂに送信し、シミュレータＣ１，Ｃ２が、固有のタイムステップであるタイムステップ“ａ”分の未来への時刻進行要求をシミュレータ管理部Ｃに送信する。
【０１１３】
この際、シミュレータＡ２は、シミュレータＡ１から送信されたデータＤ（ｔ＋ｂ）をシミュレータ管理部Ａ経由で受信する。
また、シミュレーションシステム接続部３−１のデータ転送部５は、シミュレータ管理部Ａ経由で、データＤ（ｔ＋ｂ）を受信し、そのデータＤ（ｔ＋ｂ）を速やかにシミュレータ管理部Ｂに転送する。
時点（２）の状況においては、全てのシミュレータＡ１，Ａ２，Ｂ１，Ｂ２，Ｃ１，Ｃ２が「時刻進行要求中」の状態にあり、シミュレータＡ１，Ａ２の時刻進行情報がシミュレータ管理部Ａの時刻進行管理部２に保持され、シミュレータＢ１，Ｂ２の時刻進行情報がシミュレータ管理部Ｂの時刻進行管理部２に保持され、シミュレータＣ１，Ｃ２の時刻進行情報がシミュレータ管理部Ｃの時刻進行管理部２に保持されている。
そこで、シミュレーションシステム接続部３−１の時刻管理部４は、シミュレータ管理部Ａ，Ｂの時刻進行管理部２に保持されている時刻進行情報を参照して、シミュレータＡ１，Ａ２，Ｂ１，Ｂ２が「時刻進行要求中」の状態にあることを確認する。
また、シミュレーションシステム接続部３−２の時刻管理部４は、シミュレータ管理部Ｂ，Ｃの時刻進行管理部２に保持されている時刻進行情報を参照して、シミュレータＢ１，Ｂ２，Ｃ１，Ｃ２が「時刻進行要求中」の状態にあることを確認する。
【０１１４】
シミュレーションシステム接続部３−１の時刻管理部４は、上記のようにして、シミュレータＡ１，Ａ２，Ｂ１，Ｂ２が「時刻進行要求中」の状態にあることを確認すると、その旨を表す担当範囲時刻進行要求メッセージを送信することになる。
その際、担当範囲時刻進行要求メッセージには担当範囲最小時刻を含める。
ここで，担当範囲最小時刻とは、前述のように、シミュレーションシステム接続部に直接接続されているシミュレータ管理部が管理しているシミュレータの時刻進行要求先時刻の最小値である。
図１０（２）のシミュレーションシステム接続部３−１の場合、担当範囲最小時刻は、ｍｉｎ（ｔ＋ｂ、ｔ＋ｃ）＝ｔ＋ｂとなる。また、シミュレーションシステム接続部３−２の場合、担当範囲最小時刻は、ｍｉｎ（ｔ＋ｃ、ｔ＋ａ）＝ｔ＋ａとなる。
【０１１５】
時点（３）において、シミュレーションシステム接続部３−１は、担当範囲時刻進行要求メッセージ（担当範囲最小時刻：ｔ＋ｂ）を送信する。
また、シミュレーションシステム接続部３−２は、担当範囲時刻進行要求メッセージ（担当範囲最小時刻：ｔ＋ａ）を送信する。
シミュレータＢ１，Ｂ２は、シミュレーションシステム接続部３−１により転送されたデータＤ（ｔ＋ｂ）をシミュレータ管理部Ｂ経由で受信する。
また、シミュレーションシステム接続部３−２の時刻管理部４も、シミュレーションシステム接続部３−１により転送されたデータＤ（ｔ＋ｂ）をシミュレータ管理部Ｂ経由で受信し、そのデータＤ（ｔ＋ｂ）を速やかにシミュレータ管理部Ｃに転送する。
【０１１６】
次の時点（４）において、シミュレーションシステム接続部３−１の時刻管理部４は、シミュレーションシステム接続部３−２から送信された担当範囲時刻進行要求メッセージ（担当範囲最小時刻：ｔ＋ａ）をシミュレータ管理部Ｂ経由で受信する。
また、シミュレーションシステム接続部３−２の時刻管理部も、シミュレーションシステム接続部３−１から送信された担当範囲時刻進行要求メッセージ（担当範囲最小時刻：ｔ＋ｂ）をシミュレータ管理部Ｂ経由で受信する。
したがって、時点（４）の状況においては、シミュレーションシステム接続部３−１，３−２の時刻管理部４は、担当範囲時刻進行要求メッセージの送信と、自分以外の全シミュレーションシステム接続部からの担当範囲時刻進行要求メッセージの受信を完了していることになる。
よって、時点（４）で、シミュレーションシステム接続部３−１，３−２の時刻管理部４は、全シミュレータが時刻進行要求中であると判定することができる。
【０１１７】
次に、時点（５）において、シミュレーションシステム接続部３−１，３−２の時刻管理部４は、時刻進行要求を送信する。
ここで、シミュレーションシステム接続部３−１，３−２の時刻進行要求先時刻は、自分が送信した担当範囲時刻進行要求メッセージに含まれる担当範囲最小時刻、また、自分以外の全シミュレーションシステム接続部からの担当範囲時刻進行要求メッセージに含まれる担当範囲最小時刻のうち、最小の値として決定される。この値は、全シミュレータの時刻進行要求先時刻の最小値となっている。
図１０（５）の場合、シミュレーションシステム接続部３−１，３−２の時刻進行要求先時刻は、ともにｍｉｎ（ｔ＋ａ、ｔ＋ｂ）＝ｔ＋ａとなる。
【０１１８】
したがって、時点（５）の状況においては、全てのシミュレータＡ１，Ａ２，Ｂ１，Ｂ２，Ｃ１，Ｃ２及びシミュレーションシステム接続部３−１，３−２が「時刻進行要求中」の状態にあるので、シミュレータ管理部Ａ，Ｂ，Ｃの時刻進行管理部２が、管理対象のシミュレータ及びシミュレーションシステム接続部の時刻進行要求先時刻の最小時刻を求める（具体的には、シミュレータ管理部Ａ，Ｂ，Ｃともｔ＋ａを求める）。
シミュレータ管理部Ａ，Ｂ，Ｃの時刻進行管理部２は、時刻進行要求先時刻がｔ＋ａと等しいという条件を満たす管理対象のシミュレータ及びシミュレーションシステム接続部に対して時刻進行許可を送信する。
【０１１９】
ここで、上記のように、時刻進行許可を送信しても良い理由を説明する。
まず、時点（５）の状況において、全てのシミュレータＡ１，Ａ２，Ｂ１，Ｂ２，Ｃ１，Ｃ２及びシミュレーションシステム接続部３−１，３−２は、時刻進行要求先時刻の最小時刻であるｔ＋ａ以下のタイムスタンプの付いたデータを送信することができない状態にある。
したがって、シミュレータＡ１，Ａ２，Ｂ１，Ｂ２，Ｃ１，Ｃ２及びシミュレーションシステム接続部３−１，３−２に関し、時刻ｔ＋ａ以下のタイムスタンプ付きのデータの配信が完了していると判定することができる。
よって、もし、時刻進行要求先時刻がｔ＋ａと等しいシミュレータ及びシミュレーションシステム接続部３−１，３−２が、要求通りに時刻ｔ＋ａに時刻進行しても、シミュレータＡ１，Ａ２，Ｂ１，Ｂ２，Ｃ１，Ｃ２、もしくは、シミュレーションシステム接続部３−１，３−２が過去のタイムスタンプ付きのデータを受信する状況が生じ得ないので、時刻ｔ＋ａへの時刻進行許可を送信してもよい。
このため、時点（６）において、シミュレータＣ１，Ｃ２及びシミュレーションシステム接続部３−１，３−２は、論理時刻をｔ＋ａに時刻を進める。
【０１２０】
図１０の例では、上述したように、シミュレータＡ１から送信されたタイムスタンプｔ＋ｂのデータが、シミュレータＢ１，Ｂ２において、論理時刻がｔ＋ｂを越えての時刻進行を行う際に配信される。
また、図１０では示していないが、シミュレータＣ１，Ｃ２も、論理時刻がｔ＋ｂを越えての時刻進行を行う際（具体的には、ｔ＋２＊ａに時刻進行する際）に、シミュレータＡ１から送信されたタイムスタンプｔ＋ｂのデータを受信することになる。従って、シミュレーションシステムを跨ぐデータ配信においても遅延が発生していないことが分かる。
以上のように、各シミュレータのタイムステップに制約が設けられていない場合でも、データ遅延が発生しないような複数シミュレーションシステムの連接を行うことができる。
【０１２１】
実施の形態７．
上記実施の形態１では、シミュレーションシステム接続部３のタイムステップがシミュレータＡ１，Ａ２，Ｂ１，Ｂ２のタイムステップと同じである場合について示したが、この実施の形態７では、シミュレーションシステム接続部３のタイムステップをシミュレータＡ１，Ａ２，Ｂ１，Ｂ２のタイムステップより小さく設定することにより、課題を解決する方法について説明する。
図１１はシミュレーションシステム接続部３のタイムステップがシミュレータＡ１，Ａ２，Ｂ１，Ｂ２のタイムステップより小さい場合のシミュレータＡ１，Ａ２，Ｂ１，Ｂ２及びシミュレーションシステム接続部３の具体的な処理の進行の例を示す説明図である。
【０１２２】
シミュレーション装置の構成は図１と同じである。
ただし、シミュレータ管理部Ａ，Ｂのデータ配信部１は、管理対象のシミュレータ及びシミュレーションシステム接続部３からデータを受信すると、そのデータを管理対象の他シミュレータ及びシミュレーションシステム接続部３に対して、付与されたタイムスタンプに応じた時刻に送信する。
シミュレーションシステム接続部３の時刻管理部４は、予め全てのシミュレータＡ１，Ａ２，Ｂ１，Ｂ２のタイムステップの最小値よりも小さな値をタイムステップと定めておき、シミュレータ管理部Ａ，Ｂから受信したデータの他のシミュレータ管理部Ｂ，Ａへの送信を完了した時点で、各シミュレータ管理部Ａ，Ｂに対して、上記タイムステップだけ未来の時刻への時刻進行要求を送信する。
シミュレーションシステム接続部３のデータ転送部５は、シミュレータ管理部Ａ，Ｂから受信したデータを、時刻進行後に、データに過去のタイムスタンプが付いている場合は、現在時刻の微小時間後のタイムスタンプを付け直した後に、送信元以外のシミュレータ管理部に向けて送信する。
【０１２３】
また、シミュレータＡ１，Ａ２，Ｂ１，Ｂ２は、データを送信する際、そのタイムスタンプを「現在時刻＋ｋ＊タイムステップ＋微小時間」（ｋは整数）で得られる値として設定する。例えば、１タイムステップ後の状態を表すデータを送信する場合（本来ならば、タイムスタンプを「現在時刻＋タイムステップ」とする場合）、ｋ＝０とし、この場合のタイムスタンプは「現在時刻＋微小時間」となる。
また、２タイムステップ後の状態を表すデータを送信する場合（本来ならば、タイムスタンプを「現在時刻＋２＊タイムステップ」とする場合）、ｋ＝１とし、この場合のタイムスタンプは「現在時刻＋タイムステップ＋微小時間」となる。
つまり、この実施の形態７では、データのタイムスタンプを任意に設定することができない。したがって、タイムスタンプの精度は、シミュレータＡ１，Ａ２，Ｂ１，Ｂ２のタイムステップ程度と言うことになる。
以下、具体的な処理の進行例を説明する。
【０１２４】
図１１において、シミュレータＡ１，Ａ２，Ｂ１，Ｂ２のタイムステップは全て共通で“４”、また、初期状態において、シミュレータＡ１，Ａ２，Ｂ１，Ｂ２及びシミュレーションシステム接続部３の論理時刻は“ｔ”であるとする。
シミュレーションシステム接続部３の時刻管理部４は、「全てのシミュレータＡ１，Ａ２，Ｂ１，Ｂ２のタイムステップの最小値よりも小さな値」として“２”を選択し、タイムステップとして定めるものとする。
また、シミュレータＡ１，Ａ２，Ｂ１，Ｂ２及びシミュレーションシステム接続部３において、データ送信の際に指定するタイムスタンプに関し、上記の「微小時間」として“１”を設定するものとする。
【０１２５】
まず、時点（１）において、シミュレータＡ１，Ａ２，Ｂ１，Ｂ２が時刻ｔにおけるシミュレーションを実施し、シミュレータＡ１がシミュレーション結果に対応するデータとして、１タイムステップ後（時刻ｔ＋４）の状態を表すデータに、タイムスタンプｔ＋１を付与して送信するものとする。ただし、説明の簡単化のため、シミュレータＡ１以外のシミュレータは、シミュレーション結果に対応するデータの送信を行わないものとする。
【０１２６】
その後、時点（２）において、シミュレータＡ１，Ａ２が、時刻ｔ＋４への時刻進行要求をシミュレータ管理部Ａに送信し、シミュレータＢ１，Ｂ２が、時刻ｔ＋４への時刻進行要求をシミュレータ管理部Ｂに送信する。
また、シミュレーションシステム接続部３の時刻管理部４が、時刻ｔ＋２への時刻進行要求をシミュレータ管理部Ａ，Ｂに送信する。
この際、シミュレータＡ２は、シミュレータＡ１から送信されたデータＤ（ｔ＋１）をシミュレータ管理部Ａ経由で受信する。
また、シミュレーションシステム接続部３のデータ転送部５も、シミュレータＡ１から送信されたデータＤ（ｔ＋１）をシミュレータ管理部Ａ経由で受信する。
【０１２７】
時点（２）の状況においては、全てのシミュレータＡ１，Ａ２，Ｂ１，Ｂ２及びシミュレーションシステム接続部３が「時刻進行要求中」の状態にある。
そこで、シミュレータ管理部Ａ，Ｂの時刻進行管理部２は、管理対象のシミュレータ及びシミュレーションシステム接続部３の時刻進行要求先時刻の最小時刻（具体的には、ｔ＋２）を求める。
そして、シミュレータ管理部Ａ，Ｂの時刻進行管理部２は、時刻進行要求先時刻がｔ＋２と等しいという条件を満たす管理対象のシミュレータ及びシミュレーションシステム接続部３に対して時刻進行許可を送信することになる。
【０１２８】
ここで、上記のように時刻進行許可を送信しても良い理由を説明する。
まず、時点（２）の状況において、全てのシミュレータＡ１，Ａ２，Ｂ１，Ｂ２及びシミュレーションシステム接続部３は、時刻進行要求先時刻の最小時刻であるｔ＋２以下のタイムスタンプの付いたデータを送信することができない状態にある。
したがって、シミュレータＡ１，Ａ２，Ｂ１，Ｂ２及びシミュレーションシステム接続部３に関し、時刻ｔ＋２以下のタイムスタンプ付きのデータの配信が完了していると判定することができる。
よって、もし、時刻進行要求先時刻がｔ＋２と等しいシミュレータ及びシミュレーションシステム接続部３が、要求通りに時刻ｔ＋２に時刻進行しても、シミュレータＡ１，Ａ２，Ｂ１，Ｂ２及びシミュレーションシステム接続部３が過去のタイムスタンプ付きのデータを受信する状況が生じ得ないので、時刻ｔ＋２への時刻進行許可を出してもよい。
【０１２９】
このため、時点（３）において、シミュレーションシステム接続部３は、論理時刻をｔ＋２に進める。
ここで、シミュレーションシステム接続部３のデータ転送部５は、受信済みのデータＤ（ｔ＋１）をシミュレータ管理部Ｂに送信することになるが、この時点では、シミュレーションシステム接続部３の論理時刻がｔ＋２であるので、タイムスタンプをｔ＋３に付け替えて送信する。
【０１３０】
その後、時点（４）において、シミュレーションシステム接続部３の時刻管理部４は、時刻ｔ＋４への時刻進行要求をシミュレータ管理部Ａ，Ｂに送信する。
シミュレータＢ１，Ｂ２は、シミュレーションシステム接続部３から転送されたデータＤ（ｔ＋３）をシミュレータ管理部Ｂ経由で受信する。
時点（４）の状況において、全てのシミュレータＡ１，Ａ２，Ｂ１，Ｂ２及びシミュレーションシステム接続部３が「時刻進行要求中」の状態にある。
そこで、シミュレータ管理部Ａ，Ｂの時刻進行管理部２は、管理対象のシミュレータ及びシミュレーションシステム接続部３の時刻進行要求先時刻の最小時刻（具体的には、ｔ＋４）を求める。
そして、シミュレータ管理部Ａ，Ｂの時刻進行管理部２は、時刻進行要求先時刻がｔ＋４と等しいという条件を満たす管理対象のシミュレータ及びシミュレーションシステム接続部３に対して時刻進行許可を送信することになる。
最後に、時点（５）において、シミュレータＡ１，Ａ２，Ｂ１，Ｂ２及びシミュレーションシステム接続部３は、論理時刻をｔ＋４に進める。
【０１３１】
図１１では、上述のように、シミュレータＡ１から送信されたデータが、全シミュレータに対し、次時刻に時刻進行する際に配信されている。ただし、シミュレータＡ２は受信したデータのタイムスタンプｔ＋１をｔ＋４に、また、シミュレータＢ１，Ｂ２は受信したデータのタイムスタンプｔ＋３をｔ＋４に解釈して、その後のシミュレーションを実行する必要がある。
【０１３２】
以上のように、シミュレーションシステム接続部３のタイムステップを、全てのシミュレータＡ１，Ａ２，Ｂ１，Ｂ２のタイムステップよりも小さく設定することにより、小さな処理コストで、データ遅延が発生しないような複数シミュレーションシステムの連接を行うことができる。
なお、この実施の形態７のシミュレーション装置を、ＨＬＡを用いて実装する場合は、上記実施の形態１とは異なり、シミュレーションシステム接続部３は、ｔｉｍｅ−ｒｅｇｕｌａｔｉｎｇ、かつ、ｔｉｍｅ−ｃｏｎｓｔｒａｉｎｅｄとして設定すればよい。
また、この実施の形態７では、シミュレーションシステム接続部３はＲＴＩに保持されている時刻進行情報を参照する必要がないため、上記実施の形態１とは異なり、ＭＯＭ機能等を利用する必要がない。
【図面の簡単な説明】
【０１３３】
【図１】この発明の実施の形態１によるシミュレーション装置を示す構成図である。
【図２】シミュレーションシステム接続部３の１回分の時刻進行に対応する処理手順を示すフローチャートである。
【図３】シミュレータＡ１，Ａ２，Ｂ１，Ｂ２のタイムステップが同一である場合のシミュレータＡ１，Ａ２，Ｂ１，Ｂ２及びシミュレーションシステム接続部３の具体的な処理の進行の例を示す説明図である。
【図４】１つのシミュレーションシステム接続部３が３つのシミュレーションシステムＡ，Ｂ，Ｃを連接して、シミュレータＡ１，Ａ２，Ｂ１，Ｂ２，Ｃ１，Ｃ２がデータ交換を実施しながらシミュレーションを実施するシミュレーション装置を示す構成図である。
【図５】シミュレータＡ１，Ａ２，Ｂ１，Ｂ２のタイムステップが最小タイムステップの自然数倍である場合のシミュレータＡ１，Ａ２，Ｂ１，Ｂ２及びシミュレーションシステム接続部３の具体的な処理の進行の例を示す説明図である。
【図６】シミュレータＡ１，Ａ２，Ｂ１，Ｂ２のタイムステップについて特に制約が設けられていない場合のシミュレータＡ１，Ａ２，Ｂ１，Ｂ２及びシミュレーションシステム接続部３の具体的な処理の進行の例を示す説明図である。
【図７】この発明の実施の形態４によるシミュレーション装置を示す構成図である。
【図８】シミュレータＡ１，Ａ２，Ｂ１，Ｂ２，Ｃ１，Ｃ２のタイムステップが同一である場合のシミュレータＡ１，Ｂ１，Ｃ１及びシミュレーションシステム接続部３−１，３−２の具体的な処理の進行の例を示す説明図である。
【図９】シミュレータＡ１，Ａ２，Ｂ１，Ｂ２，Ｃ１，Ｃ２のタイムステップが最小タイムステップの自然数倍である場合のシミュレータＡ１，Ｂ１，Ｃ１及びシミュレーションシステム接続部３−１，３−２の具体的な処理の進行の例を示す説明図である。
【図１０】シミュレータＡ１，Ａ２，Ｂ１，Ｂ２，Ｃ１，Ｃ２のタイムステップについて特に制約が設けられていない場合のシミュレータＡ１，Ｂ１，Ｃ１及びシミュレーションシステム接続部３−１，３−２の具体的な処理の進行の例を示す説明図である。
【図１１】シミュレーションシステム接続部３のタイムステップがシミュレータＡ１，Ａ２，Ｂ１，Ｂ２のタイムステップより小さい場合のシミュレータＡ１，Ａ２，Ｂ１，Ｂ２及びシミュレーションシステム接続部３の具体的な処理の進行の例を示す説明図である。
【図１２】複数のシミュレーションシステムの連接方式を実現するシミュレーション装置を示す構成図である。
【図１３】各シミュレータの１回分の時刻進行に対応する処理手順を示すフローチャートである。
【図１４】シミュレーションシステム接続手段の１回分の時刻進行に対応する処理手順を示すフローチャートである。
【図１５】シミュレータＡ１，Ａ２，Ｂ１，Ｂ２及びシミュレーションシステム接続手段の具体的な処理の進行の例を示す説明図である。
【符号の説明】
【０１３４】
Ａ１，Ａ２，Ｂ１，Ｂ２，Ｃ１，Ｃ２  シミュレータ、Ａ，Ｂ，Ｃ  シミュレータ管理部（シミュレータ管理手段）、１  データ配信部、２  時刻進行管理部、３  シミュレーションシステム接続部（ネットワーク接続手段）、３−１，３−２  シミュレーションシステム接続部（ネットワーク接続手段）、４  時刻管理部、５  データ転送部。
【図１】
0005159300.tif 000002
【図２】
0005159300.tif 000003
【図３】
0005159300.tif 000004
【図４】
0005159300.tif 000005
【図５】
0005159300.tif 000006
【図６】
0005159300.tif 000007
【図７】
0005159300.tif 000008
【図８】
0005159300.tif 000009
【図９】
0005159300.tif 000010
【図１０】
0005159300.tif 000011
【図１１】
0005159300.tif 000012
【図１２】
0005159300.tif 000013
【図１３】
0005159300.tif 000014
【図１４】
0005159300.tif 000015
【図１５】
0005159300.tif 000016