ট্রানজ্যাকশন পড়া

ট্রানজ্যাকশন রিড করা

Matter-এ নোডের সাথে ইন্টার‍্যাক্ট করার সময় প্রথম ব্যবহারের একটি উদাহরণ হল অন্য নোড থেকে অ্যাট্রিবিউট রিড করা, যেমন সেন্সর থেকে তাপমাত্রা সংক্রান্ত ভ্যালু। এই ধরনের ইন্টার‍্যাকশনে, প্রথম অ্যাকশন যা অবশ্যই পারফর্ম করতে হবে তা হল রিড রিকোয়েস্ট অ্যাকশন।

রিড ট্রানজ্যাকশনের অপারেশন সিকোয়েন্স
ছবি ১: রিড ট্রানজ্যাকশন

অনুরোধের অ্যাকশন পড়ুন

দিকনির্দেশ: প্রেরক -> প্রাপক

এই অ্যাকশনে, ইনিশিয়েটর টার্গেটকে কোয়েরি করে এগুলি প্রদান করে:

  • অ্যাট্রিবিউট সংক্রান্ত অনুরোধ: টার্গেটের অ্যাট্রিবিউটের শূন্য বা তার বেশি আইটেমের তালিকা। এই তালিকায় টার্গেটের অনুরোধ করা শূন্য বা তার বেশি পাথ টু অ্যাট্রিবিউট থাকে।
  • ইভেন্টের অনুরোধ: টার্গেটের অনুরোধ করা ইভেন্টের শূন্য বা তার বেশি পাথের তালিকা।

টার্গেট রিড রিকোয়েস্ট অ্যাকশন পাওয়ার পরে, এটি অনুরোধ করা তথ্য সহ একটি রিপোর্ট ডেটা অ্যাকশন অ্যাসেম্বল করবে।

ডেটা অ্যাকশন সম্পর্কে রিপোর্ট করা

দিকনির্দেশ: টার্গেট -> ইনিশিয়েটর

এই অ্যাকশনে টার্গেট উত্তর দেয়:

  • অ্যাট্রিবিউট রিপোর্ট: Read Action Request-এ অনুরোধ করা শূন্য বা তার বেশি রিপোর্ট করা অ্যাট্রিবিউটের তালিকা ।
  • ইভেন্ট রিপোর্ট: রিপোর্ট করা হয়েছে এমন ইভেন্টের একটি তালিকা, এতে কোনও ইভেন্ট নাও থাকতে পারে।
  • উত্তর গোপন করা: এই অ্যাকশনের স্ট্যাটাস উত্তর গোপন করা উচিত কিনা তা নির্ধারণ করে এমন একটি ফ্ল্যাগ।
  • সাবস্ক্রিপশন আইডি: এই রিপোর্ট যদি কোনও সাবস্ক্রাইবিং ট্রানজ্যাকশনের অংশ হয়, তাহলে সাবস্ক্রিপশন ট্রানজ্যাকশন শনাক্ত করার জন্য ব্যবহৃত একটি পূর্ণসংখ্যা এতে অবশ্যই থাকতে হবে।

স্ট্যাটাস সংক্রান্ত উত্তরের অ্যাকশন

দিকনির্দেশ: Target -> Initiator অথবা Initiator -> Target

ইনিশিয়েটর অনুরোধ করা ডেটা পাওয়ার পরে, ডিফল্ট হিসেবে তাকে অবশ্যই একটি স্ট্যাটাস রেসপন্স অ্যাকশন তৈরি করতে হবে। এই অ্যাকশনটি অভিযোগকারী পাঠিয়েছেন এবং এর মাধ্যমে তিনি অভিযোগ করা ডেটা পেয়েছেন বলে স্বীকার করেছেন। Suppress Status Response ফ্ল্যাগ সেট করা থাকলে, ইনিশিয়েটরকে অবশ্যই Status Response অ্যাকশন পাঠাতে হবে না।

ইনিশিয়েটর স্ট্যাটাস রেসপন্স অ্যাকশন পাঠানোর পরে অথবা ইনিশিয়েটর, সাপ্রেস রেসপন্স ফ্ল্যাগ চালু করা রিপোর্ট ডেটা অ্যাকশন পেলে, রিড/রিপোর্ট কোয়েরি সম্পূর্ণ হয়ে যায়।

স্ট্যাটাস রেসপন্স অ্যাকশনে শুধুমাত্র একটি স্ট্যাটাস ফিল্ড থাকে যা অপারেশন সফল হয়েছে বলে স্বীকার করে অথবা ব্যর্থতার কোড দেখায়।

বিধিনিষেধ পড়ুন

রিড রিকোয়েস্ট অ্যাকশন ও রিপোর্ট ডেটা অ্যাকশন হল Unicast-অনলি। এছাড়াও, এইসব অনুরোধের পাথ কোনও নোডের গ্রুপকে টার্গেট নাও করতে পারে।

স্ট্যাটাস রেসপন্স অ্যাকশন হল Unicast-অনলি এবং এটি গ্রুপকাস্টের উত্তর হিসেবে জেনারেট করা যায় না।

সাবস্ক্রিপশন ট্রানজ্যাকশন

সাবস্ক্রিপশন ট্রানজ্যাকশনের অপারেশন সিকোয়েন্স
ছবি ২: সাবস্ক্রিপশন ট্রানজ্যাকশন

সাবস্ক্রাইব করার অনুরোধের অ্যাকশন

দিকনির্দেশ: প্রেরক -> প্রাপক

একটি রিড রিকোয়েস্ট অ্যাকশন ছাড়াও, কোনও ইনিশিয়েটর কোনও অ্যাট্রিবিউট বা ইভেন্টের পিরিয়ডিক আপডেট সাবস্ক্রাইব করতে পারেন। তাই, একই রিপোর্ট ডেটা অ্যাকশন পেরিওডিক ডেটা আপডেটের ফলাফল হিসেবে জেনারেট করা যেতে পারে যা সাবস্ক্রিপশন ট্রানজ্যাকশন অনুসরণ করে।

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

সাবস্ক্রাইব করার অনুরোধ অ্যাকশনে এগুলি থাকে:

  • ন্যূনতম বিরতি: দুটি রিপোর্টের মধ্যে ন্যূনতম বিরতি।
  • সর্বাধিক বিরতি: রিপোর্টগুলির মধ্যে সর্বাধিক বিরতি।
  • অ্যাট্রিবিউট রিপোর্ট: Read Action Request-এ অনুরোধ করা শূন্য বা তার বেশি রিপোর্ট করা অ্যাট্রিবিউটের তালিকা ।
  • ইভেন্ট রিপোর্ট: রিপোর্ট করা ইভেন্টের একটি তালিকা, যার মধ্যে কোনও ইভেন্ট নাও থাকতে পারে।

সাবস্ক্রাইব করার অনুরোধের পরে, টার্গেট, ইনিশিয়েটরকে রিপোর্ট করা ডেটা অ্যাকশন সহ উত্তর দেয়, এতে রিপোর্ট করা ডেটার প্রথম ব্যাচ থাকে: প্রাইম করা প্রকাশিত ডেটা।

তারপর, ইনিশিয়েটর স্ট্যাটাস রেসপন্স টার্গেটে পাঠানো অ্যাকশন সহ রিপোর্ট ডেটা অ্যাকশন স্বীকার করে। টার্গেট কোনও স্ট্যাটাস রেসপন্স অ্যাকশন পাওয়ার পরে কোনও সমস্যার কথা না জানালে, সেটি একটি সাবস্ক্রাইব রেসপন্স অ্যাকশন পাঠায়।

তারপরে, Target, আলোচনা করা ইন্টারভ্যালে পর্যায়ক্রমে রিপোর্ট ডেটা অ্যাকশন পাঠাবে এবং সাবস্ক্রিপশন বন্ধ বা বাতিল না হওয়া পর্যন্ত Initiator সেইসব অ্যাকশনের উত্তর দেবে।

সাবস্ক্রাইব করার অনুরোধের উত্তর দেওয়ার অ্যাকশন

দিকনির্দেশ: টার্গেট -> ইনিশিয়েটর

সাবস্ক্রিপশন ট্রানজ্যাকশনের এটিই শেষ অ্যাকশন এবং এর মাধ্যমেই প্রক্রিয়াটি সম্পূর্ণ হয়। এর মধ্যে অন্তর্ভুক্ত হল:

  • সাবস্ক্রিপশন আইডি: একটি পূর্ণসংখ্যা যা সাবস্ক্রিপশনকে শনাক্ত করে।
  • ন্যূনতম বিরতি: রিপোর্টগুলির মধ্যে চূড়ান্ত, নির্ধারিত ন্যূনতম বিরতি ।
  • সর্বাধিক বিরতি: রিপোর্ট জমা দেওয়ার মধ্যে নির্ধারিত চূড়ান্ত সর্বাধিক বিরতি।

সাবস্ক্রাইব করার ক্ষেত্রে বিধিনিষেধ

  • সাবস্ক্রাইব করার অনুরোধ সংক্রান্ত অ্যাকশন ও সাবস্ক্রাইব করার উত্তর সংক্রান্ত অ্যাকশন হল Unicast-শুধুমাত্র অ্যাকশন।
  • সাবস্ক্রিপশন ইন্টার‌্যাকশনের মধ্যে থাকা সব রিপোর্ট ডেটা অ্যাকশনে একই সাবস্ক্রিপশন আইডি থাকতে হবে।
  • অ্যাকশনের মধ্যে সর্বাধিক আলোচনা করা ব্যবধানের মধ্যে সাবস্ক্রাইবার কোনও রিপোর্ট ডেটা অ্যাকশন না পেলে, সাবস্ক্রিপশন বন্ধ করে দেওয়া হবে।
  • আগের নিয়মের ফলস্বরূপ, প্রকাশকরা পিরিয়ডিক রিপোর্ট ডেটা অ্যাকশন পাঠানো বন্ধ করে সাবস্ক্রিপশন ইন্টার‍্যাকশন বন্ধ করে দিতে পারেন।
  • সাবস্ক্রাইবার INACTIVE_SUBSCRIPTION স্ট্যাটাস কোড সহ রিপোর্ট ডেটা অ্যাকশনের উত্তর দিয়ে সাবস্ক্রিপশন ইন্টার‍্যাকশন বন্ধ করতে পারেন।