具体实施方式
以下描述和附图充分地示出本发明的具体实施方案,以使本领域的技术人员能够实践它们。其他实施方案可以包括结构的、逻辑的、电气的、过程的以及其他的改变。实施例仅代表可能的变化。除非明确要求,否则单独的部件和功能是可选的,并且操作的顺序可以变化。一些实施方案的部分和特征可以被包括在或替换其他实施方案的部分和特征。本发明的实施方案的范围包括权利要求书的整个范围,以及权利要求书的所有可获得的等同物。在本文中,本发明的这些实施方案可以被单独地或总地用术语“发明”来表示,这仅仅是为了方便,并且如果事实上公开了超过一个的发明,不是要自动地限制该应用的范围为任何单个发明或发明构思。
图1示出了本发明实施例的一种获取位置信息的方法的流程示意图,
如图1所示,在一些说明性的实施例中,所述一种获取位置信息的方法,应用于发送节点,包括以下几个步骤:
步骤S101,接收获取节点发送的用于获取目标节点的位置信息的请求;
步骤S102,根据所述请求,获取用于管理目标节点的位置信息的第一资源中的信息;
步骤S103,根据所述第一资源中的第二资源的标识,或所述获取目标节点的位置信息的请求,查找所述第二资源,并获取保存于所述第二资源中的信息;其中,所述第二资源用于存储所述目标节点的位置信息;
步骤S104,向所述获取节点发送对应于所述请求的应答;所述应答携带获取到的保存于所述第一资源中的信息和保存于所述第二资源中的信息,或者,携带保存于所述第二资源中的信息;
其中,上述获取节点可以是用于获取位置信息的应用或者实体(如设备、装置、终端等);同理,所述发送节点和目标节点既可以是应用,也可以是实体,在此处不进行限定;所述位置信息不是单纯意义上的目标节点所在的位置,而是泛指与目标节点的位置相关的一系列信息;
在上述过程中,发送节点会根据获取节点的请求,将位置信息(即第一资源和/或第二资源中的存储部分或者全部信息)发送给所述获取节点;所述的第一资源或第二资源中的信息即可以是指存储的至少一个属性和/或子资源,也可以是从属性和/或子资源中存储的信息;在本实施例中,发送节点只需发送一次获取节点的请求,就可以获取到其所要获取的位置信息,过程简单,省去了与发送节点之间的反复交互;
在一些说明性的实施例中,所述请求携带用于确定所述第一资源的第一参数,所述用于确定所述第一资源的第一参数包括:所述第一资源的标识;或,所述目标节点的标识和所述第一资源的类型;当发送节点在所述请求中识别到第一参数后,则根据第一参数定位到所述第一资源;
在一些说明性的实施例中,所述请求携带用于表示所述第一资源和/或所述第二资源获取范围的至少一个第二参数;在步骤S102之前,还包括:
根据所述至少一个第二参数,确定获取所述第一资源和/或所述第二资源中的信息的范围;
在上述过程中可以根据第二参数和预置的判定策略来确定获取范围,其中,所述判定策略包括所述第二参数和与所述第二参数的取值相对应的获取所述第一资源和/或所述第二资源中的信息的范围;
举例对上述实施例进行说明:
例如第二参数可以是A\B\C;则在发送节点上存储的判定策略,如下表所示:
由上表所示,可以将两个第二参数,如A和B,组合使用,对需要获取的位置信息进行限定,如:A=A1和B=B2,代表第一资源全部+第二资源部分;也可以仅使用一个第二参数,如C=C1,同样表示第一资源全部+第二资源部分;需要注意的是,上表只是一个示例,在实际应用中,第二参数的取值的可能会根据需要获取的位置信息的不同(如需要具体获取哪些属性、哪些子资源)而进行相应的设置,在这里第二参数的取值可能是一段具有特定含义的字符串(例如属性的名称),也可能是一个数值,在此处不进行限定;
在一些说明性的实施例中,步骤S103,具体包括:
根据所述请求或所述第一资源中的所述第二资源的标识,找到所述第二资源;
若所述第一资源中包括用于记录所述第二资源的标识的属性,则一旦定位到第一资源后,则发送节点可以根据该属性定位到第二资源;或者,若所述请求除了携带上述实施例中的第一参数以外,还携带了第二资源的标识,则发送节点可以直接根据第二资源的标识定位到第二资源;
在一些说明性的实施例中,在步骤S101之后,还包括:
根据所述请求,对所述获取节点进行鉴权;例如在预置的数据库中,查看获取节点是否有获取位置信息的资格;
若失败,则终止流程;
若成功,则执行所述根据所述请求,执行步骤S102;
在一些说明性的实施例中,在步骤S101之前,还包括:
创建所述第一资源和所述第二资源。
下面以下两个具体的实施例来说明本方案,在下述实施例中涉及CSE1(获取节点)和HostingCSE(发送节点);HostingCSE已经创建了与T-node(目标节点)相关的第一资源(<locationpolicy>)和第二资源(<container>);
如图2所示,在该实施例中,具体过程如下:
步骤S201,CSE1发送用于获取T-node的位置信息;
携带的参数包括:HostingCSE的ID、<locationpolicy>的ID(第一参数)和cn(content,内容;cn为第二参数);此处的cn为可选,因为HostingCSE可以根据默认的设置,获取相应的位置信息;
步骤S202,HostingCSE对CSE1进行鉴权;
若鉴权成功,则触发步骤S203;反之,则结束流程并反馈鉴权失败的通知给CSE1;
步骤S203,HostingCSE进行cn判定;
即HostingCSE根据cn的取值,判定CSE1需要获取的位置信息的具体范围;
例如:
若cn的值设为“container-included”,则表示需要取得的结果为<locationpolicy>和<container>的全部;
若cn的值设为部分属性名+“container-included”,则表示需要取得的结果为与上述部分属性名相对应的<locationpolicy>的属性和<container>全部;
若cn的值设为“container-属性名”,则表示需要取得的结果为<locationpolicy>的全部和<container>的部分属性;
若cn的值设为“container-属性名”+部分属性名,则表示需要取得的结果为<container>的部分属性和<locationpolicy>的属性;
步骤S204,根据判定结果,获取相应的位置信息;
假设若cn的值设为“container-属性名”+部分属性名;则步骤S204,包括:
步骤S2041,获取<locationpolicy>的属性;
根据第一参数定位到<locationpolicy>,然后再根据cn的值中的“部分属性名”,从<locationpolicy>中获取与属性名相应的属性;
步骤S2042,确定<container>;
根据<locationpolicy>的locationpolicyID属性中存储的<container>的ID定位到<container>;
步骤S2043,取得<container>的部分属性;
根据cn的取值中的“container-属性名”在<container>中获取相应的属性;
步骤S205,将步骤S204中获取的位置信息发送给CSE1;
在一些说明性的实施例中,所述第二参数也可以用另一种常用的参数,如RC(resultcontent,结构内容)来实现;例如,假设RC表示需要取得的<container>的相关资源,RC可能的值为:
atributes属性,代表需要获取的属性的名称;
attributes+child-resource,代表需要获取的属性的名称+子资源的名称;
child-resource,代表需要获取子资源的名称;
nothing,即如果RC缺省或者RC中的参数有误,代表不需要获取<container>中的信息;
original-resource,即需要获取<container>的全部,即所有属性和子资源。
如图3所示,在该实施例中,与上述实施例的不同之处在于第二参数不只一个,选用了两个第二参数分别对第一资源和第二资源的获取情况进行限定;具体过程如下:
步骤S301,CSE1发送用于获取T-node的位置信息;
携带的参数包括:HostingCSE的ID、第一参数(资源类型:locationpolicy和T-node的ID)和第二参数(filterCriteria过滤规则和cn);
步骤S302,HostingCSE对CSE1的进行鉴权;
若鉴权成功,则触发步骤S303;反之,则结束流程并反馈鉴权失败的通知给CSE1;
步骤S303,HostingCSE进行条件判定;
即HostingCSE根据filterCriteria和cn的取值,判定CSE1需要获取的位置信息的具体范围;其中filterCriteria是一个属性,在该属性中包括多个子参数,可以对其中的子参数的值进行设置,使得不同的值对应不同的获取策略;
例如:
当filterCriteria中的参数filterusage(过滤用途)=location则代表需要取得<container>的全部;
当filterCriteria中的参数filterusage=location且在该属性中设定了container的部分属性,则代表需要取得container的部分属性;
当CN缺省,则代表需要取得<locationpolicy>的全部;
当CN中设定了<locationpolicy>部分属性,则代表需要取得其相应的部分属性;
步骤S304,根据判定结果,获取相应的位置信息;
假设:filterCriteria中的参数filterusage=location且在该属性中设定了container的部分属性,此外CN缺省;则步骤S304,包括:
步骤S3041,获取<locationpolicy>的属性;
根据第一参数定位到<locationpolicy>,然后获取<locationpolicy>的全部,包括<locationpolicy>的所有属性和子资源;
步骤S3042,确定<container>;
若步骤S301中携带的参数还包括<container>的ID,则根据<container>的ID定位到<container>;
步骤S3043,取得<container>的部分属性;
根filterCriteria的设置,在<container>中获取相应的部分属性;
步骤S305,将步骤S304中获取的位置信息发送给CSE1。
图4示出了本发明实施例的一种获取位置信息的装置400的结构示意图,
在一些说明性的实施例中,装置400,包括:
接收单元401,用于接收获取节点发送的用于获取目标节点的位置信息的请求;
第一获取单元402,用于根据所述请求,获取用于管理目标节点的位置信息的第一资源中的信息;
第二获取单元403,用于根据所述第一资源中的第二资源的标识,或所述获取目标节点的位置信息的请求,查找所述第二资源,并获取保存于所述第二资源中的信息;其中,所述第二资源用于存储所述目标节点的位置信息;
发送单元404,用于向所述获取节点发送对应于所述请求的应答;所述应答携带获取到的保存于所述第一资源中的信息和保存于所述第二资源中的信息,或者,携带保存于所述第二资源中的信息;
在一些说明性的实施例中,所述请求携带用于确定所述第一资源的第一参数,所述用于确定所述第一资源的第一参数包括:所述第一资源的标识;或,所述目标节点的标识和所述第一资源的类型;
在一些说明性的实施例中,所述请求携带用于表示所述第一资源和/或所述第二资源获取范围的至少一个第二参数;所述装置400,还包括:
确定单元405,用于所述第一获取单元402获取保存于用于管理目标节点的位置信息的第一资源中的信息之前,根据所述至少一个第二参数,确定获取所述第一资源和/或所述第二资源中的信息的范围;
在一些说明性的实施例中,所述确定单元405,包括:
确定子单元4051,用于根据预置的判定策略,对所述至少一个第二参数的取值进行识别并分析出相应的待获取的所述第一资源和/或所述第二资源中的信息的范围;
所述判定策略包括所述第二参数和与所述第二参数的取值相对应的获取所述第一资源和/或所述第二资源中的信息的范围;
在一些说明性的实施例中,装置400,还包括:
鉴权单元406,用于所述接收单元401接收所述请求之后,根据所述请求,对所述获取节点进行鉴权;
若失败,则终止流程;
若成功,则所述第一获取单元402执行所述根据所述请求,获取用于管理目标节点的位置信息的第一资源中的信息的操作。
采用上述实施例,可达到以下效果:
简化了获取位置信息的过程;
避免了反复进行多次的交互,节省了网络资源;
实现对目标节点的位置信息的快速获取。
本领域技术人员还应当理解,结合本文的实施例描述的各种说明性的逻辑框、模块、电路和算法步骤均可以实现成电子硬件、计算机软件或其组合。为了清楚地说明硬件和软件之间的可交换性,上面对各种说明性的部件、框、模块、电路和步骤均围绕其功能进行了一般地描述。至于这种功能是实现成硬件还是实现成软件,取决于特定的应用和对整个系统所施加的设计约束条件。熟练的技术人员可以针对每个特定应用,以变通的方式实现所描述的功能,但是,这种实现决策不应解释为背离本公开的保护范围。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。