基于流計算的交通信號控制系統(tǒng)搭建方法及控制系統(tǒng)的制作方法
【技術領域】
[0001] 本發(fā)明屬于分布式控制領域,尤其設及基于流計算的交通信號控制系統(tǒng)搭建方法 及控制系統(tǒng)。
【背景技術】
[0002] 城市交通系統(tǒng)是一個天然的復雜開放巨系統(tǒng),涌現(xiàn)出的交通流具有不確定性、時 變性、遲滯性等諸多復雜特性,使交通系統(tǒng)控制研究面臨著巨大挑戰(zhàn)。作為緩解城市交通擁 堵的重要發(fā)展方向之一,區(qū)域交通信號控制旨在利用車輛檢測器感知區(qū)域交通狀況的基礎 上,經(jīng)過區(qū)域交通信號控制算法的一系列計算、分析和決策,最后主要通過聯(lián)網(wǎng)道路信號機 改變信號燈運行,實現(xiàn)對區(qū)域交通的干預和控制。
[0003]自1963年加拿大多倫多市出現(xiàn)了第一套集中協(xié)調(diào)式感應控制信號系統(tǒng)W來, 不斷有新的區(qū)域交通信號控制系統(tǒng)被提出并應用到實際交通管理與控制中,如英國的 TRANSYT、SCOOT系統(tǒng),日本的STEAM、KAIMT系統(tǒng),澳大利亞的SCATS系統(tǒng),加拿大的RTOP系 統(tǒng),法國的PR0DYN系統(tǒng),德國的MOTION系統(tǒng),意大利的SP0T/UT0PIA的系統(tǒng),西班牙ITACA、 SANC0 系統(tǒng),美國的RT-TRACS、RE冊DS、0PAC、ACTRA、SIG0P、Quicnet/4、UTCS-3GC系統(tǒng)。其 中,英國的TRANSYT系統(tǒng)、SCOOT系統(tǒng)W及澳大利亞的SCATS系統(tǒng)目前在實際中使用最為廣 泛,尤其TRANSYT系統(tǒng)更是被世界400多個城市采用。
[0004] 國內(nèi)對區(qū)域交通信號控制系統(tǒng)的研究起步相對較晚。南京城市交通控制系統(tǒng)(簡 稱NUTC巧是我國自行研發(fā)的第一套實時自適應城市交通信號控制系統(tǒng),由交通部、公安部 和南京市共同完成的,是"走五"國家重點科技攻關項目。深圳市有關部口組織科技力量對 KA?ET系統(tǒng)、SCOOT系統(tǒng)、SCATS系統(tǒng)進行了研究分析,在此基礎上自行開發(fā)了適應深圳市 交通特征的SMOOTH系統(tǒng)。國內(nèi)廠商和科研單位也搭建了一些區(qū)域交通信號控制系統(tǒng),如青 島海信科技股份有限公司研發(fā)的HiCon系統(tǒng),天津大學的TICS系統(tǒng),上海交大的SUATS系 統(tǒng),吉林大學的MACS系統(tǒng),同濟大學的TJATCMS系統(tǒng)。
[0005] 區(qū)域交通信號控制系統(tǒng)不僅僅只設及控制算法,而且還包括內(nèi)在的數(shù)據(jù)通信、處 理等諸多環(huán)節(jié)W及外在豐富的人機交互,例如包括設備監(jiān)控、遠程控制、流量分析等,甚至 需要與其它智能交通子系統(tǒng)進行交互,是一個復雜、大型的軟件系統(tǒng)。然而,已有的區(qū)域交 通信號控制系統(tǒng)研究大多只聚焦控制算法,忽略了控制系統(tǒng)本身的軟件性能,而且出于商 業(yè)等因素考慮,均較為封閉,往往只能接入廠商自家的信號控制設備,影響真正的區(qū)域交通 信號控制效果。
【發(fā)明內(nèi)容】
[0006]本發(fā)明提供一種基于流計算的交通信號控制系統(tǒng)搭建方法及控制系統(tǒng),W實現(xiàn)具 有低延遲、分布式、高容錯和開放式的交通信號控制系統(tǒng)。
[0007]本發(fā)明的第一個方面是提供一種基于流計算的交通信號控制系統(tǒng)搭建方法,包 括:
[000引搭建用于接收、緩存和向分布式流計算系統(tǒng)轉發(fā)的由數(shù)據(jù)采集模塊發(fā)送的交通信 號數(shù)據(jù)的數(shù)據(jù)接入模塊的軟件開發(fā)環(huán)境并設計數(shù)據(jù)接入模塊;
[0009] 搭建用于接收和處理所述交通信號數(shù)據(jù)的分布式流計算系統(tǒng)的軟件環(huán)境;
[0010] 設計分布式流計算系統(tǒng)的拓撲;
[0011] 根據(jù)所述拓撲生成并向所述分布式流計算系統(tǒng)的各節(jié)點提交JAR包。
[0012] 本發(fā)明的第二個方面是提供一種基于流計算的交通信號控制系統(tǒng),包括:
[0013] 數(shù)據(jù)采集模塊,用于采集并向所述數(shù)據(jù)接入模塊發(fā)送交通信號數(shù)據(jù);
[0014] 數(shù)據(jù)接入模塊,用于接收并向分布式流計算系統(tǒng)轉發(fā)所述交通信號數(shù)據(jù);
[0015] 分布式流計算系統(tǒng),用于接收和處理所述交通信號數(shù)據(jù)。
[0016] 本發(fā)明的有益效果為:
[0017] 本發(fā)明基于流計算的交通信號控制系統(tǒng)搭建方法所搭建的交通信號控制系統(tǒng),能 夠替代傳統(tǒng)的區(qū)域交通信號控制系統(tǒng)搭建方法,而且所搭建的系統(tǒng)具有低延遲、分布式、高 容錯W及開放式的優(yōu)良特性,具體的,在實施過程中能夠實現(xiàn)在只有兩個工作節(jié)點的情況 下,最大的延遲不超過2ms,體現(xiàn)出高性能和低延遲的特性;同時,storm框架通過跟蹤和應 答機制來能保證每條數(shù)據(jù)得到處理,即使某個節(jié)點突然崩潰,也能將數(shù)據(jù)重新發(fā)送給其它 節(jié)點處理,具有很高的容錯性。
【附圖說明】
[0018] 圖1為本發(fā)明基于流計算的交通信號控制系統(tǒng)搭建方法實施例一的流程圖;
[0019] 圖2為本發(fā)明基于流計算的交通信號控制系統(tǒng)搭建方法實施例一中分布式流計 算系統(tǒng)的架構圖;
[0020] 圖3為本發(fā)明基于流計算的交通信號控制系統(tǒng)搭建方法實施例一中通過storm UI監(jiān)測得到的系統(tǒng)運行圖;
[0021] 圖4為本發(fā)明基于流計算的交通信號控制系統(tǒng)搭建方法實施例一中W可視化方 式顯示的拓撲中各組件的性能圖;
[0022]圖5為本發(fā)明基于流計算的交通信號控制系統(tǒng)實施例一的結構框圖。
【具體實施方式】
[0023] 圖1為本發(fā)明基于流計算的交通信號控制系統(tǒng)搭建方法實施例一的結構框圖,如 圖1所示,本發(fā)明基于流計算的交通信號控制系統(tǒng)搭建方法包括:
[0024] S101、搭建用于接收、緩存和向分布式流計算系統(tǒng)轉發(fā)的由數(shù)據(jù)采集模塊發(fā)送的 交通信號數(shù)據(jù)的數(shù)據(jù)接入模塊的軟件開發(fā)環(huán)境并設計數(shù)據(jù)接入模塊;優(yōu)選的,所述搭建用 于接收、緩存和向分布式流計算系統(tǒng)轉發(fā)的由數(shù)據(jù)采集模塊發(fā)送的交通信號數(shù)據(jù)的數(shù)據(jù)接 入模塊的軟件開發(fā)環(huán)境并設計數(shù)據(jù)接入模塊包括:
[0025] 搭建用于接收、緩存和向分布式流計算系統(tǒng)轉發(fā)的由數(shù)據(jù)采集模塊發(fā)送的交通信 號數(shù)據(jù)的數(shù)據(jù)接入模塊的開源的軟件開發(fā)環(huán)境KafkaO. 8并設計數(shù)據(jù)接入模塊;
[0026] S102、搭建用于接收和處理所述交通信號數(shù)據(jù)的分布式流計算系統(tǒng)的軟件環(huán)境;
[0027] 優(yōu)選的,分布式流計算系統(tǒng)基于StormO. 9設計,該版本Storm能夠跨平臺、例如 Linux、Windows等運行,啟動不同的腳本即可切換節(jié)點扮演的角色,甚至一臺計算機可同時 充當主節(jié)點、ZooKe巧er節(jié)點和工作節(jié)點;
[002引 S103、設計分布式流計算系統(tǒng)的拓撲(Topology);優(yōu)選的,所述設計分布式流計 算系統(tǒng)的拓撲,包括:
[0029]S1031、根據(jù)Storm集群設計分布式流計算系統(tǒng)各節(jié)點的分布;所述Storm集群可 W包括主節(jié)點、進程協(xié)調(diào)節(jié)點狂ookeeper)和工作節(jié)點;
[0030]S1032、根據(jù)Storm拓撲設計分布式流計算系統(tǒng)的進程分量;所述Storm拓撲包括 套接字數(shù)據(jù)源進程分量(SockSpout)、數(shù)據(jù)預處理進程分量值ataR巧rocessBolt)、控制進 程分量(ControlBolt)和套接字進程分量(Socke1:Bolt);
[003U需要說明的是,Storm是一個具有低延遲、高性能、分布式、易擴展、高容錯等優(yōu)良 特性的流計算框架,如圖2所示,Topology是Storm的運算單元,封裝了所有的計算任務,表 現(xiàn)為由一組數(shù)據(jù)源(Spouts)和數(shù)據(jù)操作炬olts)通過指定連接形成的拓撲結構圖;Spout 負責從來數(shù)據(jù)源讀取數(shù)據(jù),然后發(fā)送給Bolt進行處理,處理結果可進一步發(fā)送給其它Bolt 進行處理。通過該種連接,就可流"的方式完成各種復雜的計算,也因此具有較強的 擴展性和靈活性;Storm使用化pie作為"流"的數(shù)據(jù)模型,每個化pie由一堆Key-Value對 組成,每個值有一個名字化ey),并且每個值(Value)可W是任何類型;Storm集群主要由 一個主節(jié)點和一群工作節(jié)點組成,并通過ZooKeeper進行協(xié)調(diào),主節(jié)點運行一個后臺程序 (Nimbus),用于管理分布在集群中的節(jié)點,分配計算任務和監(jiān)測故障;工作節(jié)點則運行一個 后臺程序(Supervisor)用于監(jiān)聽任務分配并基于要求運行工作進程。利用Storm流計算 框架搭建區(qū)域交通信號控制系統(tǒng)的主要任務就是通過Topology描述區(qū)域交通信號控制的 邏輯;
[003引通過替換不同Topology就可W實現(xiàn)不同的區(qū)域交通信號控制,所W采用Storm搭 建的區(qū)域交通信號控制系統(tǒng)具有很好的開放性,能夠輕易地更換和擴展區(qū)域交通信號控制 算法,進而接入和兼容其它廠商的檢測器和信號機;區(qū)域交通信號控制的Topology提交到 Storm后,Storm集群將一直運行該Topology直到其被廢除或被關閉,而在執(zhí)行中出現(xiàn)錯誤 時,Storm將重新分配任務,使得系統(tǒng)具有較高的可靠性和容錯性;
[0033] W下簡要說明分布式流計算系統(tǒng)包含4種進程分量的各自的任務;Socket Spout 負責不斷從Kafka讀取其從W太網(wǎng)接收的檢測數(shù)據(jù),設置并發(fā)度為10 ;Data Reprocess Bolt ;負責對同一路口的檢測數(shù)據(jù)進行預處理,設置并發(fā)度為20 ;Control Bolt;負責根據(jù) 檢測數(shù)據(jù)生成控制策略,設置并發(fā)度設置為20 ;Socket Bolt;負責通過網(wǎng)絡將控制策略發(fā) 送給不同類型的信號機執(zhí)行,設置并發(fā)度為20;四種節(jié)點依次連接,形成一個最小的區(qū)域 交通信號控制系統(tǒng)。
[0034]S104、根據(jù)所述拓撲生成并向所述分布式流計算系統(tǒng)的各節(jié)點提交JAR包;
[0035] 優(yōu)選的,借助Eclipse完成拓撲的化va