CN115225715B - 一种数据交互方法及数据交互系统 - Google Patents
一种数据交互方法及数据交互系统 Download PDFInfo
- Publication number
- CN115225715B CN115225715B CN202210764358.6A CN202210764358A CN115225715B CN 115225715 B CN115225715 B CN 115225715B CN 202210764358 A CN202210764358 A CN 202210764358A CN 115225715 B CN115225715 B CN 115225715B
- Authority
- CN
- China
- Prior art keywords
- module
- target message
- service module
- data
- message service
- 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
- 230000003993 interaction Effects 0.000 title claims abstract description 108
- 238000000034 method Methods 0.000 title claims abstract description 65
- 238000012545 processing Methods 0.000 claims description 88
- 230000006854 communication Effects 0.000 claims description 35
- 238000004891 communication Methods 0.000 claims description 33
- 238000012546 transfer Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 description 18
- 230000005540 biological transmission Effects 0.000 description 7
- 238000004590 computer program Methods 0.000 description 7
- 239000003795 chemical substances by application Substances 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013480 data collection Methods 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 101001072091 Homo sapiens ProSAAS Proteins 0.000 description 2
- 102100036366 ProSAAS Human genes 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
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/14—Session management
- H04L67/141—Setup of application sessions
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请公开了一种数据交互方法,该方法应用于数据交互系统,该系统包括:寻址服务模块,一个以上消息服务模块及一个以上消息代理模块,寻址服务模块及消息服务模块位于云端,消息代理模块位于设备端;该方法包括:存在数据交互需求的目标消息代理模块向寻址服务模块发送寻址请求;寻址服务模块在一个以上消息服务模块中为目标消息代理模块分配目标消息服务模块;目标消息代理模块与已分配的目标消息服务模块建立长连接,并通过长连接与目标消息服务模块进行数据交互;其中,目标消息代理模块与寻址服务模块及目标消息服务模块之间均采用自定义数据协议。通过本申请方案,实现了对复杂设备端(例如船艇)数据的高效收发。
Description
技术领域
本申请属于物联网技术领域,尤其涉及一种数据交互方法及数据交互系统。
背景技术
智能船艇大数据平台,是为智能船艇平台化应用和服务支撑建设的一种物联网软件即服务(Software as a Service,SAAS)平台。其中,对数量众多的智能船艇进行管理及控制,以对其运行过程中产生的物联网应用数据进行大规模实时采集与处理是平台的核心。目前,物联网SAAS平台最通用的做法是以消息队列遥测传输(Message QueuingTelemetry Transport,MQTT)协议为基础,进行平台的设计和开发。
MQTT协议采用发布订阅机制,具有轻量、简单、开放和易于实现的特点,广泛用于传感器网络的物联网应用。而智能船艇作为高度集成的水面平台,设备和数据众多,且应用复杂,可认为智能船艇本身就是一个物联网应用系统。因而构建于系统之上的平台系统,其数据传输相较于传感器网络到MQTT平台,已经有了很大的不同。如果要叠加船艇控制、文件传输、任务管理及数据并发等MQTT所不支持的特性,将给平台级应用带来极大的不便。
综上,当前在智能船艇上采用MQTT协议进行与平台的数据交互时,仍有诸多不便。
发明内容
本申请提供了一种数据交互方法及数据交互系统,实现了对复杂设备端(例如船艇)数据的高效收发。
第一方面,本申请提供了一种数据交互方法,该数据交互方法应用于数据交互系统,该数据交互系统包括:寻址服务模块,一个以上消息服务模块及一个以上消息代理模块,寻址服务模块及消息服务模块位于云端,消息代理模块位于设备端;数据交互方法包括:
目标消息代理模块向寻址服务模块发送寻址请求,其中,目标消息代理模块为:存在数据交互需求的消息代理模块;
寻址服务模块在接收到目标消息代理模块所发送的寻址请求后,在一个以上消息服务模块中为目标消息代理模块分配目标消息服务模块;
目标消息代理模块与已分配的目标消息服务模块建立长连接,并通过长连接与目标消息服务模块进行数据交互。
第二方面,本申请提供了一种数据交互系统,该数据交互系统包括:寻址服务模块,一个以上消息服务模块及一个以上消息代理模块,寻址服务模块及消息服务模块位于云端,消息代理模块位于设备端;
目标消息代理模块,用于向寻址服务模块发送寻址请求,其中,目标消息代理模块为:存在数据交互需求的消息代理模块;
寻址服务模块,用于在接收到目标消息代理模块所发送的寻址请求后,在一个以上消息服务模块中为目标消息代理模块分配目标消息服务模块;
目标消息代理模块,还用于与已分配的目标消息服务模块建立长连接,并通过长连接与目标消息服务模块进行数据交互。
本申请与现有技术相比存在的有益效果是:开发了客户端的消息代理模块和服务器端的消息服务模块以及寻址服务模块,以此为基础形成数据交互系统。该数据交互系统能够支持各类船艇、各类传感器及各类应用数据的统一化、标准化采集上报与交互处理,实现了对复杂设备端(例如船艇)数据的高效收发。并且,该数据交互系统在工程上具备互联网平台高并发、高可扩展性及高实时性的特点,便于进行开发及维护。
可以理解的是,上述第二方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的数据交互系统的架构示例图;
图2是本申请实施例提供的数据交互方法的实现流程示意图;
图3是本申请实施例提供的数据交互方法中,为目标消息代理模块分配目标消息服务模块的具体实现流程示意图;
图4是本申请实施例提供的数据交互方法中,步骤204的具体实现流程示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
本申请实施例提出了一种数据交互系统及数据交互方法。下面对本申请实施例提供的一种数据交互系统进行描述:
数据交互系统包括如下基础的软件实体:寻址服务模块,一个以上消息服务模块及一个以上消息代理模块。其中,寻址服务模块及消息服务模块均部署于云端(也即大数据平台);也即,可以将寻址服务模块视作寻址服务器,将消息服务模块视作消息服务器。消息代理模块部署于设备端。仅作为示例,该设备端可以是船艇、车辆或机器人等智能设备,本申请实施例不对该设备端的具体类型作出限定。
在一些实施例中,一个消息服务模块可能会面对多个消息代理模块进行数据采集的操作。为了实现高并发、高性能及异步非阻塞的数据采集,消息服务模块及消息代理模块之间可基于netty实现通信。当然,消息服务模块及消息代理模块之间也可基于其它具备高并发、高性能及异步非阻塞特性的通信技术实现通信,此处不作限定。
在一些实施例中,消息代理模块与寻址服务模块可以基于超文本传输协议(HyperText Transfer Protocol,HTTP)实现通信。可以理解,寻址服务模块除了具备负载均衡与消息分流功能之外,其与消息代理模块之间的HTTP通信也是后续消息代理模块与消息服务模块之间netty连接建立的先导过程。也即,寻址服务模块可引导消息代理与大数据平台的通信连接从无门槛且按需建立的HTTP连接过渡到有门槛且长时间保持的netty连接。可以认为,消息代理模块与寻址服务模块之间的HTTP通信作为消息代理模块与大数据平台之间的通信基础,可使得消息代理模块与消息服务模块能够更为顺利地基于netty实现通信。
基于以上描述可知,仅作为示例,数据交互系统可基于netty及HTTP而构建。其中,寻址服务模块基于HTTP实现,消息服务模块基于netty实现,消息代理模块既包含基于HTTP实现的部分,也包含基于netty实现的部分。消息代理模块与寻址服务模块的通信过程中,消息代理模块可作为HTTP客户端,寻址服务模块可作为HTTP服务器。消息代理模块与消息服务模块的通信过程中,消息代理模块可作为netty客户端,消息服务模块可作为netty服务器。
通常情况下,一个设备端仅部署有一个消息代理模块。以对船艇的数据采集及控制为例,针对一艘船艇,该船艇可部署一个消息代理模块。该船艇上的各个组件均通过该唯一部署的消息代理模块进行数据上报。后文均以船艇为例,对本申请实施例所提出的数据交互系统做出说明。
下面对数据交互系统中的通信管理进行描述:
数据交互系统中的通信管理主要依靠寻址服务模块及消息服务模块的协同进行。该通信管理涉及如下几个过程:
(1)、寻址过程
在船艇存在交互需求时,即认为该船艇所部署的消息代理模块存在交互需求,为便于说明,可将该消息代理模块记作目标消息代理模块。其中,船艇通常是在其启动后就存在有交互需求,因而,可直接将完成启动的船艇所部署的消息代理模块确定为目标消息代理模块。
目标消息代理模块中预置有寻址服务模块的域名地址。该目标消息代理模块可通过该域名地址访问寻址服务模块,并向该寻址服务模块发送寻址请求。
寻址服务模块在接收到目标消息代理模块所发送的寻址请求后,可在一个以上消息服务模块中为目标消息代理模块分配目标消息服务模块。其中,从性能的角度来看,该目标消息服务模块可通过负载均衡策略而确定;或者,从管理的角度来看,该目标消息服务模块可通过具体应用项目的需要而确定,此处不作赘述。在寻址服务模块为目标消息代理模块确定了目标消息服务模块之后,即可将该目标消息服务模块的地址信息发送给目标消息代理模块。
在一些实施例中,目标消息服务模块还涉及对船艇的鉴权。为实现该鉴权的操作,数据交互系统还可包括有第一数据库,该第一数据库用于存储数据交互系统的配置信息。仅作为示例,该配置信息可包括:已登记注册的各个船艇的设备信息,也即合法的各个船艇的设备信息。相应地,目标消息代理模块所发送的寻址请求中,携带有该目标消息代理模块所处的船艇的设备信息。
基于此,该鉴权的操作可具体为:寻址服务模块根据第一数据库对目标消息代理模块所处的船艇进行鉴权。如果该第一数据库的配置信息中已存储有该目标消息代理模块所处的船艇的设备信息,则认为该目标消息代理模块所处的船艇为合法船艇,也即对该船艇的鉴权通过。反之,如果该第一数据库的配置信息中未存储有该目标消息代理模块所处的船艇的设备信息,则认为该目标消息代理模块所处的船艇为非法船艇,也即对该船艇的鉴权失败。
可以理解,仅在鉴权结果指示鉴权通过的情况下,寻址服务模块才需要为目标消息代理模块确定目标消息服务模块,并向该目标消息代理模块发送该目标消息服务模块的地址信息。
在一些实施例中,数据交互系统还可包括一管理模块,该管理模块可搭载有管理系统,并提供给用户相应的管理界面。用户可通过该管理模块,实现对第一数据库的管理。仅作为示例,用户可根据自身对船艇的管理需求,向管理模块发送管理指令;在管理模块接收到管理指令的情况下,管理模块可根据该管理指令对第一数据库所存储的配置信息进行管理操作,此处不作赘述。
(2)、登录过程
目标消息代理模块在获知其目标消息服务模块后,可以向该目标消息服务模块发送长连接通信请求,建立与目标消息服务模块之间的传输控制协议/网际协议(Transmission Control Protocol/Internet Protocol,TCP/IP)长连接。随后,该目标消息代理模块可通过该TCP/IP长连接建立的通道(connection)进行登录操作,具体为:目标消息代理模块向目标消息服务模块发送LOGIN消息;目标消息服务模块在接收到该LOGIN消息后,向目标消息代理模块回复LOGIN_ACK消息。由此,即可建立目标消息代理模块与目标消息服务模块的会话,目标消息代理模块可通过该会话与目标消息服务模块进行数据交互,也即船艇可以与云端进行数据收发。
(3)、数据收发过程
数据收发包括数据采集和数据分发。通过数据收发可支撑船艇的应用和管理。其中,数据采集指的是:目标消息代理模块向目标消息服务模块上报数据,也即数据为上行方向;数据分发指的是:目标消息服务模块向目标消息代理模块下发数据,也即数据为下行方向。
在会话保持的状态下,目标消息代理模块及目标消息服务模块均可对通信通道进行监听,以确认该通信通道是否空闲。在该通信通道空闲的情况下,目标消息代理模块及目标消息服务模块均可发起对应的数据收发的操作。仅作为示例,数据收发可包括如下几种类型的操作:数据上报、数据设置、数据获取、报警及文件传输等,此处不作限定。
(4)、连接保持过程
在会话保持的情况下,目标消息代理模块可周期性向所述目标消息服务模块发送第一心跳消息,相应地,目标消息服务模块可向目标消息代理模块发送第二心跳消息作为对所述第一心跳消息的反馈,以此使得会话能够始终处于活跃。仅作为示例,第一心跳消息为PING消息,第二心跳消息为PONG消息。
在会话超时,且TCP/IP长连接并未中断的情况下,可重新触发登录操作,具体可参阅前文对登录过程的描述,此处不再赘述。
在TCP/IP长连接中断的情况下,无论会话是否超时,都可重新触发寻址操作及登录操作,以重建会话,具体可参阅前文对寻址过程和登录过程的描述,此处不再赘述。
(5)、连接断开过程
在目标消息代理模块主动断开通信的情况下,可关闭会话和TCP/IP长连接。
在目标消息服务模块主动断开通信的情况下,目标消息服务模块可向目标消息代理模块发送下线通知消息,以触发目标消息代理模块下线,同时关闭会话和TCP/IP长连接。仅作为示例,下线通知消息可以为SHUTDOWN消息或RESET消息,此处不作限定。
在因底层通信故障等原因而导致通信意外断开的情况下,可根据前文对连接保持过程的描述进行相应的判断及处理,此处不再赘述。
下面对数据交互系统中的数据及安全管理进行描述:
(1)网络鉴权
正如对寻址过程的描述中所提到的,能够通过鉴权、具备对消息服务模块的访问资格的船艇,应是预先已登记注册的船艇。数据交互系统通过第一数据库中的配置信息,确保鉴权信息分发的安全性。目标消息代理模块可凭借鉴权信息通过寻址过程换取与目标消息服务模块通信所需的数字令牌(token)。
(2)数字令牌
数字令牌由寻址服务模块产生并发放给通过鉴权的目标消息代理模块,是目标消息代理模块访问目标消息服务模块并进行数据收发的唯一凭证。数字令牌具备统一的格式,并采取动态赋值策略,确保每一艘船艇的消息代理模块在各不同次会话期间的数字令牌能够具有不同的取值。可以理解,数字令牌在会话期间不可变更。
(3)数据载荷安全
消息体的载荷(payload)字段的填充内容(也即赋值)即数据体。针对数据体内的数据,其类型须是云端支持的基本数据类型,其结构应是在云端已登记注册的数据结构。为保证消息体及数据载荷的安全,目标消息代理模块与目标消息服务模块均可支持循环校验码和/或数据加解密等功能。
(4)信道安全
目标消息代理模块与目标消息服务模块之间的TCP/IP长连接应具备防攻击能力,保证数据的私密和安全。
下面对该数据交互系统中所涉及的数据应用进行描述:
在一些实施例中,数据交互系统还包括:高速缓存、第二数据库及第一数据处理模块。
其中,高速缓存作为一种存储体,目标消息服务模块可在接收到目标消息代理模块所上报的数据后,将所有接收到的数据存储至该高速缓存。第一数据处理模块可根据预设的在线处理规则对高速缓存中的数据进行快速的在线处理,得到第一数据处理结果,并将第一数据处理结果存储至所述第二数据库。第一数据处理模块可在完成一次在线处理后,将本次在线处理过的数据从高速缓存中清除,以保持高速缓存的轻便及高效。
在一些实施例中,数据交互系统还包括:消息中间件、第三数据库及第二数据处理模块。
其中,消息中间件作为一种存储体,目标消息服务模块可在接收到目标消息代理模块所上报的数据后,将所有接收到的数据存储至该消息中间件。第二数据处理模块可根据预设的离线处理规则对消息中间件中的数据进行周期性的离线处理,得到第二数据处理结果,并将第二数据处理结果存储至第三数据库。第二数据处理模块可在完成一次离线处理后,将本次离线处理过的数据从消息中间件中清除,以保持消息中间件的轻便及高效。
可以理解,第一数据处理模块与第二数据处理模块的区别在于:第一数据处理模块所能够进行的在线处理的运算量不大,可在在线处理后迅速获得相应的第一数据处理结果;第二数据处理模块所能够进行的离线处理通常有着较大的运算量,因而该离线处理的操作是周期性执行的,也即可定期获得相应的第二数据处理结果。
需要注意的是,在数据交互系统既包括高速缓存,又包括消息中间件的情况下,目标消息服务模块在进行数据转存时,可直接将数据进行一分二的存储;也即,目标消息服务模块可在将所有接收到的数据存储至高速缓存的同时,也将这些数据存储至消息中间件。
在一些实施例中,目标消息服务模块是目标消息代理模块的直接交互对象,目标消息代理模块所上报的各数据(包括关键数据)的入口均为该目标消息服务模块。并且,可能出现两个以上的目标消息服务模块均与相同的目标消息服务模块进行数据收发的情况。为保证各个已连接的目标消息代理模块的数据连接通道和通信数据收发,对目标消息服务模块的性能和稳定性提出了较高的要求。基于此,数据交互系统考虑从目标消息服务模块中剥离出复杂业务数据的处理、应用逻辑及接口服务相关等较耗时的部分至第三数据服务模块,在该第三数据服务模块提供背靠背的服务支撑,以减轻目标消息处理模块的数据处理压力。
可将上述过程理解为:由于目标消息服务模块需要较高的稳定性,所以从该目标消息服务模块中剥离了一些在线处理实时数据的服务(也即对实时性要求较强的数据处理服务)到第三数据处理模块。这样一来,第三数据处理模块可相对独立于目标消息服务模块,对该目标消息服务模块所接收到的数据进行实时处理。具体地,高速缓存中已存储有目标消息服务模块所有接收到的数据,因而第三数据处理模块可根据预设的实时处理规则对高速缓存中的数据进行实时处理,得到第三数据处理结果,并向目标消息服务模块发送第三数据处理结果。可以理解,该第三数据处理结果可作为目标消息服务模块向目标消息代理模块进行数据反馈的依据,以此实现数据下发的过程中对目标消息服务模块的服务支撑。
具体地,为实现对数据的实时处理,第一数据库所存储的配置信息还可包括:第三数据处理模块进行数据的实时处理时所需的关联依据信息和/或划分依据信息等。由此,第三数据处理模块可基于业务逻辑和所需的配置信息,为目标消息服务模块解决数据来源、数据准备与业务逻辑处理等问题,分担目标消息服务模块的数据吞吐压力和计算压力。
除此之外,第三数据处理模块还可监控高速缓存,从高速缓存中获取目标消息服务模块与每一目标消息代理模块的工作状态,以此形成对数据流量的控制反馈。
下面对该数据交互系统中所涉及的数据协议进行描述:
数据交互系统中所传输的消息包含寻址消息和数据消息。其中,寻址消息为目标消息代理模块与寻址服务模块之间所传输的消息,例如,前文描述的寻址请求即为寻址消息;数据消息为目标消息代理模块与目标消息服务模块之间所传输的消息,例如,目标消息代理模块向目标消息服务模块上报的数据可封装为数据消息,目标消息服务模块向目标消息代理模块下发的数据也可封装为数据消息。
在一些实施例中,目标消息代理模块与寻址服务模块之间采用基于HTTP的第一自定义数据协议;相应地,寻址消息即为基于HTTP的文本编码消息。
在一些实施例中,目标消息代理模块与目标消息服务模块之间采用基于套接字(Socket)的第二自定义数据协议;相应地,数据消息即为基于套接字通信的二进制编码消息。其中,数据消息的编码格式规定了载荷字段,该载荷字段的赋值即为数据体。可以理解,数据体是船艇的应用与管理所需的各种数据的集合,此处不作赘述。
在一些实施例中,在第二自定义数据协议中,还定义了应用消息的概念。该应用消息指的是:一系列具备具体应用功能(例如前文所描述的数据上报、数据设置、数据获取、报警及文件传输等)的消息体的组合。具体地,根据实际的应用需要,可以在遵从数据消息编码格式和数据体编码格式的基础上对该应用消息的格式进行扩展或修改,此处不作限定。
需要注意的是,除消息服务模块之外,数据交互系统中处于云端的其它各个模块和存储体也均可根据实际带宽和处理性能的需要进行集群化部署,以实现负载均衡,此处不作限定。
基于以上所提出的数据交互系统,请参阅图1,图1给出了数据交互系统的一种可能的架构示例。该图1中的箭头表示数据流向,P1表示第一自定义数据协议,P2表示第二自定义数据协议。
由上可见,本申请实施例中,基于netty开发了客户端的消息代理模块和服务器端的消息服务模块以及寻址服务模块,并在消息代理模块和寻址服务模块之间采用基于HTTP的第一自定义数据协议,在消息代理模块与消息服务模块之间采用基于套接字的第二自定义数据协议,以此为基础形成数据交互系统。该数据交互系统能够支持各类船艇、各类传感器及各类应用数据的统一化、标准化采集上报与交互处理,实现了对复杂设备端(例如船艇)数据的高效收发。并且,该数据交互系统在工程上具备互联网平台高并发、高可扩展性及高实时性的特点,便于进行开发及维护。
下面对本申请实施例提供的一种数据交互方法进行描述,该数据交互方法应用于数据交互系统,该数据交互系统在上一实施例已有描述,此处不作赘述;请参阅图2,该数据交互方法包括:
步骤201,目标消息代理模块向寻址服务模块发送寻址请求,其中,目标消息代理模块为:存在数据交互需求的消息代理模块;
步骤202,寻址服务模块在接收到目标消息代理模块所发送的寻址请求后,在一个以上消息服务模块中为目标消息代理模块分配目标消息服务模块;
步骤203,目标消息代理模块与已分配的目标消息服务模块建立长连接,并通过长连接与目标消息服务模块进行数据交互;
在一些实施例中,目标消息代理模块与寻址服务模块之间基于HTTP实现通信,且采用基于HTTP的第一自定义通信协议;目标消息代理模块与目标消息服务模块之间基于netty实现通信,且采用基于套接字的第二自定义通信协议。
在一些实施例中,在一个以上消息服务模块中为目标消息代理模块分配目标消息服务模块,包括:
寻址服务模块根据负载均衡策略在一个以上消息服务模块中确定目标消息服务模块;
寻址服务模块向目标消息代理模块发送目标消息服务模块的地址信息。
在一些实施例中,在寻址服务模块根据负载均衡策略在一个以上消息服务模块中确定目标消息服务模块之前,数据交互方法还包括:
寻址服务模块根据第一数据库对目标消息代理模块所处的设备端进行鉴权;
相应地,寻址服务模块根据负载均衡策略在一个以上消息服务模块中确定目标消息服务模块,包括:
在鉴权结果指示鉴权通过的情况下,寻址服务模块根据负载均衡策略在一个以上消息服务模块中确定目标消息服务模块。
请参阅图3,图3给出了为目标消息代理模块分配目标消息服务模块的一种可能的具体实现流程示意。
在一些实施例中,数据交互方法还包括:
在管理模块接收到管理指令的情况下,根据管理指令对第一数据库所存储的配置信息进行管理操作。
在一些实施例中,步骤204,包括:
目标消息代理模块向目标消息服务发送长连接通信请求,建立与目标消息服务模块的长连接;
目标消息代理模块通过长连接进行登录操作,建立与目标消息服务模块的会话;
目标消息代理模块通过会话与目标消息服务模块进行数据交互。
请参阅图4,图4给出了步骤204的一种可能的具体实现流程示意。
在一些实施例中,数据交互方法还包括:
在会话保持的情况下,目标消息代理模块周期性向目标消息服务模块发送第一心跳消息,目标消息服务模块向目标消息代理模块发送第二心跳消息作为对第一心跳消息的反馈;
在会话超时,且长连接未中断的情况下,触发执行目标消息代理模块通过长连接进行登录操作,建立与目标消息服务模块的会话的步骤及后续步骤;
在长连接中断的情况下,触发执行目标消息代理模块向寻址服务模块发送寻址请求的步骤及后续步骤。
在一些实施例中,数据交互方法还包括:
目标消息服务模块在接收到目标消息代理模块所上报的数据后,将数据存储至高速缓存;
第一数据处理模块根据预设的在线处理规则对高速缓存中的数据进行在线处理,得到第一数据处理结果;
第一数据处理模块将第一数据处理结果存储至第二数据库。
在一些实施例中,数据交互方法还包括:
目标消息服务模块在接收到目标消息代理模块所上报的数据后,将数据存储至消息中间件;
第二数据处理模块周期性根据预设的离线处理规则对消息中间件中的数据进行离线处理,得到第二数据处理结果;
第二数据处理模块将第二数据处理结果存储至第三数据库。
在一些实施例中,第三数据处理模块根据预设的实时处理规则对高速缓存中的数据进行实时处理,得到第三数据处理结果;
第三数据处理模块向目标消息服务模块发送第三数据处理结果,作为目标消息服务模块向目标消息代理模块进行数据反馈的依据。
由上可见,本申请实施例中,基于netty开发了客户端的消息代理模块和服务器端的消息服务模块以及寻址服务模块,并在消息代理模块和寻址服务模块之间采用基于HTTP的第一自定义数据协议,在消息代理模块与消息服务模块之间采用基于套接字的第二自定义数据协议,以此为基础形成数据交互系统。该数据交互系统能够支持各类船艇、各类传感器及各类应用数据的统一化、标准化采集上报与交互处理,实现了对复杂设备端(例如船艇)数据的高效收发。并且,该数据交互系统在工程上具备互联网平台高并发、高可扩展性及高实时性的特点,便于进行开发及维护。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将上述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者外部设备软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,上述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关联的硬件来完成,上述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,上述计算机程序包括计算机程序代码,上述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。上述计算机可读存储介质可以包括:能够携带上述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机可读存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,上述计算机可读存储介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读存储介质不包括是电载波信号和电信信号。
以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (8)
1.一种数据交互方法,其特征在于,所述数据交互方法应用于数据交互系统,所述数据交互系统包括:寻址服务模块,一个以上消息服务模块及一个以上消息代理模块,所述寻址服务模块及所述消息服务模块位于云端,所述消息代理模块位于设备端;所述数据交互方法包括:
目标消息代理模块向所述寻址服务模块发送寻址请求,其中,所述目标消息代理模块为:存在数据交互需求的消息代理模块;
所述寻址服务模块在接收到所述目标消息代理模块所发送的所述寻址请求后,在所述一个以上消息服务模块中为所述目标消息代理模块分配目标消息服务模块;
所述目标消息代理模块向所述目标消息服务模块发送长连接通信请求,建立与所述目标消息服务模块的长连接;
所述目标消息代理模块通过所述长连接进行登录操作,建立与所述目标消息服务模块的会话;
所述目标消息代理模块通过所述会话与所述目标消息服务模块进行数据交互;
所述数据交互方法还包括:
在所述会话保持的情况下,所述目标消息代理模块周期性向所述目标消息服务模块发送第一心跳消息,所述目标消息服务模块向所述目标消息代理模块发送第二心跳消息作为对所述第一心跳消息的反馈;
在所述会话超时,且所述长连接未中断的情况下,触发执行所述目标消息代理模块通过所述长连接进行登录操作,建立与所述目标消息服务模块的会话的步骤及后续步骤;
在所述长连接中断的情况下,触发执行所述目标消息代理模块向所述寻址服务模块发送寻址请求的步骤及后续步骤。
2.如权利要求1所述的数据交互方法,其特征在于,所述在所述一个以上消息服务模块中为所述目标消息代理模块分配目标消息服务模块,包括:
所述寻址服务模块根据负载均衡策略在所述一个以上消息服务模块中确定所述目标消息服务模块;
所述寻址服务模块向所述目标消息代理模块发送所述目标消息服务模块的地址信息。
3.如权利要求2所述的数据交互方法,其特征在于,所述数据交互系统还包括第一数据库,所述第一数据库用于存储所述数据交互系统的配置信息;在所述寻址服务模块根据负载均衡策略在所述一个以上消息服务模块中确定所述目标消息服务模块之前,所述数据交互方法还包括:
所述寻址服务模块根据所述第一数据库对所述目标消息代理模块所处的设备端进行鉴权;
相应地,所述寻址服务模块根据负载均衡策略在所述一个以上消息服务模块中确定所述目标消息服务模块,包括:
在鉴权结果指示鉴权通过的情况下,所述寻址服务模块根据负载均衡策略在所述一个以上消息服务模块中确定所述目标消息服务模块。
4.如权利要求1所述数据交互方法,其特征在于,所述目标消息代理模块与所述寻址服务模块之间基于超文本传输协议HTTP实现通信,且采用基于HTTP的第一自定义数据协议;所述目标消息代理模块与所述目标消息服务模块之间基于netty实现通信,且采用基于套接字的第二自定义数据协议。
5.如权利要求1所述的数据交互方法,其特征在于,所述数据交互系统还包括:高速缓存、第二数据库及第一数据处理模块,所述数据交互方法还包括:
所述目标消息服务模块在接收到所述目标消息代理模块所上报的数据后,将所述数据存储至所述高速缓存;
所述第一数据处理模块根据预设的在线处理规则对所述高速缓存中的数据进行在线处理,得到第一数据处理结果;
所述第一数据处理模块将所述第一数据处理结果存储至所述第二数据库。
6.如权利要求1所述的数据交互方法,其特征在于,所述数据交互系统还包括:消息中间件、第三数据库及第二数据处理模块,所述数据交互方法还包括:
所述目标消息服务模块在接收到所述目标消息代理模块所上报的数据后,将所述数据存储至所述消息中间件;
所述第二数据处理模块周期性根据预设的离线处理规则对所述消息中间件中的数据进行离线处理,得到第二数据处理结果;
所述第二数据处理模块将所述第二数据处理结果存储至所述第三数据库。
7.如权利要求5所述的数据交互方法,其特征在于,所述数据交互系统还包括:第三数据处理模块;所述数据交互方法还包括:
所述第三数据处理模块根据预设的实时处理规则对所述高速缓存中的数据进行实时处理,得到第三数据处理结果;
所述第三数据处理模块向所述目标消息服务模块发送所述第三数据处理结果,作为所述目标消息服务模块向所述目标消息代理模块进行数据反馈的依据。
8.一种数据交互系统,其特征在于,所述数据交互系统包括:寻址服务模块,一个以上消息服务模块及一个以上消息代理模块,所述寻址服务模块及所述消息服务模块位于云端,所述消息代理模块位于设备端;
目标消息代理模块,用于向所述寻址服务模块发送寻址请求,其中,所述目标消息代理模块为:存在数据交互需求的消息代理模块;
所述寻址服务模块,用于在接收到所述目标消息代理模块所发送的所述寻址请求后,在所述一个以上消息服务模块中为所述目标消息代理模块分配目标消息服务模块;
所述目标消息代理模块,还用于与已分配的所述目标消息服务模块建立长连接,并通过所述长连接与所述目标消息服务模块进行数据交互,包括:向所述目标消息服务模块发送长连接通信请求,建立与所述目标消息服务模块的长连接;通过所述长连接进行登录操作,建立与所述目标消息服务模块的会话;
通过所述会话与所述目标消息服务模块进行数据交互;
所述目标消息代理模块,还用于在所述会话保持的情况下,周期性向所述目标消息服务模块发送第一心跳消息,所述目标消息服务模块向所述目标消息代理模块发送第二心跳消息作为对所述第一心跳消息的反馈;在所述会话超时,且所述长连接未中断的情况下,触发执行通过所述长连接进行登录操作,建立与所述目标消息服务模块的会话的步骤及后续步骤;在所述长连接中断的情况下,触发执行向所述寻址服务模块发送寻址请求的步骤及后续步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210764358.6A CN115225715B (zh) | 2022-06-30 | 2022-06-30 | 一种数据交互方法及数据交互系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210764358.6A CN115225715B (zh) | 2022-06-30 | 2022-06-30 | 一种数据交互方法及数据交互系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115225715A CN115225715A (zh) | 2022-10-21 |
CN115225715B true CN115225715B (zh) | 2024-01-26 |
Family
ID=83609278
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210764358.6A Active CN115225715B (zh) | 2022-06-30 | 2022-06-30 | 一种数据交互方法及数据交互系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115225715B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103916936A (zh) * | 2013-01-04 | 2014-07-09 | 中国移动通信集团公司 | 实现数据长连接的方法、系统及移动终端、服务器 |
CN105049404A (zh) * | 2015-05-26 | 2015-11-11 | 江苏省公用信息有限公司 | 一种家庭网关设备动态ip寻址方法和寻址系统 |
CN105337935A (zh) * | 2014-07-09 | 2016-02-17 | 阿里巴巴集团控股有限公司 | 一种建立客户端和服务端长连接的方法和装置 |
CN110505318A (zh) * | 2018-05-17 | 2019-11-26 | 大唐移动通信设备有限公司 | 统一资源定位符寻址方法及装置、网络系统 |
CN111327511A (zh) * | 2018-12-14 | 2020-06-23 | 北京京东尚科信息技术有限公司 | 即时通讯方法、系统、终端设备与存储介质 |
CN111726400A (zh) * | 2020-06-08 | 2020-09-29 | 北京天空卫士网络安全技术有限公司 | 反向连接的方法、装置和服务端系统 |
CN112671986A (zh) * | 2019-10-16 | 2021-04-16 | 北京京东尚科信息技术有限公司 | 呼叫中心系统和呼叫中心系统的实现方法 |
CN114025010A (zh) * | 2021-10-20 | 2022-02-08 | 北京奥星贝斯科技有限公司 | 建立连接的方法和网络设备 |
CN114126014A (zh) * | 2021-11-04 | 2022-03-01 | 维沃移动通信有限公司 | 心跳代理方法和装置 |
CN114338063A (zh) * | 2020-09-29 | 2022-04-12 | 中移物联网有限公司 | 消息队列系统、业务处理方法及计算机可读存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9794370B2 (en) * | 2015-11-09 | 2017-10-17 | Telefonaktiebolaget Lm Ericsson (Publ) | Systems and methods for distributed network-aware service placement |
US10142994B2 (en) * | 2016-04-18 | 2018-11-27 | Electronics And Telecommunications Research Institute | Communication method and apparatus using network slicing |
-
2022
- 2022-06-30 CN CN202210764358.6A patent/CN115225715B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103916936A (zh) * | 2013-01-04 | 2014-07-09 | 中国移动通信集团公司 | 实现数据长连接的方法、系统及移动终端、服务器 |
CN105337935A (zh) * | 2014-07-09 | 2016-02-17 | 阿里巴巴集团控股有限公司 | 一种建立客户端和服务端长连接的方法和装置 |
CN105049404A (zh) * | 2015-05-26 | 2015-11-11 | 江苏省公用信息有限公司 | 一种家庭网关设备动态ip寻址方法和寻址系统 |
CN110505318A (zh) * | 2018-05-17 | 2019-11-26 | 大唐移动通信设备有限公司 | 统一资源定位符寻址方法及装置、网络系统 |
CN111327511A (zh) * | 2018-12-14 | 2020-06-23 | 北京京东尚科信息技术有限公司 | 即时通讯方法、系统、终端设备与存储介质 |
CN112671986A (zh) * | 2019-10-16 | 2021-04-16 | 北京京东尚科信息技术有限公司 | 呼叫中心系统和呼叫中心系统的实现方法 |
CN111726400A (zh) * | 2020-06-08 | 2020-09-29 | 北京天空卫士网络安全技术有限公司 | 反向连接的方法、装置和服务端系统 |
CN114338063A (zh) * | 2020-09-29 | 2022-04-12 | 中移物联网有限公司 | 消息队列系统、业务处理方法及计算机可读存储介质 |
CN114025010A (zh) * | 2021-10-20 | 2022-02-08 | 北京奥星贝斯科技有限公司 | 建立连接的方法和网络设备 |
CN114126014A (zh) * | 2021-11-04 | 2022-03-01 | 维沃移动通信有限公司 | 心跳代理方法和装置 |
Non-Patent Citations (2)
Title |
---|
"面向轻量级ESB的服务集成及服务管理的设计与实现";钱苓苓;《中国优秀硕士学位论文全文数据库 (基础科学辑)》;I138-846 * |
Adeel Shajjar ; Hafiz Farooq Ahmad."Web Service Provisioning to Nomadic Users Using a Light Weight Multi Agent System".《IEEE》.2010,全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN115225715A (zh) | 2022-10-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105530254B (zh) | 一种内外网之间的数据通信方法 | |
US7746824B2 (en) | Method and apparatus for establishing multiple bandwidth-limited connections for a communication device | |
CN108512885A (zh) | 对被识别为消息队列遥测传输包的网络包执行特定动作 | |
CN114338827B (zh) | 物联网协议适配网关、方法及可读存储介质 | |
CN110808948B (zh) | 远程过程调用方法、装置及系统 | |
CN113242272B (zh) | 基于mqtt服务集群的会话处理方法及系统 | |
CN101160880A (zh) | 通信设备与方法 | |
CN110535811B (zh) | 远端内存管理方法及系统、服务端、客户端、存储介质 | |
CN112152914A (zh) | 一种基于北斗短报文的即时通信方法以及系统 | |
CN113890730A (zh) | 数据传输方法及系统 | |
CN115225715B (zh) | 一种数据交互方法及数据交互系统 | |
CN108092993B (zh) | 一种网络数据传输控制方法和系统 | |
CN111901384B (zh) | 处理报文的系统、方法、电子设备以及可读存储介质 | |
CN110572476B (zh) | 一种远程控制方法、装置及设备 | |
CN108848114A (zh) | 一种安全的基于随机动态网络的信息传输方法 | |
KR20010082938A (ko) | 차세대 이동통신 시스템에서 원격 프로세스 호를 이용한운용 보전 방법 | |
CN105188087B (zh) | 一种基于短信网关的业务通信方法和系统 | |
JP2005522939A (ja) | 通信ネットワークにおけるマネージャオブジェクトと被管理オブジェクトとの間の通信を編成するための方法、アーキテクチャー及びそのソフトウェア | |
CN114679472A (zh) | 通信系统、方法、装置、存储介质及电子设备 | |
CN111490997A (zh) | 任务处理方法、代理系统、服务系统和电子设备 | |
CN110034927A (zh) | 一种通信的方法及装置 | |
CN114979237B (zh) | 一种长连接验证方法、装置、设备及可读存储介质 | |
CN108155981B (zh) | 一种snmp服务器及封装snmp通信数据的方法 | |
US11824839B1 (en) | Obscuring connections between source and destination devices via a pool of disposable proxies | |
CN105992177B (zh) | 提升移动代理服务器可用性的方法、装置及系统 |
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 |