इंटरैक्शन मॉडल की अवधारणाएं

अगर किसी नोड के डेटा मॉडल (डीएम) पर कोई कार्रवाई नहीं की जा सकती, तो वह काम का नहीं है. इंटरैक्शन मॉडल (आईएम), किसी नोड के डीएम और अन्य नोड के डीएम के बीच के रिश्ते को तय करता है. यह डीएम के बीच बातचीत की एक सामान्य भाषा है.

नोड, इन तरीकों से एक-दूसरे के साथ इंटरैक्ट करते हैं:

  • एट्रिब्यूट और इवेंट को पढ़ना और उनकी सदस्यता लेना
  • एट्रिब्यूट में लिखना
  • कमांड को लागू करना

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

इंटरैक्शन मॉडल का क्रम
पहली इमेज: इंटरैक्शन मॉडल का क्रम

लेन-देन पर कई कार्रवाइयां की जा सकती हैं. जैसे, रीड रिक्वेस्ट ऐक्शन. इससे किसी दूसरे नोड से कोई एट्रिब्यूट या इवेंट का अनुरोध किया जाता है. इसके अलावा, रिपोर्ट डेटा ऐक्शन, जो सर्वर से क्लाइंट तक जानकारी वापस भेजता है.

शुरुआत करने वाले और टारगेट

**शुरुआत करने वाला** वह नोड होता है जो लेन-देन शुरू करता है. वहीं, **टारगेट** वह नोड होता है जो जवाब देता है. आम तौर पर, शुरुआत करने वाला नोड, क्लाइंट क्लस्टर होता है और टारगेट नोड, सर्वर क्लस्टर होता है. हालांकि, इस पैटर्न के कुछ अपवाद भी हैं. जैसे, सदस्यता के इंटरैक्शन. इनके बारे में इस सेक्शन में आगे बताया गया है.

ग्रुप

Matter में नोड, किसी ग्रुप का हिस्सा हो सकते हैं. डिवाइस का ग्रुप, एक ही कार्रवाई में कई डिवाइसों को एक साथ मैसेज भेजने और उनसे इंटरैक्ट करने का एक तरीका है. किसी ग्रुप के सभी नोड का ग्रुप आईडी एक ही होता है. यह 16-बिट का इंटिजर होता है.

ग्रुप-लेवल पर कम्यूनिकेशन (ग्रुपकास्ट) के लिए, Matter IPv6 Multicast मैसेज का इस्तेमाल करता है. साथ ही, ग्रुप के सभी सदस्यों का Multicast पता एक ही होता है.

पाथ

जब भी हमें किसी एट्रिब्यूट, इवेंट या कमांड के साथ इंटरैक्ट करना होता है, तो हमें इस इंटरैक्शन के लिए पाथ तय करना होता है. यह किसी नोड के डेटा मॉडल के क्रम में, एट्रिब्यूट, इवेंट या कमांड की जगह होती है. ध्यान दें कि पाथ में एक साथ कई नोड या क्लस्टर से इंटरैक्ट करने के लिए, ग्रुप या वाइल्डकार्ड ऑपरेटर का भी इस्तेमाल किया जा सकता है. इससे इन इंटरैक्शन को एग्रीगेट किया जा सकता है और कार्रवाइयों की संख्या कम की जा सकती है.

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

Matter में पाथ को, नीचे दिए गए किसी एक विकल्प का इस्तेमाल करके बनाया जा सकता है:

<path> = <node> <endpoint> <cluster> <attribute | event | command>
<path> = <group ID>        <cluster> <attribute | event | command>

इन पाथ बिल्डिंग ब्लॉक में, endpoint और cluster में एक से ज़्यादा नोड इंस्टेंस चुनने के लिए, वाइल्डकार्ड ऑपरेटर भी शामिल हो सकते हैं.

टाइम के साथ और बिना टाइम के

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

टाइम के साथ किए जाने वाले लेन-देन को समझने के लिए, यह जानना ज़रूरी है कि इंटरसेप्ट अटैक कैसे हो सकते हैं और टाइम के साथ किए जाने वाले लेन-देन क्यों ज़रूरी हैं.

इंटरसेप्ट अटैक

इंटरसेप्ट अटैक का पैटर्न इस तरह होता है:

  1. ऐलिस, बॉब को शुरुआती मैसेज भेजती है. जैसे, राइट रिक्वेस्ट ऐक्शन.
  2. ईव, बीच में आकर मैसेज को इंटरसेप्ट कर लेती है और बॉब को मैसेज नहीं मिलने देती. उदाहरण के लिए, रेडियो जैमिंग की मदद से.
  3. ऐलिस को बॉब से कोई जवाब नहीं मिलता, इसलिए वह दूसरा मैसेज भेजती है.
  4. ईव, फिर से मैसेज को इंटरसेप्ट कर लेती है और बॉब को मैसेज नहीं मिलने देती.
  5. ईव, इंटरसेप्ट किए गए पहले मैसेज को बॉब को भेजती है. ऐसा लगता है कि यह मैसेज ऐलिस ने भेजा है.
  6. बॉब, ऐलिस (और ईव) को जवाब भेजता है.
  7. ईव, इंटरसेप्ट किए गए दूसरे मैसेज को बाद में फिर से चलाने के लिए सेव कर लेती है. बॉब को ऐलिस से इंटरसेप्ट किया गया दूसरा मैसेज कभी नहीं मिला, इसलिए वह इसे स्वीकार कर लेगा. जब मैसेज में "लॉक खोलें" जैसे कमांड को एन्कोड किया जाता है, तो यह मैसेज सुरक्षा में सेंध लगने की वजह बनता है.

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

टाइम के साथ किए जाने वाले लेन-देन से, कार्रवाइयों की संख्या और जटिलता बढ़ जाती है. इसलिए, हर लेन-देन के लिए इनकी सलाह नहीं दी जाती. इनका इस्तेमाल सिर्फ़ उन डिवाइसों पर की जाने वाली ज़रूरी कार्रवाइयों के लिए किया जाता है जो फ़िज़िकल या वर्चुअल सुरक्षा और निजता से जुड़ी ऐसेट को कंट्रोल करते हैं.

एसडीके के ऐब्स्ट्रैक्शन

रीड लेन-देन, राइट लेन-देन, और इन्वोक लेन-देन सेक्शन में, एसडीके की मदद से किए जाने वाले इंटरैक्शन मॉडल ऐक्शन की खास जानकारी दी गई है.

Matter SDK टूल का इस्तेमाल करके प्रॉडक्ट बनाने वाला डेवलपर, आम तौर पर, सीधे तौर पर ऐक्शन लागू करने के लिए कॉल नहीं करता. एसडीके फ़ंक्शन की मदद से ऐक्शन को ऐब्स्ट्रैक्ट किया जाता है. ये फ़ंक्शन, ऐक्शन को किसी इंटरैक्शन में शामिल कर लेते हैं. हालांकि, आईएम ऐक्शन को समझना ज़रूरी है, ताकि इंजीनियर को अच्छी जानकारी मिल सके. साथ ही, एसडीके को लागू करने पर बेहतर कंट्रोल मिल सके.Matter