中国证券IT发展简史(中)

中国证券IT发展简史(中)
心在天堂 天堂的鸟窝 今天

在证券公司由共享网络时代转移到局域网 C/S 期间,证券营业部几乎将当时最好的 CompaQ、HP 工作组级服务器、最好的 UPS 以及最好的 Cisco 网络交换机统统搬进了证券营业部(那个时代妥妥的剁手党),还煞有其事为这些办公、家庭级别的计算机配备了堪比中、小型计算机才能享用的机房。

有钱确实任性,不得不服。那时候证券营业部一个普通柜员的年终奖,就可以让这些小姑娘轻松出国旅行了。

同一时期,我先后在两家美资软件外企做高级工程师,收入比不上一个证券营业部的普通柜员。,男怕入错行啊。

证券营业部的交易网络全部替换成 TCP/IP 网络后,行情依旧采用基于 IPX/SPX 的 Novell 网。

这一轮升级,Cisco 成为一个大赢家,它在中国的成功很大程度归功于其在证券行业的成功,Cisco 网络交换机几乎成为证券营业部的标配。

现在大家知道了,我们真的是养肥了一条白眼狼。还记得同一个时代摩托罗拉各种颜色的塑料翻盖手机吗?和今天的牌机比都是个渣,可它的广告语却是「其完美程度非笔墨可以形容」,是不是比今天的互联网能忽悠多了。嗯,美国佬真的很坏的。

进入新世纪后,在证券营业部进行证券交易的股民人数已经大幅度减少,但依旧不时人头攒动,因为只有在证券营业部里才有交头接耳交换各种所谓「内幕消息」的氛围。

4、广域网的C/M/S时代

2001 年 2 月 19 日 B 股市场正式对国内个人开放,与 A 股的一个营业部至少有一个交易席位不同,B 股一个证券公司只有 1-2 个交易席位。

经过近 10 年的发展(因为地方保护政策,异地开设营业部也是一部证券公司的血泪史,因为 IT 无关,就不细述了),大的证券公司已经有几十家证券营业部了,选哪家营业部呢,这个问题讨论下去显然永远没有最佳答案。唯一可行的解决方案就是将证券营业部的 B 股业务集中起来,共享这个宝贵的 B 股交易席位。

由此证券行业开始试水广域网。每个开展 B 股业务的营业部都通过 DDN 连接到一个指定证券营业部,再由这个营业部连接到交易所,这个事其实并不难。

异地 DDN 在当时也是一笔不小的开支,只处理 B 股业务显然有些浪费。区域集中柜面交易系统出现了,但其最终没有成为一个支持异地营业部集中管理的主要系统,反而更适合集中管理同一个城市的多个营业部,必竞同城 DDN 费用还是低了许多,建设高大上的独立营业部让一些地方性中、小券商也吃不消了。

另一个方面,由于当时证券行业大量存在不同程度的挪用股民证券交易保证金,以及证券营业部柜台销售企业债的烂事,东窗事发导致证券行业开始一次力度空前的清理整顿,证券公司为啥会挪用股民的证券交易保证金,看看今天的共享单车为啥会提取押金困难的相关分析报道,就知晓了。

这个整顿持续到 2004 年才基本结束,历史上颇有名气的大券商南方证券、华夏证券(我第一次开户就是在华夏证券)消失了。

国家为处理证券行业捅的这个大娄子,付出了高昂的代价,我因为工作关系在意外翻阅一叠报表时,看到这个以亿为单位的确切数字,我不知道这个算不算国家秘密,因为还没有过去 25 年就不说了。

2001 年 5 月 16 日是证券业的黑暗之日,中国证监会发布了《客户交易结算资金管理办法》,明确了证券、期货投资者的资金必须有第三方存管机构存管,以保障客户的资金安全。

这此整顿对证券行业最深的伤害就是推行三方存管制度,这令多少证券从业人员心碎,因为它导致国外非常成熟的账户管理无法在中国落地,没有这个,财富管理就永远无法对标国际先进水平了。而且最悲催的是,这还是由证监会的相关人员主动提出的,妥妥的投降啊,自然乐坏了银行业。

意识到已有的以证券营业部为主的分散经营模式风险实在太大,且持续发展成本过高(想想一个证券营业部的建设成本),于是将证券业务集中到证券公司总部进行集中管理的思路就被提了出来。

采用星型结构,将总部和各个营业部连接在一起,使用广域 DDN,不可靠?那就两条。带宽?总比卫星强,这不是问题。

关键是数据库服务器,这个事不好办。有银行背景的券商,偏向于中、小型计算机,其他证券公司呢,工作组级别的服务器显然无法满足要求,咋办?一台不行就多台组合,组合的方法就是群集。

