跨行支付系统的清算业务缓存队列撮合方法及装置与流程

文档序号:11865724阅读:573来源:国知局
跨行支付系统的清算业务缓存队列撮合方法及装置与流程

本发明涉及计算机技术领域,尤其涉及一种银行间跨行资金清算方法,具体来说就是一种跨行支付系统的清算业务缓存队列撮合方法及装置。



背景技术:

目前,中国现代化支付系统(CNAPS)为参与者和特许参与者提供银行间跨行资金清算服务,银行间跨行资金清算服务为接入的参与者和特许参与者提供银行间资金清算服务。跨行资金清算系统是一种基于事务管理器的联机交易处理系统,针对不同的业务功能设计了不同的处理服务,服务之间采用同步或异步的方式互相调用,以完成对应的功能。参与者和特许参与者开设的清算账户均在支付清算系统集中存储,参与者向支付清算系统发送支付清算指令,大额实时支付系统(HVPS)对收到的支付清算指令进行实时足额清算,当清算账户可用头寸不足支付时,提供清算缓存队列处理机制,并将业务缓存队列状态通知有关参与者。

但是,现有的跨行资金清算系统支付业务清算效率低下,业务经常出现“死锁”现象,因此,本领域技术人员亟待提供一种跨行资金清算系统的清算缓存队列撮合方法,以提高支付业务的清算效率,防止清算业务出现“死锁”。



技术实现要素:

有鉴于此,本发明要解决的技术问题在于提供一种跨行支付系统的清算业务缓存队列撮合方法及装置,解决了现有银行间支付系统支付业务清算效率低下,清算业务经常出现死锁的问题。

为了解决上述技术问题,本发明的具体实施方式提供一种跨行支付系统的清算业务缓存队列撮合方法,包括:根据当前处理的清算业务从清算业务缓存队列中选取清算业务;根据所述清算账户之间的借贷关系将当前处理的所述清算业务和选取的所述清算业务组成闭环缓存队列,其中,所述闭环缓存队列中所述清算账户的账户余额与贷记金额之和不小于借记金额;根据所述闭环缓存队列中所述清算账户的所述账户余额、所述贷记金额和所述借记金额计算该清算账户的清算账户余额。

本发明的具体实施方式还提供一种跨行支付系统的清算业务缓存队列撮合装置,包括:选取单元,用于根据当前处理的清算业务从清算业务缓存队列中选取清算业务;闭环组成单元,用于根据所述清算账户之间的借贷关系将当前处理的所述清算业务和选取的所述清算业务组成闭环缓存队列,其中,所述闭环缓存队列中所述清算账户的账户余额与贷记金额之和不小于借记金额;计算单元,用于根据所述闭环缓存队列中所述清算账户的所述账户余额、所述贷记金额和所述借记金额计算该清算账户的清算账户余额。

根据本发明的上述具体实施方式可知,跨行支付系统的清算业务缓存队列撮合方法及装置至少具有以下有益效果:根据当前清算业务从清算业务缓存队列中选取一个或多个清算业务,再将选取的清算业务组成闭环缓存队列,将每个清算账户的贷记金额和借记金额进行抵消从而获取撮合处理后每个清算业务对应的清算账户余额,并将组成闭环缓存队列的清算业务从清算业务缓存队列中释放,本发明可以节约参与者的资金,使参与者能用较少的清算账户头寸实现更大的流动性,提高支付业务的清算效率,节省跨行支付系统资源,防止因业务“死锁”导致的系统性风险。

应了解的是,上述一般描述及以下具体实施方式仅为示例性及阐释性的,其并不能限制本发明所欲主张的范围。

附图说明

下面的所附附图是本发明的说明书的一部分,其绘示了本发明的示例实施例,所附附图与说明书的描述一起用来说明本发明的原理。

图1为本发明具体实施方式提供的一种跨行支付系统的清算业务缓存队列撮合方法的实施例一的流程图;

图2为本发明具体实施方式提供的一种跨行支付系统的清算业务缓存队列撮合方法的实施例二的流程图;

图3为本发明具体实施方式提供的一种跨行支付系统的清算业务缓存队列撮合方法的实施例三的流程图;

图4为本发明具体实施方式提供的一种跨行支付系统的清算业务缓存队列撮合方法的闭环缓存队列资金流向示意图;

图5为本发明具体实施方式提供的一种跨行支付系统的清算业务缓存队列撮合方法的闭环缓存队列选取示意图;

图6为本发明具体实施方式提供的一种跨行支付系统的清算业务缓存队列撮合装置的实施例一的示意框图;

图7为本发明具体实施方式提供的一种跨行支付系统的清算业务缓存队列撮合装置的实施例二的示意框图;

图8为本发明具体实施方式提供的一种跨行支付系统的清算业务缓存队列撮合装置的实施例三的示意框图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚明白,下面将以附图及详细叙述清楚说明本发明所揭示内容的精神,任何所属技术领域技术人员在了解本发明内容的实施例后,当可由本发明内容所教示的技术,加以改变及修饰,其并不脱离本发明内容的精神与范围。

本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。另外,在附图及实施方式中所使用相同或类似标号的元件/构件是用来代表相同或类似部分。

关于本文中所使用的“第一”、“第二”、…等,并非特别指称次序或顺位的意思,也非用以限定本发明,其仅为了区别以相同技术用语描述的元件或操作。

关于本文中所使用的方向用语,例如:上、下、左、右、前或后等,仅是参考附图的方向。因此,使用的方向用语是用来说明并非用来限制本创作。

关于本文中所使用的“包含”、“包括”、“具有”、“含有”等等,均为开放性的用语,即意指包含但不限于。

关于本文中所使用的“及/或”,包括所述事物的任一或全部组合。

关于本文中所使用的用语“大致”、“约”等,用以修饰任何可以微变化的数量或误差,但这些微变化或误差并不会改变其本质。一般而言,此类用语所修饰的微变化或误差的范围在部分实施例中可为20%,在部分实施例中可为10%,在部分实施例中可为5%或是其他数值。本领域技术人员应当了解,前述提及的数值可依实际需求而调整,并不以此为限。

某些用以描述本申请的用词将于下或在此说明书的别处讨论,以提供本领域技术人员在有关本申请的描述上额外的引导。

图1为本发明具体实施方式提供的一种跨行支付系统的清算业务缓存队列撮合方法的实施例一的流程图,如图1所示,将清算业务缓存队列中两个或多个符合条件的清算业务进行抵消,以节约参与者的资金,使参与者能用较少的清算账户头寸实现更大的流动性。

该附图所示的具体实施方式包括:

步骤101:根据当前处理的清算业务从清算业务缓存队列中选取清算业务。其中,当前处理的所述清算业务对应的账户余额小于借记金额。由于当前正在处理的清算业务对应的账户余额小于借记金额,需要进行清算业务缓存队列撮合,支付业务清算才能继续进行下去。

步骤102:根据所述清算账户之间的借贷关系将当前处理的所述清算业务和选取的所述清算业务组成闭环缓存队列,其中,所述闭环缓存队列中所述清算账户的账户余额与贷记金额之和不小于借记金额。本发明的具体实施例中,所述闭环缓存队列中任一清算业务对应的贷记账户是与该清算业务相邻清算业务对应的借记账户;并且所述闭环缓存队列中任一清算业务对应的借记账户是与该清算业务相邻清算业务对应的贷记账户。例如,根据清算业务a、清算业务b和清算业务c对应的清算账户(分别为账户A、账户B和账户C)之间的借贷关系,将清算业务a、清算业务b、清算业务c组成闭环缓存队列,其中,账户A、账户B和账户C之间的借贷关系为账户A支付给账户B钱(即清算业务b),账户B支付给账户C钱(即清算业务c),账户C支付给账户A钱(即清算业务c);根据账户A、B、C之间借贷关系将清算业务a、清算业务b、清算业务c组成闭环缓存队列,即清算业务a→清算业务b→清算业务c,闭环缓存队列中的节点为账户A、B、C,即资金流向为账户A→账户B→账户C→账户A。对于清算业务a来说,清算业务a的借记账户为账户A,清算业务a的贷记账户为账户B;而清算业务a的相邻清算业务为清算业务b和清算业务c,对于清算业务b来说,清算业务b的借记账户为账户B;对于清算业务c来说,清算业务c对应的贷记账户为账户A。这样可以保证当前处理的清算业务对应的账户余额和贷记金额之和不小于借记金额,防止由于当前处理的清算业务对应的账户余额不足造成的“死锁”,节约参与者的资金,使参与者能用较少的清算账户头寸实现更大的流动性。

