logo
登录 / 注册

大话证券IT连载第十三天——证券交易系统架构演进

头像
肖志平
23-02-08 · 资管业务科技负责人

很久没来了,今天咱们主要来聊一聊券商核心交易系统的架构演进之路

  1. 什么是券商核心交易系统

  2. 第一代交易系统架构

  3. 第二代交易系统架构

  4. 未来发展走势

什么是券商核心交易系统


一、交易所系统演进概况说到交易系统咱们首先联想到的可能是交易所系统,下图展示了上交所系统演进过程

图片

交易所系统作为最终撮合成交的系统,券商的交易系统将订单最终发送给交易所进行撮合成交。


二、券商交易系统概况,下图是一个典型的券商交易系统逻辑架构,而集中交易系统在证券经纪业务中处于核心地位,本文主要讨论集中交易系统的架构演进。

三、集中交易系统职能

集中交易系统是按照满足券商经纪业务来设计的,因此承载了很多业务职能。大致可以分为以下几大类:

1、账户业务。可以为客户进行账户开户、销户、管理业务权限、处理与交易相关的适当性管理、合规报送等。

2、资金业务。早期通过银证转帐实现,后来全面实行了客户保证金三方存管制度。

3、证券交易业务。处理投资者提交的各类交易指令,按照交易规则进行资金和证券的处理,并实现与交易所的委托和成交指令的对接。

4、信用交易业务。2010年证监会推出融资融券业务试点,投资者可以通过向证券公司融资买入股票,也可以融券卖出股票,实现了杠杆交易。系统需要按照信用交易的业务规则处理各类交易指令。

5、基金代销业务。投资者可以通过证券账户购买开放式基金产品,系统处理投资者的产品申购赎回指令,并实现与相应基金公司的指令交互和资金、份额结算。

6、清算业务。负责与交易所、登记结算公司进行数据交互和业务核对,完成客户在交易所内产品的资金、股份清算和结算。

7、查询业务。满足客户需要的各种交易流水、对账单、交割单等业务数据。

8、理财产品销售。券商为扩大客户投资品种范围,自行提供的各类理财产品的销售。

9、现金余额理财业务。可将客户投资账户上的现金余额自动申购为货币基金,提高客户的资金收益。

10、其他管理职能。系统参数设置、客户账号安全、外围系统接入、异常交易监控等。


四、集中交易业务特点

第一个特点时效性。主要表现在:

1、交易时段限制。交易所开盘只有4个小时,在开盘时间范围内的指令才会得到处理。

2、竞价交易规则。交易达成是通过竞价实现的,竞价规则是价格优先+时间优先。如果指令提交太慢,就可能错过最佳的成交时间。

“时效性”的特点,决定了集中交易系统在设计时,必须要满足以下特性:(1)极强的稳定性和高可用性,尤其是在交易时段的高可用性(2)有竞争力的性能指标,保障客户的交易指令能快速到达交易所(3)主要业务都在开盘时间内集中处理,因此需要有足够的系统容量,并能随着业务规模的扩大灵活扩容。 

第二个特点是业务的外部性。证券开户需要通过登记结算公司,交易需要通过证券交易所,资金转帐需要通过存管银行,基金交易需要连接基金公司,交易清算需要依赖交易所和登记结算公司提供的结算文件。

外部性”的特点,决定了集中交易系统在设计时,需要充分考虑与外部系统之间的交互逻辑和业务规则间的对应关系。 

第三个特点是金融产品的多样性。各种金融产品的交易、结算、交收规则各不相同,要求业务系统具有很好的灵活性,能适应各种不同金融产品的业务处理要求。


第四个特点是业务的合规性。根据资本市场的主体责任划分,券商需要对交易的合规性进行前置检查,不允许出现证券卖空、资金透支等交易风险,因此就要求业务系统要保障业务逻辑的一致性。



第一代交易系统架构



第一代的集中交易系统主要供应商包括恒生电子、金证股份、金仕达软件等,基本都采用了三层架构。如上图所示。


一、系统分层,共分为三层

1、接入层,一般为一个高性能的消息中间件,负责渠道系统的接入和业务消息传输。

2、业务逻辑层,一般包含业务处理中间件框架,负责将业务消息分配到不同的业务处理模块进行处理。各业务模块通过与数据库交互,处理相应的业务请求。与外部系统相关的业务,则产生相应的业务请求并发送到外部系统,如交易所报盘、银行转账、登记结算公司账户开户等。

3、数据库,也称为数据层,通过传统的关系型数据库存储所有的业务数据,也有些系统通过存储过程实现部分的业务逻辑。 

 

二、第一代的集中交易系统特点

    1、通过数据库的事务一致性原理,实现业务逻辑的强一致性。如证券交易要求客户的资金冻结和订单委托必须保证一致性,系统就会把这两个数据库操作封装在一个事务中处理,确保其一致性。

    2、数据库承担了大量的业务处理逻辑,为了达到交易系统对容量和延时的要求,必须配置高性能的软硬件设备。软件基本都采用了Oracle、DB2等数据库,硬件则采用IBM的小型机设备,并配备EMC的高端存储。是一种典型的IOE架构。

    3、业务中间件负责业务流程的组织,有统一的业务处理框架,通过将不同的业务分拆成可以动态加载的模块,实现系统功能的扩展,但核心逻辑仍然是对数据库的操作。中间件一般会设计成无状态模式,可以任意增加,单台故障也不会影响业务连续性和数据一致性。

    4、通过数据库复制软件将业务数据复制到备机和灾备机,即实现了业务系统的备份和灾备。正常状态下,备份系统只能执行业务查询,不能处理交易指令。如主机发生故障,可将备份系统启用。如主备系统均不可用,则可切换到灾备机。系统的可用性水平(如RTO,RPO)主要取决于数据库复制的速度。

 

三、第一代集中交易系统面临的问题

     1、由于采用了数据库事务强一致性的方案,导致存在严重的资源争用,数据库成为整个系统的容量和性能瓶颈。券商被迫使用高性能的硬件设备来提高系统容量,降低交易延时,这又导致了高昂的系统部署和维护成本。而且从理论上讲,单台数据库系统有容量上限,交易处理延时下降也存在理论下限。

     2、由于每一项证券业务都在使用客户的资金信息,因此资金信息成为资源争用的中心。数据库事务很容易造成数据资源之间的死锁,因此对业务逻辑的编写有很高的要求,加剧了业务之间的耦合,使系统的研发和维护成本越来越高。

 

 第二代交易系统架构


第一代证券交易系统从2005年开始进入券商,基本满足了当时的市场业务需要。但随着资本市场的快速发展,特别是在经历了2008年的牛市行情,市场成交量逐步放大的背景下,部分商开始尝试解决集中交易系统可能面临的容量和性能问题。 


上图是第二代集中交易系统简要的架构图,第二代交易系统主要做了如下的升级。

一、第二代交易系统特点

1、使用支持事务一致性的分布式的数据库系统,试图从数据库层面解决但数据库面临的容量问题,DB2也曾发布过类似的产品,但最终未能得到供应商的支持。但Oracle RAC架构的推出,解决了主备数据库的数据同步和高可用问题,因此得到了全面实施。


2、业务逻辑前移,将主要计算逻辑从数据库迁移业务中间件处理,降低数据库的负载。但由于证券业务并非计算密集型的应用,而是数据操作性的应用,最终还是需要和数据打交道,这种方案也只能部分降低数据库的负载。


3、将客户按一定的规则进行分拆,通过部署多个交易中心,解决单交易中心的性能容量问题。这个方案得到了供应商的支持,纷纷发布了新的集中交易产品。通过客户分拆,理论上系统的容量可以没有上限,但在单个节点上,由于数据库事务强一致性的约束,单笔交易的系统延时还是很大。


4、使用弱事务一致性来处理交易逻辑,即在处理交易时,不再强制在单一事务内完成资金和交易的处理,而是把它分解成两步,降低事务的原子级别,如果处理过程中发生异常,则通过反向交易进行账务回冲,从逻辑上保证业务处理的正确性。


在供应商的推动下,券商从2009年开始全面部署第二代集中交易系统,随后证券市场开始出现了新的变化,包括:

1、交易量开始稳步上升,两市每天稳定在3000亿以上,随时有放大的趋势。

2、易所开始推出各类创新的业务品种,包括创业板、融资融券、个股期权、沪深港通、固定收益产品扩容到地方政府债、公司债、企业债、ABS等。

