2010-01-29 9 views
5

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

उदाहरण के लिए:

  • मौजूदा कार्यों
  • कि
  • निकाला जा रहा है कार्यों
  • मौजूदा कार्यों
  • निकाला जा रहा है चर से पैरामीटर निकाला जा रहा है मौजूदा कार्यों में किया जाता है मौजूदा structs को चर जोड़ने के लिए पैरामीटर जोड़ने मौजूदा कार्यों में उपयोग किए जाने वाले मौजूदा structs से
  • चांग एक मौजूदा समारोह
  • एक मौजूदा समारोह
  • में मापदंडों के आदेश को बदलने के लिए एक मौजूदा struct
  • में समग्र भागों के आदेश को बदलने का नाम बदल रहा मौजूदा कार्यों
  • का नाम बदलने मापदंडों
में इस्तेमाल एक पैरामीटर के प्रकार ing

नोट: द्वारा "struct" मैं एक समग्र प्रकार

+0

मैं इसे आरपीसी का मतलब लेता हूं - आईपीसी नहीं? – troelskn

+0

@troelskn: हां। मेरे लिए, ये समानार्थी हैं। –

उत्तर

3

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

संपादित:

एक्सएमएल और XSD प्रकार और वस्तु उन्मुख भाषाओं में क्रमबद्धता से स्कीमा के विकास के बारे में अधिक लचीला है। कुछ सामान को उन्हें वैकल्पिक रूप से घोषित करके पिछड़ा संगत बनाया जा सकता है, उदा।

  • मौजूदा कार्यों पैरामीटर जोड़ना - अगर एक पैरामीटर वैकल्पिक है, यदि आप एक null मूल्य प्राप्त करता है, तो ग्राहक यह
  • मौजूदा संरचना कि मौजूदा कार्यों में किया जाता है करने के लिए चर जोड़ना नहीं भेजता है - यदि मान वैकल्पिक है, आप null प्राप्त करता है, तो ग्राहक यह
  • निकाला जा रहा है कार्यों प्रदान नहीं करता है - यहाँ कोई जादू
  • मौजूदा कार्यों से पैरामीटर को हटा रहा है - क्लाइंट द्वारा भेजे गए पैरामीटर नई परिभाषा के अनुसार अनावश्यक होंगे और
  • मौजूदा कार्यों में उपयोग की जाने वाली मौजूदा संरचना से चर को हटाने - मुझे इस मामले में पता नहीं है
  • मौजूदा फ़ंक्शन में उपयोग किए गए पैरामीटर के प्रकार को बदलना - यह परिवर्तन पर निर्भर करता है। एक साधारण प्रकार के लिए serialization/deserialization अभी भी काम कर सकते हैं, उदा। Int करने के लिए स्ट्रिंग।

ध्यान दें कि मैं सूची का 100% निश्चित नहीं हूं। लेकिन कुछ परीक्षण आपको दिखा सकते हैं कि क्या काम करता है और क्या नहीं। मुद्दा यह है कि एक्सएमएल तार पर भेजा जाता है, इसलिए यह कुछ लचीलापन देता है।

+0

"यहां कोई जादू नहीं है": आप सही हैं: डी –

+0

धन्यवाद आपके उत्तर के लिए बहुत कुछ! हालांकि, मुझे अचानक एहसास हुआ कि मैं दो अतिरिक्त मामलों का उल्लेख करना भूल गया: कार्यों का नाम बदलना और मानकों का नाम बदलना। क्या आप जानते हैं कि उन मामलों में क्या होता है? –

+0

इस मामले में एक्सएमएल असंगत होगा, इसलिए यह काम नहीं करेगा। मुझे लगता है कि आपको संदेश को बदलने की आवश्यकता होगी, उदा। एक्सएसएलटी के साथ। – ewernli

3

यह नहीं है मतलब है। आपको इसे किसी भी तरह मैन्युअल रूप से प्रबंधित करना होगा। आम तौर पर एक नया इंटरफ़ेस बनाकर जब आप प्रमुख/ब्रेकिंग परिवर्तन पेश करते हैं।

अधिक आम तौर पर यह एक तकनीकी की बजाय एक वास्तुशिल्प समस्या है। एक बार इंटरफ़ेस प्रकाशित हो जाने पर, आपको वास्तव में परिवर्तनों को संभालने के तरीके के बारे में सोचना होगा।

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

  • कोई संबंधित समस्या नहीं^_^