D-Bus has three architectural layers:[2]
a library, libdbus, that allows two applications to connect to each other and exchange messagesa message-bus daemon executable, built on libdbus, that multiple applications can connect to. The daemon can route messages from one application to zero or more applications, thereby implementing the publish/subscribe paradigm.wrapper libraries based on particular application frameworksThe design of D-Bus addresses two specific cases:
communication between desktop applications in the same desktop session; to allow integration of the desktop session as a whole, and address issues of process lifecyclecommunication between the desktop session and the operating system, where the operating system would typically include the kernel and any system daemons or processes