Проект

Атон: Построение интеграционной шины на базе Open Source

Заказчики: Атон Инвестиционная компания

Москва; Финансовые услуги, инвестиции и аудит

Продукт: Apache Kafka

Дата проекта: 2016/03 — 2017/09
Технология: СУБД
подрядчики - 272
проекты - 773
системы - 308
вендоры - 148

Содержание

Почему возникла необходимость внедрять интеграционную шину?

Что было[1]

  • Интеграции между системами построены по принципу каждый с каждым.
  • Используются различные форматы и технологии интеграции.
  • Сложно реализовать планы по внедрению новых продуктов и систем.

Цели

  • Упрощение интеграционного слоя в системах.
  • Гибкая архитектура.
  • Переиспользование сервисов.

Построение интеграционной шины на базе Open Source

Почему Open Source:

  • Стоимость решения.
  • Быстрый старт.
  • Гибкость в выборе продукта.
  • Большое community.
  • Широкий функционал.
  • Открытый исходный код.

Технологический стек - Транспортный уровень RabbitMQ, Apache Kafka Интеграционная логика - ServiceMix

RabbitMQ

Image:RabbitMQ + Атон.gif

Преимущества

  • Идеально подходит для взаимодействия с информационными системами.
  • Асинхронный обмен.
  • Мультиплатформенный клиент (Java, .Net, Python и т.д.).
  • Высокая производительность.
  • Отказоустойчивость (кластер, репликация).

Kafka

Image:Kafka + Атон.gif

Преимущества

  • Идеально подходит для публикации информации.
  • Сообщения не удаляются из топика, а хранятся в течение времени жизни.
  • Хорошо справляется с большими объемами данных.
  • Отказоустойчивость (кластер, репликация).

Apache ServiceMix

Основные компоненты:

  • Karaf – OSGi контейнер.
  • Apache Cxf – web / rest сервисы.
  • Drools – бизнес правила.
  • ActiveMQ – обмен сообщениями.
  • Transformation – преобразование сообщений (например, xslt).
  • Quartz – планировщик задач.
  • MyBatis – SQL маппер.
  • Набор адаптеров.
  • Camel – интеграционный движок.

Интеграционная архитектура в Атон

  • Основной способ обмена между системами и шиной – RabbitMQ.
  • Основной формат обмена между системами и шиной – XML.
  • Также используются другие технологии для систем, которые не поддерживают RabbitMQ и XML.

Пример 1. Удаленное открытие счета

Пример 2. Рыночные данные

Типы рыночных данных:

  • Справочные данные по ценным бумагам.
  • Real time данные (котировки):
  • В среднем 50 сообщений в секунду.
  • В пике 2000 – 3000 сообщений в секунду.

Используются для:

  • Построения графиков.
  • Отображения текущей цены.
  • Расчета различных доходностей и показателей в портфеле клиента.
  • Расчета доходности ПИФ.
  • Отображения данных по ценным бумагам.

Режим работы:

  • Запрос – ответ (справочные данные и котировки).
  • Подписка на изменения (котировки).

Тестирование и мониторинг

Авто тесты:

  • Тесты запускаются после установки обновлений и по расписанию каждый час.
  • Работают в реальном окружении, не затрагивая нормальное функционирование системы.
  • Результат в виде web страницы и рассылка по почте в случае ошибок.

Логирование сообщений:

  • Сообщения записываются в БД.
  • Можно отследить прохождение сообщения по шине.
  • Web интерфейс для просмотра.

Основные интеграционные сервисы:

  • Рыночные данные по ценным бумагам.
  • Сервисы для получения / изменения данных из учетных систем (клиенты, счета, сделки и т. д.)

Примечания

  1. Из презентации "Построение интеграционной шины на базе Open Source" Перепелкин Вадим Начальник отдела архитектуры и интеграции приложений, 2017 год