本文選自 《交易技術前沿》總第三十七期文章(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 交易系統
2.1 交易系統範圍
本文的評估框架面向的對象是證券交易系統,不同視角的證券從業人員對證券交易系統的定義是有差異的,廣義的證券交易系統包含了所有圍繞著證券交易構建的系統的集合,狹義的證券交易系統則特指證券交易關鍵路徑上的各個系統的集合。
下圖是中國證券市場交易系統概覽圖,圖中基本囊括了訂單從投資者到交易所交易系統的全路徑的各種交易系統的類型。
圖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性能
正常運行的情況下,系統的功能實現決定了交易系統能提供何種服務,系統的性能則決定了系統提供服務的質量、效果。在時間特性和資源利用性上兩個方面,證券交易系統著重關注以下幾個子性能指標:吞吐量、時延、系統容量、資源佔用。
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 易用性能力度量標準
4.8 安全性
交易系統涉及證券交易的核心業務,後臺系統直連交易所,從技術上看系統運維及運營人員跨過了券商的各路安全控制,錯誤不合規的操作能夠直接影響市場,因此交易系統的安全性指標非常重要,它是守護我們交易安全的最後一道關卡。
表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)
作者簡介:何志東,[email protected],華銳分佈式技術實驗室主任,具有豐富的交易系統、消息總線和高可靠架構設計與開發經驗,目前主管華銳分佈式技術實驗室,對分佈式系統架構、高性能計算基礎設施、低時延技術、系統性能調優等領域有深入研究。