技术分享 基于UML时序图的网络视频监控系统如何实现

本节向大家介绍一下UML时序图的应用,相信通过本节基于UML时序图的网络视频监控系统介绍你对UML时序图的作用有清晰的认识,下面让我们一起来看一下UML时序图的应用吧。

基于UML时序图的网络视频监控系统

UML是Unified ModelingLanguage 的简称,是00P(Object-Oriented programming面向对象编程)技术及至所成,可用于确定、展示和记录软件系统,是一种便于软件系统规约化、可视化的构造及建模标识。而其中的图形标记,尤其适用与面向对象的软件设计。

视频监控是楼宇安全防范系统的一个重要组成部分。随着计算机网络布线已深入到各种楼宇建设之中,如果通过计算机网络(包括LAN和WAN)连接位于不同地点的多个监控小系统,这样无需敷设专门线路,仅凭借已有的LAN和WAN,使得任意一台赋予权限的主机都可以游刃有余地在网上采集现场的监控画面,从而实现了远程网络视频监控。

运用UML的软件开发技术,我们可以把模块与实际应用功能紧密联系起来。对于视频监控这样的具体设计,我们可以用UML特有的图形标识将其中的各个功能模块化,形成相应的结构型语言,以便通过设计出的功能模块与代码之间的映射关系描述出最终的软件代码框架,同时确保代码改进时模块也可以随之更新。

UML的基本原理

UML建模机制描述

UML有静态和动态两种分析方法和建模机制。静态建模分析主要通过类图、对象图、用例图等来描述,一般用于系统的核心模块设计;动态建模通过合作图、状态图、活动图、时序图来表述,可以用来描述系统对象间的关系模式。

动态建模机制中的UML时序图

现在让我们着重谈谈动态建模机制中的时序图(sequencediagram)。UML时序图是一种交互图,时序图的重点是标记出某个行为的对象类和这些对象类之间所传递的消息及其时间顺序。另外时序图允许直观地表示出对象的生存期,在生存期内,对象可以对输入消息做出响应,并且可以发送消息。正是对象生存期的引入,时序图具备了时间顺序的概念,从而可以清晰地表示出对象在其生存期的某一个时刻的动态行为。这种时间概念的精确性使时序图在描述对象动态行为的时间特性方面具备了卓越的能力。

UML时序图是一个二维图形。一维处于水平方向表示对象;另一维处于垂直方向表示对象的生存期,因而可看成是时间轴。在一个对象图中,所有的对象将从左到右排开,而每个对象的生存期就犹如一条生命线。只要对象没有被撤消,这条生命线就可以从上至下延伸,如图1所示。

技术分享 基于UML时序图的网络视频监控系统如何实现


视频监控设计
视频监控网络框架

凭借已有的计算机网络,我们设计一个基于组播技术的刚络视频监控系统方案原理图,如图2所示。从系统结构上看,该系统主要有两大部分:视频服务器和客户机端,他们之间依靠IP组播网络连接。在网络上任何一个客户机端都能看见视频服务器上视频信号(一点对多点的组播模式。当然采用多点对多点的组播传输模式,还可以看见其他站点的视频信号)。客户机端还必须接受具有上控机房的控制命令,执行相关的监控动作。该临控系统中还要设计出对现场监控能主动做出预先或滞后处理的模块。

技术分享 基于UML时序图的网络视频监控系统如何实现

在通信阶段,视频服务器与客户机端可以采用简单而可靠的通信方式如TCP,进行登录并认证身份,一旦确认客户端PC的有效身份后,视频服务器与客户机端之间通信进人初始化阶段;在初始化阶段,视频服务器将依据安全策略和通信策略动态产生决策,去影响客户机端;在这些一系列的动态交互结束后,系统进入组播通信阶段,主控机房通过组播通信线程来接受和发送视频信号。

软件平台的建模

根据客户端PC和主控机房的视频服务器直接通信的特点,可对网络视频监控系统作动态建模。网3就是以UML时序图来描述此系统的软件需求。本视频监控网络采用的是客户机/服务器(C/S)刚络通信模式,由客户机端向服务器提出请求,服务器对请求做出确认并执行相应的任务。例如向客户机端发送组播地址,建立连接后计算机用户就可以在客户终端监控各个远程监测点,客户终端接受远程监控点传来的视频数据,并可以向视频服务器传送控制命令,视频服务器根据用户要求向当前设备发出控制命令,从而实现网络远程监控。

技术分享 基于UML时序图的网络视频监控系统如何实现

在各对象相互通信时,个人首先登录到客户机端(当然登录本身包含诸多时序事件,例如用户与客广机端之间输入户名、问口令、输入口令,客户机端与服务器之间查证口令、判断口令等。由于篇幅所限,图3没标出);个人登录事件的后续事件是,客户机向视频服务器发送连接请求,得到服务器允许后,客户机开始发送相关数据,服务器将该数据转交后台处理,并发给服务器下一个事件动作的指令,例如发送组播地址;调用WSASendTo()函数使得服务器向客户机端通过IP组播网络发送视频数据;最后调用 SARecvFrom()函数使得客户机开始接受视频数据;启动播放线程。

相关推荐