मेरे पास एक आईफोन (आईओएस) ऐप है जो प्रत्येक डिवाइस पर स्थानीय SQLite डेटाबेस में डेटा रखता है। ऐप का उपयोग वर्चुअल बैंक खाते को बच्चों के लिए उनके भत्ते, खर्च, बचत इत्यादि को ट्रैक करने के लिए किया जाता है (किड्सबैंक और किड्सबैंक फ्री)। मुझे माता-पिता और संभवतया उनके बच्चों के आईओएस उपकरणों के बीच सिंक क्षमता प्रदान करने के लिए माता-पिता से बहुत सारे अनुरोध मिल रहे हैं।स्थानीय स्क्लाइट का उपयोग करके आईफोन (आईओएस) ऐप और एकाधिक उपकरणों के बीच सिंक करने की इच्छा
मैंने कई विकल्पों पर विचार किया है, लेकिन सभी कठिन और गैर-तुच्छ हैं क्योंकि मूल रूप से डेटाबेस प्रतिकृति या एक नई वास्तुकला की आवश्यकता होती है। किसी भी डिवाइस पर किसी भी लेनदेन को आदर्श रूप से परिवार के सभी उपकरणों (सिंक) के रूप में प्रकट होना चाहिए (सिंक)।
आदर्श रूप में, मैं चाहूँगा सिंक बंद
विकल्प शामिल हैं (1) iCloud का प्रयोग (2) उपकरणों (वाईफाई) (3) का प्रयोग के बीच एक सीधा नेटवर्क कनेक्शन का उपयोग करें स्वत: & हाथ होने की एक सर्वर साइड डेटाबेस और वेब सेवा (JSON/शोकहारा)
(1) iCloud प्रो: iCloud वितरित फाइल सिंक CON प्रदान करता है: iOS 5 में आवश्यक है, SQLite डेटाबेस फ़ाइलों iCloud, क्लासिक डेटाबेस प्रतिकृति के माध्यम से सिंक्रनाइज़ नहीं किया जा सकता है (और गैर-तुच्छ)
iCloud का उपयोग करना एक मजबूत विचार है। डिवाइस iCloud फ़ाइल में एक कस्टम लेनदेन लॉग लिख सकते हैं जहां एक अद्वितीय डिवाइस आईडी द्वारा पहचाने गए प्रत्येक डिवाइस के लिए एक फ़ाइल होती है। वैश्विक अद्वितीय आईडी (जीआईडी) और अंतिम परिवर्तन टाइमस्टैम्प प्रत्येक तालिका में जोड़े जाते हैं। सभी भाग लेने वाले डिवाइस iCloud में एक अलग फ़ाइल में एक अद्वितीय डिवाइस आईडी लिखेंगे। ऐप लॉन्च या लॉग फ़ाइल परिवर्तन पर, किसी विशिष्ट डिवाइस पर चलने वाला ऐप सभी लेन-देन लोड करेगा, लेकिन iCloud के माध्यम से फ़ाइलों से अपने डिवाइस पर जेनरेट नहीं किया जाएगा। लेनदेन को लोड करने के लिए अंतिम भाग लेने वाला डिवाइस फ़ाइल से लेनदेन को हटा देगा। यदि डिवाइस अंतिम भाग लेने वाला डिवाइस नहीं है, तो यह केवल लेनदेन पर हस्ताक्षर करता है और फ़ाइल को iCloud के माध्यम से सिंक करने की अनुमति देता है। बेहतर एल्गोरिदम हो सकते हैं, लेकिन बुनियादी विचार समान है - परिवर्तन लॉग के चारों ओर धक्का देने के लिए iCloud का उपयोग करना।
(2) एक प्रत्यक्ष वाईफाई कनेक्शन दो उपकरणों को मैन्युअल रूप से सिच करने की अनुमति देगा। प्रो: सिंक प्रक्रिया को प्रबंधित करने के लिए जटिल नहीं CON: उपयोगकर्ताओं को वाईफाई
(3) पूरे डेटाबेस को ले जाएं या किसी सर्वर पर लेनदेन प्रबंधित करने के लिए दोनों को अपने ऐप्स से सिंक करने का चयन करना चाहिए। प्रो: सिंक अब आवश्यक नहीं है CON: वेब-संचालित ऐप के लिए विशिष्ट समस्याएं। दूरस्थ वेब सेवा का उपयोग करने के लिए डेटाबेस सेवा परत (वर्तमान में SQL में) को फिर से लिखना होगा। एक सर्वर चलाने की लागत (मैं एडब्ल्यूएस का उपयोग करूंगा)।
क्या कोई भी एकाधिक उपकरणों के बीच SQLite को समन्वयित करने में कुछ अनुभव प्रदान कर सकता है? मैं लेनदेन लॉग के चारों ओर धक्का देने के लिए iCloud का उपयोग करने की दिशा में झुका रहा हूँ। मैं लागत और जटिलता को कम करने की कोशिश कर रहा हूं।
महान प्रश्न ... +1 –
क्या iCloud सभी उपकरणों को एक ही ऐप्पल आईडी पर होने की आवश्यकता होगी? यह मेरे परिवार में काम नहीं करेगा। –