CN102650964B - 用于监控面向对象的应用的方法、系统和自监控系统 - Google Patents

用于监控面向对象的应用的方法、系统和自监控系统 Download PDF

Info

Publication number
CN102650964B
CN102650964B CN201110047972.2A CN201110047972A CN102650964B CN 102650964 B CN102650964 B CN 102650964B CN 201110047972 A CN201110047972 A CN 201110047972A CN 102650964 B CN102650964 B CN 102650964B
Authority
CN
China
Prior art keywords
node
digraph
degree
key
calls
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.)
Expired - Fee Related
Application number
CN201110047972.2A
Other languages
English (en)
Other versions
CN102650964A (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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to CN201110047972.2A priority Critical patent/CN102650964B/zh
Priority to US13/406,747 priority patent/US8589894B2/en
Publication of CN102650964A publication Critical patent/CN102650964A/zh
Priority to US14/053,084 priority patent/US9563719B2/en
Application granted granted Critical
Publication of CN102650964B publication Critical patent/CN102650964B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3013Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is an embedded system, i.e. a combination of hardware and software dedicated to perform a certain function in mobile devices, printers, automotive or aircraft systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3089Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
    • G06F11/3096Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents wherein the means or processing minimize the use of computing system or of computing system component resources, e.g. non-intrusive monitoring which minimizes the probe effect: sniffing, intercepting, indirectly deriving the monitored data from other directly available data

Abstract

本发明提供了用于监控面向对象的应用的方法、系统和自监控系统。用于监控面向对象的应用的方法包括:根据应用的实时运行,建立代表事务的有向图,所述有向图中包含有多个可替换类的节点;根据有向图中多个可替换类的节点之间的调用关系选择关键节点;在选出的关键节点处插入监控程序。本发明的一个方面使监控面向对象的应用的监控开销大大减小。

Description

用于监控面向对象的应用的方法、系统和自监控系统
技术领域
本发明总体上涉及计算机技术,特别地,本发明涉及用于监控面向对象的应用的方法、系统和自监控系统。
背景技术
在计算机软件领域,监控计算机软件的运行状态,一直是一项重要的任务。尤其在现代云计算的环境中,实时监控云计算环境中每个节点的软件运行状态,对于了解整个云计算系统的健康状况、维护整个云计算系统的正常运行尤为重要。
图1是现有技术中的对于面向对象的应用的一个代表事务的有向图。事务是单个逻辑工作单元执行的一系列操作,这些操作组合为一个要么全部成功、要么全部失败的单元。例如,取钱是一个事务。要么取钱成功,要么取钱失败。类是具有相同或相似性质的对象的抽象。例如,图1中的ATM机取钱、密码认证取钱、指纹认证取钱、瞳孔认证取钱、认证卡取钱就是五个类。这个取钱的事务统一用一个接口来表示。这个接口声明了取钱这个事务,但没有实现,等着每个类分别去实现。在实现时,ATM机取钱、密码认证取钱、指纹认证取钱、瞳孔认证取钱、认证卡取钱这五个类分别实现了取钱这个接口,但实现的方式不一样。这些具体的实现方式中调用的每个过程就是图1中的节点(即方法)。
例如,当执行ATM机取钱时,节点10开始工作,即接受ATM机取钱。在该过程中,需要进行密码认证,因此节点10调用节点2。节点2在进行密码认证时,需要与密码库或身份数据库进行对比,因此可以调用节点11或8。节点11在与密码库进行对比时,需要调用密码库,因此调用节点12。节点8在与身份密码库进行对比时,需要调用身份密码库,因此调用节点9。图1代表了取钱这个完整的事务。
在现有技术中,当需要监控面向对象的应用时,先监控应用的实时运行,然后根据应用的实时运行,建立如图1所示的代表事务的有向图,此后在图中每个节点的前后都插入监控程序,如图2所示。在图2中共插入了15个监控程序。
由于需要在每个节点的前后都插入监控程序,监控开销变得不可接受地大。
发明内容
本发明的一个方面解决的一个问题是减小监控面向对象的应用的监控开销。
根据本发明的一方面,提供了一种用于监控面向对象的应用的方法,包括:根据应用的实时运行,建立代表事务的有向图,所述有向图中包含有多个可替换类的节点;根据有向图中多个可替换类的节点之间的调用关系选择关键节点;在选出的关键节点处插入监控程序。
根据本发明的一方面,提供了一种用于监控面向对象的应用的系统,包括:事务图建立器,被配置为根据应用的实时运行,建立代表事务的有向图,所述有向图中包含有多个可替换类的节点;关键节点选择器,被配置为根据有向图中多个可替换类的节点之间的调用关系选择关键节点;监控程序插入器,被配置为在选出的关键节点处插入监控程序。
根据本发明的一方面,提供了一种自监控系统,包括面向对象的应用和根据本发明的上述方面的用于监控面向对象的应用的系统。
本发明的一个方面带来的一个有益效果是使监控面向对象的应用的监控开销大大减小。
附图说明
本申请中所参考的附图只用于示例本发明的典型实施例,不应该认为是对本发明范围的限制。
图1是现有技术中的对于面向对象的应用的一个代表事务的有向图。
图2是现有技术中的插入了监控程序的代表事务的有向图。
图3是根据本发明的一个实施例的流程图。
图4是根据本发明的一个实施例的增加了开始节点和结束节点的代表事务的有向图。
图5是根据本发明的一个实施例的插入了监控程序的代表事务的有向图。
图6是根据本发明的另一个实施例的插入了监控程序的代表事务的有向图。
图7是根据本发明的另一个实施例的插入了监控程序的代表事务的有向图。
图8是根据本发明的另一个实施例的插入了监控程序的代表事务的有向图。
图9示出了根据本发明的另一个实施例最后留下的关键节点。
图10是根据本发明的另一个实施例的插入了监控程序的代表事务的有向图。
图11是根据本发明的另一个实施例的插入了监控程序的代表事务的有向图。
图12A分别示出了利用本发明和不利用本发明时的CPU开销。
图12B分别示出了利用本发明和不利用本发明时的JavaHeap开销。
图12C分别示出了若干事务类型在利用本发明和不利用本发明的情况下的插入了监控程序的类的数量和插入的监控程序函数的数量。
图13示出了根据本发明的一个实施例的自监控系统。
具体实施方式
下列讨论中,提供大量具体的细节以帮助彻底了解本发明。然而,很显然对于本领域技术人员来说,即使没有这些具体细节,并不影响对本发明的理解。并且应该认识到,使用如下的任何具体术语仅仅是为了方便描述,因此,本发明不应当局限于只用在这样的术语所表示和/或暗示的任何特定应用中。
先来介绍一下本发明的原理。由于面向对象的程序设计中广泛使用适配器和代理。这些适配器和代理并不是特别需要监控的节点。因此,可以考虑避免在这些适配器和代理的前后插入监控程序。这些适配器和代理一般不会有很高的入度(入度为某节点被其它节点调用的数量)。另外,不同的可替换类的节点之间往往具有可替换性。因此,根据可替换类的节点之间的调用关系从所有节点中选出若干关键节点,并对关键节点插入监控程序,就可以大大减小监控面向对象的应用的开销。
图3是根据本发明的一个实施例的流程图。根据本发明的一个实施例的用于监控面向对象的应用的方法包括:在步骤S1中,根据应用的实时运行,建立代表事务的有向图,该有向图中包含有多个可替换类的节点;在步骤S2中,根据有向图中多个可替换类的节点之间的调用关系选择关键节点;在步骤S3中,在选出的关键节点处插入监控程序。
优选地,根据本发明的一个实施例,在顶端节点之前增加调用该顶端节点的开始节点,在底端节点之后增加被该底端节点所调用的结束节点。顶端节点为不被其它节点调用而仅调用其它节点的节点,底端节点为仅被其它节点调用而不调用其它节点的节点。图4是根据本发明的一个实施例的增加了开始节点和结束节点的代表事务的有向图。图4中,节点10、1、3、5、7是顶端节点,节点12、9是底端节点。
下面举例描述选择关键节点并插入监控程序的方式。
实施例1
将图中的所有节点按照入度排序,选取排序中的前n名作为关键节点,其中n为自然数,入度为节点在图中被其它节点调用的数量。在一个例子中,设n=3,但实际上n可以为任意自然数。下面是计算出的图4中每个节点的入度:
节点1:1
节点2:2
节点3:1
节点4:1
节点5:1
节点6:1
节点7:1
节点8:4
节点9:1
节点10:1
节点11:1
节点12:1
所有开始节点:0
所有结束节点:1
当多个节点具有同样的入度时,一般选择最靠近开始节点的节点。当具有同样的入度、最靠近开始节点的节点也有多个时,可从中任意选择。
在本例中,入度最高的节点是节点8,入度第二高的节点是节点2。由于存在多个入度第三高、且最靠近开始节点的节点10、1、3、5、7,任意选择其中的节点1。
因此,在选出的三个关键节点8、2、1的前和后插入监控程序。由于在给节点1的后面插入监控程序时,监控程序已存在,则不再重复插入。插入的结果如图5所示。
可选地,也可以只在选出的三个关键节点8、2、1的前面插入监控程序。
可选地,也可以只在选出的三个关键节点8、2、1的后面插入监控程序。
由于入度较大的节点往往是可替换性较差的节点,只针对它们插入监控程序,可以大大减小监控面向对象的应用的开销。
实施例2
选取图中所有入度达到某一阈值的节点作为关键节点。在本例中,设阈值=2,但显然阈值也可以为其它值。
在本例中,入度达到2的节点只有节点8、2。因此,只在节点8、2的前和后插入监控程序,如图6所示。当然,也可以只在节点8、2的前或后插入监控程序。
由于入度较大的节点往往是可替换性较差的节点,只针对它们插入监控程序,可以大大减小监控面向对象的应用的开销。
实施例3
将图中所有节点按照入度出度之差排序,选取排序中的前n名作为关键节点,其中n为自然数,出度为节点在图中调用其它节点的数量。在本例中,设n=3,但实际上n可以为任意自然数。下面是计算出的图4中每个节点的入度与出度之差:
节点1:0
节点2:0
节点3:0
节点4:0
节点5:0
节点6:0
节点7:0
节点8:3
节点9:0
节点10:0
节点11:0
节点12:0
所有开始节点:-1
所有结束节点:1
因此,在选出的节点8和两个结束节点的前和后插入监控程序。由于结束节点的后面无法插入监控程序,因此只在结束节点的前面插入监控程序。插入的结果如图7所示。
当然,也可以只在选出的节点的前面或后面插入监控程序。
由于入度与出度之差较大的节点往往是可替换性较差的节点,只针对它们插入监控程序,可以大大减小监控面向对象的应用的开销。
实施例4
选取图中所有入度出度之差达到某一阈值的所有节点作为关键节点。在本例中,设阈值为2,但实际上阈值可以为任意自然数。
在本例中,入度出度之差达到2的节点只有节点8。因此,只在节点8的前和后插入监控程序,如图8所示。当然,也可以只在节点8的前或后插入监控程序。
由于入度与出度之差较大的节点往往是可替换性较差的节点,只针对它们插入监控程序,可以大大减小监控面向对象的应用的开销。
实施例5
在实施例5中,通过以下方式选择关键节点:
a.选择有向图中具有最大入度的节点作为基准节点,入度为节点在有向图中被其它节点调用的数量;
b.对有向图中与所述基准节点有调用关系的相邻节点进行判断,其中如果所述相邻节点是调用所述基准节点的节点且除了调用所述基准节点之外不再调用其它节点,则从有向图中删除该相邻节点;如果所述相邻节点是被所述基准节点调用的节点且除了被所述基准节点调用之外不再被其它节点调用,则从有向图中删除该相邻节点;
c.对于每一个未删除的相邻节点,重复过程b,直至所有节点都被遍历。
在本例中,具有最大入度的节点是节点8。与节点8有调用关系的相邻节点是节点2、4、6、7、9,其中只有节点2除了调用节点8之外还调用节点11,因此只保留节点2,删除其它相邻节点。与节点2有调用关系的相邻节点是节点10、1、11。经判断,这三个节点都不符合保留在图中的条件,因此从图中删除。从图9中可以看出,只剩下节点2和节点8作为关键节点。
因此,在关键节点2和8的前和后插入监控程序,如图10所示。
可选地,也可以只在关键节点2、8的前面或后面插入监控程序。
由于上面的过程删除的都是与其它节点的调用关系比较单一的节点,保留的是与其它节点的调用关系比较复杂的节点,因此只针对保留的节点插入监控程序,可以大大减小监控面向对象的应用的开销。
实施例6
将图中所有顶端节点作为关键节点。图4中的顶端节点为节点10、1、3、5、7,因此在这些节点的前后插入监控程序,如图11所示。
这种做法的好处是确保每一个类都能被监控到,同时又减小了部分监控开销。
当然,也可以采用实施例1-6之外的其它选择关键节点并插入监控程序的方式。本领域技术人员阅读到这里,受益于本发明的以上教导,会作出根据图中多个可替换类的节点之间的调用关系选择关键节点、并在选出的关键节点处插入监控程序的任何其它替代方式。
图12A、B分别示出了利用本发明和不利用本发明时的CPU开销、JavaHeap开销。图12C分别示出了若干事务类型在利用本发明和不利用本发明的情况下的插入了监控程序的类的数量和插入的监控程序函数的数量。从图中可以看出,利用了本发明时无论是插入了监控程序的类的数量还是插入的监控程序函数的数量都大大减小。本发明大大减小了监控面向对象的应用的开销。
图13示出了根据本发明的一个实施例的自监控系统1300。自监控系统1300包括面向对象的应用1301和用于监控面向对象的应用的系统1302。用于监控面向对象的应用的系统1302包括:事务图建立器1303,被配置为根据应用的实时运行,建立代表事务的有向图,所述有向图中包含有多个可替换类的节点;关键节点选择器1304,被配置为根据有向图中多个可替换类的节点之间的调用关系选择关键节点;监控程序插入器1305,被配置为在选出的关键节点处插入监控程序。
所属技术领域的技术人员知道,本发明可以体现为系统、方法或计算机程序产品。因此,本发明可以具体实现为以下形式,即,可以是完全的硬件、完全的软件(包括固件、驻留软件、微代码等)、或者本文一般称为“电路”、“模块”或“系统”的软件部分与硬件部分的组合。此外,本发明还可以采取体现在任何有形的表达介质(mediumofexpression)中的计算机程序产品的形式,该介质中包含计算机可用的程序码。
可以使用一个或多个计算机可用的或计算机可读的介质的任何组合。计算机可用的或计算机可读的介质例如可以是——但不限于——电的、磁的、光的、电磁的、红外线的、或半导体的系统、装置、器件或传播介质。计算机可读介质的更具体的例子(非穷举的列表)包括以下:有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、诸如支持因特网或内部网的传输介质、或者磁存储器件。注意计算机可用的或计算机可读的介质甚至可以是上面印有程序的纸张或者其它合适的介质,这是因为,例如可以通过电扫描这种纸张或其它介质,以电子方式获得程序,然后以适当的方式加以编译、解释或处理,并且必要的话在计算机存储器中存储。在本文件的语境中,计算机可用的或计算机可读的介质可以是任何含有、存储、传达、传播、或传输供指令执行系统、装置或器件使用的或与指令执行系统、装置或器件相联系的程序的介质。计算机可用的介质可包括在基带中或者作为载波一部分传播的、由其体现计算机可用的程序码的数据信号。计算机可用的程序码可以用任何适当的介质传输,包括-但不限于-无线、电线、光缆、RF等等。
用于执行本发明的操作的计算机程序码,可以以一种或多种程序设计语言的任何组合来编写,所述程序设计语言包括面向对象的程序设计语言-诸如Java、Smalltalk、C++之类,还包括常规的过程式程序设计语言-诸如”C”程序设计语言或类似的程序设计语言。程序码可以完全地在用户的计算上执行、部分地在用户的计算机上执行、作为一个独立的软件包执行、部分在用户的计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在后一种情形中,远程计算机可以通过任何种类的网络——包括局域网(LAN)或广域网(WAN)-连接到用户的计算机,或者,可以(例如利用因特网服务提供商来通过因特网)连接到外部计算机。
以下参照按照本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。要明白的是,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得通过计算机或其它可编程数据处理装置执行的这些指令,产生实现流程图和/或框图中的方框中规定的功能/操作的装置。
也可以把这些计算机程序指令存储在能指令计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令产生一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instructionmeans)的制造品。
也可以把计算机程序指令加载到计算机或其它可编程数据处理装置上,使得在计算机或其它可编程数据处理装置上执行一系列操作步骤,以产生计算机实现的过程,从而在计算机或其它可编程装置上执行的指令就提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本文中所用的术语,仅仅是为了描述特定的实施例,而不意图限定本发明。本文中所用的单数形式的“一”和“该”,旨在也包括复数形式,除非上下文中明确地另外指出。还要知道,“包含”一词在本说明书中使用时,说明存在所指出的特征、整体、步骤、操作、单元和/或组件,但是并不排除存在或增加一个或多个其它特征、整体、步骤、操作、单元和/或组件,以及/或者它们的组合。
权利要求中的对应结构、材料、操作以及所有功能性限定的装置(means)或步骤的等同替换,旨在包括任何用于与在权利要求中具体指出的其它单元相组合地执行该功能的结构、材料或操作。所给出的对本发明的描述其目的在于示意和描述,并非是穷尽性的,也并非是要把本发明限定到所表述的形式。对于所属技术领域的普通技术人员来说,在不偏离本发明范围和精神的情况下,显然可以作出许多修改和变型。对实施例的选择和说明,是为了最好地解释本发明的原理和实际应用,使所属技术领域的普通技术人员能够明了,本发明可以有适合所要的特定用途的具有各种改变的各种实施方式。

Claims (15)

1.一种用于监控面向对象的应用的方法,包括:
根据应用的实时运行,建立代表事务的有向图,所述有向图中包含有多个可替换类的节点;
根据有向图中多个可替换类的节点之间的调用关系选择关键节点;
在选出的关键节点处插入监控程序,
其中根据有向图中多个可替换类的节点之间的调用关系选择关键节点包括:
a.选择有向图中具有最大入度的节点作为基准节点,入度为节点在有向图中被其它节点调用的数量;
b.对有向图中与所述基准节点有调用关系的相邻节点进行判断,其中如果所述相邻节点是调用所述基准节点的节点且除了调用所述基准节点之外不再调用其它节点,则从有向图中删除该相邻节点;如果所述相邻节点是被所述基准节点调用的节点且除了被所述基准节点调用之外不再被其它节点调用,则从有向图中删除该相邻节点;
c.对于每一个未删除的相邻节点,重复过程b,直至所有节点都被遍历,从而将剩下的节点选择为关键节点。
2.根据权利要求1的方法,其中根据有向图中多个可替换类的节点之间的调用关系选择关键节点包括:将所述有向图中的所有节点按照入度排序,选取排序中的前n名作为关键节点,其中n为自然数,入度为节点在有向图中被其它节点调用的数量。
3.根据权利要求1的方法,其中根据有向图中多个可替换类的节点之间的调用关系选择关键节点包括:选取有向图中所有入度达到某一阈值的节点作为关键节点,其中入度为节点在有向图中被其它节点调用的数量。
4.根据权利要求1的方法,其中根据有向图中多个可替换类的节点之间的调用关系选择关键节点包括:将所述有向图中所有节点按照入度出度之差排序,选取排序中的前n名作为关键节点,其中n为自然数,入度为节点在有向图中被其它节点调用的数量,出度为节点在有向图中调用其它节点的数量。
5.根据权利要求1的方法,其中根据有向图中多个可替换类的节点之间的调用关系选择关键节点包括:选取有向图中所有入度出度之差达到某一阈值的所有节点作为关键节点,其中入度为节点在有向图中被其它节点调用的数量,出度为节点在有向图中调用其它节点的数量。
6.根据权利要求1的方法,其中根据有向图中多个可替换类的节点之间的调用关系选择关键节点包括:将有向图中所有顶端节点作为关键节点,其中顶端节点为不被其它节点调用而仅调用其它节点的节点。
7.根据权利要求1-6中任一个的方法,其中在选出的关键节点处插入监控程序包括在选出的关键节点的前和/或后插入监控程序,若已插入监控程序,则不再重复插入。
8.一种用于监控面向对象的应用的系统,包括:
事务图建立器,被配置为根据应用的实时运行,建立代表事务的有向图,所述有向图中包含有多个可替换类的节点;
关键节点选择器,被配置为根据有向图中多个可替换类的节点之间的调用关系选择关键节点;
监控程序插入器,被配置为在选出的关键节点处插入监控程序,
其中关键节点选择器被配置为:
a.选择有向图中具有最大入度的节点作为基准节点,入度为节点在有向图中被其它节点调用的数量;
b.对有向图中与所述基准节点有调用关系的相邻节点进行判断,其中如果所述相邻节点是调用所述基准节点的节点且除了调用所述基准节点之外不再调用其它节点,则从有向图中删除该相邻节点;如果所述相邻节点是被所述基准节点调用的节点且除了被所述基准节点调用之外不再被其它节点调用,则从有向图中删除该相邻节点;
c.对于每一个未删除的相邻节点,重复过程b,直至所有节点都被遍历,从而将剩下的节点选择为关键节点。
9.根据权利要求8的系统,其中关键节点选择器被配置为将所述有向图中的所有节点按照入度排序,选取排序中的前n名作为关键节点,其中n为自然数,入度为节点在有向图中被其它节点调用的数量。
10.根据权利要求8的系统,其中关键节点选择器被配置为选取有向图中所有入度达到某一阈值的节点作为关键节点,其中入度为节点在有向图中被其它节点调用的数量。
11.根据权利要求8的系统,其中关键节点选择器被配置为将所述有向图中所有节点按照入度出度之差排序,选取排序中的前n名作为关键节点,其中n为自然数,入度为节点在有向图中被其它节点调用的数量,出度为节点在有向图中调用其它节点的数量。
12.根据权利要求8的系统,其中关键节点选择器被配置为选取有向图中所有入度出度之差达到某一阈值的所有节点作为关键节点,其中入度为节点在有向图中被其它节点调用的数量,出度为节点在有向图中调用其它节点的数量。
13.根据权利要求8的系统,其中关键节点选择器被配置为将有向图中所有顶端节点作为关键节点,其中顶端节点为不被其它节点调用而仅调用其它节点的节点。
14.根据权利要求8-13中任一个的系统,其中监控程序插入器被配置为在选出的关键节点的前和/或后插入监控程序,若已插入监控程序,则不再重复插入。
15.一种自监控系统,包括面向对象的应用和根据权利要求8-14中任一个的用于监控面向对象的应用的系统。
CN201110047972.2A 2011-02-28 2011-02-28 用于监控面向对象的应用的方法、系统和自监控系统 Expired - Fee Related CN102650964B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201110047972.2A CN102650964B (zh) 2011-02-28 2011-02-28 用于监控面向对象的应用的方法、系统和自监控系统
US13/406,747 US8589894B2 (en) 2011-02-28 2012-02-28 Self-monitoring object-oriented applications
US14/053,084 US9563719B2 (en) 2011-02-28 2013-10-14 Self-monitoring object-oriented applications

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110047972.2A CN102650964B (zh) 2011-02-28 2011-02-28 用于监控面向对象的应用的方法、系统和自监控系统

Publications (2)

Publication Number Publication Date
CN102650964A CN102650964A (zh) 2012-08-29
CN102650964B true CN102650964B (zh) 2016-03-09

Family

ID=46692972

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110047972.2A Expired - Fee Related CN102650964B (zh) 2011-02-28 2011-02-28 用于监控面向对象的应用的方法、系统和自监控系统

Country Status (2)

Country Link
US (2) US8589894B2 (zh)
CN (1) CN102650964B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103795749B (zh) * 2012-10-30 2017-03-01 国际商业机器公司 用于诊断运行在云环境中的软件产品的问题的方法和装置
US10095599B2 (en) 2016-03-31 2018-10-09 International Business Machines Corporation Optimization for application runtime monitoring
CN107632891A (zh) * 2017-08-23 2018-01-26 国家电网公司 一种集中式应用服务资源管理系统及方法
CN110147245A (zh) * 2019-05-23 2019-08-20 广东电网有限责任公司 软件模块的运维管理方法、装置、设备及可读存储介质
CN110890977B (zh) * 2019-10-15 2022-06-21 平安科技(深圳)有限公司 云平台的主机节点监控方法、装置和计算机设备
CN116737511A (zh) * 2023-08-10 2023-09-12 山景智能(北京)科技有限公司 基于图的调度作业监控方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6381739B1 (en) * 1996-05-15 2002-04-30 Motorola Inc. Method and apparatus for hierarchical restructuring of computer code
CN1967539A (zh) * 2005-11-17 2007-05-23 国际商业机器公司 用于监控和调试查询执行对象的装置和方法

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5790858A (en) * 1994-06-30 1998-08-04 Microsoft Corporation Method and system for selecting instrumentation points in a computer program
US5796752A (en) * 1995-03-06 1998-08-18 Motorola, Inc. Method and apparatus for constructing verification test sequences by euler touring a test subsequence graph
CA2219557C (en) * 1997-10-29 2002-12-10 Ibm Canada Limited-Ibm Canada Limitee Run-time instrumentation for object oriented programmed applications
US6928639B2 (en) 2001-09-11 2005-08-09 International Business Machines Corporation Time-interval based monitor function for dynamic insertion into and removal from a running application
JP2003228499A (ja) * 2002-02-04 2003-08-15 Toshiba Corp 構成要素分類方法、実装多重度評価方法、実装多重コード抽出方法、同時変更対象箇所抽出方法、クラス階層再構成方法、およびプログラム
JP2004164554A (ja) * 2002-09-24 2004-06-10 Hitachi Ltd プログラム実行監視装置および方法
US7587709B2 (en) 2003-10-24 2009-09-08 Microsoft Corporation Adaptive instrumentation runtime monitoring and analysis
US20050182750A1 (en) * 2004-02-13 2005-08-18 Memento, Inc. System and method for instrumenting a software application
US7620940B2 (en) 2004-11-23 2009-11-17 International Business Machines Corporation Methods and apparatus for monitoring program execution
US7809736B2 (en) * 2005-05-02 2010-10-05 Brown University Importance ranking for a hierarchical collection of objects
US8464225B2 (en) * 2007-05-06 2013-06-11 Dynatrace Software Gmbh Method and system for adaptive, generic code instrumentation using run-time or load-time generated inheritance information for diagnosis and monitoring application performance and failure
US7957934B2 (en) 2007-05-15 2011-06-07 Dynatrace Software Gmbh Method and system for processing application performance data ouside of monitored applications to limit overhead caused by monitoring
US9009680B2 (en) * 2006-11-30 2015-04-14 Ca, Inc. Selecting instrumentation points for an application
US8086609B2 (en) * 2007-11-01 2011-12-27 Cavium, Inc. Graph caching
US8484623B2 (en) * 2008-03-26 2013-07-09 Avaya, Inc. Efficient program instrumentation
WO2009154498A1 (en) 2008-06-19 2009-12-23 Siemens Aktiengesellschaft Software roving program flow monitoring within multitasking environment
CN101661482A (zh) * 2008-08-27 2010-03-03 国际商业机器公司 在网络中识别相似子图的方法和设备
CA2672337C (en) * 2009-07-15 2017-01-03 Ibm Canada Limited - Ibm Canada Limitee Compiler instrumentation infrastructure to facilitate multiple pass and multiple purpose dynamic analysis

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6381739B1 (en) * 1996-05-15 2002-04-30 Motorola Inc. Method and apparatus for hierarchical restructuring of computer code
CN1967539A (zh) * 2005-11-17 2007-05-23 国际商业机器公司 用于监控和调试查询执行对象的装置和方法

