মিথস্ক্রিয়া মডেল ধারণা

একটি নোডের ডেটা মডেল (DM) প্রাসঙ্গিক নয়, যদি আমরা সেটির উপর কোনো অপারেশন সম্পাদন করতে না পারি। ইন্টারঅ্যাকশন মডেল ( IM ) একটি নোডের সাথে অন্যান্য নোডের ডেটা মডেলের সম্পর্ককে সংজ্ঞায়িত করে: এটি ডেটা মডেলগুলোর মধ্যে যোগাযোগের একটি সাধারণ ভাষা।

নোডগুলো একে অপরের সাথে যেভাবে যোগাযোগ করে:

  • অ্যাট্রিবিউট এবং ইভেন্টগুলি পড়া এবং সাবস্ক্রাইব করা
  • অ্যাট্রিবিউটগুলিতে লেখা
  • কমান্ড আহ্বান করা

যখনই কোনো নোড অন্য কোনো নোডের সাথে একটি এনক্রিপ্টেড যোগাযোগ অনুক্রম স্থাপন করে, তখন তাদের মধ্যে একটি ইন্টারঅ্যাকশন সম্পর্ক তৈরি হয়। ইন্টারঅ্যাকশনগুলো এক বা একাধিক ট্রানজ্যাকশন দ্বারা গঠিত হতে পারে, এবং ট্রানজ্যাকশনগুলো এক বা একাধিক অ্যাকশন দ্বারা গঠিত, যেগুলোকে নোডগুলোর মধ্যে আইএম-স্তরের বার্তা হিসেবে বোঝা যেতে পারে।

মিথস্ক্রিয়া মডেলের শ্রেণিবিন্যাস
চিত্র ১: মিথস্ক্রিয়া মডেলের স্তরবিন্যাস

ট্রানজ্যাকশনের উপর বিভিন্ন অ্যাকশন সমর্থিত, যেমন রিড রিকোয়েস্ট অ্যাকশন, যা অন্য কোনো নোড থেকে একটি অ্যাট্রিবিউট বা ইভেন্টের জন্য অনুরোধ করে, অথবা এর প্রতিক্রিয়া হিসেবে রিপোর্ট ডেটা অ্যাকশন, যা সার্ভার থেকে ক্লায়েন্টে তথ্য ফেরত পাঠায়।

উদ্যোগী এবং লক্ষ্যবস্তু

যে নোড একটি ট্রানজ্যাকশন শুরু করে তাকে ইনিশিয়েটর (Initiator) বলা হয়, আর যে নোড সাড়া দেয় তাকে টার্গেট (Target) বলা হয়। সাধারণত ইনিশিয়েটর একটি ক্লায়েন্ট ক্লাস্টার এবং টার্গেট একটি সার্ভার ক্লাস্টার হয়ে থাকে। তবে, এই নিয়মের ব্যতিক্রমও রয়েছে, যেমন এই বিভাগের পরবর্তী অংশে বিশ্লেষণ করা সাবস্ক্রিপশন ইন্টারঅ্যাকশন (Subscription Interactions)

দলগুলি

Matter নোডগুলো একটি গ্রুপের অন্তর্ভুক্ত হতে পারে। ডিভাইস গ্রুপ হলো একই অ্যাকশনে একযোগে একাধিক ডিভাইসকে অ্যাড্রেস করা এবং বার্তা পাঠানোর একটি পদ্ধতি। একটি গ্রুপের সমস্ত নোডের একই গ্রুপ আইডি থাকে, যা একটি ১৬-বিটের পূর্ণসংখ্যা।

গ্রুপ-স্তরের যোগাযোগ ( গ্রুপকাস্ট ) সম্পন্ন করার জন্য, Matter IPv6 Multicast মেসেজ ব্যবহার করে এবং গ্রুপের সকল সদস্যের একই Multicast অ্যাড্রেস থাকে।

পথ

