基于内外网安全交互的JMS实时消息服务系统的制作方法

文档序号:16062516发布日期:2018-11-24 12:20阅读:365来源:国知局

本发明涉及计算机应用软件技术领域,具体的说是基于内外网安全交互的jms实时消息服务系统。

背景技术

在分布式web应用程序中,异步消息通信机制用于有效地协调各个部分的工作。j2ee框架提供了jms技术,用来实现应用程序各个部件之间的异步消息传递。

在省局移动办税平台系统中,系统需要与其他应用系统交互消息,这些信息主要包括纳税人的基础信息和税收公告信息。出于安全上的考虑,税局网络分为互联网区(外网区)和内网区,两者之间的通信规则为:内网区可以访问外网,但是外网不能访问内网。为了数据安全的需要数据库放在内网区中,当纳税人输入用户名和密码登陆本系统时,需要去内网区数据库查询有没有当前的纳税人信息,有则直接登陆没有就提示注册。由于外网区无法直接访问部署在内网区的数据库信息,此时jms的点对点异步消息传输模式恰好满足此基于j2ee框架系统的通信需求。

与j2ee框架提供的jms技术最接近的现有技术为“weblogic下jms消息服务”。weblogic下jms消息服务存在的问题是“weblogicjms消息服务是异步的,不能够做到实时返回数据信息”。在很多的应用场景中,需要知道消息的处理返回结果,因此需要对weblogicjms消息服务进行改进。

在当今互联网盛行的背景下,一些系统软件对获取实时性数据的要求会越来越高,服务器推送技术越来越受到人们的关注,因此对推送技术的研究变得更具有使用价值和意义。鉴于出现了基于web的服务器反向推送技术,本发明提出了一种基于内外网安全交互的jms实时消息服务系统,来解决weblogicjms服务不能实时传输消息的缺点。



技术实现要素:

本发明针对目前技术发展的需求和不足之处,提供一种基于内外网安全交互的jms实时消息服务系统。

本发明所述基于内外网安全交互的jms实时消息服务系统,解决上述技术问题采用的技术方案如下:所述基于内外网安全交互的jms实时消息服务系统,其系统架构包括:jms消息总线,消息推送模块,控制转发模块,数据处理模块和系统界面五大模块;采用jms消息服务,结合dwr框架通过消息推送模块实现各个模块间实时数据的传送;采用div+css布局的jsp界面作为系统界面;其中:

所述jms消息总线:设置两个队列一个消息接收队列,一个为消息返回队列;设置一个jmstemplate类(消息队列操作类),负责为其他模块提供消息发送和接收的服务;设置一个messagconsumer类(消息消费者),负责监听队列上的消息;

所述消息推送模块:设置一个lcs类,负责向jsp界面实时推送状态数据,并监听消息队列,接收串口通信模块发送过来的消息;spring框架和dwr框架结合在一起,对spring框架的配置文件进行文件配置,以注解的方式实现dwr框架的服务;

所述控制转发模块:汇总lcscontroller功能;在lcscontroller中,定义一个controlinfoservice(控制信息服务类),负责消息发布,向消息队列发送控制指令消息;

所述数据处理模块:负责数据处理的核心类为datacenter(数据中心类),datacenter负责对消息中的信息进行解析、处理,与缓存数据对比后,更新缓存数据;

所述系统界面:使用div和css来设计用户界面ui,使用ajax技术与消息推送模块进行交互。

具体的,所述jmstemplate类向其他模块提供消息发送和接收的服务:

weblogic启动后,开启一个端口的tcp连接,通过在application.xml中配置weblogicjms服务信息创建jmsconnectionfactory类(jms消息队列连接工厂),然后创建jmstemplate类用来发送和接收消息。

具体的,在applicationcontext.xml中,配置listenercontainerbea对象(监听器对象),用于指定对消息接收队列进行监听;所述jmstemplate类设有一send方法,用于指定队列和消息,向指定队列发送消息。

具体的,所述messagconsumer类的实例设置一个messagelistener(消息队列监听器),实现监听器模式;当消息发布者发布消息,messagelistener监听到消息后,及时作出反应;

若所述消息推送模块、控制转发模块、数据处理模块和系统界面包含一个设置了messagelistener的messageconsumer或者包含一个messageproducer(消息生产者),即可与jms消息总线交互。

具体的,所述消息推送模块,监听消息队列的具体实现过程为:通过lcs类连接messagelistener的接口即可实现消息的监听,所述lcs类还支持observer接口。

具体的,所述消息推送模块采用观察者模式,在onmessage方法中,每接收到一次信息,创建一个dataprocessor线程(数据处理线程),dataprocessor线程的实例继承observable类(可观测类),设置其观察者为lcs类的实例;dataprocessor线程用来解析和处理信息;

dataprocessor线程处理完成后通知lcs类的实例,lcs类将返回的结果通过pushdata(数据推送器)直接推送到jsp页面进行处理并显示。

具体的,所述lcscontroller在接收到jsp的控制请求后,经过简单的判断后,通过controlinfoservice的实例发送消息到接收队列。

具体的,所述数据处理模块对从消息队列中接收的消息进行解析和处理,并将消息信息封装成系统需要的数据格式,跟jcs缓存中的现有数据进行对比;

在数据对比过程中,将发生改变的数据提取出来,并进一步封装成适合前台处理的json数据格式,同时更新缓存数据。

具体的,所述系统界面在与消息推送模块进行交互时,直接调用lcs中的初始化页面的方法,从数据处理模块获取缓存数据,解析并构造页面内信息的显示;消息推送模块将更新的数据推送到jsp页面,由js脚本解析数据并更新页面显示。

