之前51cto曾报道过JAVA用TCP实现反向连接屏幕监视的实例,本文通过股指期货交易系统,分析使用Java相关技术实现的系统架构,以及Java技术的优势,其中的关键技术包括JMS,SOA/WebService,Appliction Server Cluster等。
1 股指期货交易系统简介
在本文中所提到的股指期货、期权交易系统,均指券商端的期货、期权交易系统。期货客户通过该交易系统连接到交易所撮合成交平台。系统提供客户下单,行情信息,资金结算和风险控制等功能。
和股票交易系统类似,股指期货交易系统提供在线下单,行情查询等功能。和股票交易系统相比,期货、期权交易在业务上要求更复杂的风险控制和资金结算等功能。在技术架构上,由于交易的标的物是指数或期权、贵金属、全球市场等,市场行情数据变化更频繁、相比于股票市场,风险更大。对系统的实时性、稳定性要求更高。
在现代期货、期权交易中,有相当多的投资者进行快速、频繁的交易,追求短期交易机会。对券商的交易系统要求能提供一定程度的程序化交易功能和灵活的交易方式。面对激烈的商业竞争,券商应该能够提供多样化的交易方式、快速推出新的交易模式以吸引更多的投资者。在整个金融期货交易系统的规划中,应当考虑到以下几点:
1)交易系统应该提供一个统一的交易平台,以支持多种产品交易,包括金融期货、期权、本地和全球市场
2)系统应该支持多种交易渠道,包括可下载的交易客户端,WEB交易、电话委托和客户代理委托等
3)系统规划应分开企业核心信息服务和外围应用系统,以支持持续丰富的外围应用系统
4)面对激烈的商业竞争和业务变革,要求系统支持快速开发、部署和持续的新功能发布。
2 系统业务框架
本章节主要介绍股指期货交易的业务框架,从高层次简介期货交易系统的功能。整个股指期货交易系统包括下面几个大的部分:核心服务系统、券商内部运行维护系统、交易和行情借口、客户端交易终端系统等。

◆核心服务系统
提供股指期货系统的核心功能,包括订单处理,交易管理、行情服务、风险管理、基础数据服务、BackOffice服务(Position结算等)、数据中心(资金结算等)服务。这些功能以组件或服务的方式提供外部应用系统使用。
◆运行维护系统
运行服务系统为交易系统运行提供所有必要的操作支持,包括BackOffice操作终端,风险管理/监控终端、DataCenter操作终端、Dealer/客户Agent交易终端等。这些系统运行在券商的LAN之内,提供给券商的各类用户使用。
◆统一交易、行情服务接口
期货交易系统的核心业务服务提供给WLAN或其他渠道的用户使用,要通过一个统一的交易和行情服务接口,以面向服务(SOA)的方式和其他外部交易终端集成。
◆交易终端
交易终端通过统一交易、行情服务接口和核心系统交互。这些交易终端包括可下载的独立客户端、WEB页面客户端、电话客户端(通过语言模块转化)等。在技术架构章节,涉及的客户端为独立客户端。
◆统一网关(交易、行情)
核心服务通过统一的交易和行情网关连接到本地交易所和全球市场。

3 技术方案规划
基于核心交易系统的性质,在技术方案的规划时,需考虑以下因素–
◆高性能要求(Performance)
相比于其他管理信息系统,股指期货交易系统要求更高的性能,包括行情数据的实时刷新,交易订单处理等。
◆可扩充性要求(Scalability)
股指期货交易系统通常支持较多的并发用户,且随着业务的发展,交易客户持续或快速增长,这要求系统有能力易于扩充以应付系统负载的增长。
◆高稳定性要求(Availability)
系统稳定性对于交易系统的重要性不言而喻。系统有能力在整体架构上防止单点失败,能有一定程度上的故障恢复(Fail-over)的能力。
◆与其他系统集成
随着现在金融行业的快速发展和业务创新,交易系统也要求能和多个外部的系统包括第三方系统集成的能力,包括企业内部的客户管理系统(CRM),交易所、银行等。
◆支持快速开发和业务创新
市场竞争也是时间的竞争,必然要求整个交易系统从规划、开发和部署要求能够在尽可能短的时间完成。另外,金融行业业务创新在不断加快,新的交易方式、测略不断出现,必然要求IT系统能够快速反映和支持这种变革。在技术选型时,必须考虑到技术方案能够满足这种要求。
综上所述,使用的技术方案要能够解决上面的要求。目前,在期货、股票交易系统中,所采用的技术主要有两种C/C++和Java.国内业界较多的采用C/C++实现核心交易系统,本文主要阐述使用Java技术来实现整个交易核心和客户端。相比较C/C++,Java技术在满足交易系统要求时,有如下特征:
◆性能要求(Performance)
与C/C++技术相比,使用Java构建核心交易系统,性能问题可能是首要的考虑点。但随着Java和优化技术的发展,Java的运行性能比早期有了大幅提高,已广泛用于服务器程序和实时应用。在另一方面,性能问题总是和具体要求相关联,只要满足系统的性能指标,使用Java应该是一个可行的选项。在笔者的项目实践中,Java用来构建实时交易系统,配合合理的技术架构,完全能满足系统的性能要求。
◆扩充性(Scalability)
使用Java相关技术和中间件如WebSphere,WebLogic等,构建一个高并发性的应用系统有着相当成熟的行业实践,和快速实现的能力。
◆稳定性要求(Availability)
相比较于C技术,借助于Java中间件软件,实现服务器应用的Loadbalance和Fail-over是一项相当便捷和成熟的技术。
◆与其他系统集成
Java/J2EE是一个开放的技术标准,有着广泛的行业和开发社区支持,能够较快并易于和其他系统集成。
◆支持快速开发和业务创新
相比于C/C++,Java的快速开发能力显而易见。由于大量成熟的开源框架、基础组件的出现,在常见的企业系统开发中,使得Java的开发效率远远高于使用C/C++技术,能够较快速的实现新的业务功能。
综上所述,Java技术能够全面满足股指期货交易系统的要求,由于借助于中间件技术解决Load balance,Fail-over等关键性问题,使得开发者更关注于业务的实现,大大缩短了整个系统的开发时间和人力成本。同时Java语言的开发效率也使得新业务的创新能够在系统上得以快速实现。这些因素使得采用Java构建股指期货交易系统是一个可行和较好的选择。
4 技术架构
本章节主要介绍股指期货的技术架构,从总体技术框架、运行物理环境等方面举个介绍。
4.1 总体技术框架

◆客户端
客户端有两类应用程序,一类是基于Swing的GUI Application如可下载的交易客户端,数据维护终端等,另一类是Web Based Application如web页面交易应用等,对GUI Applcition,系统设计GUIframework帮助所有的GUI Application开发。像对应于Web Applciation,可以采用主流的Web MVC Framework.对应Internet客户端Application,采用WebService技术和服务器进行交互。对应订单消息、市场行情采用Message系统。
◆服务器端
服务器端的主要业务服务,采用WebService方式发布,以供客户端调用。市场行情服务接受来自市场的信息(MessageDrivenbean),进行解析后发送给客户端。
具体的业务组件可使用Spring Ioc等框架技术。
◆消息网关
使用Socket或API调用的方式,接受来自市场的消息。进行处理后发送给消息中间件。
◆数据存储
数据存储可采用成熟的数据存储框架如Hibernate等。
4.2 物理运行环境
应用程序部署要考虑系统的Load Balance和Fail-over等功能,利用Application Server和Message Middleware的Cluster功性去确保系统的稳定性和可扩充性。

5 小结
用Java开发分布式大型应用系统,技术相当成熟,利用基于服务、组件和成熟的开源框架和中间件服务器,能够快速构建大型的股指期货交易系统,并易于扩充和维护。

股指期货交易系统简介架构相关推荐

  1. 用 Java构建股指期货交易系统

    原文出处 http://daliliu.iteye.com/blog/610530 用 Java构建股指期货交易系统 Liu Hang (dalihang@hotmail.com ) 未经作者许可,不 ...

  2. 用Java构建股指期货交易系统

    用Java构建股指期货交易系统   Liu Hang (dalihang@hotmail.com)   未经作者许可,不得用来任何商业用途,转载请注明出处和作者 概要 本文主要介绍怎样使用Java相关 ...

  3. JAVA实例讲解:股指期货交易系统的构建

    1 股指期货交易系统简介 在本文中所提到的股指期货.期权交易系统,均指券商端的期货.期权交易系统.期货客户通过该交易系统连接到交易所撮合成交平台.系统提供客户下单,行情信息,资金结算和风险控制等功能. ...

  4. Java实例分析:股指期货交易系统搭建

    我们日常所说的股指期货交易系统,期权交易系统指为券商端的期货系统.期权交易系统,一般情况下,期货客户都由该交易系统连接到交易成交平台.系统提供客户下单,行情信息,资金结算和风险控制等功能,这样的股指期 ...

  5. 饿了么交易系统应用架构演进

    内容来源:2017 年 12 月 2 日,饿了么研发总监石佳宁在"IAS2017互联网架构峰会"进行<饿了么交易系统应用架构演进>演讲分享.IT 大咖说(微信id:it ...

  6. 黑牛外汇交易系统简介-------稳定盈利的外汇交易系统

    黑牛外汇交易系统简介 黑牛外汇交易系统是这样一个系统,它是由一个前置指标和三个后置指标组成的.这种组合很有必要,前置指标具有预测性,它的好处就是提前发出指示,它的缺点就是有可能失败.后置指标可以在其他 ...

  7. 云存储---ceph简介架构原理和一些基本概念

    我们在上篇文章已经对比了不同的存储系统之间的区别,本章开始逐步深入记录Ceph的学习和运用. 开源分布式存储系统的对比 Ceph简介 Ceph是一个分布式存储系统,提供对象,块和文件存储,是一个免费开 ...

  8. 巴巴运动网商品交易系统的架构

    本文参考传智播客巴巴运动网视频 本项目是一个在线商品交易平台,平台的主要目的是让企业在平台上发布商品及资讯,用户可以在此平台上购买商品并参与商品的评论.围绕这一目的,系统需要实现商品管理,商品订购,多 ...

  9. 02-分布式文件服务器FastDFS[简介, 架构详解]

    分布式文件服务器-FastDFS 什么是FastDFS FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储.文件同步.文件访问(文件上传.文件下载)等,解决了大容量存 ...

最新文章

  1. 万字干货 | Python后台开发的高并发场景优化解决方案
  2. VxWorks中信号量实现任务间通信与同步机制分析
  3. gan semi conductor
  4. linux-shell命令之rm(remove)【删除文件或目录】
  5. idea设置中文界面_英雄联盟手游中文翻译--游戏主页设置界面翻译
  6. Hibernate初探之单表映射——jar包的导入
  7. 【linux系统编程】linux用户及权限管理
  8. opencv之对图像中的点做几何变换
  9. Composition or inheritance for delegating page methods?
  10. 企业实战——Ansible自动化运维基础知识
  11. dnf php的补丁放哪,DNF模型文件在哪 补丁玩家必备知识
  12. 轻量级linux桌面环境,Linux发行版最为轻量级的桌面环境之一Xfce 桌面
  13. iOS开发之--内购、GameCenter、iCloud、Passbook功能开发汇总
  14. golang反射修改结构体字段(reflect.flag.mustBeAssignable using value obtained using unexported field) 2020.8.18
  15. 如何保障微服务架构下的数据一致性
  16. Xshell连接服务器
  17. 自然数幂和伯努利数(Bernoulli)
  18. 使用Java的讯飞语音识别示例
  19. java语言基础知识
  20. 独家专栏 | 为什么国外的无人驾驶原型车,都选择混动车型?

热门文章

  1. Android 获取手机运营商、有无sim卡
  2. 苹果cms,ckplayer视频试看插件,vip会员不限制,游客或普通会员试看
  3. 小公司的管理方法(转)
  4. win7如何共享文件
  5. 项目可行性的研究内容
  6. python为什么流行头上长草_为什么“头上长草”一夜之间成为爆品?
  7. ubuntu下修改host文件
  8. Vue学习笔记(更新中)
  9. babel-loader
  10. Total.Recorder.Editor.Pro.v13.0.1.Regged-DJiNN