http://www.irisa.fr/asap/intranet/the-many-faces-of-publish-subscribe.pdf
publish / subscribe とは、通信方法の一つで、生産者と消費者間が以下の三つの点で依存しない方法。
- Space (空間:お互いのポインタ)
- Time (時刻)
- Synchronization (同期: 処理中待機するか)
典型的には、
- 消費者は生産者に subscribe() で登録し、unsubscribe() で離脱する。
- 生産者は消費者に publish() で通信する。
他の手法との比較。
- 空間依存(両者のポインタ必要)で、時間依存するもの。
- Message Passing : 消費者同期。消費者がずーっと待ち受ける。生産者がトリガ。
- RPC : 消費者同期。消費者がちょっと待ち受ける。消費者がトリガ。
- 非同期 RPC : 非同期。消費者なげっぱなしで答えを受け取らない。
- Future RPC : 非同期。往路復路で別メッセージ。消費者なげっぱなしであとで受け取る。
- Notifications : 非同期。Future の言い方変えただけ?
- 空間非依存で、時間非依存。
あとは、Publish/subscribe 手法の細かい実装や信頼性の話だが、興味深い議論は無いので省略。