"लेयर्स" और "टियर्स" में क्या अंतर है?


215

"लेयर्स" और "टियर्स" में क्या अंतर है?


4
लगभग सभी लोग जो मैं सॉफ्टवेयर की दुनिया में मिले हैं, इन दोनों शब्दों का परस्पर उपयोग करता है जैसे कि वे बिल्कुल एक जैसे हों।
RBT

जवाबों:


260

तार्किक परतें आपके कोड को व्यवस्थित करने का एक तरीका है। विशिष्ट परतों में प्रस्तुति, व्यवसाय और डेटा शामिल हैं - पारंपरिक 3-स्तरीय मॉडल के समान। लेकिन जब हम परतों के बारे में बात कर रहे हैं, हम केवल कोड के तार्किक संगठन के बारे में बात कर रहे हैं। किसी भी तरह से यह निहित नहीं है कि ये परतें अलग-अलग कंप्यूटरों पर या किसी एकल कंप्यूटर पर अलग-अलग प्रक्रियाओं में या किसी एकल कंप्यूटर पर एकल प्रक्रिया में भी चल सकती हैं। हम जो कुछ भी कर रहे हैं वह विशिष्ट फ़ंक्शन द्वारा परिभाषित परतों के एक सेट में एक कोड को व्यवस्थित करने के तरीके पर चर्चा कर रहा है।

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

स्रोत: रॉकफोर्ड लोटका, क्या सभी ऐप्स को एन-टियर होना चाहिए?


43

इस मुद्दे पर स्कॉट हैन्समैन की पोस्ट पढ़ें: http://www.hanselman.com/blog/AReminderOnThreeMultiTierLayerArchitectureDesignBroughToYouByMyLateNightFrustrations.aspx

हालांकि, याद रखें कि "स्कॉट वर्ल्ड" (जो उम्मीद है कि आपकी दुनिया भी :)) में एक "टीयर" तैनाती की एक इकाई है, जबकि "लेयर" कोड के भीतर जिम्मेदारी का एक तार्किक अलगाव है। आप कह सकते हैं कि आपके पास "3-स्तरीय" प्रणाली है, लेकिन इसे एक लैपटॉप पर चलाएं। आप कह सकते हैं कि आपके पास "3-परत" प्रणाली है, लेकिन केवल ASP.NET पृष्ठ हैं जो डेटाबेस से बात करते हैं। परिशुद्धता में शक्ति है, दोस्तों।


36

परतें कोड के तार्किक पृथक्करण को संदर्भित करती हैं। तार्किक परतें आपके कोड को बेहतर तरीके से व्यवस्थित करने में आपकी मदद करती हैं। उदाहरण के लिए एक आवेदन में निम्न परतें हो सकती हैं।

1) प्रस्तुति परत या UI परत 2) व्यापार परत या व्यापार तर्क परत 3) डेटा एक्सेस परत या डेटा परत

एबोव तीन परतें अपने स्वयं के प्रोजेक्ट में रहती हैं, 3 प्रोजेक्ट या इससे भी अधिक हो सकती हैं। जब हम परियोजनाओं को संकलित करते हैं तो हमें संबंधित परत DLL मिलती है। तो हमारे पास 3 DLL है।

इस बात पर निर्भर करते हुए कि हम अपने आवेदन को किस प्रकार तैनात करते हैं, हमारे पास 1 से 3 स्तर हो सकते हैं। जैसा कि अब हमारे पास 3 डीएलएल हैं, यदि हम सभी डीएलएल को एक ही मशीन पर तैनात करते हैं, तो हमारे पास केवल 1 भौतिक स्तरीय लेकिन 3 तार्किक परतें हैं।

यदि हम प्रत्येक डीएलएल को एक अलग मशीन पर तैनात करने का विकल्प चुनते हैं, तो हमारे पास 3 स्तरों और 3 परतें हैं।

तो, परतें एक तार्किक पृथक्करण हैं और टियर्स एक भौतिक अलगाव हैं। हम यह भी कह सकते हैं कि, टीयर परतों की भौतिक तैनाती हैं।


आपके जवाब से मुझे क्या समझ में आया कि हम तीन अलग-अलग सर्वरों पर 3 लेयर (DLL) तैनात कर सकते हैं। सही ? क्या आप मुझे बता सकते हैं कि मैं प्रस्तुति परत पर व्यावसायिक तर्क परत का संदर्भ कैसे दे सकता हूं?
मज़हर ख़ान

@MazharKhan आप प्रस्तुति परत तक व्यापार परत की कार्यक्षमता को उजागर करने के लिए एक सेवा का उपयोग करना चाह सकते हैं
अमित सक्सेना

