110 likes | 318 Views
HORB Messaging Service. 2001.3.2 (2001.6.18 更新) 秋山朋之 日本アドバンス・テクノロジー 平野 聡 電子技術総合研究所 萩本順三 福村真奈美 豆蔵. 1.アーキテクチャ. HORB のコアには手を加えない。 エクステンションのパッケージ horbx.msgq: 無償公開 horby.msgq: 有償化の予定 従来の開発スタイルを踏襲. 2.メッセージングサービスとは. 一つの事象を複数の相手へ確実に同報する。 リモート・オブジェクトの一時停止やダウンに対しキューがメッセージを保持する。 HORB では3種類用意
E N D
HORB Messaging Service 2001.3.2 (2001.6.18 更新) 秋山朋之 日本アドバンス・テクノロジー 平野 聡 電子技術総合研究所 萩本順三 福村真奈美 豆蔵
1.アーキテクチャ • HORBのコアには手を加えない。 • エクステンションのパッケージ • horbx.msgq:無償公開 • horby.msgq:有償化の予定 • 従来の開発スタイルを踏襲
2.メッセージングサービスとは • 一つの事象を複数の相手へ確実に同報する。 • リモート・オブジェクトの一時停止やダウンに対しキューがメッセージを保持する。 • HORBでは3種類用意 • Point to Points • Publish & Subscribe • Atomic Broadcast • フォールトトレラントのレベルはリモートオブジェクトとメッセージングサーバの2レベル。
3.プログラミングインターフェース • HORBの開発スタイルの踏襲 • リモートオブジェクトのメソッド宣言の決まり • 返り値はvoid型 • メソッド名の最後は‘_MsgQ’ • msgqcコンパイラを提供 • MsgQServerクラスでリモートオブジェクトをメッセージングサーバへ登録
3.1 受信側のコード例 Receiver void main(String[] argv){ // 1.登録用の専用Proxyを初期化 proxy = new horbx.magq.MsgQServer(url); // 2.自分自身の初期化 Receiver receiver = new Receiver(); // 3.メッセージングサーバへ登録 proxy.registerReceiver(queueName, receiver); } void main(); void test_Msgq(int); void test_Msgq(int value){ : }
3.2 msgqcコンパイラとは • 新たに用意したメッセージングサービス専用コンパイラ • 受信者側の‘A’クラスから送信者で利用する‘A’_MsgQProxyクラスを作成する。 • 但し、メッセージングの内部フレームワークはhorbcを使用している。 • > つまり、メッセージングサービスは100%HORB >msgqc Receiver.java compiling Receiver.java generating Receiver_MsgQ.java compiling Receiver_MsgQ.java >
Sender void main(String[] argv){ // 1.MsgQProxyの初期化 Receiver_MsgQProxy proxy = new Receiver_MsgQProxy(url,queueName); // 2.メソッド呼び出し > メッセージ送信 proxy.test_MsgQ(100); : } void main(); Receiver_MsgQProxy (msgqcで作成) 3.3 送信側のコード例
3.4 他のメッセージングとの比較 • JMS / CORBA Event・Notification Serviceは多機能な分知らなければならないクラス・インターフェースが膨大。 • HORBメッセージングサービスで既存のHORBユーザが新たに覚える事は最小限 • 返値はvoid型、メソッド名の最後は‘_MsgQ’ • msgqcコンパイラの使用 • サーバの登録クラス horbx.msgq.MsgQServer
4.デモンストレーション • キューの様子を立体的にモニター
5.ベンチマーク • スループット:現状の参考値(チューニング中) • ペンティアムⅢ1GHz 二台をネットワーク接続 • HORBメッセージングサーバと、もう一台を送信クライアント/受信クライアントとした。 • J2SE ver1.3 Windows2000 1000連続メッセージのスループット 結果 永続記憶なし:50msec/message 永続記憶あり:125msec/message 永続記憶のコストは75msec程度 X軸:byte/int/doubleを配列のサイズを10の6乗まで増す。 Y軸:1メッセージ当たりのスループット時間(msec)
アプリケーション応用例 • ブロードバンド・インターネットビデオ配信サービス 放送局 MessageQueueServer カクケード接続 3億家庭(?)の ビデオサーバ