बहु-किरायेदार आवेदन वास्तव में क्या है?


16

ऑनलाइन उपलब्ध परिभाषा के अनुसार " मल्टी-टेनेंसी एक आर्किटेक्चर है जिसमें एक सॉफ्टवेयर एप्लिकेशन का एक एकल उदाहरण कई ग्राहकों को सेवा प्रदान करता है "। इसका मतलब यह है कि मेरे पास एक रेस्तरां या स्कूल की वेबसाइट है और मैं अपने स्कूल प्रबंधन उत्पाद को खरीदने के बाद अपने क्रेडेंशियल का उपयोग करके अपने स्वयं के डेटा के साथ अपने आवेदन का उपयोग करने के लिए विभिन्न रेस्तरां या स्कूल तक पहुंच प्रदान करता हूं। जैसे मेरी वेबसाइट schoolmanagement.com जैसी है और मैं अलग-अलग स्कूलों को अलग-अलग उप डोमेन प्रदान करता हूं जैसे school1.schoolmanagement.com & school2.schoolmanagement.com। लेकिन इन दोनों उप-डोमेन के पीछे कोड समान है। दोनों स्कूलों की अलग-अलग कार्यक्षमता या थीम उनके अलग-अलग डेटाबेस पर निर्भर करती है। इसलिए मुझे प्रदान करने की आवश्यकता हैschoolmanagement.com लॉगिन के लिए और एक बार मेरे ग्राहक लॉगिन पर उनके लॉगिन क्रेडेंशियल के आधार पर मैं उनके संबंधित url जैसे school1.schoolmanagement.com पर रीडायरेक्ट करता हूं

यह बहु किरायेदार आवेदन की मेरी समझ है। क्या मेरी समझ सही है? क्या कोई ऑनलाइन मल्टी-टेनेंट एप्लिकेशन है जिससे मैं गुजर सकता हूं।


1
आपका क्या मतलब है "क्या कोई ऑनलाइन मल्टी-टेनेंट एप्लिकेशन है जिससे मैं गुजर सकता हूं।" क्या आप स्रोत प्राप्त करना चाहते हैं, या किरायेदार के रूप में प्रयास करना चाहते हैं, या मेजबान के रूप में दौड़ना चाहते हैं? जैसा कि आप ध्यान दें, डोमेन होस्टिंग एक सामान्य बहु-किरायेदार उदाहरण है, जिसमें बड़ी और छोटी दोनों मेजबान कंपनियां हैं। Google Apps for Business (या जो भी वर्तमान ब्रांडिंग है) भी एक काफी विस्तृत प्रसार बहु-किरायेदार ऐप है।
क्रिस्टियन एच

1
अब तक, आप सही रास्ते पर हैं। मल्टी-टेनेंसी डेटा के स्वामित्व से संबंधित है। डेटा को किरायेदारों (मालिकों) द्वारा खंडित किया जाता है। आवेदन एक साधारण कारण के लिए समान होने का उपयोग करता है: पैमाने की अर्थव्यवस्था। डेटा संग्रहण भी समान हो सकता है या यह प्रत्येक टेनन के लिए अलग हो सकता है। डेटा टेनस के बीच साझा-accesible नहीं है (या आमतौर पर वे नहीं हैं, अब तक मुझे पता है)।
लैव

@KristianH डोमेन होस्टिंग उदाहरण के लिए धन्यवाद, मुझे मिल गया।
नोमी अली

@ लिव तो हम प्रत्येक क्लाइंट के लिए अलग-अलग कॉन्फ़िगरेशन के साथ अलग-अलग डेटाबेस रख सकते हैं?
नोमी अली

2
हाँ। यह (IMO) बेहतर तरीका है। लेकिन यह महंगा भी है। जब मैं कहता हूं कि अलग-अलग डेटाबेस वे हो सकते हैं: ए) एक ही आरडीबीएमएस या बी के भीतर विभिन्न स्कीमा या डीबी उदाहरण पूरी तरह से अलग आरडीबीएमएस हैं।
लैवि

जवाबों:


10

हाँ बस यही। लेकिन विकिपीडिया की परिभाषा पर्याप्त सामान्य नहीं है। यह एसओए या माइक्रोसर्विसेज जैसे मल्टी-टियर आर्किटेक्चर या आर्किटेक्चर के नए रूपों को संबोधित नहीं करता है।

बहु किरायेदारी के बारे में है सॉफ्टवेयर सिस्टम और डेटा अलगाव । कुछ उदाहरण:

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

1

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


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

1
@NomiAli प्रति ग्राहक एक डेटाबेस प्रति ग्राहक की तुलना में और भी अधिक कमियां होंगी, इसका प्रबंधन करना और भी मुश्किल होगा क्योंकि आपको स्कीमा नामों को बदलते हुए समान स्क्रिप्ट को चलाना होगा। फिर से यह असंभव नहीं है, लेकिन सॉफ्टवेयर विक्रेता के लिए लागत को कम करने के लिए एक बहुपरत आवेदन की बात है; जिन चीजों के बारे में आप पूछ रहे हैं, उन्हें पीछे धकेल दें।
एंडी

2
तो अगर मेरा अकेला डेटाबेस, जो सभी किरायेदारों को दुर्घटनाग्रस्त रखता है या समझौता हो जाता है ... लागत कम करना कहां जाता है? और क्या होता है जब हर टेनन को संसाधनों और प्रदर्शन की अलग-अलग ज़रूरतें होती हैं? यदि वे डेटा संग्रहण तक पहुँच प्राप्त करना चाहते हैं तो क्या होगा? ... हाँ। विभिन्न डेटा स्टोर प्रति टेन और अलग स्कीमा मल्टीटैनी है। यहाँ व्यापार रणनीति और सेवाएँ जो हम thd ग्राहक को प्रदान करना चाहते हैं, कार्यान्वयन विवरण से अधिक महत्वपूर्ण है। मल्टी-टेनेंसी एक विशेषता है, एक विभेदक मूल्य। ग्राहकों की जरूरत के करीब, बेहतर है।
Laiv

2
यह आपकी रुचि हो सकती है कि आप softwareengineering.stackexchange.com/q/340531/222996
Laiv

4
आप मल्टी-डेटाबेस पहलू को थोड़ा ओवरस्टैट करते हैं। एकाधिक डेटाबेस सिर्फ एक डिजाइन निर्णय है; आपके पास कई डेटाबेस एक ही स्कीमा साझा कर सकते हैं और उन सभी को एक साथ अपडेट करने के लिए स्क्रिप्ट का उपयोग कर सकते हैं। सभी बहु-किरायेदार अनुप्रयोगों को प्रत्येक ग्राहक के डेटा को अन्य ग्राहकों से अलग करना होगा; वह तंत्र जिसके द्वारा यह किया जाता है एक कार्यान्वयन विवरण है, और अलगाव की डिग्री जैसे कारकों पर निर्भर करता है, आदि
रॉबर्ट हार्वे

0

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

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

अधिक जानकारी के लिए कृपया https://whatis.techtarget.com/definition/multi-tenancy देखें ।

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

हम उम्मीद करते है कि यह आपके सवाल का जवाब दे देगा।


1
सॉफ्टवेयर इंजीनियरिंग में आपका स्वागत है ! कृपया अपने स्रोत में एक संदर्भ शामिल करने के लिए अपना उत्तर संपादित करें ; अभी यह साहित्यिक चोरी का मामला है ।
ग्लोरफाइंडेल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.