अगर हम किसी नोड पर कार्रवाइयां नहीं कर सकते, तो उसका डेटा मॉडल (डीएम) काम का नहीं होता. इंटरैक्शन मॉडल (आईएम), किसी नोड के डीएम और अन्य नोड के डीएम के बीच के संबंध को तय करता है: डीएम के बीच बातचीत के लिए एक सामान्य भाषा.
नोड एक-दूसरे से इस तरह इंटरैक्ट करते हैं:
- एट्रिब्यूट और इवेंट को पढ़ना और उनकी सदस्यता लेना
- एट्रिब्यूट में डेटा सेव करना
- निर्देशों को शुरू करना
जब भी कोई नोड किसी दूसरे नोड के साथ एन्क्रिप्ट यानी सुरक्षित किया गया कम्यूनिकेशन सीक्वेंस बनाता है, तो वे इंटरैक्शन संबंध बनाते हैं. इंटरैक्शन में एक या उससे ज़्यादा लेन-देन शामिल हो सकते हैं. साथ ही, लेन-देन में एक या उससे ज़्यादा कार्रवाइयां शामिल होती हैं. इन्हें नोड के बीच आईएम-लेवल के मैसेज के तौर पर समझा जा सकता है.
लेन-देन के लिए कई कार्रवाइयां की जा सकती हैं. जैसे, रीड रिक्वेस्ट ऐक्शन. यह किसी दूसरे नोड से एट्रिब्यूट या इवेंट का अनुरोध करता है. इसके अलावा, रिपोर्ट डेटा ऐक्शन भी किया जा सकता है. यह सर्वर से क्लाइंट को जानकारी वापस भेजता है.
इवेंट शुरू करने वाले और टारगेट
लेन-देन शुरू करने वाला नोड, इनिशिएटर होता है. वहीं, जवाब देने वाला नोड, टारगेट होता है. आम तौर पर, Initiator एक क्लाइंट क्लस्टर होता है और Target एक सर्वर क्लस्टर होता है. हालांकि, इस पैटर्न के कुछ अपवाद भी हैं. जैसे, सदस्यता से जुड़े इंटरैक्शन, जिनका विश्लेषण इस सेक्शन में आगे किया गया है.
ग्रुप
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 को भेजने के लिए ज़्यादा से ज़्यादा टाइम आउट तय करते हैं. इस टाइम आउट का मकसद, लेन-देन पर होने वाले इंटरसेप्ट अटैक को रोकना है. यह खास तौर पर उन डिवाइसों के लिए मान्य है जो गैराज खोलने वाले डिवाइस और लॉक जैसी ऐसेट का ऐक्सेस देते हैं.
टाइम ट्रांज़ैक्शन को समझने के लिए, यह जानना ज़रूरी है कि इंटरसेप्ट अटैक कैसे हो सकते हैं और टाइम ट्रांज़ैक्शन क्यों ज़रूरी हैं.
इंटरसेप्ट अटैक
इंटरसेप्ट अटैक का पैटर्न इस तरह का होता है:
- मयंक, ऋतिक को शुरुआती मैसेज भेजता है. जैसे, Write Request Action.
- ईव, मैन-इन-द-मिडल है. वह मैसेज को इंटरसेप्ट करती है और बॉब को उसे पाने से रोकती है. उदाहरण के लिए, रेडियो जैमिंग के ज़रिए.
- बॉब से कोई जवाब न मिलने पर, एलिस दूसरा मैसेज भेजती है.
- ईव फिर से बीच में आती है और बॉब को मैसेज मिलने से रोकती है.
- ईव, इंटरसेप्ट किए गए पहले मैसेज को बॉब को भेजती है. ऐसा लगता है कि यह मैसेज ऐलिस ने भेजा है.
- बॉब, ऐलिस (और ईव) को जवाब भेजता है.
- ईव, इंटरसेप्ट किए गए दूसरे मैसेज को बाद में फिर से चलाने के लिए सेव कर लेती है. बॉब को कभी भी एलिस से इंटरसेप्ट किया गया दूसरा ओरिजनल मैसेज नहीं मिला था. इसलिए, वह इसे स्वीकार कर लेगा. यह मैसेज, सुरक्षा में सेंध लगाने की कोशिश को दिखाता है. ऐसा तब होता है, जब मैसेज में "लॉक खोलें" जैसा कोई निर्देश एन्कोड किया गया हो.
इस तरह के हमलों से बचने के लिए, टाइम ऐक्शन, लेन-देन की शुरुआत में ही लेन-देन के लिए ज़्यादा से ज़्यादा समय तय कर देते हैं. अगर ईव, अटैक वेक्टर के पहले छह चरणों को पूरा कर लेती है, तो भी वह सातवें चरण में मैसेज को फिर से नहीं भेज पाएगी. ऐसा इसलिए, क्योंकि लेन-देन के लिए तय की गई समयसीमा खत्म हो चुकी होगी.
समय के हिसाब से होने वाले लेन-देन से, कार्रवाइयों की संख्या और जटिलता बढ़ जाती है. इसलिए, हर लेन-देन के लिए इनका सुझाव नहीं दिया जाता. इनका सुझाव सिर्फ़ उन डिवाइसों पर ज़रूरी कार्रवाइयों के लिए दिया जाता है जो फ़िज़िकल या वर्चुअल सुरक्षा और निजता ऐसेट को कंट्रोल करते हैं.
SDK टूल के ऐब्स्ट्रैक्शन
लेन-देन की जानकारी पढ़ें, लेन-देन की जानकारी लिखें, और लेन-देन की जानकारी को शुरू करें सेक्शन में, एसडीके टूल की मदद से की गई इंटरैक्शन मॉडल कार्रवाइयों की खास जानकारी मिलती है.
Matter SDK का इस्तेमाल करके प्रॉडक्ट बनाने वाला डेवलपर, आम तौर पर कार्रवाइयों को सीधे तौर पर लागू करने के लिए कॉल नहीं करता. कार्रवाइयों को SDK टूल के फ़ंक्शन से अलग किया जाता है. ये फ़ंक्शन, कार्रवाइयों को इंटरैक्शन में शामिल करते हैं. हालांकि, आईएम ऐक्शन को समझना ज़रूरी है, ताकि इंजीनियर को Matter की क्षमताओं के बारे में अच्छी जानकारी मिल सके. साथ ही, एसडीके को लागू करने पर बेहतर कंट्रोल मिल सके.