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

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

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

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

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

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

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

المستخدمون الذين يبدأون عمليات الدمج والمستخدمون المستهدَفون

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

Groups

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

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

المسارات

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

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

يمكن إنشاء مسار في Matter باستخدام أحد الخيارات التالية:

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

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

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

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

لفهم ميزة &quot;المعاملات المحدودة المدة&quot;، من المفيد معرفة كيفية حدوث &quot;هجمات الاعتراض&quot; وسبب أهمية هذه الميزة.

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

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

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

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

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

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

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

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