简介: 本文是一个 文章系列 的第一篇,探讨如何集成 IBM® 中间件功能,以便满足金融市场前台办公室中的技术要求。这种前台办公室需要专业软件以极高的速度处理海量数据。这个 文章系列 介绍一个算法交易场景,该场景作为一个 IBM Software Group 孵化项目的一部分而实现。本文将提供该项目中编制的一个集成蓝图的高级概览,该蓝图展示这个场景中的组件是如何互联的。本系列后续文章将深入探讨集成这个蓝图中的各种产品的技术细节,以及如何在这个场景中使用那些产品。
这个 Software Group 孵化项目的代码名为 “Botticelli”,主要关注资本市场中的前台办公室。前台办公室负责通过交易商买入和卖出证券。这个项目实现了一个简单的算法交易用例。算法交易指的是以编程方式生成买入和卖出订单。在算法交易中,一个数量模型根据某些参数和约束自动生成订单的时间和大小。这些交易环境需要一个高速基础设施来处理海量数据,从而优化公司的交易。在这个算法场景中,算法程序分析并处理实时市场数据和其他参考数据,然后生成订单以买入或卖出证券。
支持算法交易所需的前台办公室基础设施与中间和后台办公室基础设施不同。后两者更倾向于以业务流程驱动,它们的一个关键要求是确保消息的交付,以便确保订单不会丢失。
在一个算法交易场景中,有几个步骤必须执行,我们通过应用 IBM 技术来演示每个步骤。
算法交易要求基础设施支持高速访问海量数据。这个交易平台通常需要各种功能,包括:
图 1 中描述的 Botticelli 场景表示一个经过简化的算法交易用例。
交易流如下所示:
图 2 展示了集成起来以提供上一小节中定义的功能的 IBM 中间件套件。
我们逐一检查以下用于这些功能的 IBM 技术和产品。下面描述的每个产品都关联到 图 2 中的一个字母组件(例如 “A”)。
IBM WebSphere® Front Office (A) WebSphere Front Office 提供 95% 以上的提要处理程序,覆盖北美、欧洲和亚洲的主要股票提要,最大的期权提要,以及北美的一些期权和商品期货提要。提要处理程序知道如何解释入站数据,规范化数据,并使其对订阅者可用。数据分发特性提供各种方法来分发数据,每种方法都涉及不同的服务质量。Low Latency Messaging 最近参与了一个 Securities Technology Analysis Center (STAC) 性能基准测试。就速度而言,WebSphere MQ Low Latency Messaging 通过了 STAC 在 Infiniband 上以每秒 50K 消息的速度进行的 8 毫秒单跳延迟基准测试。就流量而言,在内部性能测试中,WebSphere MQ Low Latency Messaging 通过了在 InfiniBand 上进行的每秒处理 1300 万条 45 字节的消息的基准测试。
图 3 展示了这个交易索引程序的运行时视图。这个程序实现为一个单向数据元组流。它首先接收来自 WebSphere Front Office 的市场数据输入,然后将这些数据分割为多个交易和报价。然后使用其他数据充实交易,并执行数量加权平均价格计算。最后生成一些订单,并通过一个 WebSphere MQ Low Latency Messaging 连接将输出发送到数据中心。这个程序使用一种流处理语言创建,该语言支持运算符的声明性合成,这些运算符是该语言的基本构建块。Streams 提供针对高性能和平台独立性的代码生成。鉴于这些特性,Streams 是可用于算法交易平台的极好技术。
在 Botticelli 中,我们调用在 JRules 中创建的规则,以确定将异常订单路由到何处。这些异常订单是按照算法生成的订单,它们超过了在订单大小上设置的阈值。本系列 下一篇文章将展示如何集成 Streams 和 ILOG。(要收听一个录制好的 ILOG 演示,了解如何在一个 Financial Markets 公司中使用 JRules,请参见 参考资料。)
Botticelli 还在交易商桌面中使用 ILOG 可视化小部件。IBM ILOG JViews Enterprise 提供范围广泛的图形界面,它们可以集成到桌面、Ajax 和 Eclipse 显示中。
我们创建了多个不同的接收程序,它们可以根据多种类型的消息传递协议来处理入站数据,并通过一个订阅管理程序使该数据可用。
Lotus Expeditor 是一个由服务器管理的客户端平台,提供一个单一的容器来集成桌面应用程序、Web 应用程序和遗留应用程序。您可以通过使用一个属性代理来以上下文方式链接这些应用程序的内容。在 Botticelli 中,我们还为我们的图表和图形集成了 ILOG JViews 可视化小部件。
WebSphere sMash 是一个开发和执行平台,用于使用 SOA 原则快速构建和运行动态的、基于 Web 2.0 的应用程序。它支持 PHP 和 Groovy 这样的脚本语言,并提供一个敏捷的 Web 应用程序开发环境。
Cognos Now! 拥有一个流引擎,支持近乎实时地处理提要。在我们的场景中,订单数据从算法程序发送到 Cognos Now! 指示板。指示板以各种格式显示订单数据的多维视图。Alert Manager 功能允许业务用户识别他们愿意设置警报的数据条件。监视点可用于在指示板表中突出显示这些数据条件。
本系列 的一篇后续文章将介绍这个项目的一部分:Cognos Now! 和 WebSphere MQ Low Latency Messaging 之间的集成。
有多个集成点,它们作为这个项目的一部分处理。由于 WebSphere MQ Low Latency Messaging 是主消息传递总线,这个 Blueprint 中的产品必须能够使用它。这就需要开发几个新的 APIs。那些 APIs 的代码已经贡献给产品团队。这个项目还集成了 JRules 引擎和 Streams,支持在一个运行的 Streams 程序中动态刷新业务规则。本 系列 的后续文章将介绍我们如何解决这些和其他集成问题。这些集成点包括:
本文简要介绍了一些 IBM 功能在金融市场业(具体而言是前台办公室)中的应用。我们使用了一个算法交易场景来演示如何集成 IBM 中间件技术,从而提供一个样例解决方案。这些技术能为这个要求高速度、高流量功能的领域中的其他许多解决方案提供一个框架。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/14789789/viewspace-673758/ ,如需转载,请注明出处,否则将追究法律责任。