图结构的xml处理方法及装置的制作方法

文档序号:6373749阅读:128来源:国知局
专利名称:图结构的xml处理方法及装置的制作方法
技术领域
本发明涉及网络安全领域,更为具体地,涉及对用于表示网络攻击关系的图结构进行XML处理的方法和装置。
背景技术
由于网络的飞速发展,有关网络的攻击手段也层出不穷,现代的网络攻击关系非常复杂,采用有向结构(以下简称“图结构”)来表示一个完整的网络攻击关系成为现有技术的主流。根据图论的定义,图G由两个集合V和E组成,记为G = (V,E)。其中,V是节点的有限非空集合,E是节点的二元组集合,节点二元组成为边。节点的度是与该节点邻接的边数。在有向图中,节点的度分为入度和出度。有向图G的节点V的入度被定义为指向节点 V的边数,出度被定义为从节点V发出的边数。比较常用图结构存储方法采用数据结构,该数据结构包括邻接矩阵、邻接表、十字邻接表、邻接多重表。图I是以邻接表为例的图结构和其对应的数据结构的示图。如图I所示,节点I与节点4通过有向边相连,节点I的出度为1,入度为O。节点2与节点4和节点5通过有向边相连,节点2的出度为2,入度为O。节点3与节点5通过有向边相连,节点3的出度为1,入度为O。节点4的出度为0,入度为2。节点5的出度为0,入度为2。图结构是最广泛使用的数学结构,比如可以广泛用于电路分析、最短路径、工程规划、化合物分类、统计力学、自动化、语言学、社会科学、网络攻击等等。然而,目前图结构在实际应用时,具有如下的缺陷首先,由于图结构基于数据结构存储,当图结构发生变化时(由于网络攻击关系会经常变化,因此导致图结构也需对应变化),需要维护图结构对应的数据结构,而数据结构的维护技术难度较大,由此导致图结构的修改难度较大。其次,由于图结构没有校验机制,对应的数据结构也没有校验机制,导致在图结构出错时,系统通常无法自动校验,可用性不高。另外,在现有的数据结构中,很难描述图结构中的与同一节点相关联的(由该节点发出或者到达该节点)的多条边之间的关系,比如这些边之间是“与”关系还是“或”关系,而这种关系是描述网络攻击关系所必须的部分。图2示出了一个蠕虫攻击的过程。在图2中,每个方块可以被认为是一个节点,反向箭头被认为是连接节点的边。这里,节点表示网络攻击中的一个环节,而边表示攻击的顺序。举个例子,攻击场景可以分五个阶段表示,信息探测、尝试攻击、权限提升、深入攻击、拒绝服务。其中每个阶段可以用一个节点来表示,后一个阶段要等前一个阶段发生过,才可以触发,即阶段有先后关系,这种先后关系就是边。如图2所示,与节点“至少存储10次”相关联的四条边之间的关系是或关系,整个图结构表示的含义为,60秒内防火墙和入侵检测系统报出相同目的IP的报警至少10次,报警有四种类型,其中IP欺骗、拒绝连接、非法登录来自于防火墙,资源不足导致拒绝服务来自于入侵检测系统。而这在图I的右图示出的数据结构中无法描述。
此外,在现有的图结构描述方式中,很难描述图结构中的节点的坐标位置和节点的大小,从而不利于图结构的图形显示。而且,在现有的图结构描述方式中,比如在利用邻接矩阵描述时,需要计算图中存在多少条边,或确定图中节点是否连通,计算时间复杂度大,通常为0(n2),其中η是节点个数。另外,在利用邻接表描述时,入度计算复杂,需要频繁获取每个节点相邻的所有节点,或需要反向邻接表。而且,在使用反向邻接表时,如果需要修改图结构时,则还需要再次生成反向邻接表。十字邻接表是邻接表的一种变种,将图结构的邻接表和反向邻接表结合起来形成的一种链表,在利用十字邻接表描述时,操作复杂,尤其是图结构中节点和边比较多时,表现能力较差。邻接多重表是邻接表的一种变种,只能表示无向图结构。因此,利用邻接多重表无法描述有向结构。

发明内容
鉴于上述,本发明的目的在于提供一种基于XML的图结构存储方法及装置,该方法及装置可以在图结构发生改变时,直接修改XML文件中的属性信息,从而使得图结构的修改难度大大降低。本发明的另一目的在于提供一种基于XML文件的图结构绘制方法及装置。根据本发明的一个方面,提供了一种基于XML的图结构存储方法,包括获取所绘制的图结构信息、以及所述图结构中的各图形元素及其图形元素信息,其中,所述图形元素包括节点、边以及用于表示边与边之间的关联关系的条件元素;所述节点信息包括属性信息和元素信息,所述边信息包括属性信息,以及所述条件元素信息包括属性信息和元素信息;基于预先定义的XML限定规则,利用所述图结构信息和所述各图形元素及其图形元素信息,生成用于描述所绘制的图结构的XML文件;以及将所生成的XML文件存储在存储装置中,其中,所述图结构信息包括图结构编号;所述节点信息中的属性信息包括节点编号、节 点类型、节点位置、节点大小和节点样式,所述节点信息中的元素信息包括条件元素和边引用;所述边信息中的属性信息包括边编号、该边的后续节点和边样式;以及所述条件元素是节点的子元素,并且所述条件元素信息中的属性信息包括条件元素类型、条件元素位置、条件元素大小和条件元素样式,所述条件元素信息中的元素信息包括边引用或条件元素。在上述方面的一个或多个示例中,所述预先定义的XML限定规则可以包括文档类型定义(DTD )或XML模式定义(XSD )。在上述方面的一个或多个示例中,一旦获取图结构中的各图形元素及其图形元素信息,就生成XML文件中的与该图形元素对应的部分,或者在获取图结构的所有图形元素及其图形元素信息后,才生成XML文件。根据本发明的另一方面,提供了一种基于XML的图结构存储装置,包括信息获取单元,用于获取所绘制的图结构信息、以及所述图结构中的各图形元素及其图形元素信息,其中,所述图形元素包括节点、边以及用于表示边与边之间的关联关系的条件元素;所述节点信息包括属性信息和元素信息,所述边信息包括属性信息,以及所述条件元素信息包括属性信息和元素信息;XML文件生成单元,用于基于预先定义的XML限定规则,利用所述图结构信息和所述各图形元素及其图形元素信息,生成用于描述所绘制的图结构的XML文件;以及存储单元,用于将所生成的XML文件存储在存储装置中,其中,所述图结构信息包括图结构编号;所述节点信息中的属性信息包括节点编号、节点类型、节点位置、节点大小和节点样式,所述节点信息中的元素信息包括条件元素和边引用;所述边信息中的属性信息包括边编号、该边的后续节点和边样式;以及所述条件元素是节点的子元素,并且所述条件元素信息中的属性信息包括条件元素类型、条件元素位置、条件元素大小和条件元素样式,所述条件元素信息中的元素信息包括边弓I用或条件元素。根据本发明的另一方面,提供了一种基于XML文件的图结构绘制方法,其中,所述XML文件如上所述生成,所述图结构绘制方法包括对XML文件中的与各个节点和边相关的部分进行解析;基于对各个节点部分进行解析后得到的属性信息和元素信息,绘制各个节点的图形表示;基于对各个边部分进行解析后得到的属性信息,绘制边与该边的后续节点之间的连接关系的图形表示;以及按照边与边引用进行重合的方式,对所绘制出的节点的图形表示以及所绘制出的边与该边的后续节点之间的连接关系的图形表示进行重合处理,以得到图结构的图形表示。在上述方面的一个或多个示例中,基于对各个节点部分进行解析后得到的属性信 息和元素信息,绘制各个节点的图形表示包括对于头节点,根据该节点的节点编号、节点位置、节点大小、节点样式以及边引用,绘制该节点以及由该节点发出的有向边的图形表示;以及对于非头节点,则根据该节点的节点编号、节点位置、节点大小、节点样式,绘制该非头节点的图形表示。在上述方面的一个或多个示例中,如果非头节点的元素信息中包括条件元素,则从该非头节点中抽取出条件元素的属性信息和元素信息;基于条件元素的属性信息和元素信息,绘制该条件元素;以及将该条件元素的图形表示连接到该非头节点的图形表示。在上述方面的一个或多个示例中,如果非头节点中多种嵌套有条件元素,则对于每层嵌套,从条件元素中抽取出被嵌套的另一条件元素的属性信息和元素信息;基于该另一条件元素的属性信息和元素信息,绘制该另一条件元素;以及将该另一条件元素的图形表示与该条件元素的图形表示连接。根据本发明的另一方面,提供了一种基于XML文件的图结构绘制装置,其中,所述XML文件如上所述生成,所述图结构绘制装置包括解析单元,用于对XML文件中的与各个节点和边相关的部分进行解析;节点绘制单元,用于基于对各个节点部分进行解析后得到的属性信息和元素信息,绘制各个节点的图形表示;连接关系绘制单元,用于基于对各个边部分进行解析后得到的属性信息,绘制边与该边的后续节点之间的连接关系的图形表示;以及重合处理单元,用于按照边与边引用进行重合的方式,对所绘制出的节点的图形表示以及所绘制出的边与该边的后续节点之间的连接关系的图形表示进行重合处理,以得到图结构的图形表示。在上述方面的一个或多个示例中,所述节点绘制单元可以包括头节点绘制模块,用于对于头节点,根据该节点的节点编号、节点位置、节点大小、节点样式以及边引用,绘制该节点以及由该节点发出的有向边的图形表示;以及非头节点绘制模块,用于对于非头节点,则根据该节点的节点编号、节点位置、节点大小、节点样式,绘制该非头节点的图形表示。此外,如果非头节点的元素信息中包括条件元素,则所述非头节点绘制模块还可以包括抽取模块,用于从该非头节点中抽取出条件元素的属性信息和元素信息;条件元素绘制模块,用于基于条件元素的属性信息和元素信息,绘制该条件元素;以及连接模块,用于将该条件元素的图形表示连接到该非头节点的图形表示。利用上述基于XML的图结构存储方法,可以很方便地得知各个节点在图中展示的位置、大小和样式,并且能够支持直接修改XML,达到调整节点在图中展示的位置、大小和样式,由此使得图结构的修改难度大大降低,易于维护。此外,在上述图结构存储方法中,由于采用了 XML限定规则,从而使得系统可以自动进行图结构校验,系统可用性更高。而且,利用上述图结构存储方法,可以描述到达同一节点的多条边之间的关联关系(比如与关系、或关系),从而使得图结构能够适用于更广的场景。此外,利用上述图结构存储方法,可以大大降低计算复杂度。为了实现上述以及相关目的,本发明的一个或多个方面包括后面将详细说明并在权利要求中特别指出的特征。下面的说明以及附图详细说明了本发明的某些示例性方面。然而,这些方面指示的仅仅是可使用本发明的原理的各种方式中的一些方式。此外,本发明 旨在包括所有这些方面以及它们的等同物。


