2010-07-07 10 views
5

मुझे एक सर्वर ऐप मिला है जो नेटवर्क पर कई ग्राहकों को डेटा प्रदान करता है। आप आंकड़ों की तारों की एक विशाल सूची के रूप में कल्पना कर सकते हैं। सर्वर पर डेटा बदल सकता है और सभी ग्राहकों पर सिंक्रनाइज़ करने की आवश्यकता है।क्या नेटवर्क पर डेटा सूचियों को सिंक्रनाइज़ करने के लिए कोई पैटर्न है?

मैं वर्तमान में इस दृष्टिकोण का उपयोग कर रहा हूं: प्रारंभिक कनेक्शन पर, क्लाइंट ऐप सभी मौजूदा डेटा (जो बाइट्स हो सकता है) का अनुरोध करता है। फिर, यह किसी भी डेटा के अपडेट (जोड़, परिवर्तन और हटाने) की सदस्यता लेता है।

यह तब तक ठीक काम करता है जब तक प्रारंभिक डेटा सूची और परिवर्तनों की सदस्यता लेने वाले ऐप को भेजने के बाद सर्वर पर डेटा बदल नहीं जाता है - उस स्थिति में, क्लाइंट कुछ अपडेट याद करता है और बिना किसी जानकारी के पुराने डेटा पर काम करता है।

मेरा मानना ​​है कि यह एक बहुत ही आम परिदृश्य है, इसलिए एक ऐसा पैटर्न होना चाहिए जो इस मुद्दे को हल करे। मैं सी # 4 और डब्ल्यूसीएफ का उपयोग कर रहा हूं, लेकिन मुझे विश्वास है कि पैटर्न भाषा अज्ञेयवादी होना चाहिए।

उत्तर

0

मैं हर 'प्रारंभिक कनेक्शन' एक 'टाइमस्टैम्प' शामिल है यह कर कोई अनुभव नहीं है, लेकिन ...

, और जब आप सदस्यता, आप सदस्यता 'प्रारंभिक कनेक्शन के टाइमस्टैम्प के बाद से' तो सर्वर सभी शामिल हो सकते हैं उस टाइमस्टैम्प के बाद से परिवर्तन, हां?

कुंजी कुछ सर्वर-कैननिकल धारणा को शामिल करना है जो क्लाइंट और सर्वर दोनों सहमत हैं।

उदा। बजाय

void Connect() 
Subscribe() 

की आप

Timestamp Connect() 
Subscribe(timestamp) 
0

मैं सिर्फ एक और संदेश यह है कि तुरंत सदस्यता अनुरोध के बाद ग्राहक के लिए एक पूर्ण अद्यतन भेजता जोड़ना होगा की है।

वैकल्पिक रूप से, क्लाइंट प्रारंभ में यह मान सकता है कि सूची खाली है और सर्वर क्लाइंट पर पूरी सूची को पुनर्निर्माण के लिए संदेश भेजता है ताकि उन्हें कई वृद्धिशील "अतिरिक्त" संदेशों में पैकेज किया जा सके।

2

क्या आपने .NET के लिए माइक्रोसॉफ्ट के Synchronization Framework पर एक नज़र डाली है। यह आपको सिंक्रनाइज़ और कैसे प्राप्त होता है पर बेहतर नियंत्रण देता है। डब्ल्यूसीएफ पूरी तरह से समर्थित है। यह वृद्धिशील अद्यतनों का समर्थन करता है और सर्वर पर परिवर्तनों को सिंक्रनाइज़ करता है।

एपीआई बहुत बड़ा है और केवल डेटाबेस सिंक्रनाइज़ेशन से अधिक कवर करता है लेकिन वहां बहुत से लेख हैं। यह मिलना चाहिए आप आरंभ:

Introduction to Sync Framework Database Synchronization

Synchronizing Databases

0

शायद Architecture Patterns for Data Synchronisation पर यह लेख आपके लिए उपयोगी होगा।

ऐसा लगता है कि इवेंट-आधारित डेटा सिंक्रनाइज़ेशन के लिए डिज़ाइन पैटर्न की आवश्यकता है जो आपको चाहिए।

संबंधित मुद्दे

 संबंधित मुद्दे