另外,本发明的其它具体实施例中,将当前处理的所述清算业务和选取的所述清算业务组成闭环缓存队列时,使用的清算账户的数量最少。如上所述,根据所述清算账户之间的借贷关系将当前处理的所述清算业务和选取的所述清算业务组成闭环缓存队列,可能会组成多个闭环缓存队列,例如资金流向为账户A→账户B→账户C→账户A时组成一个闭环缓存队列,资金流向为账户A→账户B→账户C→账户D→账户A时又组成一个闭环缓存队列,此时选取清算账户的数量最少的闭环缓存队列,即选取资金流向为账户A→账户B→账户C→账户A的闭环缓存队列进行撮合处理,这样可以大大减少撮合处理时的数据处理量和算法复杂度,进一步提高支付业务的清算效率,如图5所示,在图5中,清算业务a、清算业务b和清算业务c形成一个闭合缓存队列,在该闭合缓存队列中共有账户A、账户B和账户C三个清算账户;清算业务a、清算业务b、清算业务c、清算业务m和清算业务n又形成一个闭合缓存队列,在该闭合缓存队列中共有账户A、账户B、账户C和账户D四个清算账户,显然第一闭环缓存队列中清算账户的数量少于第二闭环缓存队列中清算账户的数量,此时以账户A、账户B和账户C形成的第一闭环缓存队列进行清算业务撮合处理,这样可以大大减少撮合处理时的数据处理量,消耗的系统资源少,可以进一步提高支付业务的清算效率。

例如,根据当前处理的清算业务为清算业务a,从清算业务缓存队列中选取清算业务b和清算业务c,根据清算业务a、清算业务b、清算业务c对应的清算账户(分别为账户A、账户B和账户C)之间的借贷关系,将清算业务a、清算业务b、清算业务c组成闭环缓存队列,账户A、账户B和账户C之间的借贷关系为账户A支付给账户B钱(即清算业务b),账户B支付给账户C钱(即清算业务c),账户C支付给账户A钱(即清算业务c);根据账户A、B、C之间借贷关系将清算业务a、清算业务b、清算业务c组成闭环缓存队列,即清算业务a→清算业务b→清算业务c,闭环缓存队列中的节点为账户A、B、C,即资金流向为账户A→账户B→账户C→账户A;假定账户A的账户余额为80,账户B的账户余额为90,账户C的账户余额为100;账户A的借记金额为90,账户B的借记金额为120,账户C的借记金额为140;根据借贷关系,显然,账户A的贷记金额为140,账户B的贷记金额为90,账户C的贷记金额为120;因此,账户A的账户余额80与贷记金额140之和为220,大于账户A的借记金额为90;账户B的账户余额90与贷记金额90之和为180,大于账户B的借记金额为120;账户C的账户余额100与贷记金额120之和为220,大于账户C的借记金额为140。

步骤103:根据所述闭环缓存队列中所述清算账户的所述账户余额、所述贷记金额和所述借记金额计算该清算账户的清算账户余额。具体来说就是,将所述闭环缓存队列中所述清算账户的所述账户余额和所述贷记金额求和后,减去该清算账户的所述借记金额获得该清算账户的清算账户余额。根据清算账户的账户余额、贷记金额和借记金额计算出该清算账户的清算账户余额(即对于每个清算账户:清算账户余额=可用额度(即账户余额)+∑贷记金额-∑借记金额(绝对值),式中,贷记金额和借记金额取和表示两个清算账户之间可能在清算业务缓存队列中同时存在多笔相同资金流向的清算业务,此时这样的清算业务可以合并处理,在闭环缓存队列示意图以多个箭头表示,如图4所示,在图4中,清算业务p与清算业务b的资金流向相同,此时,清算业务p和清算业务b合并处理,进一步提高支付业务的清算效率,此时清算业务p和清算业务b不是相邻的清算业务,清算业务p和清算业务b的相邻清算业务相同,均为清算业务a与清算业务c),例如,账户A的账户余额为80,账户B的账户余额为90,账户C的账户余额为100;账户A的借记金额为90,账户B的借记金额为120,账户C的借记金额为140;根据借贷关系,那么,账户A的贷记金额为140,账户B的贷记金额为90,账户C的贷记金额为120;因此,账户A的清算账户余额为:80+140-90=130;账户B的清算账户余额为:90+90-120=60;账户C的清算账户余额为:100+120-140=80。

参见图1,将清算业务缓存队列中两个或多个符合条件的清算业务进行抵消,从而可以节约参与者的资金,提高支付业务的清算效率,节省跨行支付系统资源,防止因业务“死锁”导致的系统性风险。

图2为本发明具体实施方式提供的一种跨行支付系统的清算业务缓存队列撮合方法的实施例二的流程图,如图2所示,将完成撮合处理的清算业务从清算业务缓存队列中删除,避免重复清算。

步骤104:将所述闭环缓存队列中的所述清算业务从清算业务缓存队列中删除。

参见图2,将清算业务从清算业务缓存队列中删除,释放系统资源,提高支付业务的清算效率。

图3为本发明具体实施方式提供的一种跨行支付系统的清算业务缓存队列撮合方法的实施例三的流程图,如图3所示,为了让清算账户及时掌握清算业务的撮合情况,向撮合成功的清算业务对应的参与者发送清算通知报文。

该附图所示的具体实施方式中,步骤103之后,该方法还包括:

步骤105:向所述清算业务对应的清算账户发送清算通知报文。

参见图3,向撮合成功的清算业务对应的参与者(清算账户)发送清算通知报文,让参与者及时了解清算业务的撮合结果,提高用户的体验度。向撮合成功的清算业务对应的参与者发送清算通知报文后,如果清算业务缓存队列中还存在满足撮合条件的清算业务,还可以再对清算业务缓存队列中的其它清算业务进行撮合抵消处理。

本发明的具体实施例中,从清算业务缓存队列中取不同参与者A、B、C的清算业务,假定直接参与者A、B、C(清算账户A、B、C)发起的大额清算业务a、b、c均处于清算排队状态,且大额清算业务a、b、c是由前者(直接参与者A的前者为直接参与者C)发起业务未被结算所引发,即存在如下关系。a->b->c->a。对清算业务a、b、c进行撮合处理,如果撮合后清算业务a、b、c清算账户余额均大于等于0(即每清算银行账户:可用额度≥∑借记金额(绝对值)-∑贷记金额),则撮合成功,清算业务清算;否则撮合失败,清算业务仍处于清算排队状态。表1为直接参与者A、B、C撮合前后,“清算排队业务金额”、“清算账户余额”,以及“清算账户余额计算过程”的变化,在撮合前直接参与者A(即清算业务a)的“清算排队业务金额”和“清算账户余额”分别为90.00和80.00,直接参与者B(即清算业务b)的“清算排队业务金额”和“清算账户余额”分别为120.00和90.00,直接参与者C(即清算业务c)的“清算排队业务金额”和“清算账户余额”分别为140.00和100.00。公式中的可用额度就是表1中的“清算账户余额”;公式中的借记金额(绝对值)之和就是“清算排队业务金额”;公式中的贷记金额之和就是闭环中下一参与者(清算参与银行)的“清算排队业务金额”;借记金额通常记为负值,因此,借记金额取绝对值。撮合完成后,直接参与者A、B、C的“清算排队业务金额”均为0.00,直接参与者A、B、C的“清算账户余额”分别为130.00、60.00、80.00。

表1

根据表1所示,直接参与者A、B、C满足公式:可用额度≥∑借记金额(绝对值)-∑贷记金额,符合撮合条件,因此可以进行撮合。具体撮合过程如下:

参与者A可用额度(80)≥∑借记金额(90)-∑贷记金额(140);

参与者B可用额度(90)≥∑借记金额(120)-∑贷记金额(90);

参与者C可用额度(100)≥∑借记金额(140)-∑贷记金额(120)。

撮合处理后,清算业务a的清算账户余额为80+140-90=130;清算业务b的清算账户余额为90+90-120=60;清算业务c的清算账户余额为120+100-140=80。

本发明的又一具体实施例中,从清算业务缓存队列中取不同参与者A、B、C、D、E的清算业务,假定直接参与者A、B、C、D、E(清算账户A、B、C、D、E)发起的大额清算业务a、b、c、d、e均处于清算排队状态,且大额清算业务a、b、c、d、e是由前者(清算账户A的前者为清算账户E)发起业务未被结算所引发,即存在如下关系:a->b->c->d->e->a。对清算业务a、b、c、d、e进行撮合处理,如果撮合后清算账户A、B、C、D、E清算账户余额均大于等于0(即每清算行账户:可用额度≥∑借记金额(绝对值)-∑贷记金额),则撮合成功,清算业务解救;否则撮合失败,清算业务仍处理清算排队状态。表2为直接参与者A、B、C、D、E撮合前后,“清算排队业务金额”、“清算账户余额”,以及“清算账户余额计算过程”的变化。在撮合前直接参与者A的“清算排队业务金额”和“清算账户余额”分别为90.00和80.00,直接参与者B的“清算排队业务金额”和“清算账户余额”分别为120.00和90.00,直接参与者C的“清算排队业务金额”和“清算账户余额”分别为140.00和100.00,直接参与者D的“清算排队业务金额”和“清算账户余额”分别为170.00和90.00,直接参与者E的“清算排队业务金额”和“清算账户余额”分别为60.00和30.00,。撮合完成后,直接参与者A、B、C、D、E的“清算排队业务金额”均为0.00,直接参与者A、B、C、D、E的“清算账户余额”分别为50.00、60.00、80.00、60.00、140。

表2

根据表2所示,直接参与者A、B、C、D、E满足公式:可用额度≥∑借记金额(绝对值)-∑贷记金额,符合撮合条件,因此可以进行撮合。具体撮合过程如下:

参与者A可用额度(80)≥∑借记金额(90)-∑贷记金额(60);

参与者B可用额度(90)≥∑借记金额(120)-∑贷记金额(90);

参与者C可用额度(100)≥∑借记金额(140)-∑贷记金额(120);

参与者D可用额度(90)≥∑借记金额(170)-∑贷记金额(140);

参与者E可用额度(30)≥∑借记金额(60)-∑贷记金额(170)。

撮合处理后,清算业务a的清算账户余额为80+60-90=50;清算业务b的清算账户余额为90+90-120=60;清算业务c的清算账户余额为120+100-140=80;清算业务d的清算账户余额为140+90-170=60;清算业务e的清算账户余额为170+30-60=140。

图6为本发明具体实施方式提供的一种跨行支付系统的清算业务缓存队列撮合装置的实施例一的示意框图,如图6所示的清算业务缓存队列撮合装置可以应用到如图1-图5所示的清算业务缓存队列撮合方法中,将清算业务缓存队列中两个或多个符合条件的清算业务进行抵消,以节约参与者的资金,使参与者能用较少的清算账户头寸实现更大的流动性。

