Gjenerator UUID

Shtoni në faqe Metainformacion

Vegla të tjera

Krijo UUID/GUID

Krijo UUID/GUID

Identifikuesi unik universal (UUID), i njohur gjithashtu si Identifikuesi unik global (GUID), është përdorur gjerësisht në sistemet kompjuterike.

Është një kod 128-bitësh që gjenerohet nga sistemi bazuar në variabla dhe konstante: koha aktuale, adresa MAC, hash SHA-1, hapësira e emrave MD5. Rezultati përfundimtar i gjenerimit të një UUID, i shfaqur si një kod alfanumerik me 32 karaktere i ndarë me viza, mund të duket arbitrar, por në fakt është rezultat i llogaritjeve komplekse. Kështu, një kompjuter nuk "shpik" një kod, por e formon atë nga sasi të veçanta teknike që janë të rëndësishme në një kohë të caktuar.

Probabiliteti që i njëjti UUID të krijohet në dy kompjuterë të ndryshëm në kohë të ndryshme priret në zero, gjë që bën të mundur përdorimin e kodeve që rezultojnë për identifikimin e të dhënave të pikës/lokale pa iu referuar qendrës së koordinimit. Sot, UUID/GUID është i kudondodhur si në rrjetet online ashtu edhe në ato offline dhe funksionon në mënyrë efektive jo vetëm në hapësirën globale të internetit, por edhe në sistemet e pavarura kompjuterike.

Historiku i UUID

Kodet UUID 128-bit u përdorën për herë të parë nga kompania amerikane Apollo Computer në vitet 1980. Ato bazoheshin në kodet më të thjeshta 64-bit të përdorur në Domain/OS dhe gjetën përdorim të gjerë në mjedisin informatik të Open Software Foundation.

Me ardhjen e platformave të para të Windows, identifikuesi unik globalisht u përgjithësua dhe u standardizua. Microsoft miratoi dizajnin DCE nga Apollo Computer dhe regjistroi hapësirën e emrit URN në RFC 4122. Në 2005, ky i fundit u propozua si një standard i ri nga IETF dhe UUID u standardizua brenda ITU.

Më parë në vitin 2002, problemet e performancës së sistemit u identifikuan kur përdoreshin UUID si çelësat kryesorë në bazat e të dhënave lokale. Këto u rregulluan në versionin 4 duke shtuar një prapashtesë jo të rastësishme bazuar në kohën e sistemit të kompjuterit. Qasja e ashtuquajtur COMB (Combined GUID Time Identifier) ​​rriti rreziqet e dyfishimit të kodit, por në të njëjtën kohë përmirësoi ndjeshëm performancën kur punoni me Microsoft SQL Server.

Me zhvillimin e teknologjive të TI-së, identifikuesi unik universal ka pushuar së qeni një mjet teknik shumë i specializuar dhe sot të gjithë mund ta përdorin atë. Probabiliteti i përsëritjes së kodeve të krijuara nuk është i barabartë me zero, por priret drejt tij dhe çdo informacion dixhital mund të identifikohet prej tyre, pas së cilës ato mund të kombinohen në grupe të dhënash të vetme me rreziqe minimale të përsëritjes.

Përfitimet e UUID

Gjeneruesit e kodeve unike globale nuk kërkojnë rakordim/sinkronizim të centralizuar të të dhënave dhe janë të disponueshëm lirisht për të gjithë përdoruesit. Përparësitë kryesore të UUID përfshijnë:

  • Rreziqet minimale të "përplasjes" (përsëritjes) të kodeve. Pavarësisht përdorimit masiv të tyre, probabiliteti i përsëritjes priret në zero.
  • Aftësia për të bashkuar grupe të ndryshme të dhënash duke përdorur UUID si çelësa kryesorë (unikë).
  • Shpërndarja e thjeshtuar e të dhënave nëpër serverë të shumtë të shpërndarë.
  • Aftësia për të gjeneruar kode jashtë linje.

Kodet unike të identifikimit, të shkruara në formatin xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx, lejojnë sistemet e shpërndara të njohin informacionin pa koordinim nga një qendër e vetme të dhënash: me një probabilitet pothuajse zero gabimesh/përsëritjesh. Kjo veçori, së bashku me lehtësinë e përdorimit dhe kërkesat e vogla për performancën e kompjuterit, e bën UUID të kërkuar dhe të domosdoshëm në një shumëllojshmëri të gjerë të industrive të TI-së dhe sistemeve autonome kompjuterike.

Identifikues universal unik

Identifikues universal unik

UUID mund të gjenerojë kode duke përdorur algoritme dhe variabla/vlera konstante të ndryshme.

Ka 5 versione të identifikuesit gjithsej, duke përdorur datën/kohën e sistemit dhe adresat MAC, protokollet e sigurisë DCE, hash MD5, hash SHA-1 dhe hapësirën e emrave kur krijohen.

Në të gjitha rastet, rezultati përfundimtar shfaqet në formatin xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx (një numër në shënimin heksadecimal, i përbërë nga shkronja të vogla latine dhe numra, dhe i ndarë me viza në pesë blloqe: 8-4 -4-4- 12), M do të thotë version, N do të thotë variant UUID.

