Технология IBM для систем работы с клиентами на финансовых рынках: Часть 1. Обзор плана интеграции систем работы с клиентами на финансовых рынках

Данная статья является первой частью серии статей, в которых рассматриваются возможности интеграции программного обеспечения IBM промежуточного уровня для удовлетворения технических требований систем работы с клиентами на финансовых рынках. Эти требования порождают потребность в специализированном программном обеспечении, способном обрабатывать большие объемы данных с очень большой скоростью. В данной серии (EN) статей описывается сценарий алгоритмической биржевой торговли, реализованный как часть инкубационного проекта IBM Software Group. В первой статье серии приведен высокоуровневый обзор плана интеграции, сформированного в рамках проекта. Этот план демонстрирует, как взаимодействуют компоненты в сценарии. В последующих статьях будет приведена более детальная техническая информация по интеграции в план различных продуктов и информация о том, как эти продукты использовались в сценарии.

Мэри Тейлор, старший архитектор информационных систем, IBM

Мэри Тейлор (Mary Taylor) является старшим разработчиком архитектуры информационных систем. Она работает в группе Strategic Technology Architecture and Incubation (STAI) и в данный момент занимается пилотным проектом SOA CBS. Среди ее интересов DB2 и DataStage.



Герман Голдшмидт, старший технический сотрудник, IBM

Доктор Герман Голдшмидт является старшим техническим сотрудником в IBM Software Group. Его работа связана с архитектурой интегрированных платформ и выпуском, настройкой и развёртыванием составных приложений SOA для реализации бизнес-сервисов.



11.03.2012

Введение в проект

Рассматриваемый инкубационный проект под кодовым названием "Botticelli" предназначен для систем работы с клиентами (front office) на рынках капитала. Эти системы предназначены для покупки и продажи ценных бумаг трейдерами. В данном проекте реализован простой вариант алгоритмической биржевой торговли. Алгоритмической торговлей называется размещение заявок на продажу или покупку программным способом. В алгоритмической торговле количественная модель автоматически генерирует время и порядок заказов на основе определенных параметров и ограничений. Такие системы биржевой торговли требуют высокопроизводительной инфраструктуры, способной обрабатывать большой объем данных для оптимизации торговых операций фирмы. В сценарии проекта алгоритмическая программа анализирует и обрабатывает реальные динамические рыночные данные вместе с другими справочными данными и генерирует заказы на покупку или продажу ценных бумаг.

Инфраструктура системы работы с клиентами, необходимая для поддержки алгоритмической торговли, отличается от промежуточной (mid-office) и внутренней (back-office) инфраструктур. Последние больше управляются бизнес-процессами, а критичным требованием для них является гарантированная доставка сообщений, исключающая потерю заказов.

В сценарии алгоритмической торговли есть несколько шагов, которые нужно выполнить, и мы применили технологию IBM для демонстрации каждого из этих шагов.


Требования к процессу алгоритмической торговли

Алгоритмическая торговля требует наличия инфраструктуры, обеспечивающей высокоскоростной доступ к большим объемам данных. От платформы для торговли обычно требуется целый ряд функциональных возможностей:

  • принимать потоки входящих рыночных данных;
  • распределять рыночные данные по приложениям/процессам за микросекунды;
  • анализировать рыночные данные в реальном времени;
  • предварительно загружать справочные и хронологические данные;
  • поддерживать бизнес-правила;
  • обеспечивать доступ торговцев к рыночным данным и другой финансовой информации;
  • отслеживать состояние системы алгоритмической торговли.

Сценарий Botticelli

Сценарий Botticelli, изображенный на рисунке 1, представляет собой упрощенный вариант реализации алгоритмической торговли.

Рисунок 1. Сценарий алгоритмической торговли Botticelli
Рисунок 1. Сценарий алгоритмической торговли Botticelli

