天天看點

什麼是UUID?

十萬個為什麼之什麼是UUDI?

通用惟一辨別符(UUID)是128位比特的數字,用來惟一地辨別網際網路上的某些對象或者實體。根據使用的特定機制,通用惟一辨別符不僅需要保證是彼此不相同的,或者最少也是與公元3400年之前其他任何生成的通用惟一辨別符有非常大的差別。通用惟一辨別符依靠保證惟一性的部分的組合。有保證的通用惟一辨別符包括一個指向生成通用惟一辨別符的主機的網絡位址,時間戳(用來記錄事務的精确時間的記錄),以及一個随機生成的元件。因為網絡位址辨別了惟一的一台計算機,并且時間戳對于某台主機上的生成的每個通用惟一辨別符也是惟一的,那麼這兩個部分就完全可以保證惟一性了。然而,随機生成的通用惟一辨別符的元素也可以作為保護措施來防止所有的不可預見的問題。  

通用惟一辨別符是作為tModel 資料結構中的一部分,這種資料結構辨別通用描述、發現,和整合(UDDI)注冊中的一種服務的類型(注冊服務的通用表示法)。這種機制可用來發現網絡服務。  

通用惟一辨別符還可以用來指向大多數的可能的物體。微軟和其他一些軟體公司都傾向使用全球惟一辨別符(GUID),這也是通用惟一辨別符的一種類型,可用來指向組建對象子產品對象和其他的軟體元件。第一個通用惟一辨別符是在網羅計算機系統(NCS)中建立,并且随後成為開放軟體基金會(OSF)的分布式計算環境(DCE)的元件。

××××××××××××××××××××××××××

UUID是指在一台機器上生成的數字,它保證對在同一時空中的所有機器都是唯一的。通常平台會提供生成UUID的API。UUID按照開放軟體基金會 (OSF)制定的标準計算,用到了以太網卡位址、納秒級時間、晶片ID碼和許多可能的數字。由以下幾部分的組合:目前日期和時間(UUID的第一個部分與時間有關,如果你在生成一個UUID之後,過幾秒又生成一個UUID,則第一個部分不同,其餘相同),時鐘序列,全局唯一的IEEE機器識别号(如果有網卡,從網卡獲得,沒有網卡以其他方式獲得),UUID的唯一缺陷在于生成的結果串會比較長。關于UUID這個标準使用最普遍的是微軟的GUID (Globals Unique Identifiers)。

在ColdFusion中可以用CreateUUID()函數很簡單的生成 UUID,其格式為:xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxxxxxx(8-4-4-16),其中每個 x 是 0-9 或 a-f 範圍内的一個十六進制的數字。而标準的UUID格式為:xxxxxxxx-xxxx-xxxx-xxxxxx-xxxxxxxxxx (8-4-4-4-12)

,可以從cflib 下載下傳CreateGUID() UDF進行轉換。

使用UUID的好處在分布式的軟體系統中(比如:DCE/RPC, COM+,CORBA)就能展現出來,它能保證每個節點所生成的辨別都不會重複,并且随着WEB服務等整合技術的發展,UUID的優勢将更加明顯。

關于UUID的更多資訊可以多google 一下。

PS:在MMColdFusion技術支援中心找到一篇文章,其中提到使用CreateUUID()會将WIN平台下的系統時間加快10毫秒,原因是JVM1.3.x 和1.4.x的bug,文章提到了解決方法。

繼續閱讀