[发明专利]一种基于JMS消息总线的服务器实时推送系统及方法有效
申请号: | 201410004255.5 | 申请日: | 2014-01-06 |
公开(公告)号: | CN103780680B | 公开(公告)日: | 2017-05-24 |
发明(设计)人: | 吴含前;袁瑞峰;姚莉;李露 | 申请(专利权)人: | 东南大学 |
主分类号: | H04L29/08 | 分类号: | H04L29/08 |
代理公司: | 北京瑞思知识产权代理事务所(普通合伙)11341 | 代理人: | 李涛 |
地址: | 215123 江苏*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种基于JMS消息总线的服务器实时推送系统及方法,用于LED隧道照明灯智能控制系统中,包括串口通信模块、与串口通信模块相连接的JMS消息总线、与JMS消息总线相连接的数据处理模块、信息推送模块和控制转发模块、与数据处理模块相连接的JCS缓存,所述控制转发模块又与所述数据处理模块相连接。通过采用数据处理模块与JCS缓存中的数据进行比对,提高计算和处理速度;通过采用JMS消息总线和串口通信模块实现信息推送及远程控制,提高服务器的利用率和通讯的即时性;采用DIV+CSS布局的JSP界面作为系统界面,提高了服务器的信息解析、显示和传送速度,保证通讯即时性、友好交互性和高兼容性。 | ||
搜索关键词: | 一种 基于 jms 消息 总线 服务器 实时 推送 系统 方法 | ||
【主权项】:
一种基于JMS 消息总线的服务器实时推送系统,用于LED 隧道照明灯智能控制系统中,其特征在于,包括:串口通信模块、JMS 消息总线、数据处理模块、JCS 缓存、信息推送模块和控制转发模块,其中:所述串口通信模块与所述JMS 消息总线相连,用于接收段控制箱通过无线信号传输过来的数据,并经过简单的解析处理后,将内容发送到JMS 消息总线;所述JMS 消息总线又与所述数据处理模块、信息推送模块、控制转发模块相连,用于实现系统内部各独立模块间的数据通信;所述串口通信模块包含一个消息发布模块和至少一个消息订阅模块,其中:所述消息发布模块用于将接收到的状态数据,通过所述JMS 消息总线中的状态消息主题,发布状态数据消息至所述信息推送模块;所述消息订阅模块用于监听所述JMS 消息总线中的控制消息主题,当控制转发模块发来控制指令时,将控制指令传递给段控制箱;所述JMS 消息总线包括两个消息主题,分别为状态消息主题和控制消息主题,所述状态消息主题用于将从所述串口通信模块接收到的状态信息传递给所述信息推送模块,所述控制消息主题用于将从所述控制转发模块接受到的控制命令传递给所述串口通信模块;所述JMS 消息总线采用ActiveMQ 开源框架实现;ActiveMQ 可以提供订阅/ 发布模式的消息总线服务,在这种模式中有三种角色,分别为:消息发布者、消息主题、消息订阅者,一个消息主题可以有多个订阅者,消息订阅者会监听该消息主题,当消息发布者向该消息主题发送信息时,所有的消息订阅者均会收到该信息;系统中有一个JMSFactory 类,可以为其他模块提供创建消息发布模块和消息订阅模块的服务,ActiveMQ 启动后,会开启一个端口号为61616 的tcp 连接:tcp://localhost:61616,JMSFactory 通过该地址创建一个ctiveMQConnectionFactory,用来创建连接实例;在JMSFactory 类中封装了两个方法,getMessageConsumer() 和getMessageProducer(),分别可以获得一个消息订阅模块实例和消息发布模块实例,这两个方法可以接收一个字符串参数,该参数指定了消息发布模块要向哪个主题发布信息,消息订阅模块要监听哪个主题;MessageProducer 类主要负责向消息主题发送消息,该类的实例有一个send 方法,可以发送包含实际消息内容的Message 实例;MessageConsumer 类主要负责监听消息主题,为该类的实例设置一个MessageListener,可以实现监听器模式,一旦消息发布者发布了消息,消息订阅者可以通过MessageListener 监听到消息,并及时做出反映;其他模块只需要包含一个设置了MessageListener 的MessageConsumer 或者包含一个MessageProducer,就可以实现与JMS 消息总线的交互;所述数据处理模块又与所述JCS 缓存相连,对从所述JMS 消息总线接收到的信息进行解析和处理,并与所述JCS 缓存进行交互,构造控制命令,通过JMS 消息总线与串口通信模块进行数据交互;该模块中负责数据处理的核心类为DataCenter,主要负责解析LED 隧道照明灯的状态信息、构造控制指令字符串、与缓存数据比对、更新缓存数据、格式化缓存数据等;所述串口通讯模块接收的状态信息是经过压缩的,因此数据处理模块接收到的状态信息需要经过一定的格式化才能进行比对处理;decodeStatusInfo 方法可以解析状态信息,并将状态信息封装成系统需要的数据格式,从而可以跟JCS 缓存中的现有数据进行比对;在数据比对过程中,会将发生改变的数据提取出来,并进一步封装成适合前台处理的json 数据格式,同时更新缓存数据;如果在比对过程中发现有JCS 缓存中不存在的数据,则需要将数据添加到JCS 缓存中;从而不需要使用数据库来存储LED 隧道照明灯的状态信息,提高了计算和处理速度;所述JCS 缓存用于将与所述JCS 缓存交互的信息缓存在当前系统中,以便于进行信息比对;所述信息推送模块采用DWR 服务器推送技术,实现服务器端直接向系统界面推送信息;所述控制转发模块与所述数据处理模块相连,用于接收系统界面发送的控制请求,并调用数据处理模块中的方法,产生控制命令,通过JMS 消息总线发送至串口通信模块,由所述串口通信模块转发给段控制箱;所述系统界面为使用DIV+CSS 布局的JSP 界面,并使用Ajax 技术与控制转发模块进行交互,在与信息推送模块进行交互时,直接调用LCS 中的初始化页面的方法,从数据处理模块获取缓存数据,解析并构造页面内LED 隧道照明灯信息的显示。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于东南大学,未经东南大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201410004255.5/,转载请声明来源钻瓜专利网。