2012-01-11 21 views
10

मुझे आश्चर्य है कि सुविधाओं, पेशेवरों और विपक्ष के संदर्भ में सिंकएमएल और कैल्डावी के बीच क्या अंतर है।सिंकएमएल और कैल्डावी के बीच क्या अंतर है?

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

पहली नज़र में, CalDAV मेरी ज़रूरतों के लिए सबसे उपयुक्त प्रतीत होता है लेकिन मुझे संभावना कमियों को जानना निश्चित नहीं है। सिंकएमएल एक मानक है लेकिन मैंने ओरेकल के ब्लॉग पर कुछ पोस्ट पढ़ीं, जिसमें कहा गया है कि कैल्डावी बेहतर है ...

मुझे पता है कि Google दोनों का समर्थन करता है लेकिन ActiveSync (Exchange) भी प्रदान करता है जो माइक्रोसॉफ्ट तकनीक को उनके मुख्य समाधान के रूप में प्रदान करता है। मुझे इस तरह से रूचि नहीं है।

चीयर्स, विलियम

उत्तर

7

ठीक है, मैं खुद का जवाब दे सकता हूं।

CalDAV

CalDAVWebDAV के शीर्ष पर एक प्रोटोकॉल है जो HTTP प्रोटोकॉल का ही विस्तार है। CalDAV का वर्णन RFC 4791 में किया गया है। यह डेटा प्रारूप के रूप में iCalendar का उपयोग करता है। बहुत सारे कार्यान्वयन हैं।

विवादों के बारे में CalDAV 409 Conflicts स्थिति कोड (HTTP 1.1) का उपयोग करता है। जहां तक ​​मुझे पता है, क्लाइंट को इस त्रुटि कोड से निपटना है, iCal (मैक क्लाइंट) बस स्थानीय परिवर्तनों को उलट देता है। फिर, सर्वर में नियमों को परिभाषित करना काफी आसान है कि अगर संघर्ष हो तो क्या करना है, यदि आप उनमें से किसी एक को हल नहीं कर सकते हैं, तो हमें केवल 409 स्थिति कोड भेजने की आवश्यकता है।

मानक के रूप में, CalDAV कैलेंडर डेटा प्रबंधित करने के लिए समर्पित है, और बहुत से ग्राहक हैं।

दुर्भाग्य से, एंड्रॉयड, किसी भी देशी समाधान इस प्रोटोकॉल का उपयोग करने के प्रदान नहीं करता है वास्तव में यह Exchange ActiveSync (गूगल द्वारा उपयोग) की तुलना में कुछ और प्रदान नहीं करता है। लेकिन एंड्रॉइड मार्केट पर कई CalDAV क्लाइंट हैं।

आईओएस का CalDAV का मूल समर्थन है।

SyncML

तुल्यकालन Mrkup भाषा डेटा, नोकिया, आईबीएम, जैसी प्रमुख कंपनियों द्वारा बनाई प्रबंधन करने के लिए एक मंच स्वतंत्र तुल्यकालन भाषा है ... यह एक खुला मानक है। यह सूचना का वर्णन करने के लिए HTTP और परिवहन के रूप में एक्सएमएल का उपयोग करता है। उदाहरण के लिए एक विभिन्न सर्वर कार्यान्वयन, Funambol एक अच्छी तरह से पता है।

SyncML सात सिंक्रनाइज़ेशन में बताता है:

  • दो-तरफा सिंक: परिवर्तन के बारे में दोनों सर्वर और ग्राहक की जानकारी साझा करता है, लेकिन ग्राहक पहले जो परिवर्तन भेज है,
  • धीमी सिंक: ग्राहक अपना सभी डेटा भेजता है। सर्वर अपने डेटा और क्लाइंट के डेटा के बीच डेल्टा निर्धारित करता है, तो सर्वर इस डेल्टा भेजता है। यह अक्सर पहले सिंक्रनाइज़ेशन पर प्रयोग किया जाता है;
  • एक तरफा सिंक, क्लाइंट केवल: क्लाइंट सर्वर में परिवर्तन भेजता है;
  • क्लाइंट से सिंक रीफ्रेश करें: क्लाइंट अपना सभी डेटा भेजता है, सर्वर अपना सभी डेटा भेजता है;
  • एक तरफा सिंक, सर्वर केवल: सर्वर क्लाइंट में परिवर्तन भेजता है;
  • सर्वर से सिंक रीफ्रेश करें: सर्वर अपने सभी डेटा भेजता है, क्लाइंट सर्वर के डेटा द्वारा अपने डेटा को प्रतिस्थापित करता है;
  • सर्वर ने सिंक को चेतावनी दी: सर्वर क्लाइंट को दिए गए सिंक्रनाइज़ेशन को शुरू करने के लिए कहता है।

SyncML Updates mades on the Client always win, Updates mades on the Client always win तरह पूर्वनिर्धारित नियमों का एक सेट के साथ सर्वर पर conflits संभालती है, ...

SyncML डेटा सिंक्रनाइज़ के लिए समर्पित है लेकिन न तो आईओएस है और न ही एंड्रॉयड यह समर्थन करते हैं। नोकिया या सैमसंग स्मार्टफोन इस प्रोटोकॉल के साथ-साथ विंडोज फोन 6 का समर्थन करते हैं।

तो?

