Apa Jenis Pesan yang dapat digunakan untuk Protokol IoT Berorientasi Jaringan?


14

Ini menarik perhatian saya baru-baru ini ketika saya menemukan video luar biasa di Youtube oleh:

Micheal E. Anderson: Membandingkan Teknik Perpesanan untuk IoT, OpenIoTSummit, Linux Foundation .

Slide untuk ceramahnya Tersedia di Sini

Pada Slide 26 dan 41 menit dari video dia sedang mendiskusikan tentang bagaimana (biarkan saya parafrase):

Operator seluler lebih suka konsumen IoT mereka menggunakan jenis pesan HTML , XML atau JSON karena mereka mengkonsumsi lebih banyak data. Lebih banyak data berarti mereka dapat membebani konsumen lebih banyak uang untuk layanan ini.

Saya mengerti bahwa banyak protokol eksklusif. SigFox , Wireless HART atau Z Wave memiliki kecepatan data yang lebih rendah dan mengirim data besar melalui operator tersebut bisa menjadi urusan yang mahal.

Pertanyaan

  • Apakah ada beberapa format pesan ringan lainnya yang digunakan untuk penggunaan dalam Protokol Proprietary yang menjadikannya solusi hemat biaya untuk konsumen IoT saat ini dan di masa depan? (Dipotret dalam gelap: beberapa format yang disebut XML atau HTML ringan atau JSON terletak di suatu tempat?)

  • Mungkin sesuatu seperti CBOR atau mungkin digunakan?


1
Saya menduga bahwa bandwidth data mungkin merupakan biaya pesanan kedua, dan tidak benar-benar dibayar oleh pengembang aplikasi. Jadi, meskipun perlu dikhawatirkan, tetapi mungkin ada lebih banyak pengembangan yang muncul di area ini.
Sean Houlihane

1
Apakah ada situasi tertentu yang Anda minati? Jika Anda mengirim tipe data yang dapat diprediksi (mis. Hanya bilangan bulat atau sesuatu), Anda bisa melupakan bahasa markup sama sekali, tetapi itu memang membatasi jumlah informasi yang dapat Anda ungkapkan. Jika Anda hanya tertarik pada situasi di mana Anda biasanya menggunakan JSON / HTML / XML, itu juga bagus.
Aurora0001

1
@ Aurora0001 Saya sebenarnya tidak memiliki skenario khususnya, tetapi perlu dipikirkan. Saya pikir untuk kompatibilitas ke jaringan berbasis Web (didominasi IP) yang mungkin terhubung ke bahasa markup Jaringan Seluler adalah bentuk format data terbaik. Tetapi karena bidang IoT umumnya lepas landas, mungkin ada baiknya mencoba format yang berbeda.
Shan-Desai

1
Maaf mencampur gambar sedikit: Pesan pada jaringan apa pun memiliki beberapa lapisan, di mana lapisan data hanya satu di atas. Semuanya dalam optimasi, atau setidaknya bisa. 5G misalnya meningkatkan pensinyalan yang digunakan dan dengan demikian lebih banyak data cocok. Bahkan 5G meningkatkan efisiensi spektral sinyal di udara, sehingga efisiensi ditandai dari banyak sisi.
mico

Jawaban:


6

Apakah Anda bertanya tentang protokol atau format pesan ? Kami sering keliru menggunakan istilah protokol ketika kami memaksudkan format data. Saya melakukan ini sendiri, seringkali karena perbedaannya tidak jelas bagi semua orang.

Protokol perpesanan yang digunakan dalam IoT cenderung cukup kompak, setidaknya lebih dari http dan menawarkan fitur signifikan yang penting dalam olahpesan (sesi, kontrol aliran, keandalan, dll). Format pesan adalah data dalam pesan yang dikirim. Saya berasumsi bahwa inilah yang Anda tanyakan.

Format pesan yang paling ringkas adalah format biner linting yang dipertimbangkan dengan cermat. Ini sering digunakan ketika dalam skenario bandwidth rendah ketika Anda ingin mengirim beberapa byte, dan tahu persis seperti apa byte itu. Untuk pesan yang lebih besar kerugiannya signifikan dan, secara umum, harus dihindari di semua biaya.

Saya telah melalui penilaian terperinci tentang berbagai opsi serialisasi data. Saya berharap protobuf, paket pesan menjadi cukup kompak, yang mereka. Namun, masalah kedua saya adalah menemukan perpustakaan yang dikelola dan tersedia di sejumlah platform yang berbeda, termasuk C pada perangkat.

Format yang saya setujui, secara mengejutkan, adalah JSON yang dikompresi gzip. Mudah diimplementasikan dan dipahami, berjalan di mana-mana, dan, dengan data yang saya gunakan, hampir sama, atau lebih kecil, daripada metode lain.

Berhati-hatilah juga bahwa jika Anda memiliki saluran aman seperti TLS, Anda akan tetap mengkonsumsi sepotong data (> 6KB) dalam jabat tangan TLS.

Beberapa tahun yang lalu, saya berharap format seperti buffer protokol mendominasi, tetapi tidak banyak yang benar-benar terjadi. Mungkin karena kemudahan di mana json dapat ditulis dan diuraikan (dan dikompresi). Saya suka tampilan Flatbuffers , tetapi keuntungannya lebih pada kecepatan parsing daripada kompak.

Karena Anda berada pada tahap investigasi, saya sarankan Anda menulis sedikit kode pada masing-masing, menggunakan data yang khas untuk situasi Anda, dan melakukan beberapa perbandingan. Memiliki data yang sulit ketika Anda mulai membantu mengonfirmasi pilihan Anda.


4

Keuntungan besar dari format berbasis markup adalah Anda mempertahankan fleksibilitas dalam memilih data apa yang Anda kirimkan. Ini sangat penting dalam ekosistem yang berkembang di mana Anda mengantisipasi layanan yang berkembang selama beberapa tahun pembangunan.

Meskipun struktur data biner yang dikodekan dengan ketat akan efisien untuk ditransmisikan, Anda harus memutuskan di muka seminimal apa strukturnya. Ketika, kemudian Anda menyadari bahwa bahkan satu bidang membutuhkan ekspansi, Anda terjebak. Bahkan meluncurkan pembaruan ke protokol itu sulit, karena Anda tidak dapat menghapus pengkodean lama sampai setiap titik akhir diperbarui.

Ini menunjukkan bahwa pendekatan optimal adalah dengan menggabungkan paket-paket minimalis dan pengkodean berbasis markup (menggunakan yang terakhir sebagai fallback). Nilai ini tergantung pada muatan bandwidth tertinggi. Jika Anda sudah sering mentransfer potongan berukuran video, mengoptimalkan data kontrol yang jarang terjadi kurang bermanfaat. Jika Anda sering melakukan transfer kecil (suhu mungkin), masuk akal untuk meminimalkan overhead dalam transmisi - tetapi mungkin hanya batching transfer yang baik.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.