See
PublishSubscribeModel [
EditHint: Suggest merge!]
See Also:
MultiCaster and
ObserverPattern.
PublishAndSubscribe is one of the
MessagingPatterns. It allows N-to-M communication. Each communicating party acts as a publisher, a subscriber or both. When a
publisher sends a message and all registered
subscribers receive it.
PublishAndSubscribe is often shortened to "pub-sub".
The simplest form of pub-sub uses topics to identify published information. Publishers send messages to a named topic. Receivers connect to a named topic in order to receive messages. The pub-sub system itself gives no guarantees as to which types of message are transmitted on which topic. That is left to higher level protocols agreed between the publishers and subscribers.
Examples of messaging systems that support topic-based pub-sub are Tibco Rendezvous, Websphere MQ, and JMS implementations such as Tibco EMS.
Modern pub-sub systems use
ContentBasedAddressing (also known as
ContentBasedMulticast). Receivers subscribe by describing the content of the messages that they wish to receive and the messaging infrastructure routes matching messages to the appropriate subscribers. Examples include Elvin, IBM's Gryphon, Siena and Babble.
Pub-sub systems may implement
StoreAndForward and
XaTransactions to provide
OnceAndOnlyOnceDeliverySemantics. For example, Websphere MQ and Tibco EMS provide
OnceAndOnlyOnceDeliverySemantics, while Tibco Rendezvous provides
BestEffortDeliverySemantics.
In
StoreAndForward pub-sub systems, there are two kinds of subscriber:
- "Normal" subscribers
- Durable subscribers
A normal subscriber receives messages that are sent while it is listening.
A durable subscriber is associated with a store in the message broker. The message broker stores messages for the durable subscriber while it is offline and delivers them when the subscriber comes back online.
The
JavaMessagingService (JMS) API supports
PublishAndSubscribe with named topics and has a simple form of
ContentBasedAddressing.
External Links: