實現(xiàn),并在本地模擬Topology的分布式運 行,調(diào)試完成后打包成JAR文件W備使用;Storm還默認支持Clojure、Ruby和Python等語 言實現(xiàn)的Topology,其它語言只要實現(xiàn)簡單的Storm通信協(xié)議也可運行在Storm平臺上; 在該一過程中,首先啟動作為主節(jié)點、ZooKeeper節(jié)點和工作節(jié)點的計算機,并根據(jù)各自的 角色開啟相應的后臺程序;然后在主節(jié)點上利用Storm提供的命令行腳本提交所實現(xiàn)的 Topology的JAR包;Topology的提交過程也是區(qū)域交通系統(tǒng)信號控制系統(tǒng)的上線過程,一 旦完成提交,區(qū)域交通信號控制系統(tǒng)將根據(jù)步驟S02設計的邏輯開始工作;
[0036] 優(yōu)選的,所述控制系統(tǒng)搭建方法還包括:
[0037] S105、根據(jù)所述分布式流計算系統(tǒng)的各節(jié)點的任務資源分配比和所述拓撲的各進 程分量的延遲,動態(tài)調(diào)整所述拓撲的并發(fā)度,該里拓撲的并發(fā)度具體的可W指Storm集群 的并發(fā)度。
[003引 Storm支持在運行過程中動態(tài)調(diào)整Storm集群和Topology的并發(fā)度;例如,在工 作節(jié)點的計算資源較緊張的時候,增加工作節(jié)點;或者某個Spout或Bolt節(jié)點的處理延時 較大時,通過提高其并發(fā)度提升數(shù)據(jù)處理的實時性。整個過程無需停機操作,不會影響在線 的區(qū)域交通信號控制;
[0039] 本發(fā)明基于流計算的交通信號控制系統(tǒng)搭建方法搭建的交通信號控制系統(tǒng)的基 本原理是在利用車輛檢測器感知區(qū)域交通狀況的基礎上,經(jīng)過區(qū)域交通信號控制算法的一 系列計算、分析和決策,最后主要通過聯(lián)網(wǎng)道路信號機改變信號燈運行,實現(xiàn)對區(qū)域交通的 干預和控制;為了測試根據(jù)本發(fā)明所搭建的區(qū)域交通信號控制系統(tǒng),我們利用軟件模擬了 100個路口和5種不同的信號機,每個路口安裝其中一種信號機,每5分鐘發(fā)送一次交通檢 測數(shù)據(jù);分布式流計算系統(tǒng)則由S臺普通計算機組成,主節(jié)點和ZooKeeper公用一臺計算 機,CPU的型號均為Intel (R) Core (TM)2Quad CPU, Storm集群的計算機配置如表1所示;
[0040]
[0041] 表1
[0042] 系統(tǒng)運行后,可通過StormUI監(jiān)測系統(tǒng)的運行,如圖3所示,可W觀察到工作節(jié)點 的數(shù)量、Topology的組成及其各自的并發(fā)度等。該檢測平臺還能夠通過可視化的方式顯示 Topology中各組件的性能,如圖4所示。在Topology的可視化圖中,Spout節(jié)點用藍色表 示,Bolt節(jié)點則用由綠到紅的顏色表示,顏色越深表示計算資源越緊張,其上的數(shù)字表示對 應的延時。數(shù)據(jù)流用節(jié)點之間的有向連線表示,連線的寬度正比于及節(jié)點間的數(shù)據(jù)量,連線 上的數(shù)字代表發(fā)送的數(shù)據(jù)包在整個系統(tǒng)中的比例W及發(fā)送失敗的比例。
[0043] 本發(fā)明基于流計算的交通信號控制系統(tǒng)搭建方法實施例一所搭建的交通信號控 制系統(tǒng),能夠替代傳統(tǒng)的區(qū)域交通信號控制系統(tǒng)搭建方法,而且所搭建的系統(tǒng)具有低延遲、 分布式、高容錯W及開放式的優(yōu)良特性,具體的,在實施過程中能夠?qū)崿F(xiàn)在只有兩個工作節(jié) 點的情況下,最大的延遲不超過2ms,體現(xiàn)出高性能和低延遲的特性;同時,Storm框架通過 跟蹤和應答機制來能保證每條數(shù)據(jù)得到處理,即使某個節(jié)點突然崩潰,也能將數(shù)據(jù)重新發(fā) 送給其它節(jié)點處理,具有很高的容錯性。
[0044] 圖5為本發(fā)明基于流計算的交通信號控制系統(tǒng)實施例一的結構框圖,如圖5所示, 本發(fā)明基于流計算的交通信號控制系統(tǒng),包括:
[0045] 數(shù)據(jù)采集模塊21,用于采集并向所述數(shù)據(jù)接入模塊發(fā)送交通信號數(shù)據(jù);
[0046]數(shù)據(jù)接入模塊22,用于接收并向分布式流計算系統(tǒng)轉(zhuǎn)發(fā)所述交通信號數(shù)據(jù);
[0047] 分布式流計算系統(tǒng)23,用于接收和處理所述交通信號數(shù)據(jù)。
[0048] 優(yōu)選的,交通信號控制系統(tǒng)還包括:
[0049] 并發(fā)度動態(tài)設置模塊24,用于根據(jù)所述分布式流計算系統(tǒng)的各節(jié)點的任務資源分 配比和所述拓撲的各進程分量的延遲,動態(tài)調(diào)整所述拓撲的并發(fā)度。
[0050] 優(yōu)選的,所述數(shù)據(jù)采集模塊21負責從各種不同的數(shù)據(jù)源節(jié)點上采集數(shù)據(jù),例如 通過網(wǎng)絡從現(xiàn)場的道路信號機、車輛檢測器獲取檢測數(shù)據(jù),或者與第=方系統(tǒng),例如出租 車、公交車監(jiān)控系統(tǒng),電子警察、卡口系統(tǒng)等進行實時交互獲取相關數(shù)據(jù),可W采用開源的 Flumel. 5搭建;優(yōu)選的,所述數(shù)據(jù)接入模塊22為基于軟件開發(fā)環(huán)境Kafka 0. 8進行設計得 至IJ,不同類型的數(shù)據(jù)賦予不同的Topic,該是因為,在數(shù)據(jù)接入部分,由于采集數(shù)據(jù)的速度和 數(shù)據(jù)處理的速度不一定同步,為此該里添加一個消息中間件作為緩沖;選用syslogUDP和 syslogTCP作為數(shù)據(jù)源接收信號機上傳的檢測數(shù)據(jù)。
[0化1] 優(yōu)選的,完成核屯、的區(qū)域交通信號控制功能的所述分布式流計算系統(tǒng)23各節(jié)點 的分布根據(jù)Storm集群進行設計得到,所述分布式流計算系統(tǒng)的進程分量根據(jù)Storm拓撲 進行設計得到;優(yōu)選的,所述Storm集群包括主節(jié)點、進程協(xié)調(diào)節(jié)點狂ookeeper)和工作節(jié) 點;所述Storm拓撲包括套接字數(shù)據(jù)源進程分量(SockSpout)、數(shù)據(jù)預處理進程分量值ata IteprocessBolt)、控制進程分量(ControlBolt)和套接字進程分量(SocketBolt)。 [0052] 最后應說明的是;W上各實施例僅用W說明本發(fā)明的技術方案,而非對其限制; 盡管參照前述各實施例對本發(fā)明進行了詳細的說明,本領域普通技術人員應當理解;其依 然可W對前述各實施例所記載的技術方案進行修改,或者對其中部分或者全部技術特征進 行等同替換;而該些修改或者替換,并不使相應技術方案的本質(zhì)脫離本發(fā)明各實施例技術 方案的范圍。
【主權項】
1. 一種基于流計算的交通信號控制系統(tǒng)搭建方法,其特征在于,包括: 搭建用于接收、緩存和向分布式流計算系統(tǒng)轉(zhuǎn)發(fā)的由數(shù)據(jù)采集模塊發(fā)送的交通信號數(shù) 據(jù)的數(shù)據(jù)接入模塊的軟件開發(fā)環(huán)境并設計數(shù)據(jù)接入模塊; 搭建用于接收和處理所述交通信號數(shù)據(jù)的分布式流計算系統(tǒng)的軟件環(huán)境; 設計分布式流計算系統(tǒng)的拓撲; 根據(jù)所述拓撲生成并向所述分布式流計算系統(tǒng)的各節(jié)點提交JAR包。2. 根據(jù)權利要求1所述的基于流計算的交通信號控制系統(tǒng)搭建方法,其特征在于,所 述設計分布式流計算系統(tǒng)的拓撲,包括: 根據(jù)Storm集群設計分布式流計算系統(tǒng)各節(jié)點的分布; 根據(jù)Storm拓撲設計分布式流計算系統(tǒng)的進程分量。3. 根據(jù)權利要求2所述的基于流計算的交通信號控制系統(tǒng)搭建方法,其特征在于,所 述Storm集群包括主節(jié)點、進程協(xié)調(diào)節(jié)點Zookeeper和工作節(jié)點;所述Storm拓撲包括數(shù)據(jù) 源進程分量、數(shù)據(jù)預處理進程分量、控制進程分量和套接字進程分量。4. 根據(jù)權利要求1所述的基于流計算的交通信號控制系統(tǒng)搭建方法,其特征在于,還 包括: 根據(jù)所述分布式流計算系統(tǒng)的各節(jié)點的任務資源分配比和所述拓撲的各進程分量的 延遲,動態(tài)調(diào)整所述拓撲的并發(fā)度。5. 根據(jù)權利要求1所述的基于流計算的交通信號控制系統(tǒng)搭建方法,其特征在于,所 述搭建用于接收、緩存和向分布式流計算系統(tǒng)轉(zhuǎn)發(fā)的由數(shù)據(jù)采集模塊發(fā)送的交通信號數(shù)據(jù) 的數(shù)據(jù)接入模塊的軟件開發(fā)環(huán)境并設計數(shù)據(jù)接入模塊包括: 搭建用于接收、緩存和向分布式流計算系統(tǒng)轉(zhuǎn)發(fā)的由數(shù)據(jù)采集模塊發(fā)送的交通信號數(shù) 據(jù)的數(shù)據(jù)接入模塊的軟件開發(fā)環(huán)境Kafka并設計數(shù)據(jù)接入模塊。6. -種基于流計算的交通信號控制系統(tǒng),其特征在于,包括: 數(shù)據(jù)采集模塊,用于采集并向所述數(shù)據(jù)接入模塊發(fā)送交通信號數(shù)據(jù); 數(shù)據(jù)接入模塊,用于接收并向分布式流計算系統(tǒng)轉(zhuǎn)發(fā)所述交通信號數(shù)據(jù); 分布式流計算系統(tǒng),用于接收和處理所述交通信號數(shù)據(jù)。7. 根據(jù)權利要求6所述的基于流計算的交通信號控制系統(tǒng),其特征在于,所述分布式 流計算系統(tǒng)各節(jié)點的分布根據(jù)Storm集群進行設計得到;所述分布式流計算系統(tǒng)的進程分 量根據(jù)Storm拓撲進行設計得到。8. 根據(jù)權利要求7所述的基于流計算的交通信號控制系統(tǒng),其特征在于,所述Storm集 群包括主節(jié)點、進程協(xié)調(diào)節(jié)點Zookeeper和工作節(jié)點;所述Storm拓撲包括數(shù)據(jù)源進程分 量、數(shù)據(jù)預處理進程分量、控制進程分量和套接字進程分量。9. 根據(jù)權利要求6所述的基于流計算的交通信號控制系統(tǒng),其特征在于,還包括: 并發(fā)度動態(tài)設置模塊,用于根據(jù)所述分布式流計算系統(tǒng)的各節(jié)點的任務資源分配比和 所述拓撲的各進程分量的延遲,動態(tài)調(diào)整所述拓撲的并發(fā)度。10. 根據(jù)權利要求6所述的基于流計算的交通信號控制系統(tǒng),其特征在于,所述數(shù)據(jù)接 入模塊為基于軟件開發(fā)環(huán)境Kafka進行設計得到。
【專利摘要】本發(fā)明提供一種基于流計算的交通信號控制系統(tǒng)搭建方法及控制系統(tǒng),所述方法包括:搭建用于接收、緩存和向分布式流計算系統(tǒng)轉(zhuǎn)發(fā)的由數(shù)據(jù)采集模塊發(fā)送的交通信號數(shù)據(jù)的數(shù)據(jù)接入模塊的軟件開發(fā)環(huán)境并設計數(shù)據(jù)接入模塊;搭建用于接收和處理所述交通信號數(shù)據(jù)的分布式流計算系統(tǒng)的軟件環(huán)境;設計分布式流計算系統(tǒng)的拓撲;根據(jù)所述拓撲生成并向所述分布式流計算系統(tǒng)的各節(jié)點提交JAR包。本發(fā)明所述方法能夠?qū)崿F(xiàn)具有低延遲、分布式、高容錯和開放式等優(yōu)點的交通信號控制系統(tǒng)。
【IPC分類】G08G1/07
【公開號】CN104882007
【申請?zhí)枴緾N201510256080
【發(fā)明人】王飛躍, 陳松航, 李鎮(zhèn)江, 朱鳳華, 熊剛, 呂宜生, 趙紅霞
【申請人】中國科學院自動化研究所
【公開日】2015年9月2日
【申請日】2015年5月19日