CN111737122A - 一种大型机程序调用层级的检查方法及系统 - Google Patents

一种大型机程序调用层级的检查方法及系统 Download PDF

Info

Publication number
CN111737122A
CN111737122A CN202010547027.8A CN202010547027A CN111737122A CN 111737122 A CN111737122 A CN 111737122A CN 202010547027 A CN202010547027 A CN 202010547027A CN 111737122 A CN111737122 A CN 111737122A
Authority
CN
China
Prior art keywords
program
calling
level
mainframe
checking
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.)
Granted
Application number
CN202010547027.8A
Other languages
English (en)
Other versions
CN111737122B (zh
Inventor
李永存
王和燕
宗涛
张康洁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bank of China Ltd
Original Assignee
Bank of China Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Bank of China Ltd filed Critical Bank of China Ltd
Priority to CN202010547027.8A priority Critical patent/CN111737122B/zh
Publication of CN111737122A publication Critical patent/CN111737122A/zh
Application granted granted Critical
Publication of CN111737122B publication Critical patent/CN111737122B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种大型机程序调用层级的检查方法及系统,其中,该方法包括:获取程序调用关系;根据所述程序调用关系,对每一程序调用链条进行分析,得到每一程序链条的调用层级;统计所述每一程序链条的最大调用层级,将所述最大调用层级与控制层级进行比较;如果所述最大调用层级大于所述控制层级,生成告警信息。该方法及系统在进行大型机程序调用层级的检查时,相较于现有技术能够大大缩短检查耗时,且能有效提高检查结果的准确性。

Description

一种大型机程序调用层级的检查方法及系统
技术领域
本发明涉及计算机程序技术领域,尤指一种大型机程序调用层级的检查方法及系统。
背景技术
大型机作为大型商业服务器,一般用于政府、银行保险公司和大型制造企业。在应用系统建设中,随着调用层级的增加,可维护性极大的降低,应用系统潜在风险增加,对此,控制程序调用层级成为广大开发者共识。但是,为控制程序调用层级,更多的解决办法是调整公司的规章制度或者开发者自行控制调用层级,并无有效的技术手段进行保证。
在现有技术中,有提出利用应用程序遍历所有代码库,根据程序调用语句特征识别调用层级来进行大型机程序检查;这种方式一般需要扫描所有代码库,因此会存在以下不足:
现有的检查方式可以发现不合规项依赖检查动作的执行,但是无法发现程序代码提交的过程,因此,对不合规层级的发现不及时;由于需要遍历所有代码库,故检查动作执行时间较长;使用调用语句特征进行识别时,具有调用特征的代码存在已经废弃的情况,存在发生误报的可能。
综上来看,亟需一种可以克服上述问题的大型机程序调用层级的检查方案。
发明内容
为解决上述问题,本发明提出了一种大型机程序调用层级的检查方法及系统,该方法及系统采用内嵌到编译过程的方式,能够在调试阶段发现不合规的调用层级,且只针对大型机程序的调用,该过程检查耗时短,检查结果的准确性高。
在本发明的第一方面,提出了一种大型机程序调用层级的检查方法,该方法包括:
获取程序调用关系;
根据所述程序调用关系,对每一程序调用链条进行分析,得到每一程序链条的调用层级;
统计所述每一程序链条的最大调用层级,将所述最大调用层级与控制层级进行比较;
如果所述最大调用层级大于所述控制层级,生成告警信息。
进一步的,该方法还包括:
根据要检查的大型机的系统,配置相应的控制层级。
进一步的,该方法还包括:
读取编译过程生成的CROSS-REFERENCE TABLE日志。
进一步的,获取程序调用关系,包括:
统计所述CROSS-REFERENCE TABLE日志里记录的程序调用关系。
在本发明的第二方面,提出了一种大型机程序调用层级的检查系统,该系统包括:
调用关系获取模块,用于获取程序调用关系;
调用层级计算模块,用于根据所述程序调用关系,对每一程序调用链条进行分析,得到每一程序链条的调用层级;
调用层级比较模块,用于统计所述每一程序链条的最大调用层级,将所述最大调用层级与控制层级进行比较;
告警模块,用于在所述最大调用层级大于所述控制层级时,生成告警信息。
进一步的,该系统还包括:
控制层级配置模块,用于根据要检查的大型机的系统,配置相应的控制层级。
进一步的,该系统还包括:
日志读取模块,用于读取编译过程生成的CROSS-REFERENCE TABLE日志。
进一步的,调用关系获取模块具体用于:
统计所述CROSS-REFERENCE TABLE日志里记录的程序调用关系。
在本发明的第三方面,提出了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现大型机程序调用层级的检查方法。
在本发明的第四方面,提出了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现大型机程序调用层级的检查方法。
本发明提出了一种大型机程序调用层级的检查方法及系统,相较于现有技术至少存在以下优点:
1、效率高,只需读取日志就可分析完毕,分析效率高。
2、及时性强,在程序的调试阶段就能够发现不符合项。
3、可配置层级参数,能够符合不同子系统的应用标准。
4、准确性高,分析结果准确。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本发明一实施例的大型机程序调用层级的检查方法流程示意图。
图2是本发明一具体实施例的大型机程序调用层级的检查方法流程示意图。
图3是本发明一实施例的大型机程序调用层级的检查系统架构示意图。
图4是本发明一具体实施例的大型机程序调用层级的检查系统架构示意图。
图5是本发明一实施例的计算机设备结构示意图。
具体实施方式
下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
根据本发明的实施方式,提出了一种大型机程序调用层级的检查方法及系统。该方法及系统相较于遍历代码库的技术方案,在分析的数据来源上存在较大不同,本发明采用内嵌到编译过程的方式,能够在调试阶段发现不合规的调用层级,且只针对大型机程序的调用,该过程与现有技术相比能够大大缩短检查耗时,且能有效提高检查结果的准确性。
在本发明实施例中,需要说明的术语有:
大型机程序:Mainframe是一种大型商业服务器,又称为大型机,运行在大型机上的应用程序通常称作大型机程序。
调用:将程序的执行交给其他的代码段的过程。
调用层级:将程序的执行交给其他的代码段的次数。
下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。
图1是本发明一实施例的大型机程序调用层级的检查方法流程示意图。如图1所示,该方法包括:
步骤S101,获取程序调用关系。
步骤S102,根据所述程序调用关系,对每一程序调用链条进行分析,得到每一程序链条的调用层级。
步骤S103,统计所述每一程序链条的最大调用层级,将所述最大调用层级与控制层级进行比较。
步骤S104,如果所述最大调用层级大于所述控制层级,生成告警信息。
具体的,结合图2,为本发明一具体实施例的大型机程序调用层级的检查方法流程示意图。如图2所示,在进行大型机程序调用层级的检查时,本发明首先基于大型机上COBOL编程语言开发应用程序(COBOL程序只有编译后才可以运行),在编译过程中系统编译器会生成CROSS-REFERENCE TABLE(交叉引用表),在该表中罗列了程序调用关系,比如:
程序A调用了5只程序,名称分别为B1、B2、B3、B4、B5。
程序B1调用了3只程序,程序名分别为C1、C2、C3。
程序C2调用了4只程序,程序名分别为D1、D2、D3、D4。
根据CROSS-REFERENCE TABLE日志中的程序调用关系,统计生成调用层级表,并进一步根据层级要求设置不同的编译返回码,及时发现不合规的程序调用层级。
具体过程为:
步骤S201,根据要检查的大型机的系统,配置相应的控制层级。工作人员可以根据实际情况,根据大型机的不同子系统进行相应的配置。
步骤S202,读取编译过程生成的CROSS-REFERENCE TABLE日志。
步骤S203,统计所述CROSS-REFERENCE TABLE日志里记录的程序调用关系。
步骤S204,根据所述程序调用关系,对每一程序调用链条进行分析,得到每一程序链条的调用层级。
步骤S205,统计所述每一程序链条的最大调用层级,将所述最大调用层级与控制层级进行比较。
步骤S206,如果所述最大调用层级大于所述控制层级,生成告警信息。
步骤S207,如果所述最大调用层级小于/等于所述控制层级,则程序可以顺利通过。
本发明提出的大型机程序调用层级的检查方法,通过读取CROSS-REFERENCETABLE日志进行大型机程序调用层级的检查,该方法相较于现有技术至少存在以下优点:
1、效率高,只需读取日志就可分析完毕,分析效率高。
2、及时性强,在程序的调试阶段就能够发现不符合项。
3、可配置层级参数,能够符合不同子系统的应用标准。
4、准确性高,分析结果准确。
需要说明的是,尽管在上述实施例及附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
在介绍了本发明示例性实施方式的方法之后,接下来,参考图3至图4对本发明示例性实施方式的大型机程序调用层级的检查系统进行介绍。
大型机程序调用层级的检查系统的实施可以参见上述方法的实施,重复之处不再赘述。以下所使用的术语“模块”或者“单元”,可以是实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
基于同一发明构思,本发明还提出了一种大型机程序调用层级的检查系统。
如图3所示,该系统包括:
调用关系获取模块310,用于获取程序调用关系。
调用层级计算模块320,用于根据所述程序调用关系,对每一程序调用链条进行分析,得到每一程序链条的调用层级。
调用层级比较模块330,用于统计所述每一程序链条的最大调用层级,将所述最大调用层级与控制层级进行比较。
告警模块340,用于在所述最大调用层级大于所述控制层级时,生成告警信息。
在一具体实施例中,参考图4,为本发明一具体实施例的大型机程序调用层级的检查系统架构示意图。
如图4所示,该系统还包括:
控制层级配置模块410,用于根据要检查的大型机的系统,配置相应的控制层级。
日志读取模块420,用于读取编译过程生成的CROSS-REFERENCE TABLE日志。
调用关系获取模块430,用于统计所述CROSS-REFERENCE TABLE日志里记录的程序调用关系。
调用层级计算模块440,用于根据所述程序调用关系,对每一程序调用链条进行分析,得到每一程序链条的调用层级;
调用层级比较模块450,用于统计所述每一程序链条的最大调用层级,将所述最大调用层级与控制层级进行比较;
告警模块460,用于在所述最大调用层级大于所述控制层级时,生成告警信息。
另外,如果经过比较,所述最大调用层级小于/等于控制层级,则认为程序调用层级合规,不会产生告警,程序可以顺利通过。
应当注意,尽管在上文详细描述中提及了大型机程序调用层级的检查系统的若干模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多模块的特征和功能可以在一个模块中具体化。反之,上文描述的一个模块的特征和功能可以进一步划分为由多个模块来具体化。
基于前述发明构思,如图5所示,本发明还提出了一种计算机设备500,包括存储器510、处理器520及存储在存储器510上并可在处理器520上运行的计算机程序530,所述处理器520执行所述计算机程序530时实现前述大型机程序调用层级的检查方法。
基于前述发明构思,本发明还提出了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现前述大型机程序调用层级的检查方法。
本发明提出了一种大型机程序调用层级的检查方法及系统,相较于现有技术至少存在以下优点:
1、效率高,只需读取日志就可分析完毕,分析效率高。
2、及时性强,在程序的调试阶段就能够发现不符合项。
3、可配置层级参数,能够符合不同子系统的应用标准。
4、准确性高,分析结果准确。
本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(装置)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种大型机程序调用层级的检查方法,其特征在于,该方法包括:
获取程序调用关系;
根据所述程序调用关系,对每一程序调用链条进行分析,得到每一程序链条的调用层级;
统计所述每一程序链条的最大调用层级,将所述最大调用层级与控制层级进行比较;
如果所述最大调用层级大于所述控制层级,生成告警信息。
2.根据权利要求1所述的大型机程序调用层级的检查方法,其特征在于,该方法还包括:
根据要检查的大型机的系统,配置相应的控制层级。
3.根据权利要求1所述的大型机程序调用层级的检查方法,其特征在于,该方法还包括:
读取编译过程生成的CROSS-REFERENCE TABLE日志。
4.根据权利要求3所述的大型机程序调用层级的检查方法,其特征在于,获取程序调用关系,包括:
统计所述CROSS-REFERENCE TABLE日志里记录的程序调用关系。
5.一种大型机程序调用层级的检查系统,其特征在于,该系统包括:
调用关系获取模块,用于获取程序调用关系;
调用层级计算模块,用于根据所述程序调用关系,对每一程序调用链条进行分析,得到每一程序链条的调用层级;
调用层级比较模块,用于统计所述每一程序链条的最大调用层级,将所述最大调用层级与控制层级进行比较;
告警模块,用于在所述最大调用层级大于所述控制层级时,生成告警信息。
6.根据权利要求5所述的大型机程序调用层级的检查系统,其特征在于,该系统还包括:
控制层级配置模块,用于根据要检查的大型机的系统,配置相应的控制层级。
7.根据权利要求5所述的大型机程序调用层级的检查系统,其特征在于,该系统还包括:
日志读取模块,用于读取编译过程生成的CROSS-REFERENCE TABLE日志。
8.根据权利要求7所述的大型机程序调用层级的检查系统,其特征在于,调用关系获取模块具体用于:
统计所述CROSS-REFERENCE TABLE日志里记录的程序调用关系。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4任一所述方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至4任一所述方法。
CN202010547027.8A 2020-06-16 2020-06-16 一种大型机程序调用层级的检查方法及系统 Active CN111737122B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010547027.8A CN111737122B (zh) 2020-06-16 2020-06-16 一种大型机程序调用层级的检查方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010547027.8A CN111737122B (zh) 2020-06-16 2020-06-16 一种大型机程序调用层级的检查方法及系统

Publications (2)

Publication Number Publication Date
CN111737122A true CN111737122A (zh) 2020-10-02
CN111737122B CN111737122B (zh) 2023-07-21

Family

ID=72649363

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010547027.8A Active CN111737122B (zh) 2020-06-16 2020-06-16 一种大型机程序调用层级的检查方法及系统

Country Status (1)

Country Link
CN (1) CN111737122B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104298603A (zh) * 2014-11-04 2015-01-21 中国银行股份有限公司 一种应用系统版本构建的正确性的检查方法
CN105303324A (zh) * 2015-11-10 2016-02-03 中国建设银行股份有限公司 一种信息系统参数管理方法和装置
CN106796598A (zh) * 2014-09-03 2017-05-31 起元科技有限公司 管理层级实体的计算
US20180052695A1 (en) * 2016-08-16 2018-02-22 International Business Machines Corporation Mainframe system structuring
CN108880896A (zh) * 2018-06-29 2018-11-23 中国农业银行股份有限公司 一种基于大型机的程序灰度发布方法及装置
CN110990222A (zh) * 2019-11-27 2020-04-10 中国银行股份有限公司 基于大型机的跨平台图形化运行监控方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106796598A (zh) * 2014-09-03 2017-05-31 起元科技有限公司 管理层级实体的计算
CN104298603A (zh) * 2014-11-04 2015-01-21 中国银行股份有限公司 一种应用系统版本构建的正确性的检查方法
CN105303324A (zh) * 2015-11-10 2016-02-03 中国建设银行股份有限公司 一种信息系统参数管理方法和装置
US20180052695A1 (en) * 2016-08-16 2018-02-22 International Business Machines Corporation Mainframe system structuring
CN108880896A (zh) * 2018-06-29 2018-11-23 中国农业银行股份有限公司 一种基于大型机的程序灰度发布方法及装置
CN110990222A (zh) * 2019-11-27 2020-04-10 中国银行股份有限公司 基于大型机的跨平台图形化运行监控方法及装置

Also Published As

Publication number Publication date
CN111737122B (zh) 2023-07-21

Similar Documents

Publication Publication Date Title
US8832125B2 (en) Extensible event-driven log analysis framework
Prähofer et al. Static code analysis of IEC 61131-3 programs: Comprehensive tool support and experiences from large-scale industrial application
US9208057B2 (en) Efficient model checking technique for finding software defects
US10747641B2 (en) System and method for cause point analysis for effective handling of static analysis alarms
US20110145799A1 (en) Path-sensitive dataflow analysis including path refinement
CN110955431A (zh) 编译环境的处理方法及装置
JP6303749B2 (ja) ソフトウェアプログラムを解析する方法及びシステム並びに非一時的なコンピュータ可読媒体
CN111767076A (zh) 代码重构方法及装置
CN111813672B (zh) 一种针对多种处理器架构的非侵入式覆盖率统计方法
Zhang et al. Unveiling the mystery of API evolution in Deep Learning frameworks: a case study of TensorFlow 2
US8972784B2 (en) Method and device for testing a system comprising at least a plurality of software units that can be executed simultaneously
CN111552476A (zh) 一种代码静态检查的方法与设备
CN108897678B (zh) 静态代码检测方法和静态代码检测系统、存储设备
JP7384054B2 (ja) 自動化されたソフトウェアプログラム修復
JP2020129372A (ja) 自動化されたソフトウェアプログラム修復
CN111737122B (zh) 一种大型机程序调用层级的检查方法及系统
CN107967213B (zh) 一种航天软件临界资源访问冲突检测方法
CN116069650A (zh) 一种测试用例的生成方法及装置
Molitorisz Pattern-based refactoring process of sequential source code
WO2012174107A2 (en) Pattern analysis and performance accounting
Barabanova et al. Modeling and Investigating a Race Condition Detection Algorithm for Multithread Computational Systems
Liu et al. Taxonomy of aging-related bugs in deep learning libraries
CN113434430A (zh) 一种sql查询语句性能检测方法和装置
Tragatschnig et al. Modeling change patterns for impact and conflict analysis in event-driven architectures
US20210055919A1 (en) Detection of semantic equivalence of program source codes

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