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