面向服务架构的证券行业信息化系统

来源:互联网 发布:poc 网络 编辑:程序博客网 时间:2024/06/10 01:56

证券行业信息系统主要有行情资讯系统,数据分析系统和交易系统。 和其他行业信息系统一样,基于旧的技术和开发模式的系统不可避免的有着一些不足之处。


(1)    以业务为驱动的竖井式开发模式, 各个业务系统之间相互独立。

(2)    没有统一应用部署和管理平台。多个业务系统,每个系统运行在哪些机器上,使用什么端口,使用哪个数据库。没有人知道全部的细节。

(3)    没有统一有效的监控平台。每个业务系统有自己的监控功能,或者是看日志,或者有Web的监控台。系统管理员需要使用多种方式来监控整个系统的运行。

(4)    只是应用级别的监控,没有深入到业务级别的监控。

(5)     后台中台之间直接使用Socket通信连接来传输数据,无法实现异步传输;没有断点续传机制;消息没有持久化机制;无法实现不丢失,不重复;没有通信协议的优化,无法达到最佳的传输速度。

(6)    业务系统之间完全隔离,没有统一的接口互联互通。

(7)    封闭的业务系统,无法在各个系统之间共享一些可复用的功能。造成一些功能的重复开发。

(8)    没有统一的业务数据标准。在各个系统之间,需要做大量异构数据的映射和转换工作。

(9)    在程序中编写风险控制规则或者算法交易规则,规则频繁变动时导致更新效率过低。业务人员无法直接编写业务规则。

(10)  多种多样的客户端技术,用户需要安装多个客户端来使用多个业务系统。

(11)  普通的Web页面的表现力差,无法带来更好的用户体验

 

为了避免这些问题,达到增加系统复用性,应用整合集成的目的, 我们越来越多地采用面向服务的架构来开发系统,选用一些中间件产品构建整个系统的开发和运行时技术平台。各类中间件产品的功用参考之前的文章《企业应用系统平台软件分析---2. 企业应用平台软件结构层次》http://blog.csdn.net/zlushangnwpu/archive/2008/09/30/2999571.aspx

按照面向服务的设计思路,整个系统分为基础服务层,业务应用服务层,应用渠道接入层,客户端前台几个层次。

(1)    基础服务层提供技术层面的数据采集,存储,计算,传输,分发等功能,或者将第三方系统的功能封装为服务。

(2)     业务应用服务。业务服务实现一定实际意义的业务功能。应用服务调用基础服务的功能。

(3)    应用产品渠道层负责基于不同的连接技术实现和用户的交互, 实现用户和后台之间的请求答复的传输路由。

(4)    前台客户端面向最终用户,接收用户的输入,向用户展现从后台发来的数据。

(5)    建设一个应用产品,选择产品支持的渠道和相应的前台客户端,定义产品提供哪些业务应用服务。

(6)    统一用户管理,客服系统和应用管理监控跨以上的这些层次,面向所有的业务应用产品,提供这些产品通用的功能。

(7)    中后台各个服务之间使用基于消息中间件的信息服务总线进行互联。


带来的好处有:

(1)    整体规划的SOA开发模式。

(2)    统一的应用部署和管理平台。

(3)    统一有效的系统监控平台和业务活动监控平台。

(4)    高速可靠的消息中间件为基础,搭建整个系统内部的信息服务总线。

(5)    业务系统之间使用统一的接口互联互通。

(6)    可复用的功能以服务的形式运行在信息服务总线上供业务系统调用。

(7)    基于服务层的各种服务编排组合实现不同的业务系统,实现业务工作流流程。

(8)    统一的业务数据标准,比如FIX协议。

(9)    使用事件规则引擎编写风险控制规则或者算法交易规则,方便业务人员随时更新。

(10)  统一的客户端框架

 

构建整个应用开发和运行环境,需要一整套产品和技术组成应用产品的开发运行技术基础平台。常用的产品和技术有部署管理监控工具,消息中间件,企业服务总线,BPM产品,规则引擎,事件分析处理产品,BAM工具,客户端技术,ETL工和BI工具等。

(1)     面向服务架构的核心技术支撑,基于消息中间件的信息服务总线作为服务的创建,注册,运行和管理的平台。

(2)     基础服务层, 实现数据接入,数据采集加工计算,数据存储等基础功能。会使用到分布式缓存产品,数据加工产品,连接其他系统的适配器产品。

(3)     业务应用服务层实现各个业务应用系统,规则引擎可以用来实现风险管理和算法交易功能,商业智能产品可以用来做数据挖掘,执行深度的数据分析任务。

(4)     渠道层支持多种客户端和服务端连接技术,C/S结构的应用常使用JMSMQ消息中间件来实现,B/S结构的应用需要Web服务器或者门户产品。

(5)     客户端有胖客户和瘦客户两类。.Net FrameworkAjax是时下比较常用的技术。

(6)     有些产品如应用服务器,包含HTTP服务器,Web容器,EJB容器,WebService容器,JMS消息中间件,是跨这些层的一个综合的软件产品。


TIBCO产品为例, 可以选用以下的产品,构建证券信息系统的SOA技术平台:

(1)    TIBCO Administrator & Hawk ----统一的应用部署管理监控平台。

(2)     TIBCORendezvous & EMS ----消息中间件实现基于主题的消息发布订阅和基于队列的消息发送接收。

(3)     TIBCOBusiness Works & Adapters ----应用的整合平台,服务的创建和运行平台。构造连接异构系统的信息总线。

(4)     TIBCOiProcess ----和整合流程无缝连接的BPM系统, 编排审批工作流,并且可以触发调用后台自动化的流程。

(5)     TIBCOBusiness Event ----基于复杂事件处理的规则引擎,用于风险管理,算法交易规则的编写。

(6)     TIBCOBusiness Factor ----业务活动监控,显示所有系统事件的仪表盘。

(7)     TIBCO GeneralInterface ----AJax技术的客户端展现。

 

附注:

做过一些SOA产品和SOA项目,有了一些对SOA的认识。既不忽悠SOA,也不认为SOA只是个忽悠。 企业信息化系统发展到现在这个阶段,每个企业都不只有一个应用系统,而每个应用系统也变得越来越复杂。应用变复杂了,规模大了,用的资源多了,在内存中缓存的数据多了,一个进程承载不下,自然要多个进程。一个节点承载不了这许多进程,自然要分配到多个节点上。这些不同节点上的不同进程多采用消息中间件进行交互,基于消息中间件实现远程方法的调用。这就是服务接口。多个应用可以共用某些进程的功能,这就是服务的复用。 Web Service是标准的服务接口技术,你也可以使用自己定义的接口。至于如何将多个应用进行应用层和基础层的服务划分,实现服务的高可用性,高内聚低耦合性,这是个没有确定答案的方法论问题。在设计开发时,要依赖于架构师对整个系统的业务逻辑和技术逻辑的把握,依赖于架构师的设计经验。

 

原创粉丝点击