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