Генератор Уникальных значений GUID

Генератор GUID позволяет АВТОНОМНО создавать УНИКАЛЬНЫЕ значения на ИЗОЛИРОВАННЫХ информационных уровнях с быстродействием до 10000 значений в секунду. Полученные значения упакованы в 8 (или 10) байт, упорядочиваются по возрастанию в хронологическом порядке создания и имеют возможность восстановления даты создания. Удобный способ создания ПЕРВИЧНЫХ КЛЮЧЕЙ. 19.11.2001 добавлены функции TimFromGuid() и SecFromGuid().

Генератор Уникальных значений GUID

Известен метод получения GUID, разработанный фирмой Microsoft , Contributions by John Desch. Этот метод создает неупакованное значение GUID длиной в 38 байт, и декларирует наличие защиты от дублирования значений на изолированных системах при автономном вызове функции '... returns a unique value: that is, no other invocation, on the same or any other system (networked or not), should return the same value...'.

Предлагаемый здесь улучшенный метод получения компактного надежного GUID для изолированных систем строит упакованное значение длиной в 8 или 10 байт, имеет открытую описанную физическую модель построения. Значение создается на основе следующих компонент:

  • Временных отметок (вместимость до 20 лет),
  • Идентификтатора программной Сессии и Аппаратного идентификатора (HDD),
  • (Опционально) дополнительного кода от генератора случайных чисел (10-байтовый GUID).

Для реального использования достаточен вариант 8-байтового GUID, т.к. вероятность дублирования значения на той же микросекунде после сдвига часов хотя и ненулевая, но мизерно мала. Улучшенный 10-байтовый метод (с доп. случайным кодом) сводит такую вероятность фактически к нулю, хотя требует дополнительно два байта в значении.

В значении GUID используются только неконфликтующие символы ASCII, доступные для ввода с клавиатуры. Метод генерации является базовым в проекте DBRAD32 (www.dbrad32.narod.ru) при создании первичных ключей, классов справочников, отношений, подсвеченных строк в локальных сессиях, идентификаторов объектов и т.п. Надежность метода проверена на протяжении 5-ти лет.

Приложенный файл архива guid.zip содержит два файла - guid.doc (комментарий)и guid.prg (исходный код функций). Для проверки достаточно просто запустить guid.prg. Для использования генератора GUID в своем приложении необходимо скопировать в него текст функций, в начале приложения инициализировать генератор однократным вызовом функции IniGenGuid() и затем получать значение GUID вызовом функции Guid(). Функции DatFromGuid() и TimFromGuid() позволят получить дату и время создания значения.

Автор: Дм.Баянов

Автор публикации

не в сети 11 месяцев

admin

0
Комментарии: 0Публикации: 107Регистрация: 10-12-2000
0
Вложенные файлы
#
Тип файла
Размер
Название
1 .zip 15,42 КБ 181guid
Оставить комментарий
Авторизация
*
*
Генерация пароля