劉寧 李祥璞 夏凌云
摘 要:對(duì)基于校園無線網(wǎng)絡(luò)所實(shí)現(xiàn)的服務(wù)系統(tǒng)設(shè)計(jì)方案進(jìn)行說明,介紹了LBS服務(wù)在國(guó)內(nèi)外的研究現(xiàn)狀,并從校園無線網(wǎng)絡(luò)架構(gòu),SNMP網(wǎng)絡(luò)協(xié)議,系統(tǒng)開發(fā)框架等方面對(duì)移動(dòng)應(yīng)用系統(tǒng)的開發(fā)原理及背景進(jìn)行介紹,對(duì)無線定位系統(tǒng)實(shí)現(xiàn)的流程進(jìn)行了詳細(xì)闡述。系統(tǒng)最終實(shí)現(xiàn)了對(duì)校園WLAN用戶的無線定位,提供了位置查詢RESTful API供外部調(diào)用、并可進(jìn)行AC設(shè)備管理、AP設(shè)備管理、用戶管理以及日志文件生成與保存等功能。
關(guān)鍵詞: 無線定位; 無線控制器; LBS服務(wù)
中圖分類號(hào): TP 311
文獻(xiàn)標(biāo)志碼: A
Abstract: This paper explains the design of service system based on campus wireless network. Itfirstly introduces the research status of LBS services at home and abroad, and then introduces the development principle and background of mobile application system from the campus wireless network architecture, SNMP network protocol, system development framework. It then implements the wireless positioning system. The system finally realizes wireless positioning for campus WLAN users, provides location query RESTful API for external calls. The system can perform AC device management, AP device management, user management, and log file generation and saving.
Key words: wireless positioning; access controller; LBS services
引言
隨著移動(dòng)互聯(lián)網(wǎng)的發(fā)展以及移動(dòng)設(shè)備的大規(guī)模普及,移動(dòng)應(yīng)用層出不窮,大學(xué)校園信息化建設(shè)也快速發(fā)展,很多學(xué)校都推出了本校的移動(dòng)應(yīng)用,微信公眾平臺(tái)等。隨著WLAN等技術(shù)的應(yīng)用與普及,定位技術(shù)不斷發(fā)展,定位效果也得到了顯著提升,伴隨于此,基于位置的移動(dòng)應(yīng)用服務(wù)開發(fā)得到了廣泛關(guān)注。
目前,國(guó)外LBS服務(wù)主要應(yīng)用于校園地圖定位領(lǐng)域。2006年,Maine大學(xué)便和Rave公司合作,向大學(xué)提供了基于PDA的導(dǎo)航服務(wù)。國(guó)內(nèi)高校中,北京師范大學(xué)研究了智能教室、校園導(dǎo)航和智能圖書館等相關(guān)技術(shù)。北京大學(xué)則建設(shè)了基于室內(nèi)外定位的校園LBS平臺(tái)—LBS-p。
一般來說,主流廠商的無線認(rèn)證系統(tǒng)和無線控制器(AC,Access Controller)會(huì)提供的相應(yīng)的Web Service和SNMP接口,通過這些接口,第三方程序可以獲得接入用戶的身份ID、MAC地址、所屬AP信息,以及相應(yīng)用戶在對(duì)應(yīng)AP上的RSSI信息,通過綜合利用這些信息,第三方系統(tǒng)可以對(duì)用戶的所在位置做出較為準(zhǔn)確的定位。
1 相關(guān)技術(shù)及系統(tǒng)介紹
1.1 校園無線網(wǎng)絡(luò)架構(gòu)
本研究中,中國(guó)石油大學(xué)(華東)已建成采用“扁平化”、“大二層”的網(wǎng)絡(luò)架構(gòu),相比于傳統(tǒng)的3層網(wǎng)絡(luò)架構(gòu)(核心層、匯聚層、接入層),去掉了核心層到匯聚層的邏輯結(jié)構(gòu),接入設(shè)備不再需要維護(hù)復(fù)雜的網(wǎng)絡(luò)協(xié)議,層次更加清晰,易于管理、維護(hù)及拓展。
在2011年之前,學(xué)校便進(jìn)行了教學(xué)區(qū)和室外的無線覆蓋,并于2015年初,再次啟動(dòng)無線網(wǎng)絡(luò)改造計(jì)劃,截至目前,已實(shí)現(xiàn)在教學(xué)區(qū),生活區(qū)的基本無線覆蓋。這為我們開發(fā)實(shí)現(xiàn)基于Wi-Fi的定位服務(wù)系統(tǒng)提供了可能。
無線網(wǎng)絡(luò)架構(gòu)采用了基于二層網(wǎng)絡(luò)連接模式的瘦AP組網(wǎng)方式,瘦AP與無線控制器處于同一個(gè)二層網(wǎng)絡(luò)域中,瘦AP與無線控制器之間通過網(wǎng)絡(luò)中的二層交換機(jī)互聯(lián)[2],如圖1所示。
在瘦AP組網(wǎng)方式中,AP不再承載安全管理、漫游、認(rèn)證等復(fù)雜的業(yè)務(wù)功能,而統(tǒng)一由無線控制器來承擔(dān)復(fù)雜的功能,為無線網(wǎng)提供統(tǒng)一的管理接口,瘦AP通過隧道技術(shù)與無線控制器進(jìn)行通信,可實(shí)現(xiàn)對(duì)無線網(wǎng)的統(tǒng)一管理。使用瘦AP組網(wǎng)方式還使得無線網(wǎng)絡(luò)的擴(kuò)展變得更加方便快捷,通過瘦AP堆疊技術(shù),可實(shí)現(xiàn)快速組網(wǎng)。
SAM+是一套基于標(biāo)準(zhǔn)的RADIUS協(xié)議開發(fā)的認(rèn)證計(jì)費(fèi)系統(tǒng),融合了802.1X、WEB、PPPoE、IPoE、遠(yuǎn)程VPN等接入認(rèn)證方式[2]。
我校采用基于CAS的校園統(tǒng)一身份認(rèn)證,用戶通過一套賬號(hào)密碼可以訪問校內(nèi)的大多數(shù)資源。校內(nèi)網(wǎng)絡(luò)認(rèn)證采用的也是統(tǒng)一的身份認(rèn)證,這為系統(tǒng)通過用戶的賬戶獲知到用戶的身份信息提供了可能。校園用戶連接到校園網(wǎng)后,會(huì)通過一套基于RADIUS協(xié)議開發(fā)的認(rèn)證計(jì)費(fèi)管理系統(tǒng)SAM+進(jìn)行身份認(rèn)證,SAM+支持基于802.1X和Web的無感知認(rèn)證,用戶一次認(rèn)證之后,后續(xù)免認(rèn)證,使用該系統(tǒng)所提供的WebService,可以通過學(xué)工號(hào)讀取目標(biāo)用戶校園網(wǎng)的在線狀態(tài),為后續(xù)定位提供必要的數(shù)據(jù)。在本次設(shè)計(jì)的系統(tǒng)中,我們通過建立用戶的賬戶與其網(wǎng)絡(luò)在線設(shè)備的映射關(guān)系,提供基于位置的服務(wù)。
1.2 SNMP協(xié)議(Simple Network Management Protocol)
簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議(SNMP)是一種Internet標(biāo)準(zhǔn)協(xié)議,用于收集和組織IP網(wǎng)絡(luò)上被管理設(shè)備的信息,并修改這些信息以改變?cè)O(shè)備行為[3]。通常支持snmp的設(shè)備包括電纜調(diào)制解調(diào)器、路由器、交換機(jī)、服務(wù)器、工作站、打印機(jī)等等。SNMP是Internet工程任務(wù)組(IETF)定義的Internet協(xié)議套件的一個(gè)組件。它由一組網(wǎng)絡(luò)管理標(biāo)準(zhǔn)組成,包括應(yīng)用層協(xié)議、數(shù)據(jù)庫模式和一組數(shù)據(jù)對(duì)象。
SNMP網(wǎng)絡(luò)管理模型采用客戶/服務(wù)器的組織模式,管理工作站(NMS)充當(dāng)客戶方,而裝備了SNMP代理(SNMP Agent)的被管理節(jié)點(diǎn)擔(dān)任服務(wù)器方[4]。兩者通信主要包括三種方式:
1) GET操作,管理站查詢被管理設(shè)備的狀態(tài)信息;
2) SET操作,管理站配置或修改被管理設(shè)備的參數(shù);
3) Trap操作,被管理設(shè)備主動(dòng)向管理站發(fā)送消息,一般用于告警。
SNMP代理可提供具有唯一標(biāo)識(shí)的鍵值OID,它是通過一種按照層次化格式組織的、樹狀結(jié)構(gòu)中的唯一地址來表示的,由于OID非常長(zhǎng),難以記憶,所有SNMP還提供了MIB,可以將數(shù)字OID翻譯為可讀的格式,集合了代理進(jìn)程所有的可查詢和修改的參數(shù)與OID的一一映射關(guān)系,可通過構(gòu)造OID查詢被管理設(shè)備的參數(shù),如MAC地址,IPv4地址、IPv6地址等。
2 定位服務(wù)系統(tǒng)實(shí)現(xiàn)
2.1 前端實(shí)現(xiàn)
前端采用Vue.js框架進(jìn)行開發(fā)。主要實(shí)現(xiàn)無線定位的管理,一共分為登錄模塊、接口測(cè)試模塊、AC管理模塊、AP管理模塊、用戶管理模塊等5個(gè)模塊,如圖2所示。
AP、AC管理模塊用于AP、AC設(shè)備信息的查詢展示,并支持修改、添加及刪除操作,用戶管理模塊用于管理服務(wù)應(yīng)用的用戶,支持通過學(xué)號(hào)等進(jìn)行用戶的查詢,并可在線對(duì)用戶信息進(jìn)行修改、增加、刪除。
接口模塊是系統(tǒng)提供的主要功能,可以為應(yīng)用、設(shè)備等提供位置查詢服務(wù)API。接口采用RESTful風(fēng)格。REST是一種以資源為中心,任何事物只要具有被引用的必要,它就是一個(gè)資源,在REST的世界中,每個(gè)資源必須至少有一個(gè)統(tǒng)一資源標(biāo)識(shí)符URL。URL既是資源名稱,也是資源地址[5]。
接口測(cè)試模塊作為系統(tǒng)的主要功能,向外提供的接口都是滿足REST規(guī)范和原則的。通過事先規(guī)定的請(qǐng)求方式以及請(qǐng)求參數(shù)如使用學(xué)工號(hào)向RESTful接口發(fā)出GET請(qǐng)求,可以獲到以json格式返回的該學(xué)工號(hào)對(duì)應(yīng)的校園網(wǎng)用戶位置等。
2.2 后端實(shí)現(xiàn)
后端采用SpringMVC實(shí)現(xiàn),分為Sam+模塊,定位模塊,AC管理模塊,用戶管理模塊等。管理員通過登錄頁面登錄成功后,可通過學(xué)工號(hào)獲取校園網(wǎng)在線用戶的位置,在線管理AC設(shè)備。通過SNMP協(xié)議獲取AP信息,可對(duì)數(shù)據(jù)庫中的AP及AC進(jìn)行增刪改查操作,如圖3所示。
2.2.1 后端關(guān)系模型設(shè)計(jì)
后端關(guān)系模型分為兩個(gè)模塊,Mysql數(shù)據(jù)庫模塊與Redis數(shù)據(jù)庫模塊。
Mysql數(shù)據(jù)庫模塊中會(huì)建立3個(gè)關(guān)系模型,分別記錄用戶、AC以及AP的信息,同時(shí)AP與AC通過AC-ID字段建立相關(guān)聯(lián)關(guān)系。數(shù)據(jù)庫的概念結(jié)構(gòu)設(shè)計(jì)及E-R圖,如圖4所示。
用戶(用戶名,密碼,姓名,手機(jī)號(hào),用戶類型)
AC(AC-ID,AC名,AC-IP)
AP(AP-ID,AP-MAC,AP名稱,AP位置,AC-ID)
數(shù)據(jù)庫中AC的信息在系統(tǒng)第一次啟動(dòng)時(shí)通過“SAM+”平臺(tái)提供的WebService獲取,AP的信息則基于SNMP協(xié)議通過AC獲取。MySQL數(shù)據(jù)庫是為了實(shí)現(xiàn)AP、AC的管理功能,同時(shí)記錄AP-AC之間的對(duì)應(yīng)關(guān)系。
Redis數(shù)據(jù)庫模塊通過周期性維護(hù)AC-AP、MAC-AP關(guān)系數(shù)據(jù)庫,實(shí)現(xiàn)對(duì)后端定位功能的支持。Redis是一種Key-Value類型的內(nèi)存數(shù)據(jù)庫產(chǎn)品,支持字符串、鏈表、集合、哈希等多種數(shù)據(jù)結(jié)構(gòu),Redis數(shù)據(jù)庫基于內(nèi)存的特性使其具有優(yōu)秀的讀操作速度,查詢速度可達(dá)納秒級(jí)[6],可支持系統(tǒng)提供快速高效的位置定位服務(wù),同時(shí),Redis具有持久化特性,它通過將內(nèi)存中的數(shù)據(jù)保存到磁盤來持久化,憑借這個(gè)特性,系統(tǒng)可以周期性地將內(nèi)存中保存的AP-MAC對(duì)應(yīng)關(guān)系保存到磁盤或日志文件當(dāng)中。
AC-AP關(guān)系模型記錄全校AC與在該AC管理下的AP的對(duì)應(yīng)關(guān)系,在系統(tǒng)第一次啟動(dòng)時(shí)將通過MySQL數(shù)據(jù)庫中的AC、AP表進(jìn)行初始化,MAC-AP關(guān)系模型記錄當(dāng)前全校所有AP與連接到該AP上所有設(shè)備的網(wǎng)卡的MAC地址之間的對(duì)應(yīng)關(guān)系,主要功能是通過MAC地址快速獲取到對(duì)應(yīng)AP的信息如AP-ID等,該數(shù)據(jù)庫信息通過SNMP協(xié)議周期性維護(hù),定時(shí)刷新,以確保定位服務(wù)的準(zhǔn)確性。
2.2.2 定位邏輯實(shí)現(xiàn)
后端服務(wù)核心功能主要包括兩部分,通過SAM+的無線狀態(tài)檢測(cè)及基于WLAN的定位。
SAM+管理平臺(tái)通過無線控制器對(duì)整個(gè)校園網(wǎng)的網(wǎng)絡(luò)節(jié)點(diǎn)進(jìn)行管理,基于無線交換機(jī)+瘦AP的網(wǎng)絡(luò)架構(gòu),可獲取校園網(wǎng)用戶的在線狀態(tài),在線設(shè)備MAC地址,內(nèi)網(wǎng)IPv4地址,IPv6地址等。
校園網(wǎng)用戶狀態(tài)信息分為三類:?jiǎn)卧O(shè)備在線狀態(tài);多設(shè)備在線狀態(tài);③離線狀態(tài);當(dāng)用戶狀態(tài)為離線狀態(tài)時(shí),則通過SAM+平臺(tái)獲取用戶最近一次登錄時(shí)的狀態(tài)信息;若用戶為單設(shè)備在線狀態(tài),則返回當(dāng)前登錄狀態(tài)下的具體信息;若用戶為多設(shè)備在線狀態(tài),則根據(jù)服務(wù)請(qǐng)求的設(shè)備來源,返回相關(guān)登錄設(shè)備具體的狀態(tài)信息。
SAM+平臺(tái)提供對(duì)外的WebService,系統(tǒng)可通過學(xué)工號(hào)訪問WebService獲取在校師生WLAN在線狀態(tài)[7],在線設(shè)備MAC地址,IP地址等。
WLAN定位的物理環(huán)境是基于學(xué)校校園無線網(wǎng)絡(luò),由于AP設(shè)備在校園內(nèi)的密集部署,所以可通過定位用戶所使用的AP設(shè)備來獲知用戶的大體位置。通過SAM+,可以獲得校園網(wǎng)用戶設(shè)備的MAC地址及IPv4、IPv6地址,通過MAC地址或IPv4、IPv6地址,查詢系統(tǒng)Redis數(shù)據(jù)庫,可快速得到用戶設(shè)備網(wǎng)卡MAC地址所對(duì)應(yīng)的AP設(shè)備信息。然后通過查詢后臺(tái)初始化時(shí)所構(gòu)造的AP表返回對(duì)應(yīng)AP所在的位置,即可獲知用戶所在的大體位置,效果最好可精確到教室。
在AP設(shè)備較稀疏的地方如室外,目前通過兩種方案解決:系統(tǒng)采用基于所連接AP及Wi-Fi信號(hào)強(qiáng)度相結(jié)合的技術(shù)來進(jìn)行定位,將信號(hào)強(qiáng)度轉(zhuǎn)換為距離來推測(cè)用戶所在的位置,達(dá)到較好的定位效果。通過位置指紋定位,依據(jù)用戶設(shè)備所處位置的位置指紋信息,查詢位置指紋庫,根據(jù)相應(yīng)的匹配算法,估計(jì)終端所處的位置。因?yàn)橥ㄟ^SAM+系統(tǒng)可獲得RSSI信息,所以可以通過RSSI實(shí)現(xiàn)定位。
2.2.3 周期性生成日志文件
隨著互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,每天都會(huì)產(chǎn)生大量的用戶行為數(shù)據(jù),在其中潛藏著大量有價(jià)值的信息,通過借助大數(shù)據(jù)技術(shù),可以對(duì)這些數(shù)據(jù)進(jìn)行實(shí)時(shí)搜集、統(tǒng)計(jì)和分析,從而挖掘用戶的有效信息,為師生提供更為優(yōu)質(zhì)的服務(wù)。所以作為一個(gè)完備的系統(tǒng),需要在后端提供生成并保存日志文件的功能。
日志文件主要記錄了某一時(shí)刻所有校園網(wǎng)用戶的MAC地址與AP的對(duì)應(yīng)關(guān)系,日志文件的數(shù)據(jù)主要從Redis數(shù)據(jù)庫中獲得,日志文件的生成是周期性地,每隔一個(gè)固定的時(shí)間段,對(duì)Redis數(shù)據(jù)庫MAC-AP關(guān)系模型進(jìn)行導(dǎo)出操作,獲取其中所有的信息,并保存至磁盤當(dāng)中。
3 總結(jié)
基于校園無線和認(rèn)證系統(tǒng)的定位系統(tǒng)以校園網(wǎng)用戶的學(xué)工號(hào)等信息作為查詢條件,并通過獲得其在線設(shè)備所對(duì)應(yīng)的MAC地址、IPv4地址及IPv6地址,進(jìn)而基于SNMP協(xié)議、最近AP算法、位置指紋算法等實(shí)現(xiàn)對(duì)用戶的精準(zhǔn)定位功能,并以簡(jiǎn)明扼要、可拓展性強(qiáng)的RESTful接口,向其它應(yīng)用、設(shè)備等提供位置查詢服務(wù)。在下一步的工作中,將會(huì)在該系統(tǒng)的基礎(chǔ)上設(shè)計(jì)基于位置服務(wù)的應(yīng)用,為師生提供更好的服務(wù),同時(shí),借助該系統(tǒng)的日志生成功能,得到校園網(wǎng)用戶產(chǎn)生的海量數(shù)據(jù),使用Hadoop+Flume的方式收集保存下來的日志文件,將數(shù)據(jù)集成到大數(shù)據(jù)平臺(tái)中進(jìn)行統(tǒng)計(jì)、分析,挖掘其中所潛藏的價(jià)值。
參考文獻(xiàn)
[1] Kolodziej K W, Hjelm J. Local Positioning Systems: LBS Applications and Services[M]. Boca Raton: CRC Press, 2006:101-158.
[2] 王春雁.極致體驗(yàn),簡(jiǎn)易運(yùn)營(yíng),銳捷網(wǎng)絡(luò)推出新一代認(rèn)證計(jì)費(fèi)管理平臺(tái)SAM+[J].中國(guó)教育信息化,2015(24):86.
[3] 宋鵬. 基于瘦AP組網(wǎng)方式的高校無線校園網(wǎng)的研究與設(shè)計(jì)[D]. 長(zhǎng)沙:湖南大學(xué), 2013.
[4] 謝希仁.計(jì)算機(jī)網(wǎng)絡(luò)[M]. (第六版).北京:電子工業(yè)出版社,2013.
[5] 潘冰.面向資源的RESTful Web應(yīng)用研究[J].微計(jì)算機(jī)應(yīng)用,2010,31(7):38-43.
[6] 郎泓鈺,任永功.基于Redis內(nèi)存數(shù)據(jù)庫的快速查找算法[J].計(jì)算機(jī)應(yīng)用與軟件,2016,33(5):40-43.
[7] Stallings W. SNMP and SNMPv2: the infrastructure for network management[J]. IEEE Communications Magazine, 1998, 36(3):37-43.
(收稿日期: 2019.08.10)