13

हम एक वेब एप्लिकेशन विकसित कर रहे हैं। हम संभवतः एक अलग एप्लिकेशन के लिए जो काम करते हैं, उसका पुन: उपयोग करना चाहते हैं जो एक ही डेटाबेस का उपयोग करेगा, और डेटाबेस के पढ़ने और लिखने के लिए समान व्यवसाय नियमों का उपयोग करेगा।यूआई, बिजनेस लॉजिक लेयर, डेटा लेयर और वेब सेवाओं को कहां रखा जाए

कौन सा डिजाइन अधिक सही

  1. यूआई कॉल वेब सेवाओं, जो व्यापार तर्क है, जो डेटा का उपयोग परत से बात करेंगे युक्त व्यापार वस्तुओं का प्रयोग करेंगे होने होगा।

  2. यूआई उपयोग व्यापार व्यापार तर्क है, जो वेब सेवाओं, जो तब डेटा का उपयोग परत से बात करेंगे कहेंगे युक्त वस्तुओं है।

  3. यूआई उपयोगकर्ता व्यापार वस्तुओं में व्यावसायिक तर्क शामिल है, जो डेटा एक्सेस परत से बात करेगा।

उत्तर

0

आपके विवरण से, आपने एक कारण प्रदान नहीं किया है कि आपको वेब सेवा परत के उपयोग की आवश्यकता क्यों होगी। मान लें कि आपका डेटाबेस आपके यूआई सिस्टम द्वारा पहुंचा जा सकता है, यानी आपके फ़ायरवॉल के पीछे एक ही नेटवर्क के भीतर, एक मूल व्यवसाय-ऑब्जेक्ट परत जो आपकी वेबसाइट यूआई कोड (सर्वर-साइड, मैं मान रहा हूं) नियोजित आपकी आवश्यकताओं को पूरा करेगी।

एक वेब सेवा स्तरीय में ले आओ जब अपने यूआई प्रणाली और आपका डेटा स्तर के बीच की दूरी सीमाओं कि एक डेटा एक्सेस परत या व्यापार तर्क परत समस्या आती है करने के लिए शुरू होता पार करने के लिए शुरू होता है।

1

डिज़ाइन के संदर्भ में "सही" या नहीं, पूर्ण संदर्भ के बिना किसी डिज़ाइन की शुद्धता के लिए 100% उत्तर देना संभव नहीं है। आवश्यकताएं क्या हैं (कार्यात्मक और गैर-कार्यात्मक)? आप किस डिजाइन लक्ष्यों को पूरा करना चाहते हैं? प्रत्येक लक्ष्य कितना महत्वपूर्ण है?

आपके प्रश्न का एकमात्र लक्ष्य यह है कि आप किसी अन्य एप्लिकेशन के साथ व्यवसाय तर्क का पुन: उपयोग करना चाहते हैं। जब मैं एक मानक तरीके से किसी एप्लिकेशन के व्यावसायिक तर्क का पुन: उपयोग करना चाहता हूं तो मैं वेब सेवाओं का चयन करता हूं। तो पूरी तरह से आपकी एक आवश्यकता पर आधारित मैं कहूंगा कि विकल्प 1 (यूआई-> वेब सेवा-> बिजनेस लेयर-> डेटा लेयर) एक अच्छी पसंद है।

0

चेक आउट: http://www.icemanind.com/layergen.aspx

जिस तरह से यह जाना चाहिए है, तो आप शीर्ष पर अपने यूआई परत, तल पर आपका डेटा स्तर और दोनों के बीच में अपने व्यापार परत होती है। प्रत्येक परत केवल नीचे की परत के साथ संवाद कर सकती है। तो यूआई केवल व्यापार परत से बात करता है ... व्यापार परत केवल डेटा परत से बात करती है। आपके यूआई को कभी भी डेटा लेयर से बात नहीं करनी चाहिए और आपकी डेटा परत को कभी भी आपके यूआई से बातचीत नहीं करनी चाहिए।

जब तक आपके पास वेब सेवा का उपयोग करने का कोई कारण नहीं है, तो मैं नहीं करूँगा।

4

मैं तीसरा कहूंगा। मैं वेब सेवाओं के बारे में सोचता हूं कि एक और प्रस्तुति परत है।

इस बारे में सोचें: आपके पास एक वेब यूआई है, जो आपके व्यवसाय स्तर कोड को एक नया उपयोगकर्ता (User.Add) बनाने जैसी चीजों को करने के लिए कहता है, किसी दिए गए विवरण से मेल खाने वाले सभी उत्पादों को ढूंढें (Products.FindByDescription), आदि

अब आप उसी व्यापार स्तर कोड का फिर से उपयोग कर सकते हैं ताकि तीसरे पक्ष के लिए सार्वजनिक पक्ष की वेब सेवाओं का एक सेट तैयार किया जा सके। एक ऐसी विधि हो सकती है जो उपयोगकर्ता को जोड़ती है - जो आपके आंतरिक उपयोगकर्ता को कॉल करती है।() विधि जोड़ें, उत्पादों को खोजने के लिए दूसरा, आदि ..

आपको जो भी मिलता है वह समान अंतर्निहित डेटा और व्यावसायिक तर्क के लिए प्रस्तुतिकरण/इंटरफेस का समानांतर सेट है।

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

आपकी व्यावसायिक परत में उपयोगकर्ता नाम जैसे नियम 4 से 15 वर्ण लंबा होना चाहिए; उपयोगकर्ताओं को केवल उन उत्पादों को खोजने और लोड करने की अनुमति है जो उनके पास पहुंचने वाले स्टोर पर हैं; इत्यादि

यदि आप एक व्यापार नियम बदलने का निर्णय लेते हैं - जैसे किसी उपयोगकर्ता को अपने राज्य में किसी भी स्टोर में उत्पादों की खोज करने की अनुमति है - तो आप इसे एक बार में बदलते हैं, और वेब सेवा को स्पर्श करने की आवश्यकता नहीं है या इसे काम करने के लिए यूआई।

10

भौतिक डिजाइन के साथ तार्किक डिजाइन मिश्रण न करें। तार्किक डिजाइन परतों और भौतिक डिजाइन - स्तरों पर काम करता है। वेब सेवा एक परत नहीं है। यह बस एक स्तर है। तार्किक डिजाइन में मानक दृष्टिकोण है: यूआई परत-> बीएल परत -> डीएएल भौतिक डिजाइन में सभी परतें स्थानीय डेटाबेस को जोड़ने वाले क्लाइंट-साइड एप्लिकेशन के भीतर रह सकती हैं, या दूरस्थ स्तर पर वितरित की जा सकती हैं। लेकिन वितरित अनुप्रयोगों के लिए आमतौर पर एक और परत जोड़ा जाता है: अनुप्रयोग परत, जो तार पर बीएल परत संचार से छिपाती है।

+3

मुझे लगता है कि यह वेब सेवाओं को कहां रखना है, इस सवाल का जवाब नहीं है? – siamak

1

तार्किक रूप से, वेब-सेवाएं यूआई परत में हैं। "उपयोगकर्ता" के बारे में सोचें न केवल एक इंसान बल्कि एक और प्रणाली है और यह स्पष्ट हो जाता है। इन तार्किक परतों के बीच चिंताओं के सख्त अलगाव को बनाए रखने से आप अपने आवेदन को आसानी से कार्यान्वित और बनाए रख सकेंगे।

0

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

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