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

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

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

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

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

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

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

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

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

Groups

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

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

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

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

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

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

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