JP3621392B2 - 統合シミュレーションシステム及びプログラム - Google Patents
統合シミュレーションシステム及びプログラム Download PDFInfo
- Publication number
- JP3621392B2 JP3621392B2 JP2002197695A JP2002197695A JP3621392B2 JP 3621392 B2 JP3621392 B2 JP 3621392B2 JP 2002197695 A JP2002197695 A JP 2002197695A JP 2002197695 A JP2002197695 A JP 2002197695A JP 3621392 B2 JP3621392 B2 JP 3621392B2
- Authority
- JP
- Japan
- Prior art keywords
- simulator
- information
- time
- simulation
- unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000004088 simulation Methods 0.000 title claims description 235
- 230000005540 biological transmission Effects 0.000 claims description 64
- 230000007246 mechanism Effects 0.000 claims description 44
- 230000001360 synchronised effect Effects 0.000 claims description 16
- 238000004364 calculation method Methods 0.000 claims description 12
- 230000008859 change Effects 0.000 claims description 8
- 238000010586 diagram Methods 0.000 description 18
- 238000007726 management method Methods 0.000 description 13
- 230000002123 temporal effect Effects 0.000 description 8
- 230000000694 effects Effects 0.000 description 7
- 238000000034 method Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000004913 activation Effects 0.000 description 3
- 239000000284 extract Substances 0.000 description 2
- 230000007547 defect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
Images
Landscapes
- Multi Processors (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Description
【発明の属する技術分野】
この発明は複数台のコンピュータ上に互いに異なるシミュレータを構築し、当該複数のシミュレータ間のデータの送受信の制御、及び、上記各シミュレータ間の時間同期をとることでシミュレーションを実行する統合シミュレーションシステム及びこれをコンピュータに実現させるプログラムに関するものである。
【0002】
【従来の技術】
コンピュータ上である事象をシミュレートするにあたり、より現実の事象に近いものとするためには、シミュレーションの精度をさらに高めることが必要となる。しかしながら、シミュレーション精度を向上させるに従って、コンピュータの処理量も増加する。このため、単一のコンピュータにシミュレーションを実行させるのでなく、複数のコンピュータを用いて分散処理させ、これらの処理結果を統合してシミュレーションを実行する統合シミュレーションが必要となってくる。つまり、複数のコンピュータを用いて分散処理することから、単位時間当りの処理量を向上させることができ、ひいては、シミュレーションの精度を高めることができるのである。
【0003】
また、上述した統合シミュレーションシステムでは、分散する各シミュレータとして機能するコンピュータがシミュレーションを実行するにあたり、それぞれの処理結果の時間的な同期が正確にとれるように制御することが必要となる。このため、例えば特開2001−306538公報に開示されるように、分散する各シミュレータとして機能するコンピュータの他に、各コンピュータによる処理の時間的な同期をとるための管理部が設けられている。
【0004】
具体的な動作を説明する。
分散する各シミュレータは、自己の処理分を完了すると、シミュレーション上の時間を進行させる要求を上記管理部に出力する。管理部では、全てのシミュレータから時間の進行要求を受けると、これら全てのシミュレータにそれぞれ適切な時間の進行許諾を出力する。これによって、分散する複数のシミュレータによる処理の時間的な同期をとることができる。
【0005】
また、上記システムでは、各シミュレータ間でデータの授受を行う場合、各シミュレータ間の接続仕様などで配信先が決定されるメッセージが利用されている。また、このメッセージは、上記シミュレータ間の接続仕様、各シミュレータが公開、購読する模擬オブジェクトやその属性値などのシミュレーション情報の種別情報を設定する設定部を有している。
【0006】
【発明が解決しようとする課題】
従来の統合シミュレーションシステムは以上のように構成されているので、分散する各シミュレータによる処理の時間的な同期をとるにあたり、各シミュレータの処理能力やこれらが担当する処理量が異なっていても、管理部は全てのシミュレータから時間の進行要求を受けるまで時間の進行許諾を行わない。このため、例えば処理の最も遅いシミュレータが処理を完了して時間進行要求を出すまで、処理を終えた他の全てのシミュレータが、時間の進行許諾を待つ必要がある。この結果、シミュレータとして機能するのに十分な処理能力を有したコンピュータを使用していても、統合シミュレーション処理全体の進行が遅くなる可能性があるという課題があった。
【0007】
また、従来の統合シミュレーションシステムでは、各シミュレータ間のデータの授受で使うメッセージに通信遅延を考慮した時間についての情報が定義されていない。このため、統合シミュレーションによってデータ通信遅延による不具合を検証することができないという課題があった。
【0008】
この発明は上記のような課題を解決するためになされたもので、シミュレーションを実行する上で情報交換の対象となる接続関係を有するシミュレータとの間のみでシミュレーションの実行上の時間的な同期をとることで、全てのシミュレータによる時間の進行許諾を待つことなく同期をとるための通信量を低減することができ、効率的に統合したシミュレーションを実行することができる統合シミュレーションシステム及びプログラムを得ることを目的とする。
【0009】
また、この発明は、シミュレータ間の接続形態に応じた伝送遅延時間やシミュレータ間の情報通信量に応じた伝送遅延時間を含む時間情報を元にして、シミュレーションの実行上の時間的な同期をとることで、シミュレータ間のデータ通信時に生じる伝送遅延時間による不具合を低減することができると共に、その検証もすることができる統合シミュレーションシステム及びプログラムを得ることを目的とする。
【0011】
【課題を解決するための手段】
この発明に係る統合シミュレーションシステムは、複数のシミュレータが情報交換しながら分散処理にてシミュレーションを実行する統合シミュレーションシステムにおいて、上記情報交換の対象となる各シミュレータ間の接続関係を定義する接続情報を格納する記憶部と、上記シミュレータごとに対応して設けられ、上記シミュレータによるシミュレーションの論理時間を保持する論理時計と、上記論理時計の論理時間を停止又は進行させる同期機構部と、自シミュレータ、及び、接続情報に基づいて特定される情報交換の対象となる接続関係を有する他のシミュレータについて、これらによるシミュレーションの現在の論理時間及びシミュレーションを完了する周期を含む同期用情報を保持する同期用情報保持部とを有してなる同期整合部と、上記記憶部から取得した接続情報に基づいて上記情報交換の対象として特定されたシミュレータの同期整合部間の情報のやり取りを中継するメッセージ配信部とを備え、上記同期機構部は、上記メッセージ配信部を介して、上記記憶部から取得した接続情報に基づき上記複数のシミュレータから情報交換の対象として特定された他のシミュレータの同期機構部との間で上記論理時間に関するメッセージ情報をやり取りし、このメッセージ情報から特定される上記他のシミュレータの論理時間と上記論理時計に保持される自シミュレータの論理時間との比較結果に応じて上記論理時計の論理時間を停止又は進行させると共に、上記同期用情報保持部から取得した同期用情報に含まれる上記自シミュレータ及び上記他のシミュレータの現在の論理時間に上記自シュミレータによる1周期のシミュレーションの実行に要した論理時間をそれぞれ加算した時間に基づいて上記両シミュレータの論理時間の整合性を判定し、この判定結果に応じて論理時計の論理時間を停止又は進行させ、当該論理時間に関するメッセージ情報を上記両シミュレータの論理時間の整合がとれている場合に限り上記他のシミュレータの同期機構部に送信するものである。
【0012】
この発明に係る統合シミュレーションシステムは、同期整合部が、自シミュレータとの間で情報交換の対象となる接続関係を有する他のシミュレータによるシミュレーションの現在の論理時間に、これらシミュレータ間の接続形態に応じた伝送遅延時間を加えた時間情報を含むメッセージ情報を上記他のシミュレータの同期機構部との間でやり取りするものである。
【0013】
この発明に係る統合シミュレーションシステムは、メッセージ配信部が、接続情報に基づき情報交換の対象として特定されたシミュレータ間でシミュレーション実行中にやり取りされる情報を中継してその情報通信量を算出し、当該情報通信量に応じて伝送遅延時間を求める伝送遅延計算部を備え、上記接続情報に基づき情報交換の対象として特定されたシミュレータの同期機構部間でやり取りされるメッセージ情報を中継するにあたり、このメッセージ情報に含まれる論理時間に上記伝送遅延計算部が求めた伝送遅延時間を加えるものである。
【0014】
この発明に係る統合シミュレーションシステムは、接続情報にシミュレータ間の接続形態に応じた伝送遅延時間に関する情報も含めて記憶部に保持し、同期整合部が、接続情報に基づいて、自シミュレータの入出力デバイスを特定する情報及び上記入出力デバイスに入出力される情報を保持するデバイスオブジェクトを備え、上記デバイスオブジェクトを介して、接続情報に基づき情報交換の対象として特定された他のシミュレータの同期整合部との間で互いのシミュレータの入出力デバイスに直接アクセスする情報をやり取りするものである。
【0015】
この発明に係る統合シミュレーションシステムは、シミュレーションを実行するシステム及びシミュレータを特定する情報をリスト形式で保持したリスト情報を備え、上記システムの構成又はその状態を変更する際、この変更に係るシステム又はシミュレータの同期整合部が、上記変更後のシステム又はシミュレータを特定する情報を上記リスト情報に反映させた後に上記変更を実行し、変更後のリスト情報に基づく構成でシミュレーションを実行するものである。
【0016】
この発明に係るプログラムは、複数のシミュレータが情報交換しながら分散処理にてシミュレーションを実行する統合シミュレーションシステムとしてコンピュータを機能させるプログラムであって、複数のシミュレータが情報交換しながら分散処理にてシミュレーションを実行する統合シミュレーションシステムにおいて、上記情報交換の対象となる各シミュレータ間の接続関係を定義する接続情報を格納する記憶部と、上記シミュレータごとに対応して設けられ、上記シミュレータによるシミュレーションの論理時間を保持する論理時計と、上記論理時計の論理時間を停止又は進行させる同期機構部と、自シミュレータ、及び、接続情報に基づいて特定される情報交換の対象となる接続関係を有する他のシミュレータについて、これらによるシミュレーションの現在の論理時間及びシミュレーションを完了する周期を含む同期用情報を保持する同期用情報保持部とを有してなる同期整合部と、上記記憶部から取得した接続情報に基づいて上記情報交換の対象として特定されたシミュレータの同期整合部間の情報のやり取りを中継するメッセージ配信部とを備え、上記同期機構部は、上記メッセージ配信部を介して、上記記憶部から取得した接続情報に基づき上記複数のシミュレータから情報交換の対象として特定された他のシミュレータの同期機構部との間で上記論理時間に関するメッセージ情報をやり取りし、このメッセージ情報から特定される上記他のシミュレータの論理時間と上記論理時計に保持される自シミュレータの論理時間との比較結果に応じて上記論理時計の論理時間を停止又は進行させると共に、上記同期用情報保持部から取得した同期用情報に含まれる上記自シミュレータ及び上記他のシミュレータの現在の論理時間に上記自シュミレータによる1周期のシミュレーションの実行に要した論理時間をそれぞれ加算した時間に基づいて上記両シミュレータの論理時間の整合性を判定し、この判定結果に応じて論理時計の論理時間を停止又は進行させ、当該論理時間に関するメッセージ情報を上記両シミュレータの論理時間の整合がとれている場合に限り上記他のシミュレータの同期機構部に送信する統合シミュレーションシステムとしてコンピュータを機能させるものである。
【0017】
【発明の実施の形態】
以下、この発明の実施の一形態を説明する。
実施の形態1.
図1はこの発明の実施の形態1による統合シミュレーションシステムの構成を示す図である。図において、1はある事象を模擬するシミュレーションプログラムを分散して処理する複数のシミュレータであって、コンピュータ上にシミュレータオブジェクト部3ごとに構築される。また、シミュレータ1間のデータ通信は、後述する仕様のメッセージによって行われる。2は分散する複数のシミュレータ1の同期管理、通信管理や分散管理を実行するシミュレーションサービス部である。このシミュレーションサービス部2は、シミュレータオブジェクト部3、メッセージ配信部4及び接続情報を格納する記憶部5から構成される。
【0018】
3は各シミュレータ1に対応して設けられたシミュレータオブジェクト部(同期整合部)であって、シミュレータ1に関する同期管理及びデータ通信管理を実行する。また、シミュレータオブジェクト部3は、シミュレータ1の現在のシミュレーション上の論理時間を管理している。このシミュレータオブジェクト部3は、同期機構部6、論理時計7及びメッセージキュー8としてコンピュータを機能させるプログラムによって具現化される。
【0019】
4はメッセージ配信部で、シミュレータオブジェクト部3から送信されたメッセージを配信先のシミュレータオブジェクト部3に配信する。このメッセージ配信部4も、その機能をコンピュータに持たせるプログラムによって具現化される。5は接続情報を格納する記憶部であって、シミュレーションサービス部2として機能するコンピュータに搭載されたハードディスク装置や、CD−ROMなどの記憶媒体を用いるディスク装置によって実現される。
【0020】
また、接続情報とは、互いに接続されてデータの授受を行うシミュレータ1間の関係を記述した情報である。例えば、接続情報には、シミュレータ1間でデータ通信を行う場合における、データを送信するシミュレータ1とデータを受信するシミュレータ1との関係が記述される。さらに、接続情報には、シミュレータ1間で通信接続する際における通信媒体に応じたデータ伝送遅延時間の情報も記述される。
【0021】
従って、シミュレータオブジェクト部3やメッセージ配信部4は、上記接続情報を参照することにより、当該統合シミュレーションシステム内のどのシミュレータ1がどのシミュレータ1とデータ通信可能に接続しているかを把握することができる。また、シミュレータ1間でのデータ通信におけるデータの流れ(方向)や、データ通信を行うときのデータ伝送遅延時間も把握することができる。ここで、上記接続情報に保持される「通信媒体に応じたデータ伝送遅延時間」に関する情報は、固定値であってもよいし、確率分布として与えられてもよい。
【0022】
6は同期機構部(同期整合部)であって、接続情報に基づいて自己が管理するシミュレータ1とそれに接続する他のシミュレータ1との論理時間に関する情報を互いにやり取りして自己が管理するシミュレータ1の論理時間の更新を判定する。7は論理時計(同期整合部)で、シミュレータオブジェクト部の論理時間を保持する時計である。この論理時計7に保持される論理時間は、同期機構部6によって時間の進行が許可されたときにシミュレータオブジェクト部3によってシミュレータ1の実行周期分だけ進められる。
【0023】
このように、論理時計7を用いて論理時間を個別に管理して、各シミュレータ1について必要最低限の同期さえとれば、時間的な整合性が保証される。これにより、各シミュレータ1が独立してシミュレーションを実行することができる。また、後述するように、配信時間が記述されたメッセージの当該配信時間にて到達したか否かの判定には、論理時計7に保持された論理時間が使用される。
【0024】
8はメッセージキュー(同期用情報保持部)であって、シミュレータオブジェクト部3から受信したメッセージを一時的に保持する。また、メッセージキュー8に保持されるメッセージには、後述するように配信時間が記述されている。あるシミュレータオブジェクト部3が管理するシミュレータ1に、他のシミュレータオブジェクト部3から受信したメッセージを送出する場合、当該シミュレータオブジェクト部3は、自己が管理するシミュレータ1の現在の論理時間以前に相当する上記配信時間を記述するメッセージをメッセージキュー8から読み出して送出する。
【0025】
図2は実施の形態1による統合シミュレーションシステムで用いられるメッセージの構成を示す図である。図に示すように、メッセージ(メッセージ情報)は、ヘッダ部とデータ部から構成される。また、ヘッダ部には、「送信元」、「配信先」、「識別子」、「タイプ」、「送信時間」、「配信時間」及び「優先度」のようなメッセージを配信するのに必要となる情報が記述される。これらの情報は、各シミュレータ1やシミュレータオブジェクト部3を特定するための特有な識別子に相当する。
【0026】
具体的に説明すると、「送信元」は、メッセージの送信元のシミュレータ1を特定するための識別子である。また、「配信先」は、メッセージの配信先のシミュレータ1を特定するための識別子である。「識別子」は、メッセージを特定するための識別子である。「タイプ」は、メッセージの種類を特定する識別子である。ここで、メッセージの種類としては、通常のデータ通信に関するメッセージの他に、デバイスを扱うメッセージ、シミュレーションサービス部2がシミュレータ1の管理のために内部的に使用するメッセージなどがある。
【0027】
「送信時間」は、メッセージが送信された時間を特定する情報である。この時間は、メッセージ送信元のシミュレータの論理時間に基づく時間に相当する。
また、「配信時間」は、メッセージが配信されるべき時間を特定する情報である。この時間は、「送信時間」に通信媒体に応じた遅延時間を加えた時間に相当する。
【0028】
メッセージ配信部4によってシミュレータオブジェクト部3に配信されたメッセージは、配信先のシミュレータ1の論理時間が上記配信時間に到達した時点で実際にシミュレータ1に送信される。但し、送信して即時に配信する必要がある特別なメッセージの場合では、上記配信時間を0に設定してもよい。このようにメッセージに配信時間を持たせることにより、通信遅延時間を考慮したデータ通信シミュレーションが可能になる。また、メッセージの時間的な整合性を保証することもできる。
【0029】
「優先度」は、メッセージを処理する順位を決定するための値である。当該「優先度」が高いほど先に処理される。例えば、強制終了などの管理用のメッセージでは、「優先度」を最高にして、他のメッセージと区別することができる。
【0030】
一方、データ部には、実際にシミュレータ1間で授受するデータが記述される。このデータ部に記述する内容には、サイズに制限を設けてもよいし、設けなくてもよい。また、データ部に記述するデータの形式としては、テキスト形式でもよいし、バイナリ形式でもよい。
【0031】
このように、シミュレータオブジェクト部3を介してシミュレータ1間で行われるデータ通信に用いられるメッセージは、時間の概念を持ち、シミュレーション上の伝送遅延も含めた時間的な整合性を保証して相手のシミュレータ1に配信される。
【0032】
図3は実施の形態1の統合シミュレーションシステムにおけるメッセージ配信部の他の構成を示す図である。図において、4aはメッセージ配信部であって、接続情報に記述されたシミュレータ1間の通信媒体に応じたデータ伝送遅延時間を算出するデータ伝送遅延計算部(伝送遅延計算部)9を有する。このデータ伝送遅延計算部9は、実際にシミュレーションを実行しているときのシミュレータ1間におけるデータ通信量に応じてデータ伝送遅延時間を算出する計算式が設定されている。なお、図1と同一構成要素には同一符号を付して重複する説明を省略する。
【0033】
図4は図1中のメッセージ配信部の配置形態を説明する図であり、(a)はローカルマシンにメッセージ配信部を配置した形態を示し、(b)はリモートマシンにメッセージ配信部を配置した形態を示している。図において、10はローカルマシンであって、メッセージ配信部4(若しくは4a)、複数のシミュレータオブジェクト部3、及び接続情報を格納する記憶部5が構築された単一のコンピュータによって具現化される。10−1,10−2はメッセージ配信部4(若しくは4a)、シミュレータオブジェクト部3及び接続情報を格納する記憶部5がそれぞれ構築されたリモートマシンであって、互いにネットワーク11によってデータ通信可能に接続された複数のコンピュータによって具現化される。なお、ネットワークの形態としては、インターネットであっても専用線であってもよく、それらが混在していてもよい。
【0034】
メッセージ配信部4,4aは、シミュレータオブジェクト部3からメッセージを受信すると、記憶部5からシミュレータ1の識別子と起動マシン名が記述された接続情報を読み出して参照し、当該メッセージに記述された配信先を検索する。また、メッセージ配信部4,4aは、接続情報からデータ伝送遅延時間を取得し、受信したメッセージの「送信時間」に設定された時間に当該データ伝送遅延時間を加えた時間を、当該メッセージの「配信時間」として設定する。
このあと、(a)に示すように、配信先のシミュレータ1がローカルマシン10内に存在する場合、メッセージ配信部4,4aは、その配信先のシミュレータ1を管理するシミュレータオブジェクト部3のメッセージキュー8にメッセージを追加する。
【0035】
また、(b)に示すように、送信先のシミュレータ1がリモートマシン10−1,10−2内に存在する場合、これに対応するメッセージ配信部4,4aは、配信先のシミュレータ1が存在するマシン内のメッセージ配信部4,4aにメッセージを送信し、そのメッセージの配信を依頼する。リモートマシン10−1,10−2からメッセージを受信すると、メッセージ配信部4,4aは、接続情報のうち同様な構成情報を参照してメッセージに記述された配信先を検索し、配信先のシミュレータ1を管理するシミュレータオブジェクト部3のメッセージキュー8にメッセージを追加する。
【0036】
このとき、接続情報にデータ伝送遅延時間を求める計算式が定義されていれば、図3に示すメッセージ配信部4a内のデータ伝送遅延計算部9は、シミュレータオブジェクト部3から受信したメッセージからデータ部分のサイズを取得し、そのサイズと接続情報に定義された計算式からデータ伝送遅延時間を算出する。そして、メッセージ配信部4aは、受信したメッセージの「送信時間」に設定された時間に、上記データ伝送遅延時間を加えた時間を「配信時間」として設定する。
【0037】
図5は図1中の同期機構部によるメッセージ送信処理を説明する図であり、(a)は送信側のシミュレータAが受信側のシミュレータBよりも現在の論理時間が進んでいる場合を示し、(b)は受信側のシミュレータBが送信側のシミュレータAよりも現在の論理時間が進んでいる場合を示している。この図は2つのシミュレータA,B間でのメッセージ通信の例を示している。(a),(b)いずれもシミュレータAからシミュレータBにメッセージを送信し、そのときの「配信時間」が320であることを想定している。
【0038】
(a)に示す例では、受信側のシミュレータBの論理時間が次の周期の350になった時点で、メッセージを受け取れるので問題はない。一方、(b)に示すように、受信側のシミュレータBが送信側のシミュレータAよりも現在の論理時間が進んでいると、例えばシミュレータBの論理時間が350となって、既にメッセージの「配信時間」320を過ぎている。このため、シミュレータAは、過去のメッセージを受信することになり、時間的な不整合が生じる。この例からもわかるようにメッセージの受信側のシミュレータBは、送信側のシミュレータAよりも時間的に先に進むと問題が生じる可能性がある。
【0039】
そこで、同期機構部6は、シミュレータオブジェクト部3が管理するシミュレータ1とそれに接続するメッセージの送信元のシミュレータ1との論理時間を比較して時間的な不整合が生じないようにシミュレーション実行に関して同期をとる。つまり、シミュレータ1から1周期のシミュレーション実行の“完了”メッセージがシミュレータオブジェクト部3に送られると、同期機構部6は、メッセージ送信元のシミュレータ1の論理時間よりも進み過ぎないように制御する。
【0040】
ここで、具体的な論理時間の調整処理について説明する。
先ず、各シミュレータ1は、自己の論理時間を更新するにあたり、必要に応じてその論理時間をメッセージを用いてデータ送信先のシミュレータ1に通知する。これにより、各シミュレータオブジェクト部3は、データ送信元のシミュレータ1の現在の論理時間を把握することができる。このデータ送信元の論理時間に基づいて、シミュレータオブジェクト部3内の同期機構部6は、その状態(オープン又はクローズ)を切り換える。
【0041】
上述した同期機構部6の状態の切り換えは、下記式(1)に従う。
T+Δt≦Ti+Δti(i=1,2,・・・,n) ・・・(1)
但し、あるシミュレータ1の論理時間をT、周期をΔtとし、これに対してメッセージ送信元となるn個のシミュレータ1をそれぞれS1,S2,・・・,Snとし、これらシミュレータ1の論理時間をそれぞれT1,T2,・・・,Tn、周期をそれぞれΔt1,Δt2,・・・,Δtnとする。ここで、同期機構部6は、上記式(1)を全てのiに対して満たす場合はオープン状態をとなり、満たさない場合はクローズ状態となる。
【0042】
シミュレータ1がメッセージを受信してから1つのシミュレーション実行が完了すると、当該シミュレータ1は、“完了”メッセージを対応するシミュレータオブジェクト部3に送信する。続いて、シミュレータ1から“完了”メッセージを受けたシミュレータオブジェクト部3において、同期機構部6がオープン状態になると、当該シミュレーションオブジェクト部3内の論理時計7が1周期分だけ進められる。
【0043】
一方、他のシミュレーションオブジェクト部3が管理するシミュレータ1から“開始”メッセージが送られると、シミュレーションオブジェクト部3は、メッセージキュー8から「配信時間」に到達した受信メッセージを読み出し、自己が管理するシミュレータ1に送信する。このあと、当該メッセージを受信したシミュレータ1は、1周期のシミュレーション実行を開始する。これによって、時間的な整合性を保って適切な時間にメッセージを配信することができる。
【0044】
次に動作について説明する。
先ず、シミュレータ1は、起動時にシミュレータオブジェクト部3を起動する。シミュレータオブジェクト部3は、起動すると、自己が管理するシミュレータ1に“開始”メッセージを送出する。シミュレータオブジェクト部3からの“開始”メッセージを受けると、シミュレータ1は、メッセージキュー8に格納されているメッセージの読み出しを、シミュレータオブジェクト部3に要求する。
【0045】
シミュレータオブジェクト部3では、上記読み出し要求を受けると、自己が管理するシミュレータ1の現在の論理時間(つまり、現在、論理時計7に設定されている時間)以前に相当する「配信時間」を記述するメッセージをメッセージキュー8から読み出して上記シミュレータ1に送出する。シミュレータオブジェクト部3からのメッセージを受信すると、シミュレータ1は、1周期のシミュレーションを実行する。
【0046】
上記シミュレータ1は、1周期のシミュレーション実行を完了すると、シミュレータオブジェクト部3に“完了”メッセージを送出する。シミュレータオブジェクト部3では、“完了”メッセージを受けると、同期をとる必要がある(自己が管理するシミュレータ1にメッセージを送信してくる可能性のある)シミュレータ1の現在の論理時間を確認する。
【0047】
このあと、シミュレータオブジェクト部3は、時間を進めても時間的な矛盾が生じなければ、自己の論理時計7の現在の論理時間を進めた後、当該シミュレータ1に“開始”メッセージを送出する。これにより、上述した内容と同様な処理により、時間的な整合性を保ちながら複数のシミュレータ1にてシミュレーションを実行することができる。
【0048】
次に本発明におけるメッセージ通信を詳細に説明する。
図6は図1中の同期機構部によるメッセージ通信処理のシーケンスを示す図であり、この図に沿ってシミュレータA,B間でのメッセージ通信の時間的な同期をとるための処理を詳細に説明する。また、この図に示す例では、シミュレーション実行の周期が100のシミュレータAと、シミュレーション実行の周期が70のシミュレータBとの間だけで互いにメッセージの送受信を行う場合を考えている。さらに、説明の簡単のため、シミュレータA,B間での時間的な同期をとるためのメッセージのみを図示している。この同期通信用のメッセージは内部メッセージであり、データ伝送遅延時間は0である。
【0049】
先ず、シミュレータAは、1周期で処理すべきシミュレーションが完了すると、シミュレータBにメッセージ(配信時間=600)を送信する。シミュレータBを管理するシミュレータオブジェクト部3は、上記メッセージによってシミュレータAの論理時間が600に到達したことを認識する。
【0050】
このあと、シミュレータBを管理するシミュレータオブジェクト部3は、当該シミュレータBによって実行されていたシミュレーションが完了すると、シミュレータAと時間的な整合がとれる論理時間(配信時間600より進んだ時間)に時間を進めることができる。ここで、シミュレータBによるシミュレーション実行が完了した際、その論理時間が例えば630であった場合を考えると、シミュレータBを管理するシミュレータオブジェクト部3は、自己の論理時計7を630に進めると共に、これを配信時間とするメッセージをシミュレータAに送信する。
【0051】
シミュレータAを管理するシミュレータオブジェクト部3は、シミュレータBからのメッセージによってその論理時間が630に到達したことを認識する。このあと、シミュレータオブジェクト部3は、自己が管理するシミュレータAによる1周期のシミュレーション実行が完了すると、論理時間600に1周期分の時間100が加わって実際は論理時間700となっている。しかしながら、シミュレータAを管理するシミュレータオブジェクト部3は、同期通信用のメッセージを配信すべきシミュレータBの論理時間が、先ほどのメッセージから630であることを認識しているので、論理時間を700とすることができない。
【0052】
つまり、上記式(1)によって自己の論理時間(論理時間600+1周期分の時間100)=700)>(メッセージ送信元であるシミュレータBの論理時間630)である。これにより、シミュレータAを管理するシミュレータオブジェクト部3は、自己の同期機構部6がオープン状態となる条件を満たしていないことから、自己の論理時計7を700に進めることが抑制される(論理時計7を700に進められない)。そこで、シミュレータAを管理するシミュレータオブジェクト部3は、配信時間を700としたメッセージをシミュレータB側に送出する。
【0053】
一方、シミュレータB側では、上記メッセージによってシミュレータAが論理時間700であることを認識する。ここで、シミュレータBによって1周期分のシミュレーション実行が完了すると、当該シミュレータBを管理するシミュレータオブジェクト部3は、自己の論理時間を700に進める。
【0054】
つまり、上記式(1)によって、{自己の論理時間(論理時間630+1周期分の時間70)=700}={メッセージ送信元であるシミュレータBの論理時間700}である。これにより、シミュレータBを管理するシミュレータオブジェクト部3は、自己の同期機構部6がオープン状態となる条件を満たしていることから、自己の論理時計7を700に進める。このあと、シミュレータBを管理するシミュレータオブジェクト部3は、配信時間を700に設定したメッセージをシミュレータA側に送信する。
【0055】
また、論理時間を進行が抑制されていたシミュレータA側においても、シミュレータB側から、配信時間が700に設定された上記メッセージを受けることにより、同期機構部6がオープン状態になる条件が満たされる。従って、シミュレータAを管理するシミュレータオブジェクト部3は、当該シミュレータAの論理時間を700に進めることができる。このようなメッセージの送受信を繰り返すことにより、同期をとりながら各シミュレータA,Bのシミュレーションを進めることができる。
【0056】
なお、図6に示す例では、いずれのシミュレータA,Bも1周期のシミュレーション実行を完了するごとに同期をとるため、接続相手のシミュレータ1に対して自己の論理時間を示す情報をメッセージとして送信する必要がある。このようなシーケンスの場合、シミュレータA,B間で無駄な同期通信用メッセージが送信される可能性がある。
【0057】
例えば、図6に示す場合、シミュレータBが論理時間600でのシミュレーションの実行を完了した際、シミュレータBを管理するシミュレータオブジェクト部3が、配信時間を630に設定したメッセージをシミュレータAに送信している。しかしながら、このメッセージを送信してもシミュレータA側の同期機構部6は、上記式(1)の条件を満たさず、オープン状態にならない。この場合、配信時間630のメッセージは無駄であり、シミュレータB側は、配信時間を700に設定したメッセージさえ送ればよい。
【0058】
このような無駄なメッセージによる同期通信量は、接続相手のシミュレータのシミュレーション実行周期の差が大きく異なるほど多くなる。そこで、シミュレータオブジェクト部3が接続先のシミュレータの現在の論理時間とそのシミュレーション実行周期を保持しておき後述する処理を実行することで、上述したような無駄な同期メッセージを送信する必要がなくなる。
【0059】
先ず、同期通信用メッセージを受信するシミュレータオブジェクト部3の現在の論理時間及びこれが管理するシミュレータのシミュレーション実行周期を、それぞれTr、Δtrとする。また、同期通信用メッセージを送信するシミュレータオブジェクト部3が管理するシミュレータのシミュレーション実行周期をΔts、1周期Δts分のシミュレーション実行を完了した後、当該周期分だけ更新した論理時間をTs’とする。これにより、下記式(2)が得られる。同期通信用メッセージを送信するシミュレータオブジェクト部3は、下記式(2)の条件を満たす場合だけ同期通信用メッセージを送信すればよい。
Ts’≦Tr+Δtr<Ts’+Δts ・・・(2)
【0060】
ここで、図6の場合を例に挙げて説明すると、シミュレータAの現在の論理時間がTr=600、シミュレータBが1周期のシミュレーション実行を完了して更新した後の論理時間をTs’=630とすると、(Ts’=630)<{(Tr=600)+(Δtr=100)=700}={(Ts’=630)+(Δts=70)=700}となって、上記式(2)の条件式が成り立たない。従って、シミュレータB側では、この時点で同期通信用メッセージをシミュレータA側に送信する必要はない。
【0061】
一方、シミュレータBが次のシミュレーション実行を完了してTs’=700になると、(Ts’=700)={(Tr=600)+(Δtr=100)=700}<{(Ts’=700)+(Δts=70)=770}となって、上記式(2)の条件を満たすので、この時点で同期メッセージを送信すればよい。
【0062】
以上のように、この実施の形態1によれば、複数のシミュレータ1が情報交換しながら統合してシミュレーションを実行するにあたり、各シミュレータ1間の接続関係を定義する接続情報に基づいて、シミュレーションを実行する上で情報交換の対象となる接続関係を有するシミュレータ1を認識すると共に、同期機構部6や論理時計7によって、シミュレータ1間でシミュレーション上の現在時間に伝送遅延時間を加えた時間情報を含むメッセージを用いて、上記認識したシミュレータ1との間でのシミュレーション実行上の時間的な同期をとるので、接続情報を参照してシミュレーション上の時間的な同期をとることが必要なシミュレータだけの間で同期をとることができ、データをやり取りしない無関係なシミュレータの遅れによってシミュレーション実行の進行が妨げられることを避けることができる。また、従来のように、全てのシミュレータ同期をとるためのメッセージ通信量を削減することができる。
【0063】
実施の形態2.
FA機器はそれぞれ入出力デバイスを持っている場合が多く、機器間でデータ通信を行う場合、それらのデバイス間を接続することによってデータ通信を実現することが多い。シミュレータでも同様に、他のシミュレータとデータ通信を行う場合、シミュレータのデバイス間を接続することによってデータ通信を実現することができる。
【0064】
例えば、リレー、タイマ、カウンタを組み合わせて構成する論理回路(ハードワイヤードロジック)の信号処理部(論理演算部・制御部)をマイクロコンピュータに代行させるシーケンサ(プログラマブルコントローラ)を用いる場合を考える。シーケンサは、その入出力接点を他の機器の入出力デバイスと接続することで、当該機器との間でのデータ通信やその制御することができる。そこで、シミュレータを構築するコンピュータを上記シーケンサの1つの機器として、その入出力デバイスと入出力接点を接続する。このようにして、シミュレータを構築するコンピュータの入出力デバイスに直接メッセージの送受信を行うことで、シミュレータ自体がメッセージの作成や送受信を行う必要がなく、より扱いやすいデバイスに対する読み書きによって他のシミュレータとのデータ通信を行うことができる。
【0065】
このように、シミュレータがデバイスレベルでデータ通信を行うためには、シミュレーションサービス部にデバイス層を設ければよい。つまり、デバイス層をシミュレーションサービス部に設けることにより、シミュレータがメッセージを意識することなくデバイスレベルでデータにアクセスすることができる。
【0066】
図7はこの発明の実施の形態2による統合シミュレーションシステムのシミュレーションサービス部の構成を示す図である。図において、2Aは実施の形態2によるシミュレーションサービス部であって、メッセージ層12及びデバイス層13に分けたシミュレーションオブジェクト部3aを有する。3aはメッセージ層12及びデバイス層13を有するシミュレーションオブジェクト部で、自己が管理するシミュレータ1が使用するデバイスに対して、デバイスオブジェクト(同期整合部)14,15をデバイス層13に作成する。また、このシミュレータオブジェクト部3aは、図示を省略しているが上記実施の形態1と同様に同期機構部6、論理時計7及びメッセージキュー8を有している。
【0067】
ここで、デバイスオブジェクト14,15は、シミュレータ1のデバイスに対応し、そのデバイスに関する情報を保持する。具体的に説明すると、デバイス層13内の入力デバイスに格納されるデバイスオブジェクト14は、当該デバイス層13を有するシミュレータオブジェクト部3aが管理するシミュレータ1の各デバイスを特定する情報及びこれに入力すべき情報(デバイスに読み出されるべき情報)が一時記憶される。また、デバイス層13内の出力デバイスに格納されるデバイスオブジェクト15は、当該デバイス層13を有するシミュレータオブジェクト部3aが管理するシミュレータ1の各デバイスを特定する情報及びこれから出力された情報(デバイスから書き込まれた情報)が一時記憶される。
【0068】
このように、シミュレータ1は、自身を管理するシミュレータオブジェクト部3a上のデバイスオブジェクト14,15に対してデバイス値の読み書きを行うことができる。また、シミュレータオブジェクト部3aは、自身のデバイスと他のシミュレータオブジェクト部3aが管理するシミュレータ1のデバイスとの接続関係を記述したデバイスマップを参照してデバイスオブジェクトとメッセージの変換を行う。このデバイスマップは、上記実施の形態1で説明した接続情報と共に記憶部5aに格納される。当該記憶部5aは、シミュレーションサービス部2Aとして機能するコンピュータに搭載されたハードディスク装置や、CD−ROMなどの記憶媒体を用いるディスク装置によって実現される。
【0069】
次に動作について説明する。
シミュレータオブジェクト部3aは、自己が管理するシミュレータ1から“完了”メッセージを受信すると、上記実施の形態1と同様に同期機構部6がオープン状態になった時点で、デバイス層13内の入出力デバイス中のデバイスオブジェクト14,15に格納されたデバイス値を参照して、シミュレータ1のデバイスのうちデバイス値に変化があったものを抽出する。
【0070】
このあと、シミュレータオブジェクト部3aは、記憶部5aからデバイスマップを読み出して参照し、デバイス値に変化があるものとして抽出したデバイスの接続先(シミュレータオブジェクト部3a及びデバイス)を検索し、当該デバイス値を書き込むべきデバイスを特定するデバイス名及びそのデバイス値を記述したメッセージを作成し送信する。ここで作成されるメッセージの種類は、デバイス間のデータ通信を扱うデバイスタイプである。
【0071】
シミュレータオブジェクト部3aは、上述したデバイスタイプのメッセージを受けると、これをメッセージキュー8に格納する。続いて、当該デバイスタイプの受信メッセージが配信時間に到達すると、シミュレータオブジェクト部3aは、当該メッセージの内容を解釈してデバイス名及びこれに特定されるデバイスに書き込むべきデバイス値を読み出す。このあと、シミュレータオブジェクト部3aは、自己が管理するシミュレータ1のデバイスのうちから上記デバイス名に対応するデバイスを抽出し、これに上記デバイス値を設定・更新する。
【0072】
以上のように、この実施の形態2によれば、シミュレータオブジェクト部3a内にデバイス層を設けることで、シミュレータ1間における情報通信を中継するにあたり、シミュレータ1の入出力デバイスに直接アクセスするデバイスレベルで情報を送受信するので、シミュレータ1からはメッセージを意識する必要がなく、扱いやすいデバイスに対して読み書きを行うだけで他のシミュレータ1と通信することができる。
【0073】
実施の形態3.
この実施の形態3は、ネットワークで接続された複数のコンピュータに分散させてシミュレータを構築して統合シミュレーションを実行するにあたり、分散するシミュレータに対しても同期管理機能および通信管理機能を使用できるように、これらを管理する機構を設けたものである。
【0074】
図8はこの発明の実施の形態3による統合シミュレーションシステムの構成を示す図であり、この図ではネットワークで接続された複数のコンピュータに分散させてシミュレータを構成した場合を示している。図において、2aは分散するシミュレータ1などにより構築される分散環境全体の構成及びその状態(起動・停止)を管理するマスタとして機能するシミュレーションサービス部であって、シミュレーションオブジェクト部3の他に、シミュレーションサービス部リスト16及びシミュレータリスト17を有する。また、このシミュレーションサービス部2aは、上記実施の形態1と同様にメッセージ配信部4及び接続情報を格納する記憶部5を有しているが図示を省略している。
【0075】
2bはマスタとして機能するシミュレーションサービス部2aに管理される非マスタのシミュレーションサービス部であって、シミュレーションオブジェクト部3の他に、シミュレータリスト17を有する。また、このシミュレーションサービス部2bも、上記実施の形態1と同様にメッセージ配信部4及び接続情報を格納する記憶部5を有しているが図示を省略している。10a−1,10a−2はネットワーク11でデータ通信可能に接続されたコンピュータで、シミュレータ1の他に、それぞれシミュレーションサービス部2a,2bが構築される。
【0076】
16はマスタとして機能するシミュレーションサービス部2aに構築されたシミュレーションサービス部リストであって、分散環境内の全てのシミュレーションサービス部2bをそれぞれ特定する情報をリスト形式で保持する。このシミュレーションサービス部リスト16は、マスタとして機能するシミュレーションサービス部2aが分散環境でのシミュレーションサービス部2bの構成を管理するために使用するリストである。また、シミュレーションサービス部リスト16には、各シミュレーションサービス部2bを特定する情報として、例えばこれを起動しているコンピュータのマシン名などが記述される。
【0077】
17はシミュレータリストで、ネットワーク11上に存在するコンピュータにそれぞれ構築されている全てのシミュレータをそれぞれ特定する情報をリスト形式で保持する。このシミュレータリスト17は、各シミュレーションサービス部2a,2bが分散環境内のシミュレータ1の構成を特定するために使用するリストである。また、シミュレータリスト17には、各シミュレータ1の「識別子」、シミュレーション実行の「周期」、これが構築されて起動するコンピュータの「マシン名」がそれぞれ記述される。ここで、上記実施の形態1で説明したような、同期通信用メッセージを送信するか否かの判定に必要となる送信先のシミュレータ1のシミュレーション実行の周期は、当該シミュレータリスト17を参照して取得することができる。
【0078】
次に動作について説明する。
先ず、分散環境内に新たなシミュレータ1を追加する場合を説明する。
マスタとして機能するシミュレーションサービス部2aに既に登録されているシミュレータ1を起動する場合、当該シミュレータ1を有するコンピュータ10a−2を立ち上げ、上記シミュレータ1を管理するシミュレーションサービス部2bを起動する。このあと、シミュレーションサービス部2bは、ネットワーク11を介して上記シミュレーションサービス部2aに自己が起動した旨を通知する。
【0079】
シミュレーションサービス部2aでは、新たに起動したシミュレータ1を管理するシミュレーションサービス部2bからの通知を受けると、当該シミュレーションサービス部2bが構築されたコンピュータを特定する情報(マシン名など)をシミュレーションサービス部リスト16に追加する。
【0080】
次に新たなシミュレータ1を追加する場合について説明する。
先ず、分散環境内のシミュレーションサービス部2bを有するいずれかのコンピュータ上に新たに追加すべきシミュレータ1を構築し起動させる。このとき、当該シミュレータ1は、上記シミュレーションサービス部2bに対して自己が起動した旨及びそのシミュレーション実行周期を通知する。シミュレーションサービス部2bでは、上記通知を受けると、ネットワーク11を介してマスタとして機能するシミュレーションサービス部2aにその通知内容を送信する。
【0081】
シミュレーションサービス部2aは、上記通知を受けると、シミュレーションサービス部リスト16を読み出して参照し、これに登録されている全てのシミュレーションサービス部2bの分散環境内の各位置を特定する。このあと、シミュレーションサービス部2aは、上述のように特定した情報を用いて、シミュレーションサービス部リスト16に登録されている全てのシミュレーションサービス部2bに対して、新たなシミュレータ1が追加された旨及びそのシミュレーション実行周期を通知する。
【0082】
分散環境内の各シミュレーションサービス部2bでは、受信した上記通知の内容から上記シミュレータ1を特定する情報及びそのシミュレーション実行周期を読み出して自己のシミュレータリスト17に追加する。
【0083】
続いて、シミュレーション実行中に起動したシミュレータ1や新たに追加したシミュレータ1を統合シミュレーションに参加させる場合について説明する。
この場合、シミュレーション実行中に起動したシミュレータ1や新たに追加したシミュレータ1を管理するシミュレータオブジェクト部2bは、起動時に記憶部5から接続情報を読み出して参照し、自己とデータ通信可能に接続する他のシミュレータ1を検索する。このあと、シミュレータオブジェクト部2bは、検索結果として抽出されたシミュレータ1を管理するシミュレータオブジェクト部2bにそれぞれアクセスして現在の論理時間を問い合わせる。
【0084】
これにより、シミュレータオブジェクト部2bは、自己が管理するシミュレータ1が、データを送信する可能性があるシミュレータ1のうち現在の論理時間が最も早いもの(以下、論理時間Treとする)を、自己が管理するシミュレータ1の現在の論理時間として設定し、当該論理時間からシミュレーション実行を開始する。
【0085】
ここで、シミュレーション実行中に起動したシミュレータ1や新たに追加したシミュレータ1は、データを受信する可能性があるシミュレータ1の中で現在の論理時間が最も遅いものをTslとして、下記式(3)の条件に合致する場合にシミュレーション実行を開始する。
Tre≦Tsl ・・・(3)
【0086】
つまり、上記式(3)を満たす場合、シミュレーション実行中に起動したシミュレータ1や新たに追加したシミュレータ1は、シミュレーション実行を開始してよい。一方、上記式(3)の条件を満たさない場合、この時点で上記シミュレータ1によるシミュレーション実行を開始すると、他のシミュレータ1から過去のメッセージを受信して時間的な整合性が取れなくなる可能性がある。
【0087】
そこで、上記シミュレータ1は、データを送信する可能性がある全てのシミュレータ1の論理時間がTreを越えないように抑制しながら、且つこれらが論理時間Treを越えるのを待って、上記式(3)の条件を満たす状態になってからシミュレーション実行を開始する。これにより、本実施の形態3による統合シミュレーションシステムにおいて、シミュレーション実行中に新たにシミュレータ1を参加させてもその時間的な整合性を保つことができる。
【0088】
次に分散環境からシミュレータ1を削除する場合について説明する。
統合シミュレーション実行中にシミュレータ1を停止する場合、当該シミュレータ1は、自己を管理するシミュレーションサービス部2a,2bに対して、自己が停止される旨を通知する。この通知を受けたシミュレーションサービス部2bは、ネットワーク11を介してマスタとして機能するシミュレーションサービス部2aに上記シミュレータ1が停止する旨を通知する。
【0089】
シミュレーションサービス部2aでは、上記通知を受けると、シミュレーションサービス部リスト16を読み出して、これに登録されている全てのシミュレーションサービス部2bがそれぞれ構築されたコンピュータを特定する「マシン名」を抽出する。このあと、シミュレーションサービス部2aは、上述のように抽出した情報を用いて、シミュレーションサービス部リスト16に登録されている全てのシミュレーションサービス部2bに対して、上記シミュレータ1が停止する旨を通知する。
【0090】
分散環境内の各シミュレーションサービス部2bでは、受信した上記通知の内容から上記シミュレータ1を特定する情報及びそのシミュレーション実行周期を読み出して自己のシミュレータリスト17から、当該シミュレータ1に関する情報を削除する。
【0091】
ここで、シミュレーションサービス部2b自体を停止する場合を説明する。
先ず、シミュレーションサービス部2bは、停止しようとする場合、記憶部5から接続情報を読み出して参照し、マスタとして機能するシミュレーションサービス部2aの分散環境内での位置を特定する。
【0092】
このあと、シミュレーションサービス部2bは、ネットワーク11を介してシミュレーションサービス部2aにその通知内容を送信する。シミュレーションサービス部2aでは、上記シミュレーションサービス部2bからの通知を受けると、当該シミュレーションサービス部2bが構築されたコンピュータを特定する情報(マシン名など)をシミュレーションサービス部リスト16から削除する。
【0093】
以上のように、この実施の形態3によれば、シミュレーションの実行中にシステムの構成及びその状態を規定するシミュレーションサービス部リスト16やシミュレータリスト17に変更があると、当該変更後の構成情報をシミュレーション実行に関与する全ての構成要素に対して認識させて、当該構成情報にて規定されるシステムでシミュレーションを続行するので、分散するシミュレーションサービス部2a,2bの全てが、現在実行中の統合シミュレーションに参加しているシミュレータ1を把握することができることから、統合シミュレーション実行中に動的にシミュレータ1を追加あるいは停止することができる。
【0094】
なお、上記実施の形態3では、マスタとして機能するシミュレーションサービス部2aをコンピュータ10a−1に固定して分散環境全体を管理する例を示したが、本発明はこれに限定されるものではない。例えば、分散環境に存在する全てのシミュレーションサービス部に、分散環境全体の構成及びその状態を保持・管理し、定期的にこれらの情報を互いに交換する機構を組み入れる。これにより、マスタが存在しない完全な自律分散環境にすることも可能である。
【0095】
【発明の効果】
以上のように、この発明によれば、複数のシミュレータが情報交換しながら統合してシミュレーションを実行する統合シミュレーションシステムにおいて、各シミュレータ間の接続関係を定義する接続情報を格納しておき、当該接続情報に基づいてシミュレーションを実行する上で情報交換の対象となる接続関係を有するシミュレータを認識すると共に、当該シミュレータとの間でシミュレーションの実行上の時間的な同期をとるので、シミュレーションを実行するにあたり、情報交換の対象となる接続関係を有するシミュレータ間だけで同期をとればよいことから、同期をとるための通信量を低減することができ、効率的に統合したシミュレーションを実行することができるという効果がある。
【0096】
この発明によれば、自シミュレータ、及び、接続情報に基づいて認識された自シミュレータ情報交換の対象となる接続関係を有するシミュレータについて、これらのシミュレーション実行上の現在時間及びシミュレーションを完了する周期を含む同期用情報を保持するので、自シミュレータが自己と情報交換の対象となる接続関係を有する全てのシミュレータに対して次に同期をとるべき時間を認識することができ、シミュレータ間で時間的な同期をとるための通信量を低減することができるという効果がある。また、情報交換の対象となるシミュレータとの上記周期の差が大きく異なる場合であっても、非常に効率的に統合してシミュレーションを実行することができるという効果がある。
【0097】
この発明によれば、自シミュレータとの間で情報交換の対象となる接続関係を有するシミュレータが実行するシミュレーション上の現在時間に、これらシミュレータ間の接続形態に応じた伝送遅延時間を加えた時間情報を含むメッセージ情報を配信するメッセージ配信部を備え、当該メッセージ情報によって認識される時間情報に基づいて、シミュレータとの間でシミュレーションの実行上の時間的な同期をとるので、シミュレータ間のデータ通信時に生じる伝送遅延時間による不具合を低減することができると共に、その検証もすることができるという効果がある。
【0098】
この発明によれば、シミュレーション実行中にシミュレータ間の情報通信量を算出し、当該情報通信量に応じて伝送遅延時間を求め、自シミュレータとの間で情報交換の対象となる接続関係を有するシミュレータが実行するシミュレーション上の現在時間に、伝送遅延計算部が求めた伝送遅延時間を加えた時間情報を含むメッセージ情報を配信し、メッセージ情報によって認識される時間情報に基づいて、シミュレータとの間でシミュレーションの実行上の時間的な同期をとるので、シミュレーション実行時における情報通信量に応じて動的に求められた伝送遅延を考慮したシミュレーションを実現することができるという効果がある。
【0099】
この発明によれば、シミュレータ間における情報通信を中継するにあたり、シミュレータの入出力デバイスに直接アクセスするデバイスレベルで情報を送受信するので、シミュレータ自体が情報の作成や送受信を行うことない情報通信を実現することができるという効果がある。
【0100】
この発明によれば、シミュレーションの実行中にシステムの構成及びその状態を規定する構成情報に変更があると、当該変更後の構成情報をシミュレーション実行に関与する全ての構成要素に対して認識させて、当該構成情報にて規定されるシステムでシミュレーションを続行するので、複数のシミュレータを使用した分散環境で統合シミュレーションを実行するにあたり、動的にシミュレータを追加あるいは削除することができるという効果がある。
【図面の簡単な説明】
【図1】この発明の実施の形態1による統合シミュレーションシステムの構成を示す図である。
【図2】実施の形態1による統合シミュレーションシステムで用いられるメッセージの構成を示す図である。
【図3】実施の形態1の統合シミュレーションシステムにおけるメッセージ配信部の他の構成を示す図である。
【図4】図1中のメッセージ配信部の配置形態を説明する図である。
【図5】図1中の同期機構部によるメッセージ送信処理を説明する図である。
【図6】図1中の同期機構部によるメッセージ通信処理のシーケンスを示す図である。
【図7】この発明の実施の形態2による統合シミュレーションシステムのシミュレーションサービス部の構成を示す図である。
【図8】この発明の実施の形態3による統合シミュレーションシステムの構成を示す図である。
【符号の説明】
1 シミュレータ、2,2a,2b,2A シミュレーションサービス部、3,3a シミュレータオブジェクト部(同期整合部)、4,4a メッセージ配信部、5,5a 記憶部、6 同期機構部(同期整合部)、7 論理時計(同期整合部)、8 メッセージキュー(同期用情報保持部)、9 伝送遅延計算部(伝送遅延計算部)、10 ローカルマシン、10−1,10−2,10a−1,10a−2 リモートマシン、11 ネットワーク、12 メッセージ層、13デバイス層、14,15 デバイスオブジェクト(同期整合部)、16 シミュレーションサービス部リスト、17 シミュレータリスト。
Claims (6)
- 複数のシミュレータが情報交換しながら分散処理にてシミュレーションを実行する統合シミュレーションシステムにおいて、
上記情報交換の対象となる各シミュレータ間の接続関係を定義する接続情報を格納する記憶部と、
上記シミュレータごとに対応して設けられ、上記シミュレータによるシミュレーションの論理時間を保持する論理時計と、上記論理時計の論理時間を停止又は進行させる同期機構部と、自シミュレータ、及び、接続情報に基づいて特定される情報交換の対象となる接続関係を有する他のシミュレータについて、これらによるシミュレーションの現在の論理時間及びシミュレーションを完了する周期を含む同期用情報を保持する同期用情報保持部とを有してなる同期整合部と、
上記記憶部から取得した接続情報に基づいて上記情報交換の対象として特定されたシミュレータの同期整合部間の情報のやり取りを中継するメッセージ配信部とを備え、
上記同期機構部は、上記メッセージ配信部を介して、上記記憶部から取得した接続情報に基づき上記複数のシミュレータから情報交換の対象として特定された他のシミュレータの同期機構部との間で上記論理時間に関するメッセージ情報をやり取りし、このメッセージ情報から特定される上記他のシミュレータの論理時間と上記論理時計に保持される自シミュレータの論理時間との比較結果に応じて上記論理時計の論理時間を停止又は進行させると共に、上記同期用情報保持部から取得した同期用情報に含まれる上記自シミュレータ及び上記他のシミュレータの現在の論理時間に上記自シュミレータによる1周期のシミュレーションの実行に要した論理時間をそれぞれ加算した時間に基づいて上記両シミュレータの論理時間の整合性を判定し、この判定結果に応じて論理時計の論理時間を停止又は進行させ、当該論理時間に関するメッセージ情報を上記両シミュレータの論理時間の整合がとれている場合に限り上記他のシミュレータの同期機構部に送信することを特徴とする統合シミュレーションシステム。 - 接続情報にシミュレータ間の接続形態に応じた伝送遅延時間に関する情報も含めて記憶部に保持し、
同期機構部は、上記接続情報に基づいて、自シミュレータとの間で情報交換の対象となる接続関係を有する他のシミュレータによるシミュレーションの現在の論理時間に、これらシミュレータ間の接続形態に応じた伝送遅延時間を加えた時間情報を含むメッセージ情報を上記他のシミュレータの同期機構部との間でやり取りすることを特徴とする請求項1記載の統合シミュレーションシステム。 - メッセージ配信部は、接続情報に基づき情報交換の対象として特定されたシミュレータ間でシミュレーション実行中にやり取りされる情報を中継してその情報通信量を算出し、当該情報通信量に応じて伝送遅延時間を求める伝送遅延計算部を備え、
上記接続情報に基づき情報交換の対象として特定されたシミュレータの同期機構部間でやり取りされるメッセージ情報を中継するにあたり、このメッセージ情報に含まれる論理時間に上記伝送遅延計算部が求めた伝送遅延時間を加えることを特徴とする請求項1記載の統合シミュレーションシステム。 - 同期整合部は、自シミュレータの入出力デバイスを特定する情報及び上記入出力デバイスに入出力される情報を保持するデバイスオブジェクトを備え、
上記デバイスオブジェクトを介して、接続情報に基づき情報交換の対象として特定された他のシミュレータの同期整合部との間で互いのシミュレータの入出力デバイスに直接アクセスする情報をやり取りすることを特徴とする請求項1記載の統合シミュレーションシステム。 - シミュレーションを実行するシステム及びシミュレータを特定する情報をリスト形式で保持したリスト情報を備え、
上記システムの構成又はその状態を変更する際、この変更に係るシステム又はシミュレータの同期整合部が、上記変更後のシステム又はシミュレータを特定する情報を上記リスト情報に反映させた後に上記変更を実行し、変更後のリスト情報に基づく構成でシミュレーションを実行することを特徴とする請求項1記載の統合シミュレーションシステム。 - 複数のシミュレータが情報交換しながら分散処理にてシミュレーションを実行する統合シミュレーションシステムとしてコンピュータを機能させるプログラムであって、
上記情報交換の対象となる各シミュレータ間の接続関係を定義する接続情報を格納する記憶部と、
上記シミュレータごとに対応して設けられ、上記シミュレータによるシミュレーションの論理時間を保持する論理時計と、上記論理時計の論理時間を停止又は進行させる同期機構部と、自シミュレータ、及び、接続情報に基づいて特定される情報交換の対象となる接続関係を有する他のシミュレータについて、これらによるシミュレーションの現在の論理時間及びシミュレーションを完了する周期を含む同期用情報を保持する同期用情報保持部とを有してなる同期整合部と、
上記記憶部から取得した接続情報に基づいて上記情報交換の対象として特定されたシミュレータの同期整合部間の情報のやり取りを中継するメッセージ配信部とを備え、
上記同期機構部は、上記メッセージ配信部を介して、上記記憶部から取得した接続情報に基づき上記複数のシミュレータから情報交換の対象として特定された他のシミュレータの同期機構部との間で上記論理時間に関するメッセージ情報をやり取りし、このメッセージ情報から特定される上記他のシミュレータの論理時間と上記論理時計に保持される自シミュレータの論理時間との比較結果に応じて上記論理時計の論理時間を停止又は進行させると共に、上記同期用情報保持部から取得した同期用情報に含まれる上記自シミュレータ及び上記他のシミュレータの現在の論理時間に上記自シュミレータによる1周期のシミュレーションの実行に要した論理時間をそれぞれ加算した時間に基づいて上記両シミュレータの論理時間の整合性を判定し、この判定結果に応じて論理時計の論理時間を停止又は進行させ、当該論理時間に関するメッセージ情報を上記両シミュレータの論理時間の整合がとれている場合に限り上記他のシミュレータの同期機構部に送信する統合シミュレーションシステムとしてコンピュータを機能させるプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002197695A JP3621392B2 (ja) | 2002-07-05 | 2002-07-05 | 統合シミュレーションシステム及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002197695A JP3621392B2 (ja) | 2002-07-05 | 2002-07-05 | 統合シミュレーションシステム及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004038785A JP2004038785A (ja) | 2004-02-05 |
JP3621392B2 true JP3621392B2 (ja) | 2005-02-16 |
Family
ID=31705400
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002197695A Expired - Fee Related JP3621392B2 (ja) | 2002-07-05 | 2002-07-05 | 統合シミュレーションシステム及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3621392B2 (ja) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070192075A1 (en) * | 2004-02-26 | 2007-08-16 | Kyoto University | Organism stimulation device and program |
JP4679856B2 (ja) * | 2004-09-09 | 2011-05-11 | 三菱電機株式会社 | 分散シミュレーションシステム及びプログラム |
EP2194432B1 (de) * | 2006-09-11 | 2011-11-09 | dSPACE digital signal processing and control engineering GmbH | Scheduling-Verfahren |
JP5059017B2 (ja) | 2006-09-27 | 2012-10-24 | 富士通テン株式会社 | シミュレーション装置 |
JP2010191480A (ja) * | 2007-06-01 | 2010-09-02 | Mitsubishi Electric Corp | シミュレーションシステム |
JP4875545B2 (ja) * | 2007-06-12 | 2012-02-15 | キヤノン株式会社 | シミュレーション同期装置及びその制御方法 |
JP5495946B2 (ja) * | 2010-05-26 | 2014-05-21 | 三菱電機株式会社 | 分散シミュレーションシステム |
JP5549575B2 (ja) * | 2010-12-17 | 2014-07-16 | 富士通株式会社 | 並列計算機システム、同期装置、並列計算機システムの制御方法 |
US9817410B2 (en) | 2012-03-30 | 2017-11-14 | Mitsubishi Electric Corporation | Air conditioner testing system, air-conditioning system simulator, and program |
JP6249665B2 (ja) * | 2013-08-02 | 2017-12-20 | キヤノン株式会社 | シミュレーション装置、シミュレーション方法、プログラム |
JP7418368B2 (ja) | 2021-02-22 | 2024-01-19 | トヨタテクニカルディベロップメント株式会社 | シミュレーションシステム、シミュレーション方法及びシミュレーションプログラム |
WO2024084582A1 (ja) * | 2022-10-18 | 2024-04-25 | 日本電信電話株式会社 | 連成システム、連成方法および連成プログラム |
-
2002
- 2002-07-05 JP JP2002197695A patent/JP3621392B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2004038785A (ja) | 2004-02-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6938070B2 (en) | Conflict resolution for collaborative work system | |
TWI688907B (zh) | 基於區塊鏈的房間庫存管理系統 | |
JP3621392B2 (ja) | 統合シミュレーションシステム及びプログラム | |
JP6688835B2 (ja) | マルチアイテムトランザクションサポートを有するマルチデータベースログ | |
GB2391663A (en) | Establishing Coordinated Consumption of a Streamed Media Object by Multiple Devices | |
US20090257456A1 (en) | Coordinated timing network having servers of different capabilities | |
JP2000137638A (ja) | 情報記憶システム | |
CN112148798A (zh) | 应用于分布式系统的数据处理方法及装置 | |
CN105373563B (zh) | 数据库切换方法及装置 | |
KR20160114459A (ko) | 이종 미들웨어 연동을 위한 게이트웨이 장치 및 시각 동기화 방법 | |
CN104683486A (zh) | 分布式系统中处理同步消息的方法、装置、分布式系统 | |
JP2000222268A (ja) | 複数のコンピュータ間におけるファイルの同期方法 | |
CN112052104A (zh) | 基于多机房实现的消息队列的管理方法及电子设备 | |
JP3471637B2 (ja) | 並列分散シミュレーションシステム、シミュレーションマネージャおよび並列分散シミュレータ制御方法 | |
CN107633026A (zh) | 数据同步异常处理方法、装置及服务器 | |
JP5416490B2 (ja) | 分散データ管理システム、データ管理装置、データ管理方法、およびプログラム | |
WO2016183735A1 (zh) | 一种同步虚拟网络功能vnf状态的方法、装置和设备 | |
JP3239463B2 (ja) | 電子会議システム | |
JP2000148563A (ja) | 複数サーバ計算機システム | |
JP2008158978A (ja) | データベース同期システム、データベース同期方法、データベースサーバ、データベースサーバの制御方法、およびプログラム | |
JPH103418A (ja) | 電子計算機システム間のデータ一致方式 | |
KR101354007B1 (ko) | 시뮬레이션 시간을 기반으로 시뮬레이션 시스템과 테스트 시스템의 시간 진행을 동기화하는 시스템 간 연동 구성 및 시뮬레이션 모델 테스트 방법 | |
KR102275765B1 (ko) | 소프트웨어 정의 네트워크에서 플로우 룰 트랜잭션을 처리하는 방법, 장치 및 컴퓨터 프로그램 | |
JP5449471B2 (ja) | 共有データに対する更新処理の同期処理方法、データ共有システムおよびデータ共有プログラム | |
JP2007058769A (ja) | 分散データベースの同期方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040511 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040709 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20040803 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040928 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20041001 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20041019 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20041117 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20071126 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081126 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081126 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091126 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091126 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101126 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111126 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121126 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121126 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131126 Year of fee payment: 9 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |