Fakultas Ilmu Komputer
Universitas Brawijaya
1435
Implementasi Mekanisme Carry and Forward Antar Broker MQTT pada Lingkungan dengan Konektivitas Tidak Stabil (Intermittent Connection)
Dyah Ayu Ocky Mawardani1, Adhitya Bhawiyuga2, Dany Primanita Kartikasari3 Program Studi Teknik Informatika, Fakultas Ilmu Komputer, Universitas Brawijaya
Email: 1[email protected], 2[email protected], 3[email protected]
Abstrak
Menghubungkan sistem internal IoT melalui internet dapat menggunakan protokol MQTT. MQTT didesain untuk aplikasi yang membutuhkan koleksi data di constrained network. Namun, arsitekturnya tidak mendukung untuk mengatasi mobilitas ketika waktu terputusnya cukup lama dan belum mampu mengatasi permasalahan pengiriman data pada kondisi jaringan konektivitas intermittent. Sebagai upaya untuk mengatasi permasalahan tersebut, maka pada penelitian ini diimplementasikan mekanisme carry and forward antar broker MQTT. Pengujian yang dilakukan mencakup fungsional, success rate, dan delay antar node. Pada pengujian fungsional, kebutuhan fungsional yang dirancang dapat dipenuhi oleh server dan client. Pada pengujian success rate, hasil menunjukkan tingkat keberhasilan pengiriman data 100%. Average delay antar node dari publisher 1 ke broker lokal 32.63 detik, broker lokal ke broker agen 33.01 detik, dan broker agen ke subscriber 1, 2, dan 3 adalah 603181.91 detik, 603201.15 detik, dan 603193.48 detik. Kemudian, dari publisher 2 ke broker lokal 78.31 detik, broker lokal ke broker agen 30.90 detik dan broker agen ke subscriber 1, 2, dan 3 adalah 2118.80 detik, 2110.62 detik, dan 2112.32 detik. Terakhir, dari publisher 3 ke broker lokal 78.55 detik, broker lokal ke broker agen 30.90 detik dan broker agen ke subscriber 1, 2, dan 3 adalah 605302.96 detik, 605313.72 detik, dan 605322.29 detik.
Kata kunci: IoT, MQTT, publish/subscribe, carry and forward, broker agen, jaringan intermittent Abstract
Connecting internal system of IoT through internet can be done using MQTT protocol. MQTT was designed for application that required data collection accross constrained networks. However, its architecture doesn’t support to handle mobility if the disconnected period takes longer time. It also has not been able to handle the problem of data delivery in intermittent connectivity environment. As a solution to handle such problem, this research focused on implementation carry and forward mechanism between MQTT brokers. The tests that were carried out include functionality, success rate, and delay between nodes. In functionality test, the functional requirements that have been designed, can be met by server and client. In success rate test, the results show the success rate of data delivery is 100%. The average delay between nodes from publisher 1 to local broker 32.63 seconds, local broker to broker agent 33.01 seconds and broker agent to subscribers 1, 2, and 3 respectively, 603181.91 seconds, 603201.15 seconds, and 603193.48 seconds. Then, from publisher 2 to local broker 78.31 seconds, local broker to broker agent 30.90 seconds and broker agent to subscriber 1, 2, and 3 respectively, 2118.80 seconds, 2110.62 seconds, and 2112.32 seconds. Last, from publisher 3 to local broker 78.55 seconds, local broker to agent broker 30.90 seconds and agent broker to subscribers 1, 2 and 3, respectively, 605302.96 seconds, 605313.72 seconds, and 605322.29 seconds.
Keywords: IoT, MQTT, publish/subscribe, carry and forward, broker agent, intermittent connection
1. PENDAHULUAN
Internet of Things (IoT) merupakan teknologi yang mampu menghubungkan semua benda-benda baik itu benda hidup
maupun benda mati dengan menggunakan
media internet. IoT mempunyai tujuan
sesuai dengan slogannya yaitu “anywhere,
anytime, anything”dalam mengolah
pengetahuan yang didapat berdasarkan data-
data dari benda yang dihubungkan ke internet (Gubbi, 2013).
Dalam infrastruktur Internet of Things, terdapat internal master node dan remote
server yang mana keduanya harus salingtersinkronisasi. Untuk menghubungkan sistem internal IoT melalui internet dibutuhkan arsitektur client-server sehingga sistem lokal dan sistem remote dapat saling terhubung. Protokol terbaik yang dapat digunakan untuk menghubungkan sistem tersebut di antaranya ZigBee, MQTT, HTTP, dan lainnya (Wukkadada et al., 2018).
Di antara protokol-protokol untuk aplikasi IoT, MQTT mendapatkan perhatian yang cukup pesat beberapa tahun terakhir.
Didukung oleh grafik Google Trends Chart, ketertarikan terhadap MQTT mulai meningkat cukup pesat di tahun 2013/2014.
Hal ini tidak lain dikarenakan kunci fitur yang dimiliki oleh MQTT yaitu model komunikasi publish subscribe (Yuan, 2020).
Selain itu, MQTT yang bersifat ringan menjadikannya sangat cocok untuk digunakan oleh perangkat dengan sumber daya yang terbatas dan membantu untuk menghemat penggunaan daya (battery).
Message Query Telemetry Transport MQTT (MQTT) merupakan protokol pengiriman pesan yang ringan pada layer aplikasi menggunakan konsep komunikasi publish/subscribe dan bersifat event-driven. Pada komunikasi MQTT, terdapat publisher dan subscriber yang dikategorikan sebagai client (MQTT Client) dan broker sebagai server (MQTT Broker). Broker merupakan aktor yang bertanggungjawab dalam pendistribusian pesan, sedangkan publisher bertindak sebagai pemberi (publish) informasi dan subscriber bertindak sebagai aktor yang membutuhkan pesan dan berlangganan (subscribe) ke suatu topik. Model komunikasi publish/subscribe memungkinkan pertukaran data pada jaringan Internet of Things (IoT) tanpa perlu membebani dengan banyaknya queries (Schmitt et al., 2018).
MQTT memang didesain untuk aplikasi yang membutuhkan koleksi data seperti data sensor di kondisi jaringan yang terbatas (Naik, 2017). Akan tetapi, arsitekturnya tidak mendukung untuk mengatasi mobilitas ketika waktu terputusnya cukup lama
(Luzuriaga, et al., 2016)
.Penelitian yang dilakukan oleh Alamsyah et al. (2019) mengangkat permasalahan pengiriman data dari lapangan ke pusat data dengan konektivitas jaringan intermittent. Peneliti mengembangkan aplikasi android yang
mengimplementasi komunikasi
publish/subscribe sebagai perantara pengiriman data sensor di lapangan menuju pusat data dengan menggunakan protokol MQTT. Dari hasil penelitian tersebut disajikan bahwa untuk mengambil dan menyimpan data sensor di lapangan menggunakan mobile subscriber.
Kemudian untuk mengirimkan data tersebut ke pusat data menggunakan mobile publisher.
Pada penelitian Laksana et al. (2018) mengangkat permasalahan bahwasanya pada protokol IoT, seperti MQTT, CoAP, AMQP, dan HTTP belum ada yang dapat mengatasi permasalahan pengiriman data pada kondisi jaringan intermittent karena protokol tersebut harus membangun end-to-end path sebelum mengirim data. Kemudian, peneliti merancang mekanisme komunikasi store-carry-forward menggunakan Delay Tolerant Network (DTN) untuk memungkinkan data tetap dapat dikirim walau end-to-end path atau jalur koneksi ke tujuan tidak selalu ada.
Berdasarkan penjelasan dan permasalahan di atas, penelitian ini berfokus implementasi mekanisme carry and forward pada komunikasi IoT dengan protokol MQTT di lingkungan konektivitas jaringan intermittent. Dengan mekanisme ini, maka broker tidak perlu menghubungi pusat data (cloud) terlebih dahulu, melainkan broker langsung meneruskan pesan ke subscriber ketika subscriber telah melakukan subscribe ke broker agen tersebut. Implementasi mekanisme carry and forward ini sebagai alternatif dalam komunikasi menggunakan broker MQTT di lingkungan dengan konektivitas tidak stabil (intermittent).
Mekanisme carry and forward melibatkan di antaranya publisher, broker lokal, broker agen sebagai perantara, dan subscriber.
2. KAJIAN KEPUSTAKAAN
Penelitian ini merujuk pada penelitian sebelumnya yang berkaitan dengan komunikasi antar broker MQTT dan mekanisme carry and forward pada komunikasi IoT di lingkungan dengan kondisi jaringan yang tidak stabil (intermittent). Penelitian yang menjadi rujukan di antaranya penelitian dengan judul
“Implementasi Perangkat Mobile Publisher Subscriber Sebagai Perantara Pengiriman Data Sensor Dari Lapangan Ke Pusat Data” oleh Alamsyah, et al. (2019). Peneliti
menyajikan bahwa untuk mengatasi permasalahan pengiriman data sensor dari lapangan ke pusat data pada kondisi jaringan yang tidak stabil dikembangkan aplikasi android dengan model komunikasi publish/subscribe sebagai perantara menggunakan protokol MQTT. Aplikasi yang dikembangkan dapat
mengambil lalu menyimpan data sensor yang ada di lapangan dengan menggunakan subscribe.Kemudian untuk mengirimkan data tersebut ke pusat data menggunakan publish ketika aplikasi telah terhubung dengan jaringan cellular ataupun WiFi.
Penelitian selanjutnya “Dynamic Bridge Generation for IoT Data Exchange via MQTT Protocol” oleh Schmitt, et al. (2018), mengambil pendekatan untuk mengetahui permasalahan dari interkoneksi embedded system dalam jaringan.
Penelitian tersebut berfokus pada hubungan server dan interaksi dinamisnya. Kemudian peneliti mengajukan model interaksi baru antara IoT groups untuk protokol MQTT, yakni memodel secara dinamis dan membuat link antar MQTT broker berbasis multi-agent system (dynamic bridge).
Penelitian selanjutnya “Rancang Bangun Perangkat Mobile Berbasis Delay Tolerant Network Sebagai Perantara Pengiriman Data Sensor Dari Lapangan Ke Pusat Data” oleh Laksana, et al. (2018) menyajikan bahwa keterbatasan node sensor dari segi pemroses atau memori menjadikan node sensor hanya bertugas untuk proses pembacaan data sensor dan mengirimkannya ke pusat data untuk diolah.
Untuk itu diperlukan perantara dengan protokol tertentu untuk mengirimkan data dari lapangan ke pusat data, namun protokol yang ada belum mampu mengatasi permasalahan pengiriman data pada kondisi jaringan dengan konektivitas yang tidak stabil (intermittent). Peneliti mengatasi permasalahan tersebut dengan menggunakan konsep store-carry-forward dengan implementasi DTN menggunakan aplikasi mobile berbasis Android.
3. PERANCANGAN SISTEM
Perancangan sistem mencakup gambaran umum sistem yang akan dibuat beserta perancangan pengujian yang akan dilakukan.
Perancangan pada penelitian ini mencakup
perancangan komunikasi antara publisher, broker agen, broker lokal, dan subscriber.
.
Gambar 1. Perancangan Sistem
Gambar 1 menggambarkan arsitektur global dari sistem yang akan dibangun. Terdapat 3 publisher dan 3 subscriber dengan masing- masing 1 broker lokal dan broker agen. Publisher akan mengirimkan data menuju broker lokal.
Broker lokal akan berkomunikasi langsung dengan broker agen. Setelah broker lokal mengetahui informasi terkait broker agen melalui proses broadcast dan discovery maka broker lokal bisa meneruskan pesan menuju broker agen. Subscriber 1, 2, dan 3 selanjutnya bisa melakukan subscribe ke broker agen.
Kemudian broker agen mengirimkan data kepada subscriber yang telah melakukan subscribe.
Node publisher merupakan node yang berperan dalam melakukan publish data e-health detak jantung (dummy). Pada perancangan publisher akan mencakup rancangan proses publish data.
Node broker lokal merupakan node yang berperan untuk menerima data dari publisher dan meneruskannya ke broker agen. Pada perancangan broker lokal akan dijelaskan alur komunikasi yang terjadi pada broker lokal.
Node broker agen merupakan node yang berperan untuk menerima data dari publisher dan menerima subscribe dari subscriber. Broker agen kemudian akan meneruskan data kepada subscriber. Pada perancangan broker agen akan dijelaskan rancangan broadcast informasi terkait broker agen kepada broker lokal, penerimaan data dari broker lokal, dan forward data ke subscriber.
Node subscriber merupakan end-node yang akan melakukan subscribe ke broker agen dan menerima data dari broker agen. Pada perancangan subscriber akan dijelaskan rancangan proses subscribe dan penerimaan data.
4. IMPLEMENTASI
Pada bagian implementasi akan menjelaskan tahapan-tahapan yang ditempuh berdasarkan perancangan sistem yang telah dibuat. Implementasi yang dilakukan yaitu implementasi node publisher, broker lokal, broker agen, dan subscriber.
Node publisher diimplementasikan pada perangkat laptop (lokal dan virtual mesin) di mana proses publish akan dilakukan dan dihentikan oleh user. Implementasi publisher pada sistem mencakup bagaimana memulai dan menghentikan publish, implementasi komunikasi dengan broker lokal, dan implementasi publish ke broker lokal.
Node broker lokal diimplementasikan pada sebuah perangkat laptop (virtual mesin) di mana broker lokal bertanggungjawab untuk berkomunikasi langsung dan meneruskan data dari publisher menuju broker agen.
Implementasi broker lokal melingkupi implementasi discovery broker agen, implementasi forward data ke broker agen, implementasi komunikasi dengan publisher, dan implementasi penerimaan data dari publisher.
Node broker agen diimplementasikan pada perangkat raspberrypi dan bertanggungjawab untuk menerima subscribe dari subscriber, menerima data dari publisher, dan meneruskannya ke subscriber. Implementasi broker agen mencakup implementasi broadcast service, implementasi penerimaan subscribe, dan implementasi forward data ke subscriber.
Node subscriber diimplementasikan pada perangkat laptop (virtual mesin) dan end-node yang akan menerima data dari broker agen.
Implementasi subscriber meliputi implementasi subscribe, dan implementasi penerimaan data.
5. PENGUJIAN
Pada penelitian ini, pengujian akan dilakukan dalam beberapa kasus uji yang berfokus pada fungsionalitas, pengujian success rate, dan pengujian delay antar node.
5.1. Parameter Pengujian A. Fungsional
Pengujian fungsional dilakukan dengan tujuan untuk mengetahui apakah sistem yang dibangun sudah sesuai dengan kebutuhan fungsional yang telah didefinisikan sebelumnya.
Ketika kebutuhan fungsional sudah terpenuhi maka pengujian dapat dilakukan ke tahapan
selanjutnya. Pada penelitian ini, pengujian fungsional terbagi menjadi pengujian fungsional server dan client.
B. Pengujian Success Rate
Pengujian success rate dilakukan untuk mengetahui tingkat keberhasilan dari percobaan pengiriman data dari satu node ke node yang lain dimulai dari publisher menuju subscriber.
Success rate dihitung dalam persen dengan menggunakan jumlah pesan yang diterima dan jumlah pesan yang telah dikirimkan.
Gambar 2. Perhitungan persentase success rate Pengujian success rate dilakukan dengan mengirimkan sejumlah pesan dengan periode waktu 10 menit, 20 menit, dan 30 menit dengan ketentuan pesan dikirimkan sebanyak 1 pesan/detik. Kemudian, akan dihitung persentase jumlah pesan yang diterima di node subscriber dengan jumlah pesan yang dikirimkan publisher.
C. Pengujian Delay
Pengujian delay dilakukan untuk mengetahui berapa lama waktu yang dibutuhkan pada tiap tahapan proses mulai dari publisher mengirimkan pesan hingga subscriber menerima pesan dari publisher. Delay yang diukur merupakan delay step by step, yakni delay publisher ke broker lokal, delay broker lokal ke broker agen, dan delay broker agen ke subscriber.
Pengujian delay pertama yang akan dilakukan adalah masing-masing publisher 1, publisher 2, dan publisher 3 mengirimkan pesan dari secara bersamaan. Seluruh subscriber (subscriber 1, 2, dan 3). Masing-masing publisher mengirimkan 1 pesan/detik dengan periode waktu 15 menit, 30 menit, 45 menit, dan 60 menit. Setelah itu, dari hasil waktu yang didapatkan dihitung average delay dari masing- masing delay.
Pengujian delay kedua yang akan dilakukan adalah masing-masing publisher 1, publisher 2, dan publisher 3 mengirimkan pesan dari secara bersamaan. Seluruh subscriber (subscriber 1, 2, dan 3) akan diaktifkan dan melakukan subscribe ke broker agen. Kemudian masing-masing publisher mengirimkan 2 pesan/detik dengan
periode waktu 15 menit, 30 menit, 45 menit, dan 60 menit. Setelah itu, dari hasil waktu yang didapatkan dihitung average delay dari masing- masing delay.
5.2 Lingkungan Pengujian
Lingkungan pengujian akan membahas node yang dibutuhkan untuk melaksanakan beberapa skenario pengujian. Pada lingkungan pengujian ini terdapat 8 node terdiri dari 3 publisher berupa virtual mesin dalam perangkat laptop yang berbeda, 3 subscriber berupa virtual mesin dalam perangkat laptop yang berbeda, dan sebuah broker lokal berupa virtual mesin dalam perangkat laptop serta sebuah broker agen pada perangkat Raspberry Pi 2. Interaksi yang akan dilakukan pada sistem mencakup broadcast, discovery, publish, dan subscribe.
Gambar 3. Lingkungan Pengujian Topik yang digunakan untuk pengujian menggunakan sebuah topik berupa e- health/heartrate. Masing-masing node berada pada perangkat dan IP yang berbeda. Untuk IP yang tertera pada gambar merupakan IP Static sedangkan seluruh publisher menggunakan IP DHCP. Terdapat 3 publisher yang melakukan publish ke broker lokal berupa data detak jantung yang dikirim dalam format file json.
Sebelum meneruskan data dari publisher, broker agen dan broker lokal saling melakukan broadcast dan discovery.
5.3. Hasil Pengujian A. Fungsional
Hasil pengujian fungsional terbagi menjadi dua, yaitu server dan client. Fungsional Server mencakup broker lokal dan broker agen. Hasil pengujian fungsional server mencakup broker lokal mampu menerima pesan dari publisher, melakukan discovery broker agen, mem-forward
pesan ke broker agen, dan broker agen mampu mem-forward pesan ke subscriber.
Sementara itu, fungsional client mencakup publisher dapat mem-publish pesan ke broker lokal, subscriber mampu discovery broker agen, subscriber subscribe ke broker agen, dan subscriber menerima pesan dari broker agen.
B. Success Rate
Hasil perhitungan persentase success rate dengan interval 1 pesan/detik dan 2 pesan/detik pada dari publisher menuju node tujuan sesuai yang tertera pada tabel di mana dari perhitungan didapatkan hasil bahwa pesan yang dikirimkan dari publisher sama dengan jumlah pesan yang diterima di node tujuan sehingga diperoleh persentase 100 persen untuk tiap node.
Gambar 4.Grafik Pengujian fungsional interval 1 detik
Hasil pengujian success rate dari publisher menuju broker lokal, broker agen, subscriber 1, dan subscriber 2 ditunjukkan dalam grafik 6.7 dan 6.8. Grafik 6.7 merupakan pengujian dengam interval 1 pesan/detik dan grafik 6.8 merupakan pengujian dengan interval 2 pesan/detik. Axis x pada grafik menunjukkan rentang waktu pengiriman dan axis y menunjukkan jumlah pesan yang diterima untuk masing-masing interval. Pada gambar 6.7 grafik untuk interval 1 detik (1000 ms) dapat dilihat bahwa pesan yang diterima dari publisher baik di sisi broker lokal, broker agen, subscriber 1, subscriber 2, dan subscriber 3 sesuai dengan jumlah pesan yang dikirimkan dari publisher sehingga dapat disimpulkan bahwa seluruh pesan diterima di sisi penerima (broker lokal, broker agen, subscriber 1, subscriber 2, dan subscriber 3) dengan success rate 100 persen.
0 10000
10 menit 20 menit 30 menit
Hasil Uji Interval 1 Detik
Broker lokal Broker agen Subscriber 1 Subscriber 2 Subscriber 3
Gambar 5.Grafik Pengujian fungsional interval 0.5 detik
C. Pengujian Delay Antar Node
Average delay dari pesan yang dikirimkan oleh publisher 1 menuju broker lokal kemudian diteruskan ke broker agen dan diteruskan ke seluruh subscriber yang subscribe ke publisher 1, yakni subscriber 1, 2, dan 3. Hasil average delay yang didapatkan dari publisher 1 ke broker lokal yakni 33.01. Dari broker lokal menuju broker agen memiliki average delay sebesar 32.63. Kemudian dari broker agen menuju subscriber 1, 2, dan 3 memiliki average delay sebesar 603181.91, 603201.15, dan 603193.48 secara simultan.
Average delay dari pesan yang dikirimkan oleh publisher 2 menuju broker lokal kemudian diteruskan ke broker agen dan diteruskan ke seluruh subscriber yang subscribe ke publisher 2, yakni subscriber 1, 2, dan 3. Hasil average delay yang didapatkan dari publisher 2 ke broker lokal yakni 78.31. Dari broker lokal menuju broker agen memiliki average delay sebesar 30.90. Kemudian dari broker agen menuju subscriber 1, 2, dan 3 memiliki average delay sebesar 2118.80, 2110,.62, dan 2112.32 secara simultan.
Average delay dari pesan yang dikirimkan oleh publisher 3 menuju broker lokal kemudian diteruskan ke broker agen dan diteruskan ke seluruh subscriber yang subscribe ke publisher 3, yakni subscriber 1, 2, dan 3. Hasil average delay yang didapatkan dari publisher 3 ke broker lokal yakni 78.55. Dari broker lokal menuju broker agen memiliki average delay sebesar 30.90. Kemudian dari broker agen menuju subscriber 1, 2, dan 3 memiliki average delay sebesar 605302.96, 605313.72, dan 605322.29 secara simultan.
6. KESIMPULAN
Kesimpulan yang dapat ditarik dari penelitian adalah sebagai berikut :
1. Implementasi mekanisme carry and forward pada pengiriman pesan dengan metode publish/subscribe berhasil dilakukan.
Mekanisme carry and forward diimplementasikan menggunakan protokol MQTT dan broker mosca di mana broker mosca memiliki persistence yang berperan untuk tetap dapat meneruskan pesan ke node berikutnya apabila pesan tersebut belum diteruskan.
2.
Mekanisme carry and forward dilakukan oleh broker lokal dan broker agen dengan menggunakan protokol MQTT dan broker mosca. Ketika publisher berhasil mem- publish pesan ke node yang terhubung langsung dengannya, yakni broker lokal, maka broker lokal bertanggungjawab untuk meneruskan pesan (forward) apabila terdapat broker agen yang telah terhubung dengannya. Modifikasi pada sisi broker mosca memungkinkan broker lokal dapat menghubungi broker agen. Persistence pada broker mosca juga memungkinkan pesan akan tetap tersimpan sementara apabila terjadi diskoneksi hingga pesan tersebut dapat diteruskan ke node berikutnya yaitu broker agen. Kemudian broker agen pun juga memiliki persistence dan bertanggungjawab untuk meneruskan pesan (forward) ke subscriber.3. Pada pengujian success rate dengan mengirimkan 1 pesan/detik dan 2 pesan/detik selama 10 menit, 20 menit, dan 30 menit untuk masing-masing percobaan, dapat disimpulkan bahwa kedua percobaan untuk tiap periode waktu memiliki tingkat keberhasilan 100 persen. Hal ini dikarenakan pesan yang dikirimkan publisher jumlahnya sama dengan pesan yang diterima di sisi subscriber pada masing-masing percobaan.
7. DAFTAR PUSTAKA
Wukkadada, B. et al., 2018. Comparison with HTTP and MQTT In Internet of Things (IoT). [online] IEEE Xplore Digital Library. Tersedia di: <https://
ieeexplore.ieee.org/document/8597401>
[Diakses 1 September 2019]
Jutadhamakorn, P., Pillavas, T., & Vasaka, V., 2017. A Scalable and Low-Cost MQTT
0 20000
10 menit 20 menit 30 menit
Hasil Uji Interval 0.5 Detik
Broker lokal Broker agen Subscriber 1 Subscriber 2 Subscriber 3
Broker Clustering System. [online] IEEE Xplore Digital Library. Tersedia di:
<https://ieeexplore.ieee.org/document/82 57870> [Diakses 1 September 2019].
Yokotani, T., Sasaki, Y., 2017. Comparison with HTTP and MQTT on Required Network Resources for IoT. [online] IEEE Xplore Digital Library. Tersedia di:
<https://ieeexplore.ieee.org/document/78 14989> [Diakses 1 September 2019].
Schmitt, A., Carlier, F., Renault, V., 2018.
Dynamic Bridge Generation for IoT Data Exchange Via the MQTT Protocol.
[online] Science Direct. Tersedia di:
<https://www.sciencedirect.com/science/
article/pii/S1877050918303661>
[Diakses 12 Oktober 2019].
MSV, Janakiram, 2016. Messaging Reliability and Persistence with the MQTT Protocol.
[online] The New Stack. Tersedia di:
<https://thenewstack.io/messaging- reliability-persistence-mqtt/> [Diakses 15 Oktober 2019].
Purnama, Evan, 2018. Berkenalan Dengan Teknologi MQTT. [online] Medium.
Tersedia di:
<https://medium.com/pujanggateknologi/
berkenalan-dengan-teknologi-mqtt- 7e63cab9d00d> [Diakses 21 Oktober 2019].
Tim Revisi Panduan Skripsi, 2018. Buku Panduan Skripsi Edisi Ketiga. [online]
FILKOM Apps. Tersedia di:
<https://filkom.ub.ac.id/module/skripsi/d etail/panduan> [Diakses 3 Maret 2020].
Evans, Dave, 2011. The Internet of Things: How the Next Evolution of the Internet Is Changing Everything (White Paper).
[online] Cisco Internet Business Solutions Group (IBSG). Tersedia di:
<https://www.cisco.com/c/dam/en_us/ab out/ac79/docs/innov/IoT_IBSG_0411FIN AL.pdf> [Diakses 29 Juli 2020].
Budianto, S.A., Bhawiyuga, A., Kartikasari, D.P., 2019. Implementasi Perangkat Mobile Publisher Subscriber Sebagai Perantara Pengiriman Data Sensor Dari Lapangan Ke Pusat Data. [online] Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer (J-PTIIK) Universitas Brawijaya. Tersedia di: <http://j- ptiik.ub.ac.id/index.php/j-
ptiik/article/view/4540> [Diakses 29 Juli 2020].
Hayun, D.R.L., Wibisono, W., 2017. Optimasi Pemilihan Child Broker(s) Pada Model Komunikasi Publish/Subscribe Pada Protokol Data Distribution Service di Area Multi-Zone. [online] Jurnal Ilmiah Teknologi Informasi (JUTI) Institut Teknologi Sepuluh Nopember. Tersedia di: <http://repository.its.ac.id/76007/>
Gubbi, J., et al. 2013. Internet of Things (IoT) : A Vision, Architectural Elements, and Future Directions. [online] arxiv.org.
Tersedia di:
<https://arxiv.org/pdf/1207.0203.pdf>
[Diakses 31 Januari 2021]
Sherozenko, Marina., 2017. MQTT vs HTTP:
which one is the best for IoT?. [online]
Medium. Tersedia di:
<https://medium.com/mqtt-buddy/mqtt- vs-http-which-one-is-the-best-for-iot- c868169b3105> [Diakses 1 Januari 2021]
Naik, Nitin., 2017. Choice of Effective Messaging Protocols for IoT Systems:
MQTT, CoAP, AMQP, and HTTP.
[online] Core. Tersedia di:
<https://core.ac.uk/download/pdf/160743 474.pdf> [Diakses 1 Februari 2021]
Luzuriaga, Jorge E., et al., 2016. Improving MQTT Data Delivery in Mobile Scenarios: Results from a Realistic Testbed. [online] Hindawi Publishing Corporation. Tersedia di:
<https://downloads.hindawi.com/journals /misy/2016/4015625.pdf> [Diakses 1 Februari 2021]
Shakya, Bipal., 2017. Let’s Get MQTT Rolling!.
[online] Thinkpalm. Tersedia di:
<https://thinkpalm.com/blogs/lets-get- mqtt-rolling/> [Diakses 1 Februari 2021]