网管系统中资源标识分配的方法及装置的制造方法_2

文档序号:9846505阅读:来源:国知局
中分配模块另一实施例的细化功能模块示意图。
[0046]本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
【具体实施方式】
[0047]应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0048]本发明提供一种网管系统中资源标识分配的方法,参照图1,在一实施例中,该网管系统中资源标识分配的方法包括:
[0049]步骤S101,获取所需要分配的业务资源的资源类型及资源标识的取值数量,根据所述资源类型获取系统支持的资源类型;
[0050]本实施例中,预设置网管系统所支持的所有类型的业务资源的资源标识的取值范围。资源标识在分配的过程中经过排序。假设本网管系统支持的业务资源有三类,分别为A类型,B类型及C类型,它们的资源标识的取值范围分别为1-500,100001-4000000,20000001-100000000。将这些业务资源及对应的取值范围预置于网管系统中。
[0051]获取所需要分配的业务资源的资源类型,判断网管系统中是否有持该资源类型的业务资源。如果不是本网管系统支持的资源类型,例如为D类型时,则直接退出分配。
[0052]本实施例中,所需要分配的业务资源的资源标识的取值数量为用户所指定并输入的,其可以为任意正整数。
[0053]步骤S102,获取所述系统支持的资源类型的资源标识的取值范围,在所述取值范围中查找所有的已使用资源标识;
[0054]本实施例中,获取所述系统支持的资源类型的资源标识的取值范围,如系统支持的资源类型为A类型,其取值范围为1-500。
[0055]由于网管系统中资源类型繁多,且同一类型下可能分别存储于不同的数据库表格,因此查找所有的已使用资源标识包括:查询各类业务(如以太网业务,ATM业务等)数据,从网管系统的数据库中查询出此资源类型已经使用的标识值的业务,如果异常,则退出;否则从查询出的业务数据中求算出这些已使用的业务的标识,并剥离出业务的资源标识,生成资源标识的集合,然后对生成的资源标识的集合进行排序,以便于之后查找运算。
[0056]步骤S103,根据所述取值数量、取值范围及已使用资源标识对所述业务资源进行资源标识的分配。
[0057]本实施例中,在网管系统中申请已使用资源标识的内存空间,采用现有的二叉树搜索算法,将取值范围中的资源标识逐一与已使用资源标识进行比较,具体地将取值范围中的一资源标识作为起始值(可以是一随机值),如果此起始值为已使用资源标识,则起始值+1,再将加I后的值与已使用资源标识进行比较,如果已使用资源标识中未搜索到此值,则此值为可用的资源标识,将此值记录下来,并继续搜索查找下一值,直到查询到用户指定数目的资源标识集合。
[0058]另外,如果在此取值范围内还未查询到用户指定数目的资源标识,则进行异常提示,提示用户无法分配指定数目的资源标识,即如果用户要求分配10个资源标识,而取值范围内只有8个资源标识可用使用时,则最后用户得到的提示是无法分配足够多的资源标识。
[0059]本实施例中,不需要申请由资源标识的最小到最大值范围决定的数组的内存空间,该数组的内存空间如果资源标识的最小到最大值范围超出一定值时,申请的内存空间可能有上百兆比特,可能会将网管系统的某一进程内存空间耗尽;而本实施例无须申请资源标识的最小到最大值范围内的内存空间,只需要申请已使用资源标识的内存空间即可,此内存空间一般很较小,只有几千比特,因此,本实施例内存占用小,分配更快。
[0060]与现有技术相比,本实施例在网管系统中分配资源标识时,根据系统支持的资源类型的取值范围及已使用资源标识为所需要分配的业务资源分配一定数量的资源标识,由于只需要申请已使用资源标识的内存空间,因此不会因资源标识支持的范围过大而无法进行分配,大大减少内存占用的空间,且分配速度更快,能够提高网管系统的性能。
[0061]在一优选的实施例中,如图2所示,在上述图1的实施例的基础上,上述步骤S103包括:
[0062]步骤S1031,在所述取值范围内生成一随机数;
[0063]步骤S1032,将以所述随机数为起始至所述取值范围的最大值之间及以所述取值范围的最小值为起始至所述随机数之间的资源标识逐一与所述已使用资源标识进行比较;
[0064]步骤S1033,若所述资源标识与所述已使用资源标识不同,则将所述资源标识作为所分配的资源标识,直至所分配的资源标识的数量达到所述取值数量。
[0065]本实施例中,根据系统支持的资源类型的取值范围,以此取值范围的最小值及最大值为依据,生成随机数,该随机数大于最小值而小于最大值。
[0066]以随机数为分配的起始值进行分配,首先将起始值与已使用资源标识进行比较,如果起始值与已使用资源标识不同,则该起始值可用于分配,进行记录,如果相同,则该起始值已经被使用,不能用于分配;然后跳过该起始值,再进行比较,直至所分配的资源标识的数量达到取值数量。
[0067]本实施例可以先在随机值至最大值之间进行分配,然后再在最小值至随机数之间进行分配,或者先在在最小值至随机数之间进行分配,然后在在随机值至最大值之间进行分配。
[0068]在一优选的实施例中,上述步骤S103进一步包括:
[0069]将以所述随机数为起始至所述取值范围的最大值之间的第一资源标识逐一与所述已使用资源标识进行比较;
[0070]若所述第一资源标识与所述已使用资源标识不同,则将所述第一资源标识作为所分配的资源标识,直至所分配的资源标识的数量达到所述取值数量;
[0071]若在所述随机数至最大值之间所分配的资源标识的数量未达到所述取值数量时,将以所述取值范围的最小值为起始至所述随机数之间的第二资源标识逐一与所述已使用资源标识进行比较;
[0072]若所述第二资源标识与所述已使用资源标识不同,则将所述第二资源标识作为所分配的资源标识,直至所分配的资源标识的数量达到所述取值数量。
[0073]其中,以先在随机值至最大值之间进行分配,然后再在最小值至随机数之间进行分配最佳,可以提高分配的命中率,达到快速分配。
[0074]以随机数为分配的起始值进行分配,首先将起始值(即第一资源标识)与已使用资源标识进行比较,如果起始值与已使用资源标识不同,则该起始值可用于分配,进行记录,如果相同,则该起始值已经被使用,不能用于分配;然后将起始值+1,再进行比较,直至所分配的资源标识的数量达到取值数量。
[0075]例如A类型的资源标识的取值范围为1-500,随机数为I 一 500中的301,将301做为之后运算的起始值。从随机数301开始,到500为止,在此范围内进行取值,如301,302,303……500,并将每个值与已使用资源标识进行比较,然后下个取值需要增加1,即302,将302再与已使用资源标识进行比较。
[0076]本实施例的随机数的作用是为了避免以下可能存在的场景:如从最小值为起始值进行分配,如果分配了某一资源标识,而此资源标识下发到设备报错,再次进行分配时,则还将分配同一资源标识,再次下发设备还报错,这样进入死循环。而设置了随机数,则可保证即使即值某个资源标识下发至设备报错,但下次分配时的随机数与之前随机数不同,这样就跳过之前分配的资源标识,从而避免进入死循环。
[0077]另外,本实施例由于起始值为随机数,不需要进行查询资源标识分配时的预存值,减少数据库的查询,可以加快资源标识的分配,实现快速分配。
[0078]本实施例中,如果从随机数至取值范围的最大值
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1