Matter ডিভাইসগুলোর একটি সু-সংজ্ঞায়িত ডেটা মডেল ( DM ) থাকে, যা একটি ডিভাইসের বৈশিষ্ট্যগুলোর একটি শ্রেণিবদ্ধ মডেলিং। এই শ্রেণিবিন্যাসের সর্বোচ্চ স্তরে একটি ডিভাইস থাকে।
ডিভাইস এবং এন্ডপয়েন্ট
স্মার্টফোন এবং হোম অ্যাসিস্ট্যান্ট সহ সকল ডিভাইস নোড দ্বারা গঠিত । নোড হলো নেটওয়ার্কের একটি অনন্য, শনাক্তযোগ্য এবং ঠিকানাযোগ্য রিসোর্স, যাকে একজন ব্যবহারকারী কার্যকরীভাবে একটি সম্পূর্ণ সত্তা হিসেবে উপলব্ধি করতে পারে। Matter নেটওয়ার্ক যোগাযোগ একটি নোড থেকেই শুরু হয় এবং সেখানেই শেষ হয়।
নোড হলো এন্ডপয়েন্টগুলোর একটি সংগ্রহ। প্রতিটি এন্ডপয়েন্ট একটি ফিচার সেট ধারণ করে। উদাহরণস্বরূপ, একটি এন্ডপয়েন্ট লাইটিং কার্যকারিতার সাথে সম্পর্কিত হতে পারে, অন্যটি মোশন ডিটেকশনের সাথে, এবং আরেকটি ডিভাইস ওটিএ-এর মতো ইউটিলিটিগুলো নিয়ে কাজ করে।

নোড ভূমিকা
নোডের ভূমিকা হলো পরস্পর সম্পর্কিত আচরণের একটি সমষ্টি। প্রতিটি নোডের এক বা একাধিক ভূমিকা থাকতে পারে। নোডের ভূমিকাগুলোর মধ্যে রয়েছে:
- কমিশনার : একটি নোড যা কমিশনিং সম্পাদন করে।
- কন্ট্রোলার : একটি নোড যা এক বা একাধিক নোডকে নিয়ন্ত্রণ করতে পারে। উদাহরণস্বরূপ Google Home app (GHA) , Google Assistant এবং Google Nest Hub (2nd gen) । কিছু ডিভাইসের ধরন, যেমন অন/অফ লাইট সুইচ , কন্ট্রোলার ভূমিকা পালন করে।
- নিয়ন্ত্রিত বস্তু (Controlee) : এমন একটি নোড যা এক বা একাধিক নোড দ্বারা নিয়ন্ত্রিত হতে পারে। বেশিরভাগ ডিভাইসই নিয়ন্ত্রিত বস্তু (Controlee) হতে পারে, তবে কিছু নির্দিষ্ট ডিভাইস এর ব্যতিক্রম, যেমন অন/অফ লাইট সুইচ , যেগুলোর ভূমিকা হলো নিয়ন্ত্রক (Controller)। অন/অফ লাইট সুইচ শুধুমাত্র একটি নিয়ন্ত্রক (Controller) হতে পারে। এটি নিয়ন্ত্রিত বস্তু (Controlee) হতে পারে না।
- ওটিএ প্রোভাইডার : এমন একটি নোড যা ওটিএ সফটওয়্যার আপডেট প্রদান করতে পারে।
- OTA অনুরোধকারী : এমন একটি নোড যা OTA সফ্টওয়্যার আপডেটের জন্য অনুরোধ করতে পারে।
ক্লাস্টার
একটি এন্ডপয়েন্টের মধ্যে একটি নোডের এক বা একাধিক ক্লাস্টার থাকে। এগুলো ডিভাইস হায়ারার্কির আরেকটি ধাপ, কারণ এগুলো নির্দিষ্ট কার্যকারিতাকে একত্রিত করে, যেমন একটি স্মার্ট প্লাগের অন/অফ ক্লাস্টার, অথবা একটি ডিমেবল লাইট এন্ডপয়েন্টের লেভেল কন্ট্রোল ক্লাস্টার।
একটি নোডের একাধিক এন্ডপয়েন্টও থাকতে পারে, যার প্রতিটি একই কার্যকারিতার একটি ইনস্ট্যান্স তৈরি করে। উদাহরণস্বরূপ, একটি লাইট ফিক্সচার স্বতন্ত্র বাতিগুলোর স্বাধীন নিয়ন্ত্রণের সুবিধা দিতে পারে অথবা একটি পাওয়ার স্ট্রিপ স্বতন্ত্র সকেটগুলোর নিয়ন্ত্রণের সুবিধা দিতে পারে।
বৈশিষ্ট্য
সর্বশেষ স্তরে আমরা অ্যাট্রিবিউট (Attributes) পাব, যা হলো নোডের বিভিন্ন অবস্থা, যেমন একটি লেভেল কন্ট্রোল ক্লাস্টারের বর্তমান লেভেল অ্যাট্রিবিউট। অ্যাট্রিবিউটগুলোকে uint8, স্ট্রিং বা অ্যারের মতো বিভিন্ন ডেটা টাইপ হিসেবে সংজ্ঞায়িত করা যেতে পারে।

