দুটি এন্টারপ্রাইজ ইন্টিগ্রেশন নিদর্শন হ'ল কমান্ড বার্তা এবং ইভেন্ট বার্তা । আমি এমন একটি সিস্টেমে কাজ করছি যেখানে আমরা কেবলমাত্র অন্যান্য সিস্টেমের সাথে সংহত করার জন্যই নয়, পরিষেবার মধ্যে অভ্যন্তরীণ যোগাযোগের জন্য মেসেজিং ব্যবহার করি। এটি একটি অবশেষে সামঞ্জস্যপূর্ণ সিস্টেম বলে মনে করা হচ্ছে, এবং পরিষেবাগুলি একে অপরের সম্পর্কে অজ্ঞ থাকার কথা বলে মনে করা হয় (কয়েকটি বিশেষ উদ্দেশ্যে পরিষেবাগুলি ব্যতীত)। এর মতো, আমরা এমন জিনিস এড়াতে চেষ্টা করি যা রিমোট পদ্ধতি কল (RPC বা RPI) বলে মনে হয়। আমাদের একটি বাস এবং বার্তা-ভিত্তিক মিডলওয়্যার সিস্টেম রয়েছে এবং সমস্ত বার্তা সম্প্রচারিত হয়।
আমরা আমাদের বার্তাগুলির নাম ইভেন্ট হিসাবে রাখি, এটি অতীতের নিখুঁত বাক্য হিসাবে, যেমন PurchaseOrderShipped
। যাইহোক, ইভেন্টগুলি কেবল তখনই যুক্ত করা হয় যখন কিছু অন্যান্য পরিষেবাদিগুলি তাদের সম্পর্কে জানতে হবে এবং শুরুতে প্রায়শই কেবল একটি পরিষেবা যত্নশীল। তদুপরি, কখনও কখনও সেই পরিষেবা ফলাফল হিসাবে একটি ইভেন্ট প্রেরণ করে, যা প্রথম পরিষেবা দ্বারা শ্রবণ করা হয়। সুতরাং যদি আমি ইন্টারঅ্যাকশনটি ডায়াগ্রাম করি তবে এটি ইভেন্ট বার্তার জন্য যে লিখিত (বা এমনকি আরপিসি চিত্র) কমান্ড বার্তার জন্য ডায়াগ্রামের মতো দেখতে অনেক বেশি লাগবে, যদিও এটি আবার প্রয়োগ করা হয় না with ডাইরেক্ট ম্যাসেজিং তবে একটি বাসে সম্প্রচার করুন। এটি যুক্ত করুন যে আমি সম্প্রতি কিছু বার্তা যুক্ত হতে দেখেছি যা কমান্ড হিসাবে নামকরণ করা হয়েছে, এটি হ'ল আবশ্যক একটি বাক্য, যেমন BillShippedPurchaseOrder
।
অদ্ভুত বিষয়টি হ'ল বার্তাগুলির নাম এবং সেগুলি প্রবাহিত করার উপায় এটি কোনও ইভেন্ট বা আদেশ হিসাবে নামকরণ করা হয়েছে কিনা তা পরিবর্তিত হয় না। সুতরাং কীভাবে একটি নির্ধারণ করে যে কোনও কিছু একটি কমান্ড বার্তা বা ইভেন্ট হওয়া উচিত? এটি কি শব্দার্থক এবং নামকরণের পার্থক্য, অথবা কমান্ড এবং ইভেন্টের বার্তার মধ্যে বাস্তব প্রয়োগের পার্থক্য রয়েছে? আমাদের সমস্ত বার্তাগুলি সম্প্রচারিত হয়েছে তার অর্থ কি এর মধ্যে কোনওটি সত্যই কমান্ড বার্তা নয়?
request for information
কার্যকারিতা বাস্তবায়ন করবেন ?getUserInfo(uid)
প্রতিক্রিয়াটিকে ব্যতিক্রমী একটি কমান্ড বার্তা বলে এমনটি ব্যবহার করা স্বাভাবিক বলে মনে হয়। আমি জানি যে কমান্ড বার্তাগুলি কাপলিংয়ের পরিচয় দেয়, তবে দুঃখের বিষয় এই ক্ষেত্রে, ইভেন্টের বার্তাগুলি দিয়ে কীভাবে এটি প্রয়োগ করা যায় তা আমি দেখছি না। অথবা এরকম কিছু উপলক্ষে বার্তাগুলি কমান্ড করা ঠিক আছে?