一种判断分布式系统下互联网数据完整性的方法和系统的制作方法

文档序号:10726194阅读:193来源:国知局
一种判断分布式系统下互联网数据完整性的方法和系统的制作方法【专利摘要】本发明公开了一种判断分布式系统下互联网数据完整性的方法,其包括步骤:(1)预定义在执行流程过程中数据表发生变更的规则;(2)执行流程;(3)获取在执行流程的实际过程中的数据变更记录;(4)将所述规则与所述数据变更记录进行比较,以进行下述判断:若所述数据变更记录与所述规则完全相符,则判断为:互联网数据是完整的,且流程被完整执行;若所述数据变更记录与所述规则不完全相符,则判断为:互联网数据是不完整的,且流程未被完整执行。本发明还公开了一种判断分布式系统下互联网数据完整性的系统。本发明能够在不影响分布式系统性能的条件下,判断/保障分布式系统下的互联网业务数据的完整性。本发明可用于互联网保险业务。【专利说明】一种判断分布式系统下互联网数据完整性的方法和系统
技术领域
[0001]本发明涉及一种判断数据完整性的方法和系统,尤其涉及一种判断互联网数据完整性的方法和系统。【
背景技术
】[0002]互联网保险业务作为一种金融业务,一方面,其对互联网业务数据(即互联网中与某项业务流程相关的数据)的完整性有极高的要求,另一方面,其与传统的保险类业务相比,需要处理的互联网业务数据量要大得多。这样的背景对互联网业务系统中数据完整性的保障提出了新的挑战。[0003]传统的保险业务系统,通过数据库的事务机制来保证数据完整性。事务机制在单数据库环境下,可以很好地保证数据完整性。但是由于互联网业务系统中的数据量非常大,常常以分布式系统的方式工作。然而传统事务机制只能保证单数据库环境的数据完整性,在分布式系统、分布式数据库的技术体系里面作用十分有限。[0004]针对这个问题,一些互联网业务系统采用了“二阶段提交”的分布式事务解决方案。这种方案虽然能够解决分布式系统中数据完整性的问题,但它的执行过程繁琐,流程复杂,增加了“协调者”这一实体角色,影响了业务系统的性能,降低了系统的吞吐量。【
发明内容】[0005]本发明的目的之一是提供一种判断分布式系统下互联网数据完整性的方法,该方法能够在不影响分布式系统性能的条件下,判断/保障分布式系统下的互联网业务数据的完整性。该互联网业务数据可以是互联网保险业务数据,因而本发明方法可用于互联网保险业务,以在不影响分布式系统性能的条件下,判断/保障分布式系统下的互联网保险业务数据的完整性。[0006]根据上述目的,本发明提出了一种判断分布式系统下互联网数据完整性的方法,其包括步骤:[0007](I)预定义在执行流程过程中数据表发生变更的规则;[0008](2)执行流程;[0009](3)获取在执行流程的实际过程中的数据变更记录;[0010](4)将所述规则与所述数据变更记录进行比较,以进行下述判断:[0011]若所述数据变更记录与所述规则完全相符,则判断为:互联网数据是完整的,且流程被完整执行;[0012]若所述数据变更记录与所述规则不完全相符,则判断为:互联网数据是不完整的,且流程未被完整执行。[0013]在本技术方案中,所述互联网数据包括业务数据,尤其是保险业务数据。[0014]本发明的构思是:保障分布式系统下的互联网业务数据完整性的前提是明确怎样的业务流程是完整执行的。在分布式系统下的互联网业务中,所有的业务流程最终都会表现为分布式系统数据库中的数据变更;同时,对于一个确定的业务流程,工程师也可以预期到它会产生哪些数据变更。因此,只要将业务流程中实际产生的数据变更,与预期产生的数据变更进行对比,就能够知道这个业务流程是否被完整执行。[0015]本发明所述的判断分布式系统下互联网数据完整性的方法,其基于对确定的业务流程中数据变更的预期预定义在执行流程过程中数据表发生变更的规则。此外,本发明方法还获取在执行流程的实际过程中的数据变更记录并将其与所述规则进行比较,以判断两者是否完全相符,进而判断互联网数据是否是完整的,且流程是否被完整执行,从而判断分布式系统下的互联网业务数据的完整性。本发明方法能很好地支持分布式系统,无须增加实体,不侵入业务代码,因此不影响分布式系统的性能。[0016]需要说明的是,本发明方法中,所述互联网业务数据可以是互联网保险业务数据,因而本发明方法可用于互联网保险业务,以在不影响分布式系统性能的条件下,判断/保障分布式系统下的互联网保险业务数据的完整性。[0017]进一步地,本发明所述的判断分布式系统下互联网数据完整性的方法中,当互联网数据被判断为完整时,则结束流程;当互联网数据被判断为不完整时,还包括步骤:发送流程未被完整执行的通知;以及根据所述通知转至步骤(2)。[0018]上述方案中,当检测到一个业务流程没有被完整执行,则通过业务流程重试自动执行数据补偿的任务,具体体现为发送流程未被完整执行的通知并根据所述通知转至步骤(2),从而保障分布式系统下的互联网业务数据的完整性。[0019]更进一步地,上述判断分布式系统下互联网数据完整性的方法中,设定转至步骤(2)以重新执行流程的次数阈值,当重新执行流程的次数超过所述次数阈值时,则结束流程,并向外发送流程执行失败的通知。[0020]上述方案中,当流程经一定次数的重新执行尝试还是无法被完整执行时,为了防止系统死机/崩溃,停止尝试并向外发送流程执行失败的通知。[0021]进一步地,上述本发明的判断分布式系统下互联网数据完整性的方法中,从数据库的数据库变更日志中获取所述数据变更记录。[0022]数据库变更日志(binarylog,简称binlog),是一种数据库管理软件用于记录数据库变更的日志,常用于数据库管理软件进行主库和备库之间的数据同步,以及数据恢复。上述方案中,数据库变更日志可以从分布式系统数据库获得。[0023]本发明的另一目的是提供一种判断分布式系统下互联网数据完整性的系统,该系统能够在不影响分布式系统性能的条件下,判断/保障分布式系统下的互联网业务数据的完整性。该互联网业务数据可以是互联网保险业务数据,因而本发明系统可用于互联网保险业务,以在不影响分布式系统性能的条件下,判断/保障分布式系统下的互联网保险业务数据的完整性。[0024]基于上述发明目的,本发明还提供了一种判断分布式系统下互联网数据完整性的系统,其包括:[0025]定义单元,其用于预定义在执行流程过程中数据表发生变更的规则;[0026]数据采集单元,其采集在执行流程的实际过程中的数据变更记录;[0027]比对单元,其与定义单元和数据采集单元分别数据连接,所述比对单元接收定义单元传输的所述规则以及数据采集单元传输的所述数据变更记录,并将所述规则与所述数据变更记录进行比较,以进行下述判断:若所述数据变更记录与所述规则完全相符,则判断为:互联网数据是完整的,且流程被完整执行;若所述数据变更记录与所述规则不完全相符,则判断为:互联网数据是不完整的,且流程未被完整执行。[0028]本发明所述的系统能很好地支持分布式系统,无须增加实体,不侵入业务代码,因此不影响分布式系统的性能。[0029]本发明所述的判断分布式系统下互联网数据完整性的系统中,所述定义单元和比对单元可以基于计算机及其上安装并运行的具有相应功能的软件实现,数据采集单元可以基于所述分布式系统及其上安装并运行的具有相应功能的软件实现。当然,也可以基于本领域内技术人员知晓的其他手段来实现。所述执行流程的实际过程中的数据变更是指在分布式系统数据库中的数据变更。[0030]本技术方案中的互联网数据可以是在分布式系统数据库中的互联网业务数据(例如互联网保险业务数据),当然也可以是其他类型的数据。[0031]进一步地,本发明所述的判断分布式系统下互联网数据完整性的系统中,所述数据采集单元与数据库数据连接,所述数据采集单元从数据库的数据库变更日志中采集所述数据变更记录。[0032]上述方案中,数据库变更日志可以从分布式系统数据库获得。[0033]进一步地,上述本发明的判断分布式系统下互联网数据完整性的系统中,所述比对单元通过消息队列中间件与所述数据采集单元连接,所述数据变更记录通过消息队列中间件被传输给比对单元。[0034]所述消息队列中间件用于利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,可以在分布式环境下扩展进程间的通信。[0035]进一步地,上述本发明的判断分布式系统下互联网数据完整性的系统中,还包括:流程重试触发单元,其与所述比对单元数据连接,当互联网数据被判断为不完整时,比对单元发送流程未被完整执行的通知给流程重试触发单元;所述流程重试触发单元触发流程被重新执行。[0036]上述方案中,所述流程重试触发单元可以基于所述分布式系统及其上安装并运行的具有相应功能的软件实现,也可以基于本领域内技术人员知晓的其他手段来实现。[0037]更进一步地,上述判断分布式系统下互联网数据完整性的系统中,所述比对单元通过消息队列中间件与所述流程重试触发单元连接,所述通知通过消息队列中间件被传输给流程重试触发单元。[0038]更进一步地,上述判断分布式系统下互联网数据完整性的系统中,比对单元设定流程被重新执行的次数阈值,当流程被重新执行的次数超过所述次数阈值时,比对单元发出结束流程的信号,并向外发送流程执行失败的通知。[0039]上述方案中,当流程经一定次数的重新执行尝试还是无法被完整执行时,为了防止系统死机/崩溃,停止尝试并向外发送流程执行失败的通知。[0040]本发明所述的判断分布式系统下互联网数据完整性的方法,其具有以下优点:[0041](I)与传统的单机数据库事务机制相比,能够很好地支持分布式系统。[0042](2)与“二阶段提交”的分布式事务相比,无须增加实体,不侵入业务代码,对业务系统性能基本没有影响。[0043](3)结合流程重试可有效保障分布式系统下的互联网业务数据的完整性。[0044](4)能满足互联网保险业务的数据处理量大的需求,非常适用于互联网保险业务。[0045]本发明所述的判断分布式系统下互联网数据完整性的系统,其同样具有上述优点。【附图说明】[0046]图1为本发明所述的判断分布式系统下互联网数据完整性的方法的流程示意图。[0047]图2为本发明所述的判断分布式系统下互联网数据完整性的系统在一种实施方式下的结构示意图。[0048]图3为本发明所述的判断分布式系统下互联网数据完整性的系统在另一种实施方式下的结构示意图。[0049]图4为图3系统的一种工作流程图。[0050]图5为图3系统的另一种工作流程图。【具体实施方式】[0051]下面将结合说明书附图和具体的实施例来对本发明所述的判断分布式系统下互联网数据完整性的方法和系统进行进一步地详细说明,但是该详细说明不构成对本发明的限制。[0052]图1显示了本发明所述的判断分布式系统下互联网数据完整性的方法在一种实施方式下的流程。如图1所示,该判断分布式系统下互联网数据完整性的方法包括步骤:[0053](I)预定义在执行流程过程中数据表发生变更的规则;[0054](2)执行流程;[0055](3)获取在执行流程的实际过程中的数据变更记录;[0056](4)将上述规则与数据变更记录进行比较,以进行下述判断:[0057]若数据变更记录与上述规则完全相符,则判断为:互联网数据是完整的,且流程被完整执行;[0058]若数据变更记录与上述规则不完全相符,则判断为:互联网数据是不完整的,且流程未被完整执行。[0059]上述方案中的互联网业务数据可以是互联网保险业务数据,因而上述方案可用于互联网保险业务。[0060]在某些实施方式中,当互联网数据被判断为完整时,则结束流程;当互联网数据被判断为不完整时,还包括步骤:发送流程未被完整执行的通知;以及根据该通知转至步骤(2)。其中,一些实施方式下,设定转至步骤(2)以重新执行流程的次数阈值,当重新执行流程的次数超过该次数阈值时,则结束流程,并向外发送流程执行失败的通知。[0061]在某些实施方式中,从分布式系统数据库的数据库变更日志中获取数据变更记录。[0062]图2显示了本发明所述的判断分布式系统下互联网数据完整性的系统在一种实施方式下的结构示意图。如图2所示,该判断分布式系统下互联网数据完整性的系统包括:定义单元I,其用于预定义在执行流程过程中数据表发生变更的规则;数据采集单元2,其采集在执行流程的实际过程中的数据变更记录;比对单元3,其与定义单元I和数据采集单元2分别数据连接,比对单元3接收定义单元I传输的上述规则以及数据采集单元2传输的数据变更记录,并将上述规则与数据变更记录进行比较,以进行下述判断:若数据变更记录与上述规则完全相符,则判断为:互联网数据是完整的,且流程被完整执行;若数据变更记录与上述规则不完全相符,则判断为:互联网数据是不完整的,且流程未被完整执行。[0063]上述方案中,通过定义单元I基于对确定的业务流程中数据变更的预期预定义在执行流程过程中数据表发生变更的规则。此外,还通过数据采集单元2获取在执行流程的实际过程中的数据变更记录,并通过比对单元3将该数据变更记录与上述规则进行比较,判断两者是否完全相符,进而判断互联网数据是否是完整的,且流程是否被完整执行,从而判断分布式系统下的互联网业务数据的完整性。[0064]上述方案中,定义单元I和比对单元3基于计算机及其上安装并运行的具有相应功能的软件实现,数据采集单元2基于分布式系统及其上安装并运行的具有相应功能的软件实现。执行流程的实际过程中的数据变更是指在分布式系统数据库中的数据变更,互联网数据是指在分布式系统数据库中的互联网业务数据。[0065]在某些实施方式中,数据采集单元2与分布式系统数据库数据连接,数据采集单元2从分布式系统数据库的数据库变更日志中采集数据变更记录。[0066]在某些实施方式中,比对单元3通过消息队列中间件与数据采集单元2连接,数据变更记录通过消息队列中间件被传输给比对单元3。[0067]图3显示了本发明所述的判断分布式系统下互联网数据完整性的系统在另一种实施方式下的结构示意图。如图3所示,该判断分布式系统下互联网数据完整性的系统在上述图2系统的基础上还包括:流程重试触发单元4,其与比对单元3数据连接,当互联网数据被判断为不完整时,比对单元3发送流程未被完整执行的通知给流程重试触发单元4;流程重试触发单元4触发流程被重新执行。其中,流程重试触发单元4基于分布式系统及其上安装并运行的具有相应功能的软件实现。其中,有些实施方式下,比对单元3通过消息队列中间件与流程重试触发单元4连接,上述通知通过消息队列中间件被传输给流程重试触发单元4。有些实施方式下,比对单元3设定流程被重新执行的次数阈值(例如三次),当流程被重新执行的次数超过该次数阈值时,比对单元3发出结束流程的信号,并向外发送流程执行失败的通知。[0068]图4显示了图3系统的一种工作流程。结合参考图3和图4,该判断分布式系统下互联网数据完整性的系统用于分布式系统下的互联网业务,该互联网业务的业务流程涉及到相关的互联网业务数据,该互联网业务数据包括若干数据表,其工作流程包括:[0069]步骤110:工程师在定义单元I中描述业务流程,并基于该描述预定义在执行业务流程过程中分布式系统数据库中数据表发生变更的规则,该规则显示table_X,table_Y,table_ZS张数据表会发生变更。工程师还在比对单元3中设定流程被重新执行的次数阈值(例如三次)。[0070]步骤120:执行业务流程。在业务流程执行的过程中,分布式系统数据库中table_X,tabIe_Y,tabIe_Z三张表发生了变更。[0071]步骤130:数据采集单元2通过读取分布式系统数据库的数据库变更日志,获取到tabIe_X,tabIe_Y,tabIe_Z三张表的变更记录。[0072]步骤140:数据采集单元2通过消息队列中间件,将获取到的变更记录发送到比对单元3。[0073]步骤150:比对单元3接收到变更记录,将这些变更记录与定义单元I中的预定义的规则进行对比,对比结果是数据采集单元2获取的变更记录与定义单元I中的预定义的规则完全相符,即table_X,table_Y,table_Z三张表均发生了变更,所以互联网业务数据是完整的,且业务流程被完整执行。[0074]图5显示了图3系统的另一种工作流程。结合参考图3和图5,该判断分布式系统下互联网数据完整性的系统用于分布式系统下的互联网业务,该互联网业务的业务流程涉及到相关的互联网业务数据,该互联网业务数据包括若干数据表,其工作流程包括:[0075]步骤210:工程师在定义单元I中描述业务流程,并基于该描述预定义在执行业务流程过程中分布式系统数据库中数据表发生变更的规则,该规则显示table_X,table_Y,table_ZS张数据表会发生变更。工程师还在比对单元3中设定流程被重新执行的次数阈值(例如三次)。[0076]步骤220:执行业务流程。在业务流程执行的过程中,分布式系统数据库中table_X,tabIe_Y两张表发生了变更。[0077]步骤230:数据采集单元2通过读取分布式系统数据库的数据库变更日志,获取到tabIe_X,tabIe_Y两张表的变更记录。[0078]步骤240:数据采集单元2通过消息队列中间件,将获取到的变更记录发送到比对单元3。[0079]步骤250:比对单元3接收到变更记录,将这些变更记录与定义单元I中的预定义进行对比,对比结果是数据采集单元2获取的变更记录与定义单元I中的预定义的规则不完全相符,即只有table_X,table_Y两张表发生了变更,所以互联网业务数据是不完整的,且业务流程未被完整执行。[0080]步骤260:比对单元3判断当业务流程被重新执行的次数超过上述次数阈值时,转到步骤290,否则进行步骤270。[0081]步骤270:比对单元3将流程未被完整执行的通知通过消息队列中间件发送给流程重试触发单元4。[0082]步骤280:流程重试触发单元4接收到流程未被完整执行的通知,触发流程被重新执行:回到步骤220。[0083]步骤290:比对单元3发出结束业务流程的信号,并向外发送业务流程执行失败的通知。[0084]需要说明的是,上述各方案中,互联网业务数据可以是互联网保险业务数据,因而上述各方案可用于互联网保险业务,以在不影响分布式系统性能的条件下,判断/保障分布式系统下的互联网保险业务数据的完整性。[0085]需要注意的是,以上列举的仅为本发明的具体实施例,显然本发明不限于以上实施例,随之有着许多的类似变化。本领域的技术人员如果从本发明公开的内容直接导出或联想到的所有变形,均应属于本发明的保护范围。【主权项】1.一种判断分布式系统下互联网数据完整性的方法,其特征在于,包括步骤:(1)预定义在执行流程过程中数据表发生变更的规则;(2)执行流程;(3)获取在执行流程的实际过程中的数据变更记录;(4)将所述规则与所述数据变更记录进行比较,以进行下述判断:若所述数据变更记录与所述规则完全相符,则判断为:互联网数据是完整的,且流程被完整执行;若所述数据变更记录与所述规则不完全相符,则判断为:互联网数据是不完整的,且流程未被完整执行。2.如权利要求1所述的判断分布式系统下互联网数据完整性的方法,其特征在于,当互联网数据被判断为完整时,则结束流程;当互联网数据被判断为不完整时,还包括步骤:发送流程未被完整执行的通知;以及根据所述通知转至步骤(2)。3.如权利要求2所述的判断分布式系统下互联网数据完整性的方法,其特征在于,设定转至步骤(2)以重新执行流程的次数阈值,当重新执行流程的次数超过所述次数阈值时,则结束流程,并向外发送流程执行失败的通知。4.如权利要求1-3中任意一项所述的判断分布式系统下互联网数据完整性的方法,其特征在于,从数据库的数据库变更日志中获取所述数据变更记录。5.—种判断分布式系统下互联网数据完整性的系统,其特征在于,包括:定义单元,其用于预定义在执行流程过程中数据表发生变更的规则;数据采集单元,其采集在执行流程的实际过程中的数据变更记录;比对单元,其与定义单元和数据采集单元分别数据连接,所述比对单元接收定义单元传输的所述规则以及数据采集单元传输的所述数据变更记录,并将所述规则与所述数据变更记录进行比较,以进行下述判断:若所述数据变更记录与所述规则完全相符,则判断为:互联网数据是完整的,且流程被完整执行;若所述数据变更记录与所述规则不完全相符,则判断为:互联网数据是不完整的,且流程未被完整执行。6.如权利要求5所述的判断分布式系统下互联网数据完整性的系统,其特征在于,所述数据采集单元与数据库数据连接,所述数据采集单元从数据库的数据库变更日志中采集所述数据变更记录。7.如权利要求5或6所述的判断分布式系统下互联网数据完整性的系统,其特征在于,所述比对单元通过消息队列中间件与所述数据采集单元连接,所述数据变更记录通过消息队列中间件被传输给比对单元。8.如权利要求5或6所述的判断分布式系统下互联网数据完整性的系统,其特征在于,还包括:流程重试触发单元,其与所述比对单元数据连接,当互联网数据被判断为不完整时,比对单元发送流程未被完整执行的通知给流程重试触发单元;所述流程重试触发单元触发流程被重新执行。9.如权利要求8所述的判断分布式系统下互联网数据完整性的系统,其特征在于所述比对单元通过消息队列中间件与所述流程重试触发单元连接,所述通知通过消息队列中间件被传输给流程重试触发单元。10.如权利要求8所述的判断分布式系统下互联网数据完整性的系统,其特征在于,比对单元设定流程被重新执行的次数阈值,当流程被重新执行的次数超过所述次数阈值时,比对单元发出结束流程的信号,并向外发送流程执行失败的通知。【文档编号】G06Q40/08GK106097104SQ201610398963【公开日】2016年11月9日【申请日】2016年6月7日【发明人】杜君君,李雪峰【申请人】众安在线财产保险股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1