具体实施方式
本发明实施例提供一种上报设备信息的方法、用户终端和服务器,第一次建立会话业务时,用户终端向服务器上报设备信息,并保存已向所述服务器上报设备信息的上报标识信息,再次发起新的会话业务时,根据保存的所述上报标识信息,判断是否已向服务器上报过设备信息,在已向所述服务器上报过设备信息时,不必再次上报,节约了传输资源。
优选的,在设备管理会话业务或数据同步会话业务中,可以通过在用户终端上的管理对象树中保存所述上报标识信息,来达到本发明的目的。
在进行本发明的实施例的描述之前,首先介绍关于用户终端的管理对象树的相关概念,以便理解。
遵循OMADM和OMADS的用户终端的内部都会存在一个管理对象树,用户终端中的MO(Management Object,被管理对象)按一定的标准生成相应等级结构的树,管理对象树的每一个节点(即被管理对象)都被惟一的一个URI(Uniform Resource Identifier,通用资源标志符)所标识,每一个节点都可以由服务器来管理,服务器通过对这些节点的操作达到控制用户终端中的被管理对象的目的。
如图3所示为本发明实施例的OMA DM系统结构示意图,其中,用户终端中的DM Agent(代理)用于解释和执行设备管理服务器下发的管理命令,该DM管理对象树可以被认为是一个设备管理服务器通过DM协议对用户终端进行管理的接口。
DM管理对象树和被管理对象是由节点组成的,例如根节点、内部节点和叶子节点,节点有属于自己的Framework(框架)属性。一个节点的Framework属性包括AccessType(访问类型)、DefaultValue(默认值)、Occurrence(出现次数)、DFType(节点类型)等,用以标识一个节点的特征。其中DFType对于叶子节点来说描述其MIME类型,而对于内部节点来说描述其MOI(管理对象标识)或为空值。另外在管理对象树中存在着一类未命名节点,它起到占位符的作用,当服务器或用户终端对它进行实例化时,它才会被命名,这类节点叫做x节点。
另外,在OMA DM协议中给出了三个标准的管理对象,分别为:DMAccount管理对象、DevInfo管理对象和DevDetail管理对象。其中DM Account管理对象用来管理和存储设备管理的相关参数,例如设备管理服务器的标识、地址、认证方式等;DM DevInfo管理对象用来管理和存储用户终端的基本设备信息,如设备标识、制造厂家、型号、承载方式等;而DM DevDetail管理对象则是对DevInfo的扩展,给出了设备类型、固件版本、软/硬件版本等其它信息。如图4和图5所示分别为本发明实施例的DM Account管理对象和DMDevInfo管理对象结构示意图。
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
如图6所示为本发明实施例的上报设备信息的方法流程示意图,所述方法包括以下步骤:
步骤61,在与服务器建立会话业务时,判断是否保存了标识已向所述服务器上报设备信息的上报标识信息。
步骤62,在未保存所述上报标识信息时,向所述服务器上报设备信息。
步骤63,在向所述服务器上报所述设备信息时,保存标识已向所述服务器上报设备信息的上报标识信息。
步骤64,在已保存所述上报标识信息时,无须上报设备信息,直接进行后续的会话业务。
上述上报标识信息,可以为任何代表已向所述服务器上报过设备信息的标识信息,例如,所述服务器的ID(身份标识号码)、所述服务器的名称、所述服务器的地址、向所述服务器上报所述设备信息的时间、和/或标识是否已向所述服务器上报所述设备信息的标识子节点。
根据上述步骤的描述,在步骤61中判断出已保存所述上报标识信息时,说明已向所述服务器上报过设备信息,此时无须再次上报。
上述方法还包括:
在接收到所述服务器发送的获取设备信息的请求时,上报设备信息,并保存标识已向所述服务器上报设备信息的上报标识信息。
可以采用多种方式保存所述上报标识信息,对于设备管理和数据同步会话业务来说,优选的,可以通过在用户终端的管理对象树中保存所述上报标识信息,从而通过查询所述管理对象树,来判断是否已向所述服务器上报过设备信息。
对于设备管理会话业务来说,可以采用两种方法在管理对象树里保存所述上报标识信息。
第一种方法是,在管理对象树中创建服务器管理子树,添加标识已向所述服务器上报设备信息的子节点,保存的所述服务器的信息包括:服务器的ID,当然也可以包括服务器的其他上报信息,如服务器的地址、上报设备信息的时间等,如图7所示为本发明实施例的DM服务器管理子树示意图。
对图7中的DM服务器管理子树各节点描述如下:
ServerRev节点为所有已接收过设备信息的设备管理服务器的父节点,节点的描述如下表所示:
Status | Tree Occurrence | Format | Min.Access Types |
REQUIRED | One | Node | Get |
X*节点为已接收过设备信息的设备管理服务器的占位符,节点的描述如下表所示:
Status | Tree Occurrence | Format | Min.Access Types |
REQUIRED | Zero Or More | Node | Get |
ServerID节点为叶子节点,保存已接收设备信息的设备管理服务器的ID,用于唯一的表示该设备管理服务器的身份,节点的描述如下表所示:
Status | Tree Occurrence | Format | Min.Access Types |
REQUIRED | One | Chr | Get |
Address节点为叶子节点,表示相应的设备管理服务器的地址,该参数为可选参数,节点的描述如下表所示:
Status | Tree Occurrence | Format | Min.Access Types |
REQUIRED | Zero Or One | Chr | Get |
Time节点为叶子节点,表示最近一次向设备管理服务器上报设备信息的时间,该参数为可选参数,节点的描述如下表所示:
Status | Tree Occurrence | Format | Min.Access Types |
REQUIRED | Zero Or One | Date | Get |
MOI此为叶子节点,保存已上报的设备信息管理对象的标识,该参数为可选参数,节点的描述如下表所示:
Status | TreeOccurrence | Format | Min.Access Types |
REQUIRED | Zero Or One | Chr | Get |
当用户终端向服务器发起新的设备管理会话时,首先查询上述服务器管理子树,判断是否需要向所述服务器上报设备信息,在查询到所述服务器管理子树中保存了标识已向所述服务器上报设备信息的子节点时,无须再次上报设备信息;在查询到所述服务器管理子树上未保存标识已向所述服务器上报设备信息的子节点时,向所述服务器上报设备信息,上报所述设备信息时,在所述服务器管理子树上,添加标识已向所述服务器上报设备信息的子节点。
在用户终端的设备信息发生变化时,需要清空所述服务器管理子树的子节点,以便在发起新的会话时,重新上报所述更新后的设备信息。
另外,服务器可以更改用户终端的服务器管理子树上保存的所述上报标识信息,具体实现方法为:服务器在需要更改上报标识信息时,向用户终端发送更改所述上报标识信息的请求,用户终端在接收到所述请求时,删除标识已向所述服务器上报设备信息的子节点,以便在发起新的会话时,重新上报设备信息。
第二种方法是:在每个DMAccount管理对象中,添加用于标识是否已向对应的服务器上报设备信息的标识子节点,如图8所述为本发明实施例的DMAccount管理对象示意图。
对图8中的DMAccount管理对象各节点描述如下:
其中,AppID、ServerID和Name节点为现有节点,分别表示会话业务类型、服务器ID和服务器名称;本发明实施例在现有节点的基础上增加了FlagRev、Time和MOI节点;
FlagRev节点即是上述的用于标识是否已向服务器上报设备信息的标识子节点,该节点采用布尔型,节点值为“1”时表示已向该DM Account管理对象对应的服务器上报过设备信息,节点值为“0”则标识未向所述服务器上报过设备信息,节点的描述如下表所示:
Status | Tree Occurrence | Format | Min.Access Types |
REQUIRED | One | Bool | Get |
Time节点为叶子节点,表示最近一次向所述服务器上报设备信息的时间,该参数为可选参数,节点的描述如下表所示:
Status | Tree Occurrence | Format | Min.Access Types |
REQUIRED | Zero Or One | Date | Get |
MOI为叶子节点,表示已上报的设备信息管理对象的标识,该参数为可选参数,节点的描述如下表所示:
Status | Tree Occurrence | Format | Min.Access Types |
REQUIRED | Zero Or One | Chr | Get |
当用户终端向服务器发起新的设备管理会话时,首先查询该服务器对应的DM Account管理对象中的标识子节点,判断是否需要发送设备信息,在查询到所述DM Account管理对象中的标识子节点的节点值,标识已向所述服务器上报过设备信息时,无须再次上报设备信息;在查询到所述DM Account管理对象的标识子节点,标识未向所述服务器上报过设备信息时,向所述服务器上报设备信息,上报所述设备信息时,将所述标识子节点的节点值,标识为已向所述服务器上报过设备信息。
在用户终端的设备信息发生变化时,将所有标识子节点的节点值,标识为未上报设备信息,以便在发起新的会话时,重新上报所述更新后的设备信息。
另外,服务器还可以更改用户终端的服务器管理子树上保存的所述上报标识信息,具体实现方法为:服务器在需要更改上报标识信息时,向用户终端发送更改所述上报标识信息的请求,用户终端在接收到所述请求时,将所述服务器对应的标识子节点,标识为未上报设备信息,以便在发起新的会话时,重新上报所述设备信息。在上述实施例中,即将服务器对应的DM Account管理对象中的FlagRev节点的节点值置为0。
对于DS会话业务来说,保存已向服务器上报设备信息的上报标识信息的方法,可以采用上述设备管理会话业务中的第一种方法,即在用户终端的管理对象树里,添加标识已向所述服务器上报设备信息的子节点,如图9所述为本发明实施例的DS服务器管理子树示意图。
另外,在同步数据库中,用户终端每次除了需要上报自身的设备信息外,还需要上报需要同步的数据库的能力信息,因此为了减少无线资源的浪费,服务器管理子树除了保存已上报设备信息的标识以外,还可以保存已上报数据库能力信息的标识。
对图9中的DS数据库管理子树各节点描述如下:
ServerRev节点为所有已接收过设备信息或数据库能力信息的同步服务器的父节点,节点的描述如下表所示:
Status | Tree Occurrence | Format | Min.Access Types |
REQUIRED | One | Node | Get |
X*节点为已接收过设备信息或数据库能力信息的同步服务器的占位符,节点的描述如下表所示:
Status | Tree Occurrence | Format | Min.Access Types |
REQUIRED | Zero Or More | Node | Get |
ServerID节点为叶子节点,记录已接收过设备信息或者数据库能力信息的同步服务器ID,用于唯一的表示该同步服务器的身份,节点的描述如下表所示:
Status | Tree Occurrence | Format | Min.Access Types |
REQUIRED | One | Chr | Get |
Time节点为叶子节点,表示最近一次向同步服务器上报设备信息或者数据库能力信息的时间,该参数为可选参数,节点的描述如下表所示:
Status | Tree Occurrence | Format | Min.Access Types |
REQUIRED | Zero Or One | Date | Get |
DataStoreID节点为叶子节点,表示设备信息管理对象或者数据库能力信息的标识,节点的描述如下表所示:
Status | Tree Occurrence | Format | Min.Access Types |
REQUIRED | One | Chr | Get |
当用户终端向同步服务器发起新的数据同步会话时,首先查询该DS服务器管理子树,判断是否需要上报设备信息,在查询到所述DS服务器管理子树中保存了标识已向所述服务器上报设备信息的子节点时,无须再次上报设备信息;在查询到所述DS服务器管理子树上未未保存标识已向所述服务器上报设备信息的子节点时,向所述同步服务器上报设备信息,上报所述设备信息时,在所述DS服务器管理子树上,添加标识已向所述服务器上报设备信息的子节点。
在用户终端的设备信息发生变化时,需要清空所述DS服务器管理子树的子节点,以便在发起新的会话时,重新上报所述更新后的设备信息。
另外,服务器可以更改用户终端的DS服务器管理子树上保存的所述上报标识信息,具体实现方法为:服务器在需要更改信息时,向用户终端发送更改所述上报标识信息的请求,用户终端在接收到所述请求时,删除标识已向所述服务器上报设备信息的子节点,以便在发起新的会话时,重新上报所述设备信息。
通过上述实施例提供的方法,在向服务器上报过设备信息后,保存已向所述服务器上报设备信息的上报标识信息,在向所述服务器发起新的会话时,查询所述上报标识信息,在查询到已向所述服务器上报过设备信息时,无须再次向所述服务器上报设备信息,节约了传输资源,减少了通信流量。
如图10所示为本发明实施例的用户终端的结构示意图,所述用户终端包括:
判断模块101,用于在与服务器建立会话业务时,判断是否保存了标识已向所述服务器上报设备信息的上报标识信息。
第一上报模块102,用于在未保存所述上报标识信息时,向所述服务器上报设备信息。
保存模块103,用于在向所述服务器上报所述设备信息后,保存标识已向所述服务器上报设备信息的上报标识信息。
所述上报标识信息为以下任意一种或几种:所述服务器的身份标识号码、所述服务器的名称、所述服务器的地址、向所述服务器上报所述设备信息的时间、标识是否已向所述服务器上报所述设备信息的标识子节点。
上述判断模块101通过判断用户终端中是否保存了标识已向所述服务器上报设备信息的上报标识信息,来判断是否已向所述服务器上报过信息;
用户终端可以采用多种方式保存所述上报标识信息,对于设备管理会话和数据同步会话业务来说,优选的,可以通过在用户终端的管理对象树中,保存标识已向服务器上报设备信息的上报标识信息,从而通过查询所述管理对象树,来判断是否已向所述服务器上报过设备信息。
如上述实施例所述,在设备管理会话业务和数据同步业务中,均可以在通过创建服务器管理子树,保存标识已向服务器上报设备信息的上报标识信息。
如图11所示为本发明实施例的用户终端的另一结构示意图,上述用户终端还包括:
创建模块104,用于在用户终端的管理对象树中,创建服务器管理子树。
所述保存模块103包括:
第一保存单元1031,用于在向所述服务器上报所述设备信息时,在所述服务器管理子树上,添加标识已向所述服务器上报设备信息的子节点。
在用户终端的设备信息发生变化时,所述用户终端需要清空所述服务器管理子树中的子节点,以便在发起新的会话时,重新上报所述更新后的设备信息,因此,所述用户终端还包括:
第一处理模块105,用于在所述设备信息发生变化时,清空所述服务器管理子树的子节点。
另外,服务器在需要更改服务器的上报标识信息时,可以通过向用户终端发送更改上报标识信息的请求,用户终端接收到所述请求后,可以删除所述保存标识向所述服务器上报设备信息的子节点,以便在发起新的会话时,重新上报所述设备信息,因此,所述用户终端还包括:
第二处理模块106,用于在接收到更改所述服务器的上报标识信息的请求时,删除标识向所述服务器上报设备信息的子节点。
在设备管理会话业务中,除了采用上述在管理对象树中创建服务器管理子树以保存所述上报标识信息的方法之外,还可以利用现有的DM Account管理对象保存所述上报标识信息。
如图12所示为本发明实施例的用户终端的又一结构示意图,上述用户终端还包括:
添加模块107,用于在每个DM Account管理对象中,添加用于标识是否已向对应的服务器上报所述设备信息的标识子节点。
此时,所述保存模块103包括:
第二保存单元1032,用于在向所述服务器上报所述设备信息时,将所述服务器对应的标识子节点的节点值,标识为已上报所述设备信息。
在用户终端的设备信息发生变化时,所述用户终端需要将所述标识子节点的节点值,标识为未上报所述设备信息,以便在发起新的会话时,重新上报所述更新后的设备信息,因此,所述用户终端还包括:
第三处理模块108,用于在所述设备信息发生变化时,将所有所述标识子节点的节点值,标识为未上报所述设备信息。
另外,服务器在需要更改服务器的上报标识信息时,可以通过向用户终端发送更改上报标识信息的请求,用户终端接收到所述请求后,可以将所述服务器对应的标识子节点的节点值,标识为未上报所述设备信息,在发起新的设备管理会话时,重新上报所述设备信息,因此,所述用户终端还包括:
第四处理模块109,用于在接收到更改所述服务器的上报标识信息的请求时,将所述服务器对应的标识子节点的节点值,标识为未上报所述设备信息。
上述用户终端还包括:
第二上报模块110,用于在接收到所述服务器发送的获取设备信息的请求时,向所述服务器上报设备信息。
通过上述实施例提供的用户终端,在向服务器上报过设备信息后,保存标识已向所述服务器上报设备信息的上报标识信息,在向所述服务器发起新的会话时,根据所述上报标识信息,无须再次上报设备信息,节约了传输资源,减少了通信流量。
如图13所示为本发明实施例的服务器的结构示意图,所述服务器包括:
判断模块21,用于在与用户终端建立业务会话时,判断所述用户终端是否上报设备信息。
保存模块22,用于所述用户终端上报设备信息时,保存所述设备信息。
查询模块23,用于在所述用户终端未上报所述设备信息时,查询是否已保存所述设备信息。
获取模块24,用于在未保存所述设备信息时,向所述用户终端发送获取所述设备信息的请求。
上述服务器可以为上述实施例中的设备管理服务器或同步服务器。
所述服务器可以通过向用户终端发送更改所述上报标识信息的请求,以使得在与用户终端发起新的会话业务时,用户终端重新上报设备信息,因此,所述服务器还包括:
请求模块25,用于向用户终端发送更改标识已向所述服务器上报设备信息的上报标识信息的请求。
通过上述实施例提供的服务器,可以在接收到用户终端上报的设备信息后,保存所述设备信息,在建立下一次会话中,在用户终端未上报设备信息时,查询是否保存所述设备信息,在已经保存所述设备信息时,无须在向所述用户终端获取所述设备信息。
以下以设备管理会话业务和数据同步会话业务的具体应用场景,对上述上报设备信息的方法进行详细说明。
以下实施例为本发明实施例的上报设备信息的方法在设备管理会话业务中的一具体应用场景:
本发明实施例中,用户终端和设备管理服务器之间需要建立设备管理会话业务,所述用户终端的IMEI(International Mobile Equipment Identity,国际移动身份识别)为493005100592800,其管理对象树中的DM Account管理对象中预置的设备管理服务器为:DM Server,该设备管理服务器的地址为:http://www.syncml.org/dm-server。
用户终端和设备管理服务器在时间点:20080202T020202Z进行了一次设备管理会话,假设该次设备管理会话为用户终端和设备管理服务器的第一次设备管理会话,因此,用户终端需要向服务器上报设备信息,上报设备信息后,用户终端通过在创建的服务器管理子树中添加子节点,以保存标识已向所述设备管理服务器上报设备信息的上报标识信息,表明已向所述服务器上报过设备信息,此时,用户终端的服务器管理子树如图14所示,其中,节点1表示第一个子节点。
在用户终端向所述设备管理服务器,发起新的设备管理管理会话时,用户终端首先查询服务器管理子树中是否保存了标识已向所述设备管理服务器上报设备信息的上报标识信息,在查询到服务器管理子树中保存了标识已向所述设备管理服务器上报设备信息的上报标识信息(即已向所述设备管理服务器上报过设备信息)时,那么在向设备管理服务器发送的初始化会话信息中就不再携带设备信息。
设备管理服务器接收到初始化会话信息后,根据用户终端的标识,查询是否保存了该用户终端的设备信息,如果已经保存,那么就通过响应消息下发管理命令,进行后续的设备管理,如果未保存所述用户终端的设备信息,那么设备管理服务器可以通过“Get”指令来获取设备信息。
在用户终端的设备信息发生变化时,用户终端则需要删除服务器管理子树中的节点“1”以及其所有子节点。
以下为本发明实施例的上报设备信息的方法在设备管理会话业务中的另一具体应用场景:
本发明实施例中,用户终端和设备管理服务器之间需要建立设备管理会话业务,所述用户终端的IMEI为493005100592800,其管理对象树中的DMAccount管理对象中预置的设备管理服务器为:DM Server,该设备管理服务器的地址为:http://www.syncml.org/dm-server。
用户终端向设备管理服务器发起设备管理会话,假设该次设备管理会话为用户终端和设备管理服务器的第一次设备管理会话,因此,用户终端需要向服务器上报设备信息,在上报设备信息后,用户终端将所述设备管理服务器对应的DMAccount管理对象的标识子节点的节点值,标识为已上报设备信息,此时,用户终端的服务器管理子树如图15所示,其中FlagRev节点(即标识子节点)的节点值置为“1”,表示已向该设备管理服务器上报过设备信息。
在用户终端和所述设备管理服务器发起一次新的设备管理会话时,用户终端将首先查询DM Account管理对象中的FlagRev节点的节点值,查询到所述FlagRev节点的节点值为1时(即已向所述设备管理服务器上报过设备信息),在发送给设备管理服务器的初始会话信息中,就不再携带设备信息。
服务器接收到初始会话信息后,根据用户终端的标识,查询是否保存了所述用户终端的设备信息,如果已保存,那么就通过响应消息下发管理命令,进行后续的设备管理,如果未保存用户终端的设备信息,那么服务器可以通过“Get”指令来获取设备信息。
在用户终端的设备信息发生变化时,用户终端则需要将所有DM Account管理对象中的FlagRev的节点值置为“0”,在用户终端发起下一次设备管理会话时,查询到FlagRev节点值为“0”时,需要重新上报设备信息。
以下为本发明实施例的上报设备信息的方法在数据同步会话业务中的具体应用场景:
本发明实施例中,用户终端和设备管理服务器之间需要建立数据同步会话业务,所述用户终端的IMEI=493005100592800,用户终端上保存有两个数据库:./Contacts和./Calendar,需要与地址为http://www.syncml.org/sync-server的数据服务器进行同步,数据服务器中对应的同步数据库分别为:./dev-contacts和./dev-Calendar。
在./Contacts和./dev-contacts进行同步时,用户终端与服务器是第一次会话,因此用户终端需要将设备信息上报给数据服务器,设备信息的数据库地址为:./Devinfo/DevCap,上报时间点为:20080101T010101Z,上报设备信息后,用户终端通过在创建的服务器管理子树上添加子节点,以保存标识已向所述数据服务器上报设备信息的上报标识信息,表明已向所述数据服务器上过过设备信息,此时,用户终端中的服务器管理子树如图16所示。
在用户终端与数据服务器同步./Calendar和./dev-calendar时,用户终端在上报设备信息之前,首先查询服务器管理子树,查询到所述服务器管理子树中保存了标识已向所述数据服务器的上报设备信息的子节点时(即已向所述数据服务器上报过设备信息),在发送给数据服务器的初始化会话信息中,无须再次上报设备信息。
服务器接收到初始化会话信息后,根据用户终端的标识,查询是否保存了用户终端的设备信息,如果已保存,那么就通过响应消息进行后续的数据同步操作,如果未保存用户终端的设备信息,那么数据服务器可以通过“Get”指令来获取设备信息。
在用户终端的设备信息发生变化时,用户终端则需要删除服务器管理子树中的节点“1”及其全部子节点,以便在发起新的数据同步会话时,上报更新后的设备信息。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该获取机软件产品存储在一个存储介质中,包括若干指令用以使得一台终端设备执行本发明各个实施例所述的方法。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。