本发明属于调度自动化,具体涉及一种电网调度软件版本一致性管控方法、装置、设备及介质。
背景技术:
1、在电网领域,调度自动控制软件是调度自动化系统的核心,包括自动电压控制、自动功率控制等应用。近年来由于大量新能源厂站的接入,控制对象类型持续增多,控制规模不断扩大,控制策略复杂程度越来越高,导致软件版本频繁更新和升级,软件质量缺陷和运行可靠性问题日益凸显,给调度自动化系统的运行安全带来了极大风险,因此要进行软件版本的管理和一致性校验。结合近年调度自动化系统运行情况,发生了一些已经完成测试的软件,由于缺乏有效版本管控,在工程现场随意变更导致版本不一致,进而造成软件运行异常的不良后果,严重影响了系统安全稳定运行。
2、关于版本管控技术,很多大型信息系统在研发阶段应用了cvs、svn、mercurial等成熟的版本管理工具,一些现有技术中制定了软件出入库流程和数据度量方法,一定程度上提高了软件可靠性和稳定性,还有一些现有技术中提出了采用单向散列算法计算出代码文件的指纹信息,通过对指纹信息的比较,确定代码的一致性与完整性。在电网领域,尤其是变电站及配电自动化终端的版本管控方面也有了很多研究,其他一些现有技术中对变电站软件、scd文件、智能电子设备等设计了管控方法、流程。一些现有技术中引入区块链技术,并基于智能合约的自动化更新,对变电站配置版本进行管理。另外一些现有技术中提出了标准样品dna识别串码的备案与被测样品的一致性比对方法,构造了具有分级分块权限特征的串码基因库与测试数据库。以上方法虽针对各自领域提出了特定软件版本管控方法,但无法满足调度自动化系统软件数量多、不同运行环境差异大等特点。
3、现有技术针对各自领域提出了特定软件版本管控方法,大部分都是在软件研发测试阶段发现软件质量问题,无法在软件上线及运行阶段跟踪软件质量,且无法满足调度自动化系统软件数量多、不同运行环境差异大等特点。
技术实现思路
1、本发明的目的在于提供一种电网调度软件版本一致性管控方法、装置、设备及介质,结合调度自动控制软件运行现状和软件版本一致性管控需求,提出了基于区块链的调度自动控制软件版本一致性管控方法。设计了调度自动控制软件版本管控流程,通过改进默克尔树对软件版本标注算法和切片一致性校验方法,确保版本信息可核查、可追溯、可管控,提升了调度自动化系统软件的版本管控水平。
2、为了实现上述目的,本发明采用如下技术方案:
3、本发明第一方面,提供了一种电网调度软件版本一致性管控方法,包括如下步骤:
4、分别获取调度自动控制软件的第一版本信息标识和第二版本信息标识;其中,第一版本信息标识为调度自动控制软件在测试环境下测试通过定版后生成的版本信息标识,第二版本信息标识为调度自动控制软件在现场环境部署后生成的版本信息标识;
5、获取预先构建的区块链网络;其中,区块链网络包括版本管控核心节点和多个省级轻节点;
6、将第一版本信息标识上送至版本管控核心节点进行存证;将第二版本信息标识上送至相应省级轻节点进行存储;
7、获取存储于区块链网络中的第一版本信息标识和第二版本信息标识,用第一版本信息标识对第二版本信息标识进行软件版本一致性校验。
8、进一步的,分别获取调度自动控制软件的第一版本信息标识和第二版本信息标识的步骤中,版本信息标识按照如下步骤生成:
9、获取调度自动控制软件中所有源文件的文件类型,基于文件类型确定单向散列函数;
10、根据文件类型,利用文件类型对应的单向散列函数对该文件类型所包含的各文件进行处理,生成各文件的数字摘要,并将文件类型所包含的所有文件的数字摘要进行组合,生成文件类型的源代码文件类型编码;
11、将所有文件类型对应的源代码文件类型编码,通过二叉树结构两两组合,并基于组合计算改进默克尔树的中间节点哈希值;
12、将计算出的中间节点哈希值进行拼接,生成源代码编码s;
13、将源代码编码s和可执行文件的源代码文件类型编码进行拼接,生成第一版本信息标识或第二版本信息标识。
14、进一步的,根据文件类型,利用文件类型对应的单向散列函数对该文件类型所包含的各文件进行处理,生成各文件的数字摘要的步骤,包括:
15、当调度自动控制软件中源文件的文件类型为核心控制策略文件、核心算法文件时,采用sha-256算法分别对核心控制策略文件中的各文件、核心算法文件中的各文件进行处理,生成核心控制策略文件中各文件的数字摘要、核心算法文件中各文件的数字摘要;
16、当调度自动控制软件中源文件的文件类型为主函数文件、一般函数文件及可执行文件时,采用sha-1算法分别对主函数文件中的各文件、一般函数文件中的各文件及可执行文件中的各文件进行处理,生成主函数文件中各文件的数字摘要、一般函数文件中各文件的数字摘要及可执行文件中各文件的数字摘要;
17、当调度自动控制软件中源文件的文件类型为头文件、前端界面文件时,采用md5算法分别对头文件中的各文件、前端界面文件中的各文件进行处理,生成头文件中各文件的数字摘要、前端界面文件中各文件的数字摘要。
18、进一步的,对第二版本信息标识进行软件版本一致性校验的步骤,具体包括:
19、分别获取第一版本信息标识t和第二版本信息标识r;
20、将第一版本信息标识t进行切片,拆分为第一源代码编码st和第一可执行文件编码et;
21、将第二版本信息标识r进行切片,拆分为第二源代码编码sr和第二可执行文件编码er;
22、基于预先构建的区块链网络,获取首次现场部署时现场运行软件版本信息标识r0,将首次现场部署时现场运行软件版本信息标识r0拆分为首次现场部署时源代码编码sr-0和首次现场部署时可执行文件编码er-0;
23、判断第二源代码编码sr是否为0;
24、第二源代码编码sr为0时,利用第二可执行文件编码er、第一可执行文件编码et、首次现场部署时源代码编码sr-0、第一源代码编码st、首次现场部署时可执行文件编码er-0进行判断,确定第二版本信息标识是否通过软件版本一致性校验;
25、第二源代码编码sr不为0时,利用第一版本信息标识t、第二版本信息标识r、第一源代码编码st、第二源代码编码sr进行判断,确定第二版本信息标识是否通过软件版本一致性校验。
26、进一步的,利用第二可执行文件编码er、第一可执行文件编码et、首次现场部署时源代码编码sr-0、第一源代码编码st、首次现场部署时可执行文件编码er-0进行判断,确定第二版本信息标识是否通过软件版本一致性校验的步骤,具体包括:
27、对比第二可执行文件编码er与第一可执行文件编码et;如果第二可执行文件编码er与第一可执行文件编码et相同,则确定第二版本信息标识通过软件版本一致性校验;若第二可执行文件编码er与第一可执行文件编码et不同,则判断首次现场部署时源代码编码sr-0与第一源代码编码st是否相同,若首次现场部署时源代码编码sr-0与第一源代码编码st相同,且首次现场部署时可执行文件编码er-0与第二可执行文件编码er相同,则确定第二版本信息标识通过软件版本一致性校验。
28、进一步的,利用第一版本信息标识t、第二版本信息标识r、第一源代码编码st、第二源代码编码sr进行判断,确定第二版本信息标识是否通过软件版本一致性校验的步骤,具体包括:
29、对比第一版本信息标识t与第二版本信息标识r是否相同,若相同,则确定第二版本信息标识通过软件版本一致性校验;若第一版本信息标识t与第二版本信息标识r不同,先比较第一源代码编码st和第二源代码编码sr,若第一源代码编码st和第二源代码编码sr相同,则确定第二版本信息标识通过软件版本一致性校验;若第一源代码编码st和第二源代码编码sr不同,则确定第二版本信息标识不通过软件版本一致性校验。
30、本发明的第二方面,提供了一种电网调度软件版本一致性管控装置,包括:
31、第一获取模块,用于分别获取调度自动控制软件的第一版本信息标识和第二版本信息标识;其中,第一版本信息标识为调度自动控制软件在测试环境下测试通过定版后生成的版本信息标识,第二版本信息标识为调度自动控制软件在现场环境部署后生成的版本信息标识;
32、第二获取模块,用于获取预先构建的区块链网络;其中,区块链网络包括版本管控核心节点和多个省级轻节点;
33、上链存储模块,用于将第一版本信息标识上送至版本管控核心节点进行存证;将第二版本信息标识上送至相应省级轻节点进行存储;
34、校验模块,用于获取存储于区块链网络中的第一版本信息标识和第二版本信息标识,用第一版本信息标识对第二版本信息标识进行软件版本一致性校验。
35、进一步的,第一获取模块中,版本信息标识按照如下步骤生成:
36、获取调度自动控制软件中所有源文件的文件类型,基于文件类型确定单向散列函数;
37、根据文件类型,利用文件类型对应的单向散列函数对该文件类型所包含的各文件进行处理,生成各文件的数字摘要,并将文件类型所包含的所有文件的数字摘要进行组合,生成文件类型的源代码文件类型编码;
38、将所有文件类型对应的源代码文件类型编码,通过二叉树结构两两组合,并基于组合计算改进默克尔树的中间节点哈希值;
39、将计算出的中间节点哈希值进行拼接,生成源代码编码s;
40、将源代码编码s和可执行文件的源代码文件类型编码进行拼接,生成第一版本信息标识或第二版本信息标识。
41、本发明第三方面,提供了一种电子设备,其特征在于,包括处理器和存储器,所述处理器用于执行存储器中存储的计算机程序以实现上述的电网调度软件版本一致性管控方法。
42、本发明第四方面,提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有至少一个指令,所述至少一个指令被处理器执行时实现上述的电网调度软件版本一致性管控方法。
43、与现有技术相比较,本发明的有益效果如下:
44、1)本发明提供的电网调度软件版本一致性管控方法,设计了调度自动控制软件版本管控流程,通过改进默克尔树对软件版本标注算法和切片一致性校验方法,确保版本信息可核查、可追溯、可管控,提高了对调度自动控制软件的管控水平。
45、2)本发明提供了改进默克尔树方法,结合控制软件实际程序结构,灵活调整树状结构,一方面延续了默克尔树特点,依旧可以实现快速比对大量数据和快速定位数据修改;另一方面提升了生成树效率。
46、3)本发明在切片一致性校验方法方面,解决了传统一致性校验方法在测试通过时的编译环境和现场运行的编译环境不同以及测试通过的软件不需要在现场进行编译等多种情况下,无法进行一致性校验的问题。