袁永恒
(北京全路通信信號研究設(shè)計院集團(tuán)有限公司,北京 100070)
隨著社會經(jīng)濟(jì)的發(fā)展,城市人口迅速增加,人們對于生活質(zhì)量的要求逐漸增高,對出行的舒適性與便利性更加注重。城市與城際軌道交通作為目前重要的出行方式,受到了人們的歡迎,也極大地滿足了市民的日常生活需求。
近幾年互聯(lián)網(wǎng)信息技術(shù)快速發(fā)展與不斷創(chuàng)新,信息技術(shù)也逐漸滲透到日常生活的方方面面,使平時的生活方式發(fā)生了根本性的改變。伴隨著社會互聯(lián)網(wǎng)的全面覆蓋,移動互聯(lián)網(wǎng)的全面普及,信息技術(shù)也在深刻地影響著軌道交通的發(fā)展。結(jié)合互聯(lián)網(wǎng)信息技術(shù)的軌道交通智能化系統(tǒng)不僅能夠提高列車的運(yùn)營效率與安全,更能提升人們所乘坐的軌道交通工具的舒適性與安全性;無論在日常的城市出行亦或城際出行,信息技術(shù)都在為軌道交通行業(yè)持續(xù)服務(wù),提升其發(fā)展速度與創(chuàng)新,并發(fā)揮著不可替代的作用。
隨著近幾年移動互聯(lián)網(wǎng)不斷普及,信息推送技術(shù)也逐漸發(fā)展并成熟,在各大軟件應(yīng)用中的使用率也越來越高。消息推送主動地將消息傳送給目標(biāo)客戶端,可以節(jié)省目標(biāo)用戶在網(wǎng)絡(luò)上漫無目的地瀏覽。推送技術(shù)根據(jù)用戶需求,有針對性地將用戶感興趣的信息推送至用戶的客戶端中。該項(xiàng)技術(shù),廣泛應(yīng)用于各大常用應(yīng)用與各種場景,如出行、娛樂、廣告、景點(diǎn)、新媒體等。推送技術(shù)之所以會在短時間內(nèi)獲得快速發(fā)展,取決于其對用戶要求低、及時性好、精準(zhǔn)度高以及應(yīng)用場景廣泛等優(yōu)點(diǎn)。
信息推送技術(shù)主要依靠后臺服務(wù)器根據(jù)接收到的消息,經(jīng)過一定的邏輯判斷與計算,將服務(wù)器中的信息主動推送到前臺用戶,讓用戶感知。用戶除了預(yù)訂此項(xiàng)技術(shù)服務(wù)外,無需再進(jìn)行任何操作。信息推送技術(shù)的應(yīng)用主要是為了提升用戶的使用體驗(yàn),避免用戶不斷的無效操作。例如系統(tǒng)軟件更新通知,功能變化通知等。
信息推送系統(tǒng)的實(shí)現(xiàn)主要包含以下兩個方面。
1)Web層消息推送
Web層可使用Socket接口進(jìn)行全雙工的通信服務(wù),超文本傳輸協(xié)議(Hyper Text Transfer Protocol,HTTP)的簡單輪詢、長輪詢、http流或Html5 WebSocket等。
2)服務(wù)端的消息分發(fā)
服務(wù)端的設(shè)置需搭建起與Web層配套的消息傳輸通道,再配合Web的雙工通信,確定傳輸目標(biāo),實(shí)現(xiàn)精準(zhǔn)消息發(fā)送以及群組分發(fā)。
目前信息推送的方式主要有以下幾種。
郵件式推送:通過發(fā)送郵件的方式,將信息傳遞給訂閱某種特定消息類型的用戶群體與個人。
網(wǎng)頁推送:在特定的網(wǎng)站頁面中,給感興趣的用戶提供消息服務(wù)。
專用推送:在某種特定環(huán)境下,通過搭建點(diǎn)對點(diǎn)通信的網(wǎng)絡(luò)環(huán)境,發(fā)送特定信息到指定用戶終端。
移動端推送:通過搭建推送服務(wù)端,根據(jù)用戶數(shù)據(jù)與信息,向手機(jī)、平板等可移動設(shè)備發(fā)送用戶感興趣的信息。
在乘坐軌道交通工具時,會產(chǎn)出如用戶基本信息、用戶購票信息等數(shù)據(jù)。基于各種用戶數(shù)據(jù),通過信息推送系統(tǒng)搭建起的服務(wù)端可實(shí)現(xiàn)多個功能,如用戶進(jìn)站檢票通知、列車發(fā)車通知、線路故障推送、終點(diǎn)站天氣信息推送、站臺限流通知等。
系統(tǒng)通過獲取后臺用戶數(shù)據(jù),在列車運(yùn)行過程中,實(shí)時獲取從軌道交通運(yùn)營公司傳輸?shù)母黜?xiàng)數(shù)據(jù),并將這些數(shù)據(jù)進(jìn)行大量的計算與比對。當(dāng)某個數(shù)據(jù)參數(shù)觸發(fā)特定的事件時,便將此類事件的詳細(xì)信息通過推送系統(tǒng)推送至用戶終端,讓特定用戶提前感知信息,并做好提前準(zhǔn)備,實(shí)現(xiàn)個性化推送服務(wù)。如在前往目的地的過程中,某一條線路出現(xiàn)故障,推送系統(tǒng)獲取到警報信息后,將警報信息發(fā)送至這一條線路上的所有乘客,使其提前感知。
系統(tǒng)主要采用目前常用的B/S架構(gòu)來搭建服務(wù)端與客戶端。數(shù)據(jù)庫采用MySQL;客戶端則采用Android手機(jī)與IOS手機(jī)作為客戶端,在開發(fā)過程中能很好的集成匹配推送相關(guān)組件,提高開發(fā)效率。
推送功能則采用基于WebSocket全雙工通信的工具進(jìn)行搭建,可實(shí)現(xiàn)精準(zhǔn)推送、用戶分群推送、自定義消息、富媒體以及數(shù)據(jù)統(tǒng)計。WebSocket在建立起雙工通信后,服務(wù)端能夠?qū)崟r向客戶端發(fā)送自定義數(shù)據(jù),客戶端能夠?qū)崟r接收與處理,不用主動刷新或輪詢,只需被動接收并顯示即可。
服務(wù)端系統(tǒng)主要由Spring MVC、MyBatis、Spring 3個開源框架搭建而成,即SSM框架。SSM框架因其優(yōu)秀的可維護(hù)性和復(fù)用性,已成為當(dāng)前多數(shù)Web應(yīng)用的首要選擇。考慮到個性化信息推送系統(tǒng)需要高穩(wěn)定性與較好的可移植性,因此系統(tǒng)后臺服務(wù)開發(fā)框架選擇SSM框架。數(shù)據(jù)庫則采用MySQL,服務(wù)端發(fā)布環(huán)境為Linux。框架結(jié)構(gòu)如圖1所示。

