嚴宇倞



[摘要]文章針對大學中使用校園卡進行考勤、簽到的需求,描述了一種較為通用的考勤簽到系統設計。讀卡的硬件采用成熟通用的產品,軟件開發利用流行的平臺或框架技術。系統整體具有成本低、開發周期短、高可靠性等特點。
[關鍵詞]考勤;簽到;校園卡;Java;Android;Play framework
[DOI]1013939/jcnkizgsc201650224
1項目背景及概述
在大學中,經常出現學生活動簽到、早鍛煉考勤、上課點名之類的考勤簽到應用場景。使用校園卡進行刷卡考勤簽到是一種低成本,簡單可靠的方法。本文描述的系統,現已應用于南京郵電大學早鍛煉考勤,部分活動及課堂的考勤。由于早鍛煉考勤與活動簽到的業務邏輯有細微不同,總體架構高度一致,本文僅以早鍛煉考勤為例進行描述。
在針對早鍛煉考勤需求的開發過程中,讀卡環節需要的硬件為采購獲得,手持讀卡器軟件,后臺數據接口,管理端網站,學生查詢網站,數據庫程序均為自行開發。
2背景技術要點
第一,Mifare S50、S70校園卡。Mifare非接觸式智能卡作為校園卡,是學校師生在校園生活中不可缺少的一部分。消費和身份的識別等功能均集成在一卡通系統內。通過物理卡號,可以在一卡通系統和學校現有學生數據庫中獲得學生的基本信息。
第二,Play Framework。Play框架是基于Java的Web全線式開發框架。開發效率高,使用靈活,能夠滿足本系統快速上線的需求。
第三,RESTful。使用REST風格的軟件架構,幫助數據在不同環節高效流轉,系統各個部分低耦合,方便維護和后期升級。
第四,Android系統。讀卡器手持機為內置Android系統。開發一個Android應用,實現讀卡,數據存儲、上傳和校驗的功能。現在內置讀卡器的Android手持機在市場上選擇很多,廣泛應用于物流、倉儲等場景,是很成熟的產品。
3需求分析
第一,讀卡部分。讀卡器讀取校園卡物理卡號,并發出提示音。讀卡器能從NTP同步時間。讀卡器在讀卡后存儲物理卡號、讀卡時間信息。刷卡記錄在有網絡連接時能實時上傳。如果離線刷卡,能在獲得網絡連接后將沒有上傳的數據傳送至服務器。
第二,后臺服務部分。數據庫定期從一卡通數據庫和學生數據庫獲得學生最新的物理卡號和信息。提供數據接口,接收讀卡器上傳的數據。提供數據接口,接收數據查詢請求。業務邏輯提供早鍛煉次數統計功能。
第三,操作管理部分。用戶界面提供簽到信息、時間、地點、記錄人查詢。在有基礎數據支持情況下,能精確顯示學生學號、姓名、學院等信息,并提供篩選機分類查詢服務,查詢條件可按學院、專業、班級、時間段。也可根據校園卡號進行單個學生晨練出勤情況查詢。每天晨練的出勤人數,出勤率可實時統計,界面上有相應的展現模塊。并可提供Excel導出。
第四,非功能需求。一是可用性:操作簡單,界面簡潔;二是安全性:部分學生基礎信息和數據涉及防止泄漏和防止篡改;三是可靠性:軟件長期在線運行,訪問量大,需保證服務不下線,刷卡數據不丟失;四是性能:一般操作響應時間不能大于2s;五是標準化要求:采用UTF8字符集,按照學校信息化標準執行。
4設計
41系統框架
讀卡器將物理卡號和刷卡時間發送給后臺服務。后臺服務將刷卡數據進行持久化,同時將刷卡信息中的物理卡號和一卡通數據及學校數據庫中的學生信息進行關聯。Web服務從后臺的功能接口進行各個業務邏輯的調用,包括數據的管理和查詢等。同時,Web服務也提供多個入口,給類似于微信、網頁、App等多種應用接入。詳見下圖。
結構圖
42設計思路
本次開發在實際實施過程中,用戶對開發周期提出了高要求。從硬件選型、采購、軟件開發到上線的周期在一周左右。所以本系統在實施時,以完成業務邏輯,可靠實現功能為出發點,用戶體驗和可用性的優化放在后期進行。
讀卡器是整個系統中關鍵的一環。讀卡器的穩定可靠關系到數據源的準確性和學生刷卡的實際體驗。選擇成熟的Android手持機是一個比較穩妥的方案,采購選型也較為容易。在實際使用中,不同版本的手持機應用代碼兼容性也比較好,升級和更新設備所帶來的開發量在可控范圍內。
數據庫方面,應用對數據庫類型沒有特別要求,但考慮到數據集成的便利性和可靠性,使用和一卡通等系統一致的數據庫,可減少對ETL工具的依賴。在本系統中,僅靠少量存儲過程即能滿足數據同步和匹配的需求。
在后臺和Web架構的選擇上,考慮到開發團隊規模和經驗,選取Java平臺,使用Play framework 是一種比較合理的技術方案。基于以上架構進行敏捷開發,能夠符合項目初期的功能需求和可靠性需求。
本系統設計方案中其他技術路線,也更多基于已有的項目經驗和成熟案例。
5實施要點
51關鍵類的數據元素
511用戶類ReadcardUser
本類描述了學生的信息,是整個早鍛煉考勤系統的基礎。學生的物理卡號來自一卡通數據庫,專業、班級等信息來自學校其他數據庫。表單使用學生的學號作為唯一的標識。詳見表1。
512統計時間段ValidDate
本類用于描述統計刷卡業務邏輯的時間范圍,在哪些有效的日期進行統計。詳見表2。
513刷卡記錄類StudentRecord
本類描述了刷卡考勤的記錄。這是本系統核心的數據,描述了刷卡的物理號、對應的刷卡學生、刷卡時間、在哪個讀卡器上刷卡。查詢的業務邏輯也以此表為基礎,定期對此表進行分析,獲得統計數據。詳見表3
52后臺主要服務功能接口
詳見表4。
53圖形用戶界面
早鍛煉考勤系統的軟件涉及用戶界面的部分為手持讀卡器App、教師管理端Web和學生查詢Web。在App方面,手持讀卡器的界面簡單地展示了刷卡信息和本機儲存刷卡記錄的統計。在Web方面,教師管理端將提供完整的數據查詢分析功能,而在學生查詢網頁上只能展現單人的刷卡記錄和統計信息。校園微信號等系統對早鍛煉數據的展現界面由各平臺自行實現。由于功能相對簡單,圖形用戶界面使用AngularJS庫和Bootstrap樣式庫,做到PC瀏覽器和移動瀏覽器的自適應。
6結論
學生在手持刷卡機上刷校園卡,刷卡記錄通過網絡上傳。服務器后端能夠將刷卡數據存儲、分析,并呈現給教師。在高校校園卡得到廣泛應用的環境下,校園卡考勤簽到的使用,低成本高效率地滿足了多個應用場景的使用需求。在后續的維護和優化過程中,可在現有架構上可進行無縫的功能伸縮,滿足校園碎片化多樣化的小應用需求。
參考文獻:
[1]Android[EB/OL].https://developerandroidcom
[2]Play framework[EB/OL].https://www.playframeworkcom
[3]RESTful[EB/OL].http://wwwibmcom/developerworks/library/ws-restful
[4]Mifare[EB/OL].https://wwwmifarenet/en