那时候,券商和软件开发商估计一门心思就是集中才好控制风险,控制风险成为首要目标,至于为以后业务开展预留架构上的发展空间,早就抛到了太平洋里。

与此同时,性能他们却始终念念不忘,这个是关键的技术指标。

那毕竟是 2001 年,没有人是神仙,无论券商,还是软件开发商,在构建基于广域网的集中式证券交易系统上都是小白。

两种实现思路,一种就是将局域网简单放大成广域网,一种是采用当时国际流行的中间件技术。

于是软件开发商又开始进行新一轮的研发竞赛,这次竞赛对技术的要求比上一次更高。

如果 A 与 B 之间关系过于复杂,那就在 A 之间引入一个 C,使得 A 与 C 的之间的复杂度以及 B 与 C 之间的复杂度远小于 A 与 B 之间的复杂度。 这就是多种设计模式的核心思想,比如适配器、中介者以及门面等设计模式。

在 C/S 架构中,中间件位于客户机和服务器之间,为构建大规模、高性能、分布式 C/S 应用程序提供了通信,事物、安全、容错等基础服务,屏蔽了底层应用细节,应用程序不必从底层开发,以自身的复杂性换取应用程序开发的简单。

基于局域网的中间件只要是事物处理中间件(TPM),而基于广域网的中间件则包含消息中间件(MOM)和事务处理中间件。

当时,知名的事务处理中间件有 IBM 的 CICS 和 BEA 公司的 Tuexdo,而消息中间件则是 IBM 的 MQ。那时开源才开始启蒙,因此无法获取 CICS 和 Tuexdo 以及 MQ 的源代码。

根据用户手册,金证的研发工程师用近 2 年的时间主要参考 CICS 开发了 KCBP, 参考 MQ 开发了 KCXP,而恒生电子的研发工程师则开发了具有类似功能的 AS 和 AR,金仕达也开发了类似的组件,至于顶点的内部产品叫什么,我就不知晓了。

金证、恒生、金仕达内部研发的产品/组件,尽管名字不同,部署方式存在差异,功能也不尽相同,但它们所起的作用则是非常类似的——「以自身的复杂性换取应用程序开发的简单」,尤其是恒生和金证,它们由此共同塑造了今天证券 IT 的主要格局。

在各自的产品/组件之上,恒生的支持广域网的证券集中交易系统叫「证券交易企业版」,金证叫「新一代集中交易」,顶点叫 「A.BOSS」,而金仕达好像没有具体的名字,如果有我也不知道,因为我没有太关心过这个事,如同顶点的 A.BOSS 的实现思路。

相比较而言,恒生产品的命名及本版号管理更加规范,金证比较有意思,新产品喜欢冠以 「新一代」,现在是新几代?

集中式证券交易系统的招标无一例外都来自大券商,这些大券商心甘情愿成为小白鼠,为推动中国证券业迈入广域网集中式证券交易时代作出了伟大的贡献。

软件开发商则忙于带着自己的原型系统参与一轮又一轮的测试、评估、改进、再测试、再评估。最终恒生、金证、金仕达均得了大券商的认同,找到合作券商研发集中式证券交易系统。

没有找到合作伙伴的软件开发商则惨遭淘汰逐步退出市场竞争,而坚持下来的就只剩下顶点了,它的策略是暂避锋芒,选择为中、小券商提供服务。

2001 年到 2002 年间,恒生、金证先后正式发布集中式证券交易系统,随后集中式证券交易系统陆续在各自的合作伙伴券商那里成功上线,由此进入了基于广域网的集中交易时代。国泰君安的集中交易上线后,还给上海证监局专门打过一个报告,陈述大集中的必要性、合理性以及可行性。

无论是金证的 KCBP、KCXP 还是恒生的 AS、AR,其实都谈不上是成熟的商业软件,它们的设计目标就是自用(金仕达更彻底,就是内部组件级别),因此无论是功能的完备性还是可靠性都难以与国际上的商业软件相匹敌,自然构建在其基础之上的集中式证券交易系统都无一例外或多、或少造成了大大小小的各种级别的事故,通过处理事故,修改 BUG,它们逐渐稳定下来,在 2015 年的天量行情中经受住了考验。

中国的芯片由于没有适合的生态,所以成长不起来,而恒生和金证是幸运的。

恒生、金证、金仕达的系统还是多少有差别的,讨论它们,比较优劣如同当年我在 Sybase 比较 Sybase 与 Oralce 的优劣, 其实是一件很无聊的事情(其实都是基于市场需要做的宣传),因为站在不同的角度、在不同时间,即使是同一件事情,得出截然相反的结论,实属正常。今天我已经退休了,就更不会去比较了。

