一种用于多源设备的通讯处理系统的制作方法

文档序号:20039345发布日期:2020-02-28 11:42阅读:229来源:国知局
一种用于多源设备的通讯处理系统的制作方法

本发明涉及多源设备的通讯处理技术领域,尤其是一种用于多源设备的通讯处理系统。



背景技术:

近年来,随着计算机技术、通讯技术的发展,多源设备的通讯处理技术也相应的得到了迅速的发展,且多源设备的通讯处理技术仍在不断的发展和完善。在雷达领域中,拥有多部不同型号的雷达设备,各雷达设备所提供的信息在空间、时间、表达方式、侧重点、用途等方面都不尽相同,这对信息的综合管理、有效利用提出了新的要求。在传统的雷达领域中,各型雷达设备所提供的设备状态信息单独、孤立,针对不同的设备配备相应的设备信息管理软件,这不仅导致工作量的增加,而且隔断了不同设备状态信息之间的联系,造成信息资源的浪费、维护困难。雷达设备产生的数据量大,而设备数量和种类还在不断的增加,容易出现短时间内通信数量的剧增的现象。



技术实现要素:

为了克服上述现有技术中的缺陷,本发明提供一种用于多源设备的通讯处理系统,解决了分散在不同区域的多源雷达设备的状态信息收集慢、监测管理困难、数据量大、可扩展性差等问题,提高了多源设备的数据采集效率,优化了多源设备的数据的传输和处理过程,便于查看不同型号、不同区域的多源雷达设备数据,进而实现统一监测和管理,为故障决策提供依据,提高了对零散分布的多台雷达设备的管理效率,系统具有良好的可扩展性、稳定性、响应速度快的特点。

为实现上述目的,本发明采用以下技术方案,包括:

一种用于多源设备的通讯处理系统,包括:通讯处理框架,和分别安装在每台设备上的各个agent单元;

agent单元用于采集对应设备上的数据,对所采集到的对应设备的数据进行包装生成该设备的数据包,且在该设备的数据包上标记该设备的名称;所述agent单元将该设备的数据包发送至通讯处理框架中;

通讯处理框架中包括:主数据分发器、主事件处理器、主虚拟处理通道、总线程池;

主数据分发器后连接有若干个主事件处理器,此若干个主事件处理器分别用于处理不同事件;

主数据分发器分别接收各个设备上的agent单元所发送的数据包,并根据数据包上的标记,将同一设备的数据包分发给对应的主事件处理器;即,将同一设备的数据包的处理作为一个事件,分发给同一个主事件处理器;主事件处理器对其所接收的数据包进行监听、分类、读写的处理;

各个主事件处理器后均对应连接一个主虚拟处理通道;

各个主事件处理器将其所接收的同一设备的数据包递交到对应的主虚拟处理通道中;

各个主虚拟处理通道将其通道内的同一设备的数据包放入总线程池中;

数据包在总线程池中进行解码、计算、编码。

通讯处理框架中还包括:接收器、从数据分发器、从事件处理器、从虚拟处理通道;

主数据分发器后连接一个接收器;

当主数据分发器在单位时间内所接收的数据包数量达到设定的阈值时,即表示主数据分发器在单位时间内所接收的数据包数量出现剧增,则主数据分发器激活接收器,接收器产生一个从数据分发器,主数据分发器将单位时间内所接收的超过设定阈值数量的数据包发送给从数据分发器;

从数据分发器与主数据分发器的工作方式相同,且从数据分发器后连接有若干个从事件处理器,此若干个从事件处理器分别用于处理不同事件:

从数据分发器根据数据包上的标记,将同一设备的数据包的处理作为一个事件,分发给同一个从事件处理器;从事件处理器对其所接收的数据包进行监听、分类、读写的处理;

各个从事件处理器后均对应连接一个从虚拟处理通道;

各个从事件处理器将其所接收的同一设备的数据包递交到对应的从虚拟处理通道中;

各个从虚拟处理通道将其通道内的同一设备的数据包放入总线程池中。

当从数据分发器在单位时间内所接收的数据包数量也达到设定的阈值时,即表示从数据分发器在单位时间内所接收的数据包数量也出现剧增,则接收器继续产生从数据分发器,即接收器可以根据数据包数量的接收情况,产生多个从数据分发器;

主数据分发器将单位时间内所接收的超过设定阈值数量的数据包通过接收器分别发送给各个从数据分发器。

通讯处理框架中还包括:消息回执器、计时器;

若数据包在总线程池中的解码、计算、编码的处理完成后,则总线程池发送该数据包的线程处理成功的回执消息码给消息回执器;若数据包在总线程池中解码、计算、编码的处理失败时,则总线程池发送该数据包的线程处理失败的回执消息码给消息回执器;

消息回执器将各个数据包的回执消息码发送给计时器,计时器统计数据包的处理时间,所述处理时间是指:数据包被主数据分发器所接收的时间点到产生回执消息码的时间点之间的时间差;

计时器将其所统计的各个数据包的处理时间发送给接收器;各个数据包的处理时间与处理该数据包的数据分发器的处理能力相对应;数据包的处理时间越短,表示处理该数据包的数据分发器的处理能力越强;反之,数据包的处理时间越长,表示处理该数据包的数据分发器的处理能力越弱;

当通讯处理框架中存在多个从数据分发器时,主数据分发器向此多个从数据分发器分别发送数据包时,先根据接收器所接收的各个数据包的处理时间,比较各个从数据分发器的处理能力;再根据从数据分发器的处理能力对各个从数据分发器分配数据包,处理能力越强的从数据分发器被分配的数据包数量越多,反之,处理能力越弱的从数据分发器被分配的数据包数量越少。

通讯处理框架中还包括:消息回执器;

若某设备的数据包在总线程池中的解码、计算、编码的处理完成后,则总线程池发送该设备的数据包的线程处理成功的回执消息码给消息回执器;若某设备的数据包在总线程池中解码、计算、编码的处理失败时,则总线程池发送该设备的数据包的线程处理失败的回执消息码给消息回执器;

消息回执器将各个设备的数据包的回执消息码发送给对应设备上的agent单元。

各个虚拟处理通道均采用轮询方式进行数据传递处理;

虚拟处理通道内部采用环形链表的数据结构,从环形链表的表头插入新的数据包,从环形链表的表尾递交出数据包到总线程池中;环形链表不设置最大值,且环形链表按照一设定时间从开始位置定时旋转,环形链表的表头和表尾随着环形链表的旋转而发生移位。

各个事件处理器的初始状态均为待运行状态,处于待运行状态的事件处理器由其对应连接的数据分发器激活,被激活后的事件处理器在注册监听状态、监听触发状态、取消监听状态此三种状态下切换,具体切换方式如下所示:

当事件处理器接收到数据包时,则事件处理器处于监听触发状态;

当事件处理器在设定的时间范围内,没有接收到数据包时,则事件处理器处于注册监听状态;

当事件处理器超出设定的时间范围后,仍没有接收到数据包时,则事件处理器处于取消监听状态;

各个事件处理器之间的事件处理异步进行;

当事件处理器处于注册监听状态时,若接收到数据包,则事件处理器的状态切换为监听触发状态,其后所连接虚拟处理通道才能传递数据包至总线程池;

当事件处理器处于取消监听状态时,该事件处理器必须先由其对应连接的数据分发器激活后,才可以进行内部状态的切换,即切换为监听触发状态或注册监听状态。

所述设备为雷达设备;每个雷达设备和对应的agent单元之间的连接是永久性的长连接,遵守tcp/ip传输协议,agent单元采集对应雷达设备上的状态数据;

所述agent单元包括:雷达数据接收模块、数据包装转发模块;

雷达数据接收模块通过socket通讯方式接收雷达设备的状态码;雷达数据接收模块将传输中断、数据包不完整等异常情况记录到对应日期的日志中;

数据包装转发模块将接收到的雷达设备的状态码转换为对应状态值的数据包,在雷达设备的数据包上标记该雷达设备的名称,并将该雷达设备的数据包发送至通讯处理框架中。

总线程池通过服务器与前端浏览器相连接,通过服务器中的数据适配器对通讯处理框架中的经总线程池处理完成后的数据进行数据转换,转换成前端浏览器可以快速解析的数据格式,并以websocket通讯协议递交到前端浏览器;同时,将转换后的设备数据持久化到服务器的关系型数据库中。

同一设备的数据包在总线程池中组成一个任务队列;且总线程池中包括池化线程队列,每个任务队列均对应一个池化线程队列。

本发明的优点在于:

(1)在每个设备上安装agent单元,利用agent单元采集对应设备上的数据,并统一将所采集的数据包发送至通讯处理框架中进行数据传递和数据处理,提高了多源设备的数据采集和数据传递的效率。

(2)将同一设备的数据包的处理作为一个事件,分发给同一个主事件处理器,优化了数据处理过程,提高了系统处理多类型数据的效率。

(3)通讯处理框架中设置接收器、从数据分发器、从事件处理器、从虚拟处理通道,在面对高并发的数据包下,通讯处理框架仍旧能正常运行,提高了系统的稳定性和可用性。

(4)接收器可以根据数据包数量的剧增情况,产生多个从数据分发器,具有良好的可扩展性。

(5)通过设置消息回执器和计时器,对各个数据包的处理时间进行统计,且各个数据包的处理时间与处理该数据包的数据分发器的处理能力相对应。

当存在多个从数据分发器时,主数据分发器不是进行平均分配,而是根据从数据分发器的处理能力对各个从分发器分配数据包,更具弹性和伸缩能力的方式,由于网络链路质量、服务器性能、系统架构等所存在的不稳定性,这种更具弹性和伸缩能力的方式便于更加智能的适应具体的网络环境,提高了系统的稳定性。

(6)虚拟处理通道采用环形链表的数据结构,通过环形链表的旋转对数据进行处理的方式即为轮询方式,能够保证在环形链表上的每个数据包被处理的概率是相同的。

(7)本发明在事件处理器的内部设置了三种状态,若事件处理器内部只设置一种状态,则导致事件处理器会一直处于工作状态,从而导致资源浪费。

(8)总线程池中包括池化线程队列,且每个任务队列均对应一个池化线程队列;可以优化多线程、多任务下资源的抢占和调度。对于处理过程中造成的阻塞、异常会执行相关操作,保障后续数据能被及时处理,同时保障每个任务队列抢占cpu资源的概率是相同的。

(9)本发明通过数据适配器对通讯处理框架中的经总线程池处理完成后的数据进行数据转换,转换成前端浏览器可以快速解析的数据格式,并以websocket通讯协议递交到前端浏览器,同时,将转换后的雷达设备的数据持久化到服务器的关系型数据库中,便于查看不同型号、不同区域的多源雷达设备数据,进而实现统一监测和管理,为故障决策提供依据,提高了对零散分布的多台雷达设备的管理效率。

附图说明

图1为本发明的一种用于多源设备的通讯处理系统的示意图。

具体实施方式

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

本实施例中,设备是指雷达设备,多源设备是指多个雷达设备。

由图1所示,一种用于多源设备的通讯处理系统,包括:通讯处理框架2,和分别安装在每台设备上的各个agent单元1。

所述agent单元1为每台雷达设备的监控终端所安装的后台程序,该后台程序随着雷达设备启动而自动运行;每个设备和对应的agent单元1之间的连接是永久性的长连接,严格遵守tcp/ip传输协议。

