張愛玲,曹 磊
(1.西安理工大學,陜西 西安 710082;2.河南科技大學,河南 洛陽 471023)
自從我國將“互聯網+物流”劃入重點規劃后,“互聯網+物流”便乘上了大眾創業、萬眾創新的東風,物流業得到飛速發展。總體來看,中國物流產業的總體規模目前還比較小,發展水平也比較低,這一方面是由我國經濟發展的水平和階段所決定的,另一方面,也是更為重要的是我國經濟中還存在著許多影響和制約物流產業健康發展的因素[1]。李克強總理提出“要推動互聯網、大數據、云計算等信息技術與物流深度融合,推動物流業乃至中國經濟的轉型升級,這是物流業的供給側改革。”由此證明了“互聯網+物流”已成為我國未來物流業發展的大趨勢[2]。
通過分析大件物流行業中存在的問題,本文將互聯網、大數據、云計算等信息技術與物流產業進行深度融合,構建出一個獨立的車輛軌跡監控平臺,通過全球定位系統(Global Positioning System, GPS)、APP(即智能手機的第三方應用程序)及電子圍欄等技術進行車輛軌跡上傳,實現物流全流程節點配裝到簽收的精確展現,實現物流配送精準,達到了物流平臺對物流運輸配送過程中的可視化業務管理,滿足了大件物流行業要求的物流信息透明化戰略要求[3]。
大件物流信息監控平臺主要的監控對象是車輛,本系統通過車輛軌跡監控來實現物流的跟蹤。平臺采用基于消息機制的線程隊列技術來實現任務之間的事件驅動;采用分布式集群作為具有高并發能力的終端接入層的實現模式;采用緩存與數據庫集群以及數據庫的垂直與水平切分作為數據存儲層,從而提升系統整體數據I/O能力;選取JSP+Action+Delegate+Webservice+Domain+Dao的典型設計模式作為Web層的實現模式;采用Spring+JDBC+Mongo+MySQL作為后端的框架。

圖1 車輛軌跡監控平臺總體架構
車輛軌跡監控平臺應用架構完全基于JavaEE的系統體系,使用Spring MVC為整體Web框架,使用Spring為核心業務模型層,使用JDBC為數據訪問層,使用MySQL為數據庫持久層,使用MongoDB為緩存與非結構化存儲層,以ActiveMQ為消息中間件。本平臺針對數據量大、并發大和業務功能本身的要求,選擇基于Spring、SpringMVC、ORM、MongoDB、Netty、ActiveMQ的整套技術體系架構,整體結構支持基于虛擬化技術的進行云服務的規模化部署。
系統的應用架構采用分層設計的理念[4],基于JavaEE的整體技術體系,結合本系統的特點,將系統分為前端展示層、終端接入層、服務總線層、基礎設施層等多層體系,如圖1所示。
本平臺在數據流轉維護時,采用圖2所示的處理方案。在圖2中,GPS上行數據流是APP通過數據移動網絡將GPS數據發送至服務器,接收數據的為平臺的終端接入層,終端接入層將數據進行實時的大數據存儲,之后進行相關的業務邏輯判斷。將終端接入層產生的業務事件通過MQ集群發送至平臺服務層,之后由平臺服務層進行業務邏輯處理。APP業務處理數據流是司機端應用APP通過移動網絡調用本平臺的對外接口服務,接口服務將請求數據分發至平臺服務層,進行相關的業務邏輯處理,平臺服務層處理完成之后通過接口服務將響應結果數據返回至APP端。
對于外部系統請求數據流,是外部系統在某些場景下會請求本平臺的數據服務,由對外接口服務統一接入外部請求,之后將請求數據分發至平臺服務層,進行相關的業務邏輯處理,平臺服務層處理完成之后通過接口服務,將響應結果數據返回至外部系統。
平臺采用分層分布式的軟件技術體系[5],因此每一層軟件都采用集群的方式,集群下的每個節點分別運行在不同的物理服務器之上,采用交叉部署的方式進行。設備接入的總入口采用負載均衡設備(F5/A10)進行統一的負載接入,將負載數據分發至設備接入集群,此后數據進入系統內部進行業務處理與前端展示。
本平臺基于JavaEE技術體系,采用系統模塊化分層設計,各個層所負責的職責不同,相互之間配合完成整體系統的業務功能流程,同時可以非常好地實現系統的擴展、性能的調優、系統模塊化升級等。
終端接入層是APP的GPS數據上行下行的唯一通道,如圖3所示,終端接入層與APP端進行數據協議的制定,通過標準的通信協議與數據協議進行通信,終端接入層接收到APP上行來的數據,將進行初步的邏輯判斷,并將原始GPS數據存入大數據平臺,之后將初步判斷的結果性事件信息傳入數據通信層(MQ)。

