一种数据通信方法、装置及系统与流程

文档序号:14179180阅读:205来源:国知局
一种数据通信方法、装置及系统与流程

本发明涉及物联网技术领域,尤其涉及一种数据通信方法、装置及系统。



背景技术:

物联网整个架构中包括很多个网元,如分布式存储系统、路由转发系统、工业设备适配器、云平台服务器等等,这些网元既要关注自己的业务逻辑,又要与其它网元进行数据通信,这导致网元的负担较重,且网元的数据不易管理和维护。



技术实现要素:

有鉴于此,本发明提供了一种数据通信方法、装置及系统,用以解决现有的物联网架构中网元的负担较重,且网元的数据不易管理和维护的问题,其技术方案如下:

一种数据通信方法,应用于数据通信系统中的服务器,所述服务器可与多个客户端进行通信,所述多个客户端至少包括第一客户端和第二客户端,所述数据通信方法包括:

接收第一客户端发送的目标报文,其中,所述目标报文为所述第一客户端通过第一数据通道从第一网元接收的报文,所述目标报文的报文主题包括第一标识信息,所述第一标识信息至少包括第二网元的组标识,所述第二网元的组标识为所述第二网元所属组的标识;

接收第二客户端发送的对所述目标报文的订阅请求,其中,所述订阅请求为所述第二客户端通过第二数据通道从所述第二网元接收的请求,所述订阅请求中包括第二标识信息,所述第二标识信息至少包括所述第二网元的组标识;

通过所述第一标识信息和所述第二标识信息确定与所述订阅请求对应的报文,并将与所述订阅请求对应的报文发送至所述第二客户端,以使所述第二客户端将与所述订阅请求对应的报文发送至所述第二网元。

其中,所述通过所述第一标识信息和所述第二标识信息确定与所述订阅请求对应的报文,包括:

若所述第二标识信息为所述第二网元的组标识和所述第二网元的网元标识,且所述第一标识信息为所述第二网元的组标识和所述第二网元的网元标识,则将所述目标报文确定为与所述订阅请求对应的报文;

若所述第二标识信息为所述第二网元的组标识,且所述第一标识信息为所述第二网元的组标识和所述第二网元或其它网元的网元标识,则将所述目标报文确定为与所述订阅请求对应的报文。

其中,所述基于所述订阅请求和所述目标报文的报文主题确定与所述订阅请求对应的报文,还包括:

若所述第二标识信息为所述第二网元的组标识,且所述第一标识信息为所述第二网元的组标识,则基于所述组标识确定与所述组标识对应的组中所包括的网元,基于所述组标识对应的组中各个网元的网元标识将所述目标报文扩展成与所述组标识对应的组中各个网元对应的报文,将扩展得到的所有报文确定为与所述订阅请求对应的报文;

若所述第二标识信息为所述第二网元的组标识和所述第二网元的网元标识,且所述第一标识信息为所述第二网元的组标识,则基于所述第二网元的网元标识将所述目标报文扩展成与所述第二网元对应的报文,将扩展得到的报文确定为与所述订阅请求对应的报文。

其中,所述基于所述组标识对应的组中各个网元的网元标识将所述目标报文扩展成与所述组标识对应的组中各个网元对应的报文,包括:

基于所述组标识对应的组中所包括的网元的数量扩展目标报文,获得m个目标报文,m为所述组标识对应的组中所包括的网元的数量;

基于所述组标识对应的组中各个网元的网元标识对所述m个目标报文的报文主题进行扩展,获得与所述组标识对应的组中各个网元对应的报文,其中,与所述组标识对应的组中各个网元对应的报文的报文主题包括所述组标识和对应网元的网元标识;

所述基于所述第二网元的网元标识将所述目标报文扩展成与所述第二网元对应的报文,包括:

基于所述第二网元的网元标识对所述目标报文的报文主题进行扩展,获得与所述第二网元对应的报文,其中,与所述第二网元对应的报文的报文主题包括所述组标识和所述第二网元的网元标识。

一种数据通信装置,应用于数据通信系统中的服务器,所述服务器可与多个客户端进行通信,所述多个客户端至少包括第一客户端和第二客户端,所述数据通信装置包括:第一接收模块、第二接收模块、确定模块和发送模块;

所述第一接收模块,用于接收第一客户端发送的目标报文,其中,所述目标报文为所述第一客户端通过第一数据通道从第一网元接收的报文,所述目标报文的报文主题包括第一标识信息,所述第一标识信息至少包括第二网元的组标识,所述第二网元的组标识为所述第二网元所属组的标识;

所述第二接收模块,用于接收第二客户端发送的对所述目标报文的订阅请求,其中,所述订阅请求为所述第二客户端通过第二数据通道从所述第二网元接收的请求,所述订阅请求中包括第二标识信息,所述第二标识信息至少包括所述第二网元的组标识;

所述确定模块,用于通过所述第一标识信息和所述第二标识信息确定与所述订阅请求对应的报文;

所述发送模块,用于将与所述订阅请求对应的报文发送至所述第二客户端,以使所述第二客户端将与所述订阅请求对应的报文发送至所述第二网元。

其中,所述确定模块包括:第一确定子模块和第二确定子模块;

所述第一确定子模块,用于当所述第二标识信息为所述第二网元的组标识和所述第二网元的网元标识,且所述第一标识信息为所述第二网元的组标识和所述第二网元的网元标识时,将所述目标报文确定为与所述订阅请求对应的报文;

所述第二确定子模块,用于当所述第二标识信息为所述第二网元的组标识,且所述第一标识信息为所述第二网元的组标识和所述第二网元或其它网元的网元标识时,将所述目标报文确定为与所述订阅请求对应的报文。

其中,所述确定模块还包括:第三确定子模块、第一扩展子模块、第四确定子模块、第二扩展子模块和第五确定子模块;

所述第三确定子模块,用于当所述第二标识信息为所述第二网元的组标识,且所述第一标识信息为所述第二网元的组标识时,基于所述组标识确定与所述组标识对应的组中所包括的网元;

所述第一扩展子模块,用于基于所述组标识对应的组中各个网元的网元标识将所述目标报文扩展成与所述组标识对应的组中各个网元对应的报文;

所述第四确定子模块,用于将所述第一扩展子模块扩展得到的所有报文确定为与所述订阅请求对应的报文;

所述第二扩展子模块,用于当所述第二标识信息为所述第二网元的组标识和网元标识,且所述第一标识信息为所述第二网元的组标识时,基于所述第二网元的网元标识将所述目标报文扩展成与所述第二网元对应的报文;

所述第五确定子模块,用于将所述第二扩展子模块扩展得到的报文确定为与所述订阅请求对应的报文。

一种数据通信系统,包括:多个客户端和服务器,所述多个客户端至少包括第一客户端和第二客户端;

所述第一客户端,用于通过第一数据通道从第一网元接收目标报文,将所述目标报文发送至所述服务器,其中,所述目标报文的报文主题包括第一标识信息,所述第一标识信息至少包括第二网元的组标识,所述第二网元的组标识为所述第二网元所属组的标识;

所述第二客户端,用于通过第二数据通道从所述第二网元接收对所述目标报文的订阅请求,并将所述订阅请求发送至所述服务器,其中,所述订阅请求中包括第二标识信息,所述第二标识信息至少包括所述第二网元的组标识;

所述服务器,用于接收所述目标报文;以及,在接收到所述订阅请求后,通过所述第一标识信息和所述第二标识信息确定与所述订阅请求对应的报文,并将与所述订阅请求对应的报文发送至所述第二客户端,以使所述第二客户端将与所述订阅请求对应的报文发送至所述第二网元。

其中,所述服务器通过所述第一标识信息和所述第二标识信息确定与所述订阅请求对应的报文,具体用于:

当所述第二标识信息为所述第二网元的组标识和所述第二网元的网元标识,且所述第一标识信息为所述第二网元的组标识和所述第二网元的网元标识时,将所述目标报文确定为与所述订阅请求对应的报文;

当所述第二标识信息为所述第二网元的组标识,且所述第一标识信息为所述第二网元的组标识和所述第二网元或其它网元的网元标识时,则将所述目标报文确定为与所述订阅请求对应的报文。

其中,所述服务器通过所述第一标识信息和所述第二标识信息确定与所述订阅请求对应的报文,具体还用于:

当所述第二标识信息为所述第二网元的组标识,且所述第一标识信息为所述第二网元的组标识时,基于所述组标识确定与所述组标识对应的组中所包括的网元,基于所述组标识对应的组中各个网元的网元标识将所述目标报文扩展成与所述组标识对应的组中各个网元对应的报文,将扩展得到的所有报文确定为与所述订阅请求对应的报文;

当所述第二标识信息为所述第二网元的组标识和所述第二网元的网元标识,且所述第一标识信息为所述第二网元的组标识时,基于所述第二网元的网元标识将所述目标报文扩展成与所述第二网元对应的报文,将扩展得到的报文确定为与所述订阅请求对应的报文

上述技术方案具有如下有益效果:

本发明提供的数据通信方法、装置及系统能够实现网元之间的数据通信,这使得,网元只需要关注自己的业务逻辑以及如何与数据通信系统交互即可,其余的数据存储管理和网元之间的数据通信均由数据通信系统来完成,这使得网元的负担大大减轻,且网元数据的管理变得简单。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明实施例提供的数据通信系统的结构示意图;

图2为本发明实施例提供的数据通信系统的一具体实例的结构示意图;

图3为本发明实施例提供的数据通信方法的流程示意图;

图4为本发明实施例提供的数据通信装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例提供了一种数据通信系统,请参阅图1,示出了该数据通信系统的结构示意图,该系统可以包括:多个客户端和服务器101。其中,多个客户端至少包括第一客户端102和第二客户端103,每个客户端与一个网元对应,客户端可通过数据通道向对应的网元发送数据,也可通过数据管道从对应的网元接收数据,其中,数据管道可以为高速缓存数据库中的队列。

第一客户端102,用于通过第一数据通道104从第一网元接收目标报文。

其中,目标报文为第一客户端从第一网元接收的报文,目标报文的报文主题包括第一标识信息,第一标识信息至少包括第二网元的组标识,第二网元的组标识为第二网元所属组的标识,第一网元可以为物联网架构中的一网元,第二网元也是物联网架构中的一网元,并且,第二网元是与第一网元进行数据通信的网元。在一种可能的实现方式中,目标报文为mqtt报文,即网元与客户端、客户端与服务器之间数据的传输遵循mqtt协议,mqtt协议是基于tcp层的一个小型物联网协议,基于mqtt协议的数据传输效率比基于http协议的数据传输效率高。

示例性地,有三个网元分别为管理系统如boss系统、第一存储系统和第二存储系统,boss系统可管理第一存储系统和第二存储系统,由于第一存储系统和第二存储系统的类型相同,且有很多相同特征,因此,可将这两个存储系统归为一组,并为其配置组标识,除了配置组标识外,还需要为各个网元配置网元标识,例如为boss系统配置boss_id,为第一存储系统配置s1_id,为第二存储系统配置s2_id。

需要说明的是,目标报文的报文主题中第一标识信息有两种可能的情况,在一种可能的情况中,第一标识信息为第二网元的组标识,示例性地,第二网元的组标识为groups_id,第二网元的组标识在报文主题中的形式可以为groups_id/#,其中,#为通配符。在另一种可能的情况中,第一标识信息为第二网元的组标识和第二网元的网元标识,示例性地,第二网元的组标识为groups_id,第二网元的网元标识为s2_id,第二网元的组标识和第二网元的网元标识在报文主题中的形式可以为groups_id/s2_id。