所述agent单元1用于采集对应设备上的数据,对所采集到的对应设备的数据进行包装生成该设备的数据包,且在设备的数据包上标记该设备的名称,并将该设备的数据包发送至通讯处理框架2中。

具体的,所述agent单元1包括:雷达数据接收模块、数据包装转发模块。

雷达数据接收模块通过socket通讯方式接收雷达设备的状态码;雷达数据接收模块对于传输中断、数据包不完整等异常情况,可以记录到对应日期的日志中,便于后期维护。

数据包装转发模块将接收到的雷达设备的状态码转换为对应状态值的数据包,在雷达设备的数据包上标记该雷达设备的名称,并将该雷达设备的数据包发送至通讯处理框架2中。

所述通讯处理框架2包括:主数据分发器21、主事件处理器22、主虚拟处理通道23、总线程池24。

主数据分发器21后连接有若干个主事件处理器22,此若干个主事件处理器22分别用于处理不同事件。

主数据分发器21以fifo即先进先出的方式接收各雷达设备上的agent单元1所发送的数据包,根据数据包上的标记将同一设备的数据包分发给对应的主事件处理器22,即,将同一设备的数据包的处理作为一个事件,分发给同一个主事件处理器22。

主事件处理器22对其所接收的数据包进行监听、分类、读写的处理。

各个主事件处理器22后均对应连接一个主虚拟处理通道23;

各个主事件处理器22将其所接收的同一设备的数据包递交到对应的主虚拟处理通道23中。

各个主虚拟处理通道23分别输出标准序列化的同一设备的数据包,并放入到总线程池24中。

在总线程池24中,同一设备的数据包组成一个任务队列,等待抢占cpu资源,进行解码、计算、编码。

本发明中,所述通讯处理框架2中还包括:接收器25、从数据分发器26、从事件处理器27、从虚拟处理通道28。

主数据分发器21后连接一个接收器25。

当主数据分发器21在单位时间内所接收的数据包数量达到设定的阈值时,即表示主数据分发器21在单位时间内所接收的数据包数量出现剧增,则主数据分发器21激活接收器25,接收器25产生一个从数据分发器26,主数据分发器21将单位时间内所接收的超过设定阈值数量的数据包发送给从数据分发器26。

从数据分发器26与主数据分发器21的工作方式相同,且从数据分发器26后连接有若干个从事件处理器27,此若干个从事件处理器27分别用于处理不同事件。

从数据分发器26根据数据包上的标记,将同一设备的数据包的处理作为一个事件,分发给同一个从事件处理器27。

从事件处理器27对其所接收的数据包进行监听、分类、读写的处理。

各个从事件处理器27后均对应连接一个从虚拟处理通道28。

各个从事件处理器27将其所接收的同一设备的数据包递交到对应的从虚拟处理通道28中;

各个从虚拟处理通道28分别输出标准序列化的同一设备的数据包,并放入总线程池24中。

在总线程池24中,同一设备的数据包组成一个任务队列,等待抢占cpu资源,进行解码、计算、编码。

当从数据分发器26在单位时间内所接收的数据包数量也达到一个设定的阈值时,即表示从数据分发器26在单位时间内所接收的数据包数量也出现剧增,则接收器25继续产生从数据分发器26,即接收器25可以根据数据包数量的接收情况,产生多个从数据分发器26。

主数据分发器24将单位时间内所接收的超过设定阈值数量的数据包通过接收器分别发送给各个从数据分发器26。

本发明中,所述通讯处理框架2中还包括:消息回执器29、计时器210;

若数据包在总线程池24中的解码、计算、编码的处理完成后,则总线程池24发送该数据包的线程处理成功的回执消息码给消息回执器29;若数据包在总线程池24中解码、计算、编码的处理失败时,则总线程池24发送该数据包的线程处理失败的回执消息码给消息回执器29。

消息回执器26将各个设备的数据包的回执消息码发送给对应设备上的agent单元1。

