监控软件十篇

时间:2023-03-15 04:05:52

监控软件

监控软件篇1

关键词:优化存储;内存文件映射;消息机制;同步机制

随着网络规模增大,网络结构及网络应用日渐复杂,传统的物理安全技术和措施已经不足以保证信息系统的安全,因此网络管理系统作为网络安全运行的保证,其重要性越来越突出。为了提高计算机网络信息安全,许多相关的网络安全产品被开发,但大多是基于网络硬件设备,如路由器、集线器、交换机等,而对网络应用软件的研究和开发相对较少[1~4]。为了保证网络环境中的应用程序正常高效地运行,笔者设计了基于SNMP的ASNMS(ApplicationSoftwareNetMonitoringSystem,网络应用软件监控系统)。该系统选择运行于网络环境中的应用程序为研究对象[5,6]。

1网络应用软件监控系统(ASNMS)简介

ASNMS的主要监控目标是网络中的应用软件,通过及时获取软件中重要变量值(如系统配置、状态指示等),从而及时了解整个网络中应用程序的状态,并且还可以通过管理站点对各受控站点中的应用程序进行控制操作,提高整个网络和应用系统的安全性。该网络应用软件监控系统主要有三个模块[5,6]:

(1)管理站点主程序。该程序在管理站点上运行。通过该程序,管理站点可以使用UDP/IP协议与管理范围内的所有受控站点进行通信,收集网络应用程序的监控信息,并下发各种控制命令。

(2)管理。每一个受控站点上运行一个管理程序(有且仅有一个)。管理是系统的通信中心。一方面通过内存映射文件与受控站点上的各应用程序实例进行通信,收集各应用程序实例的监控信息;另一方面通过UDP协议与管理站点通信,发送受控站点的管理信息以及转发管理站点的控制信息。

(3)监控模块。该模块是供软件开发人员使用的一个通用接口模块。它负责从受控应用程序中获取监控信息,发送到管理站点,并且也能接收从管理转发的管理站点命令,对受控应用程序执行一定的控制操作。从结构上来看,监控模块附属于受控应用程序,但它以单独的线程形式存在。

2管理信息存储的设计

为了监控模块工作的需要,同时为了能更方便地将监控信息传送给管理,监控模块需要将监控信息以一定的形式存储起来。监控模块监控的目标是应用程序中的变量。由于现在软件开发大多使用的是面向对象的方法,在其程序中各种变量是有层次结构关系的,这一点必须在监控信息中体现出来[7]。监控信息从逻辑上看应该是以树的形式存在,并且存储的是各种变量的信息,而变量的长度是不相同的,在这棵树中各个节点的空间大小有可能不相同。由此看来,无论是从存储内容上还是从逻辑结构上看,监控信息的存储结构均是相对较为复杂的。下面三种设计方案可以满足这样的要求:

(1)在监控模块内存空间内生成一棵二叉树。这是最常规的存储方法。在此情况下,只需要设计一个较为合理的树结构,二叉树就能直接存储在监控模块的内存空间中,访问方便。同时因为在许多语言中均有任意类型的数据类型,由此可以将不同数据类型的数据方便地存储在一种数据结构中。但是由于这棵树存在于监控模块的内存空间中,不方便管理程序对其读取,监控模块还需要通过一定的方法将该树传送给管理[4,7]。

优点:实现简单,监控模块可以很方便地对其进行读写操作。

缺点:不方便管理程序对监控信息读取,需要使用其他方法将信息传送给管理。

(2)将监控信息存储在磁盘文件中。为了解决管理和监控模块共享监控信息的问题,监控模块可以将监控信息存储为磁盘文件形式。在此情况下,需要设计一套完整合理的文件空间使用策略,保证能够完整地存储监控信息。由于在Windows程序中采用了虚拟内存策略,不同应用程序内存空间是不同的,即使某应用程序获取了另一个程序中的某个指针,也不能正确地访问到其数据。在对变量值进行存储时,一定要注意不能存储有关变量的指针信息,而应该想办法存储其中变量的实际数据[8]。同时因为是将监控信息存储于磁盘上,需要采取一定的措施尽量避免出现垃圾文件的情况,同时还要防止在工作状态下用户有意或无意地修改、删除该文件。

优点:多个程序可以方便地共享数据。

缺点:实现较复杂,容易产生垃圾文件,容易泄漏和丢失监控信息。

(3)将监控信息存储在内存文件映射中。这是对方案(2)的改进。方案(2)将监控信息存储于磁盘文件中,由此使得容易产生垃圾文件、容易泄漏和丢失监控信息。那么如果将监控信息直接存储在内存当中呢?采用内存映射文件是一个很好的解决办法。应用程序在需要时在内存中开辟一定的空间存储数据,当应用程序关闭后,由于操作系统的内存管理机制,内存文件将自动被回收,安全性高。但是在生成内存映射文件时,必须要指定文件的大小,此时如果处理不当将可能出现存储空间不够用的情况[4,8]。

优点:多个程序可以方便地共享数据,数据不易泄漏,安全性高。

缺点:实现较复杂,必须指定文件大小,处理不当可能出现空间不够用的情况。

综合三种方案,方案(3)是最合适的。只要指定足够的文件大小,它不仅满足监控模块存储管理信息的需要,信息安全性高,同时可方便地实现监控模块与管理之间实时信息交换功能,从而解决它们之间的通信问题。3管理与监控模块通信的设计

3.1管理与监控模块间通信

通信包括系统初始化连接建立、命令转发和自定义消息。

(1)系统初始化连接建立。管理随受控站点启动后,必须接收各个应用程序实例的监控模块的注册信息,与监控模块建立初始连接。

(2)命令转发。管理接收到管理站点发送的UDP报文后,先识别该报文是发送给哪个监控模块的,然后通过Windows消息形式发送给指定的监控模块。

(3)管理与监控模块之间约定一系列自定义消息,并向Windows注册,保证双方能够正确地通过自定义消息进行通信。

3.2监控信息的收集与组织

在受控站点上,管理与多个应用程序实例的监控模块之间是通过内存映射文件进行通信的。监控信息存储在内存映射文件中。

(1)监控信息收集就是对监控模块对应的内存映射文件进行遍历。通过遍历获得最新的被监控应用程序的状态、监控变量的值等。

(2)监控信息收集时,需提供有效的同步机制,防止管理与监控模块同时访问同一个监控信息文件时出错。

(3)监控信息组织就是提供安全高效的数据存储结构,能够完整地记录所有监控信息。

3.3内存映射文件存储数据结构设计

为了能存储完整的变量结构信息,可将监控信息的逻辑存储结构设计为如图1所示。在监控信息的逻辑结构中存在两种结构指针,即横向指针表示父子关系和纵向指针表示兄弟关系,由此而构成了一棵二叉树。

本文原文

在图1所示结构中,由于不同变量类型存储大小不同,从而导致二叉树中各个节点的大小不统一。为了方便地进行存储空间管理,同时又能准确完整地记录如上变量结构信息,笔者设计了一套内存映射文件的存储数据结构。其基本思想为:将数据本身与数据间的逻辑关系分开进行处理,每次根据实际使用的需要在文件空闲空间中分配相应大小的空间,并在该空间的起始位置生成一个空间信息记录。其中包括存放的变量类型、变量大小、变量指针、结构指针等数据信息。此外还包括了该空间的地址、前后相邻区域地址、本空间大小等空间管理信息。真正的记录数据实体存放在该空间信息记录之后的剩余空间中(剩余空间的大小可以是不同的)。文件的存储结构如图2所示。

由图2可以看出,在监控信息存储文件中所有的存储空间均是前后紧连着的。通过空间信息记录可以得知某区域的大小以及是否正在被使用。这样就能够方便地进行空间分配和回收工作。又因为在空间信息记录中存在变量结构指针,因而通过空间信息记录也能方便地访问到数据之间的逻辑结构关系。由此看出,空间信息记录在整个存储设计中占有很重要的位置,正是利用它才实现了对存储空间的灵活使用。空间信息记录的数据结构设计如下:

typedefstructTItemInfo

{//以下为数据(变量)信息

charNodeName[MAX_NODENAME];//节点名

charNodeInfo[MAX_NODEINFO];//节点信息

intNodeType;//1:程序节点;2:类节点;3:变量节点;其他未定义

intVarType;

//存储数据的变量类型,特别:程序节点存储了句柄信息,long型

intVarSize;//数据大小

boolWribr;//变量是否可写

void*VarAddr;//数据在程序中的地址

void*PBrother;//前一个同级(兄弟)节点

void*NBrother;//下一个同级(兄弟)节点

void*Father;//父亲节点

void*Child;//下一级(孩子)节点

//以下为空间管理信息

void*Addr;//本区域在文件中的相对地址

longItemSize;//本区域大小

void*PAddr;//前一个区域在文件中的相对地址

void*NAddr;//后一个区域在文件中的相对地址

boolInUse;//本区域是否正在使用

}TItemInfo;

4关键技术及其具体实现

4.1命令转发

管理接收到的命令有查询被监控应用程序状态、刷新监控变量、锁定监控变量、锁定应用程序窗口等。管理根据UDP报文内容,将命令发送给指定的监控模块。命令的转发均是通过自定义消息实现的。本文使用Windows消息机制自定义了一系列消息并实现其消息的处理,结合到本监控系统的需要,管理中主要定义了如下消息及其处理:

(1)WM_READAPPHANDLE:读应用程序实例中监控模块的相关句柄;

(2)WM_READAPPSTRUCT:读应用程序实例中的MIB子树结构;

(3)WM_READAPPDATA:读应用程序实例中的MIB节点的值;