32

हमेशा जटिल शब्दों का उपयोग करने की कोशिश क्यों की जाती है?

एक परत = आपके कोड का एक हिस्सा , यदि आपका आवेदन एक केक है, तो यह एक टुकड़ा है।

एक टियर = एक भौतिक मशीन , एक सर्वर।

एक स्तरीय एक या अधिक परतों को होस्ट करता है।


परतों का उदाहरण:

  • प्रस्तुति परत = आमतौर पर उपयोगकर्ता इंटरफ़ेस से संबंधित सभी कोड
  • डेटा एक्सेस लेयर = आपके डेटाबेस एक्सेस से संबंधित सभी कोड

टीयर:

आपका कोड एक सर्वर पर होस्ट किया गया है = आपका कोड एक स्तरीय पर होस्ट किया गया है।

आपका कोड 2 सर्वरों पर होस्ट किया गया है = आपका कोड 2 स्तरों पर होस्ट किया गया है।

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


एक स्तरित वास्तुकला को लागू करने के लिए बहुत सारे लाभ हैं। यह मुश्किल है और एक स्तरित आवेदन को ठीक से लागू करने में समय लगता है। यदि आपके पास कुछ है, तो Microsoft की इस पोस्ट पर एक नज़र डालें: http://msdn.microsoft.com/en-gb/library/ee658109.aspx


13

मुझे एक परिभाषा मिली है जो कहती है कि परतें एक तार्किक पृथक्करण हैं और टियर एक भौतिक पृथक्करण हैं।


10
  1. सादे अंग्रेजी में, Tier"पंक्तियों की एक श्रृंखला या संरचना के स्तरों में से प्रत्येक को एक के ऊपर एक रखा जाता है" को Layerसंदर्भित करता है, जबकि "शीट, मात्रा या सामग्री की मोटाई, आमतौर पर कई में से एक, सतह या शरीर को कवर करने के लिए" संदर्भित करता है। "।

  2. टीयर एक भौतिक इकाई है , जहां कोड / प्रक्रिया चलती है। जैसे: क्लाइंट, एप्लिकेशन सर्वर, डेटाबेस सर्वर;

    परत एक तार्किक इकाई है , कोड को कैसे व्यवस्थित किया जाए। उदाहरण: प्रस्तुति (देखें), नियंत्रक, मॉडल, रिपॉजिटरी, डेटा एक्सेस।

  3. टीयर अलग-अलग कंप्यूटर और सिस्टम में आपके डिज़ाइन की प्रस्तुति, व्यवसाय, सेवाओं और डेटा कार्यक्षमता की भौतिक पृथक्करण का प्रतिनिधित्व करते हैं।

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

दो-स्तरीय पैटर्न क्लाइंट और सर्वर का प्रतिनिधित्व करता है।

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

लेयर बनाम टियर्स

परतों और स्तरों के लाभ:

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

  • अपनी परतों को अलग-अलग भौतिक स्तरों पर रखने से कई सर्वरों पर भार वितरित करके प्रदर्शन में मदद मिल सकती है। यह विभिन्न नेटवर्क पर या इंटरनेट बनाम एक इंट्रानेट पर अधिक संवेदनशील घटकों और परतों को अलग करके सुरक्षा में मदद कर सकता है।

1-टियर एप्लिकेशन 3-लेयर एप्लिकेशन हो सकता है।


6

हाँ मेरे प्यारे दोस्तों ने सही कहा। लेयर एप्लिकेशन का एक तार्किक विभाजन है जबकि टियर सिस्टम विभाजन का भौतिक विभाजन है विभाजन परत विभाजन पर निर्भर करता है। बस एक मशीन पर एक अनुप्रयोग निष्पादित होता है, लेकिन यह 3 स्तरित वास्तुकला का अनुसरण करता है, इसलिए हम कह सकते हैं कि परत वास्तुकला एक स्तरीय वास्तुकला में मौजूद हो सकती है। सरल शब्द में 3 लेयर आर्किटेक्चर सिंगल मशीन में लागू हो सकता है फिर हम कह सकते हैं कि इसकी 1 स्तरीय वास्तुकला है। यदि हम प्रत्येक परत को अलग मशीन पर लागू करते हैं तो इसकी 3 स्तरीय वास्तुकला कहलाती है। एक परत कई स्तरीय चलाने में सक्षम हो सकती है। परत वास्तुकला से संबंधित घटक में आसानी से एक दूसरे से संवाद करने के लिए।
जैसे हम नीचे दिए गए आर्किटेक्चर का अनुसरण करते हैं

  1. प्रस्तुति अंश
  2. व्यापार तर्क परत
  3. डेटा एक्सेस लेयर