কমান্ড
অ্যাট্রিবিউট ছাড়াও, ক্লাস্টারগুলিতে কমান্ডও থাকে, যেগুলো হলো এমন কিছু ক্রিয়া যা সম্পাদন করা যেতে পারে। Matter -এর ডিএম-এ এগুলি একটি রিমোট প্রসিডিউর কলের সমতুল্য। কমান্ডগুলি ক্রিয়াপদের মতো, যেমন একটি ডোর লক ক্লাস্টারে 'lock door '। কমান্ডগুলি প্রতিক্রিয়া এবং ফলাফল তৈরি করতে পারে; Matter এ, এই ধরনের প্রতিক্রিয়াগুলিকেও বিপরীতমুখী কমান্ড হিসাবে সংজ্ঞায়িত করা হয়।
ইভেন্টগুলি
সবশেষে, ক্লাস্টারগুলিতে ইভেন্টও থাকতে পারে, যেগুলোকে অতীতের অবস্থা পরিবর্তনের রেকর্ড হিসেবে ভাবা যেতে পারে। অ্যাট্রিবিউটগুলো বর্তমান অবস্থাকে উপস্থাপন করলেও, ইভেন্টগুলো হলো অতীতের একটি দিনলিপি, এবং এতে একটি একমুখী ক্রমবর্ধমান কাউন্টার, একটি টাইমস্ট্যাম্প ও একটি অগ্রাধিকার অন্তর্ভুক্ত থাকে। এগুলো অবস্থা পরিবর্তন ধারণ করতে এবং এমন ডেটা মডেলিং করতে সক্ষম করে, যা অ্যাট্রিবিউটের মাধ্যমে সহজে অর্জন করা যায় না।

এন্ডপয়েন্ট ০ ইউটিলিটি ক্লাস্টারগুলোর জন্য সংরক্ষিত। ইউটিলিটি ক্লাস্টার হলো নির্দিষ্ট কিছু ক্লাস্টার যা একটি এন্ডপয়েন্টে পরিষেবা প্রদানের কার্যকারিতা, যেমন—ডিসকভারি, অ্যাড্রেসিং, ডায়াগনস্টিকস এবং সফটওয়্যার আপডেট অন্তর্ভুক্ত করে। অন্যদিকে, অ্যাপ্লিকেশন ক্লাস্টারগুলো অন/অফ বা তাপমাত্রা পরিমাপের মতো প্রাথমিক কাজগুলো সমর্থন করে।
ডিভাইসের প্রকারভেদ
সব মিলিয়ে, একজন ডিভাইস প্রস্তুতকারক যখন একটি নতুন ডিভাইস তৈরির পরিকল্পনা করেন, তখন কোন কোন ক্লাস্টার সমন্বয় অন্তর্ভুক্ত করা উচিত?
Matter স্পেসিফিকেশন অনুযায়ী ডিভাইসটিকে এক বা একাধিক ডিভাইস টাইপ ইমপ্লিমেন্ট বা এক্সটেন্ড করতে হয়। ডিভাইস টাইপ হলো আবশ্যিক এবং ঐচ্ছিক ক্লাস্টারের একটি সংগ্রহ, যা একটি ফিজিক্যাল ডিভাইসের শীর্ষ-স্তরের বৈশিষ্ট্যগুলো সংজ্ঞায়িত করে, যেমন ডিমেবল লাইট , ডোর লক বা ভিডিও প্লেয়ার ।
ডিভাইসের প্রকারভেদগুলো Matter স্পেসিফিকেশনের মূল নথিতে নির্দিষ্ট করা নেই, বরং একটি সহায়ক নথি— ডিভাইস লাইব্রেরিতে—তা নির্দিষ্ট করা আছে। একইভাবে, সমস্ত অ্যাপ্লিকেশন ক্লাস্টার অ্যাপ্লিকেশন ক্লাস্টার লাইব্রেরিতে সংজ্ঞায়িত করা হয়েছে। এই তিনটি নথি Connectivity Standards Alliance (Alliance) সদস্যদের ওয়েবসাইটে পাওয়া যাবে।
একটি ডিভাইস টাইপ বাস্তবায়নকারী প্রতিটি এন্ডপয়েন্টকে অবশ্যই সেই ডিভাইস টাইপকে সংজ্ঞায়িত করে এমন বাধ্যতামূলক ক্লাস্টারগুলো বাস্তবায়ন করতে হবে। বাধ্যতামূলক ক্লাস্টারগুলো ছাড়াও, এন্ডপয়েন্টটি অতিরিক্ত ক্লাস্টার বাস্তবায়ন করতে পারে, যার মধ্যে ডিভাইস টাইপটির এক বা একাধিক ঐচ্ছিক ক্লাস্টার, অথবা এমনকি এমন ক্লাস্টারও অন্তর্ভুক্ত থাকতে পারে যা ডিভাইস টাইপটির অংশ নয়।
ক্লায়েন্ট এবং সার্ভার
ক্লাস্টারগুলো ক্লায়েন্ট ক্লাস্টার অথবা সার্ভার ক্লাস্টার হতে পারে। একটি সার্ভার স্টেটফুল এবং এতে অ্যাট্রিবিউট, ইভেন্ট ও কমান্ড থাকে, অন্যদিকে একটি ক্লায়েন্ট স্টেটলেস এবং এর দায়িত্ব হলো একটি দূরবর্তী সার্ভার ক্লাস্টারের সাথে ইন্টারঅ্যাকশন শুরু করা, যার মাধ্যমে এটি নিম্নলিখিত কাজগুলো সম্পাদন করে:
- এর রিমোট অ্যাট্রিবিউটগুলো থেকে ডেটা পড়ে এবং তাতে লেখে ।
- এর দূরবর্তী অনুষ্ঠানগুলোর খবর দেয় ।
- এর দূরবর্তী কমান্ডগুলোর আহ্বান ।
যদিও একটি নোডের মধ্যে ডিএম (DM) স্তরবিন্যাসযুক্ত, নোডগুলোর মধ্যকার সম্পর্কটি তেমন নয়। Matter -এ নোডগুলোর মধ্যে উল্লম্ব নিয়ন্ত্রক/প্রান্তিক বা নেতা/অনুসারী সম্পর্ক নেই। বরং, সম্পর্কটি অনুভূমিক: যেকোনো ক্লাস্টার সার্ভার অথবা ক্লায়েন্ট হতে পারে। সুতরাং একটি নোড বিভিন্ন ক্লাস্টার এবং কার্যকারিতার ক্ষেত্রে সার্ভার এবং ক্লায়েন্ট উভয়ই হতে পারে।
উদাহরণস্বরূপ, আমাদের দুটি টেবিল ল্যাম্প থাকতে পারে: নোড A এবং নোড B। উভয় নোডই একটি অন/অফ লাইট ডিভাইস টাইপ প্রয়োগ করে। এই ডিভাইস টাইপের মধ্যে একটি অন/অফ সার্ভার ক্লাস্টার অন্তর্ভুক্ত থাকে, যা তাদের নিজ নিজ ভৌত আলোর আউটপুট নিয়ন্ত্রণ করে।
কিন্তু, সাধারণ টেবিল ল্যাম্পের মতোই, আমাদের ফিজিক্যাল ডিভাইসগুলোতেও তাদের লোকাল অন/অফ সুইচের জন্য একটি অন/অফ লাইট সুইচ ডিভাইস টাইপ অন্তর্ভুক্ত থাকবে। এই ডিভাইস টাইপটিকে অবশ্যই একটি অন/অফ ক্লায়েন্ট ক্লাস্টার ইমপ্লিমেন্ট করতে হবে, যাতে এটি সার্ভার ক্লাস্টারগুলোকে নিয়ন্ত্রণ করতে পারে।