(4)WM_SETAPPDATA:设置应用程序中的MIB节点的值;

(5)WM_READAPPTRAP:读应用程序发送来的Trap信息;

(6)WM_READPROXYSET:为应用程序实例的MIB子树中某个MIB节点设置阈值;

(7)WM_MIBERROR:与应用程序之间的通信发生错误。

由于在一个标准的Windows应用程序中,消息是由窗口处理的,而在管理中没有窗口,也不是从窗口继承的一个类,管理不能直接进行消息操作。在程序中使用Allocate-HWnd函数为监控模块虚拟生成一个消息窗口,专用来进行消息捕获、发送与处理。

4.2内存文件映射与同步机制

4.2.1内存文件映射实现管理与监控模块之间通信

管理与应用程序实例的监控模块之间的数据交换采用内存文件映射这种进程间的通信方式。管理的文件映射和文件映射视图的创建代码如下:

HANDLEh_filemap;//内存文件映射句柄

HANDLEh_LocalMapView;//内存文件映射视图句柄

//创建内存文件映射对象,有读写权限,对象名为ProxyFileMap

h_filemap=CreateFileMapping((HANDLE)0xFFFFFFFF,NULL,PAGE_READWRITE,0,VIEWSIZE,"ProxyFileMap");

if(h_filemap==NULL)

{AfxMessageBox("CreateLocalFileMapError!");

returnfalse;}//创建内存文件映射视图

if((h_LocalMapView=MapViewOfFile(h_filemap,FILE_MAP_ALL_ACCESS,0,0,0))==NULL)

{AfxMessageBox("CreateLocalMapViewError!");

returnfalse;}

管理启动后,在其内存文件映射视图中写入自己的窗口句柄,供各个应用程序实例读取。监控模块初始化时,从管理的内存文件映射视图中得到管理的窗口句柄,向管理的内存文件映射视图中写入自己的内存文件映射对象名,并发送请求注册消息给管理。管理收到消息后,从自己的内存文件映射视图中读出应用程序实例的内存映射文件对象名,创建应用程序实例内存文件映射视图[9]。和监控模块的通信通过读写内存文件映射视图和互相发送消息实现。

4.2.2同步机制

管理和监控模块通过对内存映射文件进行读操作和写操作来完成数据交换。由于存在多个独立的应用程序实例进程,它们可能同时对管理进行写操作。可能存在这样的情况:当一个应用程序的实例向管理的内存文件中写入数据,并通知管理读取时,另外一个应用程序的实例也在做同样的写操作,它写入的数据将前一次写入的数据覆盖了。当管理响应消息从内存文件中读入时,得到的是第二个应用程序实例的数据,第一个应用程序实例写入的数据已丢失了。在应用程序实例的内存文件上也存在类似的情况:当一个应用程序实例连续向内存文件中写入时,管理可能还来不及对第一次写入的数据进行读取,第二次的写入已经将第一次写入的内容覆盖了。在对内存文件的读写过程中引入同步机制是必要的。程序中采用的同步机制是信号灯机制[9]。

在管理上为内存文件创建信号灯:

/*创建信号灯,信号灯名为ProxyMapViewSemaphore,初始计数为1,最大计数也是1,h_SemAccessMapView为该信号灯的句柄*/

h_SemAccessMapView=CreateSemaphore(NULL,1,1,"ProxyMapViewSemaphore");

在监控模块中,打开这个信号灯:

/*打开名为ProxyMapViewSemaphore的信号灯,h_SemAccessMapView为信号灯句柄*/

h_SemAccessMapView=OpenSemaphore(SEMAPHORE_ALL_ACCESS,false,"ProxyMapViewSemaphore");

监控模块每次对管理内存文件写操作前,均要等待信号灯的信号:

/*等待信号灯h_SemAccessMapView的信号,知道信号灯为有信号时才返回*/

::WaitForSingleObject(h_SemAccessMapView,INFINITE);

//对管理内存文件映射的写操作管理在每次对内存文件进行读操作后,都要增加信号灯的计数:

//对内存文件的读操作

//增加信号灯h_SemAccessMapView的计数,每次增加1

ReleaseSemaphore(h_SemAccessMapView,1,NULL);

5结束语

在对SNMP中MIB信息和协议数据单元扩充的基础上,设计并实现了面向应用软件的网络监控系统。该系统提供了对应用程序类中成员变量和成员函数的监控功能。

参考文献:

[1]唐亚哲,张鹏,李增智,等.DIINMS分布智能网络管理系统的设计与实现[J].小型微型计算机系统,2002,23(8):926-929.

[2]田力威,尹朝万.基于CORBA的智能网络管理系统的结构及实现[J].小型微型计算机系统,2002,23(7):810-813.[3]HUNTER,PHILIP.Integratedsecurityandnetworkmanagementremainelusive[J].NetworkSecurity,2004,10(6):15-16.

[4]BHUTANI,KIRANR,KHAN,etal.Optimaldistributionofahierarchyofnetworkmanagementagents[J].InformationSciences,2003,149(4):235-248.

[5]费洪晓,康松林,施荣华.基于SNMP的网络应用软件监控系统的设计与实现[J].计算机工程与应用,2004,40(15):122-125.

[6]康松林,费洪晓,施荣华.网络应用软件监控系统监控模块的设计与实现[J].中南大学学报:自然科学版,2004,35(6):993-997.

[7]罗雪松,罗蕾,许子辛.嵌入式SNMPAgent的设计与实现[J].计算机应用研究,2004,21(10):220-222.

监控软件篇2

目前,专业视频监控系统软件在我国的使用已经初步成熟,但是在全国范围内的普及程度尚且还不足够,用户使用的依旧是功能简单的视频监控软件,可见视频监控系统软件在我国的应用现状。

1.1 中国的监控工程存在着很强的地域性

我国实施开展城市化建设、设计、施工和维护多是以地区为单位开展的,在大多数情况下,工程设计的依据是本地区的监控,没有将上级地区的监控标准考虑在内,从而导致各地区内所使用的视频监控软件系统的种类并不相同,一般地区所使用的视频监控系统软件的建设的是小型的监控工程,因此在监控范围和使用的监控设备数量上都是存在着劣势的,小型的、功能简单的视频监控系统软件已经能够满足地区监控的需求,所以专业的视频监控系统软件在我国的大部分地区的推广受到了较大程度的限制。

1.2 我国监控工程承包商的传统思想没有得到根本的改变

我国大部分的监控工程的承包商在实施监管的过程中对于软件系统的认识不足,并没有充分的将软件系统应用到监控工程运转之中,在监控过程中较常使用的是摄像机、视频服务器以及报警主机等等,这些监控工具的实用价值是被承包商们所认可的,但是使用视频监控软件系统开展工作的意义是不能在短时间内被评估的,所以承包商对软件系统的应用并不重视,将硬件作为重点使用的监控工具。

在我国,使用监控的硬件设备花费的成本相对的较低,监控的效果也能够满足监控工程的需求,所以大多数的监控工程的承包商不愿意将大笔的金钱花费在购买专业的视频监控系统软件上。但是随着网络技术的突飞猛进,人们对于安全的认知也越来越重视,涉及城市范围,甚至是全国范围的视频监控系统软件已经广泛的认可,尤其是物业小区的监控、公司监控等等,人们对于全网络监控系统的需求预发的强烈,尤其是在市政工程和城市治安管理方面,这时,传统的硬件监控设备以及小型的视频软件监控系统已经不能满足人们对于社会安全的需求。

2 视频监控系统软件所使用的技术分析

2.1 现有的免费视频监控软件存在的几点缺陷

1)现有的功能简单应用较广的视频软件采用的是单机的软件架构。使用单机软件结构的视频软件系统在部署、管理以及维护方面都存在着较大的缺陷,每当增加一个被监控的客户人群,监控者都要花费很多的精力来重新配置。不仅如此,当视频监控软件系统需要升级更新的时候,所有被监控的客户都要同步的进行安装和配置。由于没有统一的管理服务器,监控者不能准确的获得被监控者的数量。

2)功能简单的视频监控软件系统都是由固定的硬件厂商提供,监控者在使用监控软件的时候被限定使用专用的设备,造成监控工程使用免费的监控设备的时候呈现出很差的兼容性和扩展性,监控者一旦想要更滑视频监控软件设备,就会面临系统之间的互连问题,导致视频软件系统的维护面临着更大的阻碍。

3)功能简单的视频监控系统软件的功能相对比较薄弱,设备制造厂商不能在生产过程中获得经济利益,监控者在使用这类软件的时候也没有更多的功能可以选择,一般功能简单的监控系统设备软件只有视频播放、录像回放和云台控制等基本的功能,由于功能简单的视频监控系统软件的技术支持薄弱、软件更新的速度比较慢、软件的扩展性不强等问题,导致功能简单的视频监控系统软件不能完全的满足大规模的监控工程的需求。

2.2 解决视频监控系统软件技术缺陷的策略

我国视频监控系统软件中存在的问题主要有软件的功能薄弱,结构简单,存在的供应厂商数量多,设备种类繁多,为了切实的解决上述存在的问题,在设计视频监控系统软件的时候,应当将视频压缩技术、网络通讯技术、计算机控制技术等等,将监控工程客户的需求分成具体的模块,将客户的需求模块进行分析组合,设计出适应不同监控工程的视频监控系统软件。

专业化的视频监控软件应当在技术基础上做到以下几点:

高度灵活、人性化且易操作的用户界面:使用图像化、操作向导、友好提示以及快捷工具等方法都可以帮助视频监控软件系统增强友好度,方面用户操作。

