シミュレーションのシミュレーション - 平中・武田研究室

シミュレーションのシミュレーション
○阿見陽平1)
武田利浩 1)
平中幸雄 1)
山形大学
ソフト開発ができるようなシミュレータを開発している.このシミュレータは実装とシミュレーシ
ョンとで生まれる差や開発の手間を削減することを目標としており, UCF と呼ぶ汎用通信形式を用い
て作成している.この UCF シミュレータはどんなソフトでも開発・テストができる汎用シミュレータ
を目指している.シミュレータの開発自体もシミュレータ上で行えることになる.本研究では,汎用
シミュレータの第一歩として,自分自身をシミュレーションできる構成を考案・検討し,実際にシミ
ュレーションを行った.
Simulation of Simulation
○Youhei Ami1) Toshihiro Taketa1) Yukio Hiranaka1)
Yamagata University
We are developing a universal simulator for software development. The objective of the simulator is to
minimize the difference between simulation codes and implementation codes by expressing data in a universal
communication format (UCF). Such UCF simulator is expected to be a generic simulator for software
development and testing. And, it may be used to develop the simulator itself. In this paper, we show the structure
and the operation of the simulator required as a universal simulator.
1.
と呼ぶ汎用標準形式で表現することによって,
はじめに
実アプリケーションをシミュレータ上で動作さ
インターネットなどのネットワーク上では,
せることができる UCF シミュレータの開発を
データ通信や,それに伴って様々な現象が発生
行ってきた (1).先行研究のシミュレータが実現
している.それらの現象はネットワークシミュ
すると,シミュレータ上でのシステム開発が可
レータを利用することにより,実際にネットワ
能となる.しかし,UCF シミュレータの汎用
ークを構築して現象を調べるよりも,少ないコ
性が低いと,限定されたシステム開発しか行え
スト・時間で調べることができる.
ない.
先行研究では現実に複数存在するデータ表現
本研究では UCF シミュレータを汎用シミュ
形式を Universal Communication Format:UCF(1-3)
レータとするための第一歩として,シミュレー
山形大学 Yamagata University 所在地 992-8510 米沢市城南4-3-16
電話 0238-26-3322 FAX 0238-26-3299
1)
1
タ自体の動作をシミュレーションできる構成を
A
考案・検討し,実際にシミュレーションできる
図 1.基本となるシミュレーション対象
かを検証した.
2.
B
UCF ネットワークシミュレータ
図 1 は 2 つのオブジェクト間通信を表現した
ものである.これをシミュレーションすると図
2 のような 1 段構成のシミュレータになる.
汎用シミュレータなのでシミュレーション上
の通信を汎用標準形式で表し,開発対象への依
存性,シミュレータ自体への依存性をなくすこ
とが条件となる.その条件に合うには通信形式
を統一しなければならない.そこで通信形式の
統一に UCF を採用する.
図 2.図 1 をシミュレーションするときの構成
3.
UCF(Universal Communication Format)
sim の主な役割は,シナリオスクリプトから
シミュレーション対象とシミュレータの両方
シミュレーションシナリオを読み込む,通信の
を汎用標準形式で通信するオブジェクトで実現
順序制御,シミュレーションログの取得,タイ
すると,両方を自由に組み合わせることができ
ムスタンプ機能,などがある.
る . UCF で は 通 信 メ ッ セ ー ジ を
_A と_B はそれぞれ adapter を表しており,
<TAG>MSG<TAG>のタグ形式で表し,TAG は
その役割はシミュレーション対象オブジェクト
あて先のオブジェクト名,MSG は届けるデー
から送信されたデータを UCF 形式に変換し,
タを表している.また,入れ子を任意の深さで
また,シミュレーション対象オブジェクトに渡
使 え る も の と す る . 例 え ば
されるデータを元の形式に変換することである.
<A>MSG1<B>MSG2</B>MSG3</A>のように表
①
せ,A というオブジェクトが MSG1 と MSG3 を
処理し,<B>MSG2</B>は B に中継する UCF メ
A
②
_A
③
sim
④
_B
B
ッセージであることを示している.
4.
シミュレーション対象と構成方法
具体的にどのようにシミュレーションを構成
していくかを以下に述べる.
図 3.Adapter でのメッセージ変換の様子
4.1.
基本的なシミュレーション
図 3 は<A>から<B>へ MSG を送ったときの
以下に基本的なシミュレーション対象を示す.
メッセージ変化を表している.A はシミュレー
2
タを意識していないため,①のメッセージは単
る.
純に B 宛にメッセージを送信している.<_A>
sim や adapter を別々のモジュールとして作成
から<_B>はシミュレータの存在を意識してお
し,また汎用通信形式を採用することによりシ
り,また<_A>は<B>宛のメッセージを<sim>経
ミュレーション対象およびシミュレータ自体へ
由で<_B>に送ればよいことを知っているもの
の依存を少なくしている.
とする.そうすると,adapter である<_A>のメ
さらに,モジュール間の通信を後述する
ッセージは②のようなメッセージになる.③の
Relay オブジェクトが行うことで,各モジュー
メッセージは<sim>が経由したという情報をメ
ルは自分が通信するべき相手だけ知っていれば
ッセージ内に格納し,<_B>に送信するためこ
通信を行える.
のようになる.④のメッセージは<_B>によっ
4.3. Relay オブジェクト
て不要な部分が削除され,元々のメッセージが
B へ送信される.
シミュレータ内部から見たシミュレーション
構成は以下のようになる.
4.2. 2 段シミュレータの構成
図 2 のシミュレーションを別のシミュレータ
でシミュレーションする,2段シミュレーショ
ン構成を考えたのが,以下の図 4 である.
A
._A
_A
_ _A
sim
Relay
_sim
_B
_ _B
B
._B
.sim
図 5.シミュレータ側から見たシミュレーション
構成
Relay はメッセージを中継するための存在で
図 4. 2 段シミュレータの全体構成 ある.すべてのデータは一旦 Relay に送信され
る.そして Relay は UCF 形式で送られてくるデ
_ _A は_A 用アダプタ, ._A は 2 段目シミュ
ータを解析し,そのデータ内に格納されている
レータでの A 用アダプタ,_sim は sim の 2 段目
あて先と,送信元からそのデータをどこに送信
シミュレータでのアダプタである.
するか判断する.このオブジェクトにより,同
この構成は図 2 の構成と同じように各シミュ
じデータの内容であっても正しく送信すること
レーション対象オブジェクトに sim に繋ぐため
ができる.
の adapter が接続されている,という構成であ
5.
る.また,同様にデータ形式は UCF なのでそ
の処理方法も 1 段シミュレータの時と同じであ
3
2 段シミュレータのシミュレーション実験
シミュレーション実験を行うにあたって,シ
という中継専用のオブジェクトを用いることに
ミュレーション対象オブジェクトとして
よりシミュレーションをスムーズに行うことが
<Ping>,<Pong>,<_Ping>,<_Pong>,<sim>を
できた.
用意した.<Ping>は<Pong>へメッセージを送
6.
信し,<Pong>は受け取ったメッセージをその
おわりに
まま<Ping>に返信するオブジェクトである. <
_Ping>は Ping 用のアダプタで,<_Pong>は Pong
シミュレーションのための 2 段構成のシミュ
用のアダプタである.<sim>は 1 段目のシミュ
レーションを行うことができた.しかし,シミ
レーションの核となるシミュレータである.
ュレータに必要な機能,通信制御などについて
._Ping
シミュレータとしては不十分である.今後はこ
Pong
れらの機能を充実させる必要がある.さらに将
.sim
_ _Pong
_Pong
_sim
sim
_ _Ping
_Ping
._Pong
Ping
来的には1つのアダプタが複数のシミュレーシ
ョン対象オブジェクトに対応するように生成さ
れる,1つの sim で自分自身をシミュレーショ
ンできるようにすることも今後の課題である.
参考文献
図 6.実験でのシミュレーション構成
(1) 竹田勇人,武田利浩,平中幸雄: UCF
オブジェクトで構成するネットワークシミュレ
ータ,FIT2009(第 8 回情報科学技術フォーラム),
実験結果として以下のようなログを取得した.
第4分冊(2009),L-015,pp.165-166.
(2)
渡邉正裕,田名部創大,武田利浩,平
中幸雄:UCF を使用する基本通信オブジェク
トの開発, FIT2008(第 7 回情報科学技術フォ
ー ラ ム ) , 第 4 分 冊 (2008) , L-035 , pp . 167168.
(3)
平中幸雄,伊藤大視,市川直樹,武田
利浩:イーサネットフレームによるダイレクト
図 7.取得したシミュレーションログの一部
UCF 通信,FIT2007(第6回情報科学フォーラ
ム),第4分冊(2007),L-011,pp.23-24.
取得したログから UCF 形式のデータがどう
いう経路を通って流れたかがわかる.これによ
り,シミュレーションのシミュレーションを実
行できたことが確認できる.
シミュレーションログより 2 段構成でのシミ
ュレーションを確認することができた.Relay
4