第二客户端103,用于通过第二数据通道105从第二网元接收对目标报文的订阅请求。

其中,订阅请求中包括第二标识信息,第二标识信息至少包括第二网元的组标识。

需要说明的是,订阅请求中第二标识信息有两种可能的情况,在一种可能的情况中,第二标识信息为第二网元的组标识,示例性地,第二网元的组标识为groups_id,第二网元的组标识在报文主题中的形式可以为groups_id/#,其中,#为通配符。在另一种可能的情况中,第二标识信息为第二网元的组标识和第二网元的网元标识,示例性地,第二网元的组标识为groups_id,第二网元的网元标识为s2_id,第二网元的组标识和第二网元的网元标识在报文主题中的形式可以为groups_id/s2_id。

服务器102,用于从第一客户端102接收目标报文;以及,从第二客户端103接收对目标报文的订阅请求,并在接收到该订阅请求后,通过第一标识信息和第二标识信息确定与订阅请求对应的报文,并将与订阅请求对应的报文发送至第二客户端103,以使第二客户端103将与订阅请求对应的报文发送至第二网元。

以下对服务器102通过第一标识信息和第二标识信息确定与订阅请求对应的报文的实现过程进行说明:

服务器102通过第一标识信息和第二标识信息确定与订阅请求对应的报文的实现过程包括四种可能的情况:

第一种可能的情况:目标报文的报文主题中的第一标识信息为第二网元的组标识和第二网元的网元标识,并且,报文订阅请求中的第二标识信息为第二网元的组标识和第二网元的网元标识,此时,将目标报文确定为与订阅请求对应的报文。

示例性地,目标报文的报文主题中的第一标识信息为groups_id/s2_id(表明第一网元想将目标报文发送给groups_id对应的组中s2_id对应的网元),订阅请求中的第二标识信息为groups_id/s2_id(表明第二网元只接收发送给自己的报文),目标报文即为与订阅请求对应的报文,即,服务器直接将目标报文发送至第二网元对应的第二客户端,第二客户端通过第二数据通道将目标报文发送至第二网元。

第二种可能的情况:报文主题中的第一标识信息为第二网元的组标识和第二网元或其它网元的网元标识,并且,报文订阅请求中的第二标识信息为第二网元的组标识,此时,将目标报文确定为与所订阅请求对应的报文。

示例性地,目标报文的报文主题中的第一标识信息为groups_id/s2_id(表明第一网元想将目标报文发送给groups_id对应的组中s2_id对应的网元),第二网元的订阅请求中的第二标识信息为groups_id/#(表明第二网元接收主题中包括groups_id的报文),此时,目标报文即为与订阅请求对应的报文,即,服务器直接将目标报文发送至第二客户端,第二客户端通过第二数据通道将目标报文发送至第二网元。

第三种可能的情况:目标报文的报文主题中的第一标识信息为第二网元的组标识,并且,订阅请求中的第二标识信息为第二网元的组标识,此时,服务器基于组标识确定与组标识对应的组中所包括的网元,基于组标识对应的组中各个网元的网元标识将目标报文扩展成与组标识对应的组中各个网元对应的报文,将扩展得到的所有报文确定为与订阅请求对应的报文。

其中,服务器基于组标识对应的组中各个网元的网元标识将目标报文扩展成与组标识对应的组中各个网元对应的报文的过程可以包括:服务器基于组标识对应的组中所包括的网元的数量扩展目标报文,获得m个目标报文,m为组标识对应的组中所包括的网元的数量;基于组标识对应的组中各个网元的网元标识对m个目标报文的报文主题进行扩展,获得与组标识对应的组中各个网元对应的报文,其中,与组标识对应的组中各个网元对应的报文的报文主题包括组标识和对应网元的网元标识。

