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

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

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

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

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

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

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

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

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

ग्रुप

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

ग्रुप-लेवल की बातचीत (Groupcast) को पूरा करने के लिए, Matter आईपीवी6 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. ईव ने बीच में रोके गए दूसरे मैसेज को बाद में फिर से चलाने के लिए रोका. बॉब को ऐलिस से इंटरसेप्ट किया गया मूल दूसरा मैसेज कभी नहीं मिला, इसलिए वह इसे स्वीकार कर लेगा. यह मैसेज, सुरक्षा के उल्लंघन को दिखाता है. ऐसा तब होता है, जब इस मैसेज में "ओपन लॉक" जैसे कमांड का इस्तेमाल किया जाता है.

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

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

SDK टूल का ऐब्स्ट्रैक्ट

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

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