Nghiên cứu Khoa học

Giao thức MQTT và ứng dụng

  • 18/12/2023
  • Nghiên cứu Khoa học

1. Tổng quan về MQTT

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, ...

undefined

Hình 1: Hình ảnh tổng quan của giao thức MQTT

2. Làm việc với 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.

3. Kiến trúc của MQTT

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.

undefined

Hình 2: Mô hình kiến trúc của MQTT

 

  • Các thành phần lõi trong 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.

4. Ứng dụng của MQTT

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