根据下述参照附图进行的详细描述,本发明的上述和其他目的、特征和优点将变得更加显而易见。在附图中图I示出了现有技术中的有向结构以及用于存储图结构的数据结构的示图;图2示出了螺虫攻击过程的示例的示意图;图3A示出了根据本发明的一个示例的基于XML限定规则的图结构的XSD的示图;图3B示出了根据本发明的一个示例的基于XML限定规则的图结构中的节点的结构的示图;图3C示出了根据本发明的一个示例的基于XML限定规则的图结构中的边的结构的示图;图3D示出了根据本发明的一个示例的基于XML限定规则的条件元素的结构的示图;图3E示出了根据本发明的一个示例的基于XML限定规则的边引用的结构的示图;图4示出了根据本发明的实施例的基于XML的图结构存储方法的流程图;图5示出了根据本发明的基于XML文件绘制出的一个场景的图结构的一个示例的示图;图6示出了根据本发明的实施例的基于XML限定规则的图结构存储装置的方框示意图;图7示出了三层结构关系;图8示出了根据本发明的实施例的基于XML文件的图结构绘制方法的流程图;图9A和9B示出了根据本发明的基于XML文件的图结构绘制过程的一个示例的示图;图10示出了根据本发明的实施例的基于XML文件的图结构绘制装置的方框示意图11示出了图10中的节点绘制单元的方框示意图;和图12示出了图11中非头节点绘制模块的方框示意图。在所有附图中相同的标号指示相似或相应的特征或功能。
具体实施例方式下面描述本公开的各个方面。应该明白的是,本文的教导可以以多种多样形式具体体现,并且在本文中公开的任何具体结构、功能或两者仅仅是代表性的。基于本文的教导,本领域技术人员应该明白的是,本文所公开的一个方面可以独立于任何其它方面实现,并且这些方面中的两个或多个方面可以按照各种方式组合。例如,可以使用本文所阐述的任何数目的方面,实现装置或实践方法。另外,可以使用其它结构、功能、或除了本文所阐述的一个或多个方面之外或不是本文所阐述的一个或多个方面的结构和功能,实现这种装置或实践这种方法。此外,本文所描述的任何方面可以包括权利要求的至少一个元素。

