स्थिति पर विचार करें।अभ्यास में रीस्ट वास्तव में स्टेटलेस हो सकता है?
मैं एक सांख्यिकीय विश्लेषण ऐप लिख रहा हूं। ऐप में कई स्तर हैं।
- फ्रंटेंड यूआई कई डिवाइस प्रकारों, डेस्कटॉप, ब्राउज़र, मोबाइल के लिए लिखा गया है।
- मिड-स्तरीय सर्वलेट जो इन फ्रंटेंड को तथाकथित आरईएसटी सेवा प्रदान करता है।
- बैकएंड जो सांख्यिकीय प्रसंस्करण की अत्यधिक गणना करता है।
- कौन सा कारण से एक और बैकएंड डेटाबेस
के साथ संचार कि सांख्यिकीय विश्लेषण प्रसंस्करण शक्ति की भारी राशि की आवश्यकता है, तो आप सामने के अंत करने के लिए इस तरह के प्रसंस्करण सौंपने का सपना कभी नहीं होगा।
सांख्यिकीय विश्लेषण प्रक्रियाओं या काम प्रवाह चरणों की एक श्रृंखला के होते हैं।
कुछ चरणों को इतनी प्रोसेसिंग पावर की आवश्यकता हो सकती है, आप उन्हें दोहराने के लिए नहीं चाहते हैं।
आप 20 चरणों में से एक काम के प्रवाह है, तो आप पहला कदम 19 है, जो बिना पहला कदम 18 क्रियान्वित निष्पादित नहीं किया जा सकता को क्रियान्वित करने के बिना कदम 20 पर अमल नहीं कर सकते, इतने पर और इसके आगे।
अवलोकन अंक, इस तरह, कि उदाहरण के लिए, सांख्यिकीविद् चरण 3, 7, 9, 14, 19 से पहले अगले चरण पर आगे बढ़ने के लिए क्लाइंट साइड करने के लिए कह के परिणामों का निरीक्षण करना चाहिए रहे हैं।
इन चरणों में से प्रत्येक, बाकी सेवा करने के लिए एक तथाकथित अनुरोध कर रहे हैं को बैकएंड सुपर कंप्यूटर बता उत्तरोत्तर स्मृति में सांख्यिकीय मॉडल स्थापित करने के लिए।
कई वर्कफ़्लो हैं। कुछ वर्कफ़्लो आकस्मिक रूप से चरण परिणाम साझा कर सकते हैं। उदाहरण के लिए, प्रवाह [शुष्क]: चरण [7] प्रवाह [गीला] साझा कर सकता है: चरण [10]। प्रसंस्करण की मात्रा में के कारण, हमने पूरी तरह से को एक चरण दोहराया है जो आकस्मिक रूप से किसी अन्य प्रवाह द्वारा पूरा हो सकता है।
इसलिए, आप देख सकते हैं कि तथाकथित बाकी सेवा में तैयार किया जा रहा, यह संभव नहीं है कि प्रत्येक अनुरोध किसी भी पिछले अनुरोध से स्वतंत्र हो।
इसलिए, निम्नलिखित कथन कितना सच हो सकता है?
सभी आरईएसटी इंटरैक्शन स्टेटलेस हैं। यही है, प्रत्येक अनुरोध में अनुरोध को समझने के लिए कनेक्टर के लिए जरूरी सारी जानकारी शामिल है, जो इससे पहले हो सकता है कि किसी भी अनुरोध से स्वतंत्र हो।
जाहिर है, आवेदन मैं वर्णित है, आवश्यकता है कि अनुरोध पिछले अनुरोध पर निर्भर होना। इस ऐप से संबंधित तीन संभावनाएं हैं जिन्हें मैं देख सकता हूं।
- मेरा ऐप आरईएसटी का पालन नहीं करता है, क्योंकि यह स्टेटलेस अनुरोधों का पालन नहीं कर सकता है। यह जेएक्स-आरएस ढांचे का उपयोग कर सकता है, लेकिन जेएक्स-आरएस का उपयोग करके और आरईएसटी के सभी सामानों ने इसे आरईएसटी नहीं बनाया है, क्योंकि यह स्टेटलेस मानदंडों में विफल रहता है।
- मेरा ऐप बुरी तरह से डिज़ाइन किया गया है - मुझे एक सांख्यिकीय मॉडल को फिर से स्थापित करने के लिए अस्थायी और वित्तीय लागत से बचने की कोशिश करना चाहिए, भले ही वर्कफ़्लो के लिए 5-15 मिनट लग गए हों। बस सुनिश्चित करें कि पिछले अनुरोधों पर कोई निर्भरता नहीं है। आवश्यक होने पर महंगा कदम दोहराएं।
- स्टेटलेस मानदंड पुराना है। आरईएसटी की मेरी समझ पुरानी/दोषपूर्ण है कि आरईएसटी समुदाय लगातार इस मानदंड को अनदेखा कर रहा है।
क्या मेरा ऐप रीस्टफुल माना जाता है?
नया प्रश्न: आईएसओ 9000
अंत में, मामले में मेरे एप्लिकेशन नहीं पूरी तरह से शांत माना जाता है, सभी संदर्भों को "आराम" आईएसओ 9000 प्रमाण पत्र पारित करने के लिए छोड़ देना करने के लिए की आवश्यकता होगी?
नया संपादित:
बाकी-इन-टुकड़ा
ठीक है, मेरे सहकर्मी और मैं इस पर चर्चा की और इस तरह के एक वास्तुकला/पैटर्न बाकी-इन-टुकड़ा = टुकड़ों चरणों में बाकी बुलाने का फैसला किया है ।
"राज्य" की आपकी परिभाषा क्या है? –
दिमित्री - बिल्कुल मेरा सवाल। हमें उन गुरुओं से पूछना है जो आरईएसटी को परिभाषित करते हैं। –
डेटाबेस में अभी तक राज्य है, वहां बहुत सारे डेटाबेस समर्थित वेब अनुप्रयोग हैं जिन्हें रीस्टफुल माना जाता है। क्या होगा यदि इसका डेटाबेस या इसका हिस्सा स्मृति में है? असल में, मेरा मानना है कि "राज्य" जिसे रेस्ट आर्किटेक्चर को बनाए रखना नहीं चाहिए, एक सत्र (अस्थिर) राज्य है, न कि एप्लिकेशन (व्यवसाय) राज्य। –