鄭 歡 陳汝龍
(1.安丘市官莊鎮(zhèn)官莊小學(xué),山東 濰坊 261000;2.山東信息職業(yè)技術(shù)學(xué)院,山東 濰坊 261000)
校園一卡通系統(tǒng)[1-3]是智慧校園[4]的重要組成部分,是落實(shí)教育現(xiàn)代化的重要舉措。其雛形為校園食堂收費(fèi)系統(tǒng),最早于2001年出現(xiàn),華東理工大學(xué)與中山大學(xué)兩所學(xué)校第一次將收費(fèi)系統(tǒng)應(yīng)用到食堂消費(fèi)管理中。隨后,各個(gè)公司開始研發(fā)此類系統(tǒng),眾多高校陸續(xù)引入,并逐漸普及到中小學(xué)中,成為目前智慧校園不可或缺的重要組成部分。在校園一卡通的普及過程中,隨著技術(shù)的不斷提升,一卡通不再局限于食堂消費(fèi),校園門禁系統(tǒng)、校園水控系統(tǒng)、校園考勤系統(tǒng)、校園點(diǎn)餐系統(tǒng)、校園綜合繳費(fèi)系統(tǒng)、圖書管理系統(tǒng)、機(jī)房管理系統(tǒng)等以一卡通消費(fèi)為基礎(chǔ),輻射校園需求的多功能、多場景一卡通系統(tǒng)應(yīng)運(yùn)而生。近年來,隨著物聯(lián)網(wǎng)、大數(shù)據(jù)、云計(jì)算的不斷發(fā)展,以數(shù)據(jù)治理校園[5]的理念逐漸形成,利用應(yīng)用數(shù)據(jù)、業(yè)務(wù)流程建立校園大數(shù)據(jù)分析系統(tǒng)[6-8],真正實(shí)現(xiàn)校園的全方位智慧管理。同時(shí),隨著移動(dòng)支付的不斷普及,整合阿里支付、微信支付的一卡通消費(fèi)系統(tǒng)也在迅速發(fā)展起來??傊砸豢ㄍㄏM(fèi)系統(tǒng)為基礎(chǔ),全方位覆蓋校園各個(gè)場景的綜合校園管理系統(tǒng)正在發(fā)展壯大。但是,這些系統(tǒng)往往功能龐大、價(jià)格昂貴,適合各類高校,并不適應(yīng)師生數(shù)量較少、學(xué)生年齡偏低的中小學(xué),特別是鄉(xiāng)鎮(zhèn)小學(xué),吸引不到企業(yè)的足夠重視,成為校園一卡通建設(shè)的盲區(qū)。本文結(jié)合中小學(xué)一卡通建設(shè)及實(shí)際使用情況,分析中小學(xué)校園一卡通使用過程中暴露出的一系列問題,并提出行之有效的解決方案,最后,對一卡通系統(tǒng)進(jìn)行了設(shè)計(jì)與實(shí)現(xiàn)。
目前,一卡通系統(tǒng)在中小學(xué)中已得到大量普及,成為中小學(xué)師生校園生活不可或缺的一部分。在研究初期,對兄弟院校的一卡通系統(tǒng)進(jìn)行了調(diào)研,整理了當(dāng)前存在的主要問題:
(1)目前大部分中小學(xué)的消費(fèi)系統(tǒng)支付方式單一,對一卡通存在極大的依賴,沒有移動(dòng)支付功能。少部分學(xué)校提供移動(dòng)支付功能,僅支持支付寶與微信兩種支付方式。但是,中小學(xué)生年齡偏低,手機(jī)持有率低,所謂的移動(dòng)支付無法真正滿足便捷支付的實(shí)際需求。急需一種支持手機(jī)、學(xué)習(xí)機(jī)、智能手表、智能手環(huán)等各類移動(dòng)終端的支付方式。
(2)大部分的中小學(xué)一卡通消費(fèi)系統(tǒng)已運(yùn)行多年,系統(tǒng)框架簡易,技術(shù)較為落后,極易遭到黑客攻擊,缺乏一種安全性較高、服務(wù)獨(dú)立的系統(tǒng)架構(gòu)。
(3)中小學(xué)的組織機(jī)構(gòu)相對高校而言有其特殊性,學(xué)校之間不是完全獨(dú)立的個(gè)體。以地級市為例,市內(nèi)所有中小學(xué)統(tǒng)一由教體局管理,教體局下轄市直中小學(xué)、鄉(xiāng)鎮(zhèn)(街道)教育管理辦公室[9-10],每個(gè)辦公室管理附近所有中小學(xué),突破現(xiàn)有鄉(xiāng)鎮(zhèn)行政區(qū)域劃分的界限,其組織機(jī)構(gòu)示意圖如圖1所示。因此,在中小學(xué)的消費(fèi)管理中,其消費(fèi)數(shù)據(jù)已不再獨(dú)立存在,上級機(jī)構(gòu)往往需要對所轄學(xué)校的消費(fèi)數(shù)據(jù)進(jìn)行有效管控,急需一種多機(jī)構(gòu)管理的校園一卡通系統(tǒng)。
圖1 中小學(xué)組織機(jī)構(gòu)示意圖
在分析了一卡通實(shí)際需求以后,系統(tǒng)設(shè)計(jì)采用B/S結(jié)構(gòu)。同時(shí),放棄過時(shí)的Struts2、Spring等Java Web框架,采用最新的Spring Cloud微服務(wù)框架[11],根據(jù)業(yè)務(wù)需求拆分各個(gè)小型服務(wù),并使每一個(gè)小型服務(wù)都圍繞著系統(tǒng)中的耦合度較高的業(yè)務(wù)功能進(jìn)行構(gòu)建,并且每個(gè)服務(wù)都維護(hù)著自身的數(shù)據(jù)存儲(chǔ)、業(yè)務(wù)開發(fā)、自動(dòng)化測試案例以及獨(dú)立部署機(jī)制,也為日后的業(yè)務(wù)拓展做好了底層框架準(zhǔn)備。同時(shí),為了發(fā)現(xiàn)、配置和管理微服務(wù),采用Nacos服務(wù)注冊中心,實(shí)現(xiàn)動(dòng)態(tài)服務(wù)發(fā)現(xiàn)、服務(wù)配置、服務(wù)元數(shù)據(jù)及流量管理。
前端展示方面,采用成熟的Vue框架,提高前端的運(yùn)行效率。前后端分離,后端負(fù)責(zé)業(yè)務(wù)/數(shù)據(jù)接口,前端負(fù)責(zé)展現(xiàn)/交互邏輯,前后端各盡其責(zé)可以最大程度減少開發(fā)難度。
硬件通信方面,采用netty框架,保障硬件的端口監(jiān)聽,實(shí)現(xiàn)硬件通信。
一卡通系統(tǒng)的設(shè)計(jì)遵循穩(wěn)定、實(shí)用、安全等基本原則,PC管理端的相關(guān)功能模塊設(shè)計(jì)如下:
(1)系統(tǒng)管理,該模塊包含密碼修改、機(jī)構(gòu)管理、角色管理、人員信息管理及系統(tǒng)日志五個(gè)子模塊。其中,密碼修改主要負(fù)責(zé)對管理人員的密碼進(jìn)行更改,機(jī)構(gòu)管理負(fù)責(zé)對多機(jī)構(gòu)的管理與維護(hù),角色管理為各機(jī)構(gòu)管理員分配角色、設(shè)置權(quán)限等。人員信息則主要負(fù)責(zé)管理各機(jī)構(gòu)的管理員,每位機(jī)構(gòu)管理員只能管理及查看自己所屬機(jī)構(gòu)以及下屬機(jī)構(gòu)的數(shù)據(jù)。系統(tǒng)日志負(fù)責(zé)記錄每位登錄者的操作日志。
(2)用戶管理,該模塊分為用戶分類、用戶標(biāo)簽、用戶信息三個(gè)子模塊,主要用于對一卡通用戶進(jìn)行管理。用戶標(biāo)簽的主要目的是對一卡通用戶進(jìn)行分類,分為教職工、學(xué)生、臨時(shí)、外來人員等類別。而用戶標(biāo)簽主要針對學(xué)生用戶,通過用戶標(biāo)簽,可以有效區(qū)分學(xué)生的重要屬性,例如貧困生、留守兒童等標(biāo)簽,通過用戶標(biāo)簽,學(xué)校可以對重點(diǎn)學(xué)生進(jìn)行有效監(jiān)控,保障學(xué)生的合法權(quán)益。用戶信息管理支持用戶的批量導(dǎo)入與賬號(hào)凍結(jié)等操作,也支持學(xué)生的線下充值。
(3)設(shè)備管理,包含設(shè)備類型、設(shè)備信息兩個(gè)子模塊,主要負(fù)責(zé)對設(shè)備的劃分及信息管理。其中,設(shè)備類型包含電控設(shè)備、水控設(shè)備、消費(fèi)機(jī)、門禁設(shè)備、考勤設(shè)備等,設(shè)備信息主要負(fù)責(zé)對設(shè)備編號(hào)、設(shè)備型號(hào)、設(shè)備位置、設(shè)備狀態(tài)等信息的維護(hù)。
(4)一卡通管理,該模塊包含一卡通類型管理、一卡通管理兩個(gè)子模塊。一卡通類型管理主要負(fù)責(zé)對一卡通的類型進(jìn)行統(tǒng)一管理,包括學(xué)生卡、教工卡、臨時(shí)卡等。一卡通管理主要負(fù)責(zé)每張卡的維護(hù)工作,包括卡的凍結(jié)、余額查詢、卡分配等功能。
(5)場景設(shè)置,場景設(shè)置主要是對消費(fèi)機(jī)的消費(fèi)時(shí)段、消費(fèi)金額等信息進(jìn)行維護(hù),滿足不同的消費(fèi)場景需求,達(dá)到靈活控制消費(fèi)時(shí)間與消費(fèi)金額的目的,避免錯(cuò)誤刷卡、錯(cuò)誤消費(fèi)現(xiàn)象出現(xiàn)。
(6)數(shù)據(jù)報(bào)告,該模塊主要包含數(shù)據(jù)明細(xì)表與數(shù)據(jù)匯總表,數(shù)據(jù)明細(xì)表主要展示各類消費(fèi)數(shù)據(jù),提供多維度查詢功能。數(shù)據(jù)匯總表主要負(fù)責(zé)數(shù)據(jù)的統(tǒng)計(jì)展示,以圖表等形式對數(shù)據(jù)進(jìn)行可視化,方便管理人員對數(shù)據(jù)進(jìn)行把控決策。
(7)消費(fèi)統(tǒng)計(jì)模塊,該模塊主要負(fù)責(zé)展示消費(fèi)記錄、充值記錄、退款記錄等詳細(xì)信息。管理員可以在此模塊查看到更詳細(xì)的消費(fèi)、充值、退款數(shù)據(jù),同時(shí)支持?jǐn)?shù)據(jù)的導(dǎo)出功能,方便管理員下載數(shù)據(jù),生成紙質(zhì)報(bào)表以及后期的追蹤工作。
(8)支付管理,一卡通系統(tǒng)支持線下充值與線上充值兩種充值方式。其中,線上充值提供了支付寶充值與微信充值,支付管理模塊負(fù)責(zé)對每個(gè)機(jī)構(gòu)的AppID、商戶ID、Key等關(guān)鍵支付信息進(jìn)行管理。
為了方便用戶,系統(tǒng)提供移動(dòng)端充值、刷卡以及消費(fèi)查詢等功能。其中,移動(dòng)端的充值主要是支付寶、微信、銀行卡三種充值方式。刷卡消費(fèi)主要是二維碼支付,用戶通過展示二維碼,設(shè)備識(shí)別二維碼進(jìn)行扣款。為了不受制于移動(dòng)支付對支付寶以及微信的依賴,該二維碼由一卡通系統(tǒng)生成。同時(shí),為了支持更多的移動(dòng)終端,一卡通移動(dòng)端通過HTML5進(jìn)行訪問,用戶只需通過HTTP登錄即可進(jìn)行刷卡消費(fèi)。
以上為一卡通系統(tǒng)的關(guān)鍵功能模塊,每個(gè)模塊對機(jī)構(gòu)有高度依賴,通過機(jī)構(gòu)過濾查詢數(shù)據(jù),每位管理員只能查看及操作本機(jī)構(gòu)以及下屬機(jī)構(gòu)的信息。其功能需求如圖2所示。
圖2 基于多機(jī)構(gòu)管理的一卡通消費(fèi)系統(tǒng)功能需求
基于多機(jī)構(gòu)管理的一卡通消費(fèi)系統(tǒng)在硬件方面主要集成了兩種類型的設(shè)備,分別實(shí)現(xiàn)了UDP與TCP兩種通信。為了提高系統(tǒng)可擴(kuò)展性,采用工廠策略對設(shè)備接口進(jìn)行統(tǒng)一管理。設(shè)備部分接口示意圖如圖3所示。
圖3 硬件設(shè)備終端接口示意圖
為了保障硬件設(shè)備通信可靠性,設(shè)備對通信包格式進(jìn)行了規(guī)范。通信包的最大長度為1024字節(jié),由識(shí)別碼、設(shè)備碼、地址碼、數(shù)據(jù)包長度、數(shù)據(jù)包及校驗(yàn)碼組成,除數(shù)據(jù)包以外,其他部分均對其長度進(jìn)行了限制,通信包最后的CRC16校驗(yàn)碼[12]計(jì)算采用MODBUS標(biāo)準(zhǔn)[13],初始值0xFFFF。詳細(xì)的通信包格式及說明如圖4所示。
圖4 通信包格式
在移動(dòng)支付方面,移動(dòng)終端登錄系統(tǒng)以后即可通過點(diǎn)擊二維碼支付,獲取支付二維碼。二維碼由卡號(hào)+開始時(shí)間+結(jié)束時(shí)間+校驗(yàn)碼構(gòu)成。其中,校驗(yàn)碼同樣采用CRC16校驗(yàn),保證數(shù)據(jù)的完整性。支付二維碼示例如圖5所示。為支持更多移動(dòng)終端,移動(dòng)平臺(tái)無需安裝App,也不依賴于公眾號(hào)、微信小程序等第三方平臺(tái)。利用HTML5構(gòu)建移動(dòng)終端,可以利用http進(jìn)行登錄,支持手機(jī)、平板、智能手環(huán)等移動(dòng)終端。
圖5 支付二維碼示例
基于多機(jī)構(gòu)管理的校園一卡通系統(tǒng)主要核心功能是解決多機(jī)構(gòu)消費(fèi)信息管理問題。其主要思想為通過機(jī)構(gòu)過濾模塊,限定登錄賬號(hào)只能查看及操作本機(jī)構(gòu)以及下屬機(jī)構(gòu)的數(shù)據(jù)。每個(gè)機(jī)構(gòu)管理員可以為其子機(jī)構(gòu)設(shè)置管理賬號(hào),為子機(jī)構(gòu)管理賬號(hào)授予相應(yīng)權(quán)限,實(shí)現(xiàn)子機(jī)構(gòu)的獨(dú)立管理運(yùn)作。同時(shí),上級機(jī)構(gòu)對下屬機(jī)構(gòu)擁有管理權(quán)限,可以實(shí)現(xiàn)對所有子機(jī)構(gòu)的權(quán)限授予以及數(shù)據(jù)操作。
基于多機(jī)構(gòu)管理的校園一卡通系統(tǒng)在業(yè)務(wù)處理方面嚴(yán)格控制機(jī)構(gòu)過濾,只允許登錄賬號(hào)的所在機(jī)構(gòu)及其下屬機(jī)構(gòu)數(shù)據(jù)通過,屏蔽兄弟機(jī)構(gòu)及其上層機(jī)構(gòu)數(shù)據(jù),嚴(yán)禁訪問未經(jīng)授權(quán)的機(jī)構(gòu)數(shù)據(jù)。滿足多機(jī)構(gòu)場景需求,特別是對經(jīng)費(fèi)有限的鄉(xiāng)鎮(zhèn)學(xué)校具有極大的幫助?;诙鄼C(jī)構(gòu)管理的校園一卡通系統(tǒng)示意圖如圖6所示。
圖6 基于多機(jī)構(gòu)管理的校園一卡通系統(tǒng)
近幾年,隨著信息技術(shù)的不斷發(fā)展,校園一卡通系統(tǒng)不斷完善,特別是隨著物聯(lián)網(wǎng)、大數(shù)據(jù)、云計(jì)算等新興技術(shù)的出現(xiàn),一卡通系統(tǒng)逐漸發(fā)展為一個(gè)集數(shù)據(jù)分析、數(shù)據(jù)挖掘、數(shù)據(jù)治理等功能完善的龐大體系。但是,這些功能并不適應(yīng)于資金有限、師生有限、學(xué)生年齡偏低的中小學(xué),特別是在鄉(xiāng)鎮(zhèn)教育辦公室管轄下的中小學(xué)校。本文結(jié)合中小學(xué)一卡通建設(shè)及實(shí)際使用情況,分析中小學(xué)校園一卡通使用過程中暴露出的一系列問題,并提出行之有效的解決方案。利用Spring cloud微服務(wù)架構(gòu)保證系統(tǒng)的安全穩(wěn)定運(yùn)行,同時(shí)提升了系統(tǒng)的可擴(kuò)展性;利用支付二維碼改變支付方式單一的問題,擺脫對支付寶和微信支付的依賴;最后,利用多機(jī)構(gòu)管理,實(shí)現(xiàn)上級機(jī)構(gòu)對管轄學(xué)校的管控,滿足當(dāng)前鄉(xiāng)鎮(zhèn)(街道)教育管理辦公室對所轄學(xué)校的消費(fèi)數(shù)據(jù)管控需求。未來,以地級市教體局為頂層單位,滿足全市中小學(xué)用餐時(shí)段的并發(fā)操作將會(huì)是下一步研究的重點(diǎn)。