ppt

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();
void test_Msgq(int);
void main(String[] argv){
// 1.登録用の専用Proxyを初期化
proxy = new horbx.magq.MsgQServer(url);
// 2.自分自身の初期化
Receiver receiver = new Receiver();
// 3.メッセージングサーバへ登録
proxy.registerReceiver(queueName, receiver);
}
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
>
3.3 送信側のコード例
Sender
void main(String[] argv){
void main();
// 1.MsgQProxyの初期化
Receiver_MsgQProxy proxy =
new Receiver_MsgQProxy(url,queueName);
// 2.メソッド呼び出し > メッセージ送信
proxy.test_MsgQ(100);
:
}
Receiver_MsgQProxy
(msgqcで作成)
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億家庭(?)の
ビデオサーバ