6

मैं डिजाइनिंग रहा हूँ और नेट ORM को लागू करने का समर्थन करना चाहिए कि दोनों Azure संग्रहण (टेबल, कतार, धब्बे) और एडब्ल्यूएस संग्रहण (EBS, SimpleDB, S3) और छिपाने के एक आम इंटरफ़ेस के पीछे सभी कार्यान्वयन विवरण । प्रमुख डिजाइन लक्ष्य सादगी है।Azure/एडब्ल्यूएस ORM डिजाइन दिशानिर्देश

कुछ काम http://www.cs.virginia.edu/~humphrey/papers/CSAL.pdf में किया गया है, लेकिन मेरी प्रस्तावित इंटरफ़ेस, मेरी राय में, अज़ूर/एडब्लूएस स्टोरेज इंटरफ़ेस के साथ बहुत कसकर मिलकर है और नई सुविधाओं को जोड़ा जाना चाहिए या पुराना बदलना चाहिए। उदाहरण के लिए, मुझे परवाह नहीं है कि मैं टेबल बना/हटा सकता हूं, मुझे केवल कुछ प्रकार के ऑब्जेक्ट को सबसे कुशल तरीके से स्टोर करने की आवश्यकता है।

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

+1

"Azure और AWS के सबसे संभावित विकास पथों पर विचार करने की अधिक संभावना है" - किसी को भी यह कैसे पता चलेगा? – millimoose

+0

यह सही है, हम निश्चित रूप से नहीं जान सकते हैं। सबसे अच्छा अनुमान पर्याप्त होगा। – andriys

उत्तर

1

मेरा सुझाव है तो आप बस को लागू करने और सुविधाओं है कि भंडारण के दोनों प्रकार पर उपलब्ध हैं की न्यूनतम सेट की चोटी पर अमूर्त परत को तुम सच में तंग युग्मन से बचना चाहते हैं।

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

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

+0

यह वास्तव में मेरे लिए समझ में आता है। मैं इस एपीआई को डेटा लॉक-इन बाधा/सर्ज कंप्यूटिंग अवसर को संबोधित करने के लिए बना रहा हूं [अनुभाग के ऊपर: क्लाउड कंप्यूटिंग का बर्कले व्यू] (http://www.eecs.berkeley.edu/Pubs/TechRpts /2009/EECS-2009-28.pdf)। तो, क्या मैं आपको सही ढंग से समझता हूं कि आप सुझाव दे रहे हैं: 1. जेनेरिक ओआरएम बनाना भूलें क्योंकि यह विफलता की 99% संभावना है। 2. Azure और AWS के लिए दो अलग-अलग एपीआई लागू करें, और प्रत्येक के पूर्ण सुविधा सेट का उपयोग करें? – andriys

+0

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

संबंधित मुद्दे