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