Model Data (DM) Node tidak relevan jika kita tidak dapat melakukan operasi pada Node tersebut. 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 antara Node.
Beberapa Action didukung di Transaksi, seperti Action Permintaan Baca yang meminta Atribut atau Peristiwa dari Node lain, atau responsnya, Action Data Laporan, yang membawa informasi kembali dari server ke klien.
Pemicu dan Target
Node yang memulai Transaksi adalah Inisiator, sedangkan Node yang merespons adalah Target. Biasanya, Penginisiasi 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 tergabung 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 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. Namun, jalur juga dapat menggunakan Grup atau Operator Karakter Pengganti untuk menangani beberapa Node atau Cluster secara bersamaan, menggabungkan Interaksi ini sehingga mengurangi jumlah tindakan.
Mekanisme ini penting untuk meningkatkan responsivitas komunikasi. Misalnya, saat pengguna ingin mematikan semua lampu, asisten suara dapat melakukan satu interaksi dengan beberapa lampu dalam Grup, bukan urutan Interaksi individual. Jika Pemanggil membuat setiap Interaksi 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 perintah tersebut. 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>
Selain itu, dalam elemen penyusun Jalur ini, endpoint
dan cluster
juga dapat menyertakan
Operator Wildcard untuk memilih lebih dari satu instance Node.
Dengan Batas Waktu dan Tanpa Batas Waktu
Ada dua cara untuk melakukan Transaksi Tulis atau Panggil: Berjangka Waktu dan Tanpa Batas Waktu. 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 mengontrol akses ke aset, seperti pembuka dan kunci garasi.
Untuk memahami Transaksi Berjangka Waktu, sebaiknya pahami bagaimana Serangan Intersepsi dapat terjadi dan mengapa Transaksi Berjangka Waktu penting.
Serangan Intersepsi
Serangan Intersepsi memiliki pola berikut:
- Alice mengirim pesan awal kepada Bob, seperti Tindakan Permintaan Tulis.
- Eve, yang merupakan man-in-the-middle, memintas pesan dan mencegah Bob menerimanya, misalnya melalui beberapa jenis gangguan radio.
- Alina, yang tidak menerima respons dari Bob, mengirim pesan kedua.
- Eve kembali mencegat dan mencegah Bob menerimanya.
- Eve mengirim pesan pertama yang dicegat ke Bob, seolah-olah pesan tersebut berasal dari Alina.
- Bob mengirimkan respons ke Alice (dan Eve).
- Eve menyimpan pesan kedua yang dicegat untuk diputar ulang nanti. Karena Bob tidak pernah menerima pesan asli kedua yang dicegat dari Alice, Bob akan menerimanya. Pesan ini menunjukkan pelanggaran keamanan saat pesan mengenkode perintah seperti "buka kunci".
Untuk mencegah jenis serangan ini, Timed Actions menetapkan waktu tunggu Transaksi maksimum di awal Transaksi. Meskipun Eve berhasil menjalankan enam langkah pertama dari vektor serangan, ia tidak akan dapat memutar ulang pesan pada langkah 7 karena waktu tunggu yang habis masa berlakunya pada Transaksi.
Transaksi Berjangka Waktu meningkatkan kompleksitas dan jumlah Tindakan. Oleh karena itu, API ini tidak direkomendasikan untuk setiap Transaksi, tetapi hanya untuk operasi penting di Perangkat yang memiliki kontrol atas aset keamanan dan privasi fisik atau virtual.
Abstraksi SDK
Bagian Read Transactions, Write Transactions, dan Invoke Transactions memberikan ringkasan umum tentang Action Model Interaksi yang dilakukan oleh SDK.
Developer yang membuat produk yang menggunakan Matter SDK biasanya tidak melakukan panggilan untuk mengeksekusi Action secara langsung; Action diabstrak oleh fungsi SDK yang akan mengenkapsulasinya ke dalam Interaksi. Namun, memahami Action IM penting untuk memberikan keahlian yang baik tentang kemampuan Matter kepada engineer, serta kontrol yang baik atas penerapan SDK.