监控探针生成方法和装置的制作方法

文档序号:6340925阅读:374来源:国知局
专利名称:监控探针生成方法和装置的制作方法
技术领域
本发明涉及面向方面编程技术的软件开发领域,尤其涉及一种监控探针生成方法 和装置。
背景技术
近年来,随着AOP (Aspect Oriented Programming,面向方面编程)技术的兴起, 各种AOP的开发环境也迅速出现。传统的AOP技术存在以下问题1、无法处理注释,2、编织 过程中原有代码的层次结构常常被打乱,3、插入无关代码,影响代码品质。为了解决上述问 题,目前通常采用Xweaver作为支持C++语言的主流开发环境。Xweaver因具有以下优点而 被广泛的应用1、编织代码时,不影响基代码的原有层次结构,2、插入的代码与手写代码完 全一样,3、可以添加修改注释。Xweaver使用XSL作为编织器的实现语言,由于使用XSL直 接编写方面转换对开发人员要求太高,为了能够方便地使用XML编写方面程序,定义了一 种基于XML的语言来描述将要插入的方面AspectX。AspectX语言用来为Xweaver方面编织器编写方面程序,该语言基于XML语法规则 构建,每个AspectX程序被实现为一个单独的XML文件。AspectX语言的语法由XML Schema 定义,Schema是用于描述和规范XML文档的逻辑结构的一种语言,其主要作用是验证XML文 件逻辑结构的正确性。一个语法正确的AspectX程序也是一个遵照该XML Schema的合法 XML文件。所以说,AspectX的语法是完全由XML Schema定义的。目前AspectX程序一般都是在XML khema约束下通过XML编程添加切入点、通知、 要注入的代码形成监控探针(即AOP中所述的横切关注点)。如果监控探针文件比较大并 且比较复杂时,这种编写方式实现的监控探针不但会出现各种各样的错误,而且效率比较 底,操作也不方便,同时还会增加软件开发和维护的成本。

发明内容
为解决上述技术问题,本发明的目的在于提供一种监控探针生成方法和装置,用 于解决现有的编写方式实现的监控探针会出现各种各样的错误,而且效率比较底,操作也 不方便,还会增加开发和维护的成本的缺陷。为此,本发明实施例提供了如下技术方案一种监控探针生成方法,包括从预定义的监控需求文件中获取已生成的监控需求;匹配所述监控需求和预定义的监控探针模板,判断是否匹配成功,如果是则执行 下一步;加工组装匹配成功的监控需求和监控探针模板,生成监控探针。本发明实施例还提供了一种监控探针生成装置,包括监控需求获取模块,用于从预定义的监控需求文件中获取已生成的监控需求;探针模板匹配模块,用于匹配所述监控需求和预定义的监控探针模板,并判断是3否匹配成功;探针加工组装模块,用于加工组装匹配成功的监控需求和监控探针模板,生成监 控探针。与现有技术相比,上述技术方案具有以下优点本发明实施例所提供的技术方案,可以根据自定义的监控探针模板结合监控需求 自动的组装成符合AspectX语法的监控探针,能够有效的减少监控探针中出现的错误,提 高软件开发效率,便于软件开发人员操作使用,可以明显的减低开发和维护的成本。同时, 如果软件开发人员需要修改注入的代码或扩展其它需求时,只需修改自定义的监控探针模 板即可,无需对程序源代码进行手动的修改,因此可以增强程序的健壮性和可扩展性。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以 根据这些附图获得其他的附图。图1为实施例一提供的监控探针生成方法流程示意图;图2为实施例二提供的监控探针生成装置原理框架示意图。
具体实施例方式随着对信息化软件的系统环境适应能力、交互性能及数据处理能力越来越高的要 求,如何快速的发现并定位软件存在的问题,并以最快的速度解决问题,已经成为软件开发 及使用人员最关心的问题。而AOP中所述的横切关注点,即本申请中所述的监控探针即是 用于程序内部运行状态的实时监控,通过在程序的源代码中注入的具有监控能力的监控探 针,形成了具有监控能力的程序,在程序运行过程中,监控探针能够实时获取被监控对象的 运行信息,帮助软件开发和使用人员快速发现并准确定位程序代码中的缺陷之处。正如背景技术部分所述,现有的监控探针生成方法中,如果监控探针文件比较大 并且比较复杂时,其生成的监控探针不但会出现各种各样的错误,而且效率比较底,操作也 不方便,还会增加开发和维护的成本。为此,本发明实施例提供了 一种监控探针生成方法和装置。所述监控探针生成方法包括以下步骤从预定义的监控需求文件中获取已生成的监控需求;匹配所述监控需求和预定义的监控探针模板,判断是否匹配成功,如果是则执行 下一步;加工组装匹配成功的监控需求和监控探针模板,生成监控探针。所述监控探针生成装置,包括监控需求获取模块,用于从预定义的监控需求文件中获取已生成的监控需求;探针模板匹配模块,用于匹配所述监控需求和预定义的监控探针模板,并判断是 否匹配成功;
探针加工组装模块,用于加工组装匹配成功的监控需求和监控探针模板,生成监 控探针。本发明实施例所提供的技术方案,可以根据自定义的监控探针模板结合监控需求 自动的组装成符合AspectX语法的监控探针,能够有效的减少监控探针中出现的错误,提 高软件开发效率,便于软件开发人员操作使用,可以明显的减低开发和维护的成本。同时, 如果软件开发人员需要修改注入的代码或扩展其它需求时,只需修改自定义的监控探针模 板即可,无需对程序源代码进行手动的修改,因此可以增强程序的健壮性和可扩展性。以上是本申请的核心思想,下面将结合本发明实施例中的附图,对本发明实施例 中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例, 而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳 动前提下所获得的所有其他实施例,都属于本发明保护的范围。在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以 采用其他不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的 情况下做类似推广,因此本发明不受下面公开的具体实施例的限制。实施例一本实施例提供了一种监控探针生成方法,参见图1所示,为该方法的一种流程示 意图,其具体包括以下步骤步骤S101,从预定义的监控需求文件中获取已生成的监控需求。本实施例中,可以预先设定监控需求文件,首先指定监控对象(通常为被监控程 序的源代码),并设置监控对象的展示优先级、监控属性及监控模式等监控控制信息。其中, 监控属性包括运行所述程序的计算机的地址和端口号等信息,监控模式包括本地监控 和异地远程监控等信息。通过结合监控对象和监控控制信息得到监控需求。上述监控需求可以根据监控对象分为四部分,包括全局变量监控需求、进程监控 需求、线程监控需求和函数监控需求。其中进程监控需求,用以描述监控进程的主函数,进程描述,进程下的所有线程 以及线程的构造函数,析构函数。线程监控需求,用以描述监控线程的类名,rim方法,run方法下的关注方法,线程 描述及线程的构造函数,析构函数。函数监控需求,函数分为两种类型。一种为普通函数,只需要描述函数的名称,函 数描述,函数所在线程,函数所在的类名。另一种为服务入口函数,它描述普通函数的几个 方面又关注函数中的关注方法。全局变量监控需求,用以描述变量的类型,变量名,变量所在的类名。上述监控需求可以保存为XML类型的数据文档,即预定义的监控需求文件,通过 XML解析,可以从预定义的监控需求文件中获取其中定义的监控需求。步骤S102,匹配所述监控需求和预定义的监控探针模板,判断是否匹配成功,如果 是则执行下一步;对应于步骤SlOl中的四种监控需求,所述预定义的监控探针模板也可以分为四 种,包括全局变量监控探针模板、进程监控探针模板、线程监控探针模板和函数监控探针 模板。
上述监控探针模板为自定义的模板,其中包括要注入被监控程序源代码的通用代 码和变量参数,其结构为符合AspectX的通用结构,一般以XML文件形式存储,通过XML解 析,可以从监控探针模板文件中获取其自定义的监控探针模板。所述监控探针模板为通用的,以普通函数为例,函数监控探针模板中只有一个普 通函数的结构及其要注入的代码模板,用户在做监控需求时可以做任意多个普通函数的需 求,所以其生成的监控探针是动态的。如果监控需求和预定义的监控探针模板不能够匹配,则可以提示用户匹配失败, 并提示用户核实监控需求文件,当用户核实后,可以再次执行步骤S101,重新获取监控需 求。步骤S103,加工组装匹配成功的监控需求和监控探针模板,生成监控探针。本步骤中,将匹配成功的监控需求和监控探针模板组合生成符合AspectX语法的 XML格式代码片段,即监控探针。此外,在应用上述方法自动生成监控探针之后,可以通过Xweaver将所述监控探 针注入到被监控程序的源代码中,形成目标代码,实现监控的目的。本实施例提供监控探针生成方法可较佳的用于检测C++源代码的使用场景中,本 领域技术人员在本实施例的基础上,可以将该方案扩展到JAVA等其语言的场景中,实现对 程序的实时监控,都属于本发明保护的范围。应用本实施例提供的监控探针生成方法,可以根据自定义的监控探针模板结合监 控需求自动的组装成符合AspectX语法的监控探针,能够有效的减少监控探针中出现的错 误,提高软件开发效率,便于软件开发人员操作使用,可以明显的减低开发和维护的成本。 同时,如果软件开发人员需要修改注入的代码或扩展其它需求时,只需修改自定义的监控 探针模板即可,无需对程序源代码进行手动的修改,因此可以增强程序的健壮性和可扩展 性。实施例二 相应于上述方法实施例,本实施例还提供了一种监控探针生成装置,如图2所示, 为该装置的原理框架示意图,该装置包括监控需求获取模块201,用于从预定义的监控需求文件中获取已生成的监控需 求;探针模板匹配模块202,用于匹配所述监控需求和预定义的监控探针模板,匹配成 功后,执行下一步加工组装操作;探针加工组装模块203,用于加工组装匹配成功的监控需求和监控探针模板,生成 监控探针。结合实施例提供的监控探针生成方法可知监控需求文件中定义的监控需求可以包括全局变量需求、进程需求、线程需求和 函数需求。所述预定义的监控探针模板可以包括全局变量模板、进程模板、线程模板和函数 模板。所述预定义的监控需求文件可以为XML类型的数据文档;所述预定义的监控探针模板可以存储在符合AspectX通用结构的XML文件中。
相应于上述监控需求文件和监控探针模板文件的类型,本实施例中,所述监控探 针生成装置还可以包括XML解析模块204,用于解析XML类型的监控需求文件和监控探针模板文件。上述监控探针生成装置的框架可以分为三个层次,其中,XML解析模块204为底 层,属于解析XML部件,主要供中间层的监控需求获取模块201、探针模板匹配模块202和探 针加工组装模块203调用,中间层为自动生成监控探针的核心。外层接口层用于获取监控 需求构件输出的监控需求,以及把生成的监控探针传输到注入构件,通过接口层,本装置可 以接入符合结构规则的任意系统中。由于本实施例是实施例一对应的装置实施例,其类同之处相互参见即可,在此不 再赘述。应用本实施例提供的监控探针生成装置,探针加工组装模块可以根据自定义的监 控探针模板结合监控需求自动的组装成符合AspectX语法的监控探针,能够有效的减少监 控探针中出现的错误,提高软件开发效率,便于软件开发人员操作使用,可以明显的减低开 发和维护的成本。同时,如果软件开发人员需要修改注入的代码或扩展其它需求时,只需修 改自定义的监控探针模板即可,无需对程序源代码进行手动的修改,因此可以增强程序的 健壮性和可扩展性。本说明书中各个部分采用递进的方式描述,每个部分重点说明的都是与其他部分 的不同之处,各个部分之间相同相似部分互相参见即可。对所公开的实施例的上述说明,使 本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技 术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围 的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的实施例,而是要 符合与本文所公开的原理和新颖特点相一致的最宽的范围。权利要求
1.一种监控探针生成方法,其特征在于,包括从预定义的监控需求文件中获取已生成的监控需求;匹配所述监控需求和预定义的监控探针模板,判断是否匹配成功,如果是则执行下一止少;加工组装匹配成功的监控需求和监控探针模板,生成监控探针。
2.根据权利要求1所述的监控探针生成方法,其特征在于监控需求文件中定义的监控需求包括全局变量监控需求、进程监控需求、线程监控需 求和函数监控需求。
3.根据权利要求2所述的监控探针生成方法,其特征在于所述预定义的监控探针模板包括全局变量监控探针模板、进程监控探针模板、线程监 控探针模板和函数监控探针模板。
4.根据权利要求1所述的监控探针生成方法,其特征在于 所述预定义的监控需求文件为XML类型的数据文档;所述预定义的监控探针模板存储在符合AspectX通用结构的XML文件中。
5.根据权利要求1所述的监控探针生成方法,其特征在于,在生成监控探针以后,还包括通过Xweaver将所述监控探针注入到被监控程序的源代码中。
6.一种监控探针生成装置,其特征在于,包括监控需求获取模块,用于从预定义的监控需求文件中获取已生成的监控需求; 探针模板匹配模块,用于匹配所述监控需求和预定义的监控探针模板,并判断是否匹 配成功;探针加工组装模块,用于加工组装匹配成功的监控需求和监控探针模板,生成监控探针。
7.根据权利要求6所述的监控探针生成装置,其特征在于监控需求文件中定义的监控需求包括全局变量监控需求、进程监控需求、线程监控需 求和函数监控需求。
8.根据权利要求7所述的监控探针生成装置,其特征在于所述预定义的监控探针模板包括全局变量监控探针模板、进程监控探针模板、线程监 控探针模板和函数监控探针模板。
9.根据权利要求8所述的监控探针生成装置,其特征在于 所述预定义的监控需求文件为XML类型的数据文档;所述预定义的监控探针模板存储在符合AspectX通用结构的XML文件中。
10.根据权利要求9所述的监控探针生成装置,其特征在于,还包括 XML解析模块,用于解析XML类型的监控需求文件和监控探针模板文件。
全文摘要
本发明实施例公开了一种监控探针生成方法和装置,所述方法包括从预定义的监控需求文件中获取已生成的监控需求;匹配所述监控需求和预定义的监控探针模板,判断是否匹配成功,如果是则执行下一步;加工组装匹配成功的监控需求和监控探针模板,生成监控探针。该方案能够有效的减少监控探针中出现的错误,提高软件开发效率,便于软件开发人员操作使用,可以明显的减低开发和维护的成本。同时,如果软件开发人员需要修改注入的代码或扩展其它需求时,只需修改自定义的监控探针模板即可,无需对程序源代码进行手动的修改,因此可以增强程序的健壮性和可扩展性。
文档编号G06F9/44GK102053839SQ20101061758
公开日2011年5月11日 申请日期2010年12月31日 优先权日2010年12月31日
发明者孙冬莲 申请人:山东中创软件商用中间件股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1