Найширше застосування в комп'ютерних системах отримав універсальний унікальний ідентифікатор (UUID), також відомий під назвою «глобальний унікальний ідентифікатор» (GUID).
Він являє собою 128-бітовий код, який генерується системою на основі змінних і постійних величин: поточного часу, MAC-адреси, хеша SHA-1, простору імен MD5. Кінцевий результат генерації UUID, що відображається у вигляді 32-значного буквено-цифрового коду, розділеного дефісами, може здатися довільним, але насправді це результат складних обчислень. Так, комп'ютер не «вигадує» код, а формує його із конкретних технічних величин, актуальних на даний момент часу.
Вірогідність того, що на двох різних комп'ютерах у різний час буде згенерований однаковий UUID, прагне нуля, що дозволяє використовувати отримані коди для точкової/локальної ідентифікації даних без прив'язки до центру координації. Сьогодні UUID/GUID повсюдно застосовується як в онлайн, так і в офлайн-мережах, і ефективно працює не лише у глобальному інтернет-просторі, а й в автономних комп'ютерних системах.
Історія UUID
Вперше 128-бітові коди UUID почала використовувати американська компанія Apollo Computer у 1980-х роках. Вони були засновані на більш простих 64-бітових кодах, які застосовуються в Domain/OS, і знайшли широке застосування у обчислювальному середовищі Open Software Foundation.
З появою перших платформ Windows глобальний унікальний ідентифікатор був узагальнений і стандартизований. Компанія Microsoft прийняла дизайн DCE від Apollo Computer і зареєструвала простір імен URN в RFC 4122. У 2005 році останній був запропонований як новий стандарт IETF, і UUID стандартизували в рамках ITU.
Раніше - у 2002 році - при використанні UUID як первинних ключів у локальних базах даних були виявлені проблеми з продуктивністю системи. Вони були усунені у четвертій версії додаванням невипадкового суфікса, що базується на системному часі комп'ютера. Так званий підхід COMB (комбінований ідентифікатор часу GUID) збільшив ризики дублювання кодів, але водночас суттєво підвищив продуктивність при роботі з Microsoft SQL Server.
З розвитком IT-технологій універсальний унікальний ідентифікатор перестав бути вузькоспеціальним технічним інструментом, і сьогодні ним можуть користуватися всі охочі. Імовірність повторення згенерованих кодів не дорівнює нулю, але прагне до нього, і ідентифікувати ними можна будь-яку цифрову інформацію, після чого поєднувати її в єдині масиви даних з мінімальними ризиками повторів.
Переваги UUID
Генератори глобальних унікальних кодів не потребують централізованої звірки/синхронізації даних та поширюються у вільному доступі для всіх користувачів. До головних переваг UUID можна віднести:
- Мінімальні ризики зіткнення (повторення) кодів. Незважаючи на їхнє масове застосування, ймовірність повторів прагне нуля.
- Можливість об'єднувати різні масиви даних, використовуючи UUID як первинні (унікальні) ключі.
- Спрощений розподіл даних по кількох рознесених серверах.
- Можливість створення кодів в автономному режимі.
Унікальні ідентифікаційні коди, що записуються у форматі xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx, дозволяють рознесеним системам розпізнавати інформацію без координування з єдиного data-центру: при практично нульовій ймовірності помилок/повторів. Ця особливість, поряд з простотою застосування і невеликими вимогами до продуктивності комп'ютерів, робить UUID затребуваною і незамінною в різних галузях IT і автономних обчислювальних систем.