4. Observer Pattern
• Observer pattern is a simple pub/sub model in programming
• Defines a one-to-many dependency between objects so that when one object changes state,
all its dependents are notified and updated automatically.
• Observer
• Gets notified of the change
• Subject
• Maintains a list of its dependents, called observers
• Have methods to add and remove observers
• Notifies them automatically of any state changes by calling one of their(observers) methods
5. Publisher/Subscriber Model
• JMS implements Pub-Sub model with the help of Topic
• Message Flow
• Subscriber registers them with a topic they are interested
• Publisher sends a message to topic
• Each registered subscribers would get a copy of message
• When message has been received by all subscribers topic deletes the message
• Topic will retain the message if any of the registered subscriber is not available at a time
• Topic should send message once inactive subscriber becomes active
8. Advance features
• More than one producer can publish messages to a topic
• More than one subscriber can consume messages from a topic
• Subscribers retrieve all messages published to a topic unless they use selectors to
filter out messages or messages expire before they are consumed
• Durable subscribers can be active or inactive. The broker retains messages for them
while they are inactive
• Publishers and subscribers can be added and deleted dynamically at runtime, thus
allowing the messaging system to expand or contract as needed
9. Important Notes
• Subscribing to Topic should be restricted by security policies
• Messages are published to a topic in the order
• Order in which they are consumed is not guaranteed
• Message expiration time, message priority and Selector
• Always set message expiry time
• Accumulating messages for inactive consumers for long duration would run topic out of space
• Publishers and subscribers have a timing dependency
• A subscriber can consume only messages published after it has created the subscription
10. Share Market Stock Quote Service
Stock Exchange
Topic
Stock
Quote
Service
Stock Quote
Receiver
Manufacturing
Industries Stock
Quote Receiver
11. Advantages
• Adds modularity
• Each component has clear responsibility
• Abstraction for Senders and receivers
• Highly scalable
• Publishers and subscribers can be added and deleted dynamically at runtime
• Eavesdrop on a message channel without disturbing the existing message flow
• Helpful in debugging applications