Also Published As

Publication number Publication date
US9563719B2 (en) 2017-02-07
US20120221579A1 (en) 2012-08-30
US8589894B2 (en) 2013-11-19
CN102650964A (zh) 2012-08-29
US20140040284A1 (en) 2014-02-06

Similar Documents

Publication Publication Date Title
CN102650964B (zh) 用于监控面向对象的应用的方法、系统和自监控系统
US20200233781A1 (en) Scalable execution tracing for large program codebases
US8589884B2 (en) Method and system for identifying regression test cases for a software
US8869111B2 (en) Method and system for generating test cases for a software application
Higo et al. Code clone detection on specialized PDGs with heuristics
White Regression Testing of GUI Event Interactions.
US8566796B2 (en) Systems and methods for interactions with software probes
US7213175B2 (en) Methods and systems for managing an application's relationship to its run-time environment
US20070094541A1 (en) Method and apparatus for generating test execution sequences automatically for a software testing process
Higo et al. On software maintenance process improvement based on code clone analysis
Jayaraman et al. Compact visualization of Java program execution
Jbara et al. High-MCC functions in the Linux kernel
Morgado et al. Dynamic reverse engineering of graphical user interfaces
CN110543427B (zh) 测试用例存储方法、装置、电子设备及存储介质
US20210318947A1 (en) Methods and apparatuses for generating smart contract test case
Havelund et al. Runtime verification logics a language design perspective
Higo et al. ARIES: refactoring support tool for code clone
Hierons et al. Incomplete distinguishing sequences for finite state machines
CN108304164A (zh) 一种业务逻辑的开发方法及开发系统
Mitchell Resolving race conditions in asynchronous partial order scenarios
CN114063606B (zh) Plc协议模糊测试方法及装置、电子设备、存储介质
CN106201442B (zh) 应用程序的执行方法及装置
US10114730B2 (en) Dynamic instrumentation based on detected errors
Seehusen A technique for risk-based test procedure identification, prioritization and selection
US20050108727A1 (en) Application binding in a network environment

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160309

CF01 Termination of patent right due to non-payment of annual fee