本发明所述基于内外网安全交互的jms实时消息服务系统,与现有技术相比具有的有益效果是:本发明基于消息总线的实时推送技术,采用jms消息服务,结合dwr框架来实现模块间信息的实时传递,来解决weblogicjms服务不能实时传输消息的缺点,提高服务器的利用率和通讯的即时性;采用div+css布局的jsp界面作为系统界面,提高了服务器的信息解析、显示和传送速度,保证通讯即时性、友好交互性和高兼容性。

具体实施方式

为使本发明的技术方案、解决的技术问题和技术效果更加清楚明白,以下结合具体实施例,对本发明的技术方案进行清查、完整的描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下获得的所有实施例,都在本发明的保护范围之内。

实施例

本实施例提出基于内外网安全交互的jms实时消息服务系统,其系统架构包括:jms消息总线,消息推送模块,控制转发模块,数据处理模块和系统界面五大模块;采用jms消息服务,结合dwr框架通过消息推送模块实现各个模块间实时数据的传送,来解决weblogicjms服务不能实时传输消息的缺点,提高服务器的利用率和通讯的即时性;采用div+css布局的jsp界面作为系统界面,提高了服务器的信息解析、显示和传送速度,保证通讯即时性、友好交互性和高兼容性。该jms实时消息服务系统,可以运用在对实时性要求比较高的场景下,例如,公交站显示屏智能控制系统。dwr框架是一个用于改善web页面与java类交互的远程服务器端ajax开源框架。

本实施例基于内外网安全交互的jms实时消息服务系统,关于jms消息总线:设置两个队列一个消息接收队列,另外一个为消息返回队列;

设置一个jmstemplate类(消息队列操作类),负责为其他模块提供消息发送和接收的服务;具体实现过程为:weblogic启动后,开启一个端口的tcp连接(比如开启一个端口号为7001的tcp连接:t3://10.19.22.94:7001),通过在application.xml中配置weblogicjms服务信息创建jmsconnectionfactory类(jms消息队列连接工厂),然后创建jmstemplate类用来发送和接收消息。在applicationcontext.xml中,配置listenercontainerbea对象(监听器对象),用来指定对消息接收队列进行监听。jmstemplate类设有一send方法,用于指定队列和消息,向指定队列发送消息;

设置一个messagconsumer类(消息消费者),主要负责监听队列上的消息,为该类的实例设置一个messagelistener(消息队列监听器),可以实现监听器模式,一旦消息发布者发布了消息,messagelistener监听到消息,并及时作出反应。其他模块(消息推送模块,控制转发模块,数据处理模块和系统界面)只需要包含一个设置了messagelistener的messageconsumer或者包含一个messageproducer(消息生产者),就可以实现与jms消息总线的交互。

本实施例基于内外网安全交互的jms实时消息服务系统,关于消息推送模块:设置一个lcs类,负责向jsp界面实时推送状态数据,并监听消息队列,接收串口通信模块发送过来的消息;spring框架和dwr框架结合在一起,只需对spring框架的配置文件进行文件配置,即可以注解的方式实现dwr框架的服务。spring框架:为一个开放源代码的设计层面框架;

监听消息队列的具体实现过程为:通过lcs类连接messagelistener的接口即可实现消息的监听,此外lcs类还支持observer接口;

采用观察者模式,在onmessage方法中,每接收到一次信息,都会创建一个dataprocessor线程(数据处理线程),这个线程的实例继承了observable类(可观测类),设置其观察者为lcs类的实例。dataprocessor线程用来解析和处理信息。dataprocessor线程处理完成后通知lcs类的实例,lcs类将返回的结果通过pushdata(数据推送器)直接推送到jsp页面进行处理并显示。onmessage:为监听消息队列中的消息方法。

本实施例基于内外网安全交互的jms实时消息服务系统,关于控制转发模块:springmvc框架中controller(控制器)可以接收jsp发送的请求,并进行处理和转发;该控制转发模块汇总lcscontroller功能;lcscontroller:为软件三层架构中的controller层;在lcscontroller中,定义了一个controlinfoservice(控制信息服务类),负责消息发布,可以向消息队列发送控制指令消息。lcscontroller在接收到jsp的控制请求后,经过简单的判断后,通过controlinfoservice的实例发送消息到接收队列。controlinfoservice:软件三层架构中的service层。

本实施例基于内外网安全交互的jms实时消息服务系统,关于数据处理模块:负责数据处理的核心类为datacenter(数据中心类),datacenter负责对消息中的信息进行解析、处理,与缓存数据对比后,更新缓存数据;

数据处理模块对从消息队列中接收的消息进行解析和处理,并将消息信息封装成系统需要的数据格式,进而跟jcs缓存中的现有数据进行对比。在数据对比过程中,会将发生改变的数据提取出来,并进一步封装成适合前台处理的json数据格式,同时更新缓存数据。如果在比对过程中发现有缓存中不存在的数据,则需要将数据添加到缓存。

本实施例基于内外网安全交互的jms实时消息服务系统,关于系统界面:使用div和css来设计用户界面ui,使用ajax技术与消息推送模块进行交互;

在与消息推送模块进行交互时,直接调用lcs中的初始化页面的方法,从数据处理模块获取缓存数据,解析并构造页面内信息的显示。消息推送模块将更新的数据推送到jsp页面,由js脚本解析数据并更新页面显示。

以上应用具体个例对本发明的原理及实施方式进行了详细阐述,这些实施例只是用于帮助理解本发明的核心技术内容,并不用于限制本发明的保护范围,本发明的技术方案不限制于上述具体实施方式内。基于本发明的上述具体实施例,本技术领域的技术人员在不脱离本发明原理的前提下,对本发明所作出的任何改进和修饰,皆应落入本发明的专利保护范围。

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