CN110650203B - 数据传输方法、装置和系统、计算机存储介质及电子设备 - Google Patents
数据传输方法、装置和系统、计算机存储介质及电子设备 Download PDFInfo
- Publication number
- CN110650203B CN110650203B CN201910920069.9A CN201910920069A CN110650203B CN 110650203 B CN110650203 B CN 110650203B CN 201910920069 A CN201910920069 A CN 201910920069A CN 110650203 B CN110650203 B CN 110650203B
- Authority
- CN
- China
- Prior art keywords
- instruction
- uplink
- equipment
- downlink
- instructions
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
- H04L67/125—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/133—Protocols for remote procedure calls [RPC]
Abstract
本申请实施例公开了一种数据传输方法、装置和系统、计算机存储介质及电子设备,属于物联网技术领域。其中,该方法包括:接收多个设备发送的上行指令;通过每个设备对应的设备对象将上行指令并行转发至服务器;接收服务器返回的上行指令对应的下行指令;通过每个设备对应的设备会话对象将下行指令并行转发至多个设备。因此,本申请实施例可以实现大量上、下行指令的高并发执行,解决了相关技术中物联网系统无法有效应对超大量的数据流转技术问题。
Description
技术领域
本申请涉及互联网领域,具体而言,涉及一种数据传输方法、装置和系统、计算机存储介质及电子设备。
背景技术
物联网是互联网的应用于扩展,可以利用局部网络或互联网等通信技术把传感器、控制器、机器、人员和物等通过新的方式联在一起。随着物联网技术的发展,设备的种类越来越多,物联网系统会接入大量的设备。大量的设备会产生超大量的上行、下行指令消息,这要求物联网系统能够应对高并发的数据流转及快速响应。
但是,目前很多物联网系统在应对超大量的数据流转时没有较好的解决方案,会出现丢消息、系统响应慢、消息乱序等问题。
针对相关技术中物联网系统无法有效应对超大量的数据流转的问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种数据传输方法、装置和系统、计算机存储介质及电子设备,以至少解决相关技术中物联网系统无法有效应对超大量的数据流转的技术问题。
根据本申请实施例的第一方面,提供了一种数据传输方法,包括:接收多个设备发送的上行指令;通过每个设备对应的设备对象将上行指令并行转发至服务器;接收服务器返回的上行指令对应的下行指令;通过每个设备对应的设备会话对象将下行指令并行转发至多个设备。
可选地,在同一个设备发送多个上行指令的情况下,通过该设备对应的设备对象将多个上行指令依次转发至服务器;通过该设备对应的设备会话对象将多个上行指令对应的下行指令依次转发至该设备。
可选地,在接收到上行指令之后,通过应用对象将上行指令传输至每个设备对应的设备对象;在接收到下行指令之后,通过应用对象将下行指令传输至每个设备对应的设备会话对象。
可选地,上述方法还包括:按照每个设备的产品类型,通过应用对象将上行指令传输至对应的产品对象;通过产品对象将上行指令并行传输至每个设备对应的设备对象。
可选地,上述方法还包括:按照每个设备的产品类型,通过应用对象将下行指令传输至对应的产品对象;通过产品对象将下行指令并行传输至每个设备对应的设备对象;通过设备对象将下行指令并行传输至每个设备对应的设备会话对象。
可选地,在接收到下行指令之后,上述方法还包括:按照每个设备所属的集群,通过对应的集群会话对象将下行指令传输至每个集群对应的应用对象。
根据本申请实施例的第二方面,提供了一种数据传输系统,包括:接收接口,与多个设备连接,用于接收多个设备发送的上行指令;多个设备对象,与接收接口和服务器连接,多个设备对象与多个设备一一对应,多个设备对象并行运行,每个设备对象用于将相应设备发送的上行指令转发至服务器;接收接口,与服务器连接,还用于接收服务器返回的上行指令对应的下行指令;多个设备会话对象,与接收接口和多个设备连接,多个设备会话对象与多个设备一一对应,多个设备会话对象并行运行,每个设备会话对象用于将相应下行指令转发至对应的设备。
可选地,每个设备对象用于将对应设备发送的多个上行指令依次转发至服务器;每个设备会话对象用于将多个上行指令对应的下行指令依次转发至对应的设备。
可选地,上述系统还包括:应用对象,与接收接口、多个设备对象和多个设备会话对象连接,用于将上行指令传输至对应的设备对象,或将下行指令传输至对应的设备会话对象。
可选地,上述系统还包括:至少一个产品对象,与应用对象连接,每个产品对象与对应于同一个产品类型的至少一个设备对象连接,至少一个产品对象并行运行;应用对象还用于按照每个设备的产品类型,将上行指令传输至对应的产品对象;产品对象用于将上行指令传输至对应的设备对象。
可选地,应用对象还用于按照每个设备的产品类型,将下行指令传输至对应的产品对象;产品对象用于将下行指令传输至对应的设备对象;设备对象用于将下行指令并行传输至对应的设备会话对象。
可选地,上述系统还包括:至少一个集群会话对象,与接收接口连接,每个集群会话对象与对应于同一个集群的应用对象连接,每个集群会话对象用于按照每个设备所属的集群,将对应的下行指令传输至对应的应用对象。
根据本申请实施例的第三方面,提供了一种数据传输装置,包括:上行接收模块,用于接收多个设备发送的上行指令;上行转发模块,用于通过每个设备对应的设备对象将上行指令并行转发至服务器;下行接收模块,用于接收服务器返回的上行指令对应的下行指令;下行转发模块,用于通过每个设备对应的设备会话对象将下行指令并行转发至多个设备。
根据本申请实施例的第四方面,提供了一种计算机存储介质,计算机存储介质存储有多条指令,指令适于由处理器加载并执行上述的方法步骤。
根据本申请实施例的第五方面,提供了一种电子设备,包括:处理器和存储器;其中,存储器存储有计算机程序,计算机程序适于由处理器加载并执行上述的方法步骤。
在本申请实施例中,可以采用基于akka设计的actor模型构建物联网系统,通过每个设备对应的设备对象传输上行指令,并通过每个设备对应的设备会话对象传输下行指令,实现物联网系统中的大量数据流转。在本申请实施例中,由于每个设备的上行指令由对应的设备对象传输,下行指令由对应的设备会话对象传输,不同设备的指令相互隔离,从而实现了大量上、下行指令的高并发执行,进而解决了相关技术中物联网系统无法有效应对超大量的数据流转技术问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的一种数据传输方法的流程图;
图2是根据本申请实施例的另一种数据传输方法的流程图;
图3是根据本申请实施例的Actor模型架构示意图;
图4是根据本申请实施例的一种可选的数据传输方法的交互示意图;
图5是根据本申请实施例的一种数据传输装置的示意图;
图6是根据本申请实施例的一种数据传输系统的示意图;以及
图7是根据本申请实施例的一种数据传输系统的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。此外,在本申请的描述中,除非另有说明,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
物联网系统架构可以分为三层,底层是用来感知数据的感知层,第二层是数据传输的网络层,最上面是内容应用层。
其中,感知层一般包括数据采集和数据短距离传输两部分,即首先通过传感器、摄像头等设备采集外部物理世界的数据,通过蓝牙、红外、ZigBee、工业现场总线等短距离有线或无线传输技术进行协同工作或者传递数据到网关设备。
网络层主要承担着数据传输的功能,能够将感知层感知到的数据无障碍、高可靠性、高安全性的进行传送。
应用层将网络层传输来的数据通过各类信息系统进行处理,并通过各种设备与人进行交互。这一层也可按形态直观地划分为两个子层:一个是应用程序层;另一个是终端设备层。应用程序层进行数据处理,完成跨行业、跨应用、跨系统之间的信息协同、共享、互通的功能。而终端设备层主要是提供人机界面,由用户进行操作与控制。
物联网系统接入大量的设备,会产生超大量的上行、下行指令消息,但是,物联网系统无法应对超大量的数据流转,导致会出现丢消息、系统响应慢、消息乱序等问题。
为了解决上述技术问题,本申请实施例针对物联网系统的网络层,提供了一种数据传输方法、装置和系统、计算机存储介质及电子设备。
实施例1
根据本申请实施例,提供了一种数据传输方法,该方法应用于物联网系统。
下面结合图1对本申请实施例提供的数据传输方法进行详细介绍,如图1所示,该方法包括如下步骤:
步骤S102,接收多个设备发送的上行指令;
上述的设备可以是接入物联网的设备,种类较多,数量较大,例如,可以是冰箱、洗衣机、智能电视机、电压力锅、智能门铃、安全摄像头、智能汽车、各类传感器等,但不仅限于此。多个设备可以是不同种类的设备,也可以是同一个种类不同厂家生产的设备,还可以是同一个厂家针对同一个种类生产的不同型号的设备,本申请对此不作具体限定。
上述的上行指令可以是指接入物理网的设备发送的数据、指令等,设备类型不同,发送的上行指令不同,例如,对于冰箱、洗衣机等设备,上行指令可以是自身的状态数据;对于智能电视机、智能门铃、智能汽车等设备,上行指令可以是用户对设备进行操作产生的操作指令;对于安全摄像头、各类传感器等设备,上行指令可以是自身采集到的监控数据。
设备可以通过不同传输技术与物理网连接,本申请实施例中,以无线传输技术为例进行说明,例如,可以是4G、5G、WIFI等技术。
步骤S104,通过每个设备对应的设备对象将上行指令并行转发至服务器;
上述的服务器可以是对上行指令进行处理的应用服务器,针对不同厂家的设备,家提供有不同应用服务器,用户可以通过与应用服务器连接,对上行指令进行操作、控制、查看等。由于设备的种类、生产厂家较多,因此,对应的服务器数量也较多,上述服务器的数量不限。
本申请实施例中,物联网系统可以采用基于akka设计的actor模型,从而构建一个高并发、分布式和容错应用的物联网系统。Akka是一套基于Actor模型的异步通信框架,可用于构建高并发、分布式、可容错、事件驱动的应用。在Akka里,Actor之间通信的唯一机制就是消息传递。
为了隔离不同设备的指令执行,在不同的设备间可以高并发执行,可以为每个设备创建一个Device Actor(即上述的设备对象)。每个Actor会有独立的队列,互相隔离,单线程执行,同时不同的Actor可以并发执行。因此,多个Device Actor既可以保持单个设备的指令顺序执行,又可以保持多个设备的指令高并发执行。具体地,在同一个设备发送多个上行指令的情况下,通过该设备对应的设备对象将多个上行指令依次转发至服务器。
步骤S106,接收服务器返回的上行指令对应的下行指令;
上述的下行指令可以是服务器下发给及接入物理网的设备的指令。服务器在接收到上行指令之后,可以通过人机交互传递给用户操作、控制和查看,并接收用户反馈的相应指令,服务器在接收到用户反馈的指令之后会下发给接入物联网的设备执行,因此,上述的下行指令可以是用户反馈的操作指令、查询指令等。
步骤S108,通过每个设备对应的设备会话对象将下行指令并行转发至多个设备。
本申请实施例中,可以针对每个设备,将设备会话独立为Session Actor(即上述的设备会话对象)进行设备会话管理。Session Actor可以维护设备的长连接,可以将指令下发到设备。同样地,多个Session Actor既可以保持单个设备的指令顺序执行,又可以保持多个设备的指令高并发执行。
在本申请实施例中,可以采用基于akka设计的actor模型构建物联网系统,通过每个设备对应的设备对象传输上行指令,并通过每个设备对应的设备会话对象传输下行指令,实现物联网系统中的大量数据流转。在本申请实施例中,由于每个设备的上行指令由对应的设备对象传输,下行指令由对应的设备会话对象传输,不同设备的指令相互隔离,从而实现了大量上、下行指令的高并发执行。
实施例2
如图2所示,该方法包括如下步骤:
步骤S202,接收多个设备发送的上行指令;
本申请实施例中,设备发送上行指令到物理网系统,物联网系统通过App Actor接收所有设备发送的上行指令,并对上行指令进行流转,将上行指令流转到不同的DeviceActor中。
可选地,设备和物联网系统之间为TCP长连接,设备通过长连接将指令发送到物联网系统,物联网系统接收到指令后会调用App Actor进行转发。一个物联网系统中只会存在一个App Actor,App Actor中会缓存所有Product Actor的productId,通过productId找到对应的Product Actor进行指令转发;如果无法找到对应的Product Actor,则记录productId为空的异常消息,代码如下:
logger.info("[AppActor.onToDeviceActorMsg]msg:{}productId is null.",JacksonUtil.obj2Str(msg));
步骤S204,通过应用对象将上行指令传输至每个设备对应的设备对象;
由于设备种类和数量较多,仅仅通过App Actor进行指令流转会影响指令的高并发执行,为了提高指令流转速度,可以采用如下方式实现:按照每个设备的产品类型,通过应用对象将上行指令传输至对应的产品对象;通过产品对象将上行指令并行传输至对应的设备对象。
上述的产品类型可以是指设备的种类,例如,洗衣机类、智能电视机类、冰箱类等。为了解决不同种类设备指令流转的问题,可以为每个产品创建一个Product Actor(即上述的产品对象),每个Product Actor仅处理该类型所有设备的指令流转。同样地,多个Product Actor既可以保持单个设备的指令顺序执行,又可以保持多个设备的指令高并发执行。
在本申请实施例的一个示例性实施例中,App Actor在接收到所有设备发送的上行指令之后,可以将不同类型设备发送的上行指令流转到对应的Product Actor,ProductActor根据不同设备的标识信息(例如设备ID)确定每个设备对应的Device Actor,并将该设备上传的上行指令流转到对应的Device Actor中。
可选地,App Actor实现指令流转的方式与步骤S202中实现指令接收的方式相同,在此不做赘述。
可选地,Product Actor指令流转的方式与App Actot相似,一个Product Actor中缓存了本产品下的所有Device Actor的deviceId,指令流转到Product Actor后可以并发发送给多个不同的Device Actor,同样在无法找到对应的Device Actor,则记录productId为空的异常消息。
步骤S206,通过每个设备对应的设备对象将上行指令并行转发至服务器;
本申请实施例中,Device Actor实现指令转发的方式如下:上行指令从ProductActor流转到Device Actor,每个Device Actor会存在一个先进先出的队列用来保存指令且每个Device Actor会在固定线程中执行,因此能够保证指令的顺序执行。同时多个Device Actor可以在多个线程中并发执行,保证系统的高并发。在Device Actor中会将指令通过RPC或MQ等方式传入应用服务中。上行过程中,可以通过getMsgType()函数获取到消息类型,并根据消息类型通过不同函数处理请求:属性上报类型(不返回响应到设备),通过handleAttributesRequest()函数处理请求;上行类型(返回相应到设备),通过handleClientSideRPCRequest()函数处理请求;自定义上行(不返回响应到设备),通过handleDeviceCustomRequest()函数处理请求。
步骤S208,接收服务器返回的上行指令对应的下行指令;
本申请实施例中,为进一步提高指令流转速度,可以将不同设备的设备划分到不同集群中,每个集群对应创建一个Rpc Session Actor,通过Rpc Session Actor进行集群Rpc(远程过程调用协议,Remote Procedure Call Protocol)调用管理。
在本申请实施例的一个示例性实施例中,服务器发送下行指令到物理网系统,物联网系统可以通过多个Rpc Session Actor接收服务器发送的下行指令,并将不同集群设备的下行指令流转到不同的App Actor中,App Actor对下行指令进行流转,将上行指令流转到不同的Session Actor中。
可选地,Rpc Session Actor会将下行指令通过RPC方式发送到集群中的执行机器上,执行机器上的App Actor会接收到指令并进行流转。Rpc Session Actor主要处理流程代码如下:
步骤S210,通过应用对象将下行指令传输至每个设备对应的设备会话对象;
与上行指令流转的流程相似,本申请实施例中,按照每个设备的产品类型,通过应用对象将下行指令传输至对应的产品对象;通过产品对象将下行指令并行传输至对应的设备对象;通过设备对象将下行指令并行传输至对应的设备会话对象。
在本申请实施例的一个示例性实施例中,App Actor在接收到服务器发送的下行指令之后,可以将不同类型设备的下行指令流转到对应的Product Actor,Product Actor根据不同设备的标识信息(例如设备ID)确定每个设备对应的Device Actor,并将该设备的下行指令流转到对应的Device Actor中,在经过Device Actor处理指令消息后,下行指令流转到Session Actor,由Session Actor将下行质量下发到设备。
其中,App Actor和Product Actor实现指令流转的方式与步骤S204中记载的方式相同,在此不做赘述。
可选地,Device Actor实现指令流转的方式如下:下行指令从Product Actor流转到Device Actor,每个Device Actor会存在一个先进先出的队列用来保存指令且每个Device Actor会在固定线程中执行,因此能够保证指令的顺序执行。同时多个DeviceActor可以在多个线程中并发执行,保证系统的高并发。在Device Actor中会将指令通过RPC或MQ等方式传入应用服务中。下行处理方式与上行处理方式相似,在下行处理过程中,如果缓存总数超标,先对过期元素进行一次缓存清理;如果队列已满且没有过期元素,则删除score最小的数据。另外,为确保qos1,异步下发先保存消息到redis中,然后根据普通设备和网关或子设备的不同,通过不同下发方式,其中,对于普通设备通过异步下发,并且下行缓存,无活动连接时会进行相应提示;对于网关或子设备通过同步下发。
步骤S212,通过每个设备对应的设备会话对象将下行指令并行转发至多个设备。
本申请实施例中,Session Actor实现指令转发的方式如下:Session Actor维护了设备与物联网系统之间的TCP长连接会话,当下行指令流转到Session Actor,SessionActor通过长连接通道将指令下发给设备,Session Actor主要处理代码如下:
需要注意的是,由于篇幅所限,本申请中并没有穷举所有的实施方式,只要是不互相矛盾的特征,均可以自由随意组合,成为本申请可选的实施方式。
实施例3
本申请实施例提供的数据传输方法可以应用于物联网中,实现该方法的Actor模型架构如图3所示,整个模型包括:核心Actors、Device会话管理和RPC会话管理。其中,核心Actors包括:App Actor、多个Product Actor和多个Device Actor;Device会话管理包括:Session Manager Actor和多个Session Actor;RPC会话管理包括:RPC Sessions ManagerActor和多个RPC Session Actor。
具体地,每个产品对应一个Product Actor,每个设备对应一个Device Actor,把设备会话独立为Session Actor,进行设备会话管理。Rpc Session Actor进行集群Rpc调用管理。各个Actor的职责清晰,方便扩展及维护。
Actor模型中所有节点可以部署在云端服务器中,根据云端服务器的计算能力,可以将所有节点部署在同一个服务器中,也可以将节点不同的服务器中,例如,可以将同一类型的节点部署在同一个服务器中,或者可以将每个节点部署在一个服务器中。
基于Actor模型的指令流转流程如图4所示,图4中的应用端可以是指应用端服务器。设备发送指令到物联网系统,物联网系统会进行指令的流转处理,此时指令在actor中的流转路径为:App Actor->Product Actor->Device Actor,最终在Device Actor中将指令发送到应用端处理。应用端发送指令到物联网系统,物联网系统会对指令进行流转处理,此时指令在actor中的流转路径为:Rpc Session Actor->App Actor->Product Actor->Device Actor->Session Actor,最终在经过Device Actor处理指令消息后,指令消息流转到session Actor,session Actor维护设备的长连接,可以将指令下发到设备。
由上可知,在物理网领域,结合akka技术,设计出了一套合适的Actor模型,提供了一种高并发,顺序执行设备指令上下行的方法,在实际使用过程中可以很好的隔离各设备的指令执行,在不同的设备间可以高并发执行。
实施例4
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
如图5所示,该数据传输装置可以通过软件、硬件或者两者的结合实现成为云端服务器的全部或一部分。该装置包括上行接收模块52、上行转发模块54、下行接收模块56和下行转发模块58。
上行接收模块52,用于接收多个设备发送的上行指令;
上行转发模块54,用于通过每个设备对应的设备对象将上行指令并行转发至服务器;
下行接收模块56,用于接收服务器返回的上行指令对应的下行指令;
下行转发模块58,用于通过每个设备对应的设备会话对象将下行指令并行转发至多个设备。
在本实施例上述基础上,上行转发模块还用于在同一个设备发送多个上行指令的情况下,通过该设备对应的设备对象将多个上行指令依次转发至服务器;下行转发模块还用于通过该设备对应的设备会话对象将多个上行指令对应的下行指令依次转发至该设备。
在本实施例上述基础上,该装置还包括:上行传输模块,用于通过应用对象将上行指令传输至每个设备对应的设备对象;下行传输模块,用于在接收到下行指令之后,通过应用对象将下行指令传输至每个设备对应的设备会话对象。
在本实施例上述基础上,上行传输模块还用于按照每个设备的产品类型,通过应用对象将上行指令传输至对应的产品对象,并通过产品对象将上行指令并行传输至每个设备对应的设备对象。
在本实施例上述基础上,下行传输模块还用于按照每个设备的产品类型,通过应用对象将下行指令传输至对应的产品对象,通过产品对象将下行指令并行传输至每个设备对应的设备对象,并通过设备对象将下行指令并行传输至每个设备对应的设备会话对象。
在本实施例上述基础上,下行传输模块还用于按照每个设备所属的集群,通过对应的集群会话对象将下行指令传输至每个集群对应的应用对象。
需要说明的是,上述实施例提供的数据传输装置在执行数据传输方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据传输装置与数据传输方法实施例属于同一构思,其体现实现过程详见方法实施例,这里不再赘述。
实施例5
下述为本申请系统实施例,可以用于执行本申请方法实施例。对于本申请系统实施例中未披露的细节,请参照本申请方法实施例。
如图6所示,该系统600包括:接收接口602、多个设备对象604和多个设备会话对象606。接收接口与多个设备(图中以笔记本电脑为例)和服务器连接,多个设备对象与接收接口和服务器连接,多个设备对象与多个设备一一对应,多个设备对象并行运行,多个设备会话对象与接收接口和多个设备连接,多个设备会话对象与多个设备一一对应,多个设备会话对象并行运行。
其中,接收接口用于接收多个设备发送的上行指令,以及接收服务器返回的上行指令对应的下行指令;每个设备对象用于将相应设备发送的上行指令转发至服务器;每个设备会话对象用于将相应下行指令转发至对应的设备。
上述的接收接口可以是物联网系统中的一个节点,该节点既用于接收上行指令,又用于接收下行指令,该节点同样部署于云端服务器中。接收接口也可以是无线网系统中的多个节点,一部分节点用于接收上行指令,另一部分节点用于接收下行指令,多个节点可以部署在同一个云端服务器,或多个云端服务器中。
可选地,接收接口的实现方式如下:在接收接口中,对于上行指令,通过Netty实现了MQTT物联网协议,可以接收设备的上行指令;对于下行指令,对外提供RPC接口给应用端进行下行指令调用。
在本实施例上述基础上,每个设备对象用于将对应设备发送的多个上行指令依次转发至服务器;每个设备会话对象用于将多个上行指令对应的下行指令依次转发至对应的设备。
在本实施例上述基础上,该系统还包括:应用对象,与接收接口、多个设备对象和多个设备会话对象连接,用于将上行指令传输至对应的设备对象,或将下行指令传输至对应的设备会话对象。
在本实施例上述基础上,该系统还包括:至少一个产品对象,与应用对象连接,每个产品对象与对应于同一个产品类型的至少一个设备对象连接,至少一个产品对象并行运行;应用对象还用于按照每个设备的产品类型,将上行指令传输至对应的产品对象;产品对象用于将上行指令传输至对应的设备对象。
在本实施例上述基础上,应用对象还用于按照每个设备的产品类型,将下行指令传输至对应的产品对象;产品对象用于将下行指令传输至对应的设备对象;设备对象用于将下行指令并行传输至对应的设备会话对象。
在本实施例上述基础上,该系统还包括:至少一个集群会话对象,与接收接口连接,每个集群会话对象与对应于同一个集群的应用对象连接,每个集群会话对象用于按照每个设备所属的集群,将对应的下行指令传输至对应的应用对象。
在本申请实施例中,可以采用基于akka设计的actor模型构建物联网系统,通过每个设备对应的设备对象传输上行指令,并通过每个设备对应的设备会话对象传输下行指令,实现物联网系统中的大量数据流转。在本申请实施例中,由于每个设备的上行指令由对应的设备对象传输,下行指令由对应的设备会话对象传输,不同设备的指令相互隔离,从而实现了大量上、下行指令的高并发执行。
实施例6
本申请实施例还提供了一种计算机存储介质,所述计算机存储介质可以存储有多条指令,所述指令适于由处理器加载并执行如上述图1-图2所示实施例的方法步骤,具体执行过程可以参见图1-图2所示实施例的具体说明,在此不进行赘述。
存储介质所在设备可以是云端服务器。
实施例7
如图7所示,所述服务器1000可以包括:至少一个处理器1001,至少一个网络接口1003,存储器1004,至少一个通信总线1002。
其中,通信总线1002用于实现这些组件之间的连接通信。
其中,网络接口1003可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。
其中,处理器1001可以包括一个或者多个处理核心。处理器1001利用各种接口和线路连接整个服务器1000内的各个部分,通过运行或执行存储在存储器1004内的指令、程序、代码集或指令集,以及调用存储在存储器1004内的数据,执行服务器1000的各种功能和处理数据。可选的,处理器1001可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现。处理器1001可集成中央处理器(Central Processing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示屏所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器1001中,单独通过一块芯片进行实现。
其中,存储器1004可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。可选的,该存储器1004包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器1004可用于存储指令、程序、代码、代码集或指令集。存储器1005可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等;存储数据区可存储上面各个方法实施例中涉及到的数据等。存储器1004可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图7所示,作为一种计算机存储介质的存储器1004中可以包括操作系统、网络通信模块。
在图7所示的服务器1000中,处理器1001可以用于调用存储器1004中存储的程序,并具体执行以下操作:
接收多个设备发送的上行指令;通过每个设备对应的设备对象将上行指令并行转发至服务器;接收服务器返回的上行指令对应的下行指令;通过每个设备对应的设备会话对象将下行指令并行转发至多个设备。
在一个实施例中,所述服务器的操作系统为安卓系统,在所述安卓系统中,所述处理器1001还执行以下步骤:
在同一个设备发送多个上行指令的情况下,通过该设备对应的设备对象将多个上行指令依次转发至服务器;通过该设备对应的设备会话对象将多个上行指令对应的下行指令依次转发至该设备。
在一个实施例中,所述处理器1001还执行以下步骤:
在接收到上行指令之后,通过应用对象将上行指令传输至每个设备对应的设备对象;在接收到下行指令之后,通过应用对象将下行指令传输至每个设备对应的设备会话对象。
在一个实施例中,所述处理器1001还执行以下步骤:
按照每个设备的产品类型,通过应用对象将上行指令传输至对应的产品对象;通过产品对象将上行指令并行传输至每个设备对应的设备对象。
在一个实施例中,所述处理器1001还执行以下步骤:
按照每个设备的产品类型,通过应用对象将下行指令传输至对应的产品对象;通过产品对象将下行指令并行传输至每个设备对应的设备对象;通过设备对象将下行指令并行传输至每个设备对应的设备会话对象。
在一个实施例中,所述处理器1001还执行以下步骤:
在接收到下行指令之后,按照每个设备所属的集群,通过对应的集群会话对象将下行指令传输至每个集群对应的应用对象。
采用基于akka设计的actor模型构建物联网系统,通过每个设备对应的设备对象传输上行指令,并通过每个设备对应的设备会话对象传输下行指令,实现物联网系统中的大量数据流转,从而实现了大量上、下行指令的高并发执行。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (11)
1.一种数据传输方法,其特征在于,包括:
接收多个设备发送的上行指令;
通过每个设备对应的设备对象将所述上行指令并行转发至服务器;
接收所述服务器返回的所述上行指令对应的下行指令;
通过所述每个设备对应的设备会话对象将所述下行指令并行转发至所述多个设备;
按照所述每个设备的产品类型,通过应用对象将所述上行指令传输至对应的产品对象;
通过所述产品对象将所述上行指令并行传输至所述每个设备对应的设备对象;
按照所述每个设备的产品类型,通过应用对象将所述下行指令传输至对应的产品对象;
通过所述产品对象将所述下行指令并行传输至所述每个设备对应的设备对象;
上行过程中,通过函数获取到所述上行指令的消息类型,并根据消息类型通过不同函数处理所述上行指令;
下行过程中,若缓存队列中的所述下行指令的数量大于预设值,对所述下行指令中的过期元素进行清理;
通过所述设备对象将所述下行指令并行传输至所述每个设备对应的设备会话对象。
2.根据权利要求1所述的方法,其特征在于,在同一个设备发送多个上行指令的情况下,通过该设备对应的设备对象将所述多个上行指令依次转发至所述服务器;通过该设备对应的设备会话对象将所述多个上行指令对应的下行指令依次转发至该设备。
3.根据权利要求1所述的方法,其特征在于,在接收到所述下行指令之后,所述方法还包括:
按照所述每个设备所属的集群,通过对应的集群会话对象将所述下行指令传输至每个集群对应的应用对象。
4.一种数据传输系统,其特征在于,包括:
接收接口,与多个设备连接,用于接收所述多个设备发送的上行指令;
多个设备对象,与所述接收接口和服务器连接,所述多个设备对象与所述多个设备一一对应,所述多个设备对象并行运行,每个设备对象用于将相应设备发送的上行指令转发至所述服务器;
至少一个产品对象,与应用对象连接,每个产品对象与对应于同一个产品类型的至少一个设备对象连接,所述至少一个产品对象并行运行;
所述应用对象还用于按照所述每个设备的产品类型,将所述上行指令传输至对应的产品对象;
所述产品对象用于将所述上行指令传输至对应的设备对象;所述接收接口,与所述服务器连接,还用于接收所述服务器返回的所述上行指令对应的下行指令;
多个设备会话对象,与所述接收接口和所述多个设备连接,所述多个设备会话对象与所述多个设备一一对应,所述多个设备会话对象并行运行,每个设备会话对象用于将相应下行指令转发至对应的设备;
所述应用对象还用于按照所述每个设备的产品类型,将所述下行指令传输至对应的产品对象;
所述产品对象用于将所述下行指令传输至对应的设备对象;
上行过程中,通过函数获取到所述上行指令的消息类型,并根据消息类型通过不同函数处理所述上行指令;
下行过程中,若缓存队列中的所述下行指令的数量大于预设值,对所述下行指令中的过期元素进行清理;
所述设备对象还用于将所述下行指令并行传输至所述每个设备对应的设备会话对象。
5.根据权利要求4所述的系统,其特征在于,
所述每个设备对象用于将对应设备发送的多个上行指令依次转发至所述服务器;
所述每个设备会话对象用于将所述多个上行指令对应的下行指令依次转发至对应的设备。
6.根据权利要求5所述的系统,其特征在于,所述系统还包括:
应用对象,与所述接收接口、所述多个设备对象和所述多个设备会话对象连接,用于将所述上行指令传输至对应的设备对象,或将所述下行指令传输至对应的设备会话对象。
7.根据权利要求6所述的系统,其特征在于,
所述设备对象用于将所述下行指令并行传输至对应的设备会话对象。
8.根据权利要求6所述的系统,其特征在于,所述系统还包括:
至少一个集群会话对象,与所述接收接口连接,每个集群会话对象与对应于同一个集群的应用对象连接,每个集群会话对象用于按照所述每个设备所属的集群,将对应的下行指令传输至对应的应用对象。
9.一种数据传输装置,其特征在于,包括:
上行接收模块,用于接收多个设备发送的上行指令;
上行转发模块,用于通过每个设备对应的设备对象将所述上行指令并行转发至服务器;
上行传输模块,用于按照所述每个设备的产品类型,通过应用对象将所述上行指令传输至对应的产品对象,并通过所述产品对象将所述上行指令并行传输至所述每个设备对应的设备对象;
下行接收模块,用于接收所述服务器返回的所述上行指令对应的下行指令;
下行转发模块,用于通过所述每个设备对应的设备会话对象将所述下行指令并行转发至所述多个设备;
下行传输模块,用于按照所述每个设备的产品类型,通过应用对象将所述下行指令传输至对应的产品对象,并通过所述产品对象将所述下行指令并行传输至所述每个设备对应的设备对象,通过所述设备对象将所述下行指令并行传输至所述每个设备对应的设备会话对象。
10.一种计算机存储介质,其特征在于,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行如权利要求1至3中任意一项的方法步骤。
11.一种电子设备,其特征在于,包括:处理器和存储器;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行如权利要求1至3中任意一项的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910920069.9A CN110650203B (zh) | 2019-09-26 | 2019-09-26 | 数据传输方法、装置和系统、计算机存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910920069.9A CN110650203B (zh) | 2019-09-26 | 2019-09-26 | 数据传输方法、装置和系统、计算机存储介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110650203A CN110650203A (zh) | 2020-01-03 |
CN110650203B true CN110650203B (zh) | 2022-10-14 |
Family
ID=68992781
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910920069.9A Active CN110650203B (zh) | 2019-09-26 | 2019-09-26 | 数据传输方法、装置和系统、计算机存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110650203B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113259878B (zh) * | 2020-02-11 | 2022-06-10 | 中移智行网络科技有限公司 | 话单结算方法、系统、电子设备及计算机可读存储介质 |
CN111726414B (zh) * | 2020-06-29 | 2023-05-09 | 亿咖通(湖北)技术有限公司 | 一种车辆上报数据的处理方法和车辆数据上报系统 |
CN111726256B (zh) * | 2020-06-29 | 2023-04-25 | 亿咖通(湖北)技术有限公司 | 车辆指令下发处理方法和系统及车辆数据处理方法和系统 |
CN112671914B (zh) * | 2020-12-25 | 2022-07-01 | 杭州海兴泽科信息技术有限公司 | 一种基于actor模型的物联网设备通讯方法和系统 |
CN113938338A (zh) * | 2021-11-23 | 2022-01-14 | 龙芯中科技术股份有限公司 | 物联网设备间的通信方法、物联网设备及存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102404404B (zh) * | 2011-09-07 | 2017-07-28 | 航天科工仿真技术有限责任公司 | 一种分布式web应用与远程设备消息通信方法 |
CN105847217B (zh) * | 2015-01-12 | 2019-09-06 | 阿里巴巴集团控股有限公司 | 并发多业务会话的方法及其系统 |
CN105912402B (zh) * | 2016-04-11 | 2019-04-02 | 深圳益邦阳光有限公司 | 一种基于Actor模型的调度方法及装置 |
CN108667719B (zh) * | 2018-04-26 | 2020-11-27 | 广州品唯软件有限公司 | 一种实时消息传递方法及系统 |
CN109933429A (zh) * | 2019-03-05 | 2019-06-25 | 北京达佳互联信息技术有限公司 | 数据处理方法、装置、电子设备及存储介质 |
-
2019
- 2019-09-26 CN CN201910920069.9A patent/CN110650203B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110650203A (zh) | 2020-01-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110650203B (zh) | 数据传输方法、装置和系统、计算机存储介质及电子设备 | |
US11805441B2 (en) | Method and system for group communication, group server, and group member device | |
CN104283967B (zh) | 一种基于物联网数据采集的第三方数据服务系统 | |
US9998566B2 (en) | Intelligent gateway with a common data format | |
CN111580995B (zh) | 基于mqtt异步通信场景下的分布式云平台与物联网智能终端的同步通信方法与系统 | |
CN109792442A (zh) | 通信装置、控制装置以及通信方法 | |
US20160028780A1 (en) | Managed Device-to-Device Communication in Business Computing Systems | |
CN106899638A (zh) | 一种解决数据异构的融合物联网关系统和方法 | |
US20200099762A1 (en) | Transmission Method | |
CN103973815A (zh) | 一种跨数据中心存储环境统一监控方法 | |
CN110398985B (zh) | 一种分布式自适应无人机测控系统及方法 | |
CN109788251B (zh) | 视频处理方法、装置及存储介质 | |
CN110798462A (zh) | 一种智慧家居系统及设备接入方法 | |
CN113391559A (zh) | 智慧家居设备控制方法和终端设备 | |
CN104270432B (zh) | 基于钻井行业实时数据服务系统及数据交互方法 | |
EP3373608B1 (en) | Method and apparatus for acquiring resources | |
CN112817539A (zh) | 一种工业数据存储方法、系统、电子设备及存储介质 | |
CN109995782B (zh) | 一种信息处理方法、设备、系统及计算机存储介质 | |
CN116527554A (zh) | 基于服务网格的监测系统、方法、设备及存储介质 | |
CN110688124A (zh) | 小程序处理方法、装置、电子设备及计算机可读存储介质 | |
CN112637370B (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN110995486B (zh) | 一种基于物联网的智能硬件设备监控系统 | |
CN103618716B (zh) | 一种终端广域网管理协议会话交互方法、设备和系统 | |
CN116567686B (zh) | 数字孪生网络的构建方法、装置、设备、介质及程序产品 | |
US20230049198A1 (en) | Internet of things system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |