G06F11/36
1.一种应用系统版本构建的正确性的检查方法,其特征在于,包括以下 步骤:
步骤1:分别扫描各源码库;
步骤2:抽取源程序与COPYBOOK的关系并生成源程序与COPYBOOK的关 系文件;
步骤3:根据所述源程序与COPYBOOK的关系文件和当前版本变更申请单 内容产生编译清单文件;
步骤4:利用所述编译清单文件、普通程序属性参数文件和数据库访问 程序属性参数文件生成数据库请求模块和执行码清单文件;
步骤5:根据所述当前版本变更申请单内容、所述数据库请求模块和执 行码清单文件、对各执行码库抽取程序时间戳及字节数的输出结果检查所述 应用系统版本构建的正确性,所述输出结果包括程序时间戳、大小及调用关 系文件。
2.根据权利要求1所述的检查方法,其特征在于,所述当前版本变更申 请单内容配置于一程序清单文件中,其包含:
变更的源程序清单、COPYBOOK清单、运行作业清单。
3.根据权利要求1所述的检查方法,其特征在于,所述对各执行码库抽 取程序时间戳及字节数为抽取出一程序关系文件,该程序关系文件包括主程 序名、子程序名、子程序的字节数、时间戳。
4.根据权利要求1所述的检查方法,其特征在于,步骤5进一步包括:
步骤51:根据所述数据库请求模块和执行码清单文件、所述输出结果检 查LOAD执行码的时间戳是否在指定范围内。
5.根据权利要求1所述的检查方法,其特征在于,步骤5进一步包括:
步骤52:根据所述当前版本变更申请单内容和所述输出结果检查各子程 序在所有主程序中的字节数、时间戳是否完全一致。
6.根据权利要求1所述的检查方法,其特征在于,步骤5进一步包括:
步骤53:根据所述数据库请求模块和执行码清单文件检查所述数据库请 求模块和所述执行码的时间戳是否一致。
7.根据权利要求1所述的检查方法,其特征在于,在步骤5之后,所述 检查方法还包括:
步骤6:将检查结果以报表形式输出。
8.根据权利要求1所述的检查方法,其特征在于,所述应用系统为IBM 大型机环境系统和/或z/OS操作系统。
本发明涉及复杂应用系统的版本构建,尤其涉及一种应用系统的版本的 正确性的检查方法。
对于复杂的应用系统,在应用系统的版本构建之后,采用人工手段进行 版本正确性检查十分困难,其主要体现在以下三个方面:
第一方面,程序调用关系复杂。比如核心银行系统,往往存在成千上万 的应用程序,这些应用程序遵循软件工程要求的模块化设计原则,从而可以 提高系统的易维护性、可靠性等。然而,这样的设计导致程序调用关系呈现 为十分复杂的网状关系,例如对现有技术中一些核心银行系统程序调用关系 高达10多层,一个主程序往往包含几百个子程序。当一个较低层的子程序发 生变更后,往往需要对成千上万的上级程序重新链接(link),即对此类需要 重新链接的上级程序构建新版本;
第二方面,COPYBOOK嵌套关系复杂,所谓COPYBOOK可以理解为存储变 量的头文件。COPYBOOK用于存放数据结构定义或公共程序代码段,其也是一 种源码。且COPYBOOK存在嵌套包含关系,当一个COPYBOOK变更后,可能导 致链接此COPYBOOK的上级COPYBOOK的变更,即与其相关的所有程序需要重 新编译链接,即对相关的所有程序均需构建新版本,第一方面与第二方面构 建的新的应用系统版本数量繁多,难以用人工方式在保证正确性与效率的前 提下进行版本的正确性检查;
第三方面,DB2DBRM与程序执行码一致性问题,其中,DB2为一种关系 型数据库系统。DB2主要应用于大型应用系统,具有与平台无关的基本功能 和SQL命令。对于包含DB2SQL语句的程序,DB2会附加产生一个所谓的DBRM (即Database Request Module,数据库请求模块),且要求该DBRM内包含 的时间戳与程序执行码中的时间戳完全一致,时间戳(timestamp)通常是一 个字符序列,唯一地标识某一刻的时间,而现有技术的版本构建过程中由于 DBRM与程序执行码并非通过同一次预编译过程所产生的,因而DBRM内的时 间戳常与程序执行码内的时间戳不一致,而对版本的正确性进行人工检测则 较难判断时间戳的相同与否。
目前,可通过采用IBM的BUILDFORGE工具进行版本构建,但BUILDFORGE 工具不能保证上述三个方面的问题完全正确,为了保证版本的正确性,仍需 要在版本构建后,必须采用人工的手段检查版本的正确性,人工检查版本的 工作量大、效率低,且容易出错。因而现有技术对于一个中等规模或更大的 版本构建,往往需时较长才能完成版本检查工作,并且难以保证版本的绝对 正确性。
本发明所要解决的问题是难以用人工方式在保证正确性与效率的前提下 进行版本的正确性检查,提供一种
为了解决上述问题,本发明提供一种应用系统版本构建的正确性的检查 方法,包括以下步骤:
步骤1:分别扫描各源码库;
步骤2:抽取源程序与COPYBOOK的关系并生成源程序与COPYBOOK的关 系文件;
步骤3:根据源程序与COPYBOOK的关系文件和当前版本变更申请单内容 产生编译清单文件;
步骤4:利用编译清单文件、普通程序属性参数文件和数据库访问程序 属性参数文件生成数据库请求模块和执行码清单文件;
步骤5:根据当前版本变更申请单内容、数据库请求模块和执行码清单 文件、对各执行码库抽取程序时间戳及字节数的输出结果检查应用系统版本 构建的正确性,输出结果包括程序时间戳、大小及调用关系文件。
作为优选,当前版本变更申请单内容配置于一程序清单文件中,其包含:
变更的源程序清单、COPYBOOK清单、运行作业清单。
作为优选,对各执行码库抽取程序时间戳及字节数为抽取出一程序关系 文件,该程序关系文件包括主程序名、子程序名、子程序的字节数、时间戳。
作为优选,上述步骤5进一步包括:
步骤51:根据数据库请求模块和执行码清单文件、输出结果检查LOAD执 行码的时间戳是否在指定范围内。
作为优选,上述步骤5进一步包括:
步骤52:根据当前版本变更申请单内容和输出结果检查各子程序在所有 主程序中的字节数、时间戳是否完全一致。
作为优选,上述步骤5进一步包括:
步骤53:根据数据库请求模块和执行码清单文件检查数据库请求模块和 执行码的时间戳是否一致。
作为优选,在上述步骤5之后,所述检查方法还包括:
步骤6:将检查结果以报表形式输出。
作为优选,所述应用系统为IBM大型机环境系统和/或z/OS操作系统。
本发明相对于现有技术的有益效果在于:
1、能够兼效率和正确性的前提对所构建的应用系统版本进行正确性检 查;
2、可以解决IBM大型机环境、z/OS操作系统下复杂应用系统版本构建 的正确性问题。
图1为根据本发明的应用系统所构建的版本的正确性的检查方法的流程 图;
图2为根据本发明的一个实施例对应用系统BANCS的版本进行正确性检 查的整体示图;
图3为根据本发明的一个实施例对应用系统BANCS的版本进行正确性检 查的流程图。
以下结合附图对本发明的进行详细描述。
根据本发明的实施例,提供了一种应用系统版本构建的正确性的检查方 法。
根据本发明实例的检查方法可以包括以下步骤:
步骤1:分别扫描各源码库;
步骤2:抽取源程序与COPYBOOK的关系并生成源程序与COPYBOOK的关 系文件;
步骤3:根据源程序与COPYBOOK的关系文件和当前版本变更申请单内容 产生编译清单文件;
步骤4:利用编译清单文件、普通程序属性参数文件和数据库访问程序 属性参数文件生成数据库请求模块和执行码清单文件;
步骤5:根据当前版本变更申请单内容、数据库请求模块和执行码清单 文件、对各执行码库抽取程序时间戳及字节数的输出结果检查应用系统版本 构建的正确性,输出结果包括程序时间戳、大小及调用关系文件。因而能够 兼效率和正确性的前提对所构建的应用系统版本进行正确性检查。
此外,根据本发明实例的检查方法还可以包括步骤6:将检查结果以报 表形式输出,便于工作人员查看结果。
当前版本变更申请单内容可以配置于一程序清单文件中,其可以包含: 变更的源程序清单、COPYBOOK清单、运行作业清单。当前版本变更申请单内 容即由工作人员提交的应用系统版本内变更的内容。
作为优选,对各执行码库抽取程序时间戳及字节数为抽取出一程序关系 文件,该程序关系文件可以包括主程序名、子程序名、子程序的字节数、时 间戳。
在优选的实施例中,上述步骤5可以进一步包括:步骤51:根据数据库 请求模块和执行码清单文件、输出结果检查LOAD执行码的时间戳是否在指 定范围内,从而解决子COPYBOOK与相关的上级COPYBOOK之间的一致性的问 题;
和/或步骤52:根据当前版本变更申请单内容和输出结果检查各子程序 在所有主程序中的字节数、时间戳是否完全一致,由于某一子程序的时间戳 加上字节数相当于该子程序的唯一标志,凡是调用了该子程序的所有主程序, 都必须具有与该子程序相同的标志,因而可以检查子程序与主程序的一致性; 和/或
步骤53:根据数据库请求模块和执行码清单文件检查数据库请求模块和 执行码的时间戳是否一致,从而解决了DB2DBRM与程序执行码一致性的问题。 此处三个步骤51、52和53可以分别以报表形式输出结果,从而便于工作人 员对错误之处进行修正。
本发明的应用系统版本构建的正确性的检查方法主要适用于IBM大型 机环境和/或z/OS操作系统,从而解决IBM大型机环境、z/OS操作系统下复 杂应用系统版本构建的正确性问题。图2所示为根据本发明的一个实施例对 应用系统的版本进行正确性检查的示意图,利用版本检查工具(在实际应用 中可以为版本检查工具V2.0版本)对应用系统版本的正确性进行检查的架构 的示意图。在本实施例中以BANCS内的各源码库作为源码库的一个例子,当 然本发明也可以应用于其它类型的源码库。相应地,以BANCS各执行码库作 为LOAD LIB(即上述执行码库)。版本检查工具对IBM DEBUG TOOL(排除程 序故障的工具)产品附带的Load Module Analyzer工具进行重构,其能可靠 地、高效地分析主程序包含的各子程序的时间戳和字节数。
如图2所示,版本检查工具V2.0根据开发人员提交的SOURCELIST(即 上述当前版本变更申请单内容),以及与核心银行系统BANCS相关的SOURCE LIB(源码库)、LOAD LIB(执行码库)、DBRM LIB(DBRM库)、PROGLIST(普 通程序属性)、DBIOLIST(其中,DBIO是一类封装的数据库访问程序,因而 DBIOLIST为数据库访问程序属性)等参数文件进行版本检查,检查结果在输 出的各报表中。其中,SOURCELIST为开发人员对Copybook所link的文件进 行人工识别所得到的结果,在实际应用中该SOURCELIST可以为一个excel 清单;SOURCE LIB为实际提交的源码库;LOAD LIB内包含一些文件之间的映 射关系;DBRM LIB为静态库;PROGLIST参数文件定义了程序的属性,比如是 联机还是批量,是子程序还是主程序等;DBIOLIST即数据库访问程序属性的 参数文件,列出与DB2相关的程序,在图2中与“参数文件PROGLIST”共处 一个位置。
如图3所示,为根据本发明使用版本检查工具V2.0进行版本准确性检查 的处理流程,处理流程包括以下七个模块的实现:
模块一、模块“抽取源程序与COPYBOOK的关系”实现:对“BANCS各源 码库”分别进行扫描,抽取源程序与COPYBOOK的关系,最终生成“源程序与 COPYBOOK的关系文件”;
模块二、模块“产生编译清单”实现:根据“源程序与COPYBOOK的关系 文件”和本次版本申请的“SOURCELIST文件”,处理产生/输出“编译清单文 件COMPILELIST”,它反映了本次版本构建实际需要编译的程序清单,其中, “SOURCELIST文件”是指当前版本变更申请单内容,通常包含变更的源程序 清单、COPYBOOK清单、运行作业清单等;
模块三、模块“根据各编译作业生成DBRM和执行码清单”实现:根据编 译清单COMPILELIST、普通程序属性的参数文件PROGLIST和DBIO程序属性 的参数文件DBIOLIST,判断该程序采用何种编译作业,从而决定是否存在相 应的DBRM、SUB LOAD子程序、LOAD主程序,其结果输出到“DBRM和LOAD 清单文件”;
模块四、模块“抽取程序时间戳及字节数”实现:根据IBM DEBUG TOOL 产品的Load Module Analyzer工具运行结果,抽取出程序关系文件,它包含 了主程序名、子程序名、子程序的字节数、时间戳等关键属性。其输入是“BANCS 各执行码库”,输出是“程序时间戳、大小及调用关系文件”;
模块五、模块“检查各LOAD是否正确”实现:根据“DBRM和LOAD清单 文件”和“程序时间戳、大小及调用关系文件”,检查LOAD执行码的时间戳 是否在指定范围内,输出相应的报表;
模块六、模块“检查子程序在所有主程序是否一致”实现:根据“程序 时间戳、大小及调用关系文件”,检查各子程序在所有主程序中的字节数、时 间戳是否完全一致,换言之,即,所有主程序中的相同子程序的字节数、时 间戳是否完全一致,然后输出相应的报表;
模块七、模块“检查DBRM与LOAD是否一致”实现:根据“DBRM和LOAD 清单文件”中记录的DBRM清单,访问LOAD库中的执行码,检查两者的时间 戳是否一致,输出相应的报表。
在使用版本检查工具以后,仅需要2分钟就完成版本检查工作,极大地 提高了工作效率,且保证的版本的绝对正确性。
以上实施例仅为本发明的示例性实施例,不用于限制本发明,本发明的 保护范围由权利要求书限定。本领域技术人员可以在本发明的实质和保护范 围内,对本发明做出各种修改或等同替换,这种修改或等同替换也应视为落 在本发明的保护范围内。
本文发布于:2023-04-15 10:14:13,感谢您对本站的认可!
本文链接:https://patent.en369.cn/patent/3/87214.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |