MQTT Protocol ใช้สำหรับรับ-ส่งข้อมูลในเครือข่าย IoT
MQTT
MQTT (Message Queuing Telemetry Transport) เป็นโปรโทคอลที่ถูกออกแบบมาให้มีขนาดเล็กสำหรับการสื่อสารแบบ M2M ( Machine to Machine ) โดยถือกำเนิดจากวิศวกรจาก IBM และ Eurotech ในปี 1999 เพื่อนำไปใช้ในระบบ SCADA (Supervisory Control and Data Acquisition) สำหรับเชื่อมต่อท่อส่งน้ำมันบนเครือข่ายที่ไม่มีความเสถียรอย่างอินเตอร์เน็ตดาวเทียม ก่อนที่จะถูกบริจาคกลายเป็น Open Standard ในปี 2014 โดย OASIS
องค์ประกอบของ MQTT
จะมี Client และ Broker โดย Broker เป็นตัวกลางในการรับส่งข้อมูล เปรียบเหมือนกับ Server ส่วน Client ก็จะมีหน้าที่รับและส่งข้อมูลระหว่างกัน โดย จะอ้างอิง topic ซึ่ง topic ก็คล้ายๆกับการอ้างอิง address ในการส่งข้อมูลของ mqtt จะเรียกว่า Publisher ส่วนกับรับก็จะเรียกว่า Subscriber

การทำงานของ MQTT
จากตัวอย่างภาพ มี client 3 ตัว เชื่อมต่อกันผ่าน broker ตัวกลาง และ Cliant B และ Client C กำลัง Subscribe topic “current_draw” หรืออธิบายง่ายๆว่า Client B กับ Client C กำลังเฝ้าฟังหรือรอรับข้อมูลที่ address “current_draw”

ถัดมาเมื่อ Cliant A ส่งข้อมูล Publish ออกไปที่ Topic “current_draw” จะเห็นว่า Client B และ Client C จะได้รับข้อมูลพร้อมกัน

จะเห็นได้ว่าเป็นการส่งข้อมูลแบบ 1-many อย่างรวดเร็ว เราสามารถจะออกแบบ flow ต่างๆได้อย่างยืดหยุ่น สามารถนำข้อมูลไปประมวลผลต่อ หรือให้อุปกรณ์รับ-ส่งข้อมูลระหว่างกันแล้วสั่งงานกันเองได้ Machine to Machine
เมื่อเราเข้าใจการทำงานแล้วเราจะออกแบบระบบให้เกิดประสิทธิภาพสูงสุดได้ และ MQTT น่าจะถูกยกให้เป็น Protocol หลักในการรับ/ส่งข้อมูล เนื่องจากผมเห็นว่าทั้ง Google GCP และ Amazon AWS ก็ใช้ MQTT ในการให้บริการ Cloud IoT