ಯುಯುಐಡಿ ಉತ್ಪಾದಕ
ಉತ್ಪಾದಿತ ಯುಯುಐಡಿ
UUID ಜನರೇಟರ್
ಪರಿಚಯ
ಯುನಿವರ್ಸಲ್ ಯುನಿಕ್ ಐಡೆಂಟಿಫೈಯರ್ (UUID) 128-ಬಿಟ್ ಸಂಖ್ಯೆಯಾಗಿದೆ, ಇದು ಕಂಪ್ಯೂಟರ್ ವ್ಯವಸ್ಥೆಗಳಲ್ಲಿ ಮಾಹಿತಿಯನ್ನು ಗುರುತಿಸಲು ಬಳಸಲಾಗುತ್ತದೆ. UUIDಗಳನ್ನು ಓಪನ್ ಸಾಫ್ಟ್ವೇರ್ ಫೌಂಡೇಶನ್ (OSF) ಮೂಲಕ ವಿತರಣಾ ಕಂಪ್ಯೂಟಿಂಗ್ ಪರಿಸರ (DCE) ಭಾಗವಾಗಿ ಮಾನಕೀಕೃತಗೊಳಿಸಲಾಗಿದೆ. ಈ ಗುರುತಿಸುವಿಕೆಗಳು ಸ್ಥಳ ಮತ್ತು ಕಾಲದಲ್ಲಿ ವಿಶಿಷ್ಟವಾಗಿರಲು ವಿನ್ಯಾಸಗೊಳ್ಳುತ್ತವೆ, ಇದರಿಂದಾಗಿ ವಿತರಣಾ ವ್ಯವಸ್ಥೆಗಳಲ್ಲಿ ಮತ್ತು ಇತರ ಸ್ಥಳಗಳಲ್ಲಿ ವಿವಿಧ ಅಪ್ಲಿಕೇಶನ್ಗಳಿಗೆ ಇವುಗಳನ್ನು ಸೂಕ್ತವಾಗಿಸುತ್ತದೆ.
ಈ UUID ಜನರೇಟರ್ ಸಾಧನವು ಆವೃತ್ತಿ 1 (ಕಾಲ ಆಧಾರಿತ) ಮತ್ತು ಆವೃತ್ತಿ 4 (ಯಾದೃಚ್ಛಿಕ) UUIDಗಳನ್ನು ರಚಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. ಈ ಗುರುತಿಸುವಿಕೆಗಳು ಡೇಟಾಬೇಸ್ ಕೀಗಳು, ವಿತರಣಾ ವ್ಯವಸ್ಥೆಗಳು ಮತ್ತು ನೆಟ್ವರ್ಕ್ ಪ್ರೋಟೋಕಾಲ್ಗಳಲ್ಲಿ ಅಗತ್ಯವಿರುವ ವಿಶಿಷ್ಟ ಗುರುತಿಸುವಿಕೆಗೆ ಬಳಸಲಾಗುತ್ತವೆ.
UUIDಗಳು ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತವೆ
UUID ರಚನೆ
UUID ಸಾಮಾನ್ಯವಾಗಿ 32 ಹೆಕ್ಸಾಡೆಸಿಮಲ್ ಅಂಕಿಗಳನ್ನು 36 ಅಕ್ಷರಗಳಲ್ಲಿ (32 ಅಕ್ಷರ ಮತ್ತು 4 ಹೈಫನ್) 8-4-4-4-12 ರೂಪದಲ್ಲಿ ಹೈಫನ್ಗಳಿಂದ ವಿಭಜಿತವಾಗಿ ಪ್ರದರ್ಶಿಸಲಾಗುತ್ತದೆ. ಉದಾಹರಣೆಗೆ:
550e8400-e29b-41d4-a716-446655440000
UUIDನ 128 ಬಿಟ್ಗಳನ್ನು ನಿರ್ದಿಷ್ಟ ಕ್ಷೇತ್ರಗಳಲ್ಲಿ ವಿಭಜಿಸಲಾಗಿದೆ, ಪ್ರತಿ UUID ಆವೃತ್ತಿಯ ಅವುಗಳಲ್ಲಿನ ವಿಭಿನ್ನ ಮಾಹಿತಿಯನ್ನು ಹೊಂದಿದೆ:
- 32 ಬಿಟ್ಗಳು time_low ಕ್ಷೇತ್ರಕ್ಕಾಗಿ
- 16 ಬಿಟ್ಗಳು time_mid ಕ್ಷೇತ್ರಕ್ಕಾಗಿ
- 16 ಬಿಟ್ಗಳು time_hi_and_version ಕ್ಷೇತ್ರಕ್ಕಾಗಿ
- 8 ಬಿಟ್ಗಳು clock_seq_hi_and_reserved ಕ್ಷೇತ್ರಕ್ಕಾಗಿ
- 8 ಬಿಟ್ಗಳು clock_seq_low ಕ್ಷೇತ್ರಕ್ಕಾಗಿ
- 48 ಬಿಟ್ಗಳು node ಕ್ಷೇತ್ರಕ್ಕಾಗಿ
UUID ರಚನೆಯನ್ನು ವಿವರಿಸುವ ಚಿತ್ರೀಕರಣ ಇಲ್ಲಿದೆ:
UUID ಆವೃತ್ತಿಗಳು
UUIDಗಳ ಹಲವಾರು ಆವೃತ್ತಿಗಳು ಇವೆ, ಪ್ರತಿ ಒಂದು ತನ್ನದೇ ಆದ ಜನನ ವಿಧಾನವನ್ನು ಹೊಂದಿದೆ:
- ಆವೃತ್ತಿ 1 (ಕಾಲ ಆಧಾರಿತ): ಪ್ರಸ್ತುತ ಟೈಮ್ಸ್ಟ್ಯಾಂಪ್ ಮತ್ತು ಕಂಪ್ಯೂಟರ್ನ MAC ವಿಳಾಸವನ್ನು ಬಳಸುತ್ತದೆ.
- ಆವೃತ್ತಿ 2 (DCE ಭದ್ರತೆ): ಆವೃತ್ತಿ 1ಗೆ ಸಮಾನ, ಆದರೆ ಸ್ಥಳೀಯ ಡೊಮೇನ್ ಗುರುತನ್ನು ಒಳಗೊಂಡಿದೆ.
- ಆವೃತ್ತಿ 3 (ಹೆಸರಿನ ಆಧಾರಿತ, MD5): ಹೆಸರಿನ ಗುರುತಿನೊಂದಿಗೆ ಹೆಸರನ್ನು ಹ್ಯಾಶ್ ಮಾಡುವ ಮೂಲಕ ಉತ್ಪಾದಿತ.
- ಆವೃತ್ತಿ 4 (ಯಾದೃಚ್ಛಿಕ): ಯಾದೃಚ್ಛಿಕ ಅಥವಾ ಪೂರಕ ಯಾದೃಚ್ಛಿಕ ಸಂಖ್ಯೆಯ ಬಳಕೆ ಮೂಲಕ ಉತ್ಪಾದಿತ.
- ಆವೃತ್ತಿ 5 (ಹೆಸರಿನ ಆಧಾರಿತ, SHA-1): ಆವೃತ್ತಿ 3ಗೆ ಸಮಾನ, ಆದರೆ SHA-1 ಹ್ಯಾಶಿಂಗ್ ಬಳಸುತ್ತದೆ.
ಈ ಸಾಧನವು ಆವೃತ್ತಿ 1 ಮತ್ತು ಆವೃತ್ತಿ 4 UUIDಗಳನ್ನು ರಚಿಸಲು ಕೇಂದ್ರೀಕೃತವಾಗಿದೆ.
ಸೂತ್ರ
ಆವೃತ್ತಿ 1 UUID ಜನರೇಶನ್
ಆವೃತ್ತಿ 1 UUIDಗಳನ್ನು ಕೆಳಗಿನ ಅಂಶಗಳನ್ನು ಬಳಸಿಕೊಂಡು ರಚಿಸಲಾಗುತ್ತದೆ:
- ಟೈಮ್ಸ್ಟ್ಯಾಂಪ್: ಅಕ್ಟೋಬರ್ 15, 1582 (ಕ್ರಿಶ್ಚಿಯನ್ ಕ್ಯಾಲೆಂಡರ್ಗೆ ಗ್ರೆಗೋರಿ ಸುಧಾರಣೆಯ ದಿನಾಂಕ) ನಂತರ 100-ನಾನುಸೆಕೆಂಡು ಅಂತರಗಳ ಸಂಖ್ಯೆಯನ್ನು ಪ್ರತಿನಿಧಿಸುವ 60-ಬಿಟ್ ಮೌಲ್ಯ.
- ಕ್ಲಾಕ್ ಅನುಕ್ರಮ: ಕ್ಲಾಕ್ ಹಿಂದಕ್ಕೆ ಸೆಟಿಂಗ್ ಮಾಡಿದಾಗ ಡುಪ್ಲಿಕೇಟುಗಳನ್ನು ತಪ್ಪಿಸಲು ಬಳಸುವ 14-ಬಿಟ್ ಮೌಲ್ಯ.
- ನೋಡ್: ಸಾಮಾನ್ಯವಾಗಿ ಕಂಪ್ಯೂಟರ್ನ MAC ವಿಳಾಸದಿಂದ ಪಡೆದ 48-ಬಿಟ್ ಮೌಲ್ಯ.
ಆವೃತ್ತಿ 1 UUID ಉತ್ಪಾದನೆಯ ಸೂತ್ರವನ್ನು ಈ ರೀತಿಯಲ್ಲಿ ವ್ಯಕ್ತಪಡಿಸಬಹುದು:
UUID = (timestamp * 2^64) + (clock_sequence * 2^48) + node
ಆವೃತ್ತಿ 4 UUID ಜನರೇಶನ್
ಆವೃತ್ತಿ 4 UUIDಗಳನ್ನು ಕ್ರಿಪ್ಟೋಗ್ರಾಫಿಕಲ್ ಶಕ್ತಿಯ ಯಾದೃಚ್ಛಿಕ ಸಂಖ್ಯಾ ಜನರೇಟರ್ ಬಳಸಿಕೊಂಡು ಉತ್ಪಾದಿಸಲಾಗುತ್ತದೆ. ಸೂತ್ರವು ಸರಳವಾಗಿ:
UUID = random_128_bit_number
ನಿರ್ದಿಷ್ಟ ಬಿಟ್ಗಳನ್ನು ಆವೃತ್ತಿ (4) ಮತ್ತು ರೂಪಾಂತರವನ್ನು ಸೂಚಿಸಲು ಹೊಂದಿಸಲಾಗಿದೆ.
ಉಪಯೋಗ ಪ್ರಕರಣಗಳು
UUIDಗಳಿಗೆ ಕಂಪ್ಯೂಟರ್ ವಿಜ್ಞಾನ ಮತ್ತು ಸಾಫ್ಟ್ವೇರ್ ಎಂಜಿನಿಯರಿಂಗ್ನ ವಿವಿಧ ಕ್ಷೇತ್ರಗಳಲ್ಲಿ ಅನೇಕ ಅಪ್ಲಿಕೇಶನ್ಗಳಿವೆ:
-
ಡೇಟಾಬೇಸ್ ಕೀಗಳು: UUIDಗಳನ್ನು ಡೇಟಾಬೇಸ್ಗಳಲ್ಲಿ ಪ್ರಾಥಮಿಕ ಕೀಗಳಾಗಿ ಬಳಸಲಾಗುತ್ತದೆ, ವಿಶೇಷವಾಗಿ ವಿತರಣಾ ವ್ಯವಸ್ಥೆಗಳಲ್ಲಿ, ಅಲ್ಲಿ ಹಲವಾರು ನೋಡ್ಗಳು ಒಂದೇ ಸಮಯದಲ್ಲಿ ದಾಖಲೆಗಳನ್ನು ಉತ್ಪಾದಿಸುತ್ತವೆ.
-
ವಿತರಣಾ ವ್ಯವಸ್ಥೆಗಳು: ದೊಡ್ಡ ಪ್ರಮಾಣದ ವಿತರಣಾ ವ್ಯವಸ್ಥೆಗಳಲ್ಲಿ, UUIDಗಳು ಅನನ್ಯವಾಗಿ ಸಂಪತ್ತು, ವ್ಯವಹಾರಗಳು ಅಥವಾ ಘಟನೆಗಳನ್ನು ಗುರುತಿಸಲು ಸಹಾಯ ಮಾಡುತ್ತವೆ.
-
ವಿಷಯ ವಿಳಾಸೀಕರಣ: UUIDಗಳನ್ನು ವಿಷಯ-ವಿಳಾಸೀಕೃತ ಸಂಗ್ರಹಣಾ ವ್ಯವಸ್ಥೆಗಳಲ್ಲಿ ವಿಶಿಷ್ಟ ಗುರುತಿಗಳನ್ನು ರಚಿಸಲು ಬಳಸಬಹುದು.
-
ಸೆಷನ್ ನಿರ್ವಹಣೆ: ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್ಗಳು ಸಾಮಾನ್ಯವಾಗಿ UUIDಗಳನ್ನು ಬಳಸಿ ಬಳಕೆದಾರ ಸೆಷನ್ಗಳನ್ನು ನಿರ್ವಹಿಸುತ್ತವೆ, ಪ್ರತಿ ಸೆಷನ್ಗೆ ವಿಶಿಷ್ಟ ಗುರುತಿಯನ್ನು ಖಚಿತಪಡಿಸುತ್ತವೆ.
-
IoT ಸಾಧನ ಗುರುತಿಸುವಿಕೆ: ಇಂಟರ್ನೆಟ್ ಆಫ್ ಥಿಂಗ್ಸ್ (IoT) ಅಪ್ಲಿಕೇಶನ್ಗಳಲ್ಲಿ, UUIDಗಳನ್ನು ನೆಟ್ವರ್ಕ್ನಲ್ಲಿ ವೈಯಕ್ತಿಕ ಸಾಧನಗಳನ್ನು ವಿಶಿಷ್ಟವಾಗಿ ಗುರುತಿಸಲು ಬಳಸಬಹುದು.
ಪರ್ಯಾಯಗಳು
UUIDಗಳು ವ್ಯಾಪಕವಾಗಿ ಬಳಸಲಾಗುವಾಗ, ವಿಶಿಷ್ಟ ಗುರುತಿಗಳನ್ನು ಉತ್ಪಾದಿಸಲು ಪರ್ಯಾಯ ವಿಧಾನಗಳಿವೆ:
-
ಸ್ವಯಂ-ವೃದ್ಧಿ ಐಡಿಗಳು: ಅತೀ ಸರಳ ಮತ್ತು ಒಬ್ಬ ಡೇಟಾಬೇಸ್ ವ್ಯವಸ್ಥೆಗಳಲ್ಲಿ ಸಾಮಾನ್ಯವಾಗಿ ಬಳಸಲಾಗುತ್ತದೆ, ಆದರೆ ವಿತರಣಾ ಪರಿಸರಗಳಿಗೆ ಸೂಕ್ತವಲ್ಲ.
-
ಟೈಮ್ಸ್ಟ್ಯಾಂಪ್ ಆಧಾರಿತ ಐಡಿಗಳು: ಕಾಲ ಕ್ರಮದಲ್ಲಿ ಡೇಟಾಿಗಾಗಿ ಉಪಯುಕ್ತವಾಗಬಹುದು ಆದರೆ ಹೆಚ್ಚಿನ-ಸಂಖ್ಯಾತ ಸನ್ನಿವೇಶಗಳಲ್ಲಿ ಡುಪ್ಲಿಕೇಶನ್ ಸಮಸ್ಯೆಗಳನ್ನು ಎದುರಿಸಬಹುದು.
-
ಸ್ನೋಫ್ಲೇಕ್ ಐಡಿಗಳು: ಟ್ವಿಟ್ಟರ್ನಿಂದ ಅಭಿವೃದ್ಧಿಪಡಿತ, ಈ ಐಡಿಗಳು ವಿತರಣಾ ವ್ಯವಸ್ಥೆಗಳಲ್ಲಿ ವಿಶಿಷ್ಟ ಐಡಿಗಳನ್ನು ಉತ್ಪಾದಿಸಲು ಟೈಮ್ಸ್ಟ್ಯಾಂಪ್ ಮತ್ತು ಕಾರ್ಮಿಕ ಸಂಖ್ಯೆಯನ್ನು ಸಂಯೋಜಿಸುತ್ತವೆ.
-
ULID (ಯುನಿವರ್ಸಲ್ ಯುನಿಕ್ ಲೆಕ್ಸಿಕೋಗ್ರಾಫಿಕಲ್ ಸೋರ್ಟಬಲ್ ಐಡೆಂಟಿಫೈಯರ್): UUIDಗಳಿಂದ ಹೆಚ್ಚು ಮಾನವ ಸ್ನೇಹಿ ಮತ್ತು ಸೋರ್ಟಬಲ್ ಆಗಲು ಉದ್ದೇಶಿತವಾದ ಇತ್ತೀಚಿನ ಪರ್ಯಾಯ.
ಇತಿಹಾಸ
UUIDಗಳ ಕಲ್ಪನೆ ಮೊದಲು ಅಪೋಲೋ ನೆಟ್ವರ್ಕ್ ಕಂಪ್ಯೂಟಿಂಗ್ ವ್ಯವಸ್ಥೆಯಲ್ಲಿ ಪರಿಚಯಿಸಲಾಯಿತು ಮತ್ತು ನಂತರ 1990ರ ದಶಕದಲ್ಲಿ ಓಪನ್ ಸಾಫ್ಟ್ವೇರ್ ಫೌಂಡೇಶನ್ (OSF) ಮೂಲಕ ಮಾನಕೀಕೃತಗೊಳಿಸಲಾಯಿತು. ಪ್ರಾರಂಭಿಕ ನಿರ್ದಿಷ್ಟತೆ 1997ರಲ್ಲಿ ISO/IEC 11578:1996 ಎಂದು ಪ್ರಕಟಿಸಲಾಯಿತು ಮತ್ತು ನಂತರ 2005ರಲ್ಲಿ ISO/IEC 9834-8:2005 ಭಾಗವಾಗಿ ಪುನರ್ಸಂಪಾದಿಸಲಾಯಿತು.
UUID ಇತಿಹಾಸದಲ್ಲಿ ಪ್ರಮುಖ ಮೈಲಿಗಲ್ಲುಗಳು:
- 1980ರ ದಶಕ: ಅಪೋಲೋ ಕಂಪ್ಯೂಟರ್ ತಮ್ಮ ನೆಟ್ವರ್ಕ್ ಕಂಪ್ಯೂಟಿಂಗ್ ವ್ಯವಸ್ಥೆಗೆ UUID ಪರಿಕಲ್ಪನೆಯನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸುತ್ತದೆ.
- 1997: ಮೊದಲ UUID ನಿರ್ದಿಷ್ಟತೆ ISO/IEC 11578:1996 ಎಂದು ಪ್ರಕಟಿಸಲಾಗಿದೆ.
- 2005: UUID ನಿರ್ದಿಷ್ಟತೆ ಪುನರ್ಸಂಪಾದಿತವಾಗಿದ್ದು ISO/IEC 9834-8:2005 ಭಾಗವಾಗಿ ಪ್ರಕಟಿಸಲಾಗಿದೆ.
- 2009: RFC 4122 UUID ರೂಪ ಮತ್ತು ಜನರೇಶನ್ ಅಲ್ಗೋರಿθಮ್ಗಳನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುತ್ತದೆ.
ಕಾಲಕ್ರಮೇಣ, UUIDಗಳು ವಿತರಣಾ ವ್ಯವಸ್ಥೆಗಳಲ್ಲಿ ಮತ್ತು ಡೇಟಾಬೇಸ್ ವಿನ್ಯಾಸದಲ್ಲಿ ಪ್ರಮುಖ ಸಾಧನವಾಗಿವೆ, ವಿವಿಧ ಕಾರ್ಯಕ್ರಮ ಭಾಷೆಗಳಲ್ಲಿ ಮತ್ತು ವೇದಿಕೆಗಳಲ್ಲಿ ವಿವಿಧ ಕಾರ್ಯಗತೀಕರಣಗಳು ಮತ್ತು ಹೊಂದಿಕೆಗಳೊಂದಿಗೆ.
ಕೋಡ್ ಉದಾಹರಣೆಗಳು
ಇಲ್ಲಿ ವಿವಿಧ ಕಾರ್ಯಕ್ರಮ ಭಾಷೆಗಳಲ್ಲಿ UUIDಗಳನ್ನು ಉತ್ಪಾದಿಸುವ ಉದಾಹರಣೆಗಳಿವೆ:
import uuid
## ಆವೃತ್ತಿ 4 (ಯಾದೃಚ್ಛಿಕ) UUID ಅನ್ನು ಉತ್ಪಾದಿಸಿ
random_uuid = uuid.uuid4()
print(f"ಆವೃತ್ತಿ 4 UUID: {random_uuid}")
## ಆವೃತ್ತಿ 1 (ಕಾಲ ಆಧಾರಿತ) UUID ಅನ್ನು ಉತ್ಪಾದಿಸಿ
time_based_uuid = uuid.uuid1()
print(f"ಆವೃತ್ತಿ 1 UUID: {time_based_uuid}")
ಉಲ್ಲೇಖಗಳು
- ಲೀಚ್, ಪಿ., ಮೀಲಿಂಗ್, ಎಮ್., & ಸಲ್ಜ್, ಆರ್. (2005). ಯುನಿವರ್ಸಲ್ ಯುನಿಕ್ ಐಡೆಂಟಿಫೈಯರ್ (UUID) URN ನಾಮಸ್ಥಾನ. RFC 4122. https://tools.ietf.org/html/rfc4122
- ಅಂತಾರಾಷ್ಟ್ರೀಯ ಸಂಸ್ಥೆ ಮಾನಕೀಕರಣ. (2005). ಮಾಹಿತಿ ತಂತ್ರಜ್ಞಾನ - ಓಪನ್ ಸಿಸ್ಟಮ್ ಸಂಪರ್ಕ - OSI ನೋಂದಣಿ ಅಧಿಕಾರಿಗಳ ಕಾರ್ಯಾಚರಣೆಯ ವಿಧಾನಗಳು: ಯುನಿವರ್ಸಲ್ ಯುನಿಕ್ ಐಡೆಂಟಿಫೈಯರ್ಗಳನ್ನು (UUID) ಉತ್ಪಾದಿಸುವ ಮತ್ತು ನೋಂದಾಯಿಸುವ ವಿಧಾನಗಳು ಮತ್ತು ಅವುಗಳನ್ನು ASN.1 ವಸ್ತು ಗುರುತಿನ ಅಂಶಗಳಾಗಿ ಬಳಸುವುದು. ISO/IEC 9834-8:2005. https://www.iso.org/standard/62795.html
- ಯುನಿವರ್ಸಲ್ ಯುನಿಕ್ ಐಡೆಂಟಿಫೈಯರ್. (2023). ವಿಕಿಪೀಡಿಯದಲ್ಲಿ. https://en.wikipedia.org/wiki/Universally_unique_identifier
- ಸ್ನೋಫ್ಲೇಕ್ ಐಡಿ. (2023). ವಿಕಿಪೀಡಿಯದಲ್ಲಿ. https://en.wikipedia.org/wiki/Snowflake_ID
- ULID ಸ್ಪೆಕ್. (n.d.). ಗಿಟ್ಹಬ್. https://github.com/ulid/spec