汪峰坤
安徽機電職業(yè)技術學院信息工程系,安徽蕪湖,241000
隨著校園信息化建設的發(fā)展, 數(shù)字化校園成為校園管理和發(fā)展的重要環(huán)節(jié)?!皵?shù)字化校園系統(tǒng)”是信息技術運用于教育改革過程所形成的研究成果之一。它以Internet 網(wǎng)絡技術為基礎,利用先進的信息技術手段,實現(xiàn)教學、科研、管理和服務等資源的數(shù)字化,在物理校園的基礎上構建一個信息化數(shù)字校園空間,以擴展物理校園的功能,從而實現(xiàn)教育過程數(shù)字化的目標。
在數(shù)字化校園建設過程中,對高校實驗及實訓設備建設和管理提出了更高的要求,特別是對昂貴設備的管理,其管理的好壞將直接關系到學校的經(jīng)濟利益、實驗教學質(zhì)量和科研水平的提高。硬件設施建設是實驗室建設的重要方面,管好設備是加強實驗室建設的重要內(nèi)容。
高校常用的設備管理軟件主要是從靜態(tài)的角度來管理設備,即記錄學校所購買的設備的數(shù)量與使用情況。在這些設備管理系統(tǒng)中沒有實質(zhì)的管理內(nèi)容。這些軟件無法實時查看這些設備當前使用情況。
高校在重點設備所在的實驗室、車間等都安裝有監(jiān)控設備,而這些監(jiān)控設備只是起到簡單防盜的作用。這些監(jiān)控設備內(nèi)部通過網(wǎng)絡連接由服務器進行數(shù)據(jù)保存,保存的數(shù)據(jù)很難在別的系統(tǒng)中進行集成和使用。如果能利用這些監(jiān)控設備為高校的設備管理系統(tǒng)提供實時的設備使用情況,則對于學校和設備管理者可以主動地、更加容易理解與接受的方式了解“自己的設備”。
本文結合當前高校主要使用的監(jiān)控設備情況,設計了一種具有通用功能的訪問監(jiān)控設備的輕量級框架(以下簡稱SDCS),此框架可以非常容易地集成不同種類、不同類型的監(jiān)控設備,通過主動訪問監(jiān)控設備,可將監(jiān)控設備當前圖像抓取并統(tǒng)一保存在數(shù)據(jù)庫中,方便設備管理系統(tǒng)的訪問。
當前,高校使用的主要的監(jiān)控系統(tǒng)是硬盤錄像機(簡稱DVR),這種監(jiān)控系統(tǒng)一般使用ARM架框、Linux系統(tǒng)的嵌入式設備,因為它具有很強大的視頻/圖像保存、截取及網(wǎng)絡管理功能,并且可以進行二次開發(fā)。但是,此類設備沒有統(tǒng)一的API接口,不同的廠商,甚至同一廠商不同型號的設備二次開發(fā)接口也不相同。
因此,在設計SDCS時,盡可能地降低對設備開發(fā)接口的依賴,以低耦合的方式聯(lián)接各種DVR設備。框架本身不包含任何與DVR設備應用程序接口有關的應用端的邏輯,通過高度抽象,提供了一組對外通用的API統(tǒng)一接口。通過框架屏蔽了不同類型的DVR設備在使用上的差異性,以插件的方式來動態(tài)加載和運行DVR設備的驅(qū)動,用來獲取DVR的實時圖像。
本框架的結構如圖1,由框架內(nèi)核、DVR API接口和DVR驅(qū)動插件三部分組成。
SDCS的內(nèi)核是SDCS的核心和基礎,主要實現(xiàn)讀取各DVR配置的基本信息、抓取圖片的時間段以及時間間隔的設置、利用反射加載插件運行、定時查詢DVR設備抓取圖片、將抓取的圖片保存為本地文件或者上傳到指定網(wǎng)絡路徑、異常管理、日志管理等功能。
反射服務是當框架運行DVR設備驅(qū)動插件時提供的服務支持,提供的功能主要有:得到導入的程序集字段、屬性、方法及特性等信息,檢查插件的數(shù)字簽名,檢查被反射的類及方法是否正確,動態(tài)實例化對象及調(diào)用方法等。
圖1 SDCS框架的結構圖
SDCS框架的配置文件使用的都是XML格式文件,因為XML格式文件方便擴展、容易理解、跨平臺、便于存儲和傳輸,并且很多語言和工具都支持。框架的外部配置文件通過框架配置文件管理器進行統(tǒng)一的驗證及讀寫。框架配置文件管理器的核心部分是XML文件讀取器、DTD正確性驗證和配置內(nèi)容解析器。在內(nèi)核啟動之前,解析SDCS框架的配置文件,將內(nèi)核配置信息保存在全局數(shù)據(jù)結構中,根據(jù)配置信息完成內(nèi)核的啟動。
插件管理器是對DVR進行動態(tài)管理,支持熱插拔技術,即不需要重新啟動SDCS系統(tǒng)就可以增加、修改或刪除要訪問的DVR設備。當增加一個要獲取圖像的DVR設備時,插件管理和對象加載器聯(lián)合使用,對象加載器利用反射服務加載此設置的插件的唯一實例,并將此實例加入插件管理容器中,以便定時查詢服務調(diào)用。插件管理容器本質(zhì)上就是一個HashTable,用來保存對象的信息。當刪除一個插件時,插件管理器以事件的方式通知定時查詢服務,停止調(diào)用此插件對應的DVR設備,然后在插件管理容器中去除此插件。
定時查詢服務是內(nèi)核啟動后最后一個運行的服務,它根據(jù)插件管理器配置的DVR插件信息和框架配置文件管理器讀取的啟動這些DVR的時間段和時間間隔信息,啟動一個定時器,輪流訪問這些DVR設備。通過調(diào)用DVR統(tǒng)一API接口異步獲取DVR的圖像。
內(nèi)核中還有其他的一些通用服務,如:日志服務跟蹤并記錄程序的運行狀態(tài),通過配置可將日志保存到數(shù)據(jù)庫、外部文件和Windows的事件管理器中,以方便開發(fā)人員的查看。資源服務提供軟件內(nèi)的字符串、圖像、圖標等資源的讀取,通過此服務,可以提供換膚、本地化。全局錯誤捕獲服務可以獲取在系統(tǒng)中未處理的異常信息,并通過日志服務進行保存。
DVR API的統(tǒng)一接口是SDCS系統(tǒng)和外部直接訪問DVR設備的插件唯一聯(lián)系的地方,是為了屏蔽不同DVR設備不同的二次開發(fā)接口而設置的中間接口。
其主要內(nèi)容如下:
interface IDVRSuperClass
{
System.Drawing.Bitmap CaptureIMG();
string ChannelNumber {get;set;}
event EventHandler DVRImage;
event EventHandler DVRInfo;
string ImgName {get;set;}
long ImgQuality {get;set;}
string IpAddr{get;set;}
bool NetDVRLogin();
void NetDVRLogout();
string OtherParams{get;set;}
int PortNumber{get;set;}
string Pwd{get;set;}
string UserId{get;set;}
}
接口主要提供了DVR插件要完成的基本功能,訪問DVR的高級功能是由插件內(nèi)部完成的。DVR API的統(tǒng)一接口必須被SDCS和DVR插件共同引用。
定時查詢服務根據(jù)配置信息到插件管理容器中找到DVR驅(qū)動插件的唯一實例并進行初始化,調(diào)用NetDVRLogin方法連接DVR設備。連接成功后,調(diào)用CaptureIMG方法讀取DVR當前圖像。如果當前DVR設置為同步工作方式,則直接返回捕獲的圖像,如果是異步工作方式,則通過事件DVRImage返回圖像。圖像獲取后,調(diào)用NetDVRLogout方法關閉連接。
框架啟動過程:啟動框架配置管理服務,驗證讀取SDCS內(nèi)核的默認配置文件并解析,根據(jù)配置文件的設置,檢查內(nèi)核信賴的DLL文件的完整性以及版本是否兼容。解析插件的配置文件,使用插件管理服務和對象加載器加載插件的唯一實例到插件管理容器中,最后啟動定時查詢服務。
框架運行過程:運行定時查詢服務,當?shù)街付ǖ臅r間時,檢查當前時間是否在要獲取圖像的DVR設備時間設置范圍內(nèi)。如果在設置訪問DVR時間范圍內(nèi),則檢查此插件實例是否運行,如果未運行,則通過對象加載器加載到插件容器中,并注冊事件處理程序。如果已經(jīng)運行,則直接調(diào)用DVR API接口調(diào)用DVR插件中的CaptureIMG方法獲取圖像。
設備管理系統(tǒng)主要是由SDCS子系統(tǒng)、DVR圖像管理子系統(tǒng)、DVR設置子系統(tǒng)、錄制時間設置子系統(tǒng)和設備管理網(wǎng)站子系統(tǒng)組成,其中SDCS子系統(tǒng)處于一個中心位置。設備管理系統(tǒng)的部署圖如圖2。
圖2 設備管理系統(tǒng)的部署圖
子系統(tǒng)之間的交互如下:DVR設置子系統(tǒng)設置為WEB 服務的方式,它主要提供要管理的設備對應的DVR的信息,包括DVR插件的名稱、訪問的地址、端點、通道、登錄的用戶名稱、密碼等信息。錄制時間設置子系統(tǒng)為SDCS提供要錄像的DVR編號以及錄像時間段和時間的間隔等信息。DVR圖像管理子系統(tǒng)是SDCS獲得DVR的圖像時上傳或本地保存時記錄的相關信息。設備管理網(wǎng)站子系統(tǒng)提供監(jiān)控設備編號、驅(qū)動信息的設置、獲取圖片的時間段和時間間隔的設置及查看監(jiān)控圖片的功能。SDCS子系統(tǒng)是以Windows服務的方式在計算機的后臺運行。
在學校的設備管理系統(tǒng)中,通過與監(jiān)控設置的連接,可以實時地查看設備的使用情況,及早發(fā)現(xiàn)閑置設備和利用率不高的設備,重新進行設備配置的優(yōu)化,避免教育資源的浪費。本文提出了一個通用的訪問DVR信息的框架,它通過統(tǒng)一接口屏蔽不同DVR設備二次開發(fā)接口的不同。通過插件降低了系統(tǒng)之間的耦合度,修改方便。對于動態(tài)增加、刪除DVR設備的插件,無須停止框架運行,支持熱插拔技術。通過本框架擴展支持某類型的DVR設備,只需要調(diào)用DVR設備的驅(qū)動程序?qū)崿F(xiàn)IDVRSuperClass接口,通過簡單配置即可由框架支持,擴展簡單、方便。
參考文獻:
[1]王孝明,胡健,陸坤,等.基于.NET平臺可復用軟件框架的設計與實現(xiàn)[J].計算機工程,2004,30(22):76-78
[2]崔冬華,劉吉林.基于反射的低耦合軟件框架的研究[J].計算機信息,2007,23(10):232-234
[3]孫玉鈺.基于.NET組件技術的插件式框架的研究[J].計算機應用與軟件,2009,26(6):143-145
[4]劉佳,王麗宏,孫克寧.插件技術在控制系統(tǒng)中的應用[J].計算應用研究,2004(3):117-118
[5]Don Box.COM本質(zhì)論[M].潘愛民,譯.北京:中國電力出版社,2001:218-262
[6]Don Box,Chris Shells..NET本質(zhì)論:第1卷:公共語言運行庫[M].張曉坤,譯.北京:中國電力出版社,2004:86-96