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