一种对业务运行状态进行跟踪的方法及系统.pdf

上传人:00****42 文档编号:6355281 上传时间:2019-06-03 格式:PDF 页数:11 大小:568.41KB
返回 下载 相关 举报
摘要
申请专利号:

CN201510484963.8

申请日:

2015.08.07

公开号:

CN105183620A

公开日:

2015.12.23

当前法律状态:

撤回

有效性:

无权

法律详情:

发明专利申请公布后的视为撤回IPC(主分类):G06F 11/34申请公布日:20151223|||实质审查的生效IPC(主分类):G06F 11/34申请日:20150807|||公开

IPC分类号:

G06F11/34

主分类号:

G06F11/34

申请人:

北京思特奇信息技术股份有限公司

发明人:

官元峰

地址:

100086 北京市海淀区中关村南大街6号中电信息大厦16层

优先权:

专利代理机构:

北京轻创知识产权代理有限公司 11212

代理人:

杨立

PDF下载: PDF下载
内容摘要

本发明公开了一种对业务运行状态进行跟踪的方法及系统,所述方法包括:在特定业务的各构件相互调用位置处设置一构件调用函数;在当前构件调用其它构件时,利用所述设置的构件调用函数获取调用过程中的调用记录;根据所述特定业务的各构件相互调用过程中的调用记录,生成该特定业务各构件调用的运行轨迹。通过本发明提供的方法,在各构件调用位置处设置一构件调用函数,能够获取到各构件的调用记录,通过对调用记录的分析,可以判断调用异常情况,也能够跟踪业务各构件调用运行轨迹。

权利要求书

权利要求书
1.  一种对业务运行状态进行跟踪的方法,所述业务包括多个业务构件,其特征在于,所述方法包括:
S1、在特定业务的各构件相互调用位置处设置一构件调用函数;
S2、在当前构件调用其它构件时,利用所述设置的构件调用函数获取调用过程中的调用记录;
S3、根据所述特定业务的各构件相互调用过程中的调用记录,生成该特定业务各构件调用的运行轨迹。

2.  如权利要求1所述的一种对业务运行状态进行跟踪的方法,其特征在于,所述步骤S2具体包括:
在当前构件调用其它构件时,利用所述设置的构件调用函数获取当前构件标识、当前构件所调用的构件标识、以及本次调用的输入参数和输出参数,以生成本次调用过程中的调用记录。

3.  如权利要求2所述的一种对业务运行状态进行跟踪的方法,其特征在于,还包括:
在当前构件调用其它构件的过程中,获取本次调用的服务标识以及本次调用入口产生的唯一流水号。

4.  如权利要求3所述的一种对业务运行状态进行跟踪的方法,其特征在于,所述步骤S2还包括:
对所述调用记录进行异常检测,判断该次构件调用过程是否出现异常;
当判断出本次构件调用过程出现异常时,获取并保存异常信息。

5.  如权利要求4所述的一种对业务运行状态进行跟踪的方法,其特征在于,当本次调用过程出现异常时,本次调用过程中断,则将本次调用的服务标识或者本次调用入口产生的唯一流水号作为所述特定业务的异常位置 标识。

6.  如权利要求1所述的一种对业务运行状态进行跟踪的方法,其特征在于,所述步骤S3中根据所述特定业务的各构件相互调用过程中的调用记录,生成该特定业务各构件调用的运行轨迹具体包括:
在所述特定业务的各构件相互调用的过程中,利用链表结构来存储调用过程中的上下级构件标识,当开始调用一个构件时,在链表尾上添加本构件标识,当调用返回时,删除本构件标识,当各构件相互调用完毕后,链表结构中顺序保存了所有调用过的构件标识;
根据链表结构中保存的各构件标识的顺序,生成该特定业务各构件调用的运行轨迹。

7.  一种对业务运行状态进行跟踪的系统,其特征在于,所述系统包括:
构件调用函数设置模块,用于在特定业务的各构件相互调用位置处设置一构件调用函数;
调用记录获取模块,用于在当前构件调用其它构件时,利用所述设置的构件调用函数获取调用过程中的调用记录;
运行轨迹生成模块,用于根据所述特定业务的各构件相互调用过程中的调用记录,生成该特定业务各构件调用的运行轨迹。

8.  如权利要求7所述的一种对业务运行状态进行跟踪的系统,其特征在于,所述调用记录获取模块,用于在当前构件调用其它构件时,利用所述设置的构件调用函数获取调用过程中的调用记录具体包括:
在当前构件调用其它构件时,利用所述设置的构件调用函数获取当前构件标识、当前构件所调用的构件标识、以及本次调用的输入参数和输出参数,以生成本次调用过程中的调用记录;
以及获取本次调用的服务标识和本次调用入口产生的唯一流水号。

9.  如权利要求8所述的一种对业务运行状态进行跟踪的系统,其特征 在于,所述系统还包括:
异常检测模块,用于对所述调用记录进行异常检测,判断该次调用过程是否出现异常;
异常信息保存模块,用于当判断出本次构件调用过程出现异常时,获取并保存异常信息;
异常位置标识获得模块,用于当本次调用过程出现异常时,本次调用过程中断,则将本次调用的服务标识或者本次调用入口产生的唯一流水号作为所述特定业务的异常位置标识。

10.  如权利要求7所述的一种对业务运行状态进行跟踪的系统,其特征在于,所述运行轨迹生成模块,用于根据所述特定业务的各构件相互调用过程中的调用记录,生成该特定业务各构件调用的运行轨迹具体包括:
在所述特定业务的各构件相互调用的过程中,利用链表结构来存储调用过程中的上下级构件标识,当开始调用一个构件时,在链表尾上添加本构件标识,当调用返回时,删除本构件标识,当各构件相互调用完毕后,链表结构中顺序保存了所有调用过的构件标识;
根据链表结构中保存的各构件标识的顺序,生成该特定业务各构件调用的运行轨迹。

说明书

说明书一种对业务运行状态进行跟踪的方法及系统
技术领域
本发明涉及数据处理技术领域,具体涉及一种对业务运行状态进行跟踪的方法及系统。
背景技术
电信运营商的业务支撑系统中,由于业务繁多且流程复杂,并且存在多系统之间的交互。想要了解每一个业务的各个运行环节,或者业务处理过程出现故障时希望能快速定位故障的环节,都会因为系统的复杂度而面临巨大的挑战。
传统的业务系统维护过程中,有处理失败的业务,需要前台营业员或者其他业务人员提交故障单,故障单提交后通过人工分类再分发给对应的维护人员手里,维护人员再根据故障描述细节,在服务器上搜索当时的处理日志,通过日志定位出错环节,如果日志信息不够,还需要重现故障业务处理过程,以便分析原因;确定环节后再根据具体情况或修复bug,或修正数据;或撤销交易等手段做故障处理;处理完成后关闭故障单。
通常在人工定位故障的环节会花费较长时间,因为业务流程可能会拉的很长,或者跨越多个系统,或者业务日志提供的信息不足以确认问题原因。
为了提高故障处理效率,需要对系统的运行信息的记录进行优化,但传统的业务日志输出都依赖开发人员的自己的日志输出习惯,经验丰富的开发者的日志更容易定位问题,但经验缺乏者可能相反,这导致业务日志的质量不容易控制。
发明内容
本发明所要解决的技术问题是提供一种对业务运行状态进行跟踪的方法及系统,能够对业务运行异常进行精确定位,还能获得业务各构件之间调用的运行轨迹。
本发明解决上述技术问题的技术方案如下:
一方面,本发明提供了一种对业务运行状态进行跟踪的方法,所述方法包括:
S1、在特定业务的各构件相互调用位置处设置一构件调用函数;
S2、在当前构件调用其它构件时,利用所述设置的构件调用函数获取调用过程中的调用记录;
S3、根据所述特定业务的各构件相互调用过程中的调用记录,生成该特定业务各构件调用的运行轨迹。
另一方面,本发明提供了一种对业务运行状态进行跟踪的系统,所述系统包括:
构件调用函数设置模块,用于在特定业务的各构件相互调用位置处设置一构件调用函数;
调用记录获取模块,用于在当前构件调用其它构件时,利用所述设置的构件调用函数获取调用过程中的调用记录;
运行轨迹生成模块,用于根据所述特定业务的各构件相互调用过程中的调用记录,生成该特定业务各构件调用的运行轨迹。
本发明提供的一种对业务运行状态进行跟踪的方法及系统,通过在业务的各构件相互调用位置处设置一构件调用函数,在构件进行调用的过程中,能够获得调用过程的调用记录,然后对调用记录进行异常检测,输出异常信息,还能够根据业务各构件之间调用的调用记录,得到业务各构件调用的运行轨迹,能够跟踪业务运行状态,对业务的异常快速准确定位。
附图说明
图1为现有技术业务构件之间调用关系拓扑图;
图2为本发明实施例一的一种对业务运行状态进行跟踪的方法流程图;
图3为本发明实施例一业务构件调用过程中构件调用函数处理流程图;
图4为本发明实施例一中业务构件调用关系的部分处理流程图;
图5为本发明实施例二的一种对业务运行状态进行跟踪的系统图示意图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
实施例一、一种对业务运行状态进行跟踪的方法。下面结合图1-图4对本实施例提供的方法进行详细说明。
参见图2,S1、在特定业务的各构件相互调用位置处设置一构件调用函数。
具体的,参见图1,一个特定业务通常包含若干个业务构件(BP),每一个业务构件实际上就是一个函数,单个业务构件完成单一的数据处理或者条件检查,比如,在电信系统中,单个业务构件用于用户状态的检查或当前话费余额的获取等。业务构件之间通过相互调用形成树状结构成为一个完整的业务过程,比如用户缴费、资费套餐变更等。现有技术中一个构件调用其它的构件是直接的函数调用,难以在业务的各构件的调用之间加入额外的处理代码,因此,首先需要对业务中的各构件调用的方法进行调整,本实施例在业务的各构件相互调用位置处设置一构件调用函数,比如,定义如下的函数和宏:
utype*__CALLBP(TUtypeFuncPtrbpfunc,constchar*bpname,constutype*uInParam,TCtrlInfo*ctrlInfo);
#defineCALLBP(bpname,uInParam,ctrlInfo)__CALLBP(bpname,#bpname,uInParam,ctrlInfo)
对现有的构件代码进行改造,所有调用构件的地方改为使用宏CALLBP(即在构件调用处设置的构件调用函数)来调用,这个宏的实际处理过程在函数_CALLBP中实现,通过上面的代码片段可以看到,__CALLBP函数可以获得构件调用过程中的一些参数,比如,构件名称,以及全部输入和输出参数,实际的构件调用在该函数中完成。另外,对于业务异常的处理,构件服务框架的处理机制是使用C++的Exception机制,因此,如果要获取构件的调用异常,还应该在函数中加入异常处理。
S2、在当前构件调用其它构件时,利用所述设置的构件调用函数获取调用过程中的调用记录。
具体的,在业务各构件调用位置处设置一构件调用函数,参见图3,在当前构件调用其它构件的过程中,可以利用设置的构件调用函数获取当前构件标识(比如当前构件名称)、当前构件所调用的构件标识(比如,构件名称),以及本次调用的输入参数和输出参数,另外,还能获取本次调用的服务标识(比如,服务名称,即本次调用所完成的功能)和本次调用服务入口产生的唯一流水号(即本次调用的服务入口标识)。根据构件调用函数获取的这些参数,能够生成本次调用过程中的调用记录。
S3、根据所述特定业务的各构件相互调用过程中的调用记录,生成该特定业务各构件调用的运行轨迹。
具体的,上述步骤S2在业务构件相互调用的过程中,构件调用函数获取调用过程中的调用记录,本步骤对获得的调用记录进行检测分析,比如,进行异常检测,检测本次调用过程是否出现异常,若出现异常,则获取异常 信息并保存。当本次调用过程出现异常时,本次调用过程中断,因此本次调用的服务标识或者本次调用服务入口产生的唯一流水号能够作为构件调用过程中的异常位置标识。通过该异常位置标识,能够对业务构件调用过程中的故障进行准确定位,以便对故障及时的处理。若没有检测到调用过程中的异常状况,则保存输出参数。
另外,在业务的各构件相互调用的过程中,引入了链表结构对调用过程中的上下级构件进行存储,能够获取各构件的调用关系。参见图4,在整个业务的各构件调用的过程中,当开始调用一个构件时,则在链表尾上添加该构件标识(比如,该构件名称);当调用返回时,删除该构件标识,当业务的各构件相互调用完毕后,链表结构按顺序保存了所有已调用过的构件标识(构件名称)。根据链表结构中保存的各构件标识的顺序,可以生成该业务各构件调用的运行轨迹,而不是用流程图的形式来表示,因此可以清晰的看出各构件的调用关系。
实施例二、一种对业务运行状态进行跟踪的系统。下面结合图5对本实施例提供的系统进行详细说明。
参见图5,本实施例提供的系统包括构件调用函数设置模块501、调用记录获取模块502、异常检测模块503、异常信息保存模块504、异常位置标识获得模块505和运行轨迹生成模块506。
其中,构件调用函数设置模块501主要用于在特定业务的各构件相互调用位置处设置一构件调用函数。
具体的,本实施例对现有构件调用的方法进行调整,其中,构件调用函数设置模块501在业务的各构件相互调用位置处设置一构件调用函数,比如,定义如下的函数和宏:
utype*__CALLBP(TUtypeFuncPtrbpfunc,constchar*bpname,constutype*uInParam,TCtrlInfo*ctrlInfo);
#defineCALLBP(bpname,uInParam,ctrlInfo)__CALLBP(bpname,#bpname,uInParam,ctrlInfo)
构件调用函数设置模块501对现有的构件代码进行改造,所有调用构件的地方改为使用宏CALLBP来调用,这个宏的实际处理过程在函数_CALLBP中实现,通过上面的代码片段可以看到,__CALLBP函数可以获得构件调用过程中的一些参数,比如,构件名称,以及全部输入和输出参数,实际的构件调用在该函数中完成。另外,对于业务异常的处理,构件服务框架的处理机制是使用C++的Exception机制,因此,如果要获取构件的调用异常,还应该在函数中加入异常处理。
调用记录获取模块502主要用于在当前构件调用其它构件时,利用设置的构件调用函数获取调用过程中的调用记录。
具体的,构件调用函数设置模块501在业务各构件调用位置处设置一构件调用函数,因而在当前构件调用其它构件的过程中,调用记录获取模块502可以利用设置的构件调用函数获取当前构件标识(比如当前构件名称)、当前构件所调用的构件标识(比如,构件名称),以及本次调用的输入参数和输出参数,另外,还能获取本次调用的服务标识(比如,服务名称,即本次调用所完成的功能)和本次调用服务入口产生的唯一流水号(即本次调用的服务入口标识)。调用记录获取模块502根据构件调用函数获取的这些参数,能够生成本次调用过程中的调用记录。
异常检测模块503主要用于对调用记录获取模块502获取的调用记录进行异常检测,判断该次调用过程是否出现异常。
异常信息保存模块504主要用于当判断出本次构件调用过程出现异常时,获取并保存异常信息。
异常位置标识获取模块505主要用于当本次调用过程出现异常时,本次调用过程中断,则将本次调用的服务标识或者本次调用入口产生的唯一流水 号作为该特定业务的异常位置标识。
具体的,调用记录获取模块502在业务构件相互调用的过程中,利用构件调用函数获取调用过程中的调用记录,异常检测模块503对获得的调用记录进行检测分析,比如,进行异常检测,检测本次调用过程是否出现异常,若出现异常,则异常信息保存模块504获取并保存异常信息。当本次调用过程出现异常时,本次调用过程中断,因此异常位置标识获取模块505将本次调用的服务标识或者本次调用服务入口产生的唯一流水号作为构件调用过程中的异常位置标识。通过该异常位置标识,能够对业务构件调用过程中的故障进行准确定位,以便对故障及时的处理。若没有检测到调用过程中的异常状况,则保存输出参数。
运行轨迹生成模块506主要用于根据特定业务的各构件相互调用过程中的调用记录,生成该特定业务各构件调用的运行轨迹。
具体的,在业务的各构件相互调用的过程中,引入了链表结构对调用过程中的上下级构件进行存储,能够获取各构件的调用关系。具体的实现过程:在整个业务各构件调用的过程中,当开始调用一个构件时,则在链表尾上添加该构件标识(比如,该构件名称);当调用返回时,删除该构件标识,当业务的各构件相互调用完毕后,链表结构按顺序保存了所有已调用过的构件标识(构件名称)。运行轨迹生成模块506根据链表结构中保存的各构件标识的顺序,可以生成该业务各构件调用的运行轨迹,而不是用流程图的形式来表示,因此可以清晰的看出各构件的调用关系。
本发明提供的一种对业务运行状态进行跟踪的方法及系统,通过在业务的各构件相互调用位置处设置一构件调用函数,在构件进行调用的过程中,能够获得调用过程的调用记录,然后对调用记录进行异常检测,输出异常信息,还能够准确快速得到异常位置标识,进而能够对业务故障进行准确的定位,以便及时对业务故障进行处理;另外,本发明还引入了链表结构对构件 的调用关系进行存储,得到业务各构件调用的运行轨迹,能够实时的跟踪业务运行状态,能够更方便得了解业务的每一个运行环节。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

一种对业务运行状态进行跟踪的方法及系统.pdf_第1页
第1页 / 共11页
一种对业务运行状态进行跟踪的方法及系统.pdf_第2页
第2页 / 共11页
一种对业务运行状态进行跟踪的方法及系统.pdf_第3页
第3页 / 共11页
点击查看更多>>
资源描述

《一种对业务运行状态进行跟踪的方法及系统.pdf》由会员分享,可在线阅读,更多相关《一种对业务运行状态进行跟踪的方法及系统.pdf(11页珍藏版)》请在专利查询网上搜索。

本发明公开了一种对业务运行状态进行跟踪的方法及系统,所述方法包括:在特定业务的各构件相互调用位置处设置一构件调用函数;在当前构件调用其它构件时,利用所述设置的构件调用函数获取调用过程中的调用记录;根据所述特定业务的各构件相互调用过程中的调用记录,生成该特定业务各构件调用的运行轨迹。通过本发明提供的方法,在各构件调用位置处设置一构件调用函数,能够获取到各构件的调用记录,通过对调用记录的分析,可以判断。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1