什么是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,文章提到了解决方法。

时间: 2024-10-25 02:20:04

什么是UUID?的相关文章

php生成uuid格式字符串

  UUID是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的.通常平台会提供生成UUID的API.UUID按照开放软件基金会(OSF)制定的标准计算,用到了以太网卡地址.纳秒级时间.芯片ID码和许多可能的数字.由以下几部分的组合:当前日期和时间(UUID的第一个部分与时间有关,如果你在生成一个UUID之后,过几秒又生成一个UUID,则第一个部分不同,其余相同),时钟序列,全局唯一的IEEE机器识别号(如果有网卡,从网卡获得,没有网卡以其他方式获得),UUID的唯一缺陷在于生成

Java 生成 UUID

阅读目录 1.UUID 简介 2.UUID 组成 3.项目实战 回到顶部 1.UUID 简介      UUID含义是通用唯一识别码 (Universally Unique Identifier),这是一个软件建构的标准,也是被开源软件基金会 (Open Software Foundation, OSF) 的组织应用在分布式计算环境 (Distributed Computing Environment, DCE) 领域的一部分.      UUID 的目的,是让分布式系统中的所有元素,都能有唯一

JAVA UUID 生成唯一标识

需求     项目在设计表的时候,要处理并发多的一些数据,类似订单号不能重复,要保持唯一.原本以为来个时间戳,精确到毫秒应该不错了.后来觉得是错了,测试环境下很多一样的ID,不能达到唯一标识. UUID     JDK API 是这么说的: "表示通用唯一标识符 (UUID) 的类. UUID 表示一个 128 位的值."     详细的说就是: "UUID 含义是通用唯一识别码 (Universally Unique Identifier),这 是一个软件建构的标准,也是被

MOUNT with UUID

# blkid /dev/sda1: UUID="77c06f65-1723-4eba-8355-80575d6eb3be" TYPE="ext4"  /dev/sdd1: LABEL="zp1" UUID="1511997698609595871" UUID_SUB="16603257859564972697" TYPE="zfs_member"  /dev/sdc1: LABEL=&

PHP中生成UUID自定义函数分享

 UUID 全称是 Universally unique identifier,它是一种识别符,使用任意的计算机都可以生成,不需要一个中央数据库进行管理,即可以保证几乎没有重复的几率.而 UUID 的值域之大,据说给世界上每一粒沙子分配一个 UUID,也不会有重复的. 最近在改 WordPress 的代码,需要用到 UUID.但是,PHP 中居然没有生成 UUID 的函数,只好自己写一个. 1 2 3 4 5 6 7 8 9 10 11 if (!function_exists('com_cre

C语言实现UUID生成算法(WIN32版本)

根据定义,UUID(Universally Unique IDentifier,也称GUID)在时间和空间都是唯一的.为保证空间的唯一性,每个UUID使用了一个48位的值来记录,一般是计算机的网卡地址.为保证时间上的唯一性,每个UUID具有一个60位的时间戳(timestamp).这个时间戳表示自公元1582年(绝对不是1852,这是<COM技术内幕>,1999年3月第1版第89页中的一个错误)10月15号00:00:00:00以来的时间,是以100纳秒为单位的时间间隔.1纳秒(ns)=10-

Java的UUID生成工具并发测试

一.认识UUID UUID 维基百科,自由的百科全书 通用唯一识别码 (Universally Unique Identifier, UUID) 是一个软件建构的标准,亦为自由软件基金会 (Open Software Foundation, OSF) 的组织在分布式计算环境 (Distributed Computing Environment, DCE) 领域的一部份. UUID 的目的,是让分布式系统中的所有元素,都能有唯一的辨识信息,而不需要通过中央控制端来做辨识信息的指定.如此一来,每个人

详解Linux中获取全球唯一标示符UUID的方法

  UUID(Universally Unique IDentifiers),全球唯一标示符.它是一个标识系统中的存储设备的字符串,使其确定系统中的所有存储设备. 为什么要使用UUID?因为系统自动分配的设备名称并非总是一致的,它们依赖于启动时内核加载模块的顺序.相同的名称可能代表不同的硬盘分区.如果每个分区有一个唯一的UUID值,尤其是在grub中的kernel设置,这样就不会发生分区识别混乱的问题. 下面介绍几种方法来获得UUID. 1.最简单的方法就是使用blkid命令,它主要用来对系统的

Linux下取得UUID的方法分享

  HP和RedHat上可以使用uuidgen来生成,solaris上命令:makeuuid 如何通过C++编程取得UUID? 1.安装libuuid库, libuuid.so.1包涵在e2fsprogs里,本人的系统为RedHat7.3,下载ftp://194.199.20.114/linux/redhat/7.3/en/os/i386/RedHat/RPMS/e2fsprogs-1.27-3.i386.rpm 2. 编辑文件uuid.cpp 复制代码 代码如下: #include ; #in

摆平[svn][linux][uuid]不匹配的土鳖方法

  在一个偶然的情况下,知道了关于[svn][linux][uuid]不匹配的问题,安装不成功,这可怎么办呢!要玩游戏却玩不了,所以今天所这个问题来看看有什么解决办法吧! 今天开始玩sina app engine. 安装完rabbitvcs之后发现在更新时总是有问题.于是卸载掉重新安装另一个svn--subversion. 安装完在进行checkout的时候提示:svn:uuid与目录XXXX不匹配.这可是恼了我. 于是就使用最土鳖的方法: 将本地改动的文件作一个备份.然后将整个的工作目录下之前