डिवाइस डेटा मॉडल

Matter के डिवाइसों में अच्छी तरह से तय किया गया डेटा मॉडल (DM) होता है. यह डिवाइस की सुविधाओं की हैरारकी को मॉडल करता है. इस क्रम में सबसे ऊपर एक डिवाइस मौजूद है.

डिवाइस और एंडपॉइंट

स्मार्टफ़ोन और होम असिस्टेंट के साथ-साथ सभी डिवाइस नोड1 से बने होते हैं. नोड नेटवर्क में मौजूद एक ऐसा खास संसाधन है जिसकी पहचान की जा सकती है और जिसे पता किया जा सकता है. इसे उपयोगकर्ता, पूरे फ़ंक्शन के तौर पर अनुभव कर सकता है. Matter में नेटवर्क कम्यूनिकेशन, नोड पर शुरू और खत्म होता है.

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

डिवाइसों, नोड, और एंडपॉइंट की हैरारकी
इमेज 1: डिवाइस, नोड, और एंडपॉइंट

नोड की भूमिकाएं

नोड की भूमिका, मिलते-जुलते व्यवहार का एक सेट होती है. हर नोड में एक या एक से ज़्यादा भूमिकाएं हो सकती हैं. नोड के इस्तेमाल में ये शामिल हैं:

  • कमिश्नर: कमीशन करने वाला नोड.
  • कंट्रोलर: एक ऐसा नोड जो एक या उससे ज़्यादा नोड को कंट्रोल कर सकता है. उदाहरण के लिए, Google Home app (GHA), Google Assistant, और Google Nest Hub (2nd gen). कुछ डिवाइस टाइप के पास कंट्रोलर की भूमिका होती है. जैसे, चालू/बंद लाइट स्विच.
  • Controlee: एक नोड को एक या एक से ज़्यादा नोड से कंट्रोल किया जा सकता है. ज़्यादातर डिवाइस टाइप कंट्रोली हो सकते हैं. हालांकि, इनमें ऐसे डिवाइस शामिल नहीं हैं जिन्हें कंट्रोलर की भूमिका दी गई हो. जैसे, चालू या बंद लाइट वाला स्विच. चालू/बंद लाइट स्विच सिर्फ़ नियंत्रक हो सकता है. यह कंट्रोली नहीं हो सकता.
  • ओटीए की सेवा देने वाली कंपनी: ऐसा नोड जो ओटीए सॉफ़्टवेयर के अपडेट उपलब्ध करा सकता है.
  • ओटीए अनुरोध करने वाला टूल: एक नोड जो ओटीए सॉफ़्टवेयर को अपडेट करने का अनुरोध कर सकता है.

क्लस्टर

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

किसी नोड में कई एंडपॉइंट भी हो सकते हैं, जिनमें से हर एक एंडपॉइंट एक ही फ़ंक्शन का इंस्टेंस बनाता है. उदाहरण के लिए, एक लाइट फ़िक्स्चर अलग-अलग लाइटों पर अलग-अलग कंट्रोल रख सकता है या पावर स्ट्रिप से अलग-अलग सॉकेट को कंट्रोल किया जा सकता है.

विशेषताएं

आखिरी लेवल पर, हमें एट्रिब्यूट मिलेंगे, जो नोड के ज़रिए होते हैं. जैसे, किसी लेवल कंट्रोल क्लस्टर का मौजूदा लेवल एट्रिब्यूट. एट्रिब्यूट को uint8, स्ट्रिंग या अरे जैसे अलग-अलग डेटा टाइप के तौर पर बताया जा सकता है.

नोड, एंडपॉइंट, विशेषताओं, और निर्देशों की हैरारकी
इमेज 2: नोड, एंडपॉइंट, एट्रिब्यूट, और निर्देश

निर्देश

एट्रिब्यूट के अलावा, क्लस्टर में Command भी होते हैं. ये ऐसी कार्रवाइयां हैं जो की जा सकती हैं. ये दोनों कार्रवाइयां, Matter के DM में रिमोट प्रोसेस कॉल के बराबर होती हैं. निर्देश कार्रवाई की तरह होते हैं, जैसे कि डोर लॉक क्लस्टर पर डोर लॉक करना. निर्देश, रिस्पॉन्स और नतीजे जनरेट कर सकते हैं. Matter में, ऐसे रिस्पॉन्स को उलटी दिशा में जाते हुए कमांड भी कहा जाता है.

इवेंट

