新闻中心

视频监控管理平台软件开发的几点启示(上)

  在开发和设计安防监控平台的早期,就要选择和确定平台的一些基础架构。是一个集中式的系统?还是分布式系统?是只在Windows上开发?还是要支持Linux?本文不讨论集中式系统和分布式系统、Windows和Linux熟优熟劣。但在长期的实践中,可以认识到,基于Linux服务器的分布式系统是一个能满足安防越来越大的联网规模、越来越多的异质设备接入等复杂需求的系统。最终根据用户需求,将系统架构确定为可以支持不同操作系统和硬件的分布式局部自治系统。

  具备局部自治功能的分布式系统中,每个局部都是一个独立的子系统,其使用和稳定性不受其它子系统的约束和影响,同时这个子系统又能以合适的组网方式联结到上级系统,这样就形成了一个更大规模的系统。其实,这里面的原理跟互联网是类似的,因此就提出了“构筑视频互联网” 的观点。

  互联网的一个重要基础是TCP/IP协议簇,类似的,在构筑视频互联网时,也是需要联网协议的。在平台软件的联网协议中,一个基本的概念是干线,干线和干线管理是平台软件重要的内容之一,也是平台软件区别于其它的视频监控平台的特色内容之一。

  干线有模拟干线和数字干线之分,模拟干线是节点与节点之间的视频连接线,数字干线是视频服务器之间建立联系的数字通道。通过干线,若干台PVG可以建立各种网络拓扑结构,为多级数字联网、网安全和网络带宽管理提供了有力的保障。

  干线管理的内容有:干线路由选择、复用、抢占及抢占后处理和预留。干线路由选择是指在一个节点上调用其它节点的某路图像的时候,系统将采用什么样的算法来选择最应该经过哪些节点以及哪些干线。干线的复用是指在多个用户在调用同一个摄像机时,后面的用户应该复用已经使用过的干线,而不应该另外再使用一条新的干线。干线的抢占是指当所有的干线都有用户在使用时,系统将采用什么样的算法来抢占新的干线,抢占后处理是指抢占后要友好地通知以前占用该干线的所有用户。干线的预留是指某些干线在配置的时候就专门预留给某些节点,只有这些节点上的用户才能使用预留的干线。预留干线一般应用在特定的场合。

  在一套大型软件的生命过程中,必然会有新需求不断地涌现。有的需求会对原系统的冲击非常大,甚至导致系统的一些关键代码重新开发。如何面对这些大型软件设计和开发过程的通用难题,始终是系统设计的重点和难点。

  为了解决这些问题,在系统的设计中,采用了软件分层设计策略,并且逐步从组件化过渡到服务化。

   基础库层:解决跨平台及一些基本的与具体应用无关的软件问题;

   业务组件层:与业务和具体接入设备相关的功能组件,组件数量越来越多;

  POSA(Pluggable Objects and Services Architecture)正是基于这样的理念设计的一套软件架构。在POSA架构的世界里,一切易变的、需要进化的软件主要是组件。新需求、新设备的接入都体现为实现一个或一组新的组件,使用POSA组件技术,PVG做到了新需求的加入对开发人员仅仅是相加的关系。

  由于组件和它们上下软件层之间的二进制耦合太紧密,一个组件的崩溃会引发整个系统的崩溃,导致整个系统的稳定性下降。解决这个问题有两个办法,一是手动地把不稳定的组件隔离出来,专门为这类组件另外开一个进程,另外一个办法是自动隔离每一个组件,一切以服务为中心,用服务代替组件,这也是软件界流行的SOA的理念。在POSA架构下,开发软件变得更简单,各个服务之间使用标准的松耦合通信协议进行通信,彻底解决了二进制耦合问题,全系统稳定性也不会随着业务的增加变成乘法关系,由于相同服务可用分布式多重部署,全系统可用性完全不会随着系统的复杂性而有所下降。在POSA里,提供了一种标准的描述服务间通信契约的方式,统一按照此契约编写通信程序。同时,为了提高开发效率,POSA提供了一些自动工具来搭建服务程序的框架代码。

  POSA的组件服务化技术,为未来搭建云存储、云计算平台提供了坚实的基础。使用POSA,“视频互联网”、“连接城市中一切可管理的对象”等设想变得清晰起来,不少厂家把这些理想变为现实。

  好的结果跟好的过程是分不开的,要开发出好的平台软件产品,需要有完善的开发管理流程。笔者总结了以下几要点:

  为了满足用户需求,适应针对市场的快速反应,我们开发团队中的各个小组基本都采用了迭代式的敏捷软件开发方法。

  处方式应用文档化的流程是指针对于不同的开发小组、不同的项目、不同的阶段,需要使用不同的文档化的流程,就像医生开处方,需要因人而异、因时而异。

  主管负责的参与民主制是指在开发过程中,小组主管需要在跟开发人员沟通的过程中,要善于且敢于做出相应的决定,需要做决定的时候不要拖延和推迟。

      德赢,德赢vwin,德赢vwin官网




网站地图