माइक्रोसॉफ्ट एक्सचेंज ActiveSync लगभग सभी स्मार्टफोन और भारी ग्राहकों का समर्थन करने का सबसे अच्छा विकल्प है। लेकिन, यह एक खुला मानक नहीं है, और यह वाणिज्यिक है, और मैंने इन कारणों से इसका वर्णन नहीं किया है, बस इसे याद रखें।

मोबाइल आपरेटिंग सिस्टम के बारे में:

  • एंड्रॉयड ActiveSync से कुछ और का समर्थन नहीं करता है, लेकिन कुछ अच्छा CalDAV ग्राहकों मौजूद हैं;
  • आईओएस CalDAV का समर्थन करता है लेकिन सिंकएमएल का समर्थन नहीं करता है, और जहां तक ​​मुझे पता है, कैलेंडर डेटा के लिए कोई सिंकएमएल क्लाइंट नहीं है (Funambol संपर्कों के लिए क्लाइंट प्रदान करता है);
  • विंडोज फोन 7 ActiveSync से कुछ और समर्थन नहीं करता है;
  • आरआईएम (ब्लैकबेरी) CalDAV का समर्थन नहीं करता है लेकिन सिंकएमएल क्लाइंट हैं;
  • मुझे अन्य ओएस (जैसे बाडा, ...) के बारे में निश्चित नहीं है।

फ्रांस में, आईओएस मोबाइल फोन के बाजार के 60% का प्रतिनिधित्व करता है, और एंड्रॉयड 30% है।

सबसे अच्छा समाधान (कम से कम मेरे लिए), संघर्ष को संभालने के लिए कस्टम नियमों के एक सेट के साथ एक CalDAV सर्वर को कार्यान्वित करके शुरू करना है, और फिर शेष बाजार को कवर करने के लिए एक सिंकएमएल सर्वर को कार्यान्वित करना है।

+0

मुझे नहीं लगता कि आप CalDAV के साथ संघर्ष कैसे संभाल सकते हैं। मैंने जो देखा है उससे कभी भी '40 9 संघर्ष' नहीं है। इसके बजाए, क्लाइंट (आईओएस/डीएवीड्रॉइड) धक्का देने से पहले सिंक्रनाइज़ ('PROPRIND' /' REPORT') सिंक्रनाइज़ करें ('PUT')। तो यदि सर्वर पर एक नया कैलेंडर ऑब्जेक्ट है, तो यह स्थानीय परिवर्तन को ओवरराइट करता है। इस मामले में, ग्राहक कभी स्थानीय परिवर्तन के बारे में सर्वर को सूचित नहीं करता है! तो घटना भागीदारी जैसे बदलावों को पूरी तरह से अनदेखा किया जा सकता है और सर्वर-साइड पर इसका निपटारा करने का कोई तरीका नहीं है ... – KrisWebDev

0

कुछ सवाल बेहतर आपकी क्वेरी को संबोधित करने के -

  1. उपकरण ग्राहकों के नियंत्रण में हैं, या आप पहले से ही-तैनात उपकरणों पर स्थानीय ग्राहकों पर भरोसा करना चाहिए?

  2. क्या आप सिंक सर्वर के नियंत्रण में हैं?

  3. क्या आप कैलेंडर घटनाओं के अलावा अन्य प्रकार के डेटा सिंक करने की आवश्यकता है? एनबी: कैलेंडर संलग्नक जैसी चीजें (उदा। संपर्क या फाइल) इस प्रश्न के प्रयोजनों के लिए "अन्य प्रकार के डेटा" के रूप में गिनती हैं।

  4. आपको किस स्तर की जटिलता का समर्थन करने की आवश्यकता है? पुनरावर्ती घटनाओं, आवर्ती घटनाओं के लिए अपवाद, साझा या सहयोगी कैलेंडर, एकाधिक अलग कैलेंडर वाले उपयोगकर्ता (उदाहरण के लिए, डिवाइस कैलेंडर, एक आउटलुक कैलेंडर, जीमेल कैलेंडर, आदि)

  5. क्या विशिष्ट डेस्कटॉप ऐप्स आपको सिंक करने की आवश्यकता है (उदाहरण के लिए, आउटलुक/एक्सचेंज), या यह पूरी तरह क्लाउड < -> डिवाइस केवल है?

+0

1. देशी ग्राहकों 2. हाँ, मैं लिखने के लिए है यह (वास्तव में, मैंने कभी यह लिखा है क्योंकि मैंने इस प्रश्न से पूछा था) 3. कैलेंडर और संपर्क डेटा 4. जैसे कुछ भी नहीं 5. नहीं, लेकिन यदि यह संभव है, तो यह ठीक है, मैंने कभी भी वेब एप्लिकेशन के रूप में कैलेंडर प्रदान किया है बीटीडब्ल्यू, मुझे लगता है कि मैंने खुद का जवाब दिया। आपके ध्यान के लिए धन्यवाद :) –

0

एंड्रॉयड समर्थन SyncML करता है - (वहाँ चेकआउट मंच, इसकी काफी सक्रिय और उन्नत क्षमताओं के लिए स्नैपशॉट की कोशिश) android-client_funambol पर funambold सिंक एप्लिकेशन
जाँच

+4

यह ** ** मूल रूप से समर्थित नहीं है। –