跨行支付系统的清算业务队列解救方法及装置与流程

文档序号:11865723阅读:994来源:国知局
跨行支付系统的清算业务队列解救方法及装置与流程
本发明涉及计算机
技术领域
,尤其涉及一种银行间跨行资金解救方法,具体来说就是一种跨行支付系统的清算业务队列解救方法及装置。
背景技术
:目前,中国现代化支付系统(CNAPS)为参与者和特许参与者提供银行间跨行资金清算服务,银行间跨行资金清算服务为接入的参与者和特许参与者提供银行间资金清算服务。跨行资金清算系统是一种基于事务管理器的联机交易处理系统,针对不同的业务功能设计了不同的处理服务,服务之间采用同步或异步的方式互相调用,以完成对应的功能。参与者和特许参与者开设的清算账号均在支付清算系统集中存储,参与者向支付清算系统支付指令,大额实时支付系统(HVPS)对收到的支付清算指令进行实时足额清算,当清算账号可用头寸不足支付时,提供清算队列处理机制,并将业务队列状态通知有关参与者。为了使清算服务顺利进行,需要对排队清算业务进行解救,但现有技术允许多个排队解救服务被调起,并针对单个排队账号进行解救,主要存在以下缺点:1.由于现有排队解救服务对一个清算账号的排队清算业务进行解救时需要锁定相应的清算账号,待清算业务完成后方能释放锁定;若多个排队解救服务同时被调起,同时对同一家银行的排队清算业务进行解救,排队解救服务将互相等待,若等待时间太久,可能导致交易超时失败。2.当有多个排队解救服务同时被调起解救同一个排队清算业务时,可能出现一个排队解救服务解救成功,其他排队解救服务进行解救处理时发现待解救的排队清算业务已经清算,解救失败。3.排队解救服务被调起后只能对一个排队账号的排队业务进行解救,解救完成后,排队解救服务终止,不会尝试继续解救另一个账号的排队清算业务。如:账号1和账号2均有排队清算业务,其中一笔排队清算业务是账号1支付给账号2一笔资金,若解救账号1时这笔排队清算业务被解救,此时,账号2的资金可能已足够解救其他的排队清算业务,但排队解救服务不会尝试继续解救账号2的排队清算业务。4.由于排队解救服务被异步调起,并由参数获得被解救的账号,若解救服务发生错误处理失败,交易回滚,则可能无法再次触发对该账号的解救动作。因此,鉴于现有排队解救服务存在的上述问题,本领域技术人员亟待提供一种跨行支付系统的清算业务队列解救方法,以避免出现多个交易同时对同一笔排队业务进行解救的情况,防止出现多个交易相互等待而出现解救操作对系统资源争用的情况,并提高解救效率。技术实现要素:有鉴于此,本发明要解决的技术问题在于提供一种跨行支付系统的清算业务队列解救方法及装置,解决了现有排队解救服务一次只能解救一个排队账号和排队解救服务多次被同时调起、浪费系统资源的问题。为了解决上述技术问题,本发明的具体实施方式提供一种跨行支付系统的清算业务队列解救方法,包括:将可用头寸不足的账号存入临时数据队列中;通过与所述账号相关的多个连续触发事件中的第一个触发事件启动排队解救服务;利用所述排队解救服务从所述临时数据队列中读取所述账号来处理位于清算业务列表中的清算业务,其中,根据业务优先级处理同一账号下的清算业务。本发明的具体实施方式还提供一种跨行支付系统的清算业务队列解救装置,包括:存储单元,用于将可用头寸不足的账号存入临时数据队列中;触发单元,用于通过与所述账号相关的多个连续触发事件中的第一个触发事件启动排队解救服务;处理单元,用于利用所述排队解救服务从所述临时数据队列中读取所述账号来处理位于清算业务列表中的清算业务,其中,根据业务优先级处理同一账号下的清算业务。根据本发明的上述具体实施方式可知,跨行支付系统的清算业务队列解救方法及装置仅通过多个连续触发事件中的第一个触发事件调起(启动)一个排队解救服务,循环从临时数据队列(TDQ)中取出待解救的账号进行操作,至少具有以下有益效果:1.避免出现多个排队解救服务同时对同一笔清算业务进行解救的情况,不会出现多个排队解救服务互相等待,从而减少排队解救操作对系统资源的争用,并提高解救效率;2.减少了出现多个排队解救服务被调起(启动)后互相等待并回滚的情况,降低了系统开销;3.排队解救服务解救完一个账号(对应一家金融机构,如银行、信用合作社等)的清算业务后,可以继续解救另一个账号的清算业务;4.若排队解救服务发生错误处理失败,交易回滚,由于待解救的清算业务仍在清算业务列表中,下次由其它账号的清算业务重新调起或通过客户端手工调起时,可继续对该待解救清算业务进行解救操作。应了解的是,上述一般描述及以下具体实施方式仅为示例性及阐释性的,其并不能限制本发明所欲主张的范围。附图说明下面的所附附图是本发明的说明书的一部分,其绘示了本发明的示例实施例,所附附图与说明书的描述一起用来说明本发明的原理。图1为本发明具体实施方式提供的一种跨行支付系统的清算业务队列解救方法的实施例一的流程图;图2为本发明具体实施方式提供的一种跨行支付系统的清算业务队列解救方法的实施例二的流程图;图3为本发明具体实施方式提供的一种跨行支付系统的清算业务队列解救方法的实施例三的流程图;图4为本发明具体实施方式提供的一种跨行支付系统的清算业务队列解救装置的实施例一的示意框图;图5为本发明具体实施方式提供的一种跨行支付系统的清算业务队列解救装置的实施例二的示意框图;图6为本发明具体实施方式提供的一种跨行支付系统的清算业务队列解救装置的实施例三的示意框图;图7为本发明具体实施方式提供的一种跨行支付系统的清算业务队列解救装置的运行示意图。具体实施方式为使本发明实施例的目的、技术方案和优点更加清楚明白,下面将以附图及详细叙述清楚说明本发明所揭示内容的精神,任何所属
技术领域
技术人员在了解本
发明内容的实施例后,当可由本
发明内容所教示的技术,加以改变及修饰,其并不脱离本
发明内容的精神与范围。本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。另外,在附图及实施方式中所使用相同或类似标号的元件/构件是用来代表相同或类似部分。关于本文中所使用的“第一”、“第二”、…等,并非特别指称次序或顺位的意思,也非用以限定本发明,其仅为了区别以相同技术用语描述的元件或操作。关于本文中所使用的方向用语,例如:上、下、左、右、前或后等,仅是参考附图的方向。因此,使用的方向用语是用来说明并非用来限制本创作。关于本文中所使用的“包含”、“包括”、“具有”、“含有”等等,均为开放性的用语,即意指包含但不限于。关于本文中所使用的“及/或”,包括所述事物的任一或全部组合。关于本文中所使用的用语“大致”、“约”等,用以修饰任何可以微变化的数量或误差,但这些微变化或误差并不会改变其本质。一般而言,此类用语所修饰的微变化或误差的范围在部分实施例中可为20%,在部分实施例中可为10%,在部分实施例中可为5%或是其他数值。本领域技术人员应当了解,前述提及的数值可依实际需求而调整,并不以此为限。某些用以描述本申请的用词将于下或在此说明书的别处讨论,以提供本领域技术人员在有关本申请的描述上额外的引导。图1为本发明具体实施方式提供的一种跨行支付系统的清算业务队列解救方法的实施例一的流程图,如图1所示,使用临时数据队列(TDQ)来存放待解救的账号,并对排队解救服务的并发数进行控制,同一时间只允许一个排队解救服务运行。该附图所示的具体实施方式包括:步骤101:将可用头寸不足的账号存入临时数据队列中。本发明的具体实施例中,可以在IBM的CICS主机交易平台上定义一个临时数据队列,临时数据队列具有以下属性:(1)数据在临时数据队列中以先进先出(FIFO)的模式进行管理;(2)数据从临时数据队列读出后,将自动被删除;(3)数据指针始终指向临时数据队列的第一条数据。清算业务对应的可用头寸不足的账号无法进行足额清算,需要排队,因此将可用头寸不足的账号存入临时数据队列中。步骤102:通过与所述账号相关的多个连续触发事件中的第一个触发事件启动排队解救服务。通过与账号有关的多个连续触发事件中的第一个触发事件启动排队解救服务,第一个触发事件就是指多个连续触发事件中最先发生的事件。本发明的具体实施例中,触发事件具体包括:临时数据队列中账号的账户余额增加,由于清算业务得到清算导致账号的账户余额增加;临时数据队列中账号的余额最低控制金额调减,余额最低控制金额调减会导致账号的账户余额增加;临时数据队列中账号的圈存资金调减,圈存资金调减会导致账号的账户余额增加;临时数据队列中首行账号顺序发生变化,并且首行账号下业务优先级最高的清算业务的排队金额不大于首行账号的账户余额,账号顺序发生变化后,临时数据队列中第一账号的账户余额足够支配排队金额;管理人员手动启动排队解救服务,出于管理目的,管理人员手动启动排队解救服务。步骤103:利用所述排队解救服务从所述临时数据队列中读取所述账号来处理位于清算业务列表中的清算业务,其中,根据业务优先级处理同一账号下的清算业务。其中,业务优先级分为高、中、低三级,对于所述业务优先级相同的清算业务,根据清算业务在清算业务列表中的顺序依次处理。本发明的具体实施例中,将触发事件对应的账号存放在临时数据队列(TDQ)中,根据账号顺序依次处理位于清算业务列表中的清算业务,例如,在支付清算系统中共有10个账号(账号1~账号10),其中,根据清算业务列表中的清算业务来划分,账号1~账号5在相应的清算业务中为借记账号,因此,假如触发事件对应的账号为账号1~账号5,按照触发事件发生的顺序依次将账号1~账号5存放在临时数据队列中,在清算业务列表中有账号1、账号2、账号3、账号4和账号5的10个清算业务B001~B010,其中,账号1下有清算业务B001、清算业务B003、清算业务B006和清算业务B009;账号2下有清算业务B004、清算业务B005;账号3下有清算业务B002;账号4下有清算业务B007和清算业务B010;账号5下有清算业务B008。如果账号顺序为账号1~5,那么首先处理账号1下的清算业务B001、清算业务B003、清算业务B006和清算业务B009,然后处理账号2下的清算业务B004、清算业务B005;……;最后处理账号5下的清算业务B008。处理清算业务B001、清算业务B003、清算业务B006和清算业务B009时,根据业务优先级依次处理,如果业务优先级相同,根据清算业务在清算业务列表中的顺序依次处理。同理,处理清算业务B004和清算业务B005时,根据业务优先级依次处理,如果业务优先级相同,根据清算业务在清算业务列表中的顺序依次处理。参见图1,避免出现多个排队解救服务同时对同一笔排队清算业务进行解救的情况,不会出现多个排队解救服务互相等待,从而减少排队解救操作对系统资源的争用,并提高解救效率;排队解救服务解救完一个账号(对应一家金融机构,如银行、信用合作社等)的排队清算业务后,可以继续解救另一个账号的业务;若排队解救服务发生错误处理失败,交易回滚,由于待解救的清算业务仍在清算业务列表中,下次由其它账号的排队清算业务重新调起或通过客户端手工调起时,可继续对该待解救清算业务进行解救操作。本发明的一具体实施例中假设跨行支付系统中共有账号1~账号10共10个参与者,现有账号1~账号5共5个参与者的10笔排队业务,排队顺序、排队金额和业务优先级如下表1所示,表1为清算业务列表,表1中“Act”指账户,表1中“High”指代高业务优先级,表1中“Medium”指代中业务优先级,表1中“Low”指代低业务优先级。表1排队序号业务编号账号排队金额贷记账号业务优先级001B001Act1100Act3Medium002B002Act3300Act6Medium003B003Act1120Act4High004B004Act2150Act7Medium005B005Act280Act7High006B006Act1200Act6Low007B007Act4130Act7Medium008B008Act5500Act8Medium009B009Act1180Act9Medium010B010Act490Act10High各账号当前可用账户余额如表2所示,表中“Act”指账户。表2临时数据队列中存储的账号顺序如表3所示,表中“Act”指账户。表31Act12Act33Act24Act45Act5通过表3可以看出,Act1对应的触发事件最先发生,该触发事件为第一个触发事件,该触发事件用来启动排队解救服务;另外几个连续的触发事件对应的账号分别为Act3、Act2、Act4、Act5,所有触发事件发生的时间先后顺序为Act1、Act3、Act2、Act4、Act5。某参与者Act6(即账号6)向Act1(贷记账号1)发送一笔贷记业务(在该笔贷记业务中Act6为账号,Act1为贷记账号),贷记业务的金额为200,清算成功。此时,Act1的当前余额为80+200=280,符合启动排队解救服务的条件。排队解救服务启动后,读取TDQ中第一个账号Act1,针对账号Act1的清算业务进行解救。通过表1可以看出,根据Act1排队业务的业务优先级,首先解救清算业务B003,清算业务B003清算(处理)成功后,Act1的当前账户余额为280-120=160,Act4的当前账户余额为110+120=130,继续解救清算业务B001。B001清算成功后,Act1的当前账户余额为160-100=60,Act3的当前账户余额为250+100=350,Act1的当前账户余额不足以解救Act1的下一笔清算业务B009,此时排队解救服务停止解救Act1。排队解救服务从TDQ中读取下一个账号Act3,针对Act3的清算业务进行解救;由于Act3的当前账户余额足够清算第一笔清算业务B002,B002可以解救,B002清算成功后,Act3的当前账户余额为350-300=50,此时,Act3没有下一笔需要解救的清算业务。排队解救服务继续读取TDQ中下一个账号Act2,Act2当前余额为60,不足以解救清算业务B004和清算业务B005,此时排队解救服务停止解救Act2;排队解救服务继续读取TDQ中下一个账号Act4,针对Act4的清算业务进行解救;Act4当前账户余额为130,足够清算优先级最高的第一笔清算业务B010,B010可以解救,B010清算成功后,Act4的当前余额为130-90=40,不足以解救下一笔清算业务B007,此时排队解救服务停止解救Act4。排队解救服务继续读取TDQ中下一个账号Act5,Act5当前余额为400,不足以解救清算业务B008,此时,由于TDQ中没有其他待解救的账号,排队解救服务退出。排队解救服务处理完成后,排队业务列表中剩余的清算业务如表4所示,表4为删除处理完成的清算业务后的清算业务列表。其中,表中“Act”指账户,表中“High”指代高业务优先级,表中“Medium”指代中业务优先级,表中“Low”指代低业务优先级。表4排队序号业务编号账号排队金额收款账号优先级001B004Act2150Act7Medium002B005Act280Act7High003B006Act1200Act6Low004B007Act4130Act7Medium005B008Act5500Act8Medium006B009Act1180Act9Medium图2为本发明具体实施方式提供的一种跨行支付系统的清算业务队列解救方法的实施例二的流程图,如图2所示,将完成解救处理的清算业务从清算业务列表中删除,从而释放系统资源,以便对清算业务列表中其它清算业务进行清算处理或者解救处理。在该附图所示的具体实施方式中,在步骤103之后,清算业务队列解救方法还包括:步骤104:将处理完成的清算业务从所述清算业务列表中删除。参见图2,将清算业务从清算业务列表中删除,释放系统资源,提高支付业务的清算效率。图3为本发明具体实施方式提供的一种跨行支付系统的清算业务队列解救方法的实施例三的流程图,如图3所示,排队解救服务启动后,首先处理临时数据队列(TDQ)中第一个账号下位于清算业务列表中的清算业务;当第一个账号下位于清算业务列表中的清算业务被处理完,或者由于第一个账号的账户余额不足,不能继续进行清算业务处理时,转而处理临时数据队列(TDQ)中第二个账号下位于清算业务列表中的清算业务,……,以此类推,直到处理完临时数据队列(TDQ)中最后一个账号下位于清算业务列表中的清算业务,排队解救服务终止。该附图所示的具体实施方式中,步骤102具体包括:步骤1031:利用所述排队解救服务从所述临时数据队列中读取所述账号。步骤1032:判断所述排队解救服务是否从所述临时数据队列中读取到所述账号,如果是,进行下一步,否则,跳转到步骤1036。步骤1033:根据所述业务优先级处理所述账号下位于所述清算业务列表中的清算业务。假如,首行账号1下有清算业务B001、清算业务B003、清算业务B006和清算业务B009,处理清算业务B001、清算业务B003、清算业务B006和清算业务B009时,根据业务优先级依次处理,如果业务优先级相同,根据清算业务在清算业务列表中的顺序依次处理。步骤1034:判断所述账号在所述清算业务列表中的所有清算业务是否处理完成,如果是,跳转到步骤1031,否则,进行下一步。步骤1035:判断所述账号的账户余额是否小于当前待处理清算业务对应的排队金额,如果是,跳转到步骤1031,否则,跳转到步骤1032。例如,账号1下的清算业务B001、清算业务B003、清算业务B006和清算业务B009被完全处理,或者,当处理清算业务B001、清算业务B003、清算业务B006和清算业务B009中的任一个清算业务时,账号1的账户余额小于当前处理清算业务的排队金额时,开始处理临时数据队列中下一个账号的清算业务。步骤1036:终止所述排队解救服务。参见图3,避免出现多个排队解救服务同时对同一笔排队清算业务进行解救的情况,不会出现多个排队解救服务互相等待,从而减少排队解救操作对系统资源的争用,并提高解救效率;排队解救服务解救完一个账号(某家金融机构的清算业务)的排队清算业务后,可以继续解救另一个账号的清算业务。本发明的具体实施方式中,步骤1033具体包括:将清算业务对应的借记账号的账户余额减去清算业务对应的排队金额;将清算业务对应的贷记账号的账户余额加上清算业务对应的排队金额。图4为本发明具体实施方式提供的一种跨行支付系统的清算业务队列解救装置的实施例一的示意框图,如图4所示的清算业务队列解救装置可以应用到如图1-图3所示的清算业务队列解救方法中,将使用临时数据队列(TDQ)来存放待解救的账号,并对排队解救服务的并发数进行控制,同一时间只允许一个排队解救服务运行避免出现多个交易同时对同一笔清算业务进行解救的情况。该附图所示的具体实施方式中,清算业务队列解救装置包括存储单元1、触发单元2和处理单元3,其中,存储单元1用于将可用头寸不足的账号存入临时数据队列中;触发单元1用于通过与所述账号相关的多个连续触发事件中的第一个触发事件启动排队解救服务;处理单元3用于利用所述排队解救服务从所述临时数据队列中读取所述账号来处理位于清算业务列表中的清算业务,其中,根据业务优先级处理同一账号下的清算业务。本发明的具体实施例中,所述触发事件具体包括:临时数据队列中账号的账户余额增加,由于清算业务得到清算导致账号的账户余额增加;临时数据队列中账号的余额最低控制金额调减,余额最低控制金额调减会导致账号的账户余额增加;临时数据队列中账号的圈存资金调减,圈存资金调减会导致账号的账户余额增加;临时数据队列中首行账号顺序发生变化,并且首行账号下业务优先级最高的清算业务的排队金额不大于首行账号的账户余额,账号顺序发生变化后,临时数据队列中第一账号的账户余额足够支配排队金额;管理人员手动启动排队解救服务,出于管理目的,管理人员手动启动排队解救服务。参见图4,本发明避免出现多个排队解救服务同时对同一笔排队清算业务进行解救的情况,不会出现多个排队解救服务互相等待,从而减少排队解救操作对系统资源的争用,并提高解救效率;排队解救服务解救完一个账号(对应一家金融机构,如银行、信用合作社等)的排队清算业务后,可以继续解救另一个账号的业务;若排队解救服务发生错误处理失败,交易回滚,由于待解救的清算业务仍在清算业务列表中,下次由其它账号的清算业务重新调起或通过客户端手工调起时,可继续对该待解救清算业务进行解救操作。图5为本发明具体实施方式提供的一种跨行支付系统的清算业务队列解救装置的实施例二的示意框图,如图5所示,将完成解救处理的清算业务从清算业务列表中删除,从而释放系统资源,以便对清算业务列表中其它清算业务进行清算处理或者解救处理。该附图所示的具体实施方式中,清算业务队列解救装置包括删除单元4,其中,删除单元4用于将处理完成的清算业务从所述清算业务列表中删除。参见图5,将清算业务从清算业务列表中删除,释放系统资源,提高支付业务的清算效率。图6为本发明具体实施方式提供的一种跨行支付系统的清算业务队列解救装置的实施例三的示意框图,如图6所示,排队解救服务启动后,首先处理临时数据队列(TDQ)中第一个账号下位于清算业务列表中的清算业务;当第一个账号下位于清算业务列表中的清算业务被处理完,或者由于第一个账号的账户余额不足,不能继续进行清算业务处理时,跳转处理临时数据队列(TDQ)中第二个账号下位于清算业务列表中的清算业务,……,以此类推,直到处理完临时数据队列(TDQ)中最后一个账号下位于清算业务列表中的清算业务,排队解救服务终止。该附图所示的具体实施方式中,处理单元3具体包括读取模块31、第一判断模块32、处理模块33、第二判断模块34、第三判断模块35和终止模块36,其中,读取模块31用于利用所述排队解救服务从所述临时数据队列中读取所述账号;第一判断模块32用于判断所述排队解救服务是否从所述临时数据队列中读取到所述账号;处理模块33用于根据所述业务优先级处理所述账号下位于所述清算业务列表中的清算业务;第二判断模块34用于判断所述账号在所述清算业务列表中的所有清算业务是否处理完成;第三判断模块35用于判断所述账号的账户余额是否小于当前待处理清算业务对应的排队金额;终止模块36用于终止所述排队解救服务。参见图6,排队解救服务解救完一个账号(某家金融机构的清算业务)的排队清算业务后,可以继续解救另一个账号的清算业务。本发明具体实施方式中,处理模块33进一步包括减法子模块和加法子模块,其中,减法子模块用于将清算业务对应的借记账号的账户余额减去清算业务对应的排队金额;加法子模块用于将清算业务对应的贷记账号的账户余额加上清算业务对应的排队金额。图7为本发明具体实施方式提供的一种跨行支付系统的清算业务队列解救装置的运行示意图,如图7所示,通过触发事件启动一个排队解救服务,并且同一时间内仅允许调起一个排队解救服务,循环从临时数据队列中取出待解救的排队账号进行处理,根据业务优先级处理同一账号下的位于清算业务列表中的清算业务,对于业务优先级相同的清算业务,根据清算业务在清算业务列表中的顺序进行处理,清算业务处理具体为:清算业务对应的账号的账户余额减去清算业务对应的排队金额;清算业务对应的贷记账号的账户余额加上清算业务对应的排队金额。本发明具体实施例提供一种跨行支付系统的清算业务队列解救方法及装置,通过调起一个排队解救服务,循环从临时数据队列中取出待解救的排队账号进行操作,避免出现多个排队解救服务同时对同一笔排队清算业务进行解救的情况,不会出现多个排队解救服务互相等待,从而减少了排队解救操作对系统资源的争用,并提高解救效率;减少了出现多个排队解救服务被调起后互相等待并回滚的情况,降低了系统开销;排队解救服务解救完一个账号(对应一家金融机构,如银行、信用合作社等)的排队清算业务后,可以继续解救另一个账号的业务;若排队解救服务发生错误处理失败,交易回滚,由于待解救的清算业务仍在清算业务列表中,下次由其它账号的清算业务重新调起或通过客户端手工调起时,可继续对该待解救清算业务进行解救操作。上述的本发明实施例可在各种硬件、软件编码或两者组合中进行实施。例如,本发明的实施例也可为在数据信号处理器(DigitalSignalProcessor,DSP)中执行上述方法的程序代码。本发明也可涉及计算机处理器、数字信号处理器、微处理器或现场可编程门阵列(FieldProgrammableGateArray,FPGA)执行的多种功能。可根据本发明配置上述处理器执行特定任务,其通过执行定义了本发明揭示的特定方法的机器可读软件代码或固件代码来完成。可将软件代码或固件代码发展为不同的程序语言与不同的格式或形式。也可为不同的目标平台编译软件代码。然而,根据本发明执行任务的软件代码与其他类型配置代码的不同代码样式、类型与语言不脱离本发明的精神与范围。以上所述仅为本发明示意性的具体实施方式,在不脱离本发明的构思和原则的前提下,任何本领域的技术人员所做出的等同变化与修改,均应属于本发明保护的范围。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1