Konsep Model Interaksi

Model Data (DM) Node tidak relevan jika kita tidak dapat melakukan operasi padanya. Model Interaksi (IM), menentukan hubungan DM Node dengan DM Node lain: bahasa umum untuk komunikasi antar-DM.

Node berinteraksi satu sama lain dengan:

  • Membaca dan Berlangganan Atribut dan Peristiwa
  • Menulis ke Atribut
  • Memanggil Perintah

Setiap kali Node membuat urutan komunikasi terenkripsi dengan Node lain, keduanya membentuk hubungan Interaksi. Interaksi dapat terdiri dari satu atau beberapa Transaksi, dan Transaksi terdiri dari satu atau beberapa Tindakan yang dapat dipahami sebagai pesan tingkat IM antar-Node.

Hierarki Model Interaksi
Gambar 1: Hierarki Model Interaksi

Beberapa Tindakan didukung di Transaksi, seperti Tindakan Permintaan Baca yang meminta Atribut atau Peristiwa dari Node lain, atau responsnya, Tindakan Data Laporan, yang membawa informasi kembali dari server ke klien.

Pemulai dan Target

Node yang memulai Transaksi adalah Pemulai, sedangkan Node yang merespons adalah Target. Biasanya, Inisiator adalah Cluster Klien dan Target adalah Cluster Server. Namun, ada pengecualian untuk pola ini, seperti dalam Interaksi Langganan yang dianalisis lebih lanjut di bagian ini.

Grup

Node di Matter dapat menjadi bagian dari Grup. Grup Perangkat adalah mekanisme untuk menangani dan mengirim pesan ke beberapa Perangkat dalam Tindakan yang sama secara bersamaan. Semua Node dalam Grup memiliki ID Grup yang sama, yaitu bilangan bulat 16-bit.

Untuk melakukan komunikasi tingkat grup (Groupcast), Matter memanfaatkan pesan Multicast IPv6, dan semua anggota Grup memiliki alamat Multicast yang sama.

Jalur

Setiap kali ingin berinteraksi dengan Atribut, Peristiwa, atau Perintah, kita harus menentukan Jalur untuk interaksi ini: lokasi Atribut, Peristiwa atau Perintah dalam hierarki Model Data Node. Perhatiannya adalah bahwa jalur juga dapat menggunakan Grup atau Operator Wildcard untuk menangani beberapa Node atau Cluster secara bersamaan, menggabungkan Interaksi ini, dan dengan demikian mengurangi jumlah tindakan.

Mekanisme ini penting untuk meningkatkan responsivitas komunikasi. Misalnya, saat pengguna ingin mematikan semua lampu, asisten suara dapat membuat satu interaksi dengan beberapa lampu dalam Grup, bukan serangkaian Interaksi individual. Jika Pemrakarsa membuat Interaksi individual dengan setiap lampu, hal ini dapat menghasilkan latensi yang dapat dirasakan manusia dalam responsivitas Perangkat. Efek ini menyebabkan beberapa Perangkat bereaksi terhadap perintah dengan penundaan yang terlihat di antara keduanya. Hal ini sering disebut sebagai "efek popcorn".

Jalur di Matter dapat dirakit menggunakan salah satu opsi di bawah:

<path> = <node> <endpoint> <cluster> <attribute | event | command>
<path> = <group ID>        <cluster> <attribute | event | command>

Dalam balok penyusun Jalur ini, endpoint dan cluster juga dapat menyertakan Operator Wildcard untuk memilih lebih dari satu instance Node.

Dengan Waktu dan Tanpa Waktu

Ada dua cara untuk melakukan Transaksi Tulis atau Panggil: Berwaktu dan Tidak Berwaktu. Transaksi Berjangka Waktu menetapkan waktu tunggu maksimum untuk Tindakan Tulis/Panggil yang akan dikirim. Tujuan waktu tunggu ini adalah untuk mencegah Serangan Intersepsi pada Transaksi. Hal ini terutama berlaku untuk Perangkat yang membatasi akses ke aset, seperti pembuka pintu garasi dan kunci.

Untuk memahami Transaksi Berwaktu, sebaiknya pahami cara Terjadinya Serangan Intersep dan alasan pentingnya Transaksi Berwaktu.

Serangan Intersep

Serangan Intercept memiliki pola berikut:

  1. Alice mengirim pesan awal kepada Bob, seperti Tindakan Permintaan Penulisan.
  2. Eve, seorang penyerang yang melakukan serangan man-in-the-middle, memintas pesan dan mencegah Bob menerimanya, misalnya melalui beberapa jenis gangguan radio.
  3. Alia, yang tidak menerima respons dari Budi, mengirim pesan kedua.
  4. Eve mencegat lagi dan mencegah Bob menerimanya.
  5. Eve mengirim pesan pertama yang dicegat ke Bob, seolah-olah berasal dari Alice.
  6. Bob mengirimkan respons kepada Alice (dan Eve).
  7. Eve menyimpan pesan kedua yang dicegat untuk diputar ulang nanti. Karena Bob tidak pernah menerima pesan kedua yang dicegat dari Alice, Bob akan menerimanya. Pesan ini mewakili pelanggaran keamanan saat pesan mengenkode perintah seperti "buka kunci".

Untuk mencegah jenis serangan ini, Tindakan yang Ditentukan Waktunya menetapkan waktu tunggu maksimum Transaksi di awal Transaksi. Meskipun Eve berhasil menjalankan enam langkah pertama vektor serangan, dia tidak akan dapat memutar ulang pesan pada langkah 7 karena waktu tunggu yang telah berakhir pada Transaksi.

Transaksi yang Berjangka Waktu meningkatkan kompleksitas dan jumlah Tindakan. Oleh karena itu, fitur ini tidak direkomendasikan untuk setiap Transaksi, tetapi hanya untuk operasi penting pada Perangkat yang memiliki kontrol atas aset keamanan dan privasi fisik atau virtual.

Abstraksi SDK

Bagian Transaksi Baca, Transaksi Tulis, dan Transaksi Panggil memberikan ringkasan umum tentang Tindakan Model Interaksi yang dilakukan oleh SDK.

Developer yang membuat produk yang menggunakan SDK Matter biasanya tidak melakukan panggilan untuk mengeksekusi Tindakan secara langsung; Tindakan diabstraksi oleh fungsi SDK yang akan mengenkapsulasinya ke dalam Interaksi. Namun, memahami Tindakan IM penting untuk memberikan keahlian yang baik kepada engineer tentang kemampuan Matter, serta kontrol yang baik atas penerapan SDK.