مدیریت داده بافت

اکنون که اجزای اصلی Weave را درک کردید، بیایید نگاهی بیندازیم که چگونه برخی از عملکردهای آن در سطح بالایی انجام می شود.

تقریباً تمام عملکردهای موجود در اکوسیستم Nest برای عملیات روزمره بر روی منابع و صفات به عنوان بخشی از طرح Weave ترسیم شده است. نمایه مدیریت داده تمام درخواست‌های ویژگی‌ها را با استفاده از مدل انتشار-اشتراک مدیریت می‌کند. این درخواست‌ها پیام‌هایی هستند که مختص نمایه مدیریت داده‌ها هستند.

در این نوع مدل، یک ناشر ویژگی‌ها (داده‌ها برای تماشا) را تبلیغ می‌کند و یک مشترک به تغییرات در آن ویژگی‌های منتشر شده (داده‌های در حال تماشا) واکنش نشان می‌دهد. این تابع مدیریت صفت بلادرنگ نامیده می شود.

نمایه مدیریت داده ها اسب کاری Weave است و به طور کلی به عنوان مدیریت داده های بافت (WDM) شناخته می شود.

درخواست ها

Requests یک عنصر کلیدی در مدیریت زمان واقعی WDM است. درخواست‌ها درخواست‌های استاندارد برای عمل یک صفت با پاسخ مورد انتظار هستند. اینها با دستورات یک صفت متفاوت هستند زیرا در طرحواره تعریف نمی شوند و نمی توان آنها را تعریف کرد و مختص هیچ صفتی نیست.

سه نوع درخواست استاندارد وجود دارد:

  • را اعلام کنید که مشترک را از وضعیت یک ویژگی یا یک رویداد خاص مرتبط با آن ویژگی مطلع می کند.
  • به روز رسانی درخواست استاندارد برای تغییر وضعیت ویژگی صفت.
  • مشاهده درخواست استاندارد برای مشاهده خصوصیات یک صفت.

نقش های پروتکلی

دو نوع نقش پروتکل WDM وجود دارد: ناشر و مشترک. این نقش ها در سطح صفت تعیین می شوند.

ناشر

نقش ناشر WDM نمونه های نسخه شده از یک یا چند طرحواره را برای یک یا چند مشترک تولید و ارائه می کند و اعلان هایی را در مورد تغییر طرح به مشترکین علاقه مند ارسال می کند. این اعلان‌ها درخواست‌های استاندارد notify هستند.

برای مثال، فرض کنید صفت A توسط منبع 1 منتشر شده و توسط منبع 2 مشترک شده است. همانطور که در شکل 1 نشان داده شده است، اگر صفت A تغییر کند:

  1. WDM یک درخواست اطلاع رسانی از منبع 1 برای همه مشترکین Trait A ارسال می کند و آنها را از تغییر مطلع می کند.
  2. هر مشترک نمونه خود از صفت A را بر این اساس به روز می کند.
درخواست اطلاع رسانی WDM Publisher
شکل 1 - درخواست های ناشر WDM

همین اتفاق برای سایر صفات موجود در طرحواره می افتد. به عنوان مثال، اگر منبع 2 صفت B را منتشر کند، منبع 1 مشترک ویژگی B می شود و ویژگی B تغییر می کند:

  1. WDM یک درخواست اطلاع رسانی از منبع 2 برای همه مشترکین Trait B ارسال می کند و آنها را از تغییر مطلع می کند.
  2. هر مشترک نمونه خود از Trait B را بر این اساس به روز می کند.

مشترک

نقش مشترک WDM نمونه های نسخه شده از یک یا چند طرحواره منتشر شده خارجی را مشاهده و مصرف می کند. می‌تواند نمونه نسخه‌شده یک طرح منتشر شده را با درخواست به‌روزرسانی تغییر دهد، یا یک فرمان خاص برنامه را صادر کند.

به عنوان مثال، فرض کنید منبع 2 می خواهد ویژگی A را تغییر دهد که توسط منبع 1 منتشر شده است. همانطور که در شکل 2 نشان داده شده است، برای تغییر ویژگی A:

  1. WDM درخواست به‌روزرسانی از منبع 2 به منبع 1 می‌فرستد تا تغییری در ویژگی A بدهد.
  2. صفت A در منبع 1 تغییر کرده است.
  3. WDM یک درخواست اطلاع رسانی از منبع 1 برای همه مشترکین Trait A ارسال می کند و آنها را از تغییر مطلع می کند.
  4. هر مشترک نمونه خود از صفت A را بر این اساس به روز می کند.
مشاهده و به روز رسانی مشترک WDM
شکل 2 - درخواست های مشترک WDM

مشترکین همچنین می‌توانند درخواست مشاهده را به ناشر یک صفت ارسال کنند تا ویژگی‌های آن ویژگی را مشاهده کنند و نمونه‌های خود را از ویژگی‌ها با ناشر همگام کنند.

انواع اشتراک

دو نوع اشتراک WDM وجود دارد. اشتراک ها با درخواست subscribe ایجاد می شوند. شکل 3 جریان پیام اصلی را برای ایجاد یک اشتراک یک طرفه نشان می دهد.

