一种数据传输方法、服务器及数据传输装置制造方法及图纸

技术编号:21612566 阅读:33 留言:0更新日期:2019-07-13 20:48
本发明专利技术涉及物联网技术领域,特别涉及一种数据传输方法、服务器及数据传输装置,用以解决业务系统在通过多个business设备向服务器订阅同一主题的数据后,业务系统会接收到多个重复的数据,造成资源浪费的问题。本发明专利技术实施例服务器接收第一设备发布的数据;在第一设备发布的数据的主题中包含队列标识时,从订阅所述主题数据的多个第二设备中选取一个处于可用状态的目标第二设备;其中,队列标识用于表示主题数据是由业务系统通过多个第二设备订阅的;服务器将第一设备发布的数据发送给目标第二设备,以使目标第二设备将所述数据发送给对接的业务系统。从而业务系统仅接收到一个第二设备转发的数据,有效避免的资源浪费的问题。

A Data Transfer Method, Server and Data Transfer Device

【技术实现步骤摘要】
一种数据传输方法、服务器及数据传输装置
本专利技术涉及物联网通信
,特别涉及一种数据传输方法、服务器及数据传输装置。
技术介绍
在物联网领域,MQTT(MessageQueuingTelemetryTransport,消息队列遥测传输协议)是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛,包括受限的环境中,如:机器与机器(M2M)通信和物联网(IoT)通信,并且在通过卫星链路通信传感器、偶尔拨号的医疗设备、智能家居、及一些小型化设备中也已广泛使用。通信过程中,MQTT协议中有三种身份:发布者(Publish)、服务器、订阅者(Subscribe);其中,消息的发布者和订阅者都是客户端,消息发布者可以同时是订阅者。如图1所示,其中设备A为发布者,设备B和设备C为订阅者,设备B向服务器订阅主题为“temperature”的数据,设备C向服务器订阅主题为“temperature”的数据;设备A向服务器发布主题为“temperature”的数据,例如“temperature15℃”,则服务器将“temperature15℃”推送给设备B和设备C。在物联网通信中,业务系统在需要采集一些数据时,往往通过为业务系统部署business设备,通过business设备向服务器订阅该业务系统需要的数据;并且为了避免仅部署一个business设备导致的不可靠性,在目前的通信架构中为一个业务系统部署多个business设备,即通过多个business设备向服务器订阅同一主题的数据。在服务器接收到发布者发布的数据后,向订阅该种主题的数据的所有business设备均推送该数据,business设备在接收到服务器推送的数据之后,将接收到的数据发送给对接的业务系统,这样导致会导致业务系统接收到多个重复的数据,造成资源浪费。
技术实现思路
本专利技术提供一种数据传输方法及服务器,用以解决业务系统在通过多个business设备向服务器订阅同一主题的数据后,业务系统会接收到多个重复的数据,造成资源浪费的问题。基于上述问题,第一方面,本专利技术实施例提供一种数据传输方法,包括:服务器接收第一设备发布的数据;在所述第一设备发布的数据的主题中包含队列标识时,所述服务器从订阅所述主题数据的多个第二设备中选取一个处于可用状态的目标第二设备;其中,所述队列标识用于表示所述主题的数据是由业务系统通过多个第二设备订阅的;所述服务器将所述第一设备发布的数据发送给所述目标第二设备,以使所述目标第二设备将所述数据发送给对接的业务系统。第二方面,本专利技术实施例提供一种服务器,包括处理单元、存储单元和收发单元;其中,所述存储单元存储有程序代码,当所述程序代码被所述处理单元执行时,使得所述处理单元执行下列过程:通过所述收发单元接收第一设备发布的数据;在所述第一设备发布的数据的主题中包含队列标识时,从订阅所述主题数据的多个第二设备中选取一个处于可用状态的目标第二设备;其中,所述队列标识用于表示所述主题的数据是由业务系统通过多个第二设备订阅的;通过所述收发单元将所述第一设备发布的数据发送给所述目标第二设备,以使所述目标第二设备将所述数据发送给对接的业务系统。第三方面,本专利技术实施例提供一种数据传输装置,包括:接收模块,用于接收第一设备发布的数据;获取模块,用于在所述第一设备发布的数据的主题中包含队列标识时,从订阅所述主题数据的多个第二设备中选取一个处于可用状态的目标第二设备;其中,所述队列标识用于表示所述主题的数据是由业务系统通过多个第二设备订阅的;发送模块,用于将所述第一设备发布的数据发送给所述目标第二设备,以使所述目标第二设备将所述数据发送给对接的业务系统。第四方面,本专利技术实施例提供一种计算机可存储介质,其上存储有计算机程序,程序被处理器执行时实现如上述第一方面所述方法的步骤。由于本专利技术实施例服务器在接收到第一设备发布的数据的主题中包含队列标识时,将第一设备发布的数据发送给从多个第二设备中选取出的一个处于可用状态的目标第二设备,仅将第一设备发布的数据发送给该目标第二设备,目标第二设备将接收到的数据转发给对接的业务系统,从而业务系统仅接收到一个第二设备转发的数据,有效避免的资源浪费的问题。附图说明图1为
技术介绍
中通信架构的结构示意图;图2为本专利技术实施例第一种通信架构的结构示意图;图3为本专利技术实施例客户端访问接入平台的方法示意图;图4为本专利技术第二种实施例通信架构的结构示意图;图5为本专利技术实施例数据传输方法的流程图;图6为本专利技术实施例数据传输方法的完整流程图;图7为本专利技术实施例一种服务器的结构示意图;图8为本专利技术实施例一种数据传输装置的结构示意图。具体实施方式本专利技术实施例的通信架构中包括多个客户端,由负载均衡服务器、MQTT服务器和多个business设备组成的接入平台,以及业务系统。具体的通信架构的连接关系如图2所示。实施中,客户端通过域名访问接入平台;具体的,在客户端与接入平台建立连接之前,客户端通过域名服务器获取接入平台的IP地址。域名服务器向客户端返回的IP地址指向接入平台中的负载均衡服务器的地址,由负载均衡服务器将客户端的请求转发给MQTT服务器。business设备实现与MQTT服务器和业务系统的双向对接;其中,business设备与业务系统之间通过http(hypertexttransferprotocol,超文本传输协议)进行通信。具体的,客户端在接入接入平台时,通过调用SDK接口实现与接入平台通信。如图3所示,假设客户端包括智能电视、智能冰箱、智能洗衣机、智能电灯、智能开关等,其中,智能电视、智能冰箱、智能洗衣机通过API(ApplicationProgrammingInterface,应用程序编程接口)调用SDK访问接入平台,智能电灯、智能开关通过智能网关,然后通过API调用SDK访问接入平台;其中,SDK的接口与接入平台之间基于MQTT进行通信。一种可选的通信架构,如图4所示,包括第一设备、服务器、业务系统、以及与业务系统对接的至少两个第二设备。在该通信架构中,第一设备作为数据发布设备,第二设备作为数据订阅设备;业务系统用于采集所需的数据,为了便于业务系统采集所需的数据,为业务系统部署至少两个第二设备,第二设备向服务器订阅业务系统所需的数据。例如,业务系统需要采集设备工作温度,则至少两个第二设备向服务器订阅主题(topic)为“温度”的数据。第一设备向服务器发布数据,并在发布的上行数据中携带发布数据的主题;服务器在接收到第一设备发布的数据后,根据第一设备发布数据的主题,判断是否存在订阅该主题的数据的第二设备;例如,在第一设备发布的数据的主题为“温度”时,则服务器将接收到的主题为“温度”的数据推送给第二设备,由第二设备将接收到的主题为“温度”的数据发送给对接的业务系统。但是,基于目前的MQTT协议,由于至少两个第二设备均订阅了该主题为“温度”的数据,则服务器会将第一设备发布的主题为“温度”的数据推送给所有的第二设备,并且每个第二设备均会将接收到的主题为“温度”的数据发送给业务系统,从而导致业务系统接收到多个相同的数据。基于上述问题,本专利技术实施例提出一种解决方案,通过对主题的字段进本文档来自技高网
...

