可视化设备管理系统研究和设计

2013-12-19 02:17汪峰坤
宿州学院学报 2013年3期
关键词:配置文件管理器插件

汪峰坤

安徽机电职业技术学院信息工程系,安徽芜湖,241000

随着校园信息化建设的发展, 数字化校园成为校园管理和发展的重要环节。“数字化校园系统”是信息技术运用于教育改革过程所形成的研究成果之一。它以Internet 网络技术为基础,利用先进的信息技术手段,实现教学、科研、管理和服务等资源的数字化,在物理校园的基础上构建一个信息化数字校园空间,以扩展物理校园的功能,从而实现教育过程数字化的目标。

在数字化校园建设过程中,对高校实验及实训设备建设和管理提出了更高的要求,特别是对昂贵设备的管理,其管理的好坏将直接关系到学校的经济利益、实验教学质量和科研水平的提高。硬件设施建设是实验室建设的重要方面,管好设备是加强实验室建设的重要内容。

高校常用的设备管理软件主要是从静态的角度来管理设备,即记录学校所购买的设备的数量与使用情况。在这些设备管理系统中没有实质的管理内容。这些软件无法实时查看这些设备当前使用情况。

高校在重点设备所在的实验室、车间等都安装有监控设备,而这些监控设备只是起到简单防盗的作用。这些监控设备内部通过网络连接由服务器进行数据保存,保存的数据很难在别的系统中进行集成和使用。如果能利用这些监控设备为高校的设备管理系统提供实时的设备使用情况,则对于学校和设备管理者可以主动地、更加容易理解与接受的方式了解“自己的设备”。

本文结合当前高校主要使用的监控设备情况,设计了一种具有通用功能的访问监控设备的轻量级框架(以下简称SDCS),此框架可以非常容易地集成不同种类、不同类型的监控设备,通过主动访问监控设备,可将监控设备当前图像抓取并统一保存在数据库中,方便设备管理系统的访问。

1 框架的实现策略

当前,高校使用的主要的监控系统是硬盘录像机(简称DVR),这种监控系统一般使用ARM架框、Linux系统的嵌入式设备,因为它具有很强大的视频/图像保存、截取及网络管理功能,并且可以进行二次开发。但是,此类设备没有统一的API接口,不同的厂商,甚至同一厂商不同型号的设备二次开发接口也不相同。

因此,在设计SDCS时,尽可能地降低对设备开发接口的依赖,以低耦合的方式联接各种DVR设备。框架本身不包含任何与DVR设备应用程序接口有关的应用端的逻辑,通过高度抽象,提供了一组对外通用的API统一接口。通过框架屏蔽了不同类型的DVR设备在使用上的差异性,以插件的方式来动态加载和运行DVR设备的驱动,用来获取DVR的实时图像。

本框架的结构如图1,由框架内核、DVR API接口和DVR驱动插件三部分组成。

1.1 内核

SDCS的内核是SDCS的核心和基础,主要实现读取各DVR配置的基本信息、抓取图片的时间段以及时间间隔的设置、利用反射加载插件运行、定时查询DVR设备抓取图片、将抓取的图片保存为本地文件或者上传到指定网络路径、异常管理、日志管理等功能。

反射服务是当框架运行DVR设备驱动插件时提供的服务支持,提供的功能主要有:得到导入的程序集字段、属性、方法及特性等信息,检查插件的数字签名,检查被反射的类及方法是否正确,动态实例化对象及调用方法等。

图1 SDCS框架的结构图

SDCS框架的配置文件使用的都是XML格式文件,因为XML格式文件方便扩展、容易理解、跨平台、便于存储和传输,并且很多语言和工具都支持。框架的外部配置文件通过框架配置文件管理器进行统一的验证及读写。框架配置文件管理器的核心部分是XML文件读取器、DTD正确性验证和配置内容解析器。在内核启动之前,解析SDCS框架的配置文件,将内核配置信息保存在全局数据结构中,根据配置信息完成内核的启动。

插件管理器是对DVR进行动态管理,支持热插拔技术,即不需要重新启动SDCS系统就可以增加、修改或删除要访问的DVR设备。当增加一个要获取图像的DVR设备时,插件管理和对象加载器联合使用,对象加载器利用反射服务加载此设置的插件的唯一实例,并将此实例加入插件管理容器中,以便定时查询服务调用。插件管理容器本质上就是一个HashTable,用来保存对象的信息。当删除一个插件时,插件管理器以事件的方式通知定时查询服务,停止调用此插件对应的DVR设备,然后在插件管理容器中去除此插件。

定时查询服务是内核启动后最后一个运行的服务,它根据插件管理器配置的DVR插件信息和框架配置文件管理器读取的启动这些DVR的时间段和时间间隔信息,启动一个定时器,轮流访问这些DVR设备。通过调用DVR统一API接口异步获取DVR的图像。

