वीव स्कीमा

वीव स्कीमा

स्कीमा, दिए गए डेटा मॉडल के बारे में बताता है जो किसी Weave सिस्टम में लॉजिकल या फ़िज़िकल डिवाइस से निकलने वाले डेटा को दिखाने और समझने में मदद करता है.

स्कीमा है:

  • स्टैंडर्डाइज़ किया गया — इसमें फ़ंक्शनैलिटी की औपचारिक तौर पर मंज़ूरी दी गई होती हैं, जो एक जैसा इंटरफ़ेस उपलब्ध कराती हैं, भले ही, उसे लागू क्यों न किया गया हो. उदाहरण के लिए, स्कीमा में दिखाए गए लाइट बल्ब की मुख्य सुविधाएं हमेशा चालू रहेंगी या नहीं. जैसे, चालू/बंद स्थितियां और कार्रवाइयां या रोशनी को कम करने के लेवल.
  • कंपोज़िशनल — उपयोगकर्ता, अच्छी तरह से तय की गई सुविधाओं वाले छोटे-छोटे संसाधन बना सकते हैं. उदाहरण के लिए, Nest Detect में दो तरह के सेंसर होते हैं: मोशन और ओपन/क्लोज़र. इन सेंसर टाइप की फ़ंक्शनैलिटी को स्कीमा में स्टैंडर्ड किया गया है. साथ ही, अलग-अलग डिवाइसों पर इनका फिर से इस्तेमाल किया जा सकता है.
  • एक्सटेंशन का इस्तेमाल किया जा सकता है — उपयोगकर्ता, स्टैंडर्ड फ़ंक्शनैलिटी के कस्टम एक्सटेंशन बना सकते हैं. उदाहरण के लिए, किसी खास सुरक्षा ऐप्लिकेशन की ज़्यादा सुविधाओं के साथ स्कीमा के मोशन सेंसर की सामान्य सुविधा को बढ़ाया जा सकता है.
  • वर्शन किए गए — स्कीमा में किए जाने वाले सभी बदलावों के लिए, फ़ॉरवर्ड और पुराने सिस्टम के साथ काम करने की सुविधा होती है.

स्कीमा तीन तत्वों को परिभाषित करता है: विशेषताएं, इंटरफ़ेस, और संसाधन. रोज़मर्रा के कामों के लिए, Nest नेटवर्क के तकरीबन सभी फ़ंक्शन स्कीमा में बताए गए हैं. आइए, हर एलिमेंट के बारे में ज़्यादा जानते हैं.

विशेषताएं

विशेषता बुनियादी फ़ंक्शन की इकाई है. ये सामान्य डिवाइस की स्थितियां या क्षमताएं हो सकती हैं या इसके कॉन्फ़िगरेशन के बारे में बताने वाली कॉन्फ़िगरेशन के बारे में बता सकती हैं. हो सकता है कि एक सुविधा अलग-अलग डिवाइसों पर या किसी एक डिवाइस पर काम करे.

उदाहरण के लिए, Nest डिवाइस में इस्तेमाल करने के लिए, आप स्कीमा में इन विशेषताओं को शामिल कर सकते हैं:

विशेषता

इंटरफ़ेस

हम विशेषताओं के ग्रुप को एक साथ ग्रुप करके रखते हैं, ताकि उनका कंपोज़िशन बेहतर हो सके. ऐसा खास तौर पर तब होता है, जब कई एट्रिब्यूट नए फ़ंक्शन को दिखाते हैं. विशेषताओं के ऐसे समूह को इंटरफ़ेस कहा जाता है.

उदाहरण के लिए, इंटरकॉम इंटरफ़ेस में स्पीकर और माइक्रोफ़ोन की विशेषताएं शामिल हो सकती हैं:

विशेषताएं और इंटरफ़ेस

रिसॉर्स

संसाधन , स्कीमा में लॉजिकल या शारीरिक चीज़ों को दिखाता है. उदाहरण के लिए, Nest Protect एक संसाधन है. इसी तरह Nest Guard भी है. या कोई उपयोगकर्ता या होम पेज जैसा कोई स्ट्रक्चर.

रिसॉर्स में विशेषताओं का एक सेट होता है, जो उनके कॉन्फ़िगरेशन, स्थिति, और क्षमता को एक जगह पर जोड़ता है.

संसाधनों, इंटरफ़ेस, और विशेषताओं के बीच संबंध इस तरह दिखता है:

संसाधन, इंटरफ़ेस, और विशेषताएं

जैसा कि आप देख सकते हैं, मोशन विशेषता जैसी कुछ विशेषताएं, अलग-अलग संसाधनों के लिए आम हैं. कुछ इंटरफ़ेस, जैसे इंटरकॉम इंटरफ़ेस भी आम तौर पर अलग-अलग संसाधनों के लिए होते हैं. स्कीमा, इंटरफ़ेस, और संसाधनों को स्कीमा में एक बार तय किया जाता है. साथ ही, Weave सिस्टम में अलग-अलग संसाधनों और डिवाइसों में इसका फिर से इस्तेमाल किया जाता है.

विशेषता बताने वाले एलिमेंट

विशेषताओं को तीन मुख्य चीज़ों में बांटा गया है: प्रॉपर्टी, निर्देश, और इवेंट. चलिए, एट्रिब्यूट की हर खास जानकारी के उदाहरण देखते हैं.

प्रॉपर्टी

प्रॉपर्टी किसी विशेषता की स्थिति को दिखाती हैं. प्रॉपर्टी या तो सिर्फ़ पढ़ने के लिए या सिर्फ़ पढ़ने के लिए.

उदाहरण के लिए :

  • सॉफ़्टवेयर वर्शन डिवाइस की पहचान बताने वाले एट्रिब्यूट की प्रॉपर्टी है. ज़्यादातर डिवाइसों में यह विशेषता शामिल होती है. Nest Thermostat, Cameras, और Protects—इन सभी का अपना खास सॉफ़्टवेयर वर्शन होता है.
  • बोल्ट स्टेट, बोल्ट लॉक एट्रिब्यूट की प्रॉपर्टी है. हालांकि, यह खास तौर पर येल x Nest लॉक जैसे डिवाइस के लिए होती है. उदाहरण के लिए, हो सकता है कि आपको Nest Thermostat पर बोल्ट लॉक न दिखे.

निर्देश

कमांड किसी खासियत के लिए खास कार्रवाई के लिए खास अनुरोध होते हैं, जिसमें उम्मीद के मुताबिक जवाब होता है. आम तौर पर, इन्हें कस्टम निर्देश कहा जाता है. साथ ही, इन्हें प्रॉपर्टी के लिए खास स्थिति में बदला जा सकता है. उदाहरण के लिए :

  • Bolt Lock में बदलाव एक कस्टम निर्देश है, जो बोल्ट लॉक विशेषता की बोल्ट स्थिति प्रॉपर्टी में बदलाव करता है.
  • उपयोगकर्ता पिनकोड सेट करें एक कस्टम निर्देश है, जो नया उपयोगकर्ता पिन कोड बनाता है या उपयोगकर्ता पिन कोड सेटिंग विशेषता की मौजूदा उपयोगकर्ता पिनकोड प्रॉपर्टी को अपडेट करता है.

इवेंट

इवेंट किसी विशेषता के लिए होने के रिकॉर्ड होते हैं. वे सदस्यों को विशेषताओं वाली प्रॉपर्टी में या कुछ दूसरी तरह की चीज़ों में बदलाव के बारे में सूचना देते हैं, जैसे कि सिस्टम रीसेट.

उदाहरण के लिए, बोल्ट लॉक एट्रिब्यूट के बोल्ट ऐक्टर स्टेट बदलाव इवेंट से, एक से ज़्यादा बोल्ट लॉक प्रॉपर्टी के मौजूदा राज्य के सदस्य को पता चलता है. साथ ही, यह उस ऐक्टर को भी बताता है जिसने बोल्ट ऐक्टर स्टेट प्रॉपर्टी को पिछली बार बदला था. यह सभी जानकारी एक ही इवेंट के रूप में डिलीवर की जाती है.

वीव स्कीमा के ब्यौरे की भाषा

Weave में स्कीमा की विशेषताओं, इंटरफ़ेस, और संसाधनों के बारे में जानकारी दी जाती है. साथ ही, इनका इस्तेमाल खास डोमेन के लिए बनी भाषा (डीएसएल) का इस्तेमाल करके किया जाता है. यह लैंग्वेज, Google प्रोटोकॉल बफ़र v3 के सिंटैक्स का इस्तेमाल करती है. इस भाषा को Weave Schema description Language (WDL) कहा जाता है.

WDL को एक कंपाइलर के ज़रिए चलाया जाता है जो प्लैटफ़ॉर्म के हिसाब से, अलग-अलग रिएलिटी और एन्कोडिंग जनरेट करता है. जनरेट किया गया कोड, संसाधन पर निर्भर करता है:

  • Objective-C, Swift, Java, Scala — मोबाइल ऐप्लिकेशन और क्लाउड सेवाएं
  • Weave TLV एन्कोडिंग वाले C++ — एम्बेड किए गए डिवाइस और मोबाइल ऐप्लिकेशन

हम बाद में WDL के उदाहरणों के बारे में ज़्यादा जानेंगे.

Recap

आपने क्या सीखा:

  • स्कीमा किसी Weave सिस्टम के लिए बुनियादी डेटा मॉडल के बारे में बताता है.
  • स्कीमा तीन एलिमेंट की जानकारी देता है:
    • विशेषता बुनियादी काम की एक इकाई
    • इंटरफ़ेस उन विशेषताओं का ग्रुप है जो नई, खास सुविधा को दिखाती हैं
    • संसाधन एक तार्किक या भौतिक चीज़
  • विशेषताओं में प्रॉपर्टी, निर्देश, और इवेंट शामिल होते हैं:
    • प्रॉपर्टी संसाधन की खासियत की स्थिति
    • निर्देश ज़रूरत के हिसाब से कार्रवाई के लिए अनुरोध
    • इवेंट किसी विशेषता की बढ़ने का रिकॉर्ड
  • इस स्कीमा को, Weave स्कीमा की जानकारी वाली भाषा (WDL) का इस्तेमाल करके तय किया गया है , जो Google प्रोटोकॉल बफ़र v3 पर आधारित है

ज़्यादा जानकारी के लिए, यहां देखें: