2010-12-22 11 views
6

के लिए कोई डिज़ाइन पैटर्न हैं, मैं सोच रहा था कि अगर किसी को किसी भी डिज़ाइन पैटर्न, लेख या अन्य डिवाइसों के बीच सिंक्रनाइज़ करने की समस्या के लिए अन्य जानकारी के बारे में पता था।क्या कॉन्फ़िगरेशन सिंक्रनाइज़ेशन

एक वेब साइट, एक आईफोन ऐप और एक आईपैड ऐप कहें; भविष्य के उपकरणों के साथ बाद में आ रहा है।

किसी भी जानकारी की सराहना की जाएगी। अगर आपको सही जानकारी देने के लिए अधिक जानकारी चाहिए, तो कृपया ऐसा कहें और मैं समस्या को विस्तारित कर सकता हूं।

+0

पर विवरण देता है क्या आपका मतलब है कि एप्लिकेशन के लिए * एप्लिकेशन सेटिंग्स * जो ऑनलाइन उपलब्ध है और विभिन्न उपकरणों पर मूल आवेदन?यदि नहीं, तो आप किस प्रकार की * सेटिंग्स * के बारे में बात कर रहे हैं? यदि हां, तो यह किस प्रकार का एप्लिकेशन है, और क्या आप बस 'सेटिंग्स' को सिंक्रनाइज़ करना चाहते हैं (सामान्य डेटा ऑब्जेक्ट्स की एक छोटी संख्या माना जाता है) या अधिक जटिल एप्लिकेशन डेटा? – Ergwun

+0

हां एप्लिकेशन सेटिंग्स जैसे विभिन्न 'पसंद' और 'नापसंद' विभिन्न चीजों की मूल बातें स्ट्रिंग मूल रूप से होती हैं। एक उपभोक्ता ऐप में विभिन्न ऑनलाइन और ऑफलाइन उपकरणों पर उपलब्ध है। MobileMe की तरह बिट या यहां तक ​​कि Google सिंक भी करता है। गारंटी नहीं दे सकता कि किसी भी डिवाइस को ऑनलाइन और समन्वयित किया जाएगा और प्रत्येक डिवाइस – Dan

उत्तर

2

बदल आप सिंक एमएल मानक के लिए इस link का पालन कर सकते हैं। यह आपको अधिक डेटा और सेटिंग्स को समायोजित करने के लिए ढांचे का विस्तार करने के लिए एक टेम्पलेट दे सकता है जो This को पहले से संभाला नहीं गया है - ओपन सोर्स सिंक्रनाइज़ेशन फ्रेमवर्क

+0

ओपनसिंक के बारे में नहीं सोचा था, हालांकि एक और विशिष्ट भूमिका के लिए डिज़ाइन किया गया है, मेरे विचारों को सत्यापित करने के लिए अवधारणा में पर्याप्त सामान्य है। धन्यवाद। निश्चित नहीं है कि जटिलता और निर्भरताओं के कारण मैं कोड का उपयोग कर सकता हूं लेकिन यह पढ़ने के लिए एक आदर्श बात है। धन्यवाद आप विजेता हैं :-) – Dan

1

मुझे क्षमा करें यदि निम्नलिखित बहुत सामान्य लगता है, लेकिन मैंने इसे उच्च स्तर रखने की कोशिश की ताकि यह आपके प्रश्न के अनुरूप हो। मुझे नहीं पता कि आप जो खोज रहे हैं उसे प्रति "डिजाइन पैटर्न" कहा जाएगा। ऐसा लगता है कि आप सिंक्रनाइज़ेशन पैराडाइम/सिस्टम की तलाश में हैं। नोट, इस प्रतिक्रिया में मेरी धारणा यह है कि आपको अपने आवेदन के लिए ऑनलाइन और ऑफलाइन क्षमता दोनों की आवश्यकता है (क्योंकि आपने स्पष्ट रूप से सिंक्रनाइज़ेशन का उल्लेख किया है।) यदि मुझे गलत है, तो कृपया मुझे बताएं।

विशेष रूप से, जो आप शायद खोज रहे हैं वह आम तौर पर दो चीजों का उपयोग करके लागू किया जाता है: 1) एक "वितरित" डेटाबेस, (जो क्लाइंट अनुप्रयोगों जैसे ऑफ़लाइन मोबाइल ऐप्स के साथ-साथ किसी भी सर्वर पर ऑफ़लाइन काम करता है) और 2) एक सिंक्रनाइज़ेशन और संघर्ष संकल्प तंत्र।

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

एक और उदाहरण, और शायद अधिक प्रासंगिक आपका आवेदन, Evernote है। अगर मुझे गलत नहीं लगता है, तो Evernote दस्तावेजों को सिंक्रनाइज़ करने के लिए समान प्रकार के प्रतिमान (एक फ्लैट फ़ाइल डेटाबेस) का उपयोग करता है, और इसमें डेस्कटॉप क्लाइंट, एक वेब साइट और मोबाइल क्लाइंट हैं।

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

संक्षेप में, मेरे द्वारा उल्लेखित टूल इस तरह का पालन करने लगते हैं वर्कफ़्लो:

  1. क्लाइंट एप्लिकेशन पर सत्र प्रारंभ करते समय, ऑनलाइन जाकर और नया डेटा खींचकर ग्राहक को सिंक्रनाइज़ या "अपडेट" करें। यह वह जगह है जहां आप क्लाइंट के डेटा और सर्वर या "क्लाउड" पर डेटा के बीच संघर्षों की पहचान और समाधान करते हैं।
  2. संपादित करें या, ग्राहक पर डेटा "ऑफ़लाइन" बनाने यह हो वेबसाइट, मोबाइल एप्लिकेशन, आदि
  3. सिंक्रनाइज़ या "अद्यतन" ऑनलाइन जा रहा है और डेटा धक्का द्वारा बादल आप
+0

पर चीजें जोड़ और हटा दी जाएंगी। लेकिन मैं आपके द्वारा जो उल्लेख किया गया है उसे प्राप्त करने के लिए एक प्रणाली के लिए एक डिज़ाइन की तलाश में था; चाहे वह 'पैटर्न' या लेखों के लिंक हों जहां लोगों ने अपने संबंधित पेशेवरों और विपक्ष के साथ ऐसी प्रणाली को प्राप्त करने के विभिन्न तरीकों पर चर्चा की है। क्या आप इस जानकारी को कहीं भी या कहीं भी जानते हैं? – Dan

+0

मुझे यह जोड़ना चाहिए कि मैंने इस पर कुछ समय बिताया है और नेट को देखा है और कुछ भी नहीं मिला है, लेकिन मेरे पास समस्या के कुछ संभावित समाधान हैं लेकिन इस क्षेत्र में थोड़ा और अनुभव रखने वाले किसी को उम्मीद है और जो पहले से ही है हल हो गया है कि समस्या मैंने जो सीखा है उसे सत्यापित करने में सक्षम हो सकता है या एक विधि का सुझाव दे सकता है जिसे मैंने अभी तक – Dan

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