2010-02-12 8 views
5

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

  1. एक ऐप्लिकेशन और कोर डाटा
  2. पोल का उपयोग कर एक वेब सेवा कुशल ओवर-द-तार संचार के लिए Protobuffers का उपयोग कर
  3. स्थानीय डीबी के साथ काम करें के बीच एक कनेक्शन प्रदान करें:

    वर्तमान में मेरी योजना इस प्रकार है नेटवर्क स्थिति, और जब उपलब्ध डेटाबेस को सिंक करते हैं और किसी प्रकार का स्थानीय-डीबी-टू-रिमोट-डीबी कुंजी सिंक्रनाइज़ेशन रखते हैं।

सवाल यह है कि - क्या मैं सही दिशा में हूं? क्या इसे लागू करने के लिए मानक पैटर्न हैं? शायद कोई मुझे एक ओपन-सोर्स एप्लिकेशन पर इंगित कर सकता है जो समान फैशन में काम करता है?

मैं आईफोन कोडिंग में वास्तव में नया हूं, और किसी भी सुझाव को सुनकर बहुत खुशी होगी।

धन्यवाद

+1

मुझे लगता है कि आपके सवाल का सामान्य सिंक मुद्दों के साथ क्या करना अधिक (जो गुरु है: http://openmobster.googlecode.com

यहाँ iPhone App सिंक करने के लिए एक कड़ी है:

यहाँ ओपन सोर्स प्रोजेक्ट के लिए एक लिंक है आईफोन या gwt बैकएंड पर स्थानीय परिवर्तन) सही? मुझे इसमें भी रूचि होगी। – EightyEight

+0

यह वही है जो मुझे रूचि है। वेब सर्वर पर एक मास्टर डेटासेट में स्थानीय परिवर्तनों को सिंक करना। – reflog

उत्तर

0
सिस्टम डिजाइन दिशा के बारे में

: पहले अगर कोई वास्तविक आवश्यकता 2 अलग क्षुधा एक GWT और अन्य iPhone एक बना लेकिन अच्छी तरह से लिखा GWT ऐप बनाने नहीं है। यह लाइन को कोई समस्या नहीं करेगा और HTML feature -- offline application cache का उपयोग करके आपके डेटा का प्रबंधन करेगा यदि इसे कम से कम 2 अलग-अलग ऐप्स बनाना है, तो कम से कम अपने आप को प्रयास से बचाने के लिए और सर्वर को दो बार लिखना नहीं है जैसे कि आप मानक जीडब्ल्यूटी अप्राच के साथ जाते हैं तो आप लगभग असफल हो जाएंगे अकेले स्टैंड ऐप से सर्वर से बात करने के लिए (यह कुछ मुश्किल शीर्षकों के साथ HTTP पर जेएसओएन ज़िप्प किया गया है ...) या चीजों को दो बार लिख देगा ताकि RestLet library में यह अच्छी तरह से GAE द्वारा समर्थित हो।

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

तो कैसे: एक तरीका है डू-अनडो रास्ता। लाइन के दौरान - उपयोगकर्ता द्वारा समय पर डेटा पर किए गए कार्यों का लॉग रखें उपयोगकर्ता ने उन्हें जैसे ही आप कनेक्ट किया - सर्वर पर भेजें और उन्हें निष्पादित करें। सर्वर से ग्राहक तक ही। अधिकांश मामलों में ठीक काम करेगा जब तक कि आप एक फ़ोटोशॉप प्रकार के सॉफ़्टवेयर को नहीं लिख रहे हैं, जिसमें प्रति ऑपरेशन की बड़ी मात्रा में डेटा है। GangOfFour द्वारा एक्शन पैटर्न के रूप में भी जाना जाता है।

एक और तरीका स्रोत नियंत्रण तरीका है। - संस्करण और यहां तक ​​कि ताले भी हो सकता है। बहुत आवेदन निर्भर है। डीबीएमएस आंतरिक रूप से कुछ बार लेनदेन कार्यान्वयन के लिए इसका इस्तेमाल करते हैं। केवल जब :-)

2

मुझे लगता है कि आप एक साथ प्रश्नों को धुंधला कर रहे हैं।

  • यदि आपके पास कोई GWT वेब इंटरफ़ेस बनाने के बारे में कोई प्रश्न है, तो यह एक प्रश्न है।
  • किसी iPhone को किसी वेब सेवा में सिंक करने के तरीके के बारे में प्रश्न एक अलग प्रश्न हैं। इसके लिए, आप सिंक्रनाइज़ेशन के लिए जीडब्ल्यूटी के आरपीसी का उपयोग नहीं करना चाहते हैं, क्योंकि आपको अपने आईफोन कोड में सीरियलाइजेशन सिस्टम के 'ब्राउज़र-साइड' को नकली करना होगा, जो सामान्यतः जीडब्ल्यूटी आपके लिए प्रदान करता है।
+0

मैं मानता हूं कि मेरा प्रश्न थोड़ा धुंधला हो सकता है। आपके पहले बिंदु के बारे में - यह वह नहीं है जो मैं पूछ रहा था, दूसरा बिंदु करीब है। मुझे एहसास है कि मैं जीडब्ल्यूटी के आरपीसी का उपयोग नहीं कर सकता, और मुझे कस्टम वेब सेवा प्रदान करनी होगी, यही मैंने प्रश्न में लिखा है, मैं प्रोटोबुफ इंटरफ़ेस प्रदान करने की योजना बना रहा हूं। मैं जो पूछ रहा था वह है - क्या इस वर्कफ़्लो के लिए एक सामान्य पैटर्न है? पुस्तकालय जो दूरस्थ डेटा के साथ कोर डेटा सिंक करने में मदद करते हैं? ट्यूटोरियल? – reflog

0

आश्चर्य Ofline अगर आप तुल्यकालन प्रबंधन करने के लिए एक सिंक फ्रेमवर्क का प्रयोग करके विचार किया है

और वहाँ हमेशा एक विकल्प है पढ़ें किया जाना है। यदि वह रुचियां आप ओपन सोर्स प्रोजेक्ट, ओपनमोब्स्टर की सिंक सेवा पर एक नज़र डाल सकते हैं। आप नीचे दिए गए सिंक संचालन

  • दो तरह
  • एक तरह से ग्राहक
  • एकांगी उपकरण
  • बूटअप

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

इसके अलावा, बादल में संशोधनों पुश सूचनाएं का उपयोग कर synched कर रहे हैं भर में iCloud तरह तुल्यकालन प्रदान करता है, तो डेटा हमेशा वर्तमान है, भले ही वह स्थानीय रूप से संग्रहीत किया जाता है। , http://code.google.com/p/openmobster/wiki/iPhoneSyncApp

+0

अब कोई ओपनमोब्स्टर नहीं है! – confile