[发明专利]一种用于程序跟踪的方法、装置及电子设备有效
申请号: | 201510378223.6 | 申请日: | 2015-07-01 |
公开(公告)号: | CN106326099B | 公开(公告)日: | 2019-10-29 |
发明(设计)人: | 陈旭东 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京清源汇知识产权代理事务所(特殊普通合伙) 11644 | 代理人: | 冯德魁 |
地址: | 英属开曼群岛大开*** | 国省代码: | 开曼群岛;KY |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 装置及电子设备 程序跟踪 标识符 调用请求 跟踪数据 应用程序 业务处理逻辑 跟踪处理 跟踪记录 功能运行 流量控制 业务处理 源代码级 健壮性 跟踪 调用 存储 发送 记录 申请 改造 | ||
本发明公开了一种用于程序跟踪的方法、装置及电子设备,一种流量控制方法、装置及电子设备。其中,所述用于程序跟踪的方法包括:接收调用方发送的对应特定程序的调用请求;根据所述调用请求,生成跟踪标识符;执行所述特定程序包括的各级子程序,针对至少一个所述子程序,在所述子程序执行后,生成所述子程序的跟踪数据,并存储所述跟踪标识符和所述子程序的跟踪数据的对应记录。采用本申请提供的方法,使得非OSGi的应用程序在跟踪记录OSGi的子程序的功能运行情况时,能够分离子程序的跟踪处理逻辑和业务处理逻辑,避免对各个子程序进行源代码级的改造,从而达到不影响非OSGi的应用程序业务处理的健壮性和可靠性的效果。
技术领域
本申请涉及数据处理技术领域,具体涉及一种用于程序跟踪的方法、装置及电子设备。本申请同时涉及一种流量控制方法、装置及电子设备。
背景技术
在计算机科学中,一个大型程序通常是由多个子程序组成的。子程序作为一个大型程序中的某部份代码,由一个或多个语句块组成。子程序负责完成某项特定任务,而且相较于其他代码,具备相对的独立性。子程序一般会有输入参数并有返回值,能被其他程序调用,也可调用其他子程序,甚至可自身调用(如递归)。子程序的最后一条指令一定是返回指令,故能保证重新返回到调用它的程序中去。
在实际应用中,经常需要跟踪大型程序运行过程中各个子程序的实际执行情况,以便定位某个子程序是否出了问题,或者是基于各个子程序的实际执行情况对大型程序进行分析和改造等优化处理。一个非常典型的跟踪程序的应用是,当Web应用的前端用户投诉搜索排名存在问题时,需要在线查询这个搜索行为对应的后端业务执行流程以及流程环节中的数据,以便定位某个模块或者某个业务环节是否出了问题。
目前,跟踪程序运行过程中各个子程序执行情况的常用方法,其主要过程如下所述:首先,生成一个对应本次程序运行的跟踪标识符;然后,在每执行完一个子程序后,根据该子程序的实际执行情况,生成该子程序的跟踪数据,并存储跟踪标识符和该单元产生的跟踪数据的对应记录。其中,每个子程序均能够直接读取预先生成的跟踪标识符。
OSGi(Open Service Gateway initiative)技术是面向Java的动态模型系统。OSGi服务平台向Java提供服务,这些服务使Java成为软件集成和软件开发的首选。Java提供在多个平台支持产品的可移植性。OSGi技术提供允许应用程序使用精炼、可重用和可协作的组件构建的标准化原语,这些组件能够组装进一个应用和部署中。基于OSGi技术的上述优点,OSGi技术在Java语言编写的应用程序中得到了广泛应用。
随着OSGi技术在Java应用程序中的广泛应用,在Java应用程序内部执行的流程环节中,程序的跟踪数据可能会经过OSGi环境下的子程序或者非OSGi环境下的子程序。由于OSGi和非OSGi的环境是相互隔离的,因此,非OSGi环境下的程序和OSGi环境下的程序均无法读取在对方环境下声明的变量,例如,OSGi环境下的程序无法读取在非OSGi环境下声明的公共变量。
基于上述原因,对于一个既包括非OSGi环境下的子程序又包括OSGi环境下的子程序的Java应用程序而言,上述跟踪程序运行过程中各个子程序的实际执行情况的方法,无法同时跟踪非OSGi环境和OSGi环境下的子程序分别产生的跟踪数据。
为了能够同时跟踪非OSGi环境和OSGi环境下的子程序分别产生的跟踪数据,目前常用的方法是在各个子程序(非OSGi环境或OSGi环境)的源代码中加入实现程序跟踪功能的代码,即对各个子程序进行源代码级的改造(亦可称为对原分布式系统的侵入)。该方法在业务处理逻辑中耦合进程序跟踪的处理逻辑,其一方面增加了源代码进行改造升级代价以及后续的系统维护代价,另一方面,由于该方法需要侵入原分布式系统中,影响了原分布式系统业务处理的健壮性和可靠性。
综上所述,对一个既包括非OSGi环境下的子程序又包括OSGi环境下的子程序的Java应用程序进行程序跟踪时,现有技术存在程序跟踪的处理逻辑与业务处理逻辑耦合在一起的问题。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510378223.6/2.html,转载请声明来源钻瓜专利网。