数据管理装置和数据管理方法

文档序号:6434508阅读:157来源:国知局
专利名称:数据管理装置和数据管理方法
技术领域
本发明涉及计算机技术领域,具体而言,涉及一种数据管理装置和一种数据管理方法。
背景技术
随着精细化管理概念的普及,ERP软件已经覆盖到生产、流通等各行各业,企业对软件的使用越来越深入,功能性需求、操作性需求、行业性需求不断扩大、膨胀。这些都大大提高了软件的复杂度和软件维护的难度。对于高复杂度、低可见度的软件,无论投入多少资源,花费多长时间,发版后的软件到客户方都难免出现缺陷。当异常发生时,解决问题最困难、最耗时的,就是定位缺陷产生的原因,这也是客户投诉、抱怨最多的地方。往往造成开发定位一个缺陷的时间用几天, 修改、验证到修复客户系统,只用了 1小时。如何收集到异常发生时的业务流程和业务数据一直是开发着力解决的问题。一些软件软件工程中,Print、log和异常输出仍是主要排错手段。具体为在研发测试阶段,在问题多发的代码段和接口处植入I^rint语句,选择日志级别输出可能需要的数据,作为日后再现bug的参考。也有另一种实现,在接口处增加数据校验,然后根据校验 throw出预设的异常信息。虽然能将部分信息输出,但是都会存在以下问题观察力有限, 检查代码固定,只能定位已知问题;增减需要重新编译;按时间输出,信息离散,定位困难; IO过于频繁严重影响性能等等。因此,需要一种新的技术方案,能够快速定位缺陷,能够选择与缺陷相关的必要输出信息,以及选择输出的时机,同时无需用户进行编译操作。

发明内容
本发明所要解决的技术问题在于,提供一种新的技术方案,能够快速定位缺陷,能够选择与缺陷相关的必要输出信息,以及选择输出的时机,同时无需用户进行编译操作。有鉴于此,本发明提供一种数据管理装置,包括业务对象探测模块,在业务进行时,获取业务对象以及其发起的事件,并将所述业务对象中的对象数据和发起所述事件的指令存储到为所述业务分配的缓冲区中;数据指令输出模块,输出所述缓冲区中存储的所有对象数据和所有指令。通过该技术方案,可以通过缓冲区,以业务为单元而非时间来输出存储的对象数据和指令,保证用户可以集中对具体业务中的问题进行分析处理,并且不会输入输出过于频繁。在上述技术方案中,优选地,所述业务对象探测模块在新发现发起事件的业务对象时,将新发现的业务对象的对象数据和其发起事件的指令存储到所述缓冲区中,根据所述新发现的业务对象的对象数据和指令在所述缓冲区的存储地址,预留下一个获取的业务对象的对象数据和指令的存储地址,并根据所述新发现的业务对象的对象数据和指令来获取下一个业务对象,如果此时所述业务完成,则将预留的存储地址指向所述缓冲区的终止地址。通过该技术方案,可以保证获取的对象数据和指令可以有序地存储在缓冲区中,便于输出后有序地进行管理和使用。在上述技术方案中,优选地,所述数据指令输出模块还根据所述预留的存储地址, 判断所述业务是否已经完成,并在所述业务完成或所述业务异常时,输出所述缓冲区中存储的所有对象数据和所有指令。通过该技术方案,保证存储的对象数据和指令可以顺利输
出ο在上述技术方案中,优选地,所述业务对象探测模块在预定时间内未获取到所述下一个业务对象时,则不再继续等待获取所述下一个业务对象,和/或在预定时间内在所述缓存区未存储新的对象数据或指令时,则停止获取所述业务中的业务对象。通过该技术方案,防止资源浪费,可以高效地进行对象数据和指令的获取。在上述技术方案中,优选地,还包括探测设置模块,设置所述业务中需探测的业务对象,以及所述需探测业务对象中的需探测的对象数据;所述业务对象探测模块仅在所述业务对象属于所述需探测的业务对象时,获取所述业务对象,并仅在所述业务对象中的对象数据属于所述需探测的对象数据时,存储所述业务对象的对象数据。通过该技术方案, 防止资源浪费,可以高效地进行对象数据和指令的获取。本发明提供一种数据管理方法,包括步骤202,在业务进行时,获取业务对象以及其发起的事件,并将所述业务对象中的对象数据和发起所述事件的指令存储到为所述业务分配的缓冲区中;步骤204,输出所述缓冲区中存储的所有对象数据和所有指令。通过该技术方案,可以通过缓冲区,以业务为单元而非时间来输出存储的对象数据和指令,保证用户可以集中对具体业务中的问题进行分析处理,并且不会输入输出过于频繁。在上述技术方案中,优选地,所述步骤202具体包括在新发现发起事件的业务对象时,将新发现的业务对象的对象数据和其发起事件的指令存储到所述缓冲区中,根据所述新发现的业务对象的对象数据和指令在所述缓冲区的存储地址,预留下一个获取的业务对象的对象数据和指令的存储地址,并根据所述新发现的业务对象的对象数据和指令来获取下一个业务对象,如果此时所述业务完成,则将预留的存储地址指向所述缓冲区的终止地址。通过该技术方案,可以保证获取的对象数据和指令可以有序地存储在缓冲区中,便于输出后有序地进行管理和使用。在上述技术方案中,优选地,所述步骤204还包括根据所述预留的存储地址,判断所述业务是否已经完成,并在所述业务完成或所述业务异常时,输出所述缓冲区中存储的所有对象数据和所有指令。通过该技术方案,保证存储的对象数据和指令可以顺利输出。在上述技术方案中,优选地,所述步骤202还包括在预定时间内未获取到所述下一个业务对象时,则不再继续等待获取所述下一个业务对象,和/或在预定时间内在所述缓存区未存储新的对象数据或指令时,则停止获取所述业务中的业务对象。在上述技术方案中,优选地,在所述步骤202之前,还包括设置所述业务中需探测的业务对象,以及所述需探测业务对象中的需探测的对象数据;所述步骤202具体包括 仅在所述业务对象属于所述需探测的业务对象时,获取所述业务对象,并仅在所述业务对象中的对象数据属于所述需探测的对象数据时,存储所述业务对象的对象数据。通过该技术方案,防止资源浪费,可以高效地进行对象数据和指令的获取。通过上述技术方案,可以实现一种数据管理装置和一种数据管理方法,能够快速定位缺陷,能够选择与缺陷相关的必要输出信息,以及选择输出的时机,同时无需用户进行编译操作。


图1是根据本发明的--个实施例的__f理装置的框图2是根据本发明的--个实施例的__f理方法的流程图3是根据本发明的--个实施例的__f理装置的原理示意图4是根据本发明的--个实施例的__f理装置的工作流程图5是根据本发明的--个实施例的_f理装置的工作流程图。
具体实施例方式为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式
对本发明进行进一步的详细描述。在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明并不限于下面公开的具体实施例的限制。图1是根据本发明的一个实施例的数据管理装置的框图。如图1所示,本发明提供一种数据管理装置100,包括业务对象探测模块102,在业务进行时,获取业务对象以及其发起的事件,并将所述业务对象中的对象数据和发起所述事件的指令存储到为所述业务分配的缓冲区中;数据指令输出模块104,输出所述缓冲区中存储的所有对象数据和所有指令。通过该技术方案,可以通过缓冲区,以业务为单元而非时间来输出存储的对象数据和指令,保证用户可以集中对具体业务中的问题进行分析处理,并且不会输入输出过于频繁。在上述技术方案中,所述业务对象探测模块102在新发现发起事件的业务对象时,将新发现的业务对象的对象数据和其发起事件的指令存储到所述缓冲区中,根据所述新发现的业务对象的对象数据和指令在所述缓冲区的存储地址,预留下一个获取的业务对象的对象数据和指令的存储地址,并根据所述新发现的业务对象的对象数据和指令来获取下一个业务对象,如果此时所述业务完成,则将预留的存储地址指向所述缓冲区的终止地址。通过该技术方案,可以保证获取的对象数据和指令可以有序地存储在缓冲区中,便于输出后有序地进行管理和使用。在上述技术方案中,所述数据指令输出模块104还根据所述预留的存储地址,判断所述业务是否已经完成,并在所述业务完成或所述业务异常时,输出所述缓冲区中存储的所有对象数据和所有指令。通过该技术方案,保证存储的对象数据和指令可以顺利输出。在上述技术方案中,所述业务对象探测模块102在预定时间内未获取到所述下一个业务对象时,则不再继续等待获取所述下一个业务对象,和/或在预定时间内在所述缓存区未存储新的对象数据或指令时,则停止获取所述业务中的业务对象。通过该技术方案, 防止资源浪费,可以高效地进行对象数据和指令的获取。在上述技术方案中,还包括探测设置模块106,设置所述业务中需探测的业务对象,以及所述需探测业务对象中的需探测的对象数据;所述业务对象探测模块102仅在所述业务对象属于所述需探测的业务对象时,获取所述业务对象,并仅在所述业务对象中的对象数据属于所述需探测的对象数据时,存储所述业务对象的对象数据。通过该技术方案, 防止资源浪费,可以高效地进行对象数据和指令的获取。图2是根据本发明的一个实施例的数据管理方法的流程图。如图2所示,本发明提供一种数据管理方法,包括步骤202,在业务进行时,获取业务对象以及其发起的事件,并将所述业务对象中的对象数据和发起所述事件的指令存储到为所述业务分配的缓冲区中;步骤204,输出所述缓冲区中存储的所有对象数据和所有指令。通过该技术方案,可以通过缓冲区,以业务为单元而非时间来输出存储的对象数据和指令,保证用户可以集中对具体业务中的问题进行分析处理,并且不会输入输出过于频繁。在上述技术方案中,所述步骤202具体包括在新发现发起事件的业务对象时,将新发现的业务对象的对象数据和其发起事件的指令存储到所述缓冲区中,根据所述新发现的业务对象的对象数据和指令在所述缓冲区的存储地址,预留下一个获取的业务对象的对象数据和指令的存储地址,并根据所述新发现的业务对象的对象数据和指令来获取下一个业务对象,如果此时所述业务完成,则将预留的存储地址指向所述缓冲区的终止地址。通过该技术方案,可以保证获取的对象数据和指令可以有序地存储在缓冲区中,便于输出后有序地进行管理和使用。在上述技术方案中,所述步骤204还包括根据所述预留的存储地址,判断所述业务是否已经完成,并在所述业务完成或所述业务异常时,输出所述缓冲区中存储的所有对象数据和所有指令。通过该技术方案,保证存储的对象数据和指令可以顺利输出。在上述技术方案中,所述步骤202还包括在预定时间内未获取到所述下一个业务对象时,则不再继续等待获取所述下一个业务对象,和/或在预定时间内在所述缓存区未存储新的对象数据或指令时,则停止获取所述业务中的业务对象。在上述技术方案中,在所述步骤202之前,还包括设置所述业务中需探测的业务对象,以及所述需探测业务对象中的需探测的对象数据;所述步骤202具体包括仅在所述业务对象属于所述需探测的业务对象时,获取所述业务对象,并仅在所述业务对象中的对象数据属于所述需探测的对象数据时,存储所述业务对象的对象数据。通过该技术方案,防止资源浪费,可以高效地进行对象数据和指令的获取。本发明的实施例中的数据管理装置是这样实现的传统软件中的业务对象作为系统运行的最小单元,通常定义为BE(BUSineSS Entity,也有称为Business Object)。在业务软件增加一个追踪装置(即本实施例的数据管理装置),在本实施例中称之 ETBE,ETBE 是 Event Tracing for Business Entity。系统运行时开启ETBE装置,通过读取配置,确定需要观测的业务和业务对象。进一步地,ETBE装置可以定义和修改的业务包括一组业务对象,可以在业务流程中定义探针, 可以定义业务对象的具体所需观测信息。系统运行时许多业务对象共同响应客户操作,完成业务流程。一个业务对象作为发起端,发起事件,通知另一个或多个业务对象,得到通知的业务对象响应事件。ETBE装置在业务对象内植入可追踪接口和必要属性。所述装置还包括对象属性“探针是否开启”,决定是否监控业务对象;“探测数据集”,需要探测的数据类型;“数据变化集”,业务对象中的数据变化情况;“指令集”,事件指令的集合。
上述属性对应的对象方法“开启探针”;“关闭探针”;“发起指令”;“接收指令”; “清空探测数据集”;“清除指令”;“清空指令集”;“添加指令”。ETBE装置记录并存储业务对象和业务对象发起的事件及事件顺序。所述装置还包括提供了以下功能初始化配置选项;开启选项中要求的业务对象的探针功能;发现探针对象发起业务指令;判断是否是新独立业务,是新发生且独立业务则分配新缓冲区,并保存业务对象数据和指令,是已发生的、并正在追踪的业务,则在已分配的对应业务缓冲区中记录对象数据和指令,记录来源业务对象和指令缓冲区地址,预留出下游对象和指令地址,等待后续指令,如果业务已终止,下游指令地址指向终止地址(相当于业务对象探测模块的功能)。进一步,ETBE装置提供的功能还包括将暂停时间过长的指令和业务对象清除,用以追踪新的对象和指令转存暂停时间过长的业务缓冲区,待业务重启后再重新加载缓冲区;业务超出缓冲区存储空间,业务还继续进行中,先转存缓冲区,再开启新缓冲区作为缓冲,并记录前一缓冲区。根据配置选项ETBE选择输出缓冲区中的独立业务信息,还可以在发生异常中断时输出;可以在业务完毕时输出;可以指定输出文件位置和文件名称(相当于数据指令输出模块的功能)。该ETBE装置的原理可以图3所示,每个业务对象既是提供器,也是消耗器。每个 ETBE装置都对应多个提供器和多个消耗器。ETBE装置根据业务创建独立的缓冲区,根据选项,选择性输出磁盘文件。图4是根据本发明的一个实施例的数据管理装置的工作流程图。如图4所示,步骤402,运行时根据配置选项启动ETBE装置,确定需要探测的业务和业务对象。步骤404,被探测的业务对象发起事件,其他业务对象响应事件,并接着发起事件来完成业务。步骤406,为不同的业务分配缓冲区,存储对象的指定数据和事件顺序。步骤408,判断是否满足配置选项输出条件,在判断结果为否时,返回步骤404,在判断结果为是时,进入步骤410。步骤410,输出独立业务的信息。图5是根据本发明的一个实施例的数据管理装置的工作流程图。如图5所示,首先定义装置探测对象。假设客户要求探测业务流程A,在流程结束后输出流程信息。步骤502,在配置文件中配置选项,可以选在业务流程A中的默认业务对象集合和各业务对象默认观测数据,也可以选择业务中部分业务对象作为探针。步骤504,客户可以对配置文件进行配置。步骤506,系统运行时读取配置文件,初始化ETBE,根据选项开启业务对象探针属性,进行检测。步骤508,当系统启动业务A流程时,业务对象开始发起事件,其他业务对象接收、 消耗并发起新事件来运行业务A。步骤510,ETBE装置接收对象和对象事件,在缓冲区集合中查找此次业务。
步骤512,不存在此次业务,说明此次业务为新发起业务,则创建新缓冲区,存储数据。步骤514,找到此次业务的缓冲区,将对象和事件存入缓冲区。步骤516,根据缓冲区数据地址判断是否业务结束。如果未结束,返回步骤508,继续检测等待新事件。步骤518,如果业务结束,根据配置选项将缓冲区数据按格式转储为本地文件。综上所述,通过以上技术方案,在软件系统中引入debug相关的探测、信息采集等装置,可由用户根据业务需要进行定义追踪范围,选择观测数据,无需重新编译。每个业务对象可以配置为探针,观测范围广泛、全面,输出的信息以业务为单元,不以整个软件系统运行的时间顺序输出,业务信息完整、可读性强,业务输出定义灵活,避免大规模IO文件读写造成的效率问题。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种数据管理装置,其特征在于,包括业务对象探测模块,在业务进行时,获取业务对象以及其发起的事件,并将所述业务对象中的对象数据和发起所述事件的指令存储到为所述业务分配的缓冲区中;数据指令输出模块,输出所述缓冲区中存储的所有对象数据和所有指令。
2.根据权利要求1所述的数据管理装置,其特征在于,所述业务对象探测模块在新发现发起事件的业务对象时,将新发现的业务对象的对象数据和其发起事件的指令存储到所述缓冲区中,根据所述新发现的业务对象的对象数据和指令在所述缓冲区的存储地址,预留下一个获取的业务对象的对象数据和指令的存储地址,并根据所述新发现的业务对象的对象数据和指令来获取下一个业务对象,如果此时所述业务完成,则将预留的存储地址指向所述缓冲区的终止地址。
3.根据权利要求2所述的数据管理装置,其特征在于,所述数据指令输出模块还根据所述预留的存储地址,判断所述业务是否已经完成,并在所述业务完成或所述业务异常时, 输出所述缓冲区中存储的所有对象数据和所有指令。
4.根据权利要求2所述的数据管理装置,其特征在于,所述业务对象探测模块在预定时间内未获取到所述下一个业务对象时,则不再继续等待获取所述下一个业务对象,和/ 或在预定时间内在所述缓存区未存储新的对象数据或指令时,则停止获取所述业务中的业务对象。
5.根据权利要求1至4任一项所述的数据管理装置,其特征在于,还包括探测设置模块,设置所述业务中需探测的业务对象,以及所述需探测业务对象中的需探测的对象数据;所述业务对象探测模块仅在所述业务对象属于所述需探测的业务对象时,获取所述业务对象,并仅在所述业务对象中的对象数据属于所述需探测的对象数据时,存储所述业务对象的对象数据。
6.一种数据管理方法,其特征在于,包括步骤202,在业务进行时,获取业务对象以及其发起的事件,并将所述业务对象中的对象数据和发起所述事件的指令存储到为所述业务分配的缓冲区中;步骤204,输出所述缓冲区中存储的所有对象数据和所有指令。
7.根据权利要求6所述的数据管理方法,其特征在于,所述步骤202具体包括在新发现发起事件的业务对象时,将新发现的业务对象的对象数据和其发起事件的指令存储到所述缓冲区中,根据所述新发现的业务对象的对象数据和指令在所述缓冲区的存储地址,预留下一个获取的业务对象的对象数据和指令的存储地址,并根据所述新发现的业务对象的对象数据和指令来获取下一个业务对象,如果此时所述业务完成,则将预留的存储地址指向所述缓冲区的终止地址。
8.根据权利要求7所述的数据管理方法,其特征在于,所述步骤204还包括根据所述预留的存储地址,判断所述业务是否已经完成,并在所述业务完成或所述业务异常时,输出所述缓冲区中存储的所有对象数据和所有指令。
9.根据权利要求7所述的数据管理方法,其特征在于,所述步骤202还包括在预定时间内未获取到所述下一个业务对象时,则不再继续等待获取所述下一个业务对象,和/或在预定时间内在所述缓存区未存储新的对象数据或指令时,则停止获取所述业务中的业务对象。
10.根据权利要求6至9任一项所述的数据管理方法,其特征在于,在所述步骤202之前,还包括设置所述业务中需探测的业务对象,以及所述需探测业务对象中的需探测的对象数据;所述步骤202具体包括仅在所述业务对象属于所述需探测的业务对象时,获取所述业务对象,并仅在所述业务对象中的对象数据属于所述需探测的对象数据时,存储所述业务对象的对象数据。
全文摘要
本发明提供一种数据管理装置和一种数据管理方法,其中,数据管理装置包括业务对象探测模块,在业务进行时,获取业务对象以及其发起的事件,并将所述业务对象中的对象数据和发起所述事件的指令存储到为所述业务分配的缓冲区中;数据指令输出模块,输出所述缓冲区中存储的所有对象数据和所有指令。通过该技术方案,可以通过缓冲区,以业务为单元而非时间来输出存储的对象数据和指令,保证用户可以集中对具体业务中的问题进行分析处理。
文档编号G06F9/44GK102360289SQ20111029560
公开日2012年2月22日 申请日期2011年9月29日 优先权日2011年9月29日
发明者刘晓博 申请人:用友软件股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1