एसओए में हमें क्लाइंट और सर्वर के बीच राज्य (या निर्भर निर्भरता) का निर्माण या धारण नहीं करना चाहिए। यह समझा जाता है। लेकिन इस मामले में क्या पैटर्न का पालन किया जा सकता है कि कोई ग्राहक वास्तविक समय की सेवा का उपभोग करना चाहता है जो 'पंक्तियों' की खुली समाप्ति संख्या वापस कर सकता है?एसओए/वेब सेवा पेजिनेशन
एसओए के समान वेब अनुप्रयोग, लेकिन राज्य (सत्र) के लिए अनुमति देने से इसे अंकन के साथ हल किया गया है। पेजिनेशन की आवश्यकता होती है (ज्यादातर मामलों में, विशेष रूप से एसक्यूएल के साथ) कि सर्वर डेटा रखता है और क्लाइंट डेटा में डेटा का अनुरोध करता है।
यदि हम वेब सेवाओं के लिए पेजिनेशन जैसी परिदृश्यों पर विचार करना चाहते हैं, तो ये कौन से पैटर्न पालन करेंगे जो अभी भी एसओए के सिद्धांतों का पालन करने की अनुमति देगा (या जितना संभव हो सके करीब)।
विचारकों के लिए कुछ नियम: 1) एक SQL डेटाबेस के समर्थन से (इसलिए) एक सेट का चयन में एक पंक्ति संख्या की कोई अवधारणा) 2 यह लगातार छोड़ सकते हैं या एक में एक पंक्ति नकल नहीं करने के लिए महत्वपूर्ण है पृष्ठांकन 3) डाटा डाला जा सकता है के दौरान सेट और अन्य ग्राहकों 4) डाटासेट एक जीवित (अद्यतन करने योग्य) डाटासेट
व्यक्तिगत रूप से विचार करने के लिए कोई जरूरत नहीं है द्वारा डेटाबेस में किसी भी समय नष्ट कर दिया, मुझे लगता है कि 1 और 2 ऊपर से पहले समाधान के साथ समाधान स्थान को बाधित करके हमारे समाधान को वर्तनी देते हैं।
मेरे प्रस्तावित समाधान में डेटा (जितना अधिक चुना जाता है) को केवल पढ़ने के लिए स्टोर/कैश में संग्रहीत किया जाएगा जहां इसे परिणाम सेट में पंक्ति संख्या असाइन की जा सकती है और इस डेटा स्नैपशॉट पर पेजिनेशन होने की अनुमति दी जा सकती है। स्नैपशॉट्स (सर्वर, बाहरी कैश, memcached या ehcache स्टोर करने के लिए मेरे पास बुनियादी ढांचा होगा - यह काफी बड़ा होना चाहिए)। ऐसी क्वेरी का परिणाम स्नैपशॉट आईडी होगा और स्नैपशॉट एपीआई (वेब सेवाएं) और स्नैपशॉट आईडी का उपयोग करके स्नैपशॉट से डेटा पुनर्प्राप्त कर सकते हैं। परिणामों को केवल पढ़ने के लिए, एक्स रिकॉर्ड के लिए केवल एक ही समय में संसाधित किया जाएगा, जहां एक्स कुछ उचित था।
प्रतिस्पर्धी विचार और विचार, आलोचना या प्रशंसा की सराहना की जाएगी।
मैं आपको बताऊंगा कि ट्विटर कैसे उनके अंकन को संभालता है। यह आपकी मदद की हो सकती है https://dev.twitter.com/rest/public/timelines –