Publish-Subscribe. In the publish-subscribe communications model (Figure 1), computer applications (nodes) “subscribe” to data they need and “publish” data they want to share. Messages pass directly between the publisher and the subscribers, rather than moving into and out of a centralized server. Most time-sensitive information intended to reach many people is sent by a publish-subscribe system. Examples of publish-subscribe systems in everyday life include television, magazines, and newspapers.

Figure 1. Publish-subscribe is many-to-many communications

Publish-subscribe communication architectures are good for distributing large quantities of time-sensitive information efficiently, even in the presence of unreliable delivery mechanisms. This direct and simultaneous communication among a variety of nodes makes publish-subscribe network architecture the best choice for systems with complex time-critical data flows.

While the publish-subscribe model provides system architects with many advantages, it may not be the best choice for all types of communications, including: 

  1. File-based transfers (alternate solution: FTP)
  2. Remote Method Invocation (alternate solutions: CORBA, COM, SOAP)
  3. Connection-based architectures (alternate solution: TCP/IP)
  4. Synchronous transfers (alternate solution: CORBA)