لا يكون "نموذج البيانات" (DM) للعقدة ذا صلة إذا لم نتمكّن من إجراء عمليات عليها. يحدّد نموذج التفاعل (IM) علاقة "نموذج البيانات" (DM) للعقدة مع "نموذج البيانات" (DM) للعُقد الأخرى: وهي لغة مشتركة للتواصل بين نماذج البيانات.
تتفاعل العُقد مع بعضها بعضًا من خلال ما يلي:
- قراءة السمات والأحداث والاشتراك فيها
- الكتابة إلى السمات
- استدعاء الأوامر
عندما تنشئ عقدة تسلسلاً مشفّرًا من الاتصالات مع عقدة أخرى، فإنّها تشكّل علاقة تفاعل. قد تتكوّن التفاعلات من **معاملة** واحدة أو أكثر، وتتكوّن المعاملات من **إجراءات** واحدة أو أكثر يمكن فهمها على أنّها رسائل على مستوى "نموذج التفاعل" (IM) بين العُقد.
تتوفّر عدة إجراءات في المعاملات، مثل "إجراء طلب القراءة" الذي يطلب سمة أو حدثًا من عقدة أخرى، أو الردّ عليه، وهو "إجراء عرض البيانات"، الذي ينقل المعلومات من الخادم إلى العميل.
المُنشئون والأهداف
العقدة التي تبدأ معاملة هي المُنشئ ، بينما العقدة التي تستجيب هي الهدف. عادةً ما يكون المُنشئ مجموعة عملاء والهدف مجموعة خوادم. ومع ذلك، هناك استثناءات لهذا النمط، مثل تفاعلات الاشتراك التي تم تحليلها في وقت لاحق من هذا القسم.
Groups
قد تنتمي العُقد في Matter إلى مجموعة. مجموعة الأجهزة هي آلية لتوجيه الرسائل وإرسالها إلى عدة أجهزة في الإجراء نفسه في آنٍ واحد. تتشارك جميع العُقد في المجموعة معرّف المجموعة نفسه، وهو عدد صحيح مكوّن من 16 بت.
لإجراء الاتصال على مستوى المجموعة (البث الجماعي)، Matter تستفيد من رسائل Multicast المستندة إلى الإصدار السادس من بروتوكول الإنترنت (IPv6)، ويكون لجميع أعضاء المجموعة عنوان Multicast نفسه.
المسارات
عندما نريد التفاعل مع سمة أو حدث أو أمر، يجب تحديد المسار لهذا التفاعل: وهو موقع سمة أو حدث أو أمر في التسلسل الهرمي لنموذج بيانات العقدة. التحذير هو أنّ المسارات قد تستخدم أيضًا المجموعات أو عوامل أحرف البدل لتوجيه الرسائل إلى عدة عُقد أو مجموعات في آنٍ واحد، ما يؤدي إلى تجميع هذه التفاعلات وبالتالي تقليل عدد الإجراءات.
هذه الآلية مهمة لتحسين استجابة الاتصالات. على سبيل المثال، عندما يريد مستخدم إيقاف تشغيل جميع الأضواء، يمكن لمساعد صوتي إنشاء تفاعل واحد مع عدة أضواء ضمن مجموعة بدلاً من تسلسل من التفاعلات الفردية. إذا أنشأ المُنشئ تفاعلات فردية مع كل ضوء، يمكن أن يؤدي ذلك إلى حدوث وقت استجابة ملحوظ في استجابة الجهاز. يؤدي هذا التأثير إلى تفاعل الأجهزة المتعددة مع أمر مع تأخيرات مرئية بينها. ويُشار إلى ذلك غالبًا باسم "تأثير الفشار".
يمكن تجميع مسار في Matter باستخدام أحد الخيارات أدناه:
<path> = <node> <endpoint> <cluster> <attribute | event | command>
<path> = <group ID> <cluster> <attribute | event | command>
ضمن هذه الكتل البرمجية الإنشائية للمسار، قد يتضمّن endpoint وcluster أيضًا عوامل أحرف البدل لاختيار أكثر من مثيل عقدة واحد.
محدّد المدة وغير محدّد المدة
تتوفّر طريقتان لإجراء معاملة كتابة أو استدعاء: محدّد المدة وغير محدّد المدة. تحدّد المعاملات المحدّدة المدة مهلة قصوى لإرسال إجراء الكتابة/الاستدعاء. الغرض من هذه المهلة هو منع هجوم الاعتراض على المعاملة. وينطبق ذلك بشكل خاص على الأجهزة التي تتحكّم في الوصول إلى مواد العرض، مثل أجهزة فتح الأبواب والأقفال.
لفهم المعاملات المحدّدة المدة، من المفيد فهم كيفية حدوث هجمات الاعتراض وسبب أهمية المعاملات المحدّدة المدة.
هجوم الاعتراض
يتّبع هجوم الاعتراض النمط التالي:
- ترسل "سارة" إلى "أحمد" رسالة أولية، مثل "إجراء طلب الكتابة".
- تعترض "إيفا"، وهي شخص في المنتصف، الرسالة وتمنع "أحمد" من تلقّيها، مثلاً من خلال نوع من التشويش اللاسلكي.
- لا تتلقّى "سارة" ردًا من "أحمد"، لذا ترسل رسالة ثانية.
- تعترض "إيفا" الرسالة مرة أخرى وتمنع "أحمد" من تلقّيها.
- ترسل "إيفا" الرسالة الأولى التي اعترضتها إلى "أحمد"، كما لو كانت قادمة من "سارة".
- يرسل "أحمد" الردّ إلى "سارة" (و"إيفا").
- تحتفظ "إيفا" بالرسالة الثانية التي اعترضتها لإعادة تشغيلها لاحقًا. بما أنّ "أحمد" لم يتلقَّ أبدًا الرسالة الثانية الأصلية التي اعترضتها "إيفا" من "سارة"، سيقبلها. تمثّل هذه الرسالة خرقًا أمنيًا عندما تشفّر الرسالة أمرًا مثل "فتح القفل".
لمنع هذه الأنواع من الهجمات، تحدّد الإجراءات المحدّدة المدة مهلة قصوى للمعاملة في بداية المعاملة. حتى إذا تمكّنت "إيفا" من تنفيذ الخطوات الست الأولى من موجّه الهجوم، لن تتمكّن من إعادة تشغيل الرسالة في الخطوة 7 بسبب انتهاء المهلة في المعاملة.
تزيد المعاملات المحدّدة المدة من تعقيد الإجراءات وعددها. لذلك، لا يُنصح باستخدامها لكل معاملة، بل فقط للعمليات المهمة على الأجهزة التي تتحكّم في مواد العرض المادية أو الافتراضية للأمان والخصوصية.
التجريدات في حزمة تطوير البرامج (SDK)
تقدّم الأقسام معاملات القراءة، معاملات الكتابة، و معاملات الاستدعاء نظرة عامة عالية المستوى على إجراءات "نموذج التفاعل" (IM) التي تنفّذها حزمة تطوير البرامج (SDK).
لا يُجري المطوّر الذي ينشئ منتجًا يستخدم حزمة Matter SDK عادةً طلبات لتنفيذ الإجراءات مباشرةً، بل يتم تجريد الإجراءات من خلال دوال حزمة تطوير البرامج (SDK) التي ستغلّفها في تفاعل. ومع ذلك، من المهم فهم إجراءات "نموذج التفاعل" (IM) لمنح المهندس مستوى جيدًا من الإتقان لقدرات Matter، بالإضافة إلى التحكّم الدقيق في تنفيذ حزمة تطوير البرامج (SDK).