【技术保护点】
1.一种数据传输方法,其特征在于,该方法包括:服务器接收第一设备发布的数据;在所述第一设备发布的数据的主题中包含队列标识时,所述服务器从订阅所述主题数据的多个第二设备中选取一个处于可用状态的目标第二设备;其中,所述队列标识用于表示所述主题的数据是由业务系统通过多个第二设备订阅的;所述服务器将所述第一设备发布的数据发送给所述目标第二设备,以使所述目标第二设备将所述数据发送给对接的业务系统。

【技术特征摘要】
1.一种数据传输方法,其特征在于,该方法包括:服务器接收第一设备发布的数据;在所述第一设备发布的数据的主题中包含队列标识时,所述服务器从订阅所述主题数据的多个第二设备中选取一个处于可用状态的目标第二设备;其中,所述队列标识用于表示所述主题的数据是由业务系统通过多个第二设备订阅的;所述服务器将所述第一设备发布的数据发送给所述目标第二设备,以使所述目标第二设备将所述数据发送给对接的业务系统。2.如权利要求1所述的方法,其特征在于,在所述服务器接收第一设备发布的数据之前,还包括:所述服务器接收所述业务系统通过多个第二设备发送的订阅消息;所述服务器根据所述订阅消息确定每个第二设备订阅的数据的主题;其中,所述多个第二设备订阅的数据的主题相同。3.如权利要求1所述的方法,其特征在于,所述服务器从订阅所述主题数据的多个第二设备中选取一个处于可用状态的目标第二设备,包括:所述服务器检测订阅所述主题数据的多个第二设备的状态;所述服务器确定所述多个第二设备中处于可用状态的第二设备,生成由所述处于可用状态的第二设备组成的列表;所述服务器从所述列表中选取目标第二设备。4.如权利要求1所述的方法,其特征在于,该方法还包括:在所述第一设备发布的数据的主题中不包含队列标识时,所述服务器确定由订阅所述主题数据的第二设备组成的列表;所述服务器将所述第一设备发布的数据发送给所述列表中的每个第二设备,以使所述每个第二设备将接收到的所述数据发送给对接的业务系统。5.如权利要求1~4任一项所述的方法,其特征在于,所述服务器为支持消息队列遥测传输协议MQTT的服务器;所述第一设备和所述第二设备为支持MQTT的设备。6.一种服务器,其特征在于,包括处理单元、存储单元和收发单元;其中,所述存储单元存储有程序代码,当所述程序代码被所述处理单元执行时,使...

【专利技术属性】
技术研发人员:李冬冬肖虹
申请(专利权)人:青岛聚好联科技有限公司
类型:发明
国别省市:山东,37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1