多级视频监控平台网络配置管理的设计与实现

 以前的视频监控系统通常仅有几十个点或者几百个点,而目前行业的视频监控系统应用规模越来越大,动辄有覆盖一个城市、甚至覆盖全国的需求。面对如此多的平台节点,而每一个平台节点下又连接了很多的资源,这些资源都以数据的形式保存在本地平台的数据库或上级平台的数据库服务器中,那么,怎样能快速有效地对如此多的数据进行配置管理,是视频监控系统工程人员亟待解决的问题。
  随着企业信息化的进程与企业业务领域的扩展不断推进,分布式数据库应用的日趋广泛,进行分布式数据库数据同步技术的研究具有重要的意义。数据同步通过对处于分布式数据库系统中各个站点上的数据进行同步来达到对数据分散存放的目的,这种存放可以使用户透明地处理和使用数据,大大增加了站点的自治性,且这些副本大大减少了由于自然或其他原因导致的数据丢失等重大故障。
  1网络配置与管理系统实现
   1.1多级平台总体结构
  视频监控平台采用三层架构的方式,域管理服务器DS(Domain)为顶级平台,子域管理服务器SDS(Sub Domain Service)为二级平台,网管控制器MU(Matrix United-Protocol)为最底层的平台,如图1所示。
  MU可以简单的理解为一个协议转换器,即可以兼容各种矩阵的控制协议,使其现实与外界互通。MU软件平台为嵌入式Linux操作系统。通过MU控制模拟矩阵,从而实现将模拟矩阵监控系统纳入IP网络,从而实现统一的监控管理。MU以嵌入型数据库存储数据。
  系统环境为:一个中心,两个分中心。中心设一个域服务器,两个分中心各一台子域服务器,各有若干台MU,在同一个IP网上。
  每个中心各一台MAX矩阵,用于连接监视器、摄像头、编×××等设备。三台Max矩阵通过视频干线相连,(双向各两路视频干线),中心4台监视器,分中心各2台监视器。每台矩阵配置4路视频输入。
  三台MU分别通过串口与MAX矩阵相连,用于管理本地用户和资源。域服务器上存储所有的用户与资源。每个MU上接至少一个键盘,可以从键盘上登录。
  从矩阵输出4路至编码器,编码器数字化后经存储服务器存储。4路视频到海康DVR进行存储,通过客户端可以查询存储服务器上的录像、同时也能访问海康DVR上存储的录像,如图2。
  图2物理结构
  对于这么多资源类型,如何唯一有序的区别每一个资源,我们采用资源全局唯一编号的方式.
  所有的资源有一个内部编号,这个内部编号是全局唯一确定的4个字节的数值,给节点划分区间,4个字节的前14位表示节点编号,后18位表示资源编号。节点数量可以达到16384,每个节点的资源数量可以达到262144。
  【计算方法】
  编号起始值=(节点编号-1)×262144+(资源类型起始序号-1)×2048
  根据公式可算出每个资源类型的起始值,每次新增一个资源在上依次的最大值上递增。资源类型起始序号从资源类型定义表中获得。资源除了全局编号,还有一个本地编号,如:摄像机编号、监视器编号、矩阵的节点号等。1.2资源配置模块设计与实现
  视频监控网络配置与管理系统采用图形用户界面操作方式实现数据的配置和传输操作管理。可以将其为分两大模块:一是网络设备资源数据配置,二是通过数据同步将顶级节点配置的资源数据完全同步到下级节点或底级节点.其中资源数据配置是通过界面操作将数据发送给Oracle数据库进行保存,和通常的MIS系统一样。而数据的同步需要采用数据同步技术通过一定条件得到实现。
  针对“资源配置”这项整个系统的数据核心,采用树型分类的方式进行配置,且数据库的设计也是照节点来进行资源的划分。所以最终采用节点为对象来进行用户信息、用户组信息、服务器信息、矩阵信息、摄像机信息、编×××信息、监视器信息、编×××信息、干线信息、DVR信息、设备组信息以及摄像机监视器的资源映射的配置。如图3所示。
  图3配置界面设计图
  1.3数据同步模块实现
  当多级平台状态下,包括MU、SDS、DS的服务器节点数众多,不可能针对每一个节点进行配置,所以我们需要按照自顶向下的方式进行数据同步,只要在最顶级节点将所有的资源数据等配置完毕,就可以按照完全数据同步的策略将其同步到指定节点,其同步架构示意图如图1。
  1.3.1影响分布式数据库同步性能的因素
  数据同步的服务器分布在不同的站点,如何有效、高效率地并且保证数据的准确无误是数据同步研究的关键。
  考察一个数据库同步性能的重要因素就是完成一次数据的同步需要的时间Tmax,下面以最极端的情况来分析哪些因素对Tmax有关,认为参与同步的服务器间互相间都可以进行同步来考虑。参与同步的服务器以V1、V2、V3……Vn来标示,服务器间的链路图如图4所示。Wij代表服务器Vi到Vj的网络带宽,如图5所示为服务器间的网络带宽矩阵.Kij表示从Vi服务器一次同步到Vi服务器的数据大小(单位bit),如图6所示为服务器间数据同步率矩阵。
  那么我们可以得出服务器Vi到Vj进行一次数据同步所需要的时间为
  Tij=Kij/Wij
  那么进行一次数据同步所需的最大时间为
  Tmax=(t11、t12…t1n,t21、t22…t2n,……,tn1、tn2…tnn)
  Tmax表示所有tij中的最大值,为了对Tmax进行分析,从定性的角度,分析满足一定的条件下,影响Tmax的因素.
  图8T与n的关系图
  根据以上整理的分析,可以看出主要有3个方面影响数据同步的性能:需要同步的服务器的个数、衡量网络性能的网络带宽B以及每次同步的数据量Kij,在正常状态下,网络的性能认为是稳定的,那么主要从另两个方面入手来提高性能。
  由上面的公式(3)可以看出:第一,可以通过控制服务器的数目来提高性能,前提是服务器数目在允许的范围之内;第二,减小数据同步率Kij,但是不能太小,太小则需要耗费服务器处理数据的时间,所以应在服务器处理能力允许范围内来调整Kij。并且后者是影响性能的主要因素。
  1.3.2实现过程
  MU的数据同步,从SDS或DS获得完整的数据库文件,更新本地的数据库。同步采用ftp服务完成,即在DS、SDS或者网管服务器上开通ftp server,MU作为ftp client,从上级获取完整的数据库文件。
  单独实现一个用于将数据导出的工具,在上级服务器上预先准备一个空的数据库文件(包含了表、视图或过程),然后导出所需节点的具体数据,插入到这个数据库中,比如准备一个MUdb的空数据库,再插入某个MU的数据,生成这个节点的数据库文件。
  在上级的ftp服务上,建立各节点的目录,不同节点的数据库文件放在不同的目录下,下级获取文件时,需要指定节点和文件。
  完整的同步策略还需要建立同步的日志,记录各节点同步的时间、同步的结果。在mu这一级,可以增加主动同步的接口,通过客户端或网管来控制,发送消息给mu,通知mu从上级服务器那里下载数据。Mu同步下载完数据后,发送确认结果给上级服务器,上级服务器确认后,记录日志。
  执行方式采用系统内部执行同步操作:用户在DS上配置完数据后,可以通过客户端或网管工具通知DS开始本地创建同步数据库文件。当创建完成之后,DS会将同步时间、同步信息写入同步表中,并将同步标志设置成1,MU或SDS采用每隔一段时间去获取标志,当获取标志1后,内部调用SynTool工具,执行同步,完成后,通知DS,DS更新同步表,将同步标志设置成0。
  创建同步数据文件过程:DS端启动数据同步工具,执行SynTool -c -n 100 -d chao/chao–t 1
  参数描述:
  c表示创建同步数据文件。
  n表示创建指定节点的同步数据文件。
  d表示连接的数据用户名和密码。
  t表示要创建的数据库文件的当前节点服务器的类型,1:MU 2:SDS。
  注:每个参数之间不需要遵循任何顺序。如果不加-n参数表示创建当前库里所有节点的同步数据文件。如果不加-l参数,表示SynTool所在的当前目录下生成数据库文件。在执行数据同步之前,同步数据工具目录下应该具有oracle和sliqte最原始的建库脚本(基表)和数据库文件,同步是在表结构没有改变的前提下。
  生成同步文件:数据同步工具首先根据节点编号,在路径建立目录,然后通过oracl数据库筛选出对应节点需要的数据,然后在对应目录下(目录名称以节点名称命名)创建createDB.sql文件,将所需要数据转换成insert语句放入脚本中,同时在sqlite中执行这些插入语句,生成新的数据库文件,如果之前已有同步文件,将文件改名。
  正式执行同步数据:执行SynTool -s–i 192.168.1.70–u oracle–p oracle -f MUdb800–t 1–d test/test–n 800
  参数描述:
  s表示同步DS数据。
  i FTP的IP地址。
  f需要获取的文件名。
  u连接FTP的用户名。
  p连接FTP的密码。
  t表示要创建的数据库文件的当前节点服务器的类型,1:MU 2:SDS。
  d表示连接的数据库用户名和密码。
  注:-d参数表示连接的当前数据库用户名和密码,当-t参数为2时(SDS),同步工具将通过ftp获取insert.sql脚本,然后通过sql? plus执行脚本,与-t参数为1时(MU)的直接获取数据库文件是有区别的。
  同步DS数据:用户在SDS或MU上手动执行SynTool,MU或SDS根据自己的节点编号,获取FTP目录和同步文件名,通过shell脚本,建立FTP连接,获取指定的文件,改名备份之前已有的数据文件,
  文件和路径命名规则:创建的数据库文件的路径,所有创建的文件都放置在ftp:\db\下,并且根据节点编号创建目录,将文件放置在ftp:\db\NodEiD\NodeID.db。
  创建的数据库文件以节点编号命名,eg:800.db
  当生成新的同步文件后,将原有的改名备份,改名规则为NodeID_年月日时分秒.db,eg:800_20070614121212.db。
  MU或SDS获取到文件后,将以前的文件改名备份,改名规则为数据文件名_年月日时分秒,eg:Mudb_20070614121212。
  Shell脚本:MU或SDS通过执行Shell脚本从FTP服务器上获取指定同步文件。如图9所示。
  2总结
  本文从整体解析了视频监控网络管理,并且对多级管理的中心管理DS的任务进行了分类,从而为资源的所属关系及权限的分配有了依据。并且从实际资源配置的实现将有形的设备资源抽象并统一到网络管理系统之中。
  对资源配置模块的实现作出了详尽的描述,为以后对其数据进行处理做好了准备,并且对顶级节点的数据同步进行了详细的描述,包括可能在同步过程中出现的问题。同时针对现场数据的配置出现的数据库表空间不足问题,给予了详细的描述和解答。