魯 慕 周
(張家口市交通局運(yùn)輸管理處,河北 張家口 075000)
目前,高校機(jī)群的主要任務(wù)集中在承擔(dān)與計(jì)算機(jī)相關(guān)課程的教學(xué)實(shí)驗(yàn)上.除此之外,還承擔(dān)著諸如培訓(xùn)考試、學(xué)生課外上機(jī)等一些社會服務(wù)工作.但是,機(jī)群管理事務(wù)繁雜、自動化程度有待提高[1];教學(xué)系統(tǒng)軟件功能過于龐大;一些電腦廠家自帶的機(jī)群管理軟件又過于專業(yè)和繁瑣.因此,開發(fā)一個(gè)集主流教學(xué)軟件和多數(shù)機(jī)群管理軟件特色于一體的系統(tǒng),立足于更加便于機(jī)群管理者進(jìn)行機(jī)群的日常管理,減輕管理人員負(fù)擔(dān),提高管理效率.
本系統(tǒng)采用C/S模式.被控端軟件開機(jī)自動后臺運(yùn)行,達(dá)到防止被用戶結(jié)束的目的[2].主控端軟件采用系統(tǒng)管理模式,主要控制被控端的狀態(tài),它的主要功能包括用戶登錄、掃描客戶端、保存客戶端信息、學(xué)生簽到、簽到信息管理、發(fā)送消息、限制上網(wǎng)、遠(yuǎn)程關(guān)機(jī)、遠(yuǎn)程重啟、遠(yuǎn)程喚醒、執(zhí)行命令、禁用U盤等.本系統(tǒng)是一個(gè)運(yùn)行在局域網(wǎng)上的系統(tǒng),能夠直觀、方便、有效、可靠地管理通過局域網(wǎng)聯(lián)在一起的所有計(jì)算機(jī).實(shí)現(xiàn)機(jī)群管理工作的系統(tǒng)化、規(guī)范化.
經(jīng)過系統(tǒng)的需求分析,初步得到了機(jī)群管理系統(tǒng)的主要使用流程:被控端開機(jī)自動啟動服務(wù)端軟件,主控端掃描并連接到被控端,向被控端發(fā)送命令,被控端執(zhí)行,主控端查詢學(xué)生簽到情況.
經(jīng)過對機(jī)群管理進(jìn)行分析,本系統(tǒng)要實(shí)現(xiàn)的主要功能有:分角色進(jìn)行登錄;對局域網(wǎng)內(nèi)的被控端進(jìn)行掃描連接,保存被控端信息;實(shí)現(xiàn)學(xué)生簽到,查看及簽到記錄,限制上網(wǎng),遠(yuǎn)程關(guān)機(jī)等;實(shí)現(xiàn)遠(yuǎn)程喚醒,鎖定電腦,解鎖U盤禁用;實(shí)現(xiàn)后臺運(yùn)行,檢測電腦空閑時(shí)間,檢測U盤插入等.除了上述功能以外,機(jī)群管理系統(tǒng)還要具有友好、簡潔的界面,可靠性要高,穩(wěn)定性要強(qiáng),能夠滿足用戶的需求.
根據(jù)以上分析,得出系統(tǒng)用例圖 如圖1所示.
(1)用戶搜索
管理員可以通過設(shè)置掃描范圍,掃描局域網(wǎng)內(nèi)已經(jīng)啟動被控端軟件的電腦.可以保存已經(jīng)連接過的被控端信息,也可以在填充最近一次保存的結(jié)果后進(jìn)行試探性的連接被控端.這是本管理系統(tǒng)的基本模塊,是實(shí)現(xiàn)遠(yuǎn)程控制[3]的基礎(chǔ).
(2)教學(xué)管理
圖1 系統(tǒng)用例圖
用戶通過簽到統(tǒng)計(jì)查看學(xué)生簽到情況.本模塊還支持教學(xué)中的信息發(fā)送,教師可以將一些提示信息發(fā)送給每一個(gè)被控端.另外教學(xué)中的上網(wǎng)限制也是必要的,能夠起到一定的教學(xué)管理功能.同時(shí),為了節(jié)約能源,方便教師在下課后關(guān)閉所有機(jī)器,還支持遠(yuǎn)程關(guān)機(jī)功能[4].
(3)機(jī)群管理
本模塊支持管理員遠(yuǎn)程喚醒以及重啟機(jī)器,便于統(tǒng)一管理電腦.執(zhí)行命令功能,可以讓被控端執(zhí)行指定路徑下的可執(zhí)行文件.另外,為了方便機(jī)群開放管理,可以實(shí)現(xiàn)鎖定電腦的功能,這時(shí)被控端電腦不響應(yīng)任何操作.同時(shí),還集成了解鎖禁用U盤以及顯示機(jī)器號的功能.
主控端功能模塊圖 如圖2所示.
圖2 主控端功能模塊
被控端功能模塊 如圖3所示.
(1)被控端能夠隱藏進(jìn)程,在后臺運(yùn)行,只能在任務(wù)管理器里看到,防止被人惡意結(jié)束.
(2)檢測電腦空閑時(shí)間,如果60分鐘沒有任何人動過電腦,電腦將自動關(guān)機(jī).
(3)在禁用U盤功能啟動的情況下,檢測電腦是否有U盤插入,若有,則向主控端發(fā)出通知.
(4)顯示簽到對話框,輸入學(xué)生信息.支持鎖屏及解鎖屏功能.并可以顯示主控端發(fā)來的消息[16].
圖3 被控端功能模塊
機(jī)群管理模塊主要實(shí)現(xiàn)鎖定與解鎖電腦、執(zhí)行命令、解鎖U盤、遠(yuǎn)程喚醒、顯示機(jī)器號五個(gè)功能:
(1)鎖定與解鎖電腦.在被控端計(jì)算機(jī)連接到主控端的情況下,點(diǎn)擊“鎖定電腦”所有被控端計(jì)算機(jī)將彈出對話框,此對話不響應(yīng)任何鼠標(biāo)鍵盤消息,打到鎖定電腦的目的.單擊解鎖電腦,對話框關(guān)閉,電腦恢復(fù)正常.
(2)執(zhí)行命令.單擊執(zhí)行命令按鈕,彈出對話框,通過按鈕選擇要執(zhí)行的程序的完整路徑.被控端判斷路徑文件是否存在,若文件或命令不存在則在操作記錄中進(jìn)行相關(guān)提示.
(3)解鎖U盤.被控端默認(rèn)執(zhí)行的禁用U盤,當(dāng)有U盤插入被控端電腦,系統(tǒng)將機(jī)器號及相關(guān)信息發(fā)送到主控端,通知管理員或教師.同時(shí)被控端計(jì)算機(jī)處于鎖定狀態(tài).
(4)遠(yuǎn)程喚醒.首先將計(jì)算機(jī)的CMOS設(shè)置中開啟網(wǎng)絡(luò)喚醒的功能(現(xiàn)在大多數(shù)機(jī)器都支持此設(shè)置),將要喚醒的計(jì)算機(jī)信息添加主控端的列表中.點(diǎn)擊遠(yuǎn)程喚醒后,主控端將以廣播方式發(fā)送所有需要遠(yuǎn)程開機(jī)的MAC地址構(gòu)造成的開機(jī)數(shù)據(jù)包,數(shù)據(jù)包中包含6個(gè)字節(jié)的FF以及循環(huán)16次的MAC地址.逐機(jī)發(fā)送,喚醒遠(yuǎn)程計(jì)算機(jī).
(5)顯示機(jī)器號.主控端掃描時(shí)為每臺機(jī)器創(chuàng)建了機(jī)器號,同時(shí)發(fā)送給被控端計(jì)算機(jī).被控端計(jì)算機(jī)將這個(gè)號碼記錄在全局變量中用于方便管理員定位被控端計(jì)算機(jī).
被控端主要執(zhí)行主控端發(fā)來的控制命令,另外,附加的特色功能,不需主控端計(jì)算機(jī)的控制.附加功能是:檢測計(jì)算機(jī)空閑時(shí)間,隱藏運(yùn)行程序.另外就是配合主控端的控制來實(shí)現(xiàn)的功能.
(1)檢測計(jì)算機(jī)空閑時(shí)間.首先需要添加IdleUI.lib到工程,里面封裝了獲取計(jì)算機(jī)最后一次輸入事件的時(shí)間的方法IdleUIGetLastInputTime(),然后再獲取當(dāng)前時(shí)間,算出計(jì)算機(jī)空閑的時(shí)間,如果空閑打到一個(gè)小時(shí),被控端軟件自動執(zhí)行關(guān)機(jī)命令.
(2)隱蔽運(yùn)行程序.被控端對話框運(yùn)行時(shí)注冊熱鍵“ctrl+alt+u”,注冊成功后調(diào)用隱藏對話框方法.這是,對話框運(yùn)行,且任務(wù)欄及托盤處均沒有顯示.當(dāng)按下ctrl+alt+u組合鍵后,彈出退出程序?qū)υ捒颍斎胝_的退出密碼后方能退出被控端系統(tǒng).
對于本系統(tǒng),本設(shè)計(jì)采用黑盒測試.做完一個(gè)模塊,就進(jìn)行測試,看所做的模塊能不能實(shí)現(xiàn)所需要的功能.經(jīng)過反復(fù)測試主控端和被控端均能正常運(yùn)行,遠(yuǎn)程連接、簽到功能、簽到信息查詢、遠(yuǎn)程關(guān)機(jī)重啟喚醒、上網(wǎng)限制、發(fā)送消息、執(zhí)行命令、鎖定電腦、解鎖U盤以及被控端的后臺運(yùn)行、檢測空閑時(shí)間、等功能模塊均可以正確調(diào)用.經(jīng)過了先期的模塊測試和后期的綜合測試,本系統(tǒng)能夠滿足用戶功能和性能的要求,實(shí)現(xiàn)了用戶所需要的功能,達(dá)到了預(yù)期的要求.
本系統(tǒng)實(shí)現(xiàn)局域網(wǎng)遠(yuǎn)程連接功能后,教師或者管理員便可以通過掃描計(jì)算機(jī)來連接已經(jīng)運(yùn)行被控端的計(jì)算機(jī).連接成功的計(jì)算機(jī)信息將會在主控端的列表中顯示,方便管理者管理計(jì)算機(jī).同時(shí),為所要實(shí)現(xiàn)的功能模塊預(yù)留出對應(yīng)函數(shù),以便與被控端系統(tǒng)共同實(shí)現(xiàn)相關(guān)功能.整個(gè)程序設(shè)計(jì)以保證功能的可靠性為依據(jù).代碼部分盡量避免邏輯錯誤,實(shí)現(xiàn)方法簡單合理,盡量使程序具有較好的可讀性,以便于其他的設(shè)計(jì)者對該程序的閱讀.
主控端系統(tǒng)和被控端系統(tǒng)相互配合實(shí)現(xiàn)所需要的功能模塊.這些功能建立在局域網(wǎng)遠(yuǎn)程連接的基礎(chǔ)上,通過發(fā)送命令,接受命令,返回消息,處理消息等步驟實(shí)現(xiàn)遠(yuǎn)程控制的效果.最后,為了實(shí)現(xiàn)身份驗(yàn)證登陸,保存被控端信息,簽到功能,為系統(tǒng)連接了數(shù)據(jù)庫.其中,簽到信息查詢功能是將被控端發(fā)送過來的學(xué)生信息保存到數(shù)據(jù)庫,教師可以輸入時(shí)間來查看某個(gè)時(shí)間段簽到學(xué)生的情況.另外,保存被控端信息功能在每次保存前會將數(shù)據(jù)庫清空,保證數(shù)據(jù)庫只保存最后一次的被控端信息.
參 考 文 獻(xiàn)
[1]董日波.高校計(jì)算機(jī)機(jī)群管理系統(tǒng)開發(fā)與應(yīng)用研究[J].電腦開發(fā)與應(yīng)用.2012.25(9):3~5
[2]唐永紅,龔安.運(yùn)用winsock控件實(shí)現(xiàn)C/S網(wǎng)絡(luò)通信.計(jì)算機(jī)系統(tǒng)應(yīng)用.2006.4
[3]劉晉萍.面向?qū)ο笤O(shè)計(jì)與C++實(shí)現(xiàn)[M].科學(xué)出報(bào)社.2006.8.19~77
[4]張海林,杜忠友,姜玉波.Visual C++簡明教程[M].電子工業(yè)出版社.2007.17~56