终端设备管理树管理对象实例化的方法及设备 本申请要求于2007年11月15日提交中国专利局、申请号为200710187278.4、发明名称为“终端设备管理树管理对象实例化的方法及设备”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
【技术领域】
本发明涉及通信技术领域,尤其涉及终端设备管理树管理对象实例化的方法及设备。
背景技术
OMA DM(Open Mobile Alliance Device Management,开放移动联盟设备管理)工作组制定了设备管理的统一规范。在该规范中,第三方(如移动运营商、业务提供商或者合作方的信息管理部门)利用DM服务器(DeviceManagement,设备管理)管理和设置无线网络终端设备(比如手机终端设备及终端设备中的功能对象)中的环境和配置信息,解决这些网络设备在使用过程中遇到的问题。所述DM服务器和终端设备组成一个DM系统,在该系统中,DM服务器可通过无线网络(Over the Air,OTA)方式对终端设备进行管理和设置,如软件和固件的安装、升级等操作,以提供个性化的服务,提高用户体验。
如图1所示,在DM系统中,终端设备上的DM Agent(代理)用于解释和执行DM服务器下发的管理命令。终端设备上存储的DM管理树可以被认为是一个DM Server(服务器)通过DM协议对终端设备进行管理的接口。该管理树包括一些基本管理对象(Management Object,MO),DM服务器通过下发操作命令对管理树对象进行操作,以达到控制终端设备管理对象的目的。其中,操作命令有Get(获取)、Replace(替换)、Exec(执行)、Copy(复制)、Delete(删除)等。
在终端设备的管理树中存在着一类未命名节点,起到占位符的作用,当服务器或终端设备对此类未命名节点进行实例化时,此类未命名节点才会被命名,这类节点可称为x节点。
如图2所示,DM协议中定义了一个标准管理对象DevInfo(设备信息),在管理树中此对象的作用是存储终端设备的基本信息,例如,DevId为设备标识,Man为生产厂商,Ext用于扩展,Bearer表示承载网络。在Ext和Bearer下面分别有一个未命名的节点x和y,节点x和y就可被称为x节点。终端设备在运行状态下,节点x和y可能会被实例化并被命名,例如y节点可能被命名为CDMA。图2中的*号表示节点可以出现零次或多次。当然,也可以为+号,表示可出现一次或多次,因此y节点还可以被多次实例化,例如还可以被实例化为GSM,此时在Bearer下存在CDMA和GSM两个节点。
如图3所示,实施化的DevInfo(设备信息)管理对象中,x节点被实例化为3个名字不同的节点:VendorSpecial1、VendorSpecial2和VendorSpecial3。
x节点可以分为两类:内部节点和叶子节点。内部节点是指在此节点下还有其他子节点。叶子节点是指在此节点下不能包括子节点。例如,图4的Push管理对象中的x节点即为内部节点,图2中的x节点即为叶子节点。另外,管理树中的节点还可分为永久节点和动态节点,永久节点是指终端设备在出厂前已经创建的节点,不能被删除,而动态节点是指终端设备在出厂后的运行状态下可以被创建和删除的节点。x节点属于动态节点。
另外,DM协议规定,对于每个节点,无论是已命名节点还是x节点都包含属于自身的Framework(框架)属性,Framwork属性是由DDF(设备描述框架)定义的。DDF是设备厂商用于描述其终端设备内部的管理树结构的文档,包括节点间关系,节点属性等。一个节点的Framework属性包括AccessType(访问类型)、DefaultValue(默认值)、Occurrence(出现次数)等,用以标识一个节点的特征。
发明人在实现本发明的过程中,发现现有技术存在如下不足:
现有技术中对于创建终端管理树管理对象实例化中x节点的命名问题,并未规定具体的命名方法。一种可能的情况是,服务器在创建x节点时对其命名,此时x节点可能会被命名为一些无意义的字符,例如用纯数字来命名等,这将导致当另一个服务器在查询该节点时,不清楚该节点的具体含义,例如,在图4中,服务器查询TrustedSMSC节点时,能查询到它的下一层有多少个实例以及实例的名称,但若实例名称无意义,服务器则无法了解这些实例是什么含义,这些实例的下一层又包含什么内容。只有当查询到该节点的下一层节点后才能明确该节点的含义(如根据该节点有哪些下一层节点,推知该节点的具体含义),导致终端设备与服务器之间的交互次数过多、处理时资源占用率高、处理时间过长。
【发明内容】
本发明实施例提供一种终端设备管理树管理对象实例化的方法及设备,用以在对节点进行查询时,通过节点名称获知节点内容。
本发明实施例提供一种终端设备管理树管理对象实例化的方法,该方法包括:
为终端设备管理树管理对象中的未命名节点或者未命名节点的指定节点添加节点值;
获取数据信息,所述数据信息与所述未命名节点或者未命名节点的内容相关联;
根据所述数据信息,生成所述未命名节点的名称;
在终端设备管理树中添加所述终端设备管理树管理对象的实例。
本发明实施例还提供一种查询终端设备管理树管理对象实例中节点内容的方法,该方法包括:
接收获取命令,获取终端设备管理树管理对象实例中已命名节点的名称,所述已命名节点的名称是根据获取的数据信息所生成的未命名节点的名称,所述数据信息与所述未命名节点或者未命名节点的指定节点的内容相关联;
根据所述获取的已命名节点的名称,获取所述已命名节点的内容。
本发明实施例还提供一种通信设备,包括:
节点值添加模块,用于为终端设备管理树管理对象中的未命名节点或者未命名节点的指定节点添加节点值;
获取模块,用于获取数据信息,所述数据信息与所述未命名节点或者未命名节点的指定节点的内容相关联;
生成模块,用于根据所述数据信息,生成所述未命名节点的名称;
实例化模块,用于根据所述未命名节点的名称和为所述终端设备管理树管理对象中指定节点添加的节点值,在终端设备管理树中添加所述终端设备管理树管理对象的实例。
本发明实施例还提供一种通信设备,包括:
节点名称获取模块,用于根据接收的获取命令,获取终端设备管理树管理对象实例中已命名节点的名称,所述已命名节点的名称是,根据获取的数据信息生成的未命名节点名称;所述数据信息与所述未命名节点或者未命名节点的指定节点的内容相关联;
节点内容获取模块,用于根据节点名称获取模块获取的已命名节点的名称获取所述已命名节点的内容。
本发明实施例中,为终端设备管理树管理对象中的未命名节点的指定节点添加节点值,获取数据信息,该数据信息与终端设备管理树管理对象实例中未命名节点的内容相关联;根据获取的数据信息,生成未命名节点的名称,在终端设备管理树中添加所述终端设备管理树管理对象的实例。从而使后续在对该节点进行查询时,可以通过该节点的名称获知该节点的具体含义及包含的大致内容,与现有技术中在终端设备管理树管理对象实例中该节点未命名或命名无意义时,服务器需要查询该节点的下一层节点才能获知该节点的含义及包含的大致内容的技术方案相比,减少了查询节点的次数,例如服务器与终端设备之间的交互次数,可以节省了空口资源和处理时间;并且为终端设备管理树管理对象中的未命名节点提供了一种规范化的命名方式和表现形式。
【附图说明】
图1为背景技术中DM系统的结构示意图;
图2为背景技术中设备信息管理对象的结构示意图;
图3为背景技术中实例化的设备信息管理对象的结构示意图;
图4为背景技术中Push对象的结构示意图;
图5为本发明实施例中终端设备管理树管理对象实例化的处理流程图;
图6为本发明实施例中DM帐号管理对象的部分结构示意图;
图7为本发明实施例中业务梗概管理对象的部分结构示意图;
图8为本发明实施例中DM帐号管理对象的部分结构示意图;
图9为本发明实施例中软件模块管理对象的部分结构示意图;
图10为本发明实施例中远程定制管理对象的部分结构示意图;
图11A、图11B、图11C、图12为本发明实施例中通信设备的结构示意图;
图11D为本发明实施例中生成模块的结构示意图。
【具体实施方式】
下面结合说明书附图对本发明实施例进行详细说明。
如图5所示,本发明实施例中,终端设备管理树管理对象实例化的处理流程如下:
步骤51、为终端设备管理树管理对象中未命名节点的指定节点添加节点值。所述指定节点包括所述未命名节点的子节点,或其他管理对象中的节点;
步骤52、获取数据信息,所述数据信息与所述未命名节点的内容相关联;根据所述数据信息,生成所述未命名节点的名称。例如,可以获取预设的数据信息;或者,可以获取用户提供的数据信息;或者,可以获取运营商提供的数据信息。。
步骤53、在终端设备管理树中添加所述终端设备管理树管理对象的实例。
后续在查询该节点时,可以从该节点的名称提取数据信息,根据提取的数据信息确定该节点的内容。
图5所示流程中,可以由服务器或终端设备在创建所述终端设备管理树管理对象实例时,生成该节点的名称。其中的数据信息可以通过默认命名规则预先设定,例如,数据信息可以是预设的未命名节点(x节点)的指定节点的名称,其中,指定节点是指为了对x节点进行命名而预先指定的一个节点,该节点可能是x节点的子节点,也可能是其他管理对象中的某个节点。在根据数据信息生成未命名节点的名称时,可以将未命名节点的指定节点的节点值设置为未命名节点的名称。实施中,可以通过DDF(设备描述框架)定义,即在创建终端设备管理树管理对象(MO)定义时,使用DDF为x节点增加一个新的属性,其属性名称为Naming。一个具体实例如下:
<MgmtTree>
<VerDTD>1.2</VerDTD>
<Man>‑‑The device manufacturer‑‑</Man>
<Mod>‑‑The device model‑‑</Mod>
<Node>
<NodeName/>
<DFProperties>
<AccessType/>
<DFFormat>
<node/>
</DFFormat>
<Occurrence>
<OneOrMore/>
</Occurrence>
<DFTitle>‑‑The Interior node‑‑</DFTitle>
<Naming>ServerID</Naming>
</DFProperties>
<Node>
<NodeName>AppID</NodeName>
……
</Node>
<Node>
<NodeName>ServerID</NodeName>
……
</Node>
……
</Node>
</MgmtTree>
上述实例是DMAcc(DM帐号)管理对象的DDF(省略了其他节点),其中在<NodeName/>处即为未命名的x节点,它下面列出了两个子节点AppID和ServerID,从例子中可见在x节点的Naming属性中,为它指定了默认命名规则即x节点的指定节点的名称为ServerID。
默认命名规则也可以通过在设备中保存下面的默认命名规则列表来实现,此列表指定了x节点的默认命名规则。此列表一个具体实例如下:
表1.默认命名规则列表
编 号 父节点名称 指定节点名称
1 Download PkgID
2 AppAuth AAuthType
3 EmbeddedLinks $SoftwareID
上表中,第二列表示x节点的父节点的名称,第三列表示x节点的指定节点名称,其中前2行的指定节点名称为x节点的子节点名称,第3行的指定节点名称为可变的其他节点名称。由此可见,数据信息可以是未命名节点的父节点与指定节点的名称的对应关系;根据数据信息生成未命名节点的名称时,可以根据未命名节点的父节点名称及前述对应关系,确定未命名节点的指定节点的名称,将该指定节点的节点值设置为未命名节点的名称。
一个具体实体如图6所示,其中示出了DMAcc(DM帐号)管理对象的一部分,该部分用于存储终端设备的验证信息。服务器在对它进行实例化之前,可以先对其中的x节点进行命名。
由于在表1的默认命名规则列表中此类x节点的指定节点名称为AAuthType,设它的节点值是HMAC,则x节点被命名为为HMAC。
之后服务器可以向终端设备下发管理命令,在终端设备中创建此实例,终端收到后把此实例添加到自己的管理树上。这样,当其他服务器需要查询AppAuth节点下是否包含HMAC实例时,只需对AppAuth节点进行Get操作,遍历其反馈的各个子节点名称即可实现查询目的。而如果各个实例的名称为无意义的符号,则服务器需要对每个实例的AAuthType进行Get操作,才能实现查询目的。
在用节点值设置为未命名节点的名称时,若该节点值中包含有特殊字符,则将节点值替换为预设的字符,例如,若节点值的类型不是字符型或整型、节点值含有特殊字符,如“/”,可以用预设的字符来替代节点值。若该节点值的长度超过阈值,则可以截取该节点值中的部分字符设置为未命名节点的名称。
图5所示流程中,为未命名节点命名之前,可以先确定未命名节点是否为叶子节点。在确定未命名节点是叶子节点时,数据信息可以是未命名节点的节点值(所述叶子节点的节点值是系统为终端设备管理树管理对象中未命名节点添加的节点值);在根据数据信息生成未命名节点的名称时,可以将未命名节点的节点值设置为未命名节点的名称。另一种可能的实现方式时,先根据前述默认命名规则对命名节点进行命名,若未命名节点没有默认命名规则时,再采用确定是否为叶子节点的方法。
一个具体实例如图7所示,其中示出了当服务器需要在终端中创建Security schemes(业务梗概)管理对象实例时,服务器先对其中的x节点进行命名。在表1默认命名规则列表中,此类节点没有默认命名规则。而此节点是一个叶子节点,设其节点值为MD5,则此x节点被命名为MD5。
服务器对所有x节点进行命名后,下发添加此MO的管理命令,终端设备收到此命令,把MO添加到自己的管理树上。这样,当其他服务器需要查询此MO中是否包含MD5的安全方案时,只需对节点Security schemes进行Get操作,遍历其反馈的各个子节点名称即可实现查询目的。而如果各个子节点的名称为任意指定的无意义的符号,则服务器需要Get每个子节点的值才能实现查询目的。
在确定未命名节点不是叶子节点,即未命名节点是内部节点时,可以再确定该未命名节点包含的子节点个数。若未命名节点仅包含一个子节点,此时数据信息可以是该一个子节点的节点值;在根据数据信息生成未命名节点的名称时,可以将该一个子节点的节点值设置为未命名节点的名称。
一个具体实例如图8所示,其中DM帐号管理对象中的节点ToConRef下含有一个x节点,若并未对此类节点规定默认命名规则,而它只有一个子节点,则使用此子节点的节点值来命名此x节点。设此节点值是包含”/”的,则此x节点可命名为ConRef‑1,若ToConRef下再增加新的实例,则可命名为ConRef‑2、ConRef‑3等,以此类推。
之后服务器下发添加此MO实例的管理命令,终端设备收到此命令,把MO实例添加到自己的管理树上。
在确定未命名节点为内部节点并且包含多个子节点时,数据信息可以是该多个子节点的节点值;根据数据信息生成未命名节点的名称时,可以将未命名节点包含的所有子节点的名称与预设的关键字列表中的关键字进行匹配,在仅匹配成功一个子节点时,以该匹配成功的子节点的节点值设置为未命名节点的名称;在匹配成功多个子节点时,从该匹配成功的多个子节点中选取一个子节点的节点值设置为未命名节点的名称。
匹配时可以先确定未命名节点包含的所有子节点的名称与预设的关键字列表中的关键字是否相等,确定相等时,匹配成功;确定不相等时,再确定未命名节点包含的各个子节点的名称中是否包含预设的关键字列表中的关键字字符,确定包含时,匹配成功。
关键字列表与节点名称相对应,保存于设备中,该列表可以根据节点类型的增多而不断扩展,例如一列表为{ID,Name,Addr}。
在匹配成功多个子节点时,可以根据与关键字匹配成功的子节点的优先级,从该匹配成功的多个子节点中选取一个子节点的节点值设置为未命名节点的名称。可以根据与关键字匹配成功的子节点的顺序、是否有对应的节点值、对应的节点值的类型、对应的节点值的长度其中之一或任意组合,确定匹配成功的关键字的优先级。
一个具体实例如图9所示,其中软件模块管理对象中的x节点下含有一个名为ID的子节点和名为Name的子节点,设在默认命名规则列表中,此类节点没有默认命名规则,此节点又是一个内部节点,则把它的各子节点名称与关键字列表(如{ID,Name,Addr})进行匹配,匹配到了两个结果,即ID和Name,然后按照关键字的顺序来选取,则选择ID。设ID节点的节点值是Office,则x的名称为Office。
之后服务器下发添加此MO实例的管理命令,终端设备收到此命令,并把MO实例添加到自己的管理树上。
图8中的DMAcc(DM怅号)管理对象,在终端设备出厂时需要配置此管理对象的信息,终端设备才能跟服务器进行会话。配置的过程称为Bootstrap(引导),Bootstrap的方式有CP Profile(客户端供应方式)和DM Profile(DM供应方式),在用CP Profile对终端进行Bootstrap时,服务器会下发CP数据包,此时会由终端设备根据此数据包的内容创建一个DMAcc MO实例,创建时终端设备为未命名的节点进行命名。
例如对于图8中的根节点,它是一个x节点,假设它的Naming属性值为ServerID,则此时用ServerID节点的节点值来命名x节点,设ServerID节点的值为ServerDM,则此x节点被命名为ServerDM。
将未命名节点包含的所有子节点的名称与预设的关键字列表中的关键字相匹配时,若匹配失败,可以任选一个子节点的节点值,作未命名节点的名称。
一个实施例中,在将子节点的节点值设置为未命名节点的名称时,若该子节点没有对应的节点值,则将该子节点的名称设置为未命名节点的名称。在用节点名称设置为未命名节点的名称时,若该节点名称中包含有特殊字符,则将节点名称替换为预设的字符,例如,若节点名称的类型不是字符型或整型、节点名称含有特殊字符,如“/”,可以用预设的字符来替代节点值等。若该节点名称的长度超过阈值,则可以截取该节点名称中的部分字符设置为未命名节点的名称。
下面分别在两种场景中使用本发明实施例命名方法为终端设备管理树中的x节点命名。
场景一服务器在创建终端设备管理树管理对象实例(下称MO实例)时命名
此场景是指,服务器在为终端设备创建MO实例之前,对其中的x节点进行命名,然后把MO实例通过管理命令下发给终端设备。
此场景的处理流程包括:
A、服务器首先为欲创建的MO实例中所有需要添加节点值的指定节点添加节点值。节点值可以是服务器上预设的节点值,也可以是用户通过网站向服务器提供的节点值,还可以是运营商向服务器提供的节点值。
B、服务器检索欲创建的MO实例中存在的x节点,对于检索到的每一个x节点,按照以下步骤对其进行命名,其中默认命名规则以表1所示的默认命名规则列表为例:
a、服务器查询x节点是否存在默认命名规则。若存在,则把对应的指定节点的节点值设置为x节点的名称(参见图6实例),其中指定节点名称可能为一个变量,此变量应该在本步骤前已经被赋值。例如,表1中的SoftwareID在本步骤前应该已经被赋值,设其值为MediaPlayer,而“$”符号的作用是获取变量的值,此时$SoftwareID就是MediaPlayer。当指定节点名称中包含“$”符号时,可以直接使用指定节点名称为x节点命名。命名结束,转入步骤C;若默认命名规则不存在,则转入步骤b;
b、服务器判断此x节点是否为叶子节点,若是,则以此x节点的值设置为其名称(参见图7实例),命名结束,转入步骤C;若不是,转入步骤c;
c、服务器判断此x节点是否只有一个子节点,若是,则把子节点的节点值设置为此x节点的名称(参见图8实例),命名结束,转入步骤C;若不是,转入步骤d;
d、服务器查询此x节点的每一个子节点的名称,搜索与节点名称关键字列表(如{ID,Name,Addr})中的各关键字匹配的名称,匹配时检查所有子节点名称是否等于关键字列表中的任何一个名称,若有,则记录下来,匹配结束;若无,则再次检查各个子节点名称是否包含关键字列表中的关键字字符,若有,则记录下来,匹配结束。若匹配成功,则服务器在匹配记录中选取一个子节点的节点值来命名此x节点。选取时可以按照与关键字匹配成功的子节点的优先级进行选择,例如按顺序选择(参见图9实例),或按与关键字匹配成功的子节点是否有对应的节点值、对应的节点值的类型、对应的节点值的长度其中之一或任意组合选择。命名结束,转入步骤C;若匹配全部失败,转入步骤e;
e、服务器任选一个子节点,以其节点值来命名此x节点。若选取的子节点没有节点值、节点值为空、节点值包含特殊字符、节点值的长度超过阈值,则服务器选取其它具有符合条件的节点值的子节点,以其节点值来命名此x节点。
在步骤c、d、e中,若子节点的节点值不存在,即子节点是一个内部节点或节点值为空,则在命名时使用其节点名称来命名x节点;若节点值的类型不是字符型或整型,或节点值含有特殊字符,如“/”,则用预设的字符来替代节点值;若节点值的长度超过阈值,则可以截取该节点值或节点名称中的部分字符设置为未命名节点的名称。
C、服务器下发创建MO实例的设备管理消息给终端设备,在此消息中x节点已按上述步骤进行了命名。
D、终端设备接收到服务器下发的消息后,在管理树中创建此MO实例。
经过上述步骤,服务器完成对x节点的命名操作。
场景二:终端设备在创建MO实例时命名
除了服务器为终端设备创建MO实例的情况,终端设备也可能自己创建MO实例,包括终端设备处理服务器下发的数据包时创建,终端设备连接一个新硬件时创建,或按用户要求创建。
例如,在用CP Profile(客户端供应方式)对终端设备进行Bootstrap(引导)时,服务器会下发CP数据包,此时终端设备会创建一个MO实例,若MO中存在未命名的节点,则终端设备将为其命名。
再如,用户在终端设备上为某应用程序的收藏夹添加URL时,终端设备会在管理树的某个位置创建一个MO实例来存放此URL信息,例如添加在./Customization/EmbeddedLinks/IE/Links/<x>上。
此场景的处理流程包括:
A、终端设备首先为欲创建的MO中所有需要添加节点值的指定节点添加节点值,根据不同的情况,节点值可能来自于数据包或用户输入。
B、终端设备检索欲创建的MO中存在的x节点,对于检索到的每一个x节点,按照如下步骤对其进行命名:
a、终端设备查询x节点是否存在默认命名规则。若存在,则把对应的指定节点的节点值设置为x节点的名称,其中指定节点名称可能为一个变量,此变量应该在本步骤前已经被赋值。例如,表1中的SoftwareID在本步骤前应该已经被赋值,设其值为MediaPlayer,而“$”符号的作用是获取变量的值,此时$SoftwareID的值就是MediaPlayer。当指定节点名称中包含“$”符号时,直接使用指定节点名称为x节点命名。命名结束时,转入步骤C;若默认命名规则不存在,则转入步骤b;
b、终端设备判断此x节点是否为叶子节点,若是,则以此x节点的值设置为其名称,命名结束,转入步骤C;若不是,转入步骤c;
c、终端设备判断此x节点是否只有一个子节点,若是,则把子节点的节点值设置为此x节点的名称,命名结束,转入步骤C;若不是,转入步骤d;
d、终端设备查询此x节点的每一个子节点的名称,搜索关键字列表(如{ID,Name,Addr})中的各关键字匹配的名称,匹配时检查所有子节点名称是否等于关键字列表中的任何一个名称,若有,则记录下来,匹配结束;若无,则再次检查各个子节点名称是否包含关键字列表中的关键字字符,若有,则记录下来,匹配结束。若匹配成功,则终端设备在匹配记录中选取一个子节点的节点值来命名此x节点。选取时可以按照与关键字匹配成功的子节点的优先级进行选择,例如按顺序选择,或按与关键字匹配成功的子节点是否有对应的节点值、对应的节点值的类型、对应的节点值的长度其中之一或任意组合选择。命名结束,转入步骤C;若匹配全部失败,转入步骤e;
e、终端设备任选一个子节点,以其节点值来命名此x节点。若选取的子节点没有节点值、节点值为空、节点值包含特殊字符、节点值的长度超过阈值,则终端设备选取其它具有符合条件的节点值的子节点,以其节点值来命名此x节点。
在步骤c、d、e中,若子节点的节点值不存在,即子节点是一个内部节点或节点值为空,则在命名时使用其节点名称来命名x节点;若节点值的类型不是字符型或整型,或节点值含有特殊字符,如“/”,则用预设的字符来替代节点值;若节点值的长度超过阈值,则可以截取该节点值或节点名称中的部分字符设置为未命名节点的名称。
C、终端设备在管理树中创建此MO。
经过上述步骤,终端设备完成对x节点的命名工作。
一个具体实例如图10所示,其中远程定制管理对象的EmbeddedLinks节点为终端设备中Customization节点下的一个子节点,它包含终端设备中各个应用程序的收藏夹信息。EmbeddedLinks/<x>中的x用来标识应用程序,例如MediaPlayer、IE等,Links/<x>中的x用来标识应用程序中收藏的链接。
假设用户在使用MediaPlayer时要为此程序添加一个链接,用户将提供此链接的URL、Name、UserName等信息给终端设备,则终端在命名此MO中的x节点时,对于EmbeddedLinks/<x>中的x节点,在默认命名规则列表(表1)中对它规定了默认命名规则,为$SoftwareID,SoftwareID在此时已被赋值为MediaPlayer,则此x节点被命名为MediaPlayer。
对于Links/<x>中的x节点,在默认命名规则列表(表1)中并未对其规定默认命名规则,然后把它的各子节点名称与关键字列表进行匹配,匹配到一个结果,即Name,(根据匹配方法,此时UserName不会匹配成功),设Name节点的值为www.mp3.com,则此x节点被终端命名为www.mp3.com。
或者,假设Name节点的值为www.thelongestdomainnameintheworldandthensomeandthensomemoreandmore.com,超过了Devdetail管理对象中MaxSegLen参数规定的长度,例如MaxSegLen的值为30,则此时可以截断Name的节点值,把此x节点命名为thelongestdomainname。
对于Links/<x>中的x节点,假设匹配失败,则任意选取一个子节点用于命名,例如选择UserName子节点,设它的节点值为Michael,则把此x节点命名为Michael。
一个实施例中,为未命名节点命名时,可以在节点的名称中加入创建终端设备管理树管理对象实例的服务器或终端设备的标识符,用以识别终端设备管理对象是由哪个服务器创建的,或是由终端设备自己创建的。下面仍以图10的管理对象为例。
若由服务器来创建MO实例,EmbeddedLinks/<x>中的x可被命名为ServerA‑MediaPlayer,Links/<x>中的x可被命名为ServerA‑www.mp3.com。其中ServerA为创建此MO的服务器的ID。
若由终端来创建MO实例,它们可分别命名为IMEI1234‑MediaPlayer和IMEI1234‑www.mp3.com。其中1234为创建此MO的终端的IMEI号后4位。
基于同一发明构思,本发明实施例还提供一种通信设备,其结构如图11A所示,包括:节点值添加模块111、获取模块112、生成模块113、实例化模块114;其中,节点值添加模块111,用于为终端设备管理树管理对象中的未命名节点或者未命名节点的指定节点添加节点值,所述指定节点是所述未命名节点的子节点,或其他管理对象中的某个节点;获取模块112,用于获取数据信息,该数据信息与未命名节点或者未命名节点的指定节点的内容相关联;生成模块113,用于根据获取的数据信息,生成未命名节点的名称;实例化模块114,用于根据未命名节点的名称和为终端设备管理树管理对象中指定节点添加的节点值,在终端设备管理树中添加终端设备管理树管理对象的实例。
一个实施例中,获取模块112还可以用于获取预设的该数据信息;或,获取用户提供的该数据信息;或,获取运营商提供的该数据信息。
一个实施例中,数据信息为未命名节点的指定节点的名称;生成模块113还可以将未命名节点的指定节点的节点值设置为未命名节点的名称;
或,数据信息为未命名节点的父节点与指定节点的名称的对应关系;生成模块113还可以用于根据未命名节点的父节点名称、对应关系,确定未命名节点的指定节点的名称,将指定节点的节点值设置为未命名节点的名称。
如图11B所示,一个实施例中,图11A所示的通信设备还可以包括:第一确定模块115,用于确定未命名节点是否为叶子节点;此时,在确定未命名节点为叶子节点时,数据信息为未命名节点的节点值;生成模块113还可以用于将未命名节点的节点值设置为未命名节点的名称。
如图11C所示,一个实施例中,图11B所示的通信设备还可以包括;第二确定模块116,用于在确定未命名节点为内部节点时,确定未命名节点包含的子节点个数;此时,在确定未命名节点包含一个子节点时,数据信息为一个子节点的节点值;生成模块113还可以用于将一个子节点的节点值设置为未命名节点的名称。
一个实施例中,在确定未命名节点包含多个子节点时,数据信息为多个子节点的节点值;如图11D所示,生成模块113可以包括:匹配单元1131、生成单元1132;其中,匹配单元1131用于将未命名节点包含的所有子节点的名称与预设的关键字列表中的关键字进行匹配;生成单元1132用于在仅匹配成功一个子节点时,以该匹配成功的子节点的节点值设置为未命名节点的名称;在匹配成功多个子节点时,从该匹配成功的多个子节点中选取一个子节点的节点值设置为未命名节点的名称。
一个实施例中,匹配单元1131还可以用于确定未命名节点包含的所有子节点的名称与预设的关键字列表中的关键字是否相等,确定相等时,匹配成功;确定不相等时,进一步确定未命名节点包含的各个子节点的名称中是否包含预设的关键字列表中的关键字字符,确定包含时,匹配成功。
一个实施例中,生成单元1132还可以用于根据与关键字匹配成功的子节点的优先级,从该匹配成功的多个子节点中选取一个子节点的节点值设置为未命名节点的名称。生成单元1132还可以用于根据与关键字匹配成功的子节点的顺序、是否有对应的节点值、对应的节点值的类型、对应的节点值的长度其中之一或任意组合,确定与关键字匹配成功的子节点的优先级。
一个实施例中,生成单元1132还可以用于在匹配失败时,任选一个子节点的节点值,设置为未命名节点的名称。
生成模块113还可以用于在将子节点的节点值设置为未命名节点的名称时,若该子节点没有对应的节点值,则将该子节点的名称设置为未命名节点的名称。
生成模块113还可以用于在将节点值设置为未命名节点的名称时,若该节点值中包含有特殊字符,则将节点值替换为预设的字符。
图11A、图11B、图11C所示的通信设备可以为终端设备或服务器,生成模块113还可以用于在创建终端设备管理树管理对象实例时,生成未命名节点的名称。
生成模块113还可以用于在生成未命名节点的名称时,在未命名节点的名称中加入创建终端设备管理树管理对象实例的服务器或终端设备的标识符。
基于同一发明构思,本发明实施例还提供一种通信设备,其结构如图12所示,包括:节点名称获取模块121,用于下发获取命令,获取终端设备管理树管理对象实例中已命名节点的名称,所述已命名节点的名称是,根据获取的数据信息生成的未命名节点名称;所述数据信息与所述未命名节点的内容相关联;节点内容获取模块122,用于根据已命名节点的名称获取已命名节点的内容。
一个实施例中,已命名节点的名称为已命名节点的指定节点的节点值,或已命名节点的节点值,或已命名节点的子节点的名称。
本领域普通技术人员可以理解上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
本发明实施例中,获取数据信息,该数据信息与终端设备管理树管理对象实例中未命名节点的内容相关联;根据获取的数据信息,生成未命名节点的名称,从而使后续在对该节点进行查询时,可以通过该节点的名称获知该节点的具体含义及包含的大致内容,与现有技术中在该节点未命名或命名无意义时,服务器需要查询该节点的下一层节点才能获知该节点的含义及包含的大致内容的技术方案相比,减少了查询节点的次数,例如服务器与终端设备之间的交互次数,可以节省了空口资源和处理时间;并且为终端设备管理树管理对象中的未命名节点提供了一种规范化的命名方式和表现形式。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若对本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。