
A pesar de leer toneladas de tutoriales de DBus, todavía me cuesta entender el concepto completo. En mi opinión esta fue una de las mejores explicaciones hasta ahora:
http://telepathy.freedesktop.org/doc/book/sect.basics.dbus.html
La razón para utilizar DBus es porque quiero intercambiar datos entre diferentes programas. En mi opinión, sería suficiente proporcionar un servidor o, como se muestra en la Figura 2-2, un servicio. Este servicio proporciona varios métodos a través de una interfaz que comparto con el cliente.
Luego, el cliente invoca un método y obtiene una respuesta.
Entonces, ¿qué me estoy perdiendo? ¿Por qué se necesitan objetos adicionales?
Supongo que es sólo para ceñirse a las convenciones de Java de objetos respectivamente clases. Cada objeto representa una instancia. Realmente me gustaría que alguien lo confirmara.
¿Cuál es el beneficio del primer sistema sobre el segundo?
Respuesta1
No por convención sino para facilitar vinculaciones de alto nivel.
Objetos nativos y rutas de objetos
Su marco de programación probablemente define cómo es un "objeto"; generalmente con una clase base. Por ejemplo: java.lang.Object, GObject, QObject, objeto base de Python o lo que sea. Llamemos a esto un objeto nativo.
El protocolo D-Bus de bajo nivel,..., no se preocupa por los objetos nativos. Sin embargo, proporciona un concepto llamado ruta de objeto. La idea de una ruta de objeto es que los enlaces de nivel superior puedan nombrar instancias de objetos nativos y permitir que aplicaciones remotas hagan referencia a ellas.
Editar:
Probablemente puedas usar la API y el demonio del bus de mensajes integrado en libdbus para evitar el uso de objetos y así terminar con tu enfoque de comunicación deun cliente que invoca un método y obtiene una respuesta. Sin embargo, tenga en cuenta que libdbus está destinado a ser un backend de bajo nivel para los enlaces de nivel superior, por lo que gran parte de la API de libdbus solo es útil para la implementación de enlaces.