Способи передачі фінансових даних #4 Протокол ASTS Bridge

Крім міжнародних стандартів та протоколів передачі фінансової інформації на кшталт FIX та FAST, про які ми розповідали раніше, на фондовому ринку функціонують і так звані «нативні» протоколи передачі фінансових даних. Їх використовують для отримання потрібної інформації як приватні трейдери, так і брокерські компанії - такі нативні протоколи більш функціональні, ніж загальноприйняті стандарти (на зразок того ж FIX), що приваблює брокерів.
Раніше в Україні існували дві великі біржі — ММВБ та РТС. Згодом вони об'єдналися в єдину «Московську біржу», але кожен із двох торгових майданчиків за роки незалежності встиг розробити власний нативний протокол. Про протокол Plaza II, який був створений фахівцями РТС, ми розповідали в одному з минулих матеріалів, а сьогодні йтиметься про проект ASTS Bridge, який почали розвивати їхні колеги з ММВБ.
Трохи історії
Перша версія електронної торгової системи Московської Міжбанківської Валютної Біржі (ММВБ) була розроблена та впроваджена у 1993-1994 роках минулого століття. Система отримала назву ASTS (Automated Securities Trading System) та її програмна частина була розроблена австралійською компанією FMSC (Financial Market Software Consultants) та адаптована для українського ринку спільними зусиллями зарубіжних та вітчизняних ІТ-фахівців.
Пізніше FMSC у ході злиття та поглинання отримала назву Compu ShareLtd з якою ММВБ підписала партнерську угоду, що передбачає в тому числі подальший самостійний розвиток торгової системи.

Етапи розвитку торгової системи ММВБ до середини 2000-х років; джерело: micex.ru
p align="justify"> Далі система розвивалася силами фахівців біржі ММВБ, а пізніше "Московської біржі". У результаті було реалізованотрирівнева архітектура клієнт-серверної системи.
На чолі ієрархії знаходився центральний сервер торгової системи (він відповідає за обробку транзакцій), з якою взаємодіяли сервери доступу (ними реплікувалися всі транзакції торгової системи), яких у свою чергу підключалися клієнтські додатки (торгові термінали трейдерів і адміністраторів, брокерські торгові системи, комплекси поширення біржової інформації тощо):

Джерело: документація ММВБ
У такій конфігурації система існує з 1998 року.
Передача даних: використовувані протоколи
Для підключення до торгової системи зовнішніх систем було розроблено механізм універсального двонаправленого програмного шлюзу (УДПШ) — тобто софту, за допомогою якого здійснювався обмін даними між торговою системою біржі та додатками, що підключаються до неї.
ASTS Bridge
Програма забезпечувала двонаправлений зв'язок із торговою системою та мала API для отримання даних (угоди, котирування, інструменти тощо) та виконання транзакцій (постановка/зняття заявок тощо).
Існували дві версії УДПШ — TCP/IP-версія системи називалася TEAP, а варіант для підключення за допомогою послідовного інтерфейсу (RS-232) називався TEServer (Trade Engine Server). З літа 2015 року підтримка цієї версії припинено.
Згодом УДПШ отримав нову назву - ASTS Bridge. У термінології Біржі шлюз (bridge) - це нативний протокол торгово-клірингової системи,
Особливістю шлюзового протоколу є підтримка про «інтерфейсів». Як сказано у матеріалі «Московської біржі» на Хабрахабрі:
Інтерфейс – це набір доступних користувачеві таблиць і транзакцій, що має версію, з відповідною структурою і типами даних. Версійність дозволяє користувачам системи залишатися на старих версіях інтерфейсах після оновлень біржової системи, які спричиняють необхідність модифікації структури таблиць даних або зміни форматів транзакцій. На даний момент існує можливість підключення всіма версіями інтерфейсів, створеними за всі роки роботи системи, проте планується посилення вимог до них.
Детальна документація з ASTS Bridge представлена на FTP «Московської біржі». Серед іншого є і описи існуючих інтерфейсів.
Для організації взаємодії та обміну даними між окремими компонентами та рівнями архітектури торгової системи біржі використовується мережевий транспортний протокол TSMR (Trading System Message Router). Він реалізований як програмний шар між клієнтським і серверним додатком і використовує інтерфейс протоколу TCP/IP.
За допомогою TSMR встановлюються TCP-і UDP-з'єднання між серверними та клієнтськими процесами, упаковуються та маршрутизуються повідомлення. Взаємодія між компонентами торгової системи здійснюється за допомогою TSMR-пакетів. У кожному пакеті може бути одне транзакційне чи кілька інформаційних повідомлень — під повідомленнями розуміються транзакції, запити чи відповіді них.
Структура пакета виглядає так:
Зміст пакету складається з наступних полів:
- Залежить від типу повідомлення (n-байт)
- Контрольна сума (4 байти)
- Ознака кінця пакета (1 байт)
На малюнку нижче представлені схеми обробки транзакційних та інформаційних запитів на центральному сервері торгової системи та на сервері доступу:

Як це працює
Серверна частина клієнтськоїПрограма встановлюється на сервері, підключеному до закритої торгової мережі біржі, а клієнтська частина запускається на комп'ютері, підключеному до мережі клієнта. Також існує можливість розміщення торгової програми клієнта на колокації в дата-центрі біржі М1. У такому разі дозволяється використання так званої вбудованої версії шлюзу, яка дозволяє підключатися безпосередньо до біржових серверів доступу.
Торговий додаток клієнта повинен використовувати API-функції для отримання даних із системи ASTS і виконання транзакцій. Дані виходять за технологією client pull — програма повинна сама «витягувати» дані, тобто опитувати таблиці для отримання актуальної інформації.
Таким чином, для старту роботи, розробнику торгової програми потрібно завантажити шлюз ASTS Bridge на сайті Біржі, а потім підключити його до тестової версії ASTS. Після завершення розробки та налагодження кожен додаток, що підключається до системи, проходить сертифікацію Біржів.
Після проходження всіх цих етапів схема роботи програми із системою ASTS виглядає наступним чином.
Нижче наведено приклад реалізації демо-додатку на Java, що підключається та запитує дані із системи ASTS:
Важливий момент: незважаючи на те, що приклад вищий на Java, насправді для роботи з протоколом ASTS Bridge можна використовувати будь-які мови. Жодних обмежень для розробників торгових систем у цьому плані немає.
Висновок
Тим не менш, у ASTS Bridge є і свої плюси, наприклад, єдність інформаційних об'єктів (наприклад, таблиць і транзакцій), які є однаковими для всіх ринків, що полегшує адаптацію торгових додатків на роботі на кожному з них. Ще одним плюсом ASTS Bridge можна назвати низькі системні вимоги.Для цього протоколу не потрібна наявність виділеного сервера, клієнтський додаток може бути запущено навіть на персональному комп'ютері.
Ви можете допомогти і перевести небагато коштів на розвиток сайту