基于安防中间件的安防软件集成平台的研究1前言安防软件的价值已被越来越多的用户认可,却又成为了安防系统的“焦点”,也就是安防软件不能满足用户需求的矛盾越来越突出,市场在强烈地呼唤优秀的安防软件。从安防软件开发者的角度来看,大多数软件开发商的实力稍显薄弱,在日趋多样化的客户需求面前,软件开发人员疲于应付用户需求,大量的无价值研发工作重复进行,软件缺乏系统的规划,产品的质量自然也得不到保障。在市场诱惑面前,设备提供商、系统集成商(部分集成商)、软件开发商都在开发完整的安防系统软件套件,软件行业需要软件人才的培养,行业经验的积累,这样极大分散了这些厂商的精力,作坊式的开发模式注定不能开发出优秀的安防软件。从安防市场应用的角度来看,随着构建大安防应用如火如荼地展开,安防系统也朝着网络化、数字化、智能化的方向发展,多设备接入、多网络适应、多系统融合、多业务整合是安防软件集成平台最基本的要求。目前市场上充斥着各种各样大型安防软件集成平台,这些良莠不齐的安防软件依赖各自“关系渠道”得以生存,性能低劣的安防软件不断地打击着用户的使用信心。大型安防软件集成平台软件开发的门槛较高,有能力开发高质量的安防软件的企业为数很少,安防软件不能形成群体突破,阻碍了安防行业的开拓和发展。如何改善安防软件这种低层次的竞争局面,通过安防软件使行业的发展更加健康,进而提升整个安防行业的价值呢?从软件开发的角度来看,当前各种软件体系构架层出不穷,需要引入一种标准化、组件化、开放式、可重用的产品应用和开发模式,这种软件体系构架应具备的下列特征:1、能接入不同厂家、不同类型的设备,如:不同厂家的DVR、报警系统、门禁系统等。2、能够整合所有安防应用,如:具备整合报警系统、门禁系统、监控系统、电网系统等。3、能够灵活地进行各种功能模块的组合,满足用户个性化需求。4、能够适用于适应多种网络环境的分布式体系架构。5、能够大幅降低安防软件的开发难度和工作量。6、能够减少用户的维护成本,方便系统升级。那么,什么样的软件体系构架或软件设计思想具有上述特征呢?我们经过长期的安防软件开发经验积累,以及安防业务的沉淀,我们慎重的提出了安防中间件开发新概念,并将此付诸实现,实现了基于安防中间件的智能融合预警通信平台——OpenVone。2OpenVone为安防软件插上腾飞的翅膀OpenVone设计思想源于软件中间件(middleware)的概念,是介于硬件设备与安防应用业务之间的通用服务,是构建安防软件集成平台的基础组件,是对安防行业应用高度抽象的一种独立运行软件或服务程序。SOA(ServiceOrientedArchitecture,面向服务的体系架构)已经公认是优秀的IT构架之一,SOA落实到具体的软件产品就是中间件,中间件是SOA构架的具体实现,OpenVone是基于SOA构架,根据安防行业的特点及发展趋势而度身定做的中间件软件,所以说,OpenVone具有SOA的优秀“血脉”,在应对日益复杂的安防系统时具有先天优势。OpenVone从下面几个方面解决了安防软件面临的核心问题:2.1搭建式——“随需而动”满足用户需求用户需求总是千变万化,满足用户需求是安防软件永远追求的目标之一,OpenVone使得安防软件具备了这种可定制性。通过组件化设计来满足用户的个性化需求,同时在基于SOA基础上,所有的应用组件化、模块标准化,犹如积木玩具一样,用户可以按照自己的构想搭建成自己想要的安防系统。正是这种“搭建式”设计理念最大程度的满足了用户需求。2.2标准化——让设备接入易如反掌安防系统一般需要集成多种不同类型的硬件设备,绝大部分的硬件设备都没有统一的接口标准,软件开发人员为了实现这些设备的集成而费尽心思,仍无法达到用户期望的目标。OpenVone通过标准化的定义,实现了系统及信息的互联互通,从业务标准化、接口标准化、协议标准化、网络通信标准化、技术标准化这几个方面建立了大量的开放标准和协议,同时实现了安防领域通用的标准协议,如H323协议、H.264、Mpeg4、Mpeg2、SIP、RTSP等。正是这种“标准化”设计理念让设备的接入易如反掌。2.3开放性——以业务为中心整合安防应用随着安防系统朝着网络化、数字化、智能化的方向发展,安防软件需要整合所有的安防应用,如报警系统、门禁系统、巡更系统、车牌识别、语音对讲系统、考勤系统、视频智能分析、周界防范系统等,传统的安防软件套件已不能满足对这些系统整合的需求。OpenVone以实现安防业务为中心,构建业务集成的开放式技术平台,实现了业务扩展的开放性、深度开发的开放性、业务整合的开放性,通过对安防业务仔细规划与高度抽象,实现了针对安防行业的业务中间件,从而达到以业务为核心,通过业务选择技术,避免技术限制业务的问题。正是这种“开放性”设计理念使得安防软件的开发可以分工、合作。2.4组件化——软件重用提升开发效率软件重用是解决软件危机的重要手段,任何一款软件产品都需要不断维护、升级,每一款软件都会给多个用户使用,如果软件构架设计不够优良,每一个用户需求都要耗费开发人员九牛二虎之力。OpenVone采用组件化设计方式,所有组件之间松耦合,系统的开发和维护变得非常轻松,所有中间件都是以提供服务为核心,这样所有中间件都可重用。3OpenVone对安防软件的开发方式的影响3.1OpenVone的体系构架OpenVone由四个部分组成:安防系统管理门户、中间件资源管理中心、安防中间件、可视化开发工具,系统构架如下图所示:3.1.1中间件资源管理中心中间件资源管理中心是中间件动态拼装、动态运行、动态管理的技术基础平台,它将中间件的不同功能单元,通过统一规范的接口联系起来。接口采用类似UDDI语言进行定义,独立于具体实现服务的硬件平台、操作系统和编程语言,使得所有中间件都可以使用统一和标准的方式进行通信。中间件资源管理中心对中间件进行注册、调用、运行时管理,与具体业务和服务无关,是安防中间件的“操作系统”。3.1.2可视化开发工具中间件资源管理中心构建了中间件的运行平台,那么中间件提供的服务或功能单元是如何进行组合呢?可视化开发工具实现了业务流程自定义、功能任意搭配、设备任意组合、系统任意部署,包括用户界面都可以任意设计。通过可视化开发工具,我们可以任意的“开发”不同规模,不同用户需求的安防软件。3.1.3安防管理系统门户安防管理系统门户是OpenVone的用户交换界面,是安防管理系统功能入口。3.1.4安防中间件安防中间件是所有安防服务和安防业务的具体实现,是安防软件集成平台的核心,包括:网络通信中间件、消息队列中间件、适配器服务中间件、服务总线中间件、任务引擎中间件、业务服务中间件。网络通信中间件:网络通信中间件为安防软件提供了信息传输的高速公路,所有设备的信息交换有赖于通信网络的数据可靠传输;构建基于局域网或互联网的分布式应用时,开发人员不需要关心系统的网络链接与管理,就能实现大规模的分布式应用系统的开发。网络通信中间件实现了对多种网络环境的适应,能支持LAN、WAN、ADSL、VPN等各种有线/无线网络传输介质,适应各种带宽条件。通过CDMA/GPRS数据传输链路,可传输业务数据信息和音视频数据。能支持TCP/UDP/组播/RTP等传输协议。消息队列中间件:消息队列采用基于TCP/IP协议的持久性分布式消息队列,是一种异步通讯模型,利用异步通讯的非阻断性,即进程可以继续运行而不必被迫等待某个事件发生,可以并发地处理多个请求,提高系统的运行效率。持久性消息队列保证消息的可靠交付。适配器服务中间件:适配器服务中间件有设备接入适配器、数据交换适配器,设备接入适配器实现了对不同类型、不同厂家、不同接口设备的信息和数据的获取,数据交换适配器自动处理安防中间件、数据库等应用程序接口,并提供应用数据、数据库与信息总线上的数据的双向转换。服务总线中间件:服务总线中间件提供了报警与事件管理服务、录像存储与检索服务、视频交换与转发服务、设备管理与控制服务、数据存储与访问服务、用户与权限管理服务、系统运行监控服务、系统维护与管理服务。任务引擎中间件:任务引擎中间件是任务执行的驱动器,完成安防软件内部各种业务流程的控制,支持工作流组态。任务引擎中间件对管理模式、业务流程、控制方式、控制协议等进行设置和修改,生成任意复杂的任务和报警控制流程。安防软件需具备报警处理流程、预警处理流程、应急预案处理流程等相关的安防业务流程,每个安防系统对预警、报警的处理都千差万别,如监狱安防管理系统、金融安防管理系统、平安城市都有非常明显的业务差异,通过任务引擎即可定制满足适合用户的安防业务管理流程。业务服务中间件:业务服务中间件是对安防业务的具体实现,实现了安防行业的完整功能。如:图像显示控制、电视墙显示控制、视频录像管理、报警联动、报警信息管理、设备管理、视频智能分析、电子地图、门禁控制、报警控制等,这些基本功能基本能满足覆盖安防行业的业务。3.2OpenVone改变了安防软件开发方式当前,安防软件的应用从提出需求到开发部署的周期越来越短,而且还有面对客户随时提出的各种需求变化。安防软件帮助用户提高工作效率的同时,安防软件自身却大部分仍处于“手工行业”,采用的传统软件编码开发方式,快速开发企业级安防应用软件的愿望难以实现,开发和需求始终处于脱节状态。OpenVone是通过什么手段改变了安防软件开发方式?3.2.1“因需而变”的松耦合技术构架在OpenVone中,安防软件是由安防中间件组合而成的系统,安防中间件之间松散耦合、并使用独立的标准接口,藉此让安防管理系统变得灵活。OpenVone非常注重“因需而变”,中间件的开放性和灵活性让软件架构变得更加松耦合,更能有效满足安防应用中不断增长、变化的需求,标准化生产同时也意味着减低了成本、提高了软件实施效率和降低了服务的难度,在满足应用的同时也大幅提高了标准化程度。当面对安防系统不断变化的需求时,以前单一应用的安防管理平台软件,套件化、定制化、逐个对象实现的方式,已经跟不上需求变化的节奏了。OpenVone从技术体系和用户应用的角度诠释了“因需而变”,产品因用户需求而变,技术因用户业务而变,,以安防业务驱动为导向,快速构架安防软件。3.2.2组件化最大限度的复用组件许多软件项目的开发都已证明,最大程度的复用已有软件,是提高软件开发效率,缩短开发周期,降低开发成本,并改善软件质量的有效手段。组件化开发技术让软件回归了简洁表达,能够轻而易举的实现像制造行业一样的标准化。OpenVone大量采取构件/组件和组件技术,正如统一规格、统一标准的机器零部件,只需按要求简单的拼装即能成为完整的机械设备一样。同时,基于构件/组件/组件的复用则使人们在软件开发中不必再“从零开始”,而且组件通过多次复用后质量和可靠性越来越高。组件化和标准化开发技术使安防厂商共同参与安防软件开发成为可能,硬件厂商开发设备接入中间件、门禁厂商开发门禁接入中间件、报警厂商开发报警系统中间件、第三方软件厂商开发安防管理系统中间件等,这样所有厂商都在各自擅长的领域发挥自己的特长,同过基于安防中间件的安防软件集成平台的整合,最终构建成为综合安防管理平台,同时也形成了安防厂商之间的分工、合作。3.2.3搭建式让软件开发更加敏捷敏捷开发有效提高了软件开发效率,搭建式(配置化)的设计理念,已成了敏捷开发的首选。由于OpenVone高度封装了大量成熟而实用的应用组件、模块,并内置功能强大、成熟的服务软件和安防应用软件,因此使得开发人员在进行软件开发过程中,绝大多数开发与应用无需太多的编码,只需按照用户需求选择相应的组件或模块进行“可视化”配置,最后生成一套满足用户个性需求的安防软件,正如统一规格、统一标准的机器零部件,只需按要求简单的拼装即能成为完整的机械设备一样,安防软件的开发也如同采用安防中间件(标准件)组合搭建而成,因而大大提高了软件开发的效率,降低了软件开发与应用的难度。4OpenVone价值分析4.1系统集成商/工程商对于系统集成商,最关心的是平台软件是否能提供符合用户需求的个性化解决方