袁永衛,鄭迎春,李 博
(1.衛星導航系統與裝備技術國家重點實驗室,石家莊 050081;2.中國電子科技集團公司第五十四研究所,石家莊 050081)
在我國旅游產業快速發展過程中,諸多問題日益突出,嚴重阻礙了我國旅游產業的發展:景區管理信息化水平落后,節假日游客擁堵現象嚴重;部分景區追求利益最大化,游客接待量遠超景區承載能力,對景區生態環境造成巨大壓力;全域范圍內的綜合服務有待提升,游客體驗差;突發事件頻發,缺乏有效的應急保障手段等。由于景區具有業務邏輯復雜游客量大的特點,為了滿足游客位置服務的客觀需求,使系統具有可用性,該系統必須具備高效的數據管理、統一的位置數據服務、為了有效地解決以上問題,文中提出了利用北斗、4G、Wi-Fi 等定位手段,基于多源位置數據融合、滿足高并發響應需求,構建了統一的綜合位置服務協議、搭建了基于負載均衡的北斗全域旅游綜合位置服務平臺,服務于當前全域智慧旅游的發展現實需求,對解決旅游產業發展過程中存在的問題以及推動全域旅游建設具有重要意義。
北斗全域旅游綜合位置服務平臺是北斗全域智慧旅游綜合位置服務系統建設的關鍵環節,是全域旅游其他應用平臺的支撐平臺,主要為各應用系統提供安全、可監管的綜合位置服務[1],滿足海量位置數據實時采集與存儲、位置數據統計與分析、高并發訪問的需求等[2]。平臺完整架構如圖1所示,主要由空間信息服務平臺、位置服務處理平臺和位置服務應用開發三部分組成。

圖1 全域旅游綜合位置服務平臺架構圖
北斗全域旅游綜合位置服務平臺采用云架構的方式來搭建綜合位置服務平臺,以PaaS(平臺即服務)的服務模式部署位置服務平臺,實現位置服務平臺的功能性服務,并以訪問接口的方式提供給全域旅游位置服務應用系統使用;位置服務平臺所使用的各種空間數據以DaaS 形式獲取,地圖服務引擎以SaaS(軟件即服務)的服務方式獲取??臻g數據作為位置服務的不可缺少的部分,該平臺下以服務的方式獲取。全域旅游綜合位置服務基于平臺中的位置服務處理平臺開發綜合位置服務應用,將所開發的各種應用程序以SaaS 的形式發布到北斗全域智慧旅游綜合位置服務系統,為游客、景區管理、政府決策提供全域旅游服務。
北斗全域旅游綜合位置服務平臺將采用4層體系結構,從左到右分別為接入層、數據層、響應層和應用層,如圖2所示。

圖2 全域旅游綜合位置服務平臺位體系結構
接入層是對系統當前所支持的各種用戶終端接入方式的一個總體概括,由移動終端和無縫集成網關構成,把不同類型的訪問請求解析成與網絡無關的服務請求,并按照統一格式封裝和發送。終端用戶可以選擇BD2、GPS、Wi-Fi、Internet 等多種方式通過無縫集成網關接入平臺系統,實現對綜合位置服務訪問。
數據層是平臺的數據中心,提供位置信息的管理和調度,同時包含了位置服務信息、用戶信息等。平臺支持依托全域旅游公共資源管理平臺從第三方信息提供者獲取信息、并可集成位置信息內容。例如票務信息、交通數據、旅游信息、天氣信息、旅游促銷活動等,擴充信息來源,提高平臺的服務質量。數據層一方面負責各種數據的集成、管理、查詢和存儲。另一方面負責把接入層中上報的采集數據進行處理、分析和存儲以及根據請求的業務服務操作數據。
響應層是整個平臺系統的核心組成部分,負責與外部資源、外部系統通信。它獨立于具體的各種信息和終端設備,為位置服務應用提供LBS 支撐平臺,提供用戶需要的各種LBS 服務。其主要功能是響應來自應用層的請求,給應用層返回所請求的數據;與數據層進行交互,完成數據的獲取、修改和增加;進行權限判定、統計分析等處理。
應用層提供用戶客戶端需要的各種LBS 業務服務,它是基于位置信息的具體應用,用戶可以在基于平臺建立各種不同的應用服務,比如項目中建設中的其他應用服務平臺:全域旅游景區綜合管理平臺、全域旅游游客體驗平臺、全域旅游公共資源綜合管理平臺、全域旅游微信公眾平臺以及加入全域旅游區域內的餐館信息、賓館信息、商場信息、交通信息等,構成全域旅游的應用圈,構建基于位置的全域旅游運營模式。應用層中的所有應用是基于位置數據服務平臺的系統,向綜合位置服務平臺發送信息請求,然后接收從綜合位置服務平臺處理過的位置信息數據,最后根據自己的業務邏輯進行處理和界面呈現等。
北斗全域旅游綜合位置服務平臺主體功能是面向全域旅游應用終端與平臺提供完整的位置服務[3]。一個完整的位置服務過程,除了終端需要接入平臺,整個過程中還需要調用地理信息處理、權限判定、統計分析等多種業務。平臺以位置服務模塊為核心進行部署結合終端適配模塊、空間數據、權限判定、統計分析等外圍功能模塊,為應用層提供統一的服務。核心模塊與外圍模塊構成了整個平臺的主要功能框架,如圖3所示:

