基于Netty的交通卡口数据交互中间件研究

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:lingxiaodong
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:交通卡口系统是车辆监管的有效工具,由于系统建设过程所采用的技术和数据结构定义的差异,使得与其他信息系统共享卡口数据存在障碍,限制了卡口数据的利用价值。为了实现交通卡口数据的共享,该文研究了以Netty框架为基础的交通卡口数据交换中间件的总体框架,设计了中间件的功能组件,定义了消息交互的关键流程,对交通卡口数据的共享具有重要意义。
  关键词:NIO技术;Netty框架;中间件
  中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2015)12-0108-02
  随着我国居民购买力的提升,道路上的机动车数量逐年增多,增加了车辆违章行驶、肇事逃逸等违规违法现象的发生概率。为了有效地监管车辆,维护交通秩序,在重要交通卡口都设置了监控拍照和测速设施,可对通过卡口的过往车辆进行实时监控和数据记录。各地通过建设交通卡口系统对获取的过往车辆信息进行处理、分析和调用,为纠正违规行驶、侦破肇事案件提供了有力的数据依据[1]。然而,目前建成的交通卡口系统由于建设过程中采用的技术和数据结构定义的差异,所持有的数据只能供卡口系统自身使用[2],无法与PGIS平台、视频综合平台等其他公安信息系统实现共享,实现过往车辆的空间分析、视频图像分析等深化应用,在一定程度上限制了交通卡口数据的利用价值。
  交通卡口数据的共享问题可以通过中间件技术进行解决。周乐钦等研究了满足企业信息化系统之间进行消息传递的数据交换平台中间件[3],梁彦杰等研究了在水污染治理过程中各个协调系统之间的基于中间件技术的数据交换平台的传输框架[4],这些基于中间件的数据交换技术为实现交通卡口系统的数据共享提供了有效参考价值。
  为了构建高效、稳定的交通卡口数据的共享渠道,本文分析了异步事件驱动的网络应用程序框架Netty,以Netty为基础研究了适用于交通卡口系统与其他公安系统进行数据交互的中间件,定义了消息交互流程。
  1 Netty框架
  NIO是Java提供的无堵塞I/O技术,能够有效解决多线程服务器存在的线程开销问题。NIO能够为每个客户端请求分配独立的服务线程,充分利用多个CPU的处理能力,达到提高服务能力的目的[5]。Netty是一个NIO客户端/服务器框架,具有大吞吐量,低延迟和低消耗的优点,使得如TCP、UDP服务器和客户端的开发性能更加优秀,便捷和可靠[6]。
  Netty基于多线程反应器模式(Multiple Reactors),包含主反应器和子反应器,其中主反应器中的请求接收器负责接收客户端的连接请求,并将通道注册到子反应器线程池,各个子反应器采用IO多路复用机制,同时监听处理多个通道的IO请求,完成业务逻辑处理。Netty在应对高并发的请求、保证消息传输的可靠性、维持高效处理能力等方面表现优异[7]。图1所示为Netty框架模型。
  2 中间件设计
  根据交通卡口系统对数据共享的可靠性、安全性要求,并考到中间件在应用过程中的通用性和可扩展性,本文设计了中间件的总体架构,分为网络层、服务层和应用层, 如图2所示。
  1) 网络层应用了Netty框架来实现消息在网络中的无堵塞传输。
  2) 服务层由配置管理组件、认证管理组件、心跳监测器、模型管理组件、模型适配器、消息队列管理器、编解码器和发送\接收器组成。
  ①配置管理组件用以管理和加载数据交换时的相关配置,如消息发送\接收的地址和端口、数据交换频率、应用中间件的系统信息等。
  ②认证管理组件用以验证外接系统与交通卡口系统对接的权限,并建立通信链路。
  ③心跳监测器用以监测交换链路状态是否正常。
  ④模型管理组件用以管理和扩展中间件交互时的消息模型。
  ⑤模型适配器用以进行消息模型匹配。消息发送接口传入的参数进行模型匹配,生成对应的请求消息;接收的消息经过模型匹配生成对应的结果集通过消息接收接口传递给系统。
  ⑥)消息队列管理器采用多路并发的方式轮询队列中的消息,用以管理消息发送队列和消息接收队列,将请求与响应进行匹配。
  ⑦编解码器用以对需要发送和接收的消息进行编码和解码。
  ⑧发送\接收器用以发送经过编码的消息并接收消息。
  2.3 应用层包括消息发送接口和消息接收接口,分别实现消息的发送和接收。
  3 消息交互设计
  交通卡口系统与外接系统进行数据共享时,需要在交通卡口系统和外接系统分别部署中间件,交互流程包括接入认证、心跳监测和业务数据交互。其中,接入认证用以建立外接系统与卡口系统间的安全通信链路,心跳监测用以监测链路的状态,业务交互流程完成交通卡口系统共享车辆信息、行车记录、图片信息等卡口数据。为确保消息传输的可靠性,交互过程均采用请求-应答方式。登录流程和业务交互流程需要确保其可靠性,采用面向连接的、具备可靠传输特性的TCP协议来进行消息传输,心跳监测链路状态,对可靠性要求不高,采用面向无连接的,占用资源小的UDP协议[8]。
  交通卡口系统端的中间件启动时,加载配置信息并启动接入监听,外接系统端的中间件启动后,加载配置信息并将认证信息发送至卡口系统端的中间件进行接入认证。认证成功,外接系统端的中间件开始进行心跳监测,可以进行数据交互,流程如图3所示;认证失败,拒绝该系统与卡口系统的数据交互。
  图4显示了数据交互请求过程。外接系统进行请求时,通过调用中间件的消息发送接口,将数据请求参数接入中间件,经过模型匹配后将生成的请求消息加入发送队列,消息队列管理器取出消息后,发送器将经过编码的请求消息发送至交通卡口系统端的接收器。接收器将经过解码的请求消息加入接收队列,经过模型匹配后将解析生成的结果集通过消息接收接口传送给交通卡口系统。
  图5显示了数据交互响应过程。交通卡口系统返回响应时,通过调用中间件的消息发送接口,将数据响应参数接入中间件,经过模型匹配后将生成的响应消息加入发送队列,消息队列管理器将响应与请求进行匹配后加入消息发送队列,取出消息后,发送器将经过编码的响应消息发送至外接系统端的接收器。接收器将经过解码的响应消息加入接收队列,经过模型匹配后将解析生成的结果集通过消息接收接口传送给外接系统。
  4 结束语
  本文以实现交通卡口系统的数据共享为目的,研究了适用于交通卡口系统与其他系统进行数据交互的中间件,为数据共享提供了数据交换接口、流程规范、通信可靠的数据交换环境,屏蔽了交通卡口系统与其他系统间由于建设技术和数据结构上差异而造成的数据隔离问题。
  参考文献:
  [1] 唐汉征. 现代交通卡口系统智能化探析[J]. 机电信息, 2014(24): 158-159.
  [2] 田力. 实现备卡口数据信息集中共享[N]. 人民公安报, 2010-10-11(8).
  [3] 周乐钦. 数据交换平台中消息中间件的研究与实现[D]. 上海: 东华大学, 2013.
  [4] 梁彦杰, 廉东本. 基于消息中间件的数据交换平台传输框架设计[J]. 计算机系统应用, 2012, 21(4): 10-13.
  [5] 刘蓬. NIO高性能框架的研究与应用[D]. 长沙: 湖南大学, 2013.
  [6] 李林锋. Netty权威指南[M]. 北京: 电子工业出版社, 2014.
  [7] 崔晓旻. 基于Netty的高可服务消息中间件的研究与实现[D]. 成都: 电子科技大学, 2014.
  [8] 张艺濒, 张志斌, 赵咏, 等.TCP与UDP网络流量对比分析研究[J]. 计算机应用研究, 2010, 27(6): 2192-2197.
其他文献
目的:观察阿尔茨海默病(AD)的相关基因p35nck5a 基因5′侧翼区指导报告基因表达的能力.方法:将对本实验室所克隆的p35nck5a基因5′侧翼片段连接于报告基因β-半乳糖苷酶基因
3月28日,格兰仕“感恩中国行2009年格兰仕微波炉中国市场年会”将于在顺德召开。会上,有近800家核心经销商代表莅会,规模之大超越往年。
环境与经济的发展本来就不是对立的问题。越来越多的企业从开始跟随绿色规范,转变成在经营策略里建立起绿色竞争力,并从中找到新的商机。相信这也是企业的承诺。
在日益广泛应用的嵌入式系统中,软件测试因为系统平台局限性需要重复下装,耗费较大的测试资源与时间成本。文章根据嵌入式系统软件的特性,结合实际案例智能楼宇对讲系统DH-T90,从测试环境描述、测试用例筛选、回归策略选择等一系列方法步骤,较系统的说明一种制定智能楼宇对讲系统接口测试的规划策略,从而优化嵌入式系统的接口测试,规范了测试风险,并提升了测试效率。