Theory
एक counter, या पूरी कंपनी?
Meera का data उसके business के बढ़ते हुए तीन अलग दुनियाओं में रहता है:
1. सिर्फ वह, एक PC पर, Excel इस्तेमाल करती।
2. counter computer पर एक billing app जो पीछे के कमरे के database से बात करता है।
3. एक online store जहाँ customers के browsers एक website के ज़रिए उसके data तक पहुँचते हैं।
हर एक user और data के बीच एक परत जोड़ता है। वह परत-गिनती, 1-tier, 2-tier, 3-tier, database architecture है, और सही चुनना एक असली design फ़ैसला है (और एक मानक exam तुलना)।
Theory
पानी पाना: कुआँ, नल, शहरी आपूर्ति
1-tier: अपने आँगन में एक कुआँ, आप खुद पानी खींचते हैं, कोई और शामिल नहीं। 2-tier: सीधे टंकी से जुड़ा एक नल, आप खोलते हैं और पानी आता है, एक सीधा link। 3-tier: शहरी जल प्रणाली, आपका नल एक treatment plant से जुड़ता है जो जलाशय से जुड़ता है, बीच में परतें जो पूरे शहर के लिए filter, control और scale करती हैं। ज़्यादा tiers, ज़्यादा अलगाव, ज़्यादा control।
At a glance
तीन tiers
| Architecture | Structure | आम इस्तेमाल |
|---|---|---|
| 1-tier | User, app, data एक ही machine पर | Excel, अकेला desktop tool |
| 2-tier | Client app सीधे DB server से बात करता है | छोटे office का billing app |
| 3-tier | Client > app server > DB server | Web और mobile apps |
Theory
3-tier ने web क्यों जीता
3-tier में, client (browser) कभी database को सीधे नहीं छूता। यह एक बीच के application server से बात करता है जो business logic रखता है और DB से बात करता है। वह बीच की परत तीन चीज़ें देती है:
- Security: database credentials server पर रहते हैं, कभी client में नहीं।
- Scalability: हज़ारों clients app server पर आते हैं, जो DB से connections pool करता है।
- Maintainability: logic को एक जगह (बीच) बदलिए बिना हर client update किए।
ठीक इसीलिए लगभग हर website, Gri-Learn समेत, 3-tier है।
Quiz
एक 3-tier architecture में, क्या client (browser) database से सीधे बात करता है?
- नहीं, यह एक बीच के application server से बात करता है, जो database से बात करता है
- हाँ, client सीधे database को SQL भेजता है
- हाँ, पर सिर्फ पढ़ने के लिए, लिखने के लिए नहीं
- 3-tier में कोई client नहीं होता
Show the answer
नहीं, यह एक बीच के application server से बात करता है, जो database से बात करता है
3-tier की परिभाषित विशेषता बीच का application/logic server है: client उससे बात करता है, और सिर्फ वही database से बात करता है। Client कभी DB को सीधे नहीं देखता, यही 3-tier को इसकी security (credentials छिपे) और scalability देता है। एक client सीधे DB को SQL भेजता हुआ 2-tier (client-server) का वर्णन है, ठीक वह contrast जो exams test करते हैं।
Think first
Meera का online store passwords लीक करता है?
मान लीजिए Meera ने अपना online store 2-tier के रूप में बनाया: customer का browser सीधे उसके database से बात करता है। गति से परे, यह कौन सी गंभीर समस्या पैदा करता है, और 3-tier इसे कैसे ठीक करता है?
Show the answer
Browser को database के login credentials चाहिए होते, जिसका मतलब है हर customer का device असल में उसके पूरे database की चाबियाँ रखता है, एक विनाशकारी security छेद (कोई भी सारा data पढ़ या बर्बाद कर सकता है)। 3-tier इसे ठीक करता है: credentials सिर्फ बीच के application server पर रहते हैं; browser बस server से विनम्रता से पूछता है और कभी database या उसका password नहीं देखता। Data को एक logic परत के पीछे छिपाना एक मुख्य security कारण है कि 3-tier web पर हावी है।
Watch out
Marks कहाँ कटते हैं
Tiers गलत गिनना: 1-tier = एक machine, 2-tier = client सीधे DB server से बात करता, 3-tier = इनके बीच एक परत। यह कहना कि 3-tier का client DB से बात करता है, वह नहीं करता, वह 2-tier है। और advantages/disadvantages सवालों में, इन्हें जोड़ीदार कीजिए: 1-tier (सरल पर share नहीं होता), 2-tier (सीधा/तेज़ पर भारी client, कमज़ोर scaling/security), 3-tier (सुरक्षित/scalable पर ज़्यादा जटिल)। संतुलित pros-and-cons पूरे marks दिलाते हैं।
Theory
आप 3-tier में जी रहे हैं
अभी: आपका browser (tier 1, presentation) Gri-Learn के server (tier 2, logic) से बात करता है जो एक database (tier 3, data) से बात करता है। इस app की बनावट ही exam जवाब है। जब आप अपना BCA project एक web app के रूप में बनाएँगे, आप उसे भी 3-tier बनाएँगे, यह theory नहीं, यह आपके भविष्य के काम का आकार है। आगे: database MODELS, data को खुद व्यवस्थित करने के अलग तरीके।
Summary
Key takeaways
- Architecture user और data के बीच की परतें गिनता है।
- 1-tier: user, app और data एक machine पर (Excel, एक local tool)। सरल, share नहीं होता।
- 2-tier: एक client app सीधे एक database server से बात करता है (client-server)। तेज़ पर भारी client, कमज़ोर scaling/security।
- 3-tier: client > बीच का application server > database server। Client कभी DB को नहीं छूता।
- 3-tier की बीच की परत security (छिपे credentials), scalability और maintainability देती है, web मानक।
- याद रखने का hook: कुआँ (1) बनाम नल-से-टंकी (2) बनाम शहरी जल प्रणाली (3)।