摘 要:隨著管理規(guī)模的不斷擴(kuò)大,開發(fā)機(jī)房管理系統(tǒng)是非常必要的,因此我們成功開發(fā)出符合要求的機(jī)房管理系統(tǒng)。本文介紹了系統(tǒng)的功能及系統(tǒng)設(shè)計(jì)的關(guān)鍵技術(shù)。運(yùn)行結(jié)果表明,系統(tǒng)的各項(xiàng)功能符合要求。
關(guān)鍵詞:機(jī)房管理系統(tǒng) 自主開發(fā) 遠(yuǎn)程控制 客戶端 服務(wù)器端
中圖分類號(hào):TP393.07 文獻(xiàn)標(biāo)識(shí)碼:B 文章編號(hào):1673-8454(2007)12-0018-03
一、引言
近年來,隨著高校辦學(xué)條件的逐步改善,機(jī)房和設(shè)備在不斷增加,采用一套先進(jìn)的機(jī)房管理系統(tǒng),為教師管理、學(xué)生課程實(shí)習(xí)和業(yè)余上機(jī)提供簡便、快捷的管理,顯得越來越重要。
商品化的機(jī)房管理系統(tǒng),不外乎純硬件產(chǎn)品、純軟件產(chǎn)品及軟硬件結(jié)合的產(chǎn)品。據(jù)調(diào)查,純硬件產(chǎn)品問題比較多,不僅每天的維護(hù)量很大,而且由于正常的上課時(shí)間也需要學(xué)生插卡,難免影響學(xué)生的正常上課,甚至造成教學(xué)事故;純軟件產(chǎn)品的安全性又太差;軟硬件結(jié)合的產(chǎn)品,集中了硬件的安全性和軟件的靈活性的優(yōu)點(diǎn),系統(tǒng)管理非常方便。正常上課時(shí),可以設(shè)置為不讓學(xué)生刷卡進(jìn)入機(jī)房,也可以按照課程表,把上機(jī)時(shí)間輸入到系統(tǒng)中去。自由上機(jī)時(shí),系統(tǒng)會(huì)在每臺(tái)計(jì)算機(jī)上自動(dòng)彈出登錄窗口,強(qiáng)制上機(jī)者登錄。
但是,商品化的機(jī)房管理系統(tǒng)很難滿足不同學(xué)校的個(gè)性化需求,產(chǎn)品后續(xù)開發(fā)受制因素較多,售后服務(wù)難以得到充分保障。如果委托開發(fā)系統(tǒng),雖能滿足個(gè)性化要求,但費(fèi)用比較昂貴,且后續(xù)服務(wù)難以做到隨時(shí)響應(yīng)。因此,自主研發(fā),非常必要。不僅可以設(shè)計(jì)出符合單位要求的個(gè)性化軟件,而且也便于進(jìn)行系統(tǒng)維護(hù),能夠根據(jù)管理需要隨時(shí)增添調(diào)整功能,實(shí)現(xiàn)自主式自動(dòng)化管理模式。
二、本機(jī)房管理系統(tǒng)的功能模塊
本系統(tǒng)采取軟硬件相結(jié)合的技術(shù),可實(shí)現(xiàn)以下功能:
(1)強(qiáng)大的遠(yuǎn)程控制:管理員可以向當(dāng)前或全部上機(jī)者發(fā)送提示、警告、錯(cuò)誤等,甚至關(guān)閉當(dāng)前或全部計(jì)算機(jī),利用工作站屏幕鎖定功能,管理員還可以鎖定客戶端屏幕,用戶必須重新登錄,這就可以做到防止用戶超時(shí)使用機(jī)器。
(2)方便的課程上機(jī)管理:可安排課程上機(jī)的時(shí)間及學(xué)員人數(shù),系統(tǒng)將檢查各上機(jī)課程在時(shí)間和機(jī)房要求上是否有沖突,并自動(dòng)根據(jù)計(jì)劃在特定時(shí)間段內(nèi)只允許課程上機(jī)的學(xué)生進(jìn)入機(jī)房,課程上機(jī)的學(xué)生必須在指定的機(jī)器范圍內(nèi)挑選機(jī)器上機(jī),而非課程上機(jī)的學(xué)生則不能使用這些機(jī)器。
(3)靈活的系統(tǒng)設(shè)置與維護(hù):管理員可方便地完成收費(fèi)方式設(shè)置、費(fèi)率設(shè)置、最低報(bào)警余額設(shè)置、口令設(shè)置等操作。
(4)詳盡的系統(tǒng)運(yùn)行日志:系統(tǒng)將保存詳細(xì)的系統(tǒng)運(yùn)行日志,包括機(jī)房管理員登錄時(shí)間、查詢修改時(shí)間、操作內(nèi)容以及各客戶端意外錯(cuò)誤的時(shí)間和原因等。
(5)完善的計(jì)費(fèi)賬戶系統(tǒng):本系統(tǒng)提供獨(dú)立的計(jì)費(fèi)賬戶系統(tǒng),由機(jī)房直接完成收費(fèi)充值工作,從而減少機(jī)房管理工作。
(6)全面的統(tǒng)計(jì)功能:可查詢學(xué)生課程上機(jī)的統(tǒng)計(jì)資料,包括次數(shù)、時(shí)間、遲到、早退或缺課等情況;上機(jī)/上網(wǎng)的次數(shù)、時(shí)間和費(fèi)用;某一時(shí)間段內(nèi)學(xué)生訪問過哪些網(wǎng)站,或者查詢某一時(shí)間段內(nèi)某些網(wǎng)站被哪些學(xué)生訪問過;可統(tǒng)計(jì)某段時(shí)間內(nèi)機(jī)器的使用情況;可以按照日期或時(shí)間進(jìn)行分類統(tǒng)計(jì),得出機(jī)器的使用率。所有統(tǒng)計(jì)查詢結(jié)果均能以定制的報(bào)表方式打印輸出。
(7)其他功能:系統(tǒng)具備打印、詳細(xì)的管理權(quán)限分配功能,支持上網(wǎng)監(jiān)控和程序監(jiān)控(禁止玩游戲)等。
三、機(jī)房管理系統(tǒng)中遠(yuǎn)程控制程序的具體實(shí)現(xiàn)
本系統(tǒng)是一套基于Windows2003平臺(tái)的圖形用戶界面軟件系統(tǒng),操作界面友好,易學(xué)易用。系統(tǒng)采用C/S與B/S相結(jié)合的方式,方便地實(shí)現(xiàn)多用戶端、多機(jī)房的網(wǎng)絡(luò)管理模式。大型數(shù)據(jù)庫SQL Server 及開發(fā)工具Delphi與條形碼識(shí)別技術(shù)的無縫結(jié)合,使系統(tǒng)具有高度的保密性和安全性;實(shí)現(xiàn)機(jī)房管理規(guī)范化、自動(dòng)化以及信息化。[1] 因涉及系統(tǒng)安全及知識(shí)產(chǎn)權(quán)問題,本文只介紹機(jī)房管理系統(tǒng)中的遠(yuǎn)程控制程序。
本遠(yuǎn)程控制程序的功能是:當(dāng)客戶端連接到服務(wù)器后,服務(wù)器可以對客戶機(jī)進(jìn)行控制,如:打開/關(guān)閉客戶端CD-ROM、鎖定/解鎖客戶端鼠標(biāo)、隱藏/顯示客戶端桌面及任務(wù)欄、重啟/關(guān)閉客戶端計(jì)算機(jī)及向客戶端發(fā)送消息。
1.服務(wù)器端
在Delphi中新建一個(gè)項(xiàng)目,在系統(tǒng)自動(dòng)生成的窗體上,按照如圖1所示界面進(jìn)行布局,有兩個(gè)不可見的TimageList控件,它們分別用來存放TlistView控件在大/小圖標(biāo)顯示時(shí)所需要的圖標(biāo)。
在布局好上面的控件后(見圖1),就可以開始填寫相關(guān)的代碼。主控端(服務(wù)器端)程序要比被控端(客戶端)的復(fù)雜,這里主要介紹如何利用TlistView控件動(dòng)態(tài)顯示客戶端的連接與斷開連接及服務(wù)器端如何發(fā)送命令和消息的代碼。[2]
(1)客戶端連接上來時(shí)TlistView控件中應(yīng)及時(shí)加入該客戶信息
procedure TForm1.scsAccept(Sender: TObject; Socket: TCustomWinSocket);
begin
count:=count+1;//已連接的客戶端個(gè)數(shù)加1
lv.Items.Add;//TlistView控件動(dòng)態(tài)增加一個(gè)項(xiàng)目
lv.Items[count-1].Caption:=socket.RemoteHost;//將剛連接上來的機(jī)器加入到客戶端隊(duì)列中
sb.Panels[0].Text:=socket.RemoteAddress+′成功連接到本機(jī)′;//顯示當(dāng)前連接的機(jī)器
sb.Panels[2].Text:=′當(dāng)前共有:′+inttostr(lv.Items.count)+′臺(tái)機(jī)器在線′;//顯示總客戶數(shù)
end;
當(dāng)客戶端斷開連接時(shí),TlistView控件處理與此剛好相反,要釋放相應(yīng)的項(xiàng)目,本文就不再列舉其代碼。
(2)主控端(服務(wù)器端)向客戶端發(fā)送命令
考慮到數(shù)據(jù)傳輸問題,本程序?qū)⑦@些命令簡化了,當(dāng)然,這要主控端與被控端雙方事先約定好規(guī)則。系統(tǒng)中單獨(dú)編寫了一個(gè)發(fā)送命令的過程,只要把要簡化后的命令作為參數(shù)傳進(jìn)去就可以發(fā)送相應(yīng)的命令。代碼如下:
procedure Tform1.sendorder(order:string);
var
i,j:integer;
begin
……… //檢查服務(wù)器是否已經(jīng)啟動(dòng)服務(wù),如果沒有啟動(dòng),則退出命令發(fā)送狀態(tài),否則進(jìn)行命令發(fā)送
j:=0;
if lv.SelCount<1 then//檢查是否選擇發(fā)送命令的目的地
application.MessageBox(′執(zhí)行操作之前,請先選擇好操作對象′,′系統(tǒng)提醒′,mb_iconstop+mb_ok)
else
begin
for i:=0 to lv.Items.Count-1 do //遍歷所有在連線客戶
begin
if (lv.Items[i].Selected)or(cb.Checked) then //檢查當(dāng)前遍歷到的客戶是否符合要發(fā)送命令或消息
begin
scs.Socket.Connections[i].SendText(order); //發(fā)送命令或消息
j:=j+1; //已發(fā)送過的對象個(gè)數(shù)累加
end;
if(j>=lv.SelCount)and(not cb.Checked) then //當(dāng)檢查已發(fā)送命令或消息的次數(shù)達(dá)到所選中客戶的個(gè)數(shù)就停止遍歷
break;
end;
end;
end;
2.客戶端
在Delphi中新建一個(gè)項(xiàng)目,在系統(tǒng)自動(dòng)生成的窗體上,按圖2所示的圖進(jìn)行相關(guān)的控件布置。
在窗體上布局好上面的控件后(見圖2),就可以開始填寫相關(guān)的代碼,這里主要介紹接收服務(wù)器發(fā)送來的命令代碼的編寫:
procedure TForm1.clsRead(Sender: TObject; Socket: TCustomWinSocket);
begin
ostr:=socket.ReceiveText;//接收服務(wù)器發(fā)來的數(shù)據(jù)
if length(ostr)=2 then//常規(guī)命令(主/控雙方事先約定好命令的形式)
begin
cmd:=strtoint(ostr);
case cmd of
11,10 : //彈開/關(guān)閉CD-ROM
21,20 ://鼠標(biāo)鎖定/解鎖
31 ,30 ://系統(tǒng)解/加鎖
41,40://重啟/關(guān)閉計(jì)算機(jī)
end;
end;
else//根據(jù)信息的第一個(gè)字符決定顯示對話框的類型
begin
sbstr:=′管理員發(fā)來文字信息′;
getinfo(ostr);//專門函數(shù)來顯示信息
end;
sb.Panels[1].Text:=sbstr;//狀態(tài)欄顯示命令內(nèi)容
end;
四、結(jié)束語
基于C/S與B/S模式的高校機(jī)房管理系統(tǒng),經(jīng)過一年多的應(yīng)用,各功能模塊已得到充分磨合、完善,系統(tǒng)的安全性也得到了測試和加強(qiáng),運(yùn)行非常穩(wěn)定,現(xiàn)已達(dá)到預(yù)期的目標(biāo)設(shè)計(jì)要求,可實(shí)現(xiàn)全校機(jī)房的統(tǒng)一管理。?筅
參考文獻(xiàn):
[1]盧慧芬等.開放性實(shí)驗(yàn)室信息管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].實(shí)驗(yàn)室研究與探索,2005,24(8)
[2]朱亮等.Delphi 7多媒體應(yīng)用技術(shù)與實(shí)例[M].北京:中國水利水電出版社,2003