UUID জেনারেটর
উৎপন্ন UUID
UUID জেনারেটর
ভূমিকা
একটি ইউনিভার্সালি ইউনিক আইডেন্টিফায়ার (UUID) হল একটি 128-বিট সংখ্যা যা কম্পিউটার সিস্টেমে তথ্য চিহ্নিত করতে ব্যবহৃত হয়। UUID গুলি ওপেন সফটওয়্যার ফাউন্ডেশন (OSF) দ্বারা বিতরণকৃত কম্পিউটিং পরিবেশ (DCE) এর অংশ হিসেবে মানকীকৃত। এই শনাক্তকারী গুলি স্থান এবং সময় উভয় ক্ষেত্রেই অনন্য হওয়ার জন্য ডিজাইন করা হয়েছে, যা এগুলিকে বিতরণকৃত সিস্টেম এবং তার বাইরের বিভিন্ন অ্যাপ্লিকেশনের জন্য আদর্শ করে তোলে।
এই UUID জেনারেটর টুলটি আপনাকে সংস্করণ 1 (সময়-ভিত্তিক) এবং সংস্করণ 4 (র্যান্ডম) UUID তৈরি করতে দেয়। এই শনাক্তকারী গুলি বিভিন্ন পরিস্থিতিতে অনন্য চিহ্নিতকরণের প্রয়োজন যেখানে যেমন ডেটাবেস কী, বিতরণকৃত সিস্টেম এবং নেটওয়ার্ক প্রোটোকল।
UUID কিভাবে কাজ করে
UUID গঠনতন্ত্র
একটি UUID সাধারণত 32টি হেক্সাডেসিমাল ডিজিট হিসাবে উপস্থাপিত হয়, যা পাঁচটি গ্রুপে বিভক্ত এবং হাইফেন দ্বারা আলাদা করা হয়, 8-4-4-4-12 আকারে মোট 36টি অক্ষর (32টি অ্যালফানিউমেরিক অক্ষর এবং 4টি হাইফেন) প্রদর্শিত হয়। উদাহরণস্বরূপ:
550e8400-e29b-41d4-a716-446655440000
একটি UUID এর 128 বিট নির্দিষ্ট ক্ষেত্রগুলিতে বিভক্ত করা হয়, প্রতিটি UUID সংস্করণের উপর নির্ভর করে বিভিন্ন তথ্য বহন করে:
- 32 বিট সময়_low ক্ষেত্রের জন্য
- 16 বিট সময়_mid ক্ষেত্রের জন্য
- 16 বিট সময়_hi_and_version ক্ষেত্রের জন্য
- 8 বিট ক্লক_seq_hi_and_reserved ক্ষেত্রের জন্য
- 8 বিট ক্লক_seq_low ক্ষেত্রের জন্য
- 48 বিট নোড ক্ষেত্রের জন্য
এখানে UUID গঠনতন্ত্রের একটি চিত্র:
UUID সংস্করণ
UUID এর কয়েকটি সংস্করণ রয়েছে, প্রতিটির নিজস্ব উত্পাদন পদ্ধতি রয়েছে:
- সংস্করণ 1 (সময়-ভিত্তিক): বর্তমান টাইমস্ট্যাম্প এবং কম্পিউটারের MAC ঠিকানা ব্যবহার করে।
- সংস্করণ 2 (DCE নিরাপত্তা): সংস্করণ 1 এর মতো, তবে একটি স্থানীয় ডোমেন শনাক্তকারী অন্তর্ভুক্ত করে।
- সংস্করণ 3 (নাম-ভিত্তিক, MD5): একটি নামস্থান শনাক্তকারী এবং নাম হ্যাশিং দ্বারা উত্পন্ন হয়।
- সংস্করণ 4 (র্যান্ডম): একটি র্যান্ডম বা পseudo-র্যান্ডম সংখ্যা ব্যবহার করে উত্পন্ন হয়।
- সংস্করণ 5 (নাম-ভিত্তিক, SHA-1): সংস্করণ 3 এর মতো, তবে SHA-1 হ্যাশিং ব্যবহার করে।
এই টুলটি সংস্করণ 1 এবং সংস্করণ 4 UUID তৈরি করতে কেন্দ্রিত।
সূত্র
সংস্করণ 1 UUID উত্পাদন
সংস্করণ 1 UUID গুলি নিম্নলিখিত উপাদানগুলি ব্যবহার করে উত্পন্ন হয়:
- টাইমস্ট্যাম্প: একটি 60-বিট মান যা 1582 সালের 15 অক্টোবর (খ্রিস্টান ক্যালেন্ডারের গ্রেগরীয় সংস্করণের তারিখ) থেকে 100-ন্যানোসেকেন্ডের অন্তরালের সংখ্যা উপস্থাপন করে।
- ক্লক সিকোয়েন্স: একটি 14-বিট মান যা ঘড়ি পিছনে সেট হলে ডুপ্লিকেটগুলি এড়াতে ব্যবহৃত হয়।
- নোড: একটি 48-বিট মান, যা সাধারণত কম্পিউটারের MAC ঠিকানা থেকে নেওয়া হয়।
সংস্করণ 1 UUID তৈরি করার সূত্রটি নিম্নরূপ প্রকাশ করা যেতে পারে:
UUID = (timestamp * 2^64) + (clock_sequence * 2^48) + node
সংস্করণ 4 UUID উত্পাদন
সংস্করণ 4 UUID গুলি একটি ক্রিপ্টোগ্রাফিকভাবে শক্তিশালী র্যান্ডম নম্বর জেনারেটর ব্যবহার করে উত্পন্ন হয়। সূত্রটি সহজ:
UUID = random_128_bit_number
নির্দিষ্ট বিটগুলি সংস্করণ (4) এবং ভেরিয়েন্ট নির্দেশ করতে সেট করা হয়।
ব্যবহার ক্ষেত্র
UUID এর বিভিন্ন কম্পিউটার বিজ্ঞান এবং সফটওয়্যার প্রকৌশলের ক্ষেত্রে অসংখ্য অ্যাপ্লিকেশন রয়েছে:
-
ডেটাবেস কী: UUID গুলি প্রায়ই ডেটাবেসে প্রাথমিক কী হিসাবে ব্যবহৃত হয়, বিশেষ করে বিতরণকৃত সিস্টেমে যেখানে একাধিক নোড একসাথে রেকর্ড তৈরি করতে পারে।
-
বিতরণকৃত সিস্টেম: বৃহৎ স্কেলের বিতরণকৃত সিস্টেমে, UUID গুলি একাধিক নোড বা ডেটা কেন্দ্রের মধ্যে সম্পদ, লেনদেন, বা ঘটনাগুলিকে অনন্যভাবে চিহ্নিত করতে সহায়তা করে।
-
কন্টেন্ট অ্যাড্রেসিং: UUID গুলি কন্টেন্ট-অ্যাড্রেসেবল স্টোরেজ সিস্টেমে কন্টেন্টের জন্য অনন্য শনাক্তকারী তৈরি করতে ব্যবহৃত হতে পারে।
-
সেশন ব্যবস্থাপনা: ওয়েব অ্যাপ্লিকেশনগুলি প্রায়ই UUID গুলি ব্যবহার করে ব্যবহারকারীর সেশন পরিচালনা করতে, নিশ্চিত করে যে প্রতিটি সেশনের একটি অনন্য শনাক্তকারী রয়েছে।
-
IoT ডিভাইস শনাক্তকরণ: ইন্টারনেট অফ থিংস (IoT) অ্যাপ্লিকেশনগুলিতে, UUID গুলি একটি নেটওয়ার্কে পৃথক ডিভাইসগুলিকে অনন্যভাবে চিহ্নিত করতে ব্যবহৃত হতে পারে।
বিকল্পগুলি
যদিও UUID গুলি ব্যাপকভাবে ব্যবহৃত হয়, তবে অনন্য শনাক্তকারী তৈরি করার জন্য বিকল্প পদ্ধতিগুলি রয়েছে:
-
অটো-ইনক্রিমেন্টিং আইডি: একক-ডেটাবেস সিস্টেমে সাধারণ এবং সাধারণভাবে ব্যবহৃত, তবে বিতরণকৃত পরিবেশের জন্য উপযুক্ত নয়।
-
টাইমস্ট্যাম্প-ভিত্তিক আইডি: সময়-অর্ডার করা ডেটার জন্য উপকারী হতে পারে তবে উচ্চ-সমান্তরালে সংঘর্ষের সমস্যার সম্মুখীন হতে পারে।
-
স্নোফ্লেক আইডি: টুইটারের দ্বারা তৈরি, এই আইডিগুলি টাইমস্ট্যাম্প এবং কর্মী নম্বরকে একত্রিত করে বিতরণকৃত সিস্টেমে অনন্য আইডি তৈরি করতে।
-
ULID (ইউনিভার্সালি ইউনিক লেক্সিকোগ্রাফিক্যালি সর্টেবল আইডেন্টিফায়ার): UUID এর চেয়ে বেশি মানব-বান্ধব এবং সর্টেবল হওয়ার লক্ষ্য নিয়ে একটি সাম্প্রতিক বিকল্প।
ইতিহাস
UUID ধারণাটি প্রথম অ্যাপোলো নেটওয়ার্ক কম্পিউটিং সিস্টেমে পরিচIntroduced হয়েছিল এবং পরে 1990 এর দশকে ওপেন সফটওয়্যার ফাউন্ডেশন (OSF) দ্বারা মানকীকৃত হয়েছিল। প্রাথমিক স্পেসিফিকেশনটি 1997 সালে ISO/IEC 11578:1996 হিসাবে প্রকাশিত হয়েছিল এবং পরে 2005 সালে ISO/IEC 9834-8:2005 এর অংশ হিসেবে সংশোধিত হয়েছিল।
UUID ইতিহাসে মূল মাইলফলকগুলি:
- 1980 এর দশক: অ্যাপোলো কম্পিউটার তাদের নেটওয়ার্ক কম্পিউটিং সিস্টেমের জন্য UUID ধারণাটি বিকাশ করে।
- 1997: প্রথম UUID স্পেসিফিকেশন ISO/IEC 11578:1996 হিসাবে প্রকাশিত হয়।
- 2005: UUID স্পেসিফিকেশন সংশোধিত এবং ISO/IEC 9834-8:2005 এর অংশ হিসেবে প্রকাশিত হয়।
- 2009: RFC 4122 UUID ফরম্যাট এবং বর্তমান ব্যবহৃত উত্পাদন অ্যালগরিদম সংজ্ঞায়িত করে।
সময়ের সাথে সাথে, UUID গুলি বিতরণকৃত সিস্টেম এবং ডেটাবেস ডিজাইনে একটি অপরিহার্য টুল হয়ে উঠেছে, বিভিন্ন প্রোগ্রামিং ভাষা এবং প্ল্যাটফর্ম জুড়ে বিভিন্ন বাস্তবায়ন এবং অভিযোজনের সাথে।
কোড উদাহরণ
বিভিন্ন প্রোগ্রামিং ভাষায় UUID তৈরি করার উদাহরণ এখানে দেওয়া হল:
import uuid
## একটি সংস্করণ 4 (র্যান্ডম) UUID তৈরি করুন
random_uuid = uuid.uuid4()
print(f"সংস্করণ 4 UUID: {random_uuid}")
## একটি সংস্করণ 1 (সময়-ভিত্তিক) UUID তৈরি করুন
time_based_uuid = uuid.uuid1()
print(f"সংস্করণ 1 UUID: {time_based_uuid}")
রেফারেন্স
- Leach, P., Mealling, M., & Salz, R. (2005). A Universally Unique IDentifier (UUID) URN Namespace. RFC 4122. https://tools.ietf.org/html/rfc4122
- আন্তর্জাতিক মান সংস্থা। (2005). তথ্য প্রযুক্তি - ওপেন সিস্টেম ইন্টারকানেকশন - OSI নিবন্ধন কর্তৃপক্ষের কার্যক্রমের জন্য পদ্ধতি: ইউনিভার্সালি ইউনিক আইডেন্টিফায়ার (UUID) তৈরি এবং নিবন্ধন এবং তাদের ASN.1 অবজেক্ট আইডেন্টিফায়ার উপাদান হিসাবে ব্যবহারের জন্য। ISO/IEC 9834-8:2005. https://www.iso.org/standard/62795.html
- ইউনিভার্সালি ইউনিক আইডেন্টিফায়ার। (2023). উইকিপিডিয়ায়। https://en.wikipedia.org/wiki/Universally_unique_identifier
- স্নোফ্লেক আইডি। (2023). উইকিপিডিয়ায়। https://en.wikipedia.org/wiki/Snowflake_ID
- ULID স্পেস। (n.d.). গিটহাব। https://github.com/ulid/spec