Mã nhận dạng duy nhất toàn cầu (UUID), còn được gọi là Mã định danh duy nhất toàn cầu (GUID), đã được sử dụng rộng rãi trong các hệ thống máy tính.
Đó là mã 128-bit do hệ thống tạo ra dựa trên các biến và hằng số: thời gian hiện tại, địa chỉ MAC, hàm băm SHA-1, không gian tên MD5. Kết quả cuối cùng của việc tạo UUID, được hiển thị dưới dạng mã gồm 32 ký tự chữ và số được phân tách bằng dấu gạch nối, có vẻ tùy ý, nhưng trên thực tế, đó là kết quả của các phép tính phức tạp. Do đó, máy tính không “phát minh” ra mã mà tạo ra mã đó từ các đại lượng kỹ thuật cụ thể có liên quan tại một thời điểm nhất định.
Xác suất để cùng một UUID được tạo trên hai máy tính khác nhau vào các thời điểm khác nhau có xu hướng bằng 0, điều này cho phép sử dụng các mã kết quả để nhận dạng dữ liệu điểm/cục bộ mà không cần tham chiếu đến trung tâm điều phối. Ngày nay, UUID/GUID phổ biến trong cả mạng trực tuyến và ngoại tuyến, đồng thời hoạt động hiệu quả không chỉ trong không gian Internet toàn cầu mà còn trong các hệ thống máy tính độc lập.
Lịch sử UUID
Mã UUID 128 bit lần đầu tiên được sử dụng bởi công ty Máy tính Apollo của Mỹ vào những năm 1980. Chúng dựa trên các mã 64-bit đơn giản hơn được sử dụng trong Miền/HĐH và được sử dụng rộng rãi trong môi trường điện toán của Tổ chức Phần mềm Mở.
Với sự ra đời của các nền tảng Windows đầu tiên, số nhận dạng duy nhất trên toàn cầu đã được khái quát hóa và chuẩn hóa. Microsoft đã áp dụng thiết kế DCE từ Máy tính Apollo và đăng ký không gian tên URN trong RFC 4122. Năm 2005, không gian tên URN được IETF đề xuất làm tiêu chuẩn mới vào năm 2005 và UUID đã được chuẩn hóa trong ITU.
Đầu năm 2002, các vấn đề về hiệu suất hệ thống đã được xác định khi sử dụng UUID làm khóa chính trong cơ sở dữ liệu cục bộ. Chúng đã được sửa trong phiên bản 4 bằng cách thêm hậu tố không ngẫu nhiên dựa trên thời gian hệ thống của máy tính. Cái gọi là phương pháp COMB (Mã định danh thời gian GUID kết hợp) làm tăng rủi ro sao chép mã, nhưng đồng thời cải thiện đáng kể hiệu suất khi làm việc với Microsoft SQL Server.
Với sự phát triển của công nghệ CNTT, mã định danh duy nhất phổ quát đã không còn là một công cụ kỹ thuật chuyên dụng cao và ngày nay mọi người đều có thể sử dụng mã này. Xác suất lặp lại của các mã được tạo không bằng 0, nhưng có xu hướng như vậy và bất kỳ thông tin kỹ thuật số nào cũng có thể được xác định bởi chúng, sau đó chúng có thể được kết hợp thành các mảng dữ liệu đơn lẻ với rủi ro lặp lại tối thiểu.
Lợi ích của UUID
Trình tạo mã duy nhất toàn cầu không yêu cầu đối chiếu/đồng bộ hóa dữ liệu tập trung và được cung cấp miễn phí cho tất cả người dùng. Những ưu điểm chính của UUID bao gồm:
- Rủi ro "xung đột" (lặp lại) mã ở mức thấp nhất. Mặc dù được sử dụng rộng rãi, xác suất lặp lại có xu hướng bằng không.
- Khả năng kết hợp các mảng dữ liệu khác nhau bằng cách sử dụng UUID làm khóa chính (duy nhất).
- Đơn giản hóa việc phân phối dữ liệu trên nhiều máy chủ phân tán.
- Khả năng tạo mã ngoại tuyến.
Mã nhận dạng duy nhất, được viết ở định dạng xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx, cho phép các hệ thống phân tán nhận dạng thông tin mà không cần phối hợp từ một trung tâm dữ liệu duy nhất: với xác suất lỗi/lặp lại gần như bằng không. Tính năng này, cùng với tính dễ sử dụng và các yêu cầu nhỏ đối với hiệu suất máy tính, khiến UUID trở thành nhu cầu và không thể thiếu trong nhiều ngành CNTT và hệ thống máy tính tự trị.