CN101894132A - 采用双高速引擎的面向对象实时数据库存储方法 - Google Patents
采用双高速引擎的面向对象实时数据库存储方法 Download PDFInfo
- Publication number
- CN101894132A CN101894132A CN 201010198065 CN201010198065A CN101894132A CN 101894132 A CN101894132 A CN 101894132A CN 201010198065 CN201010198065 CN 201010198065 CN 201010198065 A CN201010198065 A CN 201010198065A CN 101894132 A CN101894132 A CN 101894132A
- Authority
- CN
- China
- Prior art keywords
- type
- attribute
- real
- types
- time database
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种采用双高速引擎的面向对象实时数据库存储方法,实时数据库以属性作为基本的组织和设计单位,通过有效使用现代高级程序语言中继承、重载、多态等方式,并封装适用于所有数据类型的统一接口以及应用于各种数据类型的专用接口,充分支持对各类型数据的描述,并为各种数据的访问提供统一的途径。然后设定需要的具有通用数据类型的属性,并由需要的属性组成对象,最终由对象搭建成整个实时数据库。实时数据库中包含对象集合,在对象集合中包含了各种类型的对象,在每个对象中包含了属性列表,列表中的属性实例的类型和顺序由该对象类型所包含的属性类型确定。本发明的实时数据库在保障实时访问效率的同时,支持灵活的面向对象组态配置,因而具备的强大通用性和灵活性。
Description
技术领域:
本技术发明涉及工业自动化领域,尤其涉及分布式监控系统领域,本技术发明可广泛适用于工业自动化领域的电网监控、电气化铁路和城市轨道交通各专业以及综合监控等应用。
背景技术:
在工业控制领域,随着自动化技术的发展,监控自动化水平的提高,监控系统逐渐由桌面系统向分布式系统,专用系统向多应用乃至综合系统发展。这在城市轨道交通行业尤其显著,从开始监控系统只应用于电力调度,楼宇自动化领域,逐步发展出电力监控、环境监控、火灾防控、用户信息、售检票等各种专业系统,甚至是最新的集成各种专业应用的综合监控系统。这就对监控系统的通用性提出了很高的要求。随着计算机领域面向对象程序设计方法的提出和应用,各种现代监控系统大都采用面向对象的方法进行设计和实现,这使得系统模块化、规范化,使得应用于单一专业的监控系统具有健壮、可扩展等优点。但是随着各专业领域自动化程度提高,各领域都需要各自适用的监控系统,而类似于城市轨道交通行业更是需要能够集成各专业需求的综合监控系统,这对监控系统的灵活性,尤其是它的核心模块——实时数据库的灵活性提出了非常高的要求。但是现有的监控系统一般都是从某一专业领域诞生,为某一专业领域设计,以对象作为基础进行构建,这使得实现的系统一但应用于另一领域,直接应用往往不能满足需求,而通过扩展勉强应用则会造成了大量的时空资源开销;但是要避免这一状况又不得不对大部分系统进行重新设计和实现,从而造成巨大的工程成本。
发明内容:
本发明的目的是:如果能够将面向对象的思想应用于工程配置,而不仅仅是系统设计。即允许在工程配置而不是在系统设计时根据需要,以属性为基础构建当前系统需要的对象,那么就能够有效满足当前工程的需求,而又无需对现有系统重新设计实现。但是,为了做到这一点,监控系统,尤其是它的核心模块——实时数据库必须采用合适的存储结构,从而满足面向对象组态配置的灵活性需求。而同时最为重要的是,决不能因此损害系统的性能,因为监控系统一般都是分布式实时系统,对实时数据库的访问操作具有严格的实时性要求。这就要求监控系统的实时数据库必须采用有效的数据结构,从而在保障高速实时访问的同时支持灵活的面向对象配置。
本发明采用的技术方案是:一种采用双高速引擎的面向对象实时数据库存储方法,其中实时数据库以属性作为基本的组织和设计单位,通过有效使用现代高级程序语言中继承、重载、多态等方式,并封装适用于所有数据类型的统一接口以及应用于各种数据类型的专用接口,充分支持对各类型数据的描述,并为各种数据的访问提供统一的途径。然后设定需要的具有通用数据类型的属性,并由需要的属性组成对象,最终由对象搭建成整个实时数据库。
上述的采用双高速引擎的面向对象实时数据库存储方法,其进一步特征在于:所述实时数据库中包含对象集合,在对象集合中包含了各种类型的对象,在每个对象中包含了属性列表,列表中的属性实例的类型和顺序由该对象类型所包含的属性类型确定。
所述实时数据库中不仅包含对象集合和属性列表,同时也包含对象类型集合以及属性类型信息;对象类型集合中包含了所有的对象类型;每一对象类型包含了该对象类型所包含的属性类型,而所有该类型的对象都包含相应的属性。
每种对象类型都定义了该类型的对象所共同具有的属性的属性类型,这些属性类型是对象类型特征的多维表示;同一类对象具有相同的属性类型,但同类型的属性往往具有不同的属性值。
同样类型的对象包含相同类型的属性;同样类型的对象中同类型属性的位置是相同的。
所述实时数据库依据给定的对象标记和属性标记分别获得对应的对象类型和属性类型的标记,然后利用所述对象类型和属性类型的标记定位对应属性类型在对应对象类型中的位置。
上述的采用双高速引擎的面向对象实时数据库存储方法,其更进一步特征在于:
所述实时数据库中分别为对象构建对象索引,以及为对象类型和属性类型的构建类型索引,从而构建双层高速索引。
本发明具有如下的有益效果:通过采用这种实时数据库的存储结构,并构建双高速索引,从而在空间资源开销的增加可以忽略不计的前提下,实现在保障实时访问效率的同时,支持灵活的面向对象组态配置,从而在不损害系统实时性能的情况下,显著提升监控系统的可扩展性和维护性。
下面结合附图和具体实施方式对本发明作进一步详细的说明。附图和具体实施方式并不限制本发明要求保护的范围。
附图说明
图1是现有技术中“对象”数据组织方式示意图;
图2是现有技术中对象查找示意图;
图3是现有技术中对象查找流程图;
图4是本发明“对象-属性”数据组织方式示意图;
图5是本发明对象类型中属性类型查找示意图;
图6是本发明对象-属性查找流程图。
具体实施方式
面向对象的组态配置的采用面向对象的方法进行组态,为了支持面向对象的组态配置,实时数据库的数据存储结构同样渗透着面向对象的设计理念,这里介绍与面向对象理念相关的若干概念:
●数据类型
实时数据库中存放了各种工程对象的描述信息以及与实时状态相关的实时数据信息,这些信息需要使用不同类型的数据进行描述,例如设备中的点地址可能使用整型数,电压值则可能使用浮点数等等。
●对象类型
具有同类型的特征的数据作为一种对象类型,每一种类型的对象一般和某种现实应用中的工程对象相对应,作为该种对象在实时数据库中的特征抽象和数据描述。例如,一种名为<IEC870Device>的对象类型对应于工程中的一种测控设备,而名为<Breaker>的对象类型可能描述了应用中的某一类断路器。
●对象
实时数据库中的对象是对象类型的一个具体实例,一般与工程中一个具体的物理对象对应,是它各种特征和当前状态的综合描述以及数据表示。例如一个类型为<IEC870Device>的对象对应于工程应用中的一个具体的设备。当前对象的各个属性描述了该设备的特征和状态,如设备地址和通讯状态等等。
●属性类型
一类属性反映了对象的某种特征或者表示对象的某种状态即属性类型。例如名为<Name>的属性类型描述的是各类对象的名称特征,而名为<State>的属性则表示了某些对象的当前状态特征。
●属性
对象类型中包含了该类对象所具有的属性类型,而相应的实例化对象中则包含了对应的属性类型的实例,称为属性或者属性值。每一个属性表示具体对象实例的一个具体特征或者当前的状态。例如一个设备对象中“名称”属性包含了该设备的名字,而一个遥控点对象中的“状态”属性则是当前的遥控状态。
传统的监控系统是基于对象来进行配置的,即对于每一个工程设计适用的对象,在配置时须择合适数量的已有类型对象,从而构成整个系统的逻辑表征。同样它的实时数据库也是以对象作为基本单位进行构建,即根据需求定义并实现对象,再由对象组建成整个实时数据库,如图1所示。
为了实现对实时数据库的访问,一般在实时数据库中构建对象的高速索引,如图2所示。在对实时数据库访问时,给定需要访问的对象的标记,利用索引迅速定位至对应的对象,如图3所示,并对查找到的对象进行操作,根据对象标记查找对象的过程一般是常量时间的,相对其余操作几乎可以忽略不计,从而满足系统的实时性要求。但是采用这种基于对象的实时数据库存储结构,每当系统应用于新的工程,或者原有工程应用需求发生变化时,往往不得不重新设计并实现原来没有的对象,造成大量的扩展和维护成本。
如果将面向对象的方法引入配置过程,即在组态配置时并不是基于对象,而是按照需求构建具有某种通用数据类型的属性,再由需要的属性构成适合的对象,最终构成整个系统的逻辑表征。这样,当系统通应用于新的工程时,由于只需要为原有对象增删属性,或者用属性组成新的对象,而监控系统本身无需重新设计或实现,从而大大减少了系统的扩展和维护开销。为了支持面向对象的组态配置,系统的实时数据库不得不采用更为复杂的存储结构。
因此与传统的以对象为基本单位的组织方式不同,这里的实时数据库以属性作为基本的组织和设计单位。即定义一套用于表示各种数据信息的基本数据类型。通过有效使用现代高级程序语言中继承、重载、多态等方式,并封装适用于所有数据类型的统一接口以及应用于各种数据类型的专用接口,充分支持对各类型数据的描述,并为各种数据的访问提供统一的途径。然后设定需要的具有通用数据类型的属性,并由需要的属性组成对象,最终由对象搭建成整个实时数据库。因此实时数据库中包含对象集合,在对象集合中包含了各种类型的对象,在每个对象中包含了属性列表,列表中的属性实例的类型和顺序由该对象类型所包含的属性类型确定,如图4所示。这固然使得实时数据库结构相对复杂,但是提供了传统系统不具备的强大通用性和灵活性。
这种以属性为基本单位的实时数据库存储方式提供了面向对象配置所需要的灵活性。当系统应用于不同的工程应用时,可以根据应用需求定义适用的属性,并根据需求由不同的属性类型灵活的组成各种合适的对象。而当需求发生变化时,也可以根据需要添加新的属性,并增、删已有对象所包含的属性。从而能有效满足各种监控系统的不同应用需求,甚至是综合监控系统中多个专业的复合应用需求,提供了良好的适应性和可扩展性。但是相对的,实时数据库的访问则面临问题。在以属性为基本单位的实时数据库存储方式下,对实时数据库的访问并不仅是对需要的对象进行操作,而是对需要对象的需要属性进行操作。即不仅是依据给定的对象标记查找对应对象,而是依据给定的对象标记和属性标记查找对应对象的对应属性。如果也和传统方式一样,仅构造对象索引,那么虽然查找对象的过程是常量时间的,但是在对象内通过遍历查找属性的过程是线性时间的,这将严重影响访问效率,甚或不能满足实时应用的需求。而如果对所有对象的所有属性都构造索引,虽然查找对应对象的对应属性的过程是常量时间的,但是空间资源的巨大开销将是难以接受的。当然如果不采用层次结构,而借鉴已有的面向对象关系数据库的二维表结构,那么不但增加数据空间组织的难度,时间效率也同样难以满足要求,这些方法都不具备较高的可行性。为了解决这个困难,在实时库中引入了类型信息——即对象类型和属性类型的信息。在实时数据库中不仅包含对象集合和属性列表,同时也包含对象类型集合以及属性类型信息。对象类型集合中包含了所有的对象类型。每一对象类型包含了该对象类型所包含的属性类型,而所有该类型的对象都包含相应的属性。这样每种对象类型都定义了该类型的对象所共同具有的属性的属性类型,这些属性类型是对象类型特征的多维表示。同一类对象具有相同的属性类型,但同类型的属性往往具有不同的属性值,从而反映了工程对象的各异的特征和状态。在实时数据库中保存类型信息难免要增加资源的开销,但是考虑到类型信息的空间资源开销相比于对象和属性本身,常规情况下要低至少两个数量级,几乎可以忽略不计,因此不会显著增加空间资源开销。
考虑到以下两点:
1.同样类型的对象包含相同类型的属性,即对应的对象类型所包含的属性类型的属性。
2.同样类型的对象中同类型属性的位置是相同的,即对应对象类型中对应属性类型的位置。
这样在实时数据库的访问过程中就可以依据给定的对象标记和属性标记分别获得对应的对象类型和属性类型的标记,然后利用它们定位对应属性类型在对应对象类型中的位置,如图5所示,也就获得了对应属性在对应对象中的位置。这一过程是常量时间的。
因此,在实时数据库中分别为对象构建对象索引,以及为对象类型和属性类型的构建类型索引,从而构建双层高速索引。在访问实时数据库,即依据给定的对象标记和属性标记查找对应对象的对应属性时,首先利用对象索引根据给定的对象标记定位对应的对象,该过程是常量时间的;再根据给定的对象标记和属性标记分别获得对象类型标记和属性类型标记,利用类型索引定位属性类型在对象类型中的位置,这个过程也是常量时间的;最后根据属性类型在对象类型中的位置,即对应属性在对应对象中的位置,从查找获得的对应对象中查找到对应属性,这一过程同样是常量时间的。因此,如图6所示,整个根据给定的对象标记和属性标记查找对应对象的对应属性的过程是常量时间的。相对于其余操作几乎可以忽略不计,从而满足系统的实时性要求。
通过采用这种实时数据库的存储结构,并构建双高速索引,从而在空间资源开销的增加可以忽略不计的前提下,实现在保障实时访问效率的同时,支持灵活的面向对象组态配置,从而在不损害系统实时性能的情况下,显著提升监控系统的可扩展性和维护性。
Claims (7)
1.一种采用双高速引擎的面向对象实时数据库存储方法,其特征在于:
以属性作为基本的组织和设计单位,通过有效使用现代高级程序语言中继承、重载、多态等方式,并封装适用于所有数据类型的统一接口以及应用于各种数据类型的专用接口,充分支持对各类型数据的描述,并为各种数据的访问提供统一的途径。然后设定需要的具有通用数据类型的属性,并由需要的属性组成对象,最终由对象搭建成整个实时数据库。
2.根据权利要求1所述的采用双高速引擎的面向对象实时数据库存储方法,其特征在于:
所述实时数据库中包含对象集合,在对象集合中包含了各种类型的对象,在每个对象中包含了属性列表,列表中的属性实例的类型和顺序由该对象类型所包含的属性类型确定。
3.根据权利要求1所述的采用双高速引擎的面向对象实时数据库存储方法,其特征在于:
所述实时数据库中不仅包含对象集合和属性列表,同时也包含对象类型集合以及属性类型信息;对象类型集合中包含了所有的对象类型;每一对象类型包含了该对象类型所包含的属性类型,而所有该类型的对象都包含相应的属性。
4.根据权利要求3所述的采用双高速引擎的面向对象实时数据库存储方法,其特征在于:
每种对象类型都定义了该类型的对象所共同具有的属性的属性类型,这些属性类型是对象类型特征的多维表示;同一类对象具有相同的属性类型,但同类型的属性往往具有不同的属性值。
5.根据权利要求4所述的采用双高速引擎的面向对象实时数据库存储方法,其特征在于:
同样类型的对象包含相同类型的属性;同样类型的对象中同类型属性的位置是相同的。
6.根据权利要求5所述的采用双高速引擎的面向对象实时数据库存储方法,其特征在于:
所述实时数据库依据给定的对象标记和属性标记分别获得对应的对象类型和属性类型的标记,然后利用所述对象类型和属性类型的标记定位对应属性类型在对应对象类型中的位置。
7.根据权利要求1至6之一所述的采用双高速引擎的面向对象实时数据库存储方法,其特征在于:
所述实时数据库中分别为对象构建对象索引,以及为对象类型和属性类型的构建类型索引,从而构建双层高速索引。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010101980653A CN101894132B (zh) | 2010-06-10 | 2010-06-10 | 采用双高速引擎的面向对象实时数据库存储方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010101980653A CN101894132B (zh) | 2010-06-10 | 2010-06-10 | 采用双高速引擎的面向对象实时数据库存储方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101894132A true CN101894132A (zh) | 2010-11-24 |
CN101894132B CN101894132B (zh) | 2012-09-05 |
Family
ID=43103324
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010101980653A Active CN101894132B (zh) | 2010-06-10 | 2010-06-10 | 采用双高速引擎的面向对象实时数据库存储方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101894132B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102110134A (zh) * | 2010-12-28 | 2011-06-29 | 青岛海信网络科技股份有限公司 | 轨道交通用实时数据库、操作方法及操作装置 |
CN103150255A (zh) * | 2013-03-29 | 2013-06-12 | 北京经纬恒润科技有限公司 | 一种脚本测试方法及装置 |
CN104657467A (zh) * | 2015-02-11 | 2015-05-27 | 南京国电南自美卓控制系统有限公司 | 一种实时内存数据库的带订阅/发布的数据推送框架 |
CN105830025A (zh) * | 2013-12-20 | 2016-08-03 | 微软技术许可有限责任公司 | 动态类型化的编程语言中的属性访问 |
CN108241717A (zh) * | 2016-12-27 | 2018-07-03 | 中国移动通信集团公司 | 一种数据处理方法、装置及系统 |
CN110873820A (zh) * | 2018-08-31 | 2020-03-10 | 宁波三星智能电气有限公司 | 一种基于面向对象的智能电能表显示方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040117397A1 (en) * | 2002-12-16 | 2004-06-17 | Rappold Robert J | Extensible database system and method |
CN1713175A (zh) * | 2004-06-24 | 2005-12-28 | 华夏科技股份有限公司 | 动态对象储存系统及方法 |
CN1877573A (zh) * | 2005-06-10 | 2006-12-13 | 华夏科技股份有限公司 | 多层次数据库系统结构 |
-
2010
- 2010-06-10 CN CN2010101980653A patent/CN101894132B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040117397A1 (en) * | 2002-12-16 | 2004-06-17 | Rappold Robert J | Extensible database system and method |
CN1713175A (zh) * | 2004-06-24 | 2005-12-28 | 华夏科技股份有限公司 | 动态对象储存系统及方法 |
CN1877573A (zh) * | 2005-06-10 | 2006-12-13 | 华夏科技股份有限公司 | 多层次数据库系统结构 |
Non-Patent Citations (1)
Title |
---|
《电力自动化设备》 20091231 金舒等 面向对象的高性能实时数据库ChRDB 第88-93页 1-7 第29卷, 第12期 2 * |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102110134A (zh) * | 2010-12-28 | 2011-06-29 | 青岛海信网络科技股份有限公司 | 轨道交通用实时数据库、操作方法及操作装置 |
CN102110134B (zh) * | 2010-12-28 | 2013-05-29 | 青岛海信网络科技股份有限公司 | 轨道交通用实时数据库、操作方法及操作装置 |
CN103150255A (zh) * | 2013-03-29 | 2013-06-12 | 北京经纬恒润科技有限公司 | 一种脚本测试方法及装置 |
CN103150255B (zh) * | 2013-03-29 | 2016-12-28 | 北京经纬恒润科技有限公司 | 一种脚本测试方法及装置 |
CN105830025A (zh) * | 2013-12-20 | 2016-08-03 | 微软技术许可有限责任公司 | 动态类型化的编程语言中的属性访问 |
CN105830025B (zh) * | 2013-12-20 | 2019-05-07 | 微软技术许可有限责任公司 | 动态类型化的编程语言中的属性访问 |
CN104657467A (zh) * | 2015-02-11 | 2015-05-27 | 南京国电南自美卓控制系统有限公司 | 一种实时内存数据库的带订阅/发布的数据推送框架 |
CN104657467B (zh) * | 2015-02-11 | 2017-09-05 | 南京国电南自维美德自动化有限公司 | 一种实时内存数据库的带订阅/发布的数据推送框架 |
CN108241717A (zh) * | 2016-12-27 | 2018-07-03 | 中国移动通信集团公司 | 一种数据处理方法、装置及系统 |
CN108241717B (zh) * | 2016-12-27 | 2021-08-17 | 中国移动通信集团公司 | 一种数据处理方法、装置及系统 |
CN110873820A (zh) * | 2018-08-31 | 2020-03-10 | 宁波三星智能电气有限公司 | 一种基于面向对象的智能电能表显示方法 |
CN110873820B (zh) * | 2018-08-31 | 2022-04-26 | 宁波三星智能电气有限公司 | 一种基于面向对象的智能电能表显示方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101894132B (zh) | 2012-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101894132B (zh) | 采用双高速引擎的面向对象实时数据库存储方法 | |
CN101916299B (zh) | 一种基于文件系统的三维空间数据存储管理方法 | |
CN101908165A (zh) | 一种基于gis的产业集群信息集成服务系统及方法 | |
CN102184229B (zh) | 一种海量rfid标签信息的内存数据存储方法 | |
CN101770518A (zh) | 电网企业一体化信息模型元数据管理方法 | |
CN102609463A (zh) | 一种基于准实时平台的数据集群管理系统 | |
CN103218398A (zh) | 智能变电站scl文件差异性比较方法 | |
CN103473642A (zh) | 一种面向生产调度的规则引擎方法 | |
CN104253858B (zh) | 一种基于数据包的移动数据同步冲突预处理与消解方法 | |
CN102426525A (zh) | 一种多应用系统的全景建模方法 | |
CN103778212A (zh) | 基于数据节点的并行海量数据处理方法 | |
CN104118626B (zh) | 模块化通用物流箱结构 | |
CN103823660A (zh) | 一种it运维配置管理系统和方法 | |
CN103345486B (zh) | 应用于远程浏览环境下客户端获取和展示图形文件的方法 | |
CN115391427A (zh) | Impala自动化伸缩的系统、方法、介质及设备 | |
CN106156049A (zh) | 一种数据读取的方法和系统 | |
CN102768672B (zh) | 一种磁盘空间管理方法和装置 | |
CN101221565A (zh) | 一种利用嵌入式数据库对flash数据进行管理的方法 | |
Chen et al. | Multi-source and heterogeneous data integration model for big data analytics in power DCS | |
Du et al. | Ontology-Based Information Integration and Decision Making in Prefabricated Construction Component Supply Chain. | |
Chen et al. | Research on model management method for Micro-grid | |
CN103198140A (zh) | 一种数据库存储系统及数据存储方法 | |
CN105574122A (zh) | 一种基于产品信息的数据检索系统 | |
CN101702217A (zh) | 遵循xpdl规范工作流中间件流程定义管理方法 | |
CN106557601A (zh) | 一种输电线路仿真方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |