CN106341497A - 数字id生成方法及装置 - Google Patents
数字id生成方法及装置 Download PDFInfo
- Publication number
- CN106341497A CN106341497A CN201611018935.8A CN201611018935A CN106341497A CN 106341497 A CN106341497 A CN 106341497A CN 201611018935 A CN201611018935 A CN 201611018935A CN 106341497 A CN106341497 A CN 106341497A
- Authority
- CN
- China
- Prior art keywords
- digital
- allocated
- numeral
- server
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/146—Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请提供的数字ID生成方法及装置,该方法在服务器中存储各个项目的数字ID分配信息,终端设备从该服务器中获得某个项目对应的数字ID分配信息,该数字ID分配信息中包括已经为项目分配的最新数字ID。然后,终端设备根据最新数字ID确定当前可分配数字ID,并分配给终端设备本地的待分配对象,以使每个待分配对象具有一个唯一的数字ID。终端设备为待分配对象分配完数字ID后,将分配的数字ID信息发送至服务器,该数字ID信息包括为待分配对象分配的最后一个数字ID,以使服务器将该项目对应的最新数字ID更新为该最后一个数字ID。这样,其它终端设备从更新后的最新数字ID开始进行分配,保证了每个开发者分配的数字ID的唯一性。
Description
技术领域
本申请涉及计算机技术领域,更具体的说是涉及一种数字ID(Identification,身份标识)的生成方法及装置。
背景技术
一般的软件项目开发过程中会创建很多对象,例如,模型、特效、角色、物品、技能等,每个对象一般都会有一个字符串名称,可以称为字符ID。但是,对象之间可能存在引用关系,或者,一些需要存储到服务器数据库中的对象,都需要一个唯一的标识来表示该对象,因为字符串的查找效率太低,而且,如果作为网络协议传递,字符串耗费流量太多,所以,需要为对象分配一个二进制的数字ID。
随着软件项目开发技术的发展,需要多个人或项目组同时开发一个软件项目的情况越来越多。传统方式使用项目编辑器编辑软件项目中的对象并为这些对象分配数字ID。但是,当多个人或多个项目组同时开发一个项目时,不同的开发者或项目组分别利用本地的项目编辑器为本地创建的对象分配数字ID,不同终端上的项目编辑器无法保证所分配的ID是唯一的,因此,这种方式可能出现重复ID的现象,即同一项目中不同对象对应的ID相同,而项目中的对象ID重复将导致项目运营存在风险和隐患。
发明内容
有鉴于此,本申请提供一种数字ID生成方法及装置,以解决多个终端设备无法为同一项目中的不同对象分配唯一的数字ID的技术问题。
为解决上述技术问题,本申请提供如下技术方案:
本申请提供一种数字身份标识ID生成方法,应用于终端设备中,包括:
从服务器中获取当前项目对应的数字ID分配信息,所述数字ID分配信息包括已经为所述当前项目中对象分配的最新数字ID;
根据所述最新数字ID确定当前可分配数字ID,并分配给所述终端设备创建的待分配对象,以使每个所述待分配对象具有一个唯一的数字ID;
将为所述待分配对象分配的数字ID信息发送给所述服务器,以使所述服务器根据所述数字ID信息更新所述数字ID分配信息,所述数字ID信息包括为所述待分配对象分配的最后一个数字ID,以使所述服务器将所述数字ID分配信息中的最新ID更新为所述最后一个数字ID;
当接收到所述服务器返回的更新成功响应消息后,确定所述待分配对象的数字ID分配成功,所述更新成功响应消息由所述服务器根据所述数字ID信息成功更新所述数字ID分配信息后产生。
本申请还提供一种数字身份标识ID生成方法,应用于服务器中,所述版本管理服务器中存储有各个项目对应的数字ID分配信息,所述数字ID分配信息包括已经为所述各个项目分配的最新数字ID,所述方法包括:
所述服务器向终端设备返回所述终端设备请求获得的当前项目所对应的数字ID分配信息,所述数字ID信息包括已经为所述当前项目分配的最新数字ID,以使所述终端设备根据所述最新数字ID确定当前可分配数字ID,并分配给所述终端设备创建的待分配对象,以使每个所述待分配对象具有一个唯一的数字ID;
当接收到所述终端设备发送的数字ID信息后,所述服务器根据所述数字ID信息更新所述数字ID分配信息,所述数字ID信息包括所述终端设备为所述待分配对象分配的最后一个数字ID,以使所述服务器将所述项目对应的数字ID分配信息中的最新数字ID更新为所述最后一个数字ID;
当所述服务器根据所述数字ID信息成功更新所述数字ID分配信息后,向所述终端设备返回更新成功响应消息,以使所述终端设备接收到所述更新成功响应消息后确定所述项目的数字ID分配成功。
本申请提供一种数字身份标识ID生成装置,应用于终端设备中,包括:
第一获取模块,用于从服务器中获取当前项目对应的数字ID分配信息,所述数字ID分配信息包括已经为所述当前项目中对象分配的最新数字ID;
ID分配模块,用于根据所述最新数字ID确定当前可分配数字ID,并分配给在所述终端设备创建的待分配对象,以使每个所述待分配对象具有一个唯一的数字ID;
发送模块,用于将为所述待分配对象分配的数字ID信息发送给所述服务器,以使所述服务器根据所述数字ID信息更新所述数字ID分配信息,所述数字ID信息包括为所述待分配对象分配的最后一个数字ID,以使所述服务器将所述数字ID分配信息中的最新ID更新为所述最后一个数字ID;
确定模块,用于当接收到所述服务器返回的更新成功响应消息后,确定所述待分配对象的数字ID分配成功,所述更新成功响应消息由所述服务器根据所述数字ID信息成功更新所述数字ID分配信息后产生。
本申请还提供一种数字身份标识ID生成装置,应用于服务器中,所述服务器中存储有各个项目对应的数字ID分配信息,所述数字ID分配信息包括已经为所述各个项目中对象分配的最新数字ID;所述装置包括:
发送模块,用于向终端设备返回所述终端设备请求获得的当前项目所对应的数字ID分配信息,所述数字ID信息包括已经为所述当前项目分配的最新数字ID,以使所述终端设备根据所述最新数字ID确定当前可分配数字ID,并分配给所述终端设备创建的待分配对象,以使每个所述待分配对象具有一个唯一的数字ID;
更新模块,用于当接收到所述终端设备发送的数字ID信息后,根据所述数字ID信息更新所述数字ID分配信息,所述数字ID信息包括所述终端设备为所述待分配对象分配的最后一个数字ID,以使所述服务器将所述项目对应的数字ID分配信息中的最新数字ID更新为所述最后一个数字ID;
返回模块,用于当所述服务器根据所述数字ID信息成功更新所述数字ID分配信息后,向所述终端设备返回更新成功响应消息,以使所述终端设备接收到所述更新成功响应消息后确定所述项目的数字ID分配成功。
本申请提供的数字ID的生成方法,在服务器中存储各个项目的数字ID分配信息,每个终端设备(即,开发者)都可以访问该服务器,并从该服务器中获得当前项目所对应的数字ID分配信息,该数字ID分配信息中包括(该终端设备或其它终端设备)已经为项目分配的最新数字ID。然后,该终端设备根据最新数字ID确定当前可分配数字ID,并分配给该终端设备创建的待分配对象,以使每个待分配对象具有一个唯一的数字ID。该终端设备为本地待分配对象分配完数字ID后,将本次分配的数字ID信息发送至服务器中,其中,该数字ID信息包括为本地对象分配的最后一个数字ID,以使服务器根据该数字ID信息更新所述数字ID分配信息,并将所述数字ID分配信息中的最新数字ID更新为所述最后一个数字ID,从而保证服务器中存储有该项目当前分配的最新数字ID。这样,其它终端设备能够从更新后的最新数字ID开始为所述其它终端设备本地的对象进行分配,从而保证每个终端设备为同一项目中的不同对象所分配的数字ID具有唯一性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1是本发明实施例一种数字ID生成方法的流程图;
图2是本发明实施例另一种数字ID生成方法的流程图;
图3是本发明实施例又一种数字ID生成方法的流程图;
图4是本发明实施例又一种数字ID生成方法的流程图;
图5是本发明实施例一种数字ID生成装置的框图;
图6是本发明实施例一种ID分配模块的框图;
图7是本发明实施例又一种ID分配模块的框图;
图8是本发明实施例又一种ID分配模块的框图;
图9是本发明实施例一种对象的数字身份标识ID生成装置的框图;
图10是本发明实施例一种终端设备的框图;
图11是本发明实施例一种服务器的框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
传统的软件项目对象分配数字ID的方式,当多个开发者(或项目组)同时开发一个软件项目时,每个终端设备为本地创建的对象自行分配数字ID,这样不同终端设备为不同对象分配的数字ID可能存在重复,因为各个终端设备只知道自己的ID分配情况,不知道其它终端设备的ID分配情况。本发明的技术方案通过在服务器中存储软件项目对应的最新的数字ID分配信息,该数字ID分配信息包括当前已经为软件项目中的各个对象分配的最新数字ID。终端设备可以从该服务器中获取该数字ID分配信息,从最新数字ID开始为本地的对象进行数字ID分配,并将包含本次分配的最后一个数字ID的数字ID信息发送给服务器,以使服务器根据该数字ID信息更新服务器中的数字ID分配信息,服务器对数字ID分配信息更新成功后,终端设备的此次ID分配才有效。这样,能够保证每个开发者为本地对象所分配的数字ID是唯一的。下面将通过本发明的具体实施例来描述为对象分配数字ID的方法。
请参见图1,示出了本发明实施例一种数字ID生成方法的流程图,该方法应用于终端设备中,该终端设备可以是PC(Personal Computer,个人计算机)机、笔记本电脑等。如图1所示,该方法可以包括以下步骤:
S110,终端设备从服务器中获取当前项目对应的数字ID分配信息;
其中,该数字ID分配信息包括当前已经为当前项目中的对象分配的最新数字ID。
S120,终端设备根据该最新数字ID确定当前可分配数字ID,并分配给终端设备创建的待分配对象,以使每个待分配对象具有一个唯一的数字ID。
终端设备根据从服务器中获得的最新数字ID自行为本地的待分配对象分配数字ID。
在本发明一种可能的实现方式中,所述当前可分配数字ID是一个数字ID范围,该数字ID范围包含本地所有待分配对象所要分配的数字ID,具体的实现过程如下:
终端设备需要先确定本地待分配对象的目标数量,然后,根据获得的最新数字ID及该目标数量确定待分配数字ID范围;其中,待分配数字ID范围内的数字ID以预设步长依次递增,且第一个数字ID是所述最新数字ID以预设步长自增后得到的数字ID;然后,将待分配数字ID范围内的数字ID逐个分配给各个待分配对象,保证每个待分配对象具有一个唯一的数字ID。
例如,从服务器中获得的项目A的最新数字ID是i,终端设备X创建的项目A中的对象数量是n,且预设步长是1,则从i+1~i+n是终端设备X创建的n个对象对应的待分配数字ID范围。然后,可以将i+1~i+n一一分配给各个对象。
在本发明另一种可能的实现方式中,所述当前可分配数字ID是当前待分配对象对应的一个数字ID,此种实现方式中,无需预先确定待分配数字ID范围,而是直接将终端设备获取一个待分配对象确定对应的当前可分配数字ID,具体的实现过程如下:
终端设备将最新ID以预设步长自增后分配给第一个待分配对象;对于其它、非第一个的待分配对象,将上一个待分配对象的数字ID以预设步长自增后得到的数字ID分配该待分配对象,依次类推,直到所有的待分配对象都分配完。
例如,从服务器中获得的项目A的最新数字ID是i,且预设步长是1则将i+1分配给终端设备X创建的项目A的第一待分配对象;第二个待分配对象的数字ID为i+1增加预设步长后得到的数值(即i+2);依次类推,直到本地所有待分配对象都分配完为止。
其中,预设步长可以根据实际需要自行设定,例如,可以设定为1,本发明对此并不限定。
可选地,为待分配对象分配的数字ID是32位或64位二进制数,该数字ID的位数远远小于128位,从而提高了根据数字ID索引查找对象的效率,进而使得程序运行更高效。
S130,终端设备将为待分配对象分配的数字ID信息发送给服务器,以使所述服务器根据所述数字ID信息更新所述数字ID分配信息,其中,数字ID信息包括为本次分配的最后一个数字ID,以使服务器将所述最新数字ID更新为所述最后一个数字ID。
在本发明一种可能的实现方式中,例如,服务器中存储的项目A的当前最新数字ID是i,终端设备X为创建的项目A的对象分配的最后一个数字ID是i+n并发送给服务器,服务器将项目A对应的最新数字ID由i更新为i+n。
在本发明的其它可能的实现方式中,数字ID信息还可以包括:发送数字ID信息的用户信息(例如,开发者的用户名或员工编号),以及,本次分配的全部数字ID,以便于追踪软件项目开发过程中的问题。
S140,终端设备接收服务器返回的响应消息,并判断响应消息的类型;响应消息包括更新成功响应消息和更新失败响应消息。如果是更新成功响应消息,则执行S150;如果是更新失败响应消息,则执行S160。
当服务器根据终端设备(例如,终端设备A)发送的数字ID信息完成当前项目对应的数字ID分配信息的更新操作后,向终端设备A返回更新成功响应消息。
在终端设备A提交自己分配的数字ID信息之前,如果有其它终端设备(例如,终端设备B)已经提交了根据版本管理服务器中最新的数字ID分配信息所分配的数字ID信息,此时,服务器中的数字ID分配信息已经根据终端设备B上传的数字ID信息进行更新,即,服务器中当前存储的最新的数字ID分配信息是终端设备B提供的ID信息,导致终端设备A上传的数字ID信息不是基于服务器当前存储的最新数字ID进行的分配,此时,服务器向终端设备A返回更新失败响应消息。
通常在创建软件项目的内容时可以用可读性强的字符串来识别对象,构建软件版本或运行该软件项目时再给对象分配数字ID,所以一般数字ID分配的频率并不高,因此,同一项目的不同开发者同时进行数字ID分配的概率很低。
S150,终端设备确定本次ID分配成功。
只有当终端设备分配的数字ID信息成功提交至服务器中后,终端设备本次的ID分配结果才可以被使用。
S160,终端设备确定本次ID分配失败,并重新返回执行S110。
如果终端设备接收到服务器返回的更新失败响应消息,说明可能有其它开发者正在使用当前的数字ID分配信息分配ID,终端设备本次的ID分配无效,需要放弃本次分配的数字ID信息,返回执行S110重新从服务器中获取最新的数字ID分配信息,并基于该最新的数字ID分配信息重新进行分配。
本实施例提供的数字ID生成方法,在服务器中存储各个项目的数字ID分配信息,每个终端设备(即,开发者)都可以访问该服务器,并从该服务器中获得当前项目所对应的数字ID分配信息,该数字ID分配信息中包括(该终端设备或其它终端设备)已经为项目分配的最新数字ID。然后,该终端设备根据最新数字ID确定当前可分配数字ID,并分配给该终端设备创建的待分配对象,以使每个待分配对象具有一个唯一的数字ID。该终端设备为本地待分配对象分配完数字ID后,将本次分配的数字ID信息发送至服务器中,其中,该数字ID信息包括为本地对象分配的最后一个数字ID,以使服务器根据该数字ID信息更新所述数字ID分配信息,并将所述数字ID分配信息中的最新数字ID更新为所述最后一个数字ID,从而保证服务器中存储有该项目当前分配的最新数字ID。这样,其它终端设备能够从更新后的最新数字ID开始为所述其它终端设备本地的对象进行分配,从而保证每个终端设备为同一项目中的不同对象所分配的数字ID具有唯一性。
请参见图2,示出了本发明实施例另一种数字ID生成方法的流程图,该方法应用于终端设备中,本实施例中按照对象类型不同划分了不同的ID段,并在数字ID分配信息中记录每个对象类型对应的最新数字ID。如图2所示,该方法包括以下步骤:
S210,终端设备从服务器中获取当前项目对应的数字ID分配信息。
该数字ID分配信息包括每个对象类型对应的最新数字ID。提前为不同的对象类型划分不同的ID段,且划分的ID段所包含的ID数量足够以后同类型的对象使用。
S220,确定当前待分配对象的对象类型。
S230,判断所述当前待分配对象是否是所述对象类型中的第一个待分配的对象;如果是,则执行S240;如果否,则执行S250。
S240,从所述数字ID分配信息中获取该对象类型对应的最新数字ID,并将最新数字ID以预设步长自增后得到的数字ID分配给所述当前待分配对象。
S250,将所述对象类型中当前待分配对象的上一个待分配对象对应的数字ID以预设步长自增后得到的数字ID分配给所述当前待分配对象,依次类推,直到该对象类型中的全部待分配对象都分配完。
例如,所述对象类型中当前待分配对象为x,同一对象类型中当前待分配对象x的上一个待分配对象是x-1,待分配对象x-1对应的数字ID为i,且预设步长是1,则当前待分配对象x对应的数字ID为i+1。
S260,判断当前项目的所有对象类型都分配完,如果是,则执行S270;如果否,则返回执行S220。
S270,将本次ID分配的数字ID信息发送至服务器,该数字ID信息包括为终端设备创建的当前项目的各个对象类型对应的最后一个数字ID,以使服务器将当前项目的各个对象类型对应最新数字ID分别更新为相应的最后一个数字ID。
例如,当前项目包括A、B、C三个对象类型,其中,对象类型A对应的最后一个数字ID为i+m,对象类型B对应的最后一个数字ID为i+n,对象类型C对应的最后一个数字ID为i+o;则服务器需要将对象类型A对应的最新数字ID更新为i+m,将对象类型B对应的最新数字ID更新为i+n,以及,将对象类型C对应的最新数字ID更新为i+o。在本发明的其它可能的实现方式中,终端设备发送给服务器的数字ID信息还包括发送该数字ID信息的用户信息,以及,本次分配的全部数字ID的信息。
S280,接收服务器返回的响应消息,并判断响应消息的类型,如果是更新成功响应消息,则执行S290;如果是更新失败响应消息,则执行S2100。
S290,确定本次ID分配成功。
只有当终端设备提交的数字ID信息成功提交至服务器中后,终端设备的本次ID分配结果才可以被使用。
S2100,确定本次ID分配失败,并返回执行S210。
如果终端设备接收到服务器返回的更新失败消息后,确定本次ID分配结果无效,需要重新从服务器中获取最新的数字ID分配信息并基于该最新的数字ID信息进行分配。
本实施例提供的数字ID生成方法,按照不同的对象类型划分不同的ID段,服务器中存储的项目对应的数字ID分配信息记录了每个对象类型对应的最新数字ID。这样,用户根据数字ID所在的ID段就能快速判断出对象的类型。在为对象分配数字ID时,从待分配对象对应的对象类型的最新数字ID增加预设步长后得到的数值开始继续向后分配,直到创建的全部对象类型都分配完。然后,将本次分配的数字ID信息发送至服务器,以使服务器对应更新当前项目的数字ID分配信息,其它开发者从更新后的最新数字ID继续向后进行分配,从而保证每个开发者分配的数字ID的唯一性。
请参见图3,示出了本发明实施例又一种数字ID生成方法的流程图,该方法应用于包含终端设备和服务器的***中,如图3所示,该方法可以包括以下步骤:
S310,终端设备向服务器发送ID请求消息;该ID请求消息携带请求获得的数字ID分配信息所对应的项目编号。
S320,服务器查询本地数据库获得所述项目编号对应的数字ID分配信息。
在本发明一种可能的实现方式中,服务器可以是已有的版本管理服务器,例如,SVN(Subversion,版本控制***)服务器;SVN是一个非常通用的软件管理***,它常被用来管理程序源码,但是版本管理服务器也可以管理任何类型的文件,例如,文本、视频,图片等等。此种应用场景中,数字ID分配信息存储到ID文件中,终端设备从SVN服务器中获取该ID文件,然后,从该ID文件中读取数字ID分配信息。
在本发明一种可能的实现方式中,服务器可以为每个项目创建一个文件,该文件中存储该项目对应的数字ID分配信息;在其它的实现方式中,服务器也可以只创建一个文件,所有项目对应的数字ID分配信息都存储在该文件中,该文件包括项目信息和对应的ID数据项,其中,项目信息可以是项目编号;该ID数据项内存储该项目信息对应的数字ID分配信息。
在本发明一种可能的实现方式中,该数字ID分配信息包括当前已经为该项目分配的最新数字ID。在其它可能的实现方式中,可以为不同的对象类型划分不同的ID段,并在数字ID分配信息中记录每个对象类型对应的最新数字ID。在另一些可能的实现方式中,数字ID分配信息还可以包括发送数字ID信息的用户信息,以及本次ID分配细节,例如,数字ID分配信息包括以下内容“开发者***,分配的数字ID为i~n”,这样便于追溯项目开发过程中的问题。
S330,服务器将数字ID分配信息发送给终端设备。
S340,终端设备获取当前待分配对象,并判断当前待分配对象是否是第一个待分配对象,如果是,则执行S350;如果不是,则执行S360。
S350,终端设备将所述最新数字ID以预设步长自增后,分配给所述当前待分配对象;
S360,终端设备将所述当前待分配对象的上一个待分配对象的数字ID以预设步长自增后分配给所述当前待分配对象,直到所述项目对应的全部待分配对象都分配完。
S370,终端设备将本次分配的数字ID信息发送至服务器,该数字ID信息包括为终端设备分配的最后一个数字ID。
S380,服务器根据接收到的数字ID信息,将所述项目编号对应项目的数字ID分配信息中的最新数字ID更新为所述最后一个数字ID。
S390,如果更新成功,则服务器向终端设备返回更新成功响应消息。
S3100,终端设备接收到更新成功响应消息后,确定本次ID分配成功。
S3110,如果更新失败,则服务器向终端设备返回更新失败响应消息。
S3120,终端设备接收到更新失败响应消息后,确定本次ID分配失败,并返回执行S310重新进行ID分配。
本实施例提供的数字ID的生成方法,服务器中存储各个项目的数字ID分配信息,每个终端设备(即,开发者)都可以访问该服务器,并从该服务器中获得当前项目所对应的数字ID分配信息,该数字ID分配信息中包括(该终端设备或其它终端设备)已经为项目分配的最新数字ID。然后,该终端设备根据最新数字ID确定当前可分配数字ID,并分配给该终端设备创建的待分配对象,以使每个待分配对象具有一个唯一的数字ID。该终端设备为本地待分配对象分配完数字ID后,将本次分配的数字ID信息发送至服务器中,其中,该数字ID信息包括为本地对象分配的最后一个数字ID,以使服务器根据该数字ID信息更新所述数字ID分配信息,并将所述数字ID分配信息中的最新数字ID更新为所述最后一个数字ID,从而保证服务器中存储有该项目当前分配的最新数字ID。这样,其它终端设备能够从更新后的最新数字ID开始为所述其它终端设备本地的对象进行分配,从而保证每个终端设备为同一项目中的不同对象所分配的数字ID具有唯一性。
请参见图4,示出了本发明实施例又一种数字ID生成方法的流程图,本实施例以SVN服务器为例进行说明,SVN服务器能够保证客户端提交的某个文件(例如,文件A)是基于SVN服务器中当前存储的最新版本的文件A进行修改的,换言之,客户端上传的文件A是在SVN服务器中当前存储的最新版本的文件A的基础上修改的,才能成功提交到SVN服务器中。
SVN服务器中的ID文件都有一个版本号,该版本号由SVN服务器生成。例如,对于ID文件A而言,任意一个客户端可以从SVN服务器中获取最新版本ID文件A并进行修改,如果修改后的ID文件A是基于SVN服务器中存储的当前最新版本的ID文件A(此处的当前最新版本的ID文件A不一定是客户端从SVN服务器中获取的最新版本,因为在该客户端上传修改后的ID文件A之前,可能SVN服务器已经根据其它客户端上传的ID文件A更新了所述最新版本的ID文件A)进行的修改,则该客户端能够向SVN服务器成功提交该修改后的ID文件A,SVN服务器将所述当前最新版本的ID文件A更新为所述修改后的ID文件A。
如图4所示,该方法可以包括以下步骤:
S410,终端设备向SVN服务器发送ID文件获取请求;该ID文件获取请求携带请求获得的ID文件的项目编号。
数字ID分配信息在SVN服务器中以ID文件的形式存储,实际上,SVN服务器不知道ID文件中存储的是什么内容,终端设备可以从SVN服务器中拉取某个项目对应的ID文件,并读取该ID文件中的ID分配信息。
在本发明一种可能的实现方式中,SVN服务器可以为每个项目创建一个ID文件,该ID文件中存储该项目对应的数字ID分配信息;在其它的实现方式中,SVN服务器也可以只创建一个文件,所有项目对应的数字ID分配信息都存储在该ID文件中,该ID文件包括项目信息和对应的ID数据项,其中,项目信息可以是项目编号;该ID数据项内存储该项目信息对应的数字ID分配信息。
S420,SVN服务器查询获得所述项目编号对应的目标ID文件,并发送给终端设备。
对于同一项目,SVN服务器中会存储全部历史版本的ID文件。目标ID文件是该项目全部版本中最新版本的ID文件。
S430,终端设备从该目标ID文件中读取所述项目对应的数字ID分配信息;该数字ID分配信息中包含当前已经为该项目分配的最新ID。
终端设备接收到SVN服务器发送的目标ID文件后,从该目标ID文件中读取数字ID分配信息。
S440,终端设备获取当前待分配对象,并判断当前待分配对象是否是第一个待分配对象,如果是,则执行S450;如果不是,则执行S460。
S450,终端设备将所述最新数字ID以预设步长自增后,分配给所述当前待分配对象;
S460,终端设备将所述当前待分配对象的上一个待分配对象的数字ID以预设步长自增后分配给所述当前待分配对象,直到所述项目对应的全部待分配对象都分配完。
S470,终端设备将本次分配的数字ID信息写入所述目标ID文件中,得到更新后的目标ID文件并发送给SVN服务器。其中,该数字ID信息包括为终端设备分配的最后一个数字ID
S480,SVN服务器判断更新后的目标ID文件是否是基于所述SVN服务器中存储的所述当前项目对应的当前最新版本的ID文件进行的修改;如果是,则执行S490;如果不是,则执行S 4110。
S490,SVN服务器将本地存储的当前最新版本的ID文件更新为所述更新后的目标ID文件,并向终端设备返回更新成功响应消息。
S4100,终端设备接收到更新成功响应消息后,确定本次ID分配成功。
S4110,SVN服务器不更新所述当前最新版本的ID文件,并向终端设备返回更新失败响应消息。
S4120,终端设备接收到更新失败响应消息后,确定本次ID分配失败,并返回执行S410重新进行ID分配。
本实施例提供的数字ID的生成方法,利用SVN服务器自身的文件提交特性,存储各个项目对应的ID文件,该ID文件中包含数字ID分配信息。终端设备都访问该SVN服务器,并从该SVN服务器中获得当前项目对应的最新版本的ID文件,并从该ID文件读取最新的数字ID分配信息。该数字ID分配信息中包括(该终端设备或其它终端设备)已经为项目分配的最新数字ID。然后,该终端设备根据最新数字ID确定当前可分配数字ID,并分配给该终端设备创建的待分配对象,以使每个待分配对象具有一个唯一的数字ID。该终端设备为本地待分配对象分配完数字ID后,将本次分配的数字ID信息写入ID文件中发送给SVN服务器,SVN服务器判断该ID文件是否是在SVN服务器中存储的当前最新版本的ID文件基础上修改的,如果是,则更新SVN服务器中的当前最新版本的ID文件,此时,SVN服务器中存储的当前最新版本的ID文件是该终端设备上传的ID文件,与此同时,SVN服务器向该终端设备返回更新成功响应消息,终端设备根据该消息确定本次ID分配成功。其它终端设备可以从SVN服务器更新后的最新版本的ID文件中获取最新数字ID,并为所述其它终端设备本地的对象进行分配,从而保证每个终端设备为同一项目中的不同对象所分配的数字ID具有唯一性。而且,版本管理服务器是已有的服务器,不是新开发的服务器,因此不需要额外的开发和维护成本。
对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
相应于上述的数字ID生成方法实施例,本申请还提供了数字ID生成装置实施例。
请参见图5,示出了本发明实施例一种数字ID生成装置的框图,该装置应用于终端设备中,如图5所示,该装置包括:第一获取模块110、ID分配模块120、发送模块130和确定模块140。
第一获取模块110,用于从服务器中获取当前项目对应的数字ID分配信息;
所述数字ID分配信息包括当前已经为所述当前项目中对象分配的最新数字ID。
在本发明一种可能的实现方式中,若所述服务器为SVN服务器,则所述第一获取模块110可以包括:第一获取子模块,用于从SVN服务器中获取所述当前项目对应的最新版本的ID文件,所述最新版本的ID文件中存储有所述当前项目对应的最新的数字ID分配信息,所述最新的数字ID分配信息包括所述最新数字ID;读取子模块,用于从所述最新版本的ID文件中读取所述当前项目对应的ID分配信息;
ID分配模块120,用于根据所述最新数字ID确定当前可分配数字ID,并分配给在所述终端设备创建的待分配对象,以使每个所述待分配对象具有一个唯一的数字ID。
可选地,为待分配对象分配的数字ID为32位或64位二进制数,数字ID的位数远远小于128位,从而提高了根据数字ID索引查找对象的效率,进而使得程序运行更高效。
在本发明一种可能的实现方式中,ID分配模块不需要确定待分配数字ID范围,直接根据从服务器中获得的最新数字ID为待分配对象分配数字ID;
请参见图6,示出了本发明实施例一种ID分配模块的框图,该ID分配模块120包括:第一分配子模块1211和第二分配子模块1212;
第一分配子模块1211,用于当当前待分配对象是第一个待分配的对象时,将最新数字ID以预设步长自增后得到的数字ID分配给当前待分配对象;
第二分配子模块1212,用于当当前待分配对象不是第一个待分配的对象时,将所述当前待分配对象的上一个待分配对象对应的数字ID以预设步长自增后得到的数字ID分配给所述当前待分配对象,直到所述终端设备创建的待分配对象全部分配完。
在本发明另一种可能的实现方式中,ID分配模块需要预先确定待分配数字ID范围,并将待分配数字ID范围内的数字ID一一分配给本地的待分配对象。
请参见图7,示出了本发明实施例又一种ID分配模块的框图,该ID分配模块120包括:第一确定子模块1221、第二确定子模块1222和第三分配子模块1223。
第一确定子模块1221,用于确定终端设备创建的待分配对象的目标数量。
第二确定子模块1222,用于根据目标数量及最新数字ID,确定出待分配数字ID范围,所述待分配数字ID范围中的数字ID以预设步长依次递增,且第一个数字ID为所述最新ID以预设步长自增后的数字ID。
第三分配子模块1223,用于将待分配数字ID范围内的数字ID逐个分配给各个所述待分配对象,以使每个所述待分配对象具有一个唯一的数字ID。
例如,终端设备创建的某个项目的待分配对象数量是n个,从服务器中获得的最新数字ID是i,且预设步长是1,则确定i+1~i+n是待分配数字ID范围,并将i+1~i+n这n个数字ID逐个分配给n个待分配对象,以使每个待分配对象具有一个唯一的数字ID。
在本发明又一种可能的实现方式中,一个项目通常包括多个类型的对象,可以根据对象类型划分不同的ID段,同一对象类型的对象的数字ID都在该ID段内;此种应用场景中,服务器中存储的数字ID分配信息中的最新数字ID包括每个对象类型所对应的最新ID。
请参见图8,示出了本发明实施例又一种ID分配模块的框图,如图8所示,该ID分配模块120,包括:第三确定子模块1231、第四分配子模块1232和第五分配子模块1233;
第三确定子模块1231,用于确定当前待分配对象的对象类型;例如,角色、物品、技能、模型等。
第四分配子模块1232,用于当当前待分配对象是对象类型中第一个待分配的对象时,从数字ID分配信息中获取该对象类型对应的最新数字ID,并将该最新数字ID以预设步长自增后得到的数字ID分配给当前待分配对象。
第五分配子模块1233,用于当当前待分配对象不是该对象类型中的第一个待分配的对象时,将该对象类型中当前待分配对象的上一个待分配对象对应的数字ID以预设步长自增后得到数字ID分配给当前待分配对象。
所述发送模块130,用于将为待分配对象分配的数字ID信息发送给服务器,以使所述服务器根据所述数字ID信息更新所述数字ID分配信息,所述数字ID信息包括为待分配对象分配的最后一个数字ID,以使服务器将所述数字ID分配信息中的最新ID更新为所述最后一个数字ID;
当终端设备为本地的待分配对象分配完数字ID后,将本次分配的数字ID信息发送给服务器,以使服务器记录本次分配的数字ID信息,其中,数字ID信息中包括本次分配的最后一个数字ID,以便服务器将该项目对应的最新数字ID更新为终端设备发送的数字ID信息中的最后一个数字ID。
在本发明一种可能的是实现方式中,该发送模块包括:写入子模块,用于将所述数字ID信息写入所述最新版本的ID文件,得到修改后的ID文件;发送子模块,用于将所述修改后的ID文件发送给所述SVN服务器,以使所述SVN服务器更新所述最新版本的ID文件。
所述确定模块140,用于当接收到服务器返回的更新成功响应消息后,确定所述待分配对象的数字ID分配成功。
当终端设备接收到服务器返回的更新成功响应消息后,确定本次ID分配成功。
可选地,所述装置还包括返回执行模块150,用于当接收到服务器返回的更新失败响应消息后,控制所述ID分配模块重新执行从服务器中获取当前项目对应的数字ID分配信息,直到接收到所述服务器返回的更新成功响应消息。
本实施例提供的数字ID生成装置,在服务器中存储各个项目的数字ID分配信息,每个开发者都可以访问该服务器,并通过第一获取模块从该服务器中获得需要分配数字ID的项目所对应的数字ID分配信息,该数字ID分配信息中包括已经为项目分配的最新数字ID;然后,由ID分配模块根据该最新数字ID确定当前可分配数字ID,并分配给终端设备本地的待分配对象,以使每个待分配对象具有一个唯一的数字ID。为本地对象分配完数字ID后,由发送模块将分配的数字ID信息发送至服务器,其中,数字ID信息包括为本地的待分配对象分配的最后一个数字ID,以使服务器将该项目对应的最新数字ID更新为所述最后一个数字ID,当终端设备接收到服务器返回的更新成功消息后,确定本次ID分配成功。这样,其它开发者从更新后的最新数字ID继续向后进行分配,从而保证每个开发者分配的数字ID的唯一性。
本申请还提供了应用于服务器中的数字ID生成装置实施例。
请参见图9,示出了本发明实施例一种对象的数字身份标识ID生成装置的框图,该装置应用于服务器中,该服务器中存储有各个项目对应的数字ID分配信息,该数字ID分配信息包括当前已经为该项目中对象分配的最新数字ID;
如图9所示,该装置包括发送模块210、更新模块220和返回模块230。
发送模块210,用于向终端设备返回终端设备请求获得的当前项目所对应的数字ID分配信息;
所述数字ID信息包括已经为所述当前项目分配的最新数字ID,以使所述终端设备根据所述最新数字ID确定当前可分配数字ID,并分配给所述终端设备创建的待分配对象,以使每个所述待分配对象具有一个唯一的数字ID;在本发明一种可能的实现方式中,若所述服务器为版本控制***SVN服务器,则所述发送模块具体用于,向所述终端设备返回所述当前项目对应的最新版本的ID文件,所述最新版本的ID文件中包含所述当前项目对应的数字ID分配信息,以使所述终端设备从所述最新版本的ID文件中读取所述当前项目对应的所述数字ID分配信息。
更新模块220,用于当接收到终端设备发送的数字ID信息后,根据所述数字ID信息更新所述数字ID分配信息,所述数字ID信息包括所述终端设备为所述待分配对象分配的最后一个数字ID,以使所述服务器将所述项目对应的数字ID分配信息中的最新数字ID更新为所述最后一个数字ID;在本发明一种可能的实现方式中,若所述服务器为版本控制***SVN服务器,则所述更新模块,包括:判断子模块和更新子模块;
该判断子模块,用于判断所述终端设备发送的修改后的ID文件是否是基于所述SVN服务器中存储的所述当前项目对应的当前最新版本的ID文件进行的修改,所述修改后的ID文件由所述终端设备为所述待分配对象分配完数字ID后,将包含最后一个数字ID的数字ID信息写入所述最新版本的ID文件中得到的;
该更新子模块,用于当确定所述修改后的ID文件是基于所述SVN服务器中存储的所述当前项目对应的当前最新版本的ID文件进行的修改,则将所述SVN服务器中当前最新版本的ID文件更新为所述修改后的ID文件。
所述数字ID分配信息还包括发送所述数字ID信息的终端设备对应的用户信息,以及,发送所述数字ID信息的终端设备本次分配的全部数字ID,以便追踪软件项目开发中的问题。
返回模块230,用于当所述服务器根据所述数字ID信息成功更新所述数字ID分配信息后,向所述终端设备返回更新成功响应消息,以使所述终端设备接收到所述更新成功响应消息后确定所述项目的数字ID分配成功。
通过以上描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。
请参见图10,示出了本发明实施例一种终端设备的框图,该终端设备至少包括处理器410,以及与处理器410通过总线连接的存储器420、发送器430、接收器440。
存储器420内存储程序指令,该存储器可以是高速RAM存储器,也可能是非易失性存储器(non-volatile memory),例如至少一个磁盘存储器等。
处理器410,用于调用存储器420内存储的程序指令,以执行以下方法步骤:
从服务器中获取当前项目对应的数字ID分配信息,所述数字ID分配信息包括已经为所述当前项目中对象分配的最新数字ID;
根据所述最新数字ID确定当前可分配数字ID,并分配给在所述终端设备创建的待分配对象,以使每个所述待分配对象具有一个唯一的数字ID;
触发发送器430将为待分配对象分配的数字ID信息发送给所述服务器,所述数字ID信息包括为所述待分配对象分配的最后一个数字ID,以使所述服务器将所述当前项目对应的所述最新数字ID更新为所述最后一个数字ID、并产生更新成功响应消息;
当检测到接收器440接收到服务器返回的更新成功响应消息后,确定所述待分配对象的数字ID分配成功。
其中,处理器410调用存储器420中的程序指令能够执行上述图1-图4所示的数字ID生成方法实施例,此处不再一一赘述。
其中,该处理器410可能是一个中央处理器CPU,或者是特定集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
本申请提供的终端设备,从该服务器中获得需要分配数字ID的项目所对应的数字ID分配信息,该数字ID分配信息中包括已经为项目分配的最新数字ID。其中,服务器中存储各个项目的数字ID分配信息,每个开发者都可以访问该服务器。然后,该终端设备根据该最新数字ID确定当前可分配数字ID,并分配给终端设备本地的待分配对象,以使本地的每个待分配对象具有一个唯一的数字ID。该终端设备为本地对象分配完数字ID后,将分配的数字ID信息发送至服务器,其中,数字ID信息包括为本地对象分配的最后一个数字ID,以使服务器将该项目对应的最新数字ID更新为所述最后一个数字ID,这样,其它开发者从更新后的最新数字ID继续向后进行分配,从而保证每个开发者分配的数字ID的唯一性。
请参见图11,示出了本发明实施例一种服务器的框图,该服务器包括处理器510,以及与处理器510通过总线连接的发送器520、接收器530和存储器540。
存储器540中存储有程序指令和数据,其中,存储器可以包括程序存储器和数据存储器。其中,程序存储器可以是高速RAM存储器,也可能是非易失性存储器(non-volatilememory),例如至少一个磁盘存储器等。用于存储程序指令;数据存储器用于存储各个项目对应的数字ID分配信息。
在本发明一种可能的实现方式中,在数据存储器中为每个项目创建一个ID文件,将所述项目的数字ID分配信息存储在所述项目对应的ID文件中。
在本发明另一种可能的实现方式中,在数据存储器中建立一个ID文件,所述ID文件包括项目和所述项目对应的ID数据项,所述ID数据项内存储所述项目对应的数字ID分配信息。
接收器530,用于接收终端设备发送的ID请求消息,所述ID请求消息携带请求获得的数字ID分配信息对应的项目编号。
处理器510调用存储器内的程序指令,以执行图3所示的服务器侧的方法步骤。
具体的,处理器510获得ID请求消息后,从存储器540中查询获得项目编号对应的数字ID分配信息,并触发发送器520将该数字ID分配信息发送给终端设备,以使终端设备根据所述最新数字ID确定当前可分配数字ID,并分配给所述终端设备创建的待分配对象,以使每个所述待分配对象具有一个唯一的数字ID;当检测到接收器530接收到终端设备发送的项目中对象分配的数字ID信息后,更新存储器540中存储的该项目对应的数字ID分配信息,其中,将该数字ID分配信息中的最新数字ID更新数字ID信息中的最后一个数字ID,并触发发送器520向终端设备返回封信成功响应消息,以使终端设备根据该更新成功响应消息确定本次分配成功。
本实施例提供的服务器,在服务器中存储各个项目的数字ID分配信息,每个开发者都可以访问该服务器。当终端设备需要为本地某个项目的待分配对象分配数字ID时,服务器能够向终端设备提供相应的数字ID分配信息,该数字ID分配信息包括已经为该项目分配的最新数字ID,以使终端设备根据该最新数字ID确定当前可分配数字ID,并分配给终端设备本地的待分配对象,以使每个待分配对象具有一个唯一的数字ID。当服务器接收到终端设备发送的本次分配的数字ID信息后,其中,该数字ID信息包括本次分配的最后一个数字ID,服务器将该项目对应的数字ID分配信息中的最新数字ID更新为所述最后一个数字ID。并向终端设备返回更新成功消息,以使终端设备确定本次更新成功。这样,其它开发者从更新后的最新数字ID继续向后进行分配,从而保证每个开发者分配的数字ID的唯一性。而且,服务器是已有服务器,不是新开发的服务器,因此不需要额外的开发和维护成本。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (20)
1.一种数字身份标识ID生成方法,应用于终端设备中,其特征在于,包括:
从服务器中获取当前项目对应的数字ID分配信息,所述数字ID分配信息包括已经为所述当前项目中对象分配的最新数字ID;
根据所述最新数字ID确定当前可分配数字ID,并分配给所述终端设备创建的待分配对象,以使每个所述待分配对象具有一个唯一的数字ID;
将为所述待分配对象分配的数字ID信息发送给所述服务器,以使所述服务器根据所述数字ID信息更新所述数字ID分配信息,所述数字ID信息包括为所述待分配对象分配的最后一个数字ID,以使所述服务器将所述数字ID分配信息中的最新ID更新为所述最后一个数字ID;
当接收到所述服务器返回的更新成功响应消息后,确定所述待分配对象的数字ID分配成功,所述更新成功响应消息由所述服务器根据所述数字ID信息成功更新所述数字ID分配信息后产生。
2.根据权利要求1所述的方法,其特征在于,若所述服务器为版本控制***SVN服务器,则所述从服务器中获取当前项目对应的数字ID分配信息,包括:
从所述SVN服务器中获取所述当前项目对应的最新版本的ID文件,所述最新版本的ID文件中存储有所述当前项目对应的最新的数字ID分配信息,所述最新的数字ID分配信息包括所述最新数字ID;
从所述最新版本的ID文件中读取所述当前项目对应的数字ID分配信息;
所述将为所述待分配对象分配的数字ID信息发送给所述服务器,包括:
根据所述数字ID信息写入所述最新版本的ID文件,得到修改后的ID文件;
将所述修改后的ID文件发送给所述SVN服务器;所述修改后的ID文件用于使所述SVN服务器确定所述修改后的ID文件是基于所述SVN服务器内所述当前项目对应的当前最新版本的ID文件修改时,更新所述最新版本的ID文件。
3.根据权利要求1或2所述的方法,其特征在于,所述根据所述最新数字ID,确定当前可分配数字ID,并分配给所述终端设备创建的待分配对象,以使每个所述待分配对象具有一个唯一的数字ID,包括:
若当前待分配对象是第一个待分配的对象,则将所述最新数字ID自增预设步长后得到的数字ID分配给所述当前待分配对象;
若所述当前待分配对象不是所述第一个待分配的对象,则将所述当前待分配对象的上一个待分配对象对应的数字ID增加所述预设步长后得到的数字ID分配给所述当前待分配对象,直到所述终端设备创建的待分配对象全部分配完。
4.根据权利要求1或2所述的方法,其特征在于,所述根据所述最新数字ID,确定当前可分配数字ID,并分配给所述终端设备创建的待分配对象,以使每个所述待分配对象具有一个唯一的数字ID,包括:
确定所述终端设备创建的待分配对象的目标数量;
根据所述目标数量及所述最新数字ID,确定出待分配数字ID范围,所述待分配数字ID范围中的数字ID以预设步长依次递增,且第一个数字ID为所述最新ID以预设步长自增后的数字ID;
将所述待分配数字ID范围内的数字ID逐个分配给各个所述待分配对象,以使每个所述待分配对象具有一个唯一的数字ID。
5.根据权利要求1或2所述的方法,其特征在于,若所述数字ID分配信息中的最新数字ID包括每个对象类型所对应的最新数字ID,则所述根据所述最新数字ID,确定当前可分配数字ID,并分配给所述终端设备创建的待分配对象,以使每个所述待分配对象具有一个唯一的数字ID,包括:
确定当前待分配对象的对象类型;
若所述当前待分配对象是所述对象类型中第一个待分配的对象,则从所述数字ID分配信息中获取所述对象类型对应的最新数字ID,并将所述最新数字ID增加预设步长后得到的数字ID分配给所述当前待分配对象;
若所述当前待分配对象不是所述对象类型中的第一个待分配的对象,则将所述对象类型中所述当前待分配对象的上一个待分配对象对应的数字ID增加预设步长后得到数字ID分配给所述当前待分配对象。
6.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
当接收到所述服务器返回的更新失败响应消息后,返回重新执行所述从服务器中获取当前项目对应的数字ID分配信息的步骤,直到接收到所述服务器返回的更新成功响应消息。
7.根据权利要求1或2所述的方法,其特征在于,所述数字ID为32位或64位二进制数。
8.一种数字身份标识ID生成方法,应用于服务器中,其特征在于,所述版本管理服务器中存储有各个项目对应的数字ID分配信息,所述数字ID分配信息包括已经为所述各个项目分配的最新数字ID,所述方法包括:
所述服务器向终端设备返回所述终端设备请求获得的当前项目所对应的数字ID分配信息,所述数字ID信息包括已经为所述当前项目分配的最新数字ID,以使所述终端设备根据所述最新数字ID确定当前可分配数字ID,并分配给所述终端设备创建的待分配对象,以使每个所述待分配对象具有一个唯一的数字ID;
当接收到所述终端设备发送的数字ID信息后,所述服务器根据所述数字ID信息更新所述数字ID分配信息,所述数字ID信息包括所述终端设备为所述待分配对象分配的最后一个数字ID,以使所述服务器将所述项目对应的数字ID分配信息中的最新数字ID更新为所述最后一个数字ID;
当所述服务器根据所述数字ID信息成功更新所述数字ID分配信息后,向所述终端设备返回更新成功响应消息,以使所述终端设备接收到所述更新成功响应消息后确定所述项目的数字ID分配成功。
9.根据权利要求8所述的方法,其特征在于,若所述服务器为版本控制***SVN服务器,则所述服务器向终端设备返回所述终端设备请求获得的当前项目所对应的数字ID分配信息,包括:
所述SVN服务器向所述终端设备返回所述当前项目对应的最新版本的ID文件,所述最新版本的ID文件中包含所述当前项目对应的数字ID分配信息,以使所述终端设备从所述最新版本的ID文件中读取所述数字ID分配信息;
所述当接收到所述终端设备发送的数字ID信息后,所述服务器根据所述数字ID信息更新所述数字ID分配信息,包括:
所述SVN服务器判断所述终端设备发送的修改后的ID文件是否是基于所述SVN服务器中存储的所述当前项目对应的当前最新版本的ID文件进行的修改;所述修改后的ID文件由所述终端设备为所述待分配对象分配完数字ID后将包含最后一个数字ID的数字ID信息写入所述最新版本的ID文件中得到;
如果是基于所述SVN服务器中存储的所述当前项目对应的当前最新版本的ID文件进行的修改,则将所述SVN服务器中的当前最新版本的ID文件更新为所述修改后的ID文件。
10.根据权利要求8或9所述的方法,其特征在于,所述数字ID分配信息还包括发送所述数字ID信息的终端设备对应的用户信息,以及,发送所述数字ID信息的终端设备本次分配的全部数字ID。
11.一种数字身份标识ID生成装置,应用于终端设备中,其特征在于,包括:
第一获取模块,用于从服务器中获取当前项目对应的数字ID分配信息,所述数字ID分配信息包括已经为所述当前项目中对象分配的最新数字ID;
ID分配模块,用于根据所述最新数字ID确定当前可分配数字ID,并分配给在所述终端设备创建的待分配对象,以使每个所述待分配对象具有一个唯一的数字ID;
发送模块,用于将为所述待分配对象分配的数字ID信息发送给所述服务器,以使所述服务器根据所述数字ID信息更新所述数字ID分配信息,所述数字ID信息包括为所述待分配对象分配的最后一个数字ID,以使所述服务器将所述数字ID分配信息中的最新ID更新为所述最后一个数字ID;
确定模块,用于当接收到所述服务器返回的更新成功响应消息后,确定所述待分配对象的数字ID分配成功,所述更新成功响应消息由所述服务器根据所述数字ID信息成功更新所述数字ID分配信息后产生。
12.根据权利要求11所述的装置,其特征在于,若所述服务器为版本控制***SVN服务器,则所述第一获取模块,包括:
第一获取子模块,用于从所述SVN服务器中获取所述当前项目对应的最新版本的ID文件,所述最新版本的ID文件中存储有所述当前项目对应的最新的数字ID分配信息,所述最新的数字ID分配信息包括所述最新数字ID;
读取子模块,用于从所述最新版本的ID文件中读取所述当前项目对应的数字ID分配信息;
所述发送模块,包括:
写入子模块,用于将所述数字ID信息写入所述最新版本的ID文件,得到修改后的ID文件;
发送子模块,用于将所述修改后的ID文件发送给所述SVN服务器;所述修改后的ID文件用于使所述SVN服务器确定所述修改后的ID文件是基于所述SVN服务器内所述当前项目对应的当前最新版本的ID文件修改时,更新所述最新版本的ID文件。
13.根据权利要求11或12所述的装置,其特征在于,所述ID分配模块,包括:
第一分配子模块,用于当当前待分配对象是第一个待分配的对象时,将所述最新数字ID增加预设步长后得到的数字ID分配给所述当前待分配对象;
第二分配子模块,用于当所述当前待分配对象不是第一个待分配的对象时,将所述当前待分配对象的上一个待分配对象对应的数字ID增加所述预设步长后得到的数字ID分配给所述当前待分配对象,直到所述终端设备创建的待分配对象全部分配完。
14.根据权利要求11或12所述的装置,其特征在于,所述ID分配模块,包括:
第一确定子模块,用于确定所述终端设备创建的待分配对象的目标数量;
第二确定子模块,用于根据所述目标数量及所述最新数字ID,确定出待分配数字ID范围,所述待分配数字ID范围中的数字ID以预设步长依次递增,且第一个数字ID为所述最新ID以预设步长自增后的数字ID;
第三分配子模块,用于将所述待分配数字ID范围内的数字ID逐个分配给各个所述待分配对象,以使每个所述待分配对象具有一个唯一的数字ID。
15.根据权利要求11或12所述的装置,其特征在于,若所述数字ID分配信息中的最新数字ID包括每个对象类型所对应的最新ID,则所述ID分配模块,包括:
第三确定子模块,用于确定当前待分配对象的对象类型;
第四分配子模块,用于当所述当前待分配对象是所述对象类型中第一个待分配的对象时,从所述数字ID分配信息中获取所述对象类型对应的最新数字ID,并将所述最新数字ID增加预设步长后得到数字ID分配给所述当前待分配对象;
第五分配子模块,用于当所述当前待分配对象不是所述对象类型中的第一个待分配的对象时,将所述对象类型中所述当前待分配对象的上一个待分配对象对应的数字ID增加预设步长后得到数字ID分配给所述当前待分配对象。
16.根据权利要求11或12所述的装置,其特征在于,所述装置还包括:
返回执行模块,用于当接收到所述服务器返回的更新失败响应消息后,控制所述ID分配模块重新执行所述从服务器中获取当前项目对应的数字ID分配信息的步骤,直到接收到所述服务器返回的更新成功响应消息。
17.根据权利要求11或12所述的装置,其特征在于,所述数字ID为32位或64位二进制数。
18.一种数字身份标识ID生成装置,应用于服务器中,其特征在于,所述服务器中存储有各个项目对应的数字ID分配信息,所述数字ID分配信息包括已经为所述各个项目中对象分配的最新数字ID;所述装置包括:
发送模块,用于向终端设备返回所述终端设备请求获得的当前项目所对应的数字ID分配信息,所述数字ID信息包括已经为所述当前项目分配的最新数字ID,以使所述终端设备根据所述最新数字ID确定当前可分配数字ID,并分配给所述终端设备创建的待分配对象,以使每个所述待分配对象具有一个唯一的数字ID;
更新模块,用于当接收到所述终端设备发送的数字ID信息后,根据所述数字ID信息更新所述数字ID分配信息,所述数字ID信息包括所述终端设备为所述待分配对象分配的最后一个数字ID,以使所述服务器将所述项目对应的数字ID分配信息中的最新数字ID更新为所述最后一个数字ID;
返回模块,用于当所述服务器根据所述数字ID信息成功更新所述数字ID分配信息后,向所述终端设备返回更新成功响应消息,以使所述终端设备接收到所述更新成功响应消息后确定所述项目的数字ID分配成功。
19.根据权利要求18所述的装置,其特征在于,若所述服务器为版本控制***SVN服务器,则,
所述发送模块,包括:第一发送子模块,用于向所述终端设备返回所述当前项目对应的最新版本的ID文件,所述最新版本的ID文件中包含所述当前项目对应的数字ID分配信息,以使所述终端设备从所述最新版本的ID文件中读取所述当前项目对应的所述数字ID分配信息;
所述更新模块,包括:
判断子模块,用于判断所述终端设备发送的修改后的ID文件是否是基于所述SVN服务器中存储的所述当前项目对应的当前最新版本的ID文件进行的修改,所述修改后的ID文件由所述终端设备为所述待分配对象分配完数字ID后,将包含最后一个数字ID的数字ID信息写入所述最新版本的ID文件中得到的;
更新子模块,用于当确定所述修改后的ID文件是基于所述SVN服务器中存储的所述当前项目对应的当前最新版本的ID文件进行的修改,则将所述SVN服务器中的所述当前最新版本的ID文件更新为所述修改后的ID文件。
20.根据权利要求18或19所述的装置,其特征在于,所述数字ID分配信息还包括发送所述数字ID信息的终端设备对应的用户信息,以及,发送所述数字ID信息的终端设备本次分配的全部数字ID。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611018935.8A CN106341497B (zh) | 2016-11-18 | 2016-11-18 | 数字id生成方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611018935.8A CN106341497B (zh) | 2016-11-18 | 2016-11-18 | 数字id生成方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106341497A true CN106341497A (zh) | 2017-01-18 |
CN106341497B CN106341497B (zh) | 2019-08-30 |
Family
ID=57841391
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611018935.8A Active CN106341497B (zh) | 2016-11-18 | 2016-11-18 | 数字id生成方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106341497B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106911780A (zh) * | 2017-02-28 | 2017-06-30 | 北京三快在线科技有限公司 | 业务id生成方法、装置及*** |
CN108647193A (zh) * | 2018-04-20 | 2018-10-12 | 河南中烟工业有限责任公司 | 一种可应用于分布式***的唯一标识符生成方法及装置 |
CN111787131A (zh) * | 2020-06-24 | 2020-10-16 | 百度在线网络技术(北京)有限公司 | Id生成方法和电子设备 |
CN112905585A (zh) * | 2019-11-19 | 2021-06-04 | 北京沃东天骏信息技术有限公司 | 一种编号生成方法和装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101043401A (zh) * | 2006-03-23 | 2007-09-26 | 华为技术有限公司 | 一种网络服务流标识的分配、更新方法 |
CN101706894A (zh) * | 2009-10-30 | 2010-05-12 | 深圳市科陆电子科技股份有限公司 | 电子标签数据管理方法 |
CN103034492A (zh) * | 2012-12-06 | 2013-04-10 | 广东欧珀移动通信有限公司 | 一种安卓设备资源id分段分配方法和*** |
CN103139255A (zh) * | 2011-11-30 | 2013-06-05 | 腾讯科技(深圳)有限公司 | 分配资源标识和标识段的方法 |
CN105812248A (zh) * | 2016-05-09 | 2016-07-27 | 腾讯科技(深圳)有限公司 | 标识取值的分配方法和装置 |
-
2016
- 2016-11-18 CN CN201611018935.8A patent/CN106341497B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101043401A (zh) * | 2006-03-23 | 2007-09-26 | 华为技术有限公司 | 一种网络服务流标识的分配、更新方法 |
CN101706894A (zh) * | 2009-10-30 | 2010-05-12 | 深圳市科陆电子科技股份有限公司 | 电子标签数据管理方法 |
CN103139255A (zh) * | 2011-11-30 | 2013-06-05 | 腾讯科技(深圳)有限公司 | 分配资源标识和标识段的方法 |
CN103034492A (zh) * | 2012-12-06 | 2013-04-10 | 广东欧珀移动通信有限公司 | 一种安卓设备资源id分段分配方法和*** |
CN105812248A (zh) * | 2016-05-09 | 2016-07-27 | 腾讯科技(深圳)有限公司 | 标识取值的分配方法和装置 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106911780A (zh) * | 2017-02-28 | 2017-06-30 | 北京三快在线科技有限公司 | 业务id生成方法、装置及*** |
CN106911780B (zh) * | 2017-02-28 | 2020-12-04 | 北京三快在线科技有限公司 | 业务id生成方法、装置及*** |
CN108647193A (zh) * | 2018-04-20 | 2018-10-12 | 河南中烟工业有限责任公司 | 一种可应用于分布式***的唯一标识符生成方法及装置 |
CN108647193B (zh) * | 2018-04-20 | 2021-11-19 | 河南中烟工业有限责任公司 | 一种可应用于分布式***的唯一标识符生成方法及装置 |
CN112905585A (zh) * | 2019-11-19 | 2021-06-04 | 北京沃东天骏信息技术有限公司 | 一种编号生成方法和装置 |
CN111787131A (zh) * | 2020-06-24 | 2020-10-16 | 百度在线网络技术(北京)有限公司 | Id生成方法和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN106341497B (zh) | 2019-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107577427B (zh) | 用于区块链***的数据迁移方法、设备和存储介质 | |
CN108898390A (zh) | 基于区块链的智能合约调用方法及装置、电子设备 | |
CN109003078A (zh) | 基于区块链的智能合约调用方法及装置、电子设备 | |
CN107395665A (zh) | 一种区块链业务受理及业务共识方法及装置 | |
CN106341497A (zh) | 数字id生成方法及装置 | |
CN111079101B (zh) | 基于区块链的侵权取证方法及装置、电子设备、存储介质 | |
CN106407430A (zh) | 一种基于阶段桶的复杂智能合约状态同步方法 | |
CN110113393B (zh) | 一种消息推送方法、装置、电子设备及介质 | |
CN104933363A (zh) | 检测恶意文件的方法和装置 | |
CN109302495A (zh) | 一种数据存储方法及装置 | |
CN108898368B (zh) | 资源的转移方法和装置、存储介质、电子装置 | |
CN104636437A (zh) | 一种事件通知方法、***的处理方法及装置 | |
US8352442B2 (en) | Determination of an updated data source from disparate data sources | |
CN114281893A (zh) | 一种区块链交易的处理方法、装置及设备 | |
CN111597567A (zh) | 数据处理方法、装置、节点设备及存储介质 | |
JP6903570B2 (ja) | 情報操作 | |
CN110910143A (zh) | 身份标识生成方法、装置、相关节点及介质 | |
CN109491962A (zh) | 一种文件目录树管理方法及相关装置 | |
CN113542405A (zh) | 基于区块链的网络通信***、方法、设备及存储介质 | |
CN111652451A (zh) | 社交关系的获取方法和装置及存储介质 | |
CN115002211B (zh) | 基于云原生的售后微服务实现方法、装置、设备及介质 | |
CN108710658B (zh) | 一种数据记录的存储方法及装置 | |
CN107527228B (zh) | 一种发送电子券的方法及装置 | |
CN114493598A (zh) | 计算资源管理方法、装置、计算机设备和存储介质 | |
CN109815047A (zh) | 一种数据处理的方法和相关装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |