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

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

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

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

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

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

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

इवेंट शुरू करने वाले और टारगेट

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

ग्रुप

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 Action को भेजने के लिए ज़्यादा से ज़्यादा टाइम आउट सेट करते हैं. इस टाइमआउट का मकसद, लेन-देन पर इंटरसेप्ट अटैक को रोकना है. यह खास तौर पर उन डिवाइसों के लिए मान्य है जो ऐसेट का ऐक्सेस देते हैं. जैसे, गैराज के दरवाज़े खोलने वाले डिवाइस और लॉक.

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

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

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

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

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

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

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

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

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