Loo universaalselt unikaalseid identifikaatoreid (UUID) erinevate rakenduste jaoks. Loo nii versiooni 1 (ajapõhine) kui ka versiooni 4 (juhuslik) UUID-sid, mida saab kasutada jaotatud süsteemides, andmebaasides ja mujal.
Universaalselt unikaalne identifikaator (UUID) on 128-bitine number, mida kasutatakse teabe tuvastamiseks arvutisüsteemides. UUID-d on standardiseeritud Avatud Tarkvarafondi (OSF) poolt ja need on osa Jaotatud Arvutuskeskkonnast (DCE). Need identifikaatorid on loodud olema unikaalsed nii ruumis kui ka ajas, mistõttu sobivad need ideaalselt erinevateks rakendusteks jaotatud süsteemides ja mujal.
See UUID generaatori tööriist võimaldab luua nii versiooni 1 (ajaga seotud) kui ka versiooni 4 (juhuslik) UUID-sid. Need identifikaatorid on kasulikud erinevates olukordades, kus on vajalik unikaalne tuvastamine, näiteks andmebaasi võtmed, jaotatud süsteemid ja võrgu protokollid.
UUID-d esitatakse tavaliselt 32 heksadigitaalsena, mis on jagatud viieks rühmaks, mis on eraldatud sidekriipsudega, kujul 8-4-4-4-12, kokku 36 tähemärki (32 alfanumeerilist tähemärki ja 4 sidekriipsu). Näiteks:
1550e8400-e29b-41d4-a716-446655440000
2
UUID 128 bitti jagatakse konkreetseteks väljadeks, millest igaühel on erinev teave sõltuvalt UUID versioonist:
Siin on diagramm, mis illustreerib UUID struktuuri:
UUID-sid on mitu versiooni, igaühel oma genereerimismeetod:
See tööriist keskendub versiooni 1 ja versiooni 4 UUID-de genereerimisele.
Versioon 1 UUID-d genereeritakse järgmiste komponentide abil:
Versioon 1 UUID genereerimise valemit saab väljendada järgmiselt:
1UUID = (timestamp * 2^64) + (clock_sequence * 2^48) + node
2
Versioon 4 UUID-d genereeritakse, kasutades krüptograafiliselt tugevat juhuslikku numbri generaatorit. Valem on lihtsalt:
1UUID = juhuslik_128_bitine_number
2
Kus spetsiifilised bitid on seatud versiooni (4) ja variandi näitamiseks.
UUID-del on palju rakendusi arvutiteaduse ja tarkvarainsenerite erinevates valdkondades:
Andmebaasi võtmed: UUID-sid kasutatakse sageli peamistena andmebaasides, eriti jaotatud süsteemides, kus mitu sõlme võivad samal ajal andmeid genereerida.
Jaotatud süsteemid: Suurtes jaotatud süsteemides aitavad UUID-d unikaalselt tuvastada ressursse, tehinguid või sündmusi mitme sõlme või andmekeskuse vahel.
Sisu aadressimine: UUID-sid saab kasutada ainulaadsete identifikaatorite loomiseks sisu jaoks sisu aadressitavates salvestussüsteemides.
Seansi haldamine: Veebirakendused kasutavad sageli UUID-sid kasutaja seansside haldamiseks, tagades, et igal seansil on ainulaadne identifikaator.
IoT seadmete tuvastamine: Asjade Interneti (IoT) rakendustes saab UUID-sid kasutada individuaalsete seadmete unikaalseks tuvastamiseks võrgus.
Kuigi UUID-sid kasutatakse laialdaselt, on olemas alternatiivsed lähenemisviisid unikaalsete identifikaatorite genereerimiseks:
Automaatne suurenevad ID-d: Lihtne ja sageli kasutatav ühes andmebaasis, kuid ei sobi jaotatud keskkondades.
Aja põhised ID-d: Võivad olla kasulikud ajaliselt järjestatud andmete jaoks, kuid võivad kokku puutuda kokkulangevuste probleemidega kõrge konkurentsi olukordades.
Snowflake ID-d: Twitteri poolt välja töötatud, need ID-d kombineerivad ajatempli ja töötaja numbri, et genereerida unikaalseid ID-sid jaotatud süsteemides.
ULID (Universaalselt unikaalne leksikograafiliselt sorteeritav identifikaator): Viimase aja alternatiiv, mille eesmärk on olla inimeste jaoks sõbralikum ja sorteeritavam kui UUID-d.
UUID-de kontseptsioon tutvustati esmakordselt Apollo võrgu arvutussüsteemis ja hiljem standardiseeriti Avatud Tarkvarafondi (OSF) poolt osana jaotatud arvutuskeskkonnast (DCE) 1990ndatel. Esimene spetsifikatsioon avaldati 1997. aastal ISO/IEC 11578:1996 ja hiljem 2005. aastal ISO/IEC 9834-8:2005 osana.
Olulised verstapostid UUID ajaloo jooksul:
Aja jooksul on UUID-d muutunud hädavajalikuks tööriistaks jaotatud süsteemides ja andmebaasi kujunduses, erinevate rakenduste ja kohandustega erinevates programmeerimiskeeltes ja platvormidel.
Siin on näited UUID-de genereerimisest erinevates programmeerimiskeeltes:
1import uuid
2
3## Genereeri versioon 4 (juhuslik) UUID
4random_uuid = uuid.uuid4()
5print(f"Versioon 4 UUID: {random_uuid}")
6
7## Genereeri versioon 1 (ajaga seotud) UUID
8time_based_uuid = uuid.uuid1()
9print(f"Versioon 1 UUID: {time_based_uuid}")
10
1const { v1: uuidv1, v4: uuidv4 } = require('uuid');
2
3// Genereeri versioon 4 (juhuslik) UUID
4const randomUuid = uuidv4();
5console.log(`Versioon 4 UUID: ${randomUuid}`);
6
7// Genereeri versioon 1 (ajaga seotud) UUID
8const timeBasedUuid = uuidv1();
9console.log(`Versioon 1 UUID: ${timeBasedUuid}`);
10
1import java.util.UUID;
2
3public class UuidGenerator {
4 public static void main(String[] args) {
5 // Genereeri versioon 4 (juhuslik) UUID
6 UUID randomUuid = UUID.randomUUID();
7 System.out.println("Versioon 4 UUID: " + randomUuid);
8
9 // Genereeri versioon 1 (ajaga seotud) UUID
10 UUID timeBasedUuid = UUID.fromString(new com.eaio.uuid.UUID().toString());
11 System.out.println("Versioon 1 UUID: " + timeBasedUuid);
12 }
13}
14
1require 'securerandom'
2
3## Genereeri versioon 4 (juhuslik) UUID
4random_uuid = SecureRandom.uuid
5puts "Versioon 4 UUID: #{random_uuid}"
6
7## Ruby-l ei ole sisseehitatud meetodit versioon 1 UUID-de jaoks
8## Selle jaoks vajate sellist gem'i nagu 'uuidtools'
9
1<?php
2// Genereeri versioon 4 (juhuslik) UUID
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 "Versioon 4 UUID: " . $randomUuid . "\n";
11
12// PHP-l ei ole sisseehitatud meetodit versioon 1 UUID-de jaoks
13// Selle jaoks vajate sellist teeki nagu 'ramsey/uuid'
14?>
15
Avasta rohkem tööriistu, mis võivad olla kasulikud teie töövoos