基于实时数据库的城市轨道交通综合监控系统实时数据压缩子系统研究*
2017-08-11谢君
谢 君
上海电气集团股份有限公司 中央研究院 上海 200070
基于实时数据库的城市轨道交通综合监控系统实时数据压缩子系统研究*
谢 君
上海电气集团股份有限公司 中央研究院 上海 200070
在城市轨道交通综合监控系统(ISCS)中,系统不断扩展导致实时数据量不断增大,迫切需要一种简单高效的管理实时数据的方法。分析了实时数据的数学模型,确认了对实时数据进行压缩处理的可行性。论述了实时数据库(RTDB)在ISCS通信模型中应用的特点,提出以RTDB为基础,增加实时数据压缩模块,并设计了一套与压缩方法配套的数据缓存系统。通过数据缓存与压缩算法的结合,使实时数据压缩子系统能够应对ISCS中大量通信数据并发的问题,实现对ISCS通信数据进行压缩处理的功能。
实时数据库; 城市轨道交通综合监控系统; 数据处理
为了能够安全高效地管理城市轨道交通,迫切需要引入城市轨道交通综合监控系统(ISCS)[1]。应用ISCS不仅能够使城市轨道交通管理更加简洁高效,而且能够提高城市轨道交通的安全性和可靠性,为乘客的生命财产安全提供最大保障。ISCS能够将城市轨道交通各个部分整合起来,形成一个综合监控平台,完成数据的统一管理[2]。在这一过程中,随着大量数据的进入,系统内所承担的负荷在不断增大,而ISCS的软硬件资源却是有限的,因此,能否使用尽可能少的资源处理尽可能多的数据,成为衡量ISCS性能的重要指标之一。使用尽可能少的资源处理尽可能多的数据,实际要做的就是数据压缩。从信息论角度而言,数据压缩之所以能发挥作用,根本原因是现实中许多数据存在冗余,数据压缩就是要发现这些冗余的数据,或去除,或减小这些数据的编码量,使真正有价值的数据能够被凸现出来[3]。
1 ISCS信息流分析
在ISCS中,包含并协调了众多子系统,使之能够成为一个整体为外界提供服务。这些子系统分别为监控与数据采集系统(SCADA)、电力自动化系统(EMCS)、火灾报警系统(FAS)、自动列车监控系统(ATS),还有一些通过工业以太网集成的系统,如公共广播(PA)系统、闭路电视(CCTV)系统、门禁系统(ACS)和乘客信息系统(PIS)。
这些通过工业以太网集成的系统,通过各种通信协议实现信息互通共享[4],这些信息流的冗余度就是压缩算法所关心的问题。假设有一个字符串序列为1101110110001100100101010101010111000 100111000101…,基于普适概率计算,在目前观测到的序列中出现了n次1的条件下,可以得到接下来一个数据仍然为1的概率。事件下一个字符仍然为1的条件概率,就是长度n+1的序列中全部都为1的序列的概率除以所有长度n的序列中全部位置上都是1的片段的概率与长度为1的片段中出现1的概率的乘积。
由于最简单的程序拥有最大的概率,因此可以用程序永远输出1的概率来逼近下一位是1的概率,即:
(1)
式中:y为长度n+1的序列中全部都是1的序列的概率;c为概率值,可以伴随着观测数量的增多,从0无限逼近1。
在上面的序列中,如果经常出现1,那么接下来一位继续出现1的概率很大[5],这也符合工业现场中数据很少出现大幅波动的情形。正因为大部分时间数据变化都是平缓、不剧烈的,所以数据压缩方法能够在这些应用场合起到较为理想的压缩效果。相反,如果数据完全随机出现,毫无规律可言,那么是不能被压缩的。有了以上数学基础后,需要设计一套能够在大量数据中快速找到并处理冗余数据的子系统。
为了获得较为理想的数据处理实时性,考虑将数据压缩作为功能模块嵌入实时数据库(RTDB)中。RTDB是实时控制系统与数据采集系统的支撑核心,具有数据实时性和事务实时性的特点[6],这些特点对于信息变化极快的ISCS而言是非常重要的。以RTDB作为统一接口向ISCS提供数据,能够带来多种数据管理功能和实时浏览查询数据的服务。
综合以上考虑,在RTDB的基础上,设计了实时数据压缩模块,作为一个子系统为ISCS提供数据支持。
2 数据缓存设计
在数据压缩子系统中,数据缓存是数据从通信设备进入ISCS之前的第一个存储位置。缓存的作用是暂时存储进入的数据,数据是否真正进入ISCS还需要作进一步判定,因此,数据缓存的首要任务是完成数据的存储和再次读取。针对ISCS中通信数据的特点及具体使用流程,数据压缩子系统的数据缓存在具体操作方式上不同于一般意义上的数据缓存,主要体现在数据存储方式、数据查询方式和缓存空间管理方式。在数据压缩子系统中,数据经过死区限值方法处理后进入缓存,这一方法是数据进入缓存的第一道门槛,可以有效降低缓存空间的占用量,达到节省计算资源的目的。数据进入缓存后,由实时数据压缩方法对数据进行处理。经过处理后,冗余数据会被压缩,满足用户需求的数据将会被留下,数据量进一步减小,后续数据的处理难度也因此大幅下降。所有有价值的数据将进入RTDB,最后由RTDB统一向ISCS提供数据。系统间的数据流动关系如图1所示。
图1 数据缓存与外围系统数据流动示意图
在图1所示的数据缓存中,数据进入缓存后的存入结构与存入方式不同于一般意义上的数据缓存。合适的存入结构与存入方式能够在很大程度上降低数据的访问难度,进而提升数据的访问效率。结合压缩算法的使用方式,每一时刻的测量值采用了单向链表的存储方式,如图2所示。在ISCS应用中,经常会涉及无用数据的删除及剩余数据的移动问题,单向链表恰恰能够很好地满足数据频繁删改的要求[7]。
图2 单向链表存储方式示意图
采用以上存储方式后,假设一个数据被判断出在现有条件下属于冗余数据,那么就意味着这个数据需要被压缩。反映在图2的存储方式中,就是需要去除一个数据,然后将该数据前一位的数据直接链接到该数据的后一位数据。同理,假设某次计算后,发现大量冗余数据,那么也只需要将冗余数据的前一个数据直接链接到冗余数据的后一个数据。因此,无论有多少冗余数据,删除操作都只需要简单的两步即可。
数据查询主要应用在后续数据读取时,在数据读取过程中,由于同时有多个数据源信号进入,需要在大量数据源中快速找到指定的数据源历史值,因此需要使用恰当的数据组织方式和查找方式。通常情况下,数据点位一旦设置完毕,就不会再改变,即数据源的信息在大部分情况下都只是用于读取查找,增加或删除数据源的可能性很低。因此,设计中使用了树形结构组织各个信号源信息,同时,为了避免数据组织结构过于复杂,降低维护难度,设计中限制树的深度为3层。每一层使用散列码对该层数据进行键值索引映射,这样在掌握数据源信息的情形下,可以直接切入树的中间层进行查找读取操作,而不需要每一次都从根开始进行查找[8]。具体的组织方式及结构如图3所示,图3中每一个数据源经过散列函数后得到一个唯一的键编码,将键按以上方式组织起来,得到一棵便于搜索的树。与此同时,每一个键相对应的值体现在图2所示的数据存储序列中。
图3 多源数据存储方式示意图
缓存空间管理,就是要发现缓存中已经过时或无用的数据,并及时清理,以降低缓存的资源占用率。另一方面,缓存的空间管理也受限于缓存的使用方式和使用情况。在本设计方案中,缓存是为压缩数据而服务的,是数据压缩前的临时存储空间,所以空间管理必须要与压缩算法紧密结合起来。
考虑到压缩流程,缓存中的一个数据是否过时由该数据之后的数据进行判定,这就需要索引指示经过判定的数据和尚未经过判定的数据。由于同一信号源的数据是单向链表式存储,因此每一次启用数据压缩方法只要从该索引位置开始向后逐个进行判定即可,一旦发现了过时数据,将首先改变索引位置,然后报告数据过时并将其删除。
3 数据压缩算法设计
在已有旋转门算法的基础上,针对ISCS的通信特点,在使用旋转门方法之前使用死区限值对通信数据先进行一次过滤[9],这样可以避免出现大量冗余数据。由于数据量小了,每次需要计算的数据量也就自然减小,整体响应速度提升。数据量减小还能显著降低内存消耗量,为整体系统提供更多的计算资源[10]。
使用死区限值需要对每一个数据源的数据进行首次存储,表示如下:
private float baseValue;
这里假设阈值为1,那么以baseValue为基础的上下限分别为baseValue+1和baseValue-1。
考虑到后续的压缩方法,之后的数据值两两合为一组,与baseValue的上下限进行对比,一旦任何一个值超过所设定的阈值范围,将把两个数据值按先后关系放入待处理链表中,并将最新的值放入baseValue,以方便后续的两个值进行对比。
在后续压缩方法计算中,本设计的压缩方法主要依靠由当前值的上下精度和基础值的上下精度所围成的平行四边形进行判断。在当前值和基础值之间的所有数据值都会被判断是否在该平行四边形中。如果都在平行四边形中,那么本次计算结束,等待下一个值到来,再进行一次判断。如果发现有一个数据值不在该平行四边形中,那么将会把该数据值之前的那个值设置为基础值,然后将当前基础值与上一个基础值之间的所有数据值压缩,再等待下一个值到来,重复以上计算。
程序中具体判定过程为: 计算一条通过待测试数据值且平行于平行四边形长斜边的直线是否能够与平行四边形其余两边产生交点,如果能够产生交点,则意味着待测试数据值位于平行四边形内;否则,判定为在平行四边形外。
通过计算,其中一条长斜边的直线方程为:
(2)
那么与这条直线平行且通过待测试数据值的直线方程为:
(3)
接下来,只要得到交点坐标就可以进行判断了。由于待测试数据值位于基础数据值和当前数据值之间,所以横坐标必定位于两者之间,也就意味着可以省去检测横坐标。
纵坐标的计算公式为:
(4)
4 结束语
基于RTDB的实时数据压缩方法在RTDB基础上增加数据压缩来达到管理ISCS中大量高并发通信数据的目的。使用这一方法,一方面保证了工程实施过程中的便捷性和高效性,另一方面还保证了系统处理实时数据的能力和稳定性。同时需要认识到,数据压缩方法有着极强的针对性,需要对具体的数据分析其特点,进而提出具体的处理方法。这一方法有其适用范围,且存在继续改良的空间,这些需要在后期工程中不断验证与完善。
[1] 王开满,王军,张慎明.城市轨道交通自动化综合监控系统的集成模式[J].城市轨道交通研究,2007,10(3): 57-62.
[2] 张永康.城市轨道交通直流电源监控系统中无人值守新技术研究[J].上海电气技术,2013,6(3): 53-57.
[3] 吴家安.数据压缩技术及应用[M].北京: 科学出版社,2009.
[4] 王忠杰,任利惠.新型城市轨道交通系统及其性能特征[J].装备机械,2012(2): 66-72.
[5] 曹雪虹,张宗橙.信息论与编码[M].北京: 清华大学出版社,2004.
[6] 刘云生.实时数据库系统[M].北京: 科学出版社,2012.
[7] 严蔚敏,吴伟民.数据结构(C语言版)[M].北京: 清华大学出版社,2012.
[8] 王珊,萨师煊.数据库系统概论[M].4版.北京: 高等教育出版社,2006.
[9] 杨龙.基于RTDB的实时数据压缩算法研究[D].南京: 南京邮电大学,2013.
[10] 刘红霞,牛富丽.实时数据库数据压缩算法探讨与改进[J].化工自动化及仪表,2010,37(6): 72-75.
(编辑: 启 德)
In ISCS, the continuous expansion of the system leads to the increasing amount of real-time data, so there is an urgent need for a simple and efficient way to manage real-time data. By analyzing the mathematical model of real-time data, the feasibility of real-time data compression was confirmed. After discussing the application characteristics of RTDB in ISCS communication model, proposed to add real-time data compression module based on RTDB while a set of data caching system that supported the compression method was designed. Through the combination of data caching and compression algorithm, the real-time data compression subsystem can deal with the problems of mass communication data concurring in ISCS and realize the function of compressing ISCS communication data.
RTDB; ISCS; Data Processing
2016年10月
谢君(1988— ),男,硕士,助理工程师,主要从事实时数据处理研究工作, E-mail: xiejun4@shanghai-electric.com
TM-9;U231+.92
A
1674-540X(2017)02-001-04
*上海市科学技术委员会企业合作专项(编号: 15dz1180400)