Unda Vitambulisho vya Kipekee vya Kimataifa (UUIDs) kwa matumizi mbalimbali. Unda vitambulisho vya toleo la 1 (kulingana na wakati) na toleo la 4 (kibahatishi) vya UUID kwa matumizi katika mifumo iliyosambazwa, hifadhidata, na zaidi.
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.
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:
1550e8400-e29b-41d4-a716-446655440000
2
Bits 128 za UUID zimegawanywa katika maeneo maalum, kila moja ikiwa na habari tofauti kulingana na toleo la UUID:
Hapa kuna mchoro unaoonyesha muundo wa UUID:
Kuna toleo kadhaa za UUID, kila moja ikiwa na njia yake ya kizalisha:
Chombo hiki kinazingatia kuzalisha UUID za Toleo 1 na Toleo 4.
UUID za Toleo 1 zinazalishwa kwa kutumia vipengele vifuatavyo:
Formula ya kuzalisha UUID Toleo 1 inaweza kuonyeshwa kama:
1UUID = (timestamp * 2^64) + (clock_sequence * 2^48) + node
2
UUID za Toleo 4 zinazalishwa kwa kutumia jenereta ya nambari ya nasibu yenye nguvu ya kisasa. Formula ni rahisi:
1UUID = random_128_bit_number
2
Pamoja na bits maalum zilizowekwa kuashiria toleo (4) na tokeo.
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.
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.
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:
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.
Hapa kuna mifano ya kuzalisha UUID katika lugha mbalimbali za programu:
1import uuid
2
3## Zalisha UUID Toleo 4 (nasibu)
4random_uuid = uuid.uuid4()
5print(f"UUID Toleo 4: {random_uuid}")
6
7## Zalisha UUID Toleo 1 (zinazoegemea wakati)
8time_based_uuid = uuid.uuid1()
9print(f"UUID Toleo 1: {time_based_uuid}")
10
1const { v1: uuidv1, v4: uuidv4 } = require('uuid');
2
3// Zalisha UUID Toleo 4 (nasibu)
4const randomUuid = uuidv4();
5console.log(`UUID Toleo 4: ${randomUuid}`);
6
7// Zalisha UUID Toleo 1 (zinazoegemea wakati)
8const timeBasedUuid = uuidv1();
9console.log(`UUID Toleo 1: ${timeBasedUuid}`);
10
1import java.util.UUID;
2
3public class UuidGenerator {
4 public static void main(String[] args) {
5 // Zalisha UUID Toleo 4 (nasibu)
6 UUID randomUuid = UUID.randomUUID();
7 System.out.println("UUID Toleo 4: " + randomUuid);
8
9 // Zalisha UUID Toleo 1 (zinazoegemea wakati)
10 UUID timeBasedUuid = UUID.fromString(new com.eaio.uuid.UUID().toString());
11 System.out.println("UUID Toleo 1: " + timeBasedUuid);
12 }
13}
14
1require 'securerandom'
2
3## Zalisha UUID Toleo 4 (nasibu)
4random_uuid = SecureRandom.uuid
5puts "UUID Toleo 4: #{random_uuid}"
6
7## Ruby haina njia ya ndani ya UUID Toleo 1
8## Ungehitaji kutumia gem kama 'uuidtools' kwa hilo
9
1<?php
2// Zalisha UUID Toleo 4 (nasibu)
3$randomUuid = sprintf('%04x%04x-%04x-%04x-%04x-%04x%04x%04x',
4 mt_rand(0, 0xffff), mt_rand(0, 0xffff),
5 mt_rand(0, 0xffff),
6 mt_rand(0, 0x0fff) | 0x4000,
7 mt_rand(0, 0x3fff) | 0x8000,
8 mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0xffff)
9);
10echo "UUID Toleo 4: " . $randomUuid . "\n";
11
12// PHP haina njia ya ndani ya UUID Toleo 1
13// Ungehitaji kutumia maktaba kama 'ramsey/uuid' kwa hilo
14?>
15
Gundua zana zaidi ambazo zinaweza kuwa na manufaa kwa mtiririko wako wa kazi