एक ग्राहक "प्रेजेंटेशन लेयर" के लिए बातचीत कर सकता है, लेकिन वे सिक्योरिटी कारण के कारण लेयर के सार्वजनिक घटक (जैसे बिजनेस लॉजिक लेयर के पब्लिक कंपोनेंट) को "बिजनेस लॉजिक लेयर" तक पहुंचाते हैं।
क्यू * हम परत वास्तुकला का उपयोग क्यों करते हैं? क्योंकि अगर हम लेयर आर्किटेक्चर को लागू करते हैं तो हम अपनी एप्लिकेशन दक्षता को बढ़ाते हैं

==> सुरक्षा

==> प्रबंधन क्षमता

==> scalability

अन्य आवश्यकता जैसे आवेदन विकसित करने के बाद हमें dbms को बदलने या व्यावसायिक तर्क को संशोधित करने आदि की आवश्यकता होती है, तब यह सभी के लिए आवश्यक है।

क्यू * हम स्तरीय वास्तुकला का उपयोग क्यों करते हैं?

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

सरल उदाहरण है

ठीक उसी तरह जैसे बैंक एक चैम्बर में खुलता है, जिसमें कर्मचारी को श्रेणी देता है:

  1. द्वारपाल
  2. नकदी के लिए एक व्यक्ति
  3. एक व्यक्ति जो बैंकिंग योजना शुरू करने के लिए जिम्मेदार है
  4. प्रबंधक

वे सभी प्रणाली के संबंधित घटक हैं।

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

टियर के बारे में क्या? एक शहर में एक बैंक की शाखा खुलती है, उसके बाद दूसरे शहर में, उसके बाद दूसरे में लेकिन प्रत्येक शाखा की बुनियादी आवश्यकता क्या है

  1. द्वारपाल
  2. नकदी के लिए एक व्यक्ति
  3. एक व्यक्ति जो बैंकिंग योजना शुरू करने के लिए जिम्मेदार है
  4. प्रबंधक

परत और स्तरीय की समान अवधारणा।


महान व्याख्या प्रिय
दुलज कुलथुंगा

6

परतें एक अनुप्रयोग के related-functionality[code]भीतर तार्किक पृथक्करण हैं , परतों के बीच संचार स्पष्ट और शिथिल युग्मित है। [प्रस्तुति तर्क, अनुप्रयोग तर्क, डेटा एक्सेस तर्क]

टियर एक व्यक्तिगत कंप्यूटर (प्रक्रिया) में layers[व्यक्तिगत सर्वर पर होस्ट किए गए] का भौतिक पृथक्करण है ।

यहां छवि विवरण दर्ज करें

जैसा कि चित्र में दिखाया गया है:

1-Tier & 3-Layers « App Logic  with out DB access store data in a files.
2-Tier & 3-Layers « App Logic & DataStorage-box.
2-Tier & 2-Layers « Browser View[php] & DataStorage[procedures]
2-Tier & 1-Layers « Browser View[php] & DataStorage, query sending is common.
3-Tier & n-Layer  « Browser View[php], App Logic[jsp], DataStorage

n- टियर के फायदे:
बेहतर सुरक्षा
स्केलेबिलिटी : जैसे-जैसे आपका संगठन बढ़ता है आप अपने DB-Tier को DB-Clustering के साथ अन्य स्तरों को छूने के लिए तैयार कर सकते हैं।
रखरखाव : वेब डिजाइनर व्यू-कोड को बदल सकते हैं, अन्य स्तरों पर अन्य परतों को छूने के साथ।
आसानी से अपग्रेड या एन्हांस करें [Ex: आप अतिरिक्त एप्लिकेशन कोड जोड़ सकते हैं, संग्रहण क्षेत्र को अपग्रेड कर सकते हैं, या यहां तक ​​कि मोबाइल, टैबलेट, पीसी जैसे अलग-अलग डिवाइसेज के लिए कई प्रस्तुति परतें जोड़ सकते हैं]


6

मुझे Microsoft एप्लिकेशन आर्किटेक्चर गाइड 2 से नीचे का विवरण पसंद है

परतें एक अनुप्रयोग में कार्यक्षमता और घटकों के तार्किक समूह का वर्णन करती हैं; जबकि स्तरों अलग सर्वर, कंप्यूटर, नेटवर्क, या दूरस्थ स्थानों पर कार्यक्षमता और घटकों के भौतिक वितरण का वर्णन करते हैं। यद्यपि दोनों परतें और स्तरीय नाम (प्रस्तुति, व्यवसाय, सेवाएँ और डेटा) के समान सेट का उपयोग करते हैं, याद रखें कि केवल tiers एक भौतिक अलगाव का अर्थ है।


