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

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

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

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

عندما ينشئ جهاز 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 أيضًا عوامل تشغيل أحرف البدل لاختيار أكثر من مثيل عقدة واحد.

محددة بوقت وغير محددة بوقت

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

لفهم المعاملات المحددة بوقت، من المفيد فهم كيفية حدوث هجمات الاعتراض ولماذا تعد المعاملات المحددة بوقت مهمة.

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

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

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

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

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

تجريدات SDK

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

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