视频监控管理平台软件开发的几点启示
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
视频监控管理平台软件开发的几点启示(上)作者:时间:2011-08-09 来源:安防知识网浏览评论推荐给好友我有问题个性化定制关键词:视频监控软件平台
分享到:开心网人人网新浪微博EEPW
微博
支持不同操作系统和硬件的分布式局部自治系统
在开发和设计安防监控平台的早期,就要选择和确定平台的一些基础架构。是一个集中式的系统?还是分布式系统?是只在Windows上开发?还是要支持Linux?本文不讨论集中式系统和分布式系统、Windows和Linux熟优熟劣。但在长期的实践中,可以认识到,基于Linux服务器的分布式系统是一个能满足安防越来越大的联网规模、越来越多的异质设备接入等复杂需求的系统。最终根据用户需求,将系统架构确定为可以支持不同操作系统和硬件的分布式局部自治系统。
具备局部自治功能的分布式系统中,每个局部都是一个独立的子系统,其使用和稳定性不受其它子系统的约束和影响,同时这个子系统又能以合适的组网方式联结到上级系统,这样就形成了一个更大规模的系统。其实,这里面的原理跟互联网是类似的,因此就提出了“构筑视频互联网” 的观点。
互联网的一个重要基础是TCP/IP协议簇,类似的,在构筑视频互联网时,也是需要联网协议的。在平台软件的联网协议中,一个基本的概念是干线,干线和干线管理是平台软件重要的内容之一,也是平台软件区别于其它的视频监控平台的特色内容之一。
干线有模拟干线和数字干线之分,模拟干线是节点与节点之间的视频连接线,数字干线是视频服务器之间建立联系的数字通道。通过干线,若干台PVG可以建立各种网络拓扑结构,为多级数字联网、网安全和网络带宽管理提供了有力的保障。
干线管理的内容有:干线路由选择、复用、抢占及抢占后处理和预留。干线路由选择是指在一个节点上调用其它节点的某路图像的时候,系统将采用什么样的算法来选择最应该经过哪些节点以及哪些干线。干线的复用是指在多个用户在调用同一个摄像机时,后面的用户
应该复用已经使用过的干线,而不应该另外再使用一条新的干线。干线的抢占是指当所有的干线都有用户在使用时,系统将采用什么样的算法来抢占新的干线,抢占后处理是指抢占后要友好地通知以前占用该干线的所有用户。干线的预留是指某些干线在配置的时候就专门预留给某些节点,只有这些节点上的用户才能使用预留的干线。预留干线一般应用在特定的场合。
分层软件设计技术:从组件到服务
在一套大型软件的生命过程中,必然会有新需求不断地涌现。有的需求会对原系统的冲击非常大,甚至导致系统的一些关键代码重新开发。如何面对这些大型软件设计和开发过程的通用难题,始终是系统设计的重点和难点。
为了解决这些问题,在系统的设计中,采用了软件分层设计策略,并且逐步从组件化过渡到服务化。
主要的软件层有:
·基础库层:解决跨平台及一些基本的与具体应用无关的软件问题;
·网络通信层:解决异质网络、异质协议联网问题;
·数据层:解决软件配置,持久化问题;
·业务组件层:与业务和具体接入设备相关的功能组件,组件数量越来越多;
· SDK层:提供服务和接口给应用程序、做二次开发;
·综合应用层:综合应用和功能界面。
POSA(Pluggable Objects and Services Architecture)正是基于这样的理念设计的一套软件架构。在POSA架构的世界里,一切易变的、需要进化的软件主要是组件。新需求、新设备的接入都体现为实现一个或一组新的组件,使用POSA组件技术,PVG做到了新需求的加入对开发人员仅仅是相加的关系。
由于组件和它们上下软件层之间的二进制耦合太紧密,一个组件的崩溃会引发整个系统的崩溃,导致整个系统的稳定性下降。解决这个问题有两个办法,一是手动地把不稳定的组件隔离出来,专门为这类组件另外开一个进程,另外一个办法是自动隔离每一个组件,一切以服务为中心,用服务代替组件,这也是软件界流行的SOA的理念。在POSA架构下,开
发软件变得更简单,各个服务之间使用标准的松耦合通信协议进行通信,彻底解决了二进制耦合问题,全系统稳定性也不会随着业务的增加变成乘法关系,由于相同服务可用分布式多重部署,全系统可用性完全不会随着系统的复杂性而有所下降。在POSA里,提供了一种标准的描述服务间通信契约的方式,统一按照此契约编写通信程序。同时,为了提高开发效率,POSA提供了一些自动工具来搭建服务程序的框架代码。
POSA的组件服务化技术,为未来搭建云存储、云计算平台提供了坚实的基础。使用POSA,“视频互联网”、“连接城市中一切可管理的对象”等设想变得清晰起来,不少厂家把这些理想变为现实。
完善的开发管理流程
好的结果跟好的过程是分不开的,要开发出好的平台软件产品,需要有完善的开发管理流程。笔者总结了以下几要点:
·引入适合每个小组的敏捷软件开发流程;
·处方式应用文档化的流程;
·主管负责的参与民主制;
·合理的信息系统支撑。
为了满足用户需求,适应针对市场的快速反应,我们开发团队中的各个小组基本都采用了迭代式的敏捷软件开发方法。
处方式应用文档化的流程是指针对于不同的开发小组、不同的项目、不同的阶段,需要使用不同的文档化的流程,就像医生开处方,需要因人而异、因时而异。
主管负责的参与民主制是指在开发过程中,小组主管需要在跟开发人员沟通的过程中,要善于且敢于做出相应的决定,需要做决定的时候不要拖延和推迟。
所有这些基于流程的开发工作,都需要合理的信息系统来支撑。
工程项目的广泛实践
平台软件需要在大量不同类型的工程项目中证明平台软件的适用性和稳定性,只有经得起项目考验的平台才是好的平台。
PVG经历了很多项目,大大小小加起来应该有几百个,在这些大型项目中,开始实施时难免会碰到一些困难和以前考虑不周的地方,但是当最后解决了项目中实际的问题时,软件产品就得到了进一步的完善。PVG在项目的广泛实践中积累了很多的知识,获得了很多改进的机会。
本文选择上海金盾工程项目和北京朝阳奥运项目为例来说明和解释PVG的项目实践。
上海金盾工程项目是大型的模拟数字混合系统,可以说是目前中国最大的视频互联网,世博会后,PVG平台接入的摄像机超过12万台,这是PVG实施的典型的大型数模混合项目,这个项目有以下的特点:
·从原有矩阵系统改造,IP联网替代串口联网,几乎没有限制的联网容量;
·支持任意拓扑结构,动态路由选择;
·强大的干线管理功能,满足了干线锁定和最高级用户肯定能调到需要的图像;
·系统的稳定性,每个节点的自稳定性;
·易维护性:新节点的建设不影响原有节点,新节点的加入不需要修改原来系统任何配置,新增摄像机自动可用。
上海金盾工程项目的早期也遇到了一些阻力,因为随着规模的扩大,再加上干线管理的异常复杂,导致有的需求在使用过程中没有得到预期的结果。后来,几乎重写了干线管理相关的代码,最后保证了系统的最核心部分的稳定。
上海金盾工程项目从验收完成到现在,已经过去5年以上的时间了,但该系统依然保持了稳定性和一些技术的领先性。
北京朝阳区奥运项目是一个大型数字系统,系统包含了1个共享平台、45个街乡汇聚平台、33个场馆、接近100个指挥中心、1个公安平台、49个派出所管理了5000路摄像机规模的一个图像信息系统,这个项目的特点如下:
·系统规模大;
·视频专网复杂;