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