1 引言
智能建筑集成管理系统(以下简称为IBMS)作为一个典型的分布式系统,系统环境复杂,缺乏统一的规范和标准,它涉及到多种平台和多种协议间的通信与联接,需要与第三方应用软件接口。Java 语言是基于网络开发、面向对象的新一代计算机编程语言。它具有对象封装、多态性和继承性等面向对象语言的基本特征,具有跨平台、可移植的特性,支持 Internet/Intranet网络模式下的数据分布与计算分布。由于 Java 所具有的这些功能特点,使其成为实现智能建筑集成管理系统的理想开发语言。
实时数据库RTDB(Real-Time Database)是实时监控软件的核心。实时数据库常常在动态环境下使用,用来监控现实世界对象的状态和发现所关注事件的发生[1]。实时数据库及时准确地获取现场数据是整个控制系统正常工作的基本前提。同时实时数据库子系统是联系图形子系统、历史数据库子系统、报表子系统、报警系统的桥梁和纽带。实时数据库系统结构的规划和管理系统具体的实现方法
是设计组态软件的核心和难点。实时数据库构建的合理性直接影响到整个系统的性能。目前,市场上流行的实时数据库产品主要有PI系统(适用于流程工业:国外),Info-Plus.21(主要在石油化工方面:国外),力控系统(主要用于控制领域:国内),SuPerlnfo(主要用于电力调度、石油、化工等领域:国内)等等。这些产品都是面向工业控制应用的,而且其产品的价格都比较昂贵,一般中小型系统不可能用此方式进行集成。
本文详细介绍如何利用Java的集合框架及其本身的语言特点开发面向智能集成系统的轻量级实时数据库。与其他的实时数据库相比,该实时数据库具有跨平台,简单易用及成本低的特点,并且能够满足智能建筑集成管理系统的实时性的要求。非常适用于一般中小型系统,具有很好的实用价值及经济效益。
2实时数据库的特点
内存系统与磁盘系统具有不同的特性,主要表现在以下几个方面[2]:内存和磁盘在存取时间上有若干数量级的差别,内存的存取时间在10-8s的数量级而磁盘在5×10-3s数量级;内存是易失性的,而磁盘是永久性的存储器;当系统断电时,前者所存的信息立即消失,通电后也不会恢复;后者则反之,断电时保持信息不会消失,通电后即原样可使用存储格式不同。内存是字节或字编址的,而磁盘是块存储设备;数据的存储组织方法对性能影响不同。不同的组织方式对磁盘的性能影响远比对内存影响大,如顺序存取与随机存取的时间对内存没有什么变化,而对磁盘则有数量级的差别;存取方式不同。内存可由处理机直接存取磁盘则不能,内存比磁盘更易于受到来自程序错误的直接数据破坏;
监控组态软件的实时数据库属于实时数据库中的一种,它具备实时数据库 的基本特征和属性,但和专用的实时数据库相比,它并不严格要求具备实时数 据库在理论上所要求的所有模型特征。近年来计算机技术的发展使存储器单位容量的价格不断下降,在现有条件下,单机上的工作内存已经很容易达到GB数量级。在这种条件下,利用实时数据库开发IBMS系统的实时数据管理模块是一个非常好的解决方案。
3 IBMS系统实时数据操作过程分析
一般来说BMS系统对实时数据的操作包括并发的多用户查询操作和实时数据的更新操作。一般来说一万个监控点的值的刷新必须在0.5秒内完成才能满足工程上的需要,而实时数据到达客户端的时延一般也不能超过一秒。所以内存数据库的必须提供紧凑的数据结构和高效的空间利用率以及各种对各种实时数据操作的高速执行。
对于IBMS系统的监控量,可以分为模拟量和监控量两种,而且监控点的信息也有静态信息和动态信息之分。由于数据点的类型不同,数据处理的方式也不同。我们分别定义它们的数据结构,分别进行存取。同时把数据点的静态信息和动态的变化值分别采用不同的储存和管理方式,以达到理想的性能并且实时数据库的设计也比较紧凑。
因为实时数据的组态信息在系统运行之前已经配置好了,对实时数据的插入及删除操作频率不是很高,相反对实时数据的写操作和读操作则非常频繁,数据库初始化时把相应的子系统的信息和监控点的名称,编号,计量单位,扫描周期等不会随时间变化的静态信息和随时间变化的实时监控数据分别用不同的变量中储存。因为所有的模拟量是按照固定设置的扫描周期刷新监控值的,所以模拟量的测量值采用的ArrayList数据结构进行储存,以实现较高效的刷新操作。在智能建筑的数字量型监控点一般来说是一些开关量,变化频率一般不会很高,有的监控点状态甚至是一个月之内都不会变化,所以数字量型监控点的监控值采用Hash表储存以实现高效率的随机刷新的性能。
4实时数据库的设计
实时数据库与外部系统的典型互交如图1所示:监控客户端通过数据输出接口取得实时数据,不同的外部数据源通过数据输入接口输入实时数据。实时数据库则负责管理实时数据,为监控客户端提供统一的数据源视图,实现实时数据的高速访问及数据储存策略。