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

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

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

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

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

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

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

المشغّلون والاستهدافات

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

Groups

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

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

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

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

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

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

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