内核中还有其他的一些通用服务,如:日志服务跟踪并记录程序的运行状态,通过配置可将日志保存到数据库、外部文件和Windows的事件管理器中,以方便开发人员的查看。资源服务提供软件内的字符串、图像、图标等资源的读取,通过此服务,可以提供换肤、本地化。全局错误捕获服务可以获取在系统中未处理的异常信息,并通过日志服务进行保存。

1.2 DVR API统一接口

DVR API的统一接口是SDCS系统和外部直接访问DVR设备的插件唯一联系的地方,是为了屏蔽不同DVR设备不同的二次开发接口而设置的中间接口。

其主要内容如下:

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的高级功能是由插件内部完成的。DVR API的统一接口必须被SDCS和DVR插件共同引用。

定时查询服务根据配置信息到插件管理容器中找到DVR驱动插件的唯一实例并进行初始化,调用NetDVRLogin方法连接DVR设备。连接成功后,调用CaptureIMG方法读取DVR当前图像。如果当前DVR设置为同步工作方式,则直接返回捕获的图像,如果是异步工作方式,则通过事件DVRImage返回图像。图像获取后,调用NetDVRLogout方法关闭连接。

2 SDCS工作流程

框架启动过程:启动框架配置管理服务,验证读取SDCS内核的默认配置文件并解析,根据配置文件的设置,检查内核信赖的DLL文件的完整性以及版本是否兼容。解析插件的配置文件,使用插件管理服务和对象加载器加载插件的唯一实例到插件管理容器中,最后启动定时查询服务。

框架运行过程:运行定时查询服务,当到指定的时间时,检查当前时间是否在要获取图像的DVR设备时间设置范围内。如果在设置访问DVR时间范围内,则检查此插件实例是否运行,如果未运行,则通过对象加载器加载到插件容器中,并注册事件处理程序。如果已经运行,则直接调用DVR API接口调用DVR插件中的CaptureIMG方法获取图像。

3 SDCS与设备管理系统其他子系统的交互

设备管理系统主要是由SDCS子系统、DVR图像管理子系统、DVR设置子系统、录制时间设置子系统和设备管理网站子系统组成,其中SDCS子系统处于一个中心位置。设备管理系统的部署图如图2。

图2 设备管理系统的部署图

子系统之间的交互如下:DVR设置子系统设置为WEB 服务的方式,它主要提供要管理的设备对应的DVR的信息,包括DVR插件的名称、访问的地址、端点、通道、登录的用户名称、密码等信息。录制时间设置子系统为SDCS提供要录像的DVR编号以及录像时间段和时间的间隔等信息。DVR图像管理子系统是SDCS获得DVR的图像时上传或本地保存时记录的相关信息。设备管理网站子系统提供监控设备编号、驱动信息的设置、获取图片的时间段和时间间隔的设置及查看监控图片的功能。SDCS子系统是以Windows服务的方式在计算机的后台运行。

4 结束语

在学校的设备管理系统中,通过与监控设置的连接,可以实时地查看设备的使用情况,及早发现闲置设备和利用率不高的设备,重新进行设备配置的优化,避免教育资源的浪费。本文提出了一个通用的访问DVR信息的框架,它通过统一接口屏蔽不同DVR设备二次开发接口的不同。通过插件降低了系统之间的耦合度,修改方便。对于动态增加、删除DVR设备的插件,无须停止框架运行,支持热插拔技术。通过本框架扩展支持某类型的DVR设备,只需要调用DVR设备的驱动程序实现IDVRSuperClass接口,通过简单配置即可由框架支持,扩展简单、方便。

参考文献:

[1]王孝明,胡健,陆坤,等.基于.NET平台可复用软件框架的设计与实现[J].计算机工程,2004,30(22):76-78

[2]崔冬华,刘吉林.基于反射的低耦合软件框架的研究[J].计算机信息,2007,23(10):232-234

[3]孙玉钰.基于.NET组件技术的插件式框架的研究[J].计算机应用与软件,2009,26(6):143-145

[4]刘佳,王丽宏,孙克宁.插件技术在控制系统中的应用[J].计算应用研究,2004(3):117-118

[5]Don Box.COM本质论[M].潘爱民,译.北京:中国电力出版社,2001:218-262

[6]Don Box,Chris Shells..NET本质论:第1卷:公共语言运行库[M].张晓坤,译.北京:中国电力出版社,2004:86-96

猜你喜欢
配置文件管理器插件
应急状态启动磁盘管理器
自编插件完善App Inventor与乐高机器人通信
互不干涉混用Chromium Edge
Windows文件缓冲处理技术概述
基于Zookeeper的配置管理中心设计与实现
忘记ESXi主机root密码怎么办
为View桌面准备父虚拟机
基于jQUerY的自定义插件开发
MapWindowGIS插件机制及应用
基于Revit MEP的插件制作探讨