Unikalny identyfikator uniwersalny (UUID), znany również jako unikalny identyfikator globalny (GUID), jest szeroko stosowany w systemach komputerowych.
Jest to 128-bitowy kod generowany przez system na podstawie zmiennych i stałych: aktualnego czasu, adresu MAC, skrótu SHA-1, przestrzeni nazw MD5. Końcowy wynik generowania UUID, wyświetlany jako 32-znakowy kod alfanumeryczny oddzielony myślnikami, może wydawać się arbitralny, ale w rzeczywistości jest wynikiem skomplikowanych obliczeń. Tak więc komputer nie „wymyśla” kodu, ale tworzy go z określonych wielkości technicznych, które są istotne w danym momencie.
Prawdopodobieństwo, że ten sam identyfikator UUID zostanie wygenerowany na dwóch różnych komputerach w różnym czasie, dąży do zera, co umożliwia wykorzystanie otrzymanych kodów do identyfikacji danych punktowych/lokalnych bez odniesienia do centrum koordynacyjnego. Obecnie UUID/GUID jest wszechobecny zarówno w sieciach online, jak i offline i działa skutecznie nie tylko w globalnej przestrzeni internetowej, ale także w autonomicznych systemach komputerowych.
Historia UUID
128-bitowe kody UUID zostały po raz pierwszy użyte przez amerykańską firmę Apollo Computer w latach 80. Były oparte na prostszych 64-bitowych kodach używanych w Domain/OS i znalazły szerokie zastosowanie w środowisku komputerowym Open Software Foundation.
Wraz z pojawieniem się pierwszych platform Windows globalnie unikatowy identyfikator został uogólniony i ustandaryzowany. Microsoft przejął projekt DCE od Apollo Computer i zarejestrował przestrzeń nazw URN w dokumencie RFC 4122. W 2005 r. ten ostatni został zaproponowany jako nowy standard przez IETF, a identyfikator UUID został znormalizowany w ramach ITU.
Wcześniej w 2002 r. zidentyfikowano problemy z wydajnością systemu podczas używania identyfikatorów UUID jako kluczy podstawowych w lokalnych bazach danych. Zostały one naprawione w wersji 4 przez dodanie nielosowego sufiksu opartego na czasie systemowym komputera. Tak zwane podejście COMB (Combined GUID Time Identifier) zwiększyło ryzyko duplikacji kodu, ale jednocześnie znacznie poprawiło wydajność podczas pracy z Microsoft SQL Server.
Wraz z rozwojem technologii informatycznych uniwersalny unikalny identyfikator przestał być wysoce wyspecjalizowanym narzędziem technicznym, a dziś każdy może z niego korzystać. Prawdopodobieństwo powtórzenia się wygenerowanych kodów nie jest równe zeru, ale dąży do niego, a każda informacja cyfrowa może być przez nie zidentyfikowana, po czym można je połączyć w pojedyncze tablice danych przy minimalnym ryzyku powtórzenia.
Korzyści z UUID
Generatory globalnych unikalnych kodów nie wymagają scentralizowanej rekoncyliacji/synchronizacji danych i są swobodnie dostępne dla wszystkich użytkowników. Główne zalety UUID to:
- Minimalne ryzyko „kolizji” (powtórzenia) kodów. Pomimo ich masowego użycia prawdopodobieństwo powtórzenia jest bliskie zeru.
- Możliwość łączenia różnych tablic danych przy użyciu identyfikatorów UUID jako kluczy podstawowych (unikatowych).
- Uproszczona dystrybucja danych na wielu rozproszonych serwerach.
- Możliwość generowania kodów offline.
Unikalne kody identyfikacyjne, zapisane w formacie xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx, umożliwiają rozproszonym systemom rozpoznawanie informacji bez koordynacji z jednego centrum danych: z niemal zerowym prawdopodobieństwem wystąpienia błędów/powtórzeń. Ta funkcja, wraz z łatwością użycia i niewielkimi wymaganiami dotyczącymi wydajności komputera, sprawia, że UUID jest poszukiwany i niezbędny w wielu różnych branżach IT i autonomicznych systemach komputerowych.