Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Publish–subscribe pattern
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Topologies== In many publish–subscribe systems, publishers post messages to an intermediary [[message broker | message broker or event bus]], and subscribers register subscriptions with that broker, letting the broker perform the filtering. The broker normally performs a [[store and forward]] function to route messages from publishers to subscribers. In addition, the broker may prioritize messages in a [[Priority queue|queue]] before routing.{{Cn|date=October 2024}} Subscribers may register for specific messages at build time, initialization time or runtime. In GUI systems, subscribers can be coded to handle user commands (e.g., click of a button), which corresponds to build time registration. Some frameworks and software products use [[XML]] configuration files to register subscribers. These configuration files are read at initialization time. The most sophisticated alternative is when subscribers can be added or removed at runtime. This latter approach is used, for example, in [[database trigger]]s, [[mailing list]]s, and [[RSS]].{{Cn|date=October 2024}} The [[Data Distribution Service]] (DDS) middleware does not use a broker in the middle. Instead, each publisher and subscriber in the pub/sub system shares meta-data about each other via [[IP multicast]]. The publisher and the subscribers cache this information locally and route messages based on the discovery of each other in the shared cognizance. In effect, brokerless architectures require publish/subscribe system to construct an overlay network which allows efficient decentralized routing from publishers to subscribers. It was shown by [[Jon Kleinberg]] that efficient decentralised routing requires [[Small-world routing#The Kleinberg model|Navigable Small-World topologies]]. Such Small-World topologies are usually implemented by decentralized or federated publish/subscribe systems.<ref name=":0">{{Cite book|last1=Chen|first1=Chen|last2=Tock|first2=Yoav|last3=Girdzijauskas|first3=Sarunas|title=Proceedings of the 12th ACM International Conference on Distributed and Event-based Systems |chapter=BeaConvey |date=2018|chapter-url=http://dl.acm.org/citation.cfm?doid=3210284.3210287|language=en|location=Hamilton, New Zealand|publisher=ACM Press|pages=64–75|doi=10.1145/3210284.3210287|isbn=9781450357821|s2cid=43929719|url=http://urn.kb.se/resolve?urn=urn:nbn:se:kth:diva-228002 }}</ref> Locality-aware publish/subscribe systems<ref>{{Citation|last1=Rahimian|first1=Fatemeh|title=Locality-Awareness in a Peer-to-Peer Publish/Subscribe Network|date=2012|work=Distributed Applications and Interoperable Systems|volume=7272|pages=45–58|editor-last=Göschka|editor-first=Karl Michael|publisher=Springer Berlin Heidelberg|doi=10.1007/978-3-642-30823-9_4|isbn=9783642308222|last2=Le Nguyen Huu|first2=Thinh|last3=Girdzijauskas|first3=Sarunas|editor2-last=Haridi|editor2-first=Seif|doi-access=free}}</ref> construct Small-World topologies that route subscriptions through short-distance and low-cost links thereby reducing subscription delivery times.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)