袁永恒
(北京全路通信信號(hào)研究設(shè)計(jì)院集團(tuán)有限公司,北京 100070)
隨著社會(huì)經(jīng)濟(jì)的發(fā)展,城市人口迅速增加,人們對(duì)于生活質(zhì)量的要求逐漸增高,對(duì)出行的舒適性與便利性更加注重。城市與城際軌道交通作為目前重要的出行方式,受到了人們的歡迎,也極大地滿足了市民的日常生活需求。
近幾年互聯(lián)網(wǎng)信息技術(shù)快速發(fā)展與不斷創(chuàng)新,信息技術(shù)也逐漸滲透到日常生活的方方面面,使平時(shí)的生活方式發(fā)生了根本性的改變。伴隨著社會(huì)互聯(lián)網(wǎng)的全面覆蓋,移動(dò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ā)揮著不可替代的作用。
隨著近幾年移動(dòng)互聯(lián)網(wǎng)不斷普及,信息推送技術(shù)也逐漸發(fā)展并成熟,在各大軟件應(yīng)用中的使用率也越來越高。消息推送主動(dòng)地將消息傳送給目標(biāo)客戶端,可以節(jié)省目標(biāo)用戶在網(wǎng)絡(luò)上漫無目的地瀏覽。推送技術(shù)根據(jù)用戶需求,有針對(duì)性地將用戶感興趣的信息推送至用戶的客戶端中。該項(xiàng)技術(shù),廣泛應(yīng)用于各大常用應(yīng)用與各種場景,如出行、娛樂、廣告、景點(diǎn)、新媒體等。推送技術(shù)之所以會(huì)在短時(shí)間內(nèi)獲得快速發(fā)展,取決于其對(duì)用戶要求低、及時(shí)性好、精準(zhǔn)度高以及應(yīng)用場景廣泛等優(yōu)點(diǎn)。
信息推送技術(shù)主要依靠后臺(tái)服務(wù)器根據(jù)接收到的消息,經(jīng)過一定的邏輯判斷與計(jì)算,將服務(wù)器中的信息主動(dòng)推送到前臺(tái)用戶,讓用戶感知。用戶除了預(yù)訂此項(xiàng)技術(shù)服務(wù)外,無需再進(jìn)行任何操作。信息推送技術(shù)的應(yīng)用主要是為了提升用戶的使用體驗(yàn),避免用戶不斷的無效操作。例如系統(tǒng)軟件更新通知,功能變化通知等。
信息推送系統(tǒng)的實(shí)現(xiàn)主要包含以下兩個(gè)方面。
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ā)送郵件的方式,將信息傳遞給訂閱某種特定消息類型的用戶群體與個(gè)人。
網(wǎng)頁推送:在特定的網(wǎng)站頁面中,給感興趣的用戶提供消息服務(wù)。
專用推送:在某種特定環(huán)境下,通過搭建點(diǎn)對(duì)點(diǎn)通信的網(wǎng)絡(luò)環(huán)境,發(fā)送特定信息到指定用戶終端。
移動(dòng)端推送:通過搭建推送服務(wù)端,根據(jù)用戶數(shù)據(jù)與信息,向手機(jī)、平板等可移動(dòng)設(shè)備發(fā)送用戶感興趣的信息。
在乘坐軌道交通工具時(shí),會(huì)產(chǎn)出如用戶基本信息、用戶購票信息等數(shù)據(jù)?;诟鞣N用戶數(shù)據(jù),通過信息推送系統(tǒng)搭建起的服務(wù)端可實(shí)現(xiàn)多個(gè)功能,如用戶進(jìn)站檢票通知、列車發(fā)車通知、線路故障推送、終點(diǎn)站天氣信息推送、站臺(tái)限流通知等。
系統(tǒng)通過獲取后臺(tái)用戶數(shù)據(jù),在列車運(yùn)行過程中,實(shí)時(shí)獲取從軌道交通運(yùn)營公司傳輸?shù)母黜?xiàng)數(shù)據(jù),并將這些數(shù)據(jù)進(jìn)行大量的計(jì)算與比對(duì)。當(dāng)某個(gè)數(shù)據(jù)參數(shù)觸發(fā)特定的事件時(shí),便將此類事件的詳細(xì)信息通過推送系統(tǒng)推送至用戶終端,讓特定用戶提前感知信息,并做好提前準(zhǔn)備,實(shí)現(xiàn)個(gè)性化推送服務(wù)。如在前往目的地的過程中,某一條線路出現(xiàn)故障,推送系統(tǒng)獲取到警報(bào)信息后,將警報(bào)信息發(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)計(jì)。WebSocket在建立起雙工通信后,服務(wù)端能夠?qū)崟r(shí)向客戶端發(fā)送自定義數(shù)據(jù),客戶端能夠?qū)崟r(shí)接收與處理,不用主動(dòng)刷新或輪詢,只需被動(dòng)接收并顯示即可。
服務(wù)端系統(tǒng)主要由Spring MVC、MyBatis、Spring 3個(gè)開源框架搭建而成,即SSM框架。SSM框架因其優(yōu)秀的可維護(hù)性和復(fù)用性,已成為當(dāng)前多數(shù)Web應(yīng)用的首要選擇??紤]到個(gè)性化信息推送系統(tǒng)需要高穩(wěn)定性與較好的可移植性,因此系統(tǒng)后臺(tái)服務(wù)開發(fā)框架選擇SSM框架。數(shù)據(jù)庫則采用MySQL,服務(wù)端發(fā)布環(huán)境為Linux??蚣芙Y(jié)構(gòu)如圖1所示。
圖1 服務(wù)端框架Fig.1 Server framework
客戶端界面主要采用VUE.js框架來開發(fā),Vue.js是一個(gè)輕量級(jí)的前端MVVM框架,具有高性能、靈活性強(qiáng)的特點(diǎn)。此框架采用了一種虛擬DOM內(nèi)部機(jī)制,極大減少前端系統(tǒng)的開發(fā)時(shí)間、降低研發(fā)人員的功能設(shè)計(jì)難度。客戶端框架結(jié)構(gòu)如圖2所示。
圖2 客戶端框架Fig.2 Client framework
基于軌道交通的個(gè)性化信息推送系統(tǒng)基本開發(fā)功能主要包括用戶管理功能、智能信息推送功能、消息中心存儲(chǔ)、歷史行程查看等。
考慮到乘客買票與乘坐過程會(huì)出現(xiàn)的情況,系統(tǒng)完成消息內(nèi)容篩選、推送目標(biāo)自動(dòng)選擇等功能設(shè)計(jì),并在數(shù)據(jù)庫建表時(shí)考慮到用戶習(xí)慣,建立消息中心存放歷史消息內(nèi)容,方便用戶回溯歷史消息與記錄。
系統(tǒng)在業(yè)務(wù)層(Service)中將推送所做的工具類進(jìn)行集成,方便在特定條件下觸發(fā)相對(duì)應(yīng)功能。其中工具類在調(diào)用Push接口時(shí),可設(shè)置發(fā)送目標(biāo)群體別稱(在本系統(tǒng)中為用戶號(hào)),可設(shè)置目標(biāo)群體的標(biāo)簽組合(在本系統(tǒng)中為同一列車號(hào))以及可選的推送目標(biāo)平臺(tái)等。推送信息在發(fā)送過程中可直接存儲(chǔ)至數(shù)據(jù)庫的消息中心列表中。
通過前端框架開發(fā)出的移動(dòng)客戶端,并在客戶端中設(shè)置推送相關(guān)的關(guān)鍵參數(shù)值,如AppKey,TargetAlias,targetTag等,使客戶端具有唯一確定的接收推送信息的標(biāo)志符,再結(jié)合用戶的票務(wù)信息與GPS地理位置信息,實(shí)現(xiàn)列車進(jìn)站信息提醒、檢票通知、列車發(fā)車通知、線路故障通知、天氣信息提醒等。在后臺(tái)系統(tǒng)獲取數(shù)據(jù)信息,并達(dá)到推送出發(fā)條件時(shí),推送工具便將信息實(shí)時(shí)傳遞至用戶,并彈出進(jìn)行提示,效果如圖3所示。
圖3 客戶端推送效果Fig.3 Client push effect
采用基于WebSocket的實(shí)時(shí)通信技術(shù),并結(jié)合基于SSM框架開發(fā)的服務(wù)端與基于Vue.js開發(fā)的客戶端,構(gòu)建出一套基于軌道交通的個(gè)性化信息推送系統(tǒng)。此系統(tǒng)經(jīng)過多方面測試,具有效應(yīng)速度快、魯棒性高、性能穩(wěn)定的特點(diǎn)。