首页 > 代码库 > 关于交易系统的一些设想
关于交易系统的一些设想
交易系统分为两部分,第一是技术平台,第二是业务功能,技术平台就是之前提出的“交易操作系统”的设想,就叫技术平台好了,没必要在名字上下功夫。技术平台和业务功能之前应该有一个简明清晰的接口,然后一百年不动摇,这样两部分功能就可以分别演进了,彼此瓜葛少了,系统就变得更灵活。
技术平台里面有很多基础功能,这些都是一百年不会变的,但是需要精益求精,需要在细节上下足功夫,需要不断优化再优化,这些功能包括网络通信、内存数据库、消息中间件、加密、可靠性技术(中心切换)、多个交易引擎,等。每个功能都是一个工具。工具和工具之间接口应该清晰,然后同一个功能的工具,可以有多种实现方式,这样可以做到优胜略汰。应该尽量多使用开源技术和产品。闭门造车不是好习惯。
业务平台建立在技术平台之上,这些功能每天都会变。今天增加组合报单,明天增加期权,后天增加做市商,如果系统设计得不好,那么系统上线新功能的能力就会很差,开发人员疲于奔命,交易系统隐患重生。这样就很危险。一辆车不仅要能跑起来,还要跑得稳,上高速之后要靠谱才行,不能出现车毁人亡的情况。技术平台应当进行更高级的抽象,提炼出一个最简化的模型出来,便于业务平台在其上开展工作,比如接收报单,发送报单回报,等。报单簿和成交之类的功能属于业务平台内部的功能,不需要依赖于技术平台。关键是两者之间的边界应当清晰。技术平台不关心报单里面装着些什么,只负责把报单放在门口,拆包的事情是业务平台应该做的。业务平台还需要把数据都保存起来,这些是技术平台应当负责的,但是保存的数据是什么内容,技术平台不管。
除了上述两个平台之外,还应该有一个测试平台。造船需要首先建船坞,建交易系统需要首先建测试平台,测试平台负责做压力测试、历史数据重演测试、新旧系统成交结果比对、各个组件的性能测试,等。
技术平台可以模仿操作系统。
关于交易系统的一些设想