一种CIM模型数据变化通知方法及系统
文献发布时间:2023-06-19 10:54:12
技术领域
本发明涉及电力通信技术领域,尤其涉及一种CIM模型数据变化通知方法及系统。
背景技术
在IEC61970系列标准(已等同引用为中国DL/T890系列标准)中,通用的组件接口规范(CIS)明确了信息交换的语法,为电网运行数据的访问提供了解决方案;CIS中的通用数据访问接口(Generic Data Access,GDA)的事件服务为电网模型数据变化通知提供了相应的访问方法。
由TC57的WG13工作组负责的IEC 61970-403标准提供的组件接口规范(CIS:Component Interface Specification)之一的通用数据访问接口(Generic Data Access,GDA)提供的模型变化事件服务提供了模型变化事件通知服务定义。CIS GDA模型变化事件针对CIM模型对象创建、性质变化以及对象删除产生对应更新事件ResourceChangeEvent,其包含如下成员:
1)affected,更新涉及的CIM对象的ID标识序列
2)verbs,与affected序列一一对应的CIM对象更新类型序列,指示CIM对象更新类型是创建(VERB_CREATED)、性质更新(VERB_CHANGED)还是删除(VERB_DELETED)。
在使用CIS GDA事件服务时,对于一个CIM对象性质更新(VERB_CHANGED)事件,由于其不仅可能对应CIM对象属性性质更新,还有可能对应关联关系更新,进一步的,关联关系更新又由于一个CIM对象类型可能存在多个关联关系,每种关联关系又都可能存在增加或者删除更新,所以其模型同步就要不仅要获取其必要的属性性质取值,而且要依次获取所有必要的关联关系当前取值,才能与模型服务器中CIM模型保持同步。
发明内容
本发明目的在于,提供一种CIM模型数据变化通知方法及系统,通过CIM模型变化事件明确区分了CIM对象属性性质更新和CIM对象间关联关系更新,大大简化了期望利用CIM模型更新事件保持对CIM模型同步的CIM模型更新事件消费者的处理逻辑。
为实现上述目的,本发明实施例提供一种CIM模型数据变化通知方法,包括:
当监听器监听到发生CIM模型更新时,解析CIM模型更新并创建CIM模型变化事件,所述CIM模型变化事件包括CIM对象更新事件和CIM对象间关联关系更新事件;
扫描CIM模型更新事件消费者列表,向所述CIM模型更新事件的消费者发布CIM模型变化事件。
在某一个实施例中,所述CIM对象更新事件包括CIM对象新建更新事件、CIM对象属性性质取值更新事件或CIM对象删除更新事件。
在某一个实施例中,所述CIM对象间关联关系更新事件包括CIM对象间关联关系增加事件或CIM对象间关联关系删除事件。
在某一个实施例中,还包括:向CIM模型注册变化监听器,以监听所述CIM模型更新。
在某一个实施例中,还包括:创建并维护CIM模型更新事件消费者列表。
本发明实施例还提供一种CIM模型数据变化通知系统,应用于上述任一实施例中的CIM模型数据变化通知方法,包括:
CIM模型变化事件创建模块,用于监听到发生CIM模型更新时,解析CIM模型更新并创建CIM模型变化事件,所述CIM模型变化事件包括CIM对象更新事件和CIM对象间关联关系更新事件;
CIM模型变化事件发布模块,扫描CIM模型更新事件的消费者列表,向所述CIM模型更新事件的消费者发布CIM模型变化事件。
在某一个实施例中,创建CIM模型变化事件模块包括CIM对象更新单元和CIM对象间关联关系更新单元;
所述CIM对象更新单元,用于创建CIM对象新建更新事件、CIM对象属性性质取值更新事件或CIM对象删除更新事件;
所述CIM对象间关联关系更新单元,用于创建CIM对象间关联关系增加事件或CIM对象间关联关系删除事件。
在某一个实施例中,还包括:变化监听器注册模块,用于向CIM模型更新服务模块注册变化监听器,以监听CIM模型更新。
在某一个实施例中,还包括:消费者列表管理模块,用于创建并维护CIM模型更新事件的消费者列表。
本发明实施例还提供一种计算机终端设备,包括一个或多个处理器和存储器。存储器与所述处理器耦接,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述任一实施例所述的CIM模型数据变化通知方法。
本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一实施例所述的CIM模型数据变化通知方法。
本发明实施例的CIM模型数据变化通知方法及系统中,产生的CIM模型变化事件的主要优点在于由于明确区分了CIM对象属性性质更新和CIM对象间关联关系更新,大大简化了期望利用CIM模型更新事件保持对CIM模型同步的CIM模型更新事件消费者的处理逻辑。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施方式中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明某一实施例提供的CIM模型数据变化通知方法的流程示意图;
图2是本发明某一实施例提供的计算机终端设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,文中所使用的步骤编号仅是为了方便描述,不对作为对步骤执行先后顺序的限定。
应当理解,在本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
请参阅图1,本发明实施例提供一种CIM模型数据变化通知方法,包括:
S10、当监听器监听到发生CIM模型更新时,解析CIM模型更新并创建CIM模型变化事件,所述CIM模型变化事件包括CIM对象更新事件和CIM对象间关联关系更新事件;
S20、扫描CIM模型更新事件消费者列表,向所述CIM模型更新事件的消费者发布CIM模型变化事件。
在本实施例中,在监听到发生CIM模型更新时,解析CIM模型更新并创建CIM模型变化事件ModelUpdateEvent,所述CIM模型变化事件ModelUpdateEvent包含如下成员:
1)一个CIM对象更新事件ObjectUpdate序列,描述一次模型更新中的所有CIM对象新建、属性性质更新、删除事件,CIM对象更新事件ObjectUpdate数据结构包含如下成员:
a)更新类型updateType,取值为Create,则更新为CIM对象新建更新;取值为Update,则更新为现有CIM对象属性性质取值更新事件;取值为Delete,则为CIM对象删除更新事件
b)id,所更新CIM对象的ID标识
2)一个CIM对象间关联关系更新事件RelationUpdate序列,描述一次模型更新中的所有CIM对象间关联关系增加、删除事件,RelationUpdate数据结构包含如下成员:
a)更新类型updateType,取值为Add,标识更新为CIM对象间关联关系增加更新;取值为Remove,标识更新为CIM对象间关联关系删除更新
b)sourceId,CIM对象间关联关系起始对象ID标识
c)role,CIM对象间关联关系
d)endId,CIM对象间关联关系末端对象ID标识
确定CIM模型变化事件为哪一种更新事件后,遍历所维护的CIM模型更新事件消费者列表,依次向每个CIM模型更新事件消费者发布CIM模型变化事件ModelUpdateEvent。
在某一个实施例中,所述CIM对象更新事件包括CIM对象新建更新事件、CIM对象属性性质取值更新事件或CIM对象删除更新事件。
在本实施例中,所述CIM对象更新事件ObjectUpdate包括:
1)CIM对象新建更新,产生更新类型updateType取值为Create,id为新建CIM对象ID标识的ObjectUpdate;例如,新建一个变电站(CIM Substation类型)对象。
2)CIM对象属性性质取值更新,产生更新类型updateType取值为Update,id为所更新CIM对象ID标识的ObjectUpdate,针对同一CIM对象的多个性质取值更新仅产生一个ObjectUpdate;例如,更新一个现有断路器(CIM Breaker类型)对象的name属性性质及description属性取值。
3)CIM对象删除更新,产生updateType取值为Delete,id为所删除CIM对象ID标识的ObjectUpdate;例如,删除一个量测值(CIM AnalogValue类型)对象。
在某一个实施例中,所述CIM对象间关联关系更新事件包括CIM对象间关联关系增加事件或CIM对象间关联关系删除事件。
在本实施例中,所述CIM对象间关联关系更新事件RelationUpdate包括:
1)CIM对象间关联关系增加,产生一个updateType为Add,sourceId为新增关联关系起始CIM对象ID标识,endId为末端CIM对象ID标识的RelationUpdate;例如,新增一个断路器(CIM Breaker类型)对象到间隔(CIM Bay类型)对象的Equipment.Member_Of_EquipmentContainer关联关系。
2)CIM对象间关联关系删除,产生一个updateType为Remove,sourceId为新增关联关系起始CIM对象ID标识,endId为末端CIM对象ID标识的RelationUpdate;例如,删除一个断路器(CIM Breaker类型)对象到间隔(CIM Bay类型)对象的Equipment.Member_Of_EquipmentContainer关联关系。
在某一个实施例中,还包括:向CIM模型注册变化监听器,监听所述CIM模型更新。
在本实施例中,在监听发生CIM模型更新前,需要向CIM模型注册变化监听器,用于监听CIM模型的更新事件。
在某一个实施例中,还包括:创建并维护CIM模型更新事件消费者列表。
在本实施例中,还需要创建响应CIM模型更新事件的消费者列表,当响应更新事件的消费者进行注册或者解除注册时,需要对所述消费者列表进行更新维护。
本发明实施例还提供一种CIM模型数据变化通知系统,应用于上述任一实施例中的CIM模型数据变化通知方法,包括:
CIM模型变化事件创建模块,用于监听到发生CIM模型更新时,解析CIM模型更新并创建CIM模型变化事件,所述CIM模型变化事件包括CIM对象更新事件和CIM对象间关联关系更新事件;
CIM模型变化事件发布模块,扫描CIM模型更新事件的消费者列表,向所述CIM模型更新事件的消费者发布CIM模型变化事件。
在某一个实施例中,所述CIM模型变化事件创建模块包括CIM对象更新单元和CIM对象间关联关系更新单元;
所述CIM对象更新单元,用于创建CIM对象新建更新事件、CIM对象属性性质取值更新事件或CIM对象删除更新事件;
所述CIM对象间关联关系更新单元,用于创建CIM对象间关联关系增加事件或CIM对象间关联关系删除事件。
在某一个实施例中,还包括:变化监听器注册模块,用于向CIM模型更新服务模块注册变化监听器,监听CIM模型更新。
在某一个实施例中,还包括:消费者列表管理模块,用于创建并维护CIM模型更新事件的消费者列表。
关于CIM模型数据变化通知系统的具体限定可以参见上文中对于的限定,在此不再赘述。上述CIM模型数据变化通知系统中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
请参阅图2,本发明实施例提供一种计算机终端设备,包括一个或多个处理器和存储器。存储器与所述处理器耦接,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述任意一个实施例中的CIM模型数据变化通知方法。
处理器用于控制该计算机终端设备的整体操作,以完成上述的CIM模型数据变化通知方法的全部或部分步骤。存储器用于存储各种类型的数据以支持在该计算机终端设备的操作,这些数据例如可以包括用于在该计算机终端设备上操作的任何应用程序或方法的指令,以及应用程序相关的数据。该存储器可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-OnlyMemory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-OnlyMemory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。
在一示例性实施例中,计算机终端设备可以被一个或多个应用专用集成电路(Application Specific 1ntegrated Circuit,简称AS1C)、数字信号处理器(DigitalSignal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的CIM模型数据变化通知方法,并达到如上述方法一致的技术效果。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述任意一个实施例中的CIM模型数据变化通知方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器,上述程序指令可由计算机终端设备的处理器执行以完成上述的CIM模型数据变化通知方法,并达到如上述方法一致的技术效果。
本发明实施例的CIM模型数据变化通知方法及系统中,产生的CIM模型变化事件的主要优点在于由于明确区分了CIM对象属性性质更新和CIM对象间关联关系更新,大大简化了期望利用CIM模型更新事件保持对CIM模型同步的CIM模型更新事件消费者的处理逻辑。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
- 一种CIM模型数据变化通知方法及系统
- 一种系统数据模型到CIM模型的映射方法及系统