ID卡機房智能管理系統(tǒng)設(shè)計與實現(xiàn)
文章出處:http://www.luckydriving.com 作者:滕連爽,李令臣,郭嘉喜 人氣: 發(fā)表時間:2011年09月27日
0 引言
為了提高工作效率和管理水平,實現(xiàn)計算機機房的自動化管理,使機房管理工作由人工值守向無人值守方向邁進,根據(jù)我院實際情況,我們自主開發(fā)了一套全方位、智能化和安全性能高的純軟件機房智能管理系統(tǒng)。該系統(tǒng)以非接觸式ID卡為介質(zhì),結(jié)合三層帶路由功能的交換機,利用TCMP協(xié)議的傳輸方式,實現(xiàn)了跨網(wǎng)段管理的功能,能夠直觀、方便、有效地管理整個校園局域網(wǎng)內(nèi)所有計算機。
1 機房智能管理系統(tǒng)的硬件組成
本系統(tǒng)采用非接觸式ID卡作為身份識別的工具,每個服務(wù)器都安裝一臺ID卡讀卡器,每臺學生機上都安裝客戶端軟件,通過機房管理端軟件和客戶端軟件的結(jié)合,完全實現(xiàn)了身份識別、自動計費、遠程監(jiān)控、ID卡管理、數(shù)據(jù)統(tǒng)計分析等功能。系統(tǒng)硬件組成如圖1所示。
圖1機房智能管理系統(tǒng)硬件構(gòu)成框圖
2 機房智能管理系統(tǒng)的軟件組成
機房智能管理系統(tǒng)基于C/S結(jié)構(gòu)和B/S結(jié)構(gòu)模式開發(fā)。B/S結(jié)構(gòu)的用戶主要是學生、系統(tǒng)管理員,主要完成丟卡掛失、密碼保護、密碼查詢、個人上機明細查詢、上機反饋、反饋處理、報表生成、系統(tǒng)日志等功能。C/S結(jié)構(gòu)的用戶主要是學生、機房管理員、系統(tǒng)管理員。學生用戶端主要完成刷卡登錄、斷網(wǎng)獨立管為不影響學生上機作為機房管理系統(tǒng)的客戶端軟件隨著電腦的啟動自動運視覺效果,系統(tǒng)采用登錄托盤模式。管理客戶端軟件主要實現(xiàn)用戶刷卡、遠程控制學生端鎖屏、解屏、關(guān)機、注銷、開機、監(jiān)控、修改密碼、自動計費、費用查詢、管理端結(jié)賬等功能。系統(tǒng)管理端實現(xiàn)用戶管理、上機管理、課表管理、費用管理和系統(tǒng)基礎(chǔ)信息設(shè)置、遠程控制等功能。軟件功能結(jié)構(gòu)如圖2所示。
圖2軟件功能結(jié)構(gòu)圖
其中系統(tǒng)管理端各個子系統(tǒng)功能如下:
費用管理充值管理(集體充值、個人充值)、查詢統(tǒng)計。
用戶管理用戶注冊(批量注冊、單人注冊)、用戶注銷(批量注銷、單人注銷)、掛失解掛、用戶換卡、用戶信息管理。
課表管理機房課表設(shè)置、機房課表查詢。
系統(tǒng)設(shè)置機房設(shè)置、管理員設(shè)置、費率設(shè)定、空閑設(shè)置。
上機管理刷卡管理、監(jiān)控管理。
3 系統(tǒng)設(shè)計與實現(xiàn)
本系統(tǒng)建立在學校局域網(wǎng)之上,采用B/S和C/S相結(jié)合的混合模式,以windows 2000 server為服務(wù)器,以SQL server 2000為后臺數(shù)據(jù)庫,以PowerBuilder、VisualBasic和ASP.NET為開發(fā)工具,采用標準的TCP/ IP協(xié)議。實現(xiàn)了跨網(wǎng)段跨路由,突破了網(wǎng)段的限制,解決了每個網(wǎng)段需要配備一臺服務(wù)器的問題,節(jié)省了資源。
3.1客戶端的技術(shù)實現(xiàn)
作為機房管理系統(tǒng)的客戶端軟件隨著電腦的啟動自動運視覺效果,系統(tǒng)采用登錄托盤模式。管理客戶端軟件主要實現(xiàn)行,迅速鎖定屏幕、鼠標和功能鍵。學生在機房入口刷卡后到機房內(nèi)部電腦輸入賬號和密碼,經(jīng)驗證通過后,才可以使用電腦。上機結(jié)束后,在客戶端自動結(jié)賬關(guān)機。主要技術(shù)如下:
(1)客戶端軟件自動運行的處理
修改注冊表“HKEY-LOCAI,MACINE\SOFTWARE\Mi-crosomwindows\cunrrentversion\run”中run的鍵值,就實現(xiàn)了自動運行的目的;同時配備硬盤保護卡、還原卡之類的保護卡,用戶就無法刪除客戶端應(yīng)用程序。通過修改注冊表“HKEY_CURRENLMACHINER\SoRware\Microsoft\Windows\CurrentVerSion\Poliies\system\DisableTaskMgr中DisableTaskMgr的值,禁用任務(wù)管理器,用戶不能中止客戶端程序的運行??蛻舳顺绦蛞坏┲兄惯\行或強制中止便自動關(guān)機,以避免某些人通過某些途徑關(guān)閉客戶端程序,使本工作站不能被服務(wù)器監(jiān)管。另外,系統(tǒng)采取輔助進程來加強客戶端管理程序的安全性。該進程每隔一定時間檢測客戶端管理程序是否正常運行和IP地址是否被修改,如果沒有正常運行或IP地址不正確,說明客戶端管理程序已被破壞,該程序則自動將本工作站鎖定或自動關(guān)機,使非法使用者不能使用該機。
(2)電腦控制功能的處理
PowerBuilder適用于數(shù)據(jù)庫開發(fā),但作為機器控制類軟件開發(fā),其功能特別弱。因此在開發(fā)中我們使用VisualBasic開發(fā)控件,結(jié)合PB實現(xiàn)電腦的控制,實現(xiàn)了PB與vB控件的無縫結(jié)合。本系統(tǒng)中通過調(diào)用系統(tǒng)API函數(shù)共開發(fā)了兩個具有控制功能的控件,如表1所示。
3.2管理端的技術(shù)實現(xiàn)
管理端主要實現(xiàn)刷卡功能,同時自動設(shè)置收費狀態(tài)、收費標準、遠程控制等,以及完成上機卡的注冊、注銷、充值和收費統(tǒng)計分析等功能。
(1)刷卡功能的實現(xiàn)
目前,市面上流行IC卡、ID卡等。由于IC卡費用高,需要特殊的刷卡器和寫卡器,不適于低成本的需要;與接觸式IC卡相比,非接觸式ID卡無需插拔卡,避免了由于機械接觸不良導致的各種故障,因而具有操作方便、快捷、可靠、壽命長等突出優(yōu)點,特別適用于人流量大的場合。ID卡和刷卡器成本低而且使用簡單,刷卡后能夠立即觸發(fā)單行編輯框的modified事件,同時將ID卡號自動輸入單行編輯框中,通過對modified事件的編程,就能夠?qū)崿F(xiàn)我們所需要的一切功能。因此,本系統(tǒng)選擇了ID卡而不是IC卡。
(2)遠程控制的實現(xiàn)
為了實現(xiàn)對客戶端的遠程控制,我們選擇winsock編程進行通信傳遞控制參數(shù),信息傳遞連接方式采取UDP連接。UDP協(xié)議不需要顯示的連接,一個UDP應(yīng)用可同時作為應(yīng)用的客戶或服務(wù)器方,兩臺計算機的地位可以看成“平等的”,這種應(yīng)用程序也叫點到點通信(peer to peer),因此,任何一臺安裝服務(wù)器端軟件的機器都可以作為服務(wù)器,能夠?qū)崿F(xiàn)校園網(wǎng)內(nèi)的所有電腦對學生用機的遠程監(jiān)控功能。又由于UDP數(shù)據(jù)包具有較強的網(wǎng)絡(luò)穿透能力,可以在上述網(wǎng)絡(luò)環(huán)境相對復(fù)雜的場合進行網(wǎng)絡(luò)通信。
服務(wù)器與客戶機之間是借助winsock控件通過UDP協(xié)議進行通信的,因此,需要通過winsock控件屬性設(shè)置對話框?qū)⒎?wù)器端與客戶端的網(wǎng)絡(luò)協(xié)協(xié)設(shè)置為UDP協(xié)議,如圖3所示。
圖3 winsock控件通信協(xié)議設(shè)置
服務(wù)器端遠程控制窗口(W_server)的具體設(shè)置情況和窗口的“遠程控制”命令按鈕的“單擊”事件的代碼如下。
//Winsock控件的名字為ole_server
stnng ls_mes//定義變量ls_mes,代表發(fā)送的信息
string Is_ip//定義變量Is_ip,代表客戶端ip地址
Is_ip=trim(sIe_2text)//獲取客戶端的IP地址
//指定客戶端主機名稱或lP地址
oIe_server.Object.RemoteHost=ls_ip
oIe_server.obiect.RemotePort=2001 //指定連接端口號
//指定要綁定的客戶端主機的端口號
oIe_server.Obiecl.Bind(2002)
//獲取單行編輯框中輸入的要發(fā)送的信息
Is_mes:trim(sIe_senddata.text)
//使用ole_server控件中的SendData方法發(fā)送輸入的字符串
ole_server.Obiecl.SendData(is_mes)
ole_server.Object.close //關(guān)閉控件
客戶端軟件主窗口(w_client)的open事件的腳本。
//WInsock控件的名字為ole_server.
oIe_server.Obiect.RemotePort=2002//指定連接端口號
//指定要綁定的服務(wù)器主機的端口號
oIe_server.Objecl.Bind(2001)
客戶端軟件主窗口(w-client)中ole-client控件的dataarrjval
事件的腳本。
int Ii_qr
uo_shutdOwn=Create nvo_shutdown
String is_RecvData//為收到的數(shù)據(jù)聲明一個變量
//調(diào)用GetData方法獲取數(shù)據(jù)
This.Object.GetData(REF is_RecvData)
choose case Is_RecvData
case“reboot ” //oIe_2為vb開發(fā)的shutd.ocx控件
oIe_2.objecl.shut(3)//強制重啟
case“shutdown”
oIe_2.object.shut(5)//強制關(guān)機
case“Iogoff”
oIe_2.object.shut(0)//注銷
case“lock”
open(w_pm)//鎖屏
case“unIock”
cIose(w_pm)//解屏
CASE ELSE
messagebox(“友情提示”,lS_RecvData)
end choose
當在服務(wù)器端設(shè)置好客戶端的IP地址,并綁定好客戶端主機的端口號后,就與客戶端建立了連接,服務(wù)器與客戶端就隨時可以通過sendD呦方法進行數(shù)據(jù)通信,完成對客戶端的實時控制和監(jiān)控。由于winsock控件每次只能發(fā)送一個字符串,我們對發(fā)送的字符串進行了實際意義的確定,如“reboot”表示強制重啟、“logoff”’表示注銷、“shutdown”表示關(guān)機、“lock”表示鎖屏、“unlook”表示解屏等。客戶端收到字符串后觸發(fā)DataA而val事件,根據(jù)約定的字符串的意義,執(zhí)行相應(yīng)的功能,比如收到“lock”消息,客戶端自動鎖定屏幕,以此實現(xiàn)遠程控制。
4結(jié)束語
根據(jù)上述思想和技術(shù),我們利用PowerBuilder和VisualBasic設(shè)計開發(fā)了“ID卡機房智能管理系統(tǒng)”,大膽地整合了兩種工具的開發(fā)特色,縮短了開發(fā)周期。通過一年的使用,系統(tǒng)運行穩(wěn)定,計時收費準確無誤,達到了機房管理自動化和無人值守的目的,提高了工作效率,節(jié)約了資源,大大減輕了機房管理人員的工作負擔。
(文/青島港灣職業(yè)技術(shù)學院,滕連爽,李令臣,郭嘉喜)