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

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

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

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

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

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

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

المبادرون والمستهدَفون

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

Groups

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

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

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

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

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

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

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