消息回执器29将各个数据包的回执消息码发送给计时器210,计时器210统计数据包的处理时间,所述处理时间是指:数据包被主数据分发器21所接收的时间点到产生回执消息码的时间点之间的时间差。

计时器210将其所统计的各个数据包的处理时间发送给接收器25;各个数据包的处理时间与处理该数据包的主数据分发器21或从数据分发器26的处理能力相对应;数据包的处理时间越短,表示处理该数据包的主数据分发器21或从数据分发器26的处理能力越强;反之,数据包的处理时间越长,表示处理该数据包的主数据分发器21或从数据分发器26的处理能力越弱。

当通讯处理框架2中存在多个从数据分发器26时,主数据分发器24向此多个从数据分发器26分别发送数据包时,先根据接收器25所接收的各个数据包的处理时间,比较各个从数据分发器26的处理能力;再根据从数据分发器26的处理能力对各个从数据分发器26分配数据包,处理能力越强的从数据分发器26被分配的数据包数量越多,反之,处理能力越弱的从数据分发器26被分配的数据包数量越少。

各个主虚拟处理通道23或从虚拟处理通道27均为虚拟的共享内存和缓冲区结合体,均采用轮询方式进行数据传递处理;

主虚拟处理通道23或从虚拟处理通道27采用环形链表的数据结构,从环形链表的表头插入新的数据包,从环形链表的表尾递交出数据包到总线程池中;环形链表不设置最大值,且环形链表按照一设定时间从开始位置定时旋转,环形链表的表头和表尾随着环形链表的旋转而发生移位。通过环形链表的旋转对数据进行处理的方式即为轮询方式,保证在环形链表上的每个数据包被处理的概率是相同的。

各个主事件处理器22或从事件处理器27的初始状态均为待运行状态,处于待运行状态的主事件处理器22或从事件处理器27由其对应连接的主数据分发器21或从数据分发器26激活。

被激活后的主事件处理器22或从事件处理器27在注册监听状态、监听触发状态、取消监听状态此三种状态下切换,具体切换方式如下所示:

当主事件处理器22或从事件处理器27接收到数据包时,则主事件处理器22或从事件处理器27处于监听触发状态。

当主事件处理器22或从事件处理器27在设定的时间范围内,没有接收到数据包时,则主事件处理器22或从事件处理器27处于注册监听状态。

当主事件处理器22或从事件处理器27超出设定的时间范围后,仍没有接收到数据包时,则主事件处理器22或从事件处理器27处于取消监听状态。

各个主事件处理器22或从事件处理器27之间的事件处理异步进行。

当主事件处理器22或从事件处理器27处于注册监听状态时,若接收到数据包,则主事件处理器22或从事件处理器27的状态切换为监听触发状态,其后所连接虚拟处理通道才能传递数据包至总线程池。

当主事件处理器22或从事件处理器27处于取消监听状态时,该主事件处理器22或从事件处理器27必须先由其对应连接的数据分发器激活后,才可以进行内部状态的切换,即切换为监听触发状态或注册监听状态。

若主事件处理器22或从事件处理器27只设置一种状态,则导致主事件处理器22或从事件处理器27会一直处于工作状态,从而导致资源浪费。

总线程池24中包括池化线程队列,且每个任务队列均对应一个池化线程队列;可以优化多线程、多任务下资源的抢占和调度。对于处理过程中造成的阻塞、异常会执行相关操作,保障后续数据能被及时处理,同时保障每个任务队列抢占cpu资源的概率是相同的。

总线程池通过服务器与前端浏览器相连接,后续的,服务器中的数据适配器对通讯处理框架中的经总线程池处理完成后的二进制数据进行包装,转换成前端浏览器可以快速解析的数据格式,进而以websocket通讯协议递交到前端浏览器。同时,将雷达设备的数据持久化到数据服务器的关系型数据库中。

以上仅为本发明创造的较佳实施例而已,并不用以限制本发明创造,凡在本发明创造的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明创造的保护范围之内。

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