বিভিন্ন অ্যাপ্লিকেশনের জন্য ইউনিভার্সালি ইউনিক আইডেন্টিফায়ার (UUID) তৈরি করুন। বিতরণকৃত সিস্টেম, ডেটাবেস এবং আরও অনেক কিছুর জন্য সংস্করণ 1 (সময়-ভিত্তিক) এবং সংস্করণ 4 (র্যান্ডম) UUID উভয়ই তৈরি করুন।
একটি ইউনিভার্সালি ইউনিক আইডেন্টিফায়ার (UUID) হল একটি 128-বিট সংখ্যা যা কম্পিউটার সিস্টেমে তথ্য চিহ্নিত করতে ব্যবহৃত হয়। UUID গুলি ওপেন সফটওয়্যার ফাউন্ডেশন (OSF) দ্বারা বিতরণকৃত কম্পিউটিং পরিবেশ (DCE) এর অংশ হিসেবে মানকীকৃত। এই শনাক্তকারী গুলি স্থান এবং সময় উভয় ক্ষেত্রেই অনন্য হওয়ার জন্য ডিজাইন করা হয়েছে, যা এগুলিকে বিতরণকৃত সিস্টেম এবং তার বাইরের বিভিন্ন অ্যাপ্লিকেশনের জন্য আদর্শ করে তোলে।
এই UUID জেনারেটর টুলটি আপনাকে সংস্করণ 1 (সময়-ভিত্তিক) এবং সংস্করণ 4 (র্যান্ডম) UUID তৈরি করতে দেয়। এই শনাক্তকারী গুলি বিভিন্ন পরিস্থিতিতে অনন্য চিহ্নিতকরণের প্রয়োজন যেখানে যেমন ডেটাবেস কী, বিতরণকৃত সিস্টেম এবং নেটওয়ার্ক প্রোটোকল।
একটি UUID সাধারণত 32টি হেক্সাডেসিমাল ডিজিট হিসাবে উপস্থাপিত হয়, যা পাঁচটি গ্রুপে বিভক্ত এবং হাইফেন দ্বারা আলাদা করা হয়, 8-4-4-4-12 আকারে মোট 36টি অক্ষর (32টি অ্যালফানিউমেরিক অক্ষর এবং 4টি হাইফেন) প্রদর্শিত হয়। উদাহরণস্বরূপ:
1550e8400-e29b-41d4-a716-446655440000
2
একটি UUID এর 128 বিট নির্দিষ্ট ক্ষেত্রগুলিতে বিভক্ত করা হয়, প্রতিটি UUID সংস্করণের উপর নির্ভর করে বিভিন্ন তথ্য বহন করে:
এখানে UUID গঠনতন্ত্রের একটি চিত্র:
UUID এর কয়েকটি সংস্করণ রয়েছে, প্রতিটির নিজস্ব উত্পাদন পদ্ধতি রয়েছে:
এই টুলটি সংস্করণ 1 এবং সংস্করণ 4 UUID তৈরি করতে কেন্দ্রিত।
সংস্করণ 1 UUID গুলি নিম্নলিখিত উপাদানগুলি ব্যবহার করে উত্পন্ন হয়:
সংস্করণ 1 UUID তৈরি করার সূত্রটি নিম্নরূপ প্রকাশ করা যেতে পারে:
1UUID = (timestamp * 2^64) + (clock_sequence * 2^48) + node
2
সংস্করণ 4 UUID গুলি একটি ক্রিপ্টোগ্রাফিকভাবে শক্তিশালী র্যান্ডম নম্বর জেনারেটর ব্যবহার করে উত্পন্ন হয়। সূত্রটি সহজ:
1UUID = random_128_bit_number
2
নির্দিষ্ট বিটগুলি সংস্করণ (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 ইতিহাসে মূল মাইলফলকগুলি:
সময়ের সাথে সাথে, UUID গুলি বিতরণকৃত সিস্টেম এবং ডেটাবেস ডিজাইনে একটি অপরিহার্য টুল হয়ে উঠেছে, বিভিন্ন প্রোগ্রামিং ভাষা এবং প্ল্যাটফর্ম জুড়ে বিভিন্ন বাস্তবায়ন এবং অভিযোজনের সাথে।
বিভিন্ন প্রোগ্রামিং ভাষায় UUID তৈরি করার উদাহরণ এখানে দেওয়া হল:
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## রুবিতে সংস্করণ 1 UUID এর জন্য কোন বিল্ট-ইন পদ্ধতি নেই
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 UUID এর জন্য কোন বিল্ট-ইন পদ্ধতি নেই
13// এর জন্য আপনাকে 'ramsey/uuid' এর মতো একটি লাইব্রেরি ব্যবহার করতে হবে
14?>
15
আপনার কাজে দরকারী হতে পারে আরো টুল খুঁজে বের করুন