जिस तरह से आपने कई प्रश्न पूछे हैं, आपको शायद यह पता चले कि आपके द्वारा उपयोग किए जाने वाले अंतिम समाधान प्रतिस्पर्धी लक्ष्यों के बीच एक संतुलित कार्य होगा।
1: आपको "प्रदर्शन" को बेहतर परिभाषित करने की आवश्यकता है। मुझे लगता है कि आप नेटवर्क ट्रांसमिशन समय का जिक्र कर रहे हैं जिसका मतलब है कि सर्वर विलंबता कम रखना और बाइट्स की संख्या कम प्रेषित है। परम संभवतः एक कस्टम द्विआधारी तार प्रोटोकॉल है जिसे संपीड़न और संपीड़न के लिए भी लागू किया गया है जहां उपयुक्त हो (जैसे दोहराया तार या अनुक्रम)। ऐसे प्रोटोकॉल का नकारात्मक पक्ष यह है कि सर्वर & क्लाइंट दोनों पर कोड करना अधिक कठिन होगा क्योंकि आप मानकीकृत एन्कोडिंग के लिए एसडीके समर्थन का उपयोग नहीं कर पाएंगे, और जब तक विचारशील रूप से डिज़ाइन किए गए बाइनरी प्रोटोकॉल भविष्य में परिवर्तनों का समर्थन करने के लिए भंगुर नहीं होते और आपके आवेदन के लिए एक्सटेंशन।
इसके अलावा, आप पर विचार करना चाहिए कि कैसे आप अगर अपने प्रोटोकॉल एक एकल राउंड ट्रिप आप अभी भी धीमी गति से हो जाएगा बनाम कई दौर यात्राएं की आवश्यकता है यहां तक कि एक कुशल एन्कोडिंग के साथ अपने प्रोटोकॉल के लेन-देन को परिभाषित करते हैं,।
अन्त में डेटा आप भेज रहे हैं के आकार के आधार पर एक एन्कोडिंग की भूमि के ऊपर सारहीन डेटा के आकार की तुलना में किया जा सकता है। XML या JSON:
मैं एक मानकीकृत एन्कोडिंग प्रारूप है जो पुस्तकालय समर्थन के साथ पार्स किया जा सकता है, जो दो प्रमुख व्याकरण छांट लेती साथ चिपके हुए सलाह देते हैं।
2: एक्सएमएल और जेएसओएन दोनों सर्वर ढांचे में अच्छी तरह से समर्थित हैं। एक्सएमएल सेवाओं का उपयोग करते समय मैं एक आरईएसटी स्टाइल पैटर्न की अनुशंसा करता हूं क्योंकि वे आमतौर पर निर्माण करना आसान होते हैं और आपको किसी और की शैली में अपना आवेदन अनुरूप नहीं करना पड़ता है।
मैं एसओएपी-आधारित वेब सेवाओं से दूर रहूंगा, भले ही उन्हें बिल्ड करना अच्छी तरह से समर्थित हो (विशेष रूप से विंडोज प्लेटफ़ॉर्म पर), क्योंकि मोबाइल क्लाइंट पर पूर्ण SOAP- आधारित पार्स करने की जटिलता उच्च है और अच्छी तरह से समर्थित नहीं है क्या आप वहां मौजूद हैं। मुझे डब्लूएसडीएल कंपाइलर्स द्वारा स्वचालित रूप से जेनरेट ऑब्जेक्ट सीरियलाइजेशन नहीं मिलता है, जो कि कोडिंग करते समय समय बचाने के लिए जीत का बड़ा होता है, आमतौर पर आरईएसटी-स्टाइल एक्सएमएल को क्रमबद्ध करना या जेएसओएन के लिए भी आसान होता है।
3: आईओएस निर्मित एक SAX शैली XML पार्सर का समर्थन करता है, और वहाँ वर्ग उपलब्ध है कि समर्थन में स्मृति DOM क्रियान्वयन विभिन्न सुविधाओं और गति के स्तर के साथ पुस्तकालयों की एक किस्म। अपनी जरूरतों के लिए सबसे अच्छा उठाओ।मैं व्यक्तिगत रूप से टीबीएक्सएमएल पसंद करता हूं जो तेजी से, काफी हल्का और प्रोग्राम करने में आसान है, लेकिन क्योंकि यह स्कीमा को मान्य नहीं करता है और यह एक मेमोरी पेड़ है, यह कुछ स्थितियों में उपयुक्त नहीं है। आईओएस एक्सएमएल लाइब्रेरी प्रदर्शन के Here is a shootout।
यदि आप Google के आसपास हैं तो आईओएस के लिए कई JSON लाइब्रेरी उपलब्ध हैं। या look in this answer।
SOAP अच्छी तरह से समर्थित नहीं है और सीमित लाइब्रेरी विकल्प हैं। आप सर्वर द्वारा जेनरेट किए गए एसओएपी प्रतिक्रियाओं को हमेशा पार्स कर सकते हैं लेकिन यह सर्वर-साइड परिवर्तनों के लिए भंगुर है जो कानूनी SOAP (उदा। अलग नामस्थान उपसर्ग) हैं जो एक हार्डकोडेड एक्सएमएल पार्सर तोड़ सकता है।
4: अपने प्रोजेक्ट के विवरण के बारे में और जानने के बिना जवाब देने में मुश्किल है, लेकिन मैं एक JSON या साधारण XML- आधारित एन्कोडिंग की तरफ झुकता हूं क्योंकि: क्लाइंट और सर्वर पर प्रोग्राम करना आमतौर पर आसान होता है, दोनों के साथ किया जा सकता है तार पर उचित दक्षता, और भविष्य के ऐप पुनरावृत्तियों के लिए एक्स्टेंसिबल होने की संभावना है।
जेएसओएन के पास पार्स के लिए थोड़ा आसान होने के फायदे हैं, कम शब्दशः हो सकते हैं, और अन्य उद्देश्यों के लिए पुनः कार्य करना भी आसान हो सकता है, जैसे आपकी सेवाओं के शीर्ष पर एक अजाक्स वेब क्लाइंट बनाना।
5: एक्सएमएल बनाम जेएसओएन बनाम अन्य एन्कोडिंग? मुझे लगता है कि यह एक व्यक्तिगत वरीयता है। एक्सएमएल जेएसओएन की तुलना में अधिक आत्म-वर्णन कर सकता है लेकिन पार्स करने के लिए और अधिक काम होने की संभावना है। जेएसओएन कच्चे बाइट्स में कम ओवरहेड हो सकता है और पार्स करना आसान है। फिर से एन्कोडिंग ओवरहेड महत्वपूर्ण हो सकता है या आपकी सामग्री के आकार के आधार पर नगण्य हो सकता है। इसके अलावा आप किसी भी मामले में बाहरी संपीड़न लागू कर सकते हैं।
मैं इस चर्चा के परिणाम के रूप में रुचि है, मैं नहीं बल्कि जल्द ही एक ही स्थिति का सामना करना पड़ जाएगा। – Webnet
यदि आप एक्सएमएल से बचने का इरादा रखते हैं, तो आप [JSON] (http://en.wikipedia.org/wiki/JSON) की जांच करना चाहेंगे। उद्देश्य-सी में जेएसओएन को संभालने के लिए [पुस्तकालय] (http://code.google.com/p/json-framework/) हैं। – JoeGaggler
मैं एक्सएमएल से बचने का इरादा नहीं रखता हूं, असल में पढ़ने से मैंने पहले से ही आरपीसी-एक्सएमएल पसंद किया है, हालांकि मुझे पता है कि यह बैंडविड्थ पर खर्च करेगा। तो मुझे यह देखने में दिलचस्पी है कि लागत एक्सएमएल का उपयोग करने के लायक है और साथ ही किस प्रकार की योजना सबसे अच्छी और आसान होगी। – jamone