Алгоритм работы следующий:

  • Рыночные данные NYSE и NASDAQ обрабатываются посредством обработчиков фидов, которые делают их доступными подписчикам.
  • Два подписчика принимают рыночные данные – программа алгоритмической торговли обработки индекса сделок (bargain index) и концентратор данных.
  • Справочные данные и граничные параметры загружаются в память для использования программами алгоритмической коммерции во время сеанса торговли.
  • Программа обработки индекса сделок получает рыночные данные по высокоскоростному соединению и выполняет следующее:
    • Извлекает из памяти справочные данные, такие как прибыль на акцию, аналитическая цена и конфигурационные параметры.
    • Вычисляет взвешенную по объему среднюю цену сделок (volume-weighted average price).
    • Выполняет вычисления и генерирует заказы, идентифицированные как выгодные сделки.
    • Определяет, является ли заказ исключительным (превышает граничную величину по размеру).
    • Отправляет неисключительные заказы через концентратор данных на маршрутизацию по месту исполнения.
    • На основании бизнес-правил определяет, кому направлять исключительные заказы (exception order).
    • Направляет исключительные заказы через концентратор данных соответствующему трейдеру.
  • Рабочий стол трейдера подписывается на концентратор данных и отображает:
    • Список наблюдаемых ценных бумаг (Dow 30 в данном сценарии), различные финансовые виджеты и исключительные заказы для трейдера.
  • Информационная панель мониторинга подписывается на концентратор данных и отображает:
    • Многомерные представления данных заказа, статус заказа, выходную информацию программы обработки индекса сделок, информацию о времени задержки в системе и анализ исключительного заказа.

План системы работы с клиентами на финансовых рынках

На рисунке 2 показан набор программного обеспечения IBM промежуточного уровня, который был интегрирован для реализации функциональных возможностей, описанных в предыдущем разделе.

Рисунок 2. План системы работы с клиентами
Рисунок 2. План системы работы с клиентами

Давайте рассмотрим все технологии и продукты IBM, использующиеся в данном плане. Каждый продукт, описанный ниже, ассоциирован с одним из обозначенных буквами компонентов (например, "A") на рисунке 2.

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). При скорости 50K сообщений в секунду измеренная специалистами STAC задержка для WebSphere MQ Low Latency Messaging при подключении по каналу Infiniband с одним звеном составила 8 мкс. В тесте внутренней производительности WebSphere MQ Low Latency Messaging показал результат более 13 миллионов 45-байтных сообщений в секунду на InfiniBand.

IBM InfoSphere™ Streams (C)
InfoSphere Streams – это высокопроизводительная технология потоковой обработки, которая может использоваться для быстрого анализа данных, новостей и видеоматериалов в реальном времени, принимаемых в виде потоков данных от тысяч источников. Платформа Streams позволяет анализировать структурированные и неструктурированные данные и может масштабироваться до 125 узлов (серверов). В рамках проекта Botticelli мы реализовали индекс сделок в виде программы, работающей на платформе Streams.

На рисунке 3 представлен обзор программы обработки индекса сделок во время исполнения. Эта программа реализована как однонаправленный поток кортежей данных. Он начинается с ввода рыночных данных из WebSphere Front Office, а затем данные разделяются на сделки (trade) и котировки (quote). К сделкам добавляются дополнительные данные и выполняется вычисление взвешенной по объему средней цены. В конечном итоге генерируются заказы, и выходная информация отправляется в концентратор данных по соединению WebSphere MQ Low Latency Messaging. Программа была создана с использованием языка потоковой обработки, поддерживающего декларативную композицию операторов, которые являются ее основными строительными блоками. Streams обеспечивает генерирование высокопроизводительного и платформенно-независимого кода. Благодаря этим возможностям Streams отлично подходит для платформы алгоритмической торговли.