圖3 北斗全域旅游綜合位置服務平臺組成
平臺各個功能采用模塊化的設計,確保平臺中各個模塊的功能相互獨立,各模塊之間的通信順暢。
位置服務模塊:位置服務模塊是平臺最重要的組成部分,也是平臺的核心模塊。解析終端用戶或應用平臺請求,對其進行鑒權,通過鑒權后才進行會話連接和資源分配,然后調動相應的外圍模塊執行每個具體的應用服務。
終端適配模塊:終端適配模塊是數據層和接入層的接口,負責兩層之間的信息交互,處理并轉發來自移動終端的所有的服務請求。
定位模塊:定位模塊為平臺提供對各類移動終端的定位功能,負責以合適的信息格式為平臺提供各類移動終端的位置信息。
空間數據模塊:空間數據模塊與地理信息引擎相連接,提供與地理信息數據庫的信息交互以及管理的功能。
權限模塊:權限模塊提供對全域旅游用戶和綜合位置服務的各種權限的管理,最大程度保護平臺數據安全。
管理模塊:管理模塊提供對全域旅游用戶信息的管理、系統配置管理、終端設備管理等,實現對平臺軟件運行過程中的操作維護。
業務應用接口模塊:業務應用接口提供一系列開放接口提供給應用層應用系統一個開放的位置服務應用開發環境,平臺利用疊加協議技術,以JSON 協議為基礎實現可擴展的,靈活的統一位置服務通信協議設計。為支撐能支持全域旅游位置服務應用的開發,平臺接口設計包括了終端通信接入類接口、位置服務類接口、設備管理類接口、權限管理類接口、電子圍欄類接口、地圖服務類接口等。
2.4.1 多源位置數據融合
終端位置信息包括定位信息和屬性,由于終端本身多樣化,需要對這些位置信息進行分類或分級處理,更需要對多源位置信息進行融合處理[4]。多源位置信息進行融合處理需要對位置數據進行預處理,將各種不同的位置數據進行綜合、提取、格式轉換等操作,并按照統一的協議標準進行加工處理和存儲,形成統一的、規范的、可利用的綜合信息。
2.4.2 高并發請求的快速響應
北斗全域旅游綜合位置服務平臺,為全域旅游上層應用提供全面的位置服務接口,服務受眾包括游客、景區管理部門以及政府決策人員。全域旅游位置數據以及相關數據是海量的,每天面臨幾萬、十萬、甚至百萬次的查詢請求。平臺面臨位置大數據核心服務能力要滿足用戶的高并發請求,并能夠快速的響應用戶的請求問題。為了更好地滿足用戶體驗[5],實現更加智能位置服務,更加高效的數據查詢,基于高并發請求的快速響應技術為平臺設計中的一個難點。
綜合位置服務平臺為滿足北斗全域智慧旅游綜合位置服務系統建設輕量化需求,綜合位置服務協議在調研主流信息交換協議JSON、BSON 與XML 等,綜合比較各種主流協議在可擴展性、量級、語言獨立性、安全性、非結構化數據描述和使用復雜度分析等方面的優缺點,以JSON 協議為基礎設計實現。北斗全域旅游綜合位置服務平臺與應用軟件和應用終端是主要以HTTP 進行數據傳輸,對于整體的數據內容,則采用JSON 數據格式來傳輸數據,可以利用封裝好的協議解析進行消息的封裝和消息的拆包解析,也可以利用第三方的JSON 解析器進行。
3.1.1 協議格式定義
基于傳輸協議,定義開始標識和結束標識,中間部分整個通用消息則用JSON 協議格式來表達,協議格式見表1。

表1 協議基本格式
通過開始標識位和結束標識位,抽取出一個完整的消息,其中,JSON 信息內容進行序列化就可以得到對應的實體類,協議消息實體的內容見表2。

表2 協議消息實體格式
協議將消息對象分為請求消息對象和應答消息對象,并通過信息類型MsgSubType 標識具體內容,用MsgData 字符串承載傳輸不同對象的信息,就構造出了一個通用的消息協議。
3.1.2 統一數據規范
由于系統之間數據交換量很大,包括位置信息、狀態信息、調度信息、統計信息以及應急通信等,為了表示所有這些類型消息,在路由配置模塊設計中已經提到了應用統一的命名規則進行命名。
由于同一種類型的消息要包含所以此類消息的數據,因此,位置服務云平臺與應用系統之間的用JSON 格式數據進行數據交換。正常情況下,各子系統間的數據交換基本以實時位置信息、狀態信息為主,其中有游客的位置信息,車輛的位置信息、游船的位置信息、設備的狀態信息、指揮中心的調度信息、人流密度信息等。以人員、車輛、游船位置信息為例,消息名分別為M01001、M02001和M03001,同時從協議結構和節點屬性兩方面對其進行描述,如下所示。


說明:Data 節點根據具體的協議類型設計為不同信息內容。
北斗全域旅游綜合位置服務平臺遵循平臺的位置服務數據服務協議,數據源主要包括外部系統數據、各類終端感知數據和位置服務應用[6]。綜合位置服務平臺通過發送數據請求從獲取外部信息數據,主要包括交通數據、氣象數據、公安數據、票務數據等公共資源數據[7];各類感知終端,包括北斗終端(北斗車載型終端、北斗手持型終端、北斗指揮型終端)、定位終端、游客手機等,將感知的位置數據和設備狀態等信息上報到北斗全域旅游綜合位置服務平臺;建立在平臺之上的各位置服務應用將相應的位置數據通過位置服務接口上報到北斗全域旅游綜合位置服務平臺。北斗全域旅游綜合位置服務平臺將獲取到的旅游大數據存儲于數據中心的數據存儲設備中。
綜合位置服務平臺為實現高并發處理以及快速響應技術,平臺在設計實現時采用面向高并發請求的服務器負載均衡網絡架構,同時在軟件運行后端利用數據庫讀寫分離提高數據讀寫和檢索效率,提高聯機事物處理性能。
為滿足海量用戶訪問要求,設計了Nginx/Haproxy+Keepalived 方案,為保障平臺的穩定性和可靠性,在單節點處理還能滿足業務要求的情況下,在負載層引入了熱備方案,以保證一個節點在崩潰的情況下,另一個節點能夠自動接替其工作,滿足位置服務應用系統高并發的業務需求。
綜合位置服務平臺架構設計具備開放性特征,采用基于Web API 的數據服務模式,以JSON 格式數據對外提供服務。Web API 是一個理想的構建REST-ful 服務的技術,它可以使用HTTP的全部特點,對各類有帶寬限制的終端設備都能夠非常好的支持,適合構建包括移動端在內的各種端應用服務[8]。結合寧夏中衛全域旅游發展要求,展開全域智慧旅游信息化建設,構建了北斗全域旅游綜合位置服務平臺,平臺部署于中衛市云數據中心,如圖4所示。
全域旅游各應用平臺所需要的綜合位置數據由北斗全域旅游綜合位置服務平臺提供,全域旅游各應用平臺通過請求-響應的模式從綜合位置服務平臺獲取綜合位置服務的查詢結果、統計分析以及權限信息等。

圖4 北斗全域旅游綜合位置服務平臺
北斗的全域旅游綜合位置服務平臺建設是北斗全域智慧旅游綜合位置服務系統建設的核心,平臺繼承了全域旅游的海量綜合位置數據,在數據與服務上有力地支撐了北斗全域智慧旅游綜合位置服務系統。北斗全域旅游綜合位置服務平臺設計,充分考慮中衛市對全域旅游發展的要求,采用最新的技術方法和設計理念,服務于全域旅游以提升游客的旅游質量、提高景區的精細化管理水平、提高景區應急保障能力等,助力寧夏中衛全域旅游發展更好地融入國家“一帶一路”發展建設中。北斗全域旅游綜合位置服務平臺建設,將大力推動北斗在旅游產業中的發展,促進全域旅游產業可持續健康發展,同時,為北斗民用推廣、北斗旅游產業應用起到了重要推動作用。