1.
장면1.
어느날 저녁 시간 우연히 어떤 맥주집에서 동료들과 수다를 떨고 있는데 아는 후배가 한 명 들어오더군요.
일행이 있어 휴대폰으로 전화를 해서 약속을 잡았습니다. 몇 일후 점심시간에 잠시 이야기를 나누었습니다. 정확하지는 않지만?Exture+중 미들웨어를 할 것 같다고 합니다. 점심을 얻어 먹었으니까 밥값을 해야 하죠.(^^) 사실 오래전부터 알고 지내던?후배쯤 되었고 Exture+를 어떻게 진행하는지 관심도 있어 만났습니다. 두런두런 이야기를 했습니다만 역시 주제는 메시징미들웨어였습니다. Infiniband RDMA를 이야기하는 듯 해서 미들웨어의 영역중 아주 작은 부분이라는 이야기를 했습니다.
장면2.
현재 개발중인 Zero시리즈중 ZeroEXCHANGE가 있습니다. KRX와 같이 모든 기능을 담고 있는 거래소는 아닙니다. 다만?전략을 개발한 트레이더나 개발자가 자신의 전략을 가상으로 운영하고 실적을 예상해볼 수 있는 매매체결시뮬레이터라고 할 수 있습니다.?KRX 혹은 장내거래소의 호가를 그대로 사용하고 시장가,지정가주문(신규,정정,취소)를 지원한다는 구상입니다. ZeroM을?기반으로 합니다만 사실 문제는 ZeroM이 아니라 ZeroTable(혹은 ZeroCash)라고 할 수 있는?메모리데이타관리자입니다. 기존에 개발했던 요건과 거래소 요건이 차이가 있어 버전을 높여야 하는 상황이 발생하였습니다.
장면1과 장면2가 앞으로 KRX나 저에게 국한된 모습은 아니라고 생각합니다. 지금은 매매체결이 KRX의 전유물에서 증권사시스템중 중요한 일부분이 넘어가는 과도기라고 할 수 있습니다. ATS를 준비하는 증권사때문이기도 하고 내부주문집행이 가능한 프라임브로커때문이기도 합니다.
2.
신문에서 한국거래소가 Exture+를 위한 PMO를 발주한다는 이야기를 보았습니다. 홈페이지에 관련된 공개입찰문건이 올라와 있네요. 그런데 내용중 무척 중요한 사항이 담겨져 있습니다. 아래는 EXTURE+ 구축을 위한 선도개발 관련 PMO 용역에 올라온 입찰서류중 기술과 관련된 부분만 편집하였습니다.
우선 접속게이트웨이를 언급한 항목입니다.
비동기방식의 회원사 접속은 이미 Exture+를 발표할 당시에 나왔던 이야기입니다. 그런데 새로운 항목이 추가되었습니다. 미국이나 유럽에서 많이 사용하는? ITCH와 OUCH 프로토콜을 지원한다고 합니다. 그래서 궁금합니다. FIX/FAST가 사라지고 ITCH/OUCH가 등장한 것인지 아니면? 두가지 모두 지원한다는 이야기인지 알 수 없습니다. 갑자기 ITCH/OUCH를 지원하는다고 한 배경이 무엇일까요? 아마도 외국인투자자를 유치하기 위한 정책아닐까 합니다. KRX 프로토콜은 생소하고 FIX/FAST는 느리다는 생각을 하고 있고 덧붙여 현재 사용하고 있는 ITCH/OUCH를 그대로 사용하면 비용도 절약하고 여러모로 외국인투자자가 좋아할 일입니다. 나아가 KRX가 코로케이션서비스를 제공한다고 하면 외국인투자자는 별다른 작업없이 바로 자신들이 사용하는 알고리즘을 한국시장에 적용할 수 있습니다. 참고로 ITCH는 주로 주문보다 시세서비스를 위해 사용하고 있고 OUCH는 주문서비스에 사용하고 있습니다.
전후 사정은 모르지만 FIX/FAST는 지원하여야 하지 않을까 합니다. FIX Group에서는 FIX/FAST가 더 진보적인 지연이 적다고 합니다.
Low Latency Market Data: Are Proprietary Protocols Needed?
둘째는 초고속 메시지 미들웨어와 관련된 항목입니다. 코어와 코어 및 서버와 서버간의 통신을 어떻게 하여 낮은 지연을 구현할지가 관건이었습니다.
R-UDP 기반의 메시지 통신 기능
접속GW↔매칭엔진간 메시지 통신(RDMA, 10GE, inifini-band 등 다양한 네트워크 어댑터 개발)
미들웨어 기반의 메시지 전달 보장 및 메시지 Replication 기능
R-UDP를 무슨 의미로 사용했는지 궁금하였습니다. Webspere LLM처럼 하나의 트랜스포트를 이용하여 Shared Memory통신이든 RDMA, 10GE 혹은 Infiniband의 Transport로 R-UDP를 구상하는 것이 아닌가 합니다. TSE와 거의 같은 모델로 가는 듯 합니다. 이는 앞서 LLM의 자료중? RMM과 비슷한 기능을 수행합니다.(자세한 내용은 아래의 PDF 참조)
Reliable Multicast Messaging (RMM) is one of the two protocols supported by WebSphere MQ Low Latency Messaging. It implements different levels of reliability on top of a standard unreliable networking infrastructure. This includes the UDP and IP multicasting protocols. RMM will also work over InfiniBand and shared memory.RMM can operate in either multicast (one-to-many) or unicast (one-to-one) mode.
Core-To-Core메시징도 역시 R-UDP를 기반한 메시징을 한다는 의미같네요. Exture+이전에 파일럿 프로젝트에서 LLM를 사용했다는 이야기가 있었는데 서로 연관이 되는 듯 합니다.(^^)
ZeroM을? 멀티코어환경을 주로 고민하였습니다. 따라서 IPC가 주된 기반이었고 나머지는 보통의 프로토콜이었습니다. 그런데 Exture+는 조건이 다른 듯 합니다. 가장 중요한 점이 HA입니다. 더구나 DR까지 고려를 하여야 합니다. 호가전문을 접수하고 처리할 때마다 commit를 세번 혹은 네번을 받고 응답을 주어야 하는 상황입니다. Primary-> secondary->backup->DR까지 동기화가 이루어져야 합니다.그렇다고 할 경우 IPC는 선택지가 될 수 없고 TCP 혹은 UDP와 같은 기술을 적용하여야 합니다. 그렇다고 TCP는 Low Latency에 맞지 않습니다. UDP를 사용하면 좋지만 신뢰성이 떨어집니다. 그래서 Reliable UDP로 방향을 잡은 듯 합니다. TSE의 Arrowhead처럼 Reliable UDP를 이용하여 속도 및 신뢰성을 확보하려는 기술전략입니다.
이로써 장면1에서 불명료하다고 했던 부분은 명확해집니다. 다만 Reliable UDP로 구글링을 해보시면 관련된 기술이 아주 다양합니다. 그렇지만 Reliable Multicast처럼 표준적인 방법은 없습니다. 어떤 경우 Reliable UDP는 TCP보다 느렸던 경우도 있었습니다. 덧붙여 Pub/Sub는 메시징의 기본인데 이에 대한 이야기도 없네요. 이것도 어떻게 구현하는냐에 따라 Latency에서 엄청난 차이를 주는데……
3.
IBM Websphre라는 이름으로 나오는 제품중 LLM이라고 있습니다. Low Latency Messaging의 약자입니다. 역시 IBM인지 몰라도 이를 이용하여 매매체결시스템을 개발하는 방법(?)에 대한 책자를 내었습니다. 아마도 Deutche Borse의 경험을 녹여서 자료를 만들지 않았나 합니다. 3장을 보시면 관련된 내용을 길게 기술하고 있습니다. 아래 자료는 IBM이 저작권자이지만 제품을 소개하는 효과도 있으니 이해하지 않을까 합니다.
매매체결에 관심있는 분들이면 한번쯤 읽어보시길 바랍니다. IBM LLM을 이용하실 생각이시면 ZeroM도 대안이 될 수 있으니까 BMT라도 할 기회를 주시면 어떨지..(^^)