本发明涉及计算机技术领域,特别是涉及一种业务数据的稽核方法、装置及系统。
背景技术:
传统技术中的企业级应用系统由于牵涉的业务类型较多,业务数据繁杂,通常不再是一个单一的小系统,而是由多个子系统集成构成的大型系统,每个子系统均有自己的数据库资源,而且相同的数据字段可能在多个子系统中同时存在。例如,在现有的bss系统(英文:businesssupportsystem,一种电信运营商的一体化、信息资源共享的支持系统)中包含了客户关系管理、数据采集系统、计费帐务、综合结算、营销支撑等多个子系统,而该客户关系管理和计算账务的子系统的数据库中可能均存在客户属性相关的字段。当某个子系统在向另一个子系统写入数据失败时,则可能造成一个子系统存储为更新的数据,而另一个子系统中仍然存储的是老数据(即产生了脏数据),企业级应用系统的各个子系统之间可能存在数据不同步的情况。
为了防止企业级应用系统中的多个子系统之间的数据不同步的情况,需要对子系统之间相同字段的数据进行稽核。传统技术中的稽核方式为需要稽核的主系统和从系统(设置主从系统可在数据不一致时以主系统的数据为准)定期(通常为每天凌晨系统空闲时)将数据上传至数据稽核dqa(英文:dataqualityaudit)服务器,由dqa服务器对数据进行比对,从而使得主系统和子系统的数据保持一致。
然而,发明人经研究发现传统技术中的业务数据稽核方法至少存在如下问题:由于上述数据稽核方式为定时稽核,因此,稽核的实时性不足,如果是每晚定期稽核的策略,则在当日出现的子系统之间的数据差异则会导致企业级应用中的业务数据出现错误。因此,传统技术中对业务数据的稽核方式的实时性 和准确性不足。
技术实现要素:
基于此,为解决上述传统技术中由子系统定时上传数据至dqa服务器进行稽核的方式所带来的实时性和稽核的准确性不足的技术问题,特提出了一种业务数据的稽核方法。
本发明实施例第一方面公开了一种业务数据的稽核方法,包括:
在企业服务总线esb上的子系统之间进行业务数据调用时,检测企业服务总线esb上的子系统之间业务数据调用的业务调用消息,获取所述业务调用消息的调用消息参数;
获取预存的稽核事件注册信息的集合,所述稽核事件注册信息中包括预定义的事件触发参数以及对应的预定义的事件处理参数;
在所述预存的稽核事件注册信息的集合中查找与所述调用消息参数匹配的事件触发参数,在查找到时,获取与所述查找到的事件触发参数对应的稽核事件注册信息的事件处理参数;
根据所述获取到的事件处理参数查找待稽核数据,对所述待稽核数据进行数据稽核。
结合本发明实施例第一方面可能的实现方式,在本发明实施例第一方面的第一种可能的实现方式中,所述调用消息参数包括请求内容和响应内容;
所述在所述预存的稽核事件注册信息的集合中查找与所述调用消息参数匹配的事件触发参数之前还包括:
获取所述调用消息参数的响应内容,在所述响应内容包含业务数据调用错误信息时则执行所述在所述预存的稽核事件注册信息的集合中查找与所述调用消息参数匹配的事件触发参数。
结合本发明实施例第一方面或第一方面的第一种可能的实现方式,在本发明实施例第一方面的第二种可能的实现方式中,所述事件触发参数中定义有特征字段下的特征数据;
所述在所述预存的稽核事件注册信息的集合中查找与所述调用消息参数匹 配的事件触发参数包括:
遍历所述预存的稽核事件注册信息,获取遍历到的目标稽核事件注册信息对应的事件触发参数中的特征字段下的特征数据;
获取所述调用消息参数包含的在所述特征字段下的消息数据,在所述消息数据与所述特征数据匹配时,判定所述目标稽核事件注册信息为与所述调用消息参数匹配的稽核事件注册信息。
结合本发明实施例第一方面的实现方式,在本发明实施例第一方面的第三种可能的实现方式中,所述获取与所述查找到的事件触发参数对应的稽核事件注册信息的事件处理参数包括:
根据所述调用消息参数和所述查找到的事件触发参数对应的稽核事件注册信息生成稽核事件并触发;
检测所述触发的稽核事件,查找所述触发的稽核事件对应的稽核事件注册信息的事件处理参数。
结合本发明实施例第一方面的实现方式,在本发明实施例第一方面的第四种可能的实现方式中,所述事件处理参数中包含主数据源的地址和与所述主数据源对应的查询字段,以及从数据源的地址和与所述从数据源对应的查询字段;
所述待稽核数据包括主数据源待稽核数据和从数据源待稽核数据;
所述根据所述获取到的事件处理参数查找待稽核数据为:
根据与所述主数据源对应的查询字段由所述主数据源的地址查找主数据源待稽核数据;
根据与所述从数据源对应的查询字段由所述从数据源的地址查找从数据源待稽核数据。
结合本发明实施例第一方面的实现方式,在本发明实施例第一方面的第五种可能的实现方式中,所述对所述待稽核数据进行数据稽核为:
将所述待稽核数据发送给数据稽核dqa服务器,由所述dqa服务器进行数据稽核。
结合本发明实施例第一方面以及第一方面的第一种至第五种中任一种的实现方式,在本发明实施例第一方面的第六种可能的实现方式中,所述检测企业 服务总线esb上的子系统之间业务数据调用的业务调用消息之前还包括:
接收稽核事件注册信息并存储,所述稽核事件注册信息包括预定义的事件触发参数以及对应的预定义的事件处理参数。
结合本发明实施例第一方面的第六种的实现方式,在本发明实施例第一方面的第七种可能的实现方式中,所述接收稽核事件注册信息并存储为:
接收稽核事件注册信息,将接收到的稽核事件注册信息存储在稽核事件注册服务器中;
所述在所述预存的稽核事件注册信息的集合中查找与所述调用消息参数匹配的事件触发参数还包括:
在所述稽核事件注册服务器中预存的稽核事件注册信息的集合中查找与所述调用消息参数匹配的事件触发参数;
所述获取与所述查找到的事件触发参数对应的稽核事件注册信息的事件处理参数为:
根据所述调用消息参数和与所述查找到的事件触发参数对应的稽核事件注册信息生成稽核事件,将生成的稽核事件发送给稽核事件处理服务器,由所述稽核事件处理服务器根据接收到的稽核事件在所述稽核事件注册服务器获取相应的事件处理参数。
结合本发明实施例第一方面的第七种的实现方式,在本发明实施例第一方面的第八种可能的实现方式中,所述根据所述获取到的事件处理参数查找待稽核数据包括:
通过所述稽核事件处理服务器根据所述事件处理参数查找待稽核数据。
结合本发明实施例第一方面的第七种的实现方式,在本发明实施例第一方面的第九种可能的实现方式中,所述将生成的稽核事件发送给稽核事件处理服务器为:
通过esb中的topic消息将所述生成的稽核事件发送给稽核事件处理服务器。
此外,为解决上述传统技术中由子系统定时上传数据至dqa服务器进行稽 核的方式所带来的实时性和稽核的准确性不足的技术问题,特提出了一种业务数据的稽核装置。
本发明实施例第二方面提供了一种业务数据的稽核装置,包括:
调用消息参数检测模块,用于检测企业服务总线esb上的子系统之间业务数据调用的业务调用消息,获取所述业务调用消息的调用消息参数;
预存稽核事件注册信息获取模块,用于获取预存的稽核事件注册信息的集合,所述稽核事件注册信息中包括预定义的事件触发参数以及对应的预定义的事件处理参数;
事件处理参数获取模块,用于在所述预存的稽核事件注册信息的集合中查找与所述调用消息参数匹配的事件触发参数,在查找到时,获取与所述查找到的事件触发参数对应的稽核事件注册信息的事件处理参数;
数据稽核模块,用于根据所述获取到的事件处理参数查找待稽核数据,对所述待稽核数据进行数据稽核。
结合本发明实施例第二方面的实现方式,在本发明实施例第二方面的第一种可能的实现方式中,所述调用消息参数包括请求内容和响应内容;
所述事件处理参数获取模块用于获取所述调用消息参数的响应内容,在所述响应内容包含业务数据调用错误信息时,在所述预存的稽核事件注册信息的集合中查找与所述调用消息参数匹配的事件触发参数。
结合本发明实施例第二方面或第二方面的第一种实现方式,在本发明实施例第二方面的第二种可能的实现方式中,所述事件触发参数中定义有特征字段下的特征数据;
所述事件处理参数获取模块用于遍历所述预存的稽核事件注册信息,获取遍历到的目标稽核事件注册信息对应的事件触发参数中的特征字段下的特征数据;获取所述调用消息参数包含的在所述特征字段下的消息数据,在所述消息数据与所述特征数据匹配时,判定所述目标稽核事件注册信息为与所述调用消息参数匹配的稽核事件注册信息。
结合本发明实施例第二方面的实现方式,在本发明实施例第二方面的第三种可能的实现方式中,所述事件处理参数获取模块用于根据所述调用消息参数 和所述查找到的事件触发参数对应的稽核事件注册信息生成稽核事件并触发;检测所述触发的稽核事件,查找所述触发的稽核事件对应的稽核事件注册信息的事件处理参数。
结合本发明实施例第二方面的实现方式,在本发明实施例第二方面的第四种可能的实现方式中,所述事件处理参数中包含主数据源的地址和与所述主数据源对应的查询字段,以及从数据源的地址和与所述从数据源对应的查询字段;
所述待稽核数据包括主数据源待稽核数据和从数据源待稽核数据;
所述数据稽核模块用于根据与所述主数据源对应的查询字段由所述主数据源的地址查找主数据源待稽核数据;根据与所述从数据源对应的查询字段由所述从数据源的地址查找从数据源待稽核数据。
结合本发明实施例第二方面的实现方式,在本发明实施例第二方面的第五种可能的实现方式中,所述数据稽核模块用于将所述待稽核数据发送给数据稽核dqa服务器,由所述dqa服务器进行数据稽核。
结合本发明实施例第二方面和第二方面的第一种至第五种中任一种的实现方式,在本发明实施例第二方面的第六种可能的实现方式中,所述装置还包括稽核事件注册模块,用于接收稽核事件注册信息并存储,所述稽核事件注册信息包括预定义的事件触发参数以及对应的预定义的事件处理参数。
结合本发明实施例第二方面的第六种实现方式,在本发明实施例第二方面的第七种可能的实现方式中,所述稽核事件注册模块用于接收稽核事件注册信息,将接收到的稽核事件注册信息存储在稽核事件注册服务器中;
所述事件处理参数获取模块还用于在所述稽核事件注册服务器中预存的稽核事件注册信息的集合中查找与所述调用消息参数匹配的事件触发参数;根据所述调用消息参数和与所述查找到的事件触发参数对应的稽核事件注册信息生成稽核事件,将生成的稽核事件发送给稽核事件处理服务器,由所述稽核事件处理服务器根据接收到的稽核事件在所述稽核事件注册服务器获取相应的事件处理参数。
结合本发明实施例第二方面的第七种实现方式,在本发明实施例第二方面的第八种可能的实现方式中,所述数据稽核模块还用于通过所述稽核事件处理 服务器根据所述事件处理参数查找待稽核数据。
结合本发明实施例第二方面的第七种实现方式,在本发明实施例第二方面的第九种可能的实现方式中,所述事件处理参数获取模块还用于通过esb中的topic消息将所述生成的稽核事件发送给稽核事件处理服务器。
此外,为解决上述传统技术中由子系统定时上传数据至dqa服务器进行稽核的方式所带来的实时性和稽核的准确性不足的技术问题,特提出了一种业务数据的稽核检测系统。
本发明第三方面公开了一种业务数据的稽核条件检测系统,包括稽核事件注册服务器、稽核事件检测服务器以及稽核事件处理服务器,其中:
所述稽核事件注册服务器用于接收稽核事件注册信息并存储,所述稽核事件注册信息包括事件触发参数以及对应的事件处理参数;
所述稽核事件检测服务器用于检测企业服务总线esb上的子系统之间业务数据调用的业务调用消息,获取所述业务调用消息的调用消息参数;在所述稽核事件注册服务器中查找与所述调用消息参数匹配的事件触发参数,在查找到时,根据与所述查找到的事件触发参数对应的稽核事件注册信息生成稽核事件发送给所述稽核事件处理服务器;
所述稽核事件处理服务器用于在所述稽核事件注册服务器中查找与所述接收到的稽核事件对应的稽核事件注册信息的事件处理参数;根据所述获取到的事件处理参数查找待稽核数据,将所述待稽核数据发送至dqa服务器进行数据稽核。
结合本发明实施例第三方面的实现方式,在本发明实施例第三方面的第一种可能的实现方式中,所述稽核事件检测服务器用于通过esb中的topic消息将所述生成的稽核事件发送给稽核事件处理服务器。
结合本发明实施例第三方面的实现方式,在本发明实施例第三方面的第二种可能的实现方式中,所述事件处理参数中包含主数据源的地址和与所述主数据源对应的查询字段,以及从数据源的地址和与所述从数据源对应的查询字段;
所述待稽核数据包括主数据源待稽核数据和从数据源待稽核数据;
所述稽核事件处理服务器用于根据与所述主数据源对应的查询字段由所述主数据源的地址查找主数据源待稽核数据;以及根据与所述从数据源对应的查询字段由所述从数据源的地址查找从数据源待稽核数据。
结合本发明实施例第三方面的实现方式,在本发明实施例第三方面的第三种可能的实现方式中,所述调用消息参数包括请求内容和响应内容;
所述稽核事件检测服务器还用于获取所述调用消息参数的响应内容,在所述响应内容包含业务数据调用错误信息时,则在所述稽核事件注册服务器中查找与所述调用消息参数匹配的事件触发参数。
结合本发明实施例第三方面和第三方面的第一种至第三种中任一种的实现方式,在本发明实施例第三方面的第四种可能的实现方式中,所述事件触发参数中定义有特征字段下的特征数据;
所述稽核事件检测服务器还用于遍历所述稽核事件注册服务器中存储的稽核事件注册信息,获取遍历到的目标稽核事件注册信息对应的事件触发参数中的特征字段下的特征数据;获取所述调用消息参数包含的在所述特征字段下的消息数据,在所述消息数据与所述特征数据匹配时,判定所述目标稽核事件注册信息为与所述调用消息参数匹配的稽核事件注册信息。
实施本发明具有如下的有益效果:
上述业务数据的稽核方法在企业级应用中的各个子系统在相互之间发生业务数据调用时,可实时地检测到是否需要进行数据稽核。而在上述方法中,采用了事件驱动机制。即由子系统先注册稽核事件的事件触发参数和事件处理参数,然后根据事件触发参数在检测业务数据调用的过程中生成稽核事件,然后根据稽核事件的事件处理参数得到待稽核数据,并完成数据稽核工作。使得在企业级应用中的业务调用在需要进行数据稽核时,能够通过事件触发参数第一时间启动数据稽核的流程,并通过预定义事件处理参数自动完成对该业务调用可能存在的业务数据的差异进行数据稽核。与传统技术中每晚定期进行数据稽核的方式相比,实时性更好,因此不会由于当天生成的差异数据而引起企业级应用运行错误,从而提高了业务数据稽核的准确性企业级应用的可靠性。
附图说明
图1为传统技术中基于中间件服务的企业级应用的系统架构图;
图2为本发明一个实施例中基于中间件服务的业务数据的稽核系统的系统架构图;
图3为本发明一个实施例中一种业务数据的稽核方法的流程图;
图4为本发明一个实施例中基于esb的业务数据的稽核系统的系统架构图;
图5为本发明一个实施例中一种业务数据的稽核装置的示意图;
图6为本发明一个实施例中一种业务数据的稽核条件检测系统的系统架构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为解决上述传统技术中由子系统定时上传数据至dqa服务器进行稽核的方式所带来的实时性和稽核的准确性不足的技术问题,在一个实施例中,特提出了一种业务数据的稽核方法。该方法的实现可依赖于计算机程序,该计算机程序可以是企业级应用的中间件程序或提供消息调用转发功能的程序、基于企业级服务总线esb(英文:enterpriseservicebus)的扩展程序或企业级应用系统的扩展程序。该计算机程序可运行于基于冯诺依曼体系的计算机系统之上,该计算机系统可以是企业级应用中运行上述中间件程序、基于企业级服务总线esb(英文:enterpriseservicebus)的扩展程序或企业级应用系统的扩展程序的服务器设备。
具体的,在大型企业内部,通常包含有多个子系统,例如客户关系管理、数据采集系统、计费帐务、综合结算、营销支撑等多个子系统,一个企业级应 用则可能包含其中的多个子系统,如图1所示。为了使得多个子系统之间能够互相调用业务数据,从而使得有完整的业务数据支撑企业级应用中的完整的业务流或工作流,企业级应用通常采用中间件服务(middlewareservice)的方式进行调度(例如企业前端总线esb提供的中间件服务,英文:enterpriseservicebus)。也就是说,企业级应用在调用各个子系统的业务数据时,并不是直接向各个子系统的外部访问地址发送消息,而是通过中间件服务获取业务数据。即向运行中间件服务的服务器设备发送消息,而由中间件服务负责转发消息给适当的目的子系统来处理,然后将返回的处理完成的响应信息返回。
例如,在图1中,企业级应用涉及的子系统1、2、3和4均接入了中间件服务,子系统1、2、3和4之间的数据调用均不是直接向对方发送消息进行业务调用,而是通过向中间件服务器转发消息进行调度。例如,在图1中,子系统1若要请求子系统4的中的业务数据,则向中间件服务器发送请求,然后由中间件服务器将其转发给子系统4,子系统4则向中间件服务器返回响应,响应中包含有请求的业务数据,该响应再由中间件服务器转发给子系统1。也就是说,中间件服务构成了各个子系统之间业务调用的桥梁。
在上例中,若子系统1中的数据库的用户数据表中的某个用户id对应的数据项在姓名字段下的值为“张三”,而该用户id在子系统4中的数据库的用户数据表中对应的数据项在姓名字段下的值为“李四”。则子系统1和子系统4中的数据产生冲突,中间件服务器返回给子系统4的响应则包含错误码,用于指示子系统1与子系统4中的数据存在不一致,业务数据调用失败。
在本实施例中,为了解决上述问题,实时地对子系统1和子系统4中间不一致的数据进行稽核,则可对传统的中间件服务进行扩展。如图2所示,可在传统的中间件服务中加入稽核事件注册服务、稽核事件检测服务、稽核事件处理服务(加入的软件服务或组件可以运行于中间件服务器上,也可运行于单独的服务器上与中间件服务器连接,扩展中间件服务)。使得可通过稽核事件检测服务检测中间件服务中是否出现需要进行数据稽核的情况,并实时地根据检测结果触发通过稽核事件注册服务定义的稽核事件,然后由稽核事件处理服务根据捕获的稽核事件进行数据稽核,从而实时性得到了保证。
具体的,提供上述稽核事件注册服务、稽核事件监测服务、稽核事件处理服务服务器设备(可以是中间件服务器也可以是单独假设的服务器设备)则可执行上述业务数据的稽核方法。如图3所示,该方法包括:
步骤s102:检测企业服务总线esb上的子系统之间业务数据调用的业务调用消息,获取业务调用消息的调用消息参数。
如前所述,业务数据调用的业务调用消息为本方法所依赖的中间件服务接收和转发的子系统的业务调用消息,子系统之间的业务调用并不是直接通信,而是通过中间件服务器进行转发,因此中间件服务可获取到业务调用消息。业务调用消息的调用消息参数即为业务调用消息的内容中预设的部分内容。业务调用消息可包括请求消息和响应消息,调用消息参数则包含请求内容和响应内容。
步骤s104:获取预存的稽核事件注册信息的集合,稽核事件注册信息中包括预定义的事件触发参数以及对应的预定义的事件处理参数。
在一个实施例中,可预先存储多个稽核事件注册信息(例如,直接添加到esb的程序代码中,或者直接记录在esb的配置文档中),每个稽核事件注册信息中包括一组预定义的事件触发参数和相应的一组预定义的事件处理参数。
稽核事件的事件触发参数即为生成稽核事件的条件,事件触发参数中包含有预定义的中间件服务的业务调用消息的内容,执行该方法的服务器持续地对中间件服务的业务调用消息过程进行检测,当检测结果与事件触发参数所定义的条件匹配时,则生成稽核事件。
稽核事件的事件处理参数即为与相应的稽核事件的处理方式的定义信息。子系统可在事件处理参数中定义在需要进行业务数据稽核时,执行捕捉到稽核事件并处理的服务器需要去哪些数据源获取哪些类型或字段的数据,并定义哪个数据源的数据为最终数据(final数据)。
在一个实施例中,执行本方法的服务器也可接收稽核事件注册信息,稽核事件注册信息包括事件触发参数以及事件处理参数。
例如,子系统可以根据需要动态地进行稽核事件的注册,可向执行本方法的服务器设备提交稽核事件注册信息,稽核事件注册信息中可包含稽核事件的 事件触发参数和事件处理参数。子系统可在运行时的任何时期向执行本方法的服务器设备进行稽核事件的注册。执行本方法的服务器设备接收到新注册的稽核事件注册信息之后,即可根据新注册的稽核事件注册信息检测子系统之间的业务数据调用是否满足数据稽核的条件。
也就是说,一个稽核事件的产生和处理的具体过程既可以预先由开发人员定义,也可由子系统根据需要动态地进行注册,而执行本方法的服务器则不间断的检测中间件服务接收到或转发至该子系统的业务调用消息,当业务调用消息满足预先定义的稽核事件的产生过程的条件时,则生成稽核事件,然后再根据该稽核事件的处理的定义进行相应处理。若某个子系统未注册与之对应的稽核事件,则该子系统的业务消息调用不会触发稽核事件。
步骤s106:在所述预存的稽核事件注册信息的集合中查找与调用消息参数匹配的事件触发参数,在查找到时,获取与查找到的事件触发参数对应的稽核事件注册信息的事件处理参数。
在本实施例中,事件触发参数中定义有特征字段。例如,子系统在注册稽核事件时,可在稽核事件注册信息的事件触发参数中定义特征字段为用户数据表中的姓名字段、年龄字段和性别字段,以及在上述字段下的特征数据的取值。事件触发参数中还可以定义发起请求的子系统的地址或标识信息,以及在当次业务调用过程中返回相应响应的子系统的地址或标识信息。也就是说,注册的稽核事件的事件触发参数中可包括与数据源地址或标识、数据源中的字段的名称、以及字段下的特征数据等内容。优选的,特征数据可以使用正则表达式进行定义。
而在本实施例中,在所述预存的稽核事件注册信息的集合中查找与调用消息参数匹配的事件触发参数则可包括:
遍历已注册的稽核事件注册信息,获取遍历到的目标稽核事件注册信息的事件触发参数中的特征字段下的特征数据;获取调用消息参数包含的在特征字段下的消息数据,在消息数据与特征数据匹配时,判定目标稽核事件注册信息为与调用消息参数匹配的稽核事件注册信息。
例如,事件触发参数中可既定义请求内容中应该包含的特征字段和响应内 容中应该包含的特征字段,并对每个定义的特征字段下应该取值的特征数据采用了正则表达式的方式进行定义。而在当前系统中,一个子系统可注册多个稽核事件规则信息,当检测到有业务调用消息传入时,则提取业务调用消息的调用消息参数,然后遍历已注册的稽核事件规则信息。
例如,若某个注册的稽核事件注册信息的事件触发参数中定义了请求内容需要包含“姓名”字段的特征字段,且“姓名”字段的特征数据的正则表达式为“张*”(姓张的人),定义了响应内容需要包含“年龄”字段的特征字段,且“年龄”字段的特征数据的正则表达式为“1*”(十几岁的人)。而在调用消息参数中的请求内容中包含了“姓名”字段的消息数据为“张三”,响应内容中包含了“年龄”字段的消息数据为“18”,则在遍历到该稽核事件注册信息时,调用消息参数与该稽核事件注册信息匹配。
在本实施例中,在所述预存的稽核事件注册信息的集合中查找与调用消息参数匹配的事件触发参数之前还可获取调用消息参数的响应内容,在响应内容包含业务数据调用错误信息时则执行查找事件触发参数与调用消息参数匹配的稽核事件。
业务数据调用错误信息通常可使用错误码来表示,在响应内容中包含业务数据调用错误信息(错误码)时,意味着业务数据调用两端的子系统中存储的业务数据存在差异,导致业务数据调用失败,因此需要进行稽核。而在响应内容中不包含业务数据调用错误信息时,意味着业务数据调用两端的子系统中存储的业务数据不存在差异,可完好地执行业务数据调用,企业级应用运行正常,因此不需要进行数据稽核。由于优先判断比对错误码的方式仅仅只需要比对几个数字即可完成对是否需要出发稽核事件的粗判断,因此在企业级应用正常运行时,可耗费较少的时间用在前述的遍历稽核事件注册信息上,从而提高了执行效率。
在本实施例中,在查找到与调用消息参数匹配的稽核事件注册信息之后,即可获取相应的匹配的稽核事件注册信息的事件处理参数。
具体的,可根据所述调用消息参数和所述查找到的稽核事件注册信息生成稽核事件并触发;检测所述触发的稽核事件,查找所述触发的稽核事件对应的 稽核事件注册信息的事件处理参数。
在一个单一服务器(或集中式服务方式的服务器集群)运行上述业务数据的稽核方法的实施例中,上述过程可依赖于消息队列。也就是说,在运行上述方法的服务器上可存储有一个消息队列。然后启动一个线程或进程检测调用消息参数,当检测到调用消息参数与某个稽核事件注册信息匹配时,则根据该稽核事件注册信息生成稽核事件的对象,然后将该稽核事件添加到消息队列的队尾。同时,另一个线程或进程依次从消息队列的队首取出稽核事件的对象。稽核事件注册信息中还定义有该稽核事件的标识,取出稽核事件的对象的线程或进程可根据该标识查找缓存中的稽核事件注册信息,然后查找相应定义的事件处理参数。
再另一个将前述的稽核事件注册服务(对应稽核事件注册服务器)、稽核事件检测服务(对应稽核事件检测服务器)、稽核事件处理服务((对应稽核事件处理服务器)分别运行于不同的实体服务器的实施例中,则子系统可向稽核事件注册服务器发送稽核事件注册信息,可将稽核事件注册信息存储在稽核事件注册服务器中。
稽核事件检测服务器则可与中间件服务保持连接,用于获取中间件服务的业务调用消息的调用消息参数,也与稽核事件注册服务器连接,在所述稽核事件注册服务器中查找事件触发参数与所述调用消息参数匹配的稽核事件注册信息(也可由稽核事件注册服务器获取到已注册的稽核事件注册信息并缓存,然后在缓存中查找)。
当稽核事件检测服务器检测到与调用消息参数匹配的稽核事件注册信息之后,则根据调用消息参数和查找到的稽核事件注册信息生成稽核事件,将生成的稽核事件发送给稽核事件处理服务器,由所述稽核事件处理服务器根据接收到的稽核事件在所述稽核事件注册服务器获取相应的事件处理参数。
稽核事件处理服务器则在稽核事件注册服务器中查找接收到的稽核事件的稽核事件注册信息的时间处理参数,然后根据该事件处理参数进行数据稽核。
也就是说,上述方法既可在同一个硬件实体上基于多线程/多进程的消息队列处理机制执行,也可在多个服务器上通过不同硬件实体上的交互执行。
步骤s108:根据获取到的事件处理参数查找待稽核数据,对待稽核数据进行数据稽核。
在本实施例中,事件处理参数中包含主数据源的地址和与所述主数据源对应的查询字段,以及从数据源的地址和与所述从数据源对应的查询字段。待稽核数据包括主数据源待稽核数据和从数据源待稽核数据。
提供稽核事件处理服务的服务器可根据与所述主数据源对应的查询字段由所述主数据源的地址查找主数据源待稽核数据;根据与所述从数据源对应的查询字段由所述从数据源的地址查找从数据源待稽核数据。
事件处理参数中的设置区分主数据源和从数据源的作用为,在数据存在差异时,以主数据源的数据为准。主数据源的地址可以是作为主数据源的子系统的ip地址、mac地址等实际的网络地址,也可以是作为主数据源的子系统的标识,中间件服务器中可存储有子系统的标识与实际网络地址的映射表,可根据子系统的标识查找到相应的网络地址。
提供稽核事件处理服务的服务器在查询得到事件处理参数之后,则可根据事件处理参数中定义的数据源的查询字段拼接查询语句,然后发送给数据源对应的子系统,子系统中可监听查询事件,即检测是否接收到提供稽核事件处理服务的服务器发送的查询语句,若是检测到,则执行相应的查询语句,并返回相应的待稽核数据。
在本实施例中,提供稽核事件处理服务的服务器可将所述待稽核数据发送给数据稽核dqa服务器,由dqa服务器进行数据稽核。也就是说,提供稽核事件处理服务的服务器可在接收到稽核事件的实时查询得到待稽核数据,然后实时地将待稽核数据发送给dqa服务器进行稽核,与传统技术中每晚定期上传稽核数据给dqa服务器进行稽核的方式相比,实时性更好,也使得持续运行的企业级应用不会由于业务数据来不及稽核而出现运行时错误,从而提高了企业级应用的可靠性。
在一个实施例中,中间件服务为企业服务总线esb(英文:enterpriseservicebus),esb是传统中间件技术与xml、web服务等技术结合的产物。esb提供了网络中最基本的连接中枢,是构筑企业神经系统的必要元素。esb的出现改 变了传统的软件架构,可以提供比传统中间件产品更为廉价的解决方案,同时它还可以消除不同应用之间的技术差异,让不同的应用服务器协调运作,实现了不同服务之间的通信与整合。从功能上看,esb提供了事件驱动和文档导向的处理模式,以及分布式的运行管理机制,它支持基于内容的路由和过滤,具备了复杂数据的传输能力,并可以提供一系列的标准接口。
在本实施例中,如图4所示,稽核事件注册服务、稽核事件检测服务、稽核事件处理服务可运行于同一硬件实体上,以不同的软件功能模块通过多线程来实现,也可运行于不同硬件实体的服务器设备上。各个子系统可通过向稽核事件注册服务发送稽核事件注册信息来注册稽核事件,稽核事件注册信息可通过xml文件来定义和存储。
在一个具体的应用场景中,稽核事件的事件触发参数的定义可如表1所示:
表1
需要说明的是,表1只是表示了逻辑上的稽核事件注册信息中的事件触发参数中的多个限定项和限定值之间的映射关系,在实际应用中并不限定以此种方式存储该映射关系。
由表1可看出,在该应用场景中,事件触发参数中不仅包含了请求内容和响应内容中的特征字段须要满足的特征数据的要求,还添加了与esb功能相关的上下游系统信息、服务信息以及操作信息。也就是说,在该应用场景中,在根据调用消息参数和事件触发参数判断是否需要生成稽核事件时,还可加入对上下游系统信息、服务信息以及操作信息的判断或比对,只有调用消息参数中包含的这些信息与事件触发参数中的定义都相符合时,再生成稽核事件。
而相应的,在该应用场景中,稽核事件的事件处理参数的定义可如表2所示:
表2
需要说明的是,表2只是表示了逻辑上的稽核事件注册信息中的事件处理参数中的多个限定项和限定值之间的映射关系,在实际应用中并不限定以此种方式存储该映射关系。
由表2可看出,事件处理参数中定义了作为主数据源的子系统的相关信息和查询字段以及作为从数据源的子系统的相关信息和查询字段,稽核数据处理服务只需要根据该事件处理参数的定义即可组装查询报文,分别从主数据源和从数据源获取到待稽核数据。
相应的,在该应用场景中,生成的稽核事件的对象或数据结构中可包括如表3所示的信息:
表3
需要说明的是,表3只是表示了逻辑上的稽核事件的对象或数据结构中的各个属性项与属性值的映射关系,在实际应用中并不限定以此种方式存储该映射关系,而在esb系统中,可使用xml文件作为稽核事件传输和存储的载体。
在上述应用场景中,如图4所示,稽核事件检测服务可通过企业服务总线esb获取业务数据调用的业务调用消息。运行上述稽核事件注册服务、稽核事件检测服务、稽核事件处理服务的实体硬件之间可通过esb中的topic消息传 输数据,例如,提供稽核事件检测服务的服务器即可通过esb中的topic消息将生成的稽核事件发送给提供稽核事件处理服务的服务器。
上述业务数据的稽核方法在企业级应用中的各个子系统在相互之间发生业务数据调用时,可实时地检测到是否需要进行数据稽核。而在上述方法中,采用了事件驱动机制。即由子系统先注册稽核事件的事件触发参数和事件处理参数,然后根据事件触发参数在检测业务数据调用的过程中生成稽核事件,然后根据稽核事件的事件处理参数得到待稽核数据,并完成数据稽核工作。使得在企业级应用中的业务调用在需要进行数据稽核时,能够通过事件触发参数第一时间启动数据稽核的流程,并通过预定义事件处理参数自动完成对该业务调用可能存在的业务数据的差异进行数据稽核。与传统技术中每晚定期进行数据稽核的方式相比,实时性更好,因此不会由于当天生成的差异数据而引起企业级应用运行错误,从而提高了业务数据稽核的准确性企业级应用的可靠性。
为解决上述传统技术中由子系统定时上传数据至dqa服务器进行稽核的方式所带来的实时性和稽核的准确性不足的技术问题,在一个实施例中,如图5所示,还提出了一种与前述业务数据的稽核方法对应的业务数据的稽核装置。该装置包括调用消息参数检测模块102、预存稽核事件注册信息获取模块104、事件处理参数获取模块106以及数据稽核模块108,其中:
调用消息参数检测模块102,用于检测企业服务总线esb上的子系统之间业务数据调用的业务调用消息,获取业务调用消息的调用消息参数。
预存稽核事件注册信息获取模块104,用于获取预存的稽核事件注册信息的集合,稽核事件注册信息中包括预定义的事件触发参数以及对应的预定义的事件处理参数。
事件处理参数获取模块106,用于在预存的稽核事件注册信息的集合中查找与调用消息参数匹配的事件触发参数,在查找到时,获取与查找到的事件触发参数对应的稽核事件注册信息的事件处理参数。
数据稽核模块108,用于根据获取到的事件处理参数查找待稽核数据,对待稽核数据进行数据稽核。
在一个实施例中,调用消息参数包括请求内容和响应内容。
事件处理参数获取模块106用于获取调用消息参数的响应内容,在响应内容包含业务数据调用错误信息时,在预存的稽核事件注册信息的集合中查找与调用消息参数匹配的事件触发参数。
在一个实施例中,事件触发参数中定义有特征字段下的特征数据。
事件处理参数获取模块106用于遍历预存的稽核事件注册信息,获取遍历到的目标稽核事件注册信息对应的事件触发参数中的特征字段下的特征数据;获取调用消息参数包含的在特征字段下的消息数据,在消息数据与特征数据匹配时,判定目标稽核事件注册信息为与调用消息参数匹配的稽核事件注册信息。
在一个实施例中,事件处理参数获取模块106用于根据调用消息参数和查找到的事件触发参数对应的稽核事件注册信息生成稽核事件并触发;检测触发的稽核事件,查找触发的稽核事件对应的稽核事件注册信息的事件处理参数。
在一个实施例中,事件处理参数中包含主数据源的地址和与主数据源对应的查询字段,以及从数据源的地址和与从数据源对应的查询字段;
待稽核数据包括主数据源待稽核数据和从数据源待稽核数据;
数据稽核模块108用于根据与主数据源对应的查询字段由主数据源的地址查找主数据源待稽核数据;根据与从数据源对应的查询字段由从数据源的地址查找从数据源待稽核数据。
在一个实施例中,数据稽核模块108用于将待稽核数据发送给数据稽核dqa服务器,由dqa服务器进行数据稽核。
在另一个实施例中,如图5所示,该装置还包括稽核事件注册模块110,用于接收稽核事件注册信息并存储,稽核事件注册信息包括预定义的事件触发参数以及对应的预定义的事件处理参数。
稽核事件注册模块110还用于接收稽核事件注册信息,将接收到的稽核事件注册信息存储在稽核事件注册服务器中;
事件处理参数获取模块106还用于在稽核事件注册服务器中预存的稽核事件注册信息的集合中查找与调用消息参数匹配的事件触发参数;根据调用消息参数和与查找到的事件触发参数对应的稽核事件注册信息生成稽核事件,将生 成的稽核事件发送给稽核事件处理服务器,由稽核事件处理服务器根据接收到的稽核事件在稽核事件注册服务器获取相应的事件处理参数。
数据稽核模块108还用于通过稽核事件处理服务器根据事件处理参数查找待稽核数据。
事件处理参数获取模块106还用于通过esb中的topic消息将生成的稽核事件发送给稽核事件处理服务器。
为解决上述传统技术中由子系统定时上传数据至dqa服务器进行稽核的方式所带来的实时性和稽核的准确性不足的技术问题,在一个实施例中,如图6所示,还提出了一种基于前述业务数据的稽核方法的业务数据的稽核条件检测系统,包括稽核事件注册服务器10、稽核事件检测服务器20以及稽核事件处理服务器30,其中:
稽核事件注册服务器10用于接收稽核事件注册信息并存储,稽核事件注册信息包括事件触发参数以及对应的事件处理参数。
稽核事件检测服务器20用于检测企业服务总线esb上的子系统之间业务数据调用的业务调用消息,获取业务调用消息的调用消息参数;在稽核事件注册服务器10中查找与调用消息参数匹配的事件触发参数,在查找到时,根据与查找到的事件触发参数对应的稽核事件注册信息生成稽核事件发送给稽核事件处理服务器30。
稽核事件处理服务器30用于在稽核事件注册服务器10中查找与接收到的稽核事件对应的稽核事件注册信息的事件处理参数;根据获取到的事件处理参数查找待稽核数据,将待稽核数据发送至dqa服务器进行数据稽核。
在一个实施例中,稽核事件检测服务器20用于通过esb中的topic消息将生成的稽核事件发送给稽核事件处理服务器30。
在一个实施例中,事件处理参数中包含主数据源的地址和与主数据源对应的查询字段,以及从数据源的地址和与从数据源对应的查询字段;
待稽核数据包括主数据源待稽核数据和从数据源待稽核数据;
稽核事件处理服务器30用于根据与主数据源对应的查询字段由主数据源的 地址查找主数据源待稽核数据;以及根据与从数据源对应的查询字段由从数据源的地址查找从数据源待稽核数据。
在一个实施例中,调用消息参数包括请求内容和响应内容。
稽核事件检测服务器20还用于获取调用消息参数的响应内容,在响应内容包含业务数据调用错误信息时,则在稽核事件注册服务器中查找与调用消息参数匹配的事件触发参数。
在一个实施例中,事件触发参数中定义有特征字段下的特征数据。
稽核事件检测服务器20还用于遍历稽核事件注册服务器10中存储的稽核事件注册信息,获取遍历到的目标稽核事件注册信息对应的事件触发参数中的特征字段下的特征数据;获取调用消息参数包含的在特征字段下的消息数据,在消息数据与特征数据匹配时,判定目标稽核事件注册信息为与调用消息参数匹配的稽核事件注册信息。
实施本发明具有如下的有益效果:
上述业务数据的稽核方法在企业级应用中的各个子系统在相互之间发生业务数据调用时,可实时地检测到是否需要进行数据稽核。而在上述方法中,采用了事件驱动机制。即由子系统先注册稽核事件的事件触发参数和事件处理参数,然后根据事件触发参数在检测业务数据调用的过程中生成稽核事件,然后根据稽核事件的事件处理参数得到待稽核数据,并完成数据稽核工作。使得在企业级应用中的业务调用在需要进行数据稽核时,能够通过事件触发参数第一时间启动数据稽核的流程,并通过预定义事件处理参数自动完成对该业务调用可能存在的业务数据的差异进行数据稽核。与传统技术中每晚定期进行数据稽核的方式相比,实时性更好,因此不会由于当天生成的差异数据而引起企业级应用运行错误,从而提高了业务数据稽核的准确性企业级应用的可靠性。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。 其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。