
Несмотря на прочтение тонн руководств по DBus, я все еще с трудом понимаю всю концепцию. По моему мнению, это одно из лучших объяснений на данный момент:
http://telepathy.freedesktop.org/doc/book/sect.basics.dbus.html
Причина использования DBus в том, что я хочу обмениваться данными между разными программами. По моему мнению, было бы достаточно предоставить сервер или, как указано на рисунке 2-2, службу. Эта служба предоставляет несколько методов через интерфейс, который я разделяю с клиентом.
Затем клиент вызывает метод и получает ответ.
Так что же я упускаю? Зачем нужны дополнительные объекты?
Я думаю, это просто придерживаться соглашений Java об объектах и классах. Каждый объект представляет экземпляр. Очень хотелось бы, чтобы кто-то это подтвердил.
В чем преимущество первой системы перед второй?
решение1
Не по соглашению, а для облегчения высокоуровневых привязок.
Собственные объекты и пути к объектам
Ваша программная среда, вероятно, определяет, что такое "объект"; обычно с базовым классом. Например: java.lang.Object, GObject, QObject, базовый Object python или что-то еще. Давайте назовем это собственным объектом.
Низкоуровневый протокол D-Bus, ..., не заботится о собственных объектах. Однако он предоставляет концепцию, называемую путем объекта. Идея пути объекта заключается в том, что высокоуровневые привязки могут называть экземпляры собственных объектов и позволять удаленным приложениям ссылаться на них.
Редактировать:
Вероятно, вы можете просто использовать API и демон шины сообщений, встроенный в libdbus, чтобы избежать использования объектов, и таким образом вы закончите с вашим подходом к коммуникацииклиент, который вызывает метод и получает ответ. Однако следует помнить, что libdbus задуман как низкоуровневый бэкэнд для высокоуровневых привязок, поэтому большая часть API libdbus полезна только для реализации привязок.