مختلف ایپلیکیشنز کے لیے یونیورسل یونیک آئیڈینٹیفائرز (یو یو آئی ڈیز) تیار کریں۔ تقسیم شدہ نظاموں، ڈیٹا بیسز، اور دیگر کے لیے ورژن 1 (وقت پر مبنی) اور ورژن 4 (بے ترتیب) یو یو آئی ڈیز بنائیں۔
ایک یونیورسل یونیق آئیڈینٹیفائر (UUID) ایک 128 بٹ نمبر ہے جو کمپیوٹر سسٹمز میں معلومات کی شناخت کے لیے استعمال ہوتا ہے۔ UUIDs کو اوپن سافٹ ویئر فاؤنڈیشن (OSF) کی طرف سے ڈسٹریبیوٹڈ کمپیوٹنگ ماحول (DCE) کے ایک حصے کے طور پر معیاری بنایا گیا ہے۔ یہ شناخت کنندہ خلا اور وقت دونوں میں منفرد ہونے کے لیے ڈیزائن کیے گئے ہیں، جو انہیں تقسیم شدہ نظاموں اور اس سے آگے مختلف ایپلی کیشنز کے لیے مثالی بناتا ہے۔
یہ UUID جنریٹر ٹول آپ کو ورژن 1 (وقت کی بنیاد پر) اور ورژن 4 (بے ترتیب) UUIDs بنانے کی اجازت دیتا ہے۔ یہ شناخت کنندہ مختلف منظرناموں میں مفید ہیں جہاں منفرد شناخت کی ضرورت ہوتی ہے، جیسے کہ ڈیٹا بیس کی چابیاں، تقسیم شدہ نظام، اور نیٹ ورک پروٹوکول۔
ایک UUID عام طور پر 32 ہیکساڈیسمل اعداد و شمار کے طور پر پیش کیا جاتا ہے، جو پانچ گروپوں میں ہائفنز سے الگ کیے جاتے ہیں، 8-4-4-4-12 کی شکل میں کل 36 کردار (32 عددی کردار اور 4 ہائفنز) کے لیے۔ مثال کے طور پر:
1550e8400-e29b-41d4-a716-446655440000
2
UUID کے 128 بٹس مخصوص میدانوں میں تقسیم کیے گئے ہیں، ہر ایک UUID کے ورژن کے لحاظ سے مختلف معلومات رکھتا ہے:
یہاں UUID کے ڈھانچے کی وضاحت کرنے والی ایک ڈایاگرام ہے:
UUIDs کے کئی ورژن ہیں، ہر ایک کی اپنی نسل کا طریقہ ہے:
یہ ٹول ورژن 1 اور ورژن 4 UUIDs تیار کرنے پر توجہ مرکوز کرتا ہے۔
ورژن 1 UUIDs درج ذیل اجزاء کا استعمال کرتے ہوئے تیار کیے جاتے ہیں:
ورژن 1 UUID تیار کرنے کے لیے فارمولا اس طرح بیان کیا جا سکتا ہے:
1UUID = (timestamp * 2^64) + (clock_sequence * 2^48) + node
2
ورژن 4 UUIDs ایک کریپٹوگرافک طور پر مضبوط بے ترتیب نمبر جنریٹر کا استعمال کرتے ہوئے تیار کیے جاتے ہیں۔ فارمولا بس یہ ہے:
1UUID = random_128_bit_number
2
خاص بٹس ورژن (4) اور مختلف قسم کو ظاہر کرنے کے لیے سیٹ کیے گئے ہیں۔
UUIDs کمپیوٹر سائنس اور سافٹ ویئر انجینئرنگ کے مختلف شعبوں میں بے شمار ایپلی کیشنز رکھتے ہیں:
ڈیٹا بیس کی چابیاں: UUIDs اکثر ڈیٹا بیس میں بنیادی چابیوں کے طور پر استعمال ہوتے ہیں، خاص طور پر تقسیم شدہ نظاموں میں جہاں متعدد نوڈز بیک وقت ریکارڈ تیار کر سکتے ہیں۔
تقسیم شدہ نظام: بڑے پیمانے پر تقسیم شدہ نظاموں میں، UUIDs وسائل، لین دین، یا واقعات کی منفرد شناخت میں مدد کرتے ہیں۔
مواد کی ایڈریسنگ: UUIDs کو مواد کے لیے منفرد شناخت کنندے بنانے کے لیے استعمال کیا جا سکتا ہے جو مواد ایڈریس ایبل اسٹوریج سسٹمز میں ہیں۔
سیشن مینجمنٹ: ویب ایپلیکیشنز اکثر صارف کے سیشن کو منظم کرنے کے لیے UUIDs کا استعمال کرتی ہیں، یہ یقینی بناتے ہوئے کہ ہر سیشن کے پاس ایک منفرد شناخت کنندہ ہو۔
IoT ڈیوائس کی شناخت: انٹرنیٹ آف تھنگز (IoT) کی ایپلی کیشنز میں، UUIDs کو نیٹ ورک میں انفرادی ڈیوائسز کی منفرد شناخت کے لیے استعمال کیا جا سکتا ہے۔
اگرچہ UUIDs وسیع پیمانے پر استعمال ہوتے ہیں، منفرد شناخت کنندے تیار کرنے کے لیے متبادل طریقے بھی ہیں:
خودکار بڑھتے ہوئے IDs: سادہ اور واحد ڈیٹا بیس کے نظاموں میں عام طور پر استعمال ہوتا ہے، لیکن تقسیم شدہ ماحول کے لیے موزوں نہیں ہے۔
ٹائم اسٹیمپ پر مبنی IDs: وقت کے لحاظ سے ترتیب دیئے گئے ڈیٹا کے لیے مفید ہو سکتے ہیں لیکن اعلیٰ ہم وقتی منظرناموں میں تصادم کے مسائل کا سامنا کر سکتے ہیں۔
اسنو فلاکے IDs: ٹویٹر کے ذریعہ تیار کردہ، یہ IDs ٹائم اسٹیمپ اور ورکنگ نمبر کو ملا کر تقسیم شدہ نظاموں میں منفرد IDs تیار کرتی ہیں۔
ULID (یونیورسل یونیق لیسیکوگرافکلی سورت ایبل آئیڈینٹیفائر): ایک حالیہ متبادل جو UUIDs سے زیادہ انسانی دوستانہ اور ترتیب دینے کے قابل ہونے کا مقصد رکھتا ہے۔
UUIDs کا تصور پہلے ایپولو نیٹ ورک کمپیوٹنگ سسٹم میں متعارف کرایا گیا اور بعد میں 1990 کی دہائی میں اوپن سافٹ ویئر فاؤنڈیشن (OSF) کی طرف سے معیاری بنایا گیا۔ ابتدائی وضاحت 1997 میں ISO/IEC 11578:1996 کے طور پر شائع ہوئی اور بعد میں 2005 میں ISO/IEC 9834-8:2005 کے حصے کے طور پر نظر ثانی کی گئی۔
UUID کی تاریخ میں اہم سنگ میل:
وقت کے ساتھ، UUIDs تقسیم شدہ نظاموں اور ڈیٹا بیس کے ڈیزائن میں ایک لازمی ٹول بن چکے ہیں، مختلف پروگرامنگ زبانوں اور پلیٹ فارمز میں مختلف نفاذ اور موافقت کے ساتھ۔
یہاں مختلف پروگرامنگ زبانوں میں UUIDs تیار کرنے کے مثالیں ہیں:
1import uuid
2
3## ورژن 4 (بے ترتیب) UUID تیار کریں
4random_uuid = uuid.uuid4()
5print(f"ورژن 4 UUID: {random_uuid}")
6
7## ورژن 1 (وقت کی بنیاد پر) UUID تیار کریں
8time_based_uuid = uuid.uuid1()
9print(f"ورژن 1 UUID: {time_based_uuid}")
10
1const { v1: uuidv1, v4: uuidv4 } = require('uuid');
2
3// ورژن 4 (بے ترتیب) UUID تیار کریں
4const randomUuid = uuidv4();
5console.log(`ورژن 4 UUID: ${randomUuid}`);
6
7// ورژن 1 (وقت کی بنیاد پر) UUID تیار کریں
8const timeBasedUuid = uuidv1();
9console.log(`ورژن 1 UUID: ${timeBasedUuid}`);
10
1import java.util.UUID;
2
3public class UuidGenerator {
4 public static void main(String[] args) {
5 // ورژن 4 (بے ترتیب) UUID تیار کریں
6 UUID randomUuid = UUID.randomUUID();
7 System.out.println("ورژن 4 UUID: " + randomUuid);
8
9 // ورژن 1 (وقت کی بنیاد پر) UUID تیار کریں
10 UUID timeBasedUuid = UUID.fromString(new com.eaio.uuid.UUID().toString());
11 System.out.println("ورژن 1 UUID: " + timeBasedUuid);
12 }
13}
14
1require 'securerandom'
2
3## ورژن 4 (بے ترتیب) UUID تیار کریں
4random_uuid = SecureRandom.uuid
5puts "ورژن 4 UUID: #{random_uuid}"
6
7## Ruby میں ورژن 1 UUIDs کے لیے کوئی بلٹ ان طریقہ نہیں ہے
8## آپ کو اس کے لیے 'uuidtools' جیسی جیم کا استعمال کرنا ہوگا
9
1<?php
2// ورژن 4 (بے ترتیب) UUID تیار کریں
3$randomUuid = sprintf('%04x%04x-%04x-%04x-%04x-%04x%04x%04x',
4 mt_rand(0, 0xffff), mt_rand(0, 0xffff),
5 mt_rand(0, 0xffff),
6 mt_rand(0, 0x0fff) | 0x4000,
7 mt_rand(0, 0x3fff) | 0x8000,
8 mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0xffff)
9);
10echo "ورژن 4 UUID: " . $randomUuid . "\n";
11
12// PHP میں ورژن 1 UUIDs کے لیے کوئی بلٹ ان طریقہ نہیں ہے
13// آپ کو اس کے لیے 'ramsey/uuid' جیسی لائبریری کا استعمال کرنا ہوگا
14?>
15
آپ کے ورک فلو کے لیے مفید ہونے والے مزید ٹولز کا انعام کریں