Облегченный M2M (LwM2M) – это протокол на основе REST от Open Mobile Alliance (OMA) для управления устройствами M2M и IoT, который определяет протокол связи на уровне приложений между сервером LwM2M и клиентом LwM2M, работающим на IoT / встроенном устройстве.
Несмотря на то, что LwM2M v1.0 был официально представлен в начале 2017 года, мы впервые рассмотрели новый протокол годом ранее, когда Imagination Technologies выпустила исходный код для стека LwM2M, работающего на плате разработки MIPS Creator Ci40. С тех пор мы в основном видели протокол LwM2M, поддерживаемый в модулях LTE IoT, включая Quectel BC66 и u-Blox Sara-R410M, а также в уже не функционирующих модулях Samsung Artik WiFi IoT.
За LwM2M v1.0 последовали v1.0.1 и v1.0.2 с исправленными ошибками и v1.1, но теперь OMA анонсировала протокол LwM2M v1.2, который добавляет следующие новые функции:
- Новые транспортные протоколы для LwM2M: MQTT и HTTP
- Оптимизация интерфейсов начальной загрузки и регистрации для уменьшения объема данных, передаваемых при обмене загрузкой и регистрации, соответственно.
- Атрибуты наблюдения теперь могут быть включены в операцию наблюдения.
- Функциональность шлюза LwM2M – позволяет устройствам IoT без LwM2M, а также устройствам LwM2M за шлюзом подключаться к экосистеме LwM2M и управлять этими устройствами удаленно.
- Новый, высоко оптимизированный формат кодирования, основанный на CBOR (краткое представление двоичных объектов) под названием LwM2M CBOR.
- Расширенная функциональность для обновлений прошивки.
- Определение новых атрибутов уведомлений:
- Edge позволяет запускать уведомления при нарастании и спаде фронта.
- Подтверждаемые уведомления позволяют контролировать надежную передачу уведомлений.
- Максимальная историческая очередь позволяет контролировать использование данных временных рядов.
- Разъяснение правил управления версиями объектов.
- Обновления для использования последних протоколов безопасности связи на основе TLS и DTLS 1.3 (а также использования идентификатора подключения).
- Гибкость управления использованием TLS и DTLS 1.3 с помощью информации о конфигурации.
- Распутывание взаимосвязи учетных данных безопасности и их конфигурации сервера.
Многие из новых функций и оптимизаций призваны сделать LwM2M более эффективным, а добавление транспортных протоколов MQTT и HTTP и функциональности шлюза позволит ему работать с гораздо более широким спектром устройств IoT и M2M.
Но тогда возникает вопрос: если LwM2M не поддерживал HTTP и MQTT, какие транспортные протоколы он использовал раньше? Ответ кроется в спецификациях транспортных протоколов:
LwM2M версии 1.0 поддерживает несколько транспортных протоколов, а именно CoAP через UDP и через SMS. Транспортные протоколы UDP и SMS могут использоваться с DTLS или без него. Эта спецификация, LwM2M версии 1.1, добавляет поддержку CoAP через TCP/TLS и CoAP по Non-IP, а именно 3GPP CIoT и LoRaWAN. CoAP через TCP / TLS, как определено в [CoAP_TCP], предлагает лучший обход брандмауэра, как описано в Разделе 1 [CoAP_TCP].
Это объясняет, почему мы чаще всего видим, как это реализовано в IoT модулях. Несмотря на поддержку LoRaWAN в версии 1.1, мы еще не встречали модули LoRaWAN с поддержкой LwM2M. CoAP через TCP/TLS в основном предназначен для корпоративных сетей.
Что касается программного обеспечения, вы найдете LwM2M в проекте Eclipse Leshan, в котором была создана реализация сервера LwM2M на основе Java, и несколько клиентов LwM2M с открытым исходным кодом, включая Wakaama, Mbed Client и реализацию клиента Zephyr LwM2M. Мы не уверены, что они были обновлены для поддержки LwM2M v1.2.
Выражаем свою благодарность источнику из которого взята и переведена статья, сайту cnx-software.com.
Оригинал статьи вы можете прочитать здесь.