强大的电子地图功能:视频监控软件必有的一项功能就是地图定期的功能,但是为了化解地图功能较差的问题,可以任意配置电子地图的层级关系,在地图之间实现任意的跳转切换,使用wmf,jpg,bmp,png和gif等单文件的图片制作电子地图,以此实现电子地图的多层以及多文件的管理。

多种云台快球控制技术,多数的视频监控系统使用的都是使用云台控制面板,为了缓解云台控制系中存在的操作不便,可以进行操作技术的改进,使用云台控制面板操作监控系统软件、使用鼠标点击图片进行操作等等,不仅能够简化用户视频监控系统的操作方法,还能有效的扩大视频监控系统软件的使用范围。

完美的用户管理功能:视频监控系统软件应当在加强对用户的管理,使用本地用户集中认证管理、用户和用户组策略管理等技术强化视频监控软件的技术,优化视频监控系统的优先级设定,使得软件系统的每一个用户都能在各自允许的权限内执行与监控有关的各种操作,并且能够建立起最优的系统冲突排查机制,满足专业视频监控系统软件针对大型多级站点、多级网络监控系统的多用户监控和管理的需求。

系统的兼容性及其扩展性,视频监控系统软件一旦具有了优秀的兼容性额扩展性,能够支持的硬件设备的范围也会相应地扩大,包括DVS、NVS以及DRV,在设计视频监控软件系统的时候考虑到多种压缩格式的兼容,考虑到多样的通讯协议扩展习惯,使得视频监控系统软件的设计成本尽可能的减少,避免多次投资的出现。

监控软件篇3

[关键词]软件开发;监控使能;软件编程框架

中图分类号:TP393 文献标识码:A 文章编号:1009-914X(2014)37-0263-01

引言

伴随网络多元化发展,软件开发系统也逐渐成熟,由初始级持续改进为优化级,科学化和严谨化也成为软件编程的基本要求。在软件编程系统规模不断扩大和设计难度系数增加的趋势下,老一套的软件编程设计思路已经退化,已经无法适应现今灵活多变的网络设计环境。基于现今这种多变的编程环境,软件编程研发人员对编程结果很难做出全面准确的推测,故此,所编程的软件框架在运行过程中必须对运行的环境进行信息采集,以便于软件在使用过程中不会出现异常,大大提高了软件运行的安全性。基于监控使能的软件编程框架设计正是解决了这一缺陷,通过对读取数据进行监视和控制,并且对写入数据也实施监控,能有效及时和准确的发现软件工作的障碍点,对其进行改进,以确保软件的正确运行。所以,基于监控使能的软件编程框架的设计是软件开发的重要一环,也是提高软件运行时准确性和安全性的前提和保障。

1. 软件开发

软件开发,顾名思义是指设计者为满足某项需求而开发的软件系统程序或者系统中某部分软件程序的设计过程。在开发过程中,需要综合对开发环境,研发技术和经济效益进行考虑,根据实际情况,制定可行性报告,从软件需求分析中了解软件设计与系统解析的关系,这将决定了软件开发的生产效率和软件研发的质量。

1.1 软件编程设计

在对软件进行需求分析的基础上,从详细和概要两方面进行软件的编程设计,其中详细设计,就是将程序编程细腻化,对模块的数据结构,规则算法和程序流程进行设计;概要设计即主体设计,主要对程序结构进行设计,用软件结构的流程图将软件模块形象生动的表现出来。

软件编程过程中,要想有一个比较完美的设计结果,不仅需要完善的系统化设计思路和严谨的评价机构,还要基础的设计原则指导才能实现预期的结果。软件的质量主要取决于对软件结构的设计,而设计的原则主要包括:1) 独立的组织分布结构,以便于对软件的各个部件成分进行控制管理;2) 要有自己独特的特征功能区域,并将之模块化;3) 充分结合在软件需求分析中得到的方法和资料;4) 尽量缩短软件内部编程于外界环境接口间的差距和复杂程度,以便于外部更好的结合,提高其传输效率;5)需要对不同的模块进行描述,细致化。依照以上的设计原则,不仅优化了软件编程框架,而且还提高了软件的开发速度和运行效率,使其更加的规则化和模块化。

1.2 软件编程的发展

在软件开发过程中,随着版本和配置的不断提升,对软件编程设计的要求也越发严格。程序设计的思路也逐渐趋向于自顶向下和自底向上,这样程序的可读性较好和可靠性也能满足需求。语言和编码风格也更加的清晰和简洁,趋向于模块化,让不同模块完成各自功能再将其汇总成一个完整的有机整体,大大降低了软件开发的复杂度,使得软件设计过程,调试阶段和后期维护等操作更加的简便,有效的提高了软件的生产效率和降低了各部分的维修和维护成本。

2. 监控使能的编程框架

2.1 基于监控使能的软件编程概述

在软件编程设设计过程中,由需求分析得到的设计方案,虽然设计者在满足设计要求的前提下,尽量的使得软件的运行更加的完美,但是在现今灵活多变的编程环境下,为保障软件运行的可靠性和安全性,需要时时的对软件运行过程中的各个部分和分支进行监控和调试。传统的编程框架设计,在软件监控和调试阶段,只能适用于单一方面的操作,这样就严重阻碍了程序和软件的运行,远远无法满足内部构造为多节点的软件要求,而且无法有效的保障运行过程的安全和通畅。通过对传统的编程框架设计方法进行改进,不仅能快速的找到软件在运行过程中所遇到的问题,还能保证软件功能的顺利实现。

软件的编程框架设计,是软件系统中最重要的部分,如同人体的骨架,支撑着整个软件整体的构建和运行,规定了系统的组成结构。基于监控使能的软件编程框架,是在软件运行过程中,将软件的各方面运行情况有效的汇总和收集,并将整理后的资料详细和直观的反馈给相关人员,根据软件的具体操作规定,对运行的装备时时进行管理和监控。在拥有监控能力的软件结构内,软件的通讯能力起到至关重要的地位,良好的通讯性能能及时的采集到各方面的信息,采集到的信息将被存储于数据库内,一旦有突况,能及时的调用出来并解决,由此可见,数据库的构建是基于监控使能的软件编程框架系统的核心成分。

2.2 编程框架的设计

在灵活多变的编程环境下,要满足不同设计要求和多变的环境,则基于监控使能的软件编程框架设计要拥有以下功能:首先该编程框架要能够进行监控需求的描述和分析,能独立的按照设计者的要求进行功能执行,这就需要将不同的功能选项镶嵌于编程程序中,这样才能在不同的环境需求下,进行快速的判断和敏捷的操作执行;其次,能自动的生成相应的程序代码,在监控过程中,根据运行环境的不确定性,自动选择相应的编译软件功能指令,将收集到的数据进行整合处理分析,自动生成匹配的处理方案并执行;最后,就是各个模块之间要相互独立存在但又是一个有机整体,即能在不用的模块下进行数据处理分析,这样能完整的表现每一部分的功能和处理能力,大大提高了处理数据的效率和有效的节约了成本。

在软件编程框架设计过程中,要设定一个间隔时间段,每经过一个时间段就执行一次,即对软件编程环境进行一次有效的监控处理,并将处理得到的数据信息由数据库传递到软件工作界面,便于数据的管理和分析。所以,强有力地监控使能编程框架的设计,是软件编程框架的必然选择,是满足网络灵活多变的重要举措。

3. 基于监控使能软件的开发

面对灵活多变的网络环境,伴随而来的是各种不确定的因素,这可能会威胁到软件编程的设计与研发,增大的其运行的危险性。而在此情况趋势下,监控使能软件的开发,有效的处理了这类由不确定因素导致的危险层面,保障了软件运行的安全性。在网络应用软件监控系统的开发下,有效及时的对整个网络信息进行全面的的控制操作,并且在监控的接口设置变量参数,自动对变量进行监视和控制,及时的获取相关的数据信息,将获得的信息传递到监控系统。其次监控的数据信息要保存和共享,在该软件中,将不同的软件功能区域进行锁定,这样就能保证不同区域的数据处理能够同时进行,这样就保障了文件数据的同步处理能力。

总结

在计算机行业的飞速发展和不断被应用的时代,软件编程已经逐步成为各个行业的主要操作思路,用编程化的控制流程来取代人工式的作业方式,实现自动化的控制。所以,软件编程已经成为重中之重,而软件运行环境的安全性问题也不容忽视。因此,基于监控使能的软件编程框架的设计,是每一个设计者研发软件时必不可少的工作流程,这样不仅有效的保障了软件运行的可靠性和安全性,也提高了编程效率及节约了成本。总之,加强对监控使能的软件编程框架的研发设计,为软件编程开辟了一个新的领域。

参考文献

[1] 毕文奇.监控使能的软件编程框架设计与实现 [J].国防科学技术大学:计算机科学与技术,2013(09)

监控软件篇4

关键词:LED路灯;智能监控;软件设计;无线

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2014)34-8271-04

《“十二五”城市绿色照明规划纲要》指出虽然全国各地都在积极推行城市绿色照明,加强节能管理,并取得明显发展。但是城市绿色照明工作还处于起步阶段,仍存在城市照明质量和节能缺乏有效的监管,无法达到国家的节能减排要求,管理方式比较粗放,大都采用人工方式,缺少精细化管理,城市绿色照明发展的体制机制还不完善,存在薄弱环节,发展不平衡等问题[1].

在城市照明用电中,路灯占有相当的份额。由于路灯工作时间长,耗能非常大,因此同样需要开展绿色照明工作。与《城市道路照明设计标准》CJJ45-2006规定的高压钠灯、金属卤化物灯、紧凑型或细管径荧光灯等传统路灯相比,作为本世纪新型光源的LED灯具有节能、环保、长寿等优点,可选用作为道路照明用光源,已开始在道路上获得应用,是未来路灯发展的趋势[2]。目前,勤上光电股份有限公司、四川新力光源有限公司、孝感市捷能特种光源照明器等众多国内公司纷纷致力于该领域,从事LED灯的研发和推广。

如何建立有效的LED路灯监控系统是路灯节能的一个重要方面,它可以实时控制LED路灯的开关状态,收集LED路灯各个具体参数,定量描述路灯运行的状况(如故障率、温度、开关状况等),是路灯节能工作的重要基础[3]。目前国内应用比较多的节能设备当属高压钠灯的电压调节设备。由于高压钠灯消耗的电能和电压可以用方程式来表示,因此降低高压钠灯的电压可以降低消耗的电能,但是高压钠灯的能耗仍然较高。

总之,我国的路灯监控系统的发展还处于发展阶段,大部分城市路灯的开、关控制仍由变压器分散控制,统一性差,故障率高,且由于没有远程数据采集和通讯功能,无法实现集中监控,且大部分城市仍是延用传统的以钟控、人工控制为主的管理系统,存在以下问题:系统复杂,难以统一管理;灯光系统覆盖面广,维护困难,维护力量严重不足,疲于应付;开关控制效率低,用电浪费现象严重;存在安全隐患,无法快速掌握运行状态,安全无保障,统计困难。因此,利用无线方式来采集信息的思想越来越受到人们的关注。目前国外大多采用的是WLAN、 CDMA/GSM等网络,但其组网受限制、运行成本相当高。随着无线传感网技术的发展,应用该技术进行LED路灯监控成为新的课题[4]。因此结合无线传感网和LED路灯,研究基于无线传感网的无线LED路灯监控系统,设计监控中心上的智能监控软件,实现对路灯的实时监控和管理,确保高效稳定,全天候运行,监控不必要的“全夜灯照明”,有效节约电能消耗。对于城市公共照明系统来说,采用智能化的管理系统是实现能源节约、减少资源浪费、满足人们生活要求、显示现代化城市靓丽风景的科学解决方案。

1 路灯监控系统结构

LED路灯监控系统包括Zigbee路灯控制器、子网控制器和监控中心三个部分组成[4]。

Zigbee路灯控制器控制路灯开关(最多可单独控制9路灯)、亮度调节、电流采集、温度采集、开关状态采集、电压采集等。Zigbee路灯控制器分为模块式(内置灯具中)和外挂式(可内置灯杆中),可分别满足路灯企业和工程企业的使用需求。

子网管理器接收和发送子网内的所有路灯控制信号、数据记录、报警处理等。它负责监控子网内的Zigbee路灯控制器运行,将监控中心的命令下达给Zigbee路灯控制器,将Zigbee路灯控制器及线路信息反馈监控中心。子网控制器处于监控中心和各子网内Zigbee路灯控制器的中间,向上通过485、RS232等方式同系统中心通信。向下则是通过ZigBee通讯协议方式,同各个路灯控制器通信,无需通讯费用。

监控中心主要实现对不同子网下的Zigbee路灯控制器进行远程数据访问和监控,包括参数配置,监控命令发送、现场灯具状态收集等。当该路段路灯监控系统发生故障(包括:跳闸、电压低限、电压高限、电流低限、电流高限、白天亮灯、亮灯率低限、损坏、被盗)及时进行反馈报警,特别是各路段亮灯率、白天亮灯报警、电流高限报警,不用派人巡查也能及时清楚该路段的工作情况,及时安排人手维护,既保证亮灯率和行车安全,还能够根据路段日照和人车流量的变化设定路灯的照明时间和开关,在满足基本照明的前提下节约能耗。

2 智能监控软件设计

在无线LED路灯监控系统中,智能监控软件是系统的一个重要组成部分,实现系统的各个数据存储和管理,提供人机交互界面。因此以下介绍智能监控软件的设计。

2.1 功能需求

1) 自动巡测功能:监控中心可以自动巡测每路路灯的开关状态。

2) 数据采集功能:采集电流电压、电量、温度等数据。

3) 控制功能:监控中心可以随意开关任何一路路灯或开关自定义群组的路灯。

4) 自动控制功能:现场按预先设计好的时间计划自动调节路灯开关时间。

5) 报警功能:将过去的巡逻式维护报警改为预防式等待报警,这样监控中心可以得到第一手资料从而进行调度协调。故障出现后,监控中心可以准确获取故障灯的位置信息,工作人员可以在最短时间内赶到现场行维护。通过采集电力线的电流、电压值,通知系统中心,从而进行防盗处理。

6) 显示功能:可以根据电子地图上显示每路路灯的开关状态及其它重要信息。

7) 数据存储功能:可对路灯安装和时间、地点、运行参数等用户关心的信息进行记录存储。

8) 数据查询功能:监控中心可以通过互联网查询任意时间段每路路灯数据信息。

9) 曲线功能:可以生成电流、电压、功率因素、亮灯率、开关时间的分析曲线。

10) 拓展功能:如调光监控,配合LED调节灯光亮度,在不影响照明前提下,达到最大节能效果。系统可自由增减路灯控制器的数量;路灯控制器可以扩展其它功能,配合其他节电监控技术进一步降低路灯能耗。

2.2 软件整体框图

如图1所示,软件采用Qt的图形界面平台和C++语言[5,6]分别编写数据管理模块、主界面模块、数据库模块、用户管理模块、通信管理模块五个模块,最终实现智能监控软件[7]。

2.2 软件模块功能

2.2.1 数据管理模块

如图2所示,数据管理模块负责完成软件中控制器模块相关部署运行数据(区域数据、街道数据、部署配置数据和运行状态数据两种控制模块数据)、用户账户相关数据和通信配置相关数据等数据的管理,并对其它模块提供数据支付服务[7]。

如图3所示,软件采用继承机制,设计DataItemBase抽象基类,并实现类型、部署信息、父对象等信息的申明,重新定义了获取/设置类型函数,获取/设置部署信息函数等函数。在抽象基类DataItemBase的基础上,利用C++的多态性设计了区域数据类(Zone)、街道数据类(Street)和控制模块数据类(Controller)。定义了各个对象和虚接口函数,实现控制模块相关数据的统一接口。

如图4所示,软件设计了用户名、密码、权限等用户账户参数,并提供了用户验证函数、权限验证函数、各个参数设置等多个函数,实现了对系统中各个用户账户的管理。

通信配置相关数据主要考虑串口的波特率、数据位、停止位、校验位和流控制等参数,提供串口数据发送和接收函数,能完成数据的通信任务。

整个数据管理模块的数据在软件开始运行时创建并初始化,具体数据由数据库管理模块提供。在软件运行过程中,数据的任何改动都将及时反馈给数据库管理模块。数据库管理模块寻找对应的数据项,并执行数据的更新和添加等操作。

2.2.2 主界面模块

主界面模块负责与用户的交互和界面维护的工作,其功能主要集中在运行数据显示和处理用户图形化界面输入两个方面。按照系统需求,如图5所示,主界面部分主要包括以下几个组件:

街道与控制模块管理组件主要提供用户管理和查询街道和控制模块的图形化接口。该组件从数据管理模块获取相关街道及控制模块的部署信息,并按控制模块的街道部署顺序以树形结构显示,同时提供指定街道与指定控制模块的快速搜索功能。

地图管理组件主要负责管理和显示地图信息、显示部署在地图指定位置的街道和控制模块的图形化数据信息,并负责用户对显示的图形化数据信息进行的交互工作。该组件同时还和街道与控制模块管理组件进行协调工作,实现指定街道或控制模块在地图上的快速定位。

监控数据区组件采用表格显示方法,从数据管理模块中获取和显示节点编码、节点地址、电控箱编号、开关状态、亮度、当前电压、当前电流、当前温度等路灯控制器的工作状态数据,方便用户及时查看系统运行状况。

控制面板组件是用户控制Zigbee路灯控制器的人机交互界面,针对于用户选择的不同(是否为控制模块),进行相关路灯控制选项的显示。在用户完成相关运行选项配置后,控制面板组件将根据配置信息生成相应的控制命令信息通过通信管理模块发送给底层硬件,完成用户对底层硬件的图形化控制。

2.2.3 数据库模块

为实现数据的管理和存储,数据管理模块和数据库模块互相协调运行。如图6所示,数据库模块在提供对数据库操作的同时,还提供对数据库中数据的显示和简单分析功能。数据库管理部分主要实现数据管理模块中街道、控制模块的部署信息数据、系统运行配置数据,如通信配置数据、用户账户数据、控制模块的历史运行数据等数据的表创建、出库、入库、更新和添加等操作,并提供了各个操作接口,实现与数据管理模块的互动。数据曲线显示和数据分析是使用户对系统运行状态有一个直观的认识,具有实时数据的曲线显示功能,同时提供给用户简单的数据分析功能。曲线显示和分析的数据来源就是软件在运行过程中存入数据库的运行数据。软件系统采用的数据库为无服务免配置的Sqlite数据库,以方便软件的部署。

2.3.4 用户管理模块

用户管理模块提供了两个人机交互界面――用户的登入界面和管理员用户设置界面,实现了用户的图形化操作。该模块主要管理系统中的用户账户,即主要实现用户账户的创建、登入、修改和用户账户权限范围的设置、修改和管理。并防止未授权的用户修改系统软件,威胁系统的运行[7]。

2.3.5 通信管理模块

