UNIT 2: वेब सिस्टम आर्किटेक्चर

 

UNIT 2: वेब सिस्टम आर्किटेक्चर

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


2.1. वेब-आधारित सिस्टम्स का आर्किटेक्चर

वेब-आधारित सिस्टम्स को डिज़ाइन करते समय यह महत्वपूर्ण होता है कि सिस्टम के विभिन्न घटक (सर्वर, क्लाइंट, डेटाबेस) एक साथ सही ढंग से काम करें। वेब आर्किटेक्चर यह निर्धारित करता है कि इन घटकों के बीच कैसे संवाद होगा।

2.1.1. क्लाइंट/सर्वर (2-टियर) आर्किटेक्चर

क्लाइंट/सर्वर आर्किटेक्चर में दो मुख्य घटक होते हैं:

  1. क्लाइंट: क्लाइंट वह डिवाइस है (जैसे ब्राउज़र या एप्लिकेशन) जो डेटा के लिए अनुरोध भेजता है।
  2. सर्वर: सर्वर वह जगह है जहां संसाधन (डेटा, वेब पेज) होते हैं और यह क्लाइंट के अनुरोधों को प्रोसेस करता है।

कैसे काम करता है:

  • क्लाइंट एक अनुरोध भेजता है (जैसे किसी वेब पेज या डेटा के लिए)।
  • सर्वर उस अनुरोध को प्रोसेस करता है और आवश्यक जानकारी या सेवा वापस भेजता है।

क्लाइंट/सर्वर (2-टियर) आर्किटेक्चर का फ्लोचार्ट:

[Client] -----> Request Data -----> [Server] -----> Response Data -----> [Client]

इस 2-टियर आर्किटेक्चर में, क्लाइंट सीधे सर्वर से संपर्क करता है। सर्वर व्यापार लॉजिक, डेटा संग्रहण और प्रस्तुति को संभालता है।

फायदे:

  • सरल डिज़ाइन।
  • प्रबंधन में आसान।

नुकसान:

  • स्केलेबिलिटी की समस्याएँ, क्योंकि सभी प्रोसेसिंग सर्वर पर होती है।
  • उच्च ट्रैफिक होने पर सर्वर पर ओवरलोड हो सकता है।

2.1.2. 3-टियर आर्किटेक्चर

3-टियर आर्किटेक्चर आर्किटेक्चर को तीन स्तरों में बाँटता है:

  1. प्रस्तुति स्तर (क्लाइंट टियर): यह वह जगह है जहाँ उपयोगकर्ता सिस्टम के साथ इंटरैक्ट करते हैं (आमतौर पर फ्रंट-एंड या UI)।
  2. एप्लिकेशन स्तर (व्यापार लॉजिक टियर): यह स्तर व्यापार लॉजिक को संभालता है और क्लाइंट और डेटाबेस के बीच डेटा प्रोसेस करता है।
  3. डेटा स्तर (डेटा टियर): यह वह जगह है जहाँ डेटा स्टोर और प्राप्त किया जाता है।

इस आर्किटेक्चर में, प्रत्येक स्तर एक विशिष्ट कार्य करता है और पूरी प्रक्रिया को पूरा करने के लिए इसके पास वाले स्तरों से संवाद करता है।

कैसे काम करता है:

  • क्लाइंट टियर: क्लाइंट एप्लिकेशन टियर को अनुरोध भेजता है।
  • एप्लिकेशन टियर: एप्लिकेशन टियर अनुरोध को प्रोसेस करता है, व्यापार लॉजिक लागू करता है, और डेटाबेस से जानकारी प्राप्त करता है।
  • डेटा टियर: डेटा टियर डेटा स्टोर करता है या आवश्यकतानुसार डेटा प्राप्त करता है और इसे एप्लिकेशन टियर को वापस भेजता है।

3-टियर आर्किटेक्चर का फ्लोचार्ट:

[Client] --> [Application Server] --> [Database Server] ↑ ↑ | | Business Logic Data Processing

फायदे:

  • बेहतर स्केलेबिलिटी क्योंकि प्रत्येक स्तर को स्वतंत्र रूप से स्केल किया जा सकता है।
  • सुरक्षा और रखरखाव में सुधार क्योंकि डेटाबेस और एप्लिकेशन लॉजिक अलग-अलग होते हैं।
  • प्रत्येक स्तर को बिना अन्य स्तरों को प्रभावित किए आसानी से अपडेट किया जा सकता है।

नुकसान:

  • डिज़ाइन और रखरखाव में अधिक जटिलता।
  • कई स्तरों के कारण संचार में समय की देरी हो सकती है।

2.2. तेज़ और स्केलेबल डेटा एक्सेस अवधारणाओं के निर्माण ब्लॉक्स

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

2.2.1. कैशेस, प्रॉक्सीज़, इंडेक्सेज़, लोड बैलेंसर, क्यूज़

