مفاهيم نموذج التفاعل

لا يكون نموذج البيانات (DM) للعقدة ملائمًا إذا لم نتمكن من إجراء عمليات عليه. يعمل نموذج التفاعل (IM) على تحديد علاقة مباشرة لإدارة العُقدة مع الرسالة المباشرة للعُقد الأخرى، وهي لغة مشتركة للتواصل بين الرسائل المباشرة.

تتفاعل العُقد مع بعضها البعض من خلال:

  • قراءة السمات والأحداث والاشتراك فيها
  • كتابة السمات
  • استدعاء الأوامر

عندما تنشئ العُقدة تسلسل اتصال مشفَّرًا مع عقدة أخرى، تشكّل العُقدة علاقة تفاعل. قد تتألف التفاعلات من واحدة أو أكثر من المعاملات، وتتألف المعاملات من واحدة أو أكثر من الإجراءات التي يمكن فهمها على أنها رسائل على مستوى الرسائل الفورية بين العُقد.

التسلسل الهرمي لنموذج التفاعل
الشكل 1: التسلسل الهرمي لنموذج التفاعل

يتم توفير العديد من الإجراءات في المعاملات، مثل "إجراء طلب القراءة" الذي يطلب سمة أو حدثًا من عقدة أخرى، أو استجابته، "إجراء بيانات التقرير" الذي ينقل المعلومات من الخادم إلى العميل.

المُبدئون والأهداف

العقدة التي تبدأ معاملة هي المُنشئ، بينما العقدة التي تستجيب هي الهدف. عادةً ما يكون المُنشئ هو مجموعة العملاء والهدف هو مجموعة الخادم. ومع ذلك، هناك استثناءات لهذا النمط، كما هو الحال في تفاعلات الاشتراكات التي تم تحليلها بمزيد من التفصيل في هذا القسم.

Groups

قد تنتمي العُقد في Matter إلى مجموعة. "مجموعة الأجهزة" هي آلية لمعالجة الرسائل وإرسالها إلى عدة أجهزة في "الإجراء نفسه" في الوقت نفسه. تشترك جميع العُقد في مجموعة معيّنة في معرّف المجموعة نفسه، أي عدد صحيح 16 بت.

لإتمام التواصل على مستوى المجموعة (Groupcast)، يستفيد Matter من رسائل IPv6 Multicast ويكون لجميع أعضاء المجموعة عنوان Multicast نفسه.

المسارات

عندما نريد التفاعل مع سمة أو حدث أو أمر، يجب تحديد المسار لهذا التفاعل: موقع السمة أو الحدث أو الأمر في التسلسل الهرمي لنموذج البيانات للعقدة. يُرجى الانتباه إلى أنّ المسارات قد تستخدم أيضًا مجموعات Google أو عوامل تشغيل أحرف البدل لمعالجة العديد من العُقد أو المجموعات في وقت واحد، ما يؤدي إلى تجميع هذه التفاعلات وبالتالي تقليل عدد الإجراءات.

هذه الآلية مهمة لتحسين استجابة الاتصالات. على سبيل المثال، عندما يريد المستخدم إيقاف جميع الأضواء، يمكن للمساعد الصوتي إنشاء تفاعل واحد باستخدام عدة أضواء داخل مجموعة بدلاً من سلسلة من التفاعلات الفردية. إذا أنشأ بادئ التشغيل تفاعلات فردية مع كل ضوء، يمكن أن يتسبّب في حدوث تفاعل ملحوظ لدى الإنسان في استجابة الجهاز. يتسبب هذا التأثير في استجابة الأجهزة المتعددة لأمر مع وجود تأخيرات مرئية بينها. يشار إلى هذا غالبًا باسم "تأثير الفشار".

يمكن تجميع مسار في Matter باستخدام أحد الخيارات التالية:

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

وضمن الوحدات الأساسية للمسار، قد يتضمّن endpoint وcluster أيضًا عوامل تشغيل أحرف البدل لاختيار أكثر من مثيل عقدة واحد.

الوضع المحدد زمنيًا

هناك طريقتان لتنفيذ معاملة كتابة أو استدعاء: Timed (محدد زمنيًا) وUntimed (غير محدد زمنيًا). تُنشئ المعاملات المحدَّدة زمنيًا أقصى مهلة لإرسال إجراء الكتابة/الاستدعاء. الغرض من هذه المهلة هو منع الهجوم المضاد على المعاملة. وهو صالح بشكل خاص للأجهزة التي تدخل إلى الأصول، مثل فتاحة المرآب وأقفاله.

لفهم "المعاملات المحدّدة زمنيًا" من المفيد فهم كيفية حدوث هجمات الاعتراض وأهمية هذه العمليات.

هجمة الاعتراض

يتّسم هجوم الاعتراض بالنمط التالي:

  1. ترسل نبيلة رسالة أولية إلى هاني، مثل "إجراء طلب كتابة".
  2. تعترض Eve الرسالة كوسيطة وتمنع يوسف من استلامها، من خلال نوع من أنواع التشويش على الراديو مثلاً.
  3. ترسِل نبيلة رسالة ثانية عندما لا تتلقى ردًا من يوسف.
  4. تعترض Eve مرة أخرى وتمنع يوسف من تلقّيها.
  5. ترسل Eve أول رسالة تم اعتراضها إلى يوسف، كما لو كانت واردة من نبيلة.
  6. يرسل يوسف الرد إلى نبيلة (وإيمان).
  7. تحمل Eve الرسالة الثانية التي تم اعتراضها لإعادة تشغيلها لاحقًا. نظرًا لأن يوسف لم يتلقَ مطلقًا الرسالة الأصلية التي تم اعتراضها من نبيلة، فسيقبلها. تمثّل هذه الرسالة اختراقًا أمنيًا عندما تحوّل الرسالة أمرًا، مثل "open Lock".

لمنع هذه الأنواع من الهجمات، تعمل "الإجراءات ذات الطابع الزمني" على ضبط مهلة قصوى للمعاملة في بداية المعاملة. حتى إذا تمكنت Eve من تنفيذ الخطوات الست الأولى من متجه الهجوم، فلن تتمكن من إعادة تشغيل الرسالة في الخطوة 7 بسبب انتهاء المهلة المحددة للمعاملة.

تؤدي المعاملات المحدَّدة زمنيًا إلى زيادة التعقيد وعدد الإجراءات. لذلك، لا يوصى بها لكل معاملة، ولكن تقتصر على العمليات المهمة في الأجهزة التي تتحكم في أصول الخصوصية والأمان الفعلية أو الافتراضية.

تجريدات حزمة تطوير البرامج (SDK)

يوفّر الأقسام قراءة المعاملات وكتابة المعاملات واستدعاء المعاملات نظرة عامة عالية المستوى على إجراءات نموذج التفاعل التي تنفّذها حزمة تطوير البرامج (SDK).

لا ينفّذ مطوّر البرامج الذي ينشئ منتجًا يستخدم حزمة تطوير البرامج (SDK) Matter عادةً طلبات لتنفيذ الإجراءات مباشرةً، بل يتم استخلاص "الإجراءات" من خلال وظائف حزمة تطوير البرامج (SDK) التي ستدمجها في تفاعل. ومع ذلك، من المهم فهم إجراءات IM لمنح المهندس كفاءة جيدة في إمكانات Matter، بالإضافة إلى التحكم الدقيق في تنفيذ SDK.