恒生的系统基于 Unix/NT+Oralce, Unix 运行在中、小型计算机上,与台式机相比,当年的中、小计算机的内存带宽与 I/O 吞吐能力是台式机无法比拟的,尽管主频并不高,运行数据库这类软件还是有相当优势的。

NT 运行在工作组级别的服务器上,早年,单台其还是无法与中、小机抗衡,因此需要多台进行群集,OracleRAC 自带的群集能力还是非常卓越的。

金证的系统就五花八门了,有AS/400+DB2, 也有Unix+Oralce, Unix+DB2, 还有 NT+SQL Server,群集则是通过 KCBP 实现的,功能自然没有 OracleRAC 完备,但够用。

金仕达相对比较单一,Unix+Oracle。

早期的集中式证券交易系统主要解决广域网环境下的业务集中处理问题,性能是核心要素,因为大家都没有底,主要精力也在这上面。所谓的数据库设计主要是根据同一套系统管理多个营业部的需要,做了扩展。

基于中国证券IT发展简史(上)中的描述的原由,基础数据库并没有太大的变化,继续兼容以前的业务处理逻辑以及与之配套的历史数据。

到 2006 年,证券行业陆续完成了集中式证券交易系统的升级,恒生、金证成为最大的赢家——拥有最多的客户,并先后在 2003、2004 年上市。 它们最终杀出重围,脱颖而出,技术在其中究竟起什么作用, 才是我写这个简史的主要原因。

「(中间件)以自身的复杂性换取应用程序开发的简单」,我个人的总结就是如此,其实何止是换取应用程序开发的简单,更是换取了工程实施,维护以及满足不同证券公司个性化需要所带来二次开发的简单,更是换取了在证券行业高速发展过程中,快速响应不断推出新业务的能力。 那些被淘汰的软件开发商,都没有自己的 TPM/MOM,你以为是偶然吗?我认为是必然。

简单当然是相对的,但成本下降却是绝对的。

在激烈竞争中,维持低成本不是核心要素又是啥?如果采用商业化的 CICS 或者 Tuxedo 呢?可当年它们的售价是难以想象的。当然如果当年它们的售价就是今天的售价,我想无论是恒生还是金证,或许也不会选择这条路,但没有如果。

回想当年,行业通常认为金仕达的技术最好,为何其客户数始终停留在五个,而且也在逐渐被恒生和金证的产品所替换?

如果集中式证券交易系统全部用 C++ 写成,无论是采用对象继承派生,还是基于接口的组合,20 年(尤其是最近 10 年,新增了多少业务?),能支撑的下去吗?或许你说可以,现实的参考对象互联网企业好多呢,可这些成功的互联网企业所开发的系统是自用,恒生、金证可是面对不同需求的客户,你打算维护多少个版本?金仕达就是现实中的例子。

抽象,封装?2001 年,你能预测今天中国证券的业务以及生态?没有对需求的全面了解,所谓的抽象真的只是抽筋。

自研的中间件还有另一个好处,通过隔离,避免小白的致命错误导致系统崩溃。所以谈平台,必然是容器+插件,而且插件的执行错误一定要被隔离。

因为「赖格宝」项目,在最牛逼的互联网公司,讨论一个小概率的业务风险处理方法时,一个职级相当高的架构师说,忽略,真的发生了,赔偿损失就是了。

妈的,当初我内心就嘀咕,真他娘的羡慕你,我在监管下必须严格遵守ACID, 因为错了一分钱或者股民先看到成交回报、再看到委托,股民可以砸了证券公司营业部柜台上的玻璃,你丫的倒是绝对的自由,可以开心玩 BASE,还有大数原理让你可以任性。

恒生、金证基于自己的中间件,积累了大量的软件资产,并构建了相对完整的研发、测试、工程、服务体系,并陆续通过CIMM5认证,这个其实还不重要。

如果你将证券发展在其时间维度上作一个切片,以今天的技术实现一个集中式证券交易系统并不难,但要向前保持业务处理以及相关数据的兼容,就难了,而且恒生、金证 20 年积累下来的数据又不那么规范、标准,你要翻译都难上加难,所以进入这个行业门槛其实非常之高,你同意我这个观点吗?,当然恒生、金证之间相互换来换去,还不算个事,因为双方都太了解彼此了。

至于集中交易系统的自身存在的问题以及解决的历史,如何迈向移动互联网时代,未来大致会如何,下次再写吧。

猜你喜欢

转载自blog.csdn.net/wowotuo/article/details/86663801