MQTT là giao thức gọn nhẹ được thiết kế chủ yếu để kết nối các thiết bị bị hạn chế nguồn trên các mạng băng thông thấp. Mặc dù nó đã tồn tại trong hơn một thập kỷ nhưng chỉ khi có sự ra đời của M2M (máy để truyền thông máy) và Internet of Things (IoT) mới làm cho nó trở thành một giao thức phổ biến.
Những nhà nghiên cứu muốn xây dựng các ý tưởng IoT cần tìm hiểu về giao thức này bởi lẽ nó sẽ nhanh chóng trở thành giao thức được ưu tiên nhất để kết nối các thiết bị với đám mây. Các nền tảng đám mây của các doanh nghiệp như Amazon Web Services, Microsoft Azure và IBM Watson đều giới thiệu IoT PaaS của họ thông qua MQTT.
Hôm nay BKAII sẽ cùng các bạn tìm hiểu về khái niệm cũng như một số thành phần của MQTT cần thiết để xây dựng các ứng dụng M2M hay IoT nhé.
Nguồn gốc của MQTT
MQTT (Message Queuing Telemetry Transport) là một giao thức truyền thông điệp (message) theo mô hình publish/subscribe (xuất bản – theo dõi), sử dụng băng thông thấp, độ tin cậy cao và có khả năng hoạt động trong điều kiện đường truyền không ổn định.
MQTT được tạo ra từ năm 1999 bởi hai kỹ sư - Andy Stanford-Clark (IBM) và Arlen Nipper (Eurotech) khi họ phải phát minh ra một giao thức mới để kết nối các đường ống dẫn dầu trên các mạng vệ tinh không đáng tin cậy.
Năm 2011, IBM và Eurotech đã tặng MQTT cho dự án Eclipse được đề xuất có tên là Paho. Trong năm 2013, nó đã được đệ trình lên OASIS để chuẩn hóa. Phiên bản mới nhất của đặc tả giao thức 3.11 đã trở thành một tiêu chuẩn OASIS.
Các thuật ngữ
Các nhà khoa học đã quen thuộc với phần mềm MOM hiện có. Sự khác biệt cơ bản giữa việc thực hiện MQTT và MOM là việc các thông điệp được lưu trữ và phân phối. Không giống như MOM, MQTT không có nghĩa là xử lý các tin nhắn bền và liên tục, nó không thể được xem xét để triển khai mẫu lưu trữ và chuyển tiếp.
MQTT sử dụng mẫu pub/sub để kết nối các bên với nhau. MQTT làm điều đó bằng cách tách người gửi (nhà xuất bản) với người nhận (người đăng ký). Nhà xuất bản gửi tin nhắn đến một chủ đề trung tâm, cái mà có nhiều người đăng ký đang chờ nhận tin nhắn. Nhà xuất bản và người đăng ký tự chủ, có nghĩa là họ không cần biết sự hiện diện của nhau.
Một số thuật ngữ:
Client: Bất kỳ nhà xuất bản hoặc người đăng ký nào kết nối với nhà môi giới tập trung qua mạng đều được coi là khách hàng. Điều quan trọng cần lưu ý là có các máy chủ và máy khách trong MQTT. Cả nhà xuất bản và người đăng ký đều được gọi là khách hàng vì họ kết nối với dịch vụ tập trung, khách hàng có thể liên tục hoặc tạm thời. Khách hàng liên tục duy trì một phiên với nhà môi giới trong khi khách hàng tạm thời không được nhà môi giới theo dõi. Khách hàng thường kết nối với nhà môi giới thông qua thư viện và SDK. Có hơn một tá thư viện có sẵn cho C, C ++, Go, Java, C #, PHP, Python, Node.js và Arduino.
Broker: Người môi giới là phần mềm nhận tất cả các tin nhắn từ các khách hàng xuất bản và gửi chúng đến các khách hàng đăng ký. Nó giữ kết nối với các khách hàng liên tục. Tùy thuộc vào người triển khai để quyết định cách tạo lớp môi giới có thể mở rộng. Một số triển khai thương mại của các nhà môi giới MQTT bao gồm HiveMQ, Xively, AWS IoT và Loop.
Topic: Một chủ đề trong MQTT là điểm cuối mà khách hàng kết nối. Nó hoạt động như nơi phân phối trung tâm để xuất bản và đăng ký tin nhắn. Trong MQTT, một chủ đề là một vị trí nổi tiếng cho nhà xuất bản và người đăng ký. Nó được tạo ra khi chúng ta thiết lập kết nối với nhà môi giới. Chủ đề là các chuỗi phân cấp đơn giản, được mã hóa bằng UTF-8, được phân cách bằng dấu gạch chéo. Người đăng ký có thể chọn đăng ký một chủ đề cụ thể hoặc tất cả các chủ đề phụ thông qua các ký tự đại diện.
Connection: MQTT có thể được sử dụng bởi các máy khách dựa trên TCP/IP. Cổng tiêu chuẩn được giới thiệu bởi các công ty môi giới năm 1883, không phải là một cổng an toàn. Những nhà môi giới hỗ trợ TLS / SSL thường sử dụng cổng 8883. Để liên lạc an toàn, khách hàng và nhà môi giới dựa vào chứng chỉ kỹ thuật số. AWS IoT là một trong những triển khai an toàn của MQTT, yêu cầu khách hàng sử dụng chứng chỉ X.509.
Hi vọng với một số thông tin cơ bản trên sẽ giúp các bạn hiểu thêm về giao thức MQTT, cần thêm thông tin gì các bạn cứ liên hệ BKAII nhé!
Xem thêm bài viết:
- 5 xu hướng IoT cơ bản sẽ thống trị năm 2018 các kĩ sư điện cần biết
- 5 sai lầm cần tránh khi xây dựng ý tưởng IoT mà kĩ sư điện không thể không biết
- Những điều cần biết về giao thức CoAP, sự khác biệt giữa CoAP và MQTT
- Khái niệm cơ bản về giao thức BACnet
- Khái niệm cơ bản về giao thức truyền thông PROFIBUS
- Khái niệm cơ bản về giao thức Modbus RTU
"BKAII - Thiết bị truyền thông TỐT nhất với giá CẠNH TRANH nhất?"