CN104657467B - 一种实时内存数据库的带订阅/发布的数据推送框架 - Google Patents
一种实时内存数据库的带订阅/发布的数据推送框架 Download PDFInfo
- Publication number
- CN104657467B CN104657467B CN201510072018.7A CN201510072018A CN104657467B CN 104657467 B CN104657467 B CN 104657467B CN 201510072018 A CN201510072018 A CN 201510072018A CN 104657467 B CN104657467 B CN 104657467B
- Authority
- CN
- China
- Prior art keywords
- real
- attribute
- mapping
- mark
- key
- 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.)
- Active
Links
- 238000013507 mapping Methods 0.000 claims abstract description 116
- 238000000034 method Methods 0.000 claims description 35
- 230000008569 process Effects 0.000 claims description 22
- 230000007246 mechanism Effects 0.000 claims description 7
- 238000012217 deletion Methods 0.000 claims description 2
- 230000037430 deletion Effects 0.000 claims description 2
- 239000003550 marker Substances 0.000 claims description 2
- 238000012544 monitoring process Methods 0.000 description 45
- 230000000875 corresponding effect Effects 0.000 description 43
- 230000006870 function Effects 0.000 description 12
- 238000003860 storage Methods 0.000 description 11
- 101100045343 Bacillus subtilis (strain 168) tagO gene Proteins 0.000 description 9
- 238000004891 communication Methods 0.000 description 9
- 230000008520 organization Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 239000002699 waste material Substances 0.000 description 5
- 230000002596 correlated effect Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 238000005259 measurement Methods 0.000 description 4
- 238000005457 optimization Methods 0.000 description 4
- 230000011664 signaling Effects 0.000 description 4
- 230000001960 triggered effect Effects 0.000 description 4
- 241001269238 Data Species 0.000 description 3
- 241000406668 Loxodonta cyclotis Species 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000002452 interceptive effect Effects 0.000 description 3
- 230000000737 periodic effect Effects 0.000 description 3
- 241000894007 species Species 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 208000019901 Anxiety disease Diseases 0.000 description 1
- 230000036506 anxiety Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000005764 inhibitory process Effects 0.000 description 1
- 229910052500 inorganic mineral Inorganic materials 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 239000011707 mineral Substances 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2358—Change logging, detection, and notification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及自动化监控领域,尤其涉及一种实时内存数据库的带订阅/发布的数据推送框架,包括分发单元,分发单元基于上层映射和下层映射建立,其特征在于:映射由一组项组成,每一项为一对键——值;上层映射的每一个键为一对对象类型标记和属性类型标记,对应的值为一个下层映射;所述的下层映射的每一个键为一对对象标记和属性标记,对应的值为一个会话标记列表,由该对象标记和该属性标记标识的对应对象的对应属性的更新需要通过会话标记列表中会话标记标识的各个对应的会话分别进行推送。本发明在实时内存数据库的空间资源开销不显著增加的前提下,实现了实时内存数据库的带订阅/发布的推送框架,有效的提升了监控平台的整体实时性能。
Description
技术领域
本发明涉及自动化监控领域,尤其涉及自动化监控软件平台领域,本发明可广泛适用于能源、交通、矿产、工业等各个自动化领域的电厂监控、电网监控以及轨道交通综合监控等各种自动化监控应用。
背景技术
随着计算机科学和自动化技术的迅速发展,以及各行业自动化监控应用水平和规模的不断提升,独立的领域专用自动化监控系统正在向综合乃至通用自动化监控平台发展。例如电厂自动化监控领域出现了集DCS(集散控制)系统/ECS(电厂厂用电气监控管理)系统/NCS(电力网络监控)系统的一体化监控平台;电网自动化监控领域出现了集SCADA(数据采集与监控)系统/EMS(能量管理)系统/DTS(调度员培训模拟)系统/DMS(配电管理)系统/MIS(管理信息)系统的集成监控平台;而在城市轨道交通领域,则出现了集ATS(行车)系统/PSCADA(电力监控)系统/BAS(环控)系统/FAS(火灾告警)系统/AFC(售检票)系统/PIS(用户信息)系统/ACS(门禁)系统/……多达十数个甚至数十个专业子系统的综合监控平台。这一趋势近年来愈加显著,这就对自动化监控软件平台,尤其是它的实时核心——实时内存数据库的灵活性和可扩展性提出了很高的要求,这要求在同一实时内存数据库中无缝集成不同监控应用中形态各异的数据,并且当监控平台应用于不同自动化领域时,软件自身无需进行重大的设计修改甚或重新开发,仅仅依靠不同的配置和设定就能够方便的应用于不同自动化领域的各种监控应用中。
国内现代监控软件系统大多是伴随着某一专业领域的发展而诞生的领域专用监控系统,采用某种面向对象程序设计语言实现,因此其实时内存数据库通常基于某些针对其专业领域而预先设计好的对象数据依据相应的专业语义进行组织和构建。例如电厂的监控系统中的实时内存数据库可能由间隔、测控单元、遥信、遥测等数据对象以层次方式构建;电网的监控系统中的实时内存数据库可能还包含变电站、保护单元、设定值等层次式数据对象;而轨道交通的行车系统的实时内存数据库则可能是由列车、站台、轨道区间等数据对象以网状方式组织而成。这种某一领域的专用系统一旦应用于另一领域,如果直接应用,实时内存数据库往往无法满足应用需求;通过扩展勉强应用则通常会造成巨大的时空资源开销,既严重耗费系统内存,并且实时内存数据库的实时性能也堪忧;而要避免这种情况实时内存数据库又不得不重新设计和开发实现。
中国发明专利(申请号201010198065.3,公开日2010年11月24日)公开了一种采用双高速引擎的面向对象实时数据库存储方法,基于通用数据类型的属性作为实时内存数据库的基本组织单位,由属性组成对象,最终再由对象构建成整个实时内存数据库。这种存储结构为实时内存数据库提供了充分的灵活性和可扩展性,使得实时内存数据库在应用于不同自动化领域时可以依据不同的需求存放各自需要的数据对象,而无需对实时内存数据库本身进行重新设计和实现。例如当应用于电厂监控时,可以设定点号、状态、时标等等属性,进而构成遥信、遥测、测控单元等对象,并由这些对象通过层次式的连接方式组成实时内存数据库;而当应用于电网监控时,还可以在保留原有对象的前提下在实时内存数据库中加入设定值、保护单元、变电站等对象;如果应用于轨道交通领域的行车系统,则可以设定车号、方向、速度、站台位置、轨道区间等属性,进而由这些属性构成列车、轨道、站台等对象,并由这些对象通过网状的连接方式组成实时内存数据库;而当应用于地铁综合监控系统时,实时内存数据库中除了上述的对象外,还无缝集成了环控子领域的风机、阀门、电梯等对象以及其它各个子领域的多种相关对象。采用这种复杂的存储结构为实时内存数据库提供了充分的灵活性和可扩展性,从而可以有效支撑通用监控平台应用于不同领域的各种监控应用以及多个领域的综合监控应用。
然而,事有利弊,这种复杂的存储结构在为实时内存数据库提供了充分的灵活性和可扩展性的同时,也为其使用、管理和维护的各个方面带来了诸多的困难和挑战。在专利ZL201010198065.3中可以看到,在这种复杂的存储结构下,采用传统的领域专用监控系统的实时内存数据库中的索引方式已经难以满足实际监控应用的实时性能要求,所以在专利ZL201010198065.3中,在实时内存数据库中不仅存放了对象、属性等数据信息,还引入了类型信息,并为数据信息和类型信息同时建立双高速索引,从而利用类型信息知识帮助实现实时内存数据库中实时数据的高效实时访问。这就在空间资源开销增加几乎可以忽略不计的前提下,既为实时内存数据库提供了充分的灵活性和可扩展性,同时又有效保障了实时数据访问的实时性能。然而实时内存数据库并不只是提供实时数据的简单查询或更新访问,而这种复杂的存储结构也同样为实时内存数据库的其它各个方面带来了困难和挑战。
相比于通常的数据库系统被动的接受访问操作,如查询或者更新操作,主动数据库通过同时采用主动机制来更为高效的实现功能。这通常是遵循E(事件)-C(条件)-A(动作)主动模型框架。即当主动数据库观测到指定事件发生,便对相关条件进行判断,如果条件满足,则执行对应的动作。在主动数据库中主要是通过执行由事件触发的主动事务来更有效地保障数据的一致性和完整性,同时也允许通过执行设定的触发器的方式从而完成用户指定的由事件触发的对应处理功能。
主动机制可以有效的应用于监控平台的实时内存数据库中,监控应用中实时内存数据库的主动机制表现为一种推送机制,即当实时内存数据库发现实时数据更新时,就将实时数据更新通知需要的实时应用模块,再由实时应用模块对相关条件进行判断,并据此完成适当的实时处理。然而,专利ZL201010198065.3中的采用了复杂存储结构的实时内存数据库,当用于不同领域的监控应用时,其中存储的是不同种类的对象,而用于综合监控应用时,其中存储的更是多个领域的诸多对象。因此,在设计时,根本无法确定实时内存数据库中存储的是哪些种类的对象,当然更加无法确定需要推送那些对象的什么属性的更新。事实上,实时内存数据库采用这种复杂存储结构就是通过摒弃任何领域相关的专业语义从而获得可以通用于各个领域的灵活性和可扩展性,但这同时也必然意味着实时内存数据库绝不可能基于任何专业语义来决定需要推送的数据更新。
发明内容
本发明的技术目的在于克服上述问题,提出在时空资源开销、网络资源开销以及实时性能等因素之间实现了优化的平衡的实时内存数据库的带订阅/发布的数据推送框架。
为了实现上述目的,本发明所采用的技术方案为:实时内存数据库的带订阅/发布的数据推送框架,包括独立于实时内存数据库的分发单元,所述的分发单元基于上层映射和下层映射建立,其特征在于:所述的上层映射和下层映射分别由一组项组成,每一项为一对键——值;所述的上层映射的每一个键为一对对象类型标记和属性类型标记,对应的值为一个下层映射;所述的下层映射的每一个键为一对对象标记和属性标记,对应的值为一个会话标记列表;在实时内存数据库中的对象类型中的属性类型上设置推送标记。
一个下层映射中的所有键中的对象标记标识的对象为同种类型对象,这个下层映射作为值对应的上层映射的键中的对象类型标记即为该种对象类型的标记;而一个下层映射中的所有键中的属性标记标识的属性也是同种属性,这个下层映射作为值对应的上层映射的键中的属性类型标记即为该种属性类型的标记。
一对对象标记和属性标记标识的对应对象的对应属性的更新需要通过对应会话标记列表中会话标记标识的各个对应的会话分别进行推送。
一个映射中每一个键唯一,每一个键仅有唯一的值与之对应;分发单元只存在一个上层映射。
实时内存数据库的带订阅/发布的数据推送框架的实现方法,订阅过程的实现过程如下:
(1)一个实时应用模块中的一个部分通过会话S a 向分发单元发送包含对象标记O a 和属性标记A a 的订阅请求;
(2)分发单元确定对象O a 所属的对象类型的对象类型标记OT a 以及属性A a 对应的属性类型的属性类型标记AT a ,并由对象类型标记OT a 以及属性类型标记AT a 构成上层映射的键<OT a , AT a >,并从上层映射中查找包含该键的项,即包含该键的一对键——值;如果该项不存在,则进入步骤(3);如果上层映射中已存在包含该键的项,那么继续步骤(4);
(3)由分发单元通知实时内存数据库将其中对象类型OT a 中属性类型AT a 上的推送标记设为需要;同时在分发单元的上层映射中添加包含该键的项,对应的值为一个不包含任何项的空的下层映射;进入步骤(4);
(4)从上层映射中查找到作为键<OT a ,AT a >对应的值的下层映射;由对象标记O a 以及属性标记A a 构成下层映射的键<O a , A a >,并从获得的下层映射中查找包含该键的项,如果该项不存在,则进入步骤(5);如果该下层映射中已存在包含该键的项,那么可以直接继续步骤(6);
(5)在该下层映射中添加包含该键的项,对应的值为一个空的会话标记列表;继续步骤(6);
(6)从该下层映射中查找到作为键<O a ,A a >对应的值的会话标记列表;将会话标记S a 加入获得的会话标记列表中,订阅对象O a 的属性A a 的更新的过程完成。
实时内存数据库的带订阅/发布的数据推送框架的实现方法,取消订阅的实现过程如下:
(1)一个实时应用模块中的一个部分通过会话S a 将包含对象标记O a 和属性标记A a 的取消推送请求发送给分发单元;
(2)分发单元首先确定对象O a 所属的对象类型的对象类型标记OT a 以及属性A a 对应的属性类型的属性类型标记AT a ,并由对象类型标记OT a 以及属性类型标记AT a 构成上层映射的键<OT a , AT a >,并从上层映射中查找到作为该键对应的值的下层映射;
(3)由对象标记O a 以及属性标记A a 构成下层映射的键<O a ,A a >,从获得的下层映射中查找到作为该键对应的值的会话标记列表;将会话标记S a 从获得的会话标记列表中删除;如果删除后会话标记列表为空,则进入步骤(4);反之结束;
(4)将包含该会话标记列表的项从获得的下层映射中删除;如果删除后该下层映射为一个不包含任何项的空映射,那么进入步骤(5);反之结束;
(5)将包含该下层映射的项从上层映射中删除,同时由分发单元通知实时内存数据库将其中对象类型OT a 中属性类型AT a 上的推送标记设为不需要;取消订阅对象O a 的属性A a 的更新的过程完成。
实时内存数据库的推送数据机制的发布过程由对象的属性的更新触发。
实时内存数据库的每一个对象的每一个属性的每一次更新的发布过程如下:
(1)实时内存数据库中对象O b 的属性A b 发生了更新;
(2)查看对象O b 对应的对象类型中属性A b 对应的属性类型上的推送标记是需要还是不需要,若为不需要,则无需推送该更新;反之若为需要,则将更新信息从实时内存数据库发送给分发单元;
(3)分发单元在接收到更新信息后,首先确定对象O b 所属的对象类型的对象类型标记OT b 以及属性A b 对应的属性类型的属性类型标记AT b ,并由对象类型标记OT b 以及属性类型标记AT b 构成上层映射的键<OT b , AT b >,从上层映射中查找到作为该键对应的值的下层映射;
(4)由对象标记O b 及属性标记A b 构成下层映射的键<O b , A b >,并从获得的下层映射中查找包含该键的项,如果该项不存在,那么丢弃更新信息;否则从该下层映射中查找到作为键<O b , A b >对应的值的会话标记列表,向获得的会话标记列表中的每一个会话标记对应的会话推送更新信息。
本文针对专利ZL201010198065.3中为支持通用监控软件平台而采用复杂存储结构的实时内存数据库,无法利用领域相关的任何专业语义的问题,通过充分考查实时应用模块和实时内存数据库交互行为的典型特征,在实时内存数据库中的对象类型中的属性类型上设置推送标记,并且单独构建包括两层映射的分发单元,在时空资源开销、网络资源开销以及实时性能等因素之间实现了优化的平衡,从而在实时内存数据库的空间资源开销不显著增加的前提下,实现了实时内存数据库的带订阅/发布的推送框架,有效的提升了监控平台的整体实时性能。
附图说明
图1为分发单元的两层映射示意图;
图2为订阅过程示意图;
图3为取消订阅过程示意图;
图4为推送过程示意图。
具体实施方式
为使本发明实现的技术方案、技术特征、达成目的与功效易于明白了解,下面结合具体实施方式,进一步阐述本发明。
主动机制可以有效的应用于监控平台的实时内存数据库中,这是因为监控应用本身就符合主动模型框架的规律。监控应用实现的正是对现场状况的监视和控制,因此监控平台中,通常是由数据采集模块获取现场的新数据并对实时内存数据库中的实时数据进行更新,而其它实时应用模块通过访问实时内存数据库,在发现实时数据更新之后,做出判断,并进行相应的应对,这正好遵循ECA主动模型框架,这里的事件通常表现为实时数据更新。只是由于实时内存数据库自身的特征和资源限制,通常将ECA主动模型框架扩展到整个监控平台,即当实时内存数据库发现实时数据更新时,就将数据更新通知相关的实时应用模块,再由实时应用模块对相关条件进行判断,并据此完成适当的应对处理。也就是ECA主动模型框架中的事件,即实时数据更新,由实时内存数据库来追踪和通知,而条件判断和动作应对则由各个相应的实时应用模块负责。这主要是由于实时内存数据库的实时性能要求非常高,如果将过多的时间资源开销显著的处理过程放在实时内存数据库中完成,将显著影响其中各种实时事务的实时性能,甚至可能使得它们无法实时完成。另一方面,实时内存数据库中存在过多的复杂处理过程直接操作实时数据,也容易存在安全隐患,影响实时内存数据库的安全性。出于对实时内存数据库的实时性和安全性的考虑,监控应用中实时内存数据库的主动机制表现为一种推送机制,即当实时内存数据库发现实时数据更新时,就将实时数据更新通知需要的实时应用模块,再由实时应用模块对相关条件进行判断,并据此完成适当的实时处理。
在监控平台的实时内存数据库中采用推送机制可以有效的提高时空效率,这是由于监控应用本身的特征。传统的监控平台中的实时应用模块经常周期性的查询实时内存数据库中的实时数据,一旦发现实时数据发生更新,则进行相应的处理,例如HMI(人机界面)模块会将最新的数据展示给用户;告警模块检查是否满足报警条件,并在需要时报警;数据记录模块对数据进行必要的压缩和统计规整后存储。出于实现简便的考虑,实时应用模块为所有周期性查询的数据采用统一的查询周期,这一查询周期需要短于更新最频繁、即更新周期最短的实时数据的更新周期。这是因为,如果这一查询周期长于某些周期性查询的实时数据的更新周期,那么就可能存在一些实时数据在更新被查询到之前再次更新,从而发生实时数据的更新丢失的状况,这在监控应用中是不允许的。因此这一查询周期必须足够短,然而实时数据的更新与现场的实际情况相关,即使是同一个实时数据,其更新周期也不是固定不变的,而是在不同的时期通常各不相同;而不同的实时数据,各自的更新周期更是存在非常显著的差异,有的是毫秒级别,有的是秒级别,有的则是分钟、甚至是小时级别。这意味着,在采用了足够短的查询周期的情况下,大多数实时数据通常在没有更新的情况下,就被多次不必要的重复查询,这导致了不必要的时空资源浪费;如果监控平台采用C(客户端)/S(服务器)或者B(浏览器)/S(服务器)之类的分布式架构,那么通常还导致不必要的网络资源浪费。并且即使查询周期再短,也依然是一个时间段,因此实时数据更新之后并不是立即,而是必需经过一个时间延迟之后,才被实时应用模块查询到,这导致监控平台的整体实时性能下降。而推送机制可以较好的解决这一问题。由于推送机制仅在实时数据更新时将数据更新推送给实时应用模块,而实时数据不更新时,不会进行推送,因此有效地避免了不必要的时空资源浪费以及网络资源浪费。并且推送机制在实时数据更新时就立刻进行推送,不会像周期性查询一样存在一个时间延迟,因此更有效的保障了实时性能。
由于实时内存数据库的推送机制牵涉实时内存数据库和实时应用模块之间的交互,因此这里简要考查它们之间的交互方式。为了实现实时数据交互,实时应用模块和实时内存数据库之间会建立实时交互通道,通常可以将一条实时交互通道称为一个会话。然而,一个实时应用模块和实时内存数据库之间往往并不只建立一个会话,那是因为典型的实时应用模块通常采用多线程并发设计。例如HMI(人机界面)模块通常划分为多个功能一致的部分,每个部分由一个单独的线程实现,管理一个或者一组界面以及它们涉及的实时数据,并且每一个部分各自和实时内存数据库建立自己独立的会话。监控平台的其它的实时应用模块,如趋势模块、数据存储模块等等的情况也与此类似,都是将模块划分为多个功能一致的部分,每个部分由一个独立的线程实现,管理自身涉及的实时数据,并且每个部分独自和实时内存数据库建立各自的会话,独立实现和实时内存数据库之间的实时数据交互。之所以采用这种方式,是因为存在这样一些优势。首先,多个部分分别基于各自独立的线程运行,互不影响,如果其中一个出现故障,例如僵死,那么其它部分依然可以正确实现其功能,而不至于导致整个实时应用模块无法运行;由于每个部分独自和实时内存数据库建立自己的会话,那么如果一个部分短时间段中存在大量的实时数据交互,不会因此延误其它各部分的实时数据的及时交互;由于绝大部分的现代高性能服务器都是多处理器系统,采用多线程框架,各线程分别交与各个处理器同时执行,可以充分地利用资源,提高性能;并且如果某些工作站上由于资源或者权限的缘故,可以依据具体应用的需求只运行其中的一些部分,从而减少资源开销,并且更有效的保障安全性。
领域专用监控系统的实时内存数据库通常是由预先设计好的对象数据依据专业语义组织和构建而成。因此其实时内存数据库推送的实时数据更新通常也基于数据的专业语义信息决定。例如在电力监控领域中,实时内存数据库通常会推送遥信对象的状态属性的更新、遥测对象的数值属性的更新以及装置对象的通信状态属性的更新等等。而轨道交通监控领域的实时内存数据库则可能推送车站对象的温度属性的更新、湿度属性的更新等等。
然而,专利ZL201010198065.3中的采用了复杂存储结构的实时内存数据库,其目标是支撑通用监控软件平台。这意味着,当用于不同领域的监控应用时,其中存储的是不同种类的对象,而用于综合监控应用时,其中存储的更是多个领域的诸多对象。因此,在设计时,根本无法确定实时内存数据库中存储的是哪些种类的对象,当然更加无法确定需要推送那些对象的什么属性的更新。事实上,实时内存数据库采用这种复杂存储结构就是通过摒弃任何领域相关的专业语义从而获得可以通用于各个领域的灵活性和可扩展性,但这同时也必然意味着实时内存数据库绝不可能基于任何专业语义来决定需要推送的数据更新。
既然实时内存数据库无法确定需要推送的对象的属性的更新,那么就让实时应用模块来告知实时内存数据库需要推送的对象的属性的更新。因此这里采用了带订阅/发布的实时数据推送框架,由实时应用模块向实时内存数据库订阅需要推送的对象的属性的更新,例如在电力监控应用中HMI(人机界面)模块向实时内存数据库订阅遥信对象的状态属性的更新、遥测对象的数值属性的更新等更新。而轨道交通监控应用中告警模块向实时内存数据库订阅车站对象的温度属性的更新、湿度属性的更新等等。而当被订阅的对象的属性更新时,则由实时内存数据库将更新推送给订阅该更新的实时应用模块。由于实时内存数据库存在显著的时空资源限制,因此必须采用有效的策略和合理的框架才能将这看似简单的思路在不显著增加实时内存数据库的空间资源开销,并且保障实时内存数据库的实时性能的前提下实现。
实时内存数据库的推送策略和框架至少要处理两个问题,即被推送数据以及推送目的。简单的说,就是推送什么以及推送给谁。先考查第一个问题。专利ZL201010198065.3中的实时内存数据库的实时数据交互是基于对象的属性,因此其推送的数据是对象的属性的更新,也就是当需要推送的一个对象的一个属性一旦更新,那么实时内存数据库将对这个对象的这个属性的这次更新进行推送。因此需要能够确定哪些对象的哪些属性的更新是需要推送的。然而即使不考虑推送目的,只是将最简单的标识是否需要推送的推送标记设置在每一个对象的每一个属性上,由于标记本身的空间资源开销相比于每一个对象的每一个属性是可比的,因此这将显著增加实时内存数据库的空间资源开销,因而不具备实际可行性。那么如果将推送标记设置在每一个对象而非每一个对象的每一个属性上呢?由于一个对象通常包含了数十甚至上百个属性,而其中大部分属性都不需要推送,因此如果将标记设置在每一个对象上,并且一旦该对象的任意一个属性发生了更新都进行推送,那么显然推送的大部分更新都是不必要的,这将严重浪费实时内存数据库的时间资源,并且显著损害其实时性能,因而也不具备实际可行性。
推送策略和框架的选择与监控应用的特征有关。电力监控应用中的一个典型的实时应用模块可能关注并希望实时内存数据库推送遥测对象的值属性的更新。而轨道交通监控应用中的一个典型实时应用模块可能关注并要求实时内存数据库推送轨道区间对象的行车状态属性的更新。同样,其它领域的监控应用的实时应用模块也类似。这是因为,在合理设计的监控系统或者监控平台中,不会将一个数据的所有功能全部放在一个实时应用模块中实现,而是分而治之,一个实时应用模块实现一类数据的某一种功能,而将无关的功能分散到多个不同的实时应用模块中,从而实现模块的高内聚、低耦合,使得系统平台具有良好的健壮性和可扩展性。因此,监控应用中的典型的实时应用模块通常关注同类的一批对象的同样一组属性。既然一个实时应用模块关注的多个对象属于同一类型,并且关注的又是它们相同的一组属性,那么对每一种对象类型中的每一种属性类型设置推送标记显然更为高效。
在专利ZL201010198065.3中已经说明,实时内存数据库中不仅包含数据信息,同时还引入了类型信息,包括对象类型,以及对象类型中包含的属性类型。在实时内存数据库中的每一种对象类型的每一种属性类型上设置标识是否需要推送的推送标记。当一种对象类型中的一种属性类型的推送标记设为需要时,那么一旦该种类型的任意一个对象中的该种属性发生了更新,实时内存数据库将推送该对象的该属性的这次更新。在专利ZL201010198065.3中已经指明类型信息相比于数据信息所需要的额外空间资源开销几乎可以忽略不计。同样,设置在对象类型中属性类型上的推送标记需要的额外空间资源开销也几乎可以忽略不计。
现在来考虑关于实时内存数据库的推送策略和框架的第二个问题,推送目的,即推送给谁的问题。监控平台的典型实时应用模块通常采用多线程并发设计,将模块划分为多个功能一致的部分,每个部分由一个独立的线程实现,管理自身涉及的实时数据,并且每个部分独自和实时内存数据库建立各自的会话以独立实现实时数据交互。当一种对象类型中的一种属性类型的推送标记设为需要时,那么是否一旦该类型的任何对象中的该种属性发生了更新,实时内存数据库就将该对象的该属性的这次更新通过所有会话推送给所有实时应用模块的所有部分?这显然是不合适的。首先是并非所有实时应用模块都关注该类型对象的该种属性的更新。其次,即使某一个实时应用模块关注全部该类型对象的该种属性的更新,但是由于实时应用模块通常采用多线程并发设计,其多个部分各自管理自身涉及的实时数据,并独自和实时内存数据库建立各自的会话以独立实现实时数据交互,因此每个部分通常只关注一部分而并非全部该类型对象的该种属性的更新,因而也只希望实时内存数据库通过其各自的会话推送这部分该类型对象的该种属性的更新。如果将任何该类型对象的该种属性的更新都通过所有会话推送给所有实时应用模块的所有部分,显然推送了很多不必要的对象的属性的更新,这将严重浪费时空资源以及网络通讯资源,因此需要对对象的属性的更新进行分发,仅将各个实时应用模块中各个部分需要的对象的属性的更新通过各自的会话进行推送。
为了实现对象的属性的更新的分发,建立基于两层映射的分发单元。映射由一组项组成,每一项为一对键——值,即实现由键到值的映射。一个映射中的每一个键必须唯一,不能重复;每一个键仅有唯一的值与之对应。两层映射中的下层映射的每一个键为一对对象标记和属性标记,而对应的值为一个会话标记列表。其表示的含义是由该对象标记和该属性标记标识的对应对象的对应属性的更新需要通过会话标记列表中会话标记标识的各个对应的会话分别进行推送。一个下层映射中的所有键中的对象标记标识的对象为同种类型对象,属于同一对象类型,而属性标记标识的属性也是同一种属性。两层映射中的上层映射的每一个键为一对对象类型标记和属性类型标记,而对应的值为一个下层映射。已知作为上层映射的值的该下层映射中的所有键中的对象标记标识的对象属于同一对象类型,而对应的上层映射的键中的对象类型标记即为该对象类型的标记;作为上层映射的值的该下层映射中的所有键中的属性标记标识的属性也是同一种类型的属性,而对应的上层映射的键中的属性类型标记即为该种属性类型的标记。实际上,上层映射是将各个下层映射按对象类型和属性类型进行了划分。分发单元中只存在唯一的一个上层映射。图1左侧是上层映射的示意图。图1右侧是下层映射的示意图。
现在来考查实时内存数据库的推送机制的订阅过程和发布过程。首先是订阅过程。假设一个实时应用模块中的一个部分通过一个会话与实时内存数据库交互,其会话标记为S a ,该部分希望实时内存数据库推送一个对象的一个属性的更新,对象标记为O a ,属性标记为A a 。对象所属的对象类型的对象类型标记为OT a ,属性对应的属性类型的属性类型标记为AT a 。它通过订阅对象O a 的属性A a 的更新来通知实时内存数据库每当该对象的该属性更新时将更新推送给它。它将包含了对象标记O a 和属性标记A a 的订阅请求通过会话S a 发送给分发单元,分发单元首先确定对象O a 所属的对象类型的对象类型标记OT a 以及属性A a 对应的属性类型的属性类型标记AT a ,并由对象类型标记OT a 以及属性类型标记AT a 构成上层映射的键<OT a , AT a >,并从上层映射中查找包含该键的项,即包含该键的一对键——值。如果该项不存在,那么表示尚无任何应用模块的任何部分订阅任意该类型对象的该种属性的更新,此时由分发单元通知实时内存数据库将其中对象类型OT a 中属性类型AT a 上的推送标记设为需要;同时在分发单元的上层映射中添加包含该键的项,对应的值为一个不包含任何项的空的下层映射。如果上层映射中已存在包含该键的项,那么可以直接继续下一步骤。从上层映射中查找到作为键<OT a , AT a >对应的值的下层映射。由对象标记O a 以及属性标记A a 构成下层映射的键<O a , A a >,并从获得的下层映射中查找包含该键的项,如果该项不存在,那么表示尚无任何应用模块的任何部分订阅该对象的该属性的更新,那么在该下层映射中添加包含该键的项,对应的值为一个空的会话标记列表。如果该下层映射中已存在包含该键的项,那么可以直接继续下一步骤。从该下层映射中查找到作为键<O a , A a >对应的值的会话标记列表。将会话标记S a 加入获得的会话标记列表中。订阅对象O a 的属性A a 的更新的过程完成。图2是订阅过程的示意图。
实时内存数据库的推送机制的取消订阅的过程和订阅的过程正好相反。假设上文中已经订阅了对象O a 的属性A a 的更新的实时应用模块的那个部分因为退出运行等某种原因希望取消实时内存数据库推送对象O a 的属性A a 的更新,它通过取消订阅对象O a 的属性A a 的更新来通知实时内存数据库不再将该对象的该属性的更新推送给它。它将包含了对象标记O a 和属性标记A a 的取消推送请求通过会话S a 发送给分发单元,分发单元首先确定对象O a 所属的对象类型的对象类型标记OT a 以及属性A a 对应的属性类型的属性类型标记AT a ,并由对象类型标记OT a 以及属性类型标记AT a 构成上层映射的键<OT a , AT a >,并从上层映射中查找到作为该键对应的值的下层映射。由对象标记O a 以及属性标记A a 构成下层映射的键<O a , A a >,从获得的下层映射中查找到作为该键对应的值的会话标记列表。将会话标记S a 从获得的会话标记列表中删除。如果删除后会话标记列表为空,则意味着没有任何实时应用模块的任何部分订阅该对象的该属性的更新,将包含该会话标记列表的项从获得的下层映射中删除。如果删除后该下层映射为一个不包含任何项的空映射,那么意味着没有任何实时应用模块的任何部分订阅任意该类型对象的该种属性的更新,将包含该下层映射的项从上层映射中删除,同时由分发单元通知实时内存数据库将其中对象类型OT a 中属性类型AT a 上的推送标记设为不需要。取消订阅对象O a 的属性A a 的更新的过程完成。图3是取消订阅过程的示意图。
实时内存数据库的推送机制的发布过程由对象的属性的更新触发。例如实时内存数据库中的一个对象的一个属性发生了更新,对象标记为O b ,属性标记为A b 。对象所属的对象类型的对象类型标记为OT b ,属性对应的属性类型的属性类型标记为AT b 。首先查找该对象所属的对象类型中该属性对应的属性类型上的推送标记是需要还是不需要,若为不需要,则表示没有任何实时应用模块的任何部分订阅任意该类型对象的该种属性的更新,无需推送该更新。反之若为需要,则将更新信息发送给分发单元。更新信息通常至少包括发生更新的对象的对象标记,发生更新的属性的属性标记,发生更新的对象的属性在更新前的数值和在更新后的数值,以及更新发生的时刻等等。分发单元在接收到更新信息后,首先确定对象O b 所属的对象类型的对象类型标记OT b 以及属性A b 对应的属性类型的属性类型标记AT b ,并由对象类型标记OT b 以及属性类型标记AT b 构成上层映射的键<OT b , AT b >,从上层映射中查找到作为该键对应的值的下层映射。由对象标记O b 及属性标记A b 构成下层映射的键<O b ,A b >,并从获得的下层映射中查找包含该键的项,如果该项不存在,那么表示尚无任何应用模块的任何部分订阅该对象的该属性的更新,丢弃更新信息。否则从该下层映射中查找到作为键<O b , A b >对应的值的会话标记列表。向获得的会话标记列表中的每一个会话标记对应的会话推送更新信息。对于实时内存数据库中的每一个对象的每一个属性的每一次更新均遵循上述步骤从而实现发布过程。图4是推送过程的示意图。
是否有必要将分发单元合并入现有的实时内存数据库框架?表面上看,构建独立的分发单元将造成更多的空间资源开销;并且因为需要首先将对象的属性的更新由实时内存数据库发送至分发单元,而不是直接分发,因而也造成更多的时间资源开销。然而实际上,将分发单元这种相对独立的功能单独实现,可以有效的实现软件功能部分的高内聚、低耦合,从而使得系统具有良好的健壮性和可扩展性;同时由于现代监控平台通常具有分布式框架,因而采用这种相对独立的功能单独实现的方式往往可以更均衡的分布负载,从而节省而非增加时空资源开销和网络通讯开销。举一个简单的例子可以清晰的展示这一点。现代监控平台通常采用C(客户端)/S(服务器)或者B(浏览器)/S(服务器)的分布式框架。为了便于说明,这里将服务器称为主端,将客户端和浏览器统称为从端。从端上运行了各种实时应用模块。如果将分发单元合并入实时内存数据库,那么有两种构架方式。一种是在从端运行整个实时内存数据库以及分发单元,并且从端的实时内存数据库需要和主端的保持实时同步。由于从端的实时应用模块通常只关心一部分实时数据,在从端运行包含所有实时数据的整个实时内存数据库显然将导致很多不必要的时空资源开销;同时由于从端的实时内存数据库需要和主端的保持实时同步,因此也将造成大量额外的网络通讯开销。另一种方式是仅在主端运行整个实时内存数据库以及分发单元,从端的各实时应用模块的各个部分通过网络与其建立会话。采用这种方式,实时内存数据库和分发单元都不会造成从端的时空资源开销。然而,这种方式存在一个问题,由于多个实时应用模块经常会订阅相同的对象的属性的更新,例如HMI(人机界面)模块、告警模块和趋势模块可能都会订阅遥测对象的值属性的更新,这种情况在监控应用中很常见。而会话又是通过网络建立的,因此这意味着需要通过网络发送多份同样的更新,从而造成网络通讯开销成倍增长,而网络通常是分布式系统的性能瓶颈,这将严重威胁监控平台的实时性能。而将实时内存数据库和分发单元分开,可以在主端运行实时内存数据库,而在从端运行分发单元。这样当被订阅的对象的属性更新时,只需要由实时内存数据库通过网络发送一份更新给分发单元,再由分发单元通过本地通讯的方式分发给所有订阅该更新的实时应用模块的部分。由于本地通讯的时空资源开销相对网络通讯而言几乎可以忽略不计,因此这种方式可以避免网络通讯开销的显著增加,从而有效的保障监控平台的实时性能,并且将实时内存数据库和分发单元分置于主、从两端运行可以有效的均衡负载。
采用这种实时内存数据库的带订阅/发布的推送框架,会存在一些额外的资源开销。由于在对象类型中的属性类型上设置推送标记,因此如果部分而非全部一种类型的对象的某种属性的更新被订阅,那么当一个没有被订阅的该类型的对象的该种属性发生了更新时,更新会首先由实时内存数据库发送给分发单元,然后再被丢弃,由此造成了一些额外的多余的资源开销。由于监控应用中的一个典型实时应用模块通常实现一类数据的某一种功能,因而典型的实时应用模块通常关注同类的一批对象的同样一组属性。虽然其各个部分分别管理并订阅各自的实时数据,但是总体上一个模块将订阅大部分这种类型对象的同种属性的更新,而不被订阅的该类型对象相比之下只是很小的一部分,因而由此造成的额外开销是有限的。因此这种实时内存数据库的带订阅/发布的推送框架在时空资源开销,网络资源开销以及实时性能等各方面取得了一个优化的平衡。
本文针对专利ZL201010198065.3中为支持通用监控软件平台而采用复杂存储结构的实时内存数据库,无法利用领域相关的任何专业语义的问题,通过充分考查实时应用模块和实时内存数据库交互行为的典型特征,在实时内存数据库中的对象类型中的属性类型上设置推送标记,并且单独构建包括两层映射的分发单元,在时空资源开销、网络资源开销以及实时性能等因素之间实现了优化的平衡,从而在实时内存数据库的空间资源开销不显著增加的前提下,实现了实时内存数据库的带订阅/发布的推送框架,有效的提升了监控平台的整体实时性能。
以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。
Claims (8)
1.一种实时内存数据库的带订阅/发布的数据推送框架,包括独立于实时内存数据库的分发单元,所述的分发单元基于上层映射和下层映射建立,其特征在于:所述的上层映射和下层映射分别由一组项组成,每一项为一对键——值;所述的上层映射的每一个键为一对对象类型标记和属性类型标记,对应的值为一个下层映射;所述的下层映射的每一个键为一对对象标记和属性标记,对应的值为一个会话标记列表;在实时内存数据库中的对象类型中的属性类型上设置推送标记。
2.根据权利要求1所述的实时内存数据库的带订阅/发布的数据推送框架,其特征在于,一个下层映射中的所有键中的对象标记标识的对象为同种类型对象,这个下层映射作为值对应的上层映射的键中的对象类型标记即为该种对象类型的标记;而一个下层映射中的所有键中的属性标记标识的属性也是同种属性,这个下层映射作为值对应的上层映射的键中的属性类型标记即为该种属性类型的标记。
3.根据权利要求1所述的实时内存数据库的带订阅/发布的数据推送框架,其特征在于,一对对象标记和属性标记标识的对应对象的对应属性的更新需要通过对应会话标记列表中会话标记标识的各个对应的会话分别进行推送。
4.根据权利要求1所述的实时内存数据库的带订阅/发布的数据推送框架,其特征在于:一个映射中每一个键唯一,每一个键仅有唯一的值与之对应;分发单元只存在一个上层映射。
5.根据权利要求1-4任意一项所述的实时内存数据库的带订阅/发布的数据推送框架的实现方法,其特征在于,订阅过程的实现过程如下:
(1)一个实时应用模块中的一个部分通过会话标记Sa向分发单元发送包含对象标记Oa和属性标记Aa的订阅请求;
(2)分发单元确定对象标记Oa所属的对象类型的对象类型标记OTa以及属性标记Aa对应的属性类型的属性类型标记ATa,并由对象类型标记OTa以及属性类型标记ATa构成上层映射的键<OTa,ATa>,并从上层映射中查找包含该键的项,即包含该键的一对键——值;如果该项不存在,则进入步骤(3);如果上层映射中已存在包含该键的项,那么继续步骤(4);
(3)由分发单元通知实时内存数据库将对象类型标记OTa中属性类型标记ATa上的推送标记设为需要;同时在分发单元的上层映射中添加包含该键的项,对应的值为一个不包含任何项的空的下层映射;进入步骤(4);
(4)从上层映射中查找到作为键<OTa,ATa>对应的值的下层映射;由对象标记Oa以及属性标记Aa构成下层映射的键<Oa,Aa>,并从获得的下层映射中查找包含该键的项,如果该项不存在,则进入步骤(5);如果该下层映射中已存在包含该键的项,那么可以直接继续步骤(6);
(5)在该下层映射中添加包含该键的项,对应的值为一个空的会话标记列表;继续步骤(6);
(6)从该下层映射中查找到作为键<Oa,Aa>对应的值的会话标记列表;将会话标记Sa加入获得的会话标记列表中,订阅对象标记Oa的属性标记Aa的更新的过程完成。
6.根据权利要求1-4任意一项所述的实时内存数据库的带订阅/发布的数据推送框架的实现方法,其特征在于,取消订阅的实现过程如下:
(1)一个实时应用模块中的一个部分通过会话标记Sa将包含对象标记Oa和属性标记Aa的取消推送请求发送给分发单元;
(2)分发单元首先确定对象标记Oa所属的对象类型的对象类型标记OTa以及属性标记Aa对应的属性类型的属性类型标记ATa,并由对象类型标记OTa以及属性类型标记ATa构成上层映射的键<OTa,ATa>,并从上层映射中查找到作为该键对应的值的下层映射;
(3)由对象标记Oa以及属性标记Aa构成下层映射的键<Oa,Aa>,从获得的下层映射中查找到作为该键对应的值的会话标记列表;将会话标记Sa从获得的会话标记列表中删除;如果删除后会话标记列表为空,则进入步骤(4);反之结束;
(4)将包含该会话标记列表的项从获得的下层映射中删除;如果删除后该下层映射为一个不包含任何项的空映射,那么进入步骤(5);反之结束;
(5)将包含该下层映射的项从上层映射中删除,同时由分发单元通知实时内存数据库将其中对象类型标记OTa中属性类型标记ATa上的推送标记设为不需要;取消订阅对象标记Oa的属性Aa的更新的过程完成。
7.根据权利要求1-4任意一项所述的实时内存数据库的带订阅/发布的数据推送框架的实现方法,其特征在于:实时内存数据库的数据推送机制的发布过程由对象的属性的更新触发。
8.根据权利要求7所述的实时内存数据库的带订阅/发布的数据推送框架的实现方法,其特征在于,实时内存数据库的每一个对象的每一个属性的每一次更新的发布过程如下:
实时内存数据库中对象标记Ob的属性标记Ab发生更新;
查看对象标记Ob对应的对象类型中属性标记Ab对应的属性类型上的推送标记是需要还是不需要,若为不需要,则无需推送该更新;反之若为需要,则将更新信息从实时内存数据库发送给分发单元;
分发单元在接收到更新信息后,首先确定对象标记Ob所属的对象类型的对象类型标记OTb以及属性标记Ab对应的属性类型的属性类型标记ATb,并由对象类型标记OTb以及属性类型标记ATb构成上层映射的键<OTb,ATb>,从上层映射中查找到作为该键对应的值的下层映射;由对象标记Ob及属性标记Ab构成下层映射的键<Ob,Ab>,并从获得的下层映射中查找包含该键的项,如果该项不存在,那么丢弃更新信息;否则从该下层映射中查找到作为键<Ob,Ab>对应的值的会话标记列表,向获得的会话标记列表中的每一个会话标记对应的会话推送更新信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510072018.7A CN104657467B (zh) | 2015-02-11 | 2015-02-11 | 一种实时内存数据库的带订阅/发布的数据推送框架 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510072018.7A CN104657467B (zh) | 2015-02-11 | 2015-02-11 | 一种实时内存数据库的带订阅/发布的数据推送框架 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104657467A CN104657467A (zh) | 2015-05-27 |
CN104657467B true CN104657467B (zh) | 2017-09-05 |
Family
ID=53248595
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510072018.7A Active CN104657467B (zh) | 2015-02-11 | 2015-02-11 | 一种实时内存数据库的带订阅/发布的数据推送框架 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104657467B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106294888B (zh) * | 2016-10-24 | 2018-10-26 | 北京亚控科技发展有限公司 | 一种基于时空数据库的对象数据的订阅方法 |
CN109542892B (zh) * | 2018-10-19 | 2020-10-23 | 北京全路通信信号研究设计院集团有限公司 | 一种实时数据库的关系化实现方法、装置及系统 |
CN110083539B (zh) * | 2019-04-29 | 2020-11-13 | 广州华多网络科技有限公司 | 一种数据竞争检测方法及装置 |
CN111125126A (zh) * | 2019-11-29 | 2020-05-08 | 浪潮(北京)电子信息产业有限公司 | 一种存储状态管理方法、系统、电子设备及存储介质 |
CN111770182B (zh) * | 2020-06-30 | 2022-05-31 | 北京百度网讯科技有限公司 | 数据推送方法和装置 |
CN112187896A (zh) * | 2020-09-18 | 2021-01-05 | 成都精灵云科技有限公司 | 支持改动实时通知和数据实时同步的缓存系统及方法 |
CN112180889A (zh) * | 2020-11-09 | 2021-01-05 | 西安热工研究院有限公司 | 一种dcs监控后台系统采集传输诊断数据的方法 |
CN113986444A (zh) * | 2021-11-19 | 2022-01-28 | 深圳前海移联科技有限公司 | 软件系统提示语的通用管理方法、计算机设备和存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1645372A (zh) * | 2005-02-25 | 2005-07-27 | 中兴通讯股份有限公司 | 一种实时内存数据库通用约束的实现方法 |
CN101315628A (zh) * | 2007-06-01 | 2008-12-03 | 华为技术有限公司 | 内存数据库系统及实现内存数据库的方法和装置 |
CN101894132A (zh) * | 2010-06-10 | 2010-11-24 | 南京国电南自轨道交通工程有限公司 | 采用双高速引擎的面向对象实时数据库存储方法 |
CN102880678A (zh) * | 2012-09-11 | 2013-01-16 | 哈尔滨工程大学 | 一种嵌入式实时内存数据库 |
CN103634391A (zh) * | 2013-11-26 | 2014-03-12 | 上海合鸿信息技术有限公司 | 一种实现会话共享的方法和系统 |
CN103853766A (zh) * | 2012-12-03 | 2014-06-11 | 中国科学院计算技术研究所 | 一种面向流式数据的在线处理方法及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2003258238A1 (en) * | 2002-08-20 | 2004-03-11 | Tokyo Electron Limited | Method for processing data based on the data context |
US20050071485A1 (en) * | 2003-09-26 | 2005-03-31 | Arun Ramagopal | System and method for identifying a network resource |
-
2015
- 2015-02-11 CN CN201510072018.7A patent/CN104657467B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1645372A (zh) * | 2005-02-25 | 2005-07-27 | 中兴通讯股份有限公司 | 一种实时内存数据库通用约束的实现方法 |
CN101315628A (zh) * | 2007-06-01 | 2008-12-03 | 华为技术有限公司 | 内存数据库系统及实现内存数据库的方法和装置 |
CN101894132A (zh) * | 2010-06-10 | 2010-11-24 | 南京国电南自轨道交通工程有限公司 | 采用双高速引擎的面向对象实时数据库存储方法 |
CN102880678A (zh) * | 2012-09-11 | 2013-01-16 | 哈尔滨工程大学 | 一种嵌入式实时内存数据库 |
CN103853766A (zh) * | 2012-12-03 | 2014-06-11 | 中国科学院计算技术研究所 | 一种面向流式数据的在线处理方法及系统 |
CN103634391A (zh) * | 2013-11-26 | 2014-03-12 | 上海合鸿信息技术有限公司 | 一种实现会话共享的方法和系统 |
Non-Patent Citations (3)
Title |
---|
内存数据库技术在电网实时监测中的应用研究;刘斌 等;《计算机工程与设计》;20080731;第29卷(第14期);第3798-3801页 * |
实时内存数据库的设计与实现;张琪;《中国优秀硕士学位论文全文数据库 信息科技辑》;20081215;第I138-160页 * |
电力推进船舶监控管理系统的实时数据通信平台;牟宝璐;《中国优秀硕士学位论文全文数据库 工程科技Ⅱ辑 》;20100815;第C036-40页 * |
Also Published As
Publication number | Publication date |
---|---|
CN104657467A (zh) | 2015-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104657467B (zh) | 一种实时内存数据库的带订阅/发布的数据推送框架 | |
Ma et al. | Large‐scale demand driven design of a customized bus network: A methodological framework and Beijing case study | |
CN105407159B (zh) | 物流运输位置服务系统 | |
CN109978741A (zh) | 基于云平台的智慧交通信息服务应用系统及方法 | |
CN105731209A (zh) | 基于物联网的电梯故障智能预测与诊断及维护方法 | |
CN109677465A (zh) | 用于轨道交通综合监控系统的分布式实时系统架构 | |
CN104618455B (zh) | 一种通用缓存系统及其方法 | |
CN106951694A (zh) | 一种电力系统二次设备在线监测系统自适应建模方法 | |
CN107697107A (zh) | 一种列车组故障预测与健康管理地面智能处理系统及方法 | |
CN104966330A (zh) | 基于云计算机的远程机房智能巡检系统 | |
CN104933535A (zh) | 一种智能监控操作票管理方法及其系统 | |
CN106021370A (zh) | 内存数据库实例的管理方法及装置 | |
CN110182244A (zh) | 一种基于云计算和ai智能的有轨电车云平台 | |
CN111967789B (zh) | 一种配电自动化终端仓库调试下放调试系统 | |
CN106777079A (zh) | 一种日志数据可视化分析系统及方法 | |
CN106327858A (zh) | 一种基于一机三屏技术的交通管理指挥平台系统 | |
Wei et al. | Establishment and analysis of the supernetwork model for Nanjing metro transportation system | |
CN107608285B (zh) | 一种综合监控系统 | |
CN113902583B (zh) | 利用低压网络设备数据的配网侧运维方法及系统 | |
CN109657000B (zh) | 一种轨道交通综合监控系统的实时数据同步方法及装置 | |
CN114757797A (zh) | 一种基于数据模型驱动的电网资源业务中台架构方法 | |
CN114148380A (zh) | 一种线网行车监视系统 | |
Lai et al. | Collaborative optimization model for the design and operation of feeder bus routes based on urban metro | |
CN105897914A (zh) | 一种ems系统iii区高效访问i区信息的系统及方法 | |
CN109558220A (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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 210032 Jiangsu province Nanjing city Pukou high tech Zone Huidalu No. 9 Applicant after: Nanjing Guodian Nanzi 710086 Automation Co. Ltd. Address before: Nanjing City, Jiangsu province 210032 Spark Road, Pukou hi tech Development Zone No. 8 Applicant before: Nanjing Guodian Nanzi Meizhuo Control System Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |