一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种异步接口的多系统通用数据变更方法与流程

2022-07-31 02:16:44 来源:中国专利 TAG:


1.本技术涉及多系统环境下数据交互技术领域,尤其涉及一种异步接口的多系统通用数据变更方法。


背景技术:

2.随着智能化的普及,在不同使用场景下会有不同的业务需求,根据业务特点进行定制化开发,则需要与多个系统进行对接。若时序上没有严格关系,主线程逻辑不受影响,或所需操作相对耗时的使用场景下,开发者通常选择使用异步接口进行数据间的交互。
3.在实际场景下的系统开发过程中,多系统间对接的方式有多种,例如esb、web service等,但是在多系统的信息传递过程中,当数据进行变更时,老数据的处理及新数据的录入使变更后数据的完整性和一致性关系难以保障。
4.因此,亟待一种适用于异步接口的多系统通用数据变更方法。


技术实现要素:

5.本技术提供了一种异步接口的多系统通用数据变更方法,以解决现有技术中,对异步接口的多系统通用数据进行变更时,数据的校验数据完整性和一致性难以保障的问题。
6.本技术提供了一种异步接口的多系统通用数据变更方法,包括:
7.根据数据变更请求,对发送端主库表进行数据更新,将更新后的发送端主库表发送至发送端接口表,使发送端接口表进行数据更新,发送端接口表中增加有数据字段信息;
8.接收端系统与发送端系统的数据发送时间是否有重合,如果时间重合,则根据发送端接口表字段信息,判断发送端接口表数据更新是否完整;若时间不重合,则直接进入下一步骤;
9.通过异步接口的中间件将更新后的发送端接口表发送至接收端接口表,使接收端接口表与发送端接口表进行同步数据更新,接收端接口表中增加有数据字段信息;
10.根据接收端接口表的数据字段信息,判断接收端接口表的数据更新是否完整;
11.若接收端接口表的数据更新完整性,则接收端主库表进行数据更新。
12.一些实施例中,所述异步接口的多系统通用数据变更方法包括:
13.构建发送端接口表以及接收端接口表,所述发送端接口表与接收端接口表中均增加有数据字段信息,其中,所述数据字段信息包括pk_id、pk_id_d、mtc_sts、mtc_no、qty、flag以及date;
14.其中,pk_id为数据唯一标识;
15.pk_id_d为当pk_id变更时,储存变更前的pk_id;
16.mtc_no为数据编号,即表中接收到的数据的编号;
17.qty为发送数据条数,即发送端主库表中mtc_no所记录的实际最大编号数;
18.mtc_sts为数据更改操作字段,用于为数据变更提供判断依据;
19.flag为标记位,即标识是否已将更新数据传送至下一数据表;
20.date为数据编辑时间,包括数据发送/创建/批改时间。
21.一些实施例中,根据接收端接口表的数据字段信息,判断接收端接口表的数据更新是否完整,具体判断过程包括:
22.判定接收端接口表的qty值与mtc_no所记录的实际最大编号数是否相同;
23.若不相同,则判定接收端接口表的数据更新不完整;
24.若相同,则判断每条数据是否为空,若至少一个数据为空,则判定接收端接口表的数据更新不完整;
25.若所有数据均不为空,则判定接收端接口表的数据更新完整。
26.一些实施例中,根据发送端接口表的数据字段信息,判断发送端接口表的数据更新是否完整,具体判断过程包括:
27.发送端接口表的数据字段信息包括数据编号mtc_no与数据条数qty;
28.判定发送端接口表的qty与mtc_no所记录的实际最大编号数是否相同;
29.若不相同,则判定发送端接口表的数据更新不完整;
30.若相同,则判断每条数据是否为空,若至少一个数据为空,则判定发送端接口表的数据更新不完整;
31.若所有数据均不为空,则判定发送端接口表的数据更新完整。
32.一些实施例中,所述的异步接口的多系统通用数据变更方法,还包括:
33.若接收端接口表的数据更新完整性,则将更新后的接收端接口表发送至接收端主库表,并将接收端接口表中的flag由“0”变更为“1”,其中,flag为0,表示接收端接口表未将更新数据传送至下接收端主库表;若flag为1,表示接收端接口表已将更新数据传送至下接收端主库表。
34.一些实施例中,发送端主库表、发送端接口表、接收端接口表或接收端主库表的数据更新过程包括:
35.根据数据更改请求,判定pk_id是否发生修改,若不发生修改,则利用接收端接口表的数据更改操作mtc_sts,对表中数据进行增/删/修改处理,具体包括,当mtc_sts为c时,执行数据插入操作;当mtc_sts为u时,执行数据更新操作;当mtc_sts为d时,执行数据删除操作;
36.若发生修改,则先执行mtc_sts为c时的数据插入操作,即pk_id更为新的数据唯一标识,pk_id_d保存被删除数据中的pk_id;再执行mtc_sts为d时的数据删除操作。
37.一些实施例中,执行数据删除操作之前,还包括,检查数据的主逻辑结构是否满足删除条件。
38.一些实施例中,将更新后的发送端主库表发送至发送端接口表,具体包括,通过触发器、定时任务将更新后的发送端主库表发送至发送端接口表。
39.一些实施例中,所述的异步接口的多系统通用数据变更方法还包括,通过定时任务及触发器将更新后的接收端接口表发送至接收端主库表。
40.本技术提供一种异步接口的多系统通用数据变更方法,基于多系统环境下的数据交互,尤其适用于异步接口下的通用数据变更。本技术的方法使用基于在异步接口下进行多系统数据传输,在确保数据更新完整的情况下,才进行接收端主库表的数据更新,确保多
系统间数据变化一致性与完整性的问题,减少了软件开发和交付周期,提高开发效率。
附图说明
41.为了更清楚地说明本技术的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
42.图1为本技术适用的多系统的结构框图。
具体实施方式
43.在多系统的对接中,系统间数据变更导致的交互必然会出现,在变更数据接收的时候,如何有效的确保接收数据的完整性和一致性,尤其当接收端数据做唯一标识的主键也发生变化的时候,如何有效的去规避数据反复操作导致的时间重叠、数据混乱重复问题。
44.为解决上述问题,校验数据完整性和一致性,本专利公开了一种使用异步接口的多系统通用数据变更方法,该方法满足了在使用异步接口的多系统环境下,对通用数据的变更,减少了程序开发人员架构时间及代码开发量,缩短开发所需时间。
45.本技术的多系统使用异步接口的通用数据变更方法,适用于在异步接口下使用关系型数据库的系统。图1为本技术适用的多系统的结构框图,结合图1所示,该系统包括发送端、中间件以及接收端三部分,数据库发送端主库表创建接口表,数据库接收端接口表创建主库表,中间则是基于异步方式的接口。
46.本技术的应用于多系统使用异步接口的通用数据变更方法包括以下步骤:
47.步骤s100,构建发送端接口表与接收端接口表。所述发送端接口表与接收端接口表中均增加有数据字段信息,其中,所述数据字段信息包括pk_id、pk_id_d、mtc_sts、mtc_no、qty、flag以及date,其中,pk_id为数据唯一标识;pk_id_d为当pk_id变更时,储存变更前的pk_id;mtc_no为数据编号,即表中接收到的数据的编号;qty为发送数据条数,即发送端主库表中mtc_no所记录的实际最大编号数;mtc_sts为数据更改操作字段,用于为数据变更提供判断依据;flag为标记位,即标识是否已将更新数据传送至下一数据表;date为数据编辑时间,包括数据发送/创建/批改时间,当然,可以依据情况建立其他时间。
48.本实例中,在数据库发送端和接收端分别建立一主库表,分别为发送端主库表与接收端主库表;在数据库发送端和接收端分别建立一接口表,分别为发送端接口表与接收端接口表。在接收端的接口表中建立序列和读写规则,使接收端与发送端数据达成一致协议,发送端接口表与接收端接口表中均增加有数据字段信息。为便于说明数据库字段,对上述字段进行详细定义,表1为数据库字段的定义表。
49.应对说明,因是在多系统对接的条件下,发送端和接收端的主库表特指该端系统下完整存储信息的表,而发送端和接收端的接口表,则储存除本方法必须的字段外,仅带有所对接的某一个系统相关所需字段。也就是说,发送端主库表根据接收端系统所需传输内容提取对应内容,提取的该部分组成发送端接口表。且由多个不同的发送端系统发送,接收端系统则是多个对应各自发送端系统的接收端接口表数据来组成多个接收端接口表,传至接收端主库表后再由其本身的数据所组成的接收端主库表。
50.表1数据库字段的定义表
[0051][0052][0053]
步骤s200,接收数据更改请求,所述数据更改请求包括待更改数据条数以及每个待更改数据的变更属性信息,所述变更属性信息包括待更改数据内容、待更改数据操作。
[0054]
步骤s300,根据数据变更请求,对发送端主库表进行数据更新,将更新后的发送端主库表发送至发送端接口表,使发送端接口表进行数据更新。
[0055]
本技术中,发送端主库表、发送端接口表、接收端接收表或接收端主库表的数据更新过程包括:根据数据更改请求,判定pk_id是否发生修改,若不发生修改,则利用接收端接口表的数据更改操作mtc_sts,对表中数据进行增/删/修改处理,具体包括,当mtc_sts为c时,执行数据插入操作;当mtc_sts为u时,执行数据更新操作;当mtc_sts为d时,执行数据删除操作。若发生修改,则先执行mtc_sts为c时的数据插入操作,即pk_id更为新的数据唯一标识,pk_id_d保存被删除数据中的pk_id;再执行mtc_sts为d时的数据删除操作。本技术中,执行数据删除操作之前,还包括,检查数据的主逻辑结构是否满足删除条件。应当说明,下述中其他数据库的数据更新过程均与此处的实现过程相似,下述文中将不再进行赘述。
[0056]
以下通过一个具体实例的代码样例,说明数据更新过程。
[0057][0058]
本技术中,将更新后的发送端主库表发送至发送端接口表,具体包括,通过触发器、定时任务将更新后的发送端主库表发送至发送端接口表。
[0059]
步骤s400,接收端系统与发送端系统的数据发送时间是否有重合,即是否会出现刚好在同一时间既收到数据又发出数据的情况。
[0060]
如果时间重合,则根据发送端接口表字段信息,判断发送端接口表数据更新是否
完整;若时间不重合,则直接进入下一步骤。
[0061]
对于多个系统,每个系统发送数据一般都具有独自的数据发送时间,在每一个使用定时任务同步,或者经过中间件传输时,如果出现了时间重合,则需要在数据接收的那一端进行验证。
[0062]
为便于理解上述步骤,以实例进行说明。a发送端系统可能传输时间为10分,b发送端为5分,a和b系统的发送端接口表发送至中间件后,中间件同步的时间如果为10分钟一次,接收端接口表向接收端主库表传输数据的时候也是10分钟一次(此时会与a、b系统传输时间每间隔一段时间重合一次),如果这时出现中间件正在传输数据到接收端接口表,接收端接口没有校验,则会出现可能有4条数据刚传过来2条时就对接收端主库表进行传输,导致接收端主库表只收到2条数据。
[0063]
本技术中,根据发送端接口表的数据字段信息,判断发送端接口表的数据更新是否完整,具体判断过程包括:发送端接口表的数据字段信息包括数据编号mtc_no与数据条数qty;判定发送端接口表的qty与mtc_no所记录的实际最大编号数是否相同;若不相同,则判定发送端接口表的数据更新不完整;若相同,则判断每条数据是否为空,若至少一个数据为空,则判定发送端接口表的数据更新不完整;若所有数据均不为空,则判定发送端接口表的数据更新完整。
[0064]
对于多个系统的情况下,每个发送端系统发送的数据,以及每个接收端系统根据其系统所需的非空字段并不相同。上述判断每条数据是否为空,通常指的是接收端系统所需非空数据字段。
[0065]
为便于理解数据更新完整的判定过程,以下通过一个具体实例的代码样例,说明数据更新完整的判定过程。
[0066][0067]
另外,关于数据更新是否完整的判断方法,除上述记载的方法,还可利用date判断数据更新是否完整。date时间作为校验参考,可建立发送时间或同步时间,一般取发送时间但除部分特殊情况,不建议将时间作主要校验标准。如系统需要时间对比,因异步接口有时间延迟,数据发送时时间会有少许差别,同一批数据编号下数据可能出现时间不一致的情况,故以时间为校验标准有概率出现误差,但可以作为参考。以发送时间为例,当接收到的时间与发送端记录的发送时间对比大于48小时,及数据传输中可能有问题进行告警。
[0068]
步骤s500,通过异步接口的中间件将更新后的发送端接口表发送至接收端接口表,使接收端接口表与发送端接口表进行同步数据更新,接收端接口表中增加有数据字段信息。
[0069]
步骤s600,根据接收端接口表的数据字段信息,判断接收端接口表的数据更新是否完整。
[0070]
本技术中,根据接收端接口表的数据字段信息,判断接收端接口表的数据更新是否完整,具体判断过程包括:判定接收端接口表的qty与mtc_no所记录的实际最大编号数是否相同;若不相同,则判定接收端接口表的数据更新不完整;若相同,则判断每条数据是否为空,若至少一个数据为空,则判定接收端接口表的数据更新不完整;若所有数据均不为空,则判定接收端接口表的数据更新完整。
[0071]
步骤s700,若接收端接口表的数据更新完整性,则接收端主库表进行数据更新。
[0072]
若接收端接口表的数据更新完整性,则将更新后的接收端接口表发送至接收端主库表,接收端主库表进行数据更新。本技术中,通过定时任务及触发器将更新后的接收端接口表发送至接收端主库表。同时,接收端接口表中的flag由“0”变更为“1”,其中,flag为0,表示接收端接口表未将更新数据传送至下接收端主库表;若flag为1,表示接收端接口表已将更新数据传送至下接收端主库表。
[0073]
本技术提供一种异步接口的多系统通用数据变更方法,基于多系统环境下的数据交互,尤其适用于异步接口下的通用数据变更。本技术的方法使用基于在异步接口下进行多系统数据传输,在确保数据更新完整的情况下,才进行接收端主库表的数据更新,确保多系统间数据变化一致性与完整性的问题,减少了软件开发和交付周期,提高开发效率。本技术的方法满足了在使用异步接口的多系统环境下,在确保数据更新完整的情况下才对数据进行变更,减少了程序开发人员架构时间及代码开发量,缩短开发所需时间。
[0074]
以上所述为本技术最佳实施方式的举例,其中未详细述及的部分均为本领域普通技术人员的公知常识。本技术的保护范围以权利要求的内容为准,任何基于本技术的技术启示而进行的等效变换,也在本技术的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献