اشتراک یک طرفه WDM
شکل 3 - اشتراک یک طرفه WDM

یک طرفه

اشتراک های یک طرفه شامل درخواست یک مشترک از ناشر برای یک یا چند نمونه از ویژگی ها است. به عنوان مثال، یک دستگاه تلفن همراه که وضعیت خانه (ساختار) را از یک سرویس بازیابی می کند.

متقابل

اشتراک های متقابل زمانی است که منابع مشترک یکدیگر می شوند و هر کدام به عنوان ناشر و مشترک عمل می کنند. نمونه‌ای از آن Nest Guard و Nest Detect هستند که بخشی از سیستم Nest Secure هستند. اشتراک متقابل به هر دو منبع اجازه می دهد تا طرح منتشر شده را مدیریت کنند و سلامت و حیات اشتراک خود را به شیوه ای کارآمدتر از دو اشتراک یک طرفه حفظ کنند.

مثال

بیایید به یک مثال ساده نگاه کنیم که چگونه WDM با استفاده از یک برنامه تلفن همراه، تغییر در منطقه محلی دستگاه را مدیریت می کند.

همانطور که در شکل 4 نشان داده شده است، در این مثال سه منبع و دو ویژگی وجود دارد:

  • دستگاه (مشترک)
  • سرویس (ناشر)
  • برنامه موبایل (مشترک)
  • Locale قابلیت های صفت ویژگی محلی های موجود
  • Locale Settings صفت ویژگی Active Locale را می کند

هر دو ویژگی توسط منبع سرویس منتشر شده و توسط منابع دستگاه و برنامه موبایل مشترک شده اند. هر مشترک به عنوان یک اشتراک یک طرفه برای ناشران ویژگی در منبع سرویس عمل می کند.

همه منابع در این مثال بخشی از همان پارچه Weave هستند.

مثال WDM
شکل 4 - مثال WDM

جریان به روز رسانی

فرض کنید کاربر از برنامه موبایل خود برای تغییر زبان دستگاه از en_US به fr_FR با استفاده از یک برنامه موبایل متصل استفاده می کند. همانطور که در شکل 5 نشان داده شده است، جریان به روز رسانی در WDM به صورت زیر است:

  1. منبع برنامه موبایل (مشترک) یک درخواست به‌روزرسانی را به منبع سرویس (ناشر) می‌فرستد تا ویژگی Active Locale ویژگی تنظیمات محلی را به fr_FR تغییر دهد، یکی از مقادیر معتبر ویژگی Locales موجود در ویژگی Locale Capabilities.
  2. منبع Service ویژگی Active Locale ویژگی تنظیمات محلی را در کپی طرحواره خود تغییر می دهد.
  3. منبع Service یک درخواست اعلان در مورد تغییر را به مشترکین ویژگی تنظیمات محلی ارسال می کند.
  4. منابع دستگاه و برنامه تلفن همراه (مشترکین) هر دو درخواست منبع سرویس را دریافت می کنند و ویژگی Active Locale از ویژگی تنظیمات محلی را در نسخه های خود از طرح به روز می کنند.
دنباله جریان به روز رسانی WDM
شکل 5 - جریان به روز رسانی WDM

مزایای WDM

زمانی که تنها کاری که می‌خواهید انجام دهید این است که محلی را در دستگاه خود از یک برنامه تلفن همراه تغییر دهید، ممکن است بسیار پیچیده به نظر برسد. اما با قرار دادن طرحواره نسخه‌شده، الگوی انتشار-اشتراک و درخواست‌ها در نمایه WDM، Weave یکپارچگی داده‌ها را در تمام منابع تضمین می‌کند.

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

فراتر از اشتراک ها

اگر منبعی اشتراک یک ویژگی را لغو کند، یک کپی از آخرین نسخه شناخته شده آن ویژگی را حفظ می کند. دیگر درخواست‌های را برای ناشر ارسال کند.

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

خلاصه

آنچه یاد گرفتید:

  • Weave Data Management (WDM) نمایه Weave برای مدیریت صفات در زمان واقعی است و زنده بودن و یکپارچگی داده ها را در همه منابع تضمین می کند.
  • درخواست‌ها درخواست‌های استاندارد برای عملکرد یک صفت با پاسخ مورد انتظار هستند
  • WDM دارای دو نقش پروتکل است:
    • ناشر - منبع حقیقت برای یک ویژگی خاص، درخواست‌های اعلان را می‌فرستد
    • مشترک - طرح منتشر شده را مشاهده می کند، درخواست های view ، به روز رسانی ، یا command را ارسال می کند.
  • WDM دارای دو مدل اشتراک است:
    • یک طرفه - جریان درخواست ها از مشترک به ناشر
    • متقابل - دستگاه ها مشترک یکدیگر می شوند
  • اشتراک ها با درخواست های اشتراک ایجاد می شوند
  • منابع می‌توانند پیام‌های WDM را به ویژگی‌ها ارسال کنند، حتی اگر در آنها مشترک نباشند

برای اطلاعات عمیق تر، نگاه کنید به: