লেনদেন পড়ুন

লেনদেন পড়ুন

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

একটি রিড ট্রানজ্যাকশনের অপারেশনের ক্রম
চিত্র ১: পঠিত লেনদেন

অনুরোধের পদক্ষেপ পড়ুন

দিক: প্রবর্তক -> লক্ষ্য

এই অ্যাকশনে ইনিশিয়েটর একটি টার্গেটকে কোয়েরি করে, যেখানে নিম্নলিখিত তথ্য প্রদান করা হয়:

  • অ্যাট্রিবিউট অনুরোধ : টার্গেটের শূন্য বা ততোধিক অ্যাট্রিবিউটের একটি তালিকা। এই তালিকাটি টার্গেটের অনুরোধকৃত অ্যাট্রিবিউটগুলোর শূন্য বা ততোধিক পাথ দ্বারা গঠিত।
  • ইভেন্ট অনুরোধ : টার্গেটের অনুরোধকৃত ইভেন্টগুলোতে পৌঁছানোর শূন্য বা তার অধিক সংখ্যক পথের তালিকা।

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

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

দিক: লক্ষ্য -> প্রবর্তক

এই ক্রিয়ায় লক্ষ্যবস্তুটি নিম্নোক্তভাবে সাড়া দেয়:

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

অবস্থা প্রতিক্রিয়া পদক্ষেপ

দিক: হয় লক্ষ্যবস্তু -> প্রবর্তক অথবা প্রবর্তক -> লক্ষ্যবস্তু

ইনিশিয়েটর অনুরোধকৃত ডেটা পাওয়ার পর, ডিফল্টরূপে তাকে অবশ্যই একটি স্ট্যাটাস রেসপন্স অ্যাকশন তৈরি করতে হবে। রিপোর্ট করা ডেটা প্রাপ্তি স্বীকার করে এই অ্যাকশনটি ইনিশিয়েটরের পক্ষ থেকে পাঠানো হয়। যদি ‘সাপ্রেস স্ট্যাটাস রেসপন্স’ ফ্ল্যাগটি সেট করা থাকে, তবে ইনিশিয়েটরকে অবশ্যই স্ট্যাটাস রেসপন্স অ্যাকশনটি পাঠানো থেকে বিরত থাকতে হবে।

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

স্ট্যাটাস রেসপন্স অ্যাকশন-এ কেবল একটি স্ট্যাটাস ফিল্ড থাকে, যা অপারেশন সফল হওয়ার বিষয়টি নিশ্চিত করে অথবা একটি ব্যর্থতার কোড প্রদর্শন করে।

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

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

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

সাবস্ক্রিপশন লেনদেন

একটি সাবস্ক্রিপশন লেনদেনের ক্রিয়াকলাপের ক্রম
চিত্র ২: সাবস্ক্রিপশন লেনদেন

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

দিক: প্রবর্তক -> লক্ষ্য

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

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

একটি সাবস্ক্রাইব অনুরোধ অ্যাকশনে নিম্নলিখিত বিষয়গুলো থাকে:

  • সর্বনিম্ন ব্যবধান : প্রতিবেদনগুলোর মধ্যে ন্যূনতম বিরতি।
  • সর্বোচ্চ ব্যবধানের সীমা : প্রতিবেদনগুলোর মধ্যে সর্বোচ্চ ব্যবধান।
  • অ্যাট্রিবিউট রিপোর্ট: রিড অ্যাকশন রিকোয়েস্টে অনুরোধ করা শূন্য বা তার অধিক সংখ্যক রিপোর্টকৃত অ্যাট্রিবিউটের একটি তালিকা।
  • ইভেন্ট রিপোর্ট: শূন্য বা তার বেশি রিপোর্ট করা ইভেন্টের একটি তালিকা।

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

এরপর ইনিশিয়েটর টার্গেটের কাছে একটি স্ট্যাটাস রেসপন্স অ্যাকশন পাঠিয়ে রিপোর্ট ডেটা অ্যাকশনটি স্বীকার করে নেয়। টার্গেট যখন কোনো ত্রুটি নেই এমন একটি স্ট্যাটাস রেসপন্স অ্যাকশন পায়, তখন এটি একটি সাবস্ক্রাইব রেসপন্স অ্যাকশন পাঠায়।

টার্গেট পরবর্তীতে আলোচনা সাপেক্ষে নির্ধারিত বিরতিতে পর্যায়ক্রমে রিপোর্ট ডেটা অ্যাকশন পাঠাবে এবং সাবস্ক্রিপশনটি হারিয়ে না যাওয়া বা বাতিল না হওয়া পর্যন্ত ইনিশিয়েটর সেই অ্যাকশনগুলোতে সাড়া দেবে।

সাবস্ক্রাইব প্রতিক্রিয়া কর্ম

দিক: লক্ষ্য -> প্রবর্তক

এটি সাবস্ক্রিপশন লেনদেনের সর্বশেষ পদক্ষেপ এবং এর মাধ্যমে প্রক্রিয়াটি সমাপ্ত হয়। এর অন্তর্ভুক্ত বিষয়গুলো হলো:

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

সাবস্ক্রাইব করার সীমাবদ্ধতা

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