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

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

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

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

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

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

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

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

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

ग्रुप

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. बाद में दोबारा चलाने के लिए, ईव दूसरे इंटरसेप्ट किए गए मैसेज को सेव कर लेती है. बॉब को एलिस से इंटरसेप्ट किया गया दूसरा मैसेज कभी नहीं मिला, इसलिए वह इसे स्वीकार कर लेगा. यह मैसेज, सुरक्षा से जुड़ी समस्या के बारे में बताता है. ऐसा तब होता है, जब मैसेज में "लॉक खोलें" जैसे निर्देश को कोड में बदला गया हो.

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

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

SDK टूल के एब्स्ट्रैक्शन

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

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