2009-06-12 15 views
6

संभव डुप्लिकेट
stateful webservicesस्टेटफुल वेब सेवा

मैं अपने संगठन में एक स्टेटफुल वेब सेवा के लिए एक की जरूरत है। हालांकि, हर जगह मैं ऑनलाइन पढ़ने का कहना है कि एक स्टेटफुल वेब सेवा के निर्माण बुरा प्रोग्रामिंग है, लेकिन कुछ भी नहीं कभी क्यों कहते हैं। मुझे लगता है कि मुझे समझ में नहीं आता कि इसके बारे में इतना बुरा क्या है। मैं भी वास्तव में समझ में नहीं आता क्यों वे आप एक वेब सेवा में राज्य के लिए अनुमति देने के लिए चारों ओर एक काम देना होगा है।

तो मुझे लगता है कि मेरा सवाल यह है कि, यह एक खराब वेबसाइट प्रोग्रामिंग का उपयोग करने के लिए खराब प्रोग्रामिंग क्यों है और इसकी अनुमति क्यों दी जाएगी?

+2

मैं एक अलग तरीके से इसे देखो चाहते हैं - क्या इस सेवा है कि स्टेटफुल है क्या करने की जरूरत है? क्या वह रचनात्मक रूप से धूम्रपान और दर्पण हो सकता है? –

उत्तर

16

एक वेब सेवा का पूरा उद्देश्य एक लेनदेन में कार्यक्षमता का एक टुकड़ा वितरित करना है जो अत्यधिक स्केलेबल है। इसका मतलब है चीजों को सरल और परमाणु रखना।

जब आपको ऑपरेशन करने के लिए कई कॉल करना पड़ता है, तो आपके पास लेन-देन को लटकने की एक बड़ी संभावना है। क्या ग्राहक वापस आ रहा है? क्या वे कर रहे हैं? लेनदेन कब तक खुला रहता है? क्या वे दुर्घटनाग्रस्त हो गए? रोलबैक कैसे संभाला जाना चाहिए?

इन सवालों के जवाब आपकी सेवा को चलाने के लिए आवश्यक संसाधनों पर एक कट्टरपंथी प्रभाव डाल सकते हैं। यही कारण है कि हर कोई एक झुकाव में यह सब करने की सिफारिश करता है।

+3

उत्कृष्ट जवाब! साथ ही, यदि आपका ऑपरेशन स्टेटफुल है, तो सर्वर विफल होने पर क्या होता है? (और यह होगा।यही कारण है कि हम सर्वर के क्लस्टर चलाते हैं।) सभी राज्य खो जाएंगे। स्टेटलेस आपको क्लस्टर में अगले सर्वर को अनुरोध पुनः सबमिट करने की अनुमति देता है जैसे कि कुछ भी नहीं हुआ। –

+1

बिल्कुल सही नहीं है। वेब सेवाएं दूरस्थ अनुप्रयोगों के बीच एक आम बाजार-व्यापी एकीकरण तकनीक के बारे में हैं। उनमें से ज्यादातर स्टेटलेस हैं क्योंकि जिन परिचालनों के साथ हम निपटते हैं उनमें से अधिकांश स्टेटलेस हैं ... आपका उत्तर कई स्टेटलेस सेवाओं का उपयोग करने में लोगों को गुमराह कर सकता है, जब वास्तव में एक राज्यव्यापी दृष्टिकोण सही होता है, यहां तक ​​कि इसके साथ विरासत वाले गैर-कार्यात्मक पहलुओं पर भी विचार किया जाता है। – BonanzaOne

9

यहाँ कुछ कारण मैं के बारे में सोच सकते हैं:

  1. स्थिति को बनाए रखने होगा की लागत वहन करना केवल सर्वर साइड - सेवा उपभोक्ताओं को शायद ही कभी वेब ब्राउज़र हैं, इसलिए कोई कुकीज़ की है। यह आपके सर्वर के प्रदर्शन को कम करता है और आपकी डिजाइन जटिलता को बढ़ाता है।

  2. एक सेवा उपभोक्ता एक गूढ़ ब्राउज़र की बजाय एक बुद्धिमान प्रोग्राम है। जैसे ही कार्यक्रम (लगभग हमेशा) अपने राज्य को बनाए रखेगा। दूसरे शब्दों में, जब आप कोई सेवा प्रदान करते हैं, तो आपका उपभोक्ता ठीक उसी डेटा का अनुरोध करेगा जो वह चाहता है। सर्वर पर राज्य को बनाए रखना अप्रचलित और अनावश्यक हो जाता है।

  3. लेनदेन - एक सेवा आपके सिस्टम में एक खतरनाक बिंदु है क्योंकि इसके ग्राहक अधिक बुद्धिमान होते हैं, और वे निर्णय लेते हैं कि उन्हें अपने राज्य में बदलावों के बारे में कब सूचित किया जाए। इसका मतलब यह है कि अगर आप राज्य को बनाए रखने के लिए, आप सेवा के बीच एक लेन-देन संबंधी संचालन पूरा होने तक कॉल इंतजार करना पड़ सकता है। और पूरी तरह से कोई गारंटी नहीं है कि क्लाइंट कभी भी अगली सर्विस कॉल करेगा।

कारणों की एक बहुत कुछ कर रहे हैं, लेकिन इन लोगों को मैं अपने सिर :)

-1

के ऊपर से सोच सकते हैं मुझे लगता है कि यह

मिथक का एक प्रकार गूगल कर सकते हैं है उनके स्टेटफुल वेब अनुप्रयोग स्केलेबल बनाने, तो क्यों नहीं कर सकते हम स्टेटफुल वेब सेवा पैमाने। यह ऐप सर्वर के बारे में है जो स्केलेबिलिटी को कम करता है।

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

+2

आप यह जानना चाहेंगे कि आप किस Google के बारे में बात कर रहे हैं। मुख्य google.com "स्टेटफुल" नहीं है। – NotMe