5

मैं अपने समाधान के एक घटक के भीतर वास्तुकार या प्रौद्योगिकी स्टैक का वर्णन करने के लिए परतों का उपयोग करता हूं। मैं उन घटकों को तार्किक रूप से समूह बनाने के लिए उपयोग करता हूं जो आमतौर पर नेटवर्क या इंटरप्रोसेस संचार में शामिल होते हैं।


1

तकनीकी रूप से एक टीयर कोड चलाने के लिए आवश्यक न्यूनतम वातावरण हो सकता है।

उदाहरण के लिए काल्पनिक रूप से 3-स्तरीय ऐप चल सकता है

  1. बिना ओएस वाले 3 भौतिक मशीनें।
  2. 1 भौतिक मशीन जिसमें कोई भी ओएस नहीं है, 3 आभासी मशीनों के साथ।

    (यह एक 3- (हार्डवेयर) स्तरीय ऐप था)

  3. 1 भौतिक मशीन जिसमें 3 अलग-अलग / एक ही ओएस के साथ 3 वर्चुअल मशीन हैं

    (यह एक 3- (ओएस) स्तरीय ऐप था)

  4. 1 भौतिक मशीन 1 वर्चुअल मशीन के साथ 1 OS लेकिन 3 AppServers के साथ

    (यह एक 3- (AppServer) स्तरीय ऐप था)

  5. 1 भौतिक मशीन 1 वर्चुअल मशीन के साथ 1 OS के साथ 1 AppServer लेकिन 3 DBMS

    (यह एक 3- (DBMS) स्तरीय ऐप था)

  6. 1 भौतिक मशीन 1 वर्चुअल मशीन के साथ 1 OS के साथ 1 AppServers और 1 DBMS लेकिन 3 एक्सेल वर्कबुक।

    (यह एक 3- (AppServer) स्तरीय ऐप था)

Excel कार्यपुस्तिका VBA कोड को चलाने के लिए न्यूनतम आवश्यक वातावरण है।

वे 3 वर्कबुक एक ही भौतिक कंप्यूटर या कई पर बैठ सकते हैं।

मैंने देखा है कि व्यवहार में लोगों का अर्थ "OS Tier" होता है जब वे एप्लिकेशन विवरण संदर्भ में "Tier" कहते हैं।

अगर कोई ऐप 3 अलग-अलग OS पर चलता है तो उसका 3-टीयर ऐप है।

तो एक एप्लिकेशन का वर्णन करने का एक सही ढंग से सही तरीका होगा

"1-टू-3-टियर सक्षम, 2 टियर्स पर चल रहा है" ऐप।

:)


एप्लिकेशन के साथ कर्तव्यों के कार्यात्मक पृथक्करण के संबंध में परतें केवल प्रकार के कोड हैं (जैसे प्रस्तुति, डेटा, सुरक्षा आदि)


0

परतें वैचारिक संस्थाएं हैं, और तार्किक दृष्टिकोण से सॉफ्टवेयर सिस्टम की कार्यक्षमता को अलग करने के लिए उपयोग किया जाता है; जब आप सिस्टम को लागू करते हैं तो आप विभिन्न तरीकों का उपयोग करके इन परतों को व्यवस्थित करते हैं; इस हालत में हम उन्हें परतों के रूप में नहीं बल्कि स्तरों के रूप में संदर्भित करते हैं।


0

जब आप प्रस्तुति, सेवा, डेटा, नेटवर्क परत के बारे में बात करते हैं, तो आप परतों के बारे में बात कर रहे हैं। जब आप "उन्हें अलग से तैनात करते हैं", तो आप टियर के बारे में बात करते हैं।

टियर सभी तैनाती के बारे में है। इसे इस तरह से लें: हमारे पास एक एप्लिकेशन है, जिसमें एंगुलर में एक फ्रंटएंड बनाया गया है, इसमें एक बैकऑन MongoDB और एक मध्य परत है, जो फ्रंटएंड और बैकएंड के बीच इंटरैक्ट करता है। इसलिए, जब यह फ्रंटएंड एप्लिकेशन, डेटाबेस एप्लिकेशन और मध्य परत सभी को अलग से तैनात किया जाता है, तो हम कहते हैं कि यह 3 स्तरीय एप्लिकेशन है।

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.