2012-12-14 32 views
5

उत्पन्न करना मुझे मौजूदा सेवा आधारित एप्लिकेशन की निर्माण प्रक्रिया को देखने के लिए कहा गया है। इसमें कई सेवा आधारित मॉड्यूल हैं जिनमें से कुछ सेवाएं किसी तृतीय पक्ष द्वारा प्रदान की जाती हैं। निर्माण प्रक्रिया में उपयोग किए गए wsdls को नीचे और http के माध्यम से निर्माण में लाया जाता है। योग्यता के लिए, मैं wsdl से कक्षाएं उत्पन्न करने के लिए मेवेन 3 और axistools-maven-plugin का उपयोग कर रहा हूं।WSDL पुनरावर्तनीय निर्माण

इससे मुझे सोचने लगा। अगर रिमोट सर्वर नीचे है तो मेरा निर्माण विफल हो जाएगा। यदि wsdl मेरे निर्माण को बदलता है तो भी असफल हो सकता है। क्या मुझे यह चाहिए? रिमोट wsdls को सेवा/wsdl नाम में संस्करणित किया गया है, इसलिए एपीआई में कोई बड़ा बदलाव नहीं किया जाना चाहिए, लेकिन वे तीसरे पक्ष हैं और मैं वास्तव में इस सम्मेलन पर भरोसा नहीं कर सकता।

स्थानीय स्तर पर wsdl डाउनलोड करना और स्रोत नियंत्रण में मौजूद फ़ाइल के विरुद्ध निर्माण करना बेहतर नहीं होगा? रिमोट सर्वर अनुपलब्ध होने का कोई खतरा नहीं होने पर मुझे उचित दोहराने योग्य निर्माण होगा। हालांकि यह बहुत चुस्त प्रतीत नहीं होता है। अगर मैं इस दृष्टिकोण को अपनाता हूं, तो मैं दूरस्थ wsdl में किसी भी बदलाव के बारे में कैसे जागरूक हो जाऊं?

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

+0

प्रोग्रामर.स्टैकएक्सchange.com पर बेहतर हो सकता है लेकिन यह एक अच्छा सवाल है। – Qwerky

+0

क्या सर्वर wsdl को इतनी बार पेश करता है कि किसी ने वास्तव में यह देखा है या यह सिर्फ एक सामान्य विचार है? एक अविश्वसनीय सेवा की तरह लगता है :) मैं आमतौर पर डाउनटाइम के बजाय परिवर्तनों के बारे में अधिक चिंतित हूं। बस उत्सुक, क्योंकि आपने पहले डाउनटाइम का उल्लेख किया था। – Scorpio

+1

स्थानीय रूप से डब्लूएसडीएल की प्रतिलिपि रखना ठीक है (जैसा कि हर कोई सुझाव दे रहा है)।डब्ल्यूएसडीएल रिमोट वेब सेवा के लिए एक अनुबंध है। अनुबंध के बिना अनुबंध के बदले में दोनों पार्टियों के लिए अनुबंध की प्रतिलिपि रखना विशेष रूप से सामान्य होता है :-) –

उत्तर

4

यदि आप तेजी से और भरोसेमंद निर्माण चाहते हैं तो सुनहरा नियम किसी भी चीज पर भरोसा नहीं करना है जिसे आप नियंत्रित नहीं करते हैं!

आपके मामले में मैं स्थानीय रूप से डब्लूएसडीएल को कैशिंग कर रहा हूं ताकि मूल स्रोत अनुपलब्ध या परिवर्तन हो तो निर्माण विफल नहीं होता है। हालांकि, अगर आप सभी चिंतित हैं कि डब्लूएसडीएल बदल सकता है, तो मैं भी एक अलग बिल्डिंग जॉब तैयार करूँगा जो प्रत्येक दिन चलता है और कैश की गई प्रतिलिपि मूल के साथ तुलना करता है, अगर वे अलग होते हैं तो विफल हो जाते हैं। यह आपको दोनों दुनिया के सर्वश्रेष्ठ प्रदान करता है ... डब्लूएसडीएल बदलता है तो दोहराने योग्य बनाता है और प्रारंभिक चेतावनी देता है।

डब्लूएसडीएल को कैश करते हुए आप कैसे/कैसे पूरी तरह से कैश करते हैं, लेकिन इसे संस्करण नियंत्रण में चिपकाना एक त्वरित और सरल विकल्प है।

0

मैं डब्लूएसडीएल फाइलों को डाउनलोड करूंगा और उन्हें बाकी परियोजना के साथ स्रोत नियंत्रण में डाल दूंगा।

मुख्य लाभ यह है कि यह एक दोहराने योग्य निर्माण की गारंटी देता है। यदि आप उन्हें प्रत्येक निर्माण पर डाउनलोड करते हैं तो यह दोहराने योग्य नहीं है। उदाहरण के लिए कहें कि आप एक देव या परीक्षण वातावरण में निर्माण और तैनाती करते हैं, एप्लिकेशन को साइन आउट करें, फिर लाइव पर रहने और तैनात करें। यदि डब्लूएसडीएल बदल गया है, तो आपका लाइव बिल्ड परीक्षण में साइन आउट किए गए कार्यों से अलग है और अच्छी तरह से काम कर सकता है। यदि आपके पास नेटवर्क कॉमम्स समस्याएं हैं तो हो सकता है कि आप भी निर्माण करने में सक्षम न हों।

इसका मतलब है कि आपको स्वचालित रूप से डब्लूएसडीएल का नवीनतम संस्करण नहीं मिलेगा, लेकिन यह एक अच्छी बात है।

+0

मैं आमतौर पर क्लाइंट कोडिंग, यानी स्थानीय wsdl (+ xsd, यदि कोई हो) पर एक ही दृष्टिकोण के साथ जाता हूं। , फिर भी मैं इससे नाखुश हूं। आम तौर पर, मैं अनचाहे wsdl या स्कीमा परिवर्तन से डरता हूं। याद रखने के लिए बस कुछ, हालांकि यह * वास्तव में * नहीं होना चाहिए। – Scorpio

+0

मैं wsdl/xsds डाउनलोड करने और उन्हें स्रोत नियंत्रण में संग्रहीत करने के लिए सभी हूं। मुझे लगता है कि यह मुझे दोहराने योग्य निर्माण देता है जो मैं चाहता हूं। यदि मैं सॉफ़्टवेयर रिलीज़ करता हूं, तो संस्करण 1.0.0 कहें, फिर wsdls में परिवर्तन एक नया निर्माण करने का कारण बनता है, मुझे 1.0.1 रिलीज़ करना होगा और मैं उस बिल्ड के साथ wsdls/xsds को स्टोर करूंगा। मेरा डर यू-नो-पू सुझाव देता है, wsdls को संग्रहित करके मैं विकास के दौरान परिवर्तन नहीं कर सकता। क्या इसे करने का कोई तरीका है। यानी सही दुनिया है? – theINtoy

0

यदि आप जानते हैं कि वेब सेवा में एक निश्चित wsdl है, तो इसकी स्थानीय प्रतिलिपि बेहतर तरीके से उपयोग करें।

यदि wsdl स्वयं बदलने की संभावना है, तो हमेशा अपने निर्माण के लिए यूआरएल का बेहतर उपयोग करें।

यदि नेटवर्क नीचे एक मुद्दा है, तो दो अलग-अलग बिल्ड प्रोफाइल (मेवेन में), एक स्थानीय के लिए और दूसरा यूआरएल के लिए बनाएं।