3、证监会放开非现场开户后,客户争夺更加激烈,市场佣金持续下降。

4、业务合规性要求越来越高


二、第二代集中交易系统面临的问题

     1、新业务频繁推出,叠加券商间对客户资源的争夺日趋激烈,给集中交易系统带来了庞大的新增需求,供应商响应速度无法达到券商的业务需要,且频繁变更也给系统安全运行带来了巨大的挑战。

     2、大量出现了以量化私募基金为代表的专业机构投资者,他们对交易系统的要求提升了一个量级。

     3、交易规模和峰值的不断扩大,对系统的吞吐量,性能和稳定性带来严峻的挑战。



未来发展趋势


立足第二代集中交易系统,行业各种优化创新措施不断,主要集中在以下几个方面。

一、分布式部署,服务拆分,引入最新的mircoservice概念,建立服务编排功能。

图片

拆分思路

1、将账户系统进行剥离,从而为券商优化经纪业务运营体系提供可能性。按照这个思路,部分券商上线了独立的账户系统,将与营业网点相关的账户开立、资料录入、业务审核、合规报送等功能从集中交易完全剥离出来。

2、将数据查询功能进行剥离,部署独立的数据中心系统,一方面可以减轻集中交易系统数据查询带来的压力,另一方面也可以进一步完善对客户的服务。

3、将理财产品销售功能进行剥离,部署专门用于处理产品销售的OTC系统,将原有开放式基金业务也纳入OTC系统统一处理。

4、独立清算子系统,部分券商将清算职能从集中交易系统完全剥离出来,纳入统一的清算运营平台,更有甚者,将公司自营、资管等业务线的清算也统一考虑,形成了公司级的运营平台。 


二、极速交易系统迭代及发展,为了满足专业投资者交易需求,如量化等,不断涌现的极速交易系统正快速发展。

图片

如上图基于Matrin Flowler的 CQRS架构模式,产生于2011的全内存交易架构最早应用于伦敦LMAX交易所,LMAX 是由全球领先的博彩交易所Betfair于2010年10月创建,能够在无锁的情况下实现网络的Queue并发操作,性能号称单线程每秒能够处理600万笔订单。

LMAX架构如上图,笔者于2012年接触此架构并应用于实际业务,架构特点如下:

  1. 高效的Ringbuffer无锁队列机制。

  2. 全内存事务处理。

  3. 业务逻辑处理其于actor模式。

  4. 首次提出并解决CPU多核伪共享性能问题。


基于以上国内快速涌现一批基于全内存的极速交易系统,但由于数据全部保存在内存中,损失了一定的高可用性,且由于业务串行化处理,吞吐量也受到了一定限制,因此单个节点的快速交易无法承载很多客户,券商会根据需要部署多套快速交易系统,有些甚至部署不同供应商的快速交易系统。


三、大量软硬件新技术的涌现 ,如下图,大量基于硬件,系统和网络层面的低延时,并行处理技术越来越多的应用于交易系统中。

图片


结语:

券商交易系统经过将近20年的发展,逐步发展完善,在目前新业务不断涌现,客户要求不断提高的今天,仍然面临巨大挑战,尤其近年来国产化的要求下,对于系统稳定性,扩展性和安全性提出新的挑战,相信在数字化思潮下,将取得更长足的进步。


大话证券IT连载第十三天——证券交易系统架构演进脉脉
阅读 451
声明:本文内容由脉脉用户自发贡献,部分内容可能整编自互联网,版权归原作者所有,脉脉不拥有其著作权,亦不承担相应法律责任。如果您发现有涉嫌抄袭的内容,请发邮件至maimai@taou.com,一经查实,将立刻删除涉嫌侵权内容。
相关推荐
最新发布
大家都在看
热门人脉圈
    全部8条评论
    头像
    李先生

    正在学习证券业务,非常受用,正好学习到

    23-10-20
    头像
    谷先生

    感谢老哥分享

    23-05-25
    头像
    O先生

    层次很清晰,学习了

    23-02-19
    头像
    李先生

    23-02-16
    头像
    少先生

    肖总👍🏻

    肖先生
    23-02-14
    头像
    简先生

    老哥写得很赞

    23-02-11
    头像
    袁先生

    学习学习

    23-02-08
    头像
    我来说几句...