এই নমুনায়, নোড A-এর অন/অফ ক্লায়েন্ট ক্লাস্টারটি নোড A এবং নোড B-এর অন/অফ সার্ভার ক্লাস্টারের অ্যাট্রিবিউটগুলো পরিবর্তন করছে, যেখানে নোড B-এর ক্লায়েন্ট ক্লাস্টারটি শুধুমাত্র নোড B-এর নিজের সার্ভার ক্লাস্টারটিকেই পরিবর্তন করছে।
পরবর্তী অংশে আমরা ক্লায়েন্ট এবং সার্ভার ক্লাস্টারগুলো কীভাবে একে অপরের সাথে যোগাযোগ করে, অর্থাৎ ইন্টারঅ্যাকশন মডেলটি , তা বিস্তারিতভাবে আলোচনা করব।
বর্ণনাকারী ক্লাস্টার
নাম থেকেই বোঝা যায়, ডেসক্রিপ্টর ক্লাস্টার সার্ভার ইন্ট্রোস্পেকশন তথ্য প্রদান করে। এটি এন্ডপয়েন্টের বর্ণনা দেয় এবং এর নিম্নলিখিত বিষয়গুলো তালিকাভুক্ত করে:
- সার্ভার ক্লাস্টার।
- ক্লায়েন্ট ক্লাস্টার।
- ডিভাইসের প্রকারভেদ।
- অতিরিক্ত প্রান্তবিন্দু, যা পার্টস নামে পরিচিত।
প্রতিটি ডিভাইস টাইপের জন্য ডেসক্রিপ্টর ক্লাস্টার বাস্তবায়ন করা প্রয়োজন। রুট ডিভাইস টাইপটি এন্ডপয়েন্ট ০-তে সংজ্ঞায়িত করা হয়। এর ডেসক্রিপ্টর ক্লাস্টারটি পড়লে ক্লায়েন্ট উপলব্ধ এন্ডপয়েন্টগুলোর সম্পূর্ণ ট্রি পরিভ্রমণ করতে এবং প্রযোজ্য অপারেশনগুলো সম্পাদন করার সুযোগ পাবে।
কমিশনার বা নিয়ন্ত্রণকারী ডিভাইস, যেমন একটি ফোন বা হাব, ডেসক্রিপ্টর ক্লাস্টারে থাকা তথ্য ব্যবহার করে ডিভাইসটির (আলো, সুইচ, পাম্প, থার্মোস্ট্যাট) এবং সেই নির্দিষ্ট ডিভাইসটির দ্বারা বাস্তবায়িত বিশেষ বৈশিষ্ট্যগুলোর মডেল তৈরি করতে পারে, এবং ব্যবহারকারীকে সঠিক ইউজার ইন্টারফেস (UI) প্রদর্শন করতে পারে।
সার্ভার ক্লাস্টার
ServerList অ্যাট্রিবিউটটি এন্ডপয়েন্টে থাকা ক্লাস্টার সার্ভারগুলোকে তালিকাভুক্ত করে।
ক্লায়েন্ট ক্লাস্টার
ClientList অ্যাট্রিবিউটটি এন্ডপয়েন্টে থাকা ক্লাস্টার ক্লায়েন্টদের তালিকা করে।
ডিভাইসের প্রকারের তালিকা
DeviceTypeList অ্যাট্রিবিউটটি হলো এন্ডপয়েন্ট দ্বারা সমর্থিত ডিভাইস টাইপগুলোর একটি তালিকা, সাথে তাদের নিজ নিজ রিভিশনগুলোও থাকে। এতে অবশ্যই অন্তত একটি ডিভাইস টাইপ থাকতে হবে।
যন্ত্রাংশের তালিকা
PartsList এই ডিভাইস টাইপটি বাস্তবায়নের জন্য ব্যবহৃত এন্ডপয়েন্টগুলোর তালিকা রয়েছে।
এন্ডপয়েন্ট ০ (রুট নোড)-এর PartsList ডিভাইসটির নিজের (এন্ডপয়েন্ট ০) এন্ডপয়েন্টটি ছাড়া বাকি সমস্ত এন্ডপয়েন্ট অন্তর্ভুক্ত থাকে।
অন্যান্য এন্ডপয়েন্টগুলির PartsList সাধারণত খালি থাকবে। উদাহরণস্বরূপ, একটি টেম্পারেচার সেন্সরের জন্য একটি টেম্পারেচার মেজারমেন্ট সার্ভার ক্লাস্টার আবশ্যক এবং অন্য কিছুর নয়।
অন্যান্য ডিভাইসের ধরনগুলো একাধিক ডিভাইস টাইপ ইনস্ট্যান্সের একটি ট্রি স্ট্রাকচারে গঠিত হতে পারে। উদাহরণস্বরূপ, একটি ভিডিও প্লেয়ার ডিভাইস টাইপ টিভি, ভিডিও প্লেয়ার, স্পিকার এবং বিভিন্ন কন্টেন্ট অ্যাপ ডিভাইস টাইপ দ্বারা গঠিত হতে পারে, যার প্রতিটি ভিন্ন ভিন্ন এন্ডপয়েন্টে অবস্থিত।
Matter স্পেসিফিকেশন অনুযায়ী, একটি ডিভাইসে একাধিক নোড থাকতে পারে। উদাহরণস্বরূপ, স্মার্টফোনে একাধিক অ্যাপ থাকতে পারে, যেখানে প্রতিটি অ্যাপ একটি ভিন্ন নোড হিসেবে গণ্য হয়। এই প্রাথমিক আলোচনার জন্য, সমস্ত ডিভাইসে একটিমাত্র নোড থাকবে। আশা করা যায় যে, বেশিরভাগ ভৌত ডিভাইস এই প্যাটার্নটি অনুসরণ করবে ।