आखिर में, क्लस्टर में इवेंट भी हो सकते हैं. इन्हें पिछले स्टेट ट्रांज़िशन का रिकॉर्ड माना जा सकता है. एट्रिब्यूट की वैल्यू मौजूदा स्थितियों के बारे में बताती है. वहीं दूसरी ओर, इवेंट पुराने जर्नल होते हैं. साथ ही, इनमें टाइमस् टैंप, प्राथमिकता, और बिना किसी क्रम के बढ़ने वाला काउंटर शामिल होता है. वे स्टेट ट्रांज़िशन के साथ-साथ, ऐसे डेटा मॉडलिंग को कैप्चर करने में मदद करते हैं जिसे एट्रिब्यूट की मदद से आसानी से हासिल नहीं किया जा सकता.

डिवाइस का पूरा सैंपल
तीसरी इमेज: Matter डिवाइस इंटरैक्शन मॉडल की हैरारकी का सैंपल

Endpoint 0 को यूटिलिटी क्लस्टर के लिए रिज़र्व रखा जाता है. यूटिलिटी क्लस्टर ऐसे खास क्लस्टर होते हैं जिनमें एंडपॉइंट पर सर्विसिंग फ़ंक्शन शामिल होते हैं. जैसे, डिस्कवरी, पता लगाना, ऐप्लिकेशन की परफ़ॉर्मेंस से जुड़ी जानकारी, और सॉफ़्टवेयर अपडेट. दूसरी ओर, ऐप्लिकेशन क्लस्टर में, चालू/बंद करने या तापमान मापने जैसी मुख्य कार्रवाइयां की जा सकती हैं.

डिवाइस के टाइप

कुल मिलाकर, डिवाइस बनाने वाली कंपनी को एक नया डिवाइस प्लान करते समय किस क्लस्टर के कॉम्बिनेशन को शामिल करना चाहिए?

Matter की शर्तों के मुताबिक, डिवाइस में एक या उससे ज़्यादा डिवाइस टाइप लागू या बढ़ाने होंगे. डिवाइस टाइप, ज़रूरी और वैकल्पिक क्लस्टर का एक कलेक्शन है. यह किसी फ़िज़िकल डिवाइस के टॉप-लेवल एट्रिब्यूट, जैसे कि डिमेबल लाइट, डोर लॉक या वीडियो प्लेयर के बारे में जानकारी देता है.

डिवाइस टाइप की जानकारी, Matter से जुड़ी खास जानकारी वाले मुख्य दस्तावेज़ में नहीं दी जाती है. इसके बजाय, उनसे जुड़े दस्तावेज़ के बारे में बताया जाता है: डिवाइस लाइब्रेरी. इसी तरह, सभी ऐप्लिकेशन क्लस्टर के बारे में ऐप्लिकेशन क्लस्टर लाइब्रेरी में बताया गया है. ये तीनों दस्तावेज़ Connectivity Standards Alliance (Alliance) के सदस्यों की वेबसाइट पर देखे जा सकते हैं.

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

क्लाइंट और सर्वर

क्लस्टर या तो क्लाइंट क्लस्टर या सर्वर क्लस्टर हो सकते हैं. एक सर्वर स्टेटसफ़ुल होता है और उसमें एट्रिब्यूट, इवेंट, और निर्देश होते हैं. वहीं दूसरी ओर, क्लाइंट स्टेटलेस होता है. साथ ही, इसकी ज़िम्मेदारी रिमोट सर्वर क्लस्टर से इंटरैक्शन शुरू करने की होती है. यह इस तरह काम करता है:

  • अपनी रिमोट एट्रिब्यूट से रीड और लिखता है.
  • रीड.
  • बोले जा रहे शब्दों को रिमोट के कमांड से बदल दिया जाता है.

जबकि DM एक नोड में पदानुक्रमिक होता है, तो नोड के बीच का संबंध नहीं होता है. Matter के नोड में वर्टिकल कंट्रोलर/पेरिफ़रल या लीडर/फ़ॉलोअर संबंध नहीं हैं. इसके उलट, संबंध हॉरिज़ॉन्टल होता है: कोई भी क्लस्टर Server या Client हो सकता है. इसलिए, अलग-अलग क्लस्टर और फ़ंक्शन के मामले में नोड, सर्वर और क्लाइंट, दोनों हो सकता है.

उदाहरण के लिए, हमारे पास दो टेबल लैंप हो सकते हैं: नोड A और नोड B. दोनों नोड, रोशनी को चालू/बंद करने वाले डिवाइस टाइप पर लागू करते हैं. इस डिवाइस टाइप में एक चालू/बंद सर्वर क्लस्टर शामिल है, जो लाइट के आउटपुट को कंट्रोल करता है.

