劉 旋,廖明潮,樊多妮,劉 磊,楊 偵
(1.武漢工業學院數學與計算機學院,湖北武漢430023;2.武漢市農村技術開發中心,湖北武漢430023)
智能交通系統ITS將計算機技術、通信技術和電子控制技術與車輛、道路、使用者以及管理手段聯系起來,不僅能夠有效解決交通擁擠問題,而且對于環境保護、節約能源都有顯著的效果。出租車調度系統是ITS的重要組成部分,實現車輛的監控、管理、調度和信息服務,為智能交通系統的實現奠定了基礎[1]。
國外對車輛調度系統研究得很早,20世紀90年代中后期就已經有成熟的產品投放到市場。美國模塊公司的DISPATCH是目前流行的出租車調度系統;新加坡早在1995年底就有了較完備的GPS智能化調度管理系統[2]。而我國從20世紀90年代初期才開始出租車調度監控系統的研究。1996年徐益民、常滿樓提出出租車調度系統要綜合運用通信技術、計算機網絡、數據庫管理、計算機控制、GPS、GIS等多種高新技術[3];1999年曹春生提出了基于GPS、GIS、GSM 的智能化出租車調度系統[4];之后的十余年時間里,又有許多專家學者將集群、GPRS、WIFI、合乘模式等應用到出租車調度系統中,推動了其快速的發展。
但是在國內外,無論是已經運營的系統,還是只限于理論上提出還未部署的系統,無一例外的都是面向應用程序的,應用程序用來處理應用業務,這就造成了應用程序和應用業務是一一綁定的,系統無法對業務需求的變化做出快速的反應。各子系統模塊之間、編程技術和平臺之間存在著高度的耦合,導致了修改某一部分而引起的牽一發而動全身的尷尬局面。而SOA憑借其松耦合的特性,使得系統可以按照模塊化的方式來添加新服務或更新現有服務,以解決新的業務需求。系統開發的趨勢已不再是面向應用程序的,而應該是面向服務的。
出租車智能調度系統主要是利用GPS、GIS以及無線通訊技術實現對車輛的監控調度,并通過利用GIS中的相關信息,使車輛以最小的代價(時間、距離或其他)到達目的地,同時也可以為用戶提供其它信息服務[5]。
出租車智能調度系統的基本運作模式:乘客借助通信網絡(如打電話、發短信等方式)向調度中心訂車,調度人員則將乘客的訂車需求輸入為一次派車任務并提交給調度中心,調度中心根據用戶的用車請求,并且通過定位系統查找出租車的位置,根據一定的調度算法向符合條件的出租車發送調度指令,司機使用車載系統收到指令后可以進行搶答,調度中心會將最終結果通知司機[6]。系統一般有調度中心、通信網絡、車載系統和定位系統四個部分組成,如圖1所示。

圖1 出租車調度系統的組成
其中,調度中心主要根據通信網絡和定位系統反饋回來的信息對出租車進行有效的調度;通信網絡主要是乘客通過根據各種終端設備(如手機、計算機、PDA、乘客專用終端等)向調度中心訂車;定位系統用來實時動態地確定車輛的具體位置、行駛速度和行駛方向等;車載系統是司機和調度中心聯系的平臺。
一般說來服務具有以下9個特點:可重用性、服務合同、松耦合、隱藏具體的邏輯、可組合、自治、無狀態、可被發現、粗粒。面向服務架構的核心是服務,它是組織服務的一種架構模式,它將應用程序的不同功能組件定義為服務,通過服務之間的良好接口聯系起來。接口是采用中立方式進行定義的,獨立于實現服務的硬件平臺、操作系統和編程語言[7]。而且這些構建于各種系統中的服務可以用一種統一的方式進行交互,保證系統的靈活性和重用性[8]。
企業服務總線ESB是遵循SOA原則的服務集成基礎架構,采用分層的結構模型和中立的接口實現了解耦服務請求者和提供者的技術基礎,使得服務請求者不需要關心服務提供者的位置和具體實現技術,雙方在保持接口不變的情況下,各自可以獨立地演變[9]。ESB為服務請求者和服務提供者的交互提供通道,是實施SOA最常用的技術手段之一,具有分布式、基于消息、開放標準和可靠性等優點[10]。
工作流簡單地理解就是一系列相互銜接、自動執行的業務活動或任務。在SOA下,工作流的流程由服務組合和編排而成,而流程本身又可以被封裝成為服務[11]。業務流程執行語言BPEL,是當前進行服務組合和編排的首選標準流程語言。BPEL可將SOA中的孤立的服務單元按照預定的規則進行調度與協調,通過服務的串連形成業務流程[12]。
通過上文對出租車智能調度系統和SOA的介紹,利用SOA實現出租車智能調度系統的架構,將調度系統中的數據信息、應用業務等業務資源通過Web服務的方式變為可以被復用的信息資源,然后將這些Web服務按照不同層面部署、運行在統一的SOA架構中。系統分為數據層、應用服務層、核心層、業務層等四層,每一層利用下層的服務為上一層提供服務。如圖2所示。

