吳 文
(黃山學(xué)院 現(xiàn)代教育技術(shù)中心 ,安徽 黃山 245041)
基于JAVA的機(jī)房應(yīng)用考勤管理系統(tǒng)
吳 文
(黃山學(xué)院 現(xiàn)代教育技術(shù)中心 ,安徽 黃山 245041)
加強(qiáng)機(jī)房實(shí)驗(yàn)課程的考勤管理,是選課制教改新形勢(shì)下的新問題。本文針對(duì)這一問題,設(shè)計(jì)了基于JAVA的機(jī)房應(yīng)用考勤管理系統(tǒng),是一個(gè)行之有效的解決方案。該管理系統(tǒng)為C/S三層架構(gòu),實(shí)現(xiàn)了學(xué)生身份驗(yàn)證后的、防作弊的真實(shí)考勤,課內(nèi)操作行為的遠(yuǎn)程監(jiān)管,以及遠(yuǎn)程開關(guān)機(jī)等功能,同時(shí)提供了數(shù)據(jù)維護(hù)的功能。
遠(yuǎn)程開機(jī);遠(yuǎn)程監(jiān)控;數(shù)據(jù)庫修復(fù)與備份
隨著校園信息化進(jìn)程的日益深入,機(jī)房的管理工作越來越復(fù)雜,所涉管理工作量越來越大,其中就包括計(jì)算機(jī)實(shí)驗(yàn)課程中學(xué)生上機(jī)行為管理這個(gè)十分棘手的問題。計(jì)算機(jī)實(shí)驗(yàn)課程的學(xué)生行為管理須解決以下問題:
(1)上課學(xué)生的身份驗(yàn)證。隨著教改的逐步深入,大學(xué)的公共計(jì)算機(jī)課程面對(duì)的不再是原先行政班建制的學(xué)生,而是來自于不同專業(yè)系別甚至不同年級(jí)的學(xué)生,通過自由選課組成的教學(xué)班級(jí),生源構(gòu)成非常復(fù)雜;鑒于計(jì)算機(jī)房日常開放和學(xué)生的教學(xué)作息各不相同,常會(huì)出現(xiàn)非本教學(xué)班的學(xué)生擠占了實(shí)驗(yàn)課學(xué)生機(jī)位的情況。
(2)上課學(xué)生的考勤管理。如前所述,教學(xué)班級(jí)的生源構(gòu)成已完全打破了行政班級(jí)、專業(yè)系別、甚至年級(jí)的劃分,學(xué)生因相互之間多不認(rèn)識(shí),而難以相互監(jiān)督或班委考勤;老式的點(diǎn)名形式不僅頻遭詬病,更是大大影響教學(xué)的過程。
(3)上課學(xué)生的操作監(jiān)控。實(shí)驗(yàn)課絕不是自由上機(jī),須對(duì)學(xué)生的操作行為加以嚴(yán)格監(jiān)控,督促他們進(jìn)行規(guī)定的操作實(shí)驗(yàn),完成規(guī)定的教學(xué)任務(wù)。
當(dāng)前校園機(jī)房在教學(xué)過程中缺少有效的管理軟件,為此,我們開發(fā)了《機(jī)房應(yīng)用考勤管理系統(tǒng)》。該系統(tǒng)通過整合課程安排,建立一個(gè)優(yōu)化后的局域網(wǎng)機(jī)房管理數(shù)據(jù)庫,基于此數(shù)據(jù)庫,考勤系統(tǒng)對(duì)上課學(xué)生進(jìn)行準(zhǔn)確高效的考勤,學(xué)期結(jié)束可將考勤報(bào)表導(dǎo)出作為學(xué)校學(xué)期考勤核查的依據(jù)。
本系統(tǒng)是由Mysql服務(wù)器、教師機(jī)和學(xué)生機(jī)三部分組成的三層架構(gòu)。Mysql服務(wù)器主要是進(jìn)行所有的相關(guān)數(shù)據(jù)的管理;例如:教師信息、學(xué)生班級(jí)組成以及考勤記錄等,同時(shí)還將數(shù)據(jù)進(jìn)行實(shí)時(shí)備份,以防數(shù)據(jù)的丟失。學(xué)生機(jī)的任務(wù)主要是提供實(shí)名登錄、在線求助等功能。本系統(tǒng)同時(shí)作為機(jī)房上機(jī)行為監(jiān)控系統(tǒng),功能主要體現(xiàn)在教師機(jī)的監(jiān)控上。教師機(jī)的任務(wù)是將當(dāng)前班級(jí)學(xué)生名單導(dǎo)入并添加監(jiān)控面板進(jìn)行實(shí)時(shí)監(jiān)控,可進(jìn)行在線人員查詢即出勤情況、當(dāng)前學(xué)生機(jī)操作情況、學(xué)生求助、遠(yuǎn)程提示以及開、關(guān)機(jī)等操作。
本軟件的主要技術(shù)難點(diǎn)是QQ、流媒體播放器很有效的控制,以及語音通信中語音質(zhì)量的優(yōu)化問題。
《機(jī)房應(yīng)用考勤管理系統(tǒng)》采用JAVA為開發(fā)語言,原因有二:一是JAVA的可移植性;再是JAVA的網(wǎng)絡(luò)與分布式控制編程的長處。但JAVA也有二個(gè)不足,一是對(duì)普遍使用的WINDOWS系統(tǒng)的低層控制,需要借助JNI等技術(shù)才可實(shí)現(xiàn),控制能力弱;再是JAVA的性能有時(shí)難以令人滿意。我們采用了高性能的第三方插件技術(shù)與優(yōu)化JAVA的代碼設(shè)計(jì)思想,有效克服了JAVA的不足。
系統(tǒng)開發(fā)采用了的插件:
jRegistryKey.jar//jRegistry是用JNI來封裝WINDOWS注冊(cè)表API,方便了java開發(fā)者訪問windows注冊(cè)表。jRegistryKey.jar和jRegistryKey.dll這兩個(gè)文件是使用jRegistry來操作注冊(cè)表所必需的文件。
mysql-connector-java-5[1].1.7-bin.jar//用于與mysql數(shù)據(jù)庫連接的類
sigar.jar//用于獲取客戶端運(yùn)行的數(shù)據(jù)信息
org.eclipse.swt.win32.jar//用于對(duì)鼠標(biāo),鍵盤實(shí)時(shí)監(jiān)聽
Liquidlnf.jar//用于軟件界面風(fēng)格的設(shè)定
此系統(tǒng)是基于java和mysql開發(fā),且代碼開源,可以根據(jù)需求隨時(shí)實(shí)現(xiàn)系統(tǒng)的擴(kuò)展和更新。下面針對(duì)此系統(tǒng)的實(shí)現(xiàn)難點(diǎn)進(jìn)行技術(shù)介紹。
采用基于由AMD和HP提出的Magic Packet方法的wake on lan技術(shù),需要系統(tǒng)主板和網(wǎng)卡的支持,并且要在bios里將主板的wake on lan啟用。
規(guī)范:
Wake-on-LAN簡稱WOL或WoL,中文多譯為“網(wǎng)絡(luò)喚醒”、“遠(yuǎn)端喚醒”技術(shù)。WOL是一種技術(shù),同時(shí)也是該技術(shù)的規(guī)范標(biāo)準(zhǔn),它的功效在于讓已經(jīng)進(jìn)入休眠狀態(tài)或關(guān)機(jī)狀態(tài)的電腦,透過局域網(wǎng)路(多半為以太網(wǎng)路)的另一端對(duì)其發(fā)令,使其從休眠狀態(tài)喚醒、恢復(fù)成運(yùn)作狀態(tài),或從關(guān)機(jī)狀態(tài)轉(zhuǎn)成開機(jī)狀態(tài)。此外,與WOL相關(guān)的技術(shù)也包括遠(yuǎn)端下令關(guān)機(jī)、遠(yuǎn)端下令重新開機(jī)等相關(guān)的遙控機(jī)制。
Magic Packet可以是任何協(xié)議的數(shù)據(jù)幀(IP,UDP等),該數(shù)據(jù)幀中包含了6字節(jié)FF,后跟16次該網(wǎng)卡的硬件地址。支持遠(yuǎn)程喚醒的網(wǎng)卡接收到這樣的數(shù)據(jù)包時(shí),它就會(huì)作出反應(yīng),通知主機(jī)進(jìn)入開機(jī)狀態(tài)。本項(xiàng)功能要求PC機(jī)處于待電狀態(tài)(不是待機(jī))——這是提高機(jī)房整體開機(jī)與避免同步開機(jī)造成的電網(wǎng)沖擊,提高機(jī)房電氣安全的有效方法。
本系統(tǒng)采用一定的考勤算法,通過確定登錄時(shí)間、上課時(shí)間、下課的多種組合算法,配合對(duì)缺課、早退、遲到的識(shí)別,有效的控制了上課的質(zhì)量;考勤認(rèn)證通過學(xué)生點(diǎn)擊窗口來實(shí)現(xiàn),為避免代簽現(xiàn)象(一人以多人身份在多機(jī)位簽到)的發(fā)生,登錄后一分鐘屏幕上彈出簽到窗口(窗口停留6秒鐘)讓學(xué)生點(diǎn)擊,之后的全部上課時(shí)間都會(huì)啟動(dòng)另一種簽到驗(yàn)證方式,就是通過對(duì)鍵盤和鼠標(biāo)的動(dòng)作監(jiān)聽,如果學(xué)生三分鐘之內(nèi)沒有任何操作,將彈出簽到框,以驗(yàn)證學(xué)生是否仍然在線,通過點(diǎn)擊窗口的次數(shù)的統(tǒng)計(jì)來判斷是否出勤、遲到和早退,這就體現(xiàn)考勤結(jié)果的公正性和正確性。對(duì)于考勤算法采用多種混合規(guī)則,保證課程的教學(xué)質(zhì)量,達(dá)到教學(xué)效果,防止學(xué)生離機(jī)行為產(chǎn)生。
對(duì)鍵盤和鼠標(biāo)監(jiān)聽程序主要部分:

為了提高監(jiān)控的準(zhǔn)確性,此系統(tǒng)通過對(duì)QQ和media運(yùn)行時(shí)所獨(dú)有的DLL文件 (動(dòng)態(tài)鏈接庫)文件進(jìn)行檢測,從而能準(zhǔn)確的在教師機(jī)上遠(yuǎn)程關(guān)閉QQ和Media播放器,控制學(xué)生課內(nèi)的一些非教學(xué)內(nèi)容操作行為;針對(duì)學(xué)生常在課內(nèi)瀏覽無關(guān)網(wǎng)頁的情況,通過對(duì)system32driversetchosts文件的控制,即可對(duì)學(xué)生瀏覽網(wǎng)址進(jìn)行有效控制。
關(guān)鍵代碼:
瀏覽網(wǎng)址的控制關(guān)鍵代碼

對(duì)QQ,media控制的關(guān)鍵源碼:


考勤端每3分鐘從數(shù)據(jù)庫中收集一次在線學(xué)生的信息,并存入一個(gè)arraylist中,學(xué)生端機(jī)器定時(shí)(時(shí)間間隔為1-1.5分鐘)發(fā)送信息到考勤端,考勤端收到信息后就將該生信息從arraylist中清除,三分鐘后,arraylist剩下的就是不在線學(xué)生的信息,并將該部分學(xué)生的在線狀態(tài)置為0。
核心源碼:

使用對(duì)客戶端的OS與應(yīng)用軟件的特征識(shí)別,完成對(duì)用戶的作業(yè)需求軟件應(yīng)用的監(jiān)控。并從中發(fā)現(xiàn)學(xué)生的作業(yè)中存在的問題、系統(tǒng)出現(xiàn)的問題、異常軟件行為,及時(shí)的通知教學(xué)管理人員進(jìn)行處理。對(duì)于OS與應(yīng)用軟件的崩潰、中毒或異常問題,系統(tǒng)可以自動(dòng)處理與避免,并記錄相關(guān)的問題,以供優(yōu)化與處理時(shí)使用。
用于在教室中老師漫游指導(dǎo)時(shí),隨身攜帶的提醒設(shè)備,通過藍(lán)牙來實(shí)現(xiàn)求助學(xué)生方位,本設(shè)備功能將在新版本中使用。
語音部分根據(jù)采集每個(gè)人的信息,在開始16個(gè)字節(jié)加上字節(jié)IP以表示是區(qū)別聲音的分組,不允許播放的聲音不添加這個(gè)IP,不播放。
在數(shù)據(jù)處理中,數(shù)據(jù)的管理與綜合是最基本的工作,數(shù)據(jù)管理(Data Management)是其他數(shù)據(jù)處理的核心和基礎(chǔ)。
《機(jī)房應(yīng)用考勤系統(tǒng)》的數(shù)據(jù)庫數(shù)據(jù)管理與綜合主要分為四個(gè)模塊:數(shù)據(jù)庫檢測、數(shù)據(jù)庫修復(fù)、數(shù)據(jù)的備份與重構(gòu)、數(shù)據(jù)庫數(shù)據(jù)整合;考勤系統(tǒng)的數(shù)據(jù)庫數(shù)據(jù)管理與綜合的模塊圖如圖1所示:

圖1 考勤系統(tǒng)的數(shù)據(jù)庫數(shù)據(jù)管理與綜合的模塊圖
數(shù)據(jù)庫的檢測主要包括:庫表的完整性檢查,觸發(fā)器的檢測,事件的檢測,索引的檢測。檢測程序在啟動(dòng)以后根據(jù)用戶提供的數(shù)據(jù)庫信息,掃描數(shù)據(jù)庫,檢測問題項(xiàng),例如在庫表的完整性檢測中,掃描程序會(huì)檢測庫表中表的數(shù)量及表中字段的完整性等,在觸發(fā)器檢測時(shí)會(huì)檢測數(shù)據(jù)庫觸發(fā)器的啟用狀況,以及使用狀況等,檢測完畢以后,沒有問題的選項(xiàng),則提示正常,如果出現(xiàn)異常,就會(huì)根據(jù)對(duì)應(yīng)的問題在 “數(shù)據(jù)庫修復(fù)”選項(xiàng)中提示修復(fù)。
事件修復(fù),觸發(fā)器修復(fù),索引修復(fù),存儲(chǔ)過程修復(fù),庫表修復(fù)等功能構(gòu)成針對(duì)數(shù)據(jù)庫的修復(fù)模塊,在選擇修復(fù)項(xiàng)時(shí)可以根據(jù)數(shù)據(jù)庫檢測出來的問題進(jìn)行對(duì)應(yīng)的修復(fù)。如:如事件調(diào)度器因意外原因關(guān)閉時(shí),或Event被誤刪除時(shí),事件修復(fù)可以打開和恢復(fù)數(shù)據(jù)庫的Event功能。
修復(fù)trigger部分代碼

Sorry,您沒有操作該數(shù)據(jù)庫的trigger權(quán)限,請(qǐng)您在數(shù)據(jù)庫服務(wù)器中開啟該權(quán)限","信息",JOptionPane.INFORMATION_MESSAGE);

