ver.0.20.0 rev:06/08/09
home home hover search search hover
anchor anchor visited anchor hover

Принцип разработки приложений для шлюза

Для подключения внешнего программно-технического средства (ВПТС) к программно-техническому комплексу ЗАО ММВБ используется ”Универсальный двунаправленный программный шлюз для подключения внешних систем к Торговой системе ММВБ” (MICEX Bridge).

Шлюз MICEX Bridge обеспечивает двунаправленную связь с торговой системой и содержит программный интерфейс (API), который предназначен как для получения информации из торговой системы (сделки, котировки, инструменты и т.п.), так и для выполнения активных транзакций (постановка/снятие заявок и т.п.).

Программа реализована в виде двух программных компонентов, которые исполняются на двух физически различных компьютерах, работающих под управлением операционной системы Microsoft Windows NT/2000/XP. Один из компонентов (MICEX Bridge Server) подключается к ТС ММВБ по проприетарному протоколу и выполнен в виде самостоятельного приложения. Второй компонент (MICEX Bridge Client) выполнен в виде Windows DLL (mtesrl.dll) и предоставляет приложению-приёмнику внешней системы прикладной программный интерфейс (API). Между собой компоненты обмениваются информацией с использованием последовательного интерфейса (RS-232) или по протоколу TCP/IP. Вариант подключения через последовательный порт является низкопроизводительным и устаревшим – в ближайшем будущем возможно прекращение поставок данной версии шлюза.

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

Таким образом, разработка внешнего приложения заключается в использовании предоставляемых библиотекой mtesrl.dll функций для получения данных из Торговой системы ММВБ и выполнения активных транзакций. Получение данных осуществляется по технологии client pull, т.е. клиентское приложение должно всегда само опрашивать таблицы Торговой системы для получения актуальной рыночной информации.

Разработка внешней системы обычно выполняется по следующему сценарию:

  1. Ознакомление с требованиями ММВБ к ВПТС.
  2. Установка шлюза MICEX Bridge и его подключение к тестовой/разработческой Торговой системе ММВБ.
  3. Разработка собственного приложения, использующего API mtesrl.dll.
  4. Тестирование и отладка.
  5. Приобретение коммерческой версии MICEX Bridge, оформление всех необходимых для подключения документов и переключение на ”боевую” Торговую систему.

В общих чертах логика работы программы с Торговой системой следующая:

  1. Устанавливается соединение с авторизацией участника торгов.
  2. Из ТС запрашивается структура информационных объектов.
  3. Из ТС запрашиваются необходимые для работы таблицы с данными. Ответ приходит в виде буфера данных.
  4. Основываясь на полученной ранее структуре информационных объектов осуществляется распаковка буфера для разделения табличных данных на строки, а затем – на поля.
  5. В случае, если таблицы являются обновляемыми (о чём сигнализирует соответствующий флаг в структуре объектов), задаётся интервал и последовательность запроса из ТС обновлённых данных. Следует учитывать, что обновляемые таблицы также бывают двух типов – для одних приходят только обновившиеся со времени последнего запроса строки, а по другим (например, для котировок) каждый раз приходит полная таблица.
  6. При выполнении внешней системой транзакций, состав полей транзакции также формируется на основе структуры информационных объектов.
  7. Необходимо предусмотреть наличие механизма восстановления состояния открытых таблиц после сбоев или потери связи.