सदस्यता लाइसेंस क्या है?
सदस्यता लाइसेंस एक प्रोडक्ट कुंजी है जो एक बार की ख़रीद के बजाय चालू सदस्यता से बँधी होती है। आपके प्लगइन, स्क्रिप्ट या बॉट की सदस्य वाली कॉपी तय समय पर कुंजी जाँचती है: सदस्यता रहने तक वह काम करती है, सदस्यता ख़त्म होने पर रुक जाती है, और सदस्य के दोबारा जुड़ने पर फिर से काम करने लगती है। सदस्यता ही लाइसेंस है। Nadi इसके लिए यही वाक्य इस्तेमाल करता है: आपकी सदस्यता ही लाइसेंस है।
यह क्यों है
जो भी चलने वाला प्रोडक्ट बेचता है — किसी डिज़ाइन ऐप का प्लगइन, एक स्क्रिप्ट, एक बॉट, कोई छोटा वेब टूल — वह इस असंतुलन को जानता है। बिक्री एक बार होती है और काम कभी नहीं रुकता: होस्ट ऐप के हर नए रिलीज़ के बाद एक अपडेट, सवाल, सुधार, और दो साल पुराना एक ख़रीदार जो अब भी आपको लिखता है।
सदस्यता पैसों वाला पहलू सुलझा देती है और एक सवाल खुला छोड़ देती है: सदस्यता को रिन्यू करने लायक़ क्या बनाता है? अगर पैसे देना बंद कर चुके व्यक्ति के हाथ में भी प्रोडक्ट चलता रहे, तो रिन्यू करना दान है।
सदस्यता लाइसेंस दोनों सिरों को एक साथ बाँध देता है। जब तक व्यक्ति सदस्य है, उसकी कॉपी चलती है। सदस्यता ख़त्म होती है, तो कॉपी रुक जाती है। वह लौटता है, तो फिर चलने लगती है। बड़े प्रोफ़ेशनल सॉफ़्टवेयर सालों से ऐसे ही काम करते आए हैं; नया यह है कि कुंजी को किसी एक ख़रीद के बजाय किसी कम्युनिटी की सदस्यता से बाँधा जाए।
यह कैसे काम करता है: एक कुंजी, एक जाँच और एक मोहलत
तीन हिस्से, और हर एक एक साफ़ समस्या हल करता है।
- कुंजी। अक्षरों की एक लंबी, बेतरतीब लड़ी जो एक सदस्य और एक प्रोडक्ट की होती है। सावधान प्लेटफ़ॉर्म इसे जैसी लिखी है वैसी नहीं, बल्कि उलट-पुलट करके रखता है, ताकि डेटाबेस पढ़ने वाला कोई भी कुंजियाँ न पढ़ पाए।
- जाँच। आपका प्रोडक्ट कुंजी को एक पते पर भेजता है और छोटा-सा जवाब पाता है: मान्य या मान्य नहीं। आपके प्रोडक्ट के अंदर कुछ लाइनें, और आपको कोई सर्वर नहीं चलाना पड़ता।
- मोहलत। हर «हाँ» के साथ एक साइन की हुई समय-सीमा आती है। प्रोडक्ट उतनी देर तक मंज़ूरी अपने पास रखता है और उसके पुराने पड़ने तक दोबारा नहीं पूछता, इसलिए वह ऑफ़लाइन काम करता है। साइन की वजह से कोई अपनी मशीन पर फ़ाइल बदलकर इसे बढ़ा नहीं सकता।
मोहलत ही इस विचार को काम का बनाती है। उसके बिना, प्रोडक्ट चलाने के लिए इंटरनेट कनेक्शन ज़रूरी हो जाता है, और आपका ग्राहक हवाई जहाज़ में काम नहीं कर पाता। उसके साथ, सबसे बुरा यह होता है कि जो जा चुका है, वह कुछ दिन और काम करता रहता है — न टूटने वाले प्रोडक्ट के लिए यह बहुत वाजिब क़ीमत है।
सबसे अहम सवाल: जब लाइसेंस सर्वर डाउन हो, तब क्या होता है
यही वह बात है जो भरोसे लायक़ डिज़ाइन को भरोसा न करने लायक़ डिज़ाइन से अलग करती है। आपका प्रोडक्ट पूछता है, और कोई जवाब नहीं आता: कनेक्शन टूट गया, प्लेटफ़ॉर्म डाउन है, जवाब का समय निकल गया। प्रोडक्ट को क्या करना चाहिए?
उसे काम करते रहना चाहिए। सिर्फ़ साफ़ इनकार — ऐसा जवाब जो साफ़ कहे कि यह कुंजी रद्द है या पहचानी नहीं गई — किसी प्रोडक्ट को रोक सकता है। चुप्पी, कोई एरर और टाइमआउट इनकार नहीं हैं, और उन्हें इनकार मानने का मतलब है कि किसी और की सेवा ठप होने से आपके ग्राहक के सामने आपका प्रोडक्ट टूट जाता है।
एक लाइन में: शक हो तो रास्ता खुला रखिए, यक़ीन हो तो बंद कीजिए। किसी भी प्लेटफ़ॉर्म पर बनाने से पहले ठीक इसी व्यवहार के बारे में पूछिए, और जो कोड आपसे अपने प्रोडक्ट में पेस्ट करने को कहा जाए, उसे पढ़िए। अगर वह नेटवर्क की नाकामी को कुंजी रद्द होना मानता है, तो क़ीमत आपकी साख चुकाती है।
किसे ईमानदारी से लाइसेंस किया जा सकता है, और किसे नहीं
सीमा सीधी है: जो चीज़ें चलती हैं, उन्हें लाइसेंस किया जा सकता है; जो नहीं चलतीं, उन्हें नहीं। जाँच का मतलब है प्रोडक्ट का घर फ़ोन करना, और स्थिर फ़ाइल कहीं फ़ोन नहीं कर सकती।
- प्लगइन, स्क्रिप्ट, ऐप, बॉट: यह चलता है, इसलिए पूछ सकता है, और आप उसका चलना रोक सकते हैं। यहाँ लाइसेंस असली है।
- कोई तस्वीर, ऑडियो फ़ाइल, डॉक्यूमेंट, प्रीसेट का पैक: एक बार डाउनलोड हुआ और रख लिया गया। इसमें कुछ भी किसी से कुछ नहीं पूछता, और बाद में इसे वापस लेने का कोई तरीक़ा नहीं।
इसलिए किसी स्थिर फ़ाइल को लाइसेंस प्राप्त कहना ऐसा दावा है जिसे कोई लागू नहीं कर सकता। उनके लिए ईमानदार व्यवस्था ख़ुद दरवाज़ा है: डाउनलोड की इजाज़त सदस्यता से मिलती है, और जो चला जाता है उसे अगला वर्शन नहीं मिलता। यह सच भी है और काम का भी — बस यह लाइसेंस नहीं है, और इसे कभी लाइसेंस बताकर नहीं बेचना चाहिए।
किसी भी प्लेटफ़ॉर्म से क्या पूछें
इस विचार के किसी भी अमल को परखने के लिए छह सवाल काफ़ी हैं:
- क्या कुंजी उसी पल ख़त्म होती है जिस पल सदस्यता, या किसी मासिक चक्र पर, या रात में चलने वाले किसी जॉब पर?
- अगर सदस्य लौटता है, तो क्या उसकी पुरानी कुंजी लौट आती है, या उसे आपके प्रोडक्ट में नई कुंजी पेस्ट करनी पड़ती है?
- मोहलत कितनी लंबी है, उसे कौन तय करता है, और क्या जवाब साइन किया हुआ है ताकि उसकी जालसाज़ी न हो सके?
- प्लेटफ़ॉर्म डाउन होने पर एंडपॉइंट क्या कहता है: «मैं जवाब नहीं दे सकता», या «मान्य नहीं»?
- इंटीग्रेशन में कितनी लाइनें लगती हैं, और क्या आपको अपना सर्वर या डेटाबेस चाहिए?
- क्या लाइसेंस का स्विच उन चीज़ों पर भी दिया जाता है जिन पर इसे कभी लागू नहीं किया जा सकता? जो प्लेटफ़ॉर्म आपको स्थिर फ़ाइल को लाइसेंस करने देता है, वह आपको व्यवस्था नहीं, दिखावा बेच रहा है।
एक उदाहरण: Nadi इसे कैसे करता है
Nadi एक कम्युनिटी प्लेटफ़ॉर्म है, इसलिए इस हिस्से में हम अपने ही प्रोडक्ट के बारे में बता रहे हैं। सिर्फ़ वही, जो यह आज करता है।
- मालिक अपनी कम्युनिटी की लाइब्रेरी में किसी आइटम को लाइसेंस प्राप्त के रूप में चिह्नित करता है, और हर सदस्य को अपनी कुंजी मिलती है, जो आइटम कार्ड पर कॉपी बटन के साथ दिखती है।
- सदस्यता ज़िंदा रहने तक कुंजी जाँच में पास होती है, और जिस पल सदस्यता ख़त्म होती है उसी पल REVOKED दिखाती है — चाहे सदस्य ने छोड़ा हो, उसे हटाया गया हो, या उसकी सदस्यता लैप्स हो गई हो।
- जब वह दोबारा जुड़ता है, तो वही एंट्री फिर से ज़िंदा हो जाती है, इसलिए किसी को कहीं नई कुंजी पेस्ट नहीं करनी पड़ती।
- इंटीग्रेशन आपके प्रोडक्ट में लगभग दस लाइनों का है। यह हफ़्ते में एक बार कुंजी जांचता है और बीच में ऑफ़लाइन भी काम करता रहता है।
- मोहलत डिफ़ॉल्ट रूप से सात दिन की है, और जवाब साइन किया हुआ होता है, ताकि आपका प्रोडक्ट हमारे मोहलत टोकन और किसी की अपनी मशीन पर बदली गई फ़ाइल में फ़र्क़ कर सके।
- एंडपॉइंट गड़बड़ी होने पर रास्ता खुला रखता है। जब हम जवाब नहीं दे सकते, तो यही कहते हैं, और उसकी जगह कभी «मान्य नहीं» नहीं कहते। हमारी तरफ़ की गड़बड़ी को कभी कुंजी रद्द होने का जामा नहीं पहनाया जाता।
- मालिक देखता है कि आइटम कौन इस्तेमाल कर रहा है, हर कुंजी धारक की स्थिति — चालू या रुका हुआ — और उसके प्रोडक्ट ने आख़िरी बार कब चेक-इन किया।
- आइटम का नया वर्शन पब्लिश करने पर सिर्फ़ कुंजी धारकों को सूचना जाती है, पूरी कम्युनिटी को नहीं।
- जिस सदस्य की सदस्यता लैप्स हो गई, उसे दिखने वाला इनकार का संदेश कम्युनिटी का नाम बताता है और यह भी कि प्रोडक्ट वापस कैसे चालू होगा: उसमें दोबारा जुड़कर।
सीमाएँ, ईमानदारी से
Nadi पर किसी चीज़ को तब तक लाइसेंस प्राप्त नहीं कहा जा सकता, जब तक वह साबित न कर दे कि ऐसा हो सकता है। हर आइटम, फ़ाइल या लिंक पर स्विच तब तक बंद रहता है, जब तक उस आइटम का अपना प्रोडक्ट कम से कम एक बार किसी असली कुंजी के साथ हमारी जाँच को कॉल न कर ले — इससे पहले कि उसके पेज पर «लाइसेंस प्राप्त» शब्द आने दिया जाए, प्रोडक्ट हमारे सामने यह व्यवस्था चलाकर दिखाता है। इसलिए जो फ़ाइल सदस्य डाउनलोड करता है और जो कभी जाँच से जोड़ी नहीं जाती, उसे हमारे प्रोडक्ट में कहीं भी लाइसेंस प्राप्त नहीं कहा जाता; उसकी ईमानदार व्यवस्था दरवाज़ा है, जहाँ डाउनलोड की इजाज़त सदस्यता से मिलती है। लाइसेंस बंद करने की इजाज़त हमेशा है।
गड़बड़ी में रास्ता खुला रखना कमी नहीं, एक वादा है। जब एंडपॉइंट डेटाबेस से नहीं पूछ पाता, तो वह «उपलब्ध नहीं» जवाब देता है, और जो कोड का टुकड़ा हम आपको देते हैं, वह हर उस चीज़ को, जो साफ़ जवाब नहीं है, चलते रहने की इजाज़त मानता है। इसका मतलब है कि जो जा चुका है, वह अपनी मोहलत ख़त्म होने तक काम करता रह सकता है, और हम इसे जान-बूझकर स्वीकार करते हैं: हमारे किसी डिप्लॉय में ज़रा-सी अड़चन आ जाने से दूसरों के प्रोडक्ट नहीं टूटने चाहिए।
दो आख़िरी सीमाएँ। कुंजी सदस्यता के साथ आती है, और आज बिना जुड़े कुंजी रखने का कोई तरीक़ा नहीं है। और जो कुंजी शेयर कर दी जाए, वह फिर भी एक ही सदस्यता से बँधी एक ही कुंजी है — जब वह सदस्यता रुकती है, तो कुंजी भी रुक जाती है।