دستگاههای موجود در Matter دارای مدل داده (DM) کاملاً تعریفشدهای هستند که مدلسازی سلسلهمراتبی ویژگیهای دستگاه است. در بالاترین سطح این سلسلهمراتب، دستگاه قرار دارد.
دستگاهها و نقاط پایانی
همه دستگاهها، ازجمله تلفنهای هوشمند و دستیارهای خانگی، از گرهها۱ تشکیل شدهاند. گره منبعی منحصربهفرد، قابلشناسایی، و قابلآدرسدهی در شبکه است که کاربر میتواند آن را بهعنوان یک کل کاربردی درک کند. ارتباطات شبکه در Matter از یک گره شروع میشود و در آن پایان مییابد.
گرهها مجموعهای از نقطههای پایانی هستند. هر «نقطه پایانی» شامل یک مجموعه ویژگی است. برای مثال، یک «نقطه پایانی» ممکن است به عملکرد روشنایی مربوط باشد، درحالیکه دیگری به تشخیص حرکت مربوط است، و دیگری با برنامههای کمکی مانند «بهروزرسانی بیسیم دستگاه» سروکار دارد.
نقشهای گره
نقش گره مجموعهای از رفتارهای مرتبط است. هر گره ممکن است یک یا چند نقش داشته باشد. نقشهای گره شامل موارد زیر است:
- راهانداز: «گرهی» که راهاندازی را انجام میدهد.
- کنترلکننده: «گرهی» که میتواند یک یا چند «گره» را کنترل کند. نمونههای آن عبارتاند از: Google Home app (GHA)، Google Assistant، و Google Nest Hub (2nd gen). برخیاز انواع دستگاهها، مثل کلید روشن/خاموش چراغ، نقش «کنترلکننده» دارند.
- کنترلشونده: گرهی که میتواند توسط یک یا چند گره کنترل شود. اکثر انواع دستگاهها میتوانند «تحتکنترل» باشند، بهجز برخیاز انواع دستگاهها که نقش «کنترلکننده» دارند، مثل کلید روشن/خاموش چراغ. کلید روشن/خاموش چراغ فقط میتواند «کنترلکننده» باشد. نمیتواند «کنترلشونده» باشد.
- ارائهدهنده OTA: گرهی که میتواند بهروزرسانیهای نرمافزاری OTA را ارائه دهد.
- درخواستکننده OTA: گرهی که میتواند بهروزرسانیهای نرمافزار OTA را درخواست کند.
دستهها
درون یک نقطه پایانی، یک گره یک یا چند خوشه دارد. اینها گام دیگری در سلسلهمراتب «دستگاه» هستند، زیرا عملکردهای خاصی را گروهبندی میکنند، مانند خوشه روشن/خاموش در دوشاخه هوشمند، یا خوشه کنترل سطح در «نقطه پایانی» چراغ با نور قابلتنظیم.
یک گره ممکن است چندین نقطه پایانی نیز داشته باشد که هرکدام نمونهای از همان عملکرد را ایجاد میکنند. برای مثال، یک چراغ ممکن است کنترل مستقل هریک از لامپها را نشان دهد یا یک چندراهی برق ممکن است کنترل هریک از پریزها را نشان دهد.
مشخصهها
در سطح آخر، مشخصهها را خواهیم دید که حالتهایی هستند که گره دارد، مثل مشخصه سطح کنونی در خوشه کنترل سطح. مشخصهها ممکن است بهعنوان انواع مختلف داده مانند uint8، رشتهها، یا آرایهها تعریف شوند.
فرمان
علاوهبر «مشخصهها»، «خوشهها» دارای فرمانها نیز هستند که کنشهایی هستند که ممکن است انجام شوند. این پیامها معادل فراخوانی رویه از راه دور در پیام مستقیم Matter هستند. فرمانها شبیه فعل هستند، مثل قفل کردن در در خوشه قفل در. فرمانها ممکن است پاسخها و نتایجی تولید کنند؛ در Matter، چنین پاسخهایی نیز بهعنوان فرمان تعریف میشوند که در جهت معکوس حرکت میکنند.
رویدادها
درنهایت، «خوشهها» ممکن است رویداد هم داشته باشند که میتوان آن را بهعنوان سابقهای از انتقالهای حالت گذشته درنظر گرفت. درحالیکه «مشخصهها» نشاندهنده وضعیت فعلی هستند، رویدادها دفتر روزنامه گذشته هستند و شامل شمارنده یکنواخت افزایشی، مُهر زمان، و اولویت هستند. این رویدادها امکان ضبط انتقالهای حالت و همچنین مدلسازی دادهها را فراهم میکنند که بهراحتی با مشخصهها قابلدستیابی نیست.
نقطه پایانی ۰ برای خوشههای ابزار رزرو شده است. «خوشههای ابزار» خوشههای خاصی هستند که عملکرد سرویسدهی را در «نقطه پایانی» دربرمیگیرند، مانند اکتشاف، آدرسدهی، عیبیابی، و بهروزرسانی نرمافزار. ازسوی دیگر، خوشههای برنامه از کنشهای اصلی مثل روشن/خاموش یا اندازهگیری دما پشتیبانی میکنند.
انواع دستگاه
درمجموع، کدام ترکیبهای «خوشه» باید بهعنوان طرحهای سازنده دستگاه برای «دستگاه» جدید گنجانده شود؟
مشخصات Matter ایجاب میکند که دستگاه یک یا چند نوع دستگاه را پیادهسازی یا گسترش دهد. «نوع دستگاه» مجموعهای از «خوشههای» اجباری و اختیاری است که مشخصههای سطح بالای «دستگاه» فیزیکی را تعریف میکند، مثل چراغ کمنورشدنی، قفل در، یا پخشکننده ویدیو.
«انواع دستگاه» در سند اصلی مشخصات Matter مشخص نشده است، بلکه در سند همراه آن مشخص شده است: کتابخانه دستگاه. بهطور مشابه، همه «خوشههای برنامه» در کتابخانه خوشه برنامه تعریف شدهاند. این سه سند را میتوانید در وبسایت اعضای Connectivity Standards Alliance (Alliance) پیدا کنید.
هر «پایانه» که «نوع دستگاه» را پیادهسازی میکند باید «خوشههای» اجباری را که آن «نوع دستگاه» را تعریف میکند پیادهسازی کند. علاوهبر «خوشههای» اجباری، «نقطه پایانی» ممکن است «خوشههای» دیگری را نیز پیادهسازی کند، ازجمله یک یا چند «خوشه» اختیاری «نوع دستگاه»، یا حتی «خوشههایی» که بخشی از «نوع دستگاه» نیستند.
کارخواهها و سرورها
خوشهها ممکن است خوشه کارخواه یا خوشه سرور باشند. درحالیکه «سرور» حالتدار است و «مشخصهها»، «رویدادها»، و «فرمانها» را نگه میدارد، «کارخواه» بیحالت است و مسئولیت آن شروع کردن تعاملها با «خوشه سرور» راه دور است، بنابراین موارد زیر را انجام میدهد:
- از «مشخصههای» دور آن میخواند و در آنها مینویسد.
- خوانده شده است.
- فراخوانی «فرمانهای» ازراهدور آن.
درحالیکه DM در یک گره سلسلهمراتبی است، رابطه بین گرهها اینگونه نیست. گرهها در Matter رابطه عمودی کنترلکننده/جانبی یا رهبر/پیرو ندارند. برعکس، این رابطه افقی است: هر «خوشه» میتواند سرور یا کارخواه باشد. بنابراین، یک گره ممکن است هم سرور و هم کارخواه باشد، بسته به خوشهها و عملکردهای مختلف.
برای مثال، ممکن است دو چراغ رومیزی داشته باشیم: گره الف و گره ب. هر دو گره «نوع دستگاه» روشن/خاموش کردن چراغ را پیادهسازی میکنند. این «نوع دستگاه» شامل خوشه سرور روشن/خاموش است که خروجیهای فیزیکی مربوطه را کنترل میکند.
اما، همانطور که در چراغهای رومیزی معمول است، دستگاههای فیزیکی ما نیز برای کلیدهای روشن/خاموش محلی خود، نوع دستگاه کلید روشن/خاموش چراغ را خواهند داشت. این نوع دستگاه باید یک خوشه کارخواه روشن/خاموش را پیادهسازی کند تا بتواند خوشههای سرور را کنترل کند.
در این نمونه، «خوشه کارخواه روشن/خاموش» در «گره الف» درحال تغییر دادن ویژگیهای «خوشه سرور روشن/خاموش» در «گره الف» و «گره ب» است، درحالیکه «خوشه کارخواه» «گره ب» فقط درحال تغییر دادن «خوشه سرور» در خود «گره ب» است.
در بخش بعدی، نحوه تعامل «خوشههای کارخواه و سرور» را بهطور مفصل شرح میدهیم: مدل تعامل.
خوشه توصیفگر
همانطور که از نام آن پیداست، Descriptor Cluster Server اطلاعات دروننگری را ارائه میدهد. این پیام «نقطه پایانی» را توصیف میکند و موارد زیر را برمیشمارد:
- خوشههای سرور.
- دستههای کارخواه.
- انواع دستگاه.
- نقاط پایانی اضافی، معروف به «بخشها».
هر «نوع دستگاه» به پیادهسازی «خوشههای توصیفگر» نیاز دارد. «نوع دستگاه ریشه» در «نقطه پایان ۰» تعریف شده است. خواندن «خوشه توصیفگر» آن به کارخواه امکان میدهد کل درخت «پایانههای» دردسترس را ببیند و عملیاتهای مربوطه را انجام دهد.
دستگاه «کنترلکننده» یا «راهانداز» مثل تلفن یا هاب میتواند از اطلاعات موجود در «خوشه توصیفگر» برای مدلسازی «دستگاه» (چراغ، کلید، پمپ، دماپا) و ویژگیهای خاصی که توسط آن نمونه خاص از «دستگاه» پیادهسازی شده است استفاده کند و واسط کاربر صحیح را به کاربر نشان دهد.
خوشههای سرور
مشخصه ServerList «سرورهای خوشه» را در «نقطه پایانی» فهرست میکند.
دستههای کارخواه
مشخصه ClientList «کارخواههای خوشه» را در «پایانه» فهرست میکند.
فهرست نوع دستگاه
مشخصه DeviceTypeList فهرستی از انواع دستگاههای پشتیبانیشده توسط
«نقطه پایانی» بههمراه بازبینیهای مربوطه است. باید حداقل یک «نوع دستگاه» داشته باشد.
فهرست قطعات
PartsList حاوی فهرست «پایانههایی» است که برای پیادهسازی این «نوع دستگاه» استفاده میشود.
PartsList «نقطه پایانی ۰» (گره ریشه) شامل همه «نقطههای پایانی» دستگاه بهجز خودش («نقطه پایانی ۰») است.
PartsList سایر «پایانههای» معمولاً خالی خواهد بود. برای مثال، «حسگر دما» به «خوشه سرور اندازهگیری دما» نیاز دارد و نه چیز دیگری.
انواع دیگر دستگاه ممکن است در ساختار درختی بیشاز یک نمونه «نوع دستگاه» ترکیب شوند. برای مثال، نوع «دستگاه پخشکننده ویدیو» میتواند از تلویزیون، «پخشکننده ویدیو»، «بلندگو»، و انواع مختلف «دستگاه برنامه محتوا» تشکیل شده باشد که هرکدام در «پایانه» متفاوتی قرار دارند.
-
مشخصات Matter تعیین میکند که یک «دستگاه» میتواند چند «گره» داشته باشد. برای مثال، تلفنهای هوشمند ممکن است چندین برنامه داشته باشند که هر برنامه یک «گره» متفاوت است. برای اهداف این راهنمای مقدماتی، همه «دستگاهها» شامل یک «گره» خواهند بود. انتظار میرود اکثر دستگاههای فیزیکی از این الگو پیروی کنند. ↩