যখনই আমরা কোনো অ্যাট্রিবিউট, ইভেন্ট বা কমান্ডের সাথে ইন্টারঅ্যাক্ট করতে চাই, তখন আমাদের অবশ্যই এই ইন্টারঅ্যাকশনের জন্য পাথ নির্দিষ্ট করতে হবে: অর্থাৎ, একটি নোডের ডেটা মডেল হায়ারার্কিতে অ্যাট্রিবিউট, ইভেন্ট বা কমান্ডটির অবস্থান। তবে মনে রাখতে হবে যে, পাথগুলো গ্রুপ বা ওয়াইল্ডকার্ড অপারেটরও ব্যবহার করতে পারে, যা একই সাথে একাধিক নোড বা ক্লাস্টারকে নির্দেশ করে, এই ইন্টারঅ্যাকশনগুলোকে একত্রিত করে এবং এর ফলে কাজের সংখ্যা কমিয়ে আনে।

যোগাযোগের দ্রুত সাড়া দেওয়ার ক্ষমতা বাড়ানোর জন্য এই পদ্ধতিটি গুরুত্বপূর্ণ। উদাহরণস্বরূপ, যখন একজন ব্যবহারকারী সমস্ত বাতি বন্ধ করতে চান, তখন একটি ভয়েস অ্যাসিস্ট্যান্ট একাধিক পৃথক ইন্টারঅ্যাকশনের পরিবর্তে একটি গ্রুপের মধ্যে থাকা কয়েকটি বাতির সাথে একটি একক ইন্টারঅ্যাকশন স্থাপন করতে পারে। যদি ইনিশিয়েটর প্রতিটি বাতির জন্য পৃথক ইন্টারঅ্যাকশন তৈরি করেন, তবে এটি ডিভাইসের সাড়া দেওয়ার ক্ষমতায় মানুষের উপলব্ধিযোগ্য বিলম্ব তৈরি করতে পারে। এই প্রভাবের কারণে একাধিক ডিভাইস একটি কমান্ডে প্রতিক্রিয়া জানাতে নিজেদের মধ্যে দৃশ্যমান বিলম্ব ঘটায়। এটিকে প্রায়শই "পপকর্ন এফেক্ট" বলা হয়।

নিচের বিকল্পগুলোর যেকোনো একটি ব্যবহার করে ‘A Path in Matter তৈরি করা যেতে পারে:

<path> = <node> <endpoint> <cluster> <attribute | event | command>
<path> = <group ID>        <cluster> <attribute | event | command>

এবং এই পাথ বিল্ডিং ব্লকগুলোর মধ্যে, একাধিক নোড ইনস্ট্যান্স নির্বাচন করার জন্য endpoint এবং cluster ওয়াইল্ডকার্ড অপারেটরও অন্তর্ভুক্ত থাকতে পারে।

সময়সীমাযুক্ত এবং সময়সীমাবিহীন

একটি রাইট বা ইনভোক ট্রানজ্যাকশন সম্পাদন করার দুটি উপায় রয়েছে: টাইমড এবং আনটাইমড । টাইমড ট্রানজ্যাকশনগুলো রাইট/ইনভোক অ্যাকশন পাঠানোর জন্য একটি সর্বোচ্চ টাইমআউট নির্ধারণ করে। এই টাইমআউটের উদ্দেশ্য হলো ট্রানজ্যাকশনটির উপর কোনো ইন্টারসেপ্ট অ্যাটাক প্রতিরোধ করা। এটি বিশেষত সেইসব ডিভাইসের জন্য প্রযোজ্য, যেগুলো অ্যাসেটে প্রবেশের পথ নিয়ন্ত্রণ করে, যেমন গ্যারেজ ওপেনার এবং লক।

টাইমড ট্রানজ্যাকশন বুঝতে হলে, ইন্টারসেপ্ট অ্যাটাক কীভাবে ঘটতে পারে এবং টাইমড ট্রানজ্যাকশন কেন গুরুত্বপূর্ণ, তা জানা দরকার।

ইন্টারসেপ্ট আক্রমণ

