Nghiên cứu Khoa học
Giao thức MQTT và ứng dụng
MQTT (Message Queuing Telemetry Transport) là một giao thức nhắn tin tiêu chuẩn OASIS cho Internet of Things (IoT). Nó được thiết kế như một phương tiện truyền tải tin nhắn publish/subscribe (xuất bản/đăng ký) cực kỳ nhẹ, lý tưởng để kết nối các thiết bị từ xa với băng thông mạng thấp. MQTT ngày nay được sử dụng trong nhiều ngành công nghiệp, chẳng hạn như ô tô, sản xuất, viễn thông, ...
Hình 1: Hình ảnh tổng quan của giao thức MQTT
MQTT hoạt động theo cơ chế client/server, nơi mà mỗi cảm biến là một khách hàng (client) và kết nối đến một máy chủ, có thể hiểu như một Máy chủ môi giới (broker), thông qua giao thức TCP (Transmission Control Protocol). Broker chịu trách nhiệm điều phối tất cả các thông điệp giữa phía gửi đến đúng phía nhận.
Giao thức MQTT có kiến trúc theo mô hình Publish/Subscribe giúp truyền tải dữ liệugiữa các thiết bị, ứng dụng với nhau. Dữ liệu trong giao thức này là một chuỗi nhịphân (binary) chứ không phải chuỗi văn bản (text string), được định dạng theo gói tincommand hoặc gói tin command acknowledgement.
Hình 2: Mô hình kiến trúc của MQTT
- MQTT Broker: Được cung cấp dưới dạng mã nguồn mở hoặc các phiên bản thươngmại, có thể đi kèm với các dịch vụ điện toán đám mây. Công việc của Broker là lọc cáctin nhắn dựa trên topic, sau đó phân phối các tin nhắn đến các thiết bị/ứng dụng đãđăng ký topic đó. Các bạn có thể tham khảo một số MQTT Broker như: HiveMQ,Mosquitto, MQTTRoute, Jmqtt, …
- MQTT Client: Là các thiết bị/ứng dụng Client kết nối đến Broker để thực hiệntruyền nhận dữ liệu. Hiện nay có rất nhiều mã nguồn mở MQTT Client được viết dướinhiều ngôn ngữ khác nhau như HiveMQ MQTT Client được phát triển dựa trên ngônngữ Java, Eclipse Paho dựa trên C/C++, Python, …
- Topic: Mỗi MQTT Client thực hiện truyền/nhận dữ liệu với nhau thông qua cácTopic được quản lý bởi Broker. Một Client đăng ký nhận dữ liệu được gọi là mộtSubcriber còn một Client gửi dữ liệu đi được gọi là một Publisher. Để nhận dữ liệu từPublisher, đầu tiên Subcriber phải subscribe (đăng ký theo dõi) đến một Topic, sau đóbất cứ Client nào publish dữ liệu đến đúng Topic, thì Broker sẽ lọc và chuyển tiếp góitin đến đúng Subscriber đó. Một Client có thể subscribe hoặc publish đến nhiều Topickhác nhau.
Với những ưu điểm của giao thức MQTT, ngày nay con người đã sử dụng MQTT vàonhiều ngành công nghiệp. Một số ứng dụng của các hãng lớn có thể kể đến như:
- Lĩnh vực Automotive: Ứng dụng BWM Car-Sharing dựa trên HiveMQ. Vào năm2014 BMW Mobility Services bắt đầu sử dụng HiveMQ làm nền tảng tin nhắn chodịch vụ car-sharing của họ. Đến hiện tại nền tảng HiveMQ đã hỗ trợ hơn 80000 clientsđược kết nối đồng thời, tạo ra hơn 90000 tin nhắn trên mỗi phút.
- Lĩnh vực SmartHome:Home energy monitoring andcontrol và Home patientmonitoring của IBM Telemetry.
Các tin khác