Kështu, sistemi përdor 36 karaktere në të njëjtën kohë (26 shkronja dhe 10 numra), kështu që probabiliteti i përsëritjes së kodeve 32-shifrore priret në zero, pavarësisht se ato gjenerohen çdo ditë nga miliona përdorues në mbarë botën.

Versionet UUID

Versioni 1

Versioni i parë i identifikuesit unik, kur gjenerohet kodi, bazohet në adresën MAC të kompjuterit dhe kohën e tij të sistemit, e cila ndryshon vlerën e tij numerike 1 herë në sekondë. Procesi i gjenerimit përbëhet nga pesë faza:

  • 32 bitët më të ulët të informacionit janë marrë nga etiketa UTC. Ato konvertohen në 8 karaktere heksadecimal dhe zënë 4 bajt.
  • Mesatarisht 16 bit informacioni merren nga e njëjta etiketë UTC dhe konvertohen në 4 karaktere heksadecimal që zënë 2 bajt.
  • 12 bitët e sipërm të informacionit nga etiketa UTC merren dhe konvertohen në 4 karaktere të tjera heksadecimal.
  • 1-3 bit të tjerë bien në sekuencën e orës dhe zvogëlojnë rreziqet e përplasjeve duke futur një shkallë rastësie/pasigurie. Koha e sistemit ose ngadalësohet me kusht ose kthehet prapa - në mënyrë që dy ose më shumë identifikues që punojnë në të njëjtin kompjuter në të njëjtën kohë të mos "kryqëzohen".
  • 6 bajtët e mbetur janë një vlerë konstante e krijuar bazuar në adresën MAC të pajisjes. Ai përbëhet nga 12 karaktere heksadecimal dhe është në madhësi 48 bit.

Për shkak se algoritmi i versionit të parë të UUID është i lidhur pazgjidhshmërisht me kohën e sistemit, përdorimi i sekuencës së orës është i detyrueshëm. Përndryshe, rreziqet e gjenerimit të të njëjtave kode rriten shumë herë - gjatë sekondës kur koha e sistemit "ngrihet" në një ose një vlerë tjetër.

Versioni 2

Versioni i dytë është minimalisht i ndryshëm nga i pari dhe përdoret rrallë në praktikë. Në vend të një sekuence të orës, ai përdor një identifikues sistemi të lidhur me të dhënat e përdoruesit ose vlera të tjera unike që nuk përsëriten në kompjuterë të tjerë ose përsëriten shumë rrallë. Efekti i rastësisë në versionin e dytë minimizohet dhe mund të përdoret për të përmirësuar sigurinë e një mjedisi të shpërndarë kompjuterik.

Versionet 3 dhe 5

Kanë shumë të përbashkëta: përdorin emra dhe emra unikë (nga hapësira MD5) për të krijuar kode, domethënë vlera jo të rastësishme. Vetëm versioni 3 përdor një hash standard, ndërsa versioni 5 përdor një hash SHA-1. Identifikues të tillë janë më pak të varur nga variablat e rastësishëm.

Versioni 4

Gjenerimi i këtij versioni UUID është më shumë se 90% i rastësishëm. Ai ka 6 bit për vlera konstante dhe 122 për ato arbitrare. Zbatimi i algoritmit është që fillimisht gjenerohen rastësisht 128 bit informacioni dhe 6 prej tyre zëvendësohen nga të dhënat e versionit dhe variantit.

Roli i gjeneruesit të numrave pseudo të rastësishëm në versionin e katërt është maksimal dhe nëse ka një algoritëm shumë të thjeshtë, rreziqet e përsëritjeve/përplasjeve rriten ndjeshëm. Pavarësisht kësaj, është versioni i katërt që është deri tani më i zakonshmi dhe i përdorur shpesh në praktikë.

Opsionet e UUID

UUID unik është rafinuar disa herë me zhvillimin e teknologjisë kompjuterike dhe sot është paraqitur në disa versione.

Opsioni 0

Dizenjuar për të punuar me bazat e të dhënave të formatit të vjetër të Apollo Network Computing System 1.5 1988. Ky opsion është i pajtueshëm me to dhe nuk bie ndesh me UUID-të historike NCS.

Opsionet 1 dhe 2

Përdoren për identifikimin e blloqeve dhe grupeve moderne të të dhënave dhe në formë teksti kanonik nuk ndryshojnë nga njëri-tjetri, përveç renditjes së shkrimit të biteve të variantit. Pra, opsioni 1 përdor rendin e bajtit të madh-endian, dhe opsioni 2 përdor titullin-endian. E para është kryesore dhe e dyta është e rezervuar për të punuar me GUID-të e hershme nga Microsoft Windows.

Opsioni 3

Aktualisht nuk përdoret. Është një version i rezervuar për përdorim në të ardhmen - kur janë shterur mundësitë e opsioneve të mëparshme.

Shumica e sistemeve e kodojnë identifikuesin në big-endian, por ka përjashtime. Për shembull, marshalizimi në bibliotekat e Microsoft COM/OLE përdor endian të përzier ndërsa gjeneron kodin nga blloqet titull-endian dhe big-endian. I pari është tre komponentët e parë të UUID dhe i dyti janë dy të fundit.