本发明涉及通信领域,具体而言,涉及数据传输方法及装置。
背景技术:
机器对机器(machinetomachine,简称为m2m)通信网络由各个m2m节点和承载网络组成。m2m节点通过承载网络实现互相通信,一个m2m节点至少包含一个应用实体或者一个公共业务实体。
应用实体是执行实际m2m应用的逻辑单元,公共业务实体是对应用进行管理和服务的逻辑单元。
图1是相关技术中的m2m系统架构图,如图1所示,m2m应用之间的通信是通过公共业务实体(commonchannelsignalingequipment,简称为cse)之间的交互来实现,m2m应用通过接口连接到cse,然后通过cse之间的通信进行ae之间的数据交互。
在现有技术中,中间节点,及网关仅提供对数据中转的服务,即透传应用节点和基础节点之间的数据,应用节点和基础节点都无法对发送的数据状态进行跟踪,对于发送错误的数据也无法取消。
针对相关技术中无法对发送的数据状态进行跟踪的问题,还未提出有效的解决方案。
技术实现要素:
本发明实施例提供了数据传输方法及装置,以至少解决相关技术中针对不同结构的端点间无法建立传输媒体流的通道的问题。
根据本发明的一个实施例,提供了一种数据传输方法,包括:
接收对目标资源进行操作的请求消息,其中,所述请求消息中携带有目的节点的标识、地址,和/或目标资源的地址;
在所述目标资源不在源节点上的情况下,创建用于存储所述请求消息和跟踪所述请求消息传输状态的资源;
通过中间节点将所述请求消息发送给目的节点,供所述目的节点根据所述请求消息对目标资源进行操作。
进一步地,在通过中间节点将所述请求消息发送给目的节点之后,所述方法还包括:
接收所述中间节点反馈的第一响应消息;
根据所述第一响应消息在所述资源中更新所述请求消息的传输状态。
进一步地,对目标资源的操作包括以下至少之一:读取资源、创建资源、更新资源、删除资源。
进一步地,创建的资源至少包括以下属性:
相邻节点地址,用于保存相邻节点上递送资源的地址,以及追随相邻节点上递送资源的属性信息;
数据,用于保存递送的数据;
目标地址,用于保存目的节点的标识或地址;
传输状态,用于保存数据递送的状态。
本发明实施例的另一方面,提供了一种数据传输方法,包括:
接收源节点发送的对目标资源进行操作的请求消息,其中,所述请求消息是所述源节点在接收到所述目标资源不在所述源节点上的请求消息之后发送的,其中,所述请求消息中携带有目的节点的标识、地址,和/或目标数据的地址;
创建用于存储所述请求消息和跟踪所述请求消息传输状态的资源;
将所述请求消息转发给目的节点,供所述目的节点根据所述请求消息对目标资源进行操作。
进一步地,在创建用于存储所述请求消息和跟踪所述请求消息传输状态的资源之后,所述方法还包括:
向所述源节点反馈第一响应消息,供所述源节点根据所述第一响应消息在所述资源中更新所述请求消息的传输状态。
进一步地,在将所述请求消息转发给目的节点之后,所述方法还包括:
接收所述目的节点反馈的第二响应消息,其中,所述第二响应消息中携带有对目标资源进行操作的结果;
根据所述第二响应消息在所述资源中更新所述请求消息的传输状态。
进一步地,对目标资源的操作包括以下至少之一:读取资源、创建资源、更新资源、删除资源。
进一步地,创建的资源至少包括以下属性:
相邻节点地址,用于保存相邻节点上递送资源的地址,以及追随相邻节点上递送资源的属性信息;
数据,用于保存递送的数据;
目标地址,用于保存目的节点的标识或地址;
传输状态,用于保存数据递送的状态。
本发明实施例的另一方面,还提供了一种数据传输方法,包括:
接收中间节点转发的对目标资源进行操作的请求消息,其中,所述请求消息是源节点在接收到所述目标资源不在所述源节点上的请求消息之后发送给所述中间节点的,其中,所述请求消息中携带有目的节点的标识、地址,和/或目标数据的地址;
创建用于存储所述请求消息和跟踪所述请求消息传输状态的资源;
根据所述请求消息对目标资源进行操作。
进一步地,在根据所述请求消息对目标资源进行操作之后,所述方法还包括:
向所述中间节点反馈第二响应消息,供所述中间节点根据所述第二响应消息在所述资源中更新所述请求消息的传输状态,其中,所述第二响应消息中携带有对目标资源进行操作的结果。
进一步地,对目标资源的操作包括以下至少之一:读取资源、创建资源、更新资源、删除资源。
进一步地,创建的资源至少包括以下属性:
相邻节点地址,用于保存相邻节点上递送资源的地址,以及追随相邻节点上递送资源的属性信息;
数据,用于保存递送的数据;
目标地址,用于保存目的节点的标识或地址;
传输状态,用于保存数据递送的状态。
本发明实施例的另一方面,还提供了一种数据传输装置,包括:
第一接收模块,用于接收对目标资源进行操作的请求消息,其中,所述请求消息中携带有目的节点的标识、地址,和/或目标资源的地址;
第一创建模块,用于在所述目标资源不在源节点上的情况下,创建用于存储所述请求消息和跟踪所述请求消息传输状态的资源;
发送模块,用于通过中间节点将所述请求消息发送给目的节点,供所述目的节点根据所述请求消息对目标资源进行操作。
本发明实施例的再一方面,提供了一种数据传输装置,包括:
第二接收模块,用于接收源节点发送的对目标资源进行操作的请求消息,其中,所述请求消息是所述源节点在接收到所述目标资源不在所述源节点上的请求消息之后发送的,其中,所述请求消息中携带有目的节点的标识、地址,和/或目标数据的地址;
第二创建模块,用于创建用于存储所述请求消息和跟踪所述请求 消息传输状态的资源;
转发模块,用于将所述请求消息转发给目的节点,供所述目的节点根据所述请求消息对目标资源进行操作。
本发明实施例的再一方面,还提供了一种数据传输装置,包括:
第三接收模块,用于接收中间节点转发的对目标资源进行操作的请求消息,其中,所述请求消息是源节点在接收到所述目标资源不在所述源节点上的请求消息之后发送给所述中间节点的,其中,所述请求消息中携带有目的节点的标识、地址,和/或目标数据的地址;
第三创建模块,用于创建用于存储所述请求消息和跟踪所述请求消息传输状态的资源;
操作模块,用于根据所述请求消息对目标资源进行操作。
通过本发明,通过创建存储该请求消息和跟踪该请求消息传输状态的资源,解决了相关技术中无法对发送的数据状态进行跟踪的问题,可以对递送到各个中间节点的状态,数据的执行状态进行跟踪。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是相关技术中的m2m系统架构图;
图2是根据本发明实施例的数据传输方法的流程图一;
图3是根据本发明实施例的数据传输方法的流程图二;
图4是根据本发明实施例的数据传输方法的流程图三;
图5是根据本发明实施例的数据传输装置的框图一;
图6是根据本发明实施例的数据传输装置的框图二;
图7是根据本发明实施例的数据传输装置的框图三;
图8是根据本发明实施例的数据递送方法的流程图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
在本实施例中提供了一种数据传输方法,图2是根据本发明实施例的数据传输方法的流程图一,如图2所示,该流程包括如下步骤:
步骤s202,接收对目标资源进行操作的请求消息,其中,该请求消息中携带有目的节点的标识、地址,和/或目标资源的地址;
步骤s204,在该目标资源不在源节点上的情况下,创建用于存储该请求消息和跟踪该请求消息传输状态的资源;
步骤s206,通过中间节点将该请求消息发送给目的节点,供该目的节点根据该请求消息对目标资源进行操作。
通过上述步骤,由于创建了存储该请求消息和跟踪该请求消息传输状态的资源,解决了相关技术中无法对发送的数据状态进行跟踪的问题,可以对递送到各个中间节点的状态,数据的执行状态进行跟踪。
进一步地,在通过中间节点将该请求消息发送给目的节点之后,该方法还包括:接收该中间节点反馈的第一响应消息;根据该第一响应消息在该资源中更新该请求消息的传输状态。
进一步地,对目标资源的操作包括以下至少之一:读取资源、创建资源、更新资源、删除资源。
进一步地,创建的资源至少包括以下属性:相邻节点地址,用于保存相邻节点上递送资源的地址,以及追随相邻节点上递送资源的属性信息;数据,用于保存递送的数据;目标地址,用于保存目的节点的标识或地址;传输状态,用于保存数据递送的状态。
本发明实施例还提供了一种数据传输方法,图3是根据本发明实施例的数据传输方法的流程图二,如图3所示,该流程包括如下步骤:
步骤s302,接收源节点发送的对目标资源进行操作的请求消息,其中,该请求消息是该源节点在接收到该目标资源不在该源节点上的请求消息之后发送的,其中,该请求消息中携带有目的节点的标识、地址,和/或目标数据的地址;
步骤s304,创建用于存储该请求消息和跟踪该请求消息传输状态的资源;
步骤s306,将该请求消息转发给目的节点,供该目的节点根据该请求消息对目标资源进行操作。
进一步地,在创建用于存储该请求消息和跟踪该请求消息传输状态的资源之后,向该源节点反馈第一响应消息,供该源节点根据该第一响应消息在该资源中更新该请求消息的传输状态。
进一步地,在将该请求消息转发给目的节点之后,接收该目的节点反馈的第二响应消息,其中,该第二响应消息中携带有对目标资源进行操作的结果;根据该第二响应消息在该资源中更新该请求消息的传输状态。
进一步地,对目标资源的操作包括以下至少之一:读取资源、创建资源、更新资源、删除资源。
进一步地,创建的资源至少包括以下属性:相邻节点地址,用于保存相邻节点上递送资源的地址,以及追随相邻节点上递送资源的属性信息;数据,用于保存递送的数据;目标地址,用于保存目的节点的标识或地址;传输状态,用于保存数据递送的状态。
本发明实施例还提供了一种数据传输方法,图4是根据本发明实施例的数据传输方法的流程图三,如图4所示,该流程包括如下步骤:
步骤s402,接收中间节点转发的对目标资源进行操作的请求消息,其中,该请求消息是源节点在接收到该目标资源不在该源节点上的请求消息之后发送给该中间节点的,其中,该请求消息中携带有目 的节点的标识、地址,和/或目标数据的地址;
步骤s404,创建用于存储该请求消息和跟踪该请求消息传输状态的资源;
步骤s406,根据该请求消息对目标资源进行操作。
进一步地,在根据该请求消息对目标资源进行操作之后,向该中间节点反馈第二响应消息,供该中间节点根据该第二响应消息在该资源中更新该请求消息的传输状态,其中,该第二响应消息中携带有对目标资源进行操作的结果。
进一步地,对目标资源的操作包括以下至少之一:读取资源、创建资源、更新资源、删除资源。
进一步地,创建的资源至少包括以下属性:相邻节点地址,用于保存相邻节点上递送资源的地址,以及追随相邻节点上递送资源的属性信息;数据,用于保存递送的数据;目标地址,用于保存目的节点的标识或地址;传输状态,用于保存数据递送的状态。
本发明实施例提供了一种数据传输装置,图5是根据本发明实施例的数据传输装置的框图一,如图5所示,包括:
第一接收模块52,用于接收对目标资源进行操作的请求消息,其中,该请求消息中携带有目的节点的标识、地址,和/或目标资源的地址;
第一创建模块54,用于在该目标资源不在源节点上的情况下,创建用于存储该请求消息和跟踪该请求消息传输状态的资源;
发送模块56,用于通过中间节点将该请求消息发送给目的节点,供该目的节点根据该请求消息对目标资源进行操作。
本发明实施例还提供了一种数据传输装置,图6是根据本发明实施例的数据传输装置的框图二,如图6所示,包括:
第二接收模块62,用于接收源节点发送的对目标资源进行操作的请求消息,其中,该请求消息是该源节点在接收到该目标资源不在 该源节点上的请求消息之后发送的,其中,该请求消息中携带有目的节点的标识、地址,和/或目标数据的地址;
第二创建模块64,用于创建用于存储该请求消息和跟踪该请求消息传输状态的资源;
转发模块66,用于将该请求消息转发给目的节点,供该目的节点根据该请求消息对目标资源进行操作。
本发明实施例还提供了一种数据传输装置,图7是根据本发明实施例的数据传输装置的框图三,如图7所示,包括:
第三接收模块72,用于接收中间节点转发的对目标资源进行操作的请求消息,其中,该请求消息是源节点在接收到该目标资源不在该源节点上的请求消息之后发送给该中间节点的,其中,该请求消息中携带有目的节点的标识、地址,和/或目标数据的地址;
第三创建模块74,用于创建用于存储该请求消息和跟踪该请求消息传输状态的资源;
操作模块76,用于根据该请求消息对目标资源进行操作。
本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的程序代码:
步骤s1,接收对目标资源进行操作的请求消息,其中,该请求消息中携带有目的节点的标识、地址,和/或目标资源的地址;
步骤s2,在该目标资源不在源节点上的情况下,创建用于存储该请求消息和跟踪该请求消息传输状态的资源;
步骤s3,通过中间节点将该请求消息发送给目的节点,供该目的节点根据该请求消息对目标资源进行操作。
可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行…
可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行…
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
本发明提供了一种可跟踪的数据递送方法,在递送过程中除实现正常的递送业务以外,可以对递送到各个中间节点的状态,数据的执行状态进行跟踪,还可以由发起者对递送任务进行删除,修改操作,为用户提供了更灵活的操作方式,并进一步提高用户体验。
应用场景:
应用实体(applicationentity,简称为ae1)的本地cse是cse1;
cse1和cse2相互注册;
cse2和cse3相互注册;
cse3上有应用实体ae3的资源信息;
ae3的应用数据存储在cse3的ae3的资源中
ae1需要读取ae3的应用数据;
假定cse1通过cse2发送到cse3的路径是预先配置在cse1中。
假定ae1已知ae3的资源地址
实施例一
以下以资源的属性为保存下一个节点递送资源的地址为例,进行进一步说明,图8是根据本发明实施例的数据递送方法的流程图,如图8所示,具体包括以下步骤:
1、ae1发送获取资源请求消息给cse1,获取资源请求消息中包含
1)目标资源的地址,即ae3的资源地址;
或
1)目标资源的地址;
2)目标cse的标识或地址;
2、cse1接收到请求消息后,检查目标资源的地址,如果目标资源不在cse1上,则创建资源“递送1”,为资源“递送1”设置以下属性:
1)next-uri:用于保存下一个节点上递送资源的地址;
2)data:用于保存递送的数据,本实施例中即ae1发送的获取资源请求消息;
3)target:用于保存数据递送的目标cse的标识或地址;
注:如果在ae1发送给cse1的请求消息中不包含目标cse的标识或地址,则根据目标资源的地址解析出目标cse的标识或地址,方法如下:
通常目标资源的地址由两个部分组成,前端部分是资源所在cse的地址,其他部分是资源在该cse内部的相对地址,因此可以通过目标资源的地址获得目标cse的地址。
4)delivery-status:用于保存数据递送的状态;
3、cse1发送创建递送资源请求给下一个节点cse2,请求消息中包含:
1)data:需要递送的数据,设置为资源“递送1”的属性“data”的值;
2)target:数据递送目标cse的标识或地址,设置为资源“递送1”的属性“target”的值;
4、cse2验证cse1具有创建递送资源的权限后,创建资源“递送2”,为资源“递送2”设置以下属性:
1)next-uri:用于保存下一个节点上递送资源的地址;
2)data:用于保存递送的数据,设置为请求消息中data的值;
3)target:用于保存数据递送的目标cse的标识,设置为请求消息中target的值;
4)delivery-status:用于保存数据递送的状态。
5、cse2创建递送资源后,发送响应消息给cse1,响应消息中包含:
1)resource-uri:在cse2上创建的递送资源的地址,本实施例即资源“递送2”的地址;
6、cse1接收到cse2发送的响应消息后,设置资源“递送1”的属性;
1)next-uri:设置为响应消息中的resource-uri的值。
2)delivery-status:设置为已递送到cse2,或设置为cse2已接受递送.
7、cse2接收到创建递送资源的请求后,检查“target”属性中的目标实体的标识是不是cse2的标识,如果不是,则cse2发送创建递送资源请求给下一个节点cse3,请求消息中包含:
1)data:需要递送的数据,设置为资源“递送2”的属性“data”的值;
2)target:数据递送目标cse的标识或地址,设置为资源“递送2”的属性“target”的值;
8、cse3验证cse2具有创建递送资源的权限后,创建资源“递送3”,为资源“递送3”设置以下属性:
1)next-uri:用于保存下一个节点上递送资源的地址;
2)data:用于保存递送的数据,设置为请求消息中data的值;
3)target:用于保存数据递送的目标cse的标识,设置为请求 消息中target的值;
4)delivery-status:用于保存数据递送的状态;
9、cse3创建递送资源后,发送响应消息给cse2,响应消息中包含:
1)resource-uri:在cse3上创建的递送资源的地址,本实施例为资源“递送3”的地址;
10、cse2接收到cse3发送的响应消息后,设置资源“递送2”的属性;
1)next-uri:设置为响应消息中的resource-uri的值。
2)delivery-status:设置为已递送到cse3,或设置为cse3已接受递送。
11、cse3接收到创建递送资源的请求后,检查“target”属性中的目标实体的标识是不是cse3的标识,如果是,则执行“data”中所包含的操作。
12、当cse1上的资源“递送1”的信息需要更新时,cse1根据资源“递送1”的属性“next-uri”,发送更新资源请求给cse2,请求更新cse2中相应的递送资源,将需要更新的信息包含在请求消息中。
13、在cse2接收到更新资源请求消息后,根据更新资源请求中的信息更新资源“递送2”的信息,并根据资源“递送2”的属性“next-uri”,发送更新资源请求给cse3,请求更新cse3中相应的递送资源。
14、当cse1上的资源“递送1”需要删除时,cse1根据资源“递送1”的属性“next-uri”,发送删除资源请求给cse2,请求删除cse2中相应的递送资源。
15、在cse2接收到删除资源请求后,根据资源“递送2”的属性“next-uri”,发送删除资源请求给cse3,请求删除cse3中相应 的递送资源。
实施例二
以下以资源的属性为保存上一个节点递送资源的地址为例,进行进一步说明,如图8所示,具体包括以下步骤:
1、ae1发送获取资源请求消息给cse1,获取资源请求消息中包含
1)目标资源的地址,即ae3的资源地址;
或
1)目标资源的地址;
2)目标cse的标识或地址;
2、cse1接收到请求消息后,检查目标资源的地址,如果目标资源不在cse1上,则创建资源“递送1”,为资源“递送1”设置以下属性:
1)prev-uri:用于保存上一个节点递送资源的地址。
注:如果当前的递送资源属于发起实体,则可以设置为空或设置为有关联的“请求”资源的标识;
关于“请求”资源,当cse接收到ae的请求消息后,可以为该请求创建资源“请求”,保存该请求消息相关的信息,例如请求的操作执行状态。
2)data:用于保存递送的数据,本实施例中即ae1发送的获取资源请求消息;
3)target:用于保存数据递送的目标cse的标识或地址;
注:如果在ae1发送给cse1的请求消息中不包含目标cse的标识或地址,则根据目标资源的地址解析出目标cse的标识或地址,方法如下:
通常目标资源的地址由两个部分组成,前端部分是资源所在cse的地址,其他部分是资源在该cse内部的相对地址,因此可以通过目标资源的地址获得目标cse的地址。
4)delivery-status:用于保存数据递送的状态;
3、cse1发送创建递送资源请求给下一个节点cse2,请求消息中包含:
1)data:需要递送的数据,设置为资源“递送1”的属性“data”的值;
2)target:数据递送目标cse的标识或地址,设置为资源“递送1”的属性“target”的值;
3)resource-uri:本cse上递送资源的地址,本实施例即资源“递送1”的地址;
4、cse2验证cse1具有创建递送资源的权限后,创建资源“递送2”,为资源“递送2”设置以下属性:
1)prev-uri:用于保存上一个节点递送资源的地址,设置为请求消息中resource-uri的值。
2)data:用于保存递送的数据,设置为请求消息中data的值;
3)target:用于保存数据递送的目标cse的标识,设置为请求消息中target的值;
4)delivery-status:用于保存数据递送的状态。
5、cse2创建递送资源后,发送响应消息给cse1,响应消息中指示“成功”;
6、cse1接收到cse2发送的响应消息后,设置资源“递送1”的属性;
1)delivery-status:设置为已递送到cse2,或设置为cse2已接受递送.
7、cse2接收到创建递送资源的请求后,检查“target”属性中 的目标实体的标识是不是cse2的标识,如果不是,则cse2发送创建递送资源请求给下一个节点cse3,请求消息中包含:
1)data:需要递送的数据,设置为资源“递送2”的属性“data”的值;
2)target:数据递送目标cse的标识或地址,设置为资源“递送2”的属性“target”的值;
3)resource-uri:本cse上递送资源的地址,本实施例即资源“递送2”的地址;
8、cse3验证cse2具有创建递送资源的权限后,创建资源“递送3”,为资源“递送3”设置以下属性:
1)prev-uri:用于保存上一个节点递送资源的地址,设置为请求消息中resource-uri的值。
2)data:用于保存递送的数据,设置为请求消息中data的值;
3)target:用于保存数据递送的目标cse的标识,设置为请求消息中target的值;
4)delivery-status:用于保存数据递送的状态;
9、cse3创建递送资源后,发送响应消息给cse2,响应消息中指示“成功”;
10、cse2接收到cse3发送的响应消息后,设置资源“递送2”的属性;
1)delivery-status:设置为已递送到cse3,或设置为cse3已接受递送。
11、cse2按照资源“递送2”的属性“prev-uri”,发送更新资源请求消息给cse1,更新资源请求消息中包含资源“递送2”的属性“delivery-status”。
12、cse1接收到更新资源请求后,将资源“递送1”的属性“delivery-status”的值更新为接收到的“delivery-status”的值。
13、cse3接收到创建递送资源的请求后,检查“target”属性中的目标实体的标识是不是cse3的标识,如果是,则执行“data”中所包含的操作。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。