KR20170125261A - 페일백 기능을 갖는 주문관리서버 및 그 처리방법 - Google Patents

페일백 기능을 갖는 주문관리서버 및 그 처리방법 Download PDF

Info

Publication number
KR20170125261A
KR20170125261A KR1020160055586A KR20160055586A KR20170125261A KR 20170125261 A KR20170125261 A KR 20170125261A KR 1020160055586 A KR1020160055586 A KR 1020160055586A KR 20160055586 A KR20160055586 A KR 20160055586A KR 20170125261 A KR20170125261 A KR 20170125261A
Authority
KR
South Korea
Prior art keywords
order information
order
memory
server
fep
Prior art date
Application number
KR1020160055586A
Other languages
English (en)
Other versions
KR101819619B1 (ko
Inventor
김종래
Original Assignee
주식회사 에이치티원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 에이치티원 filed Critical 주식회사 에이치티원
Priority to KR1020160055586A priority Critical patent/KR101819619B1/ko
Publication of KR20170125261A publication Critical patent/KR20170125261A/ko
Application granted granted Critical
Publication of KR101819619B1 publication Critical patent/KR101819619B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0623Item investigation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0633Lists, e.g. purchase orders, compilation or processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services

Landscapes

  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Engineering & Computer Science (AREA)
  • General Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Development Economics (AREA)
  • Tourism & Hospitality (AREA)
  • Technology Law (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Resources & Organizations (AREA)
  • Primary Health Care (AREA)
  • Hardware Redundancy (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

페일백 기능을 갖는 주문관리서버 및 그 처리방법이 개시된다. 본 발명에 의한 페일백 기능을 갖는 주문관리서버는 주문요청정보에 따라 주문정보를 생성하여 FEP(Front End Process)로 전달하고 주문정보를 메모리에 적재하고, 타 주문관리서버의 FEP로부터 멀티캐스트된 주문정보를 저장하는 인메모리 처리 모듈과, FEP로부터 전달된 주문정보를 데이터베이스화하고, 타 NoSQL 서버 모듈과 클러스터링하여 데이터를 동기화하는 NoSQL 서버 모듈과, 타 NoSQL 서버 모듈의 데이터베이스를 복제하고, 서버 복구시 큐에 적재된 주문정보를 변환하여 인메모리 처리 모듈로 전달하며, 인메모리 처리 모듈에 적재된 주문정보와의 비교를 통해 중복되는 주문번호가 확인되면 주문정보의 변환을 중지하는 페일백 처리 모듈을 포함한다. 본 발명에 따르면, 인메모리(In-Memory) 방식을 사용하여 OMS 처리속도를 확보할 수 있을 뿐 아니라, 데이터베이스의 클러스터링을 통해 서버 복구시 둘 이상의 OMS간 데이터 정합성을 확보할 수 있다.

Description

페일백 기능을 갖는 주문관리서버 및 그 처리방법{Order management server supporting fail back function and method processing thereof}
본 발명은 유가증권 주문처리기법에 관한 것이다. 더 구체적으로는 둘 이상의 OMS(Order management server) 가운데 어느 하나의 서버 다운에 따른 타 OMS와의 데이터 정합성을 유지하는 페일백(Fail Back) 기능을 갖는 주문관리서버 및 그 처리방법에 관한 것이다.
유가 증권의 매매시 회원사(증권사)의 주문 대행 없이 투자자가 직접 회원사의 주문관리시스템을 이용하여 거래소 시스템에 주문하는 매매방식을 DMA(Direct Market Access)라고 한다.
그러면, 여기서 DMA 서비스에 대해 설명하기로 하다.
도 1은 DMA 서비스 제공을 위한 서버 접속 구성도이다.
도 1을 참조하면, 클라이언트(1)가 회원사(2)의 주문관리시스템을 이용하여 거래소 시스템(3)에 접속하는 구조로 이루어져 있다.
회원사(2)는 OMS(Order Management Server)(21)와 FEP(Front End Process, 대외계 시스템)(22)로 구성되어 있다.
OMS(21)는 회원사(2)의 주문관리시스템을 구성하며, HTS(Home Trading System)를 이용하는 고객이나, 딜러 등으로부터 주문이 입력되면, 한도나 증거금을 관리하고, 주문정보를 생성하여 FEP(22)로 전달하는 기능을 수행한다.
FEP(22)는 OMS(21)와 거래소 시스템(3)을 접속하는 주체로서, OMS(21)와 거래소 시스템(3) 간 금융투자상품 매매에 관한 주문정보나 거래체결내역정보 및 시세정보를 송수신하는 기능을 수행한다.
여기서, 회원사(2)는 주문 유효성을 사전 및 사후적으로 모니터링하고 보고하며, 주문 유효성은 수량/호가와 같은 금융리스크 유효성(financial risk compliance)과 공매도 적합성과 같은 법규준수 유효성(regulatory compliance)을 포함한다. 또한, 회원사(2)는 주문 오류에 따른 위험을 관리하기 위한 시스템을 포함한다.
이와 같이 회원사(2)는 도 1에 도시된 바와 같이 백업 서버를 두지 않고 단일의 OMS(21)를 구성하고 있었다. 그러나, 소프트웨어 또는 하드웨어적인 문제 발생으로 인하여 OMS(21)가 다운되는 경우, 해당 거래일의 거래가 불가능해지는 문제가 발생하게 된다.
이러한 문제점을 해소하기 위하여 도 2에 도시된 바와 같이 OMS(21)를 이중으로 구성하여, 어느 한 쪽의 서버가 다운되는 경우 나머지 한 쪽의 서버로 해당 거래일의 서비스를 진행한다. 이를 통상 페일오버(Fail Over)라고 한다.
그런데, 이러한 이중 구성에도 불구하고, 2개 서버가 모두 다운되는 경우에는 OMS(21)를 싱글로 구성한 경우와 마찬가지로 해당 거래일의 거래가 불가능해지는 문제가 발생한다. 한편, 서버 다운의 이유가 소프트웨어적인 오류이거나, 부하에 의한 것이라면, 어느 하나의 서버가 다운되는 경우, 나머지 하나도 다운될 가능성이 높기 때문에 페일오버(Fail Over) 기능 만으로는 충분한 안정성을 담보하기 어렵다.
따라서, 다운된 서버를 신속하게 복구하여 정상 상태로 되돌릴 필요성이 있다.
그럼에도 불구하고, 초당 200개 이상의 주문정보를 FEP(22)로 전송하고 주문정보를 메모리 상에서 갱신하는 OMS(21)의 구조상, 다운된 OMS(21)를 복구한 다음 정상 동작하는 OMS(21)와 메모리 상의 정보를 완전히 일치시킬 수 없어 데이터 정합성 확보가 어려운 문제가 있다.
문헌 1. 대한민국 등록특허 제10-0864369호 "온라인 주식 거래 및 대출을 위한 실시간 리스크 관리/통제 시스템 및 그 방법" 문헌 2. 대한민국 특허공개 제2014-0115208호 "주식매매 고속주문 서버 및 시스템"
따라서, 본 발명은 상기한 종래 기술의 문제점을 해결하기 위해 이루어진 것으로서, 본 발명의 목적은 둘 이상의 서버로 구성된 OMS에 있어, NoSQL 방식의 데이터베이스를 이용하여 사전에 클러스터링된 거래정보에 대해, 서버 다운시 트랜스레이터를 이용하여 주문정보를 변환한 다음 메모리에 적재함으로써 데이터 정합성을 확보할 수 있도록 하는 페일백 기능을 갖는 주문관리서버 및 그 처리방법을 제공하는데 있다.
상기와 같은 목적을 달성하기 위한 본 발명의 페일백 기능을 갖는 주문관리서버는, 바람직하게는 주문요청정보에 따라 주문정보를 생성하여 FEP(Front End Process)로 전달하고 상기 주문정보를 메모리에 적재하고, 타 주문관리서버의 FEP로부터 멀티캐스트된 주문정보를 저장하는 인메모리 처리 모듈; 상기 FEP로부터 전달된 주문정보를 데이터베이스화하고, 타 NoSQL 서버 모듈과 클러스터링하여 데이터를 동기화하는 NoSQL 서버 모듈; 및 상기 타 NoSQL 서버 모듈의 데이터베이스를 복제하고, 서버 복구시 큐에 적재된 주문정보를 변환하여 상기 인메모리 처리 모듈로 전달하며, 상기 인메모리 처리 모듈에 적재된 주문정보와의 비교를 통해 중복되는 주문번호가 확인되면 주문정보의 변환을 중지하는 페일백 처리 모듈을 포함한다.
이 때, 상기 NoSQL 서버 모듈은, 상기 FEP로부터 전달된 주문정보를 수신하는 TCP 통신부; 주문정보 및 상기 타 NoSQL 서버 모듈의 주문정보를 저장하는 데이터베이스; 및 상기 타 NoSQL 서버 모듈과의 클러스터링을 통해 데이터를 동기화하는 클러스터링부를 포함한다.
또한, 상기 페일백 처리 모듈은, 상기 타 NoSQL 서버 모듈의 데이터베이스를 복제하는 리플리케이터; 큐에 적재된 주문정보를 변환하여 상기 인메모리 처리 모듈로 전달하는 트랜스레이터; 및 상기 리플레이케이터의 복제 제어를 수행하고, 변환된 주문정보의 적재 제어를 수행하며, 상기 인메모리 처리 모듈에 적재된 주문정보와의 비교를 통해 중복되는 주문번호가 확인되면 상기 트랜스레이터의 주문정보 변환을 중지하는 페일백 컨트롤러를 포함한다.
한편, 본 발명의 페일백 기능을 갖는 주문관리서버의 처리방법은, 바람직하게는 (a) 주문요청정보에 따라 주문정보를 생성하여 FEP(Front End Process)로 전달하고 상기 주문정보를 메모리에 적재하고, 타 주문관리서버의 FEP로부터 멀티캐스트된 주문정보를 메모리에 적재하는 단계; (b) 타 NoSQL 서버 모듈과의 클러스터링을 통해 데이터를 동기화하여 데이터를 복제하는 단계; (c) 서버 다운시, 큐에 적재된 주문정보를 변환하여 상기 메모리에 적재함과 아울러 변환된 주문정보와 이미 적재된 주문정보를 비교하는 단계; 및 (d) 중복되는 주문번호가 확인되면, 주문정보의 변환을 중지하는 단계를 포함한다.
이 때, 상기 단계 (b)는, TCP 통신을 통해 자신의 주문관리서버에 접속된 FEP로부터 전달된 주문정보를 수신하여 데이터베이스화하는 단계; 및 타 NoSQL의 데이터베이스에 저장된 데이터에 대해, 클러스터링을 통해 데이터를 동기화하여 데이터베이스에 저장하는 단계를 포함하며, 서버 다운시, 저장된 데이터를 상기 메모리로의 적재 및 상기 메모리에 적재된 데이터와의 비교를 위해 제공한다.
또한, 상기 단계 (c)는, 페일백 컨트롤을 통해 큐에 적재된 주문정보를 변환하여 상기 메모리에 적재하는 단계; 및 상기 메모리에 적재된 주문정보와 변환한 주문정보를 비교하는 단계를 포함한다.
상술한 바와 같이, 본 발명에 의한 페일백 기능을 갖는 주문관리서버 및 그 처리방법에 따르면, 인메모리(In-Memory) 방식을 사용하여 OMS 처리속도를 확보할 수 있을 뿐 아니라, 데이터베이스의 클러스터링을 통해 서버 복구시 둘 이상의 OMS간 데이터 정합성을 확보할 수 있다.
이에 따라, 장중 서버가 다운된 경우 페일오버(Fail Over) 기능을 통해 정상 동작하는 다른 서버를 이용하여 계속 거래 처리를 수행할 수 있으며, 또한 다운된 서버의 주문정보가 정상 동작하는 서버의 메모리에 적재됨으로써 신속한 처리가 이루어질 수 있다.
도 1은 DMA 서비스 시스템의 구성도이다.
도 2는 OMS를 이중으로 구성한 시스템의 구성도이다.
도 3은 본 발명의 일 실시예에 의한 페일백 기능을 갖는 주문관리서버의 구성도이다.
도 4는 본 발명의 일 실시예에 의한 인메모리 처리 모듈의 구성도이다.
도 5는 본 발명의 일 실시예에 의한 NoSQL 서버 모듈의 구성도이다.
도 6은 본 발명의 일 실시예에 의한 페일백 처리 모듈의 구성도이다.
도 7은 본 발명의 일 실시예에 의한 페일백 기능을 갖는 주문관리서버의 처리방법을 나타낸 흐름도이다.
도 8은 본 발명의 일 실시예에 의한 인메모리 처리 과정을 나타낸 흐름도이다.
도 9는 본 발명의 일 실시예에 의한 NoSQL 처리 과정을 나타낸 흐름도이다.
도 10은 본 발명의 일 실시예에 의한 페일백 처리 과정을 나타낸 흐름도이다.
이하에서는 본 발명의 바람직한 실시예 및 첨부하는 도면을 참조하여 본 발명을 상세히 설명하되, 도면의 동일한 참조부호는 동일한 구성요소를 지칭함을 전제하여 설명하기로 한다.
발명의 상세한 설명 또는 특허청구범위에서 어느 하나의 구성요소가 다른 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 당해 구성요소만으로 이루어지는 것으로 한정되어 해석되지 아니하며, 다른 구성요소들을 더 포함할 수 있는 것으로 이해되어야 한다.
또한, 발명의 상세한 설명 또는 특허청구범위에서 "~수단", "~부", "~모듈", "~블록"으로 명명된 구성요소들은 적어도 하나 이상의 기능이나 동작을 처리하는 단위를 의미하며, 이들 각각은 소프트웨어 또는 하드웨어, 또는 이들의 결합에 의하여 구현될 수 있다.
이하에서는 본 발명의 페일백 기능을 갖는 주문관리서버 및 그 처리방법이 구현된 일 예를 특정한 실시예를 통해 설명하기로 한다.
본 발명은 FEP(Front end processor)와 연동하여 유가증권 주문을 처리하는 주문관리서버(Order management server ; OMS)에 관한 것으로, 더욱 구체적으로는 둘 이상의 OMS 가운데 어느 하나의 서버 다운시 이를 복구하여 타 OMS와의 데이터 정합성을 유지하는 기술에 관한 것이다. 이를 위해, 본 발명에서는 복수의 OMS 가운데 어느 하나의 서버 다운시 우선 페일오버(Fail Over)를 통해 거래 처리를 수행함과 동시에, 다운된 서버를 주문 정보를 정상 동작하는 서버의 메모리에 적재함으로써 데이터 정합성을 확보한다.
도 3은 본 발명의 일 실시예에 의한 페일백 기능을 갖는 주문관리서버의 구성도이다.
도 3을 참조하면, 본 발명의 페일백 기능을 갖는 주문관리서버(OMS)는, 주문요청정보에 따라 주문정보를 생성하여 FEP(22)로 전달한 후 상기 주문정보를 메모리에 적재하고, 타 주문관리서버의 FEP(22)로부터 멀티캐스트된 주문정보를 적재하는 인메모리 처리 모듈(4)과, FEP(22)로부터 전달된 주문정보를 데이터베이스화하고, 타 NoSQL 서버 모듈과 클러스터링하여 데이터를 동기화하는 NoSQL 서버 모듈(5)과, 타 NoSQL 서버 모듈의 데이터베이스를 복제하고, 서버 복구시 큐에 적재된 주문정보를 변환하여 인메모리 처리 모듈(4)로 전달하며, 인메모리 처리 모듈(4)에 적재된 주문정보와의 비교를 통해 중복되는 주문번호가 확인되면 주문정보의 변환을 중지하는 페일백 처리 모듈(6)을 포함한다.
이와 같이 구성된 본 발명의 페일백 기능을 갖는 주문관리서버는, 클라이언트의 주문요청정보에 대응하여 인메모리 처리 모듈(4)에서 주문정보를 생성하여 FEP(22)로 전달한다. 이어서, 인메모리 처리 모듈(4)에서는 해당 주문정보를 메모리에 적재함과 아울러, 타 주문관리서버에 접속된 FEP(22)로부터 전송된 주문정보도 동기화하여 메모리에 적재한다. 한편, NoSQL 서버 모듈(5)에서는 자신의 FEP(22)로부터 전달된 주문정보를 데이터베이스화(백업)시킴과 아울러, 타 NoSQL 서버 모듈과의 클러스터링을 통해 데이터를 동기화하여 데이터베이스화한다. 즉, 페일백 처리 모듈(6)과 연동되는 클러스터링 기능을 통해 타 NoSQL 서버 모듈의 데이터베이스의 복제가 이루어지게 된다. 한편, 서버 다운시, 페일백 처리 모듈(6)에서는 큐에 적재된 주문정보를 변환하여 인메모리 처리 모듈(4)로 전달한다. 이에 인메모리 처리 모듈(4)에서는 적재된 주문정보와 페일백 처리 모듈(6)로부터 전달된 주문정보를 비교하여 중복되는 주문번호가 확인되면 페일백 처리 모듈(6)로 통보한다. 이에 페일백 처리 모듈(6)에서는 주문정보의 변환을 중지한다. 즉, 중복되는 주문번호가 확인되기 전까지의 주문정보를 메모리에 적재한다.
이와 같이, 본 발명의 페일백 기능을 갖는 주문관리서버는, 페일오버 기능을 통해 정상 운영되는 주문관리서버를 통해 주문처리가 계속적으로 신속하게 이루어지며, 또한 페일백 기능을 통해 서버간 정합성을 유지한다.
도 4는 본 발명의 일 실시예에 의한 인메모리 처리 모듈의 구성도이다.
도 4를 참조하면, 본 발명의 인메모리 처리 모듈(4)은, 클라이언트의 주문요청정보에 대응하여 주문정보를 생성하고, 해당 주문정보를 FEP(22)로 전달하는 주문 처리부(41)와, 타 주문관리서버의 FEP(22)로부터 멀티캐스트된 주문정보를 수신하는 UDP 통신부(42)와, 멀티캐스트된 주문정보를 동기화하여 적재 처리하는 인메모리 동기화부(43)와, 주문정보 및 동기화된 주문정보에 대해 인메모리 방식으로 적재가 이루어지는 메모리(44)를 포함한다.
한편, 서버 다운시, 메모리(44)에는 백업용 주문정보가 적재된다.
이와 같이 구성된 본 발명의 인메모리 처리 모듈(4)은, 클라이언트로부터 전송된 주문요청정보에 대응하여 주문 처리부(41)에서 주문정보를 생성한다. 이어서 주문 처리부(41)에서는 생성된 주문정보를 FEP(22)로 전달하고, 메모리(44)에 적재한다. 한편, FEP(22)에서는 UDP 통신을 통해 주문정보를 멀티캐스트한다. 물론, 타 주문관리서버의 FEP(22) 역시 주문정보를 멀티캐스트한다. 이에 UDP 통신부(42)를 통해 타 주문관리서버의 FEP(22)로부터 멀티캐스트된 주문정보를 수신한다. 이에 인메모리 동기화부(43)에서는 멀티캐스트된 주문정보를 동기화하는 변환을 수행한 후, 메모리(44)에 적재한다. 이에, 클라이언트의 주문요청정보에 대응하여 생성된 주문정보와 멀티캐스트된 주문정보(동기화)는 메모리(44)에 적재된다.
이와 같이, 인메모리 처리 모듈(4)에서는 타 주문관리서버의 주문정보도 신속하게 전달받아 메모리(44)에 적재한다. 이는 타 주문관리서버 다운시, 타 주문관리서버에 접속된 클라이언트들과 세션을 수립함으로써, 고객들이 해당 접속 주문관리서버가 다운된 것을 느끼지 못하고 계속 거래할 수 있도록 하기 위함이다. 즉, 페일오버 기능을 수행할 수 있다. 한편, 2개의 주문관리서버는 어느 하나가 백업 관계가 아니라, 양쪽 모두 액티브로 작동한다. 또한, 인메모리 처리 모듈(4)에서는 TCP 통신에 비해 월등히 빠른 UDP 통신을 이용하여 메모리(44)에 계좌정보, 주문정보 등을 모두 적재하여 사용한다. 이를 통해 주문정보 처리속도를 향상시킬 수 있다.
도 5는 본 발명의 일 실시예에 의한 NoSQL 서버 모듈의 구성도이다.
도 5를 참조하면, 본 발명의 NoSQL 서버 모듈(5)은, FEP(22)로부터 전달된 주문정보를 수신하는 TCP 통신부(51)와, 주문정보를 저장하는 데이터베이스(52)와, 타 NoSQL 서버 모듈과의 클러스터링을 통해 데이터를 동기화하는 클러스터링부(53)를 포함한다.
이와 같이 구성된 본 발명의 NoSQL 서버 모듈(5)은, TCP 통신을 통해 FEP(22)로부터 주문정보를 수신한다. 이어서, 주문정보는 데이터베이스화된다. 한편, 클러스터링부(53)에서는 타 NoSQL 서버 모듈의 데이터베이스화와의 클러스터링을 통해 데이터를 동기화하여 데이터베이스(52)에 저장한다.
한편, NoSQL 서버 모듈(5)에서는 NoSQL 데이터베이스로 분류되는 redis 데이터베이스를 이용한다. 즉, 각 주문관리서버는 redis 데이터베이스 서버를 운용한다.
여기서, FEP(22)는 하나의 주문관리서버에 접속될 수도 있고, 다수의 주문관리서버에 접속될 수도 있는데, 주문정보가 거래소 시스템(3)과 접속된 소켓을 통해 전달되면, 이어서 redis API를 통해서 접속된 해당 주문관리서버로 전달한다.
한편, 데이터베이스(52)는 큐(queue)의 형태로 들어온 주문정보들을 하나씩 쌓아놓고서 순차적으로 처리하여 저장한다. 데이터베이스(52)는 기본적으로 자신의 주문관리서버의 주문정보만 저장하는데, 다수의 주문관리서버가 운용될 경우에는 클러스터링 기능을 통해 데이터를 동기화한다. 이에, 비록 저장 처리에 시간이 소요되지만, 모든 주문관리서버에서 생성되는 모든 거래정보가 순차적으로 저장될 수 있다.
도 6은 본 발명의 일 실시예에 의한 페일백 처리 모듈의 구성도이다.
도 6을 참조하면, 본 발명의 페일백 처리 모듈(6)은, 타 NoSQL 서버 모듈의 데이터베이스를 복제하는 리플리케이터(61)와, 큐에 적재된 주문정보를 변환하여 인메모리 처리 모듈(4)로 전달하는 트랜스레이터(62)와, 리플레이케이터의 복제 제어를 수행하고, 변환된 주문정보의 적재 제어를 수행하며, 인메모리 처리 모듈(4)에 적재된 주문정보와의 비교를 통해 중복되는 주문번호가 확인되면 트랜스레이터(62)의 주문정보 변환을 중지하는 페일백 컨트롤러(63)를 포함한다.
이와 같이 구성된 본 발명의 페일백 처리 모듈(6)은, 페일백 컨트롤러(63)의 제어에 의해 리플리케이터(61)를 통해 타 NoSQL 서버 모듈의 데이터베이스의 복제가 이루어진다. 복제된 데이터는 클러스터링부(53)와 연동되어 데이터베이스(52)에 저장될 수 있다. 한편, 페일백 컨트롤러(63)에서는 트랜스레이터(62)를 제어하여 큐에 적재된 주문정보를 변환하여 인메모리 처리 모듈(4)로 전달한다. 이에 인메모리 처리 모듈(4)에서는 주문정보의 적재가 이루어진다. 이 때, 트랜스레이터(62)의 동작은 타 주문관리서버의 다운 신호에 의해 동작할 수 있다. 이와 같이, 서버 다운시, 페일백 컨트롤러(63)에서는 트랜스레이터(62)를 제어하여 큐에 적재된 주문정보를 변환하여 인메모리 처리 모듈(4)로 전달하고, 인메모리 처리 모듈(4)에 적재된 주문정보와의 비교를 통해 중복되는 주문번호가 확인되면 트랜스레이터(62)의 주문정보 변환을 중지한다.
서버 다운시, 기본적으로 메모리(44) 및 데이터베이스(52)에 저장된 정보는 삭제된다. 이에, 본 발명에서는 리플리케이터(61)를 이용하여 타 NoSQL 서버 모듈의 데이터베이스를 복제한다. 또한, 트랜스레이터(62)가 마치 고객의 HTS 클라이언트가 입력한 주문인 것처럼 변환해서 메모리(44)에 순서대로 적재한다. 이와 함께, 인메모리 처리모듈은 고객 HTS로부터 또 주문을 받아서 FEP(22)로 넘겨주는 일을 시작한다. 여기서, 주문번호는 거래일 9시 장 시작하는 순간부터 순서대로 올라가는데, 주문번호를 이용하여 중복되는 주문번호가 검색되면, 그때까지만 트랜스레이터(62)를 동작시키고 구동을 중지시킨다. 즉, 정합성을 유지하면서 모든 데이터의 복구가 완료되는 것이다.
그러면, 여기서 상기와 같이 구성된 시스템을 이용한 본 발명의 페일백 기능을 갖는 주문관리서버의 처리방법에 대해 설명하기로 한다.
도 7은 본 발명의 일 실시예에 의한 페일백 기능을 갖는 주문관리서버의 처리방법을 나타낸 흐름도이다.
도 7을 참조하면, 클라이언트의 주문요청정보에 대응하여 주문정보를 생성하여 FEP(22)로 전달한다(S1).
생성된 해당 주문정보는 메모리(44)에 적재된다(S2). 이 때, 타 주문관리서버에 접속된 FEP(22)로부터 멀티캐스트된 주문정보도 동기화하여 메모리(44)에 적재된다(S3).
한편, NoSQL 서버 모듈(5)에서는 자신의 FEP(22)로부터 전달된 주문정보를 데이터베이스화시킨다(S4).
이와 함께, 타 NoSQL 서버 모듈과의 클러스터링을 통해 데이터를 동기화하여 데이터베이스화한다(S5). 즉, 클러스터링 기능을 통해 타 주문관리서버의 데이터베이스의 복제가 이루어지게 된다.
한편, 서버 다운시, 큐에 적재된 주문정보를 변환하여 메모리(44)에 적재하고, 적재된 주문정보와 변환된 주문정보를 비교하여(S6), 중복되는 주문번호가 확인되면 주문정보의 변환을 중지한다(S7). 이에, 다운된 서버의 주문정보가 정상 동작하는 주문관리서버에서 계속 처리되게 된다.
도 8은 본 발명의 일 실시예에 의한 인메모리 처리 과정을 나타낸 흐름도이다.
도 8을 참조하면, 클라이언트로부터 전송된 주문요청정보에 대응하여 주문정보를 생성한다(S11).
생성된 주문정보는 FEP(22)로 전달되고, 이어서 메모리(44)에 적재된다(S12).
한편, FEP(22)에서는 UDP 통신을 통해 주문정보를 멀티캐스트한다. 물론, 타 주문관리서버의 FEP(22) 역시 주문정보를 멀티캐스트한다(S13).
이에 UDP 통신을 통해 수신된 주문정보가 메모리(44)에 적재되며(S14), 이 때, 멀티캐스트된 주문정보는 동기화가 이루어진다(S15).
결국, 클라이언트의 주문요청정보에 대응하여 생성된 주문정보와 멀티캐스트된 주문정보(동기화)가 메모리(44)에 적재된다.
도 9는 본 발명의 일 실시예에 의한 NoSQL 처리 과정을 나타낸 흐름도이다.
도 9를 참조하면, TCP 통신을 통해 자신의 주문관리서버에 접속된 FEP(22)로부터 전달된 주문정보가 수신되면(S21), 주문정보는 데이터베이스화된다(S22).
이와 함께, 타 NoSQL의 데이터베이스에 저장된 데이터에 대해, 클러스터링을 통해 데이터를 동기화하여 데이터베이스(52)에 저장한다(S23).
데이터베이스(52)는 큐(queue)의 형태로 들어온 다수의 주문관리서버로부터 전달된 주문정보들을 하나씩 쌓아놓고서 순차적으로 처리하여 저장한다.
한편, 서버 다운시, 데이터베이스(52)에 저장된 데이터는 메모리(44)로의 적재 및 메모리(44)에 적재된 데이터와의 비교를 위해 제공된다(S24).
도 10은 본 발명의 일 실시예에 의한 페일백 처리 과정을 나타낸 흐름도이다.
도 10을 참조하면, 페일백 컨트롤을 통해 타 NoSQL 서버 모듈의 데이터베이스에 대한 복제 제어가 이루어진다(S31).
이에, 타 NoSQL 서버 모듈의 데이터베이스에 저장된 데이터는 해당 주문처리서버의 데이터베이스(52)에 저장된다.
한편, 서버 다운시, 페일백 컨트롤을 통해 큐에 적재된 주문정보를 변환하여 메모리(44)에 적재한다(S32).
이 때, 메모리(44)에 적재된 주문정보와 변환한 주문정보를 비교하여 중복되는 주문번호가 확인되면(S33), 주문정보의 변환을 중지한다(S34).
상기한 바와 같이, 본 발명의 주문관리서버는 고객 증거금 등을 포함한 데이터를 모두 메모리(44)에 적재하는 인메모리 방식을 이용하여 신속한 처리가 이루어지도록 하고 있다. 또한, 본 발명의 주문관리서버는 기본적으로 페일오버 기능을 수행하며, 정합성 유지를 위해 페일백 기능을 수행하고 있다.
OMS에서 FEP(22)로 데이터를 전달하는데, 0.1 ~ 1 ㎲ 정도 소요되고, FEP(22)에서 소켓으로 데이터를 전달하는데 20 ㎳ 정도 소요된다.
이러한 데이터 전달 시간을 이용하여, FEP(22)가 소켓을 통해 거래소 시스템으로 주문정보를 전송하면, 주문정보를 메모리(44)에 적재하고, 이와 함께 UDP 통신을 통해 멀티캐스트된 타 주문관리서버의 주문정보를 메모리(44)에 적재한다. 즉, 타 서버의 클라이언트가 자신 서버의 클라이언트인 것처럼 관리한다. 이에 어느 하나의 서버 다운시, 페일오버 기능을 수행할 수 있게 되는 것이다.
그리고, 주문관리서버는 redis API를 통해 해당 주문정보를 TCP 통신을 통해 수신하여 저장한다. 이와 함께, 클러스터링 기능을 통해 타 주문관리서버를 동기화하여 데이터를 복제한다. 즉, 데이터베이스(52)를 별개로 운용하여 복구용으로 활용한다. 즉, 서버 다운시, 데이터베이스(52)에 저장된 주문정보와 메모리(44)에 적재된 주문정보를 비교하여 페일백 기능을 수행한다.
본 실시예에서는 2개의 주문관리서버 사이에서 페일오버 및 페일백 기능을 수행하는 경우에 대해 설명하고 있으나, 3개 이상의 주문관리서버에도 동일 기술이 적용될 수 있다. 이 경우, 인메모리 방식의 비효율적인 측면은 속도를 희생하여 데이터베이스(52)로 운영될 수도 있을 것이다.
한편, 본 발명의 페일백 기능을 갖는 주문관리서버 및 그 처리방법은, 초고속 트레이딩 시스템 증권시장에서 DMA시스템과 FEP(22) 시스템 분야에 적용될 수 있다. 또한, 선물옵션 마켓메이킹(Market Making) 시스템, 상품선물매매 시스템, 선물옵션 및 ELW DMA 시스템, ELW DMA 시스템과 트레이딩 API 시스템 등으로 활용이 가능하다. 핀테크의 이슈화 및 활성화로 인한 로봇어드바이저 시장의 활성화, 주식 자동매매 제공 서비스 확대로 인한 시스템 개발 수요의 증가, 자문형랩의 ISA서비스로의 편입 등 새로운 비즈니스 기회가 창출 될 것이다.
본 발명의 일 실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속한다.
1 : 클라이언트
2 : 회원사
3 : 거래소 시스템
4 : 인메모리 처리 모듈
5 : NoSQL 서버 모듈
6 : 페일백 처리 모듈

Claims (6)

  1. 주문요청정보에 따라 주문정보를 생성하여 FEP(Front End Process)로 전달하고 상기 주문정보를 메모리에 적재하고, 타 주문관리서버의 FEP로부터 멀티캐스트된 주문정보를 저장하는 인메모리 처리 모듈;
    상기 FEP로부터 전달된 주문정보를 데이터베이스화하고, 타 NoSQL 서버 모듈과 클러스터링하여 데이터를 동기화하는 NoSQL 서버 모듈; 및
    상기 타 NoSQL 서버 모듈의 데이터베이스를 복제하고, 서버 복구시 큐에 적재된 주문정보를 변환하여 상기 인메모리 처리 모듈로 전달하며, 상기 인메모리 처리 모듈에 적재된 주문정보와의 비교를 통해 중복되는 주문번호가 확인되면 주문정보의 변환을 중지하는 페일백 처리 모듈을 포함하는 페일백 기능을 갖는 주문관리서버.
  2. 제1항에 있어서,
    상기 NoSQL 서버 모듈은,
    상기 FEP로부터 전달된 주문정보를 수신하는 TCP 통신부;
    주문정보 및 상기 타 NoSQL 서버 모듈의 주문정보를 저장하는 데이터베이스; 및
    상기 타 NoSQL 서버 모듈과의 클러스터링을 통해 데이터를 동기화하는 클러스터링부를 포함하는 주문관리서버.
  3. 제1항에 있어서,
    상기 페일백 처리 모듈은,
    상기 타 NoSQL 서버 모듈의 데이터베이스를 복제하는 리플리케이터;
    큐에 적재된 주문정보를 변환하여 상기 인메모리 처리 모듈로 전달하는 트랜스레이터; 및
    상기 리플레이케이터의 복제 제어를 수행하고, 변환된 주문정보의 적재 제어를 수행하며, 상기 인메모리 처리 모듈에 적재된 주문정보와의 비교를 통해 중복되는 주문번호가 확인되면 상기 트랜스레이터의 주문정보 변환을 중지하는 페일백 컨트롤러를 포함하는 주문관리서버.
  4. 주문관리서버가 페일백(Fail Back)을 처리하는 방법으로서,
    (a) 주문요청정보에 따라 주문정보를 생성하여 FEP(Front End Process)로 전달하고 상기 주문정보를 메모리에 적재하고, 타 주문관리서버의 FEP로부터 멀티캐스트된 주문정보를 메모리에 적재하는 단계;
    (b) 타 NoSQL 서버 모듈과의 클러스터링을 통해 데이터를 동기화하여 데이터를 복제하는 단계;
    (c) 서버 다운시, 큐에 적재된 주문정보를 변환하여 상기 메모리에 적재함과 아울러 변환된 주문정보와 이미 적재된 주문정보를 비교하는 단계; 및
    (d) 중복되는 주문번호가 확인되면, 주문정보의 변환을 중지하는 단계를 포함하는 페일백 기능을 갖는 주문관리서버의 처리방법.
  5. 제4항에 있어서,
    상기 단계 (b)는,
    TCP 통신을 통해 자신의 주문관리서버에 접속된 FEP로부터 전달된 주문정보를 수신하여 데이터베이스화하는 단계; 및
    타 NoSQL의 데이터베이스에 저장된 데이터에 대해, 클러스터링을 통해 데이터를 동기화하여 데이터베이스에 저장하는 단계를 포함하며,
    서버 다운시, 저장된 데이터를 상기 메모리로의 적재 및 상기 메모리에 적재된 데이터와의 비교를 위해 제공하는 페일백 기능을 갖는 주문관리서버의 처리방법.
  6. 제4항에 있어서,
    상기 단계 (c)는,
    페일백 컨트롤을 통해 큐에 적재된 주문정보를 변환하여 상기 메모리에 적재하는 단계; 및
    상기 메모리에 적재된 주문정보와 변환한 주문정보를 비교하는 단계를 포함하는 페일백 기능을 갖는 주문관리서버의 처리방법.
KR1020160055586A 2016-05-04 2016-05-04 페일백 기능을 갖는 주문관리서버 및 그 처리방법 KR101819619B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160055586A KR101819619B1 (ko) 2016-05-04 2016-05-04 페일백 기능을 갖는 주문관리서버 및 그 처리방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160055586A KR101819619B1 (ko) 2016-05-04 2016-05-04 페일백 기능을 갖는 주문관리서버 및 그 처리방법

Publications (2)

Publication Number Publication Date
KR20170125261A true KR20170125261A (ko) 2017-11-14
KR101819619B1 KR101819619B1 (ko) 2018-02-28

Family

ID=60387586

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160055586A KR101819619B1 (ko) 2016-05-04 2016-05-04 페일백 기능을 갖는 주문관리서버 및 그 처리방법

Country Status (1)

Country Link
KR (1) KR101819619B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112905335A (zh) * 2021-02-02 2021-06-04 北京思特奇信息技术股份有限公司 调用多套系统相同服务的切换方法及业务处理系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112905335A (zh) * 2021-02-02 2021-06-04 北京思特奇信息技术股份有限公司 调用多套系统相同服务的切换方法及业务处理系统
CN112905335B (zh) * 2021-02-02 2023-11-10 北京思特奇信息技术股份有限公司 调用多套系统相同服务的切换方法及业务处理系统

Also Published As

Publication number Publication date
KR101819619B1 (ko) 2018-02-28

Similar Documents

Publication Publication Date Title
US9110837B2 (en) System and method for creating and maintaining secondary server sites
US20050188165A1 (en) Method, system, and program for a system architecture for an arbitrary number of backup components
US7334101B2 (en) Point in time remote copy for multiple sites
US8909977B2 (en) Failover system and method
US7177886B2 (en) Apparatus and method for coordinating logical data replication with highly available data replication
US7293192B2 (en) System and method for failover
TW589533B (en) Redundancy method of server, redundant server system and redundant database server
US8527464B2 (en) Self-contained partial database backups
CA2911001C (en) Failover system and method
US11086902B2 (en) Method and system for implementing a redo repeater
JP4998549B2 (ja) メモリミラー化制御プログラム、メモリミラー化制御方法およびメモリミラー化制御装置
US20110113209A1 (en) Data Recovery Systems and Methods
CN102710752B (zh) 灾备存储系统
US20070260644A1 (en) Method for enhancing the operation of a database
KR101819619B1 (ko) 페일백 기능을 갖는 주문관리서버 및 그 처리방법
KR20160004721A (ko) 데이터 손실 없는 데이터베이스 리두 로그 이중화 방법 및 그를 위한 시스템
US7302604B2 (en) Remote management commands in a mass storage system
JP5216218B2 (ja) 証券取引のマルチ・サイト・ソリューション
US9582384B2 (en) Method and system for data replication
US7587623B2 (en) Systems and methods for recovering a trading system
US9292588B1 (en) Safe storing data for disaster recovery
US20080072001A1 (en) System, Method and Computer Program Product for Copying Data
EP1746507B1 (en) System and method for recovering a trading system
TW201743266A (zh) 金融伺服系統、金融伺服器以及同步方法
CN112463888B (zh) 双站点数据库数据同步方法及系统

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant