2010-04-06 20 views
12

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


हमने इस दृष्टिकोण के लिए राज्य या स्टेटलेस वेबसाइसेस के बारे में चर्चा शुरू की। मैंने कुछ शोध अपने स्वयं के अनुभव के साथ संयुक्त किया, जो मुझे बाद में बताए गए प्रश्न पर इंगित करता है।

स्टेटलेस निम्नलिखित गुण (हमारे मामले में) होने webservices:

+ high scalability 
+ high availability 
+ high speed 
+ rapid testing 
- bloated contract 
- implementing more logic on server-side 

लेकिन हम पहले दो अंक बाहर पार कर सकते हैं, हमारे आवेदन नहीं उच्च मापनीयता और उपलब्धता की जरूरत है।

तो हम राज्यव्यापी webservice पर आते हैं। मैं ब्लॉग और मंच पदों की एक गुच्छा पढ़ा है और सबसे आविष्कार बिंदु स्टेटफुल वेब सेवा को लागू करने गया था:

+ simplifies contract (protocol) 
- bad testing 
- runs counter to the basic architecture of http 

लेकिन लगभग सभी वेब अनुप्रयोगों इन बुरा अंक है? वेब अनुप्रयोग http की स्टेटलेसनेस से बचने के लिए कुकीज़, क्वेरी स्ट्रिंग्स, सत्र आईडी और सभी चीजों का उपयोग करता है।

तो वेबसाइकिलों के लिए यह बुरा क्यों है?

+1

बहुत डुप्ली के करीब: http://stackoverflow.com/questions/988819/stateful-webservice – gregmac

+3

राज्य को ऐसी जगह पर रखें जो आसानी से राज्य को संभाल सके: डेटाबेस –

उत्तर

9

क्योंकि एक webservice में राज्य को रखना मुश्किल है और यदि आप बेहद सावधान और/या अनुभवी नहीं हैं या बाद में आप बग खोजने के लिए कुछ मुश्किल हो सकते हैं।

+0

अच्छा, यह प्लेटफॉर्म पर निर्भर करता है। कई बार कंटेनर आपके लिए सत्रों का ख्याल रखेगा। –

+1

क्यों न केवल एक कंटेनर का उपयोग करें जो इस उद्देश्य के लिए तैयार किया गया है जैसे कि आरडीएमएस। –

+0

मुझे यकीन नहीं है कि मैं समझता हूं। यदि आप आरडीएमएस में सामान डालते हैं तो इसका मूल रूप से मतलब है कि आप अपने सत्रों को घुमाएं जो शायद खराब प्रदर्शन करेंगे। ऐसा लगता है कि उसे सत्र में लगातार जानकारी की आवश्यकता नहीं है, तो इसे वहां क्यों रखा जाए? –

1

मुझे राज्य की वेब सेवाओं के साथ उचित भाग्य मिला है। वे थोड़ा गंदे महसूस करते हैं क्योंकि HTTP के शीर्ष पर छेद कुकी सत्र की बात यह है कि; लेकिन दूसरी ओर वे SOAP थे, इसलिए उस बिंदु पर सौंदर्य के बारे में बहुत परेशान होने के लिए यह बेवकूफ होगा।

ध्यान में रखना एक बात अंतःक्रियाशीलता है: यदि आप राज्यव्यापी वेब सेवा कर रहे हैं तो आपके ग्राहकों को आपके द्वारा किए जाने वाले राज्य के समान विचार (आमतौर पर कुकीज़) का समर्थन करना होगा। लेकिन फिर से - मेरे लिए ठीक काम किया।

पीएस मुझे लगता है कि आप एक कंटेनर में हैं जो आपके लिए सत्रों का ट्रैक रखने का ख्याल रखेगा।

2

राज्य वह जगह है जहां अधिकांश बग छुपाते हैं।