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