Лекція 2.2. Передача даних в архітектурі IIoT: MQTT
1. Мережі в архітектурі IIoT
У архітектурі IIoT (рис.1) усі апаратні та програмні складові розосереджені і потребують мережних комунікацій. Ці мережі умовно можна поділити на:
- мережі датчиків; від датчика/ВМ до IoT Edge пристрою, наприклад:
- бездротові Zig Bee, Blue Tooth,
- бездротові промислові: Wireless Hart, ISA 100…
- дротові: 1-wire, I²C…
- дротові промислові: Hart, AS-i, Profibus PA, I/O Link…
- промислові мережі рівня контролерів; від контролеру/периферійного засобу до Edge пристрою, наприклад: Modbus, Profibus DP, Profinet IO
- локальні мережі; між Edge пристроями та маршрутизаторами, комп’ютерами, гаджетами: Ethernet, Wireless 802.11
- глобальна мережа Internet; між компонентами (вузлами, сервісами, прикладними програмами);
Для цих мереж характерне різне призначення та використовуються різні протоколи.
Мережі рівня датчиків призначені для підключення датчиків безпосередньо до IoT/IIoT Edge пристрою. Тобто їх задача – забезпечити доставку вимірювальних даних для їх первинної обробки та відправки іншим вузлам IoT/IIoT архітектури. Розгляд бездротових та дротових мереж на рівні датчиків виходить за рамки даної дисципліни. Слід відмітити, що використання звичайних (непромислових) мереж з точки зору промислового виконання IIoT є досить обмеженим.
Промислові мережі рівня контролерів характерні для IIoT архітектури і призначені для підключення розумних пристроїв типу контролер, розподілена периферія (засоби розподіленого I/O, приводи, тощо) до Edge пристрою з метою проміжної обробки і маршрутизації даних в архітектурі IIoT. Протоколи промислових мереж розглядаються в інших дисциплінах. Вважається, що читач знайомий з основами роботи Modbus RTU та Modbus TCP/IP.
Під локальними мережами розуміється мережі на базі провідного і безпровідного Ethernet (в широкому сенсі) та протоколів TCP/IP, що використовуються для різних задач об’єднання вузлів на стороні Edge та кінцевих користувачів. Ці мережі не розглядаються в даному курсі, передбачається що читач знайомий з основами роботи Ethernet та TCP/IP на рівні користувача.
В даному курсі розглядаються ті протоколи, що використовуються для зв’язку між компонентами IoT/IIoT від Edge до хмари та між компонентами в Internet за межами Edge.
Мережні технології за межами Edge широко використовуються в Інтернет вже кілька десятків років. Розподілені застосунки в Інтернет передбачають взаємодію як мінімум 2-х програм – на стороні серверу, де відбувається збереження та/або обробка даних, та клієнта, де ці результати необхідні. Велика частина застосунків передбачає наявність взаємопов’язаних серверних компонентів. Враховуючи популярність протоколу HTTP, як правило, саме він використовується в якості транспорту для обміну між ними. Для відкритого (але нерідко обмеженого) доступу до наявних сервісів серверних застосунків, використовуються WEB API. Тому розуміння WEB API має велике значення для проектування архітектури IIoT та розробки компонентів. У наступному розділі розглядається WEB API та RESTFul.
Взаємодія між пристроями Edge (концентратори, маршрутизатори, шлюзи) або інтелектуальними IoT/IIoT пристроями та серверними компонентами слугує для передачі даних з/на польового рівня. Тут також можуть використовуватися HTTP протоколи, однак в багатьох випадках WEB технології можуть не підійти до таких задач. Пристрої IoT/IIoT можуть мати досить суттєві обмеження в обчислювальних ресурсах та полосі пропускання в мережі. Тому для керування великою кількістю таких пристроїв в різноманітних мережних топологіях необхідні більш ефективні, безпечні і масштабовані протоколи. Багато з таких протоколів представляють собою реалізації проміжного ПЗ, орієнтованого на повідомлення (message oriented middleware, MOM). Додатково про MOM можна почитати за посиланням. Основна задача такого ПЗ забезпечити зв’язок між декількома програмними компонентами з використанням черги повідомлень. Одні компоненти розміщують повідомлення в черзі, інші їх зчитують з неї. Деякі реалізації передбачають наявність в структурі в якості провайдера повідомлень окремого посередника, який також називається брокером. У цьому випадку, одні клієнти публікують дані на брокері, а інші отримують ці дані за підпискою (рис.2). До таких протоколів відносяться AMQP, MQTT, STOMP та інші. У даному курсі ми розглянемо протокол MQTT, як один із самих популярних на сьогоднішній день.
На рис.3 показана робота MOM у порівнянні з RESTful. Для МОМ багато клієнтів можуть бути як видавцями (publish) так і абонентами (subscribe) і інформація може як зберігатися так і не зберігатися на брокері. В RESTFul взаємодія відбувається безпосередньо між клієнтом і сервером.