आइए इन घटकों को समझें:

  1. कैश:

    • कैशिंग बार-बार अनुरोधित डेटा को मेमोरी में स्टोर करता है ताकि डेटा को बार-बार प्राप्त करने का समय कम हो सके।
    • उदाहरण: जब एक उपयोगकर्ता वेब पेज का अनुरोध करता है, तो सर्वर उसे बार-बार उत्पन्न करने के बजाय कैश से पेज प्राप्त कर सकता है।

    कैशिंग का फ्लोचार्ट:

    User Request -> Check Cache -> If Cache Hit -> Return Cached Data | If Cache Miss -> Generate Data -> Store in Cache

    फायदे: तेज़ प्रतिक्रिया समय, सर्वर पर लोड कम।

  2. प्रॉक्सी:

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

    • इंडेक्स एक डेटा संरचना है जो डेटाबेस में डेटा के त्वरित पुनः प्राप्ति की अनुमति देती है। यह एक किताब के सूचकांक की तरह है, जो बिना पूरी किताब पढ़े जानकारी जल्दी प्राप्त करने में मदद करता है।
    • उदाहरण: डेटाबेस में कॉलम को इंडेक्स करना त्वरित खोज और क्वेरी के लिए उपयोगी है।
  4. लोड बैलेंसर:

    • एक लोड बैलेंसर आने वाले अनुरोधों को कई सर्वरों के बीच समान रूप से वितरित करता है ताकि कोई एक सर्वर अधिक लोड से न भरे।
    • यह स्केलेबिलिटी और उपलब्धता को बढ़ाने में मदद करता है।

    लोड बैलेंसिंग का फ्लोचार्ट:

    User Request -> Load Balancer -> Distribute Requests -> Multiple Servers

    फायदे: यह सुनिश्चित करता है कि कोई एक सर्वर अधिक लोड से प्रभावित न हो, एप्लिकेशन की उपलब्धता और फॉल्ट टॉलरेंस में सुधार होता है।

  5. क्यूज़:

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

    क्यूज़ का फ्लोचार्ट:

    Request Arrives -> Add to Queue -> Worker Processes Request -> Response Sent

    फायदे: सर्वर पर ओवरलोड नहीं होता, कार्यों को प्रभावी ढंग से प्रोसेस किया जाता है।


2.3. वेब एप्लिकेशन आर्किटेक्चर (WAA)

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

WAA के घटक:

  1. क्लाइंट साइड (फ्रंट-एंड):

    • यह वह उपयोगकर्ता इंटरफ़ेस है जहाँ उपयोगकर्ता एप्लिकेशन के साथ इंटरैक्ट करते हैं। इसमें HTML, CSS, JavaScript और लाइब्रेरी जैसे React या Angular शामिल होते हैं।
    • फ्रंट-एंड डेटा को प्रस्तुत करता है और बैक-एंड को अनुरोध भेजता है।
  2. सर्वर साइड (बैक-एंड):

    • बैक-एंड में वेब सर्वर (जैसे Apache या Nginx) और एप्लिकेशन सर्वर (जैसे Node.js, Django, या Ruby on Rails) होते हैं।
    • यह आने वाले अनुरोधों को प्रोसेस करता है, व्यापार लॉजिक चलाता है, डेटाबेस से संवाद करता है और आवश्यक डेटा वापस भेजता है।
  3. डेटाबेस:

    • डेटाबेस में सभी एप्लिकेशन डेटा स्टोर होते हैं और इसे बैक-एंड द्वारा एक्सेस किया जाता है।
    • उदाहरण: MySQL, MongoDB, और PostgreSQL
  4. मिडलवेयर:

    • मिडलवेयर सॉफ़्टवेयर परतें होती हैं जो क्लाइंट और सर्वर के बीच स्थित होती हैं और अतिरिक्त कार्यक्षमता प्रदान करती हैं जैसे प्रमाणीकरण, लॉगिंग, और अनुरोध प्रोसेसिंग।

WAA कैसे काम करता है:

  1. एक उपयोगकर्ता फ्रंट-एंड (UI) के साथ इंटरैक्ट करता है, जो सर्वर साइड को अनुरोध भेजता है।
  2. सर्वर अनुरोध को प्रोसेस करता है, व्यापार लॉजिक लागू करता है, डेटाबेस से जानकारी प्राप्त करता है और प्रतिक्रिया भेजता है।
  3. प्रतिक्रिया को फ्रंट-एंड पर उपयोगकर्ता के लिए प्रस्तुत किया जाता है।

वेब एप्लिकेशन आर्किटेक्चर (WAA) का फ्लोचार्ट:

[Client (Browser)] | Send Request (UI) | [Web Server] -----> [Application Server] -----> [Database] | | | Response to Client -----> Business Logic -----> Data Fetch/Store

फायदे:

  • प्रत्येक घटक का स्पष्ट विभाजन (फ्रंट-एंड, बैक-एंड, और डेटाबेस)।
  • स्केलेबिलिटी: प्रत्येक घटक को स्वतंत्र रूप से स्केल किया जा सकता है।
  • लचीलापन: विभिन्न परतों में विभिन्न प्रौद्योगिकियाँ उपयोग की जा सकती हैं।

निष्कर्ष:

इस यूनिट में, हमने वेब सिस्टम्स आर्किटेक्चर के बारे में जाना, जिसमें क्लाइंट/सर्वर आर्किटेक्चर, 3-टियर आर्किटेक्चर, और डेटा एक्सेस घटकों जैसे कैश, प्रॉक्सी, इंडेक्स, लोड बैलेंसर, और क्यूज़ के बारे में चर्चा की। साथ ही, वेब एप्लिकेशन आर्किटेक्चर (WAA) के बारे में भी समझा, जो फ्रंट-एंड, बैक-एंड, डेटाबेस और मिडलवेयर को मिलाकर एक स्केलेबल और प्रभावी वेब एप्लिकेशन डिजाइन प्रदान करता है।

Post a Comment

0 Comments