如图7所示,通信管理模块是软件利用电脑的通信接口,实现与系统底层各个设备的数据通信,从而实现用户对底层硬件的控制。控制管理模块主要负责对多种通信接口(如串口、以太网接口等)进行配置和管理,以完成数据的正确通信。主界面中控制面板模块根据用户设置生成的命令字就是通过本通信管理模块发送给底层硬件设备的。

通信控制管理模块还负责接收底层设备发送的各种控制器状态反馈信息数据,其还设有数据解析模块对接收的数据进行解析,并通过与数据管理模块的接口完成相应数据的更新工作。

4 设计效果图

如图8所示,软件按照路灯的部署信息以街道à控制模块的顺序进行树形结构的显示。

如图9所示,软件为了方便用户对特定控制器模块或街道的定位,提供对两个对象的快速查找功能和界面。

如图10所示,软件同时设置地图定位功能,用户查询指定街道或控制模块的同时在地图管理模块中定位该街道或控制模块的位置。

如图11所示,软件为了便于较大地图信息的浏览,设置有地图导航工具栏,包括实现地图缩放(zoom)、导航(navigation)等功能。

如图12所示,软件将收集的信息根据表格型结构显示。

如图13所示,控制面板组件根据当前选择的控制对象进行相应的控制选项的显示。对于控制模块对象,主要选项包括开启时间段设置、亮度设置,而对于街道对象,则包括节能控制策略的设置。

如图14所示,左上角的系统配置菜单栏主要用来配置串口和波特率。左边一栏是控制箱,允许存在多个控制器,单个控制器代表一个Zigbee路灯控制器。右边的控制面板上对路灯控制器进行控制,只要选择当前的亮度值再执行即可。图下面的监控栏上显示当前路灯控制器的各个信息如节点编号、节点地址、开关状态、幅度、亮度、电压、电流和温度等状态。控制面板上还预留了点亮时间段、街道查询、控制模块查询等其它功能。

5 总结

针对无线LED路灯的智能控制系统,设计了由数据管理模块、主界面模块、数据库模块、用户管理模块和通信管理模块五个模块组成的无线LED路灯的智能监控软件。该软件基于Qt图形界面平台,采用C++语言编写完成。设计过程中充分考虑了各个模块间的依赖性关系,进行了模块化的解耦设计。软件平台对现场设备和数据通信依赖很小,对于不同的路灯监测应用,经过适当的配置和调整即可投入使用,且具有较好的图形化界面,通用性和可靠性。

参考文献:

[1] 中华人民共和国住房城乡建设部. 十二五城市绿色照明规划纲要[EB/OL].(2011-11-15).http:///gzdt/2011-11/15/content_1993931.htm.

[2] 吴贵才,陈逸铭,杨彤.可见光通信在室外LED路灯上的实现[J]. 照明工程学报,2013,24(4):71-75.

[3] 任条娟,陈友荣,王章权.交通路灯监控系统的无线传感网链状路由算法, 电信科学,2013,29(01):88-94.

[4] 葛灵晓,陈友荣,俞晨波.基于无线传感网的LED照明控制系统[J].浙江树人大学学报:自然科学版,2012,12(1):1-6.

[5] 谭浩强.C++面向对象程序设计[M].北京: 清华大学出版社,2006.

监控软件篇5

关键词:监控组态软件;关键技术

中图分类号:TP311文献标识码:A文章编号:1009-3044(2009)14-3706-02

Configuration Software to Monitor the Research of Key Technologies

FANG Lin

(Tianhe college of Guangdong polytechnical normal university,Guangzhou 510540,China)

Abstract: This paper mainly discusses the design and configuration software to monitor the development of six key technologies, with a certain degree of practical significance.

Key words: Monitor configuration software; Key technologies

1 引言

监控组态软件设计与开发是一项十分复杂的工程任务,涉及到面向对象技术、图形技术、数据库访问技术、网络通信技术、组件技术、多线程技术等相关理论与技术。

2 面向对象技术

当前,许多设计监控组态软件的开发者采用了面向对象编程(Object Oriented Programming)技术,通过对监控组态软件的各功能模块的分析、抽象,提炼出具体的操作行为及属性,构建出基本类库,当需要时,可以从基本类库中派生出新类并实例化,从而可以方便地在通用的开发平台上建立有自己独特功能的监控组态软件。这种导出式的开发方式具有较高的软件重用性,避免了软件模块的重复开发,是一种比较成熟的方法。

面向对象的程序设计的本质是把数据和处理数据的过程当成一个整体,即对象。面向对象程序设计的实现需要封装和数据隐藏技术,需要继承和多态技术。所谓封装和数据隐藏指的是控制对象数据访问的特定规则。将数据和操作这些数据的代码包装成一个对象,而将数据和操作细节隐藏起来,这一过程叫做封装。封装的基本思想是:如果增加某些限制,使得对数据的访问可按照统一的方式进行,那就比较容易产生更为强壮的代码。继承机制指建立子类或派生类的能力,使面向对象软件很容易适应不同的应用而不用修改其原始设计。在重用原始设计的同时,增加新的功能或遗弃不必要的功能。多态性通过继承的方法构造类,采用多态性为每个类指定表现行为。继承性和多态性的组合,可以轻易地生成一系列虽类似但独一无一的对象。由于继承性,这些对象共享许多相似的特征。但由于多态性,一个对象可以有独特的表现方式,而对另一个对象有另一种表现形式。

3 图形技术

监控系统需要在远离现场的控制室对系统的各状态进行监控,逼真地反映现场的真实运行状态和设备的运行状态,这就要求监控组态软件具有良好的图形监控画面,丰富强大的图形组态功能,从而能够达到再现现场实况,为管理人员提供简单方便的操作的效果。监控组态软件具有友好的人机界面和强大的组态能力,其人机界面不再是单一的文字,而是文字和图形的综合处理,除了具有菜单式的操作方法外,一般都采用图形化、仪表化的操作界面,提供趋势图、报警等常用过程控制中的监控乎段。充分利用图形技术,可将界面设计的非常友好,方便操作人员使用。

4 数据库访问技术

监控系统的处理过程其实就是数据采集、数据传递和数据处理的过程,其中对于数据的处理难免要用到数据库。监控系统由于其应用场合的特殊性,它的数据处理与一般的商业软件有着明显的区别,前者需要处理最多的是实时更新现场数据,即处理一些实时的不断变化的数据,数据与时间因素紧密相关;而后者这种实时的因素相对较弱,主要是处理一些静态的数据。在监控系统中涉及到两种数据库:实时数据库和历史数据库。

数据库是组态软件的重要组成部分,其它组件模块经常要对数据库进行读写、创建、删除等操作。比如历史控件需要查询、读取历史数据,硬件I/O模块需要将从设备中取得的数据定时写入数据库中等。因此数据库访问技术是组态软件开发中经常要设计的一项技术之一。微软提供了一个通用解决方案――OLE DB,它是一组COM(Component Object Model,组件对象模型)接口的集合,提供了统一的方法以访问存储在不同信息源中的数据。但是,由于OLEDB API是为了给尽可能多的不同应用提供最佳功能而设计的,因此不符合使用简便这一要求。所以,我们需要一个介于OLE DB和实际应用之间的桥梁,而ADO正是这座桥梁。

ADO是为Microsoft最新和最强大的数据访问接口OLE DB而设计的,是一个便于使用的应用程序层。OLE DB为任何数据源都提供了高性能的访问,这些数据源包括关系和非关系数据库、电了邮件、文件系统、文本和图形以及自定义业务对象等。ADO在关键的Internet方案中使用最少的网络流量,并且在前端和数据源之间使用最少的层数,所有这些都是为了提供高性能的接口。同时ADO使用了与DAO相似的约定和特性,使得它更易于学习。

5 网络通信技术

网络程序的实现可以有多种方式,Windows Socket就是其中一种比较简单的实现方法。Socket是连接应用程序与网络驱动程序的桥梁,Socket在应用程序中创建,通过绑定操作与驱动程序建立关系。此后,应用程序送给Socket的数据,由Socket交给驱动程序向网络上发送出去。计算机从网络上收到与该Socket绑定的IP地址和端口号相关的数据后,由驱动程序交给Socket,应用程序便可以从该Socket中提取接收到的数据。网络应用程序就是这样通过Socket进行数据的发送和接收的。

在TCP/IP网络应用中,通信的两个进程间相互作用的主要模式是客户机/服务器模式(client/server),即客户向服务器提出请求,服务器接收到请求后,提供响应的服务。监控组态软件在建立客户机/服务器模式时主要基于以下两点:首先,建立网络的起因是网络中软硬件资源、运算能力和信息不均等,需要共享,从而造就拥有众多资源的主机提供服务,资源较少的客户请求服务这一非对等作用。其次,网间进程通信完全是异步的,相互通信的进程间既不存在父子关系,又不共享内存缓冲区。

6 组件技术

组件是一种可重复调用的软件块,它把维护及操作某一类信息的程序集中在一起独立成块。应用系统通过预先定义好的界面来调用执行组件。组件可以简单如一个类,也可以复杂如完整的应用服务处理。组件与调用它的应用环境一起构成容器系统,它提供了一种执行服务器组件的运行环境。常用的组态软件控件为ActiveX控件。

ActiveX是Microsoft的一个术语,是基于组件对象模型(COM - Component Object Model)的一种技术,是一组包括控件、Dll和ActiveX文档的组件,它通常是以动态链接库的形式存在,因此必须在一个叫容器的独立执行软件中运行。ActiveX技术的核心是ActiveX控件。事实上,ActiveX控件是OLE控件的一个新的称呼。以前所创建的OLE控件自然而然地成为ActiveX控件,并且可以在ActiveX应用程序中使用。原有的OLE控件的最大问题是过于笨重。这主要因为它们面向桌面应用,实现了完整的 OLE控件标准接口集。而ActiveX控件,主要是在Internet环境下应用,所以必须做到尽可能的小。ActiveX控件的一个特点是能够自动下载。支持ActiveX控件的浏览器如果发现正在浏览的页面中用到某个ActiveX控件是它所没有的,便会自动从服务器端下载ActiveX控件并安装它。ActiveX控件的数据输入和函数功能的执行都必须通过容器,因此ActiveX控件和容器都必须支持一些特定的接口协议。

目前使用的大多数监控组态软件都提供了使用ActiveX控件的能力。程序员可以利用自己熟悉的开发语言来开发ActiveX控件,任何能通过编程来完成的任务都可写成一个或多个ActiveX控件。用户不仅可以自己创建ActiveX控件,也可以直接使用第三方程序开发者提供的ActiveX控件例如微软的MSCOMM控件,用户利用它可以轻松完成利用串口通讯的程序;又如Tide Stone公司的Formulate0ne控件可以完成各种较为复杂的报表。控件的使用大大增强了组态软件的灵活性。

7 多线程技术

多线程技术也是组态软件中普遍使用的技术之一。为了实现程序的实时性、并发性,防止因为单个线程而阻塞整个程序运行,画面线程和操作线程往往需要分开。另外,为了提高CPU执行效率,也常常使用多线程技术,比如监控组态软件中的硬件读写模块为每一个I/O设备开辟一个线程,以加快程序执行速度以及网络通信过程中为每个客户端请求开辟一个响应线程。虽然线程确实非常有用,但使用线程时可能产生新的问题。比如线程间的通信和同步问题,这也是我们在使用多线程时最需要注意的问题。线程需要在下面两种情况下互相进行通信:

第一,当有多个线程访问共享资源而不使用资源被破坏时。

第二,当一个线程需要将某个任务已经完成的情况通知另外一个或多个线程时。

Windows提供了许多方法,可以非常容易地实现线程的同步。这些方法包括:临界区、信号量、互斥体、事件对象等。

参考文献:

[1] 王亚民,陈青,刘畅生,等.组态软件设计与开发[M].陕西:西安电子科技大学出版社,2003.

监控软件篇6

关键词:WebRTC;远程视频监控软件;服务器;客户端

中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2017)05-0168-02

随着社会的发展,安全问题受到人们更多的关注。远程视频监控可以为人们提供实时、清晰的画面,有利于年轻人对家庭、老人和小孩的安全的实时掌握,近年来受到广泛的关注。

2011年,Google公司开源了WebRTC[1](Web Real-Time Communication)技术,目的是为了实现基于浏览器提供P2P的视频通话。目前WebRTC已经成为HTML5的标准,微软、苹果、火狐等浏览器提供商已支持WebRTC技术。基于WebRTC技术视频监控的研究,尤其在家庭场景下具有重要的意义。WebRTC技术可以在低带宽下实现流畅的视频传输,且其P2P的传输设计使得个人信息得到很好的保护。

本文,基于WebRTC设计一种家用远程视频监控软件。基于WebRTC视频传输架构,设计了并实现了视频传输的服务器和客户端,并搭建了视频传输穿网服务器,实现了视频的P2P传输。

1 WebRTC简介

WebRTC是Google开源的一项支持浏览器进行P2P视频通话的项目。其将音视频处理功能内嵌到浏览器中,是浏览器可以在不使用任何插件的情况下,直接对音视频数据进行处理。

1.1 WebRTC的系统架构

WebRTC使用了世界上公认的最好的音视频处理引擎是,其NAT穿透方案的成功率达到83%[2],为开发各种音视频媒体客户端提供便利。WebRTC的系统架构[3]如图1所示。

图1中,Web API是面向第三方音视频开发者的JavaScript API,主要有Network API、RTC PeerConncetion API和RTC Data API;WebRTC Native C++ API是面向浏览器厂商,用于浏览器的底层开发;信令管理部分主要负责基于Web应用的信令控制部分;音频引擎是WebRTC的音频采集和音频通话质量保证的核心部分;视频引擎是WebRTC的视频采集和视频通话质量保证的核心部分;网络传输模块儿负责音视频数据的传输和网络中NAT和防火墙的穿透。

1.2 WebRTC的优点

WebRTC支持跨平台浏览器进行实时的音视频通信,目前已被W3C作为HTML5的标准。利用WebRTC不仅可以开发实时的音视频通信Web应用,其核心模块也可以单独作为音视频软件的组成部分。

WebRTC主要有以下优点:(1)WebRTC技g目前已成为HTML5的标准,主流的浏览器都提供了丰富的Web API方便开发;(2)WebRTC的音、视频处理技术免费、开源,且能够提供高质量的通信质量;(3)WebRTC技术可以和其他音、视频通信技术融合,如VoIP(Voice Over IP)[4]、IMS(IP Multimedia Subsystem) [5]等。

2基于WebRTC的远程视频监控软件

2.1基于WebRTC的远程视频监控软件功能设计

图2中,通过家中的摄像头实时采集室内的视频数据,并保存在本地;视频传输服务器为远程的视频客户端提供建立视频传输链接的服务;远程视频客户端可以通过视频服务器请求查看视频。

2.2 基于WebRTC的远程视频监控软件服务器的实现

图3中,服务器开启后处于监听状态接收远程视频链接建立请求消息;收到远程连接请求消息后,服务器根据消息的内容向指定的视频采集端广播视频链接请求消息;视频采集端接收到链接请求消息后发送链接建立应答消息给服务器,服务器接收到链接应答消息后,广播给远程视频客户端;视频采集端和远程客户端完成链接建立请求和应答消息的交互后完成视频传输链路的建立。

通常视频采集端和远程客户端处于不同的网络环境中,要完成视频的传输还需要穿越NAT(Network Address Translators)和防火墙的限制。WebRTC采用ICE(Interactive Connectivity Establishment )[6]协议完成NAT和防火墙的穿越,ICE需要STUN[7]和TURN(Traversal Using Relays around NAT )[8]服务器的支持,本文搭建来了开源的STUN和TURN服务器来完成NAT和防火墙的穿透。

2.3 基于WebRTC的远程视频监控软件客户端的实现

客户端分为视频采集端和远程视频监控端。视频采集端有两个核心功能:远程视频传输和本地视频录制。远程视频监控端接收视频采集端的视频流,进行解码,并通过缓冲等技术保证视频的质量。

视频采集端采用WebRTC的getUserMedia API函数获取本地视频流,获取视频流后显示在本地的Web界面上;调用WenRTC的PeerConnction API创建视频传输链接,并将本地视频流添加到PeerConnection中传输。

远程视频监控端,调用PeerConnction API函数与视频采集端建立视频传输链接,链接建立后实时接收视频采集端的视频流,并解码显示。

基于WebRTC的远程视频监控软件客户端框架图如4所示。

3 实验与分析

如图5中所示,视频采集端和远程视频监控端分别连接在两个路由器,路由器开启NAT功能,路由器和服务器主机连接在同一个交换机。

开启Web服务器,关闭穿网服务器,启动视频视频采集端,然后视频监控端请求远程视频链接,视频传输效果如图6和图7所示。

关闭穿网服务器时视频采集端和视频监控端只能显示本地视频,无法正常传输视频;开启穿网服务器后视频采集端和监控端可以正常传输视频。这说明本文的设计的信令服务器、穿网服务器、客户端可以正常工作,且视频传输可以穿越NAT和防火墙的限制。

4 总结

本文基于Google开源视频通话架构WebRTC,设计并实现了一种家用远程视频监控软件。首先,设计了软件的服务器和客户端的各部分功能;其次,搭建了视频传输的信令服务器和穿网服务器,并实现了视频采集客户端和是哦监控客户端。实验表明,本文设计的服务器和客户端可正常运行,且视频传输可以穿越NAT和防火墙的限制。

参考文献:

[1] 屈振华, 李慧云, 张海涛,等. WebRTC技术初探[J]. 电信科学, 2012, 28(10):106-110.

[2] 严琦, 安岗, 杜杏兰,等. WebRTC技术漫谈和对运营商的影响[J]. 邮电设计技术, 2015(8):73-77.

[3] 付斌, 杨鑫, 王松,等. WebRTC技术研究及其应用[J]. 电信科学, 2013, 29(9):108-112.

[4] 王跃军. VoIP电话中基于WebRTC的回声消除算法的开发与实现[D]. 复旦大学, 2013.

[5] 唐洪飞. 基于IMS的云视讯平台方案应用研究[J]. 邮电设计技术, 2016(4):48-51.

[6] 胡勋, 周渊平. 基于WebRTC的Android移动端无线视频传输[J]. 微型机与应用, 2015(19):83-85.

监控软件篇7

近年来,网络技术的不断发展,为远程监控技术的发展创造了条件。远程监控系统软件越来越受到人们的重视,其实用性也毋庸质疑。基于javac/s远程监控系统软件突破了空间的限制,使用者不用亲临,在自己的电脑面前就能轻松的实现对被监控端机器的监控。本系统采用java网络编程和java图形编程实现。笔者在开发过程中将网络技术与远程监控理论基础相结合,实现了以下功能:能连续获得被监控端机器屏幕变化;实现被监控端硬盘文件的上传、下载;实现对鼠标、键盘的模拟;实现在远程机器上执行任意dos命令;远程关机、远程重启计算机,方便了用户监视和操作被监控端机器。本系统从系统需求分析、概要设计、详细设计到具体的编码实现和后期的代码优化、功能测试都严格遵循了软件工程的思想。

关键词:远程监控;javarobot;屏幕截取;javasocket

系统需求分析及理论基础

2.1系统需求分析

2.1.1系统功能需求

1.连续获得被控端机器屏幕变化。

2.实现被控端硬盘文件的上传、下载。

3.实现对鼠标、键盘的模拟。

4.实现在被控端机器上执行任意dos命令。

5.远程关机、远程重启计算机。

2.1.2其他需求

1.系统实用,界面操作简便。

2.被监控端自动隐藏运行。

被监控端将随电脑启动而自动运行,运行时默认无任何可见界面。

2.2系统开发原理及关键技术

2.2.1系统开发原理

本系统是利用类java.awt.robot中的屏幕截取和鼠标、键盘自动控制功能,然后加上网络传输功能来完成来完成截屏和远程控制的。wwW.lw881.com

2.2.2系统运行概述

1.启动被监控端,打开指定的udp端口号。用于读取命令。

2.被监控端读取命令(命令格式为ordername:port)ordername为命令名字,port为主控端打开的tcp端口。

3.接到主控端连接后,被监控端就对当前用户的桌面采用屏幕截取,然后发送给主控端。依被监控端设计的不同,可以设定屏幕截取的时间间隔,时间间隔短一点就可以获得连续屏幕变化了。

4.主控端在画布上对鼠标、键盘事件进行监听,被监控端重演主控端上的事件

5.主控端和被监控端读取和发送数据,分别来实现文件上传和下载。

6.在被监控端实现dos命令的执行。

2.2.3系统的关键技术

系统使用的关键技术就是java网络编程和java图形编程。用java网络编程实现主控端和被监控端的通讯(命令收发、数据传送),用java图形编程完成主控端控制界面的编写。具体应用如下:

1.实现主控端(服务器)与被监控端(客户端)之间的通讯。

——用javasocket来实现。

2.用java采集事件,封装成消息,用于发送。

——在主控端机器上采集事件(一般只不过是键盘和鼠标的事件),然后封装成消息类传输到被监控端。

3.在被监控端上重演主控端的动作事件。

——在被监控端运行client端,接收消息,如果主控端有请求操作的消息,用robot截下当前屏幕,传给主控端,主控端显示被监控端的屏幕,是一个位图;然后接收在这个位图上的鼠标事件和键盘事件,并把鼠标位置(位图上的坐标换算成对应的屏幕上的坐标)和键值送到被监控端上,在被监控端上重演同样的事件。

2.3系统的开发平台

jdk1.5.0,eclipse3.1,windowsxpprofessional

2.3.1eclipse介绍

eclipse是一种可扩展的开放源代码ide。2001年11月,ibm公司捐出价值4,000万美元的源代码组建了eclipse联盟,并由该联盟负责这种工具的后续开发。集成开发环境(ide)经常将其应用范围限定在“开发、构建和调试”的周期之中。为了帮助集成开发环境(ide)克服目前的局限性,业界厂商合作创建了eclipse平台。eclipse允许在同一ide中集成来自不同供应商的工具,并实现了工具之间的互操作性,从而显著改变了项目工作流程,使开发者可以专注在实际的嵌入式目标上。eclipse为工具开发商提供了更好的灵活性,使他们能更好地控制自己的软件技术。eclipse是一个开放源代码的项目,任何人都可以下载eclipse的源代码,并且在此基础上开发自己的功能插件。同时可以通过开发新的插件扩展现有插件的功能,比如在现有的java开发环境中加入tomcat服务器插件。可以无限扩展,而且有着统一的外观,操作和系统资源管理,这也正是eclipse的潜力所在。

监控软件篇8

关键词:组态软件;监控系统;低压配电 

中图分类号:TP277 文献标识码:A



Design of Lowvoltage Distribution Monitoring System Based on SCADA Software



ZHANG Lei, BAO Hong, WANG Weile, GAO Junli

(School of Automation, Guangdong University of Technology, Guangzhou510006, China)

Abstract:Based on automation requirement of Lowvoltage distribution management of Ji’ning stadium,using electric SCADA software, designed out intelligent power monitoring system with a manmachine interface.on the platform of the building with intelligent electric meters,RS485 bus and Windows operating system, using the professional EpSynall power system automation configuration software, completed the design of low voltage distribution monitoring systems.The system monitore all the electric parameters, alarm in a trip or other fault, ensure that the power supply is normal, realize the automatic management of low voltage distribution.

Key words:SCADA software; monitoring system; Lowvoltage distribution

1引言

变配电站是电力系统中的重要环节,它的运行情况直接影响到电力系统的可靠、经济运行。而一个变电站运行情况的优劣,在很大程度上取决于其综合管理水平。在短期无法改善电网质量的前提下,利用电力自动化监控等技术手段,提前发现故障,迅速采取应急措施,是避免电力质量事故的有效办法[1]。从国内外电力系统的发展趋势来看,变电站综合自动化已是势在必行[2]。

组态软件是一种控制系统开发工具,用户可根据应用对象及控制任务的要求,利用组态软件提供的工具,以“搭积木”的方式灵活配置、组合各功能模块,构成用户应用软件[3]。

济宁全民健身广场是现代化的大型体育场馆,用于承办各种体育比赛,广泛开展各种群体活动,对配电系统提出了管理自动化的要求。为此,本课题采用工控组态软件设计低压配电监控系统。

2系统组网

系统以配电室为中心,采用分散、分层、分布式结构设计[4]。系统网络分为三层:现场控制层、通讯管理层和监控管理层,如图1所示。

现场控制层:所有低压智能监测仪表的进出线按一次设备对应分布式配置,在控制室集中组屏,各段相对独立,完成测量、报警、通讯等功能,同时具有动态实时显示电气设备工作状态、运行参数、故障信息和事件记录、保护定值等功能。低压智能仪表和保护装置与开关柜融为一体,通过RS485通讯口接入相应的底层RS485子网,将有关信息输送至通讯管理层,同时各个装置可完全不依赖于网络而独立完成对电气设备的监控。

通讯管理层:完成现场控制层和监控管理层之间的网络连接、转换,将现场实时数据和事件信息经系统网络上传到监测管理层,所有网络通信设备安装在控制柜内。此外,系统可通过交换机实现与其它自控系统的网络通信,达到信息资源共享,同时,监控系统还具备与智能模拟显示屏、变压器智能控制单元和智能直流电源系统等其它自动化系统和智能设备相连接的通信接口。

监控管理层:监控主机采用高性能工控机,所有后台监测设备安装在控制室,选用专业组态监控软件完成系统的监控功能。

图1监控系统网络

3系统软件设计

根据济宁全民健身广场的电网结构和用户需要,进行需求分析,确定所需要的监控参数,在确保低压配电监控系统网络安全稳定运行的前提下,选择合适的组态软件,进行二次开发。

组态软件的设计思想是面向对象的,模拟控制工程师在进行过程控制时的思路,围绕被控对象及控制系统的要求构造“对象”,从而生成适用于不同应用系统的用户程序[7]。组态软件采用北京太力公司开发的EpSynall系统软件。

监控软件篇9

关键词:MSCOMM控件;温度监测;数据采集;串行接口

中图分类号:TP274.2

在农业生产领域温度采集监测和控制系统已得到广泛应用,许多中小型规模的农业生产基地出于硬件软件投资利润率和性能价格比方面的考虑,往往自行开发使用监测系统[1]。本软件系统主要是基于以上原因来研制开发的,采用VB语言,简单易学、编程效率高、开发周期短,使用VB的MSCOMM通信控件可以很容易实现串口数据的采集。

本文的实例为大棚多点温度监测,由于大棚温度变化较为迅速,以往一般采用人工定点定时巡检各温度点的温度情况,不但人力投入很大,而且不能准确掌握大棚情况,还会有遗漏现象。现在改为计算机+数据采集+智能显示+自动监测的方案,由上位微机通过MSCOMM控件定时对串口的温度数据进行采集,对于超过测温范围的进行软件报警,同时绘制温度变化曲线,以便于更好的进行监测和分析,及时地掌握变化情况[2]。

1 系统实现

本系统是采集从串口传送的数据,计算机要求能够运行Windows7(或更高版本)操作系统和开发环境VB6.0,具有标准的RS232串口,主要功能为数据采集处理和系统控制,是人机交互的平台。用单片机作为下位机,完成测温任务,测量结果通过下位机与上位微机(PC机)之间的RS-232串行接口传送,给出采集结果和提示信息[3]。Visual Basic语言是可视化面向对象的采用事件驱动技术的结构化程序设计语言,本系统上位机执行的是在Windows环境下利用VB语言开发的微机温度监测控制系统程序。本软件功能丰富,界面良好,使用简单,可以很方便的实现温度的自动监测和报警控制。

2 软件详细结构设计

2.1 监测程序主窗口

在监测程序框架中,主窗口可以实现权限设置和任务切换。在数据库中设置一个用户数据库,在其中添加若干个用户名和密码,再将其分别交给使用本系统的用户,通过登录进入系统,然后可以通过界面上的菜单或工具栏选择要执行的任务实现窗口切换。当界面切换到其他窗口时,实际上是将主窗口隐藏起来,使它在后台工作。

打开系统的主窗口可以看见菜单和工具栏,但是它们都是灰色的无效不可用状态。只有单击了“登录”按钮,在动态出现的登录文本框中输入正确的用户名和密码后,菜单和工具栏才可以使用,这个设置只要通过对象的Enabled属性就可以实现。当登录成功后,登录所用到的文本框又自动消失了,这可以通过对Visible属性进行设置来实现,能够让用户在操作时心情舒畅、方便易学[4]。