हालांकि, आम तौर पर टेबल लैंप की तरह, हमारे डिवाइसों में भी चालू/बंद लाइट स्विच वाला डिवाइस टाइप शामिल होता है. इसे लोकल चालू/बंद स्विच के लिए इस्तेमाल किया जाता है. इस डिवाइस टाइप को एक चालू/बंद क्लाइंट क्लस्टर लागू करना होगा, ताकि यह सर्वर क्लस्टर को कंट्रोल कर सके.

चालू/बंद लाइट और लाइट स्विच, दोनों को लागू करने वाले लैंप
चौथी इमेज: क्लाइंट और सर्वर क्लस्टर

इस सैंपल में, नोड A पर चालू/बंद क्लाइंट क्लस्टर, नोड A और नोड B पर चालू/बंद सर्वर क्लस्टर के एट्रिब्यूट बदल रहा है. वहीं, नोड B का क्लाइंट क्लस्टर सिर्फ़ नोड B पर ही सर्वर क्लस्टर में बदलाव कर रहा है.

अगले सेक्शन में, हम आपको बताएंगे कि क्लाइंट और सर्वर क्लस्टर कैसे इंटरैक्ट करते हैं: इंटरैक्शन मॉडल.

डिस्क्रिप्टर क्लस्टर

अपने नाम के मुताबिक ही, डिस्क्रिप्टर क्लस्टर सर्वर, खुद की जांच के बारे में जानकारी देता है. इसमें एंडपॉइंट की जानकारी दी गई है. इसमें यह जानकारी शामिल की गई है:

  • सर्वर क्लस्टर.
  • क्लाइंट क्लस्टर.
  • डिवाइस के टाइप.
  • अतिरिक्त एंडपॉइंट, जिन्हें पार्ट्स कहते हैं.

हर डिवाइस टाइप के लिए, जानकारी देने वाले क्लस्टर लागू करने की ज़रूरत होती है. रूट डिवाइस टाइप की जानकारी एंडपॉइंट 0 पर दी गई है. इसके डिस्क्रिप्टर क्लस्टर को पढ़ने से, क्लाइंट को उपलब्ध एंडपॉइंट के पूरे ट्री को देखने और ज़रूरी कार्रवाइयां करने का विकल्प मिलेगा.

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

सर्वर क्लस्टर

ServerList एट्रिब्यूट, एंडपॉइंट में क्लस्टर सर्वर की सूची बनाता है.

क्लाइंट क्लस्टर

ClientList एट्रिब्यूट, एंडपॉइंट में क्लस्टर क्लाइंट की सूची बनाता है.

डिवाइस के टाइप की सूची

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

पार्ट की सूची

PartsList में उन एंडपॉइंट की सूची शामिल है जिनका इस्तेमाल इस डिवाइस टाइप को लागू करने के लिए किया जाता है.

एंडपॉइंट 0 (रूट नोड) के PartsList में डिवाइस के अलावा (Endpoint 0) के सभी एंडपॉइंट शामिल होते हैं.

दूसरे एंडपॉइंट का PartsList आम तौर पर खाली रहता है. उदाहरण के लिए, तापमान मापने वाले सेंसर के लिए, तापमान मापने वाला सर्वर क्लस्टर ज़रूरी होता है, इसके अलावा कुछ नहीं.

अन्य डिवाइस टाइप को एक से ज़्यादा डिवाइस टाइप इंस्टेंस के ट्री स्ट्रक्चर में बनाया जा सकता है. उदाहरण के लिए, वीडियो प्लेयर डिवाइस में टीवी, वीडियो प्लेयर, स्पीकर, और अलग-अलग कॉन्टेंट ऐप्लिकेशन डिवाइस टाइप हो सकते हैं. ये सभी टाइप एक अलग एंडपॉइंट पर होते हैं.


  1. Matter की खास बातों से यह तय होता है कि किसी डिवाइस में कई नोड हो सकते हैं. उदाहरण के लिए, स्मार्टफ़ोन में कई ऐप्लिकेशन हो सकते हैं, जिनमें हर ऐप्लिकेशन एक अलग नोड होता है. इस प्राइमर के लिए, सभी डिवाइस में एक ही नोड होगा. हम उम्मीद करते हैं कि ज़्यादातर फ़िज़िकल डिवाइसों पर इस पैटर्न के हिसाब से काम होगा.