一种应用系统版本构建的正确性的检查方法
【专利摘要】本发明公开了应用系统版本构建的正确性的检查方法,包括:分别扫描各源码库;抽取源程序与COPYBOOK的关系并生成源程序与COPYBOOK的关系文件;根据上述关系文件和当前版本变更申请单内容产生编译清单文件;利用编译清单文件、普通程序属性参数文件和数据库访问程序属性参数文件生成数据库请求模块和执行码清单文件;根据当前版本变更申请单内容、数据库请求模块和执行码清单文件、对各执行码库抽取程序时间戳及字节数的输出结果检查应用系统版本构建的正确性,输出结果包括程序时间戳、大小及调用关系文件。根据本发明能够兼效率和正确性的前提对所构建的应用系统版本进行正确性检查。
【专利说明】一种应用系统版本构建的正确性的检查方法
【技术领域】
[0001]本发明涉及复杂应用系统的版本构建,尤其涉及一种应用系统的版本的正确性的检查方法。
【背景技术】
[0002]对于复杂的应用系统,在应用系统的版本构建之后,采用人工手段进行版本正确性检查十分困难,其主要体现在以下三个方面:
[0003]第一方面,程序调用关系复杂。比如核心银行系统,往往存在成千上万的应用程序,这些应用程序遵循软件工程要求的模块化设计原则,从而可以提高系统的易维护性、可靠性等。然而,这样的设计导致程序调用关系呈现为十分复杂的网状关系,例如对现有技术中一些核心银行系统程序调用关系高达10多层,一个主程序往往包含几百个子程序。当一个较低层的子程序发生变更后,往往需要对成千上万的上级程序重新链接(link),即对此类需要重新链接的上级程序构建新版本;
[0004]第二方面,COPYBOOK嵌套关系复杂,所谓COPYBOOK可以理解为存储变量的头文件。COPYBOOK用于存放数据结构定义或公共程序代码段,其也是一种源码。且COPYBOOK存在嵌套包含关系,当一个COPYBOOK变更后,可能导致链接此COPYBOOK的上级COPYBOOK的变更,即与其相关的所有程序需要重新编译链接,即对相关的所有程序均需构建新版本,第一方面与第二方面构建的新的应用系统版本数量繁多,难以用人工方式在保证正确性与效率的前提下进行版本的正确性检查;
[0005]第三方面,DB2DBRM与程序执行码一致性问题,其中,DB2为一种关系型数据库系统。DB2主要应用于大型应用系统,具有与平台无关的基本功能和SQL命令。对于包含DB2SQL语句的程序,DB2会附加产生一个所谓的DBRM(即Database Request Module,数据库请求模块),且要求该DBRM内包含的时间戳与程序执行码中的时间戳完全一致,时间戳(timestamp)通常是一个字符序列,唯一地标识某一刻的时间,而现有技术的版本构建过程中由于DBRM与程序执行码并非通过同一次预编译过程所产生的,因而DBRM内的时间戳常与程序执行码内的时间戳不一致,而对版本的正确性进行人工检测则较难判断时间戳的相同与否。
[0006]目前,可通过采用IBM的BHLDF0RGE工具进行版本构建,但BHLDF0RGE工具不能保证上述三个方面的问题完全正确,为了保证版本的正确性,仍需要在版本构建后,必须采用人工的手段检查版本的正确性,人工检查版本的工作量大、效率低,且容易出错。因而现有技术对于一个中等规模或更大的版本构建,往往需时较长才能完成版本检查工作,并且难以保证版本的绝对正确性。
【发明内容】
[0007]本发明所要解决的问题是难以用人工方式在保证正确性与效率的前提下进行版本的正确性检查,提供一种
[0008]为了解决上述问题,本发明提供一种应用系统版本构建的正确性的检查方法,包括以下步骤:
[0009]步骤1:分别扫描各源码库;
[0010]步骤2:抽取源程序与COPYBOOK的关系并生成源程序与COPYBOOK的关系文件;
[0011]步骤3:根据源程序与COPYBOOK的关系文件和当前版本变更申请单内容产生编译清单文件;
[0012]步骤4:利用编译清单文件、普通程序属性参数文件和数据库访问程序属性参数文件生成数据库请求模块和执行码清单文件;
[0013]步骤5:根据当前版本变更申请单内容、数据库请求模块和执行码清单文件、对各执行码库抽取程序时间戳及字节数的输出结果检查应用系统版本构建的正确性,输出结果包括程序时间戳、大小及调用关系文件。
[0014]作为优选,当前版本变更申请单内容配置于一程序清单文件中,其包含:
[0015]变更的源程序清单、COPYBOOK清单、运行作业清单。
[0016]作为优选,对各执行码库抽取程序时间戳及字节数为抽取出一程序关系文件,该程序关系文件包括主程序名、子程序名、子程序的字节数、时间戳。
[0017]作为优选,上述步骤5进一步包括:
[0018]步骤51:根据数据库请求模块和执行码清单文件、输出结果检查LOAD执行码的时间戳是否在指定范围内。
[0019]作为优选,上述步骤5进一步包括:
[0020]步骤52:根据当前版本变更申请单内容和输出结果检查各子程序在所有主程序中的字节数、时间戳是否完全一致。
[0021]作为优选,上述步骤5进一步包括:
[0022]步骤53:根据数据库请求模块和执行码清单文件检查数据库请求模块和执行码的时间戳是否一致。
[0023]作为优选,在上述步骤5之后,所述检查方法还包括:
[0024]步骤6:将检查结果以报表形式输出。
[0025]作为优选,所述应用系统为IBM大型机环境系统和/或ζ/OS操作系统。
[0026]本发明相对于现有技术的有益效果在于:
[0027]1、能够兼效率和正确性的前提对所构建的应用系统版本进行正确性检查;
[0028]2、可以解决IBM大型机环境、ζ/OS操作系统下复杂应用系统版本构建的正确性问题。
【专利附图】
【附图说明】
[0029]图1为根据本发明的应用系统所构建的版本的正确性的检查方法的流程图;
[0030]图2为根据本发明的一个实施例对应用系统BANCS的版本进行正确性检查的整体示图;
[0031]图3为根据本发明的一个实施例对应用系统BANCS的版本进行正确性检查的流程图。
【具体实施方式】
[0032]以下结合附图对本发明的进行详细描述。
[0033]根据本发明的实施例,提供了一种应用系统版本构建的正确性的检查方法。
[0034]根据本发明实例的检查方法可以包括以下步骤:
[0035]步骤1:分别扫描各源码库;
[0036]步骤2:抽取源程序与COPYBOOK的关系并生成源程序与COPYBOOK的关系文件;
[0037]步骤3:根据源程序与COPYBOOK的关系文件和当前版本变更申请单内容产生编译清单文件;
[0038]步骤4:利用编译清单文件、普通程序属性参数文件和数据库访问程序属性参数文件生成数据库请求模块和执行码清单文件;
[0039]步骤5:根据当前版本变更申请单内容、数据库请求模块和执行码清单文件、对各执行码库抽取程序时间戳及字节数的输出结果检查应用系统版本构建的正确性,输出结果包括程序时间戳、大小及调用关系文件。因而能够兼效率和正确性的前提对所构建的应用系统版本进行正确性检查。
[0040]此外,根据本发明实例的检查方法还可以包括步骤6:将检查结果以报表形式输出,便于工作人员查看结果。
[0041]当前版本变更申请单内容可以配置于一程序清单文件中,其可以包含:变更的源程序清单、COPYBOOK清单、运行作业清单。当前版本变更申请单内容即由工作人员提交的应用系统版本内变更的内容。
[0042]作为优选,对各执行码库抽取程序时间戳及字节数为抽取出一程序关系文件,该程序关系文件可以包括主程序名、子程序名、子程序的字节数、时间戳。
[0043]在优选的实施例中,上述步骤5可以进一步包括:步骤51:根据数据库请求模块和执行码清单文件、输出结果检查LOAD执行码的时间戳是否在指定范围内,从而解决子COPYBOOK与相关的上级COPYBOOK之间的一致性的问题;
[0044]和/或步骤52:根据当前版本变更申请单内容和输出结果检查各子程序在所有主程序中的字节数、时间戳是否完全一致,由于某一子程序的时间戳加上字节数相当于该子程序的唯一标志,凡是调用了该子程序的所有主程序,都必须具有与该子程序相同的标志,因而可以检查子程序与主程序的一致性;和/或
[0045]步骤53:根据数据库请求模块和执行码清单文件检查数据库请求模块和执行码的时间戳是否一致,从而解决了 DB2DBRM与程序执行码一致性的问题。此处三个步骤51、52和53可以分别以报表形式输出结果,从而便于工作人员对错误之处进行修正。
[0046]本发明的应用系统版本构建的正确性的检查方法主要适用于IBM大型机环境和/或ζ/OS操作系统,从而解决IBM大型机环境、ζ/OS操作系统下复杂应用系统版本构建的正确性问题。图2所示为根据本发明的一个实施例对应用系统的版本进行正确性检查的示意图,利用版本检查工具(在实际应用中可以为版本检查工具V2.0版本)对应用系统版本的正确性进行检查的架构的示意图。在本实施例中以BANCS内的各源码库作为源码库的一个例子,当然本发明也可以应用于其它类型的源码库。相应地,以BANCS各执行码库作为LOADLIB (即上述执行码库)。版本检查工具对IBM DEBUG TOOL(排除程序故障的工具)产品附带的Load Module Analyzer工具进行重构,其能可靠地、高效地分析主程序包含的各子程序的时间戳和字节数。
[0047]如图2所示,版本检查工具V2.0根据开发人员提交的S0URCELIST(即上述当前版本变更申请单内容),以及与核心银行系统BANCS相关的S0URCELIB(源码库)、LOADLIB (执行码库)、DBRM LIB(DBRM 库)、PROGLIST (普通程序属性)、DB10LIST(其中,DB1是一类封装的数据库访问程序,因而DB10LIST为数据库访问程序属性)等参数文件进行版本检查,检查结果在输出的各报表中。其中,S0URCELIST为开发人员对Copybook所link的文件进行人工识别所得到的结果,在实际应用中该S0URCELIST可以为一个excel清单;SOURCE LIB为实际提交的源码库;LOAD LIB内包含一些文件之间的映射关系;DBRM LIB为静态库;PR0GLIST参数文件定义了程序的属性,比如是联机还是批量,是子程序还是主程序等;DB10LIST即数据库访问程序属性的参数文件,列出与DB2相关的程序,在图2中与“参数文件PR0GLIST”共处一个位置。
[0048]如图3所示,为根据本发明使用版本检查工具V2.0进行版本准确性检查的处理流程,处理流程包括以下七个模块的实现:
[0049]模块一、模块“抽取源程序与COPYBOOK的关系”实现:对“BANCS各源码库”分别进行扫描,抽取源程序与COPYBOOK的关系,最终生成“源程序与COPYBOOK的关系文件”;
[0050]模块二、模块“产生编译清单”实现:根据“源程序与COPYBOOK的关系文件”和本次版本申请的“S0URCELIST文件”,处理产生/输出“编译清单文件C0MPILELIST”,它反映了本次版本构建实际需要编译的程序清单,其中,“S0URCELIST文件”是指当前版本变更申请单内容,通常包含变更的源程序清单、COPYBOOK清单、运行作业清单等;
[0051]模块三、模块“根据各编译作业生成DBRM和执行码清单”实现:根据编译清单C0MPILELIST、普通程序属性的参数文件PR0GLIST和DB1程序属性的参数文件DB10LIST,判断该程序采用何种编译作业,从而决定是否存在相应的DBRM、SUB LOAD子程序、LOAD主程序,其结果输出到“DBRM和LOAD清单文件”;
[0052]模块四、模块“抽取程序时间戳及字节数”实现:根据IBM DEBUG TOOL产品的LoadModule Analyzer工具运行结果,抽取出程序关系文件,它包含了主程序名、子程序名、子程序的字节数、时间戳等关键属性。其输入是“BANCS各执行码库”,输出是“程序时间戳、大小及调用关系文件”;
[0053]模块五、模块“检查各LOAD是否正确”实现:根据“DBRM和LOAD清单文件”和“程序时间戳、大小及调用关系文件”,检查LOAD执行码的时间戳是否在指定范围内,输出相应的报表;
[0054]模块六、模块“检查子程序在所有主程序是否一致”实现:根据“程序时间戳、大小及调用关系文件”,检查各子程序在所有主程序中的字节数、时间戳是否完全一致,换言之,即,所有主程序中的相同子程序的字节数、时间戳是否完全一致,然后输出相应的报表;
[0055]模块七、模块“检查DBRM与LOAD是否一致”实现:根据“DBRM和LOAD清单文件”中记录的DBRM清单,访问LOAD库中的执行码,检查两者的时间戳是否一致,输出相应的报表。
[0056]在使用版本检查工具以后,仅需要2分钟就完成版本检查工作,极大地提高了工作效率,且保证的版本的绝对正确性。
[0057]以上实施例仅为本发明的示例性实施例,不用于限制本发明,本发明的保护范围由权利要求书限定。本领域技术人员可以在本发明的实质和保护范围内,对本发明做出各种修改或等同替换,这种修改或等同替换也应视为落在本发明的保护范围内。
【权利要求】
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操作系统。
【文档编号】G06F11/36GK104298603SQ201410613909
【公开日】2015年1月21日 申请日期:2014年11月4日 优先权日:2014年11月4日
【发明者】廖文胜 申请人:中国银行股份有限公司