王靖娜
摘要: 高校學生考勤管理存在著人工管理效率低、信息分散、實時性差、難于統計、利用率低的問題,對學生出勤信息的動態掌握造成了困難。提出一種包含Android移動客戶端(Android端)、PC Web客戶端(PC端)和Web服務端(服務端)混合而成的學生考勤管理系統。使用基于Android平臺的移動設備實現電子點名功能,通過3G網絡將學生考勤數據實時上傳至服務器,并用J2EE實現考勤數據的動態管理和查看。通過實驗表明,系統部署后確能實時、宏觀的掌握學生出勤信息,為高校學生安全管理提供了有力的支持。
關鍵字: 學生安全管理; 考勤管理; Android; J2EE
中圖分類號: TN964?34 文獻標識碼: 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引言
近年來,高校學生安全事故頻發,安全管理問題日益突出[1]。而其中有相當一部分安全事件又發生在教學時段,除了加強常規手段[2]外,教師在教學時段對學生的考勤也應該發揮重要的作用。但是傳統教學中,學生的考勤信息僅作為教師課程總評結果中對學生日常表現的評價依據。而且還存在以下一些問題:
(1) 考勤信息由教師人工操作、管理,效率低下;
(2) 不同教師所掌握的考勤信息分散、缺乏聯系;
(3) 信息匯總往往發生在期末總評期間,實時性差;
(4) 記錄形式不規范統計困難;
(5) 教師對教學期間的缺勤信息缺乏及時的處理,利用率低下。筆紙記錄,分析整理在學校的日常管理中發揮的作用微乎其微,從而導致考勤信息在高校安全管理中無法發揮重要作用。
目前智能移動設備普及率日益提高,特別是基于Google Android系統[3]的移動平臺,市場占有率極高。Android相關硬件種類豐富且價格相對較為低廉,平臺應用數量也十分龐大,整個生態系統非常成熟。為了充分利用教師的考勤信息,提出首先以Android平臺為出發點建立學生考勤管理系統輔助高校安全管理。系統由Android端提供點名、數據上傳等基礎功能;由PC端實現信息的高級管理;由服務端實現數據的存儲及安全管理。系統部署階段的實驗表明,系統能實時、宏觀地掌握學生出勤信息,可及時將信息反饋給安全管理人員,有效地輔助高校學生安全管理工作。
1系統設計與實現
基于android的學生考勤管理系統主要由Android端、PC端和服務器端3部分組成。Android端負責考勤數據的采集以及較為簡單的數據查詢。任課教師使用安裝有Android客戶端軟件的智能設備進行電子點名,并通過網絡將數據上傳到服務器端,完成考勤數據的采集。PC端則提供較為完整的考勤數據管理和系統安全管理功能。用戶通過PC端界面登錄到服務端讀取數據庫服務器中的數據,實時查看全校學生考勤的匯總信息,發現其中存在的問題,指導進一步的管理工作。
1.1服務器及PC端
服務器端與PC端構成完整的Web應用,在開發過程中充分使用MVC模式和面向對象思想進行設計來提高系統的靈活性和擴展性。采用了分層的系統架構(架構圖見圖1),主要由?表示層、控制層、業務邏輯層和數據持久層4個層次組成。其中,表示層為Android端和PC端提供交互界面和請求響應,采用Freemarker作為模板引擎。控制層用Struts2[4]框架處理客戶端請求組織業務邏輯,并實現服務端有效性檢驗、國際化等非功能需求。業務邏輯層通過基于接口的編程方法將系統業務分解成細粒度的服務,大大提高了代碼的重用度。數據持久層則采用Mybatis3[5]作為ORM框架實現系統與數據庫之間的交互,降低了系統對數據庫的依賴,提高數據存儲的靈活性。而各層次對象間的依賴關系由Spring3[6]框架管理。分層架構的使用有利于團隊成員的分工合作,降低了系統集成難度,提高了項目開發生產效率。
圖1 服務端架構
服務端對外提供的服務以REST風格進行組織,這樣所有服務都以標準的HTTP請求的方式提供給客戶端。當PC端或Android端向服務器端發送HTTP請求時,Struts2框架的FilterDispatcher過濾器根據配置文件將請求映射至相應的Action入口方法。在Action的服務入口函數中根據業務需求將由業務邏輯層提供更小粒度的服務單元進行整合。業務邏輯層涉及到數據存取部分的功能則又交由數據持久層的ORM框架完成。數據持久層完成數據操作后將結果反饋給業務邏輯層并進一步由后將結果傳遞到控制層,再由控制層根據服務執行結果選擇相應的表示層模板將結果輸出至客戶端。若結果為純數據則使用JSON格式進行數據打包,而其他數據則是由Freemarker代碼和客戶端代碼混合而成。
主要功能實現:
(1) 登錄驗證:所有用戶必須為已注冊的管理人員和教師。管理員可以進行全部的系統管理操作,而教師則在課程管理的模塊,只能對自己的課程信息進行相關修改。在開發時使AOP編程思想實現,用Struts2中的Intercepter攔截系統的所有請求并進行驗證,這樣業務代碼就避免了被非功能代碼的污染同時提高了系統的靈活性。考慮到系統的用戶量、訪問量,為了提高系統性能,將全部用戶基本信息表緩存在服務內存當中。
(2) 學生信息管理模塊:主要是對學生的相關信息進行增刪改查。全體學生信息在系統部署時,由系統管理員從學校的相關系統中一次性導入,后期僅需要少量的日常維護。
(3) 課程信息模塊:這里主要是對教師所授的課程信息進行增刪改查,管理員可以對所有教師進行操作,而教師只能對和自己有關的課程信息進行操作。
(4) 點名信息管理模塊:主要對從移動客戶端上傳的點名信息進行處理。考勤數據中的基本信息生成后,后續就無法進行更改,避免的考勤信息的人為干預。用戶可以根據授課教師,課程,以或授課班級,對某一班的點名信息進行統計分析。在PC端數據分析界面中,引入了HighCharts框架,使用圖形展示簡潔大方。
(5) 各班負責人管理模塊:主要是對每一個班級中的聯系人進行管理,方便教師與學生交流。
(6) 移動端數據的上傳與下載:主要是對Android端發送的請求進行響應,一方面為Android端提供數據下載服務;另一方面是接收Android端上傳的考勤數據。為了滿足教學管理中對考勤數據進一步分析的需求,系統使用jXLS框架將考勤數據輸出至jXLS模板動態生成Excel文件。
1.2Android端
Android端使用ADT(Android Development Toolkit)開發環境進行開發,邏輯結構方面也采用了與服務器類似的分層架構,不同點在于控制層直接與Activity結合。業務運行相關數據使用Android系統內置的SQLite數據庫API在本地進行存儲。Android端與服務器端考勤數據的同步功能則以服務形式實現,可以避免應用切換時未同步數據的丟失。當數據傳輸量較大時,若用戶使用3G網絡進行通信,則系統會提示用戶是否進行通信,從而節省通信成本。在無網絡信號時,產生的考勤等數據會首先被保存在移動設備中,待網絡信息恢復后再與服務器端進行同步。Android端與服務器端的數據交互通過Apache HttpClient框架來完成。任課教師在授課時使用Android端進行考勤數據的采集,完成后系統通過同步服務使用HttpClient自動將數據同步至服務器。此外教師還可以通過Android端完成所授班級學生信息、所授課程信息、班級聯系人信息查詢等功能。各功能詳細描述如下:
(1) 點名:可以實現教師所教授班級學生的點名,進行缺勤/出勤處理,并且還可對缺勤的同學進一步根據其請假與否進行處理。還可以查看某個同學的相關信息。
(2) 個人課表查詢:查詢教師的個人課表。
(3) 各班聯系方式管理:負責管理各班聯系方式,能發送信息或者打電話給各班負責人。
(4) 服務器與手機端的信息相互同步:能夠實現Android端與服務器端的信息同步,既可以從服務器端下載相關的考勤數據,也可以將Android端新產生的考勤數據同步到服務器端。
(5) 到課率與平時成績統計:查詢某專業或者某個人的到課率情況。
1.3數據庫設計
結合系統需求對系統核心數據進行分析,可以抽取出相關的實體:登錄用戶、學生、課程、班級、點名信息等,其E?R圖如圖2所示。從圖中可以清楚的看出各實體之間的聯系相對比較簡單,易于實現。系統采用廣為流行的開源數據庫MySQL作為服務端的持久層數據倉庫,在降低系統的成本的同時并未降低系統的穩定性和可靠性。
圖2 服務端數據庫設計
2實驗結果
系統開發完成后,作者在日常教學過程中進行了全面的測試。達到了系統的目標,滿足了考勤管理的需要。與傳統模式相比,教師完成點名所需的時間與筆紙方式相當,而后續工作所需時間則大幅度減少。但在使用過程中也發現一些會影響到系統的因素,可能會影響系統部分設計目標的達成。
在3G信號模式(教學區域無Wifi信號)下進行數據同步時,由于網絡信號原因存在以下問題:
(1) 局部區域網絡信號不穩定,同步很難一次完成。
(2) 當網絡傳輸速度較慢時,上傳有時無法在數秒內完成。
針對網速較慢的情況,可考慮在未來版本中將同步轉移至后臺,老師點名結束后,系統首先自動將數據同存在本地,在手動啟動同步服務后再進行數據同步操作,這樣就不會影響到教師教學的連續性。
3結語
以流行的Android智能設備作為考勤數據采集工具,在基礎數據采集時間相當的情況下,大幅度減少了后期統計的工作量。并且,通過3G網絡實時將考勤數據上傳至服務后,在更大范圍的考勤信息動態統計工作成為了可能,大大超出的純人工方式考勤數據的應用范圍,為學校對學生的安全管理提供了有力的、新的手段。
參考文獻
[1] 楊斌.重視高校安全新風險點[N].中國保險報,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.
主要功能實現:
(1) 登錄驗證:所有用戶必須為已注冊的管理人員和教師。管理員可以進行全部的系統管理操作,而教師則在課程管理的模塊,只能對自己的課程信息進行相關修改。在開發時使AOP編程思想實現,用Struts2中的Intercepter攔截系統的所有請求并進行驗證,這樣業務代碼就避免了被非功能代碼的污染同時提高了系統的靈活性。考慮到系統的用戶量、訪問量,為了提高系統性能,將全部用戶基本信息表緩存在服務內存當中。
(2) 學生信息管理模塊:主要是對學生的相關信息進行增刪改查。全體學生信息在系統部署時,由系統管理員從學校的相關系統中一次性導入,后期僅需要少量的日常維護。
(3) 課程信息模塊:這里主要是對教師所授的課程信息進行增刪改查,管理員可以對所有教師進行操作,而教師只能對和自己有關的課程信息進行操作。
(4) 點名信息管理模塊:主要對從移動客戶端上傳的點名信息進行處理。考勤數據中的基本信息生成后,后續就無法進行更改,避免的考勤信息的人為干預。用戶可以根據授課教師,課程,以或授課班級,對某一班的點名信息進行統計分析。在PC端數據分析界面中,引入了HighCharts框架,使用圖形展示簡潔大方。
(5) 各班負責人管理模塊:主要是對每一個班級中的聯系人進行管理,方便教師與學生交流。
(6) 移動端數據的上傳與下載:主要是對Android端發送的請求進行響應,一方面為Android端提供數據下載服務;另一方面是接收Android端上傳的考勤數據。為了滿足教學管理中對考勤數據進一步分析的需求,系統使用jXLS框架將考勤數據輸出至jXLS模板動態生成Excel文件。
1.2Android端
Android端使用ADT(Android Development Toolkit)開發環境進行開發,邏輯結構方面也采用了與服務器類似的分層架構,不同點在于控制層直接與Activity結合。業務運行相關數據使用Android系統內置的SQLite數據庫API在本地進行存儲。Android端與服務器端考勤數據的同步功能則以服務形式實現,可以避免應用切換時未同步數據的丟失。當數據傳輸量較大時,若用戶使用3G網絡進行通信,則系統會提示用戶是否進行通信,從而節省通信成本。在無網絡信號時,產生的考勤等數據會首先被保存在移動設備中,待網絡信息恢復后再與服務器端進行同步。Android端與服務器端的數據交互通過Apache HttpClient框架來完成。任課教師在授課時使用Android端進行考勤數據的采集,完成后系統通過同步服務使用HttpClient自動將數據同步至服務器。此外教師還可以通過Android端完成所授班級學生信息、所授課程信息、班級聯系人信息查詢等功能。各功能詳細描述如下:
(1) 點名:可以實現教師所教授班級學生的點名,進行缺勤/出勤處理,并且還可對缺勤的同學進一步根據其請假與否進行處理。還可以查看某個同學的相關信息。
(2) 個人課表查詢:查詢教師的個人課表。
(3) 各班聯系方式管理:負責管理各班聯系方式,能發送信息或者打電話給各班負責人。
(4) 服務器與手機端的信息相互同步:能夠實現Android端與服務器端的信息同步,既可以從服務器端下載相關的考勤數據,也可以將Android端新產生的考勤數據同步到服務器端。
(5) 到課率與平時成績統計:查詢某專業或者某個人的到課率情況。
1.3數據庫設計
結合系統需求對系統核心數據進行分析,可以抽取出相關的實體:登錄用戶、學生、課程、班級、點名信息等,其E?R圖如圖2所示。從圖中可以清楚的看出各實體之間的聯系相對比較簡單,易于實現。系統采用廣為流行的開源數據庫MySQL作為服務端的持久層數據倉庫,在降低系統的成本的同時并未降低系統的穩定性和可靠性。
圖2 服務端數據庫設計
2實驗結果
系統開發完成后,作者在日常教學過程中進行了全面的測試。達到了系統的目標,滿足了考勤管理的需要。與傳統模式相比,教師完成點名所需的時間與筆紙方式相當,而后續工作所需時間則大幅度減少。但在使用過程中也發現一些會影響到系統的因素,可能會影響系統部分設計目標的達成。
在3G信號模式(教學區域無Wifi信號)下進行數據同步時,由于網絡信號原因存在以下問題:
(1) 局部區域網絡信號不穩定,同步很難一次完成。
(2) 當網絡傳輸速度較慢時,上傳有時無法在數秒內完成。
針對網速較慢的情況,可考慮在未來版本中將同步轉移至后臺,老師點名結束后,系統首先自動將數據同存在本地,在手動啟動同步服務后再進行數據同步操作,這樣就不會影響到教師教學的連續性。
3結語
以流行的Android智能設備作為考勤數據采集工具,在基礎數據采集時間相當的情況下,大幅度減少了后期統計的工作量。并且,通過3G網絡實時將考勤數據上傳至服務后,在更大范圍的考勤信息動態統計工作成為了可能,大大超出的純人工方式考勤數據的應用范圍,為學校對學生的安全管理提供了有力的、新的手段。
參考文獻
[1] 楊斌.重視高校安全新風險點[N].中國保險報,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.
主要功能實現:
(1) 登錄驗證:所有用戶必須為已注冊的管理人員和教師。管理員可以進行全部的系統管理操作,而教師則在課程管理的模塊,只能對自己的課程信息進行相關修改。在開發時使AOP編程思想實現,用Struts2中的Intercepter攔截系統的所有請求并進行驗證,這樣業務代碼就避免了被非功能代碼的污染同時提高了系統的靈活性。考慮到系統的用戶量、訪問量,為了提高系統性能,將全部用戶基本信息表緩存在服務內存當中。
(2) 學生信息管理模塊:主要是對學生的相關信息進行增刪改查。全體學生信息在系統部署時,由系統管理員從學校的相關系統中一次性導入,后期僅需要少量的日常維護。
(3) 課程信息模塊:這里主要是對教師所授的課程信息進行增刪改查,管理員可以對所有教師進行操作,而教師只能對和自己有關的課程信息進行操作。
(4) 點名信息管理模塊:主要對從移動客戶端上傳的點名信息進行處理。考勤數據中的基本信息生成后,后續就無法進行更改,避免的考勤信息的人為干預。用戶可以根據授課教師,課程,以或授課班級,對某一班的點名信息進行統計分析。在PC端數據分析界面中,引入了HighCharts框架,使用圖形展示簡潔大方。
(5) 各班負責人管理模塊:主要是對每一個班級中的聯系人進行管理,方便教師與學生交流。
(6) 移動端數據的上傳與下載:主要是對Android端發送的請求進行響應,一方面為Android端提供數據下載服務;另一方面是接收Android端上傳的考勤數據。為了滿足教學管理中對考勤數據進一步分析的需求,系統使用jXLS框架將考勤數據輸出至jXLS模板動態生成Excel文件。
1.2Android端
Android端使用ADT(Android Development Toolkit)開發環境進行開發,邏輯結構方面也采用了與服務器類似的分層架構,不同點在于控制層直接與Activity結合。業務運行相關數據使用Android系統內置的SQLite數據庫API在本地進行存儲。Android端與服務器端考勤數據的同步功能則以服務形式實現,可以避免應用切換時未同步數據的丟失。當數據傳輸量較大時,若用戶使用3G網絡進行通信,則系統會提示用戶是否進行通信,從而節省通信成本。在無網絡信號時,產生的考勤等數據會首先被保存在移動設備中,待網絡信息恢復后再與服務器端進行同步。Android端與服務器端的數據交互通過Apache HttpClient框架來完成。任課教師在授課時使用Android端進行考勤數據的采集,完成后系統通過同步服務使用HttpClient自動將數據同步至服務器。此外教師還可以通過Android端完成所授班級學生信息、所授課程信息、班級聯系人信息查詢等功能。各功能詳細描述如下:
(1) 點名:可以實現教師所教授班級學生的點名,進行缺勤/出勤處理,并且還可對缺勤的同學進一步根據其請假與否進行處理。還可以查看某個同學的相關信息。
(2) 個人課表查詢:查詢教師的個人課表。
(3) 各班聯系方式管理:負責管理各班聯系方式,能發送信息或者打電話給各班負責人。
(4) 服務器與手機端的信息相互同步:能夠實現Android端與服務器端的信息同步,既可以從服務器端下載相關的考勤數據,也可以將Android端新產生的考勤數據同步到服務器端。
(5) 到課率與平時成績統計:查詢某專業或者某個人的到課率情況。
1.3數據庫設計
結合系統需求對系統核心數據進行分析,可以抽取出相關的實體:登錄用戶、學生、課程、班級、點名信息等,其E?R圖如圖2所示。從圖中可以清楚的看出各實體之間的聯系相對比較簡單,易于實現。系統采用廣為流行的開源數據庫MySQL作為服務端的持久層數據倉庫,在降低系統的成本的同時并未降低系統的穩定性和可靠性。
圖2 服務端數據庫設計
2實驗結果
系統開發完成后,作者在日常教學過程中進行了全面的測試。達到了系統的目標,滿足了考勤管理的需要。與傳統模式相比,教師完成點名所需的時間與筆紙方式相當,而后續工作所需時間則大幅度減少。但在使用過程中也發現一些會影響到系統的因素,可能會影響系統部分設計目標的達成。
在3G信號模式(教學區域無Wifi信號)下進行數據同步時,由于網絡信號原因存在以下問題:
(1) 局部區域網絡信號不穩定,同步很難一次完成。
(2) 當網絡傳輸速度較慢時,上傳有時無法在數秒內完成。
針對網速較慢的情況,可考慮在未來版本中將同步轉移至后臺,老師點名結束后,系統首先自動將數據同存在本地,在手動啟動同步服務后再進行數據同步操作,這樣就不會影響到教師教學的連續性。
3結語
以流行的Android智能設備作為考勤數據采集工具,在基礎數據采集時間相當的情況下,大幅度減少了后期統計的工作量。并且,通過3G網絡實時將考勤數據上傳至服務后,在更大范圍的考勤信息動態統計工作成為了可能,大大超出的純人工方式考勤數據的應用范圍,為學校對學生的安全管理提供了有力的、新的手段。
參考文獻
[1] 楊斌.重視高校安全新風險點[N].中國保險報,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.