В последнее время все больше и больше внимания уделяется так называемому "Интернету Вещей" или The Internet of Things (IoT). Одним из стимулом для этого является недавняя инициатива OASIS стандартизовать IBM MQTT как протокол для общения "Вещей". По ссылке на блог New York Times можно найти больше деталей о данном предложении.
Если MQTT у вас вызывает ощущение "дежавю", то скорее всего вы уже знакомы с похожим стандартом Object Management Group (OMG) Data Distribution Service (DDS) для систем реального времени. Подобно MQTT, DDS был разработан специально для использования в "межмашинном" (M2M) взаимодействии, что является основной для "Интернета Вещей".
Однако, не на смотря на то, что стандарты имеют общие устремления, MQTT и DDS весьма сильно отличаются друг от друга. Каждый исходит из разных предположений об Интернете для Вещей:
MQTT оптимален для централизованного сбора данных и их обработки – подключение датчиков и мобильных устройств непосредственно к дата центру.
DDS оптимален для распределенной обработки данных– непосредственно на подключенных датчиках, устройствах и приложениях: без необходимости иметь централизованную IT инфраструктуру.
Разница между MQTT и DDS заключается в их архитектуре.
MQTT имеет архитектуру звезды. Датчики, устройства и приложения взаимодействуют через брокера сообщений, который расположен где-то в дата-центре. Буквально все взаимодействия ведутся через брокера.
DDS децентрализован. Сущности обмениваются данными непосредственно с другими сущностями и приложениями в сети. Данные поступают в дата-центр только если неизвестен получатель или получатели.
Из-за этой разницы в архитектурах MQTT и DDS стандарты подходят для разных типов приложений.
MQTT подходит для классических M2M приложений, в которых поток данных в основном между клиентом и сервером. Как пример: мониторинг температуры или давления на скважинах.
DDS идеально подходит для ситуаций, когда нет выделенного центра. Например, рассмотрим систему мониторинга пациентов. Данные датчиков (например по жизнеобеспечению) необходимы "у кровати", на столе медсестры, на устройствах записи состояния пациента или даже на мобильных устройствах родственников. Это было бы весьма неэффективно отправлять эти данные через центральный дата-центр лишь для того чтобы они появились рядом у кровати или на мониторе у медсестры. Это может быть даже технически трудно выполнимым из-за, например, ширины канала.
Таким образом, в то время как и MQTT и DDS обеспечивают стандарт для коммуникаций в "Интернете Вещей", их архитектура приводит к большой разнице в архитектуре конечных систем.
Google+