王海濤+程耕國(guó)+程驊+楊濤+吳建霞
摘 要: 為了向高速管理部門和車主提供多角度、全方位、方便快捷的高速信息服務(wù),設(shè)計(jì)一種基于多終端多平臺(tái)的高速信息服務(wù)系統(tǒng)。該系統(tǒng)采用LNMP網(wǎng)站架構(gòu),在現(xiàn)有智能交通系統(tǒng)提供的數(shù)據(jù)基礎(chǔ)上,建立高效處理多源交通流數(shù)據(jù)模型,利用跨平臺(tái)格式轉(zhuǎn)換與數(shù)據(jù)交換機(jī)制,融合地圖、天氣、微信、信鴿推送等多種互聯(lián)網(wǎng)開(kāi)放平臺(tái)技術(shù),實(shí)現(xiàn)多終端、多平臺(tái)的信息展示和查詢,以及移動(dòng)App的信息實(shí)時(shí)推送。
關(guān)鍵詞: 智能交通; 高速信息服務(wù); LNMP; 多終端; 多平臺(tái)
中圖分類號(hào): TN915?34; TP311.52 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2017)13?0030?04
Abstract: In order to provide the multi?angle, all?directional, convenient and efficient high?speed information service for the high?speed administration section and vehicle owners, a high?speed information service system based on multi?terminal and multi?platform was designed. The LNMP (Linux?Nginx?MySQL?PHP) website configuration is adopted in the system to establish the model to process the multi?source traffic flow data efficiently, which is based on available data provided by the intelligent transport system. The cross?platform format conversion and data exchange mechanism are used to fuse the map, weather, WeChart, homing pigeon push and other Internet open platform technologies to realize the multi?terminal and multi?platform information display and query, and information real?time push of mobile App.
Keywords: intelligent transportation; high?speed information service; LNMP; multi?terminal; multi?platform
0 引 言
近年來(lái),高速路網(wǎng)不斷發(fā)展,高速出行優(yōu)惠政策不斷升級(jí),人們對(duì)高速出行信息服務(wù)品質(zhì)的要求也不斷提升。在高速信息的傳統(tǒng)獲取方式中,高速車主主要通過(guò)廣播、電話、微博、網(wǎng)站等獲取高速出行相關(guān)信息[1]。隨著智能終端、移動(dòng)網(wǎng)絡(luò)、互聯(lián)網(wǎng)等的迅猛發(fā)展和移動(dòng)互聯(lián)網(wǎng)開(kāi)放平臺(tái)技術(shù)的日趨完善和成熟,以及國(guó)家“互聯(lián)網(wǎng)+”戰(zhàn)略的大背景下,智能交通系統(tǒng)(ITS)駛?cè)肓税l(fā)展的快車道,“互聯(lián)網(wǎng)+便捷交通”是新媒體形勢(shì)下交通出行信息服務(wù)的主要方向,“互聯(lián)網(wǎng)+”與高速公路行業(yè)的結(jié)合已成為高速管理部門和一些互聯(lián)網(wǎng)企業(yè)的重要研究領(lǐng)域[2]。
根據(jù)最新調(diào)研報(bào)告,微信和APP客戶端已成為高速車主最希望獲取信息服務(wù)的方式[3]。基于智能手機(jī)的“臺(tái)北好行”App軟件已在2011年上線,該軟件匯集臺(tái)北市多種交通信息,并方便、簡(jiǎn)潔、快速地提供給民眾[4]。廣州“出行易”和深圳“交通在手”通過(guò)融合利用現(xiàn)有各種系統(tǒng)獲取的交通數(shù)據(jù),建立面向公眾出行交通信息服務(wù)的信息發(fā)布系統(tǒng),開(kāi)發(fā)了具有多維多態(tài)特征的城市交通信息服務(wù)移動(dòng)App[5]。為了達(dá)到協(xié)同管理,智慧服務(wù)的目的和效果,省級(jí)高速運(yùn)行服務(wù)平臺(tái)也被提上日程,未來(lái)將逐步實(shí)現(xiàn)[6]。
“臺(tái)北好行”、“易出行”和“交通在手”主要提供城市交通信息,面向城市交通出行用戶,對(duì)高速出行信息服務(wù)有一定的參考價(jià)值。本文將這些成熟應(yīng)用的思想和框架借鑒到高速信息服務(wù)領(lǐng)域,提出一種新的高速信息網(wǎng)絡(luò)化模式,應(yīng)用最新的互聯(lián)網(wǎng)和計(jì)算機(jī)技術(shù),提出一種基于“智能終端”+“電腦”+“多媒體展示屏”的多終端和“移動(dòng)App”+“微信”的多平臺(tái)高速信息服務(wù)系統(tǒng)。
1 系統(tǒng)框架
本文設(shè)計(jì)的高速信息服務(wù)系統(tǒng)框架總體設(shè)計(jì)如圖1所示[7?8]。
該系統(tǒng)與路網(wǎng)平臺(tái)之間的信息共享是通過(guò)路網(wǎng)平臺(tái)數(shù)據(jù)共享中間數(shù)據(jù)庫(kù)實(shí)現(xiàn)。從中間數(shù)據(jù)庫(kù)獲取所需的交通信息,包括:路段、收費(fèi)站、服務(wù)區(qū)、交通事件、出行提示、道路施工、監(jiān)控快拍、VMS發(fā)布信息等,以及從省氣象部門數(shù)據(jù)接口獲取的實(shí)時(shí)天氣相關(guān)數(shù)據(jù)等[9],通過(guò)標(biāo)注化處理后,存儲(chǔ)于系統(tǒng)的交通信息數(shù)據(jù)庫(kù)中。App、微信和網(wǎng)站用戶的基礎(chǔ)信息、爆料信息、反饋信息、投訴信息等,以及服務(wù)器運(yùn)行信息和應(yīng)用程序運(yùn)行狀態(tài)信息等也存儲(chǔ)于該數(shù)據(jù)庫(kù),并實(shí)時(shí)共享。App、微信和網(wǎng)站各子系統(tǒng)根據(jù)業(yè)務(wù)需要,從該數(shù)據(jù)庫(kù)中獲取相應(yīng)的數(shù)據(jù),經(jīng)過(guò)處理后展示給終端用戶。也可通過(guò)用戶界面提交報(bào)料、反饋意見(jiàn)、服務(wù)投訴等信息,系統(tǒng)根據(jù)預(yù)定義的數(shù)據(jù)格式存儲(chǔ)于數(shù)據(jù)庫(kù)中。
2 關(guān)鍵技術(shù)
本系統(tǒng)從數(shù)據(jù)采集和數(shù)據(jù)處理,到最終通過(guò)多終端、多平臺(tái)發(fā)布數(shù)據(jù),主要應(yīng)用LNMP(Linux?Nginx? MySQL?PHP)的網(wǎng)站服務(wù)器技術(shù)、Mashup技術(shù)和互聯(lián)網(wǎng)開(kāi)放平臺(tái)技術(shù)。
2.1 LNMP網(wǎng)站服務(wù)器
在本系統(tǒng)中,移動(dòng)應(yīng)用App和微信公眾號(hào)采用LNMP架構(gòu),出行網(wǎng)采用基于MVC的LNMP架構(gòu),架構(gòu)圖如圖2所示。
LNMP指的是Linux系統(tǒng)下Nginx(Web服務(wù)器)+MySQL(數(shù)據(jù)庫(kù)軟件)+PHP網(wǎng)站服務(wù)器架構(gòu),以上組件均是開(kāi)源軟件,是國(guó)際上成熟的架構(gòu)框架,很多大型的互聯(lián)網(wǎng)應(yīng)用都采取這個(gè)架構(gòu)[10]。
Nginx是一個(gè)高性能的HTTP和反向代理服務(wù)器,也是一個(gè)IMAP/POP3/SMTP代理服務(wù)器,性能穩(wěn)定、功能豐富、運(yùn)維簡(jiǎn)單、處理靜態(tài)文件速度快且消耗系統(tǒng)資源極少,因此相比LAMP,LNMP具有高效、擴(kuò)展性強(qiáng)等特點(diǎn),是一款穩(wěn)定的、支持關(guān)鍵任務(wù)的服務(wù)器。
MySQL是一個(gè)小型關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),具有輕量、免費(fèi)和開(kāi)源特征。通過(guò)MySQL可以獲得一個(gè)非常強(qiáng)大的、適合運(yùn)行大型復(fù)雜站點(diǎn)的數(shù)據(jù)庫(kù)。在本系統(tǒng)中,所有相關(guān)數(shù)據(jù)信息都存放在這個(gè)數(shù)據(jù)庫(kù)中,通過(guò)SQL語(yǔ)言可以很容易地查詢這些信息。
PHP是一種腳本語(yǔ)言,一般嵌入HTML文檔并在服務(wù)器端執(zhí)行。通過(guò)相應(yīng)PHP的代碼可實(shí)現(xiàn)訪問(wèn)MySQL數(shù)據(jù)庫(kù)中的數(shù)據(jù)和Linux提供的一些特性的動(dòng)態(tài)內(nèi)容。
2.2 Mashup技術(shù)
Mashup即糅合,是一種新的互聯(lián)網(wǎng)技術(shù),它的發(fā)展促進(jìn)了互聯(lián)網(wǎng)開(kāi)源數(shù)據(jù)與企業(yè)私有化數(shù)據(jù)的融合。應(yīng)用Mashup技術(shù),將交通信息服務(wù)涉及到的如交通信息、地理信息、天氣、語(yǔ)音、視頻等多種數(shù)據(jù)糅合,為出行者提供更加豐富、個(gè)性化的信息服務(wù)。
2.3 互聯(lián)網(wǎng)開(kāi)放平臺(tái)技術(shù)
互聯(lián)網(wǎng)開(kāi)放平臺(tái)是一種新型的網(wǎng)絡(luò)服務(wù)模式,為第三方應(yīng)用提供基本接口服務(wù),主要包括應(yīng)用型和服務(wù)型兩種類型的開(kāi)發(fā)平臺(tái)。快速發(fā)展的互聯(lián)網(wǎng)開(kāi)放平臺(tái),如微信公眾平臺(tái)、高德地圖API、信鴿推送API等。
微信公眾平臺(tái)(WeChat)是移動(dòng)互聯(lián)網(wǎng)時(shí)代的一種全新的信息傳播方式,借助智能終端已擁有龐大的用戶量,其平臺(tái)開(kāi)發(fā)架構(gòu)和技術(shù)已相對(duì)成熟。本系統(tǒng)通過(guò)在微信平臺(tái)申請(qǐng)獨(dú)立公眾號(hào),利用微信公眾平臺(tái)開(kāi)發(fā)技術(shù),設(shè)計(jì)開(kāi)發(fā)高速服務(wù)公眾號(hào),為車主新增一種方便快捷的高速服務(wù)信息獲取渠道。
高德地圖開(kāi)放平臺(tái)將地圖、定位、搜索、導(dǎo)航等以API和SDK等形式向開(kāi)發(fā)者實(shí)現(xiàn)了開(kāi)放,使得基于地理位置的服務(wù)應(yīng)用更加廣泛和精準(zhǔn)。本系統(tǒng)大量使用高德地圖四大基礎(chǔ)服務(wù),如定位獲取位置信息,規(guī)劃路線并導(dǎo)航,在地圖上標(biāo)記Marker清晰展示高速相關(guān)信息、服務(wù)和事件(服務(wù)區(qū)、收費(fèi)站、景點(diǎn)、事故、施工等)。
信鴿推送(XG Push)是一款專業(yè)的移動(dòng)App推送平臺(tái),支持百億級(jí)的通知/消息推送,秒級(jí)觸達(dá)移動(dòng)用戶,現(xiàn)已全面支持Android和IOS兩大主流平臺(tái)。開(kāi)發(fā)者可以方便地通過(guò)嵌入SDK,通過(guò)API調(diào)用或者Web端可視化操作實(shí)現(xiàn)對(duì)特定用戶推送,大幅提升用戶活躍度,有效喚醒沉睡用戶,并實(shí)時(shí)查看推送效果。本系統(tǒng)主要在Android和IOS兩大平臺(tái)上的高速路況、資訊、天氣、車主報(bào)料以及用戶收藏和關(guān)注等模塊,應(yīng)用此技術(shù),將實(shí)時(shí)信息推送給移動(dòng)終端和用戶。
這些互聯(lián)網(wǎng)開(kāi)放平臺(tái)技術(shù)的應(yīng)用加速了信息的傳遞,提高了信息的共享度?;ヂ?lián)網(wǎng)開(kāi)放平臺(tái)的發(fā)展為交通信息發(fā)布、傳遞、共享提供更為有效的渠道和手段。
3 功能設(shè)計(jì)
根據(jù)高速車主出行需求調(diào)研分析[1],本系統(tǒng)采用結(jié)構(gòu)化模塊方式,按層次劃分,主要設(shè)置路況導(dǎo)航、路況資訊、高速快覽、高速服務(wù)、車主爆料、交通氣象等模塊,如圖3所示。
路況導(dǎo)航模塊主要基于高德地圖API,融合基礎(chǔ)地圖和基于地理信息服務(wù)的高速服務(wù)(高速公路、服務(wù)區(qū)、收費(fèi)站、加油站、ETC網(wǎng)點(diǎn)、違法處理點(diǎn)、休閑旅游景點(diǎn)、餐飲、購(gòu)物、公共服務(wù)等),點(diǎn)擊相應(yīng)Marker,可以跳轉(zhuǎn)到對(duì)應(yīng)的詳情頁(yè)面,基于高速服務(wù)和休閑旅游的具體位置信息可以實(shí)現(xiàn)導(dǎo)航。
路況資訊模塊展示高速部門發(fā)布的最新出行提示、高速突發(fā)事件、施工信息和車友報(bào)料等出行相關(guān)的資訊,進(jìn)一步可以查看位置、時(shí)間、詳情等信息,也可以在地圖上顯示,使用戶更直接的了解相關(guān)信息。
高速快覽模塊以梯形圖的樣式向用戶展示高速收費(fèi)站詳情、事故、施工、監(jiān)控快拍等,用戶能夠簡(jiǎn)單清晰地了解一條高速沿途的收費(fèi)站、事故和施工信息。
當(dāng)高速車主在出行途中遇到擁堵、事故、施工、管制等事件時(shí),在車主爆料模塊選擇或輸入事件類型、描述、現(xiàn)場(chǎng)圖片、位置信息等,可以上傳事件信息到交通信息數(shù)據(jù)庫(kù),實(shí)現(xiàn)信息實(shí)時(shí)共享。結(jié)合車主的地理位置信息,向沿途、附近或關(guān)注該高速的車主推送高速事件信息。
4 系統(tǒng)實(shí)現(xiàn)與應(yīng)用
4.1 系統(tǒng)數(shù)據(jù)接口
本系統(tǒng)主要在Android,IOS和微信三大平臺(tái)及移動(dòng)智能終端(手機(jī)、平板等)、PC端、多媒體展示屏三大終端上運(yùn)行。系統(tǒng)數(shù)據(jù)后臺(tái)主要通過(guò)MySQL+PHP實(shí)現(xiàn),后臺(tái)數(shù)據(jù)接口程序結(jié)構(gòu)如圖4所示。
DBManager包是實(shí)現(xiàn)對(duì)MySQL數(shù)據(jù)的連接、查詢、修改、增加等功能。DBConnect,GetData,DelData,UpdateData,InsertData分別是數(shù)據(jù)庫(kù)連接接口、數(shù)據(jù)獲取接口、數(shù)據(jù)刪除接口、數(shù)據(jù)更新接口、數(shù)據(jù)類。BusinessLogical根據(jù)業(yè)務(wù)進(jìn)行數(shù)據(jù)處理(DataHandling)。Interface主要針對(duì)某個(gè)業(yè)務(wù)需要提供的數(shù)據(jù)獲取接口。HTML頁(yè)面是微信客戶展示。后臺(tái)數(shù)據(jù)接口根據(jù)業(yè)務(wù)需求制定,返回標(biāo)準(zhǔn)格式的數(shù)據(jù)(JSON),移動(dòng)App開(kāi)發(fā)系統(tǒng)Android和IOS接收并通過(guò)FastJson數(shù)據(jù)解析工具進(jìn)行解析,獲取相關(guān)數(shù)據(jù)。出行網(wǎng)數(shù)據(jù)接口層次主要包括數(shù)據(jù)層(交通信息數(shù)據(jù)庫(kù))、數(shù)據(jù)訪問(wèn)層(操作數(shù)據(jù)庫(kù))、邏輯控制層(處理數(shù)據(jù)),處理后的數(shù)據(jù)通過(guò)展示層Web頁(yè)面展示。
4.2 邏輯層與展示層實(shí)現(xiàn)
下面以Android平臺(tái)為例,介紹高速信息服務(wù)系統(tǒng)在該平臺(tái)上的實(shí)現(xiàn)。
4.2.1 權(quán)限配置
(1) 本系統(tǒng)很多服務(wù)均基于地圖,地圖服務(wù)所需基本權(quán)限配置主要代碼如下,其中MapKey在高德地圖官方網(wǎng)站申請(qǐng)獲得:
android:value="@string/MapKey" />
(2) 信鴿推送權(quán)限配置主要代碼如下,其中XG_Access_id,XG_Access_key和XG_Secret_key在騰訊信鴿官方網(wǎng)站申請(qǐng)獲得。
android:exported="true" android:persistent="true"
android:process=":xg_service_v2" />
android:value="******" />
android:value="******" />
android:value="******" />
4.2.2 第三方基礎(chǔ)庫(kù)
除了Android基礎(chǔ)庫(kù)以外,還用到高德地圖、信鴿推送、FastJson數(shù)據(jù)解析等第三方庫(kù),依次為Android_Map,AMap_Location,AMap_Navi,MapApiService,F(xiàn)astJson,XG_SDK等,均在第三方平臺(tái)官方網(wǎng)站下載獲得。
4.2.3 功能模塊實(shí)現(xiàn)
根據(jù)業(yè)務(wù)邏輯,將Android代碼分為Activity,F(xiàn)ragment,Adapter,Dialog,Model,WebService等層次,其中Model主要定義一些相關(guān)的實(shí)體類,如高速、服務(wù)區(qū)、收費(fèi)站等信息;WebService主要封裝一些功能性數(shù)據(jù)接口;Dialog主要包括一些自定義的對(duì)話框。結(jié)合線性布局、相對(duì)布局、表格布局等布局管理器和ListView,ScrollView,ImageView,TextView,Button,EditText,GridView,Dialog等控件,應(yīng)用組件通信服務(wù)Activity,Intent,Service,Broadcast實(shí)現(xiàn)設(shè)定的系統(tǒng)功能。其中服務(wù)區(qū)列表主要由ListView和Adapter適配器實(shí)現(xiàn)NearServiceActivity和NearServiceAdapter。其中實(shí)現(xiàn)服務(wù)區(qū)列表的主要代碼如下所示,其中LoadMoreListView為自定義控件,實(shí)現(xiàn)下拉查看更多的功能,RoadPoiMDL為服務(wù)區(qū)實(shí)體類,包括服務(wù)區(qū)編號(hào)、名稱、地理位置等信息。
NearServiceActivity主要代碼如下:
listView=(LoadMoreListView) findViewById
(R.id.listView);
serviceMDLList = new ArrayList
nearServiceAdapter = new NearServiceAdapter
(context, serviceMDLList);
listView.setAdapter(nearServiceAdapter);
nearServiceAdapter.notifyDataSetChanged();
NearServiceAdapter主要代碼如下:
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
convertView = LayoutInflater.from(mContext).inflate
(R.layout.view_item_service, null);
holder = new ViewHolder();
holder.ivIcon = (ImageView) convertView.
findViewById(R.id.ivIcon);
holder.tvName = (TextView) convertView.
findViewById(R.id.tvName);
……
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();}
RoadPoiMDL item = serviceMDLList.get(position);
holder.tvName.setText(item.getName());
holder.tv_hwName.setText(item.getRoadname());
……
} return convertView;
4.3 應(yīng)用實(shí)例
該系統(tǒng)目前已在多個(gè)省份得到推廣和應(yīng)用,如浙江“智慧高速”,湖北“湖北高速通”,山東“齊魯通”等。其中移動(dòng)App活躍用戶總量突破百萬(wàn),微信公眾號(hào)關(guān)注總量突破百萬(wàn),多媒體展示屏基本遍布所有的服務(wù)區(qū),出行網(wǎng)訪問(wèn)量也逐漸增多,高速管理部門和高速出行車主使用反饋良好,該系統(tǒng)運(yùn)行穩(wěn)定、功能完整、方便快捷。
5 結(jié) 語(yǔ)
本文在“互聯(lián)網(wǎng)+”、移動(dòng)互聯(lián)網(wǎng)和智能終端高速發(fā)展的背景下,應(yīng)用多種計(jì)算機(jī)技術(shù)和互聯(lián)網(wǎng)開(kāi)放平臺(tái)技術(shù),實(shí)現(xiàn)基于多平臺(tái)和多終端的高速服務(wù)系統(tǒng),為高速管理部門和高速車主提供即時(shí)、準(zhǔn)確、方便、快捷、全方位的高速信息。高速車主出發(fā)前可通過(guò)PC端和移動(dòng)智能終端提前查詢高速路況,規(guī)劃出行計(jì)劃。在出行途中也可通過(guò)智能手機(jī)和服務(wù)區(qū)多媒體展示屏查詢相關(guān)信息,可以更好地把握出行計(jì)劃,確保出行安全。未來(lái)高速出行必將成為人們?nèi)粘3鲂性絹?lái)越重要的組成部分,在互聯(lián)網(wǎng)技術(shù)的發(fā)展和高速公路基礎(chǔ)設(shè)施完善的基礎(chǔ)上,推廣、應(yīng)用和完善本系統(tǒng)對(duì)于未來(lái)全國(guó)高速信息服務(wù)系統(tǒng)的整合具有一定的借鑒意義,對(duì)“四個(gè)交通”的發(fā)展也有一定的促進(jìn)和推動(dòng)作用。
參考文獻(xiàn)
[1] 羅穎.基于移動(dòng)設(shè)備的高速公路信息服務(wù)系統(tǒng)設(shè)計(jì)[J].中國(guó)交通信息化,2012(7):127?128.
[2] 陳釗正.“互聯(lián)網(wǎng)+”與高速公路應(yīng)用結(jié)合探討[J].中國(guó)交通信息化,2015(7):21?23.
[3] 車春江,郝盛,朱明慧,等.“互聯(lián)網(wǎng)+便捷交通”公路出行服務(wù)思考[J].中國(guó)交通信息化,2016(5):18?22.
[4] 周崇華,高作剛,徐琛,等.基于智能手機(jī)App的交通信息服務(wù)系統(tǒng)規(guī)劃研究[J].交通與運(yùn)輸,2012(12):76?79.
[5] 李日涵,徐廣寧,徐建閩,等.基于APP的公眾出行交通信息服務(wù)系統(tǒng)研究[C]//第八屆中國(guó)智能交通年會(huì)論文集.安徽:中國(guó)智能交通協(xié)會(huì),2013:461?465.
[6] 王玉姣.智慧高速平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)[J].北方交通,2014(12):112?116.
[7] 趙俊鈺,劉芳玉,黃劍琪,等.智慧交通頂層架構(gòu)研究[J].郵電設(shè)計(jì)技術(shù),2013(6):14?18.
[8] 左麟,王磊,李永亮.浙江省智慧高速營(yíng)運(yùn)數(shù)據(jù)管理系統(tǒng)設(shè)計(jì)方案[J].中國(guó)交通信息化,2013(z1):18?21.
[9] 李建,馬琰鋼.浙江省“智慧高速”氣象數(shù)據(jù)交互網(wǎng)絡(luò)設(shè)計(jì)與實(shí)現(xiàn)[J].浙江氣象,2013,34(3):18?19.
[10] 艾勇,譚成予,帖軍,等.基于LNMP架構(gòu)的教學(xué)互動(dòng)平臺(tái)的設(shè)計(jì)[J].科教文匯,2013(25):83?84.