具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
本发明实施例提供的方法包括:ACS为第一实例对象指定第一指定实例号,并向CPE发送携带第一实例对象的第一指定实例号的消息,通知该CPE将第一指定实例号作为第一实例对象的实例号。
ACS在对不同CPE创建同一实例对象时,可以为该实例对象指定同一实例号,并将该指定实例号通知给CPE,CPE将该指定实例号作为该实例对象的实例号。
下面举几个具体实施例对该方法进行详细描述。
实施例一:
图1为本发明第一实施例提供的方法流程图,在该实施例中,ACS可以在创建对象实例过程中,由ACS为创建的同一实例对象指定实例号,来对该实例对象进行统一管理。假设该创建的实例对象为第一实例对象,如图1所示,该方法可以包括以下步骤:
步骤101:ACS在发送给CPE的AddObject消息中携带为第一实例对象指定的第一指定实例号。
在本步骤中,ACS可以在AddObject消息中增加实例号(InstanceNumber)参数,在该InstanceNumber参数中携带为该AddObject消息创建的实例对象指定的实例号。表3为本发明第一实施例提供的AddObject消息的参数构成。
表3
参数 |
类型 |
描述 |
ObjectName |
string(256) |
用于被创建的新实例的对象集合的路径名。路径名必须是在对象层级名字的最后一个节点后加上一个”.”(点)来结尾。 |
ParameterKey |
string(32) |
该参数的值由服务器来决定,也可以为空。 |
InstanceNumber |
UnsignedInt[1:] |
为创建的实例对象指定的实例号。一旦被创建,就可以在路径名中使用实例号引用这个对象中的参数和子对象。该实例号是由ACS所指派。 |
步骤102:CPE接收到该AddObject消息后,获取指定的第一指定实例号,并检查该第一指定实例号是否已被占用,如果是,则继续执行步骤103;如果否,则执行步骤105。
步骤103:CPE为已占用该第一指定实例号的第二实例对象分配另外一个未被占用的实例号,并将ACS指定的第一指定实例号作为第一实例对象的实例号。
步骤104:CPE向ACS返回包含为第二实例对象分配另外一个未被占用的实例号信息的AddObject响应消息。
例如,如果ACS为第一实例对象指定的第一指定实例号为5,而CPE检查到该实例号5已被其它实例对象占用,则为该占用实例号5的其它实例对象另外分配一个未被占用的实例号,例如,如果实例号8尚未被使用,则将该实例号8分配给占用实例号5的实例对象,而将实例号5作为第一实例对象的实例号。
步骤105:CPE将ACS指定的第一指定实例号作为第一实例对象的实例号,向ACS返回包含第一指定实例号未被占用的信息的响应消息。
本步骤中,可以在AddObject响应消息中设置修改实例号(ChangeNumber)参数,利用该ChangeNumber参数携带为第二实例对象分配另外一个未被占用的实例号信息。表4为本发明第一实施例提供的AddObject响应消息的参数构成。在返回的AddObject响应消息中,如果ACS指定的第一指定实例号未被占用,则可以返回包含第一指定实例号未被占用的信息的AddObject响应消息,例如,可以返回ChangeNumber参数值为0的AddObject响应消息。
表4
参数 |
类型 |
描述 |
ChangeNumber |
UnsignedInt[1:] |
占用第一指定实例号的实例对象被重新分配的实例号。该实例号由CPE所指派。如果对没有占用第一指定实例号,则返回值为0。 |
Status |
int[0:1] |
这个方法的成功响应返回一个整数的枚举类型:0=实例对象已经创建1=创建的实例对象已经验证和提交,但还没有应用 |
另外,本步骤中,如果CPE将第一指定实例号作为第一实例对象的实例号的步骤执行失败,则可以向ACS返回包含执行失败信息的AddObject响应消息。
实施例二:
图2为本发明第二实施例提供的方法流程图,该实施例中,ACS同样在创建对象实例过程中,由ACS为创建的同一实例对象指定实例号,来对该实例对象进行统一管理,另外,ACS还为已占用该指定的实例号的实例对象指定另外一个实例号。如图2所示,该方法可以包括以下步骤:
步骤201:ACS在发送给CPE的AddObject消息中携带为第一实例对象指定的第一指定实例号、以及为已占用该第一指定实例号的实例对象指定的第二指定实例号。
本步骤中,ACS除了在AddObject消息中增加InstanceNumber参数,在该InstanceNumber参数中携带为该AddObject消息创建的实例对象指定的实例号之外,还在AddObject消息中增加changeNumber参数,在该changeNumber参数中携带为已占用第一指定实例号的实例对象指定的第二指定实例号。表5为本发明第二实施例提供的AddObject消息的参数构成。
表5
参数 |
类型 |
描述 |
ObjectName |
string(256) |
用于被创建的新实例的对象集合的路径名。路径名必须是在对象层级名字的最后一个节点后加上一个”.”(点)来结尾。 |
ParameterKey |
string(32) |
该参数的值由服务器来决定,也可以为空。 |
InstanceNumber |
UnsignedInt[1:] |
为创建的实例对象指定的实例号。一旦被创建,就可以在路径名中使用实例号引用这个对象中的参数和子对象。该实例号是由ACS所指派。 |
ChangeNumber |
UnsignedInt[1:] |
占用第一指定实例号的实例对象被重新分配的实例号。该实例号由ACS所指派。 |
步骤202:CPE接收到该AddObject消息后,获取指定的第一指定实例号,并检查该第一指定实例号是否已被占用,如果是,则继续执行步骤203;如果否,则执行步骤204。
步骤203:将第二指定实例号作为已占用第一指定实例号的实例对象的实例号。
步骤204:CPE将ACS指定的第一指定实例号作为第一实例对象的实例号。
例如,如果ACS为第一实例对象指定的第一指定实例号为5,为占用第一指定实例号的实例对象指定另一实例号,即第二指定实例号8,而CPE检查到该实例号5已被其它实例对象占用,则为该占用实例号5的其它实例对象的实例号修改为实例号8,并将实例号5作为第一实例对象的实例号。
步骤205:CPE向ACS返回表征执行成功的AddObject响应消息。
本步骤中,CPE在成功执行了创建该实例对象,并将ACS指定的第一指定实例号作为该实例对象的实例号后,向ACS返回AddObject响应消息。表6为本发明第二实施例提供的AddObject响应消息的参数构成。
表6
参数 |
类型 |
描述 |
Status |
int[0:1] |
这个方法的成功响应返回一个整数的枚举类型:0=实例对象已经创建1=创建的实例对象已经验证和提交,但还没有应用 |
实施例三:
图3为本发明第三实施例提供的方法流程图,该实施例中,ACS可以在接收到CPE返回的包含随机分配的实例号的AddObject响应消息后,由ACS将同一实例对象的实例号指定为同一指定实例号,并将包含指定实例号的修改实例号(ChangeInstanceNumber)消息发送给CPE。假设要修改的实例对象为第一实例对象,如图3所示,该方法可以包括以下步骤:
步骤301:ACS接收CPE返回的包含随机分配给第一实例对象的实例号信息的AddObject响应消息。
步骤302:ACS向CPE发送ChangeInstanceNumber消息,该ChangeInstanceNumber消息中包含CPE随机分配的实例号,以及为该第一实例对象重新指定的第一指定实例号。
本步骤中,该ChangeInstanceNumber消息可以是另外设置的一种用于修改实例号的消息,在该消息中,可以设置原实例号(PrimalNumber)参数,来携带CPE原来随机为该第一实例对象随机分配的实例号,设置InstanceNumber参数携带ACS重新为该第一实例对象指定的实例号,即第一指定实例号。表7为本发明第三实施例提供的ChangeInstanceNumber消息的参数构成。
表7
参数 |
类型 |
描述 |
PrimalNumber |
UnsignedInt[1:] |
实例对象被创建时,CPE随机分配的实例号。 |
InstanceNumber |
UnsignedInt[1:] |
由ACS指定的实例号。 |
步骤303:CPE接收到该ChangeInstanceNumber消息后,获取指定的第一实例号,并检查该第一指定实例号是否已被占用,如果是,则继续执行步骤304;如果否,则执行步骤306。
步骤304:CPE为已占用该第一指定实例号的第二实例对象分配另外一个未被占用的实例号,并将ACS指定的第一指定实例号作为第一实例对象的实例号。
本步骤中,CPE根据ACS发送的ChangeInstanceNumber消息中携带的内容,将随机分配给第一实例对象的实例号替换为第一指定实例号。
步骤305:CPE向ACS返回包含为第二实例对象分配另外一个未被占用的实例号信息的ChangeInstanceNumber响应消息。
步骤306:CPE将ACS指定的第一指定实例号作为第一实例对象的实例号,并向ACS返回包含第一指定实例号未被占用的信息的响应消息。
本步骤中,可以在ChangeInstanceNumber响应消息中设置ChangeNumber参数,利用该ChangeNumber参数携带为第二实例对象分配另外一个未被占用的实例号信息,还可以在该ChangeInstanceNumber响应消息中设置状态(Status)参数,用来携带修改第一实例对象实例号成功与否的信息。表8为本发明第三实施例提供的ChangeInstanceNumber响应消息的参数构成。在返回的ChangeInstanceNumber响应消息中,如果ACS指定的第一指定实例号未被占用,则可以返回包含第一指定实例号未被占用的信息的ChangeInstanceNumber响应消息,例如,可以返回ChangeNumber参数值为0的ChangeInstanceNumber响应消息。
表8
参数 |
类型 |
描述 |
ChangeNumber |
UnsignedInt[1:] |
占用第一指定实例号的实例对象被重新分配的实例号。该实例号由CPE所指派。如果对没有占用第一指定实例号,则返回值为0。 |
Status |
int[0:1] |
这个方法的成功响应返回一个整数的枚举类型:0=修改实例号失败1=修改实例号成功 |
实施例四:
图4为本发明第四实施例提供的方法流程图,该实施例中,ACS可以在接收到CPE返回的包含随机分配的实例号的AddObject响应消息后,由ACS将同一实例对象的实例号指定为同一指定实例号,假设为第一指定实例号,另外,ACS还为已占用该指定的实例号的实例对象指定另外一个实例号,假设为第二指定实例号,并将包含为第一指定实例号和第二指定实例号的ChangeInstanceNumber消息发送给CPE。假设要修改的实例对象为第一实例对象,已占用第一指定实例号的实例对象为第二实例对象。如图4所示,该方法可以包括以下步骤:
步骤401:ACS接收CPE返回的包含随机分配给第一实例对象的实例号信息的AddObject响应消息。
步骤402:ACS在发送给CPE的ChangeInstanceNumber消息中携带CPE为第一实例对象随机分配的实例号、ACS为第一实例对象指定的第一指定实例号、以及为已占用该第一指定实例号的第二实例对象指定的第二指定实例号。
本步骤中,该ChangeInstanceNumber消息可以是另外设置的一种用于修改实例号的消息,在该消息中,可以设置PrimalNumber参数,来携带CPE原来随机为该第一实例对象随机分配的实例号,设置InstanceNumber参数携带ACS重新为该第一实例对象指定的实例号,即第一指定实例号,并且,设置ChangeNumber参数携带为第二实例对象指定的第二实例号。表9为本发明第三实施例提供的ChangeInstanceNumber消息的参数构成。
表9
参数 |
类型 |
描述 |
PrimalNumber |
UnsignedInt[1:] |
实例对象被创建时,CPE随机分配的实例号。 |
InstanceNumber |
UnsignedInt[1:] |
由ACS指定的实例号。 |
ChangeNumber |
UnsignedInt[1:] |
为占用第一指定实例号的实例对象重新指定的实例号。该实例号由ACS所指派。 |
步骤403:CPE接收到该ChangeInstanceNumber消息后,获取指定的第一实例号,并检查该第一指定实例号是否已被占用,如果是,则继续执行步骤404;如果否,则执行步骤405。
步骤404:将第二指定实例号作为已占用第一指定实例号的第二实例对象的实例号。
步骤405:CPE将ACS指定的第一指定实例号作为第一实例对象的实例号。
步骤406:CPE向ACS返回表征执行成功的ChangeInstanceNumber响应消息。
本步骤中,CPE在完成了对该第一指定对象实例的实例号修改后,向ACS返回ChangeInstanceNumber响应消息。表10为本发明第四实施例提供的ChangeInstanceNumber响应消息的参数构成。
表10
参数 |
类型 |
描述 |
Status |
int[0:1] |
这个方法的成功响应返回一个整数的枚举类型:0=修改实例号失败1=修改实例号成功 |
该发明实施例对应的软件可以存储在一个计算机可读存储区介质中.
图5为本发明实施例提供的***结构图,如图5所示,该***主要包括:ACS 500和CPE 510。
其中,ACS 500,用于为第一实例对象指定第一指定实例号,并向CPE发送携带第一实例对象的第一指定实例号的消息。
CPE 510,用于接收ACS 500发送的消息,将第一指定实例号作为第一实例对象的实例号。
ACS 500在对不同CPE创建同一实例对象时,可以为该实例对象指定同一实例号,即上述的第一指定实例号,并将该第一指定实例号通知给CPE,CPE将该指定实例号作为该实例对象的实例号。
ACS可以将该第一指定实例号携带在AddObject消息中,也可以携带在另外设置的ChangeInstanceNumber消息中,当然,也可以携带在其它消息中发送给CPE。
另外,CPE 510,还可以用于检查第一指定实例号是否已被占用,如果已被占用,则为已占用第一指定实例号的第二实例对象分配另外一个未被占用的实例号,并将包含为第二实例对象分配的实例号信息的响应消息返回给ACS。
ACS 500,还可以用于将自身为已占用第一指定实例号的第二实例对象指定的第二指定实例号携带在消息中,用于通知所述CPE将该第二实例对象的实例号替换为第二指定实例号。
图6为本发明实施例提供的ACS结构图,如图6所示,该ACS可以包括:消息生成单元601和消息发送单元602。
消息生成单元601,用于为第一实例对象指定第一指定实例号,并生成携带第一实例对象的第一指定实例号的消息。
消息发送单元602,用于发送消息生成单元601生成的消息。
其中,消息生成单元601可以包括:第一实例号指定单元603和消息生成子单元604。
第一实例号指定单元603,用于为第一实例对象指定第一指定实例号。
消息生成子单元604,用于生成AddObject消息或ChangeInstanceNumber消息,该AddObject消息或ChangeInstanceNumber消息中携带有第一指定实例号。
消息发送单元602具体用于发送AddObject消息或ChangeInstanceNumber消息。
另外,消息生成单元601还可以包括:第二实例号指定单元605,用于为已占用第一指定实例号的第二实例对象指定第二指定实例号。
消息生成子单元604,还用于在生成的AddObject消息或ChangeInstanceNumber消息中携带第二指定实例号。
另外,该ACS还包括:消息接收单元606,用于接收CPE发送的包含随机分配给第一实例对象的实例号的AddObject响应消息。
消息生成子单元604,还用于获取AddObject响应消息中携带的CPE为第一实例对象分配的实例号,并在生成的ChangeInstanceNumber消息中携带CPE为第一实例对象分配的实例号,用于通知所述CPE将该随机分配给第一实例对象的实例号替换为所述第一指定实例号。
图7为本发明实施例提供的CPE结构图,如图7所示,该CPE可以包括:消息接收单元701和第一实例号配置单元702。
消息接收单元701,用于接收ACS 500发送的携带第一实例对象的第一指定实例号的消息。
第一实例号配置单元702,用于将第一指定实例号作为第一实例对象的实例号。
另外,在本发明的一个实施例中,CPE 700还可以包括:检查单元704和第二实例号配置单元703。
检查单元704,用于检查第一指定实例号是否已被占用。
第二实例号配置单元703,用于在检查单元704的检查结果为第一指定实例号已被占用的情况下,将消息接收单元701接收的消息中携带的第二指定实例号作为已占用第一指定实例号的第二实例对象的实例号。
在本发明的另一个实施例中,CPE 700还可以包括:检查单元704和第三实例号配置单元705。
检查单元704,用于检查第一指定实例号是否已被占用。
第三实例号配置单元705,用于在检查单元704的检查结果为第一指定实例号已被占用的情况下,为已占用第一指定实例号的第二实例对象分配另外一个未被占用的实例号。
该CPE 701还可以包括:响应消息发送单元706,用于根据第一实例号配置单元702的执行结果向ACS 500返回响应消息。
另外,该返回的响应消息中还可以包含第二实例号配置单元703的执行结果、或第三实例号配置单元705的执行结果。
由以上描述可以看出,本发明实施例提供的方法、***和设备中,ACS为第一实例对象指定第一指定实例号,并向CPE发送携带第一实例对象的第一指定实例号的消息,通知该CPE将第一指定实例号作为第一实例对象的实例号。通过该方法,ACS对多个CPE创建同一实例对象的情况下,可以将各CPE的同一实例对象指定为同一实例号,在对该实例对象进行调用时,不需要再对各个CPE进行查询和判断,只需使用同一实例号即可完成,从而减轻来了ACS对CPE管理的负担。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。