黃中海 羅紫航 王萌 朱行浩 黃建銘
摘 要:為解決高校日常學生工作中信息快速、準確采集與統(tǒng)一管理的問題,介紹一種利用CodeIgniter框架技術,充分考慮網(wǎng)絡流量優(yōu)化,基于B/S架構的高校學生工作信息采集系統(tǒng),并對系統(tǒng)實現(xiàn)所涉及的動態(tài)表單創(chuàng)建、存儲與解析,以及電子簽名、Redis消息隊列等關鍵技術進行闡述。通過測試運行,系統(tǒng)在實現(xiàn)日常學生工作中信息采集的規(guī)范性與時效性,保證學生隱私安全性以及易用性方面取得了較好效果。
關鍵詞:表格電子化;信息采集;權限控制;CodeIgniter
DOI:10. 11907/rjdk. 191997 開放科學(資源服務)標識碼(OSID):
中圖分類號:TP319文獻標識碼:A 文章編號:1672-7800(2020)007-0144-04
The Design and Implementation of an Online Information Collection System
for College Students Work
HUANG Zhong-hai, LUO Zi-hang, WANG Meng, ZHU Xing-hao, HUANG Jian-ming
(School of Management, Wuhan University of Science and Technology,Wuhan 430065,China)
Abstract: In order to solve the problem of fast and accurate information collection and unified management in the daily work of college students, this paper introduces an information collection system for college students work based on B/S framework, which uses CodeIgniter framework technology and fully considers the optimization of network traffic. The key technologies of creating, storing and parsing dynamic forms, electronic signature and Redis message queue involved in the implementation of the system are described. Through the test, the system has achieved practical results in realizing the standardization and timeliness of information collection in the daily work of students, the security of students privacy and the ease of use of the system.
Key Words: electronization of forms; information collection; privilege control; CodeIgniter
0 引言
如今各高校學生工作信息采集及管理方式大多還停留在通過即時通訊軟件及電子郵箱收發(fā)Word文件、Excel表格,并輔以紙質(zhì)表格填寫存檔的階段。由于每次采集的信息量大小與格式要求不一,若學生群體基數(shù)很大,可能會出現(xiàn)重復填寫、格式錯誤等問題,由此衍生出的進一步核查與重填既增加了工作人員的工作量和難度,也降低了信息收集的時效性。近年來國內(nèi)出現(xiàn)了以騰訊文檔、WPS在線文檔等為代表的在線文檔軟件,可應用于多人協(xié)作填寫工作,但難以實現(xiàn)數(shù)據(jù)自動歸檔、智能化輔助填寫等功能,且學生的隱私敏感信息存在泄露與被利用的風險。
目前,在高校管理信息化建設方面,很多學者進行了大量研究。如張運敏等[1]闡述對學生基本信息進行精準管理,推進學生信息采集手段現(xiàn)代化以及強化信息審核力度的思想;李淑玲[2]對當前高校學生管理信息化建設現(xiàn)狀進行深入分析,提出應構建學生數(shù)字化信息管理體系,以實現(xiàn)對學生信息的快速搜尋、查找、與管理;劉影等[3]提出高校管理信息化建設中存在的問題與解決對策;張超[4]研究了大數(shù)據(jù)背景下高校學生隱私保護的基本問題。在應用信息技術方面,程佳等[5]提出通用Web表單數(shù)據(jù)采集系統(tǒng)的設計與應用方案;殷旭等[6]闡述了基于Web表單的工作流管理系統(tǒng);黃慧等[7]將AJAX技術應用于B/S電子表單填寫模式中,增強了系統(tǒng)的可交互性和易用性;宋奕爽等[8-9]研究并設計了Web動態(tài)表單生成引擎;喻瑩瑩等[10]探討了前后端分離開發(fā)技術在動態(tài)表單系統(tǒng)設計中的應用。
在已有研究基礎上,本文針對高校學生工作信息采集系統(tǒng),設計一種新型信息采集業(yè)務流程,在權限管理與學生隱私安全方面作了進一步探究,考慮在實際應用中移動終端設備的人機交互問題與網(wǎng)絡流量優(yōu)化問題,并進一步探討在典型應用場景下所需的擴展功能如電子簽名設計與應用等。
1 系統(tǒng)設計
1.1 功能模塊設計
學生工作信息采集系統(tǒng)以電子表單為基礎,實現(xiàn)信息采集表單的多樣性、通用性與可共享性[11]。系統(tǒng)功能模塊如圖1所示,系統(tǒng)運維模塊主要包括用戶基礎信息管理、權限配置以及系統(tǒng)日常運行維護功能;匯總表模塊主要針對工作信息采集統(tǒng)計業(yè)務,通過匯總表創(chuàng)建、組織填寫、班級干部審核,最終完成統(tǒng)計與數(shù)據(jù)導出工作;工作表模塊主要包括登記、申請類Word表格在線填寫與文檔打印導出功能。
1.2 系統(tǒng)架構設計
根據(jù)系統(tǒng)實踐要求,學生工作信息采集系統(tǒng)應具備安全性、可靠性、可維護性、可容錯性以及可拓展性。系統(tǒng)采用B/S(Browser/Server)架構設計模式,主要服務設施包括:①Apache Web服務器,受理用戶連接請求;②應用服務器,處理系統(tǒng)業(yè)務邏輯;③MySQL數(shù)據(jù)庫,存儲系統(tǒng)數(shù)據(jù)與業(yè)務數(shù)據(jù)。
為提升系統(tǒng)數(shù)據(jù)讀取性能,系統(tǒng)采用Redis作為系統(tǒng)內(nèi)存數(shù)據(jù)庫。Redis是一個key-value存儲系統(tǒng),支持存儲的value類型包括string(字符串)、list(鏈表)、set(集合)、zset(有序集合)和hash(哈希類型),數(shù)據(jù)均存儲在內(nèi)存中[12]。
系統(tǒng)前端基于HTML5規(guī)范,遵循前后端分離的設計思想,數(shù)據(jù)交互使用JSON(JavaScript Object Notation),且易讀性強、解析快速[13]。系統(tǒng)后端應用程序基于MVC設計模式,使用PHP環(huán)境下的CodeIgniter作為基礎開發(fā)框架。CodeIgniter是一種基于PHP開發(fā)語言的輕量級開發(fā)框架,具有代碼庫豐富、配置簡單以及快速、簡潔的特性[14]。CodeIgniter較好地實現(xiàn)了MVC設計模式,即將系統(tǒng)分為模型(Model)、視圖(View)、控制器(Controller)3個模塊。各模塊相對獨立,降低了系統(tǒng)模塊間的耦合性,提高了系統(tǒng)的可維護性。
1.3 業(yè)務流程設計
1.3.1 信息采集匯總流程
學生信息采集匯總是系統(tǒng)的主要業(yè)務功能之一,涉及的主要工作流程如圖2所示。其核心流程為:信息采集方登錄系統(tǒng),創(chuàng)建匯總表任務,包括編輯數(shù)據(jù)項、配置屬性、設置匯總對象與審核人權限等;任務創(chuàng)建完成后,通過分享鏈接到工作群的形式通知填寫對象填報信息,并通知審核人按時完成審核工作;填寫人(一般為學生)通過鏈接進入系統(tǒng),填寫必填的條目內(nèi)容,確認無誤后提交;信息采集需求方可實時查看當前匯總完成狀態(tài)與各班填寫進度,匯總完成后即可查看或?qū)С霾杉男畔ⅲM行后續(xù)數(shù)據(jù)分析與信息歸檔管理工作[15]。
1.3.2 工作模板表流程
工作模板表一般是高校各部門基于工作需要,采集信息并進行存檔的專用表,如學分申請表、獎學金申請表、社會實踐認證表等。這類表通常以Word表格形式為主,有嚴格的填寫規(guī)范,編制完成后可復用時間較長,需要填寫人簽字以及打印存檔。
為確保官方信息的準確性,工作模板表由管理員上傳,檢查并配置相關屬性。學生登錄系統(tǒng),通過填寫鏈接或直接搜索兩種途徑獲取所需表格,然后直接在瀏覽器上在線編輯填寫,系統(tǒng)提供格式驗證功能輔助規(guī)范輸入,填寫無誤后即可打印或?qū)С鑫臋n。
1.4 權限控制設計
作為信息采集入口,用戶隱私與數(shù)據(jù)安全至關重要[16-17]。系統(tǒng)設計有兩種權限控制模式:①基于組織結構的權限控制。根據(jù)高校組織結構中的層級關系設置權限類別,如學院管理員、年級管理員、班級管理員等,主要管理學生基礎信息及部分學生事務數(shù)據(jù);②以表創(chuàng)建者為中心的權限控制。表創(chuàng)建者對其創(chuàng)建的表擁有管理與編輯權限,并能分配表的查看、審核及填寫權限。
對于新創(chuàng)建的表,通過系統(tǒng)管理員審核,可以轉(zhuǎn)變?yōu)榛诮M織結構的權限控制模式,表中數(shù)據(jù)供組織結構在權限控制下共享。
2 系統(tǒng)實現(xiàn)關鍵技術
2.1 動態(tài)表創(chuàng)建、存儲與解析
由于每次信息采集的內(nèi)容與類型可能都不太一致,提供給用戶的根據(jù)具體情況自定義表結構、動態(tài)生成與管理表單等功能是簡化信息采集及適配各類應用場景的關鍵。
(1)動態(tài)表創(chuàng)建。用戶與網(wǎng)站交互生成的表定義數(shù)據(jù),將以序列化JSON的方式傳遞給后臺服務器,服務器根據(jù)規(guī)則動態(tài)創(chuàng)建關系表并存儲表的定義信息。動態(tài)表定義的主要JSON數(shù)據(jù)結構如下:
標題:“”,描述:“”,審核方式:“”,審核人:“”,回收方式:“”,截止時間:“”,數(shù)據(jù)項配置:?[ {項編號:1,項名稱:“”,輸入控件類型:“”,必填設置: “”,數(shù)據(jù)驗證規(guī)則: “”, 數(shù)據(jù)綁定規(guī)則: “”,填寫提示: “”},……]
(2)動態(tài)表存儲。系統(tǒng)采用三級表結構存儲動態(tài)表:①管理表:記錄基本屬性、結構框架定義以及狀態(tài)跟蹤信息,如標題、創(chuàng)建人、審核方式、回收方式、回收狀態(tài)、提醒郵箱等;②設計表:記錄表數(shù)據(jù)項的名稱、格式、提示、綁定規(guī)則等;③內(nèi)容表:存儲用戶填寫、提交的數(shù)據(jù),是系統(tǒng)動態(tài)創(chuàng)建的關系表,表的命名規(guī)則是“f_content_”前綴加上表的編號,如“f_content_2019010”。
(3)動態(tài)表解析。系統(tǒng)讀取數(shù)據(jù)庫中的動態(tài)表定義信息,通過后端模板映射規(guī)則生成HTML文檔,添加CSS樣式及JS行為交互代碼,完成對動態(tài)表的解析,并對解析得到的HTML文檔進行緩存。
2.2 綁定項自動完成
在創(chuàng)建與定義動態(tài)表過程中,可為數(shù)據(jù)項設置綁定規(guī)則,實現(xiàn)綁定項自動完成。例如對“姓名”一項進行綁定,用戶在進入填寫頁面時,“姓名”一項將直接填充用戶數(shù)據(jù)庫中存儲的姓名信息,以避免重復輸入。
綁定項自動完成實現(xiàn)原理如下:動態(tài)表在解析過程中會根據(jù)在數(shù)據(jù)庫中定義的綁定規(guī)則,解析為一段JS異步請求代碼片段,插入到填寫頁面中;填寫頁面在瀏覽器端渲染加載完成后,執(zhí)行該代碼片段;瀏覽器異步請求綁定數(shù)據(jù),返回得到服務器查詢數(shù)據(jù)庫的信息,自動填充相應表單項。
2.3 輸入控件與格式驗證
對于普通的學生信息采集,系統(tǒng)默認采用短文本輸入控件,對于有選項的輸入框,則以下拉列表形式供用戶選擇填寫。該方式既能降低系統(tǒng)操作復雜度,又能滿足大多數(shù)應用場景,用戶體驗較好。
同時,對于格式要求嚴格的工作信息采集,系統(tǒng)提供諸如單選、多選、數(shù)值、日期、時間、郵箱等輸入控件以規(guī)范用戶輸入[18]。用戶輸入數(shù)據(jù)以異步方式傳遞給系統(tǒng)后臺,通過正則表達式工具對用戶輸入進行驗證,并反饋相應提示信息,以幫助用戶以規(guī)范的格式填寫表格。
2.4 電子簽名
電子簽名是紙質(zhì)手寫簽名的替代方案,也是在無紙化辦公過程中進行身份驗證與責任追溯的重要一環(huán)[19-20]。
簽名數(shù)據(jù)采集由前端JS庫Signature Pad實現(xiàn),調(diào)用 SignaturePad(canvas,{backgroundColor:‘rgba(255,255,255,0)})方法,傳入一個空白的Canvas畫布對象,即可生成一個背景透明的簽名面板,并能監(jiān)聽用戶行為,采集鼠標軌跡或觸屏手寫筆跡數(shù)據(jù),調(diào)用signaturePad.toDataURL()方法導出簽名數(shù)據(jù);用戶提交后,簽名數(shù)據(jù)以base64編碼格式通過HTTP POST方法發(fā)送給后臺服務器,在服務器端進行圖像空白區(qū)域裁剪、縮放至指定大小等操作后,以圖像格式存儲簽名數(shù)據(jù),并將存儲路徑和簽名時間戳添加到數(shù)據(jù)庫中;電子簽名最終以圖片形式顯示在瀏覽器頁面上,或通過CodeIgniter集成PHPOffice插件導出到Word、Excel、PDF等文件中。
系統(tǒng)采用用戶認證、文檔消息摘要、數(shù)據(jù)資源隔離等策略,確保簽名數(shù)據(jù)的采集與修改僅由簽名人控制,并且對數(shù)據(jù)電文內(nèi)容的任何改動都能被發(fā)現(xiàn),以此保障用戶電子簽名的法律效力[19]。
2.5 Redis消息隊列
對于工作信息采集匯總業(yè)務,由于學生群體基數(shù)較大,短時間內(nèi)大量用戶提交的請求與數(shù)據(jù)存儲處理難以得到穩(wěn)定保障,甚至可能引起服務器宕機。系統(tǒng)采用Redis消息隊列寫入的方式,對短時間內(nèi)的突發(fā)請求,在合理負載下進行排隊處理。基本原理如圖3所示。
用戶提交的數(shù)據(jù)會傳遞到Redis消息隊列中,并快速釋放與用戶終端的連接。在服務器后臺一直運行著一個小型處理程序,作為消息的消費者,每隔一段時間會被喚醒,從Redis消息隊列中選取一條或一組消息,進行數(shù)據(jù)處理后存儲到數(shù)據(jù)庫中。如發(fā)生錯誤,則回退數(shù)據(jù)到消息隊列中,程序進入休眠狀態(tài)。根據(jù)系統(tǒng)資源和用戶數(shù)量合理設置程序運行間隔,可以起到網(wǎng)絡流量削峰填谷的作用。采用消息隊列寫入方式,對于用戶突發(fā)的大量填寫請求,系統(tǒng)仍能保證在合理負載下穩(wěn)定、高效地運行,從而保障采集的數(shù)據(jù)存儲無誤。
3 系統(tǒng)運營實例
系統(tǒng)信息采集匯總業(yè)務已在武漢科技大學管理學院大三學生群體中投入運營,采集匯總?cè)蝿談?chuàng)建(見圖4)和匯總狀態(tài)查看(見圖5)是五一假期學生去向信息采集過程中的系統(tǒng)運行界面,共收集了802份去向信息。
4 結語
系統(tǒng)投入實際運營后,為在校師生提供了一個在線采集與管理信息的平臺,為學生管理工作提供了便利。通過對日常信息采集流程進行電子化與規(guī)范化,提高了信息采集效率,在校師生反饋良好。
系統(tǒng)提供了一個采集學生工作信息的入口,但其數(shù)據(jù)和信息管理還處于初級階段,因此下一步需要進行的工作有:①高校事務活動繁雜,信息采集需要細分各個場景,系統(tǒng)后期擴展需要設計高并發(fā)、高可擴展性架構,為各場景提供功能支持;②系統(tǒng)需要對接高校各個數(shù)據(jù)源,整合信息資源,進行數(shù)據(jù)分析與挖掘工作,以更好地支持高校事務工作管理。
參考文獻:
[1] 張運敏,劉洋. 基于系統(tǒng)協(xié)同的開放大學學生基本信息精準化管理[J]. 湖南廣播電視大學學報,2017(2):89-92.
[2] 李淑玲. 高校學生管理信息化創(chuàng)新分析[J]. 中國管理信息化,2018,21(23):199-200.
[3] 劉影,祁思愷,王兆旭,等. 高校管理信息化建設中存在問題與對策探索[J]. 西北工業(yè)大學學報(社會科學版),2017,37(1):96-100.
[4] 張超. 大數(shù)據(jù)背景下高校學生隱私權保護的基本問題研究[J]. 教育教學論壇,2018(30):46-47.
[5] 程佳,陳濤,王成. 通用Web表單數(shù)據(jù)采集系統(tǒng)的設計與實現(xiàn)[J]. 軟件工程,2016,19(8):30-33.
[6] 殷旭,廖斌,王新平. 基于Web的工作流表單的柔性建模[J]. 計算機工程與設計,2009,30(14):3429-3432.
[7] 黃慧,孫靜. 基于AJAX的B/S電子表單填寫模式研究[J]. 計算機工程與設計,2008,29(5):1055-1056,1146.
[8] 宋奕爽,劉紹華. WEB端可視化表單生成引擎的設計與實現(xiàn)[J]. 軟件,2017,38(12):153-159.
[9] 李維佳,汪洪江. 基于ASP.NET的Web表單自動生成引擎[J]. 計算機與網(wǎng)絡,2015,41(17):60-63.
[10] 喻瑩瑩,李新,陳遠平. 前后端分離的終端自適應動態(tài)表單設計[J]. 計算機系統(tǒng)應用,2018,27(4):70-75.
[11] 秦俊男. 基于Yii框架下通用電子表單系統(tǒng)的設計與實現(xiàn)[D]. 天津:天津大學,2015.
[12] 郎泓鈺,任永功. 基于 Redis 內(nèi)存數(shù)據(jù)庫的快速查找算法[J]. 計算機應用與軟件,2016,33(5):40-43,52.
[13] 徐寶磊,羅江,潘剛. 基于JSON的數(shù)據(jù)交換技術應用研究[J]. 軟件導刊,2017,16(10):173-175.
[14] 楊彥侃,譚心. 一種基于CodeIgniter框架科研論文管理系統(tǒng)的研究與實現(xiàn)[J]. 計算機應用與軟件,2012,29(12):223-224,251.
[15] 李婷蔚,張明,張力. 高校數(shù)據(jù)可視化分析淺試[J]. 信息系統(tǒng)工程,2018(9):111-113.
[16] 羅佳. 基于云計算的信息安全風險評估[J]. 中國新通信,2016,18(10):103-104.
[17] COBB C,SUDAR S,REITER N,et al. Computer security for data collection technologies[C]. the Eighth International Conference,ACM, 2016.
[18] 姜濤,邱寧. 基于Excel模板的在線填表系統(tǒng)的設計[J]. 科技致富向?qū)В?012(2):10.
[19] 閆春榮,郝亞飛. 基于電子簽名技術的營業(yè)廳工單電子化方案研究[J]. 郵電設計技術,2014(4):62-66.
[20] 胡俊偉,劉建華. 通航機務維修電子工卡手寫電子簽名方案[J]. 民航學報,2018,2(6):102-103.
(責任編輯:黃 健)