基于TCP/HTTP的交通拥堵信息分享系统
2014-02-28刘尊民曲大义陈秀锋陈文娇
刘尊民,曲大义,陈秀锋,陈文娇
(青岛理工大学,汽车与交通学院,山东 青岛 266520)
交通拥堵是当前城市“交通病症”的主要问题之一。目前交通拥堵评价是研究难点,其中交通信息数据采集常采用路测固定检测器及浮动车的方法。路测固定检测器主要有微波雷达、感应线圈、视频摄像头等,一般部署在关键路段和主要路口,但存在大量的信息盲点,并可能因检测器故障导致交通信息缺失[1];基于浮动车的交通信息系统,成本低且效率高,具有实时性强,覆盖范围大的特点[2],其最大问题在于浮动车的占比问题,高峰期需要大于12%的浮动车才能保证得到可靠的估计值[3]。实际交通系统中很难接入占比大于10%的浮动车[4-6],因此很难反映某个路口的交通状况,直接导致了原始数据的获取可信度较低。
综合上述两种方法,引入交通拥堵主观信息数据,开发了基于TCP/HTTP的交通信息分享系统平台,该系统数据类型包括两部分:客观数据和主观数据。客观数据包括系统实时采集的浮动车数据及流量数据,该部分数据来源于定位终端及流量采集装置,为系统提供基础的交通数据;主观数据为用户通过智能终端(如智能手机、iPAD)实时上传的3种交通状态:拥堵、轻度拥堵和畅通,该信息在地图中以麻点形式标注,可形成信息点云图。通过对基础交通数据及区域信息点云图的统计分析,以最直观的方式反馈至系统用户,从而实现对交通拥堵信息的实时动态分享。
1 系统架构
系统在逻辑上分为3层结构:表示层、业务管理层及数据层。核心层为业务管理层,包括网关服务程序、通信服务程序及WebServer程序,上传的现场数据包括基于HTTP协议的非安全类分享信息和基于TCP协议的安全类信息两种;数据层提供网络数据存储服务,包括定位数据、报警数据、终端信息数据、管理信息数据集分享类信息数据;表示层为客户端程序,实现终端信息的监控管理及地图操作等功能,为用户端接口界面。系统整体构架如图1,其中安全类信息指基于TCP通信的程序部分,涉及网关程序,通信服务器程序及客户端程序;非安全类信息指基于HTTP通信的程序部分,涉及Webserver程序。
图1 系统整体框架Fig.1 The overall framework of the system
2 系统信息流程
2.1 系统信息主流程
系统涉及安全类和非安全类信息的处理。其中安全类信息包括APP模拟车终端及关键交叉口流量实时信息的监控、客户端查询业务、客户端命令信息的处理等;非安全类信息包括交通、图片及文本信息的分享。安全类信息的主流程如图2,非安全类信息的主流程如图3。
图2 安全类信息主流程Fig.2 Main process of safe information
图3 非安全类信息分享总流程Fig.3 Information sharing process of non-safe information
2.2 服务器端主要业务流程
2.2.1 网关程序
网关程序的主要功能包括接收APP终端上传信息、收到的APP终端信息实时转发至各APP终端、收到的APP终端信息转发至通信服务器程序、收到的来自通信服务器端的命令指令转发至APP终端。其中对终端APP信息获取与处理流程如图4。接收来自终端的数据,开辟线程,在线程函数中对所接收到的信息进行处理。如果该信息为实时定位信息则转发至各APP终端,同时发送至通信服务器;若为命令返回信息,如命令下达成功信息,则将该提示信息发送至通信服务器;若为不能识别信息则在日志文件中给出提示。
图4 网关对终端信息处理流程Fig.4 Processing flow of gateway on terminal information
2.2.2 通信服务器程序
通信服务器程序实现的主要功能包括接收来自网关数据,存入数据库,需要实时显示的信息转发至客户端;接收来自客户端数据库操作指令,操作数据库并返回相关信息至客户端;接收来自客户端命令指令,转发至网关程序。其中对网关端信息获取与处理流程如图5。接收来自网关需实时下发数据,开辟线程,在函数BatchForGate中对所接收到得信息进行处理。如果为模拟浮动车或实时流量信息数据,在函数SendAllMsgToClient中,将实时信息转发至Client端;如果为命令的返回信息,分别在不同函数中进行处理,方法类似基础交通信息的处理。
图5 通信服务器对网关转发信息处理流程Fig.5 Processing flow of communication server on theinformation transferred by gateway
2.2.3 信息分享服务程序
信息分享服务程序主要功能包括提供Webserver接口函数,终端APP通过HTTP协议可调用相关函数实现上传图片及文本信息,并把该信息存入数据库,同时为客户端提供基于用户名、时间段及信息类型的查询接口函数。其业务流程为APP分享信息通过HTTP协议上传至WebServer服务器,并写入数据库。客户端程序通过通信服务器可对该信息进行基于查询条件的访问操作,从而实现现场图片、交通状况等信息的分享。该信息上行部分为基于HTTP协议的通信,下行部分基于TCP协议通信。其信息流程为图3。
2.3 客户端主要业务流程
客户端主要功能包括浮动车及交通流数据采集、浮动车轨迹回放、终端信息管理、交通数据分析与处理、远程调度等。其中客户端对服务器端转发定位信息的处理流程如图6。通过AxTcpToComm函数接收来自服务器数据,调用DoRecStr函数进行数据解析,判断是命令返回或实时数据。若为命令返回数据如登陆成功,则根据不同的返回指令进行相关处理,若为实时数据则通过开辟线程进行地图匹配,同时通过开辟线程函数对车辆列表及数据进行实时更新。其它各模块如轨迹回放,终端信息管理,交通信息分享等,通过TCP套接字函数发送至服务器指令对数据库操作后,根据返回指令完成相应功能,逻辑上类似。其中对登录信息的处理过程较复杂,其流程如图7。
图6 Client端对通信服务器转发信息的处理流程Fig.6 Processing flow of client side on the informationtransferred by communication server
图7 网关对Client端初始化登陆处理流程Fig.7 Login process of gateway on the initialization of client
3 海量高频数据存储技术实现
服务器软件能同时支持不少于5 000台APP设备在线,其中不少于1 000台每秒1次数据。数据上传频率>1 Hz。若直接对数据存储,则数据库写的频率>1 Hz,即对硬盘读写的频率过高,容易造成硬盘损坏,该系统中采用两种方法解决该问题。
3.1 采用固态硬盘
固态硬盘与普通硬盘相比,第一固态硬盘启动速度较快;第二系统碎片不影响读取速度,数据读取及写入速度快,发生故障的概率较小,噪音较小,发热量低[7-8]。因此系统采用两块500 G固态硬盘,一块用于存贮实时数据,另一块用作系统数据备份。服务器采用Win Server 2008 X64位操作系统,8 G内存,保证实时数据的高频转发。
3.2 实时数据与偶发性数据分开处理
偶发数据为出行者上传的主观数据,属非安全类信息,上传频率较低,采用数据实时插入的方法,直接插入数据库表格;实时上传数据为系统客观数据,上传频率高,数据首先缓存至临时表,再采用批处理方式插入数据库表格。根据上传频率获取的值设置批处理的条数,开辟线程,对多条信息采用批处理方法存入数据库,这样可减少磁盘IO次数,提高存储读写效率。
4 监控中心客户端软件实现
监控中心软件是终端监控管理系统的用户操作部分。监控终端软件一方面为交通管控中心用户提供了交通信息管理的平台,实时获取浮动车、流量及主观信息分享数据,同时负责从中心服务器的数据库中获取终端数据,实现各项操作功能,如轨迹回放,历史数据报表,远程通话调度等,达到监控分析的目的;另一方面交通管控部门通过该平台的基础数据,对交通状态进行基本判断及决策,通过交通信息发布板、广播及智能终端等方式,发布给出行者[9]。
系统中主观数据信息分享点包括3种颜色:红色,蓝色及绿色,分别代表交通拥堵,轻度拥堵及畅通3种信息。可设定信息点时间如最近5,10,30 min的数据,并可对所显示信息点在地图上框选进行统计分析。点击某信息点显示该条分享信息的详细内容,包括上传时间、交通状况,现场图片、文本说明等。
5 结 论
1)该系统通过采集浮动车数据,关键路口交通流量数据,及由出行者通过智能终端上传的3种实时交通状况信息数据:拥堵、轻度拥堵及畅通。同时配发图片并携带信息点的地理位置数据,为交通拥堵问题的分析提供基础数据和最直观的依据。
2)系统数据分为安全类及非安全类信息。客户端与服务器通信基于TCP协议,服务器端只开放数据上传端口及客户端访问的端口,有效的保证了信息的安全性。同时系统设计基于模块化思想,系统逻辑流程关系严密,严格遵循终端协议开发,有效保证了系统的可靠性。
3)对高频海量数据在系统硬件上采用固态硬盘进行存储,软件根据数据上传频率采用批处理的方式进行数据入库操作,并设置定期删除大于6个月数据及数据的实时备份,实现了数据的有效维护。
[1] 张存保,严新平.固定检测器和移动检测器的交通信息融合方法[J].交通与计算机,2007,25(3):14-17.
Zhang Cunbao,Yan Xinping.Data fusion method for traffic information detected by fixed detectors and floating cars [J].Computer and Communications,2007,25(3):14-17.
[2] 诸彤宇,郭胜敏.浮动车信息处理技术研究[J].中国图像图形学报,2009,14(7):1230-1237.
Zhu Tongyu,Guo Shengmin.A study on floating car based information [J].Journal of Image and Graphics,2009,14(7):1230-1237.
[3] 翟雅峤,翁剑成,荣建,等.城市道路交通流检测数据精度评价[J].北京航空航天大学学报,2011,37(6):733-742.
Zhai Yaqiao,Weng Jiancheng,Rong Jian,et al.Experimental based traffic flow detectors data accuracy evaluation [J].Journal of Beijing University of Aeronautics and Astronautics,2011,37(6):733-742.
[4] 刘丽娜,吴建平,左兴权,等.浮动车最小样本数量确定方法综述[J].公路交通科技,2009,26(增刊1):74-78.
Liu Lina,Wu Jianping,Zuo Xingquan,et al.Review of determining sample size of probe vehicles [J].Journal of Highway and Transportation Research and Development,2009,26(S1):74-78.
[5] 辛飞飞,陈小鸿,林航飞.基于样本容量的浮动车数据路网覆盖能力研究[J].公路交通科技,2009,26(8):140-144.
Xin Feifei,Chen Xiaohong,Lin Hangfei.Study on detecting capability of floating car data in road network based on sample size [J].Journal of Highway and Transportation Research and Development,2009,26(8):140-144.
[6] 李慧兵,杨晓光.面向浮动车取样偏差修正的数据融合方法[J].同济大学学报:自然科学版,2012,40(10):1498-1503.
Li Huibing,Yang Xiaoguang.Data fusion method on modifying sampling bias of floating cars [J].Journal of Tongji University:Natural Science,2012,40(10):1498-1503.
[7] 白洁,马海兵.固态硬盘在存储系统中的应用分析[J].中国科技信息,2006(6):69-71.
Bai Jie,Ma Haibing.The analysis of application of SSD in the storage system [J].China Science and Technology Information,2006(6):69-71.
[8] 范玉雷,赖文豫,孟小峰.基于固态硬盘内部并行的数据库表扫描与聚集[J].计算机学报,2012,35(11):2327-2336.
Fan Yulei,Lai Wenyu,Meng Xiaofeng.Database table scan and aggregation by exploiting internal parallelism of SSD [J].Chinese Journal of Computers,2012,35(11):2327-2336.
[9] 黄美灵,谭伟,高为,等.城市交通信息发布系统的设计与开发[J].重庆交通大学学报:自然科学版,2010,29(4):616-619.
Huang Meiling,Tan Wei,Gao Wei,et al.Design and development of urban traffic information release system [J].Journal of Chongqing Jiaotong University:Natural Science,2010,29(4):616-619.