示例性地,目标报文的报文主题中的第一标识信息为groups_id/#(表明第一网元想将目标报文发送给groups_id对应的组中所有的网元),第二网元的订阅请求中的第二标识信息为groups_id/#(表明第二网元接收主题中包括groups_id的报文),假设groups_id对应的组中所包括的网元为两个,网元的网元标识分别为s2_id、s3_id,则此时服务器需要将目标报文扩展成两个报文,并且,将两个报文的报文主题分别扩展为groups_id/s2_id和groups_id/s3_id,然后将报文主题为groups_id/s2_id和groups_id/s3_id的两个报文发送至第二客户端,第二客户端通过第二数据通道将这两个报文发送至s2_id对应的网元,假设s3_id对应的网元也订阅了groups_id/#,则服务器也会通过对应的客户端将报文主题为groups_id/s2_id和groups_id/s3_id的两个报文发送至s3_id对应的网元。

第四种可能的情况:目标报文的报文主题中的第一标识信息为第二网元的组标识,并且,订阅请求中的第二标识信息为第二网元的组标识和第二网元的网元标识,则此时服务器基于第二网元的网元标识将目标报文扩展成与第二网元对应的报文,将扩展得到的报文确定为与订阅请求对应的报文。

其中,服务器基于第二网元的网元标识将目标报文扩展成与第二网元对应的报文的过程可以包括:基于第二网元的网元标识对目标报文的报文主题进行扩展,获得与第二网元对应的报文,其中,与第二网元对应的报文的报文主题包括组标识和第二网元的网元标识。

示例性地,目标报文的报文主题中的第一标识信息为groups_id/#(表明第一网元想将目标报文发送给groups_id对应的组中所有的网元),第二网元的订阅请求中的第二标识信息为groups_id/s2_id(表明第二网元只接收发送给自己的报文),此时,服务器将目标报文的报文主题扩展成groups_id/s2_id,然后将报文主题为groups_id/s2_id的报文发送至第二客户端,第二客户端再通过第二数据通道将groups_id/s2_id的报文发送至第二网元。

另外,需要说明的是,当组标识对应的组中新增网元时,只需要根据该新增网元所需要获取的信息向该新增网元对应的客户端发送订阅请求即可,例如,新增网元想要获取其所在组中其它网元的报文,则只需要向对应的客户端发送包含groups_id/#的订阅请求即可。

本发明实施例提供的数据通信系统能够实现网元之间的数据通信,这使得,网元只需要关注自己的业务逻辑以及如何与数据通信系统交互即可,其余的数据存储管理和网元之间的数据通信均由数据通信系统来完成,这使得网元的负担大大减轻,且网元数据的管理变得简单。

下面通过一具体实例对上述本发明实施例提供的数据通信系统实现网元之间数据通信的过程进行说明:

请参阅图2,示出了数据通信系统的一具体实例的结构示意图,该数据通信系统可以包括:服务器201、第一客户端2021、第二客户端2022和第三客户端2023,其中,第一客户端2021、第二客户端2022和第三客户端2023可分别与服务器201建立通信连接,并且,第一客户端2021可通过第一数据通道2031与boss系统进行数据交互,第二客户端2022可通过第二数据通道2032与第一存储系统进行数据交互,第三客户端2023可通过第三数据通道2033与第二存储系统进行数据交互。

第一存储系统和第二存储系统属于一组,该组的组标识为boss_id,boss系统、第一存储系统和第二存储系统分别有自己的标识,具体的boss系统的标识为boss_id,第一存储系统的标识为s1_id,第二存储系统的标识为s2_id。

假设boss系统想要向第一存储系统存储发送报文,则boss系统通过第一数据通道2031向第一客户端2021发送报文主题为groups_id/s1_id的目标报文,第一客户端2021接收到目标报文后,将目标报文发送至服务器201,服务器201存储该目标报文。当服务器201接收到第二客户端2022发送的包括groups_id/s1_id的订阅请求(该请阅请求由第一存储系统通过第二数据通道2032发送至第二客户端2022)时,将报文主题为groups_id/s1_id的目标报文发送至第二客户端2022,第二客户端2022通过第二数据通道2032将目标报文发送至第一存储系统。上述过程实现了网元之间的一对一通信。

假设boss系统想要向groups_id对应的组中所有的存储系统发送报文,则boss系统通过第一数据通道2031向第一客户端2021发送报文主题为groups_id/#的目标报文,第一客户端2021接收到目标报文后,将目标报文发送至服务器201,服务器201存储该目标报文。当服务器201接收到第二客户端2022发送的包括groups_id/#的订阅请求(该请阅请求由第一存储系统通过第二数据通道2032发送至第二客户端2022)时,服务器201会将目标报文扩展为报文主题为groups_id/s1_id和groups_id/s2_id的两个报文,然后将报文主题为groups_id/s1_id和groups_id/s2_id的两个报文发送至第二客户端2022,第二客户端2022通过第二数据通道2032将这两个报文发送至第一存储系统。同样地,如果服务器201接收到第三客户端2023发送的包括groups_id/#的订阅请求(该请阅请求由第二存储系统通过第三数据通道2033发送至第三客户端2023),则服务器201也会将报文主题为groups_id/s1_id和groups_id/s2_id的两个报文发送至第三客户端2023,第三客户端2023通过第三数据通道2033将这两个报文发送至第二存储系统。上述过程实现了网元之间的一对多通信。

假设groups_id对应的组中新增一第三存储系统,数据通信系统中新增第四客户端2024,第四客户端2024可通过第四数据通道2034与第三存储系统进行数据交互。假设第三存储系统想要获取第一存储系统和第二存储系统的报文,则只需要通过第四数据通道2034向第四客户端2024发送包括groups_id/#的订阅请求即可,第四客户端2024会将包括groups_id/#的订阅请求发送至服务器201,服务器201接收到包括groups_id/#的订阅请求之后,会将报文主题中包括groups_id的所有报文发送给第四客户端2024,第四客户端2024通过第四数据通道2034将报文主题中包括groups_id的报文发送至第三存储系统。

本发明实施例提供的数据通信系统可实现网元之间的一对一通信以及一对多通信,并且,本发明实施例提供的数据通信系统实现网元通信的方式使得物联网架构中的网元比较容易扩展。

本发明实施例还提供了一种数据通信方法,该数据通信方法可应用于数据通信系统中的服务器,该服务器可与多个客户端进行通信,多个客户端至少包括第一客户端和第二客户端,请参阅图3,示出了该数据通信方法的流程示意图,可以包括:

步骤s301:接收第一客户端发送的目标报文。

其中,目标报文为第一客户端从第一网元接收的报文,目标报文的报文主题包括第一标识信息,第一标识信息至少包括第二网元的组标识,第二网元的组标识为第二网元所属组的标识,第一网元可以为物联网架构中的一网元,第二网元也是物联网架构中的一网元,并且,第二网元是与第一网元进行数据通信的网元。在一种可能的实现方式中,目标报文为mqtt报文,即网元与客户端、客户端与服务器之间数据的传输遵循mqtt协议,mqtt协议是基于tcp层的一个小型物联网协议,基于mqtt协议的数据传输效率比基于http协议的数据传输效率高。

需要说明的是,目标报文的报文主题中第一标识信息有两种可能的情况,在一种可能的情况中,第一标识信息为第二网元的组标识,示例性地,第二网元的组标识为groups_id,第二网元的组标识在报文主题中的形式可以为groups_id/#,其中,#为通配符。在另一种可能的情况中,第一标识信息为第二网元的组标识和第二网元的网元标识,示例性地,第二网元的组标识为groups_id,第二网元的网元标识为s2_id,第二网元的组标识和第二网元的网元标识在报文主题中的形式可以为groups_id/s2_id。

步骤s302:接收第二客户端发送的对目标报文的订阅请求。

其中,订阅请求为第二客户端通过第二数据通道从第二网元接收的请求,该订阅请求中包括第二标识信息,第二标识信息至少包括第二网元的组标识。

需要说明的是,订阅请求中第二标识信息有两种可能的情况,在一种可能的情况中,第二标识信息为第二网元的组标识,示例性地,第二网元的组标识为groups_id,第二网元的组标识在报文主题中的形式可以为groups_id/#,其中,#为通配符。在另一种可能的情况中,第二标识信息为第二网元的组标识和第二网元的网元标识,示例性地,第二网元的组标识为groups_id,第二网元的网元标识为s2_id,第二网元的组标识和第二网元的网元标识在报文主题中的形式可以为groups_id/s2_id。

步骤s303:通过第一标识信息和第二标识信息确定与订阅请求对应的报文,并将与订阅请求对应的报文发送至第二客户端,以使第二客户端将与订阅请求对应的报文发送至第二网元。

以下对通过第一标识信息和第二标识信息确定与订阅请求对应的报文的实现过程进行说明:

第一种可能的情况:目标报文的报文主题中的第一标识信息为第二网元的组标识和第二网元的网元标识,并且,报文订阅请求中第二标识信息为第二网元的组标识和第二网元的网元标识,此时,将目标报文确定为与订阅请求对应的报文。

第二种可能的情况:报文主题中的第一标识信息为第二网元的组标识和第二网元或其它网元的网元标识,并且,报文订阅请求中的第二标识信息为第二网元的组标识,此时,将目标报文确定为与所订阅请求对应的报文。

第三种可能的情况:目标报文的报文主题中的第一标识信息为第二网元的组标识,并且,订阅请求中的第二标识信息为第二网元的组标识,此时,基于组标识确定与组标识对应的组中所包括的网元,基于组标识对应的组中各个网元的网元标识将目标报文扩展成与组标识对应的组中各个网元对应的报文,将扩展得到的所有报文确定为与订阅请求对应的报文。

其中,基于组标识对应的组中各个网元的网元标识将目标报文扩展成与组标识对应的组中各个网元对应的报文的过程可以包括:基于组标识对应的组中所包括的网元的数量扩展目标报文,获得m个目标报文,m为组标识对应的组中所包括的网元的数量;基于组标识对应的组中各个网元的网元标识对m个目标报文的报文主题进行扩展,获得与组标识对应的组中各个网元对应的报文,其中,与组标识对应的组中各个网元对应的报文的报文主题包括组标识和对应网元的网元标识。

第四种可能的情况:目标报文的报文主题中的第一标识信息为第二网元的组标识,并且,订阅请求中的第二标识信息为第二网元的组标识和第二网元的网元标识,此时,基于第二网元的网元标识将目标报文扩展成与第二网元对应的报文,将扩展得到的报文确定为与订阅请求对应的报文。

其中,基于第二网元的网元标识将目标报文扩展成与第二网元对应的报文的过程可以包括:基于第二网元的网元标识对目标报文的报文主题进行扩展,获得与第二网元对应的报文,其中,与第二网元对应的报文的报文主题包括组标识和第二网元的网元标识。

本发明实施例提供的数据通信方法,能够实现网元之间的数据通信,这使得,网元只需要关注自己的业务逻辑以及如何与数据通信系统交互即可,其余的数据存储管理和网元之间的数据通信均由数据通信系统来完成,这使得网元的负担大大减轻,且网元数据的管理变得简单。

与上述数据通信方法相对应,本发明实施例还提供了一种数据通信装置,该装置可应用于数据通信系统中的服务器,该服务器可与多个客户端进行通信,多个客户端至少包括第一客户端和第二客户端,请参阅图4,示出了该装置的结构示意图,可以包括:第一接收模块401、第二接收模块402、确定模块403和发送模块404。其中:

第一接收模块401,用于接收第一客户端发送的目标报文。

其中,目标报文为第一客户端从第一网元接收的报文,目标报文的报文主题包括第一标识信息,第一标识信息至少包括第二网元的组标识,第二网元的组标识为第二网元所属组的标识,第一网元可以为物联网架构中的一网元,第二网元也是物联网架构中的一网元,并且,第二网元是与第一网元进行数据通信的网元。在一种可能的实现方式中,目标报文为mqtt报文,即网元与客户端、客户端与服务器之间数据的传输遵循mqtt协议,mqtt协议是基于tcp层的一个小型物联网协议,基于mqtt协议的数据传输效率比基于http协议的数据传输效率高。

第二接收模块402,用于接收第二客户端发送的对目标报文的订阅请求。

其中,订阅请求为第二客户端通过第二数据通道从第二网元接收的请求,该订阅请求中包括第二标识信息,第二标识信息至少包括第二网元的组标识。

确定模块403,用于通过第一标识信息和第二标识信息确定与订阅请求对应的报文。

发送模块404,用于将与订阅请求对应的报文发送至第二客户端,以使第二客户端将与订阅请求对应的报文发送至第二网元。

本发明实施例提供的数据通信装置,能够实现网元之间的数据通信,这使得,网元只需要关注自己的业务逻辑以及如何与数据通信系统交互即可,其余的数据存储管理和网元之间的数据通信均由数据通信系统来完成,这使得网元的负担大大减轻,且网元数据的管理变得简单。

上述实施例提供的数据通信装置中,确定模块403可以包括:第一确定子模块和第二确定子模块。

第一确定子模块,用于当第二标识信息为第二网元的组标识和第二网元的网元标识,且第一标识信息为第二网元的组标识和第二网元的网元标识时,将目标报文确定为与订阅请求对应的报文。

第二确定子模块,用于当第二标识信息为第二网元的组标识,且第一标识信息为第二网元的组标识和第二网元或其它网元的网元标识时,将目标报文确定为与订阅请求对应的报文。

上述实施例提供的数据通信装置中,确定模块还可以包括:第三确定子模块、第一扩展子模块、第四确定子模块、第二扩展子模块和第五确定子模块。其中:

第三确定子模块,用于当第二标识信息为第二网元的组标识,且第一标识信息为第二网元的组标识时,基于组标识确定与组标识对应的组中所包括的网元。

第一扩展子模块,用于基于组标识对应的组中各个网元的网元标识将目标报文扩展成与组标识对应的组中各个网元对应的报文。

进一步地,第一扩展子模块,具体用于基于组标识对应的组中所包括的网元的数量扩展目标报文,获得m个目标报文,基于组标识对应的组中各个网元的网元标识对m个目标报文的报文主题进行扩展,获得与组标识对应的组中各个网元对应的报文,其中,m为所述组标识对应的组中所包括的网元的数量,与组标识对应的组中各个网元对应的报文的报文主题包括组标识和对应网元的网元标识。

第四确定子模块,用于将第一扩展子模块扩展得到的所有报文确定为与订阅请求对应的报文。

第二扩展子模块,用于当第二标识信息为第二网元的组标识和第二网元的网元标识,且第一标识信息为第二网元的组标识时,基于第二网元的网元标识将目标报文扩展成与第二网元对应的报文。

进一步地,第二扩展子模块,具体用于基于第二网元的网元标识对目标报文的报文主题进行扩展,获得与第二网元对应的报文,其中,与第二网元对应的报文的报文主题包括组标识和第二网元的网元标识。

第五确定子模块,用于将第二扩展子模块扩展得到的报文确定为与订阅请求对应的报文。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。

在本申请所提供的几个实施例中,应该理解到,所揭露的方法、装置和设备,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1