基于流计算的交通信号控制系统搭建方法及控制系统的制作方法

xiaoxiao2020-10-23  18

基于流计算的交通信号控制系统搭建方法及控制系统的制作方法
【技术领域】
[0001] 本发明属于分布式控制领域,尤其设及基于流计算的交通信号控制系统搭建方法 及控制系统。
【背景技术】
[0002] 城市交通系统是一个天然的复杂开放巨系统,涌现出的交通流具有不确定性、时 变性、迟滞性等诸多复杂特性,使交通系统控制研究面临着巨大挑战。作为缓解城市交通拥 堵的重要发展方向之一,区域交通信号控制旨在利用车辆检测器感知区域交通状况的基础 上,经过区域交通信号控制算法的一系列计算、分析和决策,最后主要通过联网道路信号机 改变信号灯运行,实现对区域交通的干预和控制。
[0003]自1963年加拿大多伦多市出现了第一套集中协调式感应控制信号系统W来, 不断有新的区域交通信号控制系统被提出并应用到实际交通管理与控制中,如英国的 TRANSYT、SCOOT系统,日本的STEAM、KAIMT系统,澳大利亚的SCATS系统,加拿大的RTOP系 统,法国的PR0DYN系统,德国的MOTION系统,意大利的SP0T/UT0PIA的系统,西班牙ITACA、 SANC0 系统,美国的RT-TRACS、RE册DS、0PAC、ACTRA、SIG0P、Quicnet/4、UTCS-3GC系统。其 中,英国的TRANSYT系统、SCOOT系统W及澳大利亚的SCATS系统目前在实际中使用最为广 泛,尤其TRANSYT系统更是被世界400多个城市采用。
[0004] 国内对区域交通信号控制系统的研究起步相对较晚。南京城市交通控制系统(简 称NUTC巧是我国自行研发的第一套实时自适应城市交通信号控制系统,由交通部、公安部 和南京市共同完成的,是"走五"国家重点科技攻关项目。深圳市有关部口组织科技力量对 KA?ET系统、SCOOT系统、SCATS系统进行了研究分析,在此基础上自行开发了适应深圳市 交通特征的SMOOTH系统。国内厂商和科研单位也搭建了一些区域交通信号控制系统,如青 岛海信科技股份有限公司研发的HiCon系统,天津大学的TICS系统,上海交大的SUATS系 统,吉林大学的MACS系统,同济大学的TJATCMS系统。
[0005] 区域交通信号控制系统不仅仅只设及控制算法,而且还包括内在的数据通信、处 理等诸多环节W及外在丰富的人机交互,例如包括设备监控、远程控制、流量分析等,甚至 需要与其它智能交通子系统进行交互,是一个复杂、大型的软件系统。然而,已有的区域交 通信号控制系统研究大多只聚焦控制算法,忽略了控制系统本身的软件性能,而且出于商 业等因素考虑,均较为封闭,往往只能接入厂商自家的信号控制设备,影响真正的区域交通 信号控制效果。

【发明内容】

[0006]本发明提供一种基于流计算的交通信号控制系统搭建方法及控制系统,W实现具 有低延迟、分布式、高容错和开放式的交通信号控制系统。
[0007]本发明的第一个方面是提供一种基于流计算的交通信号控制系统搭建方法,包 括:
[000引搭建用于接收、缓存和向分布式流计算系统转发的由数据采集模块发送的交通信 号数据的数据接入模块的软件开发环境并设计数据接入模块;
[0009] 搭建用于接收和处理所述交通信号数据的分布式流计算系统的软件环境;
[0010] 设计分布式流计算系统的拓扑;
[0011] 根据所述拓扑生成并向所述分布式流计算系统的各节点提交JAR包。
[0012] 本发明的第二个方面是提供一种基于流计算的交通信号控制系统,包括:
[0013] 数据采集模块,用于采集并向所述数据接入模块发送交通信号数据;
[0014] 数据接入模块,用于接收并向分布式流计算系统转发所述交通信号数据;
[0015] 分布式流计算系统,用于接收和处理所述交通信号数据。
[0016] 本发明的有益效果为:
[0017] 本发明基于流计算的交通信号控制系统搭建方法所搭建的交通信号控制系统,能 够替代传统的区域交通信号控制系统搭建方法,而且所搭建的系统具有低延迟、分布式、高 容错W及开放式的优良特性,具体的,在实施过程中能够实现在只有两个工作节点的情况 下,最大的延迟不超过2ms,体现出高性能和低延迟的特性;同时,storm框架通过跟踪和应 答机制来能保证每条数据得到处理,即使某个节点突然崩溃,也能将数据重新发送给其它 节点处理,具有很高的容错性。
【附图说明】
[0018] 图1为本发明基于流计算的交通信号控制系统搭建方法实施例一的流程图;
[0019] 图2为本发明基于流计算的交通信号控制系统搭建方法实施例一中分布式流计 算系统的架构图;
[0020] 图3为本发明基于流计算的交通信号控制系统搭建方法实施例一中通过storm UI监测得到的系统运行图;
[0021] 图4为本发明基于流计算的交通信号控制系统搭建方法实施例一中W可视化方 式显示的拓扑中各组件的性能图;
[0022]图5为本发明基于流计算的交通信号控制系统实施例一的结构框图。
【具体实施方式】
[0023] 图1为本发明基于流计算的交通信号控制系统搭建方法实施例一的结构框图,如 图1所示,本发明基于流计算的交通信号控制系统搭建方法包括:
[0024] S101、搭建用于接收、缓存和向分布式流计算系统转发的由数据采集模块发送的 交通信号数据的数据接入模块的软件开发环境并设计数据接入模块;优选的,所述搭建用 于接收、缓存和向分布式流计算系统转发的由数据采集模块发送的交通信号数据的数据接 入模块的软件开发环境并设计数据接入模块包括:
[0025] 搭建用于接收、缓存和向分布式流计算系统转发的由数据采集模块发送的交通信 号数据的数据接入模块的开源的软件开发环境KafkaO. 8并设计数据接入模块;
[0026] S102、搭建用于接收和处理所述交通信号数据的分布式流计算系统的软件环境;
[0027] 优选的,分布式流计算系统基于StormO. 9设计,该版本Storm能够跨平台、例如 Linux、Windows等运行,启动不同的脚本即可切换节点扮演的角色,甚至一台计算机可同时 充当主节点、ZooKe巧er节点和工作节点;
[002引 S103、设计分布式流计算系统的拓扑(Topology);优选的,所述设计分布式流计 算系统的拓扑,包括:
[0029]S1031、根据Storm集群设计分布式流计算系统各节点的分布;所述Storm集群可 W包括主节点、进程协调节点狂ookeeper)和工作节点;
[0030]S1032、根据Storm拓扑设计分布式流计算系统的进程分量;所述Storm拓扑包括 套接字数据源进程分量(SockSpout)、数据预处理进程分量值ataR巧rocessBolt)、控制进 程分量(ControlBolt)和套接字进程分量(Socke1:Bolt);
[003U需要说明的是,Storm是一个具有低延迟、高性能、分布式、易扩展、高容错等优良 特性的流计算框架,如图2所示,Topology是Storm的运算单元,封装了所有的计算任务,表 现为由一组数据源(Spouts)和数据操作炬olts)通过指定连接形成的拓扑结构图;Spout 负责从来数据源读取数据,然后发送给Bolt进行处理,处理结果可进一步发送给其它Bolt 进行处理。通过该种连接,就可流"的方式完成各种复杂的计算,也因此具有较强的 扩展性和灵活性;Storm使用化pie作为"流"的数据模型,每个化pie由一堆Key-Value对 组成,每个值有一个名字化ey),并且每个值(Value)可W是任何类型;Storm集群主要由 一个主节点和一群工作节点组成,并通过ZooKeeper进行协调,主节点运行一个后台程序 (Nimbus),用于管理分布在集群中的节点,分配计算任务和监测故障;工作节点则运行一个 后台程序(Supervisor)用于监听任务分配并基于要求运行工作进程。利用Storm流计算 框架搭建区域交通信号控制系统的主要任务就是通过Topology描述区域交通信号控制的 逻辑;
[003引通过替换不同Topology就可W实现不同的区域交通信号控制,所W采用Storm搭 建的区域交通信号控制系统具有很好的开放性,能够轻易地更换和扩展区域交通信号控制 算法,进而接入和兼容其它厂商的检测器和信号机;区域交通信号控制的Topology提交到 Storm后,Storm集群将一直运行该Topology直到其被废除或被关闭,而在执行中出现错误 时,Storm将重新分配任务,使得系统具有较高的可靠性和容错性;
[0033] W下简要说明分布式流计算系统包含4种进程分量的各自的任务;Socket Spout 负责不断从Kafka读取其从W太网接收的检测数据,设置并发度为10 ;Data Reprocess Bolt ;负责对同一路口的检测数据进行预处理,设置并发度为20 ;Control Bolt;负责根据 检测数据生成控制策略,设置并发度设置为20 ;Socket Bolt;负责通过网络将控制策略发 送给不同类型的信号机执行,设置并发度为20;四种节点依次连接,形成一个最小的区域 交通信号控制系统。
[0034]S104、根据所述拓扑生成并向所述分布式流计算系统的各节点提交JAR包;
[0035] 优选的,借助Eclipse完成拓扑的化va 实现,并在本地模拟Topology的分布式运 行,调试完成后打包成JAR文件W备使用;Storm还默认支持Clojure、Ruby和Python等语 言实现的Topology,其它语言只要实现简单的Storm通信协议也可运行在Storm平台上; 在该一过程中,首先启动作为主节点、ZooKeeper节点和工作节点的计算机,并根据各自的 角色开启相应的后台程序;然后在主节点上利用Storm提供的命令行脚本提交所实现的 Topology的JAR包;Topology的提交过程也是区域交通系统信号控制系统的上线过程,一 旦完成提交,区域交通信号控制系统将根据步骤S02设计的逻辑开始工作;
[0036] 优选的,所述控制系统搭建方法还包括:
[0037] S105、根据所述分布式流计算系统的各节点的任务资源分配比和所述拓扑的各进 程分量的延迟,动态调整所述拓扑的并发度,该里拓扑的并发度具体的可W指Storm集群 的并发度。
[003引 Storm支持在运行过程中动态调整Storm集群和Topology的并发度;例如,在工 作节点的计算资源较紧张的时候,增加工作节点;或者某个Spout或Bolt节点的处理延时 较大时,通过提高其并发度提升数据处理的实时性。整个过程无需停机操作,不会影响在线 的区域交通信号控制;
[0039] 本发明基于流计算的交通信号控制系统搭建方法搭建的交通信号控制系统的基 本原理是在利用车辆检测器感知区域交通状况的基础上,经过区域交通信号控制算法的一 系列计算、分析和决策,最后主要通过联网道路信号机改变信号灯运行,实现对区域交通的 干预和控制;为了测试根据本发明所搭建的区域交通信号控制系统,我们利用软件模拟了 100个路口和5种不同的信号机,每个路口安装其中一种信号机,每5分钟发送一次交通检 测数据;分布式流计算系统则由S台普通计算机组成,主节点和ZooKeeper公用一台计算 机,CPU的型号均为Intel (R) Core (TM)2Quad CPU, Storm集群的计算机配置如表1所示;
[0040]
[0041] 表1
[0042] 系统运行后,可通过StormUI监测系统的运行,如图3所示,可W观察到工作节点 的数量、Topology的组成及其各自的并发度等。该检测平台还能够通过可视化的方式显示 Topology中各组件的性能,如图4所示。在Topology的可视化图中,Spout节点用藍色表 示,Bolt节点则用由绿到红的颜色表示,颜色越深表示计算资源越紧张,其上的数字表示对 应的延时。数据流用节点之间的有向连线表示,连线的宽度正比于及节点间的数据量,连线 上的数字代表发送的数据包在整个系统中的比例W及发送失败的比例。
[0043] 本发明基于流计算的交通信号控制系统搭建方法实施例一所搭建的交通信号控 制系统,能够替代传统的区域交通信号控制系统搭建方法,而且所搭建的系统具有低延迟、 分布式、高容错W及开放式的优良特性,具体的,在实施过程中能够实现在只有两个工作节 点的情况下,最大的延迟不超过2ms,体现出高性能和低延迟的特性;同时,Storm框架通过 跟踪和应答机制来能保证每条数据得到处理,即使某个节点突然崩溃,也能将数据重新发 送给其它节点处理,具有很高的容错性。
[0044] 图5为本发明基于流计算的交通信号控制系统实施例一的结构框图,如图5所示, 本发明基于流计算的交通信号控制系统,包括:
[0045] 数据采集模块21,用于采集并向所述数据接入模块发送交通信号数据;
[0046]数据接入模块22,用于接收并向分布式流计算系统转发所述交通信号数据;
[0047] 分布式流计算系统23,用于接收和处理所述交通信号数据。
[0048] 优选的,交通信号控制系统还包括:
[0049] 并发度动态设置模块24,用于根据所述分布式流计算系统的各节点的任务资源分 配比和所述拓扑的各进程分量的延迟,动态调整所述拓扑的并发度。
[0050] 优选的,所述数据采集模块21负责从各种不同的数据源节点上采集数据,例如 通过网络从现场的道路信号机、车辆检测器获取检测数据,或者与第=方系统,例如出租 车、公交车监控系统,电子警察、卡口系统等进行实时交互获取相关数据,可W采用开源的 Flumel. 5搭建;优选的,所述数据接入模块22为基于软件开发环境Kafka 0. 8进行设计得 至IJ,不同类型的数据赋予不同的Topic,该是因为,在数据接入部分,由于采集数据的速度和 数据处理的速度不一定同步,为此该里添加一个消息中间件作为缓冲;选用syslogUDP和 syslogTCP作为数据源接收信号机上传的检测数据。
[0化1] 优选的,完成核屯、的区域交通信号控制功能的所述分布式流计算系统23各节点 的分布根据Storm集群进行设计得到,所述分布式流计算系统的进程分量根据Storm拓扑 进行设计得到;优选的,所述Storm集群包括主节点、进程协调节点狂ookeeper)和工作节 点;所述Storm拓扑包括套接字数据源进程分量(SockSpout)、数据预处理进程分量值ata IteprocessBolt)、控制进程分量(ControlBolt)和套接字进程分量(SocketBolt)。 [0052] 最后应说明的是;W上各实施例仅用W说明本发明的技术方案,而非对其限制; 尽管参照前述各实施例对本发明进行了详细的说明,本领域普通技术人员应当理解;其依 然可W对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进 行等同替换;而该些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术 方案的范围。
【主权项】
1. 一种基于流计算的交通信号控制系统搭建方法,其特征在于,包括: 搭建用于接收、缓存和向分布式流计算系统转发的由数据采集模块发送的交通信号数 据的数据接入模块的软件开发环境并设计数据接入模块; 搭建用于接收和处理所述交通信号数据的分布式流计算系统的软件环境; 设计分布式流计算系统的拓扑; 根据所述拓扑生成并向所述分布式流计算系统的各节点提交JAR包。2. 根据权利要求1所述的基于流计算的交通信号控制系统搭建方法,其特征在于,所 述设计分布式流计算系统的拓扑,包括: 根据Storm集群设计分布式流计算系统各节点的分布; 根据Storm拓扑设计分布式流计算系统的进程分量。3. 根据权利要求2所述的基于流计算的交通信号控制系统搭建方法,其特征在于,所 述Storm集群包括主节点、进程协调节点Zookeeper和工作节点;所述Storm拓扑包括数据 源进程分量、数据预处理进程分量、控制进程分量和套接字进程分量。4. 根据权利要求1所述的基于流计算的交通信号控制系统搭建方法,其特征在于,还 包括: 根据所述分布式流计算系统的各节点的任务资源分配比和所述拓扑的各进程分量的 延迟,动态调整所述拓扑的并发度。5. 根据权利要求1所述的基于流计算的交通信号控制系统搭建方法,其特征在于,所 述搭建用于接收、缓存和向分布式流计算系统转发的由数据采集模块发送的交通信号数据 的数据接入模块的软件开发环境并设计数据接入模块包括: 搭建用于接收、缓存和向分布式流计算系统转发的由数据采集模块发送的交通信号数 据的数据接入模块的软件开发环境Kafka并设计数据接入模块。6. -种基于流计算的交通信号控制系统,其特征在于,包括: 数据采集模块,用于采集并向所述数据接入模块发送交通信号数据; 数据接入模块,用于接收并向分布式流计算系统转发所述交通信号数据; 分布式流计算系统,用于接收和处理所述交通信号数据。7. 根据权利要求6所述的基于流计算的交通信号控制系统,其特征在于,所述分布式 流计算系统各节点的分布根据Storm集群进行设计得到;所述分布式流计算系统的进程分 量根据Storm拓扑进行设计得到。8. 根据权利要求7所述的基于流计算的交通信号控制系统,其特征在于,所述Storm集 群包括主节点、进程协调节点Zookeeper和工作节点;所述Storm拓扑包括数据源进程分 量、数据预处理进程分量、控制进程分量和套接字进程分量。9. 根据权利要求6所述的基于流计算的交通信号控制系统,其特征在于,还包括: 并发度动态设置模块,用于根据所述分布式流计算系统的各节点的任务资源分配比和 所述拓扑的各进程分量的延迟,动态调整所述拓扑的并发度。10. 根据权利要求6所述的基于流计算的交通信号控制系统,其特征在于,所述数据接 入模块为基于软件开发环境Kafka进行设计得到。
【专利摘要】本发明提供一种基于流计算的交通信号控制系统搭建方法及控制系统,所述方法包括:搭建用于接收、缓存和向分布式流计算系统转发的由数据采集模块发送的交通信号数据的数据接入模块的软件开发环境并设计数据接入模块;搭建用于接收和处理所述交通信号数据的分布式流计算系统的软件环境;设计分布式流计算系统的拓扑;根据所述拓扑生成并向所述分布式流计算系统的各节点提交JAR包。本发明所述方法能够实现具有低延迟、分布式、高容错和开放式等优点的交通信号控制系统。
【IPC分类】G08G1/07
【公开号】CN104882007
【申请号】CN201510256080
【发明人】王飞跃, 陈松航, 李镇江, 朱凤华, 熊刚, 吕宜生, 赵红霞
【申请人】中国科学院自动化研究所
【公开日】2015年9月2日
【申请日】2015年5月19日
转载请注明原文地址:https://www.famiwei.com/read-8137542.html

最新回复(0)