asp.net - एएसप - डॉट नेट क्या है




किसी वेब सेवा का उपयोग कब नहीं किया जाना चाहिए? (5)

एक छोटे पैमाने पर वेब ऐप के लिए (आपको सवाल पूछना है, "क्या यह हमेशा छोटे पैमाने पर रहेगा?" हालांकि) वेब सेवाओं का उपयोग करके, अलग-अलग व्यावसायिक परतें, डेटा परतें, और इसी तरह से आगे बढ़ सकते हैं।

किसी ने मुझे गोली मारने से पहले, मैं इस बात से सहमत हूं कि यूनिट परीक्षणों के साथ परतों के बीच तर्क का पृथक्करण, निरंतर एकीकरण, आदि अल खूनी शानदार हैं। मेरी वर्तमान भूमिका में मैं उनके बिना कोने में पूरी तरह खो गया और रॉकिंग करूँगा। हालांकि, बहुत कम पैमाने पर वेब ऐप का उपयोग किया जा रहा है, उदाहरण के लिए, 36 कर्मचारियों की एक कंपनी के लिए संपर्क नंबर और पते ट्रैक करें, लागत / लाभ विश्लेषण से पता चलता है कि ऊपर सूचीबद्ध सभी "नब्बे" अधिक हो जाएंगी।

हालांकि ... सवाल पूछना याद रखें "क्या यह हमेशा छोटे पैमाने पर रहेगा?" :-)

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

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

मैं कुछ दर्जन उपयोगकर्ताओं के साथ छोटे इंट्रानेट अनुप्रयोगों के बारे में सोच रहा हूं। वेब ऐप और इसकी वेब सेवा एक वेब सर्वर पर तैनात की जाती है, न कि वेब फार्म। भविष्य में एक और वेब ऐप नहीं होने वाला है जो इस विशेष वेब सेवा का उपयोग कर सकता है। ऐसा लगता है कि वेब सेवा को कॉल करने की लागत अनावश्यक रूप से वेब सर्वर पर बोझ बढ़ जाती है। इंटर-प्रोसेस कॉल पर एक प्रदर्शन हिट होता है। वेब ऐप और वेब सेवा के लिए कोड को बनाए रखना और डिबग करना अधिक जटिल है। तो तैनाती है। मुझे यहां एक वेब सेवा का उपयोग करने के फायदे नहीं दिख रहे हैं।

कोई भी वेब ऐप के साथ और बिना वेब ऐप के दो संस्करण बनाकर इसका परीक्षण कर सकता है, और तनाव परीक्षण कर सकता है, लेकिन मैंने इसे नहीं किया है।

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


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

हालांकि निम्नलिखित परिदृश्यों में वेब सेवाओं का उपयोग करें:

  • जब आपको अपने डेटा के परिवहन और एक्सएमएल क्रमबद्धीकरण के रूप में एचटीपी का उपयोग करना होगा और आपको डेटा के कई अलग-अलग बिट्स की आवश्यकता होती है, जो सिंक्रनाइज़ और अक्सर होती है। चाहे आरईएसटी या एसओएपी या डब्ल्यूएस- * आपको प्रदर्शन के मुद्दों का सामना करना पड़ेगा। आप जितनी अधिक कॉल करेंगे उतनी धीमी गति से आपके सिस्टम होंगे। यदि आप डेटा के मध्यम आकार के हिस्सों को कम बार-बार चाहते हैं, तो असीमित रूप से और आप सीधे टीसीपीआईपी (जैसे डब्ल्यूसीएफ नेट टीसीपी बाइंडिंग) का उपयोग कर सकते हैं, तो आप बेहतर होंगे।
  • जब आपको अन्य डेटा स्रोतों के साथ अपनी वेब सेवा से डेटा पूछने और डेटा में शामिल होने की आवश्यकता होती है, तो डेटा वेयरहाउस के लिए प्रेरित करें, जिसे एंटरप्राइज से उचित समेकित और तर्कसंगत डेटा के साथ पॉप्युलेट किया जा सकता है

यह मेरा अनुभव है, उम्मीद है कि यह मदद करता है।


यदि आप अपने इंट्रानेट के लिए एक छोटे से (50 से कम उपयोगकर्ताओं) वेब एप्लिकेशन को कोडिंग कर रहे हैं, तो एक वेब सेवा ओवरकिल लगती है। विशेष रूप से यदि इसका प्राथमिक कार्य (कई सेवाओं तक पहुंच का एक बिंदु प्रदान करना) का उपयोग नहीं किया जाएगा।


वेब सेवाओं डेटा पहुंच के लिए एक बिल्कुल भयानक पसंद है। यह लगभग शून्य लाभ के लिए ओवरहेड और जटिलता का एक टन है।

यदि आपका ऐप एक मशीन पर चलने जा रहा है, तो डेटा एक्सेस कॉल में प्रक्रिया करने की क्षमता क्यों नकारें? मैं सीधे आपके यूआई कोड से डेटाबेस तक पहुंचने के बारे में बात नहीं कर रहा हूं, मैं आपके भंडारों को दूर करने के बारे में बात कर रहा हूं लेकिन अभी भी आपकी चल रही वेबसाइट में उनकी असेंबली शामिल है।

ऐसे मामले हैं जहां मैं वेब सेवाओं की सिफारिश करता हूं (और मुझे लगता है कि आप एसओएपी का मतलब मानते हैं) लेकिन यह ज्यादातर इंटरऑपरेबिलिटी के लिए है।

सेवाओं की ग्रैन्युलरिटी भी प्रश्न में है। एसओए भावना में एक सेवा एक ऑपरेशन या एक व्यापार प्रक्रिया encapsulate जाएगा। डेटा एक्सेस विधियां केवल उस प्रक्रिया का हिस्सा हैं।

दूसरे शब्दों में:

  - someService.SaveOrder(order);  // <-- bad
    // some other code for shipping, charging, emailing, etc

  - someService.FulfillOrder(order);  //<-- better
    //the service encapsulates the entire process

वेब सेवाओं के लिए वेब सेवाएं गैर जिम्मेदार प्रोग्रामिंग है।


सिर्फ इसलिए कि टूल स्टब्स का एक गुच्छा उत्पन्न करता है इसका मतलब यह नहीं है कि यह एक अच्छा उपयोग है। WS- * उन परिदृश्यों में उत्कृष्टता प्राप्त करता है जहां आप बाह्य पार्टियों को सेवाओं का पर्दाफाश करते हैं। इसका मतलब यह है कि डेटा ऑपरेशन के विपरीत प्रत्येक ऑपरेशन व्यवसाय प्रक्रिया की ग्रैन्युलरिटी पर होना चाहिए।

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

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

यदि आप एक वेबसाइट बना रहे हैं, तो एक वेबसाइट बनाएं। यदि आप अपने आवेदन के अंदर एसिंक्रोनस मैसेजिंग चाहते हैं, तो MSMQ उपयोग करें। यदि आप आंतरिक ग्राहकों को डेटा का खुलासा करना चाहते हैं, तो POX उपयोग करें। यदि आपको कुशल द्विआधारी संदेश प्रारूप की आवश्यकता है, तो Google के प्रोटोकॉल बफर की जांच करें या यदि आपको सी # या डीसीओएम के लिए आरपीसी चेक हेसियन की आवश्यकता है।

वेब सेवाएं एक मोटे अनाज एकीकरण समाधान हैं। वे कठोर हैं, वे विकल्पों की तुलना में धीमे हैं, वे अच्छी तरह से करने के लिए बहुत अधिक प्रयास करते हैं (और जब अच्छी तरह से नहीं किया जाता है तो व्यर्थ के बगल में होते हैं)।

संक्षेप में: "वेब सेवा का उपयोग कब नहीं किया जाना चाहिए?" - कभी भी आप इसके बिना दूर हो सकते हैं







web-applications