Рисунок 3. Программа обработки индекса сделок
Рисунок 3. Программа обработки индекса сделок
IBM solidDB® (D)
СУБД solidDB обеспечивает извлечение хранящихся в оперативной памяти с использованием специализированных методов доступа. Эти методы доступа приводят к десятикратному ускорению доступа к данным по сравнению с использующимися для доступа к кэшированным данным в традиционных системах баз данных на дисках. В рамках проекта Botticelli мы предварительно загружали в solidDB справочные данные, которые могли потребоваться программе обработки индекса сделок, чтобы доступ к этим данным в режиме реального времени был как можно более быстрым.
Система управления бизнес-правилами (BRMS) WebSphere ILOG® (E)
Технология ILOG предназначена для администрирования, оптимизации и визуализации бизнес-правил. Система управления бизнес-правилами ILOG называется JRules. JRules предоставляет возможность централизовать управление и администрирование бизнес-правил на предприятии, обеспечивая способность проведения аудита и контроля, являющихся критичными требованиями в отрасли финансовых рынков. По этой причине мы используем JRules для маршрутизации исключительных заказов трейдерам для просмотра.

В рамках проекта Botticelli мы использовали созданные в Jrules правила маршрутизации для определения того, куда направлять исключительные заказы. К исключительным относятся алгоритмически сгенерированные заказы, превышающие установленные граничные значения для размера заказа. В следующей статье данной серии рассматривается процесс интеграции Streams и ILOG. (В разделе Ресурсы приведена ссылка на демонстрационный аудиоматериал по ILOG, посвященный возможному использованию JRules в фирме, занимающейся торговлей на финансовых рынках.)

В проекте Botticelli также используются виджеты визуализации ILOG на рабочем столе трейдера. IBM ILOG JViews Enterprise предоставляет широкий диапазон графических интерфейсов, которые можно интегрировать на рабочий стол, Ajax и Eclipse-мониторы.

WebSphere eXtreme Scale (F)
WebSphere eXtreme Scale – это технология кэширования и grid-вычислений, использованная нами в качестве центрального концентратора данных (data hub) для данных, которые нужно было сделать доступными клиентским приложениям. Мы кэшировали рыночные данные из WebSphere Front Office, данные о заказах из Streams и хронологические данные, необходимые для рабочих столов трейдеров.

Мы создали различные приемники (receiver) данных, способные обрабатывать данные по протоколам обмена сообщениями нескольких типов, и сделали эти данные доступными через менеджер подписки.

Настольные клиенты IBM Lotus® Expeditor и WebSphere sMash (G)
К клиентским приложениям предъявляются различные требования в зависимости от объема и частоты изменения данных. Мы создали настольное приложение с очень низкими временами задержки на базе Lotus Expeditor, а также Web-приложение на базе WebSphere sMash, к которому можно обращаться посредством любого интернет-браузера.

Lotus Expeditor – это управляемая сервером платформа клиентских приложений, реализующая единый контейнер для интеграции настольных приложений, Web-приложений и унаследованных приложений. Содержимое приложений можно контекстуально связывать посредством брокера свойств (property broker). В проекте Botticelli мы интегрировали также виджеты визуализации ILOG JViews для наших диаграмм и графиков.

WebSphere sMash – это платформа разработки и выполнения, предназначенная для быстрого создания и запуска динамичных, основанных на технологии Web 2.0 приложений, использующих принципы SOA. Она поддерживает такие языки сценариев, как PHP и Groovy, а также предоставляет среду разработки динамичных (agile) Web-приложений.

IBM Cognos® Now! (H)
В дополнение к рабочим столам трейдера мы приняли решение реализовать средства мониторинга приложений. Менеджеров торговых отделов (trade desk) интересует следующая информация:
  • сколько заказов генерируется;
  • анализ заказов по секторам/тикерам/времени;
  • как работают фиды данных;
  • каково состояние заказов.