圖3 APP終端接入層
為了保證終端接入層在未來能夠支撐10萬的并發,終端接入層采用了集群化的軟件管理模式,并通過前端負載設備將數據分發至不同的接入層節點,實現數據處理能力的負載分發,從而實現大并發的APP端數據上行的處理能力。終端接入層的解析適配器可以適配多種設備數據協議(XML、JSON)、多種通訊協議(HTTP、TCP/IP、UDP),能夠達到無縫集成各類終端,如手機APP、GPS終端、外部系統等。
數據由終端接入到平臺之后,會路由到數據通信層。平臺的數據通信層采用相應的消息隊列中間件(MQ)進行數據的存儲與轉發,來提高系統對大量終端上報數據的處理能力、減少系統通信阻塞、提高協議適配等多方面功能。
平臺所采用的是Apache的ActiveMQ,可支持每秒數萬級的并發,同時可支持集群方式,能夠為后續的吞吐量擴充提供良好的保障。
平臺總線服務層是系統的核心業務單元,包括核心的業務模塊、流程、規則、數據訪問、系統集成、統計報表、組織架構、安全模塊、核心GPS算法等。平臺總線服務層最終是以Service的方式對外提供服務。服務總線層功能如表1所示。

表1 車輛軌跡監控平臺數據通信層功能
Web展現層是整個系統平臺的UI展現部分,為用戶提供了所有的UI界面功能。UI層不做任何業務邏輯和數據存儲邏輯,它與服務總線層通過服務調用的方式進行通信,為系統用戶提供管理界面的使用。
Web展現層采用了JSP+Jquery+Ajax的技術框架,充分體現了Web2.0的良好交互體驗。
本系統會產生海量的GPS數據,而同時GPS數據中的經緯度又是空間數據,空間數據采用[經度,緯度]的模型進行存儲,在系統中還會有大量的基于GPS信息的電子圍欄計算、距離計算等算法需要對空間數據進行解析計算,因此空間數據的海量數據存儲與訪問成為非常重要的設計環節,直接影響到系統的核心功能與性能實現。
本模塊采用基于MongoDB進行GPS海量數據的存儲,結合MapReduce技術實現數據的分布式存儲與讀取,從而大大地提高了大數據的處理能力,為后續的數據挖掘、大數據分析、高性能的軌跡查詢、軌跡分析等提供非常有力的支撐。大數據處理平臺如圖4所示。
本系統會與外部系統及其他相關業務系統進行對接,由于系統多元化,系統的接口方式不確定,因此本系統實現了幾乎所有的接口方式,包括Web/HTTP Service、消息隊列、接口表等各種服務,如圖5所示。此外,本系統也會適配各種外部系統所提供的接口,從而實現全部的請求、響應流程,更好地使本系統在內部無縫地與其他系統進行集成。
除了通信模式的多元化,系統還能夠提供不同級別的數據協議,更好地實現系統間數據傳遞的便捷、高效。

圖4 大數據處理平臺

圖5 車輛軌跡監控平臺接口設計
本系統中的大并發量主要體現在APP終端接入量在初期要支撐2萬,未來要達到10萬。在架構設計上,系統采用了分布式的終端接入層集群架構,采用統一的入口負載均衡機制將APP上行的GPS數據進行分發處理,通過擴充終端接入層的實例節點來增加系統的并發處理能力,從而為擴充GPS上行并發量提供了穩定擴展的技術架構體系。
本系統所管理的目標車輛將會超過10萬甚至更多,因此對于車輛頻繁上報的GPS數據量將會非常大。因此系統平臺將采用海量存儲技術來實現大數據量的存儲,同時能夠高性能地對海量數據進行存儲、查詢等數據操作。主要有以下幾個方面的體現:(1)上報GPS數據寫入大數據存儲;(2)管理用戶端要支撐5 000用戶對軌跡大數據進行并發查詢操作。
本系統在大數據處理方面,通過MongoDB進行GPS空間大數據的存儲,通過MapReduce進行分布式非結構化文件的管理與讀寫,非常好地解決了TB級乃至PB級數據量的存儲、查詢。
本系統為了精準車輛軌跡信息,一是采用道路匹配算法,該算法結合圖商的路網信息,通過對部分精度不準的GPS數據進行道路匹配,使應該在路上的GPS數據全面地匹配到地圖道路之上,更友好地展示GPS的軌跡;二是采用智能飛點糾正算法,該算法結合路網信息,針對飛點的前后GPS數據的定位情況,對飛點進行精準糾正,讓軌跡更加平滑,避免由于GPS漂移所帶來的軌跡展示的誤差,如圖6所示。

圖6 車輛軌跡監控平臺軌跡優化與飛點處理
本平臺基于JavaEE的成熟、安全、穩定、可維護、可擴展的技術特性,通過分層體系進行架構設計,支持靈活的模塊開發,能夠支持大量的設備終端的接入,并有良好的性能體現,對GPS海量數據的讀寫有明顯優勢,能夠支撐TB級大數據的管理。系統部署后,用戶反饋良好。本平臺還能夠對工業控制、人工智能、公共交通、設備監管、智能家居提供強大的平臺支撐,充分體現了平臺基于物聯網整體架構的處理能力,可為各行業提供較為細分的行業云平臺管理監控綜合解決方案。
可以預知,如果能夠在兩客一危(指大客車、大型旅游客車以及危險品車)、個人用車管理、大眾用車服務、租車云監控、政企用車等方面提供更加細化的行業解決方案,就會使基于GPS+北斗和移動APP的多元化終端接入到本平臺,形成更具擴展性和管理能力的行業解決方案。