Multitenancy
सॉफ्टवेयर मल्टीटेनेंसी एक सॉफ्टवेयर वास्तुकला है जिसमें सॉफ्टवेयर का एक एकल उदाहरण एक सर्वर पर चलता है और कई किरायेदारों को सेवा प्रदान करता है। इस तरह से डिज़ाइन की गई प्रणालियाँ "साझा" होती हैं ("समर्पित" या "पृथक" के बजाय)। एक किरायेदार उन उपयोगकर्ताओं का एक समूह है जो सॉफ्टवेयर उदाहरण के लिए विशिष्ट विशेषाधिकारों के साथ एक सामान्य पहुंच साझा करते हैं। एक बहुआयामी वास्तुकला के साथ, एक सॉफ्टवेयर अनुप्रयोग को प्रत्येक किरायेदार को उदाहरण का एक समर्पित हिस्सा प्रदान करने के लिए डिज़ाइन किया गया है-जिसमें इसका डेटा, विन्यास, उपयोगकर्ता प्रबंधन, किरायेदार व्यक्तिगत कार्यक्षमता और गैर-कार्यात्मक गुण शामिल हैं। मल्टीटेनेंसी मल्टी-इंस्टेंस आर्किटेक्चर के विपरीत है, जहां अलग-अलग सॉफ्टवेयर इंस्टेंस अलग-अलग किरायेदारों की ओर से काम करते हैं। कुछ टिप्पणीकार बहुआयामीता को क्लाउड कंप्यूटिंग की एक महत्वपूर्ण विशेषता मानते हैं। मल्टीटेनेंट अनुप्रयोगों का गोद लेने का इतिहास मल्टीटेनेंट अनुप्रयोगों से विकसित हुआ है-और तीन प्रकार की सेवाओं की कुछ विशेषताओं को जोड़ता हैः टाइमशेयरिंगः 1960 के दशक से कंपनियों ने कंप्यूटिंग खर्च को कम करने के लिए मेनफ्रेम कंप्यूटर (टाइम-शेयरिंग) पर जगह और प्रसंस्करण शक्ति किराए पर ली। अक्सर वे ग्राहक-खाता आईडी निर्दिष्ट करने के लिए लॉगऑन स्क्रीन पर केवल एक अलग प्रविष्टि क्षेत्र के साथ मौजूदा अनुप्रयोगों का भी पुनः उपयोग करते थे। इस आई. डी. के आधार पर, मेनफ्रेम के लेखाकार व्यक्तिगत ग्राहकों से सी. पी. यू., मेमोरी और डिस्क/टेप के उपयोग के लिए शुल्क ले सकते हैं। मेज़बान अनुप्रयोगः 1990 के दशक से पारंपरिक अनुप्रयोग सेवा प्रदाताओं (ए. एस. पी.) ने अपने ग्राहकों की ओर से मेज़बान (तब मौजूद) अनुप्रयोग। अंतर्निहित अनुप्रयोग की सीमा के आधार पर, ए. एस. पी. को अलग-अलग मशीनों पर अनुप्रयोगों को होस्ट करने के लिए मजबूर किया गया था (यदि अनुप्रयोगों के कई उदाहरणों को एक ही भौतिक मशीन में निष्पादित नहीं किया जा सकता था) या अलग-अलग प्रक्रियाओं के रूप में। बहुआयामी अनुप्रयोग एक अधिक परिपक्व वास्तुकला का प्रतिनिधित्व करते हैं जो कम परिचालन लागत के साथ एक समान सेवा को सक्षम बनाता है। वेब अनुप्रयोगः लोकप्रिय उपभोक्ता-उन्मुख वेब अनुप्रयोग (जैसे हॉटमेल) सभी ग्राहकों की सेवा करने वाले एकल अनुप्रयोग उदाहरण के साथ विकसित किए गए हैं। बहुआयामी अनुप्रयोग इस मॉडल से एक प्राकृतिक विकास का प्रतिनिधित्व करते हैं, जो एक ही ग्राहक संगठन (जैसे) के भीतर उपयोगकर्ताओं के समूहों को अतिरिक्त अनुकूलन प्रदान करते हैं। वर्चुअलाइजेशन से अंतर एक बहुआयामी वातावरण में, कई ग्राहक एक ही अनुप्रयोग साझा करते हैं, जो एक ही ऑपरेटिंग सिस्टम पर, एक ही हार्डवेयर पर, एक ही डेटा-भंडारण तंत्र के साथ चलता है। ग्राहकों के बीच अंतर अनुप्रयोग डिजाइन के दौरान प्राप्त किया जाता है, इस प्रकार ग्राहक एक-दूसरे के डेटा को साझा या नहीं देखते हैं। इसकी तुलना वर्चुअलाइजेशन के साथ करें जहां घटकों को परिवर्तित किया जाता है, जिससे प्रत्येक ग्राहक एप्लिकेशन एक अलग वर्चुअल मशीन पर चलता दिखाई देता है। प्रतिस्पर्धात्मक विभेदन कुछ कंपनियाँ सक्रिय रूप से बहुआयामीता के सिद्धांत को बढ़ावा देती हैं और इसे प्रतिस्पर्धात्मक विभेदन के स्रोत के रूप में उपयोग करती हैं। मल्टीटेनेंसी का उपयोग दिन-प्रतिदिन बढ़ रहा है। मल्टीटेनेंसी का अर्थशास्त्र लागत बचत मल्टीटेनेंसी आई. टी. संसाधनों को एकल संचालन में समेकित करने से प्राप्त होने वाली बुनियादी अर्थव्यवस्थाओं के अलावा लागत बचत की अनुमति देता है। एक अनुप्रयोग उदाहरण में आमतौर पर एक निश्चित मात्रा में मेमोरी और प्रोसेसिंग ओवरहेड होता है जो कई ग्राहकों द्वारा गुणा किए जाने पर पर्याप्त हो सकता है, खासकर यदि ग्राहक छोटे हैं। मल्टीटेनेंसी इस ओवरहेड को कई ग्राहकों में फैलाकर कम कर देती है। आगे की लागत बचत अंतर्निहित सॉफ्टवेयर (जैसे ऑपरेटिंग सिस्टम और डेटाबेस प्रबंधन सिस्टम) की लाइसेंस लागत से आ सकती है। अगर आप एक ही सॉफ्टवेयर उदाहरण पर सब कुछ चला सकते हैं, तो आपको केवल एक ही सॉफ्टवेयर लाइसेंस खरीदना होगा। जैसे-जैसे मांग बढ़ती है, लागत बचत को एकल उदाहरण को बढ़ाने की कठिनाई से ग्रहण किया जा सकता है-एकल सर्वर पर उदाहरण के प्रदर्शन को बढ़ाना केवल तेज हार्डवेयर, जैसे कि तेज सीपीयू, अधिक मेमोरी और तेज डिस्क सिस्टम खरीदकर किया जा सकता है, और आमतौर पर ये लागतें तेजी से बढ़ती हैं, अगर भार को लगभग समान कुल क्षमता वाले कई सर्वरों के बीच विभाजित किया गया था। इसके अलावा, बहुआयामी प्रणालियों का विकास अधिक जटिल है, और सुरक्षा परीक्षण इस तथ्य के कारण अधिक कठोर है कि कई ग्राहकों के डेटा को मिलाया जा रहा है। डेटा एकत्रीकरण/डेटा माइनिंग विक्रेताओं/आई. एस. वी. के लिए बहुलता का उपयोग करने के लिए सबसे सम्मोहक कारणों में से एक अंतर्निहित डेटा एकत्रीकरण लाभों के लिए है। संभावित रूप से अलग-अलग डेटाबेस योजना के साथ कई डेटा स्रोतों से डेटा एकत्र करने के बजाय, सभी ग्राहकों के लिए सभी डेटा को एक ही डेटाबेस योजना में संग्रहीत किया जाता है। इस प्रकार, ग्राहकों के बीच प्रश्न पूछना, डेटा खोजना और रुझानों की तलाश करना बहुत आसान है। यह कारण संभवतः अतिरंजित है क्योंकि मुख्य बहुआयामी आवश्यकताओं में से एक ग्राहक (किरायेदार) जानकारी तक सेवा प्रदाता की पहुंच को रोकने की आवश्यकता है। इसके अलावा, परिचालन डेटाबेस को खनन डेटाबेस से अलग करना आम बात है (आमतौर पर विभिन्न कार्यभार विशेषताओं के कारण), इस प्रकार तर्क को और भी कमजोर कर देता है। जटिलता अतिरिक्त अनुकूलन जटिलता और प्रति किरायेदार मेटाडेटा को बनाए रखने की आवश्यकता के कारण, बहुआयामी अनुप्रयोगों के लिए एक बड़े विकास प्रयास की आवश्यकता होती है। वेक्टर-आधारित डेटा अनुक्रमण, एन्क्रिप्टेबल एल्गोरिदम अवसंरचना और वर्चुअलाइज्ड कंट्रोल इंटरफेस जैसे विचारों को ध्यान में रखा जाना चाहिए। रिलीज प्रबंधन बहुआयामी रिलीज प्रबंधन प्रक्रिया को सरल बनाता है। एक पारंपरिक रिलीज प्रबंधन प्रक्रिया में, कोड और डेटाबेस परिवर्तन वाले पैकेजों को क्लाइंट डेस्कटॉप और/या सर्वर मशीनों में वितरित किया जाता है; एकल-उदाहरण मामले में, यह प्रति ग्राहक एक सर्वर मशीन होगी। इन पैकेजों को फिर प्रत्येक अलग-अलग मशीन पर स्थापित करना होगा। मल्टीटेनेंट मॉडल के साथ, पैकेज को आम तौर पर केवल एक ही सर्वर पर स्थापित करने की आवश्यकता होती है। यह रिलीज प्रबंधन प्रक्रिया को बहुत सरल बनाता है, और पैमाना अब ग्राहकों की संख्या पर निर्भर नहीं है। साथ ही, बहुआयामीता एक नए रिलीज़ संस्करण को लागू करने में निहित जोखिमों और प्रभावों को बढ़ाती है। चूंकि कई किरायेदारों को सेवा देने वाला एक एकल सॉफ्टवेयर उदाहरण है, इस उदाहरण पर एक अद्यतन सभी किरायेदारों के लिए डाउनटाइम का कारण बन सकता है, भले ही अद्यतन का अनुरोध किया गया हो और केवल एक किरायेदार के लिए उपयोगी हो। इसके अलावा, नई रिलीज को लागू करने के परिणामस्वरूप कुछ बग और मुद्दे आवेदन के बारे में अन्य किरायेदारों के व्यक्तिगत दृष्टिकोण में प्रकट हो सकते हैं। संभावित डाउनटाइम के कारण, रिलीज को लागू करने का समय एक से अधिक किरायेदार के समय उपयोग अनुसूची के आधार पर प्रतिबंधित हो सकता है। आवश्यकताएँ अनुकूलन बहुआयामी अनुप्रयोगों को आम तौर पर प्रत्येक लक्षित संगठन की आवश्यकताओं का समर्थन करने के लिए उच्च स्तर का अनुकूलन प्रदान करने की आवश्यकता होती है। अनुकूलन में आम तौर पर निम्नलिखित पहलू शामिल होते हैंः ब्रांडिंगः प्रत्येक संगठन को अपनी कॉर्पोरेट ब्रांडिंग (अक्सर एक अलग "त्वचा" के रूप में संदर्भित) से मेल खाने के लिए एप्लिकेशन के रूप और भावना को अनुकूलित करने की अनुमति देना। कार्यप्रवाहः संभावित ग्राहकों की एक विस्तृत श्रृंखला द्वारा उपयोग किए जाने वाले कार्यप्रवाह में अंतर को समायोजित करना। डेटा मॉडल का विस्तारः ग्राहकों को उनकी विशिष्ट आवश्यकताओं को पूरा करने के लिए एप्लिकेशन द्वारा प्रबंधित डेटा तत्वों को अनुकूलित करने की क्षमता देने के लिए एक विस्तार योग्य डेटा मॉडल का समर्थन करना। अभिगम नियंत्रणः प्रत्येक ग्राहक संगठन को स्वतंत्र रूप से प्रत्येक उपयोगकर्ता के लिए अभिगम अधिकारों और प्रतिबंधों को अनुकूलित करने देना। सेवा की गुणवत्ता बहुआयामी अनुप्रयोगों से कई किरायेदारों के बीच पर्याप्त सुरक्षा, मजबूती और प्रदर्शन प्रदान करने की उम्मीद है जो बहु-उदाहरण अनुप्रयोगों के मामले में आवेदन के नीचे की परतों द्वारा प्रदान किया जाता है। वर्चुअलाइजेशन मल्टीटेनेंसी के लिए अनुप्रयोगों को फिर से डिजाइन करने की लागत महत्वपूर्ण हो सकती है, विशेष रूप से सॉफ्टवेयर विक्रेताओं के लिए जो अपने उत्पाद के ऑन-प्रिमाइसेस एकल किरायेदार संस्करण की पेशकश करना जारी रखते हैं। अंत में उन्हें सभी परिणामी लागतों के साथ दो अलग-अलग उत्पादों का समर्थन करने के लिए मजबूर किया जाता है। मल्टीटेनेंसी के लिए एक तेजी से व्यवहार्य वैकल्पिक मार्ग जो महत्वपूर्ण वास्तुशिल्प परिवर्तन की आवश्यकता को समाप्त करता है, वह है एक या अधिक सर्वरों पर एक एप्लिकेशन के कई अलग-अलग उदाहरणों को होस्ट करने के लिए वर्चुअलाइजेशन तकनीक का उपयोग करना। वास्तव में, जब अनुप्रयोगों को आभासी उपकरणों के रूप में फिर से पैक किया जाता है, तो उसी उपकरण छवि को आई. एस. वी. होस्ट किए गए, परिसर में या विश्वसनीय-तीसरे पक्ष के स्थानों में तैनात किया जा सकता है और यहां तक कि समय के साथ एक परिनियोजन स्थल से दूसरे स्थान पर स्थानांतरित किया जा सकता है। संदर्भ सॉफ्टवेयर वास्तुकला सेवा-उन्मुख (बिजनेस कंप्यूटिंग)