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 Acara
  • 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 lebih Transaksi, dan Transaksi terdiri dari satu atau lebih Tindakan yang dapat dipahami sebagai pesan tingkat IM antara Node.

Hierarki Model Interaksi
Gambar 1: Hirarki Model Interaksi

Beberapa Tindakan didukung pada 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 disebut Initiator, sedangkan Node yang merespons disebut Target. Biasanya, Pemrakarsa 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 dalam Matter mungkin termasuk dalam 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 mencapai komunikasi tingkat grup (Groupcast), Matter memanfaatkan pesan IPv6 Multicast, 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 Karakter Pengganti 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 Inisiator menciptakan Interaksi individual dengan setiap lampu, ia 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 bangunan 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 melakukan Transaksi Tulis atau Panggil: Berjangka Waktu dan Tidak Berjangka Waktu. Transaksi Berjangka Waktu menetapkan batas waktu maksimum untuk Tindakan Tulis/Panggil yang akan dikirim. Tujuan dari batas waktu ini adalah untuk mencegah Serangan Intercept pada Transaksi. Hal ini terutama berlaku untuk Perangkat yang mengunci akses ke aset, seperti pembuka dan kunci garasi.

Untuk memahami Transaksi Berjangka Waktu, sebaiknya pahami cara Serangan Intersep dapat terjadi dan alasan pentingnya Transaksi Berjangka Waktu.

Serangan Intersepsi

Serangan Intercept memiliki pola sebagai berikut:

  1. Alice mengirim Bob pesan awal, seperti Tindakan Permintaan Tulis.
  2. Eve, seorang perantara, menyadap pesan tersebut dan mencegah Bob menerimanya, misalnya melalui beberapa jenis pengacauan 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 pesan tersebut berasal dari Alice.
  6. Bob mengirimkan respons ke 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, ia akan menerimanya. Pesan ini menunjukkan pelanggaran keamanan saat pesan mengkodekan perintah seperti "buka kunci".

Untuk mencegah jenis serangan ini, Tindakan yang Ditentukan Waktunya menetapkan waktu tunggu maksimum Transaksi di awal Transaksi. Bahkan jika Eve berhasil menjalankan enam langkah pertama vektor serangan, ia tidak akan dapat memutar ulang pesan pada langkah ke-7 karena batas waktu Transaksi telah habis.

Transaksi 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 privasi dan keamanan fisik atau virtual.

Abstraksi SDK

Bagian Baca Transaksi, Tulis Transaksi, dan Panggil Transaksi menyediakan ikhtisar tingkat tinggi 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 memberi teknisi pemahaman yang baik tentang kemampuan Matter, serta kontrol yang baik atas implementasi SDK.