Apa itu MQTT?
MQTT adalah protokol pesan berbasis standar, atau
seperangkat aturan, yang digunakan untuk komunikasi mesin-ke-mesin. Sensor
pintar, perangkat yang dapat dikenakan, dan perangkat Internet untuk Segala
(IoT) lainnya biasanya harus mengirim dan menerima data melalui jaringan dengan
sumber daya dan bandwidth terbatas. Perangkat IoT ini
menggunakan MQTT untuk transmisi data, karena mudah diterapkan dan dapat
mengomunikasikan data IoT secara efisien. MQTT mendukung pengiriman pesan
antara perangkat ke cloud dan cloud ke
perangkat.
Mengapa protokol MQTT penting?
Protokol MQTT telah menjadi standar untuk transmisi
data IoT karena memberikan manfaat sebagai berikut:
Ringan dan efisien
Implementasi MQTT pada perangkat IoT memerlukan
sumber daya yang minimum, bahkan dapat digunakan pada mikrokontroler kecil.
Misalnya, pesan kontrol MQTT minimal dapat berukuran paling sedikit dua bita
data. Header pesan MQTT juga kecil sehingga Anda dapat
mengoptimalkan bandwidth jaringan.
Dapat diskalakan
Implementasi MQTT membutuhkan jumlah kode minimal
yang mengonsumsi daya yang sangat kecil dalam operasi. Protokol tersebut juga
memiliki fitur bawaan untuk mendukung komunikasi dengan sejumlah besar
perangkat IoT. Oleh karena itu, Anda dapat menerapkan protokol MQTT untuk
terhubung dengan jutaan perangkat ini.
Dapat diandalkan
Banyak perangkat IoT terhubung melalui jaringan
seluler yang tidak dapat diandalkan dengan bandwidth rendah
dan berlatensi tinggi. MQTT memiliki fitur bawaan yang mengurangi waktu yang
dibutuhkan perangkat IoT untuk terhubung kembali dengan cloud. MQTT
juga menentukan tiga tingkat kualitas layanan yang berbeda guna memastikan
keandalan untuk kasus penggunaan IoT, paling banyak sekali (0), setidaknya
sekali (1), dan tepat sekali (2).
Aman
MQTT memudahkan developer untuk mengenkripsi pesan
dan mengautentikasi perangkat serta pengguna menggunakan protokol autentikasi
modern, seperti OAuth, TLS1.3, Sertifikat yang Dikelola Pelanggan, dan masih
banyak lagi.
Didukung dengan baik
Beberapa bahasa seperti Python memiliki dukungan
ekstensif untuk implementasi protokol MQTT. Oleh karena itu, developer dapat
dengan cepat mengimplementasikan Python dengan pengodean minimal di semua tipe
aplikasi.
Bagaimana sejarah di balik protokol MQTT?
Protokol MQTT diciptakan pada tahun 1999 untuk
digunakan dalam industri minyak dan gas. Teknisi membutuhkan protokol
untuk bandwidth minimal dan kehilangan baterai minimal untuk
memantau jaringan pipa minyak melalui satelit. Awalnya, protokol tersebut
dikenal sebagai Message Queuing Telemetry Transport karena produk IBM Seri MQ
yang pertama kali mendukung fase awalnya. Pada tahun 2010, IBM merilis MQTT 3.1
sebagai protokol bebas dan terbuka untuk diterapkan oleh siapa pun, yang
kemudian diserahkan untuk pemeliharaan, pada tahun 2013, ke badan spesifikasi
Organization for the Advancement of Structured Information Standards (OASIS).
Pada tahun 2019, MQTT versi 5 yang ditingkatkan dirilis oleh OASIS. Kini MQTT
bukan lagi akronim tetapi dianggap sebagai nama resmi bagi protokol.
Apa prinsip di balik MQTT?
Protokol MQTT bekerja berdasarkan prinsip model
publikasi/berlangganan. Dalam komunikasi jaringan tradisional, klien dan server
berkomunikasi satu sama lain secara langsung. Klien meminta sumber daya atau
data dari server, kemudian server memproses dan mengirimkan kembali respons.
Namun, MQTT menggunakan pola publikasi/berlangganan untuk memisahkan pengirim
pesan (penerbit) dari penerima pesan (pelanggan). Sebagai gantinya, komponen
ketiga, yang disebut broker pesan, menangani komunikasi antara penerbit dengan
pelanggan. Tugas broker adalah memfilter semua pesan masuk dari penerbit dan
mendistribusikannya dengan benar ke pelanggan. Broker memisahkan penerbit dan
pelanggan seperti di bawah ini:
Pemisahan ruang
Penerbit dan pelanggan tidak mengetahui satu sama
lain lokasi jaringan dan tidak bertukar informasi seperti alamat IP atau
nomor port.
Pemisahan waktu
Penerbit dan pelanggan tidak menjalankan atau memiliki
konektivitas jaringan secara bersamaan.
Pemisahan sinkronisasi
Baik penerbit maupun pelanggan dapat mengirim atau
menerima pesan tanpa saling mengganggu. Misalnya, pelanggan tidak harus
menunggu penerbit mengirim pesan.
Apa itu komponen MQTT?
MQTT menerapkan model publikasi/berlangganan dengan
menentukan klien dan broker seperti di bawah ini.
Klien MQTT
Klien MQTT adalah setiap perangkat dari server ke
mikrokontroler yang menjalankan pustaka MQTT. Jika klien mengirim pesan, ia
bertindak sebagai penerbit, dan jika klien menerima pesan, ia bertindak sebagai
penerima. Pada dasarnya, perangkat apa pun yang berkomunikasi menggunakan MQTT
melalui jaringan dapat disebut perangkat klien MQTT.
Broker MQTT
Broker MQTT adalah sistem backend yang
mengoordinasikan pesan antara klien yang berbeda. Tanggung jawab broker
meliputi menerima dan memfilter pesan, mengidentifikasi klien yang berlangganan
setiap pesan, serta mengirimi pesan kepada klien. Broker juga bertanggung jawab
untuk tugas-tugas lain seperti:
·
Mengotorisasi dan mengautentikasi klien MQTT
·
Mengirim pesan ke sistem lain untuk analisis lebih lanjut
·
Menangani pesan tak terjawab dan sesi klien
Koneksi MQTT
Klien dan broker mulai berkomunikasi dengan
menggunakan koneksi MQTT. Klien memulai koneksi dengan mengirimkan pesan CONNECT ke
broker MQTT. Broker mengonfirmasi bahwa koneksi telah dibuat dengan merespons
menggunakan pesan CONNACK. Baik klien MQTT maupun broker memerlukan
tumpukan TCP/IP untuk berkomunikasi. Klien tidak pernah terhubung satu sama
lain, hanya dengan broker.
Bagaimana cara kerja MQTT?
Gambaran umum mengenai cara kerja MQTT diberikan di
bawah ini.
1. Klien MQTT membuat koneksi
dengan broker MQTT.
2. Setelah terhubung, klien
dapat memublikasikan pesan, berlangganan pesan tertentu, atau melakukan
keduanya.
3.
Saat broker MQTT menerima pesan, broker meneruskan pesan tersebut ke
pelanggan yang tertarik.
Mari kita uraikan detailnya untuk pemahaman lebih
lanjut.
Topik MQTT
Istilah ‘topik’ mengacu pada kata kunci yang
digunakan broker MQTT untuk memfilter pesan bagi klien MQTT. Topik diatur
secara hierarki, mirip dengan direktori file atau folder.
Misalnya, mempertimbangkan sistem rumah pintar yang beroperasi di rumah
bertingkat, dan rumah tersebut memiliki perangkat pintar yang berbeda di setiap
lantainya. Dalam hal ini, broker MQTT dapat mengatur topik sebagai:
rumahkami/lantaidasar/ruangtamu/lampu
rumahkami/lantaipertama/dapur/suhu
Publikasi di MQTT
Klien MQTT memublikasikan pesan yang berisi topik
dan data dalam format bita. Klien menentukan format data seperti data teks,
data biner, XML, atau file JSON. Misalnya, lampu di sistem
rumah pintar dapat memublikasikan pesan menyalauntuk topik ruangtamu/lampu.
Berlangganan di MQTT
Klien MQTT mengirimkan pesan BERLANGGANAN ke
broker MQTT, untuk menerima pesan mengenai topik yang menarik. Pesan ini berisi
pengenal unik dan daftar langganan. Misalnya, aplikasi rumah pintar di ponsel
Anda ingin menampilkan jumlah lampu yang menyala di rumah. Aplikasi ini akan
berlangganan ke topik lampu dan meningkatkan penghitung untuk
semua pesan menyala.
Apa itu MQTT over WSS?
MQTT over WebSockets (WSS) adalah implementasi MQTT
untuk menerima data secara langsung ke peramban web. Protokol MQTT menentukan
klien JavaScript untuk menyediakan dukungan WSS bagi peramban. Dalam hal ini,
protokol berfungsi seperti biasa tetapi memberikan header tambahan
ke pesan MQTT yang juga mendukung protokol WSS. Anda dapat menganggapnya
sebagai payload MQTT yang dibungkus dalam amplop WSS.
Apakah MQTT aman?
Komunikasi MQTT menggunakan protokol SSL untuk
melindungi data sensitif yang dikirimkan oleh perangkat IoT. Anda dapat
menerapkan identitas, autentikasi, dan otorisasi antara klien dan broker
menggunakan sertifikat SSL dan/atau kata sandi. Broker MQTT biasanya
mengautentikasi klien menggunakan kata sandi mereka serta pengidentifikasi
klien unik yang dialokasikan untuk setiap klien. Dalam sebagian besar
implementasi, klien mengautentikasi server dengan sertifikat atau pencarian
DNS. Anda juga dapat menerapkan protokol enkripsi dengan MQTT.
Apakah MQTT adalah RESTful?
MQTT bukanlah RESTful. Representational state
transfer (REST) adalah pendekatan arsitektur untuk komunikasi jaringan yang
menggunakan pola komunikasi minta-respons antara pengirim dan penerima pesan.
Sebaliknya, MQTT menggunakan model komunikasi publikasi/berlangganan di lapisan
aplikasi dan memerlukan koneksi TCP untuk mengirimkan pesan secara push.
Namun, MQTT versi 5 menambahkan metode minta/repons baru untuk bertindak dengan
cara yang mirip dengan REST, di mana penerbit dapat melampirkan topik respons
khusus, yang diproses oleh penerima dan menghasilkan respons yang sesuai.
0 Comments
Jika ada pertanyaan silahkan tuliskan di kolom komentar. Saya akan dengan senang hati berdiskusi dengan anda...
Mohon gunakan kalimat santun, tidak vulgar/menyinggung sara.