Быстрая разработка GUI для больших объёмов ...2014.secrus.org ›...

15
Russia Development Centre Deutsche Bank Group Technology & Operations Deutsche Bank Быстрая разработка GUI для больших объёмов данных с использованием CQRS парадигмы Алексей Рагозин

Transcript of Быстрая разработка GUI для больших объёмов ...2014.secrus.org ›...

Page 1: Быстрая разработка GUI для больших объёмов ...2014.secrus.org › 2014 › files › 087_ragozin.pdf · 2014-10-24 · Russia Development Centre

Russia Development Centre Deutsche Bank

Group Technology & Operations Deutsche Bank

Быстрая разработка GUI для больших объёмов данных с использованием CQRS парадигмы Алексей Рагозин

Page 2: Быстрая разработка GUI для больших объёмов ...2014.secrus.org › 2014 › files › 087_ragozin.pdf · 2014-10-24 · Russia Development Centre

Russia Development Centre Deutsche Bank

Deutsche Bank – один из крупнейших инвестиционных банков. Тысячи клиентов Десятки бизнес линий Милионы транзакций каждый

Условия рынка меняются Hовые законы Hовые рынки Hовые продукты

Наш челенж

Page 3: Быстрая разработка GUI для больших объёмов ...2014.secrus.org › 2014 › files › 087_ragozin.pdf · 2014-10-24 · Russia Development Centre

Russia Development Centre Deutsche Bank

Трейдинговый UI это

Сотни тысяч бизнес объектов на экране возможно милионы

которые меняются в реальном времени анноторованные рыночными котироваками

тикающими каждую секунду при этом UI должен быть быстрым

с низким потреблением ресурсов

Наш челенж

Page 4: Быстрая разработка GUI для больших объёмов ...2014.secrus.org › 2014 › files › 087_ragozin.pdf · 2014-10-24 · Russia Development Centre

Russia Development Centre Deutsche Bank

Model

View Controller

Парадигма CQRS

Общая модель данных для

управления и презентации

Page 5: Быстрая разработка GUI для больших объёмов ...2014.secrus.org › 2014 › files › 087_ragozin.pdf · 2014-10-24 · Russia Development Centre

Russia Development Centre Deutsche Bank

Command Query Responsibility Segregation

Парадигма CQRS

* Greg Young, Mark Nijhof, http://cre8ivethought.com/blog/2009/11/12/cqrs--la-greg-young

Page 6: Быстрая разработка GUI для больших объёмов ...2014.secrus.org › 2014 › files › 087_ragozin.pdf · 2014-10-24 · Russia Development Centre

Russia Development Centre Deutsche Bank

Command Query Responsibility Segregation

Парадигма CQRS

Управление Представление

Бэкэ

нд

Инерфейспользователя

Уровень данных

Кома

нды

Запр

осы

Собы

тия

Page 7: Быстрая разработка GUI для больших объёмов ...2014.secrus.org › 2014 › files › 087_ragozin.pdf · 2014-10-24 · Russia Development Centre

Russia Development Centre Deutsche Bank

Command Query Responsibility Segregation

Независимые модели данных Преставления - События Управления - Команды

Независимые цепочки компонентов Естественная модель для асинхронного выполнения команд

Парадигма CQRS

Page 8: Быстрая разработка GUI для больших объёмов ...2014.secrus.org › 2014 › files › 087_ragozin.pdf · 2014-10-24 · Russia Development Centre

Russia Development Centre Deutsche Bank

Традиционная архитектура OMS

Контролер

Шина обмена сообщениями ШлюзШлюз

Кэш

Page 9: Быстрая разработка GUI для больших объёмов ...2014.secrus.org › 2014 › files › 087_ragozin.pdf · 2014-10-24 · Russia Development Centre

Russia Development Centre Deutsche Bank

Данные меняются динамически Pull модель не работает Используем Push модель Continuous Query

Модель представления Модель визуализации – таблицы Модель хранения – таблицы (значительная часть) Используем реляционную модель для представления

Улучшаем CQRS

Page 10: Быстрая разработка GUI для больших объёмов ...2014.secrus.org › 2014 › files › 087_ragozin.pdf · 2014-10-24 · Russia Development Centre

Russia Development Centre Deutsche Bank

View Action Server

VAS

RTDB SQL KDB Whatever

Data sources

Query

UI

Actions

Actions

Backend?

Page 11: Быстрая разработка GUI для больших объёмов ...2014.secrus.org › 2014 › files › 087_ragozin.pdf · 2014-10-24 · Russia Development Centre

Russia Development Centre Deutsche Bank

Платформа Java (C# на стороне UI) Запросы в стиле LINQ

Непрерывная обработка данных Continuous queries

Реляционная модель и реляционная алгебра Унификация источников данных

Например, универсальный RDBMS адаптер

View Action Server

Page 12: Быстрая разработка GUI для больших объёмов ...2014.secrus.org › 2014 › files › 087_ragozin.pdf · 2014-10-24 · Russia Development Centre

Russia Development Centre Deutsche Bank

Виртуализованные таблицы Видимы диапазон передаётся на UI Сортировка и фильтрация на стороне VAS Selection model на стороне VAS Master – details линковка таблиц на сервере

Потребление памяти GUI не зависит от объёма данных Возможна on-demand подгрузка данных только для видимых строк Например: подписки на рыночные котировки только для видимых строк

View Action Server

Page 13: Быстрая разработка GUI для больших объёмов ...2014.secrus.org › 2014 › files › 087_ragozin.pdf · 2014-10-24 · Russia Development Centre

Russia Development Centre Deutsche Bank

“Виртуализация” данных В

иди

мы

й

диап

азон

Вы

дел

ени

е

Связанная таблица

Агрегаты

Page 14: Быстрая разработка GUI для больших объёмов ...2014.secrus.org › 2014 › files › 087_ragozin.pdf · 2014-10-24 · Russia Development Centre

Russia Development Centre Deutsche Bank

Повторное использование источников данных Нет доменных объектов, нет зависимостей на код Минимальное количество кода на бэк-энде Java для реализации комманд Реляционная алгерба для представления Быстрый старт разработки Простая конфигурация тестового окружения Повторное использование компонентов NFR обеспечивает платформа Централизация экспертизы в одной команде Эволюция платформы → улучшения дял всех бизнес приложений

Преимущества подхода

Page 15: Быстрая разработка GUI для больших объёмов ...2014.secrus.org › 2014 › files › 087_ragozin.pdf · 2014-10-24 · Russia Development Centre

Russia Development Centre Deutsche Bank

Deutsche Bank Group Technology & Operations

Спасибо! Алексей Рагозин