Mô hình dữ liệu (DM) của một Nút không liên quan nếu chúng ta không thể thực hiện các thao tác trên đó. Mô hình tương tác (IM) xác định mối quan hệ DM của một Nút với DM của các Nút khác: một ngôn ngữ chung để giao tiếp giữa các DM.
Các nút tương tác với nhau bằng cách:
- Đọc và đăng ký các thuộc tính và sự kiện
- Ghi vào thuộc tính
- Gọi lệnh
Bất cứ khi nào một Nút thiết lập một chuỗi giao tiếp được mã hoá với một Nút khác, chúng sẽ tạo thành mối quan hệ Tương tác. Tương tác có thể bao gồm một hoặc nhiều Giao dịch và Giao dịch bao gồm một hoặc nhiều Hành động có thể được hiểu là thông báo cấp IM giữa các Nút.

Một số Thao tác được hỗ trợ trên Giao dịch, chẳng hạn như Thao tác Yêu cầu đọc yêu cầu một Thuộc tính hoặc Sự kiện từ một Nút khác, hoặc phản hồi của Thuộc tính hoặc Sự kiện đó, Thao tác Dữ liệu báo cáo, mang thông tin từ máy chủ trở lại máy khách.
Trình khởi tạo và mục tiêu
Nút bắt đầu một Giao dịch là Người khởi tạo, trong khi Nút phản hồi là Mục tiêu. Thông thường, Trình khởi tạo là Cụm ứng dụng và Mục tiêu là Cụm máy chủ. Tuy nhiên, vẫn có những trường hợp ngoại lệ đối với mẫu hình này, chẳng hạn như trong phần Tương tác với hoạt động đăng ký được phân tích sâu hơn ở phần dưới của phần này.
Nhóm
Các nút trong Matter có thể thuộc về một Nhóm. Nhóm thiết bị là một cơ chế để giải quyết và gửi thông báo đến nhiều Thiết bị trong cùng một Thao tác cùng một lúc. Tất cả các Nút trong một Nhóm đều có cùng Mã nhóm, một số nguyên 16 bit.
Để thực hiện giao tiếp ở cấp nhóm (Groupcast), Matter tận dụng các thông báo Multicast IPv6 và tất cả thành viên trong nhóm đều có cùng địa chỉ Multicast.
Đường dẫn
Bất cứ khi nào muốn tương tác với một Thuộc tính, Sự kiện hoặc Lệnh, chúng ta phải chỉ định Đường dẫn cho hoạt động tương tác này: vị trí của một Thuộc tính, Sự kiện hoặc Lệnh trong hệ thống phân cấp Mô hình dữ liệu của một Nút. Tuy nhiên, đường dẫn cũng có thể sử dụng Nhóm hoặc Toán tử ký tự đại diện để giải quyết đồng thời một số Nút hoặc Cụm, tổng hợp các Tương tác này và do đó làm giảm số lượng hành động.
Cơ chế này đóng vai trò quan trọng trong việc nâng cao khả năng phản hồi của thông tin liên lạc. Ví dụ: khi người dùng muốn tắt tất cả đèn, trợ lý giọng nói có thể thiết lập một lượt tương tác duy nhất với nhiều đèn trong một Nhóm thay vì một chuỗi các Lượt tương tác riêng lẻ. Nếu Trình khởi tạo tạo các Tương tác riêng lẻ với từng đèn, thì điều này có thể tạo ra độ trễ mà con người có thể nhận thấy trong khả năng phản hồi của Thiết bị. Hiệu ứng này khiến nhiều Thiết bị phản ứng với một lệnh có độ trễ rõ ràng giữa các thiết bị. Hiện tượng này thường được gọi là "hiệu ứng bỏng ngô".
Bạn có thể tạo một Đường dẫn trong Matter bằng một trong các lựa chọn dưới đây:
<path> = <node> <endpoint> <cluster> <attribute | event | command>
<path> = <group ID> <cluster> <attribute | event | command>
Và trong các khối xây dựng Đường dẫn này, endpoint
và cluster
cũng có thể bao gồm Toán tử ký tự đại diện để chọn nhiều thực thể Nút.
Có tính giờ và Không tính giờ
Có hai cách để thực hiện một Giao dịch ghi hoặc gọi: Định thời gian và Không định thời gian. Giao dịch có thời gian thiết lập thời gian chờ tối đa để gửi Hành động ghi/gọi. Mục đích của thời gian chờ này là để ngăn chặn Tấn công chặn đối với Giao dịch. Điều này đặc biệt có giá trị đối với những Thiết bị kiểm soát quyền truy cập vào tài sản, chẳng hạn như thiết bị mở cửa nhà để xe và khoá.
Để hiểu về Giao dịch có thời gian, bạn nên tìm hiểu cách xảy ra Tấn công chặn và lý do Giao dịch có thời gian lại quan trọng.
Tấn công chặn
Tấn công chặn có mẫu sau:
- Alice gửi cho Bob một tin nhắn ban đầu, chẳng hạn như Thao tác yêu cầu viết.
- Eve, một kẻ tấn công trung gian, chặn tin nhắn và ngăn Bob nhận được tin nhắn đó, chẳng hạn như thông qua một số loại hình thức gây nhiễu sóng vô tuyến.
- Không nhận được phản hồi của Bob, Alice gửi tin nhắn thứ hai.
- Eve lại chặn và ngăn Bob nhận được thông báo.
- Eve gửi tin nhắn bị chặn đầu tiên cho Bob, như thể tin nhắn đó đến từ Alice.
- Bob gửi phản hồi cho Alice (và Eve).
- Eve giữ lại thông báo bị chặn thứ hai để phát lại sau. Vì Bob chưa bao giờ nhận được tin nhắn thứ hai bị chặn ban đầu từ Alice, nên Bob sẽ chấp nhận tin nhắn đó. Thông báo này thể hiện một hành vi xâm phạm bảo mật khi thông báo mã hoá một lệnh như "mở khoá".
Để ngăn chặn các loại tấn công này, Thao tác có thời gian sẽ đặt Thời gian chờ tối đa của giao dịch khi bắt đầu Giao dịch. Ngay cả khi Eve quản lý để thực hiện 6 bước đầu tiên của vectơ tấn công, thì cô ấy cũng sẽ không thể phát lại thông báo ở bước 7 do hết thời gian chờ của Giao dịch.
Giao dịch có thời gian sẽ làm tăng độ phức tạp và số lượng Hành động. Do đó, bạn không nên sử dụng chúng cho mọi Giao dịch, mà chỉ nên dùng cho các hoạt động quan trọng trên Thiết bị có quyền kiểm soát các tài sản bảo mật và quyền riêng tư thực hoặc ảo.
Trừu tượng hoá SDK
Các phần Đọc giao dịch, Ghi giao dịch và Gọi giao dịch cung cấp thông tin tổng quan cấp cao về Các thao tác trong mô hình tương tác do SDK thực hiện.
Nhà phát triển tạo ra một sản phẩm sử dụng SDK Matter thường không thực hiện các lệnh gọi để thực thi Trạng thái trực tiếp; Trạng thái được trừu tượng hoá bằng các hàm SDK sẽ đóng gói chúng thành một Tương tác. Tuy nhiên, việc hiểu rõ các Thao tác IM là rất quan trọng để kỹ sư có thể nắm vững các chức năng của Matter, cũng như kiểm soát tốt việc triển khai SDK.