XML (Extensible Markup Language,可扩展标记语言)通常用来描述树形结构,显示节点和节点之间的关系,即父节点与子节点的关系。本发明是对XML进行了功能扩展,并利用功能扩展后的XML来描述图结构,S卩,使用XML来描述节点与边、边与节点、边与边的关系,并且生成图结构。下面将参照附图描述本发明的各个实施例。在进行基于XML的图结构描述过程之前,首先,定义一套完整的XML限定规则,用于清楚地描述节点与边、边与节点、边与边的关系,以及图的起始点(可以多个XXML文件必须按照该限定规则进行描述和存储,描述的内容包括图结构中包含的所有节点、所有边、节点是否为开始节点、边的走向、边与边的关系、节点上的匹配条件、边上的匹配条件以及一些扩展属性和扩展元素。该限定规则的语法可以使用现有的DTD或XSD来实现。图3A-3E示出了根据本发明的XML限定规则的一个示例。图3A示出了根据本发明的一个示例的基于XML限定规则的图结构的XSD的示图。如图3A所述,在该不例中,图结构具有两个属性和两个兀素。属性id用于表不图的唯一编号。属性name表不图的名称,用于区分各图。兀素node用于表不图的节点,以及兀素side表示边。从图中可以看出,节点为一到多个,边为零到多条。也就是说,在图结构的元素中,必须具有节点,而在某些情况下,可以不具有元素边。图3B示出了根据本发明的一个示例的基于XML限定规则的图结构中的节点的结构的示图。如图3B所示,在该示例中,节点具有七个属性和两个元素。属性id用于表示节点的唯一编号。属性root表示节点类型,S卩,该节点是否为入口节点(入口节点可以有多个),换言之,该节点是否是头节点(入度为O的节点)。属性X和y表示图标的X坐标位置和y坐标位置。属性width和height表示图标的大小。属性tag表示图标的样式,是预先定义好的图片集合,例如包括图标的形状、颜色、透明度等。元素condition用于表示到该节点的边之间的关联关系,例如与(AND)关系、或(OR)关系等。兀素side-ref表不该节点的连接下面节点的边(即,边引用)。从图中可以看出,condition可以为零或一个,以及side-ref也可以为零到多条。图3C示出了根据本发明的一个示例的基于XML限定规则的图结构中的边的结构的示图。如图3C所示,在该示例中,边具有三个属性和零个元素。属性id表示边的唯一编号。属性node-ref表示该边所连接到的节点。属性tag表示边的样式。图3D示出了根据本发明的一个示例的基于XML限定规则的条件元素的结构的示图。如图3D所示,在该示例中,条件元素具有五个属性和两个元素。属性type用于表示边与边之间的关联关系,常用的关系有AND (与)、0R (或)等。属性X和y表不图标的X坐标位置和y坐标位置。属性width和height表示图标的大小。属性tag表示图标的样式。元素condition用于表不到该节点的边之间的关联关系,例如与(AND)关系、或(OR)关系等。元素side-ref表示该节点的连接下面节点的边(即,边引用)。从图3D中可以看出,上述两个元素是一个选择关系,即condition和side-ref中只能选择一个,而不能并存。这种选择关系可以重复多次,用来表示一个复杂的关系组合。从图中可以看出,一个节点包含了到达该节点的零到多个边之间的逻辑关系,换言之,描述了图中的边与边的关联关系。图3E示出了根据本发明的一个示例的基于XML限定规则的边引用的结构的示图。如图3E所示,边引用具有一个属性,即属性id,用于表示所引用的边的唯一编号。这里要说明的是,图3A-3E中的定义的属性和元素是可扩展的。 在预先定义XML限定规则后,进行根据本发明的基于XML的图结构存储过程。图4示出了根据本发明的实施例的基于XML的图结构存储方法的流程图。如图4所示,首先,在步骤S410,获取所绘制的图结构信息以及图结构中的各图形元素及其图形元素信息。其中,所述图形元素包括节点、边以及用于表示边与边之间的关联关系的条件元素。所述节点信息包括属性信息和元素信息,所述边信息包括属性信息,以及所述条件元素信息包括属性信息和元素信息。这里,在本发明的一个示例中,图结构信息包括属性信息id。在本发明的另一示例中,图结构信息也可以包括元素信息,比如元素node和元素side。节点信息中的属性信息包括属性id, root, X和y, width和height,以及tag。节点信息中的元素信息包括元素condition和side-ref。边信息中的属性信息包括属性id,node_ref和tag。条件元素是节点的子元素,并且条件元素信息中的属性信息包括属性type, X和y、width和height,以及tag。条件元素信息中的元素信息包括元素condition或side-ref。在另一示例中,所述图结构信息中的属性信息还可以包括图结构名称,即属性name,用于对各个图结构进行区分。在如上获取图结构的信息和图结构中的各图形元素及其图形元素信息后,在步骤S420,基于该预先定义的XML限定规则,利用所获取的图结构信息和各个图形元素及其图形元素信息后,生成用于描述所绘制的图结构的XML文件。下面以一个场景为例来进行说明。图5示出了根据本发明的基于XML文件绘制出的一个场景的图结构的一个示例的示图。如图5所示,在该场景中,节点I、节点2和节点3表示头节点,即入口节点。节点I和节点2同时满足后,作为一个判定与节点3做“或”的关系,即该判定与节点3有一个满足,可以激活节点4。节点I又和节点2做“或”关系,满足后作为一个判定与节点3做“与”的关系,即该判定和节点3同时满足,可以激活节点5。上述的场景通过如上的XML限定,可以得如下所示的XML文件,该XML文件描述了节点与边的关系(元素node),边与节点的关系(元素side),边与边的关系(condition元素)。< xml version="I.Om encoding=,fUTF-8" >
<graph id-' I" name=1' demo_graph">
〈node id=’T root=ntrue"y=”10n width=”2(T height=”2(T tag=”r>
<side-ref id=,,l,,/>
<side-ref id=”2” />
</node>
<node id=”2” root=fftraeH x-n 110" y-,!10rf width=,f20M height=,’20,,tag=,T,>
<side-ref id=rf3rf />
<side-ref id二Mn />
</noclc>
<nodc id="3" rool="tnic”y-tIO" width="20M height=f'20M tag=ftrf>
<side-ref id=,,5,,/>
<side-rcf id=”6” />
</node>
<node id=”4” root=fffalsen x=,,60” y-n300ff width="20n height=,’20” tag="2"> 〈condition type=fORrf x=”60” y=”100” width=,,20M height=M20M tag=,3,,>
<condilion Iype=nAND" x=’’6(),,y=”200’’ width=M20M hciglu="20’’ iag=M4M><side-refid=T />
〈side-refidW />
〈/condition〉
<side-ref id=ff5” />
〈/condition〉
</nodc>
<node id="5" root=nfalse” x=n160" y=”30(T width=r,20" height="20” tag=”2”>
〈condition type=,,AND” x=”160,,y=n100n width=,,20" height=fi20,, tag=,r4">
〈condition type=”OR,,x=”160ff y=”200” width=n20M height=”20n tag=uT>
<side-ref id=”2” />
<side-ref id=”4” />
〈/condition〉
<side-ref id=”6n />
</condition>
</node>
<side id-'I" node-ref=f,4f,x/side>
<side id-'2n node-ref 5"></side>
〈side id=”3” node-ref=,,4,,x/side>
<side id=”4” node-ref^"5,,x/side>
〈side id=” 5” node-ref,,4,,x/side>
<side id=”6” node-ref=,,5,,x/side>
</graph>这里要说明的是,XML文件的生成可以是一旦获取图结构中的各图形元素及其图形元素信息(即,图结构的部分信息),就生成XML文件中的与该元素对应的部分。例如,如上的XML文件中,如果绘制出节点NI的形状,就生成〈node id="l"root="true"x="10"y="10"width="20"height="20"tag="l">
〈/node〉如果绘制出边SI和S2,则将其加入上述节点I的部分中,即,
〈node id="I" root="true" x="10" y="10" wi她="20,, height="20" tag="l"> <sidc-rcrid="l"/>
<sidc-rcrid="2"/>
</node>其它节点和边的XML文件部分可以按照上述方式同样进行。此外,XML文件的生成也可以是在获取图结构的所有图形元素及其图形元素信息 后,才生成XML文件。即,获取所有信息后,一次生成如上的XML文件。在如上生成XML文件后,在步骤S430,将所生成的XML文件存储在存储装置中。所述存储装置可以是任何通用的存储装置,包括但不限于任何易失性存储装置和非易失性存储装置。与易失性存储装置相比,非易失性存储装置更为优选。图6示出了根据本发明的实施例的基于XML限定规则的图结构存储装置600的方框示意图。如图6所示,图结构存储装置600包括信息获取单元610、XML文件生成单元620和存储单元630。信息获取单元610用于获取所绘制的图结构信息以及图结构中的各图形元素及其图形元素信息,其中,所述图形元素包括节点、边以及用于表示边与边之间的关联关系的条件元素,所述节点信息包括属性信息和元素信息,所述边信息包括属性信息,以及所述条件元素信息包括属性信息和元素信息。此外,所述图结构信息包括图结构编号(其是属性信息)。另外,图结构信息也可以包括元素信息,比如节点和边。所述节点信息中的属性信息包括节点编号、节点类型、节点位置、节点大小和节点样式,元素信息包括条件元素和边引用;所述边信息中的属性信息包括边编号、该边的后续节点和边样式;以及所述条件元素是节点的子元素,并且所述条件元素信息中的属性信息包括条件元素类型、条件元素位置、条件元素大小和条件元素样式,元素信息包括边引用或条件元素。XML文件生成单元620用于基于预先定义的XML限定规则,利用所获取的图结构信息和各个图形元素及其图形元素信息,生成用于描述所绘制的图结构的XML文件。存储单元630用于将所生成的XML文件存储在存储装置中。本发明支持三层的结构,即展示界面-XML-内存中的图结构的关系。第一层为展示界面,用户可以通过界面看到图结构。包括node所处画布的位置、大小和样式。从condition所处画布的位置、大小和样式。side用于连接node与node、node与condition、condition与condition,由于以上兀素已经指定位置,所以side的位置相对固定,不需要单独指定,只需要指定样式即可。第二层为XML存储,用于保存第一层的图结构,第一层和第二层可以互相转换,即,编辑第一层的图结构,然后生成第二层的XML。也可以编辑第二层的XML,然后生成第一层的图结构。第三层为内存中的图结构,也是图的数据结构,使用程序实现与第一层同型。图7示出了三层结构关系。从图7中可以看出,可以有两种方式进行编辑图结构,一种方法是,用户通过图形界面进行编辑,编辑后转换成为XML,并保存(位置、大小和样式作为元素的属性)。保存后的XML再生成内存中的数据结构。另一种方法是,用户直接编辑XML (包括节点与边、边与节点、节点与节点的关系,元素的位置、大小和样式),保存后转换成为可以在图形界面上展示的图形,并生成内存中的数据结构。下面参照图8到图12来对基于所保存的XML文件绘制图结构的过程进行说明。图8示出了根据本发明的实施例的基于XML文件的图结构绘制方法的流程图。如图8所示,首先,在步骤S810,对XML文件中的与各个节点和边相关的部分进行解析。通过对各个节点和边部分进行解析,可以得到各个节点和边部分的属性信息和元素信息。接着,在步骤S820,基于对各个节点部分进行解析后得到的属性信息和元素信息,绘制各个节点的图形表示。同时或随后,在步骤S830,基于对各个边部分进行解析后得到的 属性信息,绘制边与该边的后续节点之间的连接关系的图形表示。具体地,在基于对各个节点部分进行解析后得到的属性信息和元素信息,绘制各个节点的图形表示时,对于头节点,根据该节点的节点编号、节点位置、节点大小、节点样式以及边引用,绘制该节点以及由该节点发出的有向边的图形表示。对于非头节点,则根据该节点的节点编号、节点位置、节点大小、节点样式,绘制该非头节点的图形表示。 此外,如果非头节点的元素信息中包括条件元素,则从该非头节点中抽取出条件元素的属性信息和元素信息;基于条件元素的属性信息和元素信息,绘制该条件元素;以及将该条件元素的图形表示连接到该非头节点的图形表示。此外,如果非头节点中多重嵌套有条件元素,则对于每层嵌套,从条件元素中抽取出被嵌套的另一条件元素的属性信息和元素信息;基于该另一条件元素的属性信息和元素信息,绘制该另一条件元素;以及将该另一条件元素的图形表示与该条件元素的图形表示连接。图9A和9B示出了根据本发明的基于XML文件的各个节点和边与后续节点之间的连接关系的绘制过程的一个示例的示图。从图9A和9B中看出,它们针对非头节点中多重嵌套有条件元素的情形。然后,在步骤S840,按照边与边引用进行重合的方式,对所绘制出的节点的图形表示以及所绘制出的边与该边的后续节点之间的连接关系的图形表示进行重合处理,以得到图结构的图形表示。这里,重合的规律是,如果节点与边可以关系重合,则进行重合,如果不能,则将边与节点重合,如图9B所示,节点与边都能与关系重合,从而形成图7所示的图结构。此外,在进行图结构绘制时,可以加入一些业务逻辑校验条件,根据使用的实际情况酌情选择,如两个节点之间不能有重复的边,不能出现自循环、死循环,不能出现孤岛(没有入度,也没有出度)。图10示出了根据本发明的实施例的基于XML文件的图结构绘制装置1000的方框示意图。如图10所示,图结构绘制装置1000包括解析单元1010、节点绘制单元1020、连接关系绘制单元1030和重合处理单元1040。解析单元1010用于对XML文件中的与各个节点和边相关的部分进行解析。节点绘制单元1020用于基于对各个节点部分进行解析后得到的属性信息和元素信息,绘制各个节点的图形表示。连接关系绘制单元1030用于基于对各个边部分进行解析后得到的属性信息,绘制边与该边的后续节点之间的连接关系的图形表示。重合处理单元1040用于按照边与边引用进行重合的方式,对所绘制出的节点的图形表示以及所绘制出的边与该边的后续节点之间的连接关系的图形表示进行重合处理,以得到图结构的图形表示。图11示出了图10中的节点绘制单元的一个示例的方框示意图。在该示例中,所述节点绘制单元1020可以包括头节点绘制模块1021,用于对于头节点,根据该节点的节点编号、节点位置、节点大小、节点样式以及边引用,绘制该节点以及由该节点发出的有向边的图形表示;以及非头节点绘制模块1023,用于对于非头节点,则根据该节点的节点编号、节点位置、节点大小、节点样式,绘制该非头节点的图形表示。如果非头节点的元素信息中包括条件元素,则如图12中所示,所述非头节点绘制模块1023还包括抽取模块1025,用于从该非头节点中抽取出条件元素的属性信息和元素信息;条件元素绘制模块1027,用于基于条件元素的属性信息和元素信息,绘制该条件元素;以及连接模块1029,用于将该条件元素的图形表示连接到该非头节点的图形表示。在根据本发明的基于XML的图结构存储中,由于XML是常用的描述性语言,从而使 得图结构的修改难度大大降低,易于维护。此外,由于本发明采用XML限定规则,系统可以自动进行图结构校验,由此导致系统可用性更高。此外,在根据本发明的基于XML的图结构存储中,可以利用XML描述到达同一节点的多条边之间的关联关系(比如与关系、或关系),从而使得图结构能够描述更广的场景。而且,由于本发明采用XML存储,可以很方便的得知各个节点在图中展示的位置、大小和样式。此外,本发明还支持直接修改XML,达到调整节点在图中展示的位置、大小和样式。另外,本发明优化了利用数据结构存储图结构时所存在的缺陷。与邻接矩阵相比,在计算图中有多少条边或确定图中节点是否连通时,性能得到大幅度提升。邻接矩阵方案中的计算时间复杂度为0(n2),而本发明的计算时间复杂度为0(n)。此外,与邻接表相比,计算入度时的空间复杂度降低,并且时间复杂度不变,入度和出度的复杂度同为O (η)。与十字链接表相比,本发明操作简单,节点和边的显示非常清楚。以上以模块单元的形式对根据本发明的网络采集数据处理系统进行了描述。但是,本领域技术人员要理解的是,本文中描述的各个模块可以利用控制单元来实现。所述控制单元通过执行用于实现上述功能的指令或程序来实现上述各个模块的功能。此外,根据本发明的方法还可以被实现为由CPU执行的计算机程序。在该计算机程序被CPU执行时,执行本发明的方法中限定的上述功能。本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现所述的功能,但是这种实现决定不应被解释为导致脱离本发明的范围。结合这里的公开所描述的各种示例性逻辑块、模块和电路可以利用被设计成用于执行这里所述功能的下列部件来实现或执行通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑器件、分立门或晶体管逻辑、分立的硬件组件或者这些部件的任何组合。通用处理器可以是微处理器,但是可替换地,处理器可以是任何传统处理器、控制器、微控制器或状态机。处理器也可以被实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器、一个或多个微处理器结合DSP核、或任何其它这种配置。结合这里的公开所描述的方法或算法的步骤可以直接包含在硬件中、由处理器执行的软件模块中或这两者的组合中。软件模块可以驻留在RAM存储器、快闪存储器、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动盘、CD-ROM、或本领域已知的任何其它形式的存储介质中。示例性的存储介质被耦合到处理器,使得处理器能够从该存储介质中读取信息或向该存储介质写入信息。在一个替换方案中,所述存储介质可以与处理器集成在一起。处理器和存储介质可以驻留在ASIC中。ASIC可以驻留在用户终端中。在一个替换方案中,处理器和存储介质可以作为分立组件驻留在用户终端中。在一个或多个示例性设计中,所述功能可以在硬件、软件、固件或其任意组合中实现。如果在软件中实现,则可以将所述功能作为一个或多个指令或代码存储在计算机可读介质上或通过计算机可读介质来传送。计算机可读介质包括计算机存储介质和通信介质,该通信介质包括有助于将计算机程序从一个位置传送到另一个位置的任何介质。存储介质 可以是能够被通用或专用计算机访问的任何可用介质。作为例子而非限制性的,该计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储设备、磁盘存储设备或其它磁性存储设备,或者是可以用于携带或存储形式为指令或数据结构的所需程序代码并且能够被通用或专用计算机或者通用或专用处理器访问的任何其它介质。此外,任何连接都可以适当地称为计算机可读介质。例如,如果使用同轴线缆、光纤线缆、双绞线、数字用户线路(DSL)或诸如红外线、无线电和微波的无线技术来从网站、服务器或其它远程源发送软件,则上述同轴线缆、光纤线缆、双绞线、DSL或诸如红外先、无线电和微波的无线技术均包括在介质的定义。如这里所使用的,磁盘和光盘包括压缩盘(CD)、激光盘、光盘、数字多功能盘(DVD)、软盘、蓝光盘,其中磁盘通常磁性地再现数据,而光盘利用激光光学地再现数据。上述内容的组合也应当包括在计算机可读介质的范围内。尽管前面公开的内容示出了本发明的示例性实施例,但是应当注意,在不背离权利要求限定的本发明的范围的前提下,可以进行多种改变和修改。根据这里描述的发明实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明的元素可以以个体形式描述或要求,但是也可以设想多个,除非明确限制为单数。虽然如上参照图描述了根据本发明的各个实施例进行了描述,但是本领域技术人员应当理解,对上述本发明所提出的各个实施例,还可以在不脱离本发明内容的基础上做出各种改进。因此,本发明的保护范围应当由所附的权利要求书的内容确定。
权利要求
1.一种基于XML的图结构存储方法,包括 获取所绘制的图结构信息、以及所述图结构中的各图形元素及其图形元素信息,其中,所述图形元素包括节点、边以及用于表示边与边之间的关联关系的条件元素;所述节点信息包括属性信息和元素信息,所述边信息包括属性信息,以及所述条件元素信息包括属性信息和元素信息; 基于预先定义的XML限定规则,利用所述图结构信息和所述各图形元素及其图形元素信息,生成用于描述所绘制的图结构的XML文件;以及 将所生成的XML文件存储在存储装置中, 其中,所述图结构信息包括图结构编号;所述节点信息中的属性信息包括节点编号、节点类型、节点位置、节点大小和节点样式,所述节点信息中的元素信息包括条件元素和边引用;所述边信息中的属性信息包括边编号、该边的后续节点和边样式;以及所述条件元素是节点的子元素,并且所述条件元素信息中的属性信息包括条件元素类型、条件元素位置、条件元素大小和条件元素样式,所述条件元素信息中的元素信息包括边引用或条件元素。
2.如权利要求I所述的图结构存储方法,其中,所述预先定义的XML限定规则包括文档类型定义(DTD)或XML模式定义(XSD)。
3.如权利要求I所述的图结构存储方法,其中,一旦获取图结构中的各图形元素及其图形元素信息,就生成XML文件中的与该图形元素对应的部分,或者在获取图结构的所有图形元素及其图形元素信息后,才生成XML文件。
4.一种基于XML的图结构存储装置,包括 信息获取单元,用于获取所绘制的图结构信息、以及所述图结构中的各图形元素及其图形元素信息,其中,所述图形元素包括节点、边以及用于表示边与边之间的关联关系的条件元素;所述节点信息包括属性信息和元素信息,所述边信息包括属性信息,以及所述条件元素信息包括属性信息和元素信息; XML文件生成单元,用于基于预先定义的XML限定规则,利用所述图结构信息和所述各图形元素及其图形元素信息,生成用于描述所绘制的图结构的XML文件;以及 存储单元,用于将所生成的XML文件存储在存储装置中, 其中,所述图结构信息包括图结构编号;所述节点信息中的属性信息包括节点编号、节点类型、节点位置、节点大小和节点样式,所述节点信息中的元素信息包括条件元素和边引用;所述边信息中的属性信息包括边编号、该边的后续节点和边样式;以及所述条件元素是节点的子元素,并且所述条件元素信息中的属性信息包括条件元素类型、条件元素位置、条件元素大小和条件元素样式,所述条件元素信息中的元素信息包括边引用或条件元素。
5.一种基于XML文件的图结构绘制方法,其中,所述XML文件如权利要求I所述生成,所述图结构绘制方法包括 对XML文件中的与各个节点和边相关的部分进行解析; 基于对各个节点部分进行解析后得到的属性信息和元素信息,绘制各个节点的图形表示; 基于对各个边部分进行解析后得到的属性信息,绘制边与该边的后续节点之间的连接关系的图形表不;以及 按照边与边引用进行重合的方式,对所绘制出的节点的图形表示以及所绘制出的边与该边的后续节点之间的连接关系的图形表示进行重合处理,以得到图结构的图形表示。
6.如权利要求5所述的图结构绘制方法,其中,基于对各个节点部分进行解析后得到的属性信息和元素信息,绘制各个节点的图形表示包括 对于头节点,根据该节点的节点编号、节点位置、节点大小、节点样式以及边引用,绘制该节点以及由该节点发出的有向边的图形表示;以及 对于非头节点,则根据该节点的节点编号、节点位置、节点大小、节点样式,绘制该非头节点的图形表示。
7.如权利要求6所述的图结构绘制方法,其中,如果非头节点的元素信息中包括条件元素,则 从该非头节点中抽取出条件元素的属性信息和元素信息; 基于条件元素的属性信息和元素信息,绘制该条件元素;以及 将该条件元素的图形表示连接到该非头节点的图形表示。
8.如权利要求7所述的图结构绘制方法,其中,如果非头节点中多重嵌套有条件元素,则对于每层嵌套, 从条件元素中抽取出被嵌套的另一条件元素的属性信息和元素信息; 基于该另一条件元素的属性信息和元素信息,绘制该另一条件元素;以及 将该另一条件元素的图形表示与该条件元素的图形表示连接。
9.一种基于XML文件的图结构绘制装置,其中,所述XML文件如权利要求I所述生成,所述图结构绘制装置包括 解析单元,用于对XML文件中的与各个节点和边相关的部分进行解析; 节点绘制单元,用于基于对各个节点部分进行解析后得到的属性信息和元素信息,绘制各个节点的图形表示; 连接关系绘制单元,用于基于对各个边部分进行解析后得到的属性信息,绘制边与该边的后续节点之间的连接关系的图形表示;以及 重合处理单元,用于按照边与边引用进行重合的方式,对所绘制出的节点的图形表示以及所绘制出的边与该边的后续节点之间的连接关系的图形表示进行重合处理,以得到图结构的图形表示。
10.如权利要求9所述的图结构绘制装置,其中,所述节点绘制单元包括 头节点绘制模块,用于对于头节点,根据该节点的节点编号、节点位置、节点大小、节点样式以及边引用,绘制该节点以及由该节点发出的有向边的图形表示;以及 非头节点绘制模块,用于对于非头节点,则根据该节点的节点编号、节点位置、节点大小、节点样式,绘制该非头节点的图形表示。
其中,如果非头节点的元素信息中包括条件元素,则所述非头节点绘制模块还包括 抽取模块,用于从该非头节点中抽取出条件元素的属性信息和元素信息; 条件元素绘制模块,用于基于条件元素的属性信息和元素信息,绘制该条件元素;以及 连接模块,用于将该条件元素的图形表示连接到该非头节点的图形表示。
全文摘要
本发明提供了一种基于XML的图结构存储方法,包括获取所绘制的图结构信息以及图结构中的各图形元素及其图形元素信息;基于预先定义的XML限定规则,利用所获取的图结构信息和各图形元素及其图形元素信息,生成用于描述所绘制的图结构的XML文件;以及将所生成的XML文件存储在存储装置中。利用上述图结构存储方法,可以描述到达同一节点的多条边之间的关联关系,从而使得图结构能够适用于更广的场景。此外,还可以支持直接修改XML,由此使得图结构的修改难度大大降低,易于维护。
文档编号G06F17/30GK102831167SQ20121025831
公开日2012年12月19日 申请日期2012年7月24日 优先权日2012年7月24日
发明者王承志 申请人:东软集团股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1