在發佈/訂閱網域中,訊息產生器稱為發佈者,而訊息用戶則稱為訂閱者。他們會藉由稱為主題的目標來交換訊息:發佈者會產生主題相關的訊息,而訂閱者則會訂閱主題,並使用主題所提供的訊息。
圖 2–3 所示是發佈/訂閱網域中的簡易訊息傳送作業。MyTopicPublisher 將 Msg1 發佈到目標 MyTopic 上。然後,MyTopicSubscriber1 與 MyTopicSubscriber2 各自從 MyTopic 接收一份 Msg1。
發佈/訂閱模型中不一定要有多位訂閱者;此圖中之所以顯示兩名訂閱者,是為了強調此網域可讓您廣播訊息。某項主題的所有訂閱者皆可收到任何發佈到該主題的訊息。
訂閱者可以是非長期或長期的訂閱者。代理程式會保留所有使用中訂閱者的訊息,但對於非使用中的訂閱者,便只會為長期訂閱者保留訊息。
圖 2–4 所示圖片,是較為複雜的發佈/訂閱訊息傳送,說明此式樣中可能發生的情況。數個產生器發佈訊息到 Topic1 目標。數名訂閱者使用 Topic1 目標上的訊息。除非訂閱者利用選擇器來篩選訊息,否則每位訂閱者都會取得所有發佈到所選主題的訊息。在圖 2–4 中,MyTSubscriber2 已將 Msg2 篩選掉。
這個較複雜的圖片解釋了許多有關發佈/訂閱訊息傳送的其他資訊。
多個產生器可以發佈訊息到相同的主題上。產生器可選擇共用同一條連線或不同的連線,但都皆可存取相同的主題。
多名訂閱者可以使用相同主題所提供的訊息。除非訂閱者使用選擇器將某些訊息篩選在外,或訊息在被使用之前即已過期,否則訂閱者會擷取所有發佈到主題上的訊息。
訂閱者可選擇共用同一條連線或不同的連線,但皆可存取相同的主題。
執行階段可動態增加或刪除發佈者與訂閱者,以便於訊息傳送系統視需要進行擴大或縮小。
訊息會依照傳送的順序發佈到主題上,但其使用順序則視訊息過期日期、訊息優先權,以及使用訊息時,是否使用選擇器而定。
發佈者與訂閱者會受到時間的影響:主題訂閱者只可使用訂閱建立之後所發佈的訊息。