(57)【特許請求の範囲】
【請求項１】
ＨＬＡに基づいた分散シミュレーションシステムで、当該分散シミュレーションシステムにおけるフェデレートが模擬する模擬対象物とオブジェクトインスタンスとの関係が１対複数となる分散シミュレーションシステムにおいて、
前記オブジェクトインスタンスの属性値をＲＴＩとのインタフェースであるＵｐｄａｔｅ Ａｔｔｒｉｂｕｔｅ Ｖａｌｕｅｓを用いて更新を行うフェデレートは、
前記Ｕｐｄａｔｅ Ａｔｔｒｉｂｕｔｅ Ｖａｌｕｅｓの引数であるＵｓｅｒ Ｓｕｐｐｌｉｅｄ Ｔａｇに前記オブジェクトインスタンスと前記模擬対象物との対応をとるための識別子を格納して、前記ＲＴＩに対して前記オブジェクトインスタンスの属性値の更新を行うとともに当該識別子を通知し、
前記ＲＴＩは、
前記オブジェクトインスタンスの属性値を当該ＲＴＩとのインタフェースであるＲｅｆｌｅｃｔ Ａｔｔｒｉｂｕｔｅ Ｖａｌｕｅｓを用いて属性値反映通知として受けるフェデレートに対して、当該属性値反映通知を行い、
前記属性値反映通知を受けるフェデレートは、
前記Ｒｅｆｌｅｃｔ Ａｔｔｒｉｂｕｔｅ Ｖａｌｕｅｓの引数であるＵｓｅｒ Ｓｕｐｐｌｉｅｄ Ｔａｇに格納されている前記識別子を用いて、前記属性値の更新を行うオブジェクトインスタンスに対応する模擬対象物を特定し、属性値更新を行う
ことを特徴とする分散シミュレーションシステム。
【請求項２】
ＲＰＲ−ＦＯＭを利用するＨＬＡに基づいた分散シミュレーションシステムであって、
前記更新を行うフェデレートは、前記Ｕｐｄａｔｅ Ａｔｔｒｉｂｕｔｅ Ｖａｌｕｅｓの引数であるＵｓｅｒ Ｓｕｐｐｌｉｅｄ Ｔａｇに、時刻値に続いて前記オブジェクトインスタンスと前記模擬対象物との対応をとるための前記識別子を格納し、前記属性値反映通知を受けるフェデレートは、前記Ｒｅｆｌｅｃｔ Ａｔｔｒｉｂｕｔｅ Ｖａｌｕｅｓの引数であるＵｓｅｒ Ｓｕｐｐｌｉｅｄ Ｔａｇに、時刻値に続いて格納されている前記識別子を用いることを特徴とする請求項１記載の分散シミュレーションシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＨＬＡに基づいた分散シミュレーションシステムに関し、特に、模擬対象物とオブジェクトインスタンスの関係が１対複数となるような分散シミュレーションシステムに関するものである。
【背景技術】
【０００２】
ＨＬＡ（Ｈｉｇｈ  Ｌｅｖｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ）は、ＩＥＥＥによって標準化された分散シミュレーションシステムのソフトウェアアーキテクチャである。図１は、ＨＬＡによって規定される分散シミュレーションシステムの例を示している。図において、フェデレーション１０１は、ＨＬＡに準拠したシステム全体を示し、フェデレート（１）１０２ａ〜フェデレート（ｎ）１０２ｎは、システムを構成する個々のシミュレータ等のサブシステムを示す。ＲＴＩ（Ｒｕｎ−Ｔｉｍｅ  Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ）１０３は、複数のフェデレート（１）１０２ａ〜フェデレート（ｎ）１０２ｎに対する共通機能を提供する基盤ソフトウェアである。ＦＯＭ（Ｆｅｄｅｒａｔｉｏｎ  Ｏｂｊｅｃｔ  Ｍｏｄｅｌ）１０４は、フェデレーション１０１で模擬される航空機などの模擬対象物や、通信などのイベントについてのデータ仕様を定義し、フェデレート（１）１０２ａ〜フェデレート（ｎ）１０２ｎやＲＴＩ１０３が参照する定義情報である。
【０００３】
これらのＨＬＡの機能的側面は非特許文献１〜非特許文献３のドキュメントに規定されており、非特許文献１ではフェデレーションを構築するためのフェデレートとＲＴＩによるフレームワークとルールが、非特許文献２ではフェデレートとＲＴＩの間のインタフェース仕様が、非特許文献３ではＦＯＭの定義方法が規定されている。
【０００４】
ＨＬＡの特徴の一つは、フェデレーション１０１が模擬する模擬対象物やイベントのデータの仕様であるＦＯＭ１０４と、そのデータをフェデレート（１）１０２ａ〜フェデレート（ｎ）１０２ｎ間で通信する際に使用するＲＴＩ１０３のインタフェースの仕様が切り離されており、さらにＦＯＭ１０４をフェデレーション１０１の仕様に合わせてフェデレーション構築者や利用者が自由に定義することができる点であり、このことによってＨＬＡは多種多様な分散シミュレーションシステムに汎用的に適用可能なアーキテクチャとなっていることである。
【０００５】
なお、ＦＯＭ１０４は自由に定義することが可能であるが、ある種の共通のドメインに属するようなシステムではＦＯＭ１０４を共通化することによって、あるフェデレーション１０１のために作成したフェデレート（１）１０２ａ〜フェデレート（ｎ）１０２ｎを別のフェデレーション１０１で再利用することが容易となる。このような共通化されたＦＯＭ１０４としては、非特許文献４に挙げるＲＰＲ−ＦＯＭが有名である。ＲＰＲ−ＦＯＭは、軍事作戦や戦闘状況を模擬するシミュレーションシステムで共通的に利用されることを目的に標準化されたＦＯＭであり、模擬対象物としては車両、艦船、航空機などのリアルタイムプラットフォームや、イベントとしては指令通信などが定義されている。ＲＰＲ−ＦＯＭは広く一般的に利用されており、市販されているシミュレータやシミュレーションツールの他、新規に作成されるシミュレーションシステムでもＲＰＲ−ＦＯＭやその派生ＦＯＭが利用されている。
【０００６】
次に、図２〜図６を用いて、ＲＰＲ−ＦＯＭ１０４を利用したフェデレーション１０１の例を説明する。図２はＲＰＲ−ＦＯＭ１０４における模擬対象物のデータ定義例を示し、図３〜図６はＲＰＲ−ＦＯＭ１０４を用いたフェデレーション１０１の動作例を示す。なお、ＦＯＭでは、静的に設定された模擬対象物のデータ定義をオブジェクトクラスと呼び、シミュレーション実行中にデータ交換の対象となる具体的な模擬対象物に対応してフェデレート１０２およびＲＴＩ１０３において動的に作成される対象をオブジェクトインスタンスと呼ぶ。
【０００７】
図２は、ＲＰＲ−ＦＯＭ１０４におけるオブジェクトクラスの、ＢａｓｅＥｎｔｉｔｙクラスからＡｉｒｃｒａｆｔクラスまでの継承関係を、ＵＭＬ（Ｕｎｉｆｉｅｄ  Ｍｏｄｅｌ  Ｌａｎｇｕａｇｅ）記法のクラス図形式で表した説明図である。Ａｉｒｃｒａｆｔクラスは、フェデレーション１０１における模擬対象物として航空機のデータを定義したクラスであり、Ｐｌａｔｆｏｒｍクラスを継承したクラスである。ＰｌａｔｆｏｒｍクラスはＰｈｙｓｉｃａｌＥｎｔｉｔｙクラスを継承し、またＰｈｙｓｉｃａｌＥｎｔｉｔｙクラスはＢａｓｅＥｎｔｉｔｙクラスを継承しているため、Ａｉｒｃｒａｆｔクラスは、Ｐｌａｔｆｏｒｍクラス、ＰｈｙｓｉｃａｌＥｎｔｉｔｙクラス、ＢａｓｅＥｎｔｉｔｙクラスの属性を全て含んだクラスとなる。
【０００８】
図３〜図６は、フェデレーション１０１において模擬対象物として航空機を模擬するフェデレート（１）（２）１０２ａ，１０２ｂと、その航空機の情報を参照する監視システムを模擬するフェデレート（３）１０２ｃが、ＲＰＲ−ＦＯＭ１０４のＡｉｒｃｒａｆｔクラスと、そのクラスを具象化したＡｉｒｃｒａｆｔインスタンスをどの様に扱うのかを論理的に示した図である。
【０００９】
まず、図３は、フェデレーション１０１の初期化時などにおいて、フェデレート（１）１０２ａ〜フェデレート（３）１０２ｃがこれから模擬対象物やイベントのデータ交換を行うことをＲＴＩ１０３に通知する状況を示している。図において、航空機を模擬するフェデレート（１）１０２ａおよびフェデレート（２）１０２ｂは、ＲＴＩ１０３に対し、航空機に対応するＡｉｒｃｒａｆｔクラスを公開することを宣言し、航空機の情報を参照する監視システムを模擬するフェデレート（３）１０２ｃは、ＲＴＩ１０３に対し、Ａｉｒｃｒａｆｔクラスを購読することを宣言する。このように、Ａｉｒｃｒａｆｔクラスの公開と購読宣言によって、ＲＴＩ１０３において、どのデータをどのフェデレート同士でデータ交換行うのかといった関連付けが行われる。
【００１０】
次に、図４は、図３の処理が行われた後に、具体的にフェデレート（１）１０２ａ〜フェデレート（３）１０２ｃ間でデータ交換される模擬対象物に対応したオブジェクトインスタンスをＲＴＩ１０３に登録する状況を示している。図４において、航空機クラスを公開宣言したフェデレート（１）１０２ａは、自身が模擬する模擬対象物である航空機Ａに対応するＡｉｒｃｒａｆｔインスタンスのＲＴＩ１０３への登録処理を行う。同様にフェデレート（２）１０２ｂも、ＡｉｒｃｒａｆｔインスタンスのＲＴＩ１０３への登録処理を行う。ＲＴＩ１０３は、Ａｉｒｃｒａｆｔインスタンスが登録されると、それぞれのインスタンスに対して識別するためのＩＤを割り振ると共に、Ａｉｒｃｒａｆｔクラスの購読宣言を行ったフェデレート（３）１０２ｂに対して、Ａｉｒｃｒａｆｔインスタンスの発見通知を行ってＩＤを通知する。図４の状況では、フェデレート（１）（２）１０２ａ，１０２ｂが登録したＡｉｒｃｒａｆｔインスタンスであるＡｉｒｃｒａｆｔ−ＡおよびＡｉｒｃｒａｆｔ−Ｂについての発見通知が行われる。このように、Ａｉｒｃｒａｆｔインスタンスの登録と発見通知によって、フェデレート（１）１０２ａ〜フェデレート（３）１０２ｃ間でデータ交換される具体的な模擬対象物がＲＴＩ１０３およびフェデレート（１）１０２ａ〜フェデレート（３）１０２ｃにおいて特定される。
【００１１】
次に、図５は、図４の処理が行われた後に、フェデレート（１）１０２−１とフェデレート（３）１０２−３の間で模擬対象物である航空機Ａのデータ交換がＲＴＩ１０３を介して行われる状況を示している。図５において、フェデレート（１）１０２−１は自身が模擬している航空機Ａの位置情報や状態情報などの属性値を時々刻々と更新すると共に、ＲＴＩ１０３に対して登録したＡｉｒｃｒａｆｔインスタンスであるＡｉｒｃｒａｆｔ−Ａの属性値（図の例では、Ｅｎｔｉｔｙ  Ｉｄｅｎｔｉｆｉｅｒ、Ｗｏｒｌｄ  Ｌｏｃａｔｉｏｎ、Ａｆｔｅｒｂｕｒｎｅｒ  Ｏｎ）を更新する。ＲＴＩ１０３は、Ａｉｒｃｒａｆｔ−Ａの属性値更新が行われると、Ａｉｒｃｒａｆｔ−Ａの発見通知を受けていたフェデレート（３）１０２ｃに対して属性反映通知を行い、新たな属性値を通知する。
【００１２】
図６は、図５の状況をＵＭＬのシーケンス図形式で示した図である。図６では、フェデレート（１）１０２ａとフェデレート（３）１０２ｃが、航空機の属性値更新、属性値反映通知に使用するＲＴＩ１０３のＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）とその代表的な引数を示している。フェデレート（１）１０２ａは、ＲＴＩ１０３のＵＡＶ（Ｕｐｄａｔｅ  Ａｔｔｒｉｂｕｔｅ  Ｖａｌｕｅｓ）というＡＰＩを使用して属性値更新を行う。ＵＡＶの代表的な引数は、属性値更新の対象となるオブジェクトインスタンスのＩＤ（Ａｉｒｃｒａｆｔ−Ａ）と、更新される１つ以上の属性値を属性ＩＤをキーとしたデータ構造にまとめたＡｔｔｒｉｂｕｔｅＨａｎｄｌｅＶａｌｕｅＭａｐである。なお、ＡｔｔｒｉｂｕｔｅＨａｎｄｌｅＶａｌｕｅＭａｐの具体的実装方法についてＨＬＡ規約において定められており、プログラミング言語としてＣ＋＋を使用する場合はｓｔｄ：：ｍａｐ型を使用することが定められている。
【００１３】
ＲＴＩ１０３はＵＡＶを受けると、その属性値反映通知先となるフェデレート（３）１０２ｃに対して、ＲＡＶ（Ｒｅｆｌｅｃｔ  Ａｔｔｒｉｂｕｔｅ  Ｖａｌｕｅｓ）というＡＰＩを使用して属性値反映通知を行う。ＲＡＶの引数は、ＵＡＶと同じく属性値更新の対象となるオブジェクトインスタンスのＩＤ（Ａｉｒｃｒａｆｔ−Ａ）と、更新される１つ以上の属性値を属性ＩＤをキーとしたデータ構造にまとめたＡｔｔｒｉｂｕｔｅＨａｎｄｌｅＶａｌｕｅＭａｐである。フェデレート（３）１０２ｃは、ＲＡＶを受け取ると、その引数で渡されたオブジェクトインスタンスのＩＤ（Ａｉｒｃｒａｆｔ−Ａ）を基に対応する模擬対象物を特定し、次に、同じく引数で渡されたＡｔｔｒｉｂｕｔｅＨａｎｄｌｅＶａｌｕｅＭａｐを紐解き、属性ＩＤを基に必要な更新された属性値を取り込む。
【００１４】
このように、Ａｉｒｃｒａｆｔインスタンスの属性値更新と属性値更新反映通知によって、模擬対象物のデータ交換が行われる。
ＲＰＲ−ＦＯＭ１０４では、フェデレート（１）１０２ａ〜フェデレート（３）１０２ｃが模擬する模擬対象物（図３〜図５では航空機Ａ、航空機Ｂ）と、ＲＴＩ１０３に登録されるオブジェクトインスタンス（図３〜図５ではＡｉｒｃｒａｆｔ−Ａ、Ａｉｒｃｒａｆｔ−Ｂ）が、基本的に１対１の関係となる。
【先行技術文献】
【非特許文献】
【００１５】
【非特許文献１】IEEE 1516-2010-Standard for Modeling and Simulation High Level Architecture(HLA)-Framework and Rules.
【非特許文献２】IEEE 1516.1-2010-Standard for Modeling and Simulation High Level Architecture(HLA)-Federate Interface Specification.
【非特許文献３】IEEE 1516.2-2010-Standard for Modeling and Simulation High Level Architecture(HLA)-Object Model Template(OMT) Specification.
【非特許文献４】SISO-STD-001-1999, Guidance，Rationale, and Interoperability Modalities for the Real-time Platform Reference Federation Object Model (RPR FOM)
【発明の概要】
【発明が解決しようとする課題】
【００１６】
ＨＬＡおよびＲＰＲ−ＦＯＭに準拠した分散シミュレーションシステムは、フェデレートが模擬する模擬対象物と、ＲＴＩに登録されるオブジェクトインスタンスが基本的に１対１の関係となるが、システムの構成によっては１対複数の関係になるシステムも多く存在する。
【００１７】
図７は、このような１対複数の関係になる従来のシステムの例として、航空機の移動模擬と状態模擬とをフェデレート（１）１０２ａとフェデレート（２）１０２ｂとで分散処理するシステムを示している。図７の例では、１つの模擬対象物である航空機Ａに対し、フェデレート（１）１０２ａが移動模擬のデータ交換用にオブジェクトインスタンスＡｉｒｃｒａｆｔ−Ａ−１を登録し、フェデレート（２）１０２ｂが状態模擬のデータ交換用にオブジェクトインスタンスＡｉｒｃｒａｆｔ−Ａ−２を登録することにより、フェデレートが模擬する模擬対象物と、ＲＴＩ１０３に登録されるオブジェクトインスタンスの関係が１対２になっている。このようなケースでは、属性値を更新するフェデレートは自身が関係する属性値のみを更新するため、フェデレート（１）１０２ａは移動模擬に関係するＷｏｒｌｄ  Ｌｏｃａｔｉｏｎの属性値を更新し、フェデレート（２）１０２ｂは状態模擬に関係するＡｆｔｅｒｂｕｎｅｒ  Ｏｎの属性値を更新する。しかし、これだけでは属性値が更新されたオブジェクトインスタンスがどの模擬対象物に対応するのかが分からないため、模擬対象物を示す識別子が必要である。図６の例では、属性のＥｎｔｉｔｙ  Ｉｄｅｎｔｉｆｉｅｒの属性値を識別子として利用し、フェデレート（１）１０２ａとフェデレート（２）１０２ｂが同じ値をそれぞれ格納して属性値更新を行う。
【００１８】
図８は、図７の状況をＵＭＬのシーケンス図形式で示した図である。図８では、図６に示した１対１の関係になるシステムのシーケンスが、オブジェクトインスタンスが２つになったことによりフェデレート（１）１０２ａとフェデレート（２）１０２ｂによって２回行われるようになったことを示している。
【００１９】
ここで、フェデレーション１０１中の全ての模擬対象物について、属性値反映通知を受けるフェデレート（フェデレート（３）１０２ｃ）が通知されたオブジェクトインスタンスがどの模擬対象物に対応するのかを決定する処理の計算量を、フェデレート（フェデレート（１）（２）１０２ａ，１０２ｂ）が模擬する模擬対象物とＲＴＩ１０３に登録されるオブジェクトインスタンスの関係が、１対１の関係になるシステムと、１対複数の関係になる従来システムとで比較する。
【００２０】
まず、１対１の関係になるシステムでは、オブジェクトインスタンスの数をｎとすると、属性値反映通知はオブジェクトインスタンス毎に行われ（ｎ回）、さらに模擬対象物とオブジェクトインスタンスの対応が１対１のため、例えばハッシュテーブルなどの対応表を用意すればＯ（１）の計算量で対応を調べることができる。そのため、全体としての計算量はＯ（ｎ×１）すなわちＯ（ｎ）の計算量となる。
【００２１】
これに対し、１対複数の関係となる従来システムでは、オブジェクトインスタンスの数をｎ、属性の数をｍとすると、属性値反映通知はオブジェクトインスタンス毎に行われ（ｎ回）、さらに模擬対象物とオブジェクトインスタンスの対応を調べるために、ｍ個の属性の中から識別子を探索する処理が必要となる。例えばプログラミング言語としてＣ＋＋を利用するシステムでは、前述の通りＡｔｔｒｉｂｕｔｅＨａｎｄｌｅＶａｌｕｅＭａｐはｓｔｄ：：ｍａｐを使用して実装されているため、探索処理の計算量はＯ（ｌｏｇ  ｍ）である。そのため、全体としての計算量はＯ（ｎ×１×ｌｏｇ  ｍ）すなわちＯ（ｎ  ｌｏｇ  ｍ）の計算量となる。
【００２２】
以上のように、フェデレートが模擬する模擬対象物とＲＴＩに登録されるオブジェクトインスタンスの関係が１対複数の関係となる従来のシステムでは、１対１の関係になるシステムに比べ、属性値反映通知を受けた際の計算量が大きくなる。通常、１対複数の関係となるシステムは、模擬対象物の処理負荷を分散化する目的でフェデレートを分割するが、分割すればするほどオブジェクトインスタンス数が増え、その結果属性値反映通知を受けた際の計算量が増えるような従来のシステムは、分散化によってボトルネックが大きくなり高速化が難しいという課題があった。
【００２３】
この発明は上記のような課題を解決するためになされたもので、フェデレートが模擬する模擬対象物とＲＴＩに登録されるオブジェクトインスタンスの関係が１対複数の関係となるようなシステムにおいて、高速化を実現することのできる分散シミュレーションシステムを得ることを目的とする。
【課題を解決するための手段】
【００２４】
この発明に係る分散シミュレーションシステムは、ＨＬＡに基づいた分散シミュレーションシステムで、分散シミュレーションシステムにおけるフェデレートが模擬する模擬対象物とオブジェクトインスタンスとの関係が１対複数となる分散シミュレーションシステムにおいて、オブジェクトインスタンスの属性値をＲＴＩとのインタフェースであるＵｐｄａｔｅ Ａｔｔｒｉｂｕｔｅ Ｖａｌｕｅｓを用いて更新を行うフェデレートは、Ｕｐｄａｔｅ Ａｔｔｒｉｂｕｔｅ Ｖａｌｕｅｓの引数であるＵｓｅｒ Ｓｕｐｐｌｉｅｄ Ｔａｇにオブジェクトインスタンスと模擬対象物との対応をとるための識別子を格納して、ＲＴＩに対してオブジェクトインスタンスの属性値の更新を行うとともに当該識別子を通知し、ＲＴＩは、オブジェクトインスタンスの属性値を当該ＲＴＩとのインタフェースであるＲｅｆｌｅｃｔ Ａｔｔｒｉｂｕｔｅ Ｖａｌｕｅｓを用いて属性値反映通知として受けるフェデレートに対して、当該属性値反映通知を行い、属性値反映通知を受けるフェデレートは、Ｒｅｆｌｅｃｔ Ａｔｔｒｉｂｕｔｅ Ｖａｌｕｅｓの引数であるＵｓｅｒ Ｓｕｐｐｌｉｅｄ Ｔａｇに格納されている識別子を用いて、属性値の更新を行うオブジェクトインスタンスに対応する模擬対象物を特定し、属性値更新を行うようにしたものである。
【発明の効果】
【００２５】
この発明の分散シミュレーションシステムは、オブジェクトインスタンスの属性値を更新するフェデレートは、Ｕｐｄａｔｅ Ａｔｔｒｉｂｕｔｅ Ｖａｌｕｅｓの引数であるＵｓｅｒ ＳｕｐｐｌｉｅｄＴａｇにオブジェクトインスタンスと模擬対象物との対応をとるための識別子を格納するようにしたので、高速化を実現することができる。
【図面の簡単な説明】
【００２６】
【図１】ＨＬＡによって規定される分散シミュレーションシステムを示す構成図である。
【図２】ＲＰＲ−ＦＯＭにおけるオブジェクトクラスの、ＢａｓｅＥｎｔｉｔｙクラスからＡｉｒｃｒａｆｔクラスまでの継承関係を、ＵＭＬ記法のクラス図形式で表した説明図である。
【図３】フェデレートが模擬対象物やイベントのデータ交換を行うことをＲＴＩに通知する状況を示す説明図である。
【図４】フェデレート間でデータ交換される模擬対象物に対応したオブジェクトインスタンスをＲＴＩに登録する状況を示す説明図である。
【図５】フェデレート（１）とフェデレート（３）の間で航空機Ａのデータ交換がＲＴＩを介して行われる状況を示す説明図である。
【図６】図５の状況をＵＭＬのシーケンス図形式で示した説明図である。
【図７】ＲＴＩに登録されるオブジェクトインスタンスが１対複数の関係となるシステムを示す説明図である。
【図８】図７の状況をＵＭＬのシーケンス図形式で示した説明図である。
【図９】この発明の実施の形態１による分散シミュレーションシステムの説明図である。
【図１０】図９の状況をＵＭＬのシーケンス図形式で示した説明図である。
【図１１】ＨＬＡ規約におけるＣ＋＋言語によるＵｓｅｒ Ｓｕｐｐｌｉｅｄ Ｔａｇの変数形であるＶａｒｉａｂｌｅ Ｌｅｎｇｔｈ Ｄａｔａクラスの仕様を、ＵＭＬのクラス図形式で示す説明図である。
【図１２】時刻値と、オブジェクトインスタンスと模擬対象物との対応をとるための識別子として８バイトの整数値をセットする例を示す説明図である。
【発明を実施するための形態】
【００２７】
実施の形態１．
フェデレートが模擬する模擬対象物とＲＴＩに登録されるオブジェクトインスタンスの関係が１対複数の関係となるようなシステムにおける従来の問題点は、オブジェクトインスタンスと模擬対象物との対応をとるための識別子を、探索処理が必要なデータ構造であるＡｔｔｒｉｂｕｔｅＨａｎｄｌｅＶａｌｕｅＭａｐに格納したことである。そのため、オブジェクトインスタンスと模擬対象物との対応をとるための識別子を探索不要な形でＵＡＶとＲＡＶの各ＡＰＩで扱えれば良い。
【００２８】
図９は、フェデレーション１におけるフェデレート（１）２ａおよびフェデレート（２）２ｂの属性値更新において“航空機Ａ”という模擬対象物の識別子を直接渡している状況を示している。ここで、フェデレーション１は、ＨＬＡに準拠したシステム全体を示しており、フェデレート（１）２ａおよびフェデレート（２）２ｂは、図７に示したフェデレート（１）１０２ａおよびフェデレート（２）１０２ｂと同様に、１つの模擬対象物である航空機Ａに対し、フェデレート（１）２ａが移動模擬のデータ交換用にオブジェクトインスタンスＡｉｒｃｒａｆｔ−Ａ−１を登録し、フェデレート（２）２ｂが状態模擬のデータ交換用にオブジェクトインスタンスＡｉｒｃｒａｆｔ−Ａ−２を登録することにより、フェデレートが模擬する模擬対象物と、ＲＴＩ３に登録されるオブジェクトインスタンスの関係が１対２になっているものである。また、フェデレート（３）２ｃは、図７のフェデレート（３）１０２ｃと同様に、航空機Ａの情報を参照する監視システムを模擬するフェデレートである。さらに、ＲＴＩ３およびＲＰＲ−ＦＯＭ４は、図７のＲＴＩ１０３およびＲＰＲ−ＦＯＭ１０４と同様である。
【００２９】
図１０は、図９の状況をＵＭＬのシーケンス図形式で示した図である。このようにＵＡＶとＲＡＶの各ＡＰＩで識別子が直接参照できれば、属性のＥｎｔｉｔｙ  Ｉｄｅｎｔｉｆｉｅｒに格納された属性値を探索しなくとも、更新されたオブジェクトインスタンスと模擬対象物を対応付けることが可能である。ＨＬＡの規約に反しない形でＵＡＶとＲＡＶの各ＡＰＩで識別子を直接参照するために、本発明では、ＵＡＶおよびＲＡＶのオプション引数であるＵｓｅｒ  Ｓｕｐｐｌｉｅｄ  Ｔａｇを使用する。Ｕｓｅｒ  Ｓｕｐｐｌｉｅｄ  Ｔａｇは、ＵＡＶの呼び出し時に属性値更新を行うフェデレート（フェデレート（１）２ａ，（２）２ｂ）が任意のデータをセットすると、その属性値の属性値反映通知先のフェデレート（フェデレート（３）２ｃ）でＲＡＶが実行された際に、同じデータがＲＡＶの引数として送信されるものである。Ｕｓｅｒ  Ｓｕｐｐｌｉｅｄ  Ｔａｇの利用方法は、ＨＬＡ規約では特に規定は行われていないが、ＲＰＲ−ＦＯＭ４ではＵＡＶの呼び出し時刻を設定することが規定されている。本発明では、このＵｓｅｒ  Ｓｕｐｐｌｉｅｄ  Ｔａｇにセットするデータを拡張し、オブジェクトインスタンスと模擬対象物との対応をとるための識別子を格納するものとする。
【００３０】
図１１に、ＨＬＡ規約におけるＣ＋＋言語によるＵｓｅｒ  Ｓｕｐｐｌｉｅｄ  Ｔａｇの変数形であるＶａｒｉａｂｌｅ  Ｌｅｎｇｔｈ  Ｄａｔａクラスの仕様を、ＵＭＬのクラス図形式で示す。図１１のメソッドのうち、このクラスが保持するデータを参照するｄａｔａメソッドやｓｉｚｅメソッドの仕様と、このクラスが保持するデータをセットするｓｅｔＤａｔａメソッドの仕様を見て解る通り、このクラスは、データの実体を示すメモリ上の先頭ポインタをｖｏｉｄ＊型で、データのメモリ上の長さをｓｉｚｅ＿ｔ形でアクセスする形式である。つまり、Ｕｓｅｒ  Ｓｕｐｐｌｉｅｄ  Ｔａｇは、可変長の任意のバイト列を設定することができる。
【００３１】
図１２に、ＲＰＲ−ＦＯＭ４で規定されたＵｓｅｒ  Ｓｕｐｐｌｉｅｄ  Ｔａｇへの時刻値設定を拡張し、時刻値と、オブジェクトインスタンスと模擬対象物との対応をとるための識別子として８バイトの整数値をセットする例を示す。ＲＰＲ−ＦＯＭ４では、Ｕｓｅｒ  Ｓｕｐｐｌｉｅｄ  Ｔａｇの先頭０バイト目から８バイト分の領域にＤＩＳ  ｔｉｍｅ  ｓｔａｍｐ型による時刻値を格納することが決められており、その後にどのようなデータを格納するか、もしくはしないかは規定されていない。そこで、先頭９バイト目から８バイト分の領域に、時刻値とオブジェクトインスタンスと模擬対象物との対応をとるための識別子（図１２ではＥｎｔｉｔｙＩＤ）を格納する。
【００３２】
以上のように、ＵＡＶおよびＲＡＶのオプション引数であるＵｓｅｒ  Ｓｕｐｐｌｉｅｄ  Ｔａｇを利用することで、オブジェクトインスタンスと模擬対象物との対応をとるための識別子を、探索不要な形式でＵＡＶおよびＲＡＶで扱えることになる。このことによって、フェデレート（フェデレート（１）２ａ，（２）２ｂ）が模擬する模擬対象物とＲＴＩ３に登録されるオブジェクトインスタンスの関係が１対複数の関係となるようなシステムにおいて、フェデレート（１）２ａ中の全ての模擬対象物について属性値反映通知を受けるフェデレート（フェデレート（３）２ｃ）が、通知されたオブジェクトインスタンスがどの模擬対象物に対応するのかを決定する処理の計算量は、オブジェクトインスタンスの数をｎとした際にＯ（ｎ）となり、フェデレート（フェデレート（１）２ａ，（２）２ｂ）が模擬する模擬対象物とＲＴＩ３に登録されるオブジェクトインスタンスの関係が１対１の関係になるシステムと同じ計算量にすることが可能となる。そのため、分散化によるボトルネックを減らすことが可能となり、高速化を実現することができる。
【００３３】
以上説明したように、実施の形態１の分散シミュレーションシステムによれば、ＨＬＡに基づいた分散シミュレーションシステムで、分散シミュレーションシステムにおけるフェデレートが模擬する模擬対象物とオブジェクトインスタンスとの関係が１対複数となる分散シミュレーションシステムにおいて、オブジェクトインスタンスの属性値をＲＴＩとのインタフェースであるＵｐｄａｔｅ Ａｔｔｒｉｂｕｔｅ Ｖａｌｕｅｓを用いて更新を行うフェデレートは、Ｕｐｄａｔｅ Ａｔｔｒｉｂｕｔｅ Ｖａｌｕｅｓの引数であるＵｓｅｒ Ｓｕｐｐｌｉｅｄ Ｔａｇにオブジェクトインスタンスと模擬対象物との対応をとるための識別子を格納するようにしたので、分散化によるボトルネックを減らすことが可能となり、高速化を実現することができる。
【００３４】
また、実施の形態１の分散シミュレーションシステムによれば、ＨＬＡに基づいた分散シミュレーションシステムで、分散シミュレーションシステムにおけるフェデレートが模擬する模擬対象物とオブジェクトインスタンスとの関係が１対複数となる分散シミュレーションシステムにおいて、オブジェクトインスタンスの属性値をＲＴＩとのインタフェースであるＲｅｆｌｅｃｔ Ａｔｔｒｉｂｕｔｅ Ｖａｌｕｅｓを用いて更新反映通知を受けるフェデレートは、Ｒｅｆｌｅｃｔ Ａｔｔｒｉｂｕｔｅ Ｖａｌｕｅｓの引数であるＵｓｅｒ Ｓｕｐｐｌｉｅｄ Ｔａｇに格納されているオブジェクトインスタンスと模擬対象物との対応をとるための識別子を用いるようにしたので、分散化によるボトルネックを減らすことが可能となり、高速化を実現することができる。
【００３５】
また、実施の形態１の分散シミュレーションシステムによれば、ＲＰＲ−ＦＯＭを利用するＨＬＡに基づいた分散シミュレーションシステムであって、フェデレートは、Ｕｓｅｒ Ｓｕｐｐｌｉｅｄ Ｔａｇに、時刻値に続いてオブジェクトインスタンスと模擬対象物との対応をとるための識別子を格納するようにしたので、ＲＰＲ−ＦＯＭで規定されたＵｓｅｒ Ｓｕｐｐｌｉｅｄ Ｔａｇへの時刻値設定を利用して容易に高速化を実現することができる。
【００３６】
また、実施の形態１の分散シミュレーションシステムによれば、ＲＰＲ−ＦＯＭを利用するＨＬＡに基づいた分散シミュレーションシステムであって、フェデレートは、Ｕｓｅｒ ＳｕｐｐｌｉｅｄＴａｇに、時刻値に続いて格納されているオブジェクトインスタンスと模擬対象物との対応をとるための識別子を用いるようにしたので、ＲＰＲ−ＦＯＭで規定されたＵｓｅｒ ＳｕｐｐｌｉｅｄＴａｇへの時刻値設定を利用して容易に高速化を実現することができる。
【００３７】
なお、本願発明はその発明の範囲内において、実施の形態の任意の構成要素の変形、もしくは実施の形態の任意の構成要素の省略が可能である。
【符号の説明】
【００３８】
１  フェデレーション、２ａ，２ｂ，２ｃ  フェデレート、３  ＲＴＩ、４  ＲＰＲ−ＦＯＭ。
【図１】
0005854790.tif 000002
【図２】
0005854790.tif 000003
【図３】
0005854790.tif 000004
【図４】
0005854790.tif 000005
【図５】
0005854790.tif 000006
【図６】
0005854790.tif 000007
【図７】
0005854790.tif 000008
【図８】
0005854790.tif 000009
【図９】
0005854790.tif 000010
【図１０】
0005854790.tif 000011
【図１１】
0005854790.tif 000012
【図１２】
0005854790.tif 000013