一种cimxml文档的高效内存模型组织的访问方法

文档序号:8319078阅读:233来源:国知局
一种cimxml文档的高效内存模型组织的访问方法
【技术领域】
[0001] 本发明涉及CIMXML文档解析结果的内存表示,具体来说涉及提供一种能够实现 对大规模CIMXML文档的低空间占用的内存模型的高效访问方法。
【背景技术】
[0002] CIM是公共信息模型(Common Information Model),一个综合的电力系统管理过 程信息模型,可以满足电力系统管理与信息交换的大部分应用的需要。
[0003] XML是可扩展标记语言(extensible Markup Language)。是标准通用标记语言 SGML (Standard Generalized Markup Language)的一个子集,是针对 Web 应用的元标记语 言,可以用来定义各种应用领域的标记词汇,可以用来表达各种类型的数据/信息。
[0004] CIM XML是一种使用标准的XML对CIM模型进行描述的格式。
[0005] 在电力企业应用集成领域,IEC 61970和IEC 61968标准提供了良好的应用集成 框架和基础信息模型--IEC TC57公共信息模型(Common Information Model,CIM)。CIM 是一个综合的电力系统管理过程信息模型,可以满足电力系统管理与信息交换的大部分应 用的需要。
[0006] CM是电力系统的一个逻辑模型,描绘电力系统运行管理中涉及的各种对象的类 型、这些类型所具有的性质以及它们之间的关系。所以,CIM描绘的是模式(Schema)信 息,或元数据(metadata)模型,具体的电力系统数据模型是它的实例。IEC 61970-452CM Model Exchange Spec (CIM模型交换规范)规定了定义特殊的电力系统模型交换所要求的 CIM 子集的指南。IEC 61970-503CM XML Model Exchange Format 定义的 CM XML 格式可 以用来传输特定CIM子集的电力系统模型。
[0007] CIM XML是一种使用标准的XML(可扩展标记语言,extensible Markup Language) 对CIM模型进行描述的格式,XML是标准通用标记语言SGML (Standard Generalized Markup Language)的一个子集,是针对Web应用的元标记语言,可以用来定义各种应用领域的标 记词汇,可以用来表达各种类型的数据/信息。但是,XML本身并不解决如何描绘应用领 域知识本体(Ontology)的问题,也就是web上信息(数据、知识)模型的定义问题。W3C RDF (Resource Description Framework)就是用来描绘Web资源及其性质的信息的一种数 据定义语言。如果把Web资源的概念扩展为任何可以用URI标识的东西,那么,它们的信息 都可以用RDF来描绘。RDF通常采用XML语法表达,可以作为各种应用程序和系统的互操作 的基础。
[0008] 在电力企业应用集成领域进行电力信息系统交换时,如何高效的对CM XML文档 进行处理是其中一个关键的技术课题,国内外许多电力厂商及电力科研机构都对此问题进 行了研宄,提出了各自的解决方案。
[0009] 现有技术之一使用标准的XML DOM处理器,使用XML的DOM解析器进行解析,解析 结果直接使用DOM内存模型。XML DOM是XML Document Object Model的缩写,即XML文档 对象模型。DOM将XML文档作为一个树形结构,而树叶被定义为节点。
[0010] XML DOM把XML文档视为一种树结构。这种树结构被称为节点树。XML DOM内存 模型严格按照XML节点树模型进行映射,可通过这棵树访问所有节点。可以修改或删除它 们的内容,也可以创建新的元素。这颗节点树展示了节点的集合,以及它们之间的联系。这 棵树从根节点开始,然后在树的最低层级向文本节点长出枝条。节点树中的节点彼此之间 都有等级关系。父、子和同级节点用于描述这种关系。父节点拥有子节点,位于相同层级上 的子节点称为同级节点(兄弟或姐妹)。
[0011] XML DOM内存模型组织方式的缺点之一在于其树形组织结构,由于大部分情形下, XML元素本身的上下层级结构与XML文档描述的业务模型并不一致,而XML DOM模型却为了 维持XML节点间的层次关系不仅付出了巨大的内存占用开销,而且在构建过程中需要为这 种上下层级关系建立索引,还增加了运行时开销。经实际测试,一个CM XML模型的DOM内 存描述有可能高达其文本描述大小的10倍以上。
[0012] XML DOM内存模型组织方式的缺点之二在于其内存中对与XML节点本身的属 性-取值映射表采用数组构建方式构建,而导致提供对特定属性的访问时,只能采用逐个 比较属性名的方式获取对应取值,这种方式,固然降低解析构建过程建立属性名到属性取 值的映射的运行开销,但是在对XML节点遍历并获取节点属性时,导致效率低下。
[0013] XML DOM内存模型组织方式的最大缺点在于它仅仅是一个通用的XML内存模型, 其组织并未考虑CIM XML所描述的电力数据本身的特点,这样就导致在最终使用时,对电力 对象属性取值按类型批量访问的效率低下。例如在遍历某种类型的所有电力对象的某个或 几个属性时,需要遍历整个DOM节点树,首先找到目标类型的所有电力对象的XML节点,然 后解析这些XML节点得到一个电力对象的完整描述,然后再从中抽取目标属性的取值,显 然,这一方式的执行效率是很低的。
[0014] 另外一种常见的方式是根据XML DOM方式的弱点,进行进一步的优化而得到解决 方案。其做法是在解析阶段采用更高效的XML SAX解析方式,而内存模型采用对应于CIM XML特点的{:电力对象标识,Map〈属性名,取值>}的内存组织方式。
[0015] XML SAX (Simple API for XML)解析方式是一种 XML DOM 解析的替代方法。XML SAX逐行扫描文档,一边扫描一边解析,但是它本身并不提供XML解析结果的内存描述。
[0016] 在这种解决方案中,CM XML文档解析的结果被以如下形式在内存中组织:
[0017] 每个电力对象以一个统一的内存结构描述,这个内存结构组织形式为 CMXmlObj {:电力对象URI标识,Map〈属性名,取值>},即包含一个电力对象的URI标识,一 个电力对象的属性名到其属性取值的映射。
[0018] 每一种电力对象类型以一个统一的内存结构描述,这个内存结构组织为 CMXmlObjType {类型名字,Map〈电力对象URI标识,CMXmlObj〉},即包含类型名字和一个 本类型对象的URI标识到其内存描述的索引。
[0019] 这种组织方式的缺点在于CMXmlObj内存结构中的Map〈属性名,取值〉映射结 构,这种将Map映射结构直接放置到对象级别的方式,引发两个问题,一个是内存效率问 题,一个是属性取值按类型批量访问时效率低下问题。
[0020] 首先,Map数据结构的特点是具有较高的搜索效率,而这是通过空间换时间的方 式,为了加速查询效率,其内部Entry存储数组空闲较多,也即是占用更大的内存的方式来 完成,而一个电网模型通常包含大量对象,例如,一个地区级输电网的对象数量都是百万级 另IJ,包含配电网描述对象时数量更大,这就会导致
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1