مدل داده‌های دستگاه

دستگاه‌های موجود در Matter دارای مدل داده (DM) به‌خوبی تعریف‌شده‌ای هستند که مدلی سلسله‌مراتبی از ویژگی‌های «دستگاه» است. در سطح بالای این سلسله‌مراتب، دستگاه وجود دارد.

دستگاه‌ها و نقاط پایان

همه «دستگاه‌ها»، ازجمله تلفن‌های هوشمند و دستیارهای خانگی، از گره‌ها۱ تشکیل شده‌اند. گره منبعی یکتا، قابل‌شناسایی، و دارای نشانی در شبکه است که کاربر می‌تواند آن را به‌عنوان یک واحد عملکردی کامل درک کند. ارتباط شبکه در Matter در «گره» شروع و تمام می‌شود.

«گره‌ها» مجموعه‌ای از نقطه‌های پایانی هستند. هر «نقطه پایانی» مجموعه‌ای از ویژگی‌ها را دربرمی‌گیرد. برای مثال، یک «نقطه پایانی» ممکن است با عملکرد روشنایی مرتبط باشد، درحالی‌که نقطه پایانی دیگر با تشخیص حرکت مرتبط است، و نقطه پایانی دیگر با خدمات مثل «به‌روزرسانی ازطریق هوا» برای دستگاه سروکار دارد.

سلسله‌مراتب دستگاه‌ها، گره‌ها، و نقاط پایان
شکل ۱: دستگاه‌ها، گره‌ها، و نقاط پایانی

نقش‌های گره

نقش گره مجموعه‌ای از رفتارهای مرتبط است. هر «گره» می‌تواند یک یا چند نقش داشته باشد. نقش‌های گره شامل موارد زیر است:

  • سرپرست: گرهی که سرپرستی را انجام می‌دهد.
  • کنترل‌کننده: گرهی که می‌تواند یک یا چند گره را کنترل کند. برای مثال، Google Home app (GHA)، Google Assistant، و Google Nest Hub (2nd gen). برخی‌از انواع دستگاه، مانند کلید روشن/خاموش چراغ، نقش «کنترل‌کننده» را دارند.
  • کنترل‌شونده: «گره‌ای» که می‌تواند توسط یک یا چند «گره» کنترل شود. بیشتر انواع دستگاه می‌توانند «کنترل‌شونده» باشند، به‌جز برخی‌از انواع دستگاه که نقش «کنترل‌کننده» دارند، مثل کلید روشن/خاموش چراغ. «کلید روشن/خاموش نور» فقط می‌تواند «کنترل‌کننده» باشد. نمی‌تواند «تحت کنترل» باشد.
  • ارائه‌دهنده OTA: گرهی که می‌تواند به‌روزرسانی‌های نرم‌افزار OTA را ارائه دهد.
  • درخواست‌کننده OTA: «گره‌ای» که می‌تواند به‌روزرسانی‌های نرم‌افزار OTA را درخواست کند.

خوشه‌ها

در نقطه پایانی، «گره» یک یا چند خوشه دارد. این‌ها مرحله دیگری در سلسله‌مراتب «دستگاه» هستند، زیرا عملکرد خاصی را گروه‌بندی می‌کنند، مثلاً خوشه روشن/خاموش در دوشاخه هوشمند، یا خوشه کنترل سطح در «نقطه پایانی» چراغ کم‌نورشدنی.

«گره» همچنین می‌تواند چندین «نقطه پایانی» داشته باشد که هرکدام نمونه‌ای از عملکرد یکسان را ایجاد می‌کنند. برای مثال، یک چراغ ممکن است کنترل مستقل چراغ‌های جداگانه را آشکار کند یا یک چندراهی ممکن است کنترل پریزهای جداگانه را آشکار کند.

مشخصه‌ها

در آخرین سطح، مشخصه‌ها را پیدا می‌کنیم که وضعیت‌های نگهداری‌شده توسط گره هستند، مثل مشخصه سطح فعلی خوشه کنترل سطح. مشخصه‌ها ممکن است به‌عنوان انواع داده مختلفی مثل uint8، رشته‌ها، یا آرایه‌ها تعریف شوند.

سلسله‌مراتب گره‌ها، نقطه‌های پایانی، مشخصه‌ها، و فرمان‌ها
شکل ۲: گره‌ها، نقاط پایانی، مشخصه‌ها، و فرمان‌ها

فرمان

علاوه‌بر «مشخصه‌ها»، «خوشه‌ها» فرمان‌هایی نیز دارند که کنش‌هایی هستند که ممکن است انجام شوند. این‌ها در DM Matter معادل تماس با رویه دور هستند. فرمان‌ها شبیه فعل هستند، مثل قفل کردن در در خوشه قفل در. فرمان‌ها ممکن است پاسخ‌ها و نتایجی تولید کنند؛ در Matter، چنین پاسخ‌هایی نیز به‌عنوان فرمان تعریف می‌شوند و در جهت معکوس حرکت می‌کنند.

رویدادها

درنهایت، «خوشه‌ها» ممکن است رویدادهایی نیز داشته باشند که می‌توان آن‌ها را به‌عنوان سوابق تغییرات وضعیت گذشته درنظر گرفت. درحالی‌که «مشخصه‌ها» نشان‌دهنده وضعیت فعلی هستند، رویدادها دفترچه‌ای از گذشته هستند و شامل شمارنده یکنواخت افزایشی، مُهر زمان، و اولویت هستند. آن‌ها امکان ضبط انتقال‌های وضعیت و همچنین مدل‌سازی داده‌هایی را فراهم می‌کنند که با مشخصه‌ها به‌راحتی قابل‌دستیابی نیستند.

دستگاه نمونه کامل
شکل ۳: نمونه‌ای از سلسله‌مراتب Matter مدل تعامل «دستگاه‌ها»

نقطه پایانی ۰ برای خوشه‌های ابزار رزرو شده است. «خوشه‌های ابزار» خوشه‌های خاصی هستند که عملکرد سرویس‌دهی را در یک «نقطه پایانی» محصور می‌کنند، مثل شناسایی، آدرس‌دهی، تشخیص خرابی، و به‌روزرسانی نرم‌افزار. ازطرف دیگر، خوشه‌های برنامه از کنش‌های اصلی مثل روشن/خاموش یا اندازه‌گیری دما پشتیبانی می‌کنند.

انواع دستگاه

در مجموع، کدام ترکیب‌های «خوشه» باید به‌عنوان دستگاه تولیدکننده درنظر گرفته شود که «دستگاه» جدیدی را برنامه‌ریزی می‌کند؟

مشخصات Matter ایجاب می‌کند که دستگاه یک یا چند نوع دستگاه را پیاده‌سازی یا گسترش دهد. «نوع دستگاه» مجموعه‌ای از «خوشه‌ها» اجباری و اختیاری است که مشخصه‌های سطح بالای «دستگاه» فیزیکی را تعریف می‌کند، مثل چراغ کم‌نورشدنی، قفل در، یا پخش‌کننده ویدیو.

«انواع دستگاه» در سند اصلی مشخصات Matter مشخص نشده است، بلکه در سند همراه آن، یعنی کتابخانه دستگاه مشخص شده است. به‌همین ترتیب، همه «خوشه‌های برنامه» در کتابخانه خوشه برنامه تعریف شده‌اند. این سه سند را می‌توانید در Connectivity Standards Alliance (Alliance)وب‌سایت اعضا پیدا کنید.

هر «نقطه پایانی» که «نوع دستگاه» را پیاده‌سازی می‌کند باید «خوشه‌های» اجباری را که آن «نوع دستگاه» را تعریف می‌کنند پیاده‌سازی کند. علاوه‌بر «خوشه‌های» اجباری، «نقطه پایانی» ممکن است «خوشه‌های» دیگری را پیاده‌سازی کند، ازجمله یک یا چند «خوشه» اختیاری «نوع دستگاه»، یا حتی «خوشه‌هایی» که بخشی از «نوع دستگاه» نیستند.

کارخواهان و سرورها

خوشه‌ها ممکن است خوشه کارخواه یا خوشه سرور باشند. درحالی‌که «سرور» حالت‌دار است و «صفات»، «رویدادها»، و «فرمان‌ها» را دربرمی‌گیرد، «مشتری» بدون حالت است و مسئولیت آن شروع تعامل‌ها با «خوشه سرور» از دور است، بنابراین این کارها را انجام می‌دهد:

  • از «مشخصه‌های» دور خود می‌خواند و در آن‌ها می‌نویسد.
  • می‌خواند از «رویدادهای» کنترل از دور آن.
  • فراخوانی «فرمان‌های» از دور آن.

درحالی‌که DM در یک «گره» سلسله‌مراتبی است، رابطه بین «گره‌ها» سلسله‌مراتبی نیست. گره‌های Matter روابط عمودی کنترل‌کننده/جانبی یا رهبر/پیرو ندارند. برعکس، رابطه افقی است: هر «خوشه» می‌تواند هم سرور و هم کارخواه باشد. بنابراین، یک «گره» ممکن است هم «کارخواه» و هم «کارساز» درارتباط با «خوشه‌های» مختلف و عملکردها باشد.

برای مثال، ممکن است دو چراغ مطالعه داشته باشیم: گره A و گره B. هر دو گره نوع دستگاه چراغ روشن/خاموش را پیاده‌سازی می‌کنند. این «نوع دستگاه» شامل خوشه سرور روشن/خاموش است که بر بروندادهای نور فیزیکی مربوطه کنترل دارد.

اما، همان‌طور که لامپ‌های میز معمولی دارند، دستگاه‌های فیزیکی ما نیز شامل نوع دستگاه کلید روشن/خاموش چراغ برای کلیدهای روشن/خاموش محلی خود خواهند بود. این «نوع دستگاه» باید «خوشه کارخواه روشن/خاموش» را پیاده‌سازی کند تا بتواند «خوشه‌های سرور» را کنترل کند.

لامپ‌هایی که هم «چراغ روشن/خاموش» و هم «کلید چراغ» را پیاده‌سازی می‌کنند
شکل ۴: خوشه‌های کارخواه و سرور

در این نمونه، «خوشه کارخواه روشن/خاموش» در «گره A» درحال تغییر دادن مشخصه‌های «خوشه سرور روشن/خاموش» در «گره A» و «گره B» است، درحالی‌که «خوشه کارخواه گره B» فقط «خوشه سرور» را در خود «گره B» تغییر می‌دهد.

در بخش بعدی، نحوه تعامل «خوشه‌های کارخواه و سرور» را به‌تفصیل شرح خواهیم داد: مدل تعامل.

خوشه توصیف‌گر

همان‌طور که از نامش پیداست، «سرور خوشه توصیفگر» اطلاعات خودکاوی ارائه می‌دهد. این توضیح می‌دهد که «نقطه پایان» موارد زیر را فهرست می‌کند:

  • خوشه‌های سرور.
  • خوشه‌های کارخواه.
  • انواع دستگاه.
  • «نقطه‌های پایانی» اضافی، که به‌عنوان «بخش» شناخته می‌شوند.

همه «انواع دستگاه» به پیاده‌سازی «خوشه‌های توصیفگر» نیاز دارند. «نوع دستگاه» ریشه در «نقطه پایان ۰» تعریف شده است. خواندن «خوشه توصیفگر» آن به مشتری امکان می‌دهد درخت کامل «نقطه‌های پایانی» دردسترس را پیمایش کند و عملیات‌های مربوطه را انجام دهد.

«کمیسر» یا دستگاه «کنترل‌کننده» مثل تلفن یا هاب می‌تواند از اطلاعات موجود در «خوشه توصیفگر» برای مدل‌سازی «دستگاه» (چراغ، کلید، پمپ، ترموستات) و ویژگی‌های خاص پیاده‌سازی‌شده توسط نمونه خاص «دستگاه» استفاده کند و میانای کاربر صحیح را به کاربر نشان دهد.

خوشه‌های سرور

«مشخصه» ServerList «سرورهای خوشه» را در «نقطه پایان» فهرست می‌کند.

دسته‌های کارخواه

«فهرست مشخصه» ClientList «مشتریان خوشه‌ای» را در «نقطه پایانی» فهرست می‌کند.

فهرست نوع دستگاه

«مشخصه DeviceTypeList» فهرستی از «انواع دستگاه» پشتیبانی‌شده توسط «نقطه پایانی» به‌همراه نسخه‌های اصلاح‌شده مربوطه است. باید حداقل یک نوع دستگاه داشته باشد.

فهرست قطعات

PartsList حاوی فهرست «نقطه‌های پایانی» استفاده‌شده برای پیاده‌سازی این «نوع دستگاه» است.

PartsList «نقطه پایان ۰» (گره ریشه) شامل همه «نقاط پایان» دستگاه به‌جز خودش («نقطه پایان ۰») می‌شود.

‫PartsList دیگر «نقطه‌های پایانی» معمولاً خالی خواهد بود. برای مثال، «حسگر دما» «خوشه سرور اندازه‌گیری دما» را الزامی می‌کند و هیچ چیز دیگری را الزامی نمی‌کند.

انواع دستگاه دیگر ممکن است در ساختار درختی متشکل از بیش‌از یک نمونه Device Type ترکیب شوند. برای مثال، نوع «دستگاه پخش‌کننده ویدیو» می‌تواند از «تلویزیون»، «پخش‌کننده ویدیو»، «بلندگو»، و انواع مختلف «دستگاه برنامه محتوا» تشکیل شود که هرکدام در «نقطه پایانی» متفاوتی قرار دارند.


  1. مشخصات Matter تعیین می‌کند که «دستگاه» ممکن است چند «گره» داشته باشد. برای مثال، تلفن‌های هوشمند ممکن است چندین برنامه داشته باشند که هر برنامه یک «گره» متفاوت است. برای اهداف این راهنمای مقدماتی، همه «دستگاه‌ها» حاوی یک «گره» خواهند بود. انتظار می‌رود که اکثر دستگاه‌های فیزیکی از این الگو پیروی کنند. ↩