1 / 11

HORB Messaging Service

HORB Messaging Service. 2001.3.2 (2001.6.18 更新) 秋山朋之 日本アドバンス・テクノロジー 平野 聡 電子技術総合研究所 萩本順三 福村真奈美 豆蔵. 1.アーキテクチャ. HORB のコアには手を加えない。 エクステンションのパッケージ horbx.msgq: 無償公開 horby.msgq: 有償化の予定 従来の開発スタイルを踏襲. 2.メッセージングサービスとは. 一つの事象を複数の相手へ確実に同報する。 リモート・オブジェクトの一時停止やダウンに対しキューがメッセージを保持する。 HORB では3種類用意

emilia
Download Presentation

HORB Messaging Service

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. HORB Messaging Service 2001.3.2 (2001.6.18 更新) 秋山朋之 日本アドバンス・テクノロジー 平野 聡 電子技術総合研究所 萩本順三 福村真奈美 豆蔵

  2. 1.アーキテクチャ • HORBのコアには手を加えない。 • エクステンションのパッケージ • horbx.msgq:無償公開 • horby.msgq:有償化の予定 • 従来の開発スタイルを踏襲

  3. 2.メッセージングサービスとは • 一つの事象を複数の相手へ確実に同報する。 • リモート・オブジェクトの一時停止やダウンに対しキューがメッセージを保持する。 • HORBでは3種類用意 • Point to Points • Publish & Subscribe • Atomic Broadcast • フォールトトレラントのレベルはリモートオブジェクトとメッセージングサーバの2レベル。

  4. 3.プログラミングインターフェース • HORBの開発スタイルの踏襲 • リモートオブジェクトのメソッド宣言の決まり • 返り値はvoid型 • メソッド名の最後は‘_MsgQ’ • msgqcコンパイラを提供 • MsgQServerクラスでリモートオブジェクトをメッセージングサーバへ登録

  5. 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){ : }

  6. 3.2 msgqcコンパイラとは • 新たに用意したメッセージングサービス専用コンパイラ • 受信者側の‘A’クラスから送信者で利用する‘A’_MsgQProxyクラスを作成する。 • 但し、メッセージングの内部フレームワークはhorbcを使用している。 • > つまり、メッセージングサービスは100%HORB >msgqc Receiver.java compiling Receiver.java generating Receiver_MsgQ.java compiling Receiver_MsgQ.java >

  7. 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 送信側のコード例

  8. 3.4 他のメッセージングとの比較 • JMS / CORBA Event・Notification Serviceは多機能な分知らなければならないクラス・インターフェースが膨大。 • HORBメッセージングサービスで既存のHORBユーザが新たに覚える事は最小限 • 返値はvoid型、メソッド名の最後は‘_MsgQ’ • msgqcコンパイラの使用 • サーバの登録クラス horbx.msgq.MsgQServer

  9. 4.デモンストレーション • キューの様子を立体的にモニター

  10. 5.ベンチマーク • スループット:現状の参考値(チューニング中) • ペンティアムⅢ1GHz 二台をネットワーク接続 • HORBメッセージングサーバと、もう一台を送信クライアント/受信クライアントとした。 • J2SE ver1.3 Windows2000  1000連続メッセージのスループット 結果 永続記憶なし:50msec/message 永続記憶あり:125msec/message 永続記憶のコストは75msec程度 X軸:byte/int/doubleを配列のサイズを10の6乗まで増す。 Y軸:1メッセージ当たりのスループット時間(msec)

  11. アプリケーション応用例 • ブロードバンド・インターネットビデオ配信サービス 放送局 MessageQueueServer カクケード接続 3億家庭(?)の ビデオサーバ

More Related