Широчайшее применение в компьютерных системах получил универсальный уникальный идентификатор (UUID, universally unique identifier), также известный под названием «глобальный уникальный идентификатор» (GUID, globally unique identifier).
Он представляет собой 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 и автономных вычислительных систем.