廖寧 黃錦捷
摘 ?要:本文針對(duì)各高校組織的會(huì)議活動(dòng)采用人工簽到方式存在的低效率、代簽到、易出錯(cuò)等問(wèn)題,提出了智慧校園會(huì)議活動(dòng)一體化管理系統(tǒng)設(shè)計(jì)方案。該方案采用J2EE輕量級(jí)微服務(wù)架構(gòu)進(jìn)行軟件框架設(shè)計(jì),實(shí)現(xiàn)了各種會(huì)議、活動(dòng)的在線申請(qǐng)、審核、預(yù)報(bào)名、簽到考勤、統(tǒng)計(jì)分析的全流程、一體化管理功能,其中基于iBeacon、動(dòng)態(tài)二維碼技術(shù)及微信實(shí)現(xiàn)了多種方式的簽到考勤功能。應(yīng)用結(jié)果表明,該系統(tǒng)大大提高了學(xué)校會(huì)議活動(dòng)管理工作效率,并減少了師生簽到時(shí)的排隊(duì)時(shí)間,提升了師生智慧校園獲得感。
關(guān)鍵詞:智慧校園;微服務(wù)架構(gòu);iBeacon;二維碼;微信;簽到考勤
中圖分類(lèi)號(hào):TP311.1 ? ? ?文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2096-4706(2019)14-0057-03
Design and Implementation of Integrated Conference Management System Based on
iBeacon and Two-Dimensional Code Technology
LIAO Ning,HUANG Jinjie
(School of Electronic and Information Engineering,Heyuan Polytechnic,Heyuan ?517000,China)
Abstract:Aiming at the problems of low efficiency,proxy check-in and error-prone when the conference activities organized by colleges and universities adopt manual check-in mode,this paper puts forward the design scheme of integrated management system for conference activities on intelligent campus. The scheme uses J2EE lightweight micro-service architecture to design the software framework,realizes the whole process and integrated management functions of online application,auditing,forecasting name,check-in attendance,statistical analysis of various meetings and activities,and realizes the check-in and attendance functions in various ways based on iBeacon,dynamic two-dimensional code technology and WeChat. The application results show that the system greatly improves the management efficiency of school conference activities,reduces the queuing time when teachers and students sign in,and improves the sense of acquisition of teachers and students’wisdom campus.
Keywords:intelligent campus;microservice architecture;iBeacon;two-dimensional code;WeChat;check-in attendance
0 ?引 ?言
在各高校學(xué)生學(xué)習(xí)生活中,除了課堂教學(xué)活動(dòng)外,還有大量豐富多彩的各類(lèi)課外活動(dòng),如創(chuàng)新學(xué)分活動(dòng)、第二課堂活動(dòng)、社團(tuán)活動(dòng)、志愿者活動(dòng)及各類(lèi)會(huì)議等。這些活動(dòng)普遍都存在活動(dòng)參與人員多、組織工作繁重的特點(diǎn),且很多都有簽到考勤的需求。傳統(tǒng)的會(huì)議、活動(dòng)簽到大都采用人工紙質(zhì)簽到的方式,由于參加的活動(dòng)人數(shù)眾多,簽到方式落后(學(xué)生排隊(duì)手動(dòng)簽到),簽到效率非常低,且大大增加了活動(dòng)組織者的工作量。因此,如何減輕會(huì)議/活動(dòng)組織者的工作量?如何提高師生參加活動(dòng)時(shí)的簽到效率及準(zhǔn)確性?如何盡量避免學(xué)生替別人簽到?這些都是智慧校園建設(shè)所面臨的亟待解決的問(wèn)題。為解決這些問(wèn)題,本文提出了一個(gè)基于微信、iBeacon及二維碼技術(shù)的高校會(huì)議活動(dòng)一體化系統(tǒng)的設(shè)計(jì)及實(shí)現(xiàn)方案。
1 ?系統(tǒng)關(guān)鍵技術(shù)分析
1.1 ?J2EE輕量級(jí)微服務(wù)架構(gòu)
近年來(lái),J2EE開(kāi)發(fā)主流已漸漸從單體應(yīng)用開(kāi)發(fā)轉(zhuǎn)向微服務(wù)應(yīng)用開(kāi)發(fā),微服務(wù)就是將單一應(yīng)用程序開(kāi)發(fā)為一組小型服務(wù)的方法,每個(gè)服務(wù)運(yùn)行在自己的進(jìn)程中,服務(wù)間采用輕量級(jí)通信機(jī)制(通常為HTTP方式)。各個(gè)服務(wù)可以使用不同的語(yǔ)言進(jìn)行開(kāi)發(fā),使用不同的數(shù)據(jù)存儲(chǔ)技術(shù)[1]。本系統(tǒng)采用Spring Boot微服務(wù)架構(gòu),Spring Boot是由Pivotal團(tuán)隊(duì)提供的全新框架,使用該框架可以簡(jiǎn)化傳統(tǒng)Spring應(yīng)用的搭建以及開(kāi)發(fā)過(guò)程,其具有配置少、開(kāi)箱即用、輕量級(jí)等優(yōu)點(diǎn),是微服務(wù)體系構(gòu)建中必不可少的技術(shù)之一[2]。在Srping Boot基礎(chǔ)上系統(tǒng)還整合了主流的J2EE輕量級(jí)框架組合,主要包括:Spring、SpringMVC、MyBatis、FreeMarker、jquery,以及開(kāi)源的前端JS框架H-UI。
1.2 ?微信企業(yè)號(hào)及其接口開(kāi)發(fā)
微信企業(yè)號(hào)是微信為企業(yè)客戶提供的移動(dòng)服務(wù),旨在提供企業(yè)移動(dòng)應(yīng)用入口[3]。目前微信企業(yè)號(hào)已經(jīng)作為企業(yè)微信的微工作臺(tái),用戶無(wú)須另外下載安裝手機(jī)APP,直接可以方便地從微信中進(jìn)入微信企業(yè)號(hào)。微信企業(yè)號(hào)提供了開(kāi)發(fā)者接口,本系統(tǒng)主要封裝調(diào)用了OAuth身份認(rèn)證接口、微信JS-SDK接口以及搖一搖周邊接口[4]。通過(guò)封裝調(diào)用這些接口,師生可方便地在微信中進(jìn)行搖一搖簽到以及學(xué)校官方企業(yè)號(hào)中進(jìn)行掃描二維碼簽到。
1.3 ?iBeacon技術(shù)
iBeacon是蘋(píng)果公司在iOS7上配備的新功能,可以讓附近的手持電子設(shè)備檢測(cè)到一個(gè)由一個(gè)iBeacon信號(hào)發(fā)射器發(fā)出的藍(lán)牙信號(hào)。它采用了基于藍(lán)牙4.0的低功耗藍(lán)牙技術(shù)(Bluetooth Low Energy,BLE),主要是用作輔助室內(nèi)定位的功能[5]。目前市場(chǎng)上有不少iBeacon設(shè)備,且成本較低,這些設(shè)備耗電量也非常低,一般均可使用3年—5年才需更換電池。且微信企業(yè)號(hào)提供的搖一搖周邊接口可以方便地連通企業(yè)號(hào)與iBeacon設(shè)備。
1.4 ?二維碼技術(shù)
二維條碼(Two-Dimensional Barcode)是用某種特定的幾何圖形按一定規(guī)律,在二維方向上分布的不同色塊相間的圖形記錄數(shù)據(jù)符號(hào)信息的一種技術(shù)方式[6]。本系統(tǒng)二維碼簽到模塊中,采用QR Code來(lái)生成含有加密信息以及10秒動(dòng)態(tài)變化一次的二維碼圖像。QR Code 是1994年由日本Denso公司研制的一種矩陣式二維條碼,是一個(gè)由多個(gè)正方形模塊組成的正方形陣列。
2 ?系統(tǒng)分析與設(shè)計(jì)
2.1 ?整體架構(gòu)設(shè)計(jì)
會(huì)議活動(dòng)一體化管理系統(tǒng)整體架構(gòu)圖如圖1所示。
(1)數(shù)據(jù)持久層:數(shù)據(jù)持久層主要負(fù)責(zé)會(huì)議活動(dòng)系統(tǒng)相關(guān)數(shù)據(jù)的持久化存儲(chǔ),其中系統(tǒng)數(shù)據(jù)庫(kù)通過(guò)Oracl odi中間件保持和學(xué)校大數(shù)據(jù)中心之間的相關(guān)共享數(shù)據(jù)的實(shí)時(shí)同步。而系統(tǒng)數(shù)據(jù)庫(kù)的持久化存儲(chǔ)主要通過(guò)Mybatis ORM實(shí)現(xiàn)。(2)業(yè)務(wù)層:該層主要包括會(huì)議活動(dòng)管理應(yīng)用、簽到應(yīng)用、報(bào)表應(yīng)用、企業(yè)號(hào)對(duì)接應(yīng)用這幾個(gè)核心業(yè)務(wù)邏輯模塊,這些應(yīng)用模塊可能由不同代碼實(shí)現(xiàn),在微服務(wù)架構(gòu)下,這些模塊可靈活部署發(fā)布。各應(yīng)用相互將通過(guò)Services API對(duì)接,并交于SpringMVC統(tǒng)一請(qǐng)求調(diào)用及相互交互,請(qǐng)求結(jié)果通過(guò)Freemarker模版引擎進(jìn)行封裝。另外通過(guò)Quartz實(shí)現(xiàn)定時(shí)批處理任調(diào)度,該層還提供統(tǒng)一的事務(wù)、日志及安全管理服務(wù)。(3)控制層:主要過(guò)Sping Boot統(tǒng)一管理業(yè)務(wù)層各業(yè)務(wù)模塊的熱插拔進(jìn)行部署及服務(wù)發(fā)布,并簡(jiǎn)化各業(yè)務(wù)模塊的配置文件。(4)表示層:該層主要負(fù)責(zé)將業(yè)務(wù)層經(jīng)由控制層響應(yīng)回來(lái)的數(shù)據(jù)進(jìn)行展示,包括HML5、XML及JSON形式,系統(tǒng)采用國(guó)內(nèi)開(kāi)源的JS前端框架:H-UI進(jìn)行頁(yè)面展示。
2.2 ?功能結(jié)構(gòu)設(shè)計(jì)
根據(jù)會(huì)議活動(dòng)一體化管理系統(tǒng)的實(shí)際需求,對(duì)系統(tǒng)進(jìn)行了功能結(jié)構(gòu)設(shè)計(jì),系統(tǒng)各功能模塊說(shuō)明如下:(1)會(huì)議活動(dòng)管理模塊:包括會(huì)議活動(dòng)申請(qǐng)、會(huì)議活動(dòng)審核、會(huì)議活動(dòng)報(bào)名、場(chǎng)地維護(hù)、學(xué)年學(xué)期設(shè)置、簽到設(shè)備管理、活動(dòng)簽到設(shè)置,以及活動(dòng)簽到名單查看導(dǎo)出等功能。(2)活動(dòng)中心管理模塊:包括活動(dòng)詳情、在線報(bào)名、簽到墻展示、我參加的活動(dòng)、我管理的活動(dòng)等功能。(3)系統(tǒng)管理模塊:包括公告通知發(fā)布、模塊管理、角色管理、類(lèi)型歷、用戶管理、部門(mén)管理、日志管理等功能。(4)接口管理模塊:包括企業(yè)號(hào)對(duì)接、公眾號(hào)對(duì)接、小程序?qū)?、基礎(chǔ)數(shù)據(jù)同步以及簽到名單同步等功能。
2.3 ?各種簽到方式對(duì)比分析
系統(tǒng)設(shè)計(jì)了3種簽到方式,學(xué)校會(huì)議活動(dòng)組織者可以根據(jù)實(shí)際情況選擇合適的考勤方式,也可以設(shè)置多種簽到方式,形成組合模式。這3種簽到方式對(duì)比分析如下:(1)微信搖一搖簽到方式說(shuō)明。用戶只需打開(kāi)手機(jī)藍(lán)牙及GPS,然后通過(guò)微信搖一搖即可簽到??梢跃_定位,只有在會(huì)議現(xiàn)場(chǎng)設(shè)定20米—100米內(nèi)才能搖一搖簽到成功?,F(xiàn)場(chǎng)只要攜帶1~2個(gè)iBeacon設(shè)備,無(wú)須網(wǎng)絡(luò)、電源支持,也不需要帶管理電腦及投影設(shè)備等。但有少部分用戶手機(jī)不支持藍(lán)牙4.0以上協(xié)議,可能無(wú)法識(shí)別搖一搖設(shè)備。并且iBeacon設(shè)備有一定成本,是易耗品,一般1年—3年內(nèi)必須要更換電池,有一定維護(hù)成本。(2)掃描活動(dòng)二維碼簽到方式說(shuō)明。不需要另外購(gòu)買(mǎi)終端設(shè)備,成本較低。只要用一臺(tái)電腦在大屏中投影本次活動(dòng)的動(dòng)態(tài)二維碼即可?;顒?dòng)二維碼動(dòng)態(tài)10秒變化一次,比靜態(tài)二維碼更安全。需要會(huì)議活動(dòng)現(xiàn)場(chǎng)準(zhǔn)備好管理電腦以及投影設(shè)備等。部分參加活動(dòng)人員的手機(jī)攝像頭由于像素等原因,導(dǎo)致識(shí)別大屏二維碼較難。(3)掃描個(gè)人專(zhuān)屬二維碼簽到方式說(shuō)明。由考勤管理員手機(jī)掃描或者考勤設(shè)備自動(dòng)掃描個(gè)人專(zhuān)屬二維碼,基本可以避免代簽到以及沒(méi)來(lái)現(xiàn)場(chǎng)也能簽到的現(xiàn)象。但需要考勤管理員在活動(dòng)現(xiàn)場(chǎng)入口處掃描,人多的時(shí)候仍然會(huì)有排隊(duì)現(xiàn)象。
3 ?系統(tǒng)關(guān)鍵功能實(shí)現(xiàn)
由于篇幅有限,本文以系統(tǒng)最關(guān)鍵的活動(dòng)簽到功能為例介紹了在系統(tǒng)中師生方便地通過(guò)微信搖一搖簽到以及掃描動(dòng)態(tài)二維碼簽到的實(shí)現(xiàn)過(guò)程。
3.1 ?微信搖一搖簽到功能實(shí)現(xiàn)
(1)微信搖一搖配置及準(zhǔn)備工作。如果學(xué)校已經(jīng)有已認(rèn)證的公眾號(hào)或企業(yè)號(hào),可以直接在微信公眾平臺(tái)申請(qǐng)開(kāi)通搖一搖周邊權(quán)限。開(kāi)通權(quán)限后進(jìn)入搖一搖周邊的設(shè)備管理,新增所需的設(shè)備記錄,并將設(shè)備詳情中的UUID、Major、Minor這幾個(gè)信息配置到購(gòu)買(mǎi)的iBeacon設(shè)備中。然后在搖一搖周邊的頁(yè)面管理中新建自定義頁(yè)面,將頁(yè)面的主標(biāo)題、副標(biāo)題及圖標(biāo)上傳,并將該頁(yè)面跳轉(zhuǎn)的URL設(shè)置為活動(dòng)簽到請(qǐng)求URL鏈接,最后還要在會(huì)議活動(dòng)一體化管理系統(tǒng)中的簽到設(shè)備管理模塊中,維護(hù)好這些設(shè)備的UUID等信息。(2)微信搖一搖簽到算法流程。用戶到活動(dòng)現(xiàn)場(chǎng)后將手機(jī)藍(lán)牙及GPS開(kāi)啟后,打開(kāi)微信搖一搖看到有周邊后再搖手機(jī)即可跳出活動(dòng)簽到請(qǐng)求的URL頁(yè)面鏈接。用戶點(diǎn)擊該鏈接后,搖一搖簽到算法流程如圖2所示。首先獲取到微信傳過(guò)來(lái)的ticket參數(shù),調(diào)用微信公眾號(hào)或企業(yè)號(hào)提供的微信搖一搖周邊接口getshareinfo,獲取到USERID、UUID等信息。然后根據(jù)返回的USERID的值查找簽到人員是否已關(guān)注企業(yè)號(hào)或公眾號(hào),如果未關(guān)注則跳轉(zhuǎn)到公眾號(hào)二維碼展示頁(yè)面,需用戶掃描關(guān)注成功后才能再次搖一搖簽到。接著根據(jù)微信返回的UUID等信息,查找設(shè)備存放地點(diǎn),再查找系統(tǒng)中當(dāng)前時(shí)間該地點(diǎn)是否有會(huì)議活動(dòng)信息,如果沒(méi)有則提示“對(duì)不起,目前沒(méi)有需要簽到的會(huì)議活動(dòng)”;如果有則判斷當(dāng)前時(shí)間是否在簽到會(huì)簽退時(shí)間范圍內(nèi),如果是則再判斷用戶是否重復(fù)簽到或簽退,如果沒(méi)重復(fù)才保存簽到或簽退信息并返回提醒信息給用戶。
3.2 ?掃描動(dòng)態(tài)二維碼簽到功能實(shí)現(xiàn)
(1)動(dòng)態(tài)二維碼生成實(shí)現(xiàn)。傳統(tǒng)的二維碼是靜態(tài)不變的,活動(dòng)可以將二維碼打印出來(lái)貼在活動(dòng)現(xiàn)場(chǎng)供用戶掃描簽到,非常方便,但存在容易簽到作弊的問(wèn)題。如學(xué)生將該二維碼拍照后發(fā)給未到活動(dòng)現(xiàn)場(chǎng)的同學(xué),也一樣可以掃描簽到。因此本系統(tǒng)為每個(gè)活動(dòng)生成的都是動(dòng)態(tài)二維碼,該二維碼可以靈活設(shè)置變化時(shí)間間隔,過(guò)了時(shí)間間隔舊的二維碼就失效了,這樣就可以有效避免學(xué)生遠(yuǎn)程掃描二維碼作弊的問(wèn)題。本系統(tǒng)的二維碼生成采用了谷歌的開(kāi)源二維碼生成工具包Google.zxing。而動(dòng)態(tài)二維碼的機(jī)制則是將帶加密信息的參數(shù)轉(zhuǎn)換為動(dòng)態(tài)二維碼。該參數(shù)由用戶ID、生成二維碼的時(shí)間戳、加密驗(yàn)證參數(shù)以及活動(dòng)ID。其中加密驗(yàn)證參數(shù)機(jī)制為:當(dāng)前用戶ID+生成二維碼時(shí)間戳進(jìn)行SHA1加密。用戶在掃描動(dòng)態(tài)二維碼時(shí),會(huì)將該參數(shù)傳遞到后臺(tái),后臺(tái)根據(jù)加密驗(yàn)證參數(shù)進(jìn)行驗(yàn)證是否為合法二維碼,這樣可以有效避免二維碼被仿照生成的問(wèn)題。(2)掃描二維碼簽到步驟說(shuō)明。首先調(diào)用微信的jssdk的微信掃一掃接口,識(shí)別二維碼加密參數(shù)信息并獲取地理位置信息;并將二維碼加密參數(shù)及地理位置信息作為參數(shù)發(fā)送請(qǐng)求到后臺(tái);后臺(tái)獲取到二維碼加密參數(shù)后進(jìn)行加密驗(yàn)證,判斷該二維碼是否合法且在有效時(shí)間范圍內(nèi),如果不合法則返回提示。再將地理位置信息和會(huì)議活動(dòng)地點(diǎn)的地理位置進(jìn)行距離計(jì)算,將與活動(dòng)地點(diǎn)的距離保存起來(lái);接著根據(jù)二維碼加密參數(shù)中的活動(dòng)ID查詢本次要簽到的活動(dòng)信息,判斷簽到/簽退時(shí)間是否在活動(dòng)規(guī)定的時(shí)間范圍內(nèi),如果在時(shí)間范圍內(nèi),最后判斷是否已經(jīng)有重復(fù)簽到或簽退記錄,沒(méi)有重復(fù)才將本次簽到/簽退相關(guān)信息記錄到數(shù)據(jù)庫(kù)中。
4 ?結(jié) ?論
本文提出的智慧校園會(huì)議活動(dòng)一體化管理系統(tǒng),是基于微信、iBeacon、二維碼技術(shù)及微服務(wù)架構(gòu)實(shí)現(xiàn)的。該系統(tǒng)實(shí)現(xiàn)了各種會(huì)議、活動(dòng)的在線申請(qǐng)、審核、預(yù)報(bào)名、簽到考勤、統(tǒng)計(jì)分析的全流程、一體化管理功能,該系統(tǒng)已于2018年7月正式上線使用,目前學(xué)校的創(chuàng)新學(xué)分相關(guān)的科研講座活動(dòng)采用了系統(tǒng)提供的搖一搖簽到和掃描動(dòng)態(tài)二維碼結(jié)合的方式進(jìn)行簽到。應(yīng)用結(jié)果表明,該系統(tǒng)大大提高了學(xué)校會(huì)議活動(dòng)管理工作效率、減少了師生簽到時(shí)的排隊(duì)時(shí)間,并一定程度上解決了簽到作弊的問(wèn)題,受到廣大師生的普遍好評(píng),提升了師生智慧校園獲得感。
參考文獻(xiàn):
[1] 李春陽(yáng),劉迪,崔蔚,等.基于微服務(wù)架構(gòu)的統(tǒng)一應(yīng)用開(kāi)發(fā)平臺(tái) [J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2017,26(4):43-48.
[2] 張雷,王悅.基于SpringBoot微服務(wù)架構(gòu)下的MVC模型研究 [J].安徽電子信息職業(yè)技術(shù)學(xué)院學(xué)報(bào),2018,17(4):1-9.
[3] 于長(zhǎng)虹,王運(yùn)武,馬武. 智慧校園的智慧性設(shè)計(jì)研究 [J].中國(guó)電化教育,2014(9):7-12.
[4] 騰訊.WeChat [EB/OL].http://qydev.weixin.qq.com/wiki/,2016-12-19.
[5] 郭瑞香.基于ibeacon技術(shù)移動(dòng)終端點(diǎn)名平臺(tái)研究設(shè)計(jì) [J].黃山學(xué)院學(xué)報(bào),2018,20(5):27-30.
[6] 尚澤宇.動(dòng)態(tài)二維碼簽到系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)研究 [J].福建電腦,2018,34(3):152-153.
作者簡(jiǎn)介:廖寧(1983-),男,漢族,廣東梅州人,碩士,高級(jí)工程師,研究方向:教育信息化、智慧校園建設(shè)。