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

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

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

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

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

التسلسل الهرمي لنموذج التفاعل
الشكل 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. ترسل إيف الرسالة الأولى التي تم اعتراضها إلى بوب، كما لو كانت واردة من أليس.
  6. يرسل بوب الرد إلى أليس (وإيف).
  7. تحتفظ "إيف" بالرسالة الثانية التي تم اعتراضها لإعادة إرسالها لاحقًا. بما أنّ نبيل لم يتلقَّ الرسالة الثانية الأصلية التي تم اعتراضها من لمى، سيقبلها. تمثّل هذه الرسالة خرقًا أمنيًا عندما تشفّر الرسالة أمرًا مثل "فتح القفل".

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

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

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

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

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