圖1 服務(wù)端框架Fig.1 Server framework
客戶端界面主要采用VUE.js框架來開發(fā),Vue.js是一個輕量級的前端MVVM框架,具有高性能、靈活性強(qiáng)的特點(diǎn)。此框架采用了一種虛擬DOM內(nèi)部機(jī)制,極大減少前端系統(tǒng)的開發(fā)時間、降低研發(fā)人員的功能設(shè)計難度。客戶端框架結(jié)構(gòu)如圖2所示。

圖2 客戶端框架Fig.2 Client framework
基于軌道交通的個性化信息推送系統(tǒng)基本開發(fā)功能主要包括用戶管理功能、智能信息推送功能、消息中心存儲、歷史行程查看等。
考慮到乘客買票與乘坐過程會出現(xiàn)的情況,系統(tǒng)完成消息內(nèi)容篩選、推送目標(biāo)自動選擇等功能設(shè)計,并在數(shù)據(jù)庫建表時考慮到用戶習(xí)慣,建立消息中心存放歷史消息內(nèi)容,方便用戶回溯歷史消息與記錄。
系統(tǒng)在業(yè)務(wù)層(Service)中將推送所做的工具類進(jìn)行集成,方便在特定條件下觸發(fā)相對應(yīng)功能。其中工具類在調(diào)用Push接口時,可設(shè)置發(fā)送目標(biāo)群體別稱(在本系統(tǒng)中為用戶號),可設(shè)置目標(biāo)群體的標(biāo)簽組合(在本系統(tǒng)中為同一列車號)以及可選的推送目標(biāo)平臺等。推送信息在發(fā)送過程中可直接存儲至數(shù)據(jù)庫的消息中心列表中。
通過前端框架開發(fā)出的移動客戶端,并在客戶端中設(shè)置推送相關(guān)的關(guān)鍵參數(shù)值,如AppKey,TargetAlias,targetTag等,使客戶端具有唯一確定的接收推送信息的標(biāo)志符,再結(jié)合用戶的票務(wù)信息與GPS地理位置信息,實(shí)現(xiàn)列車進(jìn)站信息提醒、檢票通知、列車發(fā)車通知、線路故障通知、天氣信息提醒等。在后臺系統(tǒng)獲取數(shù)據(jù)信息,并達(dá)到推送出發(fā)條件時,推送工具便將信息實(shí)時傳遞至用戶,并彈出進(jìn)行提示,效果如圖3所示。

圖3 客戶端推送效果Fig.3 Client push effect
采用基于WebSocket的實(shí)時通信技術(shù),并結(jié)合基于SSM框架開發(fā)的服務(wù)端與基于Vue.js開發(fā)的客戶端,構(gòu)建出一套基于軌道交通的個性化信息推送系統(tǒng)。此系統(tǒng)經(jīng)過多方面測試,具有效應(yīng)速度快、魯棒性高、性能穩(wěn)定的特點(diǎn)。