একটি ইন্টারসেপ্ট অ্যাটাকের নিম্নলিখিত প্যাটার্ন রয়েছে:

  1. অ্যালিস ববকে একটি প্রাথমিক বার্তা পাঠায়, যেমন একটি রাইট রিকোয়েস্ট অ্যাকশন।
  2. ইভ, একজন মধ্যস্থতাকারী হিসেবে, বার্তাটি আটক করে এবং উদাহরণস্বরূপ কোনো ধরনের রেডিও জ্যামিংয়ের মাধ্যমে ববকে তা গ্রহণ করতে বাধা দেয়।
  3. ববের কাছ থেকে কোনো সাড়া না পেয়ে অ্যালিস দ্বিতীয় একটি বার্তা পাঠায়।
  4. ইভ আবার বাধা দেয় এবং ববকে সেটি গ্রহণ করতে বাধা দেয়।
  5. ইভ প্রথম আটকানো বার্তাটি ববের কাছে এমনভাবে পাঠায়, যেন সেটি অ্যালিসের কাছ থেকে এসেছে।
  6. বব অ্যালিসকে (এবং ইভকে) উত্তরটি পাঠায়।
  7. ইভ দ্বিতীয় আটকানো বার্তাটি পরে পুনরায় চালানোর জন্য ধরে রাখে। যেহেতু বব অ্যালিসের কাছ থেকে আসল দ্বিতীয় আটকানো বার্তাটি কখনও পায়নি, তাই এটি বার্তাটি গ্রহণ করবে। যখন বার্তাটিতে 'তালা খোলো'-র মতো কোনো নির্দেশ এনকোড করা থাকে, তখন এটি একটি নিরাপত্তা লঙ্ঘনের প্রতিনিধিত্ব করে।

এই ধরনের আক্রমণ প্রতিরোধ করার জন্য, টাইমড অ্যাকশনগুলো ট্রানজ্যাকশনের শুরুতে একটি সর্বোচ্চ ট্রানজ্যাকশন টাইমআউট নির্ধারণ করে দেয়। এমনকি যদি ইভ আক্রমণ পদ্ধতির প্রথম ছয়টি ধাপ সম্পাদন করতে সক্ষমও হয়, ট্রানজ্যাকশনের টাইমআউট শেষ হয়ে যাওয়ার কারণে এটি ৭ম ধাপে বার্তাটি পুনরায় চালাতে পারবে না।

সময়-সীমাবদ্ধ লেনদেন (Timed Transactions) কার্যক্রমের জটিলতা ও সংখ্যা বাড়িয়ে দেয়। তাই প্রতিটি লেনদেনের জন্য এগুলি সুপারিশ করা হয় না, বরং শুধুমাত্র সেইসব ডিভাইসের গুরুত্বপূর্ণ কার্যক্রমের জন্য ব্যবহার করা উচিত, যেগুলোর ভৌত বা ভার্চুয়াল নিরাপত্তা এবং গোপনীয়তার সম্পদের ওপর নিয়ন্ত্রণ রয়েছে।

SDK অ্যাবস্ট্রাকশন

‘রিড ট্রানজ্যাকশনস’ , ‘রাইট ট্রানজ্যাকশনস’ এবং ‘ইনভোক ট্রানজ্যাকশনস’ বিভাগগুলো এসডিকে দ্বারা সম্পাদিত ইন্টারঅ্যাকশন মডেল অ্যাকশনগুলোর একটি উচ্চ-স্তরের সংক্ষিপ্ত বিবরণ প্রদান করে।

যে ডেভেলপার Matter SDK) ব্যবহার করে কোনো প্রোডাক্ট তৈরি করেন, তিনি সাধারণত সরাসরি অ্যাকশন (Actions) কার্যকর করার জন্য কল করেন না; অ্যাকশনগুলোকে এসডিকে ফাংশন দ্বারা অ্যাবস্ট্রাক্ট করা থাকে, যা সেগুলোকে একটি ইন্টার‍্যাকশনের (Interaction) মধ্যে আবদ্ধ করে। তবে, Matter সক্ষমতা সম্পর্কে ইঞ্জিনিয়ারের ভালো দক্ষতা অর্জনের জন্য এবং এসডিকে ইমপ্লিমেন্টেশনের উপর সূক্ষ্ম নিয়ন্ত্রণ রাখার জন্য আইএম অ্যাকশন (IM Actions) বোঝা গুরুত্বপূর্ণ।