金融市場前臺辦公室中的 IBM 技術,第 1 部分: 一個金融市場前臺辦公室整合藍圖概述

CloudSpace發表於2010-09-13
Mary Taylor, IT 諮詢專家, IBM  
Germán Goldszmidt, IBM 傑出工程師, IBM  

簡介: 本文是一個 文章系列 的第一篇,探討如何整合 IBM® 中介軟體功能,以便滿足金融市場前臺辦公室中的技術要求。這種前臺辦公室需要專業軟體以極高的速度處理海量資料。這個 文章系列 介紹一個演算法交易場景,該場景作為一個 IBM Software Group 孵化專案的一部分而實現。本文將提供該專案中編制的一個整合藍圖的高階概覽,該藍圖展示這個場景中的元件是如何互聯的。本系列後續文章將深入探討整合這個藍圖中的各種產品的技術細節,以及如何在這個場景中使用那些產品。

專案簡介

這個 Software Group 孵化專案的程式碼名為 “Botticelli”,主要關注資本市場中的前臺辦公室。前臺辦公室負責通過交易商買入和賣出證券。這個專案實現了一個簡單的演算法交易用例。演算法交易指的是以程式設計方式生成買入和賣出訂單。在演算法交易中,一個數量模型根據某些引數和約束自動生成訂單的時間和大小。這些交易環境需要一個高速基礎設施來處理海量資料,從而優化公司的交易。在這個演算法場景中,演算法程式分析並處理實時市場資料和其他參考資料,然後生成訂單以買入或賣出證券。

支援演算法交易所需的前臺辦公室基礎設施與中間和後臺辦公室基礎設施不同。後兩者更傾向於以業務流程驅動,它們的一個關鍵要求是確保訊息的交付,以便確保訂單不會丟失。

在一個演算法交易場景中,有幾個步驟必須執行,我們通過應用 IBM 技術來演示每個步驟。

演算法交易要求基礎設施支援高速訪問海量資料。這個交易平臺通常需要各種功能,包括:

  • 接受入站市場資料流
  • 在數毫秒之內將市場資料分發到各個應用程式/流程
  • 實時分析市場資料
  • 預先載入參考和歷史資料
  • 支援業務規則
  • 允許交易商訪問市場資料和其他金融資訊
  • 監測演算法交易環境的健康狀況

圖 1 中描述的 Botticelli 場景表示一個經過簡化的演算法交易用例。


圖 1. Botticelli 演算法交易場景
Botticelli                     演算法交易場景圖

交易流如下所示:

  • NYSE 和 NASDAQ 市場資料通過提要處理程式處理,並允許訂閱者訂閱。
  • 兩個訂閱者接收市場資料 — 交易索引演算法交易程式和資料中心。
  • 參考資料和閾值引數被載入到記憶體,以便演算法交易程式在交易會話期間使用。
  • 交易索引程式通過一個高速連線接收市場資料並執行以下操作:
    • 從記憶體檢索參考資料,比如每股收益、分析師評級和配置引數。
    • 為交易計算數量加權平均價格。
    • 執行計算並生成訂單,這些訂單已作為交易識別。
    • 確定訂單是否異常(超過大小閾值)。
    • 通過資料中心傳送非異常訂單,將其路由到執行地點。
    • 呼叫業務規則確定將異常訂單路由給誰。
    • 通過資料中心將異常訂單路由給適當的交易商。
  • 交易商桌面訂閱到資料中心並顯示:
    • 股票(本場景是 Dow 30)、各種金融小部件以及該交易商的異常訂單的監視清單。
  • 監控指示板訂閱到資料中心並顯示:
    • 訂單資料、訂單狀態、交易索引程式的輸出、系統延遲資訊以及異常訂單中斷的多維檢視。

圖 2 展示了整合起來以提供上一小節中定義的功能的 IBM 中介軟體套件。


