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

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

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

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

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

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

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

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

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

ग्रुप

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 की क्षमताओं के बारे में अच्छी जानकारी मिल सके. साथ ही, एसडीके टूल के लागू करने पर बेहतर कंट्रोल मिल सके.