این طرح ، مدل داده زیربنایی را توصیف می کند که نمایش و تفسیر داده های ساطع شده توسط دستگاه های منطقی یا فیزیکی در یک سیستم Weave را هدایت می کند.
طرحواره این است:
- استاندارد شده - شامل تعاریف رسمی تایید شده از عملکرد است که بدون توجه به پیاده سازی، یک رابط سازگار ارائه می دهد. به عنوان مثال، یک لامپ نمایش داده شده در طرحواره همیشه دارای عملکرد اصلی مانند حالت های روشن/خاموش و اقدامات یا سطوح کم نور است.
- Composable - کاربر می تواند منابع پیچیده ای را ایجاد کند که از بیت های کوچکتری از عملکردهای کاملاً تعریف شده تشکیل شده است. به عنوان مثال، Nest Detect شامل دو نوع حسگر است: حرکت و باز/بستن. عملکرد این نوع حسگرها در طرح استاندارد شده و قابل استفاده مجدد در همه دستگاه ها هستند.
- توسعه پذیر - کاربر می تواند پسوندهای سفارشی عملکرد استاندارد ایجاد کند. به عنوان مثال، ممکن است بخواهید عملکرد استاندارد سنسور حرکت طرحواره را با عملکردهای اضافی برای یک برنامه امنیتی خاص گسترش دهید.
- نسخه شده - همه تغییرات در طرحواره برای سازگاری رو به جلو و عقب نسخه شده است.
طرحواره سه عنصر را تعریف می کند: صفات، رابط ها و منابع. تقریباً تمام عملکردهای موجود در اکوسیستم Nest برای عملیات روزمره در این طرح تعریف شده است. بیایید هر عنصر را با عمق بیشتری بررسی کنیم.
صفات
صفت واحدی از عملکرد اساسی است. آنها ممکن است حالت ها یا قابلیت های کلی دستگاه باشند یا پیکربندی را توصیف کنند که رفتار آن را نشان می دهد. یک صفت واحد ممکن است در بسیاری از دستگاه ها مشترک باشد یا برای یک نوع دستگاه خاص باشد.
به عنوان مثال، در این طرح میتوانید ویژگیهای زیر را برای استفاده در دستگاههای Nest تعریف کنید:
رابط ها
ما میتوانیم ترکیبپذیری صفات را با گروهبندی آنها با هم گسترش دهیم، بهویژه اگر چندین صفت یک تابع جدید و خاص را نشان دهند. به چنین گروهی از صفات، Interface
می شود.به عنوان مثال، یک رابط Intercom ممکن است شامل ویژگی های بلندگو و میکروفون باشد:
منابع
یک منبع
یک چیز منطقی یا فیزیکی را در طرحواره نشان می دهد. به عنوان مثال، Nest Protect یک منبع است. نگهبان لانه هم همینطور. یا یک کاربر یا ساختاری مانند خانه کاربر.منابع مجموعهای از ویژگیها را تشکیل میدهند که پیکربندی، حالت و قابلیت آنها را در بر میگیرد.
رابطه بین منابع، رابط ها و صفات به صورت زیر است:
همانطور که می بینید، برخی از ویژگی ها، مانند ویژگی حرکت، در منابع مختلف مشترک هستند. و برخی از اینترفیس ها مانند رابط Intercom نیز برای منابع مختلف مشترک هستند. صفات، رابط ها و منابع یک بار در طرحواره تعریف می شوند و مجدداً در منابع و دستگاه های مختلف در سیستم Weave استفاده می شوند.
عناصر صفت
صفات بیشتر به سه عنصر اصلی تقسیم می شوند: ویژگی ها، دستورات و رویدادها. بیایید نگاهی به نمونه هایی از هر عنصر صفت بیندازیم.
خواص
ویژگی های
نشان دهنده وضعیت یک صفت است. ویژگی ها یا خواندنی-نوشتنی هستند یا فقط خواندنی.مثلا:
- نسخه نرم افزار یک ویژگی از ویژگی Device Identity است. این یک ویژگی کلی است که اکثر دستگاه ها دارند. Nest Thermostats، Cameras و Protects—همه اینها نسخه نرم افزاری خاص خود را دارند.
- Bolt State یک ویژگی از ویژگی Bolt Lock است، اما مخصوص دستگاهی مانند Yale x Nest Lock است. مثلاً روی ترموستات Nest قفل پیچ و مهره ای پیدا نمی کنید.
دستورات
دستورات
درخواستهای سفارشی مختص یک صفت برای عملکرد یک صفت با پاسخ مورد انتظار هستند. آنها معمولاً دستورات سفارشی نامیده می شوند و می توان آنها را به تغییرات حالت خاص برای ویژگی ها گسترش داد. مثلا:- Bolt Lock Change یک دستور سفارشی است که خاصیت Bolt State ویژگی Bolt Lock را تغییر می دهد.
- Set User Pincode یک دستور سفارشی است که ویژگی User Pincode تنظیمات جدید را ایجاد می کند یا یک ویژگی User Pincode موجود را به روز می کند.
مناسبت ها
رویدادها
سوابقی از اتفاقات یک صفت هستند. آنها مشترک را از تغییرات در ویژگیهای صفت یا نوع دیگری از اتفاقات، مانند بازنشانی سیستم مطلع میکنند.به عنوان مثال، رویداد تغییر وضعیت محرک پیچ از ویژگی Bolt Lock، مشترک را از وضعیت فعلی چندین ویژگی Bolt Lock و همچنین بازیگری که آخرین بار باعث تغییر ویژگی وضعیت محرک پیچ شده است، مطلع می کند. همه این اطلاعات به صورت یک رویداد ارائه می شود.
زبان توصیف طرحواره بافت
ویژگیهای طرحواره، رابطها و منابع در Weave با استفاده از یک زبان دامنه خاص (DSL) که از نحو Google Protocol Buffers v3 استفاده میکند، تعریف و توصیف میشوند. این زبان
Weave Schema Description Language (WDL) نامیده می شود.WDL از طریق یک کامپایلر اجرا می شود که درک و کدگذاری های مختلف پلتفرم خاص را تولید می کند. نوع کد تولید شده به منبع بستگی دارد:
- Objective-C، Swift، Java، Scala — برنامه های موبایل و سرویس های ابری
- C++ با رمزگذاریهای Weave TLV - دستگاههای تعبیهشده و برنامههای تلفن همراه
بعداً به نمونههای WDL عمیقتر خواهیم پرداخت.
خلاصه
آنچه آموختید:
- schema مدل داده های اساسی را برای یک سیستم Weave توصیف می کند.
- طرحواره سه عنصر را تعریف می کند:
- صفت واحدی از عملکرد اساسی
- Interface گروهی از صفات که نشان دهنده یک عملکرد جدید و خاص است
- Resource یک چیز منطقی یا فیزیکی
- صفات شامل ویژگی ها، دستورات و رویدادها می شود:
- ویژگی وضعیت یک ویژگی منبع
- دستورات درخواست سفارشی برای عمل یک صفت
- رویداد ثبت اتفاقات برای یک صفت
- این طرح با استفاده از Weave Schema Description Language (WDL) که بر اساس Google Protocol Buffers v3 است، تعریف شده است.
برای اطلاعات عمیق تر، نگاه کنید به: