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