劉 旋,廖明潮,樊多妮,劉 磊,楊 偵
(1.武漢工業(yè)學院數(shù)學與計算機學院,湖北武漢430023;2.武漢市農(nóng)村技術(shù)開發(fā)中心,湖北武漢430023)
智能交通系統(tǒng)ITS將計算機技術(shù)、通信技術(shù)和電子控制技術(shù)與車輛、道路、使用者以及管理手段聯(lián)系起來,不僅能夠有效解決交通擁擠問題,而且對于環(huán)境保護、節(jié)約能源都有顯著的效果。出租車調(diào)度系統(tǒng)是ITS的重要組成部分,實現(xiàn)車輛的監(jiān)控、管理、調(diào)度和信息服務(wù),為智能交通系統(tǒng)的實現(xiàn)奠定了基礎(chǔ)[1]。
國外對車輛調(diào)度系統(tǒng)研究得很早,20世紀90年代中后期就已經(jīng)有成熟的產(chǎn)品投放到市場。美國模塊公司的DISPATCH是目前流行的出租車調(diào)度系統(tǒng);新加坡早在1995年底就有了較完備的GPS智能化調(diào)度管理系統(tǒng)[2]。而我國從20世紀90年代初期才開始出租車調(diào)度監(jiān)控系統(tǒng)的研究。1996年徐益民、常滿樓提出出租車調(diào)度系統(tǒng)要綜合運用通信技術(shù)、計算機網(wǎng)絡(luò)、數(shù)據(jù)庫管理、計算機控制、GPS、GIS等多種高新技術(shù)[3];1999年曹春生提出了基于GPS、GIS、GSM 的智能化出租車調(diào)度系統(tǒng)[4];之后的十余年時間里,又有許多專家學者將集群、GPRS、WIFI、合乘模式等應(yīng)用到出租車調(diào)度系統(tǒng)中,推動了其快速的發(fā)展。
但是在國內(nèi)外,無論是已經(jīng)運營的系統(tǒng),還是只限于理論上提出還未部署的系統(tǒng),無一例外的都是面向應(yīng)用程序的,應(yīng)用程序用來處理應(yīng)用業(yè)務(wù),這就造成了應(yīng)用程序和應(yīng)用業(yè)務(wù)是一一綁定的,系統(tǒng)無法對業(yè)務(wù)需求的變化做出快速的反應(yīng)。各子系統(tǒng)模塊之間、編程技術(shù)和平臺之間存在著高度的耦合,導致了修改某一部分而引起的牽一發(fā)而動全身的尷尬局面。而SOA憑借其松耦合的特性,使得系統(tǒng)可以按照模塊化的方式來添加新服務(wù)或更新現(xiàn)有服務(wù),以解決新的業(yè)務(wù)需求。系統(tǒng)開發(fā)的趨勢已不再是面向應(yīng)用程序的,而應(yīng)該是面向服務(wù)的。
出租車智能調(diào)度系統(tǒng)主要是利用GPS、GIS以及無線通訊技術(shù)實現(xiàn)對車輛的監(jiān)控調(diào)度,并通過利用GIS中的相關(guān)信息,使車輛以最小的代價(時間、距離或其他)到達目的地,同時也可以為用戶提供其它信息服務(wù)[5]。
出租車智能調(diào)度系統(tǒng)的基本運作模式:乘客借助通信網(wǎng)絡(luò)(如打電話、發(fā)短信等方式)向調(diào)度中心訂車,調(diào)度人員則將乘客的訂車需求輸入為一次派車任務(wù)并提交給調(diào)度中心,調(diào)度中心根據(jù)用戶的用車請求,并且通過定位系統(tǒng)查找出租車的位置,根據(jù)一定的調(diào)度算法向符合條件的出租車發(fā)送調(diào)度指令,司機使用車載系統(tǒng)收到指令后可以進行搶答,調(diào)度中心會將最終結(jié)果通知司機[6]。系統(tǒng)一般有調(diào)度中心、通信網(wǎng)絡(luò)、車載系統(tǒng)和定位系統(tǒng)四個部分組成,如圖1所示。
圖1 出租車調(diào)度系統(tǒng)的組成
其中,調(diào)度中心主要根據(jù)通信網(wǎng)絡(luò)和定位系統(tǒng)反饋回來的信息對出租車進行有效的調(diào)度;通信網(wǎng)絡(luò)主要是乘客通過根據(jù)各種終端設(shè)備(如手機、計算機、PDA、乘客專用終端等)向調(diào)度中心訂車;定位系統(tǒng)用來實時動態(tài)地確定車輛的具體位置、行駛速度和行駛方向等;車載系統(tǒng)是司機和調(diào)度中心聯(lián)系的平臺。
一般說來服務(wù)具有以下9個特點:可重用性、服務(wù)合同、松耦合、隱藏具體的邏輯、可組合、自治、無狀態(tài)、可被發(fā)現(xiàn)、粗粒。面向服務(wù)架構(gòu)的核心是服務(wù),它是組織服務(wù)的一種架構(gòu)模式,它將應(yīng)用程序的不同功能組件定義為服務(wù),通過服務(wù)之間的良好接口聯(lián)系起來。接口是采用中立方式進行定義的,獨立于實現(xiàn)服務(wù)的硬件平臺、操作系統(tǒng)和編程語言[7]。而且這些構(gòu)建于各種系統(tǒng)中的服務(wù)可以用一種統(tǒng)一的方式進行交互,保證系統(tǒng)的靈活性和重用性[8]。
企業(yè)服務(wù)總線ESB是遵循SOA原則的服務(wù)集成基礎(chǔ)架構(gòu),采用分層的結(jié)構(gòu)模型和中立的接口實現(xiàn)了解耦服務(wù)請求者和提供者的技術(shù)基礎(chǔ),使得服務(wù)請求者不需要關(guān)心服務(wù)提供者的位置和具體實現(xiàn)技術(shù),雙方在保持接口不變的情況下,各自可以獨立地演變[9]。ESB為服務(wù)請求者和服務(wù)提供者的交互提供通道,是實施SOA最常用的技術(shù)手段之一,具有分布式、基于消息、開放標準和可靠性等優(yōu)點[10]。
工作流簡單地理解就是一系列相互銜接、自動執(zhí)行的業(yè)務(wù)活動或任務(wù)。在SOA下,工作流的流程由服務(wù)組合和編排而成,而流程本身又可以被封裝成為服務(wù)[11]。業(yè)務(wù)流程執(zhí)行語言BPEL,是當前進行服務(wù)組合和編排的首選標準流程語言。BPEL可將SOA中的孤立的服務(wù)單元按照預(yù)定的規(guī)則進行調(diào)度與協(xié)調(diào),通過服務(wù)的串連形成業(yè)務(wù)流程[12]。
通過上文對出租車智能調(diào)度系統(tǒng)和SOA的介紹,利用SOA實現(xiàn)出租車智能調(diào)度系統(tǒng)的架構(gòu),將調(diào)度系統(tǒng)中的數(shù)據(jù)信息、應(yīng)用業(yè)務(wù)等業(yè)務(wù)資源通過Web服務(wù)的方式變?yōu)榭梢员粡?fù)用的信息資源,然后將這些Web服務(wù)按照不同層面部署、運行在統(tǒng)一的SOA架構(gòu)中。系統(tǒng)分為數(shù)據(jù)層、應(yīng)用服務(wù)層、核心層、業(yè)務(wù)層等四層,每一層利用下層的服務(wù)為上一層提供服務(wù)。如圖2所示。
圖2 系統(tǒng)層次結(jié)構(gòu)
在這個層次結(jié)構(gòu)中,利用符合Web服務(wù)標準將已有業(yè)務(wù)功能按照應(yīng)用和數(shù)據(jù)訪問規(guī)范封裝成為業(yè)務(wù)組件,在應(yīng)用服務(wù)層中運行著諸多單一功能的應(yīng)用業(yè)務(wù),利用SOA架構(gòu)的Web服務(wù)技術(shù),將可復(fù)用的業(yè)務(wù)功能封裝起來。因此,它們由應(yīng)用業(yè)務(wù)提升為服務(wù),通過服務(wù)總線管理眾多位于應(yīng)用服務(wù)層中運行的Web服務(wù)。利用業(yè)務(wù)層提供的靈活的服務(wù)編排功能,將多個單一的應(yīng)用服務(wù)編排為業(yè)務(wù)流程,以實現(xiàn)調(diào)度系統(tǒng)的業(yè)務(wù)需要。
這一層用于為系統(tǒng)及業(yè)務(wù)運行提供數(shù)據(jù)服務(wù),包括用于保存調(diào)度員信息、操作權(quán)限及系統(tǒng)日志信息等的系統(tǒng)數(shù)據(jù)庫,用于保存乘客位置、目的地、聯(lián)系方式等數(shù)據(jù)的乘客數(shù)據(jù)庫,用戶保存司機信息、出租車信息、地理信息等的車輛數(shù)據(jù)庫。
這一層包含兩方面的服務(wù):從內(nèi)核中剝離出來的服務(wù)和系統(tǒng)所使用的服務(wù)。從內(nèi)核中剝離出來的服務(wù)主要包括:數(shù)據(jù)庫存儲與訪問服務(wù)、流程解析服務(wù)、系統(tǒng)狀態(tài)監(jiān)控服務(wù)、組織模型適配等;系統(tǒng)所使用的服務(wù)主要包括:登陸認證服務(wù)、系統(tǒng)初始化服務(wù)、監(jiān)控服務(wù)、調(diào)度服務(wù)、搶答服務(wù)、決策服務(wù)、報警處理服務(wù)、定位服務(wù)等。
ESB是服務(wù)請求者和服務(wù)提供者的交互通道,下面以具體的定位服務(wù)和監(jiān)控服務(wù)的通信過程為例來介紹任意服務(wù)間在ESB上的交互。首先由消息發(fā)生器產(chǎn)生一條SOAP消息,該消息體中封裝了需監(jiān)控的出租車具體位置、行駛速度和行駛方向等信息為參數(shù),同時SOAP消息頭中的Header Block屬性指定了中介節(jié)點和最終接收節(jié)點。然后消息經(jīng)由適配器進行發(fā)布,通過ESB在UDDI注冊中心上進行所需服務(wù)的查詢。通過與監(jiān)控服務(wù)在UDDI上注冊的服務(wù)描述進行比對,監(jiān)控服務(wù)與之匹配。獲得監(jiān)控服務(wù)的URL或者端口。最后定位服務(wù)和監(jiān)控服務(wù)綁定于具體的傳輸協(xié)議(常見為HTTP、JMS),從而兩者之間實現(xiàn)自由通信,實現(xiàn)對出租車輛的監(jiān)控。
微內(nèi)核思想的核心是“降低組件耦合度”,即把原內(nèi)核中所需的服務(wù)與內(nèi)核調(diào)度計算剝離開,而留下一個盡量小的內(nèi)核完成系統(tǒng)最基本的核心功能,避免內(nèi)核引擎內(nèi)部算法與外部實現(xiàn)混雜在一起,從而提高系統(tǒng)的可擴充性;可動態(tài)添加服務(wù)而不需要重新啟動系統(tǒng),使系統(tǒng)更加靈活[13-14]。微內(nèi)核層負責系統(tǒng)配置和初始化、負責依據(jù)調(diào)度算法調(diào)度流程的運轉(zhuǎn),僅包含平臺運行所需的基本服務(wù),如:任務(wù)管理、線程管理、消息傳遞、中斷管理、流程流轉(zhuǎn)、面向方面編程AOP控制等。
這一層是由服務(wù)層所提供服務(wù)在微內(nèi)核統(tǒng)一調(diào)度下組合并經(jīng)過BPEL編排形成的業(yè)務(wù)流程,包括出租車調(diào)度、出租車監(jiān)控、緊急報警、數(shù)據(jù)管理等。BPEL引擎負責BPEL定義的解析和執(zhí)行,為BPEL流程提供運行環(huán)境。另外,由于采用了SOA的架構(gòu)模式和微內(nèi)核技術(shù),可以根據(jù)新的業(yè)務(wù)需求來重新組合和編排服務(wù),大大提高了系統(tǒng)的靈活性。
為了驗證業(yè)務(wù)流程在該框架中的可用性和有效性,本文以出租車調(diào)度業(yè)務(wù)流程為例進行介紹。首先由消息發(fā)生器向BPEL引擎發(fā)送一條SOAP消息,并根據(jù)BPEL定義的出租車調(diào)度業(yè)務(wù)流程產(chǎn)生一個流程實例,實現(xiàn)流程的自動執(zhí)行,流程需調(diào)用的所有服務(wù)都是通過ESB完成的。首先乘客通過電話、手機短信、乘客專用終端或者其它通信方式向調(diào)度中心申請訂車,此時,BPEL引擎調(diào)用對應(yīng)的通信服務(wù)、手機短信通信服務(wù)、乘客專用終端通信服務(wù)或者其它通信服務(wù)與調(diào)度中心取得聯(lián)系,接著調(diào)用訂車處理服務(wù)對乘客需求數(shù)據(jù)(包括語言,數(shù)據(jù)等)做相應(yīng)處理,再分別使用數(shù)據(jù)存儲服務(wù)和定位服務(wù)將乘客信息保存在乘客信息庫和定位符合乘客需求的車輛。然后通過調(diào)度服務(wù)依據(jù)某種有效的調(diào)度算法篩選出最佳車輛,可能有多輛,所以接著通過搶答服務(wù)和決策服務(wù)來確定最終派車的一輛出租車,最后將車出租車信息、司機信息、目的地等相關(guān)數(shù)據(jù)存儲到車輛信息庫中,這樣就完成了一次調(diào)度業(yè)務(wù)流程。
筆者通過對出租車智能調(diào)度系統(tǒng)的分析,結(jié)合SOA架構(gòu)的優(yōu)勢,提出了一個基于SOA的出租車智能調(diào)度系統(tǒng)框架。利用SOA架構(gòu)的Web服務(wù)技術(shù),首先將可復(fù)用的應(yīng)用功能服務(wù)化,然后組件化后將其掛接到ESB總線上,使服務(wù)之間可以自由通信,提高了系統(tǒng)的靈活性、可伸縮性。采用微內(nèi)核插件化技術(shù),實現(xiàn)除了一個核心模塊外,其他功能均以服務(wù)組件的方式存在,支持在ESB上動態(tài)部署、卸載和配置。該系統(tǒng)的應(yīng)用將有助于降低出租車的空載率,減輕道路通行壓力,緩解城市尾氣污染及環(huán)境問題,實現(xiàn)綠色交通、節(jié)約能源。
[1] 蔡文沁.中國智能交通系統(tǒng)發(fā)展的戰(zhàn)略構(gòu)想[C]//第二屆北京國際智能交通系統(tǒng)(ITS)技術(shù)研討暨技術(shù)與產(chǎn)品展覽會.北京:科學技術(shù)部,2004:1-6.
[2] 車勇.基于多人合乘模式的出租車智能調(diào)度管理系統(tǒng)設(shè)計與研究[D].上海:同濟大學,2008.
[3] 徐益民,常滿樓.新世紀的出租車調(diào)度系統(tǒng)[J].城市公用事業(yè),1996,10(6):15-17.
[4] 曹春生.智能化出租車調(diào)度系統(tǒng)[J].ITS通訊,1999(2):24-28.
[5] 韓滿江.基于GPS/GIS的出租車調(diào)度系統(tǒng)[D].大連:大連理工大學,2006.
[6] 劉新竹.出租車智能調(diào)度系統(tǒng)的設(shè)計與實現(xiàn)[J].電腦知識與技術(shù),2008,3(5):980-982.
[7] 孫冰,張軍強.SOA與企業(yè)的業(yè)務(wù)敏捷[J].現(xiàn)代計算機(專業(yè)版),2008(2):142-143.
[8] 謝沛欣.基于SOA的物流管理信息系統(tǒng)研究[D].西安:西北大學,2009.
[9] Lei Liu,Leon Michael,Sun Li-Hong.Analysis And Design Of The System For Detecting Fuel Economy[C]//Proceedings-2010International Symposium on Intelligence Information Processing and Trusted Computing. United States:IEEE Computer Society,2010:593-596.
[10] 單建洪,盧中延.SOA整合之道[M].北京:電子工業(yè)出版社,2008:169-170.
[11] 劉博,范玉順.面向服務(wù)的工作流性能評價及指標相關(guān)度分析[J].計算機集成制造系統(tǒng),2008,14(1):160-166.
[12] 蔡大鵬,高誠.基于SOA的電子政務(wù)系統(tǒng)框架的研究[J].計算機與數(shù)字工程,2009,37(9):38-51.
[13] Becker C,Schiele G,Gubbels H,et al.Base-a Micro-Broker-Based Middleware for Pervasive Computing[C]//Proceedings of the1st IEEE International Conference on Pervasive Computing and Communications. United States:IEEE Computer Society,2003:443-450.
[14] Aitenbichler E,Kangasharju J,Mühlh UserM,et al. A Light-Weight Infrastructure for Pervasive Computing[J].Pervasiveand Mobile Computing,2007,3(4):332-361.