dxBus торговая шина, разработанная компанией Эксперт-Система, предназначена для обеспечения высокоскоростного и отказоустойчивого обмена рыночной и торговой информацией между подключенными к ней с одной стороны корпоративными информационными системами клиента и, с другой стороны, внешними информационными системами бирж и информационных агентств.
Торговая шина состоит из следующих компонент верхнего уровня:
- Метаданные,
- Серверы обработки сообщений,
- Протокольные адаптеры,
- Клиентские библиотеки,
- Консоль администрирования.
Метаданные: Торговая шина позволяет расширять и модифицировать набор и структуру сообщений, которыми могут обмениваться подключенные системы. В качестве языка описания может быть использован язык программирования Java либо формат XSD. Шина поставляется с кросс-компилятором, позволяющим преобразовывать из одного формата в другой. В рамках внедрения разработчик предоставит метаданные, необходимые в рамках известных на тот момент взаимодействий.
Серверы обработки сообщений: Ядром торговой шины является кластер серверов, отвечающих за маршрутизацию и контроль доставки сообщений. Те же сервера реализуют возможности шины по управлению компонентами и передают информацию в систему мониторинга. Доступ к серверам осуществляется при помощи открытого бинарного протокола.
Протокольные адаптеры: Для предоставления доступа к шине системам с ограниченными возможностями программирования и системам третьих фирм могут быть реализованы адаптеры, преобразующие бинарный протокол торговой шины в любой другой протокол или API. В рамках данного предложения предоставляется адаптер для доступа к торговой шине на основе стандартного протокола на основе XML.
Клиентские библиотеки (API): Для максимально удобного доступа к сервисам торговой шины поставляется API в виде библиотеки классов Java, реализующей все возможности протокола. Аналогично, поставляются API для доступа к возможностям управления компонентами и для получения мониторинговой информации. При необходимости, могут быть созданы варианты API и компиляторы метаданных для других языков программирования.
Консоль администрирования: Торговая шина поставляется пользовательским интерфейсом для управления компонентами. Интерфейс также позволяет изменять настройки шины.
Алгоритмы доставки: Шина имеет возможность гибкой настройки типа сообщений по способу доставки.
- Доступ по подписке в режиме publish/subscribe;
- Доступ в режиме request/reply;
- Гарантированная доставка с подтверждением отправителю;
- Возможность перезапроса сообщения за определенный период;
- Особый способ описания рыночных данных для обеспечения максимальной производительности.
Управление компонентами: Вместе с торговой шиной предоставляется инструментарий для настройки маршрутизации сообщений.
В торговой шине реализован механизм маршрутизации на основе анализа содержания сообщения (content-based) следующими способами:
- Маршрутизация по полям <Получатель> и <Отправитель>;
- Маршрутизация по анализу произвольного поля в сообщении;
- XQuery-based запрос или вызов внешней процедуры для определения маршрута (XQuery-based policies or callouts to external services for message routing).
Реализуется возможность объединения серверов в кластер, обеспечивая отказоустойчивость системы, а также распределения нагрузки между экземплярами системы.
При этом все клиенты торговой шины могут подключаться к любому серверу или ко всем сразу одновременно. Алгоритмы выбора сервера для соединения могут быть различными и должны уточняться отдельно. При выходе из строя любого из серверов, торговая шина продолжает работу, и нагрузка с вышедшего из строя сервера перераспределяется между оставшимися серверами. Система горизонтально масштабируема, т.е. производительность торговой шины может быть увеличена простым добавлением серверов.
Торговая шина обеспечивает зафиксированное в спецификации распределение задержек (максимальную задержку для 90% сообщений, максимальную задержку для 99.9% сообщений) в зависимости от способа доставки, величины нагрузки и используемого оборудования.
