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

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

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

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

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

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

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

शुरू करने वाले और लक्ष्य

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

ग्रुप

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

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

पथ

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

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

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 टूल के फ़ंक्शन से छोटा किया जाता है जो उन्हें इंटरैक्शन में शामिल कर देता है. हालांकि, IM कार्रवाइयों को समझना ज़रूरी है, ताकि इंजीनियर को Matter की क्षमताओं के बारे में अच्छे से पता हो. साथ ही, SDK टूल को लागू करने के तरीके को बेहतर तरीके से कंट्रोल किया जा सके.