पृष्ठभूमि:संस्करणित SOAP वेब सेवाओं के लिए कोड को कैसे संभालें?
- हमारी वेब सेवा कंपनी आंतरिक रहे हैं, लेकिन उनका इस्तेमाल
- हम हम कर सकते हैं
वेब सेवाओं के संस्करण के बारे में बहुत सारी जानकारी है, और हमारा निर्णय हमारी वेब सेवाओं के संस्करण के लिए निम्नलिखित दृष्टिकोण का उपयोग करना था:
- यूआरएल में संस्करण रखें (मुझे पता है कि कुछ लोग इसके खिलाफ हैं, लेकिन मुख्य रूप से आरईएसटी सेवाओं के संबंध में)
- नामस्थान में संस्करण रखें।
लेकिन, अब हम यह तय कर रहे हैं कि वास्तव में इसे कैसे कार्यान्वित किया जाए, और यहां हमें सर्वोत्तम प्रथाओं की अधिक जानकारी नहीं मिली है। हम (जावा) का उपयोग करें:
- एनोटेशन एक्सएमएल एनोटेशन के साथ एनोटेट हमारी वेब सेवाओं (और वेब सेवा एपीआई)
- POJO सेम परिभाषित करने के लिए, सामग्री
- कनवर्टर कक्षाएं/से परिवर्तित करने के लिए करने के लिए परिभाषित करने के लिए व्यापार परत और वेब सेवा POJO के
- स्प्रिंग
तो, वेब सेवाओं पर पुराने संस्करणों रखने के लिए, हम कोड के पुराने संस्करण रखने की जरूरत है। ऐसा करने के लिए, हम मूल रूप से दो अलग-अलग दृष्टिकोण पर ध्यान दिया है:
com.company.webservice.v3. -all of the web service classes, POJO’s and converters go here
com.company.webservice.v4. -all of the web service classes, POJO’s and converters go here
:
1) प्रत्येक नए संस्करण के लिए, प्रासंगिक कोड की एक पूरी नई प्रतिलिपि
यह दृष्टिकोण इस प्रकार दिखाई देगा बनाना
तो, यहां हमारे पास कोड डुप्लिकेट है। हमारा विचार संक्षेप में:
- कोड डुप्लिकेशन। समान कोड के साथ कई कक्षाएं होंगी। शायद ग्रहण में उलझन में।
- पूरा अलगाव, यह निर्धारित करने के लिए आसान है कि एक विशेष संस्करण सेवाओं
2) केवल प्रत्येक वर्ग कि से प्रभावित होता है की एक प्रतिलिपि बनाने के लिए वसंत का उपयोग करें के पिछले संस्करणों की कार्यप्रणाली को प्रभावित करने के लिए
इस दृष्टिकोण का अर्थ है कि स्प्रिंग आईओसी का उपयोग करें और वेब सेवाओं के सभी संस्करणों को यथासंभव, एक ही कोड का उपयोग करने दें। केवल तभी जब हम एक परिवर्तन करते हैं जो व्यवहार/एपीआई को प्रभावित करता है, हम उन वर्गों के नए संस्करण बनाते हैं। उदाहरण के लिए:
com.company.webservice.beans.MyXMLAnnotatedPOJOv3.java
com.company.webservice.beans.MyXMLAnnotatedPOJOv4.java
com.company.webservice.translators.MyXTranslatorv1.java
com.company.webservice.translators.MyXTranslatorv2.java
- स्पष्ट रूप से देखने के लिए क्या एक वेब सेवा के विशेष संस्करण का गठन मुश्किल हो सकता है। कोड
- कोई कोड डुप्लिकेशन नहीं बनाए रखने पर वेब सेवाओं के पिछले संस्करणों को गलत तरीके से गलत करना संभव हो सकता है।केवल नए संस्करण
कोई भी दृष्टिकोण इष्टतम महसूस नहीं करता है, लेकिन हमें इसके बारे में अधिक जानकारी नहीं मिली है। तो, मेरे प्रश्न हैं: आप किस दो दृष्टिकोण का उपयोग करेंगे? या आप एक पूरी तरह से अलग दृष्टिकोण ले जाएगा?
"आप किस दो दृष्टिकोण का उपयोग करेंगे? या आप एक पूरी तरह से अलग दृष्टिकोण लेंगे" = मुख्य रूप से राय आधारित – Raedwald
क्या आपके पास इस विषय के बारे में और अनुभव है? मुझे एक ही तरह की समस्या का सामना करना पड़ रहा है और मैं अपनी वेब सेवा विकसित करने के लिए सर्वोत्तम अभ्यास/प्रक्रिया को परिभाषित करना चाहता हूं। –