マニュアル: 分散環境エミュレータ

[English | Japanese]
last-updated: September 20, 2009

名前

owemu - 分散環境エミュレータ

書式

owemu [-h] [--eventdriven] [-f <host list file>] [-w <str rep of host list>] [-s <self hostname>] [<scenario URL|file>]

説明

分散環境エミュレータは、計算機 1台の上で Java アプリケーションを多数動作させるツールです。 エミュレーションシナリオを読み込んで、それに従って アプリケーションの起動や制御を行います。 エミュレータはアプリケーションを起動する際、スレッドを生成して割り当てます。 アプリケーションは、 Overlay Weaver のメッセージングサービスを用いて通信を行うようになっていれば、 実ネットワーク上と同様に通信ができます。 このエミュレータはまた、Overlay Weaver 専用というわけではなく、 任意の Java アプリケーションを動作させることができます。

このエミュレータには 2 通りの動作モードがあります。 通常は、計算機 1台の上でエミュレータ全体が動作しますが、 複数台の計算機を協調させて 1つのエミュレータを構成することもできます。 後者の動作モードを分散エミュレータと呼びます。 この場合、利用者がマスタエミュレータを起動すると、 そのマスタは SSH を使って他の計算機にワーカを起動します。 どちらの動作モードでも、シナリオファイルは同一のものが使えます。

オプション

エミュレータは、引数で指定された URL やファイルからシナリオを読み込みます。 複数指定された場合には、それらは連結されて 1つのシナリオとして解釈されます。 引数が指定されなかった場合には、 エミュレータは標準入力からシナリオを読み込みます。

-h
ヘルプメッセージを表示します。
--eventdriven
エミュレータは実時間モード (デフォルト) ではなく イベント駆動モードで動作します。 コマンド間の時間間隔を待つことなく、次から次へとコマンドを実行します。 しかしコマンド列は、SMP を活用しての並列処理ではなく 逐次に実行されます。
-f <host list file>
このオプションが指定された場合、 エミュレータは分散エミュレータモードで動作します。 指定されたファイルからはホスト一覧を読み込みます。 このファイルには、例えば次の内容を記述しておきます。
hostname0 0
hostname1 1
hostname2 101
この場合、1つめの仮想計算機 (emu0) だけが 計算機 hostname0 に割り当てられます。 2台目の hostname1 には 100 の仮想計算機 (emu1emu100) が割り当てられ、 残りの仮想計算機 (emu101 〜) はすべて 3台目 hostname2 に割り当てられます。 仮想計算機上ではそれぞれ 1つずつアプリケーションが起動されます。
-w <string representation of host list>
利用者が直接指定するオプションではありません。 マスタエミュレータがワーカを起動する際に指定します。
-s <self hostname>
利用者が直接指定するオプションではありません。 マスタエミュレータがワーカを起動する際に指定します。

シナリオコマンド

エミュレータは以下のコマンドを受け付けます。 コマンドは他と混同する恐れがない限りは短縮することができます (例 arg)。

class <class name>
続く invoke コマンドが、 ここで指定されたクラスのインスタンスを生成してその main メソッドを 呼び出します。
arguments [<argument> ...]
続く invoke コマンドが、 main メソッドを呼び出す際に ここで指定された文字列を引数として与えます。
invoke [<ID of app instance>]
前もって class コマンドで指定されたクラスのインスタンスを生成して、 その main メソッドを呼び出します。 そのクラスが EmulatorControllable インタフェースを実装していた場合、 main の代わりに 当該インタフェースの start メソッドを呼び出します。
priority <relative priority>
続く invoke コマンドが作成するスレッドの実行優先度を指定します。 ここで指定された数字は、エミュレータ自身のスレッドからの相対値となります。
control <ID of app instance> <command into stdin> [...]
指定された文字列を、 EmulatorControllable インタフェースを通して アプリケーションに対して書き込みます。 これによってアプリケーションの制御を行います。 書き込み先 ID は、起動された順に 0 から振られた番号です。 例えば最初に起動されたアプリケーションは emu0 上で動作し、ID は 0 となります。 "all" はすべての制御対象アプリケーションを表します。
controlserially <ID of app instance> <command into stdin> [...]
"control" コマンドと同じです。 ただし、"controlserially" コマンドは、 確実にシナリオ中に書かれた順に実行されます。 注: 現在のところ、"control"、"controlserially" コマンドどちらも、 書かれた順に実行されます。 つまり、1つの "control..." コマンドが完了した後で、次のコマンドが実行されます。
halt
control コマンドの特殊形です。 文字列 "halt" を EmulatorControllable インタフェースを通して すべての制御対象アプリケーションに対して書き込みます。
timeoffset [+]<offset>
続く schedule コマンドが、ここで指定された時間を、予定時刻に加算します。
schedule [+]<time>[,<interval>[,<times>]] <another command> [...]
第2引数として指定されたコマンド (例: invoke, control) を、指定された時刻 (ミリ秒指定) に実行します。 時間間隔が指定された場合、複数回実行します。 回数が指定された場合、指定された回数だけ実行します。 指定されなかった場合、実行し続けます。
include <file name> 指定されたファイルの内容をコマンドとして解釈します。
help|?
ヘルプメッセージを表示します。
quit|exit
エミュレータから抜けます。
remote connect
分散エミュレータ用のコマンドです。 SSH を使って遠隔マシン上にワーカを起動します。
remote directory [<path on which remote JVM runs>]
分散エミュレータ用のコマンドです。 カレントディレクトリを指定されたディレクトリに移した後、 ワーカを起動します。
remote javapath [<path of java command on a remote computer>]
分散エミュレータ用のコマンドです。 ワーカを起動する際に、指定されたディレクトリにある java コマンドを使います。
remote jvmoption [<options supplied to java command>]
分散エミュレータ用のコマンドです。 ワーカを起動する際、指定された文字列を java コマンドに対してオプションとして与えます。

Return to Documents page
Return to Overlay Viewer main page