2013-06-24 3 views
1

Хорошо, мне, возможно, немного не хватает сюжета здесь, но мне очень нужна помощь. Я совершенно новичок в развитии и т. Д., И теперь я пришел к тому, что мне нужно реализовать DBus (или некоторую другую межпрограммную связь). Я нахожу эту концепцию немного трудной для понимания.Confused about DBus

Моей реализацией будет использование HTML-сайта для изменения определенных переменных, которые будут использоваться в другой программе, что позволяет динамически изменять программу при ее работе. Я делаю это на малиновом PI, используя Raspbian. Я запускаю веб-сервер для размещения моего веб-сайта, и здесь возникает путаница.

Насколько я понимаю, DBus выполняет службу, которая позволяет вам вызывать методы из программы в другой программе. Значит ли это, что мой сайт должен запустить службу DBUS, чтобы позволить мне вызывать методы из нее в мою программу? Чтобы усложнить ситуацию немного, я кодирую в Python, поэтому я не уверен, могу ли я запустить сценарий Python на своем веб-сайте, который позволил бы мне запустить службу DBUS. Было бы лучше использовать JavaScript?

Для меня самым логичным решением будет запуск единой службы DBUS, которая каким-то образом импортирует метод из разных программ и может быть запрошена другими, которые хотят использовать эти методы. Это возможно?

Помощь будет оценена! Спасибо заранее!

+0

Должно ли обслуживание D-Bus работать как часть веб-сервера, или веб-скрипты могут проверять значения, хранящиеся в отдельном сервисе D-Bus? –

+0

Значения, которые нужно прочитать, будут на веб-странице, на которой я размещаю, все, что мне нужно, - это запустить метод, который будет считывать эти значения, например, если я нажму кнопку. Я обнаружил проблемы с запуском DBUS на веб-сервере, потому что они оба требуют бесконечный цикл, например службу, для запуска –

ответ

0

Похоже, что вы должны написать изолированное D-Bus-сервис, чтобы действовать как хранилище данных и взаимодействовать с ним в своих сценариях для записи и чтения значений. Вы можете использовать shelve, чтобы сохранить значения между вызовами службы.

В разделе tutorial раздел «Выполнение вызовов метода» охватывает синхронные вызовы, а обложки «Экспорт объектов» записывают большую часть службы D-Bus.

1
  • Значит ли это, что мой сайт должен запустить службу DBUS до , позвольте мне вызвать методы из нее в мою программу?

Будет выполняться фоновый процесс dbus (демон) на вашем веб-сервере. Фактически dbus предоставляет два демона. Один из них представляет собой системный демон, который позволяет получать объекты для получения системной информации (например, наличие принтера для примера) , а второй является общим пользовательским приложением к приложению IPC-демона. Это второй демона , который вы определенно используете для разных приложений для общения.

  • Я кодирования в Python, так что я не уверен, если я могу запустить сценарий Python на моем сайте, что позволит мне запустить службу Dbus.

Нет проблем с использованием python; dbus имеет привязки для многих языков (например, Java, perl, ruby, C++, Python). Объекты dbus могут быть сопоставлены с объектами python.

  • наиболее логичным решением было бы запустить одну службу Dbus что-то импортирует метод из различных программ и может быть запрошена от других людей, которые хотят, чтобы запустить эти методы. Это возможно?

Правильный - dbus обеспечивает механизм, посредством которого клиентский процесс создаст объект или объекты dbus, которые разрешают этот процесс другим службам другим процессам, поддерживающим dbus.