Russia Development Centre Deutsche Bank
Group Technology & Operations Deutsche Bank
Быстрая разработка GUI для больших объёмов данных с использованием CQRS парадигмы Алексей Рагозин
Russia Development Centre Deutsche Bank
Deutsche Bank – один из крупнейших инвестиционных банков. Тысячи клиентов Десятки бизнес линий Милионы транзакций каждый
Условия рынка меняются Hовые законы Hовые рынки Hовые продукты
Наш челенж
Russia Development Centre Deutsche Bank
Трейдинговый UI это
Сотни тысяч бизнес объектов на экране возможно милионы
которые меняются в реальном времени анноторованные рыночными котироваками
тикающими каждую секунду при этом UI должен быть быстрым
с низким потреблением ресурсов
Наш челенж
Russia Development Centre Deutsche Bank
Model
View Controller
Парадигма CQRS
Общая модель данных для
управления и презентации
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
Russia Development Centre Deutsche Bank
Command Query Responsibility Segregation
Парадигма CQRS
Управление Представление
Бэкэ
нд
Инерфейспользователя
Уровень данных
Кома
нды
Запр
осы
Собы
тия
Russia Development Centre Deutsche Bank
Command Query Responsibility Segregation
Независимые модели данных Преставления - События Управления - Команды
Независимые цепочки компонентов Естественная модель для асинхронного выполнения команд
Парадигма CQRS
Russia Development Centre Deutsche Bank
Традиционная архитектура OMS
Контролер
Шина обмена сообщениями ШлюзШлюз
Кэш
Russia Development Centre Deutsche Bank
Данные меняются динамически Pull модель не работает Используем Push модель Continuous Query
Модель представления Модель визуализации – таблицы Модель хранения – таблицы (значительная часть) Используем реляционную модель для представления
Улучшаем CQRS
Russia Development Centre Deutsche Bank
View Action Server
VAS
RTDB SQL KDB Whatever
Data sources
Query
UI
Actions
Actions
Backend?
Russia Development Centre Deutsche Bank
Платформа Java (C# на стороне UI) Запросы в стиле LINQ
Непрерывная обработка данных Continuous queries
Реляционная модель и реляционная алгебра Унификация источников данных
Например, универсальный RDBMS адаптер
View Action Server
Russia Development Centre Deutsche Bank
Виртуализованные таблицы Видимы диапазон передаётся на UI Сортировка и фильтрация на стороне VAS Selection model на стороне VAS Master – details линковка таблиц на сервере
Потребление памяти GUI не зависит от объёма данных Возможна on-demand подгрузка данных только для видимых строк Например: подписки на рыночные котировки только для видимых строк
View Action Server
Russia Development Centre Deutsche Bank
“Виртуализация” данных В
иди
мы
й
диап
азон
Вы
дел
ени
е
Связанная таблица
Агрегаты
Russia Development Centre Deutsche Bank
Повторное использование источников данных Нет доменных объектов, нет зависимостей на код Минимальное количество кода на бэк-энде Java для реализации комманд Реляционная алгерба для представления Быстрый старт разработки Простая конфигурация тестового окружения Повторное использование компонентов NFR обеспечивает платформа Централизация экспертизы в одной команде Эволюция платформы → улучшения дял всех бизнес приложений
Преимущества подхода
Russia Development Centre Deutsche Bank
Deutsche Bank Group Technology & Operations
Спасибо! Алексей Рагозин
Top Related