とりあえず、自分用の整理memoです。
pub/sub server
参考
http://www.hitachi.co.jp/Prod/comp/soft1/manual/cosmi/v0900/03Y0701D/EY070387.HTM
http://www.ibm.com/developerworks/jp/websphere/library/wmq/toranomaki/5.html
※ 元はGof本の Observer pattern らしい.
用語の説明
publisher: メッセージを作成して送信するクライアント.
subscriber: メッセージを受信する側のクライアント.任意のtopicのmessageのみ受信.
topic:Publisherと Subscriber を結びつけるためのオブジェクト
broker: publisherから送信されたメッセージを,topicオブジェクトを用いてフィルタリングし,適切なsubscriberに送信する
メッセージ配信の流れ
publisher: messageをbrokerに送信.
broker: 送られたmessageをtopicに登録.
broker: 各々のtopicに登録していた subscriberに対して、messageの配信を行う.
subscriber: brokerからmessageを受信する.
Pub/Subメッセージングモデルの特徴
publisher
- 任意の数のpublisherが、messageにtopicを設定し、送信することが出来る.
- messageはpublisherが登録した順番で、topicに保存される.
subscriber
- 任意の数のsubscriberが、特定のtopicの messageを受信することが出来る.
- subscriberは登録したtopicに関する全てのmessageを受け取る事が出来る.
- subscriberはmessage selectorを用いて受信するmessageをフィルタリングすることが出来る.
- subscriberは登録したtopicであっても、有効期限をすぎたmessageを受信することは出来ない.
その他
- publisherとsubscriberは動的に追加・削除される.
- messageには有効期限、優先順位、そしてsubscriberの設定した message selectorによって、処理される順番が変化する.
永続化サブスクライバーの利用
チャットとか作ったら必要になるかも.
今回はとりあえずパス.
MQTT (Message Queuing Telemetry Transport)
参考
http://tdoc.info/blog/2014/01/27/mqtt.html
http://ledsun.hatenablog.com/entry/2014/08/13/141908
http://mqtt.org/wiki/#the_mqtt_protocol
Message Queing
非同期型通信プロトコル.
送信者はmessageを queueに保存.
受信者は任意のタイミングで、queueからmessageを取り出すことにより、
受信者・送信者間のmessageをやりとりする.
概要
publish/subscribeモデルに基づく軽量なメッセージプロトコル.
OSI参照モデルの、アプリケーション層(HTTP)で動作する.
特徴 (調査中)
- オーバーヘッドが少なく処理も軽い
- 1対多、多対多のメッセージ配布が可能.
- topic wildcardによる柔軟性の高い
- QoSを選べる.
- Durable subscribe
- Last Will and Testament
- Retain