UUID ജനറേറ്റർ
ജനന UUID
UUID ജനറേറ്റർ
പരിചയം
ഒരു യൂണിവേഴ്സലി യുണിക് ഐഡന്റിഫയർ (UUID) 128-ബിറ്റ് നമ്പർ ആണ്, ഇത് കമ്പ്യൂട്ടർ സിസ്റ്റങ്ങളിൽ വിവരങ്ങൾ തിരിച്ചറിയാൻ ഉപയോഗിക്കുന്നു. UUIDകൾ ഓപ്പൺ സോഫ്റ്റ്വെയർ ഫൗണ്ടേഷൻ (OSF) വഴി വിതരണ കമ്പ്യൂട്ടിംഗ് പരിസ്ഥിതിയുടെ (DCE) ഭാഗമായും സ്റ്റാൻഡേർഡ് ചെയ്യപ്പെട്ടവയാണ്. ഈ ഐഡന്റിഫയർസ് സ്ഥലം കൂടാതെ സമയത്തും യുണിക് ആയിരിക്കാനായി രൂപകൽപ്പന ചെയ്തതാണ്, അതിനാൽ ഇത് വിതരണ സിസ്റ്റങ്ങൾക്കും അതിനപ്പുറം വിവിധ അപേക്ഷകൾക്കായി അനുയോജ്യമാണ്.
ഈ UUID ജനറേറ്റർ ഉപകരണം പതിപ്പ് 1 (സമയ അടിസ്ഥാനമാക്കിയ) കൂടാതെ പതിപ്പ് 4 (രണ്ടാമത്തെ) UUIDകൾ സൃഷ്ടിക്കാൻ നിങ്ങൾക്ക് അനുവദിക്കുന്നു. ഈ ഐഡന്റിഫയർസ് യുണിക് തിരിച്ചറിയൽ ആവശ്യമുള്ള വിവിധ സാഹചര്യങ്ങളിൽ ഉപകാരപ്രദമാണ്, ഉദാഹരണത്തിന് ഡാറ്റാബേസ് കീകൾ, വിതരണ സിസ്റ്റങ്ങൾ, നെറ്റ്വർക്കിന്റെ പ്രോട്ടോകോളുകൾ എന്നിവയിൽ.
UUIDകൾ എങ്ങനെ പ്രവർത്തിക്കുന്നു
UUID ഘടന
ഒരു UUID സാധാരണയായി 32 ഹെക്സാഡെസിമൽ അക്കങ്ങൾ ആയി പ്രതിനിധീകരിക്കപ്പെടുന്നു, അഞ്ച് ഗ്രൂപ്പുകൾ ഹൈഫൻമാർക്കുകൾ കൊണ്ട് വേർതിരിച്ചിരിക്കുന്നു, 8-4-4-4-12 എന്ന രൂപത്തിൽ 36 അക്ഷരങ്ങൾ (32 അക്ഷരങ്ങൾ കൂടാതെ 4 ഹൈഫൻ) ഉള്ളത്. ഉദാഹരണത്തിന്:
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 (രണ്ടാമത്തെ): ഒരു യാദൃച്ഛിക അല്ലെങ്കിൽ പseudo-യാദൃച്ഛിക നമ്പർ ഉപയോഗിച്ച് നിർമ്മിക്കുന്നു.
- പതിപ്പ് 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}")
റഫറൻസുകൾ
- Leach, P., Mealling, M., & Salz, R. (2005). A Universally Unique IDentifier (UUID) URN Namespace. RFC 4122. https://tools.ietf.org/html/rfc4122
- International Organization for Standardization. (2005). Information technology – Open Systems Interconnection – Procedures for the operation of OSI Registration Authorities: Generation and registration of Universally Unique Identifiers (UUIDs) and their use as ASN.1 Object Identifier components. ISO/IEC 9834-8:2005. https://www.iso.org/standard/62795.html
- Universally unique identifier. (2023). In Wikipedia. https://en.wikipedia.org/wiki/Universally_unique_identifier
- Snowflake ID. (2023). In Wikipedia. https://en.wikipedia.org/wiki/Snowflake_ID
- ULID Spec. (n.d.). GitHub. https://github.com/ulid/spec