检查分布式业务处理完整度的方法及装置
技术领域
本申请涉及分布式业务技术领域,特别涉及一种检查分布式业务处理完整度的方法及装置。
背景技术
分布式业务系统能以更加灵活、高效的处理业务。
通过分布式业务系统的处理,可以将传统的系统拆分为一系列相对独立,又能基于业务的关联关系相连的子系统,从而并行且协调完成业务的整体处理。例如目前的电商平台(如支付宝系统)、本地化搜索服务平台(如58同城)、会员注册营销系统等,都可以以分布式业务系统来灵活处理各类业务。
以会员注册营销系统为例,针对会员注册营销业务涉及的各个功能,可以包括不同的业务子系统,例如包括:注册页面系统A、会员注册系统B、APP推送系统C、认证关联系统D、营销系统E、短信系统H、邮件系统I。如图1所示,整体业务可以按照上述业务子系统拆分,并按照拆分后业务的内在关联关系执行以下处理:
S1:注册页面系统A接收会员注册营销请求(假设该请求的业务流水号为No.001);
所述会员注册营销请求,可以是前台服务器接收到客户端发送的注册请求后向分布式业务系统中的注册页面系统A发送的会员注册营销请求。
S2:注册页面系统A解析所述会员注册营销请求对应的会员注册相关数据,进行相应业务处理;并确定所述会员注册营销请求对应的会员注册相关数据如果符合业务条件1,则将所述会员注册营销请求对应的会员注册相关数据发送至业务条件1对应的会员注册系统B,如果符合业务条件2,则将所述数据发送至业务条件2对应的APP推送系统C;
这里,业务条件1例如为新注册,业务条件2例如为通过手机注册。
S3:会员注册系统B解析所述会员注册营销请求对应的会员注册相关数据,进行相应业务处理;并确定所述解析得到的所述会员注册营销请求对应的会员注册相关数据如果符合业务条件3,则将所述数据发送至认证关联系统D,如果符合业务条件4,则将所述数据发送至营销系统E;
S4:认证关联系统D基于接收到的所述数据进行相应业务处理;
S5:营销系统E解析所述会员注册营销请求对应的会员注册相关数据,进行相应业务处理;并确定所述解析所述会员注册营销请求对应的会员注册相关数据如果符合业务条件5,则将所述数据发送至短信系统H,如果符合业务条件6,则将所述数据发送至邮件系统I;
S6:短信系统H和邮件系统I分别基于接收到的数据进行相应业务处理。
短信系统H和邮件系统I分别基于接收到的数据进行相应业务处理,可以完成营销任务。
在多个子系统协同完成一次业务时,由于业务约束(如红包不符合使用条件、账户余额不足等)、系统故障(如网络或系统超时或中断、数据库约束不满足等)等因素,都可能造成分布式业务处理过程的中断。这种中断会导致执行了部分任务的数据与其它数据的不一致,而这种不一致可能对后续业务产生严重后果。因此,为了保障数据的一致性,需要检查分布式任务的处理完整度。
现有技术中检查分布式任务的处理完整度的一种方法,是将每个业务子系统的业务处理结果记录在表格中,这种表格如表1:
表1
上述方式存储的数据量较大。特别是对于目前大型的互联网业务,一个业务很有可能触发几十个子系统进行不同的子业务的处理。那么对于一条业务流水来说,可能需要一个记录几十条数据的表格,存储量较大。
发明内容
本申请实施例的目的是提供一种检查分布式业务处理完整度的方法及装置,以减少数据存储量。
为解决上述技术问题,本申请实施例提供一种检查分布式业务处理完整度的方法及装置是这样实现的:
一种检查分布式业务处理完整度的方法,分布式业务系统接收业务请求并按照业务条件将所述业务逐级传递至后续业务子系统;监控分布式系统中各业务子系统的业务处理状态,并包括:
当入口业务子系统接收到业务请求并需要传递至第一级业务子系统时,对于需要传递至的每一第一级业务子系统,生成入口业务子系统与第一级业务子系统的联合标识,并将生成的所述联合标识做异或处理,得到第一检验值;
对于每一普通业务子系统,在完成处理后记录上级业务子系统传递的联合标识;对于普通业务子系统传递至的每一下级业务子系统,生成所述普通业务子系统与传递至的下级业务子系统的联合标识;每一普通业务子系统将记录的联合标识与生成的联合标识及第一校验值做异或处理,并更新第一校验值;
对于每一叶子业务子系统,在完成处理后记录上级业务子系统传递的联合标识;每一叶子业务子系统将记录的联合标识与第一校验值做异或处理,并更新第一校验值。
一种分布式业务处理的完整度检查装置,分布式业务系统接收业务请求并按照业务条件将所述业务逐级传递至后续业务子系统,包括:
监控单元,用于监控所述分布式系统中各业务子系统的业务处理状态;
第一生成单元,当入口业务子系统接收到业务请求并需要传递至第一级业务子系统时,对于需要传递至的每一第一级业务子系统,生成入口业务子系统与第一级业务子系统的联合标识;
第一异或单元,用于将第一生成单元生成的所述联合标识做异或处理,得到第一检验值;
记录单元,对于每一业务子系统,在完成处理后记录上级业务子系统传递的联合标识;
第二生成单元,对于普通业务子系统传递至的每一下级业务子系统,生成所述普通业务子系统与传递至的下级业务子系统的联合标识;
第二异或单元,对于每一普通业务子系统,将记录的联合标识与生成的联合标识及第一校验值做异或处理,并更新第一校验值;对每一叶子业务子系统,将记录的联合标识与第一校验值做异或处理,并更新第一校验值。
一种检查分布式业务处理完整度的方法,分布式系统中任一业务子系统传递业务请求至下一级业务子系统时,生成本业务子系统与传递至的下一级业务子系统的联合标识;当分布式系统中任一业务子系统在完成处理后,记录上一级业务子系统传递至该业务子系统的联合标识;
且包括:
对于入口业务子系统,对该业务子系统中生成的联合标识进行异或处理得到检验值;
对于入口业务子系统之外的每一级业务子系统,对该级业务子系统中记录的联合标识及生成的联合标识与上一级业务子系统的检验值进行异或处理;得到最终的检验值。
一种分布式业务处理的完整度检查装置,包括:
第三生成单元,分布式系统中任一业务子系统传递业务请求至下一级业务子系统时,生成本业务子系统与传递至的下一级业务子系统的联合标识;
记录单元,当分布式系统中任一业务子系统在完成处理后,记录上一级业务子系统传递至该业务子系统的联合标识;
第三异或单元,对于入口业务子系统,对该业务子系统中生成的联合标识进行异或处理得到检验值;
第四异或单元,对于入口业务子系统之外的每一级业务子系统,对该级业务子系统中记录的联合标识及生成的联合标识与上一级业务子系统的检验值进行异或处理;得到最终的检验值。
一种检查分布式业务处理完整度的方法,分布式系统中每一业务子系统传递业务请求至下一级业务子系统时,生成本业务子系统与传递至的下一级业务子系统的联合标识;当分布式系统中每一业务子系统在完成处理后,记录上一级业务子系统传递的联合标识;
且包括:
将每一业务子系统中记录的联合标识及生成的联合标识进行异或处理,得到最终的检验值。
一种分布式业务处理的完整度检查装置,包括:
第四生成单元,分布式系统中每一业务子系统传递业务请求至下一级业务子系统时,生成本业务子系统与传递至的下一级业务子系统的联合标识;
记录单元,当分布式系统中任一业务子系统在完成处理后,记录上一级业务子系统传递至该业务子系统的联合标识;
第七异或单元,将每一业务子系统中记录的联合标识及生成的联合标识进行异或处理,得到最终的检验值。
由以上本申请各实施例提供的技术方案可见,本申请实施例不需要像现有技术那样通过庞大的表格记录每个业务子系统,而是通过所述规则进行异或运算,能够用较少的空间存储分布式系统的业务处理情况。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术一种检查分布式业务处理完整度的方法的示意图;
图2为本申请一实施例提供的一种检查分布式业务处理完整度的架构图;
图3为本申请一实施例提供的一种检查分布式业务处理完整度方法的流程图。
具体实施方式
本申请实施例提供一种检查分布式业务处理完整度的方法及装置。
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
本申请给出了一种检查分布式业务处理完整度的方法实施例。下面结合图2和图3详细描述本发明实施例。图2所示的注册页面系统A可以为入口业务子系统。分布式系统中,入口业务子系统可以连接第一级业务子系统;第一级业务子系统中可以包括与入口业务子系统存在业务连接关系的一个或多个业务子系统。类似的,第一级业务子系统可以连接第二级业务子系统;第二级业务子系统可以包括与第一级业务子系统存在业务连接关系的一个或多个业务子系统。类似的,第二级业务子系统可以连接第三级业务子系统;第三级业务子系统可以包括与第二级业务子系统存在业务连接关系的一个或多个业务子系统;等等。图2所示的分布式系统中包括一个入口业务子系统,第一级业务子系统,第二级业务子系统和第三级业务子系统。本领域技术人员知道,不同的分布式系统中,可以包括相同、更多或更少的业务子系统层级,例如包括五级业务子系统。这里仅仅是举例而并不做限定。
上述分布式系统中,除了入口业务子系统外,第一级至第n级业务子系统可以设置普通业务子系统和叶子业务子系统。所述普通业务子系统,可以与上级业务子系统存在业务连接,且与下一级业务子系统存在业务连接。所述叶子业务子系统,可以仅与上级业务子系统存在业务连接,而不存在有业务连接的下一级业务子系统。
如图2中,第一级业务子系统中的会员注册系统B即是普通业务子系统,APP推送系统C即是叶子业务子系统;第二级业务子系统中的认证关联系统D为叶子业务子系统,营销系统E是普通业务子系统;第三级业务子系统中的短信系统H和邮件系统I均是叶子业务子系统。
系统P所在框内表示另一分布式系统。通常,对于提供综合业务的网络服务提供商,可以具有多个分布式业务系统,以处理不同的业务。
本申请一种检查分布式业务处理完整度的方法实施例,流程可以如图3所示,包括:
S310:分布式业务系统接收业务请求并按照业务条件将所述业务逐级传递至后续业务子系统。
例如图2所示,一分布式业务系统包括注册页面系统A,会员注册系统B,APP推送系统C,认证关联系统D,营销系统E,短信系统H,邮件系统I。整体业务可以按照上述业务子系统拆分,并按照拆分后业务的内在关联关系执行以下处理:
S1:注册页面系统A接收会员注册营销请求(假设该请求的业务流水号为No.001);
所述会员注册营销请求,可以是前台服务器接收到客户端发送的注册请求后向分布式业务系统中的注册页面系统A发送的会员注册营销请求。
S2:注册页面系统A解析所述会员注册营销请求对应的会员注册相关数据,进行相应业务处理;并确定所述会员注册营销请求对应的会员注册相关数据如果符合业务条件1,则将所述会员注册营销请求对应的会员注册相关数据发送至业务条件1对应的会员注册系统B,如果符合业务条件2,则将所述数据发送至业务条件2对应的APP推送系统C;
这里,业务条件1例如为新注册,业务条件2例如为通过手机注册。
S3:会员注册系统B解析所述会员注册营销请求对应的会员注册相关数据,进行相应业务处理;并确定所述解析得到的所述会员注册营销请求对应的会员注册相关数据如果符合业务条件3,则将所述数据发送至认证关联系统D,如果符合业务条件4,则将所述数据发送至营销系统E;
S4:认证关联系统D基于接收到的所述数据进行相应业务处理;
S5:营销系统E解析所述会员注册营销请求对应的会员注册相关数据,进行相应业务处理;并确定所述解析所述会员注册营销请求对应的会员注册相关数据如果符合业务条件5,则将所述数据发送至短信系统H,如果符合业务条件6,则将所述数据发送至邮件系统I;
S6:短信系统H和邮件系统I分别基于接收到的数据进行相应业务处理。
短信系统H和邮件系统I分别基于接收到的数据进行相应业务处理,可以完成营销任务。
上述过程中:注册页面系统A为入口业务子系统;会员注册系统B,APP推送系统C,营销系统E为中间业务子系统;认证关联系统D,短信系统H,邮件系统I为叶子业务子系统。其中,会员注册系统B和APP推送系统C为第一级业务子系统;认证关联系统D和营销系统E为第二级业务子系统;短信系统H和邮件系统I为第三级业务子系统。
S320:当入口业务子系统接收到业务请求并需要传递至第一级业务子系统时,对于需要传递至的每一第一级业务子系统,生成入口业务子系统与第一级业务子系统的联合标识,并将生成的所述联合标识做异或处理,得到第一检验值。
这里,为了便于理解,分布式业务系统例如为会员营销系统,则入口业务子系统例如为注册页面系统A,相应地,业务处理请求例如为会员注册营销请求。
另外,所述业务请求可以具有业务流水号,例如为No.001。
所述入口业务子系统接收到业务请求之后,可以对业务请求进行处理,并可以按照预设业务条件将相关数据传递至第一级业务子系统。这里的第一级业务子系统例如为图2中所示的会员注册系统B和APP推送系统C。
对于需要传递至的每一第一级业务子系统,生成入口业务子系统与每一第一级业务子系统的联合标识。例如,对于会员注册系统B,可以生成入口业务子系统与第一级业务子系统的联合标识,即生成注册页面系统A与会员注册系统B的联合标识,例如为tokenAB;对于APP推送系统C,可以生成入口业务子系统与第一级业务子系统的联合标识,即生成注册页面系统A与APP推送系统C的联合标识,例如为tokenAC。
对入口业务子系统与每一第一级业务子系统的联合标识做异或处理,得到第一检验值。
数学计算中的异或处理规则如下:
a⊕a=0
a⊕0=a
a⊕(b⊕c)=(a⊕b)⊕c
即一个数与它自身异或结果为0,同时异或运算符满足结合律。
例如,将上述会员注册系统B和APP推送系统C生成的联合标识tokenAB和tokenAC做异或处理,结果为tokenAB⊕tokenAC。该tokenAB⊕tokenAC即为第一检验值。
需要说明的是,如果需要传递至的每一第一级业务子系统仅包括一个第一级业务子系统,比如说,图2的例子中,在仅满足条件1时,需要传递至的第一级业务子系统只包括会员注册系统B,则此时只会生成注册页面系统A与会员注册系统B的联合标识tokenAB,此时就不存在异或处理的情况。本申请中,S310包括这里的需要传递至的每一第一级业务子系统仅包括一个第一级业务子系统,无需做异或处理的情况。
S330:对于每一普通业务子系统,在完成处理后记录上级业务子系统传递的联合标识;对于普通业务子系统传递至的每一下级业务子系统,生成所述普通业务子系统与传递至的下级业务子系统的联合标识;每一普通业务子系统将记录的联合标识与生成的联合标识及第一校验值做异或处理,并更新第一校验值;对于每一叶子业务子系统,在完成处理后记录上级业务子系统传递的联合标识;每一叶子业务子系统将记录的联合标识与第一校验值做异或处理,并更新第一校验值。
S320之后,入口业务子系统可以将生成的联合标识传递至对应的第一级业务子系统。结合图2即注册页面系统A将生成的联合标识tokenAB传递至会员注册系统B,将生成的联合标识tokenAC传递至APP推送系统C。相应地,第一级业务子系统可以接收传递的联合标识。可以在第一级业务子系统完成处理后记录每一第一级业务子系统接收的上级业务子系统传递的联合标识。类似的,对于同一级中的业务子系统,可以在完成处理后记录上级业务子系统传递的联合标识。
仍然结合图2,对于每一第一级业务子系统记录上级业务子系统传递的联合标识,即对于会员注册系统B和APP推送系统C,在完成对应的处理后,可以分别记录上级业务子系统分别传递的联合标识tokenAB和tokenAC。
对于普通业务子系统,其在业务处理完成后需要传递至的每一下级子系统,生成所述普通业务子系统与传递至的下级业务子系统的联合标识。所述普通业务子系统在业务处理完成后需要传递至的每一下级子系统,具体可以是:所述第一级业务子系统在业务处理完成后按照预设规则需要传递至的每一下级子系统。
结合图2,例如,会员注册系统B为普通业务子系统,其解析所述会员注册营销请求对应的会员注册相关数据,进行相应业务处理;并确定所述解析得到的所述会员注册营销请求对应的会员注册相关数据如果符合条件3,则将所述数据发送至认证关联系统D,如果符合条件4,则将所述数据发送至营销系统E。这样,对于认证关联系统D,可以生成会员注册系统B与认证关联系统D的联合标识tokenBD;对于营销系统E,可以生成会员注册系统B与营销系统E的联合标识tokenBE。
每一普通业务子系统可以将记录的联合标识与生成的联合标识及第一校验值做异或处理,并更新第一校验值。例如,会员注册系统B在完成对应的处理后,记录了联合标识tokenAB;会员注册系统B还生成联合标识tokenBD和tokenBE。会员注册系统B可以将记录的联合标识与生成的联合标识及第一校验值做异或处理。具体的,记录的联合标识为tokenAB,生成的联合标识为tokenBD和tokenBE,第一校验值为tokenAB⊕tokenAC;三者异或处理结果为:tokenAB⊕tokenBD⊕tokenBE⊕tokenAB⊕tokenAC=tokenBD⊕tokenBE⊕tokenAC。可以将第一校验值更新为上述异或处理的结果。
图2中,APP推送系统C为叶子业务子系统,因此其在业务处理完成后,记录上级业务子系统传递的联合标识tokenAC。每一叶子业务子系统将记录的联合标识与第一校验值做异或处理,并更新第一校验值。具体的,APP推送系统C记录的联合标识为tokenAC,此时的第一校验值为tokenBD⊕tokenBE⊕tokenAC。两者异或处理为tokenAC⊕tokenBD⊕tokenBE⊕tokenAC=tokenBD⊕tokenBE。可以将第一校验值更新为上述异或处理的结果。
对于传递至的每一级业务子系统,可以重复上述处理,直至所有业务子系统完成业务处理或处理终止。
结合图2,对于每一下级业务子系统,例如第二级业务子系统,在完成对应的处理后,可以记录上级业务子系统传递的联合标识,即记录认证关联系统D接收到的tokenBD和营销系统E接收到的tokenBE。
对于第二级业务子系统的认证关联系统D和营销系统E:认证关联系统D为叶子业务子系统,处理完毕之后不再传递至更下一级子系统;营销系统E为普通业务子系统,处理完毕之后传递至更下一级的第二级业务子系统,即短信系统H和邮件系统I,因此生成联合标识tokenEH和tokenEI。认证关联系统D将记录的联合标识与第一校验值做异或处理,并更新第一校验值,具体为,tokenBD⊕tokenBD⊕tokenBE=tokenBE。营销系统E将记录的联合标识与生成的联合标识及第一校验值做异或处理,并更新第一校验值,具体为,tokenBE⊕tokenEH⊕tokenEI⊕tokenBE=tokenEH⊕tokenEI。
对于第三级业务子系统的短信系统H和邮件系统I,两者都是叶子业务子系统。短信系统H在完成处理后,可以记录上级业务子系统传递的联合标识,即记录营销系统E传递的tokenEH。短信系统H将记录的联合标识与生成的联合标识及第一校验值做异或处理,并更新第一校验值,具体为tokenEH⊕tokenEH⊕tokenEI=tokenEI。邮件系统I在完成处理后,可以记录上级业务子系统传递的联合标识,即记录营销系统E传递的tokenEI。邮件系统I将记录的联合标识与生成的联合标识及第一校验值做异或处理,并更新第一校验值,具体为tokenEI⊕tokenEI=0。
也就是说,如果一个分布式业务系统中对业务请求完成了所有处理,按照本申请上述实施例的处理方式,最终结果为0。换句话说,按照上述方法得到的最终检验值为0表示所述分布式业务系统中对业务请求完成了所有处理。
按照上述处理,假设短信系统H并没有完成处理,则完整度检查装置并不记录短息系统H接收的上级业务子系统传递的联合标识EH,则按照上述处理方式,最终结果为tokenEI⊕tokenEH⊕tokenEI,即为tokenEH。该结果可以表明该分布式系统终止于短信系统H,可能是没有将业务传递至业务子系统H,也可能是业务子系统H未完成处理。存在的联合标识tokenEH说明业务子系统E至少已生成与传递至的业务子系统H的联合标识。换句话说,按照上述方法得到的最终检验值为联合标识,如果最终结果为一个联合标识,则该联合标识中的后一个对应的业务子系统未完成业务处理,即所述分布式业务系统处理所述业务请求终止时停留的业务子系统。
类似的,如果最终结果两个或更多的联合标识,则每个联合标识中的后一个对应的业务子系统皆未完成业务处理。例如,最终结果为tokenEH⊕tokenEI,即有两个联合标识,第一个联合标识EH中的后一个H表示业务子系统H未完成业务处理,第二个联合标识EI中的后一个I表示邮件系统I未完成业务处理。
结合图2并按照上述处理方式,再例如:
(1)注册页面系统A生成AB和AC,得到第一检验值tokenAB⊕tokenAC;
(2)会员注册系统B完成相应处理,则记录接收的tokenAB,APP注册系统C完成相应处理,则记录接收到的tokenAC;会员注册系统B生成tokenBD和tokenBE,并将生成的tokenBD和tokenBE分别传递至认证关联系统D和营销系统E;得到第二校验值tokenAB⊕tokenAC⊕tokenBD⊕tokenBE⊕tokenAB⊕tokenAC=tokenBD⊕tokenBE;
(3)假设认证关联系统D完成处理,则记录认证关联系统D接收的上级业务子系统传递的联合标识tokenBD;假设营销系统E未完成处理,则并不记录tokenBE;由于营销系统E未完成处理,也不会生成tokenEH和tokenEI;得到第三校验值tokenBD⊕tokenBD⊕tokenBE=tokenBE。
上述结果表明,分布式业务系统业务处理终止于营销系统E。
相关人员后相关系统在得到所述分布式业务系统的处理结果BE后,可以进行相应的后续业务处理,如检查并排除营销系统E的故障,或者重启营销系统E的业务处理。
上面例子仅示出了具有一个入口业务子系统和三级业务子系统的分布式系统,实际当中的分布式业务系统可能具有数十级甚至上百级的业务子系统。通过本申请实施例提供的方法,不需要像现有技术那样通过庞大的表格记录每个业务子系统,而是通过所述规则进行异或运算,能够用较少的空间存储分布式系统的业务处理情况。
此外,现有技术还有一种同步调用的处理方式。现有技术中图1所示的上级业务子系统对下级业务子系统的所有调用链路强制全部修改为同步方式调用。即A系统必须等待C系统和B系统处理完成之后再向上返回业务结果;同理系统B必须等待系统E和系统D处理完成之后再向上返回业务结果;同理系统E必须等待系统H和系统I处理完成之后再返回业务结果。这样,当其中的某一个阶段出现异常,上层调用系统就会感知到。但是,现有技术这种方式采用同步的方式,对于一些非重要的子业务,可以非异步处理的情况下,也强制同步处理,会拉长整个分布式系统对业务的处理时间,也会降低对用户端的响应时间,导致用户体验的下降,同时还会影响到系统整体的吞吐量。
而本申请上述实施例的方案,不需要同步处理也能及时检查分布式系统的业务处理情况,不会拉长业务的处理时间,也不会影响客户的体验,且不会影响系统整体的吞吐量。
本申请还提供一种分布式业务处理的完整度检查装置实施例,包括:
监控单元,用于监控分布式系统中各业务子系统的业务处理状态;
第一生成单元,当入口业务子系统接收到业务请求并传递至第一级业务子系统时,对于传递至的每一第一级业务子系统,生成入口业务子系统与第一级业务子系统的联合标识;
第一异或单元,用于将第一生成单元生成的所述联合标识做异或处理,得到第一检验值;
记录单元,对于每一业务子系统,在完成处理后记录上级业务子系统传递的联合标识;
第二生成单元,对于业务子系统在业务处理完成后需要传递至的每一下级子系统,生成本级子系统与下级子系统的联合标识;
第二异或单元,将所述记录单元记录的联合标识和第二生成单元生成的联合标识与上一次得到的检验值做异或处理,得到新的检验值。
优选的,所述装置设置于所述分布式系统内或外。
优选的,所述业务请求具有流水号。
优选的,所述联合标识包括联合业务子系统的标识。
优选的,所述记录单元不记录该没有完成处理的业务子系统接收的上级业务子系统传递的联合标识。
以下介绍本申请另一检查分布式业务处理完整度的方法实施例,该实施例中,分布式系统中每一业务子系统传递业务请求至下一级业务子系统时,完整度检查装置生成本业务子系统与传递至的下一级业务子系统的联合标识;当分布式系统中每一业务子系统在完成处理后,记完整度检查装置录上一级业务子系统传递的联合标识;
且包括:
对于入口业务子系统,完整度检查装置对该业务子系统中生成的联合标识进行异或处理得到检验值;
对于入口业务子系统之外的每一级业务子系统,完整度检查装置对该级业务子系统中记录的联合标识及生成的联合标识与上一级业务子系统的检验值进行异或处理,得到最终的检验值。
特别的,对于最后一级业务子系统,一般都是叶子业务子系统,没有生成的联合标识。这种情况,可以认为生成的联合标识为0,根据前述异或运算顾虑,0参与异或运算,并不影响运算结果。
本说明书中的各个实施例采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以下介绍本申请另一种分布式业务处理的完整度检查装置实施例,包括:
第三生成单元,分布式系统中任一业务子系统传递业务请求至下一级业务子系统时,生成本业务子系统与传递至的下一级业务子系统的联合标识;
记录单元,当分布式系统中任一业务子系统在完成处理后,记录上一级业务子系统传递至该业务子系统的联合标识;
第三异或单元,对于入口业务子系统,对该业务子系统中生成的联合标识进行异或处理得到检验值;
第四异或单元,对于入口业务子系统之外的每一级业务子系统,对该级业务子系统中记录的联合标识及生成的联合标识与上一级业务子系统的检验值进行异或处理;得到最终的检验值。
以下介绍本申请一种检查分布式业务处理完整度的方法实施例,分布式系统中每一业务子系统传递业务请求至下一级业务子系统时,生成本业务子系统与传递至的下一级业务子系统的联合标识;当分布式系统中每一业务子系统在完成处理后,记录上一级业务子系统传递的联合标识;
且包括:
将每一业务子系统中记录的联合标识及生成的联合标识进行异或处理,得到最终的检验值。
仍以图2为例,本实施例中,可以集中对生成的和传递的联合标识统一做异或处理。例如,流水号为No.001的业务请求:
在入口业务子系统中生成将要传递至下级业务子系统的联合标识tokenAB和tokenAC;
业务子系统B完成处理后,记录业务子系统B接收的传递的联合标识tokenAB;
业务子系统C完成处理后,记录业务子系统C接收的传递的联合标识tokenAC;
业务子系统B生成将要传递至下级业务子系统的联合标识tokenBD和tokenBE;
业务子系统D完成处理后,记录业务子系统D接收的传递的联合标识tokenBD;
业务子系统E完成处理后,记录业务子系统E接收的传递的联合标识tokenBE;
业务子系统E生成将要传递至下级业务子系统的联合标识tokenEH和tokenEI;
业务子系统H完成处理后,记录业务子系统H接收的传递的联合标识tokenEH;
业务子系统I完成处理后,记录业务子系统I接收的传递的联合标识tokenEI;
假设每一级业务子系统都完成处理,将上述入口业务子系统生成的联合标识、入口业务子系统之外的每一级业务子系统中记录的联合标识及生成的联合标识进行异或处理,则最终的检验结果如下得到:
tokenAB⊕tokenAC⊕tokenAB⊕tokenAC⊕tokenBD⊕tokenBE⊕tokenBD⊕tokenBE⊕tokenEH⊕tokenEI⊕tokenEH⊕tokenEI=0。
类似的,按照上述处理,假设短信系统H并没有完成处理,则完整度检查装置并不记录短息系统H接收的上级业务子系统传递的联合标识tokenEH,则按照上述处理方式,最终结果为tokenEH。该结果可以表明该分布式系统终止于短信系统H,即业务子系统H未完成处理。
以下介绍本申请一种分布式业务处理的完整度检查装置实施例,包括:
第四生成单元,分布式系统中每一业务子系统传递业务请求至下一级业务子系统时,生成本业务子系统与传递至的下一级业务子系统的联合标识;
记录单元,当分布式系统中任一业务子系统在完成处理后,记录上一级业务子系统传递至该业务子系统的联合标识;
第七异或单元,将每一业务子系统中记录的联合标识及生成的联合标识进行异或处理,得到最终的检验值。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。