Matter में मौजूद डिवाइसों का डेटा मॉडल (डीएम) अच्छी तरह से तय किया गया होता है. यह किसी डिवाइस की सुविधाओं का हैरारकी वाला मॉडल होता है. इस क्रम में सबसे ऊपर डिवाइस होता है.
डिवाइस और एंडपॉइंट
स्मार्टफ़ोन और होम असिस्टेंट जैसे सभी डिवाइसों में नोड1 होते हैं. नोड, नेटवर्क में मौजूद एक ऐसा यूनीक संसाधन होता है जिसकी पहचान की जा सकती है और जिसे ऐक्सेस किया जा सकता है. उपयोगकर्ता इसे पूरी तरह से काम करने वाले संसाधन के तौर पर देख सकता है. Matter में नेटवर्क कम्यूनिकेशन, नोड से शुरू और खत्म होता है.
नोड, एंडपॉइंट का कलेक्शन होते हैं. हर एंडपॉइंट में सुविधाओं का एक सेट होता है. उदाहरण के लिए, एक एंडपॉइंट लाइटिंग की सुविधा से जुड़ा हो सकता है, जबकि दूसरा एंडपॉइंट हलचल का पता लगाने वाली सुविधा से जुड़ा हो सकता है. इसके अलावा, कोई अन्य एंडपॉइंट यूटिलिटी से जुड़ा हो सकता है, जैसे कि डिवाइस ओटीए.
नोड की भूमिकाएं
नोड की भूमिका, उससे जुड़े व्यवहारों का एक सेट होती है. हर नोड की एक या उससे ज़्यादा भूमिकाएं हो सकती हैं. नोड की भूमिकाओं में ये शामिल हैं:
- कमिश्नर: ऐसा नोड जो कमीशनिंग करता है.
- कंट्रोलर: एक ऐसा नोड जो एक या उससे ज़्यादा नोड को कंट्रोल कर सकता है. उदाहरण के लिए, Google Home app (GHA), Google Assistant, और Google Nest Hub (2nd gen). कुछ डिवाइस टाइप, जैसे कि On/Off Light Switch, कंट्रोलर की भूमिका निभाते हैं.
- कंट्रोल किया जाने वाला नोड: ऐसा नोड जिसे एक या उससे ज़्यादा नोड से कंट्रोल किया जा सकता है. ज़्यादातर डिवाइसों को कंट्रोल किया जा सकता है. हालांकि, कुछ डिवाइसों को कंट्रोल नहीं किया जा सकता. जैसे, लाइट को चालू/बंद करने वाला स्विच. On/Off Light Switch सिर्फ़ कंट्रोलर हो सकता है. इसे कंट्रोल नहीं किया जा सकता.
- ओटीए प्रोवाइडर: ऐसा नोड जो ओटीए सॉफ़्टवेयर अपडेट उपलब्ध करा सकता है.
- ओटीए रिक्वेस्ट करने वाला: ऐसा नोड जो ओटीए सॉफ़्टवेयर अपडेट का अनुरोध कर सकता है.
क्लस्टर
किसी एंडपॉइंट में, एक नोड में एक या उससे ज़्यादा क्लस्टर होते हैं. ये डिवाइस की हैरारकी में एक और चरण हैं, क्योंकि ये खास फ़ंक्शन को ग्रुप करते हैं. जैसे, स्मार्ट प्लग पर चालू/बंद क्लस्टर या डिम होने वाली लाइट एंडपॉइंट पर लेवल कंट्रोल क्लस्टर.
किसी नोड में कई एंडपॉइंट भी हो सकते हैं. हर एंडपॉइंट, एक ही फ़ंक्शन का इंस्टेंस बनाता है. उदाहरण के लिए, लाइट फ़िक्सचर में अलग-अलग लाइटों को अलग-अलग कंट्रोल करने की सुविधा हो सकती है. इसके अलावा, पावर स्ट्रिप में अलग-अलग सॉकेट को कंट्रोल करने की सुविधा हो सकती है.
विशेषताएं
आखिरी लेवल पर हमें एट्रिब्यूट मिलेंगे. ये नोड की स्थितियां होती हैं. जैसे, लेवल कंट्रोल क्लस्टर का मौजूदा लेवल एट्रिब्यूट. एट्रिब्यूट को uint8, स्ट्रिंग या कलेक्शन जैसे अलग-अलग डेटा टाइप के तौर पर तय किया जा सकता है.
निर्देश
एट्रिब्यूट के अलावा, क्लस्टर में कमांड भी होते हैं. ये ऐसी कार्रवाइयां होती हैं जिन्हें किया जा सकता है. ये Matter के डीएम में, रिमोट प्रोसीज़र कॉल के बराबर होते हैं. कमांड, वर्ब की तरह होते हैं. जैसे, दरवाज़े के लॉक क्लस्टर पर दरवाज़ा लॉक करें. कमांड से जवाब और नतीजे जनरेट हो सकते हैं. Matter में, ऐसे जवाबों को भी कमांड के तौर पर परिभाषित किया जाता है. ये जवाब, कमांड के उलट दिशा में जाते हैं.
इवेंट
आखिर में, क्लस्टर में इवेंट भी हो सकते हैं. इन्हें पिछली स्थिति में हुए बदलावों के रिकॉर्ड के तौर पर देखा जा सकता है. एट्रिब्यूट, मौजूदा स्थितियों को दिखाते हैं. वहीं, इवेंट, बीते समय की जानकारी देते हैं. इनमें लगातार बढ़ने वाला काउंटर, टाइमस्टैंप, और प्राथमिकता शामिल होती है. इनकी मदद से, स्टेट ट्रांज़िशन को कैप्चर किया जा सकता है. साथ ही, डेटा मॉडलिंग की जा सकती है. हालांकि, एट्रिब्यूट की मदद से ऐसा करना आसान नहीं होता.
एंडपॉइंट 0 को यूटिलिटी क्लस्टर के लिए रिज़र्व किया गया है. यूटिलिटी क्लस्टर, ऐसे क्लस्टर होते हैं जिनमें किसी एंडपॉइंट पर सर्विसिंग फ़ंक्शन शामिल होते हैं. जैसे, डिस्कवरी, ऐड्रेसिंग, डाइग्नोस्टिक्स, और सॉफ़्टवेयर अपडेट. वहीं दूसरी ओर, ऐप्लिकेशन क्लस्टर, मुख्य कार्रवाइयों के साथ काम करते हैं. जैसे, चालू/बंद करना या तापमान मापना.
डिवाइस के टाइप
जब कोई मैन्युफ़ैक्चरर नया डिवाइस बनाने का प्लान करता है, तो उसे क्लस्टर के कौनसे कॉम्बिनेशन शामिल करने चाहिए?
Matter की खास जानकारी के मुताबिक, डिवाइस को एक या उससे ज़्यादा डिवाइस टाइप को लागू करना या बढ़ाना ज़रूरी है. डिवाइस टाइप, ज़रूरी और वैकल्पिक क्लस्टर का कलेक्शन होता है. इससे किसी फ़िज़िकल डिवाइस के टॉप-लेवल एट्रिब्यूट के बारे में पता चलता है. जैसे, डिम होने वाली लाइट, डोर लॉक या वीडियो प्लेयर.
डिवाइस के टाइप, Matter के मुख्य दस्तावेज़ में नहीं बताए गए हैं. इसके बजाय, इन्हें साथ में दिए गए दस्तावेज़ में बताया गया है: डिवाइस लाइब्रेरी. इसी तरह, सभी ऐप्लिकेशन क्लस्टर को ऐप्लिकेशन क्लस्टर लाइब्रेरी में तय किया जाता है. ये तीनों दस्तावेज़, Connectivity Standards Alliance (Alliance) सदस्यों की वेबसाइट पर मिल सकते हैं.
डिवाइस टाइप को लागू करने वाले हर एंडपॉइंट को, उस डिवाइस टाइप को तय करने वाले ज़रूरी क्लस्टर लागू करने होंगे. ज़रूरी क्लस्टर के अलावा, एंडपॉइंट में अतिरिक्त क्लस्टर भी लागू किए जा सकते हैं. इनमें डिवाइस टाइप के एक या उससे ज़्यादा वैकल्पिक क्लस्टर या ऐसे क्लस्टर भी शामिल हैं जो डिवाइस टाइप का हिस्सा नहीं हैं.
क्लाइंट और सर्वर
क्लस्टर, क्लाइंट क्लस्टर या सर्वर क्लस्टर हो सकते हैं. सर्वर स्टेटफ़ुल होता है और इसमें एट्रिब्यूट, इवेंट, और निर्देश होते हैं. वहीं, क्लाइंट स्टेटलेस होता है और इसकी ज़िम्मेदारी रिमोट सर्वर क्लस्टर के साथ इंटरैक्शन शुरू करना है. इस तरह, यह ये काम करता है:
- पढ़ और लिख सकता है.
- रीड.
- कॉल किया जा सकता है.
किसी नोड में डीएम हैरारकी के हिसाब से होता है, लेकिन नोड के बीच का संबंध ऐसा नहीं होता. Matter में मौजूद नोड के बीच वर्टिकल कंट्रोलर/पेरिफ़ेरल या लीडर/फ़ॉलोअर का संबंध नहीं होता. इसके उलट, यह संबंध हॉरिज़ॉन्टल होता है: कोई भी क्लस्टर, सर्वर या क्लाइंट हो सकता है. इसलिए, अलग-अलग क्लस्टर और फ़ंक्शन के हिसाब से, कोई नोड सर्वर और क्लाइंट, दोनों हो सकता है.
उदाहरण के लिए, हमारे पास दो टेबल लैंप हो सकते हैं: नोड A और नोड B. दोनों नोड, On/Off Light डिवाइस टाइप को लागू करते हैं. इस डिवाइस टाइप में एक On/Off Server क्लस्टर शामिल होता है. यह क्लस्टर, डिवाइस से निकलने वाली रोशनी को कंट्रोल करता है.
हालांकि, सामान्य टेबल लैंप की तरह ही हमारे फ़िज़िकल डिवाइसों में भी, उनके स्थानीय ऑन/ऑफ़ स्विच के लिए लाइट को चालू/बंद करने वाला स्विच डिवाइस टाइप शामिल होगा. इस डिवाइस टाइप में On/Off Client क्लस्टर लागू करना ज़रूरी है, ताकि यह सर्वर क्लस्टर को कंट्रोल कर सके.
इस सैंपल में, नोड A पर मौजूद ऑन/ऑफ़ क्लाइंट क्लस्टर, नोड A और नोड B पर मौजूद ऑन/ऑफ़ सर्वर क्लस्टर के एट्रिब्यूट बदल रहा है. वहीं, नोड B का क्लाइंट क्लस्टर, सिर्फ़ नोड B पर मौजूद सर्वर क्लस्टर को बदल रहा है.
अगले सेक्शन में, हम आपको बताएंगे कि क्लाइंट और सर्वर क्लस्टर कैसे इंटरैक्ट करते हैं: इंटरैक्शन मॉडल.
ब्यौरे वाला क्लस्टर
जैसा कि नाम से पता चलता है, डिस्क्रिप्टर क्लस्टर सर्वर, आत्मनिरीक्षण की जानकारी देता है. यह एंडपॉइंट के बारे में जानकारी देता है. इसमें ये शामिल हैं:
- सर्वर क्लस्टर.
- क्लाइंट क्लस्टर.
- डिवाइस के टाइप.
- अतिरिक्त एंडपॉइंट, जिन्हें पार्ट कहा जाता है.
हर तरह के डिवाइस के लिए, डिस्क्रिप्टर क्लस्टर लागू करना ज़रूरी है. रूट डिवाइस टाइप को एंडपॉइंट 0 पर तय किया जाता है. इसके डिस्क्रिप्टर क्लस्टर को पढ़ने से, क्लाइंट को उपलब्ध एंडपॉइंट के पूरे ट्री को देखने और लागू होने वाली कार्रवाइयां करने की सुविधा मिलेगी.
कमिश्नर या कंट्रोल करने वाला डिवाइस, जैसे कि फ़ोन या हब, डिस्क्रिप्टर क्लस्टर में मौजूद जानकारी का इस्तेमाल करके, डिवाइस (लाइट, स्विच, पंप, थर्मोस्टैट) को मॉडल कर सकता है. साथ ही, डिवाइस के उस खास इंस्टेंस से लागू की गई खास सुविधाओं को मॉडल कर सकता है. इससे उपयोगकर्ता को सही यूज़र इंटरफ़ेस (यूआई) दिखता है.
सर्वर क्लस्टर
ServerList एट्रिब्यूट, एंडपॉइंट में मौजूद क्लस्टर सर्वर की सूची दिखाता है.
क्लाइंट क्लस्टर
ClientList एट्रिब्यूट, एंडपॉइंट में क्लस्टर क्लाइंट की सूची दिखाता है.
डिवाइस टाइप की सूची
DeviceTypeList एट्रिब्यूट, एंडपॉइंट के साथ काम करने वाले डिवाइस टाइप की सूची होती है. साथ ही, इसमें उनके अलग-अलग वर्शन की जानकारी भी होती है. इसमें कम से कम एक डिवाइस टाइप होना चाहिए.
पुर्ज़ों की सूची
PartsList में उन एंडपॉइंट की सूची होती है जिनका इस्तेमाल, इस डिवाइस टाइप को लागू करने के लिए किया जाता है.
एंडपॉइंट 0 (रूट नोड) के PartsList में, डिवाइस के सभी एंडपॉइंट शामिल होते हैं. हालांकि, इसमें एंडपॉइंट 0 शामिल नहीं होता.
आम तौर पर, अन्य एंडपॉइंट के PartsList खाली होंगे. उदाहरण के लिए, तापमान मापने वाले सेंसर के लिए, तापमान मापने वाले सर्वर क्लस्टर की ज़रूरत होती है. इसके अलावा, किसी और चीज़ की ज़रूरत नहीं होती.
अन्य टाइप के डिवाइसों को, एक से ज़्यादा डिवाइस टाइप इंस्टेंस के ट्री स्ट्रक्चर में बनाया जा सकता है. उदाहरण के लिए, वीडियो प्लेयर डिवाइस टाइप में टीवी, वीडियो प्लेयर, स्पीकर, और अलग-अलग कॉन्टेंट ऐप्लिकेशन डिवाइस टाइप शामिल हो सकते हैं. इनमें से हर एक अलग एंडपॉइंट पर होता है.
-
Matter की खास जानकारी से पता चलता है कि किसी डिवाइस में कई नोड हो सकते हैं. उदाहरण के लिए, स्मार्टफ़ोन में कई ऐप्लिकेशन हो सकते हैं. इनमें से हर ऐप्लिकेशन एक अलग नोड होता है. इस प्राइमर के लिए, सभी डिवाइसों में एक ही नोड होगा. उम्मीद है कि ज़्यादातर फ़िज़िकल डिवाइस इस पैटर्न को फ़ॉलो करेंगे. ↩