2.2 温度数据采集模块

现场温度采集点共有9路,在微机中采用VB6.0编程,并选用MSCOMM控件进行串行口通讯。MSComm控件是Microsoft提供的扩展控件,用于支持VB程序对串口的访问,同时支持查询方法和事件驱动通讯的机制。事件驱动通讯是交互方式处理串口事务的一种非常有效的方法,特别适合Windows程序的编写。因此用其实现微机串口的数据通讯相当简单,以很少的程序代码就可以轻松实现串口的访问和数据通讯[5]。

2.3 温度数据保存和查询模块

数据保存采用Aeeesss数据库,创建一个数据库tdata.mdb和一张temp表,表中包括存放温度数据和日期时间的10个字段,通过ADO控件来实现数据的保存,控件与Access数据库的连接数据显示采用DataGrid控件,可以显示数据库中的所有字段和记录。

Private Sub Form_Load()

Dim strconn As String

strconn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&App.Path&"\tdata.mdb"

Adodc1.ConnectionString=strconn

'temp为数据库里的一个表

Adodc1.RecordSource="temp"

Adodc1.Refresh

Timer2.Enabled=True

End Sub

利用SQL语言可以对数据进行各种查询。如查询某一时间段内的温度值或者查询某一时刻所有监测点的温度值。

查询代码如下:

Private Sub Command1_Click()

Dim stQ As String,date1 As Date, date2 As Date

date1=CDate(Txtbegin.Text)

date2=CDate(Txtend.Text)

strQ="select*from temp where tdate>=date1 and tdate

Adodc1.RecordSource=strQ

Adodcl.Refresh

For i=0 To 9

txtdata(i).Text= Adodc1.Recordset.Fields(i)

Next i

EndSub

2.4 温度数据趋势图模块

温度趋势图窗体利用VB功能强大的Mschart控制显示某个时间或某个时间段各监测点的温度变化实时曲线,采用不同的线形和颜色加以区分。除显示实际运行数据外,还可以加入期望值曲线。趋势图曲线以24h为一时间坐标单位,便于操作人员比较。趋势图可以通过前移后移按钮来选择所要观察的时间趋势。

3 结束语

温度采集监测软件系统设计所使用的MSCOMM控件,以属性、方法、事件的形式为应用程序提供操作串行口的作用,而不必在软件代码中直接与RS-232硬件接口打交道,使得软件编制的难度和复杂程度大大降低,而可靠性大幅度提高。

本系统实现了温度数据的实时采集、显示、存储以及温度趋势图和报警部分的设计,便于直观地观察温度变化和数据处理。界面操作简单实用,可以同时挂载更多的温度监测节点,该系统可容易的进行扩展,而不必担心增加上位机的负担。同时,利用桌面数据库使得整个系统可以广泛应用于冷库测温、粮库测温、中央空调测温等多点温度测量场所。

参考文献:

[1]王兴宇,袁伟青.基于AT89S51单片机控制的新型温度采集监控系统[J].农机化研究,2010(09).

[2]董慧敏,朱智民.多点温度检测系统电路设计[J].漂河职业技术学院学报,2007(03).

[3]赵忠波,巢丽萍,江.基于VB的分布式监控系统MODBUS通信设计[J].自动化技术与应用,2006(12).

[4]方景杰,傅成华,唐建国.智能温度检测系统的设计[J].中国西部科技杂志,2009.

[5]张东庆,朱虹.基于单片机的测温电路设计[J].科技视界,2012(16).

作者简介:王丽平(1974-),女,吉林永吉人,教师,讲师,硕士,研究方向:计算机应用。

监控软件篇10

关键词 软件项目管理;成本监控;挣值法

中图分类号TP31 文献标识码A 文章编号 1674-6708(2011)42-0219-02

0 引言

1967年美国国防部开发了挣值法并成功地将其应用于国防工程中。并逐步获得广泛应用。挣值法又称为赢得值法或偏差分析法。挣值分析法是在工程项目实施中使用较多的一种方法,是对项目进度和成本进行综合控制的一种有效方法。其基本要素是用货币量代替工程量来测量工程的进度,它不以投入资金的多少来反映工程的进展,而是以资金已经转化为工程成果的量来衡量,是一种完整和有效的工程项目监控指标和方法。

1 挣值法

1.1 挣值法原理

挣值方法是项目管理领域中一种成熟有效的项目监控方法,其主要目的是对项目的成本进行监督。挣值法的基本原理就是在偏差分析的基础上,引进一个中间变量,即“挣值”来分析项目进度和成本。挣值法的核心是将项目在任一时间的计划指标,完成状况和资源耗费综合度量。将进度转化为货币,或人工时,工程量。

1.2 挣值法的3个基本参数

1)累计计划成本额(计划工作量的预算费用)。某一时点应当完成的工作所需投入资金或花费成本的累计值。它等于计划工程量与预算单价的乘积之和。该值是衡量工程进度和工程费用的一个标尺或基准。BCWS也称PV(计划成本)或CBC。

TN

CBC=∑∑Rbn(t)*Qsn(t)

t=1 n=1

其中,Rb代表预算单价;Qs代表计划工程量;n代表某一预算项;n代表预算项数;t代表时段;T代表当前时段。CBC反映了到某期为止按计划进度完成的工程预算值。它将作为项目成本、进度绩效的基准。

2)实际成本额(已完成工作量的实际费用):某一时点已完成的实际工作所花费的成本总金额。ACWP主要是反映项目执行的实际消耗指标。它等于已完工程量与实际支付单价的乘积之和。ACWP也称CAC(实际值)。

TN

CAC=∑ ∑Rcn(t)*Qpn(t)

t=1 n=1

其中,Rc代表实际支付单价;Qp代表已完工程量;n代表某一完成项;n代表完成项数;t代表时段;T代表当前时段。

3)挣值(已完工作量的预算成本)。某一时点已经完成的工作所需投入资金的累计值。即是指项目实施过程中某阶段按实际完成工作量及按预算定额计算出来的费用,它等于已完工程量与预算单价的乘积之和.它反映了满足质量标准的工程实际进度和工作绩效,体现了投资额到工程成果的转化。BCWP也称CEV。

TN

CEV=∑ ∑Rbn(t)*Qpn(t)

t=1 n=1

其中,Rb代表预算单价;Qp代表已完成工程量;n代表某一完成项;n代表完成项数;t代表时段;T代表当前时段。

1.3 挣值分析法的4个评价指标

1)项目成本差异(CV)的计算公式

CV=BCWP-ACWP CV>0是有利的,表示实际消耗费用低于预算值,表示有节余或效率高;=0是按计划完成,表示项目按计划执行;

2)项目进度差异(SV)的计算公式

SV=BCWP-BCWS SV>0是有利的,表示进度提前;=0是按计划完成,表明进度按计划执行;

3)成本绩效指数(CPI)的计算公式

CPI= BCWP/ ACWP 。已完成作业量的实际成本与预算成本的相对关系。它衡量的是正在进行的项目的成本效率。

CPI>1是有利的,表示低于预算;=1是按计划完成,表示实际费用与预算费用吻合,表明项目费用按计划进行;

4)进度执行指标(SPI)的计算公式 :SPI=BCWP/BCWS

当SPI>1,是有利的,表示进度提起,即实际进度比计划进度快;

当SPI

当SPI=1,是按计划完成,表示实际进度等于计划进度。

2 挣值(Eamedvalue)法在软件项目成本管理中的具体应用步骤

使用赢得值法进行成本、进度综合控制,必须定期监控前面提到的3个参数和4个评价指标。具体步骤如下:

1)项目预算和计划

首先要制订详细的项目预算,把预算分解到每个工作包,尽量分解到详细的工作量层次,为每个分项工程建立总预算成本TBC。第二步是将每一TBC分配到各分项工作包的整个工期中去。当每一分项工程所需完成的工程量分配到工期的每个区间后,就能确定何时需有多少预算。这一数字通过将过去每期预算成本累加得出,即累计计划预算成本CBC。

2)收集实际成本

项目执行过程中,对已发生成本进行汇总,即累计已完工程量与合同单价之积,就形成了累计实际成本CAC。

3)计算挣值

如前所述,仅监控以上两个参数并不能准确地估计项目的状况,有时甚至会导致错误的结论和决策。挣值是整个项目期间必须确定的重要参数。对项目每期已完工程量与预算单价之积进行累计,即可确定累计赢得值CEV。

4)成本/进度绩效

利用前面提到的四个评价指标即可以比较分析项目的成本/进度绩效和状况。

5)成本/进度控制

要做好成本/综合控制,应十分关注CPI或CV的走势,CPI小于1或逐渐变小、CV为负且绝对值越大时,就应该及时制定纠偏措施并加以实施。

3 实例应用

一个OA项目,项目成员10人,开发期间估计为30天。

预算评价每人日成本: 住宿+餐饮 +交通 + 薪水… =500。

预算每日成本 5 000,总预算为 150 000。

到第10天,做一次项目状态评估:

实际上只完成了应该在第8天完成的工作,总共花费了 45 000。

分析:

BCWS = 50 000

BCWP = 40 000

ACWP = 45 000

SV = -10 000

CV = - 5 000

结论: 该项目延期,并且超支了。

4 结论

挣值法是软件项目成本、进度综合度量和监控的有效方法。通过对四大指标和三个参数的及时监控分析,能准确掌握软件项目的成本、进度状况和趋势,进而采取纠偏措施使项目能控制在基准范围内。