圖 2. 前臺辦公室藍圖
展示金融市場前臺辦公室藍圖的圖表

我們逐一檢查以下用於這些功能的 IBM 技術和產品。下面描述的每個產品都關聯到 圖 2 中的一個字母元件(例如 “A”)。

IBM WebSphere® Front Office (A) WebSphere Front Office 提供 95% 以上的提要處理程式,覆蓋北美、歐洲和亞洲的主要股票提要,最大的期權提要,以及北美的一些期權和商品期貨提要。提要處理程式知道如何解釋入站資料,規範化資料,並使其對訂閱者可用。資料分發特性提供各種方法來分發資料,每種方法都涉及不同的服務質量。

WebSphere MQ Low Latency Messaging (B) WebSphere MQ Low Latency Messaging 是一個低延遲分發匯流排,用於滿足金融市場交易基礎設施的要求。它支援多種功能,比如高效能訊息傳遞、多播和單播傳輸、元件狀態複製、故障檢測和故障轉移、以及順序一致的交付。

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 位元組的訊息的基準測試。


IBM InfoSphere™ Streams (C) InfoSphere Streams 是一種高效能流處理技術,能夠用於以實時方式快速分析來自數千個實時源的資料流中的資料、新聞和視訊。這個 Streams 平臺能夠分析結構化和無結構的資料,並能擴充套件到 125 多個節點(伺服器)例項上。在 Botticelli 中,我們將交易索引實現為一個在 Streams 平臺上執行的程式。

圖 3 展示了這個交易索引程式的執行時檢視。這個程式實現為一個單向資料元組流。它首先接收來自 WebSphere Front Office 的市場資料輸入,然後將這些資料分割為多個交易和報價。然後使用其他資料充實交易,並執行數量加權平均價格計算。最後生成一些訂單,並通過一個 WebSphere MQ Low Latency Messaging 連線將輸出傳送到資料中心。這個程式使用一種流處理語言建立,該語言支援運算子的宣告性合成,這些運算子是該語言的基本構建塊。Streams 提供針對高效能和平臺獨立性的程式碼生成。鑑於這些特性,Streams 是可用於演算法交易平臺的極好技術。


圖 3. 交易索引程式
Streams 交易索引程式圖


IBM solidDB® (D) solidDB 使用特殊的訪問方法提供資料的記憶體檢索。這些訪問方法使資料訪問和儲存速度比從傳統的基於磁碟的資料庫系統訪問快取資料的速度最多快 10 倍。在 Botticelli 中,我們將演算法程式需要的參考資料預先載入到 solidDB,以便以最快速度實時訪問那些資料。

WebSphere ILOG® Business Rule Management Systems (BRMS) (E) ILOG 技術擅長業務規則管理、優化和視覺化。ILOG BRMS 稱為 JRules。 JRules 支援集中企業內的規則管理,以便提供可審計能力和可追蹤能力,而這兩種能力是金融市場業的關鍵要求。鑑於上述原因,我們使用 JRules 將異常訂單路由到交易商以進行審查。

在 Botticelli 中,我們呼叫在 JRules 中建立的規則,以確定將異常訂單路由到何處。這些異常訂單是按照演算法生成的訂單,它們超過了在訂單大小上設定的閾值。本系列 下一篇文章將展示如何整合 Streams 和 ILOG。(要收聽一個錄製好的 ILOG 演示,瞭解如何在一個 Financial Markets 公司中使用 JRules,請參見 參考資料。)

Botticelli 還在交易商桌面中使用 ILOG 視覺化小部件。IBM ILOG JViews Enterprise 提供範圍廣泛的圖形介面,它們可以整合到桌面、Ajax 和 Eclipse 顯示中。


WebSphere eXtreme Scale (F) WebSphere eXtreme Scale 是一種快取和網格技術,我們可以將其用作一箇中央資料中心,儲存需要提供給客戶端應用程式的資料。我們快取來自 Sphere Front Office 的市場資料,來自 Streams 的訂單資料,以及交易商桌面需要的歷史資料。

我們建立了多個不同的接收程式,它們可以根據多種型別的訊息傳遞協議來處理入站資料,並通過一個訂閱管理程式使該資料可用。


桌面客戶端:IBM Lotus® Expeditor and WebSphere sMash (G) 根據不同的資料交換數量和頻率,對客戶端桌面有不同的要求。我們使用 Lotus Expeditor 建立了一個延遲時間極低的桌面應用程式,並使用 WebSphere sMash 建立了一個基於 Web 的應用程式(可通過任何 Internet 瀏覽器訪問)。

Lotus Expeditor 是一個由伺服器管理的客戶端平臺,提供一個單一的容器來整合桌面應用程式、Web 應用程式和遺留應用程式。您可以通過使用一個屬性代理來以上下文方式連結這些應用程式的內容。在 Botticelli 中,我們還為我們的圖表和圖形整合了 ILOG JViews 視覺化小部件。

WebSphere sMash 是一個開發和執行平臺,用於使用 SOA 原則快速構建和執行動態的、基於 Web 2.0 的應用程式。它支援 PHP 和 Groovy 這樣的指令碼語言,並提供一個敏捷的 Web 應用程式開發環境。


IBM Cognos® Now! (H) 除了交易商桌面外,我們發現還需要提供應用程式監控功能。交易專櫃經理負責管理交易專櫃,他們對下面的資訊感興趣:
  • 生成了多少訂單
  • 標明瞭部門/符號/時間的訂單中斷
  • 資料提要的執行方式
  • 訂單狀態

Cognos Now! 擁有一個流引擎,支援近乎實時地處理提要。在我們的場景中,訂單資料從演算法程式傳送到 Cognos Now! 指示板。指示板以各種格式顯示訂單資料的多維檢視。Alert Manager 功能允許業務使用者識別他們願意設定警報的資料條件。監視點可用於在指示板表中突出顯示這些資料條件。

本系列 的一篇後續文章將介紹這個專案的一部分:Cognos Now! 和 WebSphere MQ Low Latency Messaging 之間的整合。


有多個整合點,它們作為這個專案的一部分處理。由於 WebSphere MQ Low Latency Messaging 是主訊息傳遞匯流排,這個 Blueprint 中的產品必須能夠使用它。這就需要開發幾個新的 APIs。那些 APIs 的程式碼已經貢獻給產品團隊。這個專案還整合了 JRules 引擎和 Streams,支援在一個執行的 Streams 程式中動態重新整理業務規則。本 系列 的後續文章將介紹我們如何解決這些和其他整合問題。這些整合點包括:

  • 將 WebSphere Front Office 資料傳送到 InfoSphere Streams
  • 將 solidDB 資料接收到 InfoSphere Streams
  • 使用 WebSphere MQ Low Latency Messaging 協議將 InfoSphere Streams 輸出傳送到其他應用程式
  • 通過 WebSphere MQ Low Latency Messaging 將資料接收到 Cognos Now!
  • 將 ILOG JRules 引擎嵌入一個 InfoSphere Streams 程式
  • 從 WebSphere Front Office、WebSphere MQ Low Latency Messaging、InfoSphere Streams 和 solidDB 提取延遲性指標

本文簡要介紹了一些 IBM 功能在金融市場業(具體而言是前臺辦公室)中的應用。我們使用了一個演算法交易場景來演示如何整合 IBM 中介軟體技術,從而提供一個樣例解決方案。這些技術能為這個要求高速度、高流量功能的領域中的其他許多解決方案提供一個框架。

原文連結:http://www.ibm.com/developerworks/cn/data/library/techarticles/dm-1005integrationblueprint1/index.html

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14789789/viewspace-673758/,如需轉載,請註明出處,否則將追究法律責任。

相關文章