王靖娜
摘要: 高校學(xué)生考勤管理存在著人工管理效率低、信息分散、實(shí)時(shí)性差、難于統(tǒng)計(jì)、利用率低的問題,對學(xué)生出勤信息的動態(tài)掌握造成了困難。提出一種包含Android移動客戶端(Android端)、PC Web客戶端(PC端)和Web服務(wù)端(服務(wù)端)混合而成的學(xué)生考勤管理系統(tǒng)。使用基于Android平臺的移動設(shè)備實(shí)現(xiàn)電子點(diǎn)名功能,通過3G網(wǎng)絡(luò)將學(xué)生考勤數(shù)據(jù)實(shí)時(shí)上傳至服務(wù)器,并用J2EE實(shí)現(xiàn)考勤數(shù)據(jù)的動態(tài)管理和查看。通過實(shí)驗(yàn)表明,系統(tǒng)部署后確能實(shí)時(shí)、宏觀的掌握學(xué)生出勤信息,為高校學(xué)生安全管理提供了有力的支持。
關(guān)鍵字: 學(xué)生安全管理; 考勤管理; Android; J2EE
中圖分類號: TN964?34 文獻(xiàn)標(biāo)識碼: A文章編號: 1004?373X(2014)08?0099?03
Design and development of student attendance management system based on Android
WANG Jing?na
(Shaanxi Radio & TV University, Xian 710119, China)
Abstract: A student attendance management system including Android end, PC end and Web server end is proposed to solve the problems of low efficiency, information dispersion, bad real?time property, difficult statistics and low use ratio ofmanual management in the attendance management system of college students. The mobile devices based on Android platform is used in the attendance system to realize electronic roll call function. The attendance data of the students is acquired by Android devices and uploaded to server by 3G network. Dynamical management and looking up of attendance data are implemented by J2EE framework. The experimental results show that it can dynamically analyze the attendance information and provide a strong support for the current security management system of college students.
Keywords: student security management; attendance management; Android; J2EE
0引言
近年來,高校學(xué)生安全事故頻發(fā),安全管理問題日益突出[1]。而其中有相當(dāng)一部分安全事件又發(fā)生在教學(xué)時(shí)段,除了加強(qiáng)常規(guī)手段[2]外,教師在教學(xué)時(shí)段對學(xué)生的考勤也應(yīng)該發(fā)揮重要的作用。但是傳統(tǒng)教學(xué)中,學(xué)生的考勤信息僅作為教師課程總評結(jié)果中對學(xué)生日常表現(xiàn)的評價(jià)依據(jù)。而且還存在以下一些問題:
(1) 考勤信息由教師人工操作、管理,效率低下;
(2) 不同教師所掌握的考勤信息分散、缺乏聯(lián)系;
(3) 信息匯總往往發(fā)生在期末總評期間,實(shí)時(shí)性差;
(4) 記錄形式不規(guī)范統(tǒng)計(jì)困難;
(5) 教師對教學(xué)期間的缺勤信息缺乏及時(shí)的處理,利用率低下。筆紙記錄,分析整理在學(xué)校的日常管理中發(fā)揮的作用微乎其微,從而導(dǎo)致考勤信息在高校安全管理中無法發(fā)揮重要作用。
目前智能移動設(shè)備普及率日益提高,特別是基于Google Android系統(tǒng)[3]的移動平臺,市場占有率極高。Android相關(guān)硬件種類豐富且價(jià)格相對較為低廉,平臺應(yīng)用數(shù)量也十分龐大,整個(gè)生態(tài)系統(tǒng)非常成熟。為了充分利用教師的考勤信息,提出首先以Android平臺為出發(fā)點(diǎn)建立學(xué)生考勤管理系統(tǒng)輔助高校安全管理。系統(tǒng)由Android端提供點(diǎn)名、數(shù)據(jù)上傳等基礎(chǔ)功能;由PC端實(shí)現(xiàn)信息的高級管理;由服務(wù)端實(shí)現(xiàn)數(shù)據(jù)的存儲及安全管理。系統(tǒng)部署階段的實(shí)驗(yàn)表明,系統(tǒng)能實(shí)時(shí)、宏觀地掌握學(xué)生出勤信息,可及時(shí)將信息反饋給安全管理人員,有效地輔助高校學(xué)生安全管理工作。
1系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
基于android的學(xué)生考勤管理系統(tǒng)主要由Android端、PC端和服務(wù)器端3部分組成。Android端負(fù)責(zé)考勤數(shù)據(jù)的采集以及較為簡單的數(shù)據(jù)查詢。任課教師使用安裝有Android客戶端軟件的智能設(shè)備進(jìn)行電子點(diǎn)名,并通過網(wǎng)絡(luò)將數(shù)據(jù)上傳到服務(wù)器端,完成考勤數(shù)據(jù)的采集。PC端則提供較為完整的考勤數(shù)據(jù)管理和系統(tǒng)安全管理功能。用戶通過PC端界面登錄到服務(wù)端讀取數(shù)據(jù)庫服務(wù)器中的數(shù)據(jù),實(shí)時(shí)查看全校學(xué)生考勤的匯總信息,發(fā)現(xiàn)其中存在的問題,指導(dǎo)進(jìn)一步的管理工作。
1.1服務(wù)器及PC端
服務(wù)器端與PC端構(gòu)成完整的Web應(yīng)用,在開發(fā)過程中充分使用MVC模式和面向?qū)ο笏枷脒M(jìn)行設(shè)計(jì)來提高系統(tǒng)的靈活性和擴(kuò)展性。采用了分層的系統(tǒng)架構(gòu)(架構(gòu)圖見圖1),主要由?表示層、控制層、業(yè)務(wù)邏輯層和數(shù)據(jù)持久層4個(gè)層次組成。其中,表示層為Android端和PC端提供交互界面和請求響應(yīng),采用Freemarker作為模板引擎。控制層用Struts2[4]框架處理客戶端請求組織業(yè)務(wù)邏輯,并實(shí)現(xiàn)服務(wù)端有效性檢驗(yàn)、國際化等非功能需求。業(yè)務(wù)邏輯層通過基于接口的編程方法將系統(tǒng)業(yè)務(wù)分解成細(xì)粒度的服務(wù),大大提高了代碼的重用度。數(shù)據(jù)持久層則采用Mybatis3[5]作為ORM框架實(shí)現(xiàn)系統(tǒng)與數(shù)據(jù)庫之間的交互,降低了系統(tǒng)對數(shù)據(jù)庫的依賴,提高數(shù)據(jù)存儲的靈活性。而各層次對象間的依賴關(guān)系由Spring3[6]框架管理。分層架構(gòu)的使用有利于團(tuán)隊(duì)成員的分工合作,降低了系統(tǒng)集成難度,提高了項(xiàng)目開發(fā)生產(chǎn)效率。
圖1 服務(wù)端架構(gòu)
服務(wù)端對外提供的服務(wù)以REST風(fēng)格進(jìn)行組織,這樣所有服務(wù)都以標(biāo)準(zhǔn)的HTTP請求的方式提供給客戶端。當(dāng)PC端或Android端向服務(wù)器端發(fā)送HTTP請求時(shí),Struts2框架的FilterDispatcher過濾器根據(jù)配置文件將請求映射至相應(yīng)的Action入口方法。在Action的服務(wù)入口函數(shù)中根據(jù)業(yè)務(wù)需求將由業(yè)務(wù)邏輯層提供更小粒度的服務(wù)單元進(jìn)行整合。業(yè)務(wù)邏輯層涉及到數(shù)據(jù)存取部分的功能則又交由數(shù)據(jù)持久層的ORM框架完成。數(shù)據(jù)持久層完成數(shù)據(jù)操作后將結(jié)果反饋給業(yè)務(wù)邏輯層并進(jìn)一步由后將結(jié)果傳遞到控制層,再由控制層根據(jù)服務(wù)執(zhí)行結(jié)果選擇相應(yīng)的表示層模板將結(jié)果輸出至客戶端。若結(jié)果為純數(shù)據(jù)則使用JSON格式進(jìn)行數(shù)據(jù)打包,而其他數(shù)據(jù)則是由Freemarker代碼和客戶端代碼混合而成。
主要功能實(shí)現(xiàn):
(1) 登錄驗(yàn)證:所有用戶必須為已注冊的管理人員和教師。管理員可以進(jìn)行全部的系統(tǒng)管理操作,而教師則在課程管理的模塊,只能對自己的課程信息進(jìn)行相關(guān)修改。在開發(fā)時(shí)使AOP編程思想實(shí)現(xiàn),用Struts2中的Intercepter攔截系統(tǒng)的所有請求并進(jìn)行驗(yàn)證,這樣業(yè)務(wù)代碼就避免了被非功能代碼的污染同時(shí)提高了系統(tǒng)的靈活性。考慮到系統(tǒng)的用戶量、訪問量,為了提高系統(tǒng)性能,將全部用戶基本信息表緩存在服務(wù)內(nèi)存當(dāng)中。
(2) 學(xué)生信息管理模塊:主要是對學(xué)生的相關(guān)信息進(jìn)行增刪改查。全體學(xué)生信息在系統(tǒng)部署時(shí),由系統(tǒng)管理員從學(xué)校的相關(guān)系統(tǒng)中一次性導(dǎo)入,后期僅需要少量的日常維護(hù)。
(3) 課程信息模塊:這里主要是對教師所授的課程信息進(jìn)行增刪改查,管理員可以對所有教師進(jìn)行操作,而教師只能對和自己有關(guān)的課程信息進(jìn)行操作。
(4) 點(diǎn)名信息管理模塊:主要對從移動客戶端上傳的點(diǎn)名信息進(jìn)行處理??记跀?shù)據(jù)中的基本信息生成后,后續(xù)就無法進(jìn)行更改,避免的考勤信息的人為干預(yù)。用戶可以根據(jù)授課教師,課程,以或授課班級,對某一班的點(diǎn)名信息進(jìn)行統(tǒng)計(jì)分析。在PC端數(shù)據(jù)分析界面中,引入了HighCharts框架,使用圖形展示簡潔大方。
(5) 各班負(fù)責(zé)人管理模塊:主要是對每一個(gè)班級中的聯(lián)系人進(jìn)行管理,方便教師與學(xué)生交流。
(6) 移動端數(shù)據(jù)的上傳與下載:主要是對Android端發(fā)送的請求進(jìn)行響應(yīng),一方面為Android端提供數(shù)據(jù)下載服務(wù);另一方面是接收Android端上傳的考勤數(shù)據(jù)。為了滿足教學(xué)管理中對考勤數(shù)據(jù)進(jìn)一步分析的需求,系統(tǒng)使用jXLS框架將考勤數(shù)據(jù)輸出至jXLS模板動態(tài)生成Excel文件。
1.2Android端
Android端使用ADT(Android Development Toolkit)開發(fā)環(huán)境進(jìn)行開發(fā),邏輯結(jié)構(gòu)方面也采用了與服務(wù)器類似的分層架構(gòu),不同點(diǎn)在于控制層直接與Activity結(jié)合。業(yè)務(wù)運(yùn)行相關(guān)數(shù)據(jù)使用Android系統(tǒng)內(nèi)置的SQLite數(shù)據(jù)庫API在本地進(jìn)行存儲。Android端與服務(wù)器端考勤數(shù)據(jù)的同步功能則以服務(wù)形式實(shí)現(xiàn),可以避免應(yīng)用切換時(shí)未同步數(shù)據(jù)的丟失。當(dāng)數(shù)據(jù)傳輸量較大時(shí),若用戶使用3G網(wǎng)絡(luò)進(jìn)行通信,則系統(tǒng)會提示用戶是否進(jìn)行通信,從而節(jié)省通信成本。在無網(wǎng)絡(luò)信號時(shí),產(chǎn)生的考勤等數(shù)據(jù)會首先被保存在移動設(shè)備中,待網(wǎng)絡(luò)信息恢復(fù)后再與服務(wù)器端進(jìn)行同步。Android端與服務(wù)器端的數(shù)據(jù)交互通過Apache HttpClient框架來完成。任課教師在授課時(shí)使用Android端進(jìn)行考勤數(shù)據(jù)的采集,完成后系統(tǒng)通過同步服務(wù)使用HttpClient自動將數(shù)據(jù)同步至服務(wù)器。此外教師還可以通過Android端完成所授班級學(xué)生信息、所授課程信息、班級聯(lián)系人信息查詢等功能。各功能詳細(xì)描述如下:
(1) 點(diǎn)名:可以實(shí)現(xiàn)教師所教授班級學(xué)生的點(diǎn)名,進(jìn)行缺勤/出勤處理,并且還可對缺勤的同學(xué)進(jìn)一步根據(jù)其請假與否進(jìn)行處理。還可以查看某個(gè)同學(xué)的相關(guān)信息。
(2) 個(gè)人課表查詢:查詢教師的個(gè)人課表。
(3) 各班聯(lián)系方式管理:負(fù)責(zé)管理各班聯(lián)系方式,能發(fā)送信息或者打電話給各班負(fù)責(zé)人。
(4) 服務(wù)器與手機(jī)端的信息相互同步:能夠?qū)崿F(xiàn)Android端與服務(wù)器端的信息同步,既可以從服務(wù)器端下載相關(guān)的考勤數(shù)據(jù),也可以將Android端新產(chǎn)生的考勤數(shù)據(jù)同步到服務(wù)器端。
(5) 到課率與平時(shí)成績統(tǒng)計(jì):查詢某專業(yè)或者某個(gè)人的到課率情況。
1.3數(shù)據(jù)庫設(shè)計(jì)
結(jié)合系統(tǒng)需求對系統(tǒng)核心數(shù)據(jù)進(jìn)行分析,可以抽取出相關(guān)的實(shí)體:登錄用戶、學(xué)生、課程、班級、點(diǎn)名信息等,其E?R圖如圖2所示。從圖中可以清楚的看出各實(shí)體之間的聯(lián)系相對比較簡單,易于實(shí)現(xiàn)。系統(tǒng)采用廣為流行的開源數(shù)據(jù)庫MySQL作為服務(wù)端的持久層數(shù)據(jù)倉庫,在降低系統(tǒng)的成本的同時(shí)并未降低系統(tǒng)的穩(wěn)定性和可靠性。
圖2 服務(wù)端數(shù)據(jù)庫設(shè)計(jì)
2實(shí)驗(yàn)結(jié)果
系統(tǒng)開發(fā)完成后,作者在日常教學(xué)過程中進(jìn)行了全面的測試。達(dá)到了系統(tǒng)的目標(biāo),滿足了考勤管理的需要。與傳統(tǒng)模式相比,教師完成點(diǎn)名所需的時(shí)間與筆紙方式相當(dāng),而后續(xù)工作所需時(shí)間則大幅度減少。但在使用過程中也發(fā)現(xiàn)一些會影響到系統(tǒng)的因素,可能會影響系統(tǒng)部分設(shè)計(jì)目標(biāo)的達(dá)成。
在3G信號模式(教學(xué)區(qū)域無Wifi信號)下進(jìn)行數(shù)據(jù)同步時(shí),由于網(wǎng)絡(luò)信號原因存在以下問題:
(1) 局部區(qū)域網(wǎng)絡(luò)信號不穩(wěn)定,同步很難一次完成。
(2) 當(dāng)網(wǎng)絡(luò)傳輸速度較慢時(shí),上傳有時(shí)無法在數(shù)秒內(nèi)完成。
針對網(wǎng)速較慢的情況,可考慮在未來版本中將同步轉(zhuǎn)移至后臺,老師點(diǎn)名結(jié)束后,系統(tǒng)首先自動將數(shù)據(jù)同存在本地,在手動啟動同步服務(wù)后再進(jìn)行數(shù)據(jù)同步操作,這樣就不會影響到教師教學(xué)的連續(xù)性。
3結(jié)語
以流行的Android智能設(shè)備作為考勤數(shù)據(jù)采集工具,在基礎(chǔ)數(shù)據(jù)采集時(shí)間相當(dāng)?shù)那闆r下,大幅度減少了后期統(tǒng)計(jì)的工作量。并且,通過3G網(wǎng)絡(luò)實(shí)時(shí)將考勤數(shù)據(jù)上傳至服務(wù)后,在更大范圍的考勤信息動態(tài)統(tǒng)計(jì)工作成為了可能,大大超出的純?nèi)斯し绞娇记跀?shù)據(jù)的應(yīng)用范圍,為學(xué)校對學(xué)生的安全管理提供了有力的、新的手段。
參考文獻(xiàn)
[1] 楊斌.重視高校安全新風(fēng)險(xiǎn)點(diǎn)[N].中國保險(xiǎn)報(bào),2013?11?12(7).
[2] 范博,張晶晶.高校校園安全管理對策研究[J].中國·東盟博覽,2013(3):9?12.
[3] LEE Wei Meng. beginning Android 4 application development [M]. [S.l.]: Willey, 2012: 1?43.
[4] BROWN D, DAVIS C M, STANLICK S. Struts 2 in action [M]. [S.l.]: ManningPublications, 2008.
[5] BEGIN C, GOODIN B, MEADORS L. iBATIS in action [M]. [S.l.]: ManningPublications, 2007.
[6] WALLS Craig. Spring in action [M]. Third Edition. [S.l.]: ManningPublications, 2011.
主要功能實(shí)現(xiàn):
(1) 登錄驗(yàn)證:所有用戶必須為已注冊的管理人員和教師。管理員可以進(jìn)行全部的系統(tǒng)管理操作,而教師則在課程管理的模塊,只能對自己的課程信息進(jìn)行相關(guān)修改。在開發(fā)時(shí)使AOP編程思想實(shí)現(xiàn),用Struts2中的Intercepter攔截系統(tǒng)的所有請求并進(jìn)行驗(yàn)證,這樣業(yè)務(wù)代碼就避免了被非功能代碼的污染同時(shí)提高了系統(tǒng)的靈活性??紤]到系統(tǒng)的用戶量、訪問量,為了提高系統(tǒng)性能,將全部用戶基本信息表緩存在服務(wù)內(nèi)存當(dāng)中。
(2) 學(xué)生信息管理模塊:主要是對學(xué)生的相關(guān)信息進(jìn)行增刪改查。全體學(xué)生信息在系統(tǒng)部署時(shí),由系統(tǒng)管理員從學(xué)校的相關(guān)系統(tǒng)中一次性導(dǎo)入,后期僅需要少量的日常維護(hù)。
(3) 課程信息模塊:這里主要是對教師所授的課程信息進(jìn)行增刪改查,管理員可以對所有教師進(jìn)行操作,而教師只能對和自己有關(guān)的課程信息進(jìn)行操作。
(4) 點(diǎn)名信息管理模塊:主要對從移動客戶端上傳的點(diǎn)名信息進(jìn)行處理??记跀?shù)據(jù)中的基本信息生成后,后續(xù)就無法進(jìn)行更改,避免的考勤信息的人為干預(yù)。用戶可以根據(jù)授課教師,課程,以或授課班級,對某一班的點(diǎn)名信息進(jìn)行統(tǒng)計(jì)分析。在PC端數(shù)據(jù)分析界面中,引入了HighCharts框架,使用圖形展示簡潔大方。
(5) 各班負(fù)責(zé)人管理模塊:主要是對每一個(gè)班級中的聯(lián)系人進(jìn)行管理,方便教師與學(xué)生交流。
(6) 移動端數(shù)據(jù)的上傳與下載:主要是對Android端發(fā)送的請求進(jìn)行響應(yīng),一方面為Android端提供數(shù)據(jù)下載服務(wù);另一方面是接收Android端上傳的考勤數(shù)據(jù)。為了滿足教學(xué)管理中對考勤數(shù)據(jù)進(jìn)一步分析的需求,系統(tǒng)使用jXLS框架將考勤數(shù)據(jù)輸出至jXLS模板動態(tài)生成Excel文件。
1.2Android端
Android端使用ADT(Android Development Toolkit)開發(fā)環(huán)境進(jìn)行開發(fā),邏輯結(jié)構(gòu)方面也采用了與服務(wù)器類似的分層架構(gòu),不同點(diǎn)在于控制層直接與Activity結(jié)合。業(yè)務(wù)運(yùn)行相關(guān)數(shù)據(jù)使用Android系統(tǒng)內(nèi)置的SQLite數(shù)據(jù)庫API在本地進(jìn)行存儲。Android端與服務(wù)器端考勤數(shù)據(jù)的同步功能則以服務(wù)形式實(shí)現(xiàn),可以避免應(yīng)用切換時(shí)未同步數(shù)據(jù)的丟失。當(dāng)數(shù)據(jù)傳輸量較大時(shí),若用戶使用3G網(wǎng)絡(luò)進(jìn)行通信,則系統(tǒng)會提示用戶是否進(jìn)行通信,從而節(jié)省通信成本。在無網(wǎng)絡(luò)信號時(shí),產(chǎn)生的考勤等數(shù)據(jù)會首先被保存在移動設(shè)備中,待網(wǎng)絡(luò)信息恢復(fù)后再與服務(wù)器端進(jìn)行同步。Android端與服務(wù)器端的數(shù)據(jù)交互通過Apache HttpClient框架來完成。任課教師在授課時(shí)使用Android端進(jìn)行考勤數(shù)據(jù)的采集,完成后系統(tǒng)通過同步服務(wù)使用HttpClient自動將數(shù)據(jù)同步至服務(wù)器。此外教師還可以通過Android端完成所授班級學(xué)生信息、所授課程信息、班級聯(lián)系人信息查詢等功能。各功能詳細(xì)描述如下:
(1) 點(diǎn)名:可以實(shí)現(xiàn)教師所教授班級學(xué)生的點(diǎn)名,進(jìn)行缺勤/出勤處理,并且還可對缺勤的同學(xué)進(jìn)一步根據(jù)其請假與否進(jìn)行處理。還可以查看某個(gè)同學(xué)的相關(guān)信息。
(2) 個(gè)人課表查詢:查詢教師的個(gè)人課表。
(3) 各班聯(lián)系方式管理:負(fù)責(zé)管理各班聯(lián)系方式,能發(fā)送信息或者打電話給各班負(fù)責(zé)人。
(4) 服務(wù)器與手機(jī)端的信息相互同步:能夠?qū)崿F(xiàn)Android端與服務(wù)器端的信息同步,既可以從服務(wù)器端下載相關(guān)的考勤數(shù)據(jù),也可以將Android端新產(chǎn)生的考勤數(shù)據(jù)同步到服務(wù)器端。
(5) 到課率與平時(shí)成績統(tǒng)計(jì):查詢某專業(yè)或者某個(gè)人的到課率情況。
1.3數(shù)據(jù)庫設(shè)計(jì)
結(jié)合系統(tǒng)需求對系統(tǒng)核心數(shù)據(jù)進(jìn)行分析,可以抽取出相關(guān)的實(shí)體:登錄用戶、學(xué)生、課程、班級、點(diǎn)名信息等,其E?R圖如圖2所示。從圖中可以清楚的看出各實(shí)體之間的聯(lián)系相對比較簡單,易于實(shí)現(xiàn)。系統(tǒng)采用廣為流行的開源數(shù)據(jù)庫MySQL作為服務(wù)端的持久層數(shù)據(jù)倉庫,在降低系統(tǒng)的成本的同時(shí)并未降低系統(tǒng)的穩(wěn)定性和可靠性。
圖2 服務(wù)端數(shù)據(jù)庫設(shè)計(jì)
2實(shí)驗(yàn)結(jié)果
系統(tǒng)開發(fā)完成后,作者在日常教學(xué)過程中進(jìn)行了全面的測試。達(dá)到了系統(tǒng)的目標(biāo),滿足了考勤管理的需要。與傳統(tǒng)模式相比,教師完成點(diǎn)名所需的時(shí)間與筆紙方式相當(dāng),而后續(xù)工作所需時(shí)間則大幅度減少。但在使用過程中也發(fā)現(xiàn)一些會影響到系統(tǒng)的因素,可能會影響系統(tǒng)部分設(shè)計(jì)目標(biāo)的達(dá)成。
在3G信號模式(教學(xué)區(qū)域無Wifi信號)下進(jìn)行數(shù)據(jù)同步時(shí),由于網(wǎng)絡(luò)信號原因存在以下問題:
(1) 局部區(qū)域網(wǎng)絡(luò)信號不穩(wěn)定,同步很難一次完成。
(2) 當(dāng)網(wǎng)絡(luò)傳輸速度較慢時(shí),上傳有時(shí)無法在數(shù)秒內(nèi)完成。
針對網(wǎng)速較慢的情況,可考慮在未來版本中將同步轉(zhuǎn)移至后臺,老師點(diǎn)名結(jié)束后,系統(tǒng)首先自動將數(shù)據(jù)同存在本地,在手動啟動同步服務(wù)后再進(jìn)行數(shù)據(jù)同步操作,這樣就不會影響到教師教學(xué)的連續(xù)性。
3結(jié)語
以流行的Android智能設(shè)備作為考勤數(shù)據(jù)采集工具,在基礎(chǔ)數(shù)據(jù)采集時(shí)間相當(dāng)?shù)那闆r下,大幅度減少了后期統(tǒng)計(jì)的工作量。并且,通過3G網(wǎng)絡(luò)實(shí)時(shí)將考勤數(shù)據(jù)上傳至服務(wù)后,在更大范圍的考勤信息動態(tài)統(tǒng)計(jì)工作成為了可能,大大超出的純?nèi)斯し绞娇记跀?shù)據(jù)的應(yīng)用范圍,為學(xué)校對學(xué)生的安全管理提供了有力的、新的手段。
參考文獻(xiàn)
[1] 楊斌.重視高校安全新風(fēng)險(xiǎn)點(diǎn)[N].中國保險(xiǎn)報(bào),2013?11?12(7).
[2] 范博,張晶晶.高校校園安全管理對策研究[J].中國·東盟博覽,2013(3):9?12.
[3] LEE Wei Meng. beginning Android 4 application development [M]. [S.l.]: Willey, 2012: 1?43.
[4] BROWN D, DAVIS C M, STANLICK S. Struts 2 in action [M]. [S.l.]: ManningPublications, 2008.
[5] BEGIN C, GOODIN B, MEADORS L. iBATIS in action [M]. [S.l.]: ManningPublications, 2007.
[6] WALLS Craig. Spring in action [M]. Third Edition. [S.l.]: ManningPublications, 2011.
主要功能實(shí)現(xiàn):
(1) 登錄驗(yàn)證:所有用戶必須為已注冊的管理人員和教師。管理員可以進(jìn)行全部的系統(tǒng)管理操作,而教師則在課程管理的模塊,只能對自己的課程信息進(jìn)行相關(guān)修改。在開發(fā)時(shí)使AOP編程思想實(shí)現(xiàn),用Struts2中的Intercepter攔截系統(tǒng)的所有請求并進(jìn)行驗(yàn)證,這樣業(yè)務(wù)代碼就避免了被非功能代碼的污染同時(shí)提高了系統(tǒng)的靈活性。考慮到系統(tǒng)的用戶量、訪問量,為了提高系統(tǒng)性能,將全部用戶基本信息表緩存在服務(wù)內(nèi)存當(dāng)中。
(2) 學(xué)生信息管理模塊:主要是對學(xué)生的相關(guān)信息進(jìn)行增刪改查。全體學(xué)生信息在系統(tǒng)部署時(shí),由系統(tǒng)管理員從學(xué)校的相關(guān)系統(tǒng)中一次性導(dǎo)入,后期僅需要少量的日常維護(hù)。
(3) 課程信息模塊:這里主要是對教師所授的課程信息進(jìn)行增刪改查,管理員可以對所有教師進(jìn)行操作,而教師只能對和自己有關(guān)的課程信息進(jìn)行操作。
(4) 點(diǎn)名信息管理模塊:主要對從移動客戶端上傳的點(diǎn)名信息進(jìn)行處理??记跀?shù)據(jù)中的基本信息生成后,后續(xù)就無法進(jìn)行更改,避免的考勤信息的人為干預(yù)。用戶可以根據(jù)授課教師,課程,以或授課班級,對某一班的點(diǎn)名信息進(jìn)行統(tǒng)計(jì)分析。在PC端數(shù)據(jù)分析界面中,引入了HighCharts框架,使用圖形展示簡潔大方。
(5) 各班負(fù)責(zé)人管理模塊:主要是對每一個(gè)班級中的聯(lián)系人進(jìn)行管理,方便教師與學(xué)生交流。
(6) 移動端數(shù)據(jù)的上傳與下載:主要是對Android端發(fā)送的請求進(jìn)行響應(yīng),一方面為Android端提供數(shù)據(jù)下載服務(wù);另一方面是接收Android端上傳的考勤數(shù)據(jù)。為了滿足教學(xué)管理中對考勤數(shù)據(jù)進(jìn)一步分析的需求,系統(tǒng)使用jXLS框架將考勤數(shù)據(jù)輸出至jXLS模板動態(tài)生成Excel文件。
1.2Android端
Android端使用ADT(Android Development Toolkit)開發(fā)環(huán)境進(jìn)行開發(fā),邏輯結(jié)構(gòu)方面也采用了與服務(wù)器類似的分層架構(gòu),不同點(diǎn)在于控制層直接與Activity結(jié)合。業(yè)務(wù)運(yùn)行相關(guān)數(shù)據(jù)使用Android系統(tǒng)內(nèi)置的SQLite數(shù)據(jù)庫API在本地進(jìn)行存儲。Android端與服務(wù)器端考勤數(shù)據(jù)的同步功能則以服務(wù)形式實(shí)現(xiàn),可以避免應(yīng)用切換時(shí)未同步數(shù)據(jù)的丟失。當(dāng)數(shù)據(jù)傳輸量較大時(shí),若用戶使用3G網(wǎng)絡(luò)進(jìn)行通信,則系統(tǒng)會提示用戶是否進(jìn)行通信,從而節(jié)省通信成本。在無網(wǎng)絡(luò)信號時(shí),產(chǎn)生的考勤等數(shù)據(jù)會首先被保存在移動設(shè)備中,待網(wǎng)絡(luò)信息恢復(fù)后再與服務(wù)器端進(jìn)行同步。Android端與服務(wù)器端的數(shù)據(jù)交互通過Apache HttpClient框架來完成。任課教師在授課時(shí)使用Android端進(jìn)行考勤數(shù)據(jù)的采集,完成后系統(tǒng)通過同步服務(wù)使用HttpClient自動將數(shù)據(jù)同步至服務(wù)器。此外教師還可以通過Android端完成所授班級學(xué)生信息、所授課程信息、班級聯(lián)系人信息查詢等功能。各功能詳細(xì)描述如下:
(1) 點(diǎn)名:可以實(shí)現(xiàn)教師所教授班級學(xué)生的點(diǎn)名,進(jìn)行缺勤/出勤處理,并且還可對缺勤的同學(xué)進(jìn)一步根據(jù)其請假與否進(jìn)行處理。還可以查看某個(gè)同學(xué)的相關(guān)信息。
(2) 個(gè)人課表查詢:查詢教師的個(gè)人課表。
(3) 各班聯(lián)系方式管理:負(fù)責(zé)管理各班聯(lián)系方式,能發(fā)送信息或者打電話給各班負(fù)責(zé)人。
(4) 服務(wù)器與手機(jī)端的信息相互同步:能夠?qū)崿F(xiàn)Android端與服務(wù)器端的信息同步,既可以從服務(wù)器端下載相關(guān)的考勤數(shù)據(jù),也可以將Android端新產(chǎn)生的考勤數(shù)據(jù)同步到服務(wù)器端。
(5) 到課率與平時(shí)成績統(tǒng)計(jì):查詢某專業(yè)或者某個(gè)人的到課率情況。
1.3數(shù)據(jù)庫設(shè)計(jì)
結(jié)合系統(tǒng)需求對系統(tǒng)核心數(shù)據(jù)進(jìn)行分析,可以抽取出相關(guān)的實(shí)體:登錄用戶、學(xué)生、課程、班級、點(diǎn)名信息等,其E?R圖如圖2所示。從圖中可以清楚的看出各實(shí)體之間的聯(lián)系相對比較簡單,易于實(shí)現(xiàn)。系統(tǒng)采用廣為流行的開源數(shù)據(jù)庫MySQL作為服務(wù)端的持久層數(shù)據(jù)倉庫,在降低系統(tǒng)的成本的同時(shí)并未降低系統(tǒng)的穩(wěn)定性和可靠性。
圖2 服務(wù)端數(shù)據(jù)庫設(shè)計(jì)
2實(shí)驗(yàn)結(jié)果
系統(tǒng)開發(fā)完成后,作者在日常教學(xué)過程中進(jìn)行了全面的測試。達(dá)到了系統(tǒng)的目標(biāo),滿足了考勤管理的需要。與傳統(tǒng)模式相比,教師完成點(diǎn)名所需的時(shí)間與筆紙方式相當(dāng),而后續(xù)工作所需時(shí)間則大幅度減少。但在使用過程中也發(fā)現(xiàn)一些會影響到系統(tǒng)的因素,可能會影響系統(tǒng)部分設(shè)計(jì)目標(biāo)的達(dá)成。
在3G信號模式(教學(xué)區(qū)域無Wifi信號)下進(jìn)行數(shù)據(jù)同步時(shí),由于網(wǎng)絡(luò)信號原因存在以下問題:
(1) 局部區(qū)域網(wǎng)絡(luò)信號不穩(wěn)定,同步很難一次完成。
(2) 當(dāng)網(wǎng)絡(luò)傳輸速度較慢時(shí),上傳有時(shí)無法在數(shù)秒內(nèi)完成。
針對網(wǎng)速較慢的情況,可考慮在未來版本中將同步轉(zhuǎn)移至后臺,老師點(diǎn)名結(jié)束后,系統(tǒng)首先自動將數(shù)據(jù)同存在本地,在手動啟動同步服務(wù)后再進(jìn)行數(shù)據(jù)同步操作,這樣就不會影響到教師教學(xué)的連續(xù)性。
3結(jié)語
以流行的Android智能設(shè)備作為考勤數(shù)據(jù)采集工具,在基礎(chǔ)數(shù)據(jù)采集時(shí)間相當(dāng)?shù)那闆r下,大幅度減少了后期統(tǒng)計(jì)的工作量。并且,通過3G網(wǎng)絡(luò)實(shí)時(shí)將考勤數(shù)據(jù)上傳至服務(wù)后,在更大范圍的考勤信息動態(tài)統(tǒng)計(jì)工作成為了可能,大大超出的純?nèi)斯し绞娇记跀?shù)據(jù)的應(yīng)用范圍,為學(xué)校對學(xué)生的安全管理提供了有力的、新的手段。
參考文獻(xiàn)
[1] 楊斌.重視高校安全新風(fēng)險(xiǎn)點(diǎn)[N].中國保險(xiǎn)報(bào),2013?11?12(7).
[2] 范博,張晶晶.高校校園安全管理對策研究[J].中國·東盟博覽,2013(3):9?12.
[3] LEE Wei Meng. beginning Android 4 application development [M]. [S.l.]: Willey, 2012: 1?43.
[4] BROWN D, DAVIS C M, STANLICK S. Struts 2 in action [M]. [S.l.]: ManningPublications, 2008.
[5] BEGIN C, GOODIN B, MEADORS L. iBATIS in action [M]. [S.l.]: ManningPublications, 2007.
[6] WALLS Craig. Spring in action [M]. Third Edition. [S.l.]: ManningPublications, 2011.