本文选自 《交易技术前沿》总第三十七期文章(2019年12月)
何志东 / 华锐分布式技术实验室 广东 深圳 518040
朱立 / 上交所技术公司 上海 200120
邓博 / 华锐分布式技术实验室 广东 深圳 518040
摘要
随着中国证券交易市场的快速发展,自然人投资者的增长给券商交易系统带来了系统容量上的压力,机构投资者的增长给券商交易系统提出了低时延等个性化的需求。交易系统的性能、容量、扩展性、对新业务的支持、可维护性等在当前业务场景下都面临着巨大的挑战。为了应对以上市场需求,目前中国证券行业正步入新一代券商交易系统选型建设的阶段,如何科学、客观地评估度量交易系统的质量显得尤为重要。本文的旨在探讨如何建立券商交易系统质量评估框架,以业界常用的五种质量模型McCall、Boehm、FURPS+、Dromey、ISO为基础,结合交易系统自身的特殊要求,根据行业的场景定义提出了细致可执行的度量方案。
1 引言
中国证券交易市场一直在快速发展,根据《上海证券交易所统计年鉴2019卷》和《深圳证券交易所市场统计年鉴2018》的统计,近十年每年新开户的投资者数量稳定在每年250万-1000万之间,2016年-2018年新开户自然人投资者分别是3237.6万、2499.3万及1943.2万,机构投资者在2016年-2018年分别新增6万、6万及4.5万。截至2019年,沪市共有2.14亿投资者,其中机构投资者64万 [1] ;深市共有2.76亿投资者,其中机构投资者64.06万 [2] 。自然人投资者在某些年份井喷式地增长,直接给证券集中交易系统带来的是系统容量上的压力;机构投资者数量上的增长,则给交易系统提出更多个性化的需求,这两年最重要的趋势是部分机构投资者向交易系统提出了低时延的要求。
中国证券市场交易系统从1992年至今,经历多个阶段的发展,目前证券经纪业务交易核心系统习惯地叫做柜台系统或者集中交易系统,全行业目前正在使用的集中交易系统是从2004年开始替换的,到目前已经运行十五年有余,其系统容量、扩展性、对新业务的支持、可维护性等在当前业务场景下都面临着巨大的挑战;尤其对于机构投资者提出的性能需求,应对措施更是捉襟见肘。为了应对以上市场需求,目前中国证券行业正步入新一代集中交易系统选型建设的阶段,而为了应对机构投资者的需求,全市场更是掀起了证券极速交易系统测试选型的热潮。
在这个中国证券行业发展正在革新的历史阶段,如何科学地、客观地评价证券交易系统就显得尤为重要,本文的目标则是探讨如何建立证券交易系统质量评估框架。
2 交易系统
本文的评估框架面向的对象是证券交易系统,不同视角的证券从业人员对证券交易系统的定义是有差异的,广义的证券交易系统包含了所有围绕着证券交易构建的系统的集合,狭义的证券交易系统则特指证券交易关键路径上的各个系统的集合。
下图是中国证券市场交易系统概览图,图中基本囊括了订单从投资者到交易所交易系统的全路径的各种交易系统的类型。
图1 中国证券市场交易系统概览图
从系统的功能以及归属关系来分,交易所的交易系统归属于交易所,为市场提供交易撮合服务;券商的交易系统归属于券商,为市场提供投资管理以及交易通道服务;进一步地,如上图所示,券商的交易系统又分为前台和中后台系统。在确定评估对象之时,笔者发现范围定义得太大会导致整个框架泛泛而无可着力点,最终导致需要进一步定义具体的执行方案时无可行性,因此本文评估的交易系统系统特别圈定的范围为:券商交易系统(中后台)中的集中交易系统、两融、期权以及各类快速交易系统和专用交易系统。后续章节中除非有特别说明,否则“证券交易系统”专门指代以上圈定范围内的系统。
2.2 交易系统架构
无论是上一代的集中交易系统,还是目前行业正在使用的机构交易系统,亦或是市场上正在推出的新一代分布式交易系统,这些交易系统从功能模块的划分上基本上还是保持一致的,下图为华锐分布式核心交易平台(ATP,Archforce Trading Platform)的组件架构缩略图:
图2 交易系统组件架构缩略图
蓝色框的部分是交易系统的核心组件,网关(GW)负责订单的接收及路由、交易引擎(TE)负责订单的检查以及订单生成,报盘服务(ORS)则对接交易所的交易网关,将订单报送给交易所。
不同开发商的交易系统系统架构可能会有差别,可能是集中数据库架构的,或者是总线型架构的,又或者是微服务架构的,最终从功能上,都会有以上功能的实现;从进程上的划分上,以上几个功能模块可以分开从而实现架构的松耦合,也可以为了追求极致的性能将模块合并为一个进程,减少进程间的交互,但是以上模块的功能实现,都会在代码实现上得到体现。
本质量评估框架也将基于以上交易系统架构展开讨论。
3 质量度量模型与测试标准描述
3.1 软件质量模型 [3][4][5]
质量是产品的生命,它直接影响着产品的使用和维护。我们不能直接来测量软件的质量,我们只能通过软件的一些具体的质量特性来测量。给质量特性规定标准,于是就建立起来了具体的质量度量标准。质量度量的标准也可以叫做质量模型,它是质量管理过程中的核心部分。
如今业界常用的质量模型有五种,分别是:McCall、Boehm、FURPS+、Dromey和ISO [6][7] 。
我们稍微介绍应用相对广泛的ISO模型:
ISO是目前比较完善和权威的软件质量模型,1993年制定第一版,目前使用的是2011年重新修订版。当前版本的模型由8大基本特征和5个软件使用质量特征组成。每一个特征又可以分解成为可以度量的多个子特征。
8大基本特征如下,基本可以涵盖软件的内外部的质量考察点,也包含了软件的功能性和非功能性质量检查点:
图3 ISO 25010软件内、外部质量
ISO定义了5个软件使用质量特征,根据用户使用软件的结果而不是软件自身属性来 进行度量,使用质量是面向用户的内部和外部质量的组合效果:
图4 ISO 25010 使用质量
3.2 证券期货行业软件测试规范 [8]
2019年9月30日,中国证券监督管理委员会正式发布了《证券期货行业软件测试规范》,规范针对证券行业的特征提出了行业软件产品的测试内容和测试类型。其中,测试类型按照功能测试和非功能测试进行区分,包含了功能测试、性能测试、可靠性测试、安全测试、可移植性测试、可维护性测试等,并针对每个测试类型做了详细的测试内容和关注点定义,例如,对性能测试类型,明确要求关注负载测试、压力测试、容量测试与业务响应时间测试几个方面。其关注点与质量模型内容互相对应,形成一套对本行业软件的质量评估测试方法。
众多的质量模型都有自己的优势和劣势,测试规范也定义了本行业的适应的测试方法和关注内容,通过对模型与规范的结合,我们定义了一个针对券商证券交易系统的质量评估框架。
4 交易系统质量评估框架
证券交易系统是软件系统中的一个极小的子集,它与其他软件系统既有共性,亦有自身的特殊要求,给交易系统建立质量评估框架,本质上在已有的质量度量模型下,将证券行业需求放大,并进一步根据行业的场景定义细致可执行的度量方案。
交易系统业务功能质量的保证是系统可用的基础,是目前各个开发商以及券商重点关注对象,大家也已探索出行之有效的质量保证体系,故本质量评估框架不再对证券交易系统的功能质量指标做定义,本框架着重关注证券交易系统非功能性指标。
根据上述标准质量模型,本文提出证券交易系统相关子特征和特征描述如下表,本文尽可能描述所有相关指标,后续具体实施过程可以根据不同情况进行适当裁剪和指标判断:
表1 证券交易系统非功能性质量特征与描述
正常运行的情况下,系统的功能实现决定了交易系统能提供何种服务,系统的性能则决定了系统提供服务的质量、效果。在时间特性和资源利用性上两个方面,证券交易系统着重关注以下几个子性能指标:吞吐量、时延、系统容量、资源占用。
4.1.1 吞吐量
吞吐量体现的是系统的负载,是系统的最大服务能力。交易系统是一个业务系统,处理的核心业务是订单生成递交给交易所,指标的定义应围绕订单业务场景进行。对此,应该定义以下几项指标:
表2 吞吐量指标度量标准
备注:以上性能指标应基于特定部署前提,单实例部署可建立度量基准,整系统测试则度量系统的能力。
4.1.2 时延
系统速度快与慢是一种相对的且主观的形容方法,系统处理时间是则衡量速度的最好标准,它体现了业务响应时间指标。对于请求应答类型的服务,我们通常用响应时间(Respond Time)来度量系统的快慢;对于交易系统这种类通道型的服务,则应该使用穿透时延、内部时延、回路时延等统计方式。
图5 交易系统流程缩略打点图
备注:图中的G1表示订单进入GW打的时间点,G2表示订单出GW打的时间点,其他时间点同理。
表3 时延指标度量标准
上表时延指标虽然只定义了5个,但是在不同的速率下、不同的账户数量下、不同脉冲吞吐下、不同业务组合模式下等各种场景组合下,会衍生出很多有度量价值的指标,建议单一时延指标明确输出均值、中位数、90%,95%等统计指标。
4.1.3 容量
系统能承载的最大业务数量,业务维度包括账户容量、委托容量、成交容量、证券数量等,技术维度则包括网关和ORS能对外提供的服务能力。
表4 容量指标度量标准
4.1.4 资源占用
交易系统在特定场景条件下的资源使用情况,包括CPU、内存、硬盘、带宽等,资源占用是一个动态变化的过程,随着交易时间向后增长,内存、硬盘占用都会相应地增长;不同的业务并发量下资源占用的情况也会有较大变化。
表5 资源占用指标度量标准
4.2 可靠性
4.2.1 成熟性、容错性
产品成熟性与容错性用于表示在面对内外部错误和故障时的错误消除能力和防御能力,它们都可以通过业务结果来展现。证券交易系统要求报送给交易所的订单不重不丢不乱,不重指的是同一笔交易订单不能重复递交给交易所,不丢指的是不能不将投资者的订单提交给交易所同时没有任何知会;不乱是为了保证交易的公平性,投资者先递交的订单应按序先递交给交易所。在面对系统内外部异常的时候,系统依然能有效运行并保证业务正确性。
表6 可靠性可用性指标度量标准
通常发生重单、丢单或者乱序是系统中某些组件发生故障或者故障恢复时发生的,因此应重点检查故障或故障恢复时以上指标的情况。
4.2.2 可恢复性
中国证券市场对核心交易系统故障零容忍的监管规定,确定了容错能力是证券交易系统的核心能力指标,容错能力有两个行业公认的核心的指标:RTO (Recovery Time Objective,用于度量系统恢复提供服务所需要的时间)和RPO (Recovery Point Objective,用于度量发生故障到系统恢复数据丢失时长)。具体化到不同的交易场景,对交易系统的容错能力也是有阶梯式需求的,应根据不同的需求,也衍生出不同的部署方案,针对不同的部署方案,我们可以列举出相应的容错指标。
表7 可恢复性指标度量标准
4.2.3 稳定性
表8 稳定性指标度量标准
4.3 可伸缩性
证券行业的发展都是周期性的,因此交易系统容量的需求也是周期性的,在功能保持不变的情况下,交易系统仅靠增加硬件设备就能支撑更大业务容量的能力非常重要。
4.3.1 系统可伸缩性(Scalability)
可伸缩性(Scalability)可以反应软件系统计算处理能力。通过很少的改动或者硬件设备的增加,实现整个系统处理能力近似线性的增长。
表9 系统可扩展性度量标准
4.4 可延展性
证券行业的发展都是周期性的,新业务新功能的推出常常是周期性的,评估交易系统快速响应业务需求完成所需业务变更的能力非常重要。
4.4.1 功能延展性(Extensibility)
表10 功能可延展性度量标准
4.5 可移植性
广义的交易系统是围绕证券交易构建的各种应用系统的集合,而交易的核心在于交易系统,这就涉及到交易系统的快速部署以及与周边系统的对接兼容问题,而这也是评估一个交易系统能否快速上线的重要考虑因素。
4.5.1 周边系统对接
与周边系统的对接能力,体现本系统的兼容性,也体现了系统的可安装和可替代特性。
表11周边系统对接能力度量标准
4.5.2 可移植能力
可移植能力涵盖了应用软件与硬件平台、应用软件与操作系统、操作系统与硬件平台间的兼容性,以及软件系统能在所有特定的目标环境(硬件、软件、中间件、操作系统等)中正确运行的能力。
表12 可移植能力度量标准
4.5.3 可安装能力
表13可安装能力度量标准
4.6 可维护性
交易系统的核心功能是后台的业务处理系统,包括上述提到的交易网关、交易引擎和报盘服务,但是系统是需要管理运维的,保证系统运行不发生故障,系统的可维护性非常重要。
表14可维护性能力度量标准
4.7 易用性
表15 易用性能力度量标准
交易系统涉及证券交易的核心业务,后台系统直连交易所,从技术上看系统运维及运营人员跨过了券商的各路安全控制,错误不合规的操作能够直接影响市场,因此交易系统的安全性指标非常重要,它是守护我们交易安全的最后一道关卡。
表16 安全性度量标准
5 结语
证券交易系统是证券行业最重要的最核心的系统,交易系统的能力决定了券商对投资者提供服务的能力,最终决定了券商的核心竞争力,如何科学、客观地评估度量交易系统的质量,在过去、现在及未来都是一个非常重要的课题。本文基于目前中国证券市场的发展阶段,提出了一个证券交易系统质量的评估框架,更多地是希望在行业内与大家探讨,形成标准规范的评估方案,推动行业系统质量往前发展。
参考文献
[1] 上海证券交易所统计年鉴2019卷, http://www.sse.com.cn/aboutus/publication/yearly/documents/c/tjnj_2019.pdf.pdf
[2] 深圳证券交易所统计年鉴2018, http://docs.static.szse.cn/www/market/periodical/year/W020190725302766297492.pdf
[3] Quality Models in Software Engineering Literature: An Analytical and Comparative Study, http://www.jofamericanscience.org/journals/am-sci/am0603/22_2208_Qutaish_am0603_166_175.pdf
[4] Performance Testing Tutorial: What is, Types, Metrics & Example, https://www.guru99.com/performance-testing.html#1
[5] Software Quality Models: A Comparative Study, https://www.researchgate.net/publication/220868681
[6] ISO/IEC 9126
[7] ISO/IEC 25010:2011
[8] 证券期货业软件测试规范,中华人民共和国金融行业标准(JR/T 0175—2019)
作者简介:何志东,hezhidong@archforce.com.cn,华锐分布式技术实验室主任,具有丰富的交易系统、消息总线和高可靠架构设计与开发经验,目前主管华锐分布式技术实验室,对分布式系统架构、高性能计算基础设施、低时延技术、系统性能调优等领域有深入研究。
免责声明
本公众号内容仅供参考。对任何因直接或间接使用本公众号内容而造成的损失,包括但不限于因有关内容不准确、不完整而导致的损失,本公众号不承担任何法律责任。如有问题请反馈至tech_support@sse.com.cn。
-------------------------- 上海证券交易所为证券公司、基金管理公司等市场参与者及相关行业机构提供交易技术支持与服务,包括日常交易技术支持、技术交流研讨、市场调查反馈、证券信息技术知识库、测试等服务。
点击"阅读全文"了解详情