圖2 系統層次結構
在這個層次結構中,利用符合Web服務標準將已有業務功能按照應用和數據訪問規范封裝成為業務組件,在應用服務層中運行著諸多單一功能的應用業務,利用SOA架構的Web服務技術,將可復用的業務功能封裝起來。因此,它們由應用業務提升為服務,通過服務總線管理眾多位于應用服務層中運行的Web服務。利用業務層提供的靈活的服務編排功能,將多個單一的應用服務編排為業務流程,以實現調度系統的業務需要。
這一層用于為系統及業務運行提供數據服務,包括用于保存調度員信息、操作權限及系統日志信息等的系統數據庫,用于保存乘客位置、目的地、聯系方式等數據的乘客數據庫,用戶保存司機信息、出租車信息、地理信息等的車輛數據庫。
這一層包含兩方面的服務:從內核中剝離出來的服務和系統所使用的服務。從內核中剝離出來的服務主要包括:數據庫存儲與訪問服務、流程解析服務、系統狀態監控服務、組織模型適配等;系統所使用的服務主要包括:登陸認證服務、系統初始化服務、監控服務、調度服務、搶答服務、決策服務、報警處理服務、定位服務等。
ESB是服務請求者和服務提供者的交互通道,下面以具體的定位服務和監控服務的通信過程為例來介紹任意服務間在ESB上的交互。首先由消息發生器產生一條SOAP消息,該消息體中封裝了需監控的出租車具體位置、行駛速度和行駛方向等信息為參數,同時SOAP消息頭中的Header Block屬性指定了中介節點和最終接收節點。然后消息經由適配器進行發布,通過ESB在UDDI注冊中心上進行所需服務的查詢。通過與監控服務在UDDI上注冊的服務描述進行比對,監控服務與之匹配。獲得監控服務的URL或者端口。最后定位服務和監控服務綁定于具體的傳輸協議(常見為HTTP、JMS),從而兩者之間實現自由通信,實現對出租車輛的監控。
微內核思想的核心是“降低組件耦合度”,即把原內核中所需的服務與內核調度計算剝離開,而留下一個盡量小的內核完成系統最基本的核心功能,避免內核引擎內部算法與外部實現混雜在一起,從而提高系統的可擴充性;可動態添加服務而不需要重新啟動系統,使系統更加靈活[13-14]。微內核層負責系統配置和初始化、負責依據調度算法調度流程的運轉,僅包含平臺運行所需的基本服務,如:任務管理、線程管理、消息傳遞、中斷管理、流程流轉、面向方面編程AOP控制等。
這一層是由服務層所提供服務在微內核統一調度下組合并經過BPEL編排形成的業務流程,包括出租車調度、出租車監控、緊急報警、數據管理等。BPEL引擎負責BPEL定義的解析和執行,為BPEL流程提供運行環境。另外,由于采用了SOA的架構模式和微內核技術,可以根據新的業務需求來重新組合和編排服務,大大提高了系統的靈活性。
為了驗證業務流程在該框架中的可用性和有效性,本文以出租車調度業務流程為例進行介紹。首先由消息發生器向BPEL引擎發送一條SOAP消息,并根據BPEL定義的出租車調度業務流程產生一個流程實例,實現流程的自動執行,流程需調用的所有服務都是通過ESB完成的。首先乘客通過電話、手機短信、乘客專用終端或者其它通信方式向調度中心申請訂車,此時,BPEL引擎調用對應的通信服務、手機短信通信服務、乘客專用終端通信服務或者其它通信服務與調度中心取得聯系,接著調用訂車處理服務對乘客需求數據(包括語言,數據等)做相應處理,再分別使用數據存儲服務和定位服務將乘客信息保存在乘客信息庫和定位符合乘客需求的車輛。然后通過調度服務依據某種有效的調度算法篩選出最佳車輛,可能有多輛,所以接著通過搶答服務和決策服務來確定最終派車的一輛出租車,最后將車出租車信息、司機信息、目的地等相關數據存儲到車輛信息庫中,這樣就完成了一次調度業務流程。
筆者通過對出租車智能調度系統的分析,結合SOA架構的優勢,提出了一個基于SOA的出租車智能調度系統框架。利用SOA架構的Web服務技術,首先將可復用的應用功能服務化,然后組件化后將其掛接到ESB總線上,使服務之間可以自由通信,提高了系統的靈活性、可伸縮性。采用微內核插件化技術,實現除了一個核心模塊外,其他功能均以服務組件的方式存在,支持在ESB上動態部署、卸載和配置。該系統的應用將有助于降低出租車的空載率,減輕道路通行壓力,緩解城市尾氣污染及環境問題,實現綠色交通、節約能源。
[1] 蔡文沁.中國智能交通系統發展的戰略構想[C]//第二屆北京國際智能交通系統(ITS)技術研討暨技術與產品展覽會.北京:科學技術部,2004:1-6.
[2] 車勇.基于多人合乘模式的出租車智能調度管理系統設計與研究[D].上海:同濟大學,2008.
[3] 徐益民,常滿樓.新世紀的出租車調度系統[J].城市公用事業,1996,10(6):15-17.
[4] 曹春生.智能化出租車調度系統[J].ITS通訊,1999(2):24-28.
[5] 韓滿江.基于GPS/GIS的出租車調度系統[D].大連:大連理工大學,2006.
[6] 劉新竹.出租車智能調度系統的設計與實現[J].電腦知識與技術,2008,3(5):980-982.
[7] 孫冰,張軍強.SOA與企業的業務敏捷[J].現代計算機(專業版),2008(2):142-143.
[8] 謝沛欣.基于SOA的物流管理信息系統研究[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].北京:電子工業出版社,2008:169-170.
[11] 劉博,范玉順.面向服務的工作流性能評價及指標相關度分析[J].計算機集成制造系統,2008,14(1):160-166.
[12] 蔡大鵬,高誠.基于SOA的電子政務系統框架的研究[J].計算機與數字工程,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.