В чем смысл объектов DBus?

В чем смысл объектов DBus?

Несмотря на прочтение тонн руководств по 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 полезна только для реализации привязок.

Связанный контент