شناسه منحصربه‌فرد جهانی

یک شناسۀ یکتای جهانی یا شناسۀ منحصر به فرد جهانی (انگلیسی: Universally unique identifier) (مخفف: UUID) یک عدد ۱۲۸-بیتی است که برای شناسایی اطلاعات در سیستم‌های کامپیوتری استفاده می‌شود. به جای این اصطلاح، اصطلاح انگلیسی Globally unique identifier (مخفف: GUID) نیز به کار می‌رود.

اگر UUIDها طبق روش‌های استاندارد تولید شوند، بدون اینکه به یک نهاد ثبت‌کننده مرکزی یا هماهنگی با سایر تولیدکننده‌های UUID برای تأیید یکتایی نیاز داشته باشند، عملاً یکتا خواهند بود. این برخلاف بیشتر روش‌های دیگر است. گرچه احتمال اینکه یک UUID تکراری باشد، صفر نیست، اما آن‌قدر به صفر نزدیک است که می‌توان از آن چشم‌پوشی کرد.

بنابراین هر کسی می‌تواند یک UUID ایجاد کند و از آن برای شناسایی «چیزی» استفاده کند و اطمینان داشته باشد که UUIDای که تولید کرده‌است با UUIDهایی که قبلاً تولید شده یا پس از آن تولید خواهد شد، تداخلی ندارد. اطلاعاتی که به وسیله UUIDها توسط موجودیت‌های مستقل برچسب‌گذاری شده‌اند می‌توانند بعد با یکدیگر ادغام شده و در یک پایگاه داده قرار گیرند، بدون آنکه نیاز به از بردن تداخل‌های بین شناسه‌ها شود.

کاربرد UUIDها و GUIDها گسترده‌است و بسیاری از پلتفرم‌های محاسباتی از امکاناتی برای تولید آن‌ها و پارس کردن نمایش متنی UUIDها پشتیبانی می‌کنند.

قالب ویرایش

در شیوه متعارف نمایش متنی، شانزده بایت یک شناسه UUID توسط ۳۲ رقم هگزادسیمال (مبنای ۱۶) که در ۵ گروه که توسط خط فاصله از یکدیگر جدا شده‌اند، در قالب 8-4-4-4-12 که در مجموع ۳۶ کاراکتر (۳۲ کاراکتر الفبایی و چهار خط فاصله) را تشکیل می‌دهد، نشان داده می‌شوند. به عنوان مثال:

123e4567-e89b-12d3-a456-426655440000
xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx

چهار بیت از رقمی که با M نشان داده شده‌است، نسخه UUID و رقمی که با N نشان داده شده‌است، نوع UUID را مشخص می‌کند. در این مثال M، یک و N مقدار a (10 ده دهی) را نشان می‌دهد، به این معنی است که نوع UUID از نوع ۱، و نسخه آن نیز ۱ می‌باشد که طبق DCE/RFC4122 نوع UUID براساس زمان است.

قالب متعارف ۸-۴-۴-۴-۱۲ براساس "طرح بندی رکورد" برای UUIDهای ۱۶ بایتی است:

طرح بندی رکورد UUID
نام طول (بایت) طول (ارقام هگزادسیمال) محتوا
time_low ۴ ۸ عدد صحیحی که ۳۲ بیت پایینی زمان است
time_mid ۲ ۴ عدد صحیحی که ۱۶ بیت میانی زمان است
time_hi_and_version ۲ ۴ ۴ بیت پرارزش، نسخه را مشخص کرده و ۱۲ بیت دیگر ۱۲ بیت بالایی زمان است
clock_seq_hi_and_res clock_seq_low ۲ ۴ بیت‌های ۱ تا ۳ پرارزش نوع UUID و ۱۳ تا ۱۵ بیت باقی‌مانده دنباله ساعت است (clock sequence)
node ۶ ۱۲ شناسه گره ۴۸ بیتی

این فیلدها مربوط به نسخه‌های ۱ و 2 UUID که مبتنی بر زمان است، می‌باشد اما همان قالب ۸-۴-۴-۴-۱۲ برای همه UUIDها استفاده می‌شود.

GUIDهای مایکروسافت گاهی با استفاده از دوابرو نمایش داده می‌شوند:

{123e4567-e89b-12d3-a456-426655440000}

این قالب را نباید با "قالب رجیستری ویندوز" اشتباه شود.[۱]

RFC 4122 فضای نام Uniform Resource Name (مخفف: URN) برای UUIDها تعریف می‌کند. یک UUID به عنوان یک URN به شکل زیر است:

urn:uuid:123e4567-e89b-12d3-a456-426655440000

کدبندی ویرایش

کدبندی دودویی (انگلیس: binary encoding) UUIDها در سامانه‌های مختلف، متفاوت است. بسیاری از سامانه‌ها UUID را به صورت کامل در قالب big-endian کدبندی می‌کنند.

برای مثال 00112233-4455-6677-8899-aabbccddeeff به صورت بایت‌های 00 11 22 33 44 55 66 77 88 99 aa bb cc dd ee ff کدبندی می‌شود.

سامانه‌های دیگر به ویژه مارشال UUIDها در مایکروسافت در کتابخانه‌های COM/OLE از قالب mixed-endian استفاده می‌کنند که در آن ۳ مؤلفه اول UUID به صورت little-endian و دو مؤلفه آخری به صورت big-endian کدبندی می‌شوند.

برای مثال 00112233-4455-6677-8899-aabbccddeeff به صورت بایت‌های 33 22 11 00 55 44 77 66 88 99 aa bb cc dd ee ff کدبندی می‌شود.

گونه‌ها ویرایش

یکی از گونه‌های تعریف‌شده توسط RFC 4122, نوع ۰ (نشان داده شده با یک بیت الگوی 0xxx N=0..7) برای سازگاری با سیستم قدیمی circa 1988 که اکنون منسوخ شده‌است و قالب UUID 1.5 سامانه محاسبات شبکه‌ای آپولو (انگلیسی: Apollo Network Computing System) تعریف شده‌است. در این قالب، ۶ بایت اول زمان با طول ۴۸ بیت است (تعداد واحدهای ۴ میلی ثانیه از ۱ ژانیویه 1980 UTC). هفت بایت آخر یک شناسه میزبان (انگلیسی: host ID) 56-بیتی است. گرچه در جزئیات متفاوتند، شباهت گونه ۱ با گونه ۰ کاملاً مشهود است.</ref>

جستارهای وابسته ویرایش

منابع ویرایش

  1. "Registry Keys and Entries for a Type 1 Online Store". Microsoft Developer Network. Microsoft.

پیوند به بیرون ویرایش