lifelong learner — urip iku urup, currently working on accenture.

Mengenal Azure Iot hub sebagai Sentral Komunikasi antara Backend Server dan IoT Device

0
Degananda.com -

azure_iot

Selayang pandang-  Apa itu azure iot hub ?

IoT Hub adalah layanan terkelola (managed) dari microsoft yang berjalan pada komputasi awan dan memiliki fungsi sebagai pusat komunikasi antara device dengan layanan backend secara dua arah(bi directional communication / komunikasi dua arah).

iothub_sebagai_pusat_komunikasi_device_dan_layanan_backend.jpg

Microsoft mengclaim bahwa iot hub dapat mendukung jutaan iot devices yang terhubung (dua arah) dari dan ke iot hub. Microsoft mengklaim bahwa jutaan device tersebut dapat mengirimkan pesan secara bersamaan (simultaneously connected devices) tanpa mempengaruhi performa dari iothub. Sehingga, solusi iot yang dibangun menggunakan iot hub sangat mumpuni dan scalable.

Dua arah berarti dari iot device ke cloud (iothub) maupun sebaliknya yakni dari cloud(iothun) ke iot device

1.Jenis komunikasi pada iothub

Iot hub adalah pusat komunikasi dua arah antara iot devices dengan layanan backend. Terdapat beberapa jenis komunikasi yang tersedia antara iot hub dengan iot devices yang dapat dimanfaatkan untuk membangun solusi iot yakni :

  • pengiriman data telemetri data device ke iothub. Data telemetri ini dapat berupa suhu ruangan, kecepatan kendaraan, kelembapan udara dan lain sebagainnya yang tergantung dengan kemampuan dari iot device yang digunakan.
  • unggah file ke iothub. data telemetri yang dapat dikirimkan ke iot hub memiliki kapasitas yang terbatas yakni 4 kb. jika data tersebut tidak dapat dikirimkan dengan ukuran maksimal 4 kb maka terdapat opsi lain yakni melakukan upload file dari device ke iothub.
  • request-reply-method. yakni komunikasi dari cloud ke devices. Contohnya pada kasus tracking dongle, melalui iothub layanan backend dapat mengirimkan perintah (command) immobilizer untuk menghentikan mobil. Setelah device mendapatkan peritnah dan menjalankannya, device juga dapat mengirimkan respon balik atas perintah tersebut ke iothub (reply command)

ke empat jenis komunikasi antara iot hub dengan iot devices tersebut akan sangat berguna untuk membangun usecase – usecase bisnis yang ada

sebagai pusat komunikasi, iot hub juga dapat melakukan pemantauan (monitoring) terhadap berbagai jenis event yang terjadi seperti event registrasi (device creation), terjadinnya masalah pada devices(devices failures) dan kondisi komunikasi iot hub dengan device (device connection).

2. Mengamankan komunikasi antara iot hub dengan device

Sebagai pusat komunikasi antara devices dengan layanan backend, iot hub juga memiliki tanggung jawab untuk mengamankan jalur komunikasi tersebut. Berikut ini adalah fitur dan layanan yang tersedia pada iot hub untuk mengamankan jalur komunikasi tersebut.

  • Authentikasi dari iot devices ke iot hub terjadi pada masing-masing iot devices yang terdaftar dan berkomunikasi ke io thub
  • Developer memiliki akses penuh terhadap device (dua arah). Fitur ini akan tersedia apabila device SDK di gunakan. Kontrol akses ini terjadi pada level devices. Identifer yang digunakan adalah device id (biasannya imei dari iot device terebut)
  • DPS (device provisioning service) adalah layanan yang dapat dimanfaatkan untuk melakukan pandaftaran (provisioning) device secara otomatis ketika device pertama kali bootup / aktif. DPS juga dapat digunakan untuk melakukan replikasi provisioning ke berbagai iot hub (misalkan di dua negara berbeda).
  • Terdapat tiga jenis metode authentikasi yang tersedia dari iot devices ke iot hub yakni :
    SAS Token (Token based authentication), setiap device akan menggunakan token ini disetiap request nya ke iot hub.
    – sertifikat X.509 pada setiap device, metode authentikasi dengan private key dan public key antara device dengan iot hub
    – sertifikat X.509 CA (Certificate of Authority)

3. Jalur pengiriman data (message routing)

Setiap data telemetri yang masuk ke iot hub sebagai pusat komunikasi dapat di konsumsi oleh berbagai jenis aplikasi secara bersamaan tanpa mengganggu jalur pengiriman lain (dalam hal ini juga dapat disebut sebagai client/consumer). Contohnya data telemetri tentang suhu ruangan dapat di konsumsi oleh aplikasi mobile (UI) dan juga dapat konsumsi langsung di power BI untuk dashboard user.

iothub_message_routing.jpg

Iot hub memiliki kemampuan untuk membentuk jalur pengiriman data telemetri ini dengan melihat beberapa parameter tertentu dari device sehingga lebih dari satu aplikasi (client/consumer) dapat memanfaatan data telemetri secara bersamaan (concurrent consumption).

3. Integrasi dengan berbagai layanan azure lain

Sebagai pusat komunikasi antara device dan layanan backend tentunnya iot hub dapat terintegrasi dengan layanan azure lainnya seperti :

  1. Azure event grid untuk memantau data kritikal (critical event) yang masuk ke iothub dan membuat aksi/trigger tertentu untuk menanganinnya.
  2. Azure logic apps untuk melakukan otomasi terhadap proses bisnis
  3. Azure machine learning untuk mengaktifkan kemampuan machine learning dengan model AI (Artificial Intelligence) pada pipeline ingestion.
  4. Azure stream analytics untuk melakukan analisa/komputasi secara realtime atas data telemetri yang masuk(data streaming) ke iot hub.

Layanan Iot hub menurut microsoft memiliki up time sebesar 99.9%

4. Konfigurasi dan pengelolaan iot devices

Iot hub memiliki beberapa kemampuan dalam proses dan pengelolaan iot devices yakni:

  1. Menyimpan, mensinkronikasi dan membaca/melihat (query)  atas meta data devices dan kondisi terahir (last state) device / device twin.
  2. Menentukan data kondisi terhahir dari devices. Ini sangat bermanfaat apabila solusi IoT sangat bergantung (business critical) dengan last update dari suatu devices contohnya pada fleet management yang sangat perlu mendapatkan posisi terhahir dari mobil.
  3. Saat iot hub mendeteksi adannya perubahan kondisi terahir device (last state) maka data telemetri yang terkirim setelah proses deteksi tersebut dapat dialihkan ke jalur lain (integrasi antara last state device dengan iot hub message routing).

5. SDK untuk menghubungkan iot device ke iothub

Azure memiliki Iot devices SDK yang mensupport berbagai jenis bahasa pemrograman yang dapat dimanfaatkan oleh developer untuk menhubungkan devices ke iothub. Bahasa pemrograman yang disupport adalah :

  1. C
  2. C#
  3. Java
  4. Python
  5. Node JS

Sedangkan untuk protokol yang dapat digunakan oleh device agar dapat terhubung dengan iot hub adalah.

  1. HTTPS
  2. AMQP
  3. AMQP dengan melalui web sockets
  4. MQTT
  5. MQTT dengan melalui web sockets

jika libraries dari devices tidak dapat digunakan pada iot devices (device tidak kompatibel dengan iot devices/limitasi lain) maka dapat menggunakan protokol native yaitu :  MQTT versi 3.1.1, HTTPS versi 1.1 atau AMQP versi 1.0

Jika device tidak mendukung protokol-protokol yang telah disebutkan diatas maka maka menggunakan azure iot edge untuk membangun gerbang(gateway) komunikasi antara iot devices dengan iot hub ataupun juga dapat melakukan kostumisasi terhadap azure IoT protocol gateway untuk proses translasi protokol.

 

(Visited 50 times, 1 visits today)
Please follow and like us:

Leave a Reply