數(shù)據(jù)庫備份模塊由 備份數(shù)據(jù)庫,重建數(shù)據(jù)庫,導(dǎo)入數(shù)據(jù)庫數(shù)據(jù)這幾個(gè)子模塊構(gòu)成。
備份數(shù)據(jù)庫是管理員根據(jù)需要或時(shí)間備份考勤數(shù)據(jù)庫的所有數(shù)據(jù)信息。這也是數(shù)據(jù)庫日常維護(hù)的一個(gè)部分。
重建數(shù)據(jù)庫會(huì)刪除無效的考勤數(shù)據(jù)庫的所有信息,再重建新的數(shù)據(jù)庫。
導(dǎo)入數(shù)據(jù)庫是管理員導(dǎo)入原來備份的考勤數(shù)據(jù)庫的數(shù)據(jù)庫數(shù)據(jù)信息。如數(shù)據(jù)庫數(shù)據(jù)被誤操作或數(shù)據(jù)庫故障導(dǎo)致數(shù)據(jù)數(shù)據(jù)丟失時(shí),可以及時(shí)有效的恢復(fù)數(shù)據(jù)庫。
數(shù)據(jù)庫數(shù)據(jù)整合主要是對(duì)考勤數(shù)據(jù)庫考勤信息的準(zhǔn)確統(tǒng)計(jì)與整合,剔除一些錯(cuò)誤或無效的記錄信息,用戶可以根據(jù)自己的需要,更加方便準(zhǔn)確的查找自己的數(shù)據(jù)信息,并且可以以一些直觀的形式導(dǎo)出數(shù)據(jù),如把需要的數(shù)據(jù)信息導(dǎo)出到Excel表中等等。
本系統(tǒng)為機(jī)房上機(jī)行為監(jiān)控系統(tǒng)上課前教師在管理端可將學(xué)生名單導(dǎo)入并添加面板即可對(duì)客戶端(學(xué)生機(jī))進(jìn)行監(jiān)控;學(xué)生機(jī)只要輸入學(xué)號(hào)就可登錄上機(jī)系統(tǒng)進(jìn)行教學(xué)內(nèi)容練習(xí)??记谙到y(tǒng)在應(yīng)用過程中,徹底消除上機(jī)房上機(jī)時(shí)的混亂現(xiàn)象(換機(jī)頻繁(21%)、占用多臺(tái)機(jī)器(13%)、惡意開機(jī)與關(guān)機(jī)(25%)、下載無關(guān)軟件(15%)、上課時(shí)上QQ看電影(18%)等),并從根本上解決了考勤的隨意性,做到相對(duì)公正公平。目前該系統(tǒng)在我校公共計(jì)算機(jī)實(shí)驗(yàn)室使用二年?duì)顟B(tài)良好。
[1][美]霍斯特曼.等譯,JAVA核心技術(shù)[M],陳昊鵬,王浩,姚建平,北京:機(jī)械工業(yè)出版社,2008.
[2][美]理查茲,[美]蒙森-哈斐爾,[美]查普爾.Java 消息服務(wù)[M].閆懷志,譯.北京:電子工業(yè)出版社,2010
[3][美]Kenneth A.Lambert.[美]Martin Osborne,等 JAVA 程序設(shè)計(jì)與數(shù)據(jù)結(jié)構(gòu)[M].佟占杰,等譯.北京:清華大學(xué)出版社,2005.
[4][美]Chris Schalk Ed Burns.JavaServer Faces完全參考手冊(cè)[M].張猛,譯.北京:人民郵電出版社,2007.
[5]Nicholas C.Zakas.JavaScript高級(jí)程序設(shè)計(jì)[M].曹力,張欣,等譯,北京:人民郵電出版社,2006.
TP 311
A
1674-1102(2011)06-0041-04
2011-08-13
吳文(1966-),女,安徽休寧人,黃山學(xué)院現(xiàn)代教育中心教師,主要研究方向?yàn)橛?jì)算機(jī)應(yīng)用。
[責(zé)任編輯:曹懷火]