<?xml version="1.0" standalone="no"?>
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"
[
]>

<article id="index">
  <articleinfo>
    <title>D-Bus FAQ</title>
    <releaseinfo>Version 0.3</releaseinfo>
    <date>17 November 2006</date>
    <authorgroup>
      <author>
	<firstname>Havoc</firstname>
	<surname>Pennington</surname>
	<affiliation>
	  <orgname>Red Hat, Inc.</orgname>
	  <address>
	    <email>hp@pobox.com</email>
	  </address>
	</affiliation>
      </author>
      <author>
	<firstname>David</firstname>
        <othername role="mi">A</othername>
	<surname>Wheeler</surname>
      </author>
    </authorgroup>
  </articleinfo>

  <qandaset id="faq">

    <qandaentry>
      <question>
        <para>
          What is D-Bus?
        </para>
      </question>
      <answer>
        <para>
          This is probably best answered by reading the D-Bus <ulink url="dbus-tutorial.html">tutorial</ulink> or
          the introduction to the <ulink url="dbus-specification.html">specification</ulink>. In
          short, it is a system consisting of 1) a wire protocol for exposing a
          typical object-oriented language/framework to other applications; and
          2) a bus daemon that allows applications to find and monitor one another.
          Phrased differently, D-Bus is 1) an interprocess communication (IPC) system and 2) some higher-level 
          structure (lifecycle tracking, service activation, security policy) provided by two bus daemons,
          one systemwide and one per-user-session.
        </para>
      </answer>
    </qandaentry>

    <qandaentry>
      <question>
        <para>
          Is D-Bus stable/finished?
        </para>
      </question>
      <answer>
        <para>
          The low-level library "libdbus" and the protocol specification are considered 
          ABI stable. The <ulink url="README">README</ulink>
          file has a discussion of the API/ABI stability guarantees.
          Higher-level bindings (such as those for Qt, GLib, Python, Java, C#) each 
          have their own release schedules and degree of maturity, not linked to 
          the low-level library and bus daemon release. Check the project page for
          the binding you're considering to understand that project's policies.
        </para>
      </answer>
    </qandaentry>

    <qandaentry>
      <question>
        <para>
          How is the reference implementation licensed? Can I use it in 
          proprietary applications?
        </para>
      </question>
      <answer>
        <para>
          The short answer is yes, you can use it in proprietary applications.
          You should read the <ulink url="COPYING">COPYING</ulink> file, which
          offers you the choice of two licenses. These are the GPL and the
          AFL. The GPL requires that your application be licensed under the GPL
          as well. The AFL is an "X-style" or "BSD-style" license compatible
          with proprietary licensing, but it does have some requirements; in
          particular it prohibits you from filing a lawsuit alleging that the
          D-Bus software infringes your patents <emphasis>while you continue to
          use D-Bus</emphasis>.  If you're going to sue, you have to stop using
          the software. Read the licenses to determine their meaning, this FAQ
          entry is not intended to change the meaning or terms of the licenses.
        </para>
      </answer>
    </qandaentry>

    <qandaentry>
      <question>
        <para>
          What is the difference between a bus name, and object path, 
          and an interface?
        </para>
      </question>
      <answer>
        <para>
          If you imagine a C++ program that implements a network service, then
          the bus name is the hostname of the computer running this C++ program,
          the object path is a C++ object instance pointer, and an interface is
          a C++ class (a pure virtual or abstract class, to be exact).
        </para>
        <para>
          In Java terms, the object path is an object reference, 
          and an interface is a Java interface.
        </para>
        <para>
          People get confused because if they write an application 
          with a single object instance and a single interface, 
          then the bus name, object path, and interface look 
          redundant. For example, you might have a text editor 
          that uses the bus name <literal>org.freedesktop.TextEditor</literal>,
          has a global singleton object called 
          <literal>/org/freedesktop/TextEditor</literal>, and 
          that singleton object could implement the interface 
          <literal>org.freedesktop.TextEditor</literal>.
        </para>
        <para>
          However, a text editor application could as easily own multiple bus
          names (for example, <literal>org.kde.KWrite</literal> in addition to
          generic <literal>TextEditor</literal>), have multiple objects (maybe
          <literal>/org/kde/documents/4352</literal> where the number changes
          according to the document), and each object could implement multiple
          interfaces, such as <literal>org.freedesktop.DBus.Introspectable</literal>,
          <literal>org.freedesktop.BasicTextField</literal>,
          <literal>org.kde.RichTextDocument</literal>.
        </para>
      </answer>
    </qandaentry>


    <qandaentry id="service">
      <question>
        <para>
          What is a "service"?
        </para>
      </question>
      <answer>
        <para>
          A service is a program that can be launched by the bus daemon 
          to provide some functionality to other programs. Services
          are normally launched according to the bus name they will 
          have.
        </para>
        <para>
          People often misuse the word "service" for any 
          bus name, but this tends to be ambiguous and confusing so is discouraged.
          In the D-Bus docs we try to use "service" only when talking about 
          programs the bus knows how to launch, i.e. a service always has a 
          .service file.
        </para>
      </answer>
    </qandaentry>

    <qandaentry id="components">
      <question>
        <para>
          Is D-Bus a "component system"?
        </para>
      </question>
      <answer>
        <para>
          It helps to keep these concepts separate in your mind:
          <orderedlist>
            <listitem>
              <para>
                Object/component system
              </para>
            </listitem>
            <listitem>
              <para>
                GUI control/widget embedding interfaces
              </para>
            </listitem>
            <listitem>
              <para>
                Interprocess communication system or wire protocol
              </para>
            </listitem>
          </orderedlist>
        </para>
        <para>
          D-Bus is not a component system. "Component system" was originally
          defined by COM, and was essentially a workaround for the limitations
          of the C++ object system (adding introspection, runtime location of
          objects, ABI guarantees, and so forth). With the C# language and CLR,
          Microsoft added these features to the primary object system, leaving
          COM obsolete. Similarly, Java has much less need for something like
          COM than C++ did. Even QObject (from Qt) and GObject (from GLib) offer
          some of the same features found in COM.
        </para>
        <para>
          Component systems are not about GUI control embedding. Embedding
          a spreadsheet in a word processor document is a matter of defining
          some specific <emphasis>interfaces</emphasis> that objects
          can implement. These interfaces provide methods related to 
          GUI controls. So an object implementing those interfaces 
          can be embedded.
        </para>
        <para>
          The word "component" just means "object with some fancy features" and
          in modern languages all objects are effectively "components."
        </para>
        <para>
          So components are fancy objects, and some objects are GUI controls.
        </para>
        <para>
          A third, unrelated feature is interprocess communication or IPC.
          D-Bus is an IPC system. Given an object (or "component" if you must), 
          you can expose the functionality of that object over an IPC system.
          Examples of IPC systems are DCOM, CORBA, SOAP, XML-RPC, and D-Bus.
          You can use any of these IPC systems with any object/component system,
          though some of them are "tuned" for specific object systems.
          You can think of an IPC system primarily as a wire protocol.
        </para>
        <para>
          If you combine an IPC system with a set of GUI control interfaces, 
          then you can have an out-of-process or dynamically-loaded GUI control.
        </para>
        <para>
          Another related concept is the <firstterm>plugin</firstterm> or
          <firstterm>extension</firstterm>.  Generic plugin systems such as the
          <ulink url="http://eclipse.org">Eclipse</ulink> system are not so different
          from component/object systems, though perhaps a "plugin" tends to be a
          bundle of objects with a user-visible name and can be
          downloaded/packaged as a unit.
        </para>
      </answer>
    </qandaentry>

    <qandaentry id="speed">
      <question>
        <para>
          How fast is the D-Bus reference implementation?
        </para>
      </question>
      <answer>
        <para>
          Of course it depends a bit on what you're doing. 
          <ulink url="http://lists.freedesktop.org/pipermail/dbus/2004-November/001779.html">
            This mail</ulink> contains some benchmarking.  At the time of that
          benchmark, D-Bus one-to-one communication was about 2.5x slower than
          simply pushing the data raw over a socket. After the recent rewrite of
          the marshaling code, D-Bus is slower than that because a lot of
          optimization work was lost. But it can probably be sped up again.
        </para>
        <para>
          D-Bus communication with the intermediate bus daemon should be 
          (and as last profiled, was) about twice as slow as one-to-one 
          mode, because a round trip involves four socket reads/writes rather 
          than two socket reads/writes.
        </para>
        <para>
          The overhead comes from a couple of places; part of it is simply 
          "abstraction penalty" (there are layers of code to support 
          multiple main loops, multiple transport types, security, etc.).
          Probably the largest part comes from data validation
          (because the reference implementation does not trust incoming data).
          It would be simple to add a "no validation" mode, but probably 
          not a good idea all things considered.
        </para>
        <para>
          Raw bandwidth isn't the only concern; D-Bus is designed to 
          enable asynchronous communication and avoid round trips.
          This is frequently a more important performance issue 
          than throughput.
        </para>
      </answer>
    </qandaentry>


    <qandaentry id="size">
      <question>
        <para>
          How large is the D-Bus reference implementation?
        </para>
      </question>
      <answer>
        <para>
          A production build (with assertions, unit tests, and verbose logging
          disabled) is on the order of a 150K shared library.
        </para>
        <para>
          A much, much smaller implementation would be possible by omitting out
          of memory handling, hardcoding a main loop (or always using blocking
          I/O), skipping validation, and otherwise simplifying things.
        </para>
      </answer>
    </qandaentry>
    
    <qandaentry id="other-ipc">
      <question>
        <para>
          How does D-Bus differ from other interprocess communication
          or networking protocols?
        </para>
      </question>
      <answer>
        <para>
          Keep in mind, it is not only an IPC system; it also includes
          lifecycle tracking, service activation, security policy, and other
          higher-level structure and assumptions.
        </para>
        <para>
          The best place to start is to read the D-Bus <ulink url="dbus-tutorial.html">tutorial</ulink>, so 
          you have a concrete idea what D-Bus actually is. If you 
          understand other protocols on a wire format level, you 
          may also want to read the D-Bus <ulink url="dbus-specification.html">specification</ulink> to see what 
          D-Bus looks like on a low level.
        </para>
        <para>
          As the <ulink url="dbus-tutorial.html">tutorial</ulink> and <ulink url="dbus-specification.html">specification</ulink> both explain, D-Bus is tuned 
          for some specific use cases. Thus, it probably isn't tuned 
          for what you want to do, unless you are doing the things 
          D-Bus was designed for. Don't make the mistake of thinking 
          that any system involving "IPC" is the same thing.
        </para>
        <para>
          The D-Bus authors would not recommend using D-Bus 
          for applications where it doesn't make sense.
          The following questions compare D-Bus to some other 
          protocols primarily to help you understand D-Bus 
          and decide whether it's appropriate; D-Bus is neither intended
          nor claimed to be the right choice for every application.
        </para>
        <para>
          It should be possible to bridge D-Bus to other IPC systems, 
          just as D-Bus can be bridged to object systems.
        </para>
        <para>
          Note: the D-Bus mailing list subscribers are <emphasis>very much not
          interested</emphasis> in debating which IPC system is the One True
          System. So if you want to discuss that, please use another forum.
        </para>
      </answer>      
    </qandaentry>

    
    <qandaentry id="corba">
      <question>
        <para>
          How does D-Bus differ from CORBA?
        </para>
      </question>
      <answer>
        <para>
          Start by reading <xref linkend="other-ipc"/>.
        </para>
        <para>
          <ulink url="http://www.omg.org">CORBA</ulink> is designed to support
         object-oriented IPC between objects, automatically marshalling
         parameters as necessary. CORBA is strongly supported by the <ulink
         url="http://www.omg.org">Open Management Group (OMG)</ulink>, which
         produces various standards and supporting documents for CORBA and has
         the backing of many large organizations.  There are many CORBA ORBs
         available, both proprietary ORBs and free / open source software ORBs
         (the latter include <ulink
         url="http://orbit-resource.sourceforge.net/">ORBit</ulink>, <ulink
         url="http://www.mico.org/">MICO</ulink>, and <ulink
         url="http://www.theaceorb.com/">The ACE Orb (TAO)</ulink>).  Many
         organizations continue to use CORBA ORBs for various kinds of IPC.
        </para>
        <para>
          Both GNOME and KDE have used CORBA and then moved away from it.  KDE
          had more success with a system called DCOP, and GNOME layered a system
          called Bonobo on top of CORBA. Without custom extensions, CORBA does
          not support many of the things one wants to do in a desktop
          environment with the GNOME/KDE architecture.
        </para>
        <para>
          CORBA on the other hand has a number of features of interest for
          enterprise and web application development, though XML systems such as
          SOAP are the latest fad.
        </para>
        <para>
          Like D-Bus, CORBA uses a fast binary protocol (IIOP). Both systems
          work in terms of objects and methods, and have concepts such as
          "oneway" calls. Only D-Bus has direct support for "signals" as in
          GLib/Qt (or Java listeners, or C# delegates).
        </para>
        <para>
          D-Bus hardcodes and specifies a lot of things that CORBA leaves open-ended,
          because CORBA is more generic and D-Bus has two specific use-cases in mind.
          This makes D-Bus a bit simpler.
        </para>
        <para>
          However, unlike CORBA D-Bus does <emphasis>not</emphasis> specify the
          API for the language bindings. Instead, "native" bindings adapted
          specifically to the conventions of a framework such as QObject,
          GObject, C#, Java, Python, etc. are encouraged. The libdbus reference
          implementation is designed to be a backend for bindings of this
          nature, rather than to be used directly. The rationale is that an IPC
          system API should not "leak" all over a program; it should come into
          play only just before data goes over the wire. As an aside, OMG is
          apparently working on a simpler C++ binding for CORBA.
        </para>
        <para>
          Many CORBA implementations such as ORBit are faster than the libdbus
          reference implementation.  One reason is that D-Bus considers data
          from the other end of the connection to be untrusted and extensively
          validates it. But generally speaking other priorities were placed
          ahead of raw speed in the libdbus implementation. A fast D-Bus
          implementation along the lines of ORBit should be possible, of course.
        </para>
        <para>
          On a more trivial note, D-Bus involves substantially fewer acronyms
          than CORBA.
        </para>
      </answer>
    </qandaentry>


    <qandaentry id="xmlrpcsoap">
      <question>
        <para>
          How does D-Bus differ from XML-RPC and SOAP?
        </para>
      </question>
      <answer>
        <para>
          Start by reading <xref linkend="other-ipc"/>.
        </para>
        <para>
          In <ulink url="http://www.w3.org/TR/SOAP/">SOAP</ulink> and <ulink
            url="http://www.xmlrpc.com">XML-RPC</ulink>, RPC calls are transformed
          into an XML-based format, then sent over the wire (typically using the
          HTTP protocol), where they are processed and returned.  XML-RPC is the
          simple protocol (its spec is only a page or two), and SOAP is the
          full-featured protocol.
        </para>
        <para>
          XML-RPC and SOAP impose XML parsing overhead that is normally
          irrelevant in the context of the Internet, but significant for
          constant fine-grained IPC among applications in a desktop session.
        </para>
        <para>
          D-Bus offers persistent connections and with the bus daemon 
          supports lifecycle tracking of other applications connected
          to the bus. With XML-RPC and SOAP, typically each method call 
          exists in isolation and has its own HTTP connection.
        </para>
      </answer>
    </qandaentry>

    <qandaentry id="dce">
      <question>
        <para>
          How does D-Bus differ from DCE?
        </para>
      </question>
      <answer>
        <para>
          Start by reading <xref linkend="other-ipc"/>.
        </para>
        <para>
          <ulink url="http://www.opengroup.org/dce/">Distributed Computing
          Environment (DCE)</ulink> is an industry-standard vendor-neutral
          standard that includes an IPC mechanism.  <ulink
          url="http://www.opengroup.org/comm/press/05-01-12.htm">The Open Group
          has released an implementation as open source software</ulink>.  DCE
          is quite capable, and includes a vast amount of functionality such as
          a distributed time service.  As the name implies, DCE is intended for
          use in a large, multi-computer distributed application. D-Bus would
          not be well-suited for this.
        </para>
      </answer>
    </qandaentry>    


    <qandaentry id="dcom">
      <question>
        <para>
          How does D-Bus differ from DCOM and COM?
        </para>
      </question>
      <answer>
        <para>
          Start by reading <xref linkend="other-ipc"/>.
        </para>
        <para>
          Comparing D-Bus to COM is apples and oranges; 
          see <xref linkend="components"/>.
        </para>
        <para>
          DCOM (distributed COM) is a Windows IPC system designed for use with
          the COM object system. It's similar in some ways to DCE and CORBA.
        </para>
      </answer>
    </qandaentry>    

    <qandaentry id="internet-communications-engine">
      <question>
        <para>
          How does D-Bus differ from ZeroC's Internet Communications Engine (Ice)
        </para>
      </question>
      <answer>
        <para>
          Start by reading <xref linkend="other-ipc"/>.
        </para>
        <para>
          The <ulink url="http://www.zeroc.com/ice.html"> Internet
          Communications Engine (Ice)</ulink> is a powerful IPC mechanism more
          on the level of SOAP or CORBA than D-Bus.  Ice has a "dual-license"
          business around it; i.e. you can use it under the GPL, or pay for a
          proprietary license.
        </para>
      </answer>
    </qandaentry>    

    <qandaentry id="inter-client-exchange">
      <question>
        <para>
          How does D-Bus differ from Inter-Client Exchange (ICE)?
        </para>
      </question>
      <answer>
        <para>
          <ulink url="http://www.x.org/X11R6.8.1/docs/ICE/ice.pdf">ICE</ulink>
          was developed for the X Session Management protocol (XSMP), as part of
          the X Window System (X11R6.1). The idea was to allow desktop sessions
          to contain nongraphical clients in addition to X clients.
        </para>
        <para>
          ICE is a binary protocol designed for desktop use, and KDE's DCOP
          builds on ICE.  ICE is substantially simpler than D-Bus (in contrast
          to most of the other IPC systems mentioned here, which are more
          complex). ICE doesn't really define a mapping to objects and methods
          (DCOP adds that layer).  The reference implementation of ICE (libICE)
          is often considered to be horrible (and horribly insecure).
        </para>
        <para>
          DCOP and XSMP are the only two widely-used applications of ICE,
          and both could in principle be replaced by D-Bus. (Though whether 
          GNOME and KDE will bother is an open question.)
        </para>
      </answer>
    </qandaentry>

    

    <qandaentry id="dcop">
      <question>
        <para>
          How does D-Bus differ from DCOP?
        </para>
      </question>
      <answer>
        <para>
          Start by reading <xref linkend="other-ipc"/>.
        </para>
        <para>
          D-Bus is intentionally pretty similar to <ulink
          url="http://developer.kde.org/documentation/library/kdeqt/dcop.html">DCOP</ulink>,
          and can be thought of as a "DCOP the next generation" suitable for 
          sharing between the various open source desktop projects.
        </para>
        <para>
          D-Bus is a bit more complex than DCOP, though the Qt binding for D-Bus
          should not be more complex for programmers. The additional complexity
          of D-Bus arises from its separation of object references vs. bus names
          vs. interfaces as distinct concepts, and its support for one-to-one
          connections in addition to connections over the bus. The libdbus
          reference implementation has a lot of API to support multiple bindings
          and main loops, and performs data validation and out-of-memory handling 
          in order to support secure applications such as the systemwide bus.
        </para>
        <para>
          D-Bus is probably somewhat slower than DCOP due to data validation 
          and more "layers" in the reference implementation. A comparison 
          hasn't been posted to the list though.
        </para>
        <para>
          At this time, KDE has not committed to using D-Bus, but there have
          been discussions of KDE bridging D-Bus and DCOP, or even changing
          DCOP's implementation to use D-Bus internally (so that GNOME and KDE
          would end up using exactly the same bus). See the KDE mailing list 
          archives for some of these discussions.
        </para>
      </answer>
    </qandaentry>


    <qandaentry id="yet-more-ipc">
      <question>
        <para>
          How does D-Bus differ from [yet more IPC mechanisms]?
        </para>
      </question>
      <answer>
        <para>
          Start by reading <xref linkend="other-ipc"/>.
        </para>
        <para>
          There are countless uses of network sockets in the world.  <ulink
          url="http://www.mbus.org/">MBUS</ulink>, Sun ONC/RPC, Jabber/XMPP,
          SIP, are some we can think of quickly.
        </para>
      </answer>
    </qandaentry>


    <qandaentry id="which-ipc">
      <question>
        <para>
          Which IPC mechanism should I use?
        </para>
      </question>
      <answer>
        <para>
          Start by reading <xref linkend="other-ipc"/>.
        </para>
        <para>
          If you're writing an Internet or Intranet application, XML-RPC or SOAP
          work for many people. These are standard, available for most
          languages, simple to debug and easy to use.
        </para>
        <para>
          If you're writing a desktop application for UNIX, 
          then D-Bus is of course our recommendation for 
          talking to other parts of the desktop session.
        </para>
        <para>
          D-Bus is also designed for communications between system daemons and
          communications between the desktop and system daemons.
        </para>
        <para>
          If you're doing something complicated such as clustering, 
          distributed swarms, peer-to-peer, or whatever then 
          the authors of this FAQ don't have expertise in these
          areas and you should ask someone else or try a search engine.
          D-Bus is most likely a poor choice but could be appropriate
          for some things.
        </para>
        <para>
          Note: the D-Bus mailing list is probably not the place to 
          discuss which system is appropriate for your application, 
          though you are welcome to ask specific questions about 
          D-Bus <emphasis>after reading this FAQ, the tutorial, and 
            searching the list archives</emphasis>. The best way 
          to search the list archives is probably to use 
          an Internet engine such as Google. On Google, 
          include "site:freedesktop.org" in your search.
        </para>
      </answer>
    </qandaentry>


    <qandaentry>
      <question>
        <para>
          How can I submit a bug or patch?
        </para>
      </question>
      <answer>
        <para>
          The D-Bus <ulink url="http://dbus.freedesktop.org">web site</ulink>
          has a link to the bug tracker, which is the best place to store
          patches.  You can also post them to the list, especially if you want
          to discuss the patch or get feedback.
        </para>
      </answer>
    </qandaentry>

  </qandaset>

</article>
