Generator ya UUID
UUID iliyozalishwa
Generator ya UUID
Utangulizi
Identifier ya Kipekee ya Ulimwengu (UUID) ni nambari ya bit 128 inayotumika kutambua habari katika mifumo ya kompyuta. UUID zimeandikwa kwa kiwango na Shirika la Programu za Wazi (OSF) kama sehemu ya Mazingira ya Kompyuta Yaliyosambazwa (DCE). Vitambulisho hivi vimeundwa kuwa vya kipekee katika nafasi na wakati, na kuifanya kuwa bora kwa matumizi mbalimbali katika mifumo ya kusambazwa na zaidi.
Chombo hiki cha generator ya UUID kinakuwezesha kuunda UUID za toleo 1 (zinazoegemea wakati) na toleo 4 (za nasibu). Vitambulisho hivi ni vya manufaa katika hali mbalimbali ambapo utambulisho wa kipekee unahitajika, kama funguo za hifadhidata, mifumo ya kusambazwa, na protokali za mtandao.
Jinsi UUID Zinavyofanya Kazi
Muundo wa UUID
UUID kawaida huwakilishwa kama tarakimu 32 za hexadecima, zinaonyeshwa katika vikundi vitano vilivyotengwa na hyphens, kwa mfumo wa 8-4-4-4-12 kwa jumla ya wahusika 36 (wahusika 32 wa alphanumeric na hyphens 4). Kwa mfano:
550e8400-e29b-41d4-a716-446655440000
Bits 128 za UUID zimegawanywa katika maeneo maalum, kila moja ikiwa na habari tofauti kulingana na toleo la UUID:
- Bits 32 kwa uwanja wa time_low
- Bits 16 kwa uwanja wa time_mid
- Bits 16 kwa uwanja wa time_hi_and_version
- Bits 8 kwa uwanja wa clock_seq_hi_and_reserved
- Bits 8 kwa uwanja wa clock_seq_low
- Bits 48 kwa uwanja wa node
Hapa kuna mchoro unaoonyesha muundo wa UUID:
Toleo za UUID
Kuna toleo kadhaa za UUID, kila moja ikiwa na njia yake ya kizalisha:
- Toleo 1 (Zinazoegemea Wakati): Inatumia muda wa sasa na anwani ya MAC ya kompyuta.
- Toleo 2 (Usalama wa DCE): Kama toleo 1, lakini inajumuisha kitambulisho cha eneo la ndani.
- Toleo 3 (Zinazoegemea Jina, MD5): Inazalishwa kwa kubadilisha kitambulisho cha eneo na jina.
- Toleo 4 (Nasibu): Inazalishwa kwa kutumia nambari ya nasibu au ya pseudo-nasibu.
- Toleo 5 (Zinazoegemea Jina, SHA-1): Kama toleo 3, lakini inatumia kubadilisha SHA-1.
Chombo hiki kinazingatia kuzalisha UUID za Toleo 1 na Toleo 4.
Formula
Kuzalisha UUID Toleo 1
UUID za Toleo 1 zinazalishwa kwa kutumia vipengele vifuatavyo:
- Muda: Thamani ya bits 60 inayowakilisha idadi ya vipindi vya nanosekunde 100 tangu Oktoba 15, 1582 (tarehe ya marekebisho ya Gregorian kwa kalenda ya Kikristo).
- Mfululizo wa saa: Thamani ya bits 14 inayotumika kuepuka nakala katika kesi saa inarudi nyuma.
- Node: Thamani ya bits 48, ambayo kawaida inatokana na anwani ya MAC ya kompyuta.
Formula ya kuzalisha UUID Toleo 1 inaweza kuonyeshwa kama:
UUID = (timestamp * 2^64) + (clock_sequence * 2^48) + node
Kuzalisha UUID Toleo 4
UUID za Toleo 4 zinazalishwa kwa kutumia jenereta ya nambari ya nasibu yenye nguvu ya kisasa. Formula ni rahisi:
UUID = random_128_bit_number
Pamoja na bits maalum zilizowekwa kuashiria toleo (4) na tokeo.
Matumizi
UUID zina matumizi mengi katika maeneo mbalimbali ya sayansi ya kompyuta na uhandisi wa programu:
-
Funguo za Hifadhidata: UUID mara nyingi hutumiwa kama funguo za msingi katika hifadhidata, hasa katika mifumo ya kusambazwa ambapo nodi nyingi zinaweza kuwa zikizalisha rekodi kwa wakati mmoja.
-
Mifumo ya Kusambazwa: Katika mifumo mikubwa ya kusambazwa, UUID husaidia katika kutambua rasilimali, shughuli, au matukio kwa kipekee kati ya nodi nyingi au vituo vya data.
-
Uelekezaji wa Maudhui: UUID zinaweza kutumika kuunda vitambulisho vya kipekee kwa maudhui katika mifumo ya hifadhi inayoweza kuelekezwa kwa maudhui.
-
Usimamizi wa Kikao: Programu za wavuti mara nyingi hutumia UUID kusimamia vikao vya watumiaji, kuhakikisha kila kikao kina kitambulisho cha kipekee.
-
Utambulisho wa Kifaa cha IoT: Katika matumizi ya Internet ya Mambo (IoT), UUID zinaweza kutumika kutambua kwa kipekee vifaa binafsi katika mtandao.
Mbadala
Ingawa UUID zinatumika sana, kuna mbadala za kuzalisha vitambulisho vya kipekee:
-
Vitambulisho vya Kuongezeka: Rahisi na hutumiwa mara nyingi katika mifumo ya hifadhidata moja, lakini si sahihi kwa mazingira ya kusambazwa.
-
Vitambulisho vya Kulingana na Wakati: Vinaweza kuwa na manufaa kwa data inayopangwa kwa wakati lakini vinaweza kukabiliwa na matatizo ya nakala katika hali za ushirikiano wa juu.
-
Vitambulisho vya Snowflake: Vilivyoundwa na Twitter, vitambulisho hivi vinachanganya wakati na nambari ya mfanyakazi ili kuunda vitambulisho vya kipekee katika mifumo ya kusambazwa.
-
ULID (Identifier ya Kipekee ya Ulimwengu inayoweza Kuwekwa Kulingana): Mbadala wa hivi karibuni ambao unalenga kuwa rafiki zaidi kwa binadamu na unaoweza kuandikwa kuliko UUID.
Historia
Wazo la UUID lilianzishwa kwanza katika Mfumo wa Kompyuta wa Mtandao wa Apollo na baadaye likakubaliwa na Shirika la Programu za Wazi (OSF) kama sehemu ya Mazingira ya Kompyuta Yaliyosambazwa (DCE) katika miaka ya 1990. Maelezo ya awali yalichapishwa mwaka 1997 kama ISO/IEC 11578:1996 na baadaye kufanyiwa marekebisho mwaka 2005 kama sehemu ya ISO/IEC 9834-8:2005.
Maalum ya kihistoria katika historia ya UUID:
- Miaka ya 1980: Kompyuta ya Apollo inaunda wazo la UUID kwa Mfumo wao wa Kompyuta wa Mtandao.
- 1997: Maelezo ya kwanza ya UUID yanachapishwa kama ISO/IEC 11578:1996.
- 2005: Maelezo ya UUID yanarekebishwa na kuchapishwa kama sehemu ya ISO/IEC 9834-8:2005.
- 2009: RFC 4122 inafafanua muundo wa UUID na algorithms za kizalishaji zinazotumiwa leo.
Kwa muda, UUID zimekuwa chombo muhimu katika mifumo ya kusambazwa na muundo wa hifadhidata, huku zikiwa na utekelezaji na marekebisho mbalimbali katika lugha tofauti za programu na majukwaa.
Mifano ya Msimbo
Hapa kuna mifano ya kuzalisha UUID katika lugha mbalimbali za programu:
import uuid
## Zalisha UUID Toleo 4 (nasibu)
random_uuid = uuid.uuid4()
print(f"UUID Toleo 4: {random_uuid}")
## Zalisha UUID Toleo 1 (zinazoegemea wakati)
time_based_uuid = uuid.uuid1()
print(f"UUID Toleo 1: {time_based_uuid}")
Marejeleo
- Leach, P., Mealling, M., & Salz, R. (2005). A Universally Unique IDentifier (UUID) URN Namespace. RFC 4122. https://tools.ietf.org/html/rfc4122
- Shirika la Kimataifa la Viwango. (2005). Teknolojia ya habari - Usimamizi wa Mifumo ya Wazi - Taratibu za kufanya kazi za Mamlaka za Usajili wa OSI: Kizalishaji na usajili wa Identifiers za Kipekee za Ulimwengu (UUIDs) na matumizi yao kama vipengele vya Kitambulisho cha ASN.1. ISO/IEC 9834-8:2005. https://www.iso.org/standard/62795.html
- Identifier ya kipekee ya ulimwengu. (2023). Katika Wikipedia. https://en.wikipedia.org/wiki/Universally_unique_identifier
- Vitambulisho vya Snowflake. (2023). Katika Wikipedia. https://en.wikipedia.org/wiki/Snowflake_ID
- Spec ya ULID. (n.d.). GitHub. https://github.com/ulid/spec