來源于:http://www.etc.edu.cn/blog/weiwei/archives/005057.html
十萬個為什么之什么是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,文章提到了解決方法。