URN — resource’ni uning tarmoqdagi joriy joylashuvidan mustaqil va barqaror nom bilan identifikatsiya qilishga qaratilgan URI turi. To‘liq nomi Uniform Resource Name. URN resource qayerda ekanini emas, u qanday nomlanganini ifodalaydi.
URL odatda resource’ga qanday yoki qayerdan murojaat qilishni ko‘rsatsa, URN persistent identity yaratishga intiladi.
Umumiy yozuv
URN quyidagi asosiy ko‘rinishga ega:
urn:nid:nss
Bu yerda:
Misol:
urn:isbn:9780000000000
Aniq sintaksis namespace qoidalariga bog‘liq.
Namespace Identifier
NID qaysi identifikatsiya tizimi ishlatilayotganini ko‘rsatadi.
Misollar:
- ISBN;
- UUID;
- IETFga oid namespace;
- tashkilotga tegishli registered namespace.
NID kichik va katta harf bo‘yicha comparison qoidalariga ega bo‘lishi mumkin.
Namespace-Specific String
NSS ayni namespace ichidagi resource nomi.
ISBN namespace’da u kitob identifikatori bo‘lishi mumkin.
UUID namespace’da UUID qiymati.
NSS sintaksisi, case va normalization qoidasi namespace specificationida belgilanadi.
Persistent nom
URNning maqsadi resource ko‘chsa ham identifikatorni saqlash.
Masalan, document boshqa serverga o‘tsa URL o‘zgarishi mumkin, URN esa ayni resource’ni nomlashda qoladi.
Buning uchun namespace boshqaruvi va identifikatorni qayta ishlatmaslik siyosati zarur.
Resolution
URN o‘zi har doim resource’ni bevosita olib kelmaydi.
Uni URL, metadata yoki service’ga resolve qilish uchun alohida katalog yoki resolver kerak bo‘lishi mumkin.
Resolution:
URN
→ registry
→ current URL yoki metadata
ko‘rinishida ishlashi ehtimoli bor.
ISBN
Kitoblar uchun ISBN URNga joylashtirilishi mumkin.
Bu identifikator nashrga tegishli.
Kitobning qaysi do‘konda yoki serverda joylashgani o‘zgarsa ham ISBN semantikasi saqlanadi.
URL esa aniq katalog sahifasiga olib borishi mumkin.
UUID URN
UUID URN ko‘rinishida yozilishi mumkin:
urn:uuid:123e4567-e89b-12d3-a456-426614174000
Bu UUIDni URI tizimida global identifikator sifatida ifodalaydi.
UUIDning unique bo‘lish xususiyati uning qanday yaratilganiga bog‘liq.
Namespace boshqaruvi
Persistent identifikator uchun:
- kim ID beradi;
- uniqueness;
- qayta ishlatish;
- format;
- lifecycle;
- authority;
- documentation
aniq bo‘lishi kerak.
Noto‘g‘ri boshqarilgan namespace URNning barqarorlik maqsadini buzadi.
Lexical equivalence
Ikki URN text bo‘yicha turlicha, ammo namespace qoidalariga ko‘ra bir xil bo‘lishi mumkin.
Case, percent-encoding va separatorlar comparisonga ta’sir qiladi.
Universal string lowercase qilish barcha namespace uchun to‘g‘ri emas.
Percent-encoding
URN ichida ayrim byte’lar percent-encoded bo‘lishi mumkin.
Parser reserved va allowed belgilar qoidalariga amal qiladi.
Bir xil qiymatning turli encoding ko‘rinishi canonicalization masalasini keltiradi.
Queryga o‘xshash komponentlar
Zamonaviy URN sintaksisida namespace-specific qismdan tashqari resolution yoki resourcega oid qo‘shimcha komponentlar bo‘lishi mumkin.
Ularning ma’nosi oddiy HTTP query bilan aynan bir xil emas.
Parser umumiy URI va URN qoidalarini alohida hisobga oladi.
Fragment
URN fragmentga ega bo‘lishi mumkin:
urn:example:document#section
Fragment asosiy resource ichidagi secondary resource’ni ko‘rsatishi mumkin.
Aniq semantika media type yoki applicationga bog‘liq.
URN va URL
URL:
- location;
- access mechanism;
- network route.
URN:
- persistent name;
- namespace;
- locationdan mustaqillik.
Amalda bitta resource bir nechta URL va bitta persistent URNga ega bo‘lishi mumkin.
URN va DOI
DOI persistent digital object identifikatori sifatida ishlatiladi va resolver orqali URLga olib borishi mumkin.
U URNga o‘xshash maqsadga ega, lekin o‘z alohida governance va resolution ekotizimiga ega.
Barcha persistent IDlar majburiy ravishda urn: scheme’da yozilmaydi.
Metadata
URN faqat nom bo‘lishi mumkin.
Resource title, author, format, version yoki URL alohida metadata registry’da saqlanadi.
Metadata yangilansa identifikator o‘zgarmasligi mumkin.
Ammo yangi edition yoki boshqa semantic resource uchun yangi ID talab qilinadi.
Version
Bir documentning yangi versiyasi ayni resource deb qaraladimi yoki yangi resource deb qaraladimi — namespace policy hal qiladi.
Versionni URN ichida kodlash yoki metadata’da saqlash mumkin.
Persistent identity ma’nosi oldindan aniq bo‘ladi.
Security
URN foydalanuvchini avtomatik xavfsiz resource’ga olib bormaydi.
Resolver compromise bo‘lsa URN noto‘g‘ri URLga yo‘naltirilishi mumkin.
Shu sababli:
muhim.
Amaliy qo‘llanish
URN quyidagi sohalarda foydali:
- nashr identifikatori;
- standard document;
- package yoki object identity;
- distributed systemdagi global ID;
- metadata katalogi;
- messaging namespace.
Location tez-tez o‘zgaradigan, ammo identity barqaror qoladigan resource’larda qiymati yuqori.
Identifikatorni qayta ishlatmaslik
Persistent namespace’da bekor qilingan nom boshqa resource’ga berilmasligi kerak. Aks holda eski citation, cache va metadata yangi obyektga noto‘g‘ri bog‘lanadi. Resource yo‘qolsa registry uning holatini “deprecated” yoki “tombstone” sifatida saqlashi mumkin.
Delegatsiya
Katta tashkilot namespace ichidagi subspace’larni bo‘limlarga delegatsiya qilishi mumkin. Har bo‘lim uniqueness va naming policy’ga rioya qiladi. Markaziy authority collision va ownership o‘zgarishini boshqaradi.
Resolution cache
URN resolver natijasi cache qilinishi mumkin. URL o‘zgarsa TTL tugashi yoki explicit invalidationgacha eski manzil ishlatilishi ehtimoli bor. Resolver redirect va metadata versionini to‘g‘ri qaytaradi.
Audit
Namespace’da yangi identifikator berish, ownershipni o‘zgartirish va resolver mappingini yangilash audit logida saqlanadi.
Bog‘liq tushunchalar
Uniform Resource Name, URI, URL, Namespace Identifier, Namespace-Specific String, Persistent identifier, ISBN, UUID, Resolver, Metadata registry