该附图所示的具体实施方式中,清算业务缓存队列撮合装置包括选取单元1、闭环组成单元2和计算单元3,其中,选取单元1用于根据当前处理的清算业务从清算业务缓存队列中选取清算业务;闭环组成单元2用于根据所述清算账户之间的借贷关系将当前处理的所述清算业务和选取的所述清算业务组成闭环缓存队列,其中,所述闭环缓存队列中所述清算账户的账户余额与贷记金额之和不小于借记金额;计算单元3用于根据所述闭环缓存队列中所述清算账户的所述账户余额、所述贷记金额和所述借记金额计算该清算账户的清算账户余额。

参见图6,将清算业务缓存队列中两个或多个符合条件的清算业务进行抵消,从而可以节约参与者的资金,使参与者能用较少的清算账户头寸实现更大的流动性,提高支付业务的清算效率,节省跨行支付系统资源,防止因业务“死锁”导致的系统性风险。

图7为本发明具体实施方式提供的一种跨行支付系统的清算业务缓存队列撮合装置的实施例二的示意框图,如图7所示,将完成撮合处理的清算业务从清算业务缓存队列中删除,从而释放系统资源,以便清算业务缓存队列中其它清算业务进行清算或者撮合处理。

该附图所示的具体实施方式中,清算业务缓存队列撮合装置包括删除单元4,其中,删除单元4用于将所述闭环缓存队列中的所述清算业务从清算业务缓存队列中删除。

参见图7,将清算业务从清算业务缓存队列中删除,释放系统资源,提高支付业务的清算效率。

图8为本发明具体实施方式提供的一种跨行支付系统的清算业务缓存队列撮合装置的实施例三的示意框图,如图8所示,为了让参与者(清算账户)及时掌握清算业务的撮合情况,发送单元向撮合成功的清算业务对应的参与者发送清算通知报文。

该附图所示的具体实施方式中,清算业务缓存队列撮合装置还包括发送单元5,其中,发送单元5用于向所述清算业务对应的清算账户发送清算通知报文。

参见图8,向撮合成功的清算业务对应的参与者发送清算通知报文,让参与者(清算账户)及时了解清算业务的撮合结果,提高用户的体验度。向撮合成功的清算业务对应的参与者发送清算通知报文后,如果清算业务缓存队列中还存在满足撮合条件的清算业务,还可以再对清算业务缓存队列中的其它清算业务进行撮合抵消处理。

本发明具体实施例提供一种跨行支付系统的清算业务缓存队列撮合方法及装置,根据当前清算业务从清算业务缓存队列中选取一个或多个清算业务,再将选取的清算业务组成闭环缓存队列,将每个清算账户的贷记金额和借记金额进行抵消从而获取撮合处理后每个清算账户的清算账户余额(清算账户余额=账户额度+∑贷记金额-∑借记金额(绝对值)),并将组成闭环缓存队列的清算业务从清算业务缓存队列中释放,本发明可以节约参与者的资金,提高支付业务的清算效率,节省跨行支付系统资源,防止因业务“死锁”导致的系统性风险。

上述的本发明实施例可在各种硬件、软件编码或两者组合中进行实施。例如,本发明的实施例也可为在数据信号处理器(Digital Signal Processor,DSP)中执行上述方法的程序代码。本发明也可涉及计算机处理器、数字信号处理器、微处理器或现场可编程门阵列(Field Programmable Gate Array,FPGA)执行的多种功能。可根据本发明配置上述处理器执行特定任务,其通过执行定义了本发明揭示的特定方法的机器可读软件代码或固件代码来完成。可将软件代码或固件代码发展为不同的程序语言与不同的格式或形式。也可为不同的目标平台编译软件代码。然而,根据本发明执行任务的软件代码与其他类型配置代码的不同代码样式、类型与语言不脱离本发明的精神与范围。

以上所述仅为本发明示意性的具体实施方式,在不脱离本发明的构思和原则的前提下,任何本领域的技术人员所做出的等同变化与修改,均应属于本发明保护的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1