基于CIM对象分类的树形数据加载方法、装置、存储介质
文献发布时间:2023-06-19 10:35:20
技术领域
本发明涉及电力工程技术领域,尤其涉及一种基于CIM对象分类的树形数据加载方法、装置、存储介质及计算机设备。
背景技术
IEC61970系列标准提出了CIM模型和CIS接口,是电力系统管理及其信息交换领域的重要标准。CIM模型定义了信息交换的语义,CIS接口明确了信息交换的语法。随着IEC61970系列标准的成熟和CIM模型的广泛应用,越来越多的系统采用CIS接口并基于CIM模型进行数据的访问,如电力系统。
随着电力业务的发展,电力系统中管理的数据越来越多,越来越复杂,数据之间的关系也越来越紧密,并逐渐形成网状的数据结构。在实际应用过程中,当需要一个变电站下的所有设备及其关联数据时,只需要定义一个树形结构,并加载树形结构中的数据,即可从网状的数据中梳理出符合业务需要的树形层次结构数据。
传统的树形加载方式,是根据树形层级结构,按层级加载对象数据,调用CIS接口方法逐个查询对象的详细信息,这种方式在实际使用中体现出一些问题:(1)树形层次结构中对象数据量较大,逐个对象查询造成大量CIS接口的调用,浪费大量调用时间、网段带宽,并且增加了服务端的负荷;(2)查询对象时相互独立查询,而树形结构中往往有冗余的对象,造成重复的查询,不仅增加了查询次数,还增加了内存中的数据量。
发明内容
本发明的目的旨在至少能解决上述的技术缺陷之一,特别是现有技术中树形层次结构中对象数据量较大,查询对象时相互独立查询,造成大量CIS接口的调用,浪费大量调用时间、网段带宽,并且增加了服务端的负荷以及内存中的数据量的技术缺陷。
本发明提供了一种基于CIM对象分类的树形数据加载方法,包括:
获取初始树形结构,将所述初始树形结构中各个层级的对象按照CIM类型进行分类,得到多个类型的对象;
将相同类型的对象合并后使用CIS接口进行下一层级对象的数据查询,并根据返回的查询结果确定所述下一层级对象与本层级对象之间的对应关系;
利用所述对应关系以及所述查询结果构建最终的树形结构,并根据所述树形结构获取相应的树形数据。
可选地,所述初始树形结构中每一层级的对象类型为公共父类型;
将所述初始树形结构中各个层级的对象按照CIM类型进行分类,得到多个类型的对象的步骤,包括:
将所述初始树形结构中公共父类型的对象按照CIM类型进行分类,得到多个子孙类型的对象。
可选地,所述将相同类型的对象合并后使用CIS接口进行下一层级对象的数据查询的步骤,包括:
将同一层级的相同类别的对象进行合并,得到当前层级对应的多个类别的对象;
使用CIS接口对所述当前层级的多个类别的对象依次进行下一层级对象的数据查询。
可选地,所述使用CIS接口对所述当前层级的多个类别的对象依次进行下一层级对象的数据查询的步骤,包括:
使用CIS接口对当前类别的对象进行下一层级对象查询,获取所述下一层级对象的标识信息,根据所述标识信息确定所述下一层级对象的CIM类型;
继续使用所述CIS接口对下一个类别的对象进行下一层级对象查询,直到当前层级的所有类别的对象均查询结束为止。
可选地,所述将相同类型的对象合并后使用CIS接口进行下一层级对象的数据查询的步骤之后,还包括:
将查询结果保存至对象信息库;
当使用所述CIS接口对区别于当前层级的对象进行数据查询之前,根据所述对象的类别在所述对象信息库中进行搜索。
可选地,根据所述对象的类别在所述对象信息库中进行搜索的步骤之后,还包括:
若在所述对象信息库中搜索到与所述对象的类别对应的下一层级对象,则根据搜索结果确定所述下一层级对象与本层级对象之间的上下级关系。
可选地,利用所述对应关系以及所述查询结果构建最终的树形结构的步骤,包括:
读取所述对象信息库中保存的下一层级对象的对象信息,通过Substation.Bays关联构建所述下一层级对象与所述本层级对象的上下级关系,并在所述初始树形结构的相应位置处加载所述对象信息,形成最终的树形结构。
本发明还提供了一种基于CIM对象分类的树形数据加载装置,包括:
对象分类单元,用于获取初始树形结构,将所述初始树形结构中各个层级的对象按照CIM类型进行分类,得到多个类型的对象;
数据查询单元,用于将相同类型的对象合并后使用CIS接口进行下一层级对象的数据查询,并根据返回的查询结果确定所述下一层级对象与本层级对象之间的对应关系;
数据获取单元,用于利用所述对应关系以及所述查询结果构建最终的树形结构,并根据所述树形结构获取相应的树形数据。
本发明还提供了一种存储介质,所述存储介质中存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如上述实施例中任一项所述基于CIM对象分类的树形数据加载方法的步骤。
本发明还提供了一种计算机设备,所述计算机设备中存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如上述实施例中任一项所述基于CIM对象分类的树形数据加载方法的步骤。
从以上技术方案可以看出,本发明实施例具有以下优点:
本发明提供的基于CIM对象分类的树形数据加载方法、装置、存储介质,包括:获取初始树形结构,将所述初始树形结构中各个层级的对象按照CIM类型进行分类,得到多个类型的对象;将相同类型的对象合并后使用CIS接口进行下一层级对象的数据查询,并根据返回的查询结果确定所述下一层级对象与本层级对象之间的对应关系;利用所述对应关系以及所述查询结果构建最终的树形结构,并根据所述树形结构获取相应的树形数据。
与现有技术相比,本发明通过对初始树形结构中的对象按CIM类型进行分类,并按CIM类型进行批量化的对象查询,再根据查询结果构建最终的树形结构;通过本方案,可以不必为每个对象调用一次CIS接口进行数据的查询,而是根据对象的类型,批量的进行同类型对象的查询,充分利用CIS接口的特点,减少CIS接口的调用次数,提升对象查询的效率;并且,对树形结构中相同类型的对象进行合并处理,避免了同一层级中对象的重复查询,减少了对网络带宽的占用,同时降低了内存的占用空间。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例提供的一种基于CIM对象分类的树形数据加载方法的流程示意图;
图2为本发明实施例提供的变电站下所有设备及其关联数据对应的初始树形结构示意图;
图3为本发明实施例提供的一种基于CIM对象分类的树形数据加载方法的结构示意图;
图4为本发明实施例提供的一种计算机设备的内部结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本申请所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像本申请实施例中一样被特定定义,否则不会用理想化或过于正式的含义来解释。
请参阅图1,图1为本发明实施例提供的一种基于CIM对象分类的树形数据加载方法的流程示意图,本发明提供了一种基于CIM对象分类的数学数据加载方法,具体包括如下步骤:
S110:获取初始树形结构,将所述初始树形结构中各个层级的对象按照CIM类型进行分类,得到多个类型的对象。
本步骤中,利用CIM类型对对象进行分类之前,需要获取包含所有对象的初始树形结构,该初始树形结构中包含有多个层级,且每个层级均有相应的设备类型。
示意性地,如图2所示,图2为本发明实施例提供的变电站下所有设备及其关联数据对应的初始树形结构示意图,该图中,变电站下对应有多个层级,且每个层级包含有至少一个对象,但该初始树形结构中的对象类型较为粗略,一般为公共父类型,其对应的子孙类型不明确。
因此,本申请在获取到初始树形结构后,将该初始树形结构中各个层级的对象按照CIM类型进行分类,以便得到多个类型的对象。
需要说明的是,IEC61970系列标准提出了CIM模型和CIS接口,该系列标准作为电力系统管理及其信息交换领域的重要标准,CIM模型定义了信息交换的语义,CIS接口明确了信息交换的语法,因此,利用CIM类型对初始树形结构中的对象进行分类,能够更好地进行数据查询。
可以理解的是,这里的对象指的所有的对象,包括初始树形结构中所有设备及其关联数据
S120:将相同类型的对象合并后使用CIS接口进行下一层级对象的数据查询,并根据返回的查询结果确定所述下一层级对象与本层级对象之间的对应关系。
本步骤中,通过步骤S110将初始树形结构中各个层级的对象按照CIM类型进行分类,得到多个类型的对象后,可将相同类型的对象进行合并,然后使用CIS接口进行下一层级对象的数据查询,这样可以不必为每个对象调用一次CIS接口进行数据的查询,而是根据对象的类型,按类型进行批量查询,充分利用CIS接口的特点,减少CIS接口的调用次数,提升对象查询的效率;并且,对树形中相同类型的对象进行合并处理,避免了同一层级中对象的重复查询,减少了对网络带宽的占用,同时降低了内存的占用空间。
其中,按对象的类型进行批量查询时,如图2所示,查询变电站->间隔->变压器时,所有变电站批量查询,变电站下的间隔也是批量查询,间隔下的变压器也是批量查询,每一层级都是通过批量查询的方式来提高查询效率。
另外,由于本层级对象是通过上一层级对象查询而来,通过其树形关联建立上下级关系,因此,使用CIS接口进行下一层级对象的数据查询之后,可根据返回的查询结果来确定下一层级对象与本层级对象之间的对应关系,从而形成网状的树形结构。
S130:利用所述对应关系以及所述查询结果构建最终的树形结构,并根据所述树形结构获取相应的树形数据。
本步骤中,通过步骤S120查询到下一层级对象的对象信息,以及下一层级对象与当前层级对象的对应关系后,可根据该对象信息与对应关系构建最终的树形结构,通过该树形结构即可获取相应的树形数据。
与现有技术相比,本实施例通过对初始树形结构中的对象按CIM类型进行分类,并按CIM类型进行批量化的对象查询,再根据查询结果构建最终的树形结构;通过本方案,可以不必为每个对象调用一次CIS接口进行数据的查询,而是根据对象的类型,批量的进行同类型对象的查询,充分利用CIS接口的特点,减少CIS接口的调用次数,提升对象查询的效率;并且,对树形结构中相同类型的对象进行合并处理,避免了同一层级中对象的重复查询,减少了对网络带宽的占用,同时降低了内存的占用空间。
在一个实施例中,所述初始树形结构中每一层级的对象类型为公共父类型;步骤S110中将所述初始树形结构中各个层级的对象按照CIM类型进行分类,得到多个类型的对象的步骤,可以包括:将所述初始树形结构中公共父类型的对象按照CIM类型进行分类,得到多个子孙类型的对象。
本实施例中,初始树形结构中会定义每一层级的对象类型,但只是公共父类型,不是具体的子孙类型,例如间隔(Bay)的下一层级是间隔下包含的设备(Equipment),设备有诸多子孙类型,如断路器(Breaker)、刀闸(Disconnector)、接地刀闸(GroundDisconnector)、母线段(BusbarSection),初始树形结构中只能概括的描述为这些具体类型的公共父类型设备(Equipment),根据树形可以确定粗略的类型,但是,具体到一个对象,需要CIM类型来划分其明确的子孙类型。
在一个实施例中,步骤S120中将相同类型的对象合并后使用CIS接口进行下一层级对象的数据查询的步骤,可以包括:
S121:将同一层级的相同类别的对象进行合并,得到当前层级对应的多个类别的对象;
S122:使用CIS接口对所述当前层级的多个类别的对象依次进行下一层级对象的数据查询。
本实施例中,对不同类型的对象进行批量数据查询时,首先需要对同一类型分组的对象进行合并处理,将相同的对象合并为同一对象。由于同一层级下的对象可能存在重复的情况,例如设备的类型(PSRType),相同类型的设备会关联到同一个设备类型对象,对于此层级的对象进行合并处理,减少重复查询的情况。
对不同类型的对象进行合并处理后,使用CIS接口对当前层级的多个类别的对象依次进行下一层级对象的批量数据查询,以便得到下一层级的对象信息。
在一个实施例中,步骤S122中使用CIS接口对所述当前层级的多个类别的对象依次进行下一层级对象的数据查询的步骤,可以包括:
S221:使用CIS接口对当前类别的对象进行下一层级对象查询,获取所述下一层级对象的标识信息,根据所述标识信息确定所述下一层级对象的CIM类型;
S222:继续使用所述CIS接口对下一个类别的对象进行下一层级对象查询,直到当前层级的所有类别的对象均查询结束为止。
本实施例中,在查询下一层级对象时,首先获取的只是对象的标识信息,通过标识信息可以进一步确定下一层级对象的具体类型,如Breaker、Disconnector、GroundDisconnector、BusbarSection,这些都是Equipment类型的子类型。
当本层级的所有类别的对象均查询完毕后,即可执行下一层级的数据加载操作。
在一个实施例中,步骤S120中将相同类型的对象合并后使用CIS接口进行下一层级对象的数据查询的步骤之后,还可以包括:
S140:将查询结果保存至对象信息库;
S150:当使用所述CIS接口对区别于当前层级的对象进行数据查询之前,根据所述对象的类别在所述对象信息库中进行搜索。
本实施例中,由于数据是网状结构,形成树形结构时,必然会存在同一类型的对象出现在不同层级的情况,因此,在对不同类别的对象进行查询之后,需要将查询结果保存在对象信息库中,以便后续对不同层级中同一类型对象进行查询时使用。
具体地,由于同一类型的对象可能出现在不同的层级中,例如通过两个层级:变电站->间隔->开关->设备类型,变电站->电压等级区->间隔->开关->设备类型,由于最末端都是查询的开关对象的设备类型,其设备类型必然是相同的(都是开关)。因此,当使用CIS接口对区别于当前层级的对象进行数据查询之前,需要根据当前对象的类别在对象信息库中进行搜索,检测对象是否已经查询过,若在之前的层级结构中已进行了查询,将不再重复查询。
可以理解的是,对象信息库中包含有按类型批量查询对象的详细信息,所有已查询过的对象,其结果都放到对象信息库中,便于检测对象是否已查询过,防止不同层级中相同的对象重复查询,提高了树形数据加载的效率。
在一个实施例中,步骤S150中根据所述对象的类别在所述对象信息库中进行搜索的步骤之后,还可以包括:
S160:若在所述对象信息库中搜索到与所述对象的类别对应的下一层级对象,则根据搜索结果确定所述下一层级对象与本层级对象之间的上下级关系。
本步骤中,对象信息库中包含有按类型批量查询对象的详细信息,所有已查询过的对象,其结果都放到对象信息库中,因此,使用CIS接口对区别于当前层级的对象进行数据查询之前,若在对象信息库中搜索到与该对象的类别对应的下一层级对象,则表示该对象已在之前的层级结构中进行了查询,因此,可在对象信息库中直接调用之前的查询结果,即当前的搜索结果。
当获取到搜索结果后,即可根据该搜索结果确定下一层级对象与本层级对象之间的上下级关系,进而构建最终的树形结构。
在一个实施例中,步骤S130中利用所述对应关系以及所述查询结果构建最终的树形结构的步骤,可以包括:
读取所述对象信息库中保存的下一层级对象的对象信息,通过Substation.Bays关联构建所述下一层级对象与所述本层级对象的上下级关系,并在所述初始树形结构的相应位置处加载所述对象信息,形成最终的树形结构。
本实施例中,由于本层级对象都是通过上一层级对象查询而来,通过其树形关联建立上下级关系。举例说明,变电站->间隔,通过变电站与间隔的关联Substation.Bays查询,通过Substation.Bays关联构建间隔对象与上层变电站对象的上下级关系。
因此,在建立当前层级与下一层级对象的上下级关系前,需要从对象信息库中读取本层次中所有的对象信息,例如变电站->间隔,通过Substation.Bays关联构建,通过此关联构建间隔对象与变电站对象的上下级的关系。
接着查询下一层级对象的信息,重复按照此方法构建与本层级对象的上下级关系,从而加载完整的树形数据。
在一个实施例中,如图3所示,图3为本发明实施例提供的一种基于CIM对象分类的树形数据加载装置的结构示意图;本发明还提供了一种基于CIM对象分类的树形数据加载装置,包括对象分类单元110、数据查询单元120、数据获取单元130,具体包括如下:
对象分类单元110,用于获取初始树形结构,将所述初始树形结构中各个层级的对象按照CIM类型进行分类,得到多个类型的对象;
数据查询单元120,用于将相同类型的对象合并后使用CIS接口进行下一层级对象的数据查询,并根据返回的查询结果确定所述下一层级对象与本层级对象之间的对应关系;
数据获取单元130,用于利用所述对应关系以及所述查询结果构建最终的树形结构,并根据所述树形结构获取相应的树形数据。
与现有技术相比,本实施例通过对初始树形结构中的对象按CIM类型进行分类,并按CIM类型进行批量化的对象查询,再根据查询结果构建最终的树形结构;通过本方案,可以不必为每个对象调用一次CIS接口进行数据的查询,而是根据对象的类型,批量的进行同类型对象的查询,充分利用CIS接口的特点,减少CIS接口的调用次数,提升对象查询的效率;并且,对树形结构中相同类型的对象进行合并处理,避免了同一层级中对象的重复查询,减少了对网络带宽的占用,同时降低了内存的占用空间。
在一个实施例中,本发明还提供了一种存储介质,所述存储介质中存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如上述实施例中任一项所述基于CIM对象分类的树形数据加载方法的步骤。
在一个实施例中,本发明还提供了一种计算机设备,所述计算机设备中存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如上述实施例中任一项所述基于CIM对象分类的树形数据加载方法的步骤。
示意性地,如图4所示,图4为本发明实施例提供的一种计算机设备的内部结构示意图,该计算机设备200可以被提供为一服务器。参照图4,计算机设备200包括处理组件202,其进一步包括一个或多个处理器,以及由存储器201所代表的存储器资源,用于存储可由处理组件202的执行的指令,例如应用程序。存储器201中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件202被配置为执行指令,以执行上述任意实施例的基于CIM对象分类的树形数据加载方法。
计算机设备200还可以包括一个电源组件203被配置为执行计算机设备200的电源管理,一个有线或无线网络接口204被配置为将计算机设备200连接到网络,和一个输入输出(I/O)接口205。计算机设备200可以操作基于存储在存储器201的操作系统,例如WindowsServer TM、Mac OS XTM、Unix TM、LinuxTM、Free BSDTM或类似。
本领域技术人员可以理解,图4中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
- 基于CIM对象分类的树形数据加载方法、装置、存储介质
- 基于CIM模型的树形视图定义及展示方法