Приложение Cognos Now! имеет потоковый механизм, позволяющий обрабатывать фиды данных практически в режиме реального времени. В нашем сценарии данные заказа отправляются из алгоритмической программы в информационную панель (dashboard) Cognos Now!. На этой панели в различных форматах представляются многомерные изображения данных заказов. Функциональность Alert Manager позволяет бизнес-пользователям идентифицировать условия на данные, о которых они хотели бы быть проинформированы. Для выделения условий на данные в таблицах информационной панели можно использовать точки наблюдения (watch points).

В следующих статьях данной серии описывается интеграция Cognos Now! и WebSphere MQ Low Latency Messaging в рамках данного проекта.


Точки интеграции

В процессе работы было выявлено несколько точек интеграции. Поскольку основной шиной обмена сообщениями является WebSphere MQ Low Latency Messaging, применяемые в проекте продукты должны уметь использовать ее. Это потребовало разработки новых API. Код этих API был передан отделам разработки продуктов. Также была проведена работа по интеграции механизма JRules и Streams, что позволило динамически обновлять бизнес-правила в работающей программе Streams. В следующих статьях данной серии описывается, как решаются эти и другие задачи интеграции. К выявленным точкам интеграции относятся:

  • отправка данных WebSphere Front Office в InfoSphere Streams;
  • прием данных solidDB в InfoSphere Streams;
  • отправка выходных данных InfoSphere Streams в другие приложения, используя протокол WebSphere MQ Low Latency Messaging;
  • прием данных в Cognos Now! по протоколу WebSphere MQ Low Latency Messaging;
  • встраивание механизма ILOG JRules в программу InfoSphere Streams;
  • извлечение показателей времени задержки из WebSphere Front Office, WebSphere MQ Low Latency Messaging, InfoSphere Streams и solidDB.

Заключение

В данной статье был представлен обзор некоторых возможностей продуктов IBM при работе на финансовых рынках, в частности, в системах работы с клиентами. Мы использовали сценарий алгоритмической торговли для демонстрации того, как можно построить решение путем интеграции технологий ПО IBM промежуточного уровня могут интегрироваться для. Эти же технологии могут предоставить интегрированную среду для многих других решений в данной области, требующих высокой скорости и производительности.

Благодарности

Мы хотели бы поблагодарить всех участников проекта Botticelli:

  • Ника Шофилда (Nick Schofield), Вэй Чао (Wei Tchao) и Уэйна Ли (Wayne Lee), разработавших прототип, интегрировавший эти продукты и продемонстрировавший их возможности;
  • Фолу Окусейнде (Folu Okunseinde), поделившегося техническим опытом работы на финансовых рынках и разработавшего архитектуру решения;
  • Раджива Чодхари (Rajiv Chodhari) и Филипа Эннесса (Philip Enness), сформулировавших бизнес-приоритеты, требования клиентов и специфику финансового рынка;
  • Джима Колдуэлла (Jim Caldwell), познакомившего нас с данной проблемной областью и предоставившего существенную поддержку.

Ресурсы

Научиться

Обсудить

  • Lotus Expeditor wiki. Используйте и пополняйте информацию об установке, администрировании и использовании компонентов Lotus Expeditor.

Комментарии

developerWorks: Войти

Обязательные поля отмечены звездочкой (*).


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Профиль создается, когда вы первый раз заходите в developerWorks. Информация в вашем профиле (имя, страна / регион, название компании) отображается для всех пользователей и будет сопровождать любой опубликованный вами контент пока вы специально не укажите скрыть название вашей компании. Вы можете обновить ваш IBM аккаунт в любое время.

Вся введенная информация защищена.

Выберите имя, которое будет отображаться на экране



При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Обязательные поля отмечены звездочкой (*).

(Отображаемое имя должно иметь длину от 3 символов до 31 символа.)

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Вся введенная информация защищена.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Information Management, WebSphere, Lotus
ArticleID=801435
ArticleTitle=Технология IBM для систем работы с клиентами на финансовых рынках: Часть 1. Обзор плана интеграции систем работы с клиентами на финансовых рынках
publish-date=03112012