2008-09-25 16 views
11

मुझे याद है कि एक डेटा अज्ञेय ढांचे (उदाहरण के लिए ExecuteCommand विधियों आदि) में निम्न स्तर की कॉल को सारणीबद्ध करता है, और अन्य में आमतौर पर व्यावसायिक विशिष्ट विधियां (जैसे अद्यतन ग्राहक) शामिल होती है।"डेटा सेवा परत" और "डेटा एक्सेस लेयर" के बीच क्या अंतर है?

क्या यह सही है? कौन सा क्या है?

उत्तर

12

मेरे लिए यह एक व्यक्तिगत डिजाइन निर्णय है कि आप अपने प्रोजेक्ट डिज़ाइन को कैसे संभालना चाहते हैं। कभी-कभी डेटा एक्सेस और डेटा सेवा एक और एक जैसी होती है। .NET और LINQ के लिए यह मामला है।

मेरे लिए डेटा सेवा परत वास्तव में डेटाबेस को कॉल करता है। डेटा एक्सेस लेयर ऑब्जेक्ट प्राप्त करता है और डेटाबेस को कॉल करने के लिए डेटा सेवा परत के लिए उन्हें बनाता है या संशोधित करता है।

मेरे डिजाइन में बिजनेस लॉजिक लेयर व्यवसाय नियमों के आधार पर वस्तुओं का उपयोग करता है, फिर उन्हें डेटा एक्सेस लेयर में भेजता है जो उन्हें डेटाबेस या डेटाबेस से ऑब्जेक्ट्स में जाने के लिए प्रारूपित करेगा, और डेटा सेवा परत हैंडल वास्तविक डेटाबेस कॉल।

7

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

डेटा एक्सेस लेयर डेटा और एप्लिकेशन के बीच सीमा पर बैठता है। "डेटा" एप्लिकेशन द्वारा उपयोग किए जाने वाले डेटा स्रोतों का विविध सेट है। इसका अर्थ यह हो सकता है कि एकाधिक स्रोतों से डेटा खींचने के लिए प्रत्येक एप्लिकेशन में पर्याप्त कोडिंग किया जाना चाहिए। कोड जो डेटा दृश्यों को बनाता है, कुछ अनुप्रयोगों में अनावश्यक होगा।

चूंकि डेटा स्रोतों की संख्या बढ़ती है और अधिक जटिल हो जाती है, डेटा पहुंच, परिवर्तन और एकीकरण के पते के विवरण तक डेटा पहुंच के विभिन्न कार्यों को अलग करना आवश्यक हो जाता है। अच्छी तरह से डिज़ाइन की गई डेटा सेवाओं के साथ, व्यवसाय सेवाएँ उच्च स्तर के अमूर्तता पर डेटा के साथ बातचीत करने में सक्षम होंगे। डेटा लॉजिक जो डेटा एक्सेस, एकीकरण, अर्थात् रिज़ॉल्यूशन, रूपांतरण, और अनुप्रयोगों द्वारा आवश्यक डेटा दृश्यों और संरचनाओं को संबोधित करने के लिए पुनर्गठन को संभालता है, डेटा सेवा परत में सबसे अच्छा encapsulated है।

डाटा सर्विसेज लेयर को अपने घटक भागों (यानी डेटा एक्सेस, ट्रांसफॉर्मेशन और एकीकरण) में और भी आगे तोड़ना संभव है। ऐसे मामले में आपके पास "डेटा एक्सेस लेयर" हो सकता है जो केवल डेटा पुनर्प्राप्त करने के साथ ही संबंधित है, और एक "डेटा सेवा परत" जो डेटा एक्सेस लेयर के माध्यम से अपना डेटा पुनर्प्राप्त करता है और पुनर्प्राप्त डेटा को आवश्यक विभिन्न वस्तुओं में जोड़ता है और बदलता है व्यापार सेवा परत।

0

डाटा सेवा लेयरWebSphere Commerce दस्तावेज में किया अवधारणा स्पष्ट है:

डेटा सेवा परत (डीएसएल) डेटा का उपयोग के लिए एक अमूर्त परत शारीरिक स्कीमा से स्वतंत्र है प्रदान करता है। डेटा सेवा परत के प्रयोजन के लिए एक सुसंगत इंटरफ़ेस डेटा तक पहुँचने के लिए (डेटा सेवा मुखौटा कहा जाता है), वस्तु-संबंधपरक मानचित्रण ढांचे के स्वतंत्र प्रदान करना है

वर्तमान में इंटरनेट में डीएसएल अवधारणा मुख्य रूप से जुड़ा हुआ है SOAs (सेवा उन्मुख आर्किटेक्चर) के साथ ही न केवल। एन-स्तरीय अनुप्रयोगों के उदाहरण में Here का उल्लेख किया गया है।

1

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

यह सब काम एक भी मशीन के अंदर और एक ही आवेदन में होता है, अवधि डाटा सेवा परत एक सेवा फसाड (अविवेक) के बराबर है। यह सही डेटा एक्सेस लेयर पर एप्लिकेशन कॉल की सर्विसिंग और प्रतिनिधि के लिए ज़िम्मेदार है।

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

तो बस स्पष्ट होना, आवेदन एक DSL और एक दाल का उपयोग करता है। ऐप में डीएसएल को उसी एप्लिकेशन में डीएएल से बात करनी चाहिए। डीएएल के पास एक एकल डेटासोर्स का उपयोग करने का विकल्प है, या किसी अन्य वेब सेवा में प्रतिनिधि है। वेब सेवा डीएसएल उस अनुरोध के लिए डीएएल को काम सौंप सकता है। दरअसल, डेटा का जवाब देने के लिए एक वेब सेवा अनुरोध के लिए कई डेटा स्रोतों का उपयोग करना संभव है।

जो कुछ भी कहा गया है, व्यावहारिक perspecive से, यह केवल तभी होता है जब सिस्टम तेजी से जटिल हो जाते हैं, वास्तुकला पैटर्न पर अधिक ध्यान देना चाहिए। चीजों को सही करने के लिए यह अच्छा अभ्यास है, लेकिन आपके काम को अनावश्यक रूप से सोना चढ़ाने में कोई बात नहीं है। याद रखें याद रखें? वैसे जो गूंजने में असफल रहता है उस समय आओ!

निष्कर्ष करने के लिए: डेविड व्हीलर का एक प्रसिद्ध कहावत है: "कंप्यूटर विज्ञान में सभी समस्याओं अविवेक के एक अन्य स्तर से हल किया जा सकता", [1] इस बार जानबूझकर "अमूर्त परत" के लिए प्रतिस्थापित साथ गलत उद्धृत है "स्तर संकेत के "। केवलिन हेनी का यह सिद्धांत है, "... संकेत के बहुत से परतों की समस्या को छोड़कर।"

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