Konsep Model Interaksi

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

Node berinteraksi satu sama lain dengan cara:

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

Setiap kali Node membuat urutan komunikasi terenkripsi dengan Node, node tersebut 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.

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, {i>Report Data Action<i}, yang membawa informasi kembali dari server ke dengan klien besar.

Pemicu dan Target

Node yang memulai Transaksi adalah Initiator, sedangkan Node yang akan 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 tergabung dalam Grup. Sekelompok Perangkat adalah mekanisme untuk menangani dan mengirim pesan ke beberapa Perangkat di Action yang sama secara bersamaan. Semua Node dalam Grup memiliki Grup yang sama ID, bilangan bulat 16-bit.

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

Jalur

Kapan pun kita ingin berinteraksi dengan Atribut, Peristiwa, atau Perintah, kita harus menentukan Path untuk interaksi ini: lokasi Atribut, Peristiwa atau Perintah dalam hierarki Model Data dari sebuah {i>node<i}. Peringatannya adalah bahwa jalur itu mungkin gunakan juga Grup atau Operator Karakter pengganti untuk menangani beberapa Node atau Cluster secara bersamaan, yang menggabungkan Interaksi ini sehingga mengurangi jumlah tindakan.

Mekanisme ini penting untuk meningkatkan responsivitas komunikasi. Sebagai misalnya, saat pengguna ingin mematikan semua lampu, asisten suara dapat membuat satu interaksi dengan beberapa lampu dalam Grup alih-alih satu interaksi individual. Jika Inisiator membuat Karena interaksi dengan setiap cahaya, cahaya ini dapat menghasilkan latensi yang dapat disimak manusia dalam Responsivitas perangkat. Efek ini menyebabkan beberapa Perangkat bereaksi terhadap perintah{i> <i}dengan penundaan yang terlihat di antara keduanya. Hal ini sering disebut sebagai "efek popcorn".

Jalur di Matter dapat disusun menggunakan salah satu opsi di bawah ini:

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

Dan dalam elemen penyusun Jalur ini, endpoint dan cluster juga dapat menyertakan Operator Karakter pengganti untuk memilih lebih dari satu instance Node.

Terjadwal dan Tidak Terjadwal

Ada dua cara untuk melakukan Transaksi Tulis atau Memanggil: Timed dan Tidak dijadwalkan. Transaksi Berwaktu menetapkan waktu tunggu maksimum untuk Tindakan Tulis/Memanggil akan dikirim. Tujuan dari waktu tunggu ini adalah untuk mencegah Serangan Penyadapan pada Transaksi. Cara ini terutama berlaku untuk Perangkat yang akses gerbang ke aset, seperti pembuka garasi dan kunci garasi.

Untuk memahami Transaksi Berjangka waktu, sangat berguna untuk memahami bagaimana Serangan Penyadapan bisa terjadi dan mengapa Transaksi Berjangka waktu penting.

Serangan Intercept

Serangan Penyadapan memiliki pola berikut:

  1. Alice mengirimkan pesan awal kepada Bobi, seperti Tindakan Permintaan Tulis.
  2. Eve, seorang {i>man-in-the-middle<i}, menyadap pesan dan mencegah Bob menerimanya, misalnya melalui beberapa jenis gangguan radio.
  3. Alia, yang tidak menerima balasan dari Bob, mengirim pesan kedua.
  4. Eve mencegat lagi dan mencegah Bobi menerimanya.
  5. Eve mengirim pesan yang pertama dicegat kepada Bobi, seolah-olah pesan tersebut berasal dari Alia.
  6. Bob mengirimkan respons ke Alice (dan Eve).
  7. Eve menyimpan pesan kedua yang disadap untuk replay nanti. Karena Bob tidak pernah menerima pesan asli kedua yang dicegat dari Alice, ia akan menerima anotasi. Pesan ini menunjukkan pelanggaran keamanan saat pesan mengenkode seperti "open lock".

Untuk mencegah jenis serangan ini, Tindakan Berjangka Waktu menetapkan nilai transaksi di awal Transaksi. Bahkan jika Eve berhasil menjalankan enam langkah pertama vektor serangan, komputer tidak akan dapat memutar ulang pesan pada langkah 7 karena waktu tunggu Transaksi habis.

Transaksi Berwaktu meningkatkan kompleksitas dan jumlah Tindakan. Jadi mereka tidak direkomendasikan untuk setiap Transaksi, tetapi hanya operasi penting pada Perangkat yang memiliki kontrol atas aset privasi dan keamanan fisik atau virtual.

Abstraksi SDK

Bagian Membaca Transaksi, Menulis Transaksi, dan Memanggil Transaksi memberikan ringkasan tingkat tinggi tentang Tindakan Model Interaksi yang dilakukan oleh SDK.

Developer membuat produk yang menggunakan Matter SDK biasanya tidak melakukan panggilan untuk menjalankan Tindakan secara langsung; Actions-nya adalah diabstraksi oleh fungsi SDK yang akan mengenkapsulasinya ke dalam Interaksi. Namun, memahami Tindakan IM penting untuk memberikan pengalaman kemahiran tentang kemampuan Matter, serta kontrol terhadap penerapan SDK.