2012-01-15 4 views
2

Я работаю над проектом служб на основе местоположения, где у меня есть несколько датчиков, которые должны отправлять асинхронные показания на сервер, что будет коррелировать показания и генерировать результат. Также будет некоторый уровень датчика для связи с датчиком, и я заинтересован в использовании XMPP в качестве транспорта благодаря эффективному обмену сообщениями, режиму реального времени и обходу NAT.XMPP для связи между машиной и машиной (M2M)

Я надеюсь найти пример (Python или любой другой langauge) службы XMPP для машины (M2M), надеюсь, используя модель PubSub для асинхронной связи, а не RPC на основе опроса. Я не смог найти какие-либо примеры в Интернете или в XMPP-книгах, которые я видел, поскольку они, как представляется, в основном сосредоточены на XMPP для взаимодействия с человеком, таких как чат, видео и т. Д.

Общие требования, которые я должен соблюдать работа с которыми:


1. Несколько датчиков обмена данными друг с другом через XMPP


2. Асинхронный (PubSub) связи, подписавшись на сообщения, представляющие интерес


3. Надеюсь, написанный в Python, но любой язык был бы ООД отправной точкой


4. Сервер коррелирует данные со всех датчиков и генерирует результаты, которые могут быть сделаны доступными для абонентов


5. Простая конфигурация/настройка посредством открытия

Любые идеи о том, где посмотрите, или хорошая отправная точка будет очень оценена.

Спасибо!

ответ

1

Я ничего не знаю со всеми этими реквизитами, но вы можете использовать SleekXMPP для создания собственного. Это чистый питон и хорошо документированная библиотека XMPP. XMPP был использован для связи между компьютером и компьютером, что довольно приятно, потому что вы можете просто протестировать его у своего чат-клиента. Посмотрите, например, http://www.python.org/about/success/projectpipe/

Успехов

2

Это соответствует модели PubSub из XMPP довольно хорошо.

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

Любой пример, который вы найдете, касающийся pubsub легко применим. В XMPP ли JID (Jabber ID) представляет пользователя машины, не имеет значения, а pubsub на самом деле не ориентирован на взаимодействие с человеком, в отличие от многопользовательского чата.

Существует много серверов XMPP, которые поддерживают pubsub. Я использовал Smack и OpenFire для аналогичной цели. Сервер для вас менее важен, так как любой из готовых продуктов, поддерживающих PubSub, будет выполнять эту работу. Еще важнее клиентская библиотека с поддержкой pubsub. Я знаю, что у Smack это, но это Java-библиотека, а не python.

+0

Robin, я пытаюсь сделать M2M с OpenFire и Smack, но я мог только создать соединение с JID и паролем, и в моем случае я не хочу генерировать пароль для каждого объекта, который не нужен, есть ли другой способ где я могу обойти аутентификацию? – ThiyagaB

3

XMPP для M2M звучит неплохо.

О клиентах и ​​серверах, см http://xmpp.org/about-xmpp/technology-overview/pubsub/

В PubSub сервер делает в основном всю тяжелую работу, и вы должны реализовать очень мало интеллекта для клиентов. Но это зависит от того, что вы хотите делать с опубликованной информацией. Я не тестировал клиентов, которые действительно что-то делают с опубликованной информацией.

 Смежные вопросы

  • Нет связанных вопросов^_^