यदि हम किसी नोड पर ऑपरेशन नहीं कर सकते तो उसका डेटा मॉडल (DM) प्रासंगिक नहीं है. इंटरैक्शन मॉडल (आईएम) से, किसी नोड के डीएम का अन्य नोड के डीएम के साथ संबंध तय होता है. यह डीएम के बीच बातचीत के लिए एक सामान्य भाषा है.
नोड्स एक दूसरे के साथ इस प्रकार बातचीत करते हैं:
- एट्रिब्यूट और इवेंट को पढ़ना और उनकी सदस्यता लेना
- विशेषताओं को लिखना
- निर्देश शुरू करना
जब भी कोई नोड किसी अन्य नोड के साथ एन्क्रिप्टेड संचार अनुक्रम स्थापित करता है, तो वे एक इंटरैक्शन संबंध बनाते हैं. इंटरैक्शन एक या अधिक लेनदेन से बने हो सकते हैं, और लेनदेन एक या अधिक क्रियाओं से बने होते हैं जिन्हें नोड्स के बीच IM-स्तरीय संदेशों के रूप में समझा जा सकता है.
लेनदेन पर कई क्रियाएं समर्थित हैं, जैसे कि रीड रिक्वेस्ट एक्शन जो किसी अन्य नोड से एट्रिब्यूट या इवेंट का अनुरोध करता है, या इसकी प्रतिक्रिया, रिपोर्ट डेटा एक्शन, जो सर्वर से क्लाइंट तक सूचना वापस ले जाता है.
आरंभकर्ता और लक्ष्य
लेन-देन शुरू करने वाले नोड को शुरुआत करने वाला नोड कहा जाता है. वहीं, जवाब देने वाले नोड को टारगेट नोड कहा जाता है. आम तौर पर, इनीशिएटर एक क्लाइंट क्लस्टर होता है और टारगेट एक सर्वर क्लस्टर होता है. हालांकि, इस पैटर्न के कुछ अपवाद भी हैं. जैसे, सदस्यता से जुड़े इंटरैक्शन. इनके बारे में इस सेक्शन में आगे बताया गया है.
ग्रुप
Matter में मौजूद नोड, किसी ग्रुप से जुड़े हो सकते हैं. डिवाइसों का समूह एक ही क्रिया में एक साथ कई डिवाइसों को संबोधित करने और संदेश भेजने का तंत्र है. किसी समूह के सभी नोड्स एक ही समूह आईडी, यानी 16-बिट पूर्णांक, साझा करते हैं.
समूह-स्तरीय संचार (ग्रुपकास्ट) पूरा करने के लिए, Matter IPv6 Multicast संदेशों का लाभ उठाता है और समूह के सभी सदस्यों का पता एक ही Multicast होता है.
पथ
जब भी हमें किसी एट्रिब्यूट, इवेंट या कमांड के साथ इंटरैक्ट करना होता है, तो हमें इस इंटरैक्शन के लिए पाथ तय करना होता है. यह पाथ, नोड की डेटा मॉडल हाइरार्की में किसी एट्रिब्यूट, इवेंट या कमांड की जगह होती है. हालांकि, पाथ में एक साथ कई नोड या क्लस्टर को शामिल करने के लिए, ग्रुप या वाइल्डकार्ड ऑपरेटर का इस्तेमाल किया जा सकता है. इससे इन इंटरैक्शन को एग्रीगेट किया जा सकता है और कार्रवाइयों की संख्या कम हो सकती है.
कम्यूनिकेशन को बेहतर बनाने के लिए, यह तरीका ज़रूरी है. उदाहरण के लिए, जब कोई उपयोगकर्ता सभी लाइटें बंद करना चाहता है, तो वॉइस असिस्टेंट, अलग-अलग इंटरैक्शन के क्रम के बजाय, ग्रुप में शामिल कई लाइटों के साथ एक ही इंटरैक्शन कर सकती है. यदि आरंभकर्ता प्रत्येक प्रकाश के साथ व्यक्तिगत अंतर्क्रियाएं निर्मित करता है, तो यह डिवाइस की प्रतिक्रियाशीलता में मानव-बोधगम्य विलंबता उत्पन्न कर सकता है. इस इफ़ेक्ट की वजह से, कई डिवाइसों को किसी कमांड पर प्रतिक्रिया देने में समय लगता है. इसे अक्सर "पॉपकॉर्न इफ़ेक्ट" कहा जाता है.
Matter में पथ को नीचे दिए गए विकल्पों में से किसी एक का उपयोग करके संकलित किया जा सकता है:
<path> = <node> <endpoint> <cluster> <attribute | event | command>
<path> = <group ID> <cluster> <attribute | event | command>
और इन पथ बिल्डिंग ब्लॉकों के भीतर, endpoint और cluster में एक से अधिक नोड इंस्टेंस चुनने के लिए वाइल्डकार्ड ऑपरेटर भी शामिल हो सकते हैं.
टाइम्ड और अनटाइम्ड
Write या Invoke Transaction को दो तरीकों से किया जा सकता है: Timed और Untimed. टाइम किए गए लेन-देन, Write/Invoke ऐक्शन भेजने के लिए ज़्यादा से ज़्यादा टाइम आउट सेट करते हैं. इस टाइमआउट का मकसद, लेन-देन पर इंटरसेप्ट अटैक को रोकना है. यह खास तौर पर उन डिवाइसों के लिए मान्य है जो ऐसेट का ऐक्सेस देते हैं. जैसे, गैराज के दरवाज़े खोलने वाले डिवाइस और लॉक.
टाइम के हिसाब से होने वाले लेन-देन को समझने के लिए, यह जानना ज़रूरी है कि इंटरसेप्ट अटैक कैसे हो सकते हैं और टाइम के हिसाब से होने वाले लेन-देन क्यों ज़रूरी हैं.
इंटरसेप्ट अटैक
इंटरसेप्ट अटैक का पैटर्न इस तरह होता है:
- ऐलिस, बॉब को शुरुआती मैसेज भेजती है. जैसे, लिखने का अनुरोध करने वाला ऐक्शन.
- ईव, जो मध्यस्थ है, संदेश को रोक लेता है और बॉब को उसे प्राप्त करने से रोकता है, उदाहरण के लिए किसी प्रकार के रेडियो जैमिंग के माध्यम से.
- बॉब से कोई जवाब न मिलने पर ऐलिस दूसरा संदेश भेजती है.
- ईव फिर से इंटरसेप्ट करती है और बॉब को यह मैसेज नहीं मिलने देती.
- ईव, इंटरसेप्ट किए गए पहले मैसेज को बॉब को भेजती है. यह मैसेज ऐसा दिखता है जैसे एलिस ने भेजा हो.
- बॉब ऐलिस (और ईव) को जवाब भेजता है.
- ईव, इंटरसेप्ट किए गए दूसरे मैसेज को बाद में फिर से चलाने के लिए सेव करके रखती है. बॉब को एलिस का दूसरा इंटरसेप्ट किया गया ओरिजनल मैसेज कभी नहीं मिला. इसलिए, वह इसे स्वीकार कर लेगा. अगर मैसेज में "लॉक खोलो" जैसे कमांड को कोड किया गया है, तो यह मैसेज सुरक्षा से जुड़े उल्लंघन को दिखाता है.
इस तरह के हमलों को रोकने के लिए, टाइम की गई कार्रवाइयां, लेन-देन की शुरुआत में ज़्यादा से ज़्यादा लेन-देन का टाइम आउट सेट करती हैं. अगर ईव, हमला करने के तरीके के पहले छह चरण पूरे कर लेती है, तो भी वह सातवें चरण में मैसेज को फिर से नहीं चला पाएगी. ऐसा इसलिए, क्योंकि लेन-देन का टाइम आउट खत्म हो गया है.
समयसीमा वाले लेन-देन से, कार्रवाइयों की संख्या और जटिलता बढ़ जाती है. इसलिए, हर लेन-देन के लिए इनका इस्तेमाल करने का सुझाव नहीं दिया जाता. इनका इस्तेमाल सिर्फ़ उन डिवाइसों पर किया जाना चाहिए जो सुरक्षा और निजता से जुड़ी ऐसेट को कंट्रोल करते हैं.
SDK अमूर्तता
लेन-देन पढ़ें, लेन-देन लिखें, और लेन-देन शुरू करें सेक्शन में, एसडीके की ओर से की गई इंटरैक्शन मॉडल की कार्रवाइयों की खास जानकारी मिलती है.
Matter SDK का इस्तेमाल करके प्रॉडक्ट बनाने वाला डेवलपर, आम तौर पर सीधे तौर पर कार्रवाइयां नहीं करता. कार्रवाइयों को एसडीके के फ़ंक्शन से अलग किया जाता है. ये फ़ंक्शन, कार्रवाइयों को इंटरैक्शन में शामिल करते हैं. हालांकि, IM क्रियाओं को समझना महत्वपूर्ण है ताकि इंजीनियर को Matter की क्षमताओं पर अच्छी दक्षता मिल सके, साथ ही SDK कार्यान्वयन पर बेहतर नियंत्रण मिल सके.