A यूनिवर्सली यूनिक आइडेंटिफ़ायर (UUID) एक 128-बिट लेबल है जिसका उपयोग कंप्यूटर सिस्टम में जानकारी को विशिष्ट रूप से पहचानने के लिए किया जाता है। यूयूआईडी को स्थान और समय में अद्वितीय होने के लिए डिज़ाइन किया गया है, जिससे उन्हें केंद्रीय प्राधिकरण के बिना स्वतंत्र रूप से उत्पन्न किया जा सकता है, जिससे नकल का जोखिम कम हो जाता है।
यूयूआईडी विभिन्न उद्देश्यों को पूरा करते हैं, जिनमें शामिल हैं:
- डेटाबेस में रिकॉर्ड की पहचान करना।
- वितरित सिस्टम में ऑब्जेक्ट टैग करना।
- ऐसे अनुप्रयोगों में प्राथमिक कुंजी के रूप में कार्य करना जहां विशिष्टता महत्वपूर्ण है।
वास्तविक दुनिया में उपयोग के मामले
-
डेटाबेस: रिकॉर्ड्स की विशिष्ट पहचान सुनिश्चित करने के लिए यूयूआईडी का उपयोग रिलेशनल डेटाबेस में प्राथमिक कुंजी के रूप में किया जाता है।
-
माइक्रोसर्विसेज: अनुरोधों और संसाधनों के लिए विशिष्ट पहचानकर्ता प्रदान करके सेवा संचार की सुविधा प्रदान करें।
-
IoT डिवाइसेस: एक नेटवर्क में विशिष्ट रूप से डिवाइसों की पहचान करें, यह सुनिश्चित करते हुए कि एकाधिक स्रोतों से डेटा को बिना किसी विरोध के एकत्रित किया जा सकता है।
यूयूआईडी के उपयोग में फायदे और नुकसान
लाभ:
-
वैश्विक विशिष्टता: यूयूआईडी के टकराने की अत्यधिक संभावना नहीं है, जो उन्हें वितरित प्रणालियों के लिए उपयुक्त बनाता है जहां कई नोड स्वतंत्र रूप से पहचानकर्ता उत्पन्न करते हैं।
-
किसी केंद्रीय प्राधिकरण की आवश्यकता नहीं है: इन्हें समन्वय के बिना उत्पन्न किया जा सकता है, जो वितरित वातावरण में संचालन को सरल बनाता है।
-
स्केलेबिलिटी: वे उन प्रणालियों में अच्छा काम करते हैं जिनके लिए कई सर्वरों या सेवाओं में स्केलिंग की आवश्यकता होती है।
नुकसान:
-
भंडारण आकार: यूयूआईडी पारंपरिक पूर्णांक आईडी (आमतौर पर 32 बिट्स) की तुलना में अधिक स्थान (128 बिट्स) की खपत करते हैं, जिससे भंडारण लागत बढ़ सकती है।
-
प्रदर्शन संबंधी समस्याएं: यूयूआईडी को अनुक्रमित करने से उनकी यादृच्छिकता और आकार के कारण डेटाबेस प्रदर्शन खराब हो सकता है, जिससे अनुक्रमिक आईडी की तुलना में क्वेरी समय धीमा हो सकता है।
-
उपयोगकर्ता मित्रता: उपयोगकर्ता इंटरफेस में प्रस्तुत किए जाने पर यूयूआईडी आसानी से यादगार या उपयोगकर्ता के अनुकूल नहीं होते हैं।
मानक
यूयूआईडी के मानक प्रतिनिधित्व में 32 हेक्साडेसिमल वर्ण होते हैं जो 8-4-4-4-12 प्रारूप का अनुसरण करते हुए, हाइफ़न द्वारा अलग किए गए पांच समूहों में विभाजित होते हैं, जिसके परिणामस्वरूप कुल 36 वर्ण होते हैं (32 अल्फ़ान्यूमेरिक प्लस 4 हाइफ़न) .
यूयूआईडी प्रारूप को इस प्रकार देखा जा सकता है:
xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx
कहाँ:
-
एम यूयूआईडी संस्करण को इंगित करता है।
-
N वेरिएंट को इंगित करता है, जो यूयूआईडी के लेआउट की व्याख्या करने में मदद करता है।
यूयूआईडी के घटक
-
TimeLow: 4 बाइट्स (8 हेक्स अक्षर) जो टाइमस्टैम्प के निचले क्षेत्र का प्रतिनिधित्व करते हैं।
-
टाइममिड: 2 बाइट्स (4 हेक्स अक्षर) टाइमस्टैम्प के मध्य क्षेत्र का प्रतिनिधित्व करते हैं।
-
TimeHighAndVersion: 2 बाइट्स (4 हेक्स अक्षर) जिसमें संस्करण संख्या और टाइमस्टैम्प का उच्च क्षेत्र शामिल है।
-
ClockSequence: 2 बाइट्स (4 हेक्स अक्षर) का उपयोग टकराव से बचने में मदद के लिए किया जाता है, खासकर जब कई यूयूआईडी त्वरित उत्तराधिकार में उत्पन्न होते हैं या यदि सिस्टम घड़ी समायोजित की जाती है।
-
नोड: 6 बाइट्स (12 हेक्स अक्षर), आमतौर पर जेनरेटिंग नोड के मैक पते का प्रतिनिधित्व करते हैं।
यूयूआईडी के प्रकार
संस्करण 1: समय-आधारित यूयूआईडी जो वर्तमान टाइमस्टैम्प और जेनरेटिंग नोड के मैक पते के संयोजन का उपयोग करते हैं। यह संस्करण स्थान और समय में विशिष्टता सुनिश्चित करता है।
संस्करण 2: संस्करण 1 के समान लेकिन इसमें स्थानीय डोमेन पहचानकर्ता शामिल हैं; हालाँकि, इसकी सीमाओं के कारण इसका आमतौर पर कम उपयोग किया जाता है।
संस्करण 3: नाम-आधारित यूयूआईडी एक नामस्थान पहचानकर्ता और एक नाम के एमडी5 हैश का उपयोग करके उत्पन्न होते हैं।
संस्करण 4: बेतरतीब ढंग से उत्पन्न यूयूआईडी जो उच्च यादृच्छिकता और विशिष्टता प्रदान करते हैं, केवल कुछ बिट्स संस्करण के लिए आरक्षित हैं।
संस्करण 5: संस्करण 3 की तरह लेकिन हैशिंग के लिए SHA-1 का उपयोग करता है, जो इसे संस्करण 3 से अधिक सुरक्षित बनाता है।
वेरिएंट
यूयूआईडी में वैरिएंट फ़ील्ड इसके लेआउट और व्याख्या को निर्धारित करता है। सबसे आम प्रकारों में शामिल हैं:
-
वेरिएंट 0: एनसीएस बैकवर्ड संगतता के लिए आरक्षित।
-
वेरिएंट 1: अधिकांश यूयूआईडी के लिए उपयोग किया जाने वाला मानक लेआउट।
-
वेरिएंट 2: डीसीई सुरक्षा यूयूआईडी के लिए उपयोग किया जाता है, जो कम आम हैं।
-
संस्करण 3: भविष्य की परिभाषाओं के लिए आरक्षित।
उदाहरण
संस्करण 4 के लिए, एक यूयूआईडी इस तरह दिख सकता है:
550e8400-e29b-41d4-a716-446655440000
यहाँ:
-
41डी4 इंगित करता है कि यह संस्करण 4 है।
-
a7 वैरिएंट का प्रतिनिधित्व करता है, इस मामले में, सामान्य "लीच-साल्ज़" वैरिएंट।
यूयूआईडी की गणना कैसे की जाती है
-
संस्करण 1 (समय-आधारित):
- टाइमस्टैम्प आम तौर पर 15 अक्टूबर 1582 (ग्रेगोरियन कैलेंडर सुधार की तारीख) के बाद से 100-नैनोसेकंड अंतराल की संख्या है।
- नोड यूयूआईडी उत्पन्न करने वाली मशीन का मैक पता है।
- जब घड़ी का समय बदलता है (उदाहरण के लिए, सिस्टम पुनरारंभ होने के कारण) तो घड़ी अनुक्रम विशिष्टता सुनिश्चित करने में मदद करता है।
-
संस्करण 3 और संस्करण 5 (नाम-आधारित):
- एक नेमस्पेस (जैसे DNS डोमेन) को एक नाम (जैसे फ़ाइल पथ या यूआरएल) और हैशेड के साथ जोड़ा जाता है।
- हैश (संस्करण 3 के लिए एमडी5, संस्करण 5 के लिए एसएचए-1) को फिर यूयूआईडी प्रारूप में संरचित किया जाता है, यह सुनिश्चित करते हुए कि संस्करण और वैरिएंट फ़ील्ड ठीक से सेट हैं।
-
संस्करण 4 (यादृच्छिक-आधारित):
- यूयूआईडी के 122 बिट्स के लिए यादृच्छिक या छद्म-यादृच्छिक संख्याएँ उत्पन्न होती हैं।
- यूयूआईडी मानकों का अनुपालन सुनिश्चित करते हुए संस्करण और भिन्न फ़ील्ड तदनुसार सेट किए गए हैं।
UUIDv4 गणना उदाहरण
चरण 1: 128 यादृच्छिक बिट्स उत्पन्न करें
आइए मान लें कि हम निम्नलिखित 128-बिट यादृच्छिक मान उत्पन्न करते हैं:
11001100110101101101010101111101010101110110110111001011101010110110101111011010011011110100100101111001011
चरण 2: UUIDv4 संस्करण और संस्करण लागू करें
संस्करण: बिट्स 12-15 (चौथा अक्षर) को 0100 से बदलें (यूयूआईडी संस्करण 4 के लिए)।
मूल: 1100 0100 बन जाता है → इस स्थिति में अद्यतन मूल्य।
वेरिएंट: 9वें बाइट के बिट्स 6-7 को 10 से बदलें (आरएफसी 4122 वेरिएंट के लिए)।
मूल: 11 10 बन जाता है → इस स्थिति में अद्यतन मूल्य।
चरण 3: हेक्साडेसिमल में प्रारूपित करें
128-बिट बाइनरी को 5 हेक्साडेसिमल समूहों में बदलें:
- 32-बिट समूह: 1100110011010110110101010101111010 → ccda55ba
- 16-बिट समूह: 1011101101101110 → b76e
- 16-बिट समूह: 0100010101000101 → 4545 (संस्करण 4 के लिए 0100 के साथ)
- 16-बिट समूह: 10101101111110010 → adf2 (वेरिएंट के लिए 10 के साथ)
- 48-बिट समूह: 110100110111110100100101111001011 → d39d25cb
चरण 4: समूहों को संयोजित करें
अंतिम यूयूआईडी इस तरह दिखेगा:
ccda55ba-b76e-4545-adf2-d39d25cb