Many people are confused about the concepts in DBus. This page gives an analogy to the web which should help to explain things. ## Concepts * unique bus name * well-known bus name * object path * interface * method name * in parameters * out parameters ## Web Server Analogy * unique bus name is like an IP address. In particular it is dynamic. * well-known bus name is like a hostname. It can be held by different programs at different times, but they should all implement the same API * object path is like the path on the server * interface/method name is like GET or POST * in parameters are like like GET/POST variables * out parameters are like the page which is returned. ## Object-Oriented Language Analogy * an object path refers to an object, such as a java.lang.Object * an interface is exactly like a Java interface * in parameters are method arguments * out parameters are method return values * unique bus name identifies the running process or application uniquely (these bus names are never re-used by a different process) * well-known bus name is a "symlink" that points to the process providing a particular API * an API is made up of objects that are expected to exist, which are expected to implement certain interfaces * see also [[http://log.ometer.com/2007-05.html#17|http://log.ometer.com/2007-05.html#17]]