CN110968342B - 一种版本比对方法、装置及系统 - Google Patents
一种版本比对方法、装置及系统 Download PDFInfo
- Publication number
- CN110968342B CN110968342B CN201911196046.4A CN201911196046A CN110968342B CN 110968342 B CN110968342 B CN 110968342B CN 201911196046 A CN201911196046 A CN 201911196046A CN 110968342 B CN110968342 B CN 110968342B
- Authority
- CN
- China
- Prior art keywords
- version
- compiling
- data
- library
- execution code
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本说明书实施例公开了一种版本比对方法、装置及系统,所述方法包括根据基线版本库以及待投产版本的COPYBOOK库构建临时编译环境;基于构建的临时编译环境对所述待投产版本的程序库中的源程序数据进行编译处理,获得执行码;将获得的执行码与所述待投产版本的执行码库中的执行码进行一致性比对,获得版本比对结果。利用本说明书各个实施例,可以更加准确高效的确定应用投产版本中的隐含问题。
Description
技术领域
本发明涉及计算机数据处理技术领域,特别地,涉及一种版本比对方法、装置及系统。
背景技术
一个应用产品的开发周期通常较长,追平频繁,还存在临时加入任务、剥离等一系列难以预见的场景。通常情况下,通过版本管理工具进行追平时,若两个批次同时修改了一个程序或COPYBOOK的情况下,能识别出冲突,及时进行冲突处理,但对于程序、COPYBOOK修改带来的间接冲突,则无法识别,导致最终版本不对。或者,在将测试版本B包根据顺序合成生产版本SP包时,因手工操作失误,覆盖顺序错乱,也会导致最终版本不对。如何准确的检测出待投产应用版本中可能存在的错误问题,成为亟待解决的技术问题。
发明内容
本说明书实施例的目的在于提供一种版本比对方法、装置及系统,可以更加准确的确定待投产版本中可能存在的隐含问题。
本说明书提供一种版本比对方法、装置及系统是包括如下方式实现的:
一种版本比对方法,包括:
根据基线版本库以及待投产版本的COPYBOOK库构建临时编译环境;
基于构建的临时编译环境对待编译数据进行编译处理,获得执行码,所述待编译数据包括待投产版本所修改的源程序数据以及因COPYBOOK修改而待重新编译的源程序数据;
将获得的执行码与所述待投产版本的执行码库中的执行码进行一致性比对,获得版本比对结果。
本说明书所述的方法提供的另一个实施例中,所述基于构建的临时编译环境对待编译数据进行编译处理,包括:
根据待编译数据的编译属性对相应的待编译数据进行编译处理,所述编译属性用于确定待编译数据编译时所对应的源程序库。
本说明书所述的方法提供的另一个实施例中,所述方法还包括:
判断所述待投产版本是否包含数据访问功能,如果存在,将数据访问对应的第一令牌与执行码对应的第二令牌进行比对,获得比对结果。
本说明书所述的方法提供的另一个实施例中,所述方法还包括:
所述版本比对结果包括比对差异数量,根据所述比对差异数量确定所述待投产版本是否存在问题。
另一方面,本说明书实施例还提供一种版本比对装置,所述装置包括:
编译环境构建模块,用于根据基线版本库以及待投产版本的COPYBOOK库构建临时编译环境;
编译处理模块,用于基于构建的临时编译环境对待编译数据进行编译处理,获得执行码,所述待编译数据包括待投产版本所修改的源程序数据以及因COPYBOOK修改而待重新编译的源程序数据以及COPYBOOK库;
数据比对模块,用于将获得的执行码与所述待投产版本的执行码库中的执行码进行一致性比对,获得版本比对结果。
本说明书所述的装置提供的另一个实施例中,所述编译处理模块包括:
编译参数确定单元,用于根据待编译数据的编译属性对相应的待编译数据进行编译处理,所述编译属性用于确定待编译数据编译时所对应的源程序库以及COPYBOOK库。
本说明书所述的装置提供的另一个实施例中,所述数据比对模块还用于判断所述待投产版本是否包含数据访问功能,如果存在,将数据访问对应的第一令牌与执行码对应的第二令牌进行比对,获得比对结果。
本说明书所述的装置提供的另一个实施例中,所述数据比对模块还用于根据比对差异数量确定所述待投产版本是否存在问题,其中,所述版本比对结果包括比对差异数量。
另一方面,本说明书实施例还提供一种版本比对设备,所述设备包括处理器及用于存储处理器可执行指令的存储器,所述指令被所述处理器执行时实现包括以下步骤:
根据基线版本库以及待投产版本的COPYBOOK库构建临时编译环境;
基于构建的临时编译环境对待编译数据进行编译处理,获得执行码,所述待编译数据包括待投产版本所修改的源程序数据以及因COPYBOOK修改而待重新编译的源程序数据;
将获得的执行码与所述待投产版本的执行码库中的执行码进行一致性比对,获得版本比对结果。
另一方面,本说明书实施例还提供一种版本比对系统,所述系统包括至少一个处理器以及存储计算机可执行指令的存储器,所述处理器执行所述指令时实现上述任意一个实施例所述方法的步骤。
本说明书一个或多个实施例提供的版本比对方法、装置及系统,可以将基线版本库与待投产版本的COPYBOOK库合并,构建临时编译环境,然后,基于临时编译环境对待投产版本的程序库中的源程序数据进行编译处理。通过预先将本批次修改的COPYBOOK合并至基线版本中,然后,基于合并后所构建的编译环境对源程序数据进行编译处理,可以获得准确的编译结果。然后,可以再将待投产版本的执行码库中的执行码与上述方式获得执行码比对,从而可以发现因追平带来的版本错误,准确确定可能存在的隐含版本问题。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本说明书提供的一种版本比对方法实施例的流程示意图;
图2为本说明书提供的一种版本比对装置实施例的模块结构示意图;
图3为根据本说明书的一个示例性实施例的服务器的示意结构图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书一个或多个实施例中的附图,对本说明书一个或多个实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是说明书一部分实施例,而不是全部的实施例。基于说明书一个或多个实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书实施例方案保护的范围。
正常情况下,通过版本管理工具进行追平时,对于两个批次同时修改了一个程序或COPYBOOK的情况下,能识别出冲突,及时进行冲突处理。而对于程序、COPYBOOK修改带来的间接冲突,无法识别。例如:批次P1与P2并行开发,P2投产在后。在时间点T1 P2修改了一个COPYBOOK C→C’,A引用了一个COPYBOOK C,但A未做修改,构建出B包B1。在时间点T2 P1修改了程序A→A’,但COPYBOOK C未做变动,构建出B包B2。随后,在时间点T3 P2追平P1,P1修改的程序A’在P2没有修改,CC不认为是冲突,COPYBOOK C在P1未修改也不会被追平到P2。所以在P1先投产时,由B2组成SP生产版本,新版程序A’(引用COPYBOOK C)投产,而在P2投产时,由B1组成SP生产版本,旧版程序A(引用COPYBOOK C’)投产,把程序A’的修改覆盖,出现生产问题。
相应的,本说明书实施例提供了一种版本比对方法,可以将基线版本库与待投产版本的COPYBOOK库合并,构建临时编译环境,然后,基于临时编译环境对待投产版本的程序库中的源程序数据进行编译处理。通过预先将本批次修改的COPYBOOK合并至基线版本中,然后,基于合并后所构建的编译环境对源程序数据进行编译处理,可以获得准确的编译结果。然后,可以再将待投产版本的执行码库中的执行码与上述方式获得执行码比对,从而可以发现因追平带来的版本错误,准确确定可能存在的隐含版本问题。
图1是本说明书提供的所述一种版本比对方法实施例流程示意图。虽然本说明书提供了如下述实施例或附图所示的方法操作步骤或装置结构,但基于常规或者无需创造性的劳动在所述方法或装置中可以包括更多或者部分合并后更少的操作步骤或模块单元。在逻辑性上不存在必要因果关系的步骤或结构中,这些步骤的执行顺序或装置的模块结构不限于本说明书实施例或附图所示的执行顺序或模块结构。所述的方法或模块结构的在实际中的装置、服务器或终端产品应用时,可以按照实施例或者附图所示的方法或模块结构进行顺序执行或者并行执行(例如并行处理器或者多线程处理的环境、甚至包括分布式处理、服务器集群的实施环境)。
具体的一个实施例如图1所示,本说明书提供的版本比对方法的一个实施例中,所述方法可以包括:
S0:根据基线版本库以及待投产版本的COPYBOOK库构建临时编译环境。
所述待投产版本可以包括应用产品本批次待投产的版本。所述批次可以理解为一个应用产品开发任务的投产时间节点,纳入不同批次的任务分别在不同的时间点投产。
所述基线版本库可以包括应用产品的本批次待投产版本的上一版本的开发基线数据。所述开发基线数据可以包括构建环境数据、开发环境数据以及集成测试环境数据等。
所述COPYBOOK可以为开发程序中定义变量或程序代码段的数据单独抽取出来打包形成的数据,可以用于多程序引用,实现相同的功能。所述COPYBOOK库可以用于存储产品应用本批次修改的COPYBOOK数据。
可以利用基线版本库和待投产版本的COPYBOOK库组建临时编译环境。一些实施方式中,可以通过REXX(REstructured eXtended eXecutor)拼写JCL(Job ControlLanguage),将基线版本库复制并存储至临时库;同时,通过REXX与ISPF(InteractiveSystem Producitivity Facility)交互,将COPYBOOK库中的数据复制并存储至临时库,获得临时编译环境。其中,REXX为一种解释型语言,JCL为一种作业控制语言,ISPF为一种交互式系统生产设备,用于提供由控制板驱动的接口。
S2:基于构建的临时编译环境对待编译数据进行编译处理,获得执行码,所述待编译数据包括待投产版本所修改的源程序数据以及因COPYBOOK修改而待重新编译的源程序数据。
可以预先筛选出待编译数据,所述待编译数据可以包括本批次修改的源程序数据以及因COPYBOOK修改而需要重新编译的源程序数据。所述待投产版本通常还可以包括程序库,所述程序库可以包含有本批次修改的源程序数据。
一些实施方式中,可以利用下述方式生成编译清单,所述编译清单可以包括待编译数据的参数,以用于编译处理时调取待编译的源程序数据,以进行编译处理。
①通过REXX与ISPF交互,直接SAVE SOURCE(程序库)清单里的程序MEMBER,存入临时文件,此MEMBER对应本批次真正修改的源程序数据。其中,所述MEMBER可以理解为源程序库或者COPYBOOK库等库中的元素,实现某一功能的一个程序或者一个COPYBOOK,可以作为一个MEMBER。
②通过REXX与ISPF交互,SAVE待投产版本的执行码库里的所有MEMBER,存入临时文件。此MEMBER对应本批次修改的源程序数据和因COPYBOOK变动而重编译的源程序数据。
③从第②步生成的清单中过滤第①步生成的清单。
利用上述方式,可以将本批次修改的源程序数据对应的清单和COPYBOOK变动而重编译的源程序数据对应的清单区分开来,分别存入不同的临时文件中,便于后续处理。
然后,可以基于临时编译环境对待投产版本的源程序数据进行编译处理,获得准确的编译结果。本说明书的一些实施例中,可以采用下述方式进行编译处理:
根据待编译数据的编译属性对相应的待编译数据进行编译处理,所述编译属性用于确定待编译数据编译时所对应的源程序库COPYBOOK库。
然后,可以基于上一步生成的编译清单进行编译。可以设置编译清单中待编译数据的编译属性,所述编译属性可以用于确定待编译数据编译时所对应的源程序库。如对于本批次修改的程序,源程序库指向待投产版本的程序库,而对于重编译的程序,源程序库则指向基线版本库。
一些实施场景中,可以采用下述方法来实现:
①新建临时文件:CMPLSTQA、CMPLSTQB。
②根据实际情况,写入编译属性和编译程序清单。具体为:如果有修改程序、没有修改COPYBOOK,则写入编译属性TYPE:A,以及修改的程序清单,至CMPLSTQA;如果有修改程序、且有修改COPYBOOK,则写入编译属性TYPE:B,以及修改的程序清单,至CMPLSTQA;如果没有修改程序、有修改COPYBOOK,则写入编译属性TYPE::C,以及重编译的程序清单,至CMPLSTQB。通过上述方式可以预先为编译清单中的各待编译数据设定编译属性。
③调用编译模块,通过REXX拼写调起JCL,根据程序清单依次进行编译处理。对于编译清单中的某待编译数据,可以根据该待编译数据的编译属性确定源程序库,进行程序编译,并将编译结果写入文件。
例如,编译处理时,如果确定该待编译数据的编译属性为TYPE:A;则该待编译数据对应的源程序库为待投产版本的程序库,COPYBOOK库为基线版本库;然后,可以根据该待编译数据的参数对待投产版本的程序库中的相应源程序数据进行编译处理。然后,可以将编译结果写入文件。
若确定为TYPE:B,则对应的源码数据库为待投产版本的程序库,COPYBOOK库为生产基线库与本次修改的COPYBOOK库组成的临时库;如果确定为TYPE::C,则对应的源码数据库与COPYBOOK库均为临时库。
当然,实际处理时,并不仅限于上述三种类型。用户可以根据实际需要设定待编译数据的编译属性,以及各编译属性所对应的编译环境参数。
进一步的,通过预先生成编译清单,并对待编译数据基于编译属性进行分类标识,然后,基于编译属性进行编译处理,可以大幅度提高编译处理的效率以及准确性。
S4:将获得的执行码与所述待投产版本的执行码库中的执行码进行一致性比对,获得版本比对结果。
通过步骤S0-S2可以准确的获得本批次待投产版本的执行码数据,然后,可以将所述待投产版本的执行码库中的执行码与通过步骤S0-S2获得的执行码进行比对,生成比对结果。一些实施方式中,可以通过REXX拼写作业,调用IBM FM的执行码比对工具,将上述两种方式获得的执行码比对,生成比对结果。
本说明书的一个实施例中,所述版本比对结果可以包括比对差异数量,相应的,可以根据所述比对差异数量确定所述待投产版本是否存在问题。
对于不带DBRM(Database Request Module,数据库请求)的程序来说,差异个数应为3处(编译时间相关),若差异数不为3,则记录为版本不一致,并附上差异个数。对于含DRBM的程序来说,差异数应为4或5处(编译时间相关、数据访问与执行码的一致性令牌),否则记录为版本不一致,并附上差异个数。通过上述方式,可以高效快速的确定待投产版本是否存在问题。
如果判断待投产版本存在问题,则可以进一步将比对结果汇总,形成对比表,展示给用户。上述操作步骤可以记录比对结果,如果判断待投产版本存在问题,则可以将每一步的比对结果汇总,生成汇总报表,直观的展示给用户。如果判断待投产版本不存在问题,则无需再汇总比对表,直接向用户展示不存在问题的比对结果即可。
本说明书的另一个实施例中,还可以进一步判断所述待投产版本是否包含数据访问功能,如果存在,将数据访问对应的第一令牌与执行码对应的第二令牌进行比对,获得比对结果。对于存在带数据访问的程序,在生成LOAD MODULE(执行码)的同时,还会生成DBRM,这两个MEMBER均含有自动生成的一致性令牌,可以比对该两个一致性令牌。通过比对该一致性令牌,可以发现可能存在的B包合并顺序上的错误,进一步提高版本比对的准确性。
一些实施方式中,可以通过下述方式进行比对:
①判断该版本是否含有DBRM的库,如果存在则进行如下比对;
②根据DBRM中的MEMBER清单,获取DBRM与LOADLIB的一致性令牌,如果相等,则记录YES,否则记录为NO。
利用本说明书上述实施例,通过将修改的COPYBOOK与现有基线开发数据合并,模拟投产环境,然后,基于模拟的投产环境对待投产版本的程序库中的数据进行编译处理,可以使得后续程序的编译基于待投产的COPYBOOK进行。然后,再将编译获得的执行码与待投产的执行码进行比对,可以准确的确定出因批次间追平而导致的引用COPYBOOK错乱带来的错误。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。具体的可以参照前述相关处理相关实施例的描述,在此不做一一赘述。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本说明书一个或多个实施例提供的版本比对方法,可以将基线版本库与待投产版本的COPYBOOK库合并,构建临时编译环境,然后,基于临时编译环境对待投产版本的程序库中的源程序数据进行编译处理。通过预先将本批次修改的COPYBOOK合并至基线版本中,然后,基于合并后所构建的编译环境对源程序数据进行编译处理,可以获得准确的编译结果。然后,可以再将待投产版本的执行码库中的执行码与上述方式获得执行码比对,从而可以发现因追平带来的版本错误,准确确定可能存在的隐含版本问题。基于上述所述的版本比对方法,本说明书一个或多个实施例还提供一种版本比对装置。所述的装置可以包括使用了本说明书实施例所述方法的系统、软件(应用)、模块、组件、服务器等并结合必要的实施硬件的装置。基于同一创新构思,本说明书实施例提供的一个或多个实施例中的装置如下面的实施例所述。由于装置解决问题的实现方案与方法相似,因此本说明书实施例具体的装置的实施可以参见前述方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。具体的,图2表示说明书提供的一种版本比对装置实施例的模块结构示意图,如图2所示,所述装置可以包括:
编译环境构建模块102,可以用于根据基线版本库以及待投产版本的COPYBOOK库构建临时编译环境;
编译处理模块104,可以用于基于构建的临时编译环境对待编译数据进行编译处理,获得执行码,所述待编译数据包括待投产版本所修改的源程序数据以及因COPYBOOK修改而待重新编译的源程序数据;
数据比对模块106,可以用于将获得的执行码与所述待投产版本的执行码库中的执行码进行一致性比对,获得版本比对结果。
本说明书的另一个实施例中,所述编译处理模块104可以包括:
编译参数确定单元,可以用于根据待编译数据的编译属性对相应的待编译数据进行编译处理,所述编译属性用于确定待编译数据编译时所对应的源程序库COPYBOOK库。
本说明书的另一个实施例中,所述数据比对模块106还可以用于判断所述待投产版本是否包含数据访问功能,如果存在,将数据访问对应的第一令牌与执行码对应的第二令牌进行比对,获得比对结果。
本说明书的另一个实施例中,所述数据比对模块106还可以用于根据比对差异数量确定所述待投产版本是否存在问题,其中,所述版本比对结果包括比对差异数量。
需要说明的,上述所述的装置根据方法实施例的描述还可以包括其他的实施方式。具体的实现方式可以参照相关方法实施例的描述,在此不作一一赘述。
本说明书一个或多个实施例提供的版本比对装置,可以将基线版本库与待投产版本的COPYBOOK库合并,构建临时编译环境,然后,基于临时编译环境对待投产版本的程序库中的源程序数据进行编译处理。通过预先将本批次修改的COPYBOOK合并至基线版本中,然后,基于合并后所构建的编译环境对源程序数据进行编译处理,可以获得准确的编译结果。然后,可以再将待投产版本的执行码库中的执行码与上述方式获得执行码比对,从而可以发现因追平带来的版本错误,准确确定可能存在的隐含版本问题。
本说明书提供的上述实施例所述的方法或装置可以通过计算机程序实现业务逻辑并记录在存储介质上,所述的存储介质可以计算机读取并执行,实现本说明书实施例所描述方案的效果。因此,本说明书还提供一种版本比对设备,包括处理器及存储处理器可执行指令的存储器,所述指令被所述处理器执行时实现包括下述方法步骤:
根据基线版本库以及待投产版本的COPYBOOK库构建临时编译环境;
基于构建的临时编译环境对待编译数据进行编译处理,获得执行码,所述待编译数据包括待投产版本所修改的源程序数据以及因COPYBOOK修改而待重新编译的源程序数据;
将获得的执行码与所述待投产版本的执行码库中的执行码进行一致性比对,获得版本比对结果。
本说明书实施例所提供的方法实施例可以在计算机终端、服务器或者类似的运算装置中执行。以运行在服务器上为例,图3是应用本说明书实施例的消息推送服务器的硬件结构框图。如图3所示,服务器100可以包括一个或多个(图中仅示出一个)处理器200(处理器200可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器300、以及用于通信功能的传输模块400。本领域普通技术人员可以理解,图3所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,服务器100还可包括比图3中所示更多或者更少的组件,例如还可以包括其他的处理硬件,如数据库或多级缓存、GPU,或者具有与图3所示不同的配置。
存储器300可用于存储应用软件的软件程序以及模块,如本发明实施例中的搜索方法对应的程序指令/模块,处理器200通过运行存储在存储器300内的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器300可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器300可进一步包括相对于处理器200远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输模块400用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端的通信供应商提供的无线网络。在一个实例中,传输模块400包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输模块400可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
所述存储介质可以包括用于存储信息的物理装置,通常是将信息数字化后再以利用电、磁或者光学等方式的媒体加以存储。所述存储介质有可以包括:利用电能方式存储信息的装置如,各式存储器,如RAM、ROM等;利用磁能方式存储信息的装置如,硬盘、软盘、磁带、磁芯存储器、磁泡存储器、U盘;利用光学方式存储信息的装置如,CD或DVD。当然,还有其他方式的可读存储介质,例如量子存储器、石墨烯存储器等等。
需要说明的,上述所述的设备根据方法实施例的描述还可以包括其他的实施方式。具体的实现方式可以参照相关方法实施例的描述,在此不作一一赘述。
上述实施例所述的版本比对设备,可以将基线版本库与待投产版本的COPYBOOK库合并,构建临时编译环境,然后,基于临时编译环境对待投产版本的程序库中的源程序数据进行编译处理。通过预先将本批次修改的COPYBOOK合并至基线版本中,然后,基于合并后所构建的编译环境对源程序数据进行编译处理,可以获得准确的编译结果。然后,可以再将待投产版本的执行码库中的执行码与上述方式获得执行码比对,从而可以发现因追平带来的版本错误,准确确定可能存在的隐含版本问题。
本说明书还提供一种版本比对系统,所述系统可以为单独的版本比对系统,也可以应用在多种计算机数据处理系统中。所述的系统可以为单独的服务器,也可以包括使用了本说明书的一个或多个所述方法或一个或多个实施例装置的服务器集群、系统(包括分布式系统)、软件(应用)、实际操作装置、逻辑门电路装置、量子计算机等并结合必要的实施硬件的终端装置。所述版本比对系统可以包括至少一个处理器以及存储计算机可执行指令的存储器,所述处理器执行所述指令时实现上述任意一个或者多个实施例中所述方法的步骤。
本说明书的一个实施例中,所述版本比对系统可以包括编译准备模块、编译比对模块、日志记录模块。其中,
所述编译准备模块可以用于根据待比对版本内容,基于生产基线,模拟一套版本投产后基线,即临时编译环境;同时,还可以生成编译清单和编译清单中各待编译数据所对应的编译属性。
所述编译比对模块可以用于根据编译准备模块生成的编译清单,对源程序进行编译,并比对编译结果、比对执行码差异、比对DBRM与执行码是否一致。
所述日志记录模块可以用于在编译准备模块以及编译比对模块工作时,记录结果,并在最后进行统一汇总,生成结果报,以展示给用户进行数据分析处理。
需要说明的,上述所述的系统根据方法或者装置实施例的描述还可以包括其他的实施方式,具体的实现方式可以参照相关方法实施例的描述,在此不作一一赘述。
上述实施例所述的版本比对系统,可以将基线版本库与待投产版本的COPYBOOK库合并,构建临时编译环境,然后,基于临时编译环境对待投产版本的程序库中的源程序数据进行编译处理。通过预先将本批次修改的COPYBOOK合并至基线版本中,然后,基于合并后所构建的编译环境对源程序数据进行编译处理,可以获得准确的编译结果。然后,可以再将待投产版本的执行码库中的执行码与上述方式获得执行码比对,从而可以发现因追平带来的版本错误,准确确定可能存在的隐含版本问题。
需要说明的是,本说明书上述所述的装置或者系统根据相关方法实施例的描述还可以包括其他的实施方式,具体的实现方式可以参照方法实施例的描述,在此不作一一赘述。本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于硬件+程序类、存储介质+程序实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书实施例并不局限于必须是符合标准数据模型/模板或本说明书实施例所描述的情况。某些行业标准或者使用自定义方式或实施例描述的实施基础上略加修改后的实施方案也可以实现上述实施例相同、等同或相近、或变形后可预料的实施效果。应用这些修改或变形后的数据获取、存储、判断、处理方式等获取的实施例,仍然可以属于本说明书的可选实施方案范围之内。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、车载人机交互设备、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书一个或多个时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法或者设备中还存在另外的相同要素。
本领域技术人员应明白,本说明书一个或多个实施例可提供为方法、系统或计算机程序产品。因此,本说明书一个或多个实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书一个或多个实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本本说明书一个或多个实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述并不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。
Claims (8)
1.一种版本比对方法,其特征在于,包括:
根据基线版本库以及待投产版本的COPYBOOK库构建临时编译环境;
基于构建的临时编译环境对待编译数据进行编译处理,获得执行码,所述待编译数据包括待投产版本所修改的源程序数据以及因COPYBOOK修改而待重新编译的源程序数据;
将获得的执行码与所述待投产版本的执行码库中的执行码进行一致性比对,并判断所述待投产版本是否包含数据访问功能,如果存在,将数据访问对应的第一令牌与执行码对应的第二令牌进行比对,获得版本比对结果。
2.根据权利要求1所述的方法,其特征在于,所述基于构建的临时编译环境对待编译数据进行编译处理,包括:
根据待编译数据的编译属性对相应的待编译数据进行编译处理,所述编译属性用于确定待编译数据编译时所对应的源程序库以及COPYBOOK库。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述版本比对结果包括比对差异数量,根据所述比对差异数量确定所述待投产版本是否存在问题。
4.一种版本比对装置,其特征在于,所述装置包括:
编译环境构建模块,用于根据基线版本库以及待投产版本的COPYBOOK库构建临时编译环境;
编译处理模块,用于基于构建的临时编译环境对待编译数据进行编译处理,获得执行码,所述待编译数据包括待投产版本所修改的源程序数据以及因COPYBOOK修改而待重新编译的源程序数据;
数据比对模块,用于将获得的执行码与所述待投产版本的执行码库中的执行码进行一致性比对,获得版本比对结果;
所述数据比对模块还用于判断所述待投产版本是否包含数据访问功能,如果存在,将数据访问对应的第一令牌与执行码对应的第二令牌进行比对,获得比对结果。
5.根据权利要求4所述的装置,其特征在于,所述编译处理模块包括:
编译参数确定单元,用于根据待编译数据的编译属性对相应的待编译数据进行编译处理,所述编译属性用于确定待编译数据编译时所对应的源程序库以及COPYBOOK库。
6.根据权利要求4所述的装置,其特征在于,所述数据比对模块还用于根据比对差异数量确定所述待投产版本是否存在问题,其中,所述版本比对结果包括比对差异数量。
7.一种版本比对设备,其特征在于,所述设备包括处理器及用于存储处理器可执行指令的存储器,所述指令被所述处理器执行时实现包括以下步骤:
根据基线版本库以及待投产版本的COPYBOOK库构建临时编译环境;
基于构建的临时编译环境对待编译数据进行编译处理,获得执行码,所述待编译数据包括待投产版本所修改的源程序数据以及因COPYBOOK修改而待重新编译的源程序数据;
将获得的执行码与所述待投产版本的执行码库中的执行码进行一致性比对,并判断所述待投产版本是否包含数据访问功能,如果存在,将数据访问对应的第一令牌与执行码对应的第二令牌进行一致性比对,获得版本比对结果。
8.一种版本比对系统,其特征在于,所述系统包括至少一个处理器以及存储计算机可执行指令的存储器,所述处理器执行所述指令时实现所述权利要求1-3任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911196046.4A CN110968342B (zh) | 2019-11-29 | 2019-11-29 | 一种版本比对方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911196046.4A CN110968342B (zh) | 2019-11-29 | 2019-11-29 | 一种版本比对方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110968342A CN110968342A (zh) | 2020-04-07 |
CN110968342B true CN110968342B (zh) | 2023-07-21 |
Family
ID=70032061
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911196046.4A Active CN110968342B (zh) | 2019-11-29 | 2019-11-29 | 一种版本比对方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110968342B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001022560A (ja) * | 1999-07-05 | 2001-01-26 | Toyo Commun Equip Co Ltd | ライブラリ関数バージョンアップ方法 |
CN104298603A (zh) * | 2014-11-04 | 2015-01-21 | 中国银行股份有限公司 | 一种应用系统版本构建的正确性的检查方法 |
CN108897543A (zh) * | 2018-06-29 | 2018-11-27 | 苏州科达科技股份有限公司 | 版本的临时编译系统、方法、装置及存储介质 |
CN109240696A (zh) * | 2017-05-19 | 2019-01-18 | 腾讯科技(深圳)有限公司 | 一种软件更新方法及装置 |
EP3432144A1 (en) * | 2017-07-20 | 2019-01-23 | Fujitsu Limited | A computer-implemented method and system for automatically recommending a code modification |
CN109766125A (zh) * | 2019-01-04 | 2019-05-17 | 中国银行股份有限公司 | 批次间追平冲突的识别方法及装置 |
-
2019
- 2019-11-29 CN CN201911196046.4A patent/CN110968342B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001022560A (ja) * | 1999-07-05 | 2001-01-26 | Toyo Commun Equip Co Ltd | ライブラリ関数バージョンアップ方法 |
CN104298603A (zh) * | 2014-11-04 | 2015-01-21 | 中国银行股份有限公司 | 一种应用系统版本构建的正确性的检查方法 |
CN109240696A (zh) * | 2017-05-19 | 2019-01-18 | 腾讯科技(深圳)有限公司 | 一种软件更新方法及装置 |
EP3432144A1 (en) * | 2017-07-20 | 2019-01-23 | Fujitsu Limited | A computer-implemented method and system for automatically recommending a code modification |
CN108897543A (zh) * | 2018-06-29 | 2018-11-27 | 苏州科达科技股份有限公司 | 版本的临时编译系统、方法、装置及存储介质 |
CN109766125A (zh) * | 2019-01-04 | 2019-05-17 | 中国银行股份有限公司 | 批次间追平冲突的识别方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110968342A (zh) | 2020-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107644286B (zh) | 工作流处理方法及装置 | |
US9021440B1 (en) | System and method for automated test script generation | |
CN102597964B (zh) | 用于启用并行测试的计算装置 | |
US20240045850A1 (en) | Systems and methods for database orientation transformation | |
CN108345532A (zh) | 一种自动化测试用例生成方法和装置 | |
JP6045134B2 (ja) | アプリケーション性能試験のための並列作業負荷シミュレーション | |
US9904524B2 (en) | Method and device for visually implementing software code | |
US20150248343A1 (en) | Method and apparatus for implementing instrumentation code | |
CN110990274B (zh) | 一种生成测试案例的数据处理方法、装置及系统 | |
CN108469955B (zh) | 一种基于注解的Android注入框架实现方法 | |
CN113986741A (zh) | 一种组件调试方法、装置及计算机设备 | |
US10592703B1 (en) | Method and system for processing verification tests for testing a design under test | |
CN114996127A (zh) | 固态硬盘固件模块智能化测试方法及系统 | |
CN109284222B (zh) | 软件单元、数据处理系统中的项目测试方法、装置及设备 | |
CN114185874A (zh) | 一种基于大数据的建模方法、装置、开发框架及设备 | |
KR100994070B1 (ko) | 예약된 컴포넌트 컨테이너 기반 소프트웨어 개발 방법 및장치 | |
US9542165B2 (en) | Model to Petri-Net transformation | |
US9280627B1 (en) | GUI based verification at multiple abstraction levels | |
CN112597023A (zh) | 基于导图的案例管理方法、装置、计算机设备及存储介质 | |
CN110968342B (zh) | 一种版本比对方法、装置及系统 | |
CN110737438A (zh) | 一种数据处理方法和装置 | |
CN114968817A (zh) | 代码改动影响范围的评估方法、装置、设备及存储介质 | |
CN109766125B (zh) | 批次间追平冲突的识别方法及装置 | |
CN113987044A (zh) | 资产数据的导入处理方法、装置及电子设备 | |
US20120330878A1 (en) | Conventions for inferring data models |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |