数据同步方法及装置、电子设备和计算机可读存储介质与流程
未命名
07-23
阅读:53
评论:0

1.本技术涉及数据共享技术领域,尤其涉及一种数据同步方法及装置、电子设备和计算机可读存储介质。
背景技术:
2.随着业务支撑系统的发展,对于系统间的交互响应之实时性的需求越来越高,保证业务支撑系统与业务系统间的业务前置数据实时同步,即保证各系统间的业务前置数据的一致性,成为数据同步的重点。
3.相关技术中为在业务支撑系统与业务系统实时同步数据,往往采用外部软件作为搬运工,外部软件访问业务支撑系统的数据库,获取需要实时同步的数据,再将需要实时同步的数据发送至业务系统。
4.然而,外部软件的引入具有暴露数据库内部信息的风险,安全隐患大。同时,外部软件的转发过程耗时久,为数据实时同步带来难以避免的延时,造成业务支撑系统与业务系统间数据同步的实时性不足。
5.因此,引入外部软件协助实现业务支撑系统与业务系统间数据同步的技术方案,并不能满足数据同步所需要的实时性和安全性,如何安全快捷地实现业务支撑系统与业务系统间的数据同步,成为目前亟待解决的技术问题。
技术实现要素:
6.本技术实施例提供了一种数据同步方法及装置、电子设备和计算机可读存储介质,旨在解决相关技术中通过外部软件协助实现业务支撑系统与业务系统间数据同步时不能满足数据同步所需要的实时性和安全性的技术问题。
7.第一方面,本技术实施例提供了一种数据同步方法,包括:在以java语言构建的业务支撑系统中,动态拦截具有预设注解信息的调用中业务方法,所述预设注解信息设置在所述调用中业务方法中待同步数据的关联位置处,用于对所述待同步数据进行标识;响应于所述调用中业务方法被动态拦截,基于所述调用中业务方法的所述预设注解信息,获取所述待同步数据;将所述待同步数据转换为指定数据格式的目标同步数据;将所述目标同步数据同步至第三方业务系统,其中,所述第三方业务系统与所述业务支撑系统经数据传输接口通信。
8.在本技术的实施例中,可选地,所述动态拦截具有预设注解信息的调用中业务方法,包括:使用spring aop后置动态拦截具有所述预设注解信息的所述调用中业务方法。
9.在本技术的实施例中,可选地,所述动态拦截具有预设注解信息的调用中业务方法,包括:对于所述业务支撑系统中的任一业务方法,为所述业务方法设置hook函数,所述hook函数用于在所述业务方法被实时调用时检测所述业务方法是否具有所述预设注解信息;响应于所述业务方法被实时调用,调用所述hook函数检测所述业务方法是否具有所述预设注解信息;若所述业务方法具有所述预设注解信息,对所述业务方法进行拦截,以获取
所述预设注解信息。
10.在本技术的实施例中,可选地,所述预设注解信息包括以下一项或多项:待同步的数据操作类型、待同步的数据库表名称、待同步的主键名称、待同步的记录类型和待同步的支持springel的主键表达式;所述基于所述调用中业务方法的所述预设注解信息,获取所述待同步数据,包括:将所述预设注解信息所标识的数据操作类型、数据库表、主键、记录类型和主键表达式中的一项或多项确定为所述待同步数据,并在所述业务支撑系统对应的数据库中获取所述待同步数据。
11.在本技术的实施例中,可选地,所述将所述待同步数据转换为指定数据格式的目标同步数据,包括:将所述待同步数据转换为json格式或xml格式的目标同步数据。
12.在本技术的实施例中,可选地,所述将所述目标同步数据同步至第三方业务系统,包括:广播数据同步消息,以供所述第三方业务系统根据获取到的所述数据同步消息获取所述目标同步数据。
13.在本技术的实施例中,可选地,所述将所述目标同步数据同步至第三方业务系统,包括:通过消息事件总线调用所述第三方业务系统与所述业务支撑系统的所述数据传输接口,将所述目标同步数据发送至所述第三方业务系统。
14.第二方面,本技术实施例提供了一种数据同步装置,包括:业务方法动态拦截单元,用于在以java语言构建的业务支撑系统中,动态拦截具有预设注解信息的调用中业务方法,所述预设注解信息设置在所述调用中业务方法中待同步数据的关联位置处,用于对所述待同步数据进行标识;待同步数据获取单元,用于响应于所述调用中业务方法被动态拦截,基于所述调用中业务方法的所述预设注解信息,获取所述待同步数据;数据格式转换单元,用于将所述待同步数据转换为指定数据格式的目标同步数据;数据同步单元,用于将所述目标同步数据同步至第三方业务系统,其中,所述第三方业务系统与所述业务支撑系统经数据传输接口通信。
15.在本技术的实施例中,可选地,所述业务方法动态拦截单元用于:使用spring aop后置动态拦截具有所述预设注解信息的所述调用中业务方法。
16.在本技术的实施例中,可选地,所述业务方法动态拦截单元用于:对于所述业务支撑系统中的任一业务方法,为所述业务方法设置hook函数,所述hook函数用于在所述业务方法被实时调用时检测所述业务方法是否具有所述预设注解信息;响应于所述业务方法被实时调用,调用所述hook函数检测所述业务方法是否具有所述预设注解信息;若所述业务方法具有所述预设注解信息,对所述业务方法进行拦截,以获取所述预设注解信息。
17.在本技术的实施例中,可选地,所述预设注解信息包括以下一项或多项:待同步的数据操作类型、待同步的数据库表名称、待同步的主键名称、待同步的记录类型和待同步的支持springel的主键表达式;所述待同步数据获取单元用于:将所述预设注解信息所标识的数据操作类型、数据库表、主键、记录类型和主键表达式中的一项或多项确定为所述待同步数据,并在所述业务支撑系统对应的数据库中获取所述待同步数据。
18.在本技术的实施例中,可选地,所述数据格式转换单元用于:将所述待同步数据转换为json格式或xml格式的目标同步数据。
19.在本技术的实施例中,可选地,所述数据同步单元用于:广播数据同步消息,以供所述第三方业务系统根据获取到的所述数据同步消息获取所述目标同步数据。
20.在本技术的实施例中,可选地,所述数据同步单元用于:通过消息事件总线调用所述第三方业务系统与所述业务支撑系统的所述数据传输接口,将所述目标同步数据发送至所述第三方业务系统。
21.第三方面,本技术实施例提供了一种电子设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被设置为用于执行上述第一方面所述的方法。
22.第四方面,本技术实施例提供了一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行上述第一方面所述的方法。
23.以上技术方案,针对相关技术中通过外部软件协助实现业务支撑系统与业务系统间数据同步时,不能满足数据同步所需要的实时性和安全性的技术问题,首先,在以java语言构建的业务支撑系统中,动态拦截具有预设注解信息的调用中业务方法。
24.以java语言构建的业务支撑系统用于为第三方业务系统提供数据支持,其数据库内存储有第三方业务系统所需的数据,同时,业务支撑系统可基于接收到的数据变更操作,对数据库内的数据进行变更。这一数据变更操作包括但不限于数据的增加、删减、修改等。
25.具体来说,业务支撑系统一旦执行数据变更操作,说明其数据库内的数据会相应发生变化。同时,第三方业务系统只有使用变更后的数据执行业务操作,才能获得可靠有效的业务执行结果。因此,需要实时将变更后的数据同步至第三方业务系统,保证第三方业务系统工作的有效性。
26.在此基础上,由于业务支撑系统在执行数据变更操作时,会调用业务方法,故可在业务方法的代码底层中预先设置埋点。进一步地,将埋点设置在数据变更操作所涉及的发生变更的数据处。这样,若业务支撑系统在执行数据变更操作过程中调用该业务方法,就会触及该埋点。触及该埋点,即说明该埋点处的数据需要被同步至第三方业务系统。
27.进一步地,该埋点为预设注解信息。因此,所述预设注解信息设置在所述调用中业务方法中待同步数据的关联位置处,用于对所述待同步数据进行标识。待同步数据具有预设注解信息作为标识,动态拦截具有预设注解信息的调用中业务方法,是用于进一步获取该预设注解信息所标识的数据,以便将这些数据同步至第三方业务系统。
28.接下来,响应于所述调用中业务方法被动态拦截,基于所述调用中业务方法的所述预设注解信息,获取所述待同步数据。
29.一旦动态拦截到具有预设注解信息的调用中业务方法,即说明该预设注解信息所标识的数据需要被同步至第三方业务系统。因此,需要获取预设注解信息标识的待同步数据。
30.预设注解信息作为待同步数据的标识,至少反映了待同步数据的名称、类型、表达内容等能够代表待同步数据的实质内容或能够表明待同步数据的存储位置的信息。因此,可结合预设注解信息在业务支撑系统的数据库中定位待同步数据,以便将待同步数据同步至第三方业务系统。
31.进一步地,将所述待同步数据转换为指定数据格式的目标同步数据。
32.由于业务支撑数据和第三方业务系统的数据类型未必统一,为提升本技术的数据共享方法的数据格式兼容性,可将待同步数据转换为第三方业务系统的指定数据格式的目标同步数据,以便于第三方业务系统使用。
33.最终,将进行格式转换后的、适应第三方业务系统的目标同步数据提供给第三方业务系统。其中,所述第三方业务系统与所述业务支撑系统经数据传输接口通信。
34.通过以上技术方案,取消了外部软件的引入,使业务支撑系统与业务系统间直接进行数据同步,可避免外部软件泄露数据库信息,降低了数据同步的安全风险。同时,摒弃外部软件的协助,使业务支撑系统与业务系统直接传输数据,避免了外部软件转发数据带来的延时,可有效提升业务支撑系统与业务系统间数据同步的实时性,对业务系统的工作效率和可靠程度均有提升。
附图说明
35.为了更清楚地说明本技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
36.图1示出了根据本技术的一个实施例的数据同步方法的流程图;图2示出了根据本技术的另一个实施例的数据同步方法的流程图;图3示出了根据本技术的再一个实施例的数据同步方法的流程图;图4示出了根据本技术的又一个实施例的数据同步方法的流程图;图5示出了根据本技术的一个实施例的数据同步装置的框图;图6示出了根据本技术的一个实施例的电子设备的框图。
具体实施方式
37.相关技术中为在业务支撑系统与业务系统实时同步数据,往往采用外部软件作为搬运工,外部软件访问业务支撑系统的数据库,获取需要实时同步的数据,再将需要实时同步的数据发送至业务系统。然而,外部软件的引入具有暴露数据库内部信息的风险,安全隐患大。同时,外部软件的转发过程耗时久,为数据实时同步带来难以避免的延时,造成业务支撑系统与业务系统间数据同步的实时性不足。
38.对此,本技术的技术方案中,取消了外部软件的引入,使业务支撑系统与业务系统间直接进行数据同步,可避免外部软件泄露数据库信息,降低了数据同步的安全风险。同时,摒弃外部软件的协助,使业务支撑系统与业务系统直接传输数据,避免了外部软件转发数据带来的延时,可有效提升业务支撑系统与业务系统间数据同步的实时性,对业务系统的工作效率和可靠程度均有提升。
39.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
40.实施例一图1示出了根据本技术的一个实施例的数据同步方法的流程图。
41.如图1所示,根据本技术的一个实施例的数据同步方法包括:步骤102,在以java语言构建的业务支撑系统中,动态拦截具有预设注解信息的调用中业务方法。
42.以java语言构建的业务支撑系统用于为第三方业务系统提供数据支持,其数据库内存储有第三方业务系统所需的数据,同时,业务支撑系统可基于接收到的数据变更操作,对数据库内的数据进行变更。这一数据变更操作包括但不限于数据的增加、删减、修改等。
43.具体来说,业务支撑系统一旦执行数据变更操作,说明其数据库内的数据会相应发生变化。同时,第三方业务系统只有使用变更后的数据执行业务操作,才能获得可靠有效的业务执行结果。因此,需要实时将变更后的数据同步至第三方业务系统,保证第三方业务系统工作的有效性。
44.在此基础上,由于业务支撑系统在执行数据变更操作时,会调用业务方法,故可在业务方法的代码底层中预先设置埋点。进一步地,将埋点设置在数据变更操作所涉及的发生变更的数据处。这样,若业务支撑系统在执行数据变更操作过程中调用该业务方法,就会触及该埋点。触及该埋点,即说明该埋点处的数据需要被同步至第三方业务系统。
45.进一步地,该埋点为预设注解信息。
46.因此,所述预设注解信息设置在所述调用中业务方法中待同步数据的关联位置处,用于对所述待同步数据进行标识。
47.在一种可能的设计中,待同步数据的关联位置指的是调用中业务方法的底层代码中待同步数据前或后、与该待同步数据的距离为指定距离的代码位置。
48.例如,将预设注解信息设置在待同步数据后,并设置指定距离为0,即将预设注解信息紧邻待同步数据其后。
49.再例如,将预设注解信息设置在待同步数据后,并设置指定距离为三个空字符,即将预设注解信息设置在待同步数据后,并在待同步数据和预设注解信息之间设置三个空字符。
50.再例如,将预设注解信息设置在待同步数据后,并设置指定距离为一行,即将预设注解信息设置在待同步数据后的下一行。
51.总之,待同步数据具有预设注解信息作为标识,动态拦截具有预设注解信息的调用中业务方法,是用于进一步获取该预设注解信息所标识的数据,以便将这些数据同步至第三方业务系统。
52.步骤104,响应于所述调用中业务方法被动态拦截,基于所述调用中业务方法的所述预设注解信息,获取所述待同步数据。
53.一旦动态拦截到具有预设注解信息的调用中业务方法,即说明该预设注解信息所标识的数据需要被同步至第三方业务系统。因此,需要获取预设注解信息标识的待同步数据。
54.预设注解信息作为待同步数据的标识,至少反映了待同步数据的名称、类型、表达内容等能够代表待同步数据的实质内容或能够表明待同步数据的存储位置的信息。因此,可结合预设注解信息在业务支撑系统的数据库中定位待同步数据,以便将待同步数据同步至第三方业务系统。
55.在一种可能的设计中,所述预设注解信息包括以下一项或多项:待同步的数据操作类型、待同步的数据库表名称、待同步的主键名称、待同步的记录类型和待同步的支持springel的主键表达式。
56.其中,待同步的数据操作类型指的是对待同步数据进行数据变更操作的操作类
型,包括但不限于增加、删除、修改等。待同步的数据库表名称指的是待同步数据所在的或者所包含的、需要被同步至第三方业务系统的数据库表的名称。待同步的主键名称指的是待同步数据所在的或者所包含的、需要被同步至第三方业务系统的数据库表中的主键名称。待同步的记录类型指的是待同步数据是单条还是多条。待同步的支持springel的主键表达式指的是数据库表中的主键的描述方式。其中,springel是一种通过运行期间执行的表达式将值装配到指定属性或函数中的方式,尤其适用于动态场景。
57.当然,所述预设注解信息不限于上述示例,还可以是任何其他能够反映待同步数据的的实质内容或能够表明待同步数据的存储位置的信息。
58.在一种可能的设计中,步骤104包括:将所述预设注解信息所标识的数据操作类型、数据库表、主键、记录类型和主键表达式中的一项或多项确定为所述待同步数据,并在所述业务支撑系统对应的数据库中获取所述待同步数据。也就是说,通过所述预设注解信息中的待同步的数据操作类型、待同步的数据库表名称、待同步的主键名称、待同步的记录类型和待同步的支持springel的主键表达式等内容,在业务支撑系统的数据库中定位对应的数据操作类型、数据库表、主键、记录类型和主键表达式,以达到获取待共享数据的目的。
59.步骤106,将所述待同步数据转换为指定数据格式的目标同步数据。
60.由于业务支撑数据和第三方业务系统的数据类型未必统一,为提升本技术的数据共享方法的数据格式兼容性,可将待同步数据转换为第三方业务系统的指定数据格式的目标同步数据,以便于第三方业务系统使用。
61.在一种可能的设计中,将所述待同步数据转换为json格式或xml格式的目标同步数据。
62.步骤108,将所述目标同步数据同步至第三方业务系统。最终,将进行格式转换后的、适应第三方业务系统的目标同步数据提供给第三方业务系统。
63.其中,所述第三方业务系统与所述业务支撑系统经数据传输接口通信。
64.在一种可能的设计中,数据传输接口为rest接口。其中,rest接口具有支撑前端与后端通信的功能,而业务支撑系统作为第三方业务系统的数据提供方,正是作为第三方业务系统的后端。由此,采用rest接口可保证业务支撑系统与第三方业务系统的顺利通信。
65.通过以上技术方案,取消了外部软件的引入,使业务支撑系统与业务系统间直接进行数据同步,可避免外部软件泄露数据库信息,降低了数据同步的安全风险。同时,摒弃外部软件的协助,使业务支撑系统与业务系统直接传输数据,避免了外部软件转发数据带来的延时,可有效提升业务支撑系统与业务系统间数据同步的实时性,对业务系统的工作效率和可靠程度均有提升。
66.需要补充是是,在一种可能的设计中,可直接在以java语言构建的业务支撑系统底层设置动态拦截功能,以在业务支撑系统的工作过程中自动拦截具有预设注解信息的调用中业务方法,以及使业务支撑系统与业务系统间直接进行数据同步。
67.在另一种可能的设计中,可将动态拦截功能以及基于预设注解信息获取待同步数据并分享的功能集成为依赖包,将依赖包以插件的形式植入业务支撑系统。这样,既能够实现业务支撑系统与业务系统间的直接数据同步,也能够不剧增业务支撑系统的体量,节省资源。
68.实施例二在实施例一的基础上,图2示出了根据本技术的另一个实施例的数据同步方法的流程图。
69.如图2所示,根据本技术的另一个实施例的数据同步方法包括:步骤202,在以java语言构建的业务支撑系统中,使用spring aop后置动态拦截(@afterreturning)具有预设注解信息的调用中业务方法,所述预设注解信息设置在所述调用中业务方法中待同步数据的关联位置处,用于对所述待同步数据进行标识。
70.spring aop是spring框架提供的一种切面编程实现方式,用于在业务支撑系统运行期间动态地将额外的行为植入到业务支撑系统的现有代码中。具体地,通过spring aop将拦截具有预设注解信息的调用中业务方法这一行为,植入到业务支撑系统的现有代码中。这样一来,即可在业务支撑系统的工作过程中,动态拦截具有预设注解信息的调用中业务方法,以便进一步获取该预设注解信息并基于该预设注解信息获取待同步数据。
71.步骤204,响应于所述调用中业务方法被动态拦截,基于所述调用中业务方法的所述预设注解信息,获取所述待同步数据。
72.步骤206,将所述待同步数据转换为指定数据格式的目标同步数据。
73.步骤208,将所述目标同步数据同步至第三方业务系统,其中,所述第三方业务系统与所述业务支撑系统经数据传输接口通信。
74.在一种可能的设计中,可广播数据同步消息,以供所述第三方业务系统根据获取到的所述数据同步消息获取所述目标同步数据。
75.业务支撑系统广播数据同步消息,第三方业务系统通过接听广播,获得该数据同步消息。其中,该数据同步消息中包括预设注解信息或基于所述预设注解信息在业务支撑系统的数据库中定位待共享数据的位置信息。接下来,第三方业务系统基于预设注解信息在业务支撑系统的数据库中定位待共享数据,或直接基于待共享数据的位置信息在业务支撑系统的数据库中获取该待共享数据。
76.以上技术方案,通过使用spring aop后置动态拦截,可为待共享数据添加自定义注解,即添加预设注解信息,以便根据预设注解信息内的参数信息等内容从业务支撑系统的数据库中获取待同步数据。由此,在实现业务支撑系统与业务系统间直接进行数据同步的同时,提升了待同步数据获取的便利性,有助于第三方业务系统的业务工作高效进行。
77.实施例三在实施例一的基础上,图3示出了根据本技术的再一个实施例的数据同步方法的流程图。
78.如图3所示,根据本技术的再一个实施例的数据同步方法包括:步骤302,对于业务支撑系统中的任一业务方法,为所述业务方法设置hook函数,所述hook函数用于在所述业务方法被实时调用时检测所述业务方法是否具有所述预设注解信息。
79.步骤304,响应于所述业务方法被实时调用,调用所述hook函数检测所述业务方法是否具有所述预设注解信息。
80.hook函数用于充当原有的业务方法的代理对象,为业务方法设置hook函数后,当业务支撑系统需要调用业务方法时,会直接调用hook函数。在hook函数用于在所述业务方
法被实时调用时检测所述业务方法是否具有所述预设注解信息这一基础之上,当业务支撑系统需要调用业务方法时,直接调用hook函数,即可检测出所述业务方法是否具有所述预设注解信息。
81.步骤306,若所述业务方法具有所述预设注解信息,对所述业务方法进行拦截,以获取所述预设注解信息,其中,所述预设注解信息设置在所述调用中业务方法中待同步数据的关联位置处,用于对所述待同步数据进行标识。
82.在所述业务方法具有所述预设注解信息的情况下,即可通过对所述业务方法进行拦截获取该预设注解信息。
83.在一种可能的设计中,上述的拦截,可以是在检测到所述业务方法具有预设注解信息后直接截取预设注解信息。
84.在另一种可能的设计中,可设置hook函数在具有检测所述业务方法是否具有所述预设注解信息这一功能的同时,还具有所述业务方法的原功能。此时,被出发的hook函数即为调用中的方法。此时,上述的拦截,可以是使用spring aop后置动态拦截hook函数,以通过hook函数定位原有的业务方法,并进一步根据原有的业务方法的预设注解信息,获取待共享数据。
85.步骤308,响应于所述业务方法被动态拦截,基于所述调用中业务方法的所述预设注解信息,获取所述待同步数据。
86.步骤310,将所述待同步数据转换为指定数据格式的目标同步数据。
87.步骤312,将所述目标同步数据同步至第三方业务系统,其中,所述第三方业务系统与所述业务支撑系统经数据传输接口通信。
88.在一种可能的设计中,可通过消息事件总线调用所述第三方业务系统与所述业务支撑系统的所述数据传输接口,将所述目标同步数据发送至所述第三方业务系统。
89.每当业务方法被动态拦截,或者说每当获取一次目标同步数据,即可新建一个数据共享任务,放置在消息事件总线中。第三方业务系统通过访问消息事件总线,即可获取该数据共享任务,并调用数据传输接口执行该数据共享任务。这一数据共享任务即获取待共享数据。
90.以上技术方案,可通过hook方式或将hook与spring aop后置动态拦截相结合的方式,动态识别数据变更操作所涉及的预设注解信息,并进一步根据预设注解信息获取待共享数据。由此,在实现业务支撑系统与业务系统间直接进行数据同步的同时,能够高效便捷地获取待同步数据,提升数据同步的实时性,有助于第三方业务系统的业务工作高效进行。
91.实施例四在实施例一至三的基础上,图4示出了根据本技术的又一个实施例的数据同步方法的流程图。
92.如图4所示,在资产安全管理系统中,动态拦截业务方法。接着,基于业务方法底层代码中的预设注解信息,获取同步数据。进一步地,将同步数据发送到消息总线,作为一个数据共享任务,排入消息队列。
93.相应地,在用于工作流程审批的业务系统中,通过访问消息队列获取数据共享任务。进一步地,在获得数据共享任务后,该系统接收同步数据的数据报文,并将其转换为自身所需的数据,实现同步数据的落地。
94.在上述任一实施例中,需要补充的是,业务支撑系统和第三方业务系统可采用消息中间件实现异步通信。
95.在一种可能的设计中,业务支撑系统可与单个第三方业务系统同时同步多种协议的数据,即业务支撑系统与单个第三方业务系统间的自动数据共享可多线程进行,且每个线程可用于传输不同类型的数据。
96.在另一种可能的设计中,业务支撑系统可与多个第三方业务系统同时进行数据同步,即业务支撑系统与多个第三方业务系统同时建立通信,实现一对多的数据共享支撑。
97.在再一种可能的设计中,业务支撑系统可与多个第三方业务系统中的每个系统均同时同步多种协议的数据,即业务支撑系统与多个第三方业务系统同时建立通信,实现一对多的数据共享支撑的同时,还能够支持对每个第三方业务系统的多协议数据共享。
98.图5示出了根据本技术的一个实施例的数据同步装置的框图。
99.如图5所示,根据本技术的一个实施例的数据同步装置500包括:业务方法动态拦截单元502,用于在以java语言构建的业务支撑系统中,动态拦截具有预设注解信息的调用中业务方法,所述预设注解信息设置在所述调用中业务方法中待同步数据的关联位置处,用于对所述待同步数据进行标识;待同步数据获取单元504,用于响应于所述调用中业务方法被动态拦截,基于所述调用中业务方法的所述预设注解信息,获取所述待同步数据;数据格式转换单元506,用于将所述待同步数据转换为指定数据格式的目标同步数据;数据同步单元508,用于将所述目标同步数据同步至第三方业务系统,其中,所述第三方业务系统与所述业务支撑系统经数据传输接口通信。
100.在本技术的实施例中,可选地,所述业务方法动态拦截单元502用于:使用spring aop后置动态拦截具有所述预设注解信息的所述调用中业务方法。
101.在本技术的实施例中,可选地,所述业务方法动态拦截单元502用于:对于所述业务支撑系统中的任一业务方法,为所述业务方法设置hook函数,所述hook函数用于在所述业务方法被实时调用时检测所述业务方法是否具有所述预设注解信息;响应于所述业务方法被实时调用,调用所述hook函数检测所述业务方法是否具有所述预设注解信息;若所述业务方法具有所述预设注解信息,对所述业务方法进行拦截,以获取所述预设注解信息。
102.在本技术的实施例中,可选地,所述预设注解信息包括以下一项或多项:待同步的数据操作类型、待同步的数据库表名称、待同步的主键名称、待同步的记录类型和待同步的支持springel的主键表达式;所述待同步数据获取单元504用于:将所述预设注解信息所标识的数据操作类型、数据库表、主键、记录类型和主键表达式中的一项或多项确定为所述待同步数据,并在所述业务支撑系统对应的数据库中获取所述待同步数据。
103.在本技术的实施例中,可选地,所述数据格式转换单元506用于:将所述待同步数据转换为json格式或xml格式的目标同步数据。
104.在本技术的实施例中,可选地,所述数据同步单元508用于:广播数据同步消息,以供所述第三方业务系统根据获取到的所述数据同步消息获取所述目标同步数据。
105.在本技术的实施例中,可选地,所述数据同步单元508用于:通过消息事件总线调用所述第三方业务系统与所述业务支撑系统的所述数据传输接口,将所述目标同步数据发送至所述第三方业务系统。
106.该数据同步装置500使用上述实施例中任一项所述的方案,因此,具有上述所有技
术效果,在此不再赘述。
107.图6示出了根据本技术的一个实施例的电子设备的框图。
108.如图6所示,本技术的一个实施例的电子设备600,包括至少一个存储器602;以及,与所述至少一个存储器602通信连接的处理器604;其中,所述存储器存储有可被所述至少一个处理器604执行的指令,所述指令被设置为用于执行上述任一实施例中所述的方案。因此,该电子设备600具有和上述任一实施例中相同的技术效果,在此不再赘述。
109.本技术实施例的电子设备以多种形式存在,包括但不限于:(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iphone)、多媒体手机、功能性手机,以及低端手机等。
110.(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:pda、mid和umpc设备等,例如ipad。
111.(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如ipod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
112.(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
113.(5)其他具有数据交互功能的电子装置。
114.另外,本技术实施例提供了一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行以下步骤:在以java语言构建的业务支撑系统中,动态拦截具有预设注解信息的调用中业务方法,所述预设注解信息设置在所述调用中业务方法中待同步数据的关联位置处,用于对所述待同步数据进行标识;响应于所述调用中业务方法被动态拦截,基于所述调用中业务方法的所述预设注解信息,获取所述待同步数据;将所述待同步数据转换为指定数据格式的目标同步数据;将所述目标同步数据同步至第三方业务系统,其中,所述第三方业务系统与所述业务支撑系统经数据传输接口通信。
115.需要说明的是,上述关于计算机可读存储介质或电子设备所能实现的功能或步骤,可对应参阅前述方法实施例中的相关描述,为避免重复,这里不再一一描述。
116.以上结合附图详细说明了本技术的技术方案,通过本技术的技术方案,取消了外部软件的引入,使业务支撑系统与业务系统间直接进行数据同步,可避免外部软件泄露数据库信息,降低了数据同步的安全风险。同时,摒弃外部软件的协助,使业务支撑系统与业务系统直接传输数据,避免了外部软件转发数据带来的延时,可有效提升业务支撑系统与业务系统间数据同步的实时性,对业务系统的工作效率和可靠程度均有提升。
117.取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
118.在本技术实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本技术。在本技术实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
119.在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
120.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
121.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink) dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
122.以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
技术特征:
1.一种数据同步方法,其特征在于,包括:在以java语言构建的业务支撑系统中,动态拦截具有预设注解信息的调用中业务方法,所述预设注解信息设置在所述调用中业务方法中待同步数据的关联位置处,用于对所述待同步数据进行标识;响应于所述调用中业务方法被动态拦截,基于所述调用中业务方法的所述预设注解信息,获取所述待同步数据;将所述待同步数据转换为指定数据格式的目标同步数据;将所述目标同步数据同步至第三方业务系统,其中,所述第三方业务系统与所述业务支撑系统经数据传输接口通信。2.根据权利要求1所述的数据同步方法,其特征在于,所述动态拦截具有预设注解信息的调用中业务方法,包括:使用spring aop后置动态拦截具有所述预设注解信息的所述调用中业务方法。3.根据权利要求1所述的数据同步方法,其特征在于,所述动态拦截具有预设注解信息的调用中业务方法,包括:对于所述业务支撑系统中的任一业务方法,为所述业务方法设置hook函数,所述hook函数用于在所述业务方法被实时调用时检测所述业务方法是否具有所述预设注解信息;响应于所述业务方法被实时调用,调用所述hook函数检测所述业务方法是否具有所述预设注解信息;若所述业务方法具有所述预设注解信息,对所述业务方法进行拦截,以获取所述预设注解信息。4.根据权利要求1至3中任一项所述的数据同步方法,其特征在于,所述预设注解信息包括以下一项或多项:待同步的数据操作类型、待同步的数据库表名称、待同步的主键名称、待同步的记录类型和待同步的支持springel的主键表达式;所述基于所述调用中业务方法的所述预设注解信息,获取所述待同步数据,包括:将所述预设注解信息所标识的数据操作类型、数据库表、主键、记录类型和主键表达式中的一项或多项确定为所述待同步数据,并在所述业务支撑系统对应的数据库中获取所述待同步数据。5.根据权利要求1所述的数据同步方法,其特征在于,所述将所述待同步数据转换为指定数据格式的目标同步数据,包括:将所述待同步数据转换为json格式或xml格式的目标同步数据。6.根据权利要求1所述的数据同步方法,其特征在于,所述将所述目标同步数据同步至第三方业务系统,包括:广播数据同步消息,以供所述第三方业务系统根据获取到的所述数据同步消息获取所述目标同步数据。7.根据权利要求1所述的数据同步方法,其特征在于,所述将所述目标同步数据同步至第三方业务系统,包括:通过消息事件总线调用所述第三方业务系统与所述业务支撑系统的所述数据传输接口,将所述目标同步数据发送至所述第三方业务系统。
8.一种数据同步装置,其特征在于,包括:业务方法动态拦截单元,用于在以java语言构建的业务支撑系统中,动态拦截具有预设注解信息的调用中业务方法,所述预设注解信息设置在所述调用中业务方法中待同步数据的关联位置处,用于对所述待同步数据进行标识;待同步数据获取单元,用于响应于所述调用中业务方法被动态拦截,基于所述调用中业务方法的所述预设注解信息,获取所述待同步数据;数据格式转换单元,用于将所述待同步数据转换为指定数据格式的目标同步数据;数据同步单元,用于将所述目标同步数据同步至第三方业务系统,其中,所述第三方业务系统与所述业务支撑系统经数据传输接口通信。9.一种电子设备,其特征在于,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被设置为用于执行上述权利要求1至7中任一项所述的方法。10.一种计算机可读存储介质,其特征在于,存储有计算机可执行指令,所述计算机可执行指令用于执行如权利要求1至7中任一项所述的方法。
技术总结
本申请提出了一种数据同步方法及装置、电子设备和计算机可读存储介质,该方法包括:在以Java语言构建的业务支撑系统中,动态拦截具有预设注解信息的调用中业务方法,所述预设注解信息设置在所述调用中业务方法中待同步数据的关联位置处,用于对所述待同步数据进行标识;响应于所述调用中业务方法被动态拦截,基于所述调用中业务方法的所述预设注解信息,获取所述待同步数据;将所述待同步数据转换为指定数据格式的目标同步数据;将所述目标同步数据同步至第三方业务系统。本技术方案,使业务支撑系统与业务系统间直接进行数据同步,降低了数据同步的安全风险,也避免了外部软件转发数据带来的延时。数据带来的延时。数据带来的延时。
技术研发人员:冯振平 李刚 王银龙 刘路阳 陈帅
受保护的技术使用者:上海观安信息技术股份有限公司
技术研发日:2023.06.15
技术公布日:2023/7/22
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/