Mengenal MQTT, Protokol Komunikasi Untuk IoT
Di dalam dunia yang serba terkoneksi dengan internet. Menghubungkan perangkat berdaya rendah, seperti mikrokontroler, sensor, agar bisa berkomunikasi melalui jaringan lokal/internet kini menjadi tantangan tersendiri. Perangkat berdaya rendah tersebut biasanya mengandalkan pasokan daya dari baterai, atau panel surya sehingga konektivitas pada jaringan harus ditekan agar mampu menghemat daya.
Kekurangan terpenting yang dihadapi jika perangkat yang berfokus pada daya rendah menggunakan konektivitas web service seperti REST, adalah bahwa teknologi tersebut masih dianggap rakus terhadap resource, misalnya mikrokontroler harus melakukan proses encode/decode data yang berukuran besar dan menyita ruang memori yang jumlahnya sangat terbatas dan seharusnya menjadi concern dalam perancangan rangkaian di sistem embedded
MQTT, Protokol Komunikasi Ringan untuk IoT
MQTT singkatan dari Message Queuing Telemetry Transport adalah protokol komunikasi ringan berbasis publish/subscribe yang diracang khusus untuk komunikasi antar perangkat berdaya rendah. Protokol ini dirancang oleh Andy Standford – Clark (IBM) dan Arlen Nipper di tahun 1999, yang semula dibuat untuk menghubungkan sistem telemetri jalur pipa minyak melalui satelit.
Meskipun awalnya MQTT adalah protokol yang bersifat proprietary, namun pada 2010 dirilis dengan lisensi Royalty free, Dan pada 2014 menjadi standar OASIS
MQTT berjalan di atas Transmission Control Protocol / Internet Protocol (TCP/IP) sebagaimana digambar dalam skema berikut
MQTT lebih ringan dibandingkan dengan protokol HTTP 1.1 sehingga sangat cocok untuk digunakan pada perangkat berdaya rendah yang diharuskan mengirimkan dan menerima data dengan ukuran sekecil mugkin.
Paradigma Publish Subscribe
Paradigma yang digunakan oleh MQTT adalah publish/subscribe yang serupa jika anda belajar mengenai sistem komunikasi utama pada Robot Operating System. Hal ini tentu berlawanan dengan sistem komunikasi TCP/IP yang menggunakan paradigma Request/Response.
Di dalam paradigma publish-subscribe, client yang mengirimkan sebuah pesan (publish) dipisahkan dengan client yang berfungsi menerima pesan (subscribe). Client tidak perlu mengetahui keberadaan client yang lain, client hanya mempublikasikan sebuah pesan dengan tipe data tertentu (yang kemudian disebut topic) hanya kepada client yang berminat menerima publikasi topic tersebut. Paradigma tersebut dapat dianalogikan, sebagai penerbitan surat kabar/majalah, dan orang yang berminat berlangganan surat kabar/majalah tersebut.
Sistem komunikasi dengan paradigma publish – subscribe ini memerlukan semacam agen distribusi majalah, atau di dalam mqtt disebut sebagai broker, atau bisa juga dinamai server. Semua client harus memiliki koneksi dengan broker. Client yang mengirim pesan kepada broker, disebut sebagai publisher. Broker akan memfilter pesan – pesan yang masuk dan mendistribusikannya kepada klien yang tertarik menerima pesan – pesan tersebut. Client yang tertarik menerima pesan tersebut, sebelumnya telah mendaftarkan diri kepada broker, mereka disebut sebagai subscriber.
Misalkan terdapat sebuah rancangan sistem, yang terdiri dari Raspberry Pi, yang terhubung dengan sebuah sensor (sebut saja, detektor radiasi nuklir). Raspberry Pi terhubung dengan broker, dan mengirimkan pesan berupa data data cacahan radiasi nuklir terkini kepada broker. Di ujung yang lain, terdapat smartphone dengan sistem Operasi Android dan iOS yang menjadi subscriber dan terhubung kepada broker.
Board Raspberry Pi dengan detektor GM terhubung dengan broker sebagai sebuah publisher, sedangkan ponsel pintar iOS dan Tablet Android adalah dua subscriber yang terhubung dengan broker. Ketika ponsel pintar iOS memberikan permintaan ke broker untuk mensubscribe semua message yang dimiliki oleh topic sensor1/radiation. Tablet android juga melakukan hal yang sama kepada broker. Keduanya melakukan subscribe ke topic sensor1/radiation
Pada gambar, diilustrasikan Raspberry Pi mempublish sebuah pesan dengan 100Bq sebagai payload dan sensor1/radiation sebagai topic. Broker menerima permintaan publikasi dari publisher, dan mendistribusikan topic sensor1/radiation ke ponsel pintar iOS dan tablet android.
Publisher dan subscriber tidak harus berjalan pada waktu yang sama. Publisher bisa mempublish sebuah message, baru kemudian, subscriber dijalankan belakangan. Operasi ini bersifat asinkronus, maksudnya, publisher tidak perlu menunggu sebuah message diterima oleh subscriber, untuk bisa melakukan pengiriman data berikutnya.
[…] Mengenal MQTT, Protokol Komunikasi Untuk IoT […]