KR20170139004A - 네트워크 컴퓨팅 자원에 의한 데이터 프로세싱의 조정 - Google Patents

네트워크 컴퓨팅 자원에 의한 데이터 프로세싱의 조정 Download PDF

Info

Publication number
KR20170139004A
KR20170139004A KR1020177027276A KR20177027276A KR20170139004A KR 20170139004 A KR20170139004 A KR 20170139004A KR 1020177027276 A KR1020177027276 A KR 1020177027276A KR 20177027276 A KR20177027276 A KR 20177027276A KR 20170139004 A KR20170139004 A KR 20170139004A
Authority
KR
South Korea
Prior art keywords
data
data processing
network computing
computing resources
routed
Prior art date
Application number
KR1020177027276A
Other languages
English (en)
Other versions
KR102494427B1 (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 KR1020237003088A priority Critical patent/KR102619651B1/ko
Publication of KR20170139004A publication Critical patent/KR20170139004A/ko
Application granted granted Critical
Publication of KR102494427B1 publication Critical patent/KR102494427B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/04Processing captured monitoring data, e.g. for logfile generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5017Task decomposition

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Marketing (AREA)
  • Development Economics (AREA)
  • Technology Law (AREA)
  • General Business, Economics & Management (AREA)
  • Economics (AREA)
  • Strategic Management (AREA)
  • Environmental & Geological Engineering (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Multi Processors (AREA)
  • Hardware Redundancy (AREA)
  • Data Mining & Analysis (AREA)
  • Computer And Data Communications (AREA)
  • Magnetic Resonance Imaging Apparatus (AREA)

Abstract

멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하기 위한 시스템, 방법 및 컴퓨터-판독가능한 매체는 복수의 네트워크 컴퓨팅 자원과 관련된 데이터를 모니터하고, 네트워크 컴퓨팅 자원으로의 데이터 프로세싱 세그먼트의 라우팅을 조정하는 것을 포함한다.

Description

네트워크 컴퓨팅 자원에 의한 데이터 프로세싱의 조정
본 출원은:
2015년 2월 27일자로 출원되고 발명의 명칭이 COORDINATED PROCESSING OF DATA BY NETWORKED COMPUTING RESOURCES인 미국 가출원 No. 62/126,106;
2015년 2월 27일자로 출원되고 발명의 명칭이 COORDINATED PROCESSING OF DATA BY NETWORKED COMPUTING RESOURCES인 미국 가출원 No. 62/126,120; 및
2015년 2월 27일자로 출원되고 발명의 명칭이 COORDINATED PROCESSING OF DATA BY NETWORKED COMPUTING RESOURCES인 미국 가출원 No. 62/132,063의 우선권을 주장한다.
상술한 출원들 모두는 전체적으로 본 명세서에 참조로 합체되어 있다.
본원은 일반적으로 멀티 네트워크 컴퓨팅 자원들에 의한 데이터 프로세스의 관리를 위한 시스템, 방법, 장치 및 컴퓨터 판독가능 매체에 관한 것이다. 보다 상세하게, 본원은 분산 네트워크 자원들에서 데이터의 프로세스를 위한 관련된 요청 또는 임시 요청의 통합 또는 동기에 관한 것이다.
본원에 개시된 자료들의 태양들은 증권 및 기타 금융재산의 주식, 양도, 및/또는 관리에 기반하거나 이와 관련한 것일 수 있다. 이런 주식, 양도, 및/또는 관리의 태양들은 정부 및 기타 기관들에 의해 규제를 받을 수 있다. 본원은 법으로 정해지거나, 규정에 따르거나, 기타 사법적 고려에 무관하게 단지 로직, 프로그래밍, 및 커뮤니케이션 가능성 면만 본 명세서에서 다루고 있다. 본 명세서에는 어떠한 것도 제안되거나 언급된 임의의 시스템, 방법 또는 프로세스 또는 그 사용자가 임의의 사법구역에서 임의의 법령, 법, 규정, 또는 기타 사법 요건을 따르거나 따르지 않는지에 대한 진술 또는 표현도 아니며; 그렇게 함에 따라 받아들여지거나 해석되지도 않아야 한다.
네트워크 또는 기타 분산형 데이터 프로세스 시스템의 다양한 형태로, 복잡한 및/또는 다수의 관련된 프로세스들이 실행을 위해 멀티 컴퓨팅 자원들에 종종 보내진다. 예컨대, 금융 및 기타 트레이딩 시스템에서, 구매, 매도, 및 기타 거래를 위한 주문들이 종종 이행을 위해 다수의 시장 또는 거래소 서버로 보내진다. 예컨대, 대량 주문이 (가령, 각 시장에서 수중에 넣을 수 있는 유동성에 기반해) 다수의 거래소들에 보내지면, 주문이 더 빠른 거래소(즉, 기본 레이턴시(latency)가 거의 없는 거래소)에 도달한 후에 더 느린 거래소(즉, 기본 레이턴시가 큰 거래소)에 도달하는 경향이 있고, 따라서 시간을 달리해 다른 거래소들의 장부에 나타난다. 주문이 더 빠른 거래소의 장부에 나타나기 시작하면, 다른 당사자들은 주문을 감지하고 시가(가령, 호가) 또는 더 느린 거래소에 기타 마켓 파라미터들을 취소, 변경 또는 기타 조작함으로써 더 느린 거래소의 레이턴시를 이용해 내포된 거래비용을 사실상 높이려 시도할 수 있다. 그 결과, 그렇지 않으면 임의의 단일 거래에 높은 주문충족비율(high fill ratio)로 실행될 수 있는 주문들이 스플릿 트레이드로서 다수의 거래소들에 보내질 경우 전체적으로 낮은 주문충족비율을 나타내는 경향이 있다.
Rony Kay의 논문 "Pragmatic Network Latency Engineering, Fundamental Facts and Analysis"과 같은 종래기술의 참조문헌들은 일방향 통신(즉, 패킷) 레이턴시의 제거를 제안함으로써 이런 문제들을 해결하려고 시도하였다. 이런 시스템들은 통신 레이턴시 이외에(또는 그 일부로서) 멀티 프로세서들이 멀티-프로세서 실행 요청들의 개별 부분들을 실행하는데 걸리는 시간의 변화(즉, 실행 레이턴시)에 의해 야기되거나 촉진되는 중개매매기회 및 기타 이슈들을 해소하지 못한다.
다양한 태양에서, 본원은 멀티 네트워크 컴퓨팅 자원들에 의한 데이터 치리의 관리를 위해 시스템, 방법, 및 소프트웨어-코드화 명령어 세트 및 데이터와 같은 컴퓨터 실행가능한 명령어 메카니즘(가령, 비일시적 기계판독가능 프로그래밍 구조)을 제공한다. 특히, 가령, 본원은 분산 네트워크 자원을 이용한 데이터의 프로세스를 위한 관련된 요청의 동기 또는 조정을 컨트롤하는데 유용한 시스템, 방법, 및 매체를 제공한다.
가령, 일태양으로, 본원은 멀티 네트워크 컴퓨팅 자원들에 의한 데이터의 프로세스를 통합하기 위한 시스템, 방법, 및 매체를 제공한다. 이런 시스템들은, 가령, 복수의 네트워크 컴퓨팅 자원에 의해 실행될 수 있는 적어도 하나의 데이터 프로세스의 실행을 위한 명령어를 나타내는 신호를 하나 이상의 데이터 소스로부터 수신하고; 복수의 네트워크 실행 프로세서 중 상이한 하나로 각각 라우팅되는 복수의 데이터 프로세싱 세그먼트로 적어도 하나의 데이터 프로세스를 분할하며; 시스템에 의해 복수의 네트워크 실행 프로세서 각각으로 라우팅되는 사전 데이터 프로세싱 요청의 실행의 대기시간에 적어도 부분적으로 기반하여, 복수의 데이터 프로세싱 세그먼트 중 대응하는 하나와 각각 관련되고 복수의 네트워크 실행 프로세서에 의해 복수의 데이터 프로세싱 세그먼트의 동기화된 실행을 야기하도록 결정되는 복수의 타이밍 파라미터를 결정하고; 타이밍 파라미터에 기반하여 타이밍 시퀀스로 대응하는 복수의 네트워크 실행 프로세서로 복수의 데이터 프로세싱 세그먼트를 라우팅하며; 데이터 프로세싱 세그먼트에 대한 캡쳐 비율을 결정하고; 캡쳐 비율에 기반하여 복수의 네트워크 실행 프로세서 각각과 관련된 타이밍 파라미터를 조정하도록 구성되는 적어도 하나의 프로세서를 포함할 수 있다.
몇몇 태양으로, 본 명세서는 예컨대, 기계-해석가능한 명령어를 실행하도록 구성되고, 시스템이 복수의 네트워크 컴퓨팅 자원들 각각에 의해 신호 프로세스 실행요청의 실행을 모니터하게 하고, 시스템과 복수의 네트워크 컴퓨팅 자원들 각각 사이에 신호 프로세스의 실행시 지연에 대한 적어도 하나의 타이밍 파라미터를 결정하게 하며, 적어도 하나의 프로세서에 의해 접속될 수 있는 기계-판독가능한 메모리에 적어도 하나의 타이밍 파라미터를 저장하게 하는 적어도 하나의 프로세서를 구비하는 멀티 네트워크 컴퓨팅 자원들, 이런 시스템들에 의한 데이터의 동기화/조정된 프로세스를 하기 위한 시스템, 방법 및 프로그래밍 또는 다른 기계-해석가능한 명령어를 제공한다.
본 발명의 이런 실시예와 다른 실시예에 따른 신호 프로세스 실행요청의 실행 모니터링은 연속적, 주기적 및/또는 다른 적절하거나 바람직한 기반을 토대로 구현될 수 있다.
본 발명의 다양한 태양의 다양한 실시예에서, 네트워크 컴퓨팅 자원은 하나 이상의 거래소 서버들을 포함할 수 있다. 데이터 소스들은 하나 이상의 중개자 또는 트레이더 시스템 또는 서버를 포함할 수 있고, 컨트롤된 신호 프로세스들이 금융 상품에 있는 거래를 나타낼 수 있고, 신호프로세스 실행요청의 실행은 예컨대, 주식, 채권, 옵션 및 계약 이율, 통화 및/또는 기타 무형의 상품, 및/또는 재화를 포함한 금융 상품에서 거래의 실행을 나타낸다. 이런 실시예에서, 데이터 프로세싱 절차의 실행을 위한 요청은 각 네트워크 컴퓨팅 자원에서 주문 수량의 실행시 예컨대 임의의 하나 이상의 현재 시장 데이터 시세, 주문 라우팅 규칙, 주문 특징, 각 네트워크 컴퓨팅 자원의 디스플레이되는 유동성, 및 가능한 지체 또는 지연을 포함한 파라미터에 전체적으로 또는 부분적으로 기초로 할 수 있다.
동일한 태양 및 다른 태양으로, 본 발명은 분산형 컴퓨터 자원에 의한 데이터 프로세스를 위한 요청을 컨트롤하거나 아니면 관리하는 시스템을 제공하며, 상기 시스템은 복수의 네트워크 컴퓨팅 자원들 각각에 의해 신호 프로세스 실행요청의 실행을 모니터하게 하고, 시스템과 복수의 네트워크 컴퓨팅 자원들 각각 사이에 신호 프로세스의 실행시 지연에 대한 적어도 하나의 타이밍 파라미터를 결정하게 하며, 복수의 네트워크 컴퓨팅 자원 각각에 대한 적어도 하나의 타이밍 파라미터들을 저장하게 하는 명령어를 실행하도록 구성된 하나 이상의 프로세서들을 포함한다.
일 태양에 따르면, 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 시스템이 제공된다. 상기 시스템은: 복수의 네트워크 컴퓨팅 자원과 관련된 데이터를 모니터하고; 복수의 네트워크 컴퓨팅 자원에 의해 실행가능하고 적어도 하나의 데이터 프로세스의 실행을 위한 명령어를 나타내는 신호를 하나 이상의 데이터 자원으로부터 수신하며; 모니터된 데이터에 기반하여: 복수의 네트워크 컴퓨팅 자원 중 하나로 각각 라우팅되는 적어도 하나의 데이터 프로세싱 세그먼트로 적어도 하나의 데이터 프로세스를 분할하고; 복수의 네트워크 컴퓨팅 자원 중 대응하는 하나와 각각 관련되는 복수의 타이밍 파라미터를 결정하며; 타이밍 파라미터에 기반하여 타이밍 시퀀스에서 대응하는 복수의 네트워크 컴퓨팅 프로세서로 적어도 하나의 데이터 프로세싱 세그먼트를 라우팅하도록 구성되는 적어도 하나의 프로세서를 포함하며, 모니터된 데이터는 복수의 네트워크 컴퓨팅 자원으로 이전에 라우팅된 데이터 프로세싱 세그먼트와 관련된 데이터를 포함하고, 복수의 타이밍 파라미터는 복수의 네트워크 컴퓨팅 프로세서에 의해 적어도 하나의 데이터 프로세싱 세그먼트의 동기화된 실행을 야기하도록 결정된다.
또 다른 태양에 따르면, 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 방법이 제공된다. 상기 방법은: 복수의 네트워크 컴퓨팅 자원과 관련된 데이터를 모니터하는 단계; 복수의 네트워크 컴퓨팅 자원에 의해 실행가능하고 적어도 하나의 데이터 프로세스의 실행을 위한 명령어를 나타내는 신호를 하나 이상의 데이터 자원으로부터 수신하는 단계; 모니터된 데이터에 기반하여, 복수의 네트워크 컴퓨팅 자원 중 하나로 각각 라우팅되는 적어도 하나의 데이터 프로세싱 세그먼트로 적어도 하나의 데이터 프로세스를 분할하는 단계; 복수의 네트워크 컴퓨팅 자원 중 대응하는 하나와 각각 관련되는 복수의 타이밍 파라미터를 결정하는 단계; 및 타이밍 파라미터에 기반하여 타이밍 시퀀스에서 대응하는 복수의 네트워크 컴퓨팅 프로세서로 적어도 하나의 데이터 프로세싱 세그먼트를 라우팅하는 단계를 포함하며, 모니터된 데이터는 복수의 네트워크 컴퓨팅 자원으로 이전에 라우팅된 데이터 프로세싱 세그먼트와 관련된 데이터를 포함하고, 복수의 타이밍 파라미터는 복수의 네트워크 컴퓨팅 프로세서에 의해 적어도 하나의 데이터 프로세싱 세그먼트의 동기화된 실행을 야기하도록 결정된다.
또 다른 태양에 따르면, 적어도 하나의 프로세서에 의해 실행될 때, 적어도 하나의 프로세서가: 복수의 네트워크 컴퓨팅 자원과 관련된 데이터를 모니터하고; 복수의 네트워크 컴퓨팅 자원에 의해 실행가능하고 적어도 하나의 데이터 프로세스의 실행을 위한 명령어를 나타내는 신호를 하나 이상의 데이터 자원으로부터 수신하며; 모니터된 데이터에 기반하여, 복수의 네트워크 컴퓨팅 자원 중 하나로 각각 라우팅되는 적어도 하나의 데이터 프로세싱 세그먼트로 적어도 하나의 데이터 프로세스를 분할하고; 복수의 네트워크 컴퓨팅 자원 중 대응하는 하나와 각각 관련되는 복수의 타이밍 파라미터를 결정하며; 타이밍 파라미터에 기반하여 타이밍 시퀀스에서 대응하는 복수의 네트워크 컴퓨팅 프로세서로 적어도 하나의 데이터 프로세싱 세그먼트를 라우팅하도록 구성되는 명령어를 저장한 컴퓨터-판독가능한 매체가 제공되며, 모니터된 데이터는 복수의 네트워크 컴퓨팅 자원으로 이전에 라우팅된 데이터 프로세싱 세그먼트와 관련된 데이터를 포함하고, 복수의 타이밍 파라미터는 복수의 네트워크 컴퓨팅 프로세서에 의해 적어도 하나의 데이터 프로세싱 세그먼트의 동기화된 실행을 야기하도록 결정된다.
또 다른 태양에 따르면, 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 시스템이 제공된다. 상기 시스템은: 하나 이상의 데이터 프로세싱 세그먼트, 하나 이상의 데이터 프로세싱 세그먼트가 라우팅되는 대응하는 하나 이상의 네트워크 컴퓨팅 자원, 및 하나 이상의 데이터 프로세싱 세그먼트가 라우팅되는 타이밍 시퀀스를 각각 식별하는 복수의 데이터 프로세스 웨이브를 획득하고; 각각의 네트워크 컴퓨팅 자원에 대한 최소 핸들링 간격을 획득하며; 네트워크 컴퓨팅 자원에 대한 웨이브 타이밍 시퀀스 및 최소 핸들링 간격에 기반하여 복수의 데이터 프로세스 웨이브를 라우팅하는 순서를 스케줄링하고; 상기 순서에 기반하여 복수의 데이터 프로세스 웨이브에서 각각의 데이터 프로세싱 세그먼트를 라우팅하도록 구성된 적어도 하나의 프로세서를 포함한다.
또 다른 태양에 따르면, 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 방법이 제공된다. 상기 방법은: 하나 이상의 데이터 프로세싱 세그먼트, 하나 이상의 데이터 프로세싱 세그먼트가 라우팅되는 대응하는 하나 이상의 네트워크 컴퓨팅 자원, 및 하나 이상의 데이터 프로세싱 세그먼트가 라우팅되는 타이밍 시퀀스를 각각 식별하는 복수의 데이터 프로세스 웨이브를 획득하는 방법; 각각의 네트워크 컴퓨팅 자원에 대한 최소 핸들링 간격을 획득하는 방법; 네트워크 컴퓨팅 자원에 대한 웨이브 타이밍 시퀀스 및 최소 핸들링 간격에 기반하여 복수의 데이터 프로세스 웨이브를 라우팅하는 순서를 스케줄링하는 방법; 및 상기 순서에 기반하여 복수의 데이터 프로세스 웨이브에서 각각의 데이터 프로세싱 세그먼트를 라우팅하는 단계를 포함한다.
또 다른 태양에 따르면, 적어도 하나의 프로세서에 의해 실행될 때, 적어도 하나의 프로세서가: 하나 이상의 데이터 프로세싱 세그먼트, 하나 이상의 데이터 프로세싱 세그먼트가 라우팅되는 대응하는 하나 이상의 네트워크 컴퓨팅 자원, 및 하나 이상의 데이터 프로세싱 세그먼트가 라우팅되는 타이밍 시퀀스를 각각 식별하는 복수의 데이터 프로세스 웨이브를 획득하고; 각각의 네트워크 컴퓨팅 자원에 대한 최소 핸들링 간격을 획득하며; 네트워크 컴퓨팅 자원에 대한 웨이브 타이밍 시퀀스 및 최소 핸들링 간격에 기반하여 복수의 데이터 프로세스 웨이브를 라우팅하는 순서를 스케줄링하고; 상기 순서에 기반하여 복수의 데이터 프로세스 웨이브에서 각각의 데이터 프로세싱 세그먼트를 라우팅하도록 구성되는 명령어를 저장한 컴퓨터-판독가능한 매체가 제공된다.
또 다른 태양에 따르면, 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 시스템이 제공되는데, 상기 시스템은: 복수의 네트워크 컴퓨팅 자원에 의해 실행가능하고 복수의 데이터 프로세스의 실행을 위한 명령어를 나타내는 신호를 하나 이상의 데이터 소스로부터 수신하고; 복수의 네트워크 컴퓨팅 자원 각각에서 금융 상품의 가용 유동성과 관련된 데이터를 획득하며; 복수의 네트워크 컴퓨팅 프로세서 중 적어도 하나로 라우팅되도록 하나의 데이터 프로세스로부터 각각 분할되는 복수의 데이터 프로세싱 세그먼트로 복수의 데이터 프로세스 각각을 분할하고; 복수의 네트워크 컴퓨팅 프로세서 각각으로 상기 시스템에 의해 라우팅되는 사전 데이터 프로세싱 요청의 실행시 대기시간 및 복수의 네트워크 컴퓨팅 프로세서 각각에서의 가용 유동성에 적어도 부분적으로 기반하여, 복수의 데이터 프로세싱 세그먼트 중 대응하는 하나와 각각 관련되는 복수의 타이밍 파라미터를 결정하며; 복수의 데이터 프로세스 각각과 관련된 타이밍 파라미터 및 네트워크 컴퓨팅 프로세서에 기반하여, 복수의 데이터 프로세스 모두에 대한 데이터 프로세싱 세그먼트를 라우팅하기 위해 타이밍 시퀀스를 결정하고; 상기 타이밍 시퀀스에 기반하여 복수의 데이터 프로세싱 세그먼트를 복수의 대응하는 네트워크 컴퓨팅 프로세서로 라우팅하도록 구성되는 적어도 하나의 프로세서를 포함하며, 데이터 프로세스는 금융 상품의 제안된 거래를 나타내고, 복수의 타이밍 파라미터는 복수의 네트워크 컴퓨팅 프로세서에 의해 복수의 데이터 프로세싱 세그먼트의 동기화된 실행을 야기하도록 결정된다.
또 다른 태양에 따르면, 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 방법이 제공되는데, 이 방법은: 복수의 네트워크 컴퓨팅 자원에 의해 실행가능하고 복수의 데이터 프로세스의 실행을 위한 명령어를 나타내는 신호를 하나 이상의 데이터 소스로부터 수신하는 단계; 복수의 네트워크 컴퓨팅 자원 각각에서 금융 상품의 가용 유동성과 관련된 데이터를 획득하는 단계; 복수의 네트워크 컴퓨팅 프로세서 중 적어도 하나로 라우팅되도록 하나의 데이터 프로세스로부터 각각 분할되는 복수의 데이터 프로세싱 세그먼트로 복수의 데이터 프로세스 각각을 분할하는 단계; 복수의 네트워크 컴퓨팅 프로세서 각각으로 상기 시스템에 의해 라우팅되는 사전 데이터 프로세싱 요청의 실행시 대기시간 및 복수의 네트워크 컴퓨팅 프로세서 각각에서의 가용 유동성에 적어도 부분적으로 기반하여, 복수의 데이터 프로세싱 세그먼트 중 대응하는 하나와 각각 관련되는 복수의 타이밍 파라미터를 결정하는 단계; 복수의 데이터 프로세스 각각과 관련된 타이밍 파라미터 및 네트워크 컴퓨팅 프로세서에 기반하여, 복수의 데이터 프로세스 모두에 대한 데이터 프로세싱 세그먼트를 라우팅하기 위해 타이밍 시퀀스를 결정하는 단계; 및 상기 타이밍 시퀀스에 기반하여 복수의 데이터 프로세싱 세그먼트를 복수의 대응하는 네트워크 컴퓨팅 프로세서로 라우팅하는 단계를 포함하며, 데이터 프로세스는 금융 상품의 제안된 거래를 나타내고, 복수의 타이밍 파라미터는 복수의 네트워크 컴퓨팅 프로세서에 의해 복수의 데이터 프로세싱 세그먼트의 동기화된 실행을 야기하도록 결정된다.
또 다른 태양에 따르면, 적어도 하나의 프로세서에 의해 실행될 때, 적어도 하나의 프로세서가: 복수의 네트워크 컴퓨팅 자원에 의해 실행가능하고 복수의 데이터 프로세스의 실행을 위한 명령어를 나타내는 신호를 하나 이상의 데이터 소스로부터 수신하고; 복수의 네트워크 컴퓨팅 자원 각각에서 금융 상품의 가용 유동성과 관련된 데이터를 획득하며; 복수의 네트워크 컴퓨팅 프로세서 중 적어도 하나로 라우팅되도록 하나의 데이터 프로세스로부터 각각 분할되는 복수의 데이터 프로세싱 세그먼트로 복수의 데이터 프로세스 각각을 분할하고; 복수의 네트워크 컴퓨팅 프로세서 각각으로 상기 시스템에 의해 라우팅되는 사전 데이터 프로세싱 요청의 실행시 대기시간 및 복수의 네트워크 컴퓨팅 프로세서 각각에서의 가용 유동성에 적어도 부분적으로 기반하여, 복수의 데이터 프로세싱 세그먼트 중 대응하는 하나와 각각 관련되는 복수의 타이밍 파라미터를 결정하며; 복수의 데이터 프로세스 각각과 관련된 타이밍 파라미터 및 네트워크 컴퓨팅 프로세서에 기반하여, 복수의 데이터 프로세스 모두에 대한 데이터 프로세싱 세그먼트를 라우팅하기 위해 타이밍 시퀀스를 결정하고; 상기 타이밍 시퀀스에 기반하여 복수의 데이터 프로세싱 세그먼트를 복수의 대응하는 네트워크 컴퓨팅 프로세서로 라우팅하도록 구성된 명령어를 저장한 컴퓨터-판독가능한 매체가 제공되며, 데이터 프로세스는 금융 상품의 제안된 거래를 나타내고, 복수의 타이밍 파라미터는 복수의 네트워크 컴퓨팅 프로세서에 의해 복수의 데이터 프로세싱 세그먼트의 동기화된 실행을 야기하도록 결정된다.
당업자에 인식되는 바와 같이, 이들이 본 명세서에 익숙해지면, 예컨대 이런 프로세스를 위한 요청의 동기화되거나 조정된 전송에 의한 분산형 데이터 프로세싱 요청의 실행의 동기화 또는 조정이 매우 많은 데이터 프로세스 분야에서 아주 많은 가능한 애플리케이션을 갖는다.
본 발명의 내용 중에 포함되어 있다.
본원의 예시적인 실시예로서 도시한 도면을 참조한다.
도 1a, 1b, 1c, 3 및 9는 본 발명의 다양한 태양들에 따른 멀티 네트워크 컴퓨팅 자원들에 의한 데이터의 프로세스를 야기하는데 적합한 시스템들의 예들을 도시한 것이다.
도 2, 4, 8 및 12는 본 발명의 다양한 태양들에 따른 멀티 네트워크 컴퓨팅 자원들에 의한 데이터의 프로세스를 통합하기 위한 방법들의 예들을 예시한 흐름도를 도시한 것이다.
도 5는 본 발명의 다양한 태양들에 따른 멀티 네트워크 컴퓨팅 자원들에 의한 데이터의 프로세스를 관리하기 위한 예시적인 방법에 사용될 수 있는 예시적인 히스토그램을 도시한 것이다.
도 6a 및 6b는 멀티 네트워크 컴퓨팅 자원들에 의한 데이터의 프로세스를 위한 예시적인 방법 및 시스템을 이용하는 것 대 종래 방법 및 시스템을 이용하는 것의 주문충족비율의 비교를 도시한 것이다.
도 7은 멀티 네트워크 컴퓨팅 자원들에 의한 데이터의 프로세스를 위한 예시적인 방법 및 시스템 대 종래 방법 및 시스템을 이용한 결과를 비교하기 위한 예시적인 측정법의 이용을 도시한 것이다.
도 10은 네트워크 컴퓨팅 자원과 관련된 예시적인 데이터를 도시한 표를 나타낸 것이다.
도 11a, 11b, 11c, 11d, 11e는 데이터 프로세스 웨이브에서 데이터 프로세싱 세그먼트를 보내기 위한 예시적인 스케줄을 도시한 것이다.
첨부도면 전체에 걸쳐, 동일한 특징은 동일한 참조부호로 식별된다.
본원에서, 관련된 당업자가 아는 바와 같이, '동기화된' 또는 '통합된'이라는 용어는 임의의 소정의 타이밍 시퀀스에 따라 규칙적, 불규칙적 및/또는 전체적 또는 부분적으로 동시인지 여부를 의미할 수 있다.
도 1은 본 발명에 따른 멀티 네트워크 컴퓨팅 자원들에 의한 데이터의 프로세스를 통합하는데 적합한 시스템(100)의 예를 도시한 것이다.
도시된 예에서, 시스템(100)은 (하나 이상의 각각의 소스들(102a,102b)을 포함한) 하나 이상의 신호 또는 데이터 소스(102), 실행 라우터 프로세서(들)(104), 및 하나 이상의 네트워크 컴퓨팅 자원들 또는 실행 프로세서들(106)을 포함한다. 몇몇 실시예에서, 데이터 소스(102)는 (가령, 사설 로컬망 또는 광역망(들) 또는 기타 보안 유무선 통신을 통해, 직접 통신채널(들)을 통해 또는 단일 서버 내의 통신(들)을 통해) 라우터(104)와 직접 통신할 수 있는 하나 이상의 내부 데이터 소스(102a)를 포함할 수 있다. 동일 및/또는 다른 실시예에서, 데이터 소스(들)(102)는 또한 하나 이상의 외부 데이터 소스들(102b)을 포함할 수 있고, 상기 외부 데이터 소스들은 가령 데이터 암호화 등을 포함할 수 있는 적절한 또는 그 외의 소정의 네트워크 보안장치를 이용해 예컨대 하나 이상의 공공망(108)(가령, 인터넷과 같은 공공통신망 또는 사설통신망)을 통해 라우터 프로세서(들)(104)와 통신할 수 있다. 도시된 예에서, 라우터 프로세서(들)(104)는 네트워크(108)와 동일하거나 다를 수 있는 네트워크(110)를 통해 하나 이상의 네트워크 실행 또는 컴퓨팅 자원들(106) 각각과 통신한다.
다양한 실시예에서, 데이터 소스(들)(102)는, 트레이딩 및/또는 기타 데이터 프로세스 요청들을 발생하는 하나 이상의 엔티티들을 대신해, 데어터 처리 프로세스들의 실행과 관련된 데이터 및/또는 명령어들을 라우터 프로세서(들)(104)에 보내는 신호를 제공하는 장치들을 포함할 수 있고, 데이터 및/또는 명령어들은 라우터 프로세서(들)(104)가 처리(가령, 합산, 평균 등에 의한 합계; 및/또는 세그먼트로 분할, 등)하고 네트워크 컴퓨팅 자원들(106)에 의한 데이터 프로세스 요청을 위한 베이스로서 사용할 수 있다. 데이터 소스들(102a, 102b)은 가령 상품, 무형의 금융재산 등의 구매를 위한 호가와 같은 데이터 프로세스 태스크, 및/또는 워드, 이미지, 및/또는 기타 통신 또는 문서 처리 태스크와 같은 기타 데이터 프로세스 태스크의 실행을 위한 요청들에 대한 시스템, 서버, 프로세서, 및/또는 임의의 다른 적절한 소스(들)를 포함할 수 있다. 데이터 소스(들)(102), 프로세서(들)(104), 및 자원들(106) 중 어느 하나 또는 각각은 이와 같은 멀티 시스템, 서버 또는 프로세서를 포함할 수 있다.
다양한 실시예에서, 데이터 소스(들)(102) 및 라우터 프로세서(들)(104) 중 일부 또는 모두가 조합될 수 있고/있거나 그렇지 않으면 단일 장치에 실행되는 멀티 프로그래밍 또는 기타 기계 명령어 애플리케이션을 실행하도록 구성될 수 있다.
네트워크 컴퓨팅 자원들(106)은 매우 광범위하게 다양한 데이터 프로세스 요청들 중 어느 하나를 수신 및 실행하기 위해 라우터 프로세서(들)(104)와 통신하는 임의의 디바이스 또는 기타 자원들을 포함할 수 있다. 이런 네트워크 컴퓨팅 자원들(106)은, 가령, 상품, 금융재산 등의 구매를 위한 호가의 처리, 및/또는 워드나 문서 처리, 이미지와 같은 기타 데이터 프로세스 태스크, 및/또는 기타 통신 또는 문서화 태스크를 포함한 본 발명을 실행하는데 사용하기 적절한 임의의 프로세스들의 실행에 적용된 시스템, 서버, 프로세서, 및/또는 임의의 다른 적절한 디바이스들을 포함할 수 있다.
다양한 실시예에서, 하나 이상의 데이터 소스들(102)은 데이터 프로세스 기능을 실행하기 위한 명령어 또는 요청을 나타내는 신호들을 라우터 프로세서(들)(104)로 보내거나 그렇지 않으면 프로세서(들)(104)에 제공한다. 임의의 주어진 데이터 소스(들)(102)로부터의 명령어들은 신호 프로세스들이 임의의 하나 이상의 네트워크 컴퓨터 자원들(016)에 의해 실행되도록 하는 명령어들을 포함할 수 있다. 요청 신호 프로세스들은, 가령, 컴퓨팅 연산, 데이터 조작, 및/또는 통신 프로세스 또는 무엇보다도 기타 신호 교환을 포함할 수 있다. 반드시 모든 예들이 아니라 몇몇 예에서, 이런 명령어들은 특히 이런 프로세스들의 실행을 위해 특히 타겟화된 네트워크 컴퓨팅 자원(들)(106)을 명확히 식별할 수 있다.
라우터 프로세서(들)(104)는 하나 이상의 소스들(102)로부터 수신된 명령어 신호들을 파싱하고 이와 같은 신호들을 이용해 명령어 또는 요청을 준비하여 수신된 명령어들에 따라 데이터 프로세스 및/또는 기타 신호 처리를 실행하도록 복수의 실행 프로세서들(106)로 보내는데 사용할 수 있다. 이런 명령어들의 파싱은, 가령, 트레이드를 위한 주문 또는 입찰의 양이나 총량 또는 행해질 문서처리 양을 포함해 요청된 프로세서(들)의 타입, 및 실행하도록 요청되고, 이로써 주어진 데이터 프로세스 및/또는 기타 신호 처리요청과 관련된 네트워크 컴퓨팅 자원(들)(106)의 타입, 속성, 및/또는 ID(들)을 식별하는 것을 포함할 수 있다.
예컨대, 신호 및/또는 기타 데이터 프로세스 기능들의 효율을 높이기 위해, 라우터 프로세서(들)(104)는 비교적 더 작은 실행을 요청하는 멀티 소스들(102)로부터 수신된 명령어들 또는 요청들을 처리를 위한 하나 이상의 더 큰 요청들로 파싱, 분류, 및 통합할 수 있고, 이런 통합된 요청(들)을 가령 실행 프로세서들(106)의 현재 능력에 따라 복수의 실행 프로세서들(106)로 분산되게 복수의 더 작은 요청들로 더 분할해 이와 같이 처리된 요청들을 만족시키거나 완료할 수 있다.
예컨대, 다른 데이터 소스들(102a, 102b)로부터 수신된 다수의 명령어 신호 세트들은 개개의 네트워크 컴퓨팅 자원(들)(106)과 연관될 수 있고(가령, 네트워크 컴퓨팅 자원에 전달 및 네트워크 컴퓨팅 자원에 의한 실행을 위해 어드레스될 수 있고), 이런 명령어들은 이와 같은 네트워크 컴퓨팅 자원(들)(106)에 대한 단일 신호 프로세스 실행 요청들에 통합될 수 있다. 몇몇 예에서, 통합 후에 소정의 신호 처리 요청에 따라 태스크될 네트워크 컴퓨팅 자원(들)(106)의 식별이 수행될 수 있다. 예컨대, 다른 데이터 소스들(102a, 102b)로부터 다수의 명령어들이 저장될 수 있거나 그렇지 않으면 단일 신호 또는 데이터 프로세스와 연관될 수 있고, 이런 명령어들은 통합될 수 있으며, 통합된 명령어들은 하나 이상의 식별된 네트워크 컴퓨팅 자원(들)(106)과 연관될 수 있어, 하나 이상의 신호 처리 요청들이 이에 따라 식별된 네트워크 컴퓨팅 자원(들)(106)에 대해 준비될 수 있게 된다. 이런 파싱, 분류, 및/또는 식별은 (가령, 하나 이상의 특정 네트워크 컴퓨팅 자원(들)(106)의 지속적이거나 현재 처리 능력을 기반으로) 기설정된 규칙 또는 알고리즘에 따라 수행될 수 있고, 요청에 따라 명령어에 코드화되거나 그렇지 않으면 발신 소스(들)(102)에 의해 적절한 곳에 제공될 수 있다.
다른 예로서, 데이터의 프로세스를 위한 신호 명령어는 프로세서(들)(104)에 의해 분해되고 분산 실행을 위해 복수의 자원들(106)로 분포될 수 있다. 예컨대, 신호 소스들(102a, 102b)에서 발생한 하나 이상의 금융재산들의 트레이딩을 위한 비교적 큰 주문은 완전히 이행되도록 다수의 익스체인지 서버들(106)에 분산될 필요가 있을 수 있다; 이러한 경우, 하나 이상의 소스(들)(102)로부터의 요청(들)은 복수의 이러한 자원들(106)이 실행하도록 적절한 크기로 프로세서(들)(104)에 의해 분해될 수 있다.
몇몇 실시예에서, 명령어 세트는 하나 이상의 중개인들로부터 다양한 주문 쇄도의 일부로서 수신될 수 있다. 이들 주문 쇄도는 명령어 세트를 포함할 수 있는데, 상기 명령어 세트들은 하나 이상의 금융재산들의 거래를 위한 다양한 현장들로 전송되도록 타겟화될 수 있다.
타겟화된, 또는 명확히 식별된, 네트워크 컴퓨팅 자원들/실행 프로세서들(106)은 라우터 프로세서(들)(104)와 통신하여 세그먼트화된 신호처리 실행요청을 수신하고 그런 후 이에 따라 이들을 실행할 수 있다. 이런 신호처리의 실행은, 가령, 텍스트-처리 또는 이미지-처리 연산, 수학적 계산, 또는 특히 통신신호 교환을 실행하는 것을 포함할 수 있다.
관련 기술의 당업자들이 쉽게 이해하는 바와 같이, 시스템(100)의 다양한 구성요소들은 조합되거나 별개의 시스템들 또는 디바이스들의 형태로 구현될 수 있다. 광범위하게 다양한 구성들로, 이런 조합된 또는 별개의 (서브)시스템들은 동일 또는 별개의 엔티티들에 의해 동작될 수 있다. 특별한 예로서, 하나 이상의 요청 소스(들)(102)은 개개의 라우터(들)(104)과 통합되거나 그렇지 않으면 연관될 수 있다.
몇몇 실시예에서, 시스템은 주문들의 순서화, 우선순위화, 스케줄화, 스태거화, 세그멘테이션 및/또는 그룹화 라우팅 또는 하나 이상의 금융재산들과 관련된 기타 데이터 프로세싱 세그먼트/요청을 하도록 구성될 수 있는 하나 이상의 프로세서들을 포함한 하나 이상의 지능형 주문 라우터들(104)을 제공할 수 있다.
예컨대, 데이터 프로세싱 세그먼트는 웨이브로 그룹화될 수 있고, 개개의 세그먼트들의 라우팅은 가령 목적지 네트워크 컴퓨팅 자원들과 관련된 모니터링 데이터를 기반으로 스케줄화, 스태커화, 그룹화 등이 될 수 있다. 몇몇 실시예에서, 데이터 프로세싱 세그먼트는 적어도 부분적으로 모니터링 데이터에 정의된 타임프레임 내에서 하나 이상의 네트워크 컴퓨팅 자원들에 의해 처리 및/또는 실행될 수 있다. 도 1c는 라우터 프로세서(들)(104)을 이용해 중개인(X 및 Y)이 현장 1-5에 제출하는 데이터 프로세싱 세그먼트의 많은 예시적인 쇄도들을 나타낸 샘플 개략도를 제공한다.
몇몇 실시예에서, 데이터 프로세스 요청의 여러 인스턴스들이 기설정된 타이밍 시퀀스에 전송된 다른 양들과 함께 다수의 거래소들로 보내질 수 있다. 타이밍 시퀀스는 모니터링 데이터로부터 결정된 타이밍 파라미터들을 기초로 할 수 있고, 데이터 프로세싱 세그먼트의 라우팅의 초기화가 수행되어야 하는 정기적 순서를 정의할 수 있다.
라우팅 순서에서, 시스템은 타이밍 범위, 분포 등의 결정을 포함할 수 있는 타이밍 파라미터들을 결정하도록 구성될 수 있다. 타이밍 파라미터는 가변적, 적응적, 가중화, 확률적 등일 수 있고 또한 네트워크 혼잡, 주문 부하, 주문 우선순위, 현장 특징 등과 같은 다양한 요인들에 따라 조정될 수 있다.
몇몇 실시예에서, 시스템은 예상된 주문 흐름을 기반으로 주문의 라우팅(데이터 프로세싱 세그먼트)을 적용하도록 구성될 수 있다. 예컨대, 시스템은 특정 시간에 또는 특정 타임프레임 동안 매우 많은 대량의 예정된 주문들이 보내지게 할 수 있다. 따라서, 시스템은 네트워킹 장비, 통신채널, 현장 시스템, 라우팅 경로, 중개 네트워크 장비 등에 예상된 부하가 주어지면 하나 이상의 주문들의 라우팅을 적용하도록 구성될 수 있다. 시스템은 주문 라우팅을 부하조절하기 위해 다양한 네트워크 링크들 및/또는 다른 타임프레임들을 가로질러 주문의 라우팅을 분산시키도록 더 구성될 수 있다.
본 명세서에 기술된 바와 같이, 시스템은 하나 이상의 네트워크 컴퓨팅 자원과 관련된 데이터를 모니터한다. 이 데이터는 시스템내 하나 이상의 부품들 또는 디바이스들로 획득되거나 이로부터 수신될 수 있다.
시스템은 또한 그중에서도 네트워크 성능의 모니터링, 이용가능한 네트워크 링크의 모니터링을 포함해 하나 이상의 네트워크 컴퓨팅 자원들과 관련된 네트워크 데이터를 모니터하도록 구성될 수 있다. 네트워크 모니터링과 관련해 네트워크 성능의 확률분포 및/또는 모델이 발생, 적용, 정의 및/또는 이용될 수 있다. 네트워크 모니터링은 시간 파라미터들 등을 적용하도록 이용될 수 있다. 네트워크 모니터링은 가령 레이턴시 수단, 최대치, 표준편차, 첨도(kurtosis), L-첨도, 스큐잉(skewing), 중앙값, 분산, 모드, 상관, 교차상관, 공분산, 등의 결정 및/또는 모니터링을 포함할 수 있고, 주문 부하, 일시(가령, 트레이딩의 개시, 트레이딩의 마감), 금융 이벤트의 발생(가령, 트레이드 주문 중단, 기업 이벤트, 통계자료발간, 분석가 리포트 발간, 신용등급 변화), 네트워크 이벤트의 발생(가령, 선스팟, 서비스 거부 공격)과 같은 기타 요인들과 상관 및/또는 관련될 수 있다.
네트워크 모니터링은 신호 송신시간, 히스토리적 주문 라우팅 성능, 최근 주문 라우팅 흐름, 테스트 메시지의 발송 등을 측정하기 위해 가령 '하트비트'(가령, 핑 신호의 송신, 정규적으로 예정된 송신, 에코 요청 패킷)를 통한 네트워크 성능의 트래킹을 통해 발생할 수 있다.
몇몇 실시예에서, 네트워크 모니터링을 위해 테스트 메시지들이 이용되고, 테스트 메시지와 보내진 주문 메시지 간에 타이밍 차이는 주문, 현장에서 내부 레이턴시 등을 처리하는데 걸리는 시간과 같은 다양한 주문 라우팅 특징들을 결정하는데 이용될수 있다.
몇몇 실시예에서, 시스템은 시스템 그 자체에 의해 보내지도록 예정된 주문들을 포함해 다양한 네트워크 링크를 가로질러, 다양한 현장 등에서 주문 보하를 결정하는데 다양한 네트워크 에상 기술들을 이용한다. 부분적으로는 예상된 부하를 기반으로 실행 요청이 재정렬 및/또는 스케줄될 수 있다.
몇몇 실시예에서, 시스템은 데이터베이스(들)에 액세스할 수 있거나 하나 이상의 네트워크 연결(들)의 토폴로지뿐만 아니라 리던던시 스킴(redundancy scheme)에 관한 정보를 획득하기 위해 네트워크 메시지를 수신 또는 모니터할 수 있다. 예컨대, 시스템은 현장에 2 이상의 연결 및/또는 루트를 가질 수 있다. 이들 연결 및/또는 루트의 성능을 모니터하고 이에 액세스함으로써, 주요 연결/루트에 장애가 있으면, 감지하자마자, 시스템은 알고 있는 보조 루트/연결과 관련된 레이턴시들을 기반으로 모든 연이은 주문들을 보내도록 구성될 수 있어 장애로 야기된 바람직하지못한 타이밍 및 아마도 필 레이트를 최소화한다.
몇몇 실시예에서, 가능한 경우, 네트워크 모니터링은 이전에 보내진 트레이드 요청에 대해 수행될 수 있다.
시스템은 또한 (예컨대, 트레이드 결정이 이루어질 때) 한 번에 결정된 것으로 주문 유동성의 합계와 트레이드에서 캡쳐된 유동성의 총액 간의 비로 정해질 수 있는 트레이트 캡쳐비율(trade capture ratio)를 트래킹하도록 구성될 수 있다.
트레이트 캡쳐비율은 타이밍 파라미터들을 적용하고, 네트워크 부품이 고장난 것으로 판단하며, 제3자들에 주문이 가로채질 수 있음을 감지하는 것 등과 같이 다양한 목적으로 이용될 수 있다. 예컨대, 하이 트레이트 캡쳐비율은 정보 누출의 감소 및/또는 주문충족비율의 증가를 나타낼 수 있고, 로우 트레이트 캡쳐비율은 증가된 정보누출의 증가 및/또는 주문충족비율의 감소를 나타낼 수 있다. 로우 트레이트 캡쳐비율은, 가령, 경고, 통보, 비지니스 로직의 애플리케이션을 통해 시스템에 의한 적용, 타이밍 파라미터의 구현, 변경된 라우팅 전략 등을 트리거할 수 있다.
몇몇 실시예에서, 시스템은 주문, 라우팅 명령어 등이 어떻게 시퀀스화, 우선순위화, 스케줄화, 스태거화, 세그멘테이션 및/또는 그룹화될 수 있는지 판단하는데 이용될 수 있는 비지니스 로직을 포함할 수 있다. 비지니스 로직은 또한 루트 선택, 루트 판단, 루트 우선선위 등에 이용될 수 있다. 비니지스 로직은 또한 의사결정지원에 이용될 수 있다. 몇몇 실시예에서, 비니지스 로직은 특별한 금융보안 등을 위해 거액의 유동성을 포함한 주문대장을 갖는 현장들을 우선순위화하도록 구성된 룰과 같이 다양한 비지니스 룰들에 기반한 주문들을 우선순위화 하는데 이용될 수 있다.
몇몇 실시예에서, 비지니스 로직은 의사결정 트리 등을 가로지르는 능력과 같이 지능형 의사결정지원 능력을 포함할 수 있다.
몇몇 실시예에서, 시스템은 (모니터되는 네트워크 및 주문 성과를 기초로) 다른 현장에 대한 정보에 액세스하거나, 정보를 수신하거나 결정할 수 있다. 몇몇 실시예에서, 이 정보는 현장(들)의 메시지 핸들링 능력의 평가를 포함할 수 있다. 본 명세서에 예시된 바와 같이, 주문이 현장 대기(venue queue)되지 않거나 현장(들)의 처리 능력에 과부하가 걸리면, 그로 인해 발생한 처리 지연이 타이밍 파라미터의 효율성에 영향을 줄 수 있고 잠복 차익거래(latency arbitrage)를 제한하는데 시스템이 갖는 컨트롤을 저하시킬 수 있다. 따라서, 몇몇 예에서, 시스템은 현장 대기 또는 과부하를 방지하기 위해 타이밍 파라미터를 이용하도록 구성될 수 있다.
몇몇 예에서, 현장 정보는 현장들의 물리적 위치, 현장들 간에 거리(광케이블 거리 또는 전송시간), 알려지거나 한 동일장소에 있는 약탈적 트레이더의 존재, 동일장소에 있는 트레이더의 효율성 또는 속도 등을 포함할 수 있다. 몇몇 예에서, 이들 요인들 중 하나 이상이 타이밍 파라미터를 결정하는데 사용될 수 있다. 예컨대, 주문 쇄도가 알고 있는 유효한 동일장소의 트레이더가 함께 한 현장을 포함하면, 더 낮은 타이밍 허용오차/차등을 기반으로 타이밍 파라미터는 결정될 수 있다. 몇몇 예에서, 트레이드가 타이밍 순서대로 보내져 도착 또는 실행이 동시에 되면 가장 큰 타이밍 허용오차로 트레이드를 라우팅하는 것이 일어날 것이다. 몇몇 예에서, 도착/실행이 동시에 되는 것은 마켓을 바꾸는데 최적일 수 없으므로, 프로세스(들)는 다른 트레이드-오프를 고려하도록 구성될 수 있다.
시스템은 금융증권에 있어 제3자가 거래 및/또는 트레이드의 이행에 영향을 줄 가능성을 고려하도록 구성될 수 있다. 예컨대, 극초단타 트레이더는 제 1 현장에서 제 1 주문에 대한 정보를 이용해 제 2 주문이 제 2 현장에 일어날 것이라 판단할 수 있다. 극초단타 트레이더는 그런 후 제 2 주문이 도착하기 전에 기회추구 트레이드를 하여, 제 2 주문에 가용한 가격 및/또는 수량에 영향을 어쩌면 줄 수 있다. 그 결과, 제 2 주문이 이행될 수 없거나 더 낮은 수량으로 이행될 수 있어, 트레이드 캡쳐와 필 레이트에 영향을 끼친다. 두번째 예로서, 극초단타 트레이더는 제 1 현장에서 제 1 주문에 대한 정보를 이용해 제 2 현장에서 주문을 취소하고 제 1 주문을 넣은 엔티티에 의한 제 2 주문의 도착을 예상하며 상기 주문을 더 높은 가격의 주문로 대체할 수 있다. 세번째 예로서, 극초단타 트레이더는 제 1 현장에서 제 1 주문에 대한 정보를 이용해 하나 이상의 현장에서 이용가능한 주문 정보보다 더 최신일 수 있는 (가령, NBBO(National Best Bid and Offer)와 같은) 주문 정보를 판단할 수 있다. 그런 후 극초단타 트레이더는 이 정보를 이용해 가격 및/또는 수량이 주문의 거래 상대방에 차선일 수 있는 거래를 실행하도록 하는 기회추구 주문을 넣을 수 있다. 예컨대, 가격을 잘못 매긴 주문이 주문장부 등에 남겨 진다.
시스템은 트레이딩 네트워크의 다양한 구성요소들에서 실행될 수 있다. 예컨대, 시스템은 중개인 전자시스템의 일부, 네트워크의 일부; 중개 게이트웨이 및 메시지 전달 서비스; 현장 전자시스템의 일부 등으로서 실행될 수 있다.
예컨대, 시스템이 중개 게이트웨이 및 메시지 전달 서비스로서 실행되면, 시스템은 하나 이상의 중개인들로부터 복수의 주문들을 수신하도록 구성될 수 있고, 상기 복수의 주문들은 하나 이상의 현장들에 하나 이상의 주문 쇄도들과 관련될 수 있다. 그런 후 중개 게이트웨이 및 메시지 전달 서비스는 하나 이상의 현장들에 주문 및/또는 서브주문의 라우팅, 클러스터링 및/또는 세그멘테이션을 통합할 수 있다. 예컨대, 중개인은 주문을 '양도(give-up)'하고 상기 중개인을 대신해 주문을 할 수 있다.
몇몇 예에서, 시스템은 중개인 수준에서 실행된다. 예컨대, 중개인은 클라이언트의 주문을 보내기 위해 시스템을 이용할 수 있다. 몇몇 실시예에서, 시스템은 클라이언트 수준에서 실행된다. 예컨대, 클라이언트는 자신의 주문을 보내기 위해 시스템을 이용할 수 있다.
시스템은 매우 많은 주문을 라우팅하도록 구성될 수 있고, 주문량을 기반으로 스케일링 하도록 설계될 수 있다. 따라서, 시스템은 다양한 적절한 기술들을 이용해 구현될 수 있다. 몇몇 실시예에서, 시스템은 소프트웨어 기반의 솔루션이다. 몇몇 실시예에서, 시스템은 어플라이언스 기반의 솔루션이다. 몇몇 실시예에서, 시스템은 소프트웨어와 어플라이언스 기반의 솔루션 모두의 조합이다. 시스템은 다수의 중개인들로부터 대량의 쇄도를 동시에 처리할 수 있는 게 필요할 수 있기 때문에 확장성이 중요할 수 있다.
몇몇 실시예에서, 시스템은 분산 네트워크 기술, 가령, 클라우드 컴퓨팅 기술을 이용해 구현된다. 분산 네트워크 기술을 이용한 있을 수 있는 이점은 주문 라우팅 양을 기반으로 시스템의 다양한 인스턴스들을 지원하기 위한 자원제공능력을 포함한다. 페일오버 시스템, 매니지드 백업, 핫/콜드 백업 방식과 같은 복원 및/또는 고가용성 기술들도 또한 서비스 및/또는 업타임(uptime)의 일관된 수준을 달성하는데 이용될 수 있다. 예컨대, 서로 간에 정보를 공유하도록 구성될 수 있는 시스템의 다양한 인스턴스들이 있을 수 있어, 고장날 경우 클라이언트들과 현장에 손실없이 세션을 복구하게 할 수 있다.
시스템의 몇몇 실시예들은 트레이드 캡쳐비율 증가, 주문충족비율 증가, 제3자에 정보 노출 감소, '시장이동' 위험 감소, (가령, 주문 유동성과 정보 누출 위험 간에 더 최적의 트레이드-오프를 달성해) 향상된 의사결정하기, 다양한 소스들로부터 타이밍 정보를 이용하는 능력, 적응적 및/또는 확률적 레이턴시 모델을 이용하는 능력, 네트워크내 또는 네트워크 장비 상에 장애를 신속하고 효과적으로 판단하는 능력 등과 같이 다양한 이점들을 제공할 수 있다.
시스템이 중간 게이트웨이 및 메시지 전달 서비스로서 구현되는 경우, 현장 수준 및/또는 중개인 수준에서 요구된 통합이 전혀 없거나 감소되기 때문에 발생가능한 이점이 있을 수 있고, 중개인은 상기 시스템을 이용해 기반구조에 투자할 필요성을 줄일 수 있으며, 중개인, 금융기관, 클라이언트, 및/또는 현장에 무관하게 시스템을 운영할 능력이 있-을 수 있다. 몇몇 실시예에서, 기존 기반구조, 메시징 프로토콜, 네트워크 등은 시스템과 결부해 이용될 수 있다. 통합 및/또는 적용을 위한 필요성 감소뿐만 아니라 기존 표준 및/또는 프로토콜과의 연동 용이성은 규제 요건, 복원 요건, 보안 요건, 및 시스템 변경에 드는 발생가능한 비용 및/또는 복잡성을 고려해 상업적으로 가치있을 수 있다. 기존 외부 시스템 및/또는 프로토콜과 연동 능력으로 채택 및/또는 브로커 플로우가 늘어날 수 있다.
다수의 현장들로 요청을 보내기 위한 타이밍 파라미터들을 판단하는 것 이외에 또는 대안으로, 시스템의 태양(들)은 다수의 요청들(즉, 웨이브나 다른 것으로)을 동일 현장에 보내기 위해 타이밍 파라미터들을 결정하도록 구성될 수 있다.
주식, 채권, 통화(가령, 외환)와 같은 유무형 금융재산들, 다양한 형태의 천연자운 또는 상품, 옵션, 대출 등에 있어, 트레이드 및 트레이드의 청약, 또는 기타 거래를 표현한 데이터의 프로세스 요청을 처리하기 위해 적용된 금융시스템(1000)에 의해 본 발명에 따른 세그먼트화 처리 요청의 분산 실행을 위한 시스템(100)의 애플리케이션의 일예가 제공된다. 도 1a 및 1b에 도시된 바와 같이, 가령, 본 발명에 따른 금융거래 데이터 프로세스시스템(1000)에서, 신호 또는 데이터 소스(들)(102)은 가령 트레이더/중개인 시스템 또는 서버뿐만 아니라 공지의 금융 트레이딩 플랫폼에 의해 현재 제공되는 바와 같은 금융재산에 있어 입찰, 청약, 또는 기타 거래에 대한 임의의 다른 소스들을 포함할 수 있는 트레이더 시스템(들)(1102)을 포함할 수 있다. 다양한 실시예에서, 이런 트레이더 시스템(1102)을 주문개시 시스템이라 한다.
주문개시 시스템(1102, 102a)은 가령 모기관 또는 은행이나 중개업자와 같은 기타 통제기관들이 소유하거나 그렇지 않으면 통제하는 엔티티에 의해 또는 엔티티를 대신해 운영되는 시스템들을 포함할 수 있다. 주문개시 시스템(1102, 102b)은, 가령, 개별 통제 은행, 기관 투자자 및/또는 기타 중개업자를 통해 또는 이들의 도움으로 거래하는 개개의 투자자들을 대신해 활동하는 중개인 또는 기타 트레이딩 엔티티에 의해 또는 이들을 대신해 운영되는 시스템들을 포함할 수 있다.
이런 실시예에서 라우터 프로세서(들)(104)는 가령 금융재산들에 있어 거래의 실행 및/또는 통보를 나타내는 데이터의 프로세스를 위한 요청을 나타내는 인코딩 전자신호의 송수신을 통해 트레이더 시스템(1102,102)과 통신하고; 이런 거래들의 실행을 위해 중개인, 거래소 또는 기타 마켓 시스템 또는 실행 프로세서(들)(1106)와 통신하는 서버(들) 또는 기타 시스템(들)(1104)을 포함할 수 있다. 이런 실시예에서, 프로세서(104)를 Smart Order Router 또는 Tactical Hybrid Order Router (어느 한 경우든, "SOR")(1104, 104)이라 한다. SOR(1104)은 직접적으로는(가령, 하나 이상의 전용 통신채널(들)을 이용한 유선 통신을 통해, 또는 신호서버내 통신을 통해) 및/또는 간접적으로는(무선통신을 통해, 네트워크(108, 1108)를 통해, 또는 중개서버를 통해) 하나 이상의 트레이더 시스템들(1102, 102)과 라우터(들)(1124)에 의한 직접적 통신을 촉진하기 위해, 가령, 하나 이상의 게이트웨이(들)(1122) 및/또는 라우터(들)(1124)를 포함할 수 있다. 거래소 또는 마켓 시스템(1106) 또는 기타 실행 프로세서(들)(106)은 가령 네트워크(1108)와 같을 수 있는 인터넷 또는 기타 공공망과 같은 네트워크(110, 1110)을 통해 SOR(들)(1104)과 통신할 수 있다.
금융 트레이딩 또는 주문실행 시스템(1000)으로 구성된 시스템(100)의 실시예에 대해, 소스(들)(102)에 의해 제공된 요청되고 실행된 신호처리들은 금융재산에서 트레이드 또는 기타 거래를 나타낼 수 있다. 이런 거래는, 가령, 주식, 채권, 통화(가령, 외환)과 같은 금융재산, 다양한 형태의 천연자원 또는 상품, 옵션, 대출 등에 있어, 트레이드 및/또는 트레이드 청약, 또는 기타 거래를 포함할 수 있고; 네트워크 컴퓨팅 자원(106)은, 가령, 익스체인지 서버(1106)를 포함할 수 있고, 익스체인지 서버의 예는 자동 또는 전자 마켓 시스템들을 포함할 수 있다.
관련 해당기술의 당업자가 잘 이해하는 바와 같이, 이와 같은 거래 요청신호 세트를 수신한 SOR (서브) 시스템 또는 프로세서(1104)는 광범위하게 다양한 프로세스들을 요청(들)에 적용할 수 있다. 예컨대, 신호세트가 금융재산의 거래를 위한 요청을 나타내면, 요청된 거래는 시간에 걸쳐 및/또는 다수의 거래 요청 소스들(1102)을 가로질러 통합될 수 있고/있거나, 하나 이상의 금융재산들의 거래를 위한 요청 처리는 개별적으로 또는 묶음으로 다수의 실행 핸들러 또는 프로세서들(1106)로 보내기 위해 분할될 수 있다.
금융재산의 거래를 위한 요청을 나타내는 신호세트는 클라이언트 중개인들로부터 수신된 바로 가령 FIX 세션일 수 있다. 예로서, 받아들여질 수 있는 2개의 주문 타입 또는 주문 명령들은 IOC(Immediate or Cancel) 주문 및 직접 단일주문을 포함한다.
IOC 주문과 관련해, 중개인은 상기 중개인이 단타 쇄도로서 보내고자 의도한 주문들을 나타내는 한 세트의 신호들을 한 세트의 거래소들에 보낼 수 있다. 주문들이 항상 IOC이면, 연이은 취소 또는 대체를 다룰 필요가 전혀 없있기 때문에 다른 많은 기능들이 간단해진다. 따라서, IOC 쇄도는 유사성을 유지할 필요가 없고 자유로와 이용가능한 거래세션들을 이용해 혼잡을 가장 잘 관리할 수 있다.
직접 단타 주문과 관련해, 중개인 클라이언트는 네트워크 연결성 및 거래세션을 이용해 직접 주문을 거래소로 보내도록 시스템을 이용할 수 있다. 이 서비스는 거래소에 1차 주문 게이트웨이로서 또는 (개별 거래소들에 백업 연결을 위한 필요성을 줄이며) 백업 서비스로서 중개인에 의해 사용될 수 있다.
몇몇 예에서, 당일유효주문, 취소전 유효주문과 같은 기타 주문 타입들, 또는 임의의 다른 주문 타입이 이용될 수 있으나 주문 유사성 및 결과를 유지하기 위한 추가 트래킹을 필요로 할 수 있고, 다른 현장들을 오가는 다수의 메시지들(가령, 주문 및 통보를 교체/변경/취소)을 송수신하는 것을 포함할 수 있다.
몇몇 실시예에서, 직접 주문이나 즉시집행 또는 취소주문을 이용함으로써 몇몇 경우 SOR 시스템이 주문 메시징 부하 및/또는 처리를 줄이고/줄이거나 메시징 스루풋을 높일 수 있는 더 효율적인 메시징 처리를 이용하게 될 수 있다.
본 명세서에 기술된 바와 같이, 다양한 실시예에서, 주문 소스(들)(102, 1102)는 주문 라우터(들)(104, 1104)와 함께 또는 일부로서 실행될 수 있다. 가령 프로세서(들)(102, 104, 106) 중 어느 하나 또는 모두를 포함한 시스템(들)(100, 1000)의 다양한 구성부품들 중 어느 하나 또는 모두, 및 본 명세서에서의 개시에 따라 이들을 동작하는 방법들은 본 명세서에 개시된 목적으로 구성된 임의의 디바이스, 소프트웨어 및/또는 펌웨어를 이용해 실행될 수 있음이 당업자는 쉽게 알 것이다. 단독으로 및/또는 다양한 조합으로 이용될 경우 이런 시스템, 디바이스, 및 방법을 구현하기 위해 적절할 수 있는 광범위하게 다양한 부품들, 하드웨어 및 소프트웨어 모두 뿐만 아니라 펌웨어는 현재 잘 알려져 있다; 의심할여지 없이 다른 것들도 향후 개발될 것이다.
시스템(100, 1000)의 예들을 구현하는데 사용하기 적절한 부품들 및 가령 도 2의 프로세서(200) 및 도 4의 프로세서(300)를 포함해 본 명세서에 개시된 다양한 프로세서들의 예들은 가령 IBM x3850 M2™, HP ProLiant DL380 G5™ HP ProLiant DL585™, 및 HP ProLiant DL585 G1™과 같은 서버급 시스템을 포함한다. 몇몇 실시예에서 데스크탑, 랩탑, 또는 팜 모델 시스템을 포함한 폭넓게 다양한 기타 프로세서들이 이용된다.
가령 시스템(1000)의 SOR(1104)와 같은 라우터 프로세서(들)(104)에 의한 구현에 적합한 거래요청 신호 소스(102, 1102)에 의해 발생된 거래요청 신호세트의 처리를 위한 방법(200)의 일예가 도 2에 도시되어 있다.
도 2의 프로세서(200)는 가령 하나 이상의 금융자산들의 거래와 같이 데이터의 프로세스를 위한 요청을 나타내는 신호를 프로세서(들)(104, 1104)이 수신함에 따라 202에서 개시하도록 간주될 수 있다. 거래 신호 소스(들)(1102)로부터 수신된 금융자산들의 트레이드 및/또는 기타 거래의 실행을 위한 요청을 나타내는 신호들을 처리하도록 적용된 SOR 라우팅 프로세서(들)(1104)을 포함한 시스템(100, 1000)의 실시예에서, 하나 이상의 금융재산들의 거래 실행을 위한 요청을 나타내는 신호세트는, 가령:
· 트레이딩 시스템(102, 1102)에 의해 사용되거나 그렇지 않으면 이와 관련된 URL 또는 기타 네트워크 어드레스 또는 식별자와 같은 요청의 소스(들);
· 주식, 채권에 대한 CUSIP 번호, 피거래 통화 세트 등을 식별하기 위해 하나 이상의 거래소들에 사용되는 식별자와 같이 트레이드되거나 그렇지 않으면 거래되는 재산(들);
· 실행되거나 요청되는 거래 타입(가령, 매매, 매도, 입찰, 청약 등);
· (가령 임의의 총량 및/또는 보유량을 포함해) 거래되는 재산(들)의 하나 이상의 양들(즉, 금액 또는 분량); 및
· 해당 가격조건을 나타내는 하나 이상의 식별자를 표현한 신호 또는 신호세트를 포함할 수 있다:
다른 파라미터들은 가령 현재 및/또는 과거의:
· 멀티-파트, 또는 세그먼트화된 거래요청에 대한 주문충족 확률(즉, 거래를 마친 멀티-파트 주문들의 과거 비율);
· 가령, 스프레드에 있어 현재 및/또는 과거와 관련한, 입찰 및 청약 가격 간에 스프레드 금액;
· 트레이드되는 특정 재산들의 시장변동성 또는 관련되거나 해당하는 재산(들), 또는 관련된 벤치마크 또는 지수;
· 시장 장부(들)의 심도, 가령 심도에 있어 과거 경향에 대한 현재 심도;
· 보유량;
· 주문 우선순위;
· 정보 누출에 대한 관용;
· (가령, 관련된 타이밍 파라미터들에 대한 최대 크기를 제한할 수 있는) 최대 레이턴시 주기;
· 소정의 라우팅 경로;
· 소정의 베뉴(venue);
· 특정 라우팅 명령어;
· 디스플레이 양; 및
· 가령 매매측 및/또는 매도측에 대한 디스플레이 크기 및 백킹(backing)을 포함할 수 있다.
이들 파라미터들 중 일부 또는 전부는 하나 이상의 네트워크 컴퓨팅 자원들과 관련된 상술한 데이터로서 수집되거나 상술한 데이터에 기초할 수 있다.
다른 실시예로, 이런 신호세트는 이미지, 텍스트, 또는 기타 컨텐츠를 나타내거나 하나 이상의 실행 프로세서들(104, 1104)에 의해 처리되는 컨텐츠 및/또는 식별자들, 및 및 특정 실행요청들을 포함할 수 있다.
들어오는 클라이언트/중개인 주문이 주문 쇄도의 일부인 것으로 식별되는게 필요한 경우, 몇몇 예에서, 프로세서(들)은 FIX 메시지 반복 그룹을 수신하도록 구성될 수 있고, 개개의 주문들은 상기 주문이 M개의 총 주문들 중 N번째 쇄도 주문인 것을 나타내는 태그를 가질 수 있다.
대안으로, 주문은 최초 및 마지막 쇄도 주문인 것으로 마크될 수 있다. 몇몇 실시예에서, 최초 주문과 동일한 현장 세션에서 교체 및 취소가 정확히 처리되도록 유사성이 보존될 필요가 있을 수 있다.
본 발명의 다양한 실시예들에 적합한 많은 타입의 마켓 시스템들(1106) 가운데 '다크' 거래소 또는 '다크 풀'으로 알려진 타입의 ATS(Alternative trading systems)가 있다. 일반적으로, 이런 거래소들은 트레이딩 퍼블릭 회원들에게 마켓 오퍼링을 공개적으로 드러내지 않는다. 공지의 또는 예상된 보유량의 사용이 이런 실시예에서 특히 유용할 수 있다.
따라서, 언급된 조건들로 소정의 재산 거래를 요청하기 위해 소스(102, 1102)에 의해 제공되는 데이터 레코드의 일예는:
<source (102, 1102) of request><type of transaction><interest identifier><quantity(ies)><price term(s)>
를 포함할 수 있다.
202에서 프로세서(104, 1104)에 의해 수신된 신호세트는 기록보존 및/또는 다른 처리를 위해, 적절하게, 임의의 휘발성 및/또는 영구메모리(들)에 저장될 수 있다.
204에서, 202에서 수신된 거래 또는 기타 데이터 프로세스실행요청은 라우터 프로세서(들)(104,1104)에 의해 파싱되어 실행 프로세서(들)(106,1106)에 제공될 하나 이상의 명령어 신호세트들을 준비하는데 사용하기 위한 임의의 적절한 또는 소정의 형태로 제출될 수 있다. 명령어 신호들의 파싱은, 가령, 특정 재산(들)의 트레이드를 위한 주문 및 입찰의 양 및/또는 총량을 포함해 요청되는 거래(들) 또는 프로세스(들) 타입, 및 이런 총량들이 매매 또는 매도되거나, 매도 또는 구매를 위해 청약되는지; 행해질 문서 처리 타입 및/또는 양; 및 실행하도록 요청되고 이로써 이와 같은 실행 또는 처리 명령어들과 관련되는 네트워크 컴퓨팅 자원(들) 또는 실행 프로세서(들)(106)의 타입 및 성향을 식별하는 것을 포함할 수 있다. 다양한 실시예에서, 파싱된 명령어 세트는 다른 처리 요청들과 통합, 여러 실행 프로세서들/자원들(106,1106)에 라우팅하기 위한 분할, 및/또는 배치 또는 기타 지연실행 요청들의 준비 및 포워딩하기 위해 해당 프로세서(들)(104,1104)에 의해 액세스될 수 있는 임시 또는 휘발성 메모리(들)(118, 1108)에 저장될 수 있다.
하나 이상의 명령어 신호세트들을 준비하는데 있어, 다운스트림 능력, 큐잉 및 네트워크의 혼잡, 익스체인지 게이트웨이, 및 익세치인지 크로싱 엔진 큐를 다루도록 구성될 수 있는 주문 스케줄링 모듈이 이용될 수 있다.
모듈은 각 거래세션이 다룰 수 있는 최대 메시지/주문 흐름율을 기대하고, 그런 후 상기 비율을 초과하거나 근접하는 것을 선제적으로 방지하도록 구성될 수 있다. 쇄도시 초기 주문들을 계산하거나, 연이은 쇄도로 혼잡 또는 대기될 수 있을 경우, SOR 라우터 프로세서(들)(1104)은 쇄도시 초기 주문들 발송을 지연 또는 재순서화도록 구성될 수 있다.
모듈은 이들이 고정적이거나, 일관되거나, 예상가능하지 않을 수 있기 때문에 다운스트림 혼잡 및 큐잉 지연을 동적으로 판단하기 위해 (ACK 왕복 레이턴시 모니터링을 기초로) 피드백 메커니즘으로 구성될 수 있다.
이런 능력을 다루기 위해, SOR 라우터 프로세서(들)(1104)는 다수의 거래주문 세션을 이용한 거래들에 액세스하도록 구성될 수 있고 또한 주문세션을 가로질러 흐름을 부하조절하도록 구성될 수 있다.
몇몇 실시예에서, 명령어 세트는 단일 메시지내 다수의 구성요소들로 저장된 주문정보의 그룹을 갖는 반복 그룹들과 같이 내장형 메카니즘을 갖는 FIX 메시지로 구성될 수 있다. 이들 메시지는, 가령, 다른 현장에서 동일한 주식의 주문들을 나타내거나 38개 주식 세트를 구매하고 싶어하는 포트폴리오를 나타내기 위해 바스켓의 쇄도를 전달하는데 종종사용될 수 있고, 동일한 주식 주문의 다수 인스턴스들은 타이밍을 이용한 스케줄링을 판단하는 SOR 라우터 프로세서(들)과 하나로 전달되는 양을 달리해 다수의 거래소들로 전송될 수 있다.
202에서 수신된 명령어들은 거래일 또는 임의의 세그먼트의 기간과 같이 정의된 시간 간격 또는 임의의 다른 소정의 시간 주기(들) 동안, 규칙적 또는 불규칙적으로 누적될 수 있으며, 상기 시간 주기들은 프로세서(들)(104,1104)에 의해 사전 결정 및/또는 동적으로 결정될 수 있다. 명령어들은 또한 수신에 따라 개별적으로 처리될 수 있다. 더 많은 명령어들이 처리 전에 수신되어야할 경우, 혹은 잠재적으로 수신될 수 있을 경우, 프로세스(200)는 202로 복귀할 수 있다.
거래 요청/명령어는 프로세서(들)(104,1104)에 의해 사전설정 및/또는 동적으로 결정될 수 있는 평일 또는 임의의 세그먼트의 기간 또는 소정 시간 주기와 같은 정의된 시간 기간 동안 누적될 수 있다. 수신될 명령어들이 더 많은 경우, 혹은 잠재적으로 수신될 수 있으면, 프로세스(200)는 202로 복귀될 수 있다.
주문 또는 기타 처리요청들을 분석하거나 아니면 준비하는 데 있어 분류/규합 기술을 이용하는 본 발명의 실시예에서, 206에서 프로세서들(104,1104)은 모든 요구된 또는 소정의 관련되거나 규합될 수 있는 처리요청 신호 세트들이 소스(들)(102,1102)로부터 수신될 때까지 프로세스(202-204)를 반복할 수 있다. 예를 들어, 상술한 바와 같이, CUSIP(Committee on Uniform Security Identification Procedures) 번호에 의해 식별될 수 있는 채권 구매를 위한 주문 또는 요청을 나타내는 임의의 개수의 데이터 기록들이 데이터 소스(들)(102,1102)로부터 수신될 수 있고, 배치 처리를 위해 프로세서(들)(104,1104)과 연결된 메모리(118,1018)에 저장될 수 있으며, 예를 들어:
<source 1><sell><CUSIP No. AA><10,000><price A><res. 9,000><price D>
<source 2><buy><CUSIP No. BB><12,000><price C><res. 1,000><price B>
<source 3><sell><CUSIP No. BB><11,000><price A><res. 8,000><price D>
<source 6><sell><CUSIP No. AA><14,000><price A><res. 2,000><price E>
<source 4><buy><CUSIP No. AA><18,000><price C><res. 7,000><price B>
<source 1><sell><CUSIP No. BB><20,000><price A><res. 3,000><price D>
<source 3><sell><CUSIP No. AA><13,000><price A><res. 6,000><price D>
<source 4><buy><CUSIP No. BB><22,000><price C><res. 4,000><price B>
<source 5><sell><CUSIP No. AA><21,000><price A><res. 5,000><price E>
<source 4><buy><CUSIP No. BB><15,000><price C><res. 7,000><price F>
<source 1><sell><CUSIP No. AA><19,000><price A><res. 3,000><price D>
<source 5><buy><CUSIP No. BB><16,000><price C><res. 8,000><price F>
<source 6><sell><CUSIP No. BB><17,000><price A><res. 6,000><price H>
다른 예시적인 시나리오에서, 프로세서(들)는 데이터 소스(들)(102, 1102)로부터 개별적인 대량 실행 명령들을 수신할 수 있다. 예를 들어:
<source 1><buy><CUSIP No. AAA><100,000><price A>
다른 예시적인 시나리오에서, 도 1c에서의 예시에 의해 도시된 바와 같이, 프로세서(들)는 웨이브에서 주문 실행 명령어를 수신할 수 있다. 도 1c의 예시적인 명령어들에서 도시된 바와 같이, 일부 실시예에서, 인커밍 실행 명령어들은 또한 목표로 하는 네트워크화된 리소스 또는 베뉴를 식별하기 위한 특정 베뉴 필드들을 포함할 수 있다.
개별 수신시, 또는 주어진 주기 비율로, 소정의 주문 개수가 수신되었을 때, 모든 소정의 주문들이 수신되었을 때, 또는 임의의 다른 소정의 기준이 만족되었을 때의 주어진 시간에서 프로세서들(104,1104)은, 예를 들어, 거래 요청 및 관계 식별자의 타입에 의해 204에서 명령어를 분석 또는 아니면 처리의 일부로서 임의의 하나 이상의 소정의 기준에 따라 저장된 기록들을 분류 및/또는 그룹화할 수 있다. 예를 들어, 상기 제 1 예시적인 시나리오에서:
<buy><CUSIP No. AA><18,000><price C><res. 7,000><price G><source 4>
<sell><CUSIP No. AA><10,000><price A><res. 9,000><price D><source 1>
<sell><CUSIP No. AA><14,000><price A><res. 2,000><price E><source 6>
<sell><CUSIP No. AA><13,000><price A><res. 6,000><price D><source 3>
<sell><CUSIP No. AA><21,000><price A><res. 5,000><price E><source 5>
<sell><CUSIP No. AA><19,000><price A><res. 3,000><price D><source 1>
<buy><CUSIP No. BB><15,000><price C><res. 7,000><price F><source 4>
<buy><CUSIP No. BB><22,000><price C><res. 4,000><price B><source 4>
<buy><CUSIP No. BB><12,000><price C><res. 1,000><price B><source 2>
<buy><CUSIP No. BB><16,000><price C><res. 8,000><price F><source 5>
<sell><CUSIP No. BB><20,000><price A><res. 3,000><price D><source 1>
<sell><CUSIP No. BB><11,000><price A><res. 8,000><price D><source 3>
<sell><CUSIP No. BB><17,000><price A><res. 6,000><price H><source 6>
도시된 바와 같이, 거래 요청 기록시 다양한 데이터 필드들이 라우팅 프로세서(들)(104,1104)의 처리 요구에 맞추기 위해 필요에 따라 또는 요구에 따라 기록되거나 아니면 다시 포맷될 수 있다. 예를 들어, 도시된 바와 같이, "소스" 데이터 항의 결합은 프로세서(들)(104,1104)가 주문 처리의 완료시 거래/요청의 달성을 알리게 하면서 효율적 주문을 용이하게 하기 위해 다른 우선순위와 결합되거나 아니면 따르게 된다.
프로세서(204)는 예를 들어, 해당 거래 요청들과 관련된 총계 또는 소계 수량을 합함으로써 수신 및 저장된 거래 요청의 프로세서(들)(104,1104)에 의해 특정 관계(들)에서 특정 타입의 거래를 위해 수집되거나 통합된 주문(들)로의 규합을 포함할 수 있고, 따라서:
<buy><CUSIP No. AA><18,000><price C><res. 7,000><price G>
<sell><CUSIP No. AA><77,000><price A><res. 18,000><price D>
<res. 7,000><price E>
<buy><CUSIP No. BB><65,000><price C><res. 15,000><price E>
<res. 5,000><price B>
<sell><CUSIP No. BB><48,000><price A><res. 11,000><price D>
<res. 6,000><price H>
또한, 도 9는 주문 라우터/시스템(104, 1104)에 대한 예시적인 프로세스 및 데이터 흐름의 프로세스 및 데이터 흐름도를 도시한다. 일부 실시예에서, 주문 라우터/시스템(104, 1104)은 클라이언트 메시지 처리 모듈(2105)을 포함할 수 있으며, 이에 의해 프로세서(들)(104, 1104) 및/또는 다른 하드웨어 구성요소는 클라이언트 메시지의 웨이브를 수신하도록 구성될 수 있다. 일부 실시예에서, 클라이언트 주문 명령어는 다수의 메시지의 웨이브로 수신될 수 있다. 일부 이러한 예들에서, 클라이언트 메시지 처리 모듈은 특정 웨이브에 속하는 모든 주문 메시지가 수신될 때까지 버퍼 또는 다른 주문 웨이브 스테이징 메모리/저장 장치(2110)에서 주문 메시지를 스테이징하도록 구성될 수 있다.
일 실시예에서, 지불 요청 상세 사항을 포함하는 다른 필드들 이외에, 기술된 용어로, 주어진 상품의 지불을 요청하기 위해 소스(102, 1102)에 의해 제공될 데이터 레코드는 다음을 포함할 수 있다:
<WaveID><Total number of orders in wave><Index of current order>
<Timing Mode for Wave><Timing offset for manual timing mode><security key(s)>
다른 실시예에서, 웨이브 내의 총 주문 수를 나타내는 데이터 필드를 포함하는 대신에, 데이터 레코드는 현재 주문 메시지가 웨이브의 마지막 메시지임을 나타내는 <wave complete> 플래그를 포함할 수 있다.
일부 실시예에서, 인커밍 주문 메시지는 FIX(Financial Information eXchange) 형식 또는 임의의 다른 표준 또는 독점적 형식/프로토콜일 수 있다.
도 9의 실시예에서 도시된 바와 같이, 일단 개별 주문들 또는 완전한 웨이브들이 수신되면, 이들은 웨이브 타이밍 핸들러(2115)에 의해 처리될 준비가 될 때까지 하나 이상의 버퍼 또는 다른 메모리/저장 장치에 저장될 수 있다. 도 9의 예시적인 시스템에서, 완전한 주문 요청들(개별 주문들 및 완전한 웨이브 주문들을 포함)은 다수의 레벨(level) 또는 대기열(queue)에 저장될 수 있다. 예를 들어, 주문 요청들은 웨이브 대기열로 이동하도록 선택될 때까지 클라이언트 세션 대기열에 초기에 저장될 수 있다. 일부 실시예에서, 시스템은 단지 N개의 웨이브가 웨이브 대기열에 존재하도록 구성된다. 일부 예들에서, 이는 대용량 세션이 웨이브 대기열 및 라우팅 리소스를 지배하는 것을 방지할 수 있다. 일부 실시예에서, 시스템은 다른 세션 대기열이 할당을 모두 사용하지 않은 경우, 웨이브 대기열에 N개 초과의 웨이브가 허용되도록 구성될 수 있다.
다른 실시예에서, 완전한 주문 요청은 하나 이상의 웨이브 대기열에 직접 저장될 수 있다(즉, 임의의 중간 클라이언트 세션 대기열이 없음).
웨이브 타이밍 핸들러(2115)는 대기열(들)을 관리하고 대기열(들)의 어느 주문(들)이 다음 베뉴로 전송될지를 결정하도록 구성된 하나 이상의 하드웨어 장치(들) 및/또는 프로세서(들)(104, 1104)에 의해 구현될 수 있다.
일부 실시예에서, 수정된 선입, 선출(FIFO; first-in, first-out) 접근법이 웨이브 타이밍 핸들러에 의해 사용될 수 있다. 그러나, 엄격한 FIFO 보다는, 일부 실시예에서, 타이밍 핸들러는 주문(들)을 재배치, 체리-픽, 건너뛰기 또는 아니면 단순히 대기열을 가로지르는 것 이외의 순서로 주문(들)을 선택하도록 구성될 수 있다. 예를 들어, 일부 실시예에서, 대기열의 첫 번째 M개 웨이브 주문들이 처리되어 이들 M개 웨이브 주문들을 라우팅하기 위한 시퀀스를 결정할 수 있거나, 또는 후속 주문 또는 그렇지 않은 경우에 관계없이 단순히 M개 웨이브 주문들 중 어느 것이 다음에 라우팅될지를 결정할 수 있다.
일부 실시예에서, 웨이브 타이밍 핸들러는 웨이브 주문들을 라우팅하여 사용 가능한 주문 라우팅 처리량을 증가시키고, 모든 주문들을 라우팅하는데 필요한 기간을 줄이며, 및/또는 라우터(들)(104, 1104)의 임의의 다른 동작 양상을 최적화하기 위한 시퀀스를 결정하도록 구성될 수 있다.
본 발명에서 설명된 일부 실시예에서, 웨이브의 처리 순서는 베뉴 지연, 처리량, 시장 데이터(예를 들어, 유동성, 가격 결정 등) 등을 기반으로 할 수 있다.
모든 소정의 신호 세트들이 202에서 수신되고, 선택적으로, 204 및 208에서 분류, 누적 및/또는 아니면 처리되면, 204에서 처리된 명령어 세트를 이용한 프로세서(들)(104,1104)은 자원/실행 프로세서들(106,1106)로 전송을 위한 실행요청 신호 세트들을 준비할 수 있다. 이런 실행요청 신호 세트들은 컨텐츠 또는 데이터 및 명령 신호를 포함한 요청된 처리를 야기하기 위해 임의의 필요 또는 소정의 신호들을 포함할 수 있다. 예를 들어, 투자관계자에서 거래를 위한 요청의 처리를 위해 적용된 실시예에서, 요청들은 거래되는 관계(들), 거래되는 관계(들)의 수량, 가격 등을 기초로 저장 및/또는 규합될 수 있고, 적절한 실행 명령 신호들과 관련될 수 있다. 주어진 요청과 관련된 임의의 실행 명령 신호의 형태는, 당업자가 인식하는 바와 같이, 피실행 특성 및 요청 타입 및 실행되는 프로세스들(106,1106), 또한 적용가능한 프로토콜 및 명령 포맷팅 요건을 포함한 프로세서(들)(104,1104 및 106,1106) 간에 교환된 신호들이 보내지는 임의의 네트워크들(110,1110)에 의존할 수 있다. 에르고(ergo), 시스템들(106, 1106, 104, 1104 및 110, 1110) 중 어느 하나 또는 모두에 속하는 데이터 및 이로써 이용된 프로토콜 및/또한 이로써 거래, 매도, 또는 기술된 이해관계자들에 관한 정보가 임의의 프로세서들 또는 자원들(106,1106) 중 어느 하나에 의한 처리의 실행을 위한 명령어를 분석하고 준비하는데 있어 프로세서(들)(104,1104)에 의해 접속 및 사용될 수 있다. 이런 데이터의 소스들(1126)은 예를 들어, 금융 거래의 처리를 위해 적용된 본 발명의 실시예에서, 다양한 거래소 시스템들(1106)로부터 수신된 정보, 블룸버그 또는 로이터와 같은 뉴스정보 소스들 및/또는 다른 소스들을 포함할 수 있는 가령 거래소 시장 데이터 시스템(1126v)(도 1b)을 포함할 수 있다.
금융 거래를 실행하는데 사용하기 위해 구성된 많은 자원들을 포함한 네트워크 처리 자원들을 이용한 데이터 처리를 위한 요청들을 어셈블리하는데 있어 실행 및/또는 다른 처리 요청들을 여러 부분들로 분해하는 것이 때로 필요하거나 바람직할 수 있다. 이런 부분들 또는 세그먼트들은 거래소 서버 또는 다른 실행 프로세서들 또는 핸들러들(1106)과 같은 복수의 네트워크 자원들(106)에 의해 실행될 예를 들어 대량 주문들의 일부분 또는 다른 데이터 처리 요청들에 해당할 수 있다. 가령, 복수의 거래소 서버들 또는 기타 시장들이 주식 또는 채권과 같은 상당한 양의 투자관계자를 위한 구매 주문을 나타내는 거래 요청의 실행을 위해 이용가능한 경우, 여러 시장들에서 및/또는 여러 거래소 서버들(1106)에 의한 실행을 위해 주문을 여러 부분들로 분할하는 것이 필요하거나 바람직할 수 있다. 가령, 단일 거래소에서는 모든 또는 소정의 가격들에 있어 충분한 양의 특정 관계들이 이용될 수 없다: 전체 주문을 체결하기 위해, 하나의 주문을 더 작은 세그먼트들로 나누고 이를 여러 거래소들에 보내는 것이 필요하거나 바람직할 수 있다.
따라서, 가령, 금융 증권에서 거래를 위한 요청의 처리를 위해 지향된 본 발명의 다양한 실시예에서, 하나 이상의 투자관계자들에서 거래를 마치기 위해 라우터(104,1104)가 하나 이상의 소스들(106,1106)에 의해 요청되면, 라우터(104,1104)는 거래를 위한 요청을 나타내는 신호 세트(들)을 준비하는데 있어 시장 데이터 소스(들)(1126)뿐만 아니라 임의의 하나 이상의 실행 프로세서(들)(106,1106)로부터 이용가능한 정보에 접속하여 각각의 프로세서(들)(106,1106)을 통해 이용가능한 이런 관계들 및 이런 양들이 이용가능한 조건의 양을 결정할 수 있고, 가장 바람직한 조건으로 이용가능한 양들의 개수를 바탕으로 각각의 소정의 프로세서(들)(106,1106)에 라우팅하도록 구성된 실행요청 신호세트를 구성할 수 있다.
예를 들어, 상기 제 1 실시예에 이어서, 완료된 주문(들)의 이행을 달성하기 위해 하나 이상의 인커밍(incoming) 처리 요청을 복수의 거래소들로 보내지는 더 작은 부분들로 나누는 것이 필요하거나 바람직할 수 있다. 이는 예를 들어 하나 이상의 거래소 서버들(1106)에 의해 제공된 현재 주문장을 나타내는 데이터에 접속하여 이에 따라 알고 있는 데이터 처리 기술을 이용해 상기 주문(들)을 나눔으로써 수행될 수 있다. 그러므로, 가령, 상기 규합된 'sell CUSIP No. AA' 주문은 부분 또는 세그먼트들로 나누어질 수 있고, 다양한 세그먼트들을 필요에 따라 복수의 거래소 서버들(A1-C3)로 라우팅하는데 사용하기에 적합한 이런 세그먼트 URLs 또는 다른 네트워크 자원 어드레스 식별자들을 나타내는 데이터와 결합될 수 있고, 따라서:
<exchange A1><sell><CUSIP No. AA><15,000><price A><res. 6,000><price D><res. 2,000><price E>
<exchange B2><sell><CUSIP No. AA><27,000><price A><res. 6,000><price D><res. 2,500><price E>
<exchange C3><sell><CUSIP No. AA><35,000><price A><res. 6,000><price D><res. 2,500><price E>
본 발명에 기재된 바와 같이, 일부 실시예에서, 실행요청을 준비(208)하는 단계는 복수의 상이한 베뉴들에 주문들을 보다 적은 또는 보다 많은 주문들로 결합 또는 분할하는 것을 포함할 수 있다. 일부 실시예에서, 실행요청을 준비(208)하는 단계는 원본, 분할 및/또는 결합된 주문들을 FIX 또는 각각의 목적지 베뉴들과 호환 가능한 다른 포맷(들)으로 포맷팅, 재배치 또는 준비하는 것을 포함할 수 있다.
일부 실시예에서, 실행/거래 요청을 준비할 때, SOR 라우팅 프로세서(들)(1104)는 주문이 라우팅되어야 하는 베뉴를 결정하도록 구성될 수 있다. 견적 크기, 비용 구조, 다양한 주문 유형의 지원, 리베이트 구조, 평균 실행 속도, 지연, 지연 변동, 과거 충전 속도(historical fill rate) 등과 같은 다양한 요인들이 SOR 라우팅 프로세서(들)(1104)에 의해 고려될 수 있다.
도 2의 예시적인 방법(200)은 개별 블록들로서 실행요청들의 준비(208) 및 실행요청들에 대한 타이밍의 결정(210)을 도시하지만, 일부 실시예들에서, 요청들에 대한 준비 및 타이밍의 결정은 반대 순서로, 동시에 실행될 수 있으며, 및/또는 동일한 프로세스의 일부일 수도 있다. 예를 들어, 본 명세서에 기재된 바와 같은 다양한 요인들 및 관찰/측정된 데이터가 실행요청을 준비하고 이러한 요청의 타이밍을 결정하는 데 사용될 수 있다.
당업자가 인식하는 바와 같이, 시장 또는 거래소 서버들(1106) 또는 기타 실행 프로세서들(106)과 같은 복수의 네트워크 자원들에 의해 여러 거래소에서 주문된 투자관계자들의 거래와 같은 분산 거래 또는 기타 여러 부분의 데이터 처리 요청의 개별 부분들의 실행은 일반적으로 다른 시간량을 필요로 한다. 즉, 소정의 거래 실행요청들의 여러 부분들이 동시에 복수의 거래소 실행 프로세서들(106,1106)에 보내지면, 거래 요청의 각 부분 또는 세그먼트는 시간상 다른 지점에서 실행할 것이 예상될 수 있다. 이는 왜냐하면 주문 라우터(들)(104,1104)에서 네트워크(110,1110) 또는 다른 통신 경로를 가로질러 다른 다양한 자원들 또는 실행 프로세서들(106,1106)로 실행요청 신호의 전송을 위해; 해당 프로세서들(106,1106)에 의한 실행요청의 해당 부분들의 실제 처리를 위해; 및/또는 확인 또는 기타 데이터를 주문 라우터(들)(104,1104)에 복원을 위해 요구되는 시간량 또는 '지연'은, 예컨대, 라우터(들)(104,1104) 및 실행 프로세서들(106,1106) 간의 네트워크 경로; 네트워크(들)(110,1110)에 의해 처리되는 네트워크 트래픽량; 개개의 실행 프로세서들(106,1106) 등에 의해 처리되는 요청 개수 등을 포함한 일반적으로 많은 요인들에 따라 변하기 때문이다.
많은 이유로, 이런 경우, 여러 부분의 실행요청 중 2 이상의 부분들의 실행을 동기화하는 것이 중요해질 수 있다. 일예로서, 실행요청이 여러 시장에서 또는 여러 거래소에서 금융 거래의 여러 부분들의 실행을 위한 요청을 나타낼 경우, 여러 해당 서버들에 의해 거래의 개개의 부분들의 비동기식의 엇갈린 실행은 조건들의 나중 부분들의 완료 가능성 및/또는 이런 나중 부분들이 완료될 수 있는 조건들 모두에 영향을 줄 수 있다.
실행요청을 동기화하는 바람직한 특별 예가 도 3을 참조로 예시될 수 있다. 도 3에 도시된 예에서, 시스템(100,1000)은 주문 라우터(104,1104)와 복수의 네트워크 실행 자원들(106), 거래소 서버들 또는 실행 프로세서들(1106) "Exchange 1", "Exchange 2", "Exchange 3"을 구비한다. 또한, 도 3의 시스템(100,1000)은 실행 자원(106) "Exchange 1"상에 매매 또는 다른 거래를 실행하도록 구성된 코로케이트 트레이딩 서버(co-located trading server)(304)를 더 구비한다. 도면에 나타낸 바와 같이, 상대적으로 저지연 트레이딩 알고리즘(low-latency trading algorithm)을 이용한 코로케이트 트레이딩 서버(304)는 Exchange 1과 유사한 거래를 마치기 위해 라우터(들)(104,1104)과 같은 다른 프로세서들에 필요한 시간량에 비해 상대적으로 짧은 시간 주기로 Exchange 1과 거래를 실행할 수 있는 식으로 Exchange 1과 연결된다. 예컨대, 코로케이트 트레이딩 서버(304)는 직접 유선 연결에 의해 Exchange 1 또는 다른 고속처리 시스템과 통신상 연결될 수 있다. 더욱이, Exchange 1은 Exchange 2 또는 Exchange 3에서 보다 상대적으로 짧은 시간 주기로(즉, "저지연"으로) 논코로케이트 프로세서(들)(104,1104)로 실행요청을 마칠 수 있다. 다시 말하면, 도 3에 도시된 바와 같이, 지연 Time X < Time Y 및 Time X < Time Z인 반면, 코로케이트 트레딩 서버(304)와 Exchange 1 간의 거래를 위한 실행 시간은 Time X, Time Y, 및 Time Z 중 어느 하나 보다 더 적다.
가령, 하나 이상의 투자관계자에서 거래에 요청을 나타내는 신호가 하나 이상의 요청 소스들(102,1102)로부터 라우터 프로세서(104,1140)에 의해 수신되고, 요청이 상기 요청을 반영한 주문이 너무 커 Exchange 1, 2, 또는 3 중 어느 하나에 의해 완전히 마치지 못한 이런 양 또는 크기이면, 주문 라우터(104,1104)는 Exchange 1, Exchange 2 및 Exchange 3 각각에 한 부분을 보내기 위해 다양한 이용가능한 프로세서들(106,1106)에 대한 이용가능성을 체크하고 이에 따라 주문을 분할하도록 시도할 수 있다. 도 3의 라우터(104,1104)가 요청된 거래의 실행을 위해 요청의 분할된 부분 또는 세그먼트를 실행 프로세서들(106,1106)(Exchange 1, Exchange 2 및 Exchange 3) 각각으로 동시에 전송하면, (가령 극초단타매매 엔티티(high-frequency trading entity) 또는 다른 투기적 투자가일 수 있는) 트레이딩 서버(304)는 이런 거래들(가령, 요청 프로세서(들)(104,1104)에 의해 제공된 주문들 이면의 것들)을 제안하는 것들이 추구될 수 있는 것보다 거래(들)를 유효하게 하는 상대방(예컨대, 서버(304)를 통해 동작하거나 작용하는 당사자)에 더 유리한 조건들에 대해, 예컨대 거래를 위한 요청시 언급된 조건들로 주문 라우터(104)에 의해 거래소로 보내진 거래 요청의 모두 또는 일부를 판매 또는 구매하여 제안된 거래에 대한 거래상대방으로서 작용함으로써 Exchange 1에 대한 거래의 일부를 이행할 수 있고 Exchange 2 및/또는 Exchange 3에서 주문의 나머지 부분들을 마치기 위해 조건을 변경하거나 아니면 포스트(post)하는데 시간이 걸릴 수 있다. 다시 말하면, 가령, 코로케이트 트레딩 서버(304)는 Exchange 1, Exchange 2 및 Exchange 3와의 거래와 관련된 실행 지연의 차로 인해 Exchange 1에 대한 요청된 거래의 일부를 이행할 수 있고, 투기업자 또는 수익자(들) 자신의 이익 또는 이들 거래소들에 대한 유사한 이해관계를 제안하는 다른 트레이더들의 이익을 높이기 위해 이런 나머지 부분들이 앞서 진술된 가격으로 실행할 수 있기 전에 Exchange 2 또는 Exchange 3에서 거래의 나머지 부분들을 이행하기 위해 그 조건을 개선하도록 예컨대 입찰/매도 가격을 올리거나 내림으로써 움직일 수 있다.
도 3에서 알 수 있는 바와 같이, ('지연 차익거래' 기회라고 할 수 있는) 이런 가능성은 다음과 같을 때 있을 수 있다:
Time X + Time A < Time Y 및/또는
Time X + Time B < Time Z.
거래 또는 기타 처리요청 신호들이 동시에 라운터(들)(104,1104)로부터 각각의 Exchange 1, Exchange 2 및 Exchange 3으로 보내지는 곳에서도, 각각의 자원(106,1106)(예컨대, Time X, Y, Z)에 의한 수신, 통지 및/또는 처리되는 요청의 각 분할된 부분에 걸리는 시간은 일반적으로 가령 프로세서(들)(104,1104 및/또는 106,1106) 중 일부 또는 모두에서 네트워크 통신 경로 및 처리 속도에서의 차이로 인해 다를 수 있음이 당업자에게 인식된다. 마찬가지로, Exchange 2 및 3 각각에서 거래 제안 조건을 변경하기 위해 트레이딩 서버(304)에 걸리는 시간도 일반적으로 다를 수 있다.
이런 경우에 발생할 수 있는 단점들 중에는 요청 소스(들)(102,1102)에 의해 표현된 트레이더들이 이런 차익거래 기회가 없는 상태에서 갖게 되는 것보다 매매를 실행하는 데 있어 더 높은 가격을 지불할 수 있다는 것이다; 또는, 연이은 교환들에 대한 가격이 실행요청시 언급된 외부 조건들을 받도록 충분히 변경되면, 이들은 소정 량으로 거래를 마칠 수 없을 수 있다. 예컨대, 거래소 프로세서(1106)로 보내진 거래의 모두 또는 일부가 변동된 가격을 고려해 매매될 수 없다.
매매 명령이 가령 지연을 이용한 제 3 자에 의한 가격 또는 기타 조건 조작으로 인해 거래소 서버(1106)에서 충분히 실행될 수 없는 이런 예에서, 하나 이상의 거래소 서버들(1106)에서 데이터 처리 요청을 수행하는 중에, 모든 거래소 서버들(1106)에 이런 거래 요청의 실행이 동기화 식으로 예컨대 실질적으로는 동시적으로 발생하도록 여러 거래소 서버들(1106)에 매매 요청의 전송을 시간 조절하거나 스케쥴하는데 유용할 수 있다. 특히, 예컨대, 신호처리가 실질적으로 동시에 자원(106,1106)에 의해 수신, 통지, 및/또는 실행되도록 멀티 네트워크 컴퓨팅 자원들(106,1106)에서, 신호처리 실행요청, 또는 실행요청의 일부분 또는 세그먼트들의 실행을 동기화는 것이 유용할 수 있다.
일부 실시예에서, 각 프로세서들(106,1106)에서 실행되는 신호처리가 동시에 실행될 필요가 없고
Time Y - Time X < Time A, 및/또는
Time Z - Time X < Time B
으로 충분해질 수 있어, 조건내 어떤 변화가 트레이딩 서버(304)에 의해 실행될 수 있기 전에 요청(들) 또는 세그먼트의 실행이 행해진다. 이런 동기화 타이밍의 이용은
Time X + Time A > Time Y, 및/또는
Time X + Time B > Time Z
를 초래할 수 있고, 따라서, 가령 지연차익거래 기회를 빼앗을 수 있다. 그러므로, 몇몇 실시예에서, 본 발명은 최소로 또는 거의 시간변화 없이 여러 자원들(106,1106)에 걸쳐 거래를 실행할 능력을 라우터(104,1104)에 제공하여, 저지연 알고리즘을 이용한 트레이더(들)(304)에 의해 실행되는 알고리즘들은 시장변화에 대응하기에 불충분한 시간이 주어진다.
일부 실시예들에서, 상기 방정식에 기술된 지연차익거래가 최소화되거나 및/또는 제거될 수 있음을 보장하는데 필요한 타이밍 범위는 하나 이상의 트레이딩 서버들(304)에 주문들을 나타내는 신호들의 라우팅을 위한 허용 가능한 범위를 결정할 수 있다.
따라서, 동기화가 필요한 이들 및 다른 경우에, 210에서 프로세서/라우터(104,1104)는 소정의 시퀀싱을 얻기 위해 실행요청의 다양한 부분들 또는 세그먼트들에 할당 또는 연결되는 절대 또는 상대 타이밍을 결정할 수 있다. 이런 타이밍은 임의의 소정의 동기화를 야기하도록 결정될 수 있다: 예컨대, 동시에 또는 실질적으로 동시에 실행을 야기하도록 구성된 타이밍이 결정될 수 있거나 임의의 소정의 시퀀싱을 야기하도록 구성된 타이밍이 결정될 수 있다.
일부 실시예에서, 라우팅 요청에 대한 시퀀스는 상이한 라우팅 요청들의 라우팅을 스태거(stagger)하기 위해 허용 가능한 타이밍 파라미터(범위 포함)를 결정함으로써 정의될 수 있다. 이들 시퀀스는 서로 다른 베뉴에 대한 요청 또는 동일한 베뉴에 대한 여러 요청을 포함할 수 있다. 일부 실시예에서, 타이밍 시퀀스는 관련된 요청들이 정의된 시간 임계값 내에서 실행되는 것을 유발하도록 결정될 수 있다. 이 시간 임계값은 관찰된 지연차익거래 타이밍 또는 다른 것에 기초할 수 있다.
따라서, 210에서, 타이밍 파라미터는 각각의 네트워크 컴퓨팅 자원(106,1106)에 할당되는 각 신호처리 실행요청 또는 그 일부에 대해 결정될 수 있다. 각각의 네트워크 컴퓨팅 자원들(106,1106) 각각에 신호처리 실행요청의 동기화 실행을 야기하기 위해 파라미터들이 이런 식으로 결정된다. 이 결정은 라우터 프로세서(들)(104,1104)과 각각의 네트워크 컴퓨팅 자원들(106,1106) 간에 신호 교환의 실행시 또는 이런 디바이스들 중 어느 하나에 의한 다른 이런 신호들의 처리시, 예컨대, 도 3의 지연(A,B,X,Y,Z) 중 어느 하나 또는 모두 및/또는 임의의 다른 기타 관련된 지연들과 같이 적어도 부분적으로 이런 요청(들) 및/또는 부분(들)의 실행시 해당하는 결정된 지연에 기초할 수 있다.
일부 실시예에서, 타이밍 파라미터는 네트워크 컴퓨팅 자원들(106, 1106)보다는 각각의 신호 처리 실행요청에 할당될 수 있다. 일부 실시예에서, 타이밍 파라미터는 실행을 위한 범위로서 정의되며, 하나 이상의 각각의 신호 처리 실행요청과의 관련을 위한 라우팅 전략을 결정 및/또는 구현하기 위해 적용된 비즈니스 로직에 따라 사용될 수 있다. 예를 들어, 타이밍 파라미터가 SOR 라우터 프로세서(들)(1104)에 의해 동적으로 결정되는 특정 타이밍 범위 내에서 신호 처리 실행요청의 특정 세트가 처리/수신/실행되어야 함을 나타내기 위해 타이밍 파라미터가 사용될 수 있다. 예를 들어, 타이밍 범위는 다양한 비즈니스 로직 흐름이 특정 베뉴의 주문서상의 유동성을 파라미터로서 수신하는 것에 기초하여 결정될 수 있다. 일부 실시예들에서, 타이밍 범위 및/또는 타이밍 파라미터는 또한 특정 라우팅 경로 또는 통신 링크의 선택을 통해 만족될 수 있다.
일부 실시예에서, 타이밍 파라미터는 모니터링된 네트워크 상태 및/또는 특성을 고려할 수 있다. 예를 들어, 분산, 표준 편차, 중앙값, 평균, 모드, 첨도(kurtosis) 등.
일부 실시예에서, 타이밍 파라미터는 특정 거래가 특정 지연 범위 내에서 도달 및/또는 실행될 타이밍 범위 및/또는 확률(들)에 기초하여 결정될 수 있다. 도 5에 도시된 바와 같이, 과거에 모니터링된 지연 데이터는 일부 실시예에서 확률(들) 및/또는 표준 편차, 분산 등과 같은 다른 통계 데이터를 제공할 수 있다. 일부 실시예에서, SOR 라우팅 프로세서(들)(1104)는 정의된 통계적 임계값 내에 속하는 타이밍 파라미터를 결정하도록 구성될 수 있다.
전송에 요구되는 지연의 대안으로서, 또는 이와 함께, 네트워크 특성은 주문들의 라우팅을 위한 SOR 라우터 프로세서(들)(1104)에 의해 모니터링되고 이용될 수 있다.
네트워크 혼잡, 트래픽, 가용 대역폭, 채널 강도, 잡음, 아티팩트, 네트워크 이벤트 등과 같은 다양한 요인들로 인해 네트워크 조건이 끊임없이 변화할 수 있으므로 네트워크 성능 모니터링은 중요한 작업이 될 수 있으며, 네트워크 성능은 주문의 전송 및/또는 라우팅에 영향을 미칠 수 있다. 거래소 게이트웨이 등에서의 정체와 같은 베뉴-특이적인 네트워크 문제가 존재할 수 있다.
일부 실시예에서, 모니터링된 네트워크 성능은 예를 들어 평균, 모드, 중앙값, 분산, 공분산, 상관, 첨도, 왜곡(skew), 표준 편차 등과 같은 통계값을 결정하기 위해 하나 이상의 측정을 사용하여 근사화 및/또는 모델링될 수 있다.
모니터링되는 네트워크 성능은 다양한 수준의 세분성 및 범위로 모니터링될 수 있으며, 예를 들어, 개별 네트워크 경로가 모니터링, 베뉴가 모니터링 등이 될 수 있다. 일부 실시예에서, 신호를 베뉴로 라우팅하는데 사용될 수 있는 다수의 네트워크 경로가 존재할 수 있고, 경로 자체가 그 네트워크 특성에 대해 모니터링될 수 있다.
예를 들어, A, B 및 C의 세 가지 상이한 네트워크 링크가 존재할 수 있으며, 만약 A와 B가 혼잡하면, 네트워크 링크 C가 선택될 수 있다.
일부 실시예에서, 네트워크 성능의 모니터링은 측정된 정보의 현재를 반영하도록 보다 최근의 네트워크 측정이 모델에 보다 큰 중요성 및/또는 영향을 갖도록 가중될 수 있다.
네트워크 모니터링은 다양한 데이터를 기반으로 수행될 수 있으며, 예를 들어, 예정된 왕복여행 심장박동(scheduled return trip heartbeat) 메시지를 전송하여 여러 링크에서 네트워크 지연을 주기적으로 결정할 수 있다. 일부 실시예에서, 과거 주문 정보 및/또는 라우팅 정보는 네트워크 성능을 결정하는데 이용될 수 있다. 예를 들어, 라우터(1104)는 지난 2ms 동안 이 링크상에서 한 다스의 주문들을 보내고, 특정 특성을 갖는 다수의 지연에 직면하였다.
일부 실시예에서, 네트워크 지연 특성을 결정하기 위해 테스트 메시지, 복제 메시지 등이 또한 전송될 수 있다. 다양한 길이 및/또는 명령어를 갖는 메시지들 또는 명령어들의 부족은 베뉴 처리와 관련된 지연들을 결정하기 위해 서로 비교될 수 있다.
일부 실시예에서, 네트워크 모니터링은 거래 지연의 상이한 구성 요소를 결정하도록 구성될 수 있다. 예를 들어, 왕복 지연이 모니터링되는 경우, 왕복 지연은 두 개 또는 세 개의 구성 요소로 나누어질 수 있다. 예를 들어, 3개의 구성 요소는 베뉴로 전송되는 요청의 전송과 관련된 지연, 베뉴에 의한 요청의 실행과 관련된 지연 및 베뉴로부터 반송되는 응답의 전송과 관련된 지연을 포함할 수 있다. 다른 실시예에서, 왕복 지연은 전송 지연들(즉, 요청을 베뉴로 전송하고, 베뉴로부터의 응답을 수신하기 위한 전송 지연의 결합된 측정) 및 베뉴에 의한 요청의 실행과 관련된 지연들 사이에서 나누어질 수 있다. 상이한 지연-관련 구성 요소들의 다른 조합들도 또한 사용될 수 있다.
일부 실시예에서, 왕복 또는 다른 총 지연의 다른 구성 요소를 결정하는 것은 서로 다른 요청 유형에 대한 총 지연을 모니터링하는 것을 기반으로 할 수 있다. 예를 들어, 서로 다른 주문 유형 또는 견적에 대한 요청은 서로 다른 총 왕복 지연을 초래할 수 있으며, 일부 실시예에서, 총 지연의 서로 다른 구성 요소를 결정 및/또는 서로 다른 요청 유형에 대한 타이밍 파라미터를 결정하는데 사용될 수 있다.
일부 실시예에서, 208 및/또는 210에서의 프로세서(들)는 본 발명에 기재된 것 또는 다른 것들과 같은 다른 요인들에 기초하여 목표로 하는 베뉴들을 선택하고 및/또는 타이밍을 조정하도록 구성될 수 있다. 일부 실시예에서, 프로세서(들)는 베뉴를 선택하고 및/또는 베뉴와 관련된 데이터에 기초하여 타이밍을 조정한다. 이 데이터는, 일부 실시예에서, 데이터 소스로부터 액세스될 수 있고 및/또는 캡처 비율, 지연 등에 기초하여 컴파일되거나 관측될 수 있다.
또한, 일부 실시예에서, 프로세서(들)는 베뉴를 선호하거나 또는 (예를 들어, 코로케이트 및/또는 고 빈도 트레이더에 의한) 거래 요청에 대한 경쟁이 더 적을 수 있는 베뉴에 대해 더 긴 타이밍 차를 가지도록 구성될 수 있다. 일부 실시예에서, 프로세서(들)는 경쟁이 심하거나 차익거래에 대한 거래를 상실할 보다 큰 위험을 나타낼 수 있는 요인들에 기초하여 상이한 베뉴들에 대해 상이한 우선순위 또는 타이밍 조정을 갖도록 구성될 수 있다. 일부 실시예에서, 기회주의적 코로케이트 트레이더에 대한 명시적 지식은 데이터 소스로부터 액세스 될 수 있거나 특정 베뉴와 관련된 낮은 캡처 비율 및/또는 더 낮은 타이밍 차에 근거하여 암시적으로 결정될 수 있다.
일부 실시예에서, 프로세서(들)는 베뉴의 요금 및/또는 리베이트 구조에 기초하여 베뉴에 대해 상이한 우선순위 또는 타이밍 조정을 갖도록 구성될 수 있다. 예를 들어, 특정 거래를 게시하기 위한 리베이트를 제공하는 베뉴는 고 빈도 트레이더들로부터의 경쟁을 가질 가능성이 크다.
일부 실시예에서, 다수의 베뉴 옵션이 이용 가능할 때, 프로세서(들)는 보다 큰 경쟁을 가질 가능성이 적은 베뉴를 선택하도록 구성될 수 있다. 일부 실시예에서, 프로세서(들)는 다른 베뉴(들)에서 유동성을 캡처하는 가능성을 증가시키는 경우 더 큰 경쟁을 갖는 베뉴로부터 유동성을 잃을 위험이 있는 타이밍(예를 들어, 시퀀스에서 나중에 스케쥴링하거나 더 큰 지연을 갖는 스케쥴)을 생성하도록 구성될 수 있다. 일부 실시예에서, 프로세서(들)는 보다 큰 경쟁을 갖는 베뉴와 관련된 웨이브에 대해 더 엄격한 타이밍을 생성할 수 있다.
일부 실시예에서, 프로세서(들)는 거래 요청이 너무 일찍 또는 너무 늦게 베뉴에 도착하는 경우 겪게 될 손실된 유동성 또는 손실된 총 가치에 기초하여 베뉴를 선택하고 및/또는 타이밍 차를 조정하도록 구성될 수 있다. 일부 실시예에서, 이는 게시된 유동성, 게시된 입찰/청약 가격 등을 기반으로 할 수 있다. 프로세서(들)는 잠재적인 차익거래 손실을 초래하는 베뉴(들)에 대한 거래 요청이 너무 일찍 또는 늦게 도착하는 경우 더 큰 손실(유동성 또는 가치)을 초래할 수 있는 베뉴(들)에 대해 우선순위를 낮추거나 또는 타이밍 차를 엄격하게 하도록 구성될 수 있다.
일부 실시예에서, SOR 라우터 프로세서(들)(1104)는 거래 캡처 비율, 최근 충전 속도 등과 같은 피드백으로서 제공된 다양한 측정값에 응답하여 타이밍 파라미터의 값 및/또는 타이밍 범위의 크기를 자동으로 조정하도록 구성될 수 있다. 예를 들어, 감소하는 거래 캡처 비율은 정보 유출을 나타낼 수 있으며, 타이밍 파라미터의 범위는 자동으로 엄격해지고 및/또는 응답으로 타이밍 파라미터가 수정될 수 있다.
예를 들어, 지연 및 다른 파라미터 외에도, SOR 프로세서(들)는 특정 경로를 따라 또는 특정 베뉴로 라우팅된 이전 주문의 충전 속도 또는 캡처 비율을 모니터링하도록 구성될 수 있다. 일부 실시예에서, 프로세서(들)는 이용 가능한 유동성을 갖는 모든 라우팅된 관련 지불 요청에 대한 총 지불량을 비교함으로써 충전 속도 또는 캡처 비율을 결정하도록 구성될 수 있다. 일부 실시예에서, 이용 가능한 유동성은 목표로 하는 베뉴들의 각각에서 총 게시된 유동성일 수 있다. 일부 실시예에서, 이용 가능한 유동성은 임의의 베뉴에서 총 게시된 유동성일 수 있다. 일부 실시예에서, 이용 가능한 유동성은 프로세서(들)가 목표로 하는 베뉴를 선택하거나 및/또는 대량 주문 요청을 분할하는 것을 포함할 수 있는 실행 요청을 준비하는 시점에 SOR 프로세서(들)가 사용할 수 있는 게시된 유동성 데이터를 기반으로 할 수 있다. 일부 실시예에서, 이용 가능한 유동성은 웨이브 또는 시퀀스에서의 첫 번째 거래 요청이 라우팅될 때 SOR 프로세서(들)가 이용 가능한 게시된 유동성 데이터를 기반으로 할 수 있다.
일부 실시예에서, 이용 가능한 유동성은 공개적으로 게시된 유동성 및/또는 예측된 유동성을 포함할 수 있다. 네트워크 컴퓨팅 자원과 관련된 데이터를 모니터링하는 프로세서(들)는 이전에 라우팅된 데이터 처리 세그먼트에 의해 캡처된 공개적으로 게시된 유동성이 새로운 공개적으로 게시된 유동성 및/또는 원래 유동성의 캡춰링 및 새로운 유동성의 재-게시 사이의 타이밍으로 보충되는지 여부를 모니터링하도록 구성될 수 있다. 데이터 처리 세그먼트의 준비 및 이들의 타이밍 파라미터의 결정은 이러한 예측된 유동성 데이터를 기반으로 할 수 있다.
다른 실시예에서, 프로세서(들)가 (동일한 데이터 프로세스와 무관하거나 관련이 있는) 다수의 데이터 처리 세그먼트가 동일한 게시된 유동성을 목표로 하는 경우, 프로세서(들)는 이를 추적하거나 식별할 수 있다. 충전 속도가 게시된 유동성을 초과하는 확인하기 위해 이들 데이터 처리 세그먼트와 연관된 데이터를 모니터링함으로써, 프로세서(들)는 이 데이터를 캡처된 게시되지 않은 유동성 데이터로 컴파일할 수 있다.
네트워크 컴퓨팅 자원과 관련된 데이터를 모니터링하는 것은 예측된 유동성 데이터로서 유동성의 재-게시 및 게시되지 않은 유동성의 캡처 모두를 모니터링하는 것을 포함할 수 있으며, 이는 데이터 처리 세그먼트 및 이러한 예측된 유동성 데이터를 목표로 하는 이들의 타이밍 파라미터를 준비하기 위해 프로세서들에 의해 사용될 수 있다.
일부 실시예에서, 프로세서(들)는 웨이브에서 모든 거래 요청이 라우팅된 이후 성공적으로 캡처된/완료된 총 지불량을 결정하기 위해 목표로 하는 베뉴로부터의 확인/인정 또는 다른 응답 메시지를 컴파일링함으로써 충전 속도 또는 캡처 비율을 결정하도록 구성될 수 있다.
일부 예에서, 프로세서는 결정된 공급율 또는 포착 비율에 기반하여 타이밍 파라미터 및/또는 타이밍 시퀀스를 조정하도록 구성될 수 있다. 예를 들어, 경로 또는 베뉴에 대한 포착 비율이 이전의, 과거의 및/또는 전형적인 값으로부터 떨어지면, 프로세서는 (예를 들어 레이턴시(latency) 및/또는 기타 요인에 기반한) 타이밍 파라미터 및/또는 시퀀스가 정보 유출이나 차익 거래를 피하는데 덜 효과적이라고 결정할 수 있다.
일부 예에서, 포착 비율이 정의된 역치 아래로 또는 역치량보다 더 떨어질 때, 프로세서는 타이밍 파라미터를 조정하고(예를 들어, 도 3에서 시간 Y 또는 시간 Z를 낮추거나 증가시킴), 타이밍 시퀀스를 조정하고/거나, 상이한 베뉴에서 실행 시간에서 차이에 대한 타이밍 역치를 낮추도록(예를 들어, 도 3에서 시간 = A 및/또는 시간 = B를 낮추는 것) 구성될 수 있다.
일부 예에서, 포착 비율이 정의된 역치 아래로 또는 역치량보다 더 떨어질 때, 이는 라우터 또는 기타 스위칭 장치에서 링크 또는 컴포넌트를 실패하거나 거의 실패한 것과 같이 네트워크 장치의 변경을 나타낼 수 있다. 일부 예에서, 프로세서는 잠재적인 네트워크 문제 및/또는 장비 문제가 있을 수 있다는 경고 또는 통지를 생성하도록 구성될 수 있다. 알림 또는 통지에는 오디오 알림, 디스플레이 또는 광원 상의 비주얼 알림, 메시지(예: 전자 메일, 인스턴트 메시징 등) 또는 관리자에게 네트워크 문제 및/또는 장비 문제가 있을 수 있다고 알리는 임의의 기타 메커니즘을 포함할 수 있다. 일부 예에서, 포착 비율을 떨어뜨리는 것이 라우터 또는 기타 영향을 받는 장비가 자체 경고 또는 실패 통지를 생성하기 전에 장비 문제 또는 임박한 실패의 조기 경고를 제공할 수 있음이 관찰되었다.
일부 예에서, 정의된 역치 또는 역치량은 절대값 또는 상대값일 수 있다. 예를 들어, 프로세서는 포착 비율이 2% 떨어지거나 또는 이전 또는 과거의 값의 2% 떨어질 때 타이밍 파라미터, 시퀀스 및/또는 역치를 조정하도록 구성될 수 있다.
다른 예에서, 프로세서는 포착 비율이 그의 전형적인 분산 범위를 벗어나거나 그의 표준(norm)으로부터 표준 편차의 정의된 수에 의해 변할 때(예를 들어, 포착 비율이 표준에서 1-3 표준 편차 거리일 때) 타이밍 파라미터, 시퀀스 및/또는 역치를 조정하도록 구성될 수 있다.
일부 예에서, 프로세서는 X 시간 기간에 걸친 포착 비율을 수집하고 가우스 또는 기타 분포를 구축함으로써 분산 범위 및/또는 표준 편차를 결정하도록 구성될 수 있다.
경로/베뉴 또는 경로/베뉴의 쌍 또는 그룹에 대한 포착 비율이 정의된 역치보다 낮거나 정의된 역치만큼 떨어진 것으로 결정되면, 프로세서는 미래 거래 요청 웨이브 또는 시퀀스를 위한 포착 비율을 증가시키기 위해 노력하기 위해 연관된 경로 및/또는 베뉴에 대하여 타이밍 파라미터, 시퀀스 및/또는 타이밍 차등 역치를 자동적으로 조정하도록 구성할 수 있다.
일부 예에서, 208 및/또는 210에서 프로세서는 본 명세서에서 또는 다르게 설명된 바와 같이 기타 요인들에 기반하여 타이밍을 타겟으로 하고/거나 타이밍을 조정하기 위해 베뉴를 선택하도록 구성될 수 있다. 일부 예들에서, 프로세서는 베뉴를 선택하고/거나 베뉴와 연관된 데이터에 기반하여 타이밍을 조정하도록 구성될 수 있다. 이 데이터는 일부 예에서 데이터 소스로부터 액세스될 수 있고/거나, 포착 비율, 레이턴시 등에 기반하여 컴파일되거나 관측될 수 있다.
일부 예에서, 프로세서는 베뉴를 선호하거나(예: 공동 배치된 및/또는 높은 빈도의 거래자에 의한) 거래 요청에 대한 더 많은 경쟁을 가질 가능성이 더 적을 것 같은 베뉴에 대해 더 긴 타이밍 차등을 가지도록 구성될 수 있다. 일부 예에서, 프로세서는 더 심한 경쟁 또는 거래를 차익거래로 상실하는 더 큰 위험을 나타낼 수 있는 요인에 기반하여 상이한 베뉴에 대해 상이한 우선 순위 또는 타이밍 조정을 가지도록 구성될 수 있다. 일부 예에서, 기회주의적 공동 위치된 거래자의 명시적 지식은 데이터 소스로부터 액세스될 수 있거나 특정 베뉴를 포함하는 더 낮은 포착 비율 및/또는 더 낮은 타이밍 차등에 기반하여 내재적으로 결정될 수 있다.
일부 예에서, 프로세서는 베뉴의 요금 및/또는 리베이트 구조에 기반하여 베뉴에 대해 상이한 우선 순위 또는 타이밍 조정을 가지도록 구성될 수 있다. 예를 들어, 특정 거래를 게시하기 위한 리베이트를 제공하는 베뉴는 높은 빈도 거래자로부터 경쟁을 가질 가능성이 더 높을 수 있다.
일부 예에서, 다중 베뉴 옵션이 이용가능할 때, 프로세서는 더 큰 경쟁을 가질 가능성이 더 적은 베뉴를 선택하도록 구성될 수 있다. 일부 예에서, 프로세서는 다른 베뉴에서 유동성을 포착할 가능성을 증가시키면 더 큰 경쟁을 가진 베뉴로부터 유동성을 잃을 위험이 있는 타이밍을 생성하도록 구성될 수 있다(예를 들어, 시퀀스에서 나중에 또는 더 큰 지연으로 스케쥴링). 일부 예에서 프로세서는 경쟁이 심한 베뉴를 포함하는 웨이브에 대해 더 엄격한 타이밍을 생성 할 수 있다.
일부 예에서, 프로세서는 거래 요청이 베뉴에 너무 일찍 또는 너무 늦게 도착하는 경우에 겪게 될 손실된 유동성 또는 손실된 총 가치에 기반하여 베뉴를 선택하고/거나 타이밍 차등을 조정하도록 구성될 수 있다. 이는 일부 예에서는 게시된 유동성, 게시된 입찰/청약 가격 등을 기반일 수 있다. 프로세서는 베뉴에 대한 거래 요청이 너무 일찍 또는 늦게 도착하여 잠재적인 차익거래 손실을 초래하는 경우 더 큰 손실(유동성 또는 가치)을 야기하는 베뉴에 대한 우선 순위를 낮추거나 타이밍 차등을 강화하도록 구성될 수 있다.
일부 실시예에서, 라우터 프로세서(1104)는 다중 경로 및 다중 오더에 걸친 오더 흐름을 최적화하기 위해 구성될 수 있다. 예를 들어, 특정 라우팅 방식을 통해 단일 경로에 대한 공급율을 높이면 다른 경로에게 손해를 입힐 수 있다. 라우터 프로세서(1104)는 베뉴, 통신 링크, 네트워크 링크, 시간 등에 걸쳐 오더 로드를 균형을 맞추도록 구성될 수 있다. 라우터 프로세서(1104)는 라우터 프로세서(1104)의 스케쥴링된 라우팅에 의해 야기되는 혼잡으로 인해 발생할 수 있는 잠재적인 레이턴시 영향을 결정하고, 이에 따라 타이밍 파라미터를 스케쥴링 및/또는 재배치 및/또는 연관시키도록 구성될 수 있다. 일부 실시예에서, 라우터 프로세서(1104)는 스케쥴링된 송신을 자동으로 리튠(retune) 및/또는 셔플(shuffle)하도록 구성될 수 있다.
일부 실시예에서, 라우터 프로세서(1104)는 비즈니스 로직을 나타내는 하나 이상의 비즈니스 규칙의 적용을 위해 구성될 수 있다. 비즈니스 규칙은 오더와 연관된 특정 명령 세트를 위한 라우팅 특성을 결정하는데 사용되는 다양한 요인의 왜곡(skewing) 및/또는 가중(weighing)을 일으킬 수 있다. 예를 들어, 규칙은 오더가 어떻게 세그먼트화되는지, 어떤 베뉴에 오더가 송신될 수 있는지, 이용가능한 시간 범위 등을 결정할 수 있다.
예를 들어, 특정 레이턴시를 갖는 특정 베뉴는, 그와 연관된 높은 거래 포착 비율을 가질 수 있고, 더 높은 가중치가 특정 베뉴에 신호를 라우팅하는 것과 연관될 수 있으므로 선호될 수 있다.
또 다른 예로, 첫 번째 베뉴는 두 번째 베뉴보다 더 유동성이 있는 더 깊이 있는 오더 예약을 제공할 수 있다. 첫 번째 베뉴는 다소 덜 바람직한 네트워크 특성을 가질 수 있는 반면에, 이용가능한 유동성의 양이 주어질 때 선택에 대해 더 무겁게 가중될 수 있다.
일부 예시적인 실시예에서, SOR 프로세서는 유동성 및 레이턴시 분산을 가중함으로써 이들 베뉴에 대한 타이밍 파라미터 뿐만 아니라 타겟하는 베뉴를 결정하도록 구성될 수 있다.
일부 예에서, 레이턴시 분산은 네트워크 트래픽, 네트워크 통신의 불량하거나 변화하는 신호 품질, 네트워크 노드 문제, 베뉴(네트워크화된 실행 프로세서)에서 혼잡 또는 과부하 등과 같은 요인에 의해 야기될 수 있다.
일부 예에서, 레이턴시 분산은 베뉴 또는 베뉴의 통신 네트워크 또는 장치의 측면에 의해 의도적으로 도입된 지연에 의해 야기될 수 있다. 예를 들어, 베뉴는 특정 유형의 오더 요청 또는 모든 오더에 지연(예: "속도 범프")을 무작위로 도입할 수 있다. 이 지연은 영향을 받은 오더 요청의 실행에 대한 레이턴시를 증가시킬 것이다. 일부 예에서, 베뉴는 오더 요청에 고정 지연(예: 350㎲)을 도입할 수 있다. 일부 예에서, 베뉴는 오더 요청에 무작위로 선택된 길이의 지연(예: 5-25ms)을 도입할 수 있다.
일부 예들에서, 지연들이 적용되는 오더 요청 및/또는 지연의 길이는 무작위로 선택될 수 있고, 오더 유형에 기반될 수 있고, 오더 파라미터/옵션/플래그/등, 및/또는 이들의 임의의 조합에 기반될 수 있다.
일부 예에서, 베뉴는 오더 요청의 유형/파라미터/옵션/플래그/등에 기반한 범위로부터 선택되는 무작위로 선택된 길이를 갖는 지연을 도입할 수 있다. 예를 들어, 오더의 한 분류는 1-10ms 사이의 무작위 지연에 종속될 수 있는 반면 다른 분류 또는 오더는 14-24ms 사이의 무작위 지연에 종속될 수 있다.
프로세서에 의해 모니터링되는 이러한 무작위 지연에 종속될 수 있는 이전에 라우팅된 데이터 처리 세그먼트와 연관된 데이터는, 일부 예에서, 1-10ms 범위와 14-24ms 범위로 예증되는 멀티모드 분포를 나타낼 수 있다.
일부 예에서, 프로세서는 하나 이상의 데이터베이스 또는 기타 데이터 소스로부터 의도적으로 적용된 지연의 정의된 측면을 액세스하도록 구성될 수 있다. 일부 예에서, 의도적으로 적용된 지연의 측면은 과거의 순서 및 그들 각각의 처리 시간을 추적함으로써 관찰될 수 있다. 액세스 및/또는 관찰된 지연 정보에 적어도 부분적으로 기반하여, 일부 예에서, 프로세서는 레이턴시 범위, 분산 및 레이턴시에 대한 기타 통계 수치를 결정하도록 구성될 수 있다.
일부 예에서, 프로세서에 의해 모니터링되는 무작위로 도입된 지연에 종속될 수 있는 이전에 라우팅된 데이터 처리 세그먼트와 연관된 데이터는, 무작위 지연 없이 레이턴시의 범위를 예증하는 멀티모드 분포 및 무작위 지연을 포함하여 레이턴시의 두 번째 범위를 나타낸다.
일부 예에서, 프로세서는 잠재적으로 사용될 수 있는 각 네트워크화된 컴퓨팅 리소스(베뉴)에 대한 제안된 거래의 이용가능한 유동성과 연관된 데이터를 획득하도록 구성될 수 있다.
일부 예에서, 이용가능한 유동성과 연관된 데이터는 공개적으로 이용가능한 소스로부터 받을 수 있으며, 베뉴에서 공공연하게 이용할 수 있는 쉐어(share)의 수를 포함할 수 있다. 일부 예에서, 프로세서는 공개적으로 게시된 것보다 더 많은 유동성이 있는지 여부를 결정하도록 구성될 수 있다(예: 아이스버그 또는 리저브 볼륨). 이 결정은 유사한 금융 금리, 볼륨, 시간대, 상대방 및/또는 기타 오더 데이터에 대한 베뉴와 함께 배치된 과거의 또는 지난 오더에 대해 얻은 데이터에 기반될 수 있다.
208 및 210에서, 프로세서는 큰 제안된 거래를 레이턴시 및 유동성 데이터에 기반하여 다른 베뉴 또는 기타 네트워크화된 실행 프로세서로의 더 작은 거래 요청을 나타내는 더 작은 데이터 프로세스로 분할하도록 구성될 수 있다. 일부 예에서, 프로세서는 유동성 데이터 및 레이턴시 분산에 기반하여 베뉴 및 볼륨을 선택하도록 구성될 수 있다.
베뉴가 큰 이용가능한 유동성, 그러나 큰 레이턴시 분산을 가지는 일부 예에서, 프로세서는 잠재적인 레이턴시 기간의 범위 동안 시장 이동으로 인해 다른 베뉴에서 유동성을 잃는 기회와 유동성을 포착하는 기회를 균형을 잡도록 구성될 수 있다.
예를 들어, 가상적인 상황에서: 베뉴 A는 가격 X에서 이용가능한 5000 쉐어를 가지며, 100㎲ +/- 80㎲의 레이턴시를 가지고; 베뉴 B는 가격 X에서 이용가능한 500 쉐어를 가지며, 80㎲ +/- 1㎲의 레이턴시를 가진다. SOR이 모든 5500 쉐어를 포착하려고 시도하는 경우, 프로세서는 t = 0 일 때 첫 번째 트랜잭션 요청을 베뉴 A로, 20㎲ 후에 두 번째 트랜잭션 요청을 베뉴 B로 라우팅하도록 구성될 수 있다. 트랜잭션 요청이 평균 레이턴시에 따라 도착하거나 처리되면, 트랜잭션은 t = 100㎲에서 두 베뉴에서 이용가능한 볼륨을 포착해야 한다. 그러나 베뉴 A의 레이턴시 분산이 너무 크기 때문에, 베뉴 A에서의 거래는 t = 20 ㎲에서 실행될 수 있으며, 거래가 베뉴 B에서 100 ㎲로 실행되기 전에, 베뉴 B의 500 쉐어의 가격 또는 이용가능성이 변경될 수 있다. 유사하게, 만약 베뉴 A에서 거래가 t = 180㎲까지 실행되지 않는다면, t = 100 ㎲에서 실행된 B에서 오더는 시장이 t = 180㎲에서 요청이 처리되기 전에 A에서 오더를 변경하거나 취소할 수 있게 촉진할 수 있다.
일부 예에서, 프로세서는 유동성 대 레이턴시 분산 비율에 기반하여 네트워크화된 컴퓨팅 리소스/베뉴를 선택하도록 구성될 수 있다. 베뉴에서 이용 가능한 유동성이 높을 때, 프로세서는 높은 레이턴시 분산을 가지고 있더라도 유동성을 타겟으로 하도록 구성될 수 있다. 일부 예시적인 시나리오에서, 또 다른 베뉴에서 유동성을 희생시키거나 유동성의 손실 위험을 감수하는 것을 포함할 수 있다.
예를 들어, 위의 상황에서, 베뉴 A 대 베뉴 B의 유동성/레이턴시 분산 비율 또는 다른 메트릭스에 기반하여, 프로세서는 베뉴 A에서 유동성이 포착될 더 높은 가능성을 발생하는 타이밍 파라미터를 결정하도록 구성될 수 있다. 예를 들어, 경쟁 거래 시스템이 베뉴 B에서의 오더를 관찰하고 베뉴 A에서 오더를 변경하기 위해 50 ㎲를 요구한다고 가정하면, 프로세서는 오더 요청이 시간 = 0에서 베뉴 A로 전송되고, 시간 요청 = 51 ㎲ 후에 베뉴 B로 오더 요청이 전송되게 타이밍 파라미터 및/또는 타이밍 시퀀스를 결정하도록 구성될 수 있다. 이러한 방식으로, 베뉴 A에서의 오더가 180㎲에서 가장 느린 말단의 범위에서 실행되고 베뉴 B에서의 오더가 130㎲(79㎲ 레이턴시, 51㎲ 지연)에서 가장 빠른 말단의 범위에서 실행되면, 50㎲의 경쟁 거래 시스템 시간 역치에 기인하여, 베뉴 A에서의 오더는 베뉴 B에서의 오더에 따른 차익거래의 어떠한 위험 없이 공급될 수 있다. 이 예에서 설명한 바와 같이, 비록 더 작은 가용 유동성을 가지는 다른 베뉴에서 오더를 잃을 위험을 겪더라도, 프로세서는 큰 가용 유동성을 가지는 경우 큰 레이턴시를 가지는 베뉴를 타겟으로 하도록 구성될 수 있다.
이 예에서, 프로세서는 최악의 경우 시나리오를 사용하도록 구성되었으나, 위험 허용오차에 기반하여, 프로세서는 더 공격적인 타이밍 파라미터 및 시퀀스를 선택하도록 구성될 수 있다.
일부 예에서, 프로세서는 유동성 및 레이턴시 분산에 기반하여 타겟 베뉴를 선택하도록 구성될 수 있다. 첫 번째 시나리오에서, 큰 레이턴시 분산을 가진 베뉴를 완전히 피함으로써 큰 제안된 트랜잭션이 포착될 수 있는 경우, 프로세서는 큰 레이턴시 분산 없이 베뉴로 거래 요청을 선택하고 라우팅하게 구성될 수 있다.
일부 예에서, 프로세서는 큰 레이턴시 분산을 갖는 베뉴와 더 짧은 레이턴시를 갖는 다른 베뉴 사이에 큰 제안된 트랜잭션을 나누도록 구성될 수 있다.
베뉴가 의도적 또는 설계된 지연에 의해 야기된 큰 레이턴시 분산을 갖는 경우, 일부 예에서, 프로세서는 타이밍 시퀀스에서 동일한 베뉴로 다중 오더를 전송함으로써 베뉴에서 유동성을 타겟으로 하도록 구성될 수 있다. 예를 들어, 베뉴 프로세서가 전형적인 오더 실행 레이턴시에 비례하여 무작위로 할당된 지연을 적용하는 경우, 일부 예에서, SOR 프로세서는 이전에 전송된 오더가 지연되어 오더 중 하나가 더 일찍 처리되기를 바라며 하나 이상의 후속 오더를 전송할 수 있다는 것을 감지하도록 구성될 수 있다. 일부 예에서, 프로세서는 동일한 베뉴로의 후속 오더가 처리되었음을 나타내는 오더 확인 또는 응답 메시지를 관찰함으로써 이전에 전송된 오더가 지연되었음을 감지하도록 구성될 수 있다.
일부 예들에서, 다중 오더는 다른 베뉴로의 오더와 함께 무작위로 할당된 지연을 갖는 베뉴로 라우팅될 수 있다. 일부 예에서, 무작위 지연이 있는 베뉴에 다중 오더를 전송함으로써, 적어도 하나의 오더가 거의 또는 전혀 지연 없이 처리될 가능성이 더 높을 수 있다. 일부 예에서, 프로세서는 다른 베뉴로의 오더와 함께 무작위 지연이 있는 베뉴로 버스트(burst) 오더를 코디네이팅하도록 구성될 수 있다. 무작위 지연 베뉴에 대한 낮은 범위의 의도적으로 유도된 지연 및 다른 베뉴에 대한 실행 레이턴시에 기반하여 타이밍 파라미터 및/또는 타이밍 시퀀스를 사용함으로써, 프로세서는 다른 베뉴뿐만 아니라 무작위 지연 베뉴에서도 유동성을 포착할 수 있다. 일부 예에서, 이것은 다른 베뉴에서 손실된 유동성을 감소시킬 수 있고/거나, 무작위 지연 베뉴에서 유동성의 적어도 일부를 포착할 가능성을 증가시킬 수 있다. 일부 예에서, 프로세서에 의해 적용된 이들 타이밍 및 버스트 오더 중 하나 이상은 더 높은 포착율을 초래할 수 있다.
일부 예들에서, 무작위 지연 베뉴로 버스트 오더는 각각 초기 제안된 오더를 과공급할 기회를 줄이기 위해 더 작은 부피에 대한 것일 수 있다.
일부 예에서, 프로세서는 베뉴에 의해 적용되는 유동성 및 지연의 범위에 기반하여 버스트에서 오더의 수 및 크기를 결정하도록 구성될 수 있다. 일부 예에서, 버스트에서 오더의 수 및 크기는 알려진 차익거래 시스템의 수, 이들 시스템의 포트 용량 및/또는 무작위 지연 베뉴에 대한 이들 시스템의 스로틀(throttle) 속도의 함수일 수 있다.
일부 예들에서, 프로세서는 특정 베뉴에 대한 과거 버스트 오더 성능에 기반하여 버스트 오더의 수 및 크기를 결정하도록 구성될 수 있다.
일부 예에서, 유동성의 큰 부분이 다른 베뉴에서 이용가능할 때, 프로세서는 가능한 지연 범위의 짧은 말단에 기반한 타이밍 시퀀스를 갖는 무작위 지연 베뉴로 더 적은 오더를 갖는 버스트를 전송하도록 구성될 수 있다. 일부 예에서, 무작위 지연 베뉴에서 유동성을 잠재적으로 희생시키거나 포기하는 동안, 이것은 다른 베뉴에서 유동성 포착을 우선적으로 처리할 수 있다.
일부 실시예에서, 프로세서는 책에 나타나지 않는 리저브 또는 아이스버그 유동성을 잠재적으로 포착하기 위해 단일 베뉴(무작위 지연 또는 다른 경우)로 다중 오더를 전송하도록 구성될 수 있다.
예를 들어, 이전 오더와 연관된 데이터 또는 데이터 소스로부터 수신된 데이터에 기반하여, 프로세서는 특정 베뉴에서 볼 수 있는 것 이외에 리저브 볼륨이 이용 가능할 수도 있다고 결정할 수 있다.
일부 예에서, 프로세서는 큰 오더를 동일한 베뉴에 대한 2 개 이상의 오더 요청을 포함하는 더 작은 오더 요청으로 나누도록 구성될 수 있다. 일부 예에서, 이러한 두 개의 오더 요청은 베뉴에서 리저브 또는 아이스버그 유동성을 포착하기 위해 타이밍 파라미터 및/또는 시퀀스로 라우팅될 수 있다.
예를 들어, 지난 트랜잭션 데이터를 기반으로 과거 오더 및/또는 베뉴 거동을 분석할 때, 프로세서가 초기 오더가 공급된 후 특정 베뉴는 80㎲에 해당하는 이용가능한 리저브 또는 아이스버그 유동성을 재게시할 수 있다고 결정한 경우, 프로세서는 80㎲ 간격으로 베뉴에 2 회의 오더를 전송하도록 구성될 수 있다. 일부 예에서, 프로세서가 두 개의 오더는 베뉴가 기본 유동성을 재게시했는지 여부에 관계없이 두 번째 오더가 공급될 가능성이 있다고 결정하면, 두 오더간에 80㎲ 미만의 시퀀스로 두 개의 오더를 전송하도록 구성될 수 있다.
다른 예시적인 시나리오에서, 프로세서는 베뉴 A는 가격 X에서 이용가능한 500 쉐어를 가지며 30㎲의 레이턴시를 가지고; 베뉴 B는 가격 X에서 이용가능한 200 쉐어를 가지며 100㎲의 레이턴시를 가지고, 기본 리저브/아이스버그 유동성을 가질 가능성이 높다고 결정할 수 있다.
일부 이러한 예에서, 프로세서는 시간 = 0에서 200 쉐어에 대해 베뉴 B로 1 차 오더, 시간 = 50㎲에서 200 쉐어에 대해 베뉴 B로 2차 오더(베뉴 B에 과부하가 걸리지 않도록, 또는 리저브 유동성이 이용가능하게 되도록, 또는 다르게), 그리고 시간 = 70㎲에 베뉴 A로 500 쉐어에 대한 3 차 오더를 전송하도록 구성될 수 있다. 이 예에서, 프로세서에 의해 결정된 타이밍 시퀀스는 시스템이 베뉴 A에서의 유동성을 여전히 포착하면서 베뉴 B에서 유동성의 다중 세그먼트를 포착할 수 있게 할 수 있다.
일부 예에서, 상대방 시스템이 (리저브/아이스버그 볼륨을 가진) 첫 번째 베뉴 또는 다른 베뉴에서 볼륨이나 가격을 변경할 수 있기 전에, 프로세서는 오더를 분할하고, 첫 번째 베뉴에서 리저브/아이스버그 볼륨의 다중 분획 및 다른 베뉴에서 유동성을 포착하기 위한 타이밍 파라미터/시퀀스를 결정하도록 구성될 수 있다.
서버 간 실행 시간의 변이에 의해 야기된 차익거래 및 기타 문제는 요청 처리의 송신 및 실행에서 절대 레이턴시를 줄임으로써 최소화하거나 제거할 수 있다. 따라서, 전술한 바와 같은 타이밍 파라미터의 결정은 리소스(106, 1106)에 의한 실행 요청의 실행 및/또는 보고와 연관된 시간의 절대량을 최소화하는 역할을 하는 절차와 함께 실행될 수도 있다.
복수의 실행 프로세서들(106, 1106)로 라우터(104, 1104)에 의해 제공된 다중-부분 실행 요청의 다양한 분획들과 연관될 타이밍 파라미터들을 결정하는데 사용되는 결정된 레이턴시에 관한 정보는 타이밍 정보(예를 들어, 송신 지연, 신호 전파 지연, 시리얼화 지연, 큐잉 지연 및/또는 라우터 프로세서(104, 1104)에서 기타 처리 지연, 네트워크화된 컴퓨팅 리소스(106, 1106) 및/또는 네트워크(110, 1110, 108, 1108))를 포함할 수 있다. 이러한 정보는 임의의 소스에 의해 제공되거나 임의의 소스로부터 수신될 수 있으며, 하나 이상의 데이터 저장소(214)에 저장되고 검색될 수 있다. 다양한 실시예에서, 타이밍 데이터 저장소 (214)는 라우터 프로세서(104, 1104)와 연관되거나 그렇지 않으면 액세스가능한 메모리(118, 1018)에 상주하는 데이터베이스 또는 다른 데이터 구조를 포함할 수 있다. 예를 들어, 제 1 네트워크화된 컴퓨팅 리소스(106, 1106)와 연관된 실행 요청의 일부의 실행이 제 2 네트워크화된 컴퓨팅 리소스(106, 1106)와 연관된 것보다 더 긴 결정 레이턴시를 갖는다면(예를 들어, 도 3의 교환 1 대 교환 2 및 3의 경우에서처럼), 이러한 두 개의 네트워크화된 컴퓨팅 리소스(106, 1106)로 라우팅될 트랜잭션 요청의 분획과 연관된 요청에 대한 타이밍은 제 1 네트워크화된 컴퓨팅 리소스(106)와 연관된 실행 요청 또는 그 일부가 제 2 네트워크 컴퓨팅 리소스(106)와 연관된 요청보다 일찍 전송되게 타이밍되게 하고, 두 개의 네트워크화된 컴퓨팅 리소스(106)에서 실질적으로 동시에 또는 거래 서버(304)에 의한 잠재적인 기간 조작과 연관된 유효 최소 시간 A 또는 B내에서 요청이 실행되게 할 목적을 가진다.
일부 실시예에서, 예를 들어 레이턴시 확률 모델 또는 다른 예측 모델을 사용할 수 있는 하나 이상의 알고리즘이, 그러한 통신 및/또는 처리 지연 또는 레이턴시와 연관된 정보에 기반하여, 다양한 실행 프로세서(106, 1106)로 라우팅될 실행 요청의 일부와 연관될 타이밍 파라미터를 결정하는데 사용될 수 있다. 예를 들어, 임의의 원하는 장치, 시간 주기 또는 기타 타이밍 고려사항에 대해 축적되거나 관계된 과거 레이턴시 데이터의 롤링 평균은 데이터 처리 요청의 실행에 대한 예상 레이턴시를 예측하는데 사용될 수 있다.
소스(102, 1102)에 의해 제공된 실행을 위한 요청의 일부와 함께 라우터(104, 1104)에 의해 연관될 타이밍 파라미터를 결정하는데 사용하기에 적합한 알고리즘의 일례는, 네트워크 리소스(106, 1106)에서 그러한 분획들 또는 요청들의 동시 또는 다르게 동기화된 도착을 야기하는 것이 바람직한 경우, 라우터(104, 1104)로부터의 요청 신호들의 송신과 적절한 타이밍 기준 사이의 평균 레이턴시에 기반한다. 이러한 타이밍 기준은 예를 들어 대응하는 타겟화된 리소스(106, 1106)에 의한 처리의 시작, 및/또는 리소스(106, 1106)에 의해 생성된 확인 신호의 라우팅 프로세서(104, 1104)에 의한 수신 및/또는 요청의 실행 완료를 포함한다. 예를 들어, 일부 실시예들에서, 주어진 리소스(106, 1106)로 송신과 이러한 리소스(106, 1106)으로부터 확인 또는 인정 신호 또는 기타 적절한 응답 신호(1260)의 라우터(104, 1104)에 의한 수신 사이의 레이턴시를 측정하고, 210에서 타이밍 파라미터를 결정하는데 그러한 측정된 레이턴시를 사용하는 것이 유리할 수 있다.
프로세스 단계(210)는 예를 들어 금융 시스템(1000)의 경우에 자본 관리 개체 또는 모듈(1126)과 같은 라우팅 프로세서(104, 1104), 또는 그의 모듈 또는 다르게 연관되는 것에 의해 실행되는 애플리케이션에 의해 수행될 수 있다. 다중-부분 실행 요청의 각 부분 또는 세그먼트와 연관될 타이밍 파라미터의 결정은, 예를 들어, 도 1b에 도시된 바와 같이 적응형 교환 왕복 레이턴시(RTL) 학습 및 보상 로직 모듈(1126c)의 사용을 포함 할 수 있다. 도 3을 참조하면, 이러한 적응형 교환 RTL 학습 및 보상 로직 모듈(1126c)은 다음과 같이 각 신호 처리 요구(예를 들어, 거래 요청)에 대한 타이밍을 결정할 수 있다:
1) m-부분 다중-부분 처리 요청 X의 각각의 분획 또는 세그먼트 n에 대해, 예를 들어 프로세서(104, 1104)와 연관된 시계에 의해 제공되는 시간 T1x,n은 트랜잭션 오더, 또는 기타 처리 요청(X)을 분석하거나 생성하는 과정 내에서 원하는 정의된 포인트에서 프로세서(104, 1104)에 의해 타임 스탬프되고, m-부분 요청 X의 각각의 부분 또는 세그먼트 n에 대응하는 프로세싱 요청 신호 세트 레코드에 연관된다.
2) 다중-부분 요청 X의 각 분획 n에 대한 T2x,n은, 대응하는 n번째 분획 요청 신호 세트가 타겟화된 교환(106, 1106)에서 수신되고 대응하는 교환-생성된 확인 메시지가 요청 라우팅 프로세서(104, 1104)에 의해 수신될 때, 프로세서(104, 1104)에 의해 타임 스탬프된다.
3) 거래하는 날(또는 기타 데이터 처리 기간) 동안, 처리 단계 2 및 3이 반복될 수 있고, 대응하는 T1x,n 및 T2x,n이 주어진 실행 프로세서(106, 1106)에 라우팅된 각 트랜잭션 세그먼트에 대해 결정될 수 있다.
4) 후속하는 계속 중인 다중 부분 실행 요청 Y의 각 분획 세그먼트 n에 대해, 결정된 타이밍 파라미터 RTLy,n = Σ(T2x,n-T1x,n)/Z이고, 여기서 Z 는 계산에 사용된 소정의 실행 프로세서(106, 1106)로 라우팅되는 이전에 실행된 오더 세그먼트의 수이다.
타이밍 데이터 저장소(214)가 하나 이상의 실행 리소스(106)/교환 서버(1106)와 연관된 과거의 타이밍 파라미터(예를 들어, 복수의 결정된 타이밍 파라미터 RTLy,n)의 롤링 레코드를 저장하는 경우, 이러한 데이터는 각각의 리소스(106)/교환 서버(1106)에 대한 현재 또는 누적 레이턴시를 예측하는데 사용될 수 있는 롤링 히스토그램(rolling histogram)을 생성하는데 사용될 수 있다. 이러한 예측은 지속적으로 변화하는("롤링") 레코드를 기반으로 하기 때문에 이 프로세스는 "온라인 학습"이라고 지칭될 수 있다. 이를 담당하는 적응형 교환 RTL 학습 및 보상 로직 모듈(1126c) 내의 컴포넌트(예를 들어, 교환 레이턴시 히스토그램 메모리 또는 처리 컴포넌트, 도시되지 않음)가 있을 수 있다.
적응형 교환 RTL 학습 및 보상 로직 모듈(1126c)은, 예측된 레이턴시를 사용하여, 상이한 교환 서버들(1106)로 라우팅된 분할된 거래 요청들의 분획들의 실행의 타이밍에서 차이를 감소, 제어, 최소화 또는 제거하는, 따라서 예를 들어 기회주의 거래자들에 의한 레이턴시 차익거래에 대한 기회를 감소시키거나 제거하는 방식으로, 이러한 교환 서버(1106)과 연관된 실행 레이턴시의 차이를 보상하기 위해 다양한 교환 서버(1106)로의 거래(또는 기타 데이터 처리) 요청을 송신하는데 사용될 적절한 타이밍 파라미터를 결정할 수 있다.
적응형 RTL 모듈(1126c)은 다중-부분 처리 요청들의 실행을 동기화하는데 사용하기에 적합한 타이밍 파라미터들을 결정하는데 있어서 다양한 알고리즘을 사용할 수 있다. 예를 들어, 이러한 모듈은 다양한 교환에 대해 결정된 레이턴시 값들을 사용하여, 예를 들어 라우터(104, 1104)가 상이한 시간들에서 처리에 대한 요청의 그들의 대응하는 분획들을 다양한 프로세서들(106, 1106)로 전송함으로써 상이한 교환 레이턴시를 보상해야 하는 정도를 결정할 수 있다. 이것은, 예를 들어, 대응하는 실행 리소스(106, 1106)에 의한 각 개별적인 분획의 수신 사이의 시간에서 차이를 최소화함으로써 각 분획의 실행 완료 사이의 지연을 최소화 할 수 있다. (도 3에서, 예를 들어, 이것은 시간 X, 시간 Y 및 시간 Z에서 경과된 시간들 사이의 차이를 최소화하는 것으로 도시될 것이다.) 이러한 알고리즘은 또한 통신 지연 이외에도 다양한 리소스(106, 1106)에 대한 거래 또는 기타 처리 명령의 실행에 필요한 시간의 과거와의 차이를 설명할 수 있다. 적응형 RTL 모듈(1126c)은, 예를 들어 네트워크 모니터링 모델, 네트워크 모니터링 로그 등을 유지하기 위해 타이밍 범위를 결정하도록 구성될 수 있다.
또한, 적응형 RTL 모듈(1126c)은 공급율, 거래 포착 비율, 예측된 네트워크 특성 등과 같은 정보에 따라 타이밍 파라미터/시퀀스의 자동 동조를 위해 구성될 수 있다.
적응형 교환 RTL 학습 및 보상 로직 모듈(1126c)은, 거래 요청이 전송될 때, (예를 들어, 교환 시장 데이터 소스(1126v)와 같은 데이터의 소스를 사용하여) 각 교환 서버(1106)에서 우세한 시장 조건에 관한 정보, 웨이브 오더/실행, 실제 레이턴시 및 타겟 레이턴시(예: 상기 예상한 바와 같이)을 추가적으로 수집할 수 있다. 이를 담당하는 적응형 교환 RTL 학습 및 보상 로직 모듈(1126c) 내에 컴포넌트가 있을 수 있다.
임의의 하나 이상의 실행 프로세서(106, 1106)로 라우팅될 실행 요청과 연관된 하나 이상의 타이밍 파라미터는, 또한 (예를 들어, 임의의 하나 이상의 프로세서들 또는 (서브)시스템들(1126a 내지 1126g 및/또는 1126v)을 포함하는) 하나 이상의 시장 데이터 공급 또는 프로세서(1126)에 의해, 및/또는 프로세서(106, 1106)에 의해 대응하는 라우팅 프로세서(104, 1104)(예를 들어, 타이밍 데이터 저장소(214))로 제공될 수 있거나, 또는 공급되는 관련된 데이터를 사용하는 이러한 프로세서(104, 1104)에 의해 결정될 수 있다.
일부 예에서, 프로세서는 다양한 타이밍 파라미터 및/또는 베뉴 선택 요인에 무작위로 작은 변이를 도입함으로써 진화하도록 구성될 수 있다. 수득되는 포착 비율을 시간에 따라 측정하고, 타이밍 파라미터 및/또는 베뉴 선택 요인을재조정함으로써, 프로세서는, 일부 예에서, 보다 최적의 타이밍 및/또는 요인 가중으로 진화할 수 있다. 일부 예에서, 이러한 피드백 루프는 프로세서가 네트워크, 베뉴, 경쟁자의 거동 등의 임의의 변화를 자동으로 조정할 수 있게 한다.
일부 예에서, 포착 비율 또는 공급율을 고려함으로써, 프로세서는 포착 비율에 영향을 줄 수 있는 근본적인 요인이 무엇인지에 대한 구체적인 이해 없이 네트워크 상태, 네트워크 리소스 상태, 경쟁자 거동과 같은 근본적인 요인을 본질적으로 설명할 수 있다. 일부 예에서, 이는 가능한 모든 근본적인 요인에 대한 잠재적인 복잡한 계산 없이 변경 또는 변이를 조정할 수 있는 더 단순한 시스템 및/또는 더 효율적인 시스템을 야기할 수 있다.
212에서, 선택적으로 집합되고 분할된 신호 처리 실행 요구의 다양한 분획들이 210에서 결정되거나 다르게 획득된 타이밍 파라미터 또는 시퀀스에 따라 각각의 네트워크화된 컴퓨팅 리소스(106)로 전송된다. 그 후, 요청 또는 그의 다양한 분획은 필요에 따라 또는 원하는 후속 신호 통신 및 처리와 함께 개별적인 실행 리소스(106, 1106)에 의해 실행될 수 있다. 관련 기술 분야의 당업자에 의해 이해되는 바와 같이, 이들이 본 개시 내용에 익숙해지면, 일단 원하는 실행 요청의 파라미터가 라우터(104, 1104)에 의해 결정되면, 이들 파라미터를 나타내는 신호는 알려진 또는 특수화된 데이터 처리 기술을 사용하여 어셈블링될 수 있고; 금융 정보 교환(Financial Information Exchange, FIX) 프로토콜 및/또는 기타 원하는 프로토콜에 따라 포맷될 수 있고; 대응하는 실행 프로세서(106, 1106)로 송신, 기록 또는 달리 통신될 수 있고, 요청된 트랜잭션 또는 기타 데이터 프로세스들에 따라 실행될 수 있다.
예를 들어, 상기 예를 계속하면, 타이밍 지연 또는 하나 또는 모두가 0이거나 임의의 다른 적절한 시간과 같을 수 있는 파라미터 X', Y', Z'가 상기 개시 내용에 따라 결정될 수 있고, 가격 D 및 E에서 리저브된 각각 25,000 로트(18, 000 + 7, 000)와 함께, 가격 A에서 CUSIP No. AA 채권 77,000 채권 로트의 구매를 위해 프로세서(1104)에 의해 생성된 오더 세그먼트와 연관될 수 있다:
<지연 X'><교환 A1><판매><CUSIP No. AA><15,000><가격 A>
<res. 6,000><가격 D><res. 2,000><가격 E>
<지연 Y'><교환 B2><판매><CUSIP No. AA><27, 000><가격 A>
<res. 6,000><가격 D><res. 2,500><가격 E>
<지연 Z'><교환 C3><판매><CUSIP No. AA><35, 000><가격 A>
<res. 6,000><가격 D><res. 2,500><가격 E>
 
그 후, 라우팅 프로세서(104, 1104)는 대응하는 트랜잭션 세그먼트가, 동시 또는 다르게 요구되는 순차적인 실행을 위해, 원하는 타이밍 시퀀스에 따라 실행하기 위해, A1, B2, C3를 교환(106, 1106)으로 전송되거나 다르게 제공되게 하기 위해, 타이밍 파라미터, 예를 들어 지연 X', Y', Z'를 사용함으로써 트랜잭션 세그먼트를 처리할 수 있다.
하술되는 라우팅된 트랜잭션 또는 처리 세그먼트의 전부 또는 가능한 많은 분획의 실행을 위해, 라우팅 프로세서(104, 1104)는 대응하는 실행 프로세서(106, 1106)로부터 그러한 실행을 확인하거나 지시하는 데이터를 수신할 수 있고, 연관된 메모리에 저장된 데이터 레코드에 액세스함으로써 실행 결과를 요청 소스(102, 1102)에 할당할 수 있다.
이제 다중 네트워크화된 컴퓨팅 리소스(106)에 의한 데이터의 처리를 관리하는데 사용될 타이밍 파라미터를 결정하는 방법(300)의 예를 도시하는 도 4를 참조한다. 도시된 실시예에서, 방법(300)은 반복적인 방법이며, 방법(300)의 각 루프는 N으로 표시된다. 방법(300)은, 예를 들어 라우터 프로세서(104, 1104) 및 데이터 소스(1126)를 포함하는, 시스템(100, 1000)의 임의의 다양한 실시예 및 그의 컴포넌트를 사용하여 구현하기에 적합하다.
302에서, 각각의 복수의 네트워크화된 컴퓨팅 리소스(106, 1106)는 예를 들어 라우터 프로세서(104, 1104), 실행 프로세서(106, 1106), 외부 프로세서(1126), 및/또는 신호 처리 실행 요청의 수신 및/또는 실행과 연관된 레이턴시 동안, 그에 의해 또는 그와 연관되어 동작하는 다양한 컴포넌트 또는 모듈에 의해 모니터링된다. 이는 예를 들어 라우터 프로세서(104, 1104) 내에 모니터링 모듈(예를 들어, 금융 시스템(1000)과 같은 교환 RTL 측정 모듈(1126b))에 의해 수행될 수 있다. 이러한 모니터링은, 예를 들어 데이터의 처리를 위한 발신 요청을 타임 스탬핑(time stamping)하는 것 및 확인의 수신의 시간 또는 대응하는 타임 스탬핑된 발신 요청과 처리 결과를 비교하는 것을 포함할 수 있다. 발신 요청과 수신 확인 및/또는 데이터 처리 결과 간의 시간차는 데이터 또는 신호 처리 레이턴시로서 정의될 수 있으며, 라우터 프로세서(104, 1104)에 의해 액세스가능한 메모리에 저장될 수 있다. 발신 요청과 수신 접수, 확인 및/또는 결과 간의 타이밍 차이에 의해 이러한 레이턴시는 지속적, 주기적 및/또는 기타 동적 기준으로 모니터링될 수 있다.
306에서, 라우팅 프로세서(104, 1104)에 의해 모니터링된 리소스(106, 1106)로 제공된 신호 처리 요구들의 실행에서 관찰되는 레이턴시들과 연관된 적어도 하나의 타이밍 파라미터가 결정된다. 본 명세서에 설명된 바와 같이, 그러한 타이밍 파라미터는, 예를 들어 전송 지연 또는 다른 신호 전파 지연 및/또는 처리 지연과 같은 통신 지연으로 인한 레이턴시를 포함할 수 있다. 전형적으로, 대응하는 타이밍 파라미터는 트랜잭션 오더 또는 다른 데이터 프로세싱 요구 또는 그 일부가 라우팅 프로세서(104, 1104)에 의해 전송될 것으로 예상되는 각각의 복수의 네트워크화된 컴퓨팅 리소스(106, 1106)에 대해 결정된다.
다양한 실시예에서, 다양한 형태의 금융 시스템(1000)에서와 같이, 사용되는 시스템의 유형 및 원하는 처리 결과에 따라, 그러한 타이밍 파라미터는 자본 관리 개체 및 교환 서버(1106)에 의해 또는 이를 대신하여 동작하는 라우팅 프로세서(1104) 사이의 일방 및/또는 왕복 통신에 대해, 즉 자본 관리 개체의 라우팅 프로세서(1104)에 의한 다중 부분 트랜잭션 요청의 생성으로부터 더 큰 거래 오더의 부분의 수신의 확인 및/또는 요청된 거래의 전부 또는 부분의 실행의 확인과 같은 응답의 접수에 이르기까지, 처리 요청이 지시된 실행 리소스로부터 결정될 수 있다. 도 1b를 참조하면, 예를 들어, RTL 측정은, 라우팅 프로세서(104, 1104)로부터의 통신 및 교환 서버(106, 1106)로부터 송신된 응답(예를 들어, 통신의 확인, 거래 요청의 거부, 거래 요청의 확인 등) 둘 다를 위해, 자본 관리 개체 서버(1104) 내의 신호의 전송의 일부 또는 전부, 자본 관리 개체(1104) 내의 신호의 처리, 자본 관리 개체(1104) 및 네트워크(1110), 네트워크(1110) 내의 신호의 송신, 네트워크(1110)와 타겟 교환 서버(1106) 사이의 신호의 송신, 및 교환 서버(1106) 내의 신호의 처리를 포함할 수 있다. 그러한 실시예에서, 타이밍 파라미터는 단순히 왕복 통신에 대한 총 시간, 또는 그의 통계적 또는 다른 수학적 함수일 수 있다.
예를 들어, 도 1b에 도시된 SOR(1104)과 연관된 것과 같은 교환 RTL 측정 모듈(1126b)은 하기와 같은 타이밍 파라미터를 결정할 수 있다:
1) 타임 스탬프 값 T1은 프로세서(1104)에 의해 교환 서버(1106)에 전송된 새로운 통신 M1(예를 들어, 거래 요청)과 연관된다.
2) 타임 스탬프 값 T2는 프로세서(1104)에 의해 요청(M1)이 전송된 교환 프로세서(1106)로부터 수신된 요청(M1)에 대한 임의의 응답과 연관된다. 이 응답은 승인, 거절, 전체 또는 부분 공급 등과 같은 응답일 수 있으며, M1에 의해 대표되는 요청의 특성에 따라 달라질 수 있다.
3) 요청(M1)과 연관된 RTL은 T2와 T1의 차이로 계산된다. 일부 실시예에서, 상기한 바와 같이, RTL은 복수의 타겟 교환 프로세서(1106) 각각에 라우팅된 처리 요청의 과거 수 Z(예를 들어 30)에 대한 시간(T2- T1)의 평균으로서 계산될 수 있다.
308에서, 각각의 네트워크화된 컴퓨팅 리소스(106)와 연관된 타이밍 파라미터는 타이밍 데이터 저장소(214)에 저장될 수 있다. 본 명세서에 설명된 바와 같이, 타이밍 데이터 저장소(214)는 일부 예에서 라우터 프로세서(104)와 연관되거나 그렇지 않으면 액세스가능한 메모리에 상주하는 데이터베이스 또는 다른 데이터 구조일 수 있다. 타이밍 데이터 저장소(214)에 저장된 타이밍 파라미터는 도 2의 처리 블록(210)과 관련하여 전술한 바와 같은 처리에 사용될 수 있다.
프로세서(들)(104, 1104)가 결정한 타이밍 파라미터(들)은 예컨대 개별 실행 프로세서(106, 1106) 및/또는 시스템(들)(100, 1000)의 다른 컴포넌트와 연관된 레이턴시를 나타내는 롤링 히스토그램(들)을 나타낼 수 있다.
도 5는 통신과 연관된 프로세싱 레이턴시 시간값 및/또는 시스템(100, 1000)의 실행 프로세서(106, 1106)와 연관된 다른 프로세싱을 나타내는 저장된 데이터를 도시하는 히스토그램의 예시를 도시한다. 도시된 예에서, 왕복 레이턴시 시간(ms)이 최근 30개의 트랜잭션 요청 또는 주어진 실행 서버(106)와의 다른 통신에 대해 저장된다. 예시가 30개의 레이턴시 시간이 저장되는 것으로 도시하지만, RTL을 결정하는데 사용되는 저장된 타이밍 파라미터(들) 또는 다른 타이밍 파라미터의 개수는 크거나 작을 수 있고, 시간, 계절 등과 같은 조건에 따라 달라질 수 있다. 저장된 레이턴시에 기반한 계산 결과 및 다른 관련 데이터도 타이밍 데이터 스토어(들)(214)에 저장될 수 있다. 예를 들어, 도 5의 예시에서, 로우 레이턴시 시간에 추가로, 각 실행 서버(106)와의 또는 이에 의한 통신 및/또는 다른 프로세싱과 연관된 과거 30개(또는 다른 적절한 수)의 레이턴시 시간의 롤링 평균 또는 롤링 최빈값(mode)도 계산되고 타이밍 데이터 스토어(들)(214)에 저장될 수 있다.
관련 분야의 숙련자에게 쉽게 이해되는 바와 같이, 예컨대 소정의 고정 오프셋이나 딜레이를 포함하는 추가 인자 또는 시간, 요일, 계졀 등, 알려진 거래나 다른 데이터 처리 패턴, 경제적 조건 등과 연관된 스케일링 인자가 타이밍 파라미터를 결정하는데 210에서 사용될 수 있다.
210에서 결정된 타이밍 파라미터는 소스(들)(102, 1102)에서 발생한 처리 요청의 실행을 동기화하기 위하여 라우팅 프로세서(들)(104, 1104)에 의해 사용되고, 라우팅 프로세서(들)(104, 1104)에 의해 사용가능한 데이터 아이템을 예컨대 다수의 실행 프로세서(들)(106, 1106) 각각에 의한 실행을 위해 전달되는 이러한 요청이나 그 일부와 연관시킴으로써 실행 프로세서(들)(106, 1106)로 유도되어, 소정의 절대 또는 상대 시간에 대응하는 프로세서(들)(106, 1106)에 요청의 통신을 야기하여, 대응하는 실행 프로세서(들)(106, 1106)에서 요청의 도달의 소정의 동기화를 달성한다. 예를 들어, 프로세서(들)(104, 1104)과 연관된 클록에 따라 주어진 시간(들)에 요청의 하나 이상의 일부의 통신을 야기하도록 구성된 데이터 아이템을 사용함으로써, 프로세서(들)(104, 1104)는 요청(들)이나 요청 부분(들)이 소정의 시간, 또는 임의의 소정의 상대 순서나 실제 시간과 무관하나 서로 또는 어떤 제3의 인덱스에 관한 순서로 통신되도록 야기할 수 있다.
310에서, N은 1, 또는 다른 적절한 값만큼 증가하거나, 컨트롤이 다르게 302로 반환되어 프로세스 302 내지 308이 계속된다. 선택적으로 프로세스 302 내지 310은 최대 소정의 반복 수가 완료될 때까지, 또는 주문에 의한 거래나 다른 프로세싱에 대한 모든 요청이 처리될 때까지(예컨대, 실행 프로세서(들)(106, 1106)로 라우팅), 또는 다른 적절한 기준이 만족될 때까지 계속된다.
일부 측면에서, 시스템(들)(100, 1000), 또는 그 컴포넌트의 운영자와 사용자의 다수의 네트워크 컴퓨팅 자원에 의한 데이터의 처리를 야기하기 위한 개시된 방법 및 시스템의 효과의 이해나 평가를 돕기 위하여, 본 명세서는 시스템(100, 1000)의 다양한 컴포넌트 중 임의의 것 또는 전부에 의해 결정되고, 이로부터 생성된 데이터의 사용을 통해 결정될 수 있는 다양한 척도(예컨대, 금융 시스템(1000)의 경우 거래 벤치마크)도 제공한다.
이제 개시된 방법 및 시스템의 예시에 따른 복수의 네트워크 컴퓨팅 자원 또는 실행 프로세서(106, 1106)으로 멀티 파트 거래 실행 요청의 전송 결과와 종래의 전송된 멀티 파트 거래 요청의 결과의 비교를 도시하는 도 6을 참조한다.
도 6a는 복수의 거래소 프로세서들(106, 1106)에 의한 멀티 파트 거래 요청(판매 순)의 다양한 파트 또는 세그먼트(624)의 동기화된(도시된 예에서, 실질적으로 동시) 실행을 획득하기 위한 개시된 방법 및 시스템을 사용한 멀티 파트 거래 요청의 실행 결과를 도시한다. 도시된 예시에서, 원래의 집계 주문의 94%의 필 레이트가 $4.21의 원래의 주문 가격(630)("Level 1"로 도시)에서 달성되었다. 거래의 두 번째 단계(626으로 도시된 바와 같이 단일 거래로 채워짐)에서 남은 양은 덜 바람직하지만 허용 가능한 $4.20의 가격(632)으로 팔렸다("Level 2"로 도시). 요청된 주문 가격 아래로 채워진 주문(즉, Level 2의 주문)과 연관된 비용은 트레이더 시스템(1102)(예컨대, 클라이언트 시스템)에 대해 $53,000이고 자본 관리 엔티티(1106)에 대해 $10,049이다.
도 6b에서, 선행 기술의 거래 방법 및 시스템을 사용하여, 동일한 전체 거래 요청에 대한 다수의 동기화되지 않은 주문 세그먼트(624')로 이루어진 동기화되지 않은 멀티 파트 거래 요청(다중 거래소 판매 주문)이 $4.21의 선호되는 주문 가격(630)에서 47%의 초기 필 레이트("Level 1"로 도시)로 이어진다. 추가 43%의 요청은 이어서 $4.20의 덜 바람직한 가격(632)("Level 2"로 도시)으로 채워지고, 나머지는 $4.19의 더 감소된 가격(634)("Level 3"으로 도시)에서 채워진다.
628에 도시된 바와 같이, 본 명세서에 따른 방법 및 시스템을 사용하여, $4.2094/주의 거래량 가중 평균 판매 가격(VWAP)(636)이 실현된다. 선행 기술의 방법과 시스템을 사용하여, $4.2038/주의 VWAP(638)이 실현되었다.
관련 분야의 숙련자에게 쉽게 이해되는 바와 같이, 시스템(100, 1000)은 매우 다양한 추가 척도와 기능을 제공하기 적합한 장치나 컴포넌트를 포함할 수 있다. 예를 들어, 라우팅 프로세서(104, 1104)이나 다른 프로세서에 의한 예컨대, 시장 뉴스 서비스나 다른 시장 데이터 소스(1126v)에 의해 제공되는 시장 평균 가격에 대한 벤치마크 비교의 제공의 두 예시를 도시하는 도 7을 참조한다. 646에서, 본 발명에 따른 멀티 파트 거래 요청의 동기화 처리에 있어 시스템(100, 1000)의 성능이 시장 성능 지표 "평균 가격 벤치마크"와 비교된다. 이러한 평균 가격 벤치마크 또는 다른 벤차마크나 척도 인자는 예컨대 컴포넌트(1126, 1106) 중 임의의 것 또는 전부로부터 획득될 수 있다. 644에서, 선행 기술의 방법에 따른 멀티 파트 거래 요청의 비동기화 처리에 있어 시스템(100, 1000)의 성능이 동일한 시장 성능 지표 "평균 가격 벤치마크"와 비교된다. 비교(646, 644)의 비교는 본 발명에 따른 거래의 처리가 금융 상품의 판매자에 더 나은 결과를 제공함을 나타낸다. 관련 분야의 숙련자에 의해 이해되는 바와 같이, 매우 다양한 벤치마크가 본 발명에 따른 시스템 및 방법의 성능을 평가하는데 사용될 수 있다. 이러한 벤치마크는 적어도 부분적으로 사용되는 시스템(100, 1000)의 특성 및 거래나 이러한 시스템에 의해 처리되는 다른 실행 요청의 유형에 의해 결정될 수 있다.
도 8은 다수의 네트워크 컴퓨팅 자원에 의한 데이터의 처리를 조정하기 위한 예시적인 방법(800)의 양상을 도시하는 흐름도이다. 방법은 시스템(1000)의 예컨대 SOR(1104)과 같은 라우터 프로세서(들)(104)에 의한 또는 임의의 하나 이상의 프로세서에 의한 구현에 적합하다.
도 8의 예시적인 방법(800)의 양상은 도 2 및 4에 도시되고 본 명세서에 서술된 다양한 예시적인 실시예에 서술된 것과 유사하거나 동일하다. 따라서, 이들 도면과 관련되어 서술되거나 본 명세서에 서술된 임의의 예시 또는 구현의 세부 사항은 도 8의 방법에 적용될 수 있다. 유사하게, 도 8에 응답하여 서술된 예시 또는 구현의 세부 사항은 도 2 및 4의 예시적인 방법에 유사하게 적용될 수 있다. 이들 양상의 이들 모든 변형 및 조합이 본 명세서에 의해 고려된다.
810에서, 시스템(1000)의 하나 이상의 프로세서(104)는 네트워크 컴퓨팅 자원(106)과 연관된 데이터를 모니터링한다. 본 명세서에 서술되는 바와 같이, 일부 실시예에서, 네트워크 컴퓨팅 자원과 연관된 데이터는, 무엇보다도, 이전에 네트워크 컴퓨팅 자원으로 라우팅된 데이터 처리 세그먼트와 연관된 데이터를 포함한다.
일부 실시예에서, 이전에 라우팅된 데이터 처리 세그먼트와 연관된 데이터는 언제 데이터 처리 세그먼트가 라우팅되는지(예컨대, 타임스탬프를 사용하여), 언제 데이터 처리 세그먼트가 네트워크 컴퓨팅 자원에서 처리되는지(예컨대, 응답 메시지의 타임스탬프나 처리 시간 필드), 언제 응답 메시지가 시스템에서 수신되는지(예컨대, 타임스탬프를 사용하여)와 연관된 타이밍 정보를 포함할 수 있다. 일부 실시예에서, 이러한 데이터를 모니터링하는 것은 데이터 처리 세그먼트에 대한 실행 레이턴시(및/또는 상이한 레이턴시 컴포넌트)를 결정하는 것과 그들을 대응하는 네트워크 컴퓨팅 자원과 연관시키는 것을 포함시킬 수 있다.
일부 실시예에서, 데이터 모니터링은 상이한 타입의 데이터 처리 세그먼트에 대한 레이턴시를 모니터링하고 비교하는 것을 포함할 수 있다. 예를 들어, 동일한 베뉴로 라우팅되는 상이한 타입의 데이터 처리 세그먼트는 유사한 전송 레이턴시를 가질 수 있지만, 데이터 처리 세그먼트의 실제 실행과 연관된 상이한 레이턴시를 가질 수 있다. 다른 예시에서, 상이한 길이 또는 심지어 명령어의 부족을 가지는 데이터 처리 세그먼트는 동일한 네트워크 컴퓨팅 자원으로 라우팅될 때 상이한 레이턴시를 가질 수 있다.
다른 예시에서, 부적절하게 포맷된 데이터 처리 세그먼트는 네트워크 컴퓨팅 자원에 의해 빠르게 거절되어 프로세서가 이러한 데이터 처리 세그먼트와 연관된 레이턴시의 전부 또는 대부분이 전송 레이턴시에 기인한 것으로 가정하도록 구성될 수 있다.
일부 실시예에서, 시스템의 프로세서는 특정 네트워크 컴퓨팅 자원과 연관된 상이한 레이턴시 컴포넌트가 상이한 주문 타입/길이/기타에 대한 전체 레이턴시 간의 차이에 기반한다고 결정하도록 구성된다.
일부 예시에서, 레이턴시 컴포넌트는 보내는 전송 레이턴시, 실행 레이턴시 및 반환 전송 레이턴시(예컨대, 응답 메시지의)를 포함할 수 있으나 반드시 이에 제한되지 않는다.
이전에 라우팅된 데이터 처리 세그먼트와 연관된 모니터링되는 데이터는 일부 실시예에서 데이터 처리 세그먼트가 성공적으로 처리됐는지 여부 및/또는 성공한 정도를 가리키는 하나 이상의 응답 메시지의 데이터를 포함할 수 있다. 예를 들어, 거래 요청을 나타내는 데이터 처리 세그먼트, 거래 요청에 대한 하나 이상의 응답 메시지의 데이터는 거래가 이행됐는지, 및/또는 거래가 이행된 가격을 가리킬 수 있다.
이전에 라우팅된 데이터 처리 세그먼트와 연관된 모니터링되는 데이터는 웨이브 중 초기 데이터 처리 세그먼트가 라우팅된 때, 또는 초기 라우팅 이전에 게시되거나 다르게 네트워크 컴퓨터 자원에서 사용가능하게 알려진 금융 상품의 유동성을 가리키는 데이터를 포함할 수 있다.
일부 실시예에서, 이전에 라우팅된 데이터 처리 세그먼트와 연관된 데이터 모니터링은 각 데이터 처리 세그먼트 및/또는 전체로서 하나 이상의 데이터 프로세스에 대한 하나 이상의 점유율을 결정하는 것을 포함할 수 있다. 프로세서(들)은 거래 요청에 의해 점유된 실제 유동성과 네트워크 컴퓨팅 자원에서 타게팅된 가용 유동성을 비교함으로써 점유율을 결정할 수 있다. 이전에 라우팅된 데이터 처리 세그먼트의 점유율은 세그먼트에서 세그먼트 기반으로 및 원래의 하나 이상의 데이터 프로세스에서 분할된 모든 데이터 처리 세그먼트에 걸쳐 모니터링될 수 있다.
일부 실시예에서, 모니터링되는 데이터는 네트워크 컴퓨팅 자원 각각에 대한 정보 누설의 위험을 식별하는 데이터 파라미터를 포함할 수 있다. 예를 들어, 파라미터는 공동 위치되거나 활성 저-레이턴시 제3자 서버의 존재, 하나 이상의 거래 요청 타입을 촉진하는 리베이트 방식, 이전에 컴퓨팅 네트워크 컴퓨팅 자원으로 라우팅된 데이터 처리 세그먼트와 연관된, 하나 이상의 관련 데이터 처리 세그먼트가 성공적이지 않았음을 가리키는 데이터를 가리키도록 설정될 수 있다. 일부 예시에서, 데이터 모니터링은 모니터링되는 데이터에 기반하여 정보 누설 위험 점수를 생성하는 것을 포함한다.
일부 실시예에서, 시스템은 네트워크 컴퓨팅 자원으로의 다수의 네트워크 경로를 가진다. 이들 실시예에서, 특정 네트워크 컴퓨팅 자원과 연관된 모니터링되는 데이터는 경로별 기반으로 모니터링/연관될 수 있다.
경로에 추가로, 일부 예시에서, 모너티링되는 데이터는 레이턴시 데이터 및/또는 하나 이상의 경로 및/또는 하나 이상의 경로상의 장치(들)을 따른 경로 세그먼트(들)에 대한 상태 정보도 포함할 수 있다.
일부 실시예에서, 데이터 모니터링은 본 명세서에 서술된 바와 같이 또는 다르게 하나 이상의 컴포넌트나 장치로부터 데이터를 획득, 측정 또는 요청하는 것을 포함할 수 있다. 일부 데이터 모니터링은 다양한 계산을 수반할 수 있다.
데이터 모니터링은 시스템의 하나 이상의 메모리나 데이터 저장 장치에 데이터를 저장하는 것을 포함할 수 있다. 일부 실시예에서, 네트워크 컴퓨팅 자원과 연관된 다수의 데이터 포인트는 수집되어 데이터에 대한 범위 및/또는 분포/확률을 제공할 수 있다.
820에서, 프로세서(들)는 하나 이상의 데이터 소스(102)로부터 하나 이상의 네트워크 컴퓨팅 자원(106)에 의해 실행가능한 하나 이상의 데이터 프로세스의 실행을 위한 명령어를 나타내는 신호를 수신한다. 상술한 바와 같이, 예컨대 도 2와 관련하여, 하나 이상의 데이터 프로세스는 일부 실시예에서, 거래 및/또는 금융 상품의 다른 거래의 실행을 위한 요청을 나타낼 수 있다.
일부 예시에서, 데이터 프로세스(들)의 실행을 위한 명령어는 데이터 프로세스 실행을 위한 특정 파라미터를 포함할 수 있는데, 프로세스 우선 순위, 정보 누설에 대한 허용치, 임의의 데이터 처리 세그먼트 간의 최대 허용 가능 레이턴시 기간, 원하는 라우팅 경로, 원하는 베뉴, 특정 라우팅 명령 등을 포함한다.
830에서, 모니터링된 데이터에 기반하여, 프로세서(들)은 하나 이상의 데이터 프로세스에 대한 데이터 처리 세그먼트를 준비한다. 일부 예시에서, 데이터 처리 세그먼트 준비는 수신된 하나 이상의 데이터 프로세스를 실행하기 위한 데이터 처리 세그먼트의 수와 크기을 결합, 분할 또는 다르게 결정하고 준비하는 것을 포함할 수 있다.
일부 실시예에서, 프로세서(들)의 데이터 프로세스의 적어도 하나의 데이터 처리 세그먼트로의 준비나 분할은 하나 이상의 데이터 처리 세그먼트를 라우팅할 네트워크 컴퓨팅 자원의 선택을 포함할 수 있다. 이 선택은 네트워크 컴퓨팅 자원과 연관된 모니터링되는 데이터에 기반한다.
데이터 프로세스 준비/분할은 데이터 처리 세그먼트 각각의 크기 결정도 포함한다. 일부 실시예에서, 이것은 처리 작업의 크기 또는 거래 요청의 크기를 포함할 수 있다. 프로세서는 모니터링된 데이터에 기반하여 데이터 처리 세그먼트 각각의 크기를 결정하도록 구성된다.
일부 실시예에서, 선택과 크기 결정은 데이터 프로세스와 연관된 금융 상품(들)의 네트워크 컴퓨팅 자원에서의 가용 유동성, 정보 누설 위험 및 네트워크 컴퓨팅 자원과 연관된 레이턴시(들) 중 하나 이상을 포함하는 모니터링되는 데이터에 기반할 수 있다.
데이터 처리 세그먼트의 준비가 다수의 네트워크 컴퓨팅 자원에서의 가용 유동성 타게팅에 기반할 수 있지만, 일부 예시에서, 프로세서(들)는 단일 데이터 처리 세그먼트가 단일 네트워크 컴퓨팅 자원으로 보내진다고 결정할 수 있다. 대안적으로, 이것은 다른 네트워크 컴퓨팅 자원으로 크기 0의 데이터 처리 세그먼트를 보내거나 데이터 처리 세그먼트를 보내지 않는 것으로 볼 수 있다.
840에서, 프로세서(들)는 데이터 처리 세그먼트에 대한 타이밍 파라미터를 결정한다. 타이밍 파라미터는 모니터링되는 데이터에 기반하고, 데이터 처리 세그먼트의 라우팅 개시 타이밍의 차이를 식별할 수 있다. 일부 예시에서, 타이밍 파라미터는 제1 데이터 처리 세그먼트가 제2 데이터 처리 세그먼트의 라우팅 시간에 대해 라우팅되는 타이밍 오프셋 또는 지연을 정의할 수 있다. 일부 예시에서, 타이밍 파라미터는 제1 데이터 처리 세그먼트가 제2 데이터 처리 세그먼트의 라우팅 시간에 대해 라우팅되는 시간 범위를 정의할 수 있다.
일부 실시예에서, 타이밍 파라미터는 시간 범위 내에 상이한 시간 하위 범위와 연관된 정보 누설에 대한 확률 또는 위험 인자를 정의할 수 있다.
타이밍 파라미터는 데이터 처리 세그먼트의 동기화된 실행을 야기하도록 결정된다. 일부 예시에서, 타이밍 파라미터는 가능한 한 가깝게 데이터 처리 세그먼트들이 실행되도록 하는 목적으로 결정될 수 있다. 일부 예시에서, 타이밍 파라미터는 원하는 순서 및/또는 원하는 상대적 타이밍으로 데이터 처리 세그먼트들이 실행되도록 하는 목적으로 결정될 수 있다. 일부 예시에서, 타이밍 파라미터는 가능한 한 유동성이 크게 및/또는 가능한 한 바람직한 가격으로 점유하도록 하는 목적으로 결정될 수 있다. 일부 예시에서, 타이밍 파라미터는 하나 이상의 네트워크 컴퓨팅 자원에서 랜덤하게 도입된 지연의 분포에 기반하여 결정될 수 있다.
850에서, 프로세서(들)는 타이밍 파라미터에 기반하여 각각의 네트워킹 컴퓨팅 자원으로 데이터 처리 세그먼트의 라우팅을 개시한다.
본원에 서술된 바와 같이 또는 다르게, 데이터 프로세스의 분할, 수, 데이터 처리 세그먼트의 크기와 목적지 네트워크 컴퓨팅 자원의 결정은 네트워크 컴퓨팅 자원과 연관된 모니터링되는 데이터에 기반한다.
일부 경우에, 프로세서는 하나 이상의 네트워크 컴퓨팅 자원에 대한 가용 유동성, 정보 누설의 위험 및/또는 레이턴시 분산 간의 상이한 트레이드오프를 고려하도록 구성된다.
예를 들어, 디플트로 또는 데이터 프로세스가 수신된 데이터 소스와 연관된 위험 허용치에 기반하여, 프로세서(들)는 데이터 누설과 유동성을 잃는 부분의 높은 위험에도 불구하고 가능한 한 높은 유동성 또는 더 나은 가격에 타게팅하기 위해 데이터 처리 세그먼트 및 타이밍 파라미터를 준비할 수 있다. 반대로, 상이한 디폴트 또는 데이터 소스와 연관된 더 낮은 위험 허용치에 기반하여, 프로세서(들)는 데이터 누설의 더 낮은 위험과 더 작은 양의 유동성을 타게팅하기 위하여 데이터 처리 세그먼트와 타이밍 파라미터를 준비할 수 있다.
본 명세서에 서술된 바와 같이 또는 다르게, 일부 실시예에서 프로세서는 가용 유동성에 기반하여 데이터 처리 세그먼트와 타이밍 파라미터를 준비할 수 있다.
도 4의 예시에 도시된 바와 갈이, 계속적으로 및/또는 주기적으로 네트워크 컴퓨팅 자원과 연관된 데이터를 모니터링함으로써, 시스템은 일부 경우에, 레이턴시, 위험 인자, 유동성 등과 같은 더 정확하고 및/또는 최신의 데이터를 확립할 수 있다. 일부 예시에서, 시간이 지남에 따라, 모니터링되는 데이터는 모니터링되는 데이터의 하나 이상의 타입의 빈도, 분포 등을 확립할 수 있다.
일부 예시에서, 타이밍 파라미터와 이전에 이해된 데이터 처리 세그먼트와 웨이브에 대한 결과 데이터를 모니터링함으로써, 프로세서는 더 나은 결과를 제공하는 로컬 최소값 또는 최대값을 확립할 수 있다. 일부 실시예에서, 라우팅을 위한 타이밍 파라미터를 결정 및/또는 적용할 때, 프로세서(들)는 랜덤 타이밍 변화를 타이밍 시퀀스에 도입할 수 있다. 일부 예시에서, 이들 변화는 타이밍 파라미터에 비해 작을 수 있고 및/또는 변화된 시간이 여전히 타이밍 파라미터를 충족하는 범위 내에 있도록 선택될 수 있다. 일부 예시에서, 타이밍 변화의 도입 및 영향 받는 데이터 처리 세그먼트와 연관된 데이터를 모니터링함으로써, 타이밍 파라미터에 대한 조정이 더 최적의 값으로 더 빠르게 수렴하거나, 상이한 로컬 최소값/최대값을 발견하도록 이어질 수 있다.
일부 경우에, 예를 들어 특정 네트워크 컴퓨팅 자원이 랜덤으로 지연 또는 속도 범프를 도입할 때, 타이밍 파라미터 분포는 멀티모달일 수 있다. 일부 실시예에서, 프로세서는 데이터 프로세스를 특정 네트워크 컴퓨팅 자원으로 라우팅되는 적어도 두 개의 데이터 처리 세그먼트로 분할할 수 있고, 멀티모달 분포에 기반하여 타이밍 파라미터를 확립할 수 있다. 예를 들어, 프로세서는 네트워크 컴퓨팅 자원에서 고의 지연이나 스피드 범프에 영향 받지 않고 실행되는 적어도 데이터 프로세싱의 서브셋을 가지는 목표로 더 작은 거래 요청을 가지는 데이터 처리 세그먼트의 버스트를 생성할 수 있다.
도 1b에 도시된 실시예에서, 프로세서(들)(104)에 의해 금융 거래나 다른 데이터 처리 실행 요청을 준비하는데 사용가능한 모니터링되는 데이터의 소스(들)(1126)는 멀티 파트 실행 요청을 준비하는데 유용한 복수의 모듈(1126a-g)을 포함한다. 도시된 예시에서, 모듈(1126a-g)은 시장 데이터 처리 모듈(1126a), 거래소 왕복 레이턴시 측정 모듈(1126b), 적응성 거래소 RTL(round-trip latency) 학습 & 보상 로직 모듈(1126c), 스마트 스위핑 공유 할당 로직 모듈(1126d), 스마트 포스팅 로직 모듈(1126e), 지역 및 국제 거래소 접속 로직 모듈(1126f) 및 공격성 관리 모듈(1126g)을 포함한다.
시장 데이터 처리 모듈(1126a)은 시장 데이터를 수신 및 처리하는데, 거래소 서버(1106)의 거래소 시장 데이터 모듈(1126v)을 통해 제공되는 데이터와 동일하거나 상이할 수 있다. 이런 데이터의 소스들은 필요에 따라 원하는 바에 따라 시스템(1104)에 대해 내부적이거나 외부적일 수 있고, 실행요청들 및 특히 거래 주문을 분할하거나 아니면 준비하는데 유용한 이런 요청들에 유용한 데이터의 임의의 적절한 사적 또는 공적 이용가능한 소스들을 포함할 수 있다: 제공된 정보는 예컨대 임의의 특별한 거래소에 이용가능한 개수 또는 수량 및/또는 가격; 역사적 거래수량 또는 가격; 시장(들) 또는 유동성의 현재 및 역사적 깊이; 보유 크기; 절대, 상대 및/또는 평균 가격폭; 및 주식 또는 특정 상품(interest)의 휴리스틱스(heuristics); 및/또는 그 중 어느 하나 또는 모두에서의 경향을 포함할 수 있다.
거래소 RTL 측정 모듈(1126b)은 예컨대 본 명세서에 설명된 바와 같이 개개의 실행 프로세서(들)(106,1106)에 요청 또는 기타 데이터를 전송하는 것과 개별 실행 서버(들)로부터 확인 또는 실행 결과를 수신하는 것 간에 경과된 시간(들)을 나타내는 통계적으로 정의된 지연 데이터를 이용해 복수의 거래소 서버들(1106)에 의한 여러 부분 거래 또는 기타 데이터 프로세싱 요청의 실행을 동기화하는데 사용하기 위한 타이밍 파라미터를 결정한다.
적응식 거래소 RTL 측정 모듈(1126c)은, 예컨대, 본 명세서에 설명된 바와 같이, 개별 실행 서버(들)(106,1106)에 여러 프로세싱 요청들 또는 기타 데이터를 전송하는 것과 개별 실행 서버(들)로부터 확인 또는 실행 결과를 수신하는 것 간에 경과된 시간(들)을 나타내는 동적으로 정의된("롤링") 지연 데이터를 이용해 복수의 거래소 서버들(1106)에 의한 여러 부분의 거래 또는 기타 데이터 프로세싱 요청의 실행을 동기화하는데 사용하기 위한 타이밍 파라미터들을 결정한다. 이런 롤링 데이터를 나타내는 히스토그램 및 기타 데이터 모델 및/또는 구조는 모듈(들)(1126c)에 의해 이런 프로세스들에 따라 타이밍 파라미터를 결정하는데 사용될 수 있다.
스마트 스위핑 주식 할당 로직 모듈(1126d)은 전략적으로 오버사이즈 거래 요청 및/또는 역사적으로 관찰된 시장 데이터를 기초로 공개적으로 알려진 주문들과 보유량(들)을 관련시키기 위한 통계적 모델을 포함한다. 이 모듈(1126d)은 예컨대 주어진 주기에 걸쳐 또는 다른 특정 조건(예컨대, 지난 30개 거래 요청)하에서 상기 거래소 서버(1106)에 이용가능한 숨겨진 보유량에 대한 통계적 데이터를 기초로 거래소 서버(1106)에서 예상된 숨겨진 보유량을 고려해 공개 주문시 포함된 적절한 오버사이즈(즉, 거래 요청시 과도주문)를 결정한다. 이런 예상된 숨은 시장 보유량을 기초로, 공개적으로 볼 수 있는 주문의 전략적 오버사이즈로 발생하고 실제 소정 거래량이 구현되는 것을 보장하는데 도움을 줄 수 있게 적절한 크기의 숨겨진 보유량이 결정되고 거래 주문과 관련될 수 있다.
스마트 포스팅 로직 모듈(1126e)은 개개의 거래소 서버(1106)에 라우팅된 거래 요청시 구현될 것으로 예상되는 체결 가능성(즉, 거래 요청의 퍼센트 만족)을 결정하기 위한 통계적 모델을 포함한다. 이런 통계적 모델은 예컨대 주어진 주기(예컨대, 지난 30개의 거래요청, 지난 달, 이전 12개월 등)에 걸쳐 이런 개별 거래소에서 구현된 역사적 체결 데이터를 포함할 수 있다. 스마트 포스팅 로직 모듈(1126e)은, 예컨대 다른 요인들 중에서 각 거래소 서버(1106)에서 최우선호가(the top of book)의 깊이, 거래소 서버들(1106)에 걸쳐 변동성 수준, 및 거래 요청의 실행을 위한 평균 지연시간을 포함한 요인들을 고려할 수 있다.
또한 스마트 포스팅 로직 모듈(1126e)은 예컨대 주문이 제출 및/또는 전송된 때 원하는 유동성을 주문의 실행을 통해 달성된 실제 점유된 유동성으로 나눔으로써 과거 주문에 대한 거래 점유율을 결정하도록 구성될 수 있다.
지역 및 국제 거래소 접속 로직모듈(1126f)은 거래소 서버(1106)가 지역적이거나 국제적인지 여부에 따라 거래 요청이 거래소 서버(1106)로 보내져야 하는지에 대한 정보를 제공한다. 피관찰 규제들 등 이용되는 적절한 프로토콜(들)에 대한 내부 및/또는 외부 저장된 데이터가 이런 데이터를 제공하는데 이용될 수 있다. 이런 데이터는 예컨대 요청(들)이 제공된 자원(들)(106,1106)을 고려해 라우팅 프로세서(들)(104,1104)에 의해 외부 자원(106,1106)으로 라우팅된 거래 또는 기타 프로세싱 요청들이 적절히 포맷되도록 보장하고 이런 요청(들)이 모든 적용가능한 법적 기준에 맞는 것을 보장하는데 이용될 수 있다.
공격성 관리 로직 모듈(1126g)은 개개의 거래소 서버들(1106)에 대한 체결 퍼센트의 확률을 결정하고 따라서 이런 서버들에 라우팅된 실행요청을 변경하기 위한 확률 모델을 포함한다. 이런 모듈(1126g)은 다른 요인들 중에서, 예컨대, 각 거래소 서버(1106)에서 필 레이트, 각 거래소 서버(1106)에서 최우선호가(depth-of-book) 및 거래소 서버들(1106)을 가로지르는 변동성 수준들과 같은 요인들을 고려할 수 있다.
일부 실시예에서, 특별히 구성된 주문 메시지가 주문 라우팅에 이용될 수 있다. 예를 들어, 라우터 프로세서(1104)는 FIX 메시지(또는 다른 프로토콜) 메시지 처리를 위한 것일 수 있다. 시스템의 베뉴 측은 처리의 스케줄링 파트와 다음 메시지 처리 기능을 수행한다.
시퀀스 번호 조정 - 주문이 스케줄링되어야만 시퀀스 번호가 결정될 수 있기 때문이다. 이를 위하여, FIX 엔진은 언제나 널, 고정 길이의 시퀀스 번호 필드를 생성하고(8개나 9개의 영 "000000000"와 같이), 스케줄러는 이 필드에 실제 시퀀스 번호를 덮어쓸 것이다.
시퀀스 번호에 기반하여 체크섬 조정 - 처리를 줄이기 위하여, FIX 엔진은 "000000000" 시퀀스 번호 필드에 대한 올바른 체크섬으로 메시지를 전달할 것이다. 그리고 스케줄러가 시퀀스 번호를 업데이트할 때, 체크섬에서 시퀀스 번호의 0이 아닌 문자를 빼고, 이로써 전체 메시지에 대한 체크섬의 재계산을 피하고 매우 단순하고 기계적 동작으로 처리를 감소시킨다.
시퀀스 번호는 다시 라우터 프로세서(1104)의 송신 FIX 엔진으로 전달되어 세션 로그/상태에 통합될 수 있다.
베뉴로부터의 메시지는 스케줄러를 우회하고 FIX 엔진에 의해 직접 처리될 것이다.
일부 실시예에서, 스케줄링과 메시지 업데이트는 고속 코딩 기술과 잠재적 하드웨어 가속(FPGA 등에서)에 스스로를 제공하여 매우 "기계적인" 동작으로 감소될 수 있다.
상술한 바와 같이, 일부 실시예에서, 주문 웨이브가 큐에서 제거되고 연관된 베뉴로 라우팅되는 시퀀스는 본 명세서에 서술되거나 다른 임의의 인자에 기반할 수 있다.
타이밍 시퀀스의 거래 요청 라우팅는 웨이브/시퀀스의 하나 이상의 거래 요청을 지연시키는 것을 포함할 수 있다. 일부 경우에, 이것은 거래의 점유율을 향상시킬 수 있으나, 시간 순서대로 다수의 거래 요청을 라팅하는 것은 본질적으로 한번에 보내는 것보다 오래 걸릴 수 있다.
일부 예시에서, 208 및/또는 210에서, 프로세서(들)는 다수의 웨이브의 거래 요청을 라우팅하기 위한 시퀀스를 결정하도록 구성될 수 있다. 일부 예시에서, 이것은 상이한 웨이브에 대한 거래 요청의 적어도 일부를 동시에 배치하거나, 중첩시키거나 또는 다르게 라우팅하는 것을 포함할 수 있다.
일부 예시에서, 프로세서(들)는 베뉴에서 과부하나 큐를 피하기 위해 준수되어야 하는 최소 메시지 간격과 같은 일반적인 타이밍 파라미터뿐만 아니라 웨이브 내부의 타이밍 파라미터를 준수하며 다수의 웨이브의 거래 요청을 시퀀싱하도록 구성될 수 있다.
일부 예시에서, 일반적 또는 베뉴 특유의 타이밍 파라미터는 레이턴시와 필 레이트와 같은 관측된 타이밍 인자에 기반할 수 있다. 일부 예시에서, 일반적 또는 베뉴 특유의 타이밍 파라미터는 네트워크 장치, 링크 및/또는 베뉴와 연관된 특성에 기반할 수 있다. 이들 특성은 장치, 링크 및/또는 처리량이나 성능 제한, 서비스 수준 계약에 기반한 성능 인자를 포함할 수 있으나 이에 제한되지 않는다.
예를 들어, 도 10의 표는 네트워크 성능 모니터링, 과거 주문 내역 및/또는 과거 주문 데이터로부터 수신 또는 결정된 모니터링되는 데이터의 예시를 도시한다.
이들 레이턴시와 처리량의 예시로, 예시적인 시나리오에서, 도 11a의 4개의 주문이 수신된다(그리고 연관된 디폴트 타이밍 파라미터가 디스플레이된다).
수정 없이, 웨이브들 사이의 10 마이크로초 처리 속도를 가정하면 도 11b의 표는 주문이 라우팅되는 시간과 괄호 안에 주문이 베뉴 프로세서(들)에 도달하고 타이밍 오류를 낳는 시간을 나열한다.
이 예시에서, 만약 타이밍 오류가 타겟의 100 마이크로초 내에 있어야 한다면, 웨이브 B, C 및 D 각각은 타겟을 충족하지 못한다. 이 시나리오는 라우터의 시간 2130 마이크로초와 베뉴를 포함하여 2910 마이크로초를 필요로 한다.
다른 시나리오의 예시에서, 웨이브 C와 D는 관계 없는 심볼에 대한 것이므로 먼저 보내지는 것으로 재정렬될 수 있다. 도 11c의 표는 만약 웨이브 D가 웨이브 A 직후 시작되고, 웨이브 B와 C가 동시에 시작되는 경우의 타이밍을 도시한다.
웨이브 B, C 및 D가 모두 100 마이크로초 타겟을 놓치지만, 4개의 웨이브 전부를 처리하는 전체 시간에 향상이 있다(라우터에서 1310 마이크로초 및 베뉴를 포함해 2600 마이크로초).
도 11d에 도시된 다음 시나리오에서, 웨이브는 베뉴 혼잡을 예측하고 주문 웨이브 시퀀스를 보존하도록 라우팅된다.
도시된 바와 같이, 모든 웨이브는 100 마이크로초 타겟을 만족하지만, 처리 시간은 3700 마이크로초로 증가했다.
도 11e에 도시된 바와 갈이, 다음 시나리오에서, 웨이브 타이밍 핸들러는 베뉴 처리량/혼잡 및 레이턴시 모두에 기반하여 웨이브간 타이밍 시퀀스뿐만 아니라 웨이브 내부의 타이밍 시퀀스로 라우팅되도록 주문을 스케줄링하도록 구성될 수 있다.
위의 시나리오에서, 모든 웨이브는 100 마이크로초 타겟을 충족하고, 처리 시간은 라우터 및 베뉴에 대해 2300 마이크로초이다.
일부 예시에서, 웨이브 타이밍 핸들러는 다음 N개의 웨이브에 대해 최적 또는 최고의 사용가능한 스케줄을 결정하도록 구성될 수 있다. 일부 예시에서, N이 작을 때(예컨대, 10 미만), 웨이브 타이밍 핸들러는 모든 가능한 시퀀스의 결과 핸들링 시간을 계산하고 최고를 선택함으로써 브루트 포스 알고리즘을 사용할 수 있다.
일부 예시에서, N이 크거나 브루트 포스 접근이 웨이브 라우팅 프로세스에 과도한 지연을 낳을 때, 웨이브 타이밍 핸들러는 정의/할당된 양의 소비 시간/사이클 내에서 가능한 많은 가능한 시퀀스를 계산하고 최고를 선택하도록 구성될 수 있다.
일부 예시에서, 프로세서(들)는 다른 작업 스케줄링 최적화 알고리즘을 적용하여 최단 처리 시간에 상이한 웨이브를 스케줄링하도록 구성될 수 있다.
일부 예시에서, 스케줄링 알고리즘에 포함되는 웨이브의 수는 베뉴 및/또는 웨이브의 거래 요청의 수에 의존할 수 있다.
도 12는 다수의 네트워크 컴퓨팅 자원에 의한 데이터 처리를 조정하기 위한 예시적인 방법(1200)의 양상을 도시하는 흐름도이다. 1210에서, 프로세서는 웨이브나 세션 큐에서 데이터 처리 웨이브를 획득한다. 데이터 처리 웨이브는 하나 이상의 데이터 처리 세그먼트 및 각 데이터 처리 세그먼트가 라우팅되는 대응하는 네트워크 컴퓨팅 자원을 식별한다. 데이터 처리 웨이브는 하나 이상의 데이터 처리 세그먼트가 라우팅되는 타이밍 시퀀스도 식별한다.
1220에서, 프로세서는 네트워크 컴퓨팅 자원 각각에 대한 최소 저리 간격을 획득한다. 일부 실시예에서, 처리 간격은 네트워크 컴퓨팅 자원과 연관된 모니터링되는 데이터에 기반할 수 있다.
1230에서, 프로세서는 웨이브 타이밍 시퀀스 및 네트워크 컴퓨팅 자원에 대한 처리 간격에 기반하여 데이터 처리 웨이브를 라우팅하기 위해 주문을 스케줄링한다. 일부 실시예에서, 주문의 스케줄링은 네트워크 컴퓨팅 자원 처리 간격 위반 및 데이터 처리 웨이브의 타이밍 시퀀스 위반 없이 상이한 데이터 처리 웨이브의 데이터 처리 세그먼트를 배치하는 순서 결정을 포함한다.
일부 예시에서, 타이밍 시퀀스는 한 데이터 처리 세그먼트가 제2 데이터 처리 세그먼트를 라우팅하는 시간에 대해 라우팅될 수 있는 허용 가능한 시간 범위를 포함할 수 있다. 일부 실시예에서, 데이터 처리 웨이브를 라우팅하기 위한 주문 스케줄링은 이들 시간 범위 내에서 하나 이상의 웨이브에 대한 라우팅 시간 시퀀스 조정을 포함할 수 있다.
일부 실시예에서, 프로세서는 웨이브 큐에서 M개의 데이터 처리 웨이브를 획득하고, M개의 데이터 처리 웨이브의 각 가능한 배열에 대한 총 처리 시간을 결정하도록 구성된다. 프로세서는 그 후 최단 총 처리 시간을 가지는 배열에 기반하여 주문을 스케줄링한다.
일부 실시예에서, 프로세서는 추가 파라미터를 고려한다. 예를 들어, 선택이 가능하면, 프로세서는 가장 적은 수의 네트워크 컴퓨팅 자원(베뉴) 세션을 사용하는 배열을 선택하도록 구성될 수 있다. 다른 예시에서, 프로세서는 상이한 데이터 처리 세그먼트가 동일한 금융 상품에 대한 거래 요청에 대한 것인지 여부를 고려할 수 있고, 임의의 충돌을 피하거나 줄이기 위해 배열을 선택할 수 있다. 다른 유사한 인자는 주문 크기, 가격, 거래 당사자 등을 포함한다.
데이터 처리 웨이브의 수 M의 선택은 M개의 웨이브에 대한 모든 주문 배열을 평가하는데 필요한 시간 대 주문 웨이브 프로세서가 웨이브를 라우팅하는데 필요한 전체 처리 시간에 의존할 수 있다. 만약 평가 시간이 너무 높다면, 병목 현상이 발생하고 평가가 수행되는 동안 유휴 상태가 되도록 허용하여 라우팅 자원을 낭비할 수 있다. 이것은 네트워크 컴퓨팅 자원에서 가격이나 유동성이 변화함으로써 잠재적으로 점유율을 감소시키는 기간을 증가시킬 수 있다. 만약 M이 너무 작으면, 라우팅 자원은 낭비되는데 웨이브의 스케줄링을 최적화하는 기회가 더 적을 수 있기 때문이다.
일부 예시에서, 웨이브의 수 M은 자원 및/또는 웨이브 처리 시간이 변화함에 따라 동적으로 선택될 수 있다.
일부 실시예에서, 프로세서는 시간 제한 만료 전 평가될 수 있는 M개의 웨이브에 대해 가능한 많은 배열을 계산한다. 시간 제한이 만료되면, 평가된 배열에서 최고의 스케줄이 선택된다.
일부 실시예에서, 프로세서는 웨이브 큐에서 M개의 웨이브를 선택하고 스케줄링하도록 구성된다. 하지만, 스케줄링된 주문에서 첫 W개의 웨이브만이 라우팅되는 한편 스케줄의 나머지 M-W개의 웨이브와 웨이브 큐의 다음 W개의 웨이브가 평가되어 다음 주문 스케줄링을 결정한다.
일부 실시예에서, 시스템은 스케줄링된 웨이브의 주문 하나(또는 주문의 서브셋)을 라우팅하는 한편 동시에 다음 주문을 위한 스케줄을 계산한다. 이 프로세스의 파이프라인은 일부 예시에서, 성능 향상으로 이어질 수 있다.
일부 예시에서, 웨이브 큐 및/또는 세션 큐로부터의 웨이브의 선택은 하나 이상의 우선 순위 스킴에 기반할 수 있다. 이들 스킴은 배치(batch), 라운드 로빈, 선입 선출 등을 포함할 수 있다. 일부 실시예에서, 우선 순위 스킴은 규제 요건 충족에 기반한다. 일부 예시에서, 우선 순위 스킴은 금융 상품 심볼, 주문 크기, 가격, 우선 순위, 클라이언트, 가격 책정 스킴, 계약상 의무 등에 기반한 규칙을 포함한다.
일부 실시예에서, 큐로부터의 웨이브 선택은 특정 웨이브에 대한 전체 라우팅/처리 시간에 기반할 수 있다. 예를 들어, 만약 웨이브가 빡빡한 타이밍 파라미터(즉, 데이터 처리 세그먼트 사이의 작은 딜레이, 따라서 더 짧은 처리 시간)를 가진다면, 다음 스케줄에 쉽게 들어갈 수 있거나 다르게 더 높은 처리량을 낳는 경우 더 긴 처리 시간을 가지는 웨이브보다 높은 우선 순위가 매겨질 수 있다.
850에서, 시스템은 스케줄에 기반하여 정렬된 데이터 처리 웨이브의 데이터 처리 세그먼트 각각을 라우팅한다.
본 명세서에 서술한 바와 같이, 프로세서는 네트워크 컴퓨팅 자원과 연관된 데이터를 모니터링한다. 일부 실시예에서, 프로세서는 동일 네트워크 컴퓨팅 자원으로 라우팅되는 둘 이상의 데이터 처리 세그먼트가 네트워크 컴퓨팅 자원을 위한 과거 레이턴시 값보다 긴 하나 이상의 레이턴시를 초래할 때 모니터링된 데이터로 식별함으로써 최소 처리 간격 시간을 획득한다. 관련된 데이터 처리 세그먼트 간의 시간의 차이는 네트워크 컴퓨팅 자원을 위한 최소 처리 시간을 정의하는데 사용될 수 있다. 일부 예시에서, 더 긴 레이턴시는 데이터 처리 세그먼트 중 하나가 네트워크 컴퓨팅 자원에서(또는 경로를 따라)큐됨을 나타낼 수 있다.
유사하게, 일부 실시예에서, 프로세서는 일반적으로 일반보다 긴 레이턴시가 관측되기 전에 최소 처리 시간 내에 동일 네트워크 컴퓨팅 자원에 라우팅될 수 있는 데이터 처리 세그먼트의 수를 식별할 수 있다. 일부 예시에서, 이 수는 후속 요청이 큐되기 전 사용 중이어야 하는 네트워크 컴퓨팅 자원의 프로세서 등의 수를 나타낼 수 있다.
일부 실시예에서, 모니터링되는 데이터(예컨대, 레이턴시, 점유율)가 네트워크 컴퓨팅 자원(또는 경로)가 혼잡함을 나타낼 때, 프로세서는 영향을 받는 네트워크 컴퓨팅 자원으로 라우팅하기 위해 적어도 하나의 데이터 처리 세그먼트를 가지는 임의의 웨이브를 지연시키거나, 재스케줄링하거나, 재준비할 수 있다.
일부 실시예에서, 데이터 모니터링은 스케줄링된 웨이브 주문으로부터 동일 목적지로 라우팅되거나 다른 방법으로 타이밍 파라미터, 처리 시간, 혼잡 임계치 등을 결정하기 위한 좋은 테스트 케이스로 작용할 가능성이 있는 다양한 데이터 처리 세그먼트를 식별하는 것을 포함한다. 일부 예시에서, 테스트 능력을 가지는 이들 데이터 처리 세그먼트를 식별하고 구체적으로 모니터링함으로써, 시스템은 일부 경우에, 테스트 데이터 처리 세그먼트를 전송할 필요성을 감소시킬 수 있다.
본 명세서는 특정 현재 바람직한 실시예와 연계하여 제공되고 예시되어 있으나, 본 명세서에 개시된 본 발명(들)의 기술사상 및 범위로부터 벗어남이 없이 많은 변형 및 변경들이 이루어질 수 있다. 따라서, 본 명세서 및 본 발명(들)은 상기 나타낸 정확한 구성요소 또는 방법 및 구성의 세부내용에 국한되지 않는다. 본 프로세스 자체 필요하거나 고유한 정도를 제외하고, 도면을 포함한 본 명세서에 기술된 방법 또는 프로세스들의 단계들 또는 국면들에 특별한 주문이 전혀 의도되거나 포함되지 않는다. 많은 경우, 프로세스 단계의 순서는 기술된 방법의 목적, 효과 또는 의미를 바꾸지 않고 변할 수 있다. 청구의 범위는 균등물 원리 및 관련 원리에 대한 고려로 인해 주어진 특허청구범위에 의해서만 단지 정의된다.

Claims (67)

  1. 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 시스템으로서,
    상기 시스템은:
    복수의 네트워크 컴퓨팅 자원과 관련된 데이터를 모니터하고;
    복수의 네트워크 컴퓨팅 자원에 의해 실행가능하고 적어도 하나의 데이터 프로세스의 실행을 위한 명령어를 나타내는 신호를 하나 이상의 데이터 자원으로부터 수신하며;
    모니터된 데이터에 기반하여:
    복수의 네트워크 컴퓨팅 자원 중 하나로 각각 라우팅되는 적어도 하나의 데이터 프로세싱 세그먼트로 적어도 하나의 데이터 프로세스를 분할하고;
    복수의 네트워크 컴퓨팅 자원 중 대응하는 하나와 각각 관련되는 복수의 타이밍 파라미터를 결정하며;
    타이밍 파라미터에 기반하여 타이밍 시퀀스에서 대응하는 복수의 네트워크 컴퓨팅 프로세서로 적어도 하나의 데이터 프로세싱 세그먼트를 라우팅하도록 구성되는 적어도 하나의 프로세서를 포함하며,
    모니터된 데이터는 복수의 네트워크 컴퓨팅 자원으로 이전에 라우팅된 데이터 프로세싱 세그먼트와 관련된 데이터를 포함하고,
    복수의 타이밍 파라미터는 복수의 네트워크 컴퓨팅 프로세서에 의해 적어도 하나의 데이터 프로세싱 세그먼트의 동기화된 실행을 야기하도록 결정되는, 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 시스템.
  2. 제 1 항에 있어서,
    복수의 네트워크 컴퓨팅 자원과 관련된 데이터를 모니터하는 것은:
    대응하는 복수의 네트워크 컴퓨팅 프로세서로의 적어도 하나의 데이터 프로세싱 세그먼트의 라우팅에 응답하여 메시지를 수신하고;
    수신된 메시지로부터, 적어도 하나의 데이터 프로세스에 대한 적어도 하나의 캡쳐 비율(capture ratio)을 결정하는 것을 포함하며,
    적어도 하나의 추후 데이터 프로세싱 세그먼트에 대한 복수의 타이밍 파라미터를 결정하는 것은 적어도 하나의 캡쳐 비율에 적어도 부분적으로 기반하는, 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 시스템.
  3. 제 1 항에 있어서,
    복수의 네트워크 컴퓨팅 자원과 관련된 데이터를 모니터하는 것은:
    대응하는 복수의 네트워크 컴퓨팅 프로세서로의 적어도 하나의 데이터 프로세싱 세그먼트의 라우팅에 응답하여 메시지를 수신하고;
    수신된 메시지로부터, 적어도 하나의 데이터 프로세스에 대한 적어도 하나의 캡쳐 비율을 결정하며;
    적어도 하나의 캡쳐 비율이 정의된 임계치 미만이거나 과거 평균에서 정의된 임계치만큼 변하는 경우 잠재적인 하드웨어 고장을 표시하는 경보를 생성하는 것을 포함하는, 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 시스템.
  4. 제 1 항에 있어서,
    복수의 네트워크 컴퓨팅 자원과 관련된 데이터를 모니터하는 것은:
    복수의 네트워크 컴퓨팅 자원 중 하나로의 데이터 프로세싱 세그먼트의 라우팅과 관련된 대기시간(latency)의 컴포넌트를 결정하는 것을 포함하며,
    컴포넌트를 결정하는 것은 복수의 네트워크 컴퓨팅 자원 중 하나로의 서로 다른 유형의 데이터 프로세싱 세그먼트의 라우팅과 관련된 대기시간의 차이에 기반하는, 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 시스템.
  5. 제 1 항에 있어서,
    복수의 네트워크 컴퓨팅 자원과 관련되는 모니터된 데이터는 시스템으로부터 네트워크 컴퓨팅 자원으로 데이터 프로세싱 세그먼트를 라우팅하기 위해 다수의 루트(routes)와 관련된 데이터를 포함하는, 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 시스템.
  6. 제 5 항에 있어서,
    다수의 루트와 관련된 데이터는 적어도 하나의 루트 세그먼트 또는 다수의 루트 중 적어도 하나의 장치에 대한 대기시간 데이터 또는 상태 정보를 포함하는, 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 시스템.
  7. 제 1 항에 있어서,
    복수의 네트워크 컴퓨팅 자원과 관련되는 모니터된 데이터는 네트워크 컴퓨팅 자원 중 대응하는 하나로부터 정보 유출의 위험을 식별하기 위한 데이터를 포함하는, 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 시스템.
  8. 제 1 항에 있어서,
    적어도 하나의 데이터 프로세싱 세그먼트로 적어도 하나의 데이터 프로세스를 분할하는 것은:
    적어도 하나의 데이터 프로세싱 세그먼트 중 적어도 하나가 복수의 네트워크 컴퓨팅 자원 중 어느 것으로 라우팅되는지를 선택하고;
    각각의 선택된 네트워크 컴퓨팅 자원에 대하여, 대응하는 적어도 하나의 데이터 프로세싱 세그먼트의 크기를 결정하는 것을 포함하는, 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 시스템.
  9. 제 8 항에 있어서,
    상기 선택 및 크기의 결정은: 가용 유동성(available liquidity), 정보 유출의 위험, 및 복수의 컴퓨팅 자원과 관련된 대기시간 중 적어도 하나에 기반하는, 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 시스템.
  10. 제 9 항에 있어서,
    상기 가용 유동성은 공시된 유동성 및 예상 유동성을 포함하는, 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 시스템.
  11. 제 1 항에 있어서,
    상기 타이밍 파라미터는 제1 데이터 프로세싱 세그먼트가 제2 데이터 프로세싱 세그먼트의 라우팅 시간에 대하여 라우팅되는 허용가능한 시간 범위를 정의하는, 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 시스템.
  12. 제 1 항에 있어서,
    적어도 하나의 프로세서는:
    복수의 데이터 프로세싱 세그먼트를 라우팅하기 위해 임의의 타이밍 변화를 타이밍 시퀀스에 도입하고;
    임의의 타이밍 변화로 라우팅되는 데이터 프로세싱 세그먼트와 관련된 데이터를 모니터하며;
    대응하는 복수의 네트워크 컴퓨팅 프로세서와 관련된 타이밍 파라미터를 조정하도록 구성되고,
    상기 임의의 타이밍 변화는 복수의 타이밍 파라미터를 만족하는 범위 내에 있는, 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 시스템.
  13. 제 1 항에 있어서,
    복수의 네트워크 컴퓨팅 자원과 관련된 데이터를 모니터하는 것은:
    대응하는 복수의 네트워크 컴퓨팅 프로세서로의 복수의 데이터 프로세싱 세그먼트의 라우팅에 응답하여 메시지를 수신하고;
    네트워크 컴퓨팅 프로세서 중 하나로 라우팅되는 데이터 프로세싱 세그먼트와 관련되는 수신된 메시지에 기반하여 네트워크 컴퓨팅 프로세서 중 하나와 관련된 실행 대기시간의 분배를 결정하는 것을 포함하며,
    적어도 하나의 프로세서는 상기 분배에 기반하여 제2 데이터 프로세싱 세그먼트가 라우팅되는 시간에 대하여 제1 데이터 프로세싱 세그먼트가 라우팅될 수 있는 하나 이상의 시간 범위를 기초로 타이밍 시퀀스를 결정하도록 구성되는, 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 시스템.
  14. 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 방법으로서,
    복수의 네트워크 컴퓨팅 자원과 관련된 데이터를 모니터하는 단계;
    복수의 네트워크 컴퓨팅 자원에 의해 실행가능하고 적어도 하나의 데이터 프로세스의 실행을 위한 명령어를 나타내는 신호를 하나 이상의 데이터 자원으로부터 수신하는 단계;
    모니터된 데이터에 기반하여:
    복수의 네트워크 컴퓨팅 자원 중 하나로 각각 라우팅되는 적어도 하나의 데이터 프로세싱 세그먼트로 적어도 하나의 데이터 프로세스를 분할하는 단계;
    복수의 네트워크 컴퓨팅 자원 중 대응하는 하나와 각각 관련되는 복수의 타이밍 파라미터를 결정하는 단계; 및
    타이밍 파라미터에 기반하여 타이밍 시퀀스에서 대응하는 복수의 네트워크 컴퓨팅 프로세서로 적어도 하나의 데이터 프로세싱 세그먼트를 라우팅하는 단계를 포함하며,
    모니터된 데이터는 복수의 네트워크 컴퓨팅 자원으로 이전에 라우팅된 데이터 프로세싱 세그먼트와 관련된 데이터를 포함하고,
    복수의 타이밍 파라미터는 복수의 네트워크 컴퓨팅 프로세서에 의해 적어도 하나의 데이터 프로세싱 세그먼트의 동기화된 실행을 야기하도록 결정되는, 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 방법.
  15. 제 14 항에 있어서,
    복수의 네트워크 컴퓨팅 자원과 관련된 데이터를 모니터하는 단계는:
    대응하는 복수의 네트워크 컴퓨팅 프로세서로의 적어도 하나의 데이터 프로세싱 세그먼트의 라우팅에 응답하여 메시지를 수신하는 단계; 및
    수신된 메시지로부터, 적어도 하나의 데이터 프로세스에 대한 적어도 하나의 캡쳐 비율을 결정하는 단계를 포함하며,
    적어도 하나의 추후 데이터 프로세싱 세그먼트에 대한 복수의 타이밍 파라미터를 결정하는 것은 적어도 하나의 캡쳐 비율에 적어도 부분적으로 기반하는, 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 방법.
  16. 제 14 항에 있어서,
    복수의 네트워크 컴퓨팅 자원과 관련된 데이터를 모니터하는 단계는:
    대응하는 복수의 네트워크 컴퓨팅 프로세서로의 적어도 하나의 데이터 프로세싱 세그먼트의 라우팅에 응답하여 메시지를 수신하는 단계;
    수신된 메시지로부터, 적어도 하나의 데이터 프로세스에 대한 적어도 하나의 캡쳐 비율을 결정하는 단계; 및
    적어도 하나의 캡쳐 비율이 정의된 임계치 미만이거나 과거 평균에서 정의된 임계치만큼 변하는 경우 잠재적인 하드웨어 고장을 표시하는 경보를 생성하는 단계를 포함하는, 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 방법.
  17. 제 14 항에 있어서,
    복수의 네트워크 컴퓨팅 자원과 관련된 데이터를 모니터하는 단계는:
    복수의 네트워크 컴퓨팅 자원 중 하나로의 데이터 프로세싱 세그먼트의 라우팅과 관련된 대기시간의 컴포넌트를 결정하는 단계를 포함하며,
    컴포넌트를 결정하는 단계는 복수의 네트워크 컴퓨팅 자원 중 하나로의 서로 다른 유형의 데이터 프로세싱 세그먼트의 라우팅과 관련된 대기시간의 차이에 기반하는, 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 방법.
  18. 제 14 항에 있어서,
    복수의 네트워크 컴퓨팅 자원과 관련되는 모니터된 데이터는 네트워크 컴퓨팅 자원으로 데이터 프로세싱 세그먼트를 라우팅하기 위해 다수의 루트(routes)와 관련된 데이터를 포함하는, 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 방법.
  19. 제 18 항에 있어서,
    다수의 루트와 관련된 데이터는 적어도 하나의 루트 세그먼트 또는 다수의 루트 중 적어도 하나의 장치에 대한 대기시간 데이터 또는 상태 정보를 포함하는, 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 방법.
  20. 제 14 항에 있어서,
    복수의 네트워크 컴퓨팅 자원과 관련되는 모니터된 데이터는 네트워크 컴퓨팅 자원 중 대응하는 하나로부터 정보 유출의 위험을 식별하기 위한 데이터를 포함하는, 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 방법.
  21. 제 14 항에 있어서,
    적어도 하나의 데이터 프로세싱 세그먼트로 적어도 하나의 데이터 프로세스를 분할하는 단계는:
    적어도 하나의 데이터 프로세싱 세그먼트 중 적어도 하나가 복수의 네트워크 컴퓨팅 자원 중 어느 것으로 라우팅되는지를 선택하는 단계; 및
    각각의 선택된 네트워크 컴퓨팅 자원에 대하여, 대응하는 적어도 하나의 데이터 프로세싱 세그먼트의 크기를 결정하는 단계를 포함하는, 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 방법.
  22. 제 21 항에 있어서,
    상기 선택하는 단계 및 크기를 결정하는 단계는: 가용 유동성(available liquidity), 정보 유출의 위험, 및 복수의 컴퓨팅 자원과 관련된 대기시간 중 적어도 하나에 기반하는, 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 방법.
  23. 제 22 항에 있어서,
    상기 가용 유동성은 공시된 유동성 및 예상 유동성을 포함하는, 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 방법.
  24. 제 14 항에 있어서,
    상기 타이밍 파라미터는 제1 데이터 프로세싱 세그먼트가 제2 데이터 프로세싱 세그먼트의 라우팅 시간에 대하여 라우팅되는 허용가능한 시간 범위를 정의하는, 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 방법.
  25. 제 14 항에 있어서,
    복수의 데이터 프로세싱 세그먼트를 라우팅하기 위해 임의의 타이밍 변화를 타이밍 시퀀스에 도입하는 단계;
    임의의 타이밍 변화로 라우팅되는 데이터 프로세싱 세그먼트와 관련된 데이터를 모니터하는 단계; 및
    대응하는 복수의 네트워크 컴퓨팅 프로세서와 관련된 타이밍 파라미터를 조정하는 단계를 포함하며,
    상기 임의의 타이밍 변화는 복수의 타이밍 파라미터를 만족하는 범위 내에 있는, 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 방법.
  26. 제 14 항에 있어서,
    복수의 네트워크 컴퓨팅 자원과 관련된 데이터를 모니터하는 단계는:
    대응하는 복수의 네트워크 컴퓨팅 프로세서로의 복수의 데이터 프로세싱 세그먼트의 라우팅에 응답하여 메시지를 수신하는 단계; 및
    네트워크 컴퓨팅 프로세서 중 하나로 라우팅되는 데이터 프로세싱 세그먼트와 관련되는 수신된 메시지에 기반하여 네트워크 컴퓨팅 프로세서 중 하나와 관련된 실행 대기시간의 분배를 결정하는 단계를 포함하며,
    상기 방법은 상기 분배에 기반하여 제2 데이터 프로세싱 세그먼트가 라우팅되는 시간에 대하여 제1 데이터 프로세싱 세그먼트가 라우팅될 수 있는 하나 이상의 시간 범위를 기초로 타이밍 시퀀스를 결정하는 단계를 포함하는, 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 방법.
  27. 적어도 하나의 프로세서에 의해 실행될 때, 적어도 하나의 프로세서가:
    복수의 네트워크 컴퓨팅 자원과 관련된 데이터를 모니터하고;
    복수의 네트워크 컴퓨팅 자원에 의해 실행가능하고 적어도 하나의 데이터 프로세스의 실행을 위한 명령어를 나타내는 신호를 하나 이상의 데이터 자원으로부터 수신하며;
    모니터된 데이터에 기반하여:
    복수의 네트워크 컴퓨팅 자원 중 하나로 각각 라우팅되는 적어도 하나의 데이터 프로세싱 세그먼트로 적어도 하나의 데이터 프로세스를 분할하고;
    복수의 네트워크 컴퓨팅 자원 중 대응하는 하나와 각각 관련되는 복수의 타이밍 파라미터를 결정하며;
    타이밍 파라미터에 기반하여 타이밍 시퀀스에서 대응하는 복수의 네트워크 컴퓨팅 프로세서로 적어도 하나의 데이터 프로세싱 세그먼트를 라우팅하도록 구성되는 명령어를 저장한 컴퓨터-판독가능한 매체로서,
    모니터된 데이터는 복수의 네트워크 컴퓨팅 자원으로 이전에 라우팅된 데이터 프로세싱 세그먼트와 관련된 데이터를 포함하고,
    복수의 타이밍 파라미터는 복수의 네트워크 컴퓨팅 프로세서에 의해 적어도 하나의 데이터 프로세싱 세그먼트의 동기화된 실행을 야기하도록 결정되는, 컴퓨터-판독가능한 매체.
  28. 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 시스템으로서,
    상기 시스템은:
    하나 이상의 데이터 프로세싱 세그먼트, 하나 이상의 데이터 프로세싱 세그먼트가 라우팅되는 대응하는 하나 이상의 네트워크 컴퓨팅 자원, 및 하나 이상의 데이터 프로세싱 세그먼트가 라우팅되는 타이밍 시퀀스를 각각 식별하는 복수의 데이터 프로세스 웨이브를 획득하고;
    각각의 네트워크 컴퓨팅 자원에 대한 최소 핸들링 간격을 획득하며;
    네트워크 컴퓨팅 자원에 대한 웨이브 타이밍 시퀀스 및 최소 핸들링 간격에 기반하여 복수의 데이터 프로세스 웨이브를 라우팅하는 순서를 스케줄링하고;
    상기 순서에 기반하여 복수의 데이터 프로세스 웨이브에서 각각의 데이터 프로세싱 세그먼트를 라우팅하도록 구성된 적어도 하나의 프로세서를 포함하는, 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 시스템.
  29. 제 28 항에 있어서,
    복수의 데이터 프로세스 웨이브를 라우팅하는 순서를 스케줄링하는 것은 복수의 네트워크 컴퓨팅 자원의 최소 핸들링 간격 또는 복수의 데이터 프로세스 웨이브의 타이밍 시퀀스를 위반하지 않고 서로 다른 데이터 프로세스 웨이브의 데이터 프로세싱 세그먼트를 배치하는 순서를 결정하는 것을 포함하는, 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 시스템.
  30. 제 28 항에 있어서,
    타이밍 시퀀스는 특정 데이터 프로세스 웨이브의 제2 데이터 프로세싱 세그먼트가 라우팅되는 시간에 대하여 특정 데이터 프로세스 웨이브의 제1 데이터 프로세싱 세그먼트가 라우팅될 수 있는 하나 이상의 시간 범위를 식별하는, 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 시스템.
  31. 제 28 항에 있어서,
    복수의 데이터 프로세스 웨이브를 획득하는 것은 웨이브 큐(wave queue)로부터 M개의 데이터 프로세스 웨이브를 획득하는 것을 포함하고,
    M개의 데이터 프로세스 웨이브를 라우팅하는 순서를 스케줄링하는 것은:
    M개의 데이터 프로세스 웨이브의 각각의 가능한 배열에 대한 총 핸들링 시간을 결정하고; 최단 총 핸들링 시간을 갖는 가능한 배열들 중 한 배열로 순서를 스케줄링하는 것을 포함하는, 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 시스템.
  32. 제 31 항에 있어서,
    M은 복수의 데이터 프로세스 웨이브 중 하나 이상에 대한 스케줄링 계산 시간 및 총 핸들링 기간에 기반하여 선택되는, 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 시스템.
  33. 제 28 항에 있어서,
    복수의 데이터 프로세스 웨이브를 획득하는 것은 웨이브 큐로부터 M개의 데이터 프로세스 웨이브를 획득하는 것을 포함하고,
    M개의 데이터 프로세스 웨이브를 라우팅하는 순서를 스케줄링하는 것은:
    정의된 계산 시간이 만료될 때까지 N개의 데이터 프로세스 웨이브의 서로 다른 배열에 대한 총 핸들링 시간을 결정하고, 정의된 계산 시간이 만료되기 전에 결정되는 최단 총 핸들링 시간을 갖는 서로 다른 배열들 중 한 배열로 순서를 스케줄링하는 것을 포함하는, 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 시스템.
  34. 제 28 항에 있어서,
    적어도 하나의 프로세서는:
    복수의 네트워크 컴퓨팅 자원과 관련된 데이터를 모니터하도록 구성되며,
    모니터된 데이터는 복수의 네트워크 컴퓨팅 자원으로 이전에 라우팅되는 데이터 프로세싱 세그먼트와 관련된 데이터를 포함하는, 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 시스템.
  35. 제 34 항에 있어서,
    최소 핸들링 간격 시간을 획득하는 것은:
    네트워크 컴퓨팅 자원 중 하나로 라우팅되는 2 이상의 데이터 프로세싱 세그먼트가 과거 대기시간 값보다 더 긴 하나 이상의 실행 대기시간을 언제 발생시키는지를 결정하고; 2 이상의 데이터 프로세싱 세그먼트의 라우팅의 상대적인 타이밍을 사용하여 네트워크 컴퓨팅 자원 중 하나에 대한 최소 핸들링 시간을 정의하는 것을 포함하는, 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 시스템.
  36. 제 28 항에 있어서,
    적어도 하나의 프로세서는:
    복수의 네트워크 컴퓨팅 자원 중 하나의 최소 핸들링 간격의 임계치 내에 있는 상대적인 타이밍으로 복수의 네트워크 컴퓨팅 자원 중 하나로 라우팅되도록 스케줄링되는 2 이상의 데이터 프로세싱 세그먼트를 식별하고;
    2 이상의 데이터 프로세싱 세그먼트를 라우팅한 후, 복수의 네트워크 컴퓨팅 자원 중 하나의 최소 핸들링 간격을 조정할 것인지를 결정하도록 2 이상의 데이터 프로세싱 세그먼트에 대한 실행 대기시간을 모니터하도록 구성되는, 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 시스템.
  37. 제 28 항에 있어서,
    적어도 하나의 프로세서는:
    복수의 네트워크 컴퓨팅 자원 중 하나의 최소 핸들링 간격의 임계치 내에 있는 상대적인 타이밍으로 복수의 네트워크 컴퓨팅 자원 중 하나로 라우팅되도록 스케줄링되는 복수의 데이터 프로세싱 세그먼트를 식별하고;
    복수의 데이터 프로세싱 세그먼트를 라우팅한 후, 복수의 네트워크 컴퓨팅 자원 중 하나의 최소 핸들링 간격을 유발하는 다수의 데이터 프로세싱 세그먼트를 결정하도록 복수의 데이터 프로세싱 세그먼트에 대한 실행 대기시간을 모니터하도록 구성되는, 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 시스템.
  38. 제 28 항에 있어서,
    복수의 데이터 프로세스 웨이브는 웨이브 큐로부터 획득되고;
    적어도 하나의 프로세서는 대응하는 하나 이상의 데이터 소스와 관련된 복수의 세션 큐(session queues)로부터 최대 N개의 데이터 프로세스 웨이브로 웨이브 큐를 채우도록 구성되는, 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 시스템.
  39. 제 38 항에 있어서,
    웨이브 큐를 채우는 것은 데이터 프로세스 웨이브와 관련된 타이밍 파라미터에 적어도 부분적으로 기반하는 우선순위 기법(priority scheme)을 사용하여 복수의 세션 큐로부터 데이터 프로세스 웨이브를 선택하는 것을 포함하는, 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 시스템.
  40. 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 방법으로서,
    하나 이상의 데이터 프로세싱 세그먼트, 하나 이상의 데이터 프로세싱 세그먼트가 라우팅되는 대응하는 하나 이상의 네트워크 컴퓨팅 자원, 및 하나 이상의 데이터 프로세싱 세그먼트가 라우팅되는 타이밍 시퀀스를 각각 식별하는 복수의 데이터 프로세스 웨이브를 획득하는 방법;
    각각의 네트워크 컴퓨팅 자원에 대한 최소 핸들링 간격을 획득하는 방법;
    네트워크 컴퓨팅 자원에 대한 웨이브 타이밍 시퀀스 및 최소 핸들링 간격에 기반하여 복수의 데이터 프로세스 웨이브를 라우팅하는 순서를 스케줄링하는 방법; 및
    상기 순서에 기반하여 복수의 데이터 프로세스 웨이브에서 각각의 데이터 프로세싱 세그먼트를 라우팅하는 단계를 포함하는, 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 방법.
  41. 제 40 항에 있어서,
    복수의 데이터 프로세스 웨이브를 라우팅하는 순서를 스케줄링하는 단계는 복수의 네트워크 컴퓨팅 자원의 최소 핸들링 간격 또는 복수의 데이터 프로세스 웨이브의 타이밍 시퀀스를 위반하지 않고 서로 다른 데이터 프로세스 웨이브의 데이터 프로세싱 세그먼트를 배치하는 순서를 결정하는 단계를 포함하는, 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 방법.
  42. 제 40 항에 있어서,
    타이밍 시퀀스는 특정 데이터 프로세스 웨이브의 제2 데이터 프로세싱 세그먼트가 라우팅되는 시간에 대하여 특정 데이터 프로세스 웨이브의 제1 데이터 프로세싱 세그먼트가 라우팅될 수 있는 하나 이상의 시간 범위를 식별하는, 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 방법.
  43. 제 40 항에 있어서,
    복수의 데이터 프로세스 웨이브를 획득하는 단계는 웨이브 큐(wave queue)로부터 M개의 데이터 프로세스 웨이브를 획득하는 단계를 포함하고,
    M개의 데이터 프로세스 웨이브를 라우팅하는 순서를 스케줄링하는 것은:
    M개의 데이터 프로세스 웨이브의 각각의 가능한 배열에 대한 총 핸들링 시간을 결정하고; 최단 총 핸들링 시간을 갖는 가능한 배열들 중 한 배열로 순서를 스케줄링하는 것을 포함하는, 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 방법.
  44. 제 40 항에 있어서,
    M은 복수의 데이터 프로세스 웨이브 중 하나 이상에 대한 스케줄링 계산 시간 및 총 핸들링 기간에 기반하여 선택되는, 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 방법.
  45. 제 40 항에 있어서,
    복수의 데이터 프로세스 웨이브를 획득하는 단계는 웨이브 큐로부터 M개의 데이터 프로세스 웨이브를 획득하는 단계를 포함하고,
    M개의 데이터 프로세스 웨이브를 라우팅하는 순서를 스케줄링하는 것은:
    정의된 계산 시간이 만료될 때까지 N개의 데이터 프로세스 웨이브의 서로 다른 배열에 대한 총 핸들링 시간을 결정하고, 정의된 계산 시간이 만료되기 전에 결정되는 최단 총 핸들링 시간을 갖는 서로 다른 배열들 중 한 배열로 순서를 스케줄링하는 것을 포함하는, 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 방법.
  46. 제 40 항에 있어서,
    복수의 네트워크 컴퓨팅 자원과 관련된 데이터를 모니터하는 단계를 포함하며, 모니터된 데이터는 복수의 네트워크 컴퓨팅 자원으로 이전에 라우팅되는 데이터 프로세싱 세그먼트와 관련된 데이터를 포함하는, 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 방법.
  47. 제 46 항에 있어서,
    최소 핸들링 간격 시간을 획득하는 단계는:
    네트워크 컴퓨팅 자원 중 하나로 라우팅되는 2 이상의 데이터 프로세싱 세그먼트가 과거 대기시간 값보다 더 긴 하나 이상의 실행 대기시간을 언제 발생시키는지를 결정하는 단계; 및 2 이상의 데이터 프로세싱 세그먼트의 라우팅의 상대적인 타이밍을 사용하여 네트워크 컴퓨팅 자원 중 하나에 대한 최소 핸들링 시간을 정의하는 단계를 포함하는, 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 방법.
  48. 제 40 항에 있어서,
    복수의 네트워크 컴퓨팅 자원 중 하나의 최소 핸들링 간격의 임계치 내에 있는 상대적인 타이밍으로 복수의 네트워크 컴퓨팅 자원 중 하나로 라우팅되도록 스케줄링되는 2 이상의 데이터 프로세싱 세그먼트를 식별하는 단계; 및
    2 이상의 데이터 프로세싱 세그먼트를 라우팅한 후, 복수의 네트워크 컴퓨팅 자원 중 하나의 최소 핸들링 간격을 조정할 것인지를 결정하도록 2 이상의 데이터 프로세싱 세그먼트에 대한 실행 대기시간을 모니터하는 단계를 포함하는, 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 방법.
  49. 제 40 항에 있어서,
    복수의 네트워크 컴퓨팅 자원 중 하나의 최소 핸들링 간격의 임계치 내에 있는 상대적인 타이밍으로 복수의 네트워크 컴퓨팅 자원 중 하나로 라우팅되도록 스케줄링되는 복수의 데이터 프로세싱 세그먼트를 식별하는 단계; 및
    복수의 데이터 프로세싱 세그먼트를 라우팅한 후, 복수의 네트워크 컴퓨팅 자원 중 하나의 최소 핸들링 간격을 유발하는 다수의 데이터 프로세싱 세그먼트를 결정하도록 복수의 데이터 프로세싱 세그먼트에 대한 실행 대기시간을 모니터하는 단계를 포함하는, 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 방법.
  50. 제 40 항에 있어서,
    복수의 데이터 프로세스 웨이브는 웨이브 큐로부터 획득되고;
    적어도 하나의 프로세서는 대응하는 하나 이상의 데이터 소스와 관련된 복수의 세션 큐(session queues)로부터 최대 N개의 데이터 프로세스 웨이브로 웨이브 큐를 채우도록 구성되는, 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 방법.
  51. 제 50 항에 있어서,
    웨이브 큐를 채우는 것은 데이터 프로세스 웨이브와 관련된 타이밍 파라미터에 적어도 부분적으로 기반하는 우선순위 기법을 사용하여 복수의 세션 큐로부터 데이터 프로세스 웨이브를 선택하는 것을 포함하는, 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 방법.
  52. 적어도 하나의 프로세서에 의해 실행될 때, 적어도 하나의 프로세서가:
    하나 이상의 데이터 프로세싱 세그먼트, 하나 이상의 데이터 프로세싱 세그먼트가 라우팅되는 대응하는 하나 이상의 네트워크 컴퓨팅 자원, 및 하나 이상의 데이터 프로세싱 세그먼트가 라우팅되는 타이밍 시퀀스를 각각 식별하는 복수의 데이터 프로세스 웨이브를 획득하고;
    각각의 네트워크 컴퓨팅 자원에 대한 최소 핸들링 간격을 획득하며;
    네트워크 컴퓨팅 자원에 대한 웨이브 타이밍 시퀀스 및 최소 핸들링 간격에 기반하여 복수의 데이터 프로세스 웨이브를 라우팅하는 순서를 스케줄링하고;
    상기 순서에 기반하여 복수의 데이터 프로세스 웨이브에서 각각의 데이터 프로세싱 세그먼트를 라우팅하도록 구성되는 명령어를 저장한 컴퓨터-판독가능한 매체.
  53. 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 시스템으로서,
    상기 시스템은:
    복수의 네트워크 컴퓨팅 자원에 의해 실행가능하고 복수의 데이터 프로세스의 실행을 위한 명령어를 나타내는 신호를 하나 이상의 데이터 소스로부터 수신하고;
    복수의 네트워크 컴퓨팅 자원 각각에서 금융 상품의 가용 유동성과 관련된 데이터를 획득하며;
    복수의 네트워크 컴퓨팅 프로세서 중 적어도 하나로 라우팅되도록 하나의 데이터 프로세스로부터 각각 분할되는 복수의 데이터 프로세싱 세그먼트로 복수의 데이터 프로세스 각각을 분할하고;
    복수의 네트워크 컴퓨팅 프로세서 각각으로 상기 시스템에 의해 라우팅되는 사전 데이터 프로세싱 요청의 실행시 대기시간 및 복수의 네트워크 컴퓨팅 프로세서 각각에서의 가용 유동성에 적어도 부분적으로 기반하여, 복수의 데이터 프로세싱 세그먼트 중 대응하는 하나와 각각 관련되는 복수의 타이밍 파라미터를 결정하며;
    복수의 데이터 프로세스 각각과 관련된 타이밍 파라미터 및 네트워크 컴퓨팅 프로세서에 기반하여, 복수의 데이터 프로세스 모두에 대한 데이터 프로세싱 세그먼트를 라우팅하기 위해 타이밍 시퀀스를 결정하고;
    상기 타이밍 시퀀스에 기반하여 복수의 데이터 프로세싱 세그먼트를 복수의 대응하는 네트워크 컴퓨팅 프로세서로 라우팅하도록 구성되는 적어도 하나의 프로세서를 포함하며,
    데이터 프로세스는 금융 상품의 제안된 거래를 나타내고,
    복수의 타이밍 파라미터는 복수의 네트워크 컴퓨팅 프로세서에 의해 복수의 데이터 프로세싱 세그먼트의 동기화된 실행을 야기하도록 결정되는, 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 시스템.
  54. 제 53 항에 있어서,
    복수의 데이터 프로세싱 세그먼트로 적어도 하나의 데이터 프로세스를 분할하는 것은:
    복수의 데이터 프로세싱 세그먼트 중 적어도 하나가 복수의 네트워크 컴퓨팅 자원 중 어느 것으로 라우팅되는지를 선택하고;
    선택된 네트워크 컴퓨팅 자원 각각에 대하여, 대응하는 적어도 하나의 데이터 프로세싱 세그먼트의 크기를 결정하는 것을 포함하는, 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 시스템.
  55. 제 54 항에 있어서,
    상기 선택 및 크기의 결정은: 가용 유동성 및 복수의 컴퓨팅 자원과 관련된 과거 실행 대기시간의 분배에 적어도 부분적으로 기반하는, 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 시스템.
  56. 제 55 항에 있어서,
    적어도 하나의 프로세서는:
    특정 네트워크 컴퓨팅 자원에 대한 분배가 멀티모드형 분배(mulimodal distribution)인 경우,
    복수의 데이터 프로세싱 세그먼트가 멀티모드형 분배에 기반하여 특정 네트워크 컴퓨팅 자원으로 라우팅되는 적어도 2개의 데이터 프로세싱 세그먼트를 포함하고, 멀티모드형 분배에 기반하여 적어도 2개의 데이터 프로세싱 세그먼트에 대한 타이밍 파라미터를 결정하도록 구성되는, 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 시스템.
  57. 제 55 항에 있어서,
    복수의 데이터 프로세싱 세그먼트로 적어도 하나의 데이터 프로세스를 분할하는 것은: 동일한 네트워크 컴퓨팅 자원으로 라우팅되는 적어도 2개의 데이터 프로세싱 세그먼트로 적어도 하나의 데이터 프로세스를 분할하는 것을 포함하며,
    적어도 하나의 프로세서는 적어도 2개의 데이터 프로세싱 세그먼트 각각에 대한 타이밍 파라미터를 결정하도록 구성되는, 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 시스템.
  58. 제 55 항에 있어서,
    상기 선택 및 크기의 결정은 복수의 네트워크 컴퓨팅 자원에 대한 과거 실행 대기시간의 분배의 변화의 함수인, 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 시스템.
  59. 제 53 항에 있어서,
    적어도 하나의 프로세서는 공시된 가용 유동성 이외의 유동성이 특정 네트워크 컴퓨팅 자원에서 과거 이력적으로 이용 가능한지를 결정하도록 구성되며,
    적어도 하나의 데이터 프로세스를 분할하는 것은 특정 네트워크 컴퓨팅 자원으로 라우팅되도록 적어도 2개의 데이터 프로세싱 세그먼트로 적어도 하나의 데이터 프로세스를 분할하는 것을 포함하고,
    적어도 2개의 데이터 프로세싱 세그먼트는 공지된 가용 거래 유동성 및 추가 유동성을 타겟팅하도록 타이밍 파라미터를 가지는, 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 시스템.
  60. 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 방법으로서,
    복수의 네트워크 컴퓨팅 자원에 의해 실행가능하고 복수의 데이터 프로세스의 실행을 위한 명령어를 나타내는 신호를 하나 이상의 데이터 소스로부터 수신하는 단계;
    복수의 네트워크 컴퓨팅 자원 각각에서 금융 상품의 가용 유동성과 관련된 데이터를 획득하는 단계;
    복수의 네트워크 컴퓨팅 프로세서 중 적어도 하나로 라우팅되도록 하나의 데이터 프로세스로부터 각각 분할되는 복수의 데이터 프로세싱 세그먼트로 복수의 데이터 프로세스 각각을 분할하는 단계;
    복수의 네트워크 컴퓨팅 프로세서 각각으로 상기 시스템에 의해 라우팅되는 사전 데이터 프로세싱 요청의 실행시 대기시간 및 복수의 네트워크 컴퓨팅 프로세서 각각에서의 가용 유동성에 적어도 부분적으로 기반하여, 복수의 데이터 프로세싱 세그먼트 중 대응하는 하나와 각각 관련되는 복수의 타이밍 파라미터를 결정하는 단계;
    복수의 데이터 프로세스 각각과 관련된 타이밍 파라미터 및 네트워크 컴퓨팅 프로세서에 기반하여, 복수의 데이터 프로세스 모두에 대한 데이터 프로세싱 세그먼트를 라우팅하기 위해 타이밍 시퀀스를 결정하는 단계; 및
    상기 타이밍 시퀀스에 기반하여 복수의 데이터 프로세싱 세그먼트를 복수의 대응하는 네트워크 컴퓨팅 프로세서로 라우팅하는 단계를 포함하며,
    데이터 프로세스는 금융 상품의 제안된 거래를 나타내고,
    복수의 타이밍 파라미터는 복수의 네트워크 컴퓨팅 프로세서에 의해 복수의 데이터 프로세싱 세그먼트의 동기화된 실행을 야기하도록 결정되는, 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 방법.
  61. 제 60 항에 있어서,
    복수의 데이터 프로세싱 세그먼트로 적어도 하나의 데이터 프로세스를 분할하는 단계는:
    복수의 데이터 프로세싱 세그먼트 중 적어도 하나가 복수의 네트워크 컴퓨팅 자원 중 어느 것으로 라우팅되는지를 선택하는 단계; 및
    선택된 네트워크 컴퓨팅 자원 각각에 대하여, 대응하는 적어도 하나의 데이터 프로세싱 세그먼트의 크기를 결정하는 단계를 포함하는, 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 방법.
  62. 제 61 항에 있어서,
    상기 선택 및 크기의 결정은: 가용 유동성 및 복수의 컴퓨팅 자원과 관련된 과거 실행 대기시간의 분배에 적어도 부분적으로 기반하는, 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 방법.
  63. 제 62 항에 있어서,
    특정 네트워크 컴퓨팅 자원에 대한 분배가 멀티모드형 분배(mulimodal distribution)인 경우,
    복수의 데이터 프로세싱 세그먼트가 멀티모드형 분배에 기반하여 특정 네트워크 컴퓨팅 자원으로 라우팅되는 적어도 2개의 데이터 프로세싱 세그먼트를 포함하고,
    상기 방법은 멀티모드형 분배에 기반하여 적어도 2개의 데이터 프로세싱 세그먼트에 대한 타이밍 파라미터를 결정하는 단계를 포함하는, 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 방법.
  64. 제 62 항에 있어서,
    복수의 데이터 프로세싱 세그먼트로 적어도 하나의 데이터 프로세스를 분할하는 단계는: 동일한 네트워크 컴퓨팅 자원으로 라우팅되는 적어도 2개의 데이터 프로세싱 세그먼트로 적어도 하나의 데이터 프로세스를 분할하는 단계를 포함하며,
    상기 방법은 적어도 2개의 데이터 프로세싱 세그먼트 각각에 대한 타이밍 파라미터를 결정하는 단계를 포함하는, 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 방법.
  65. 제 62 항에 있어서,
    상기 선택 및 크기의 결정은 복수의 네트워크 컴퓨팅 자원에 대한 과거 실행 대기시간의 분배의 변화의 함수인, 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 방법.
  66. 제 60 항에 있어서,
    상기 방법은 공시된 가용 유동성 이외의 유동성이 특정 네트워크 컴퓨팅 자원에서 과거 이력적으로 이용 가능한지를 결정하는 단계를 포함하며,
    적어도 하나의 데이터 프로세스를 분할하는 단계는 특정 네트워크 컴퓨팅 자원으로 라우팅되도록 적어도 2개의 데이터 프로세싱 세그먼트로 적어도 하나의 데이터 프로세스를 분할하는 단계를 포함하고,
    적어도 2개의 데이터 프로세싱 세그먼트는 공지된 가용 거래 유동성 및 추가 유동성을 타겟팅하도록 타이밍 파라미터를 가지는, 멀티 네트워크 컴퓨팅 자원에 의한 데이터 프로세스를 조정하는 방법.
  67. 적어도 하나의 프로세서에 의해 실행될 때, 적어도 하나의 프로세서가:
    복수의 네트워크 컴퓨팅 자원에 의해 실행가능하고 복수의 데이터 프로세스의 실행을 위한 명령어를 나타내는 신호를 하나 이상의 데이터 소스로부터 수신하고;
    복수의 네트워크 컴퓨팅 자원 각각에서 금융 상품의 가용 유동성과 관련된 데이터를 획득하며;
    복수의 네트워크 컴퓨팅 프로세서 중 적어도 하나로 라우팅되도록 하나의 데이터 프로세스로부터 각각 분할되는 복수의 데이터 프로세싱 세그먼트로 복수의 데이터 프로세스 각각을 분할하고;
    복수의 네트워크 컴퓨팅 프로세서 각각으로 상기 시스템에 의해 라우팅되는 사전 데이터 프로세싱 요청의 실행시 대기시간 및 복수의 네트워크 컴퓨팅 프로세서 각각에서의 가용 유동성에 적어도 부분적으로 기반하여, 복수의 데이터 프로세싱 세그먼트 중 대응하는 하나와 각각 관련되는 복수의 타이밍 파라미터를 결정하며;
    복수의 데이터 프로세스 각각과 관련된 타이밍 파라미터 및 네트워크 컴퓨팅 프로세서에 기반하여, 복수의 데이터 프로세스 모두에 대한 데이터 프로세싱 세그먼트를 라우팅하기 위해 타이밍 시퀀스를 결정하고;
    상기 타이밍 시퀀스에 기반하여 복수의 데이터 프로세싱 세그먼트를 복수의 대응하는 네트워크 컴퓨팅 프로세서로 라우팅하도록 구성된 명령어를 저장한 컴퓨터-판독가능한 매체로서,
    데이터 프로세스는 금융 상품의 제안된 거래를 나타내고,
    복수의 타이밍 파라미터는 복수의 네트워크 컴퓨팅 프로세서에 의해 복수의 데이터 프로세싱 세그먼트의 동기화된 실행을 야기하도록 결정되는, 컴퓨터-판독가능한 매체.
KR1020177027276A 2015-02-27 2016-02-26 네트워크 컴퓨팅 자원에 의한 데이터 프로세싱의 조정 KR102494427B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020237003088A KR102619651B1 (ko) 2015-02-27 2016-02-26 네트워크 컴퓨팅 자원에 의한 데이터 프로세싱의 조정

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201562126106P 2015-02-27 2015-02-27
US201562126120P 2015-02-27 2015-02-27
US62/126,106 2015-02-27
US62/126,120 2015-02-27
US201562132063P 2015-03-12 2015-03-12
US62/132,063 2015-03-12
PCT/IB2016/051091 WO2016135705A1 (en) 2015-02-27 2016-02-26 Coordinated processing of data by networked computing resources

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020237003088A Division KR102619651B1 (ko) 2015-02-27 2016-02-26 네트워크 컴퓨팅 자원에 의한 데이터 프로세싱의 조정

Publications (2)

Publication Number Publication Date
KR20170139004A true KR20170139004A (ko) 2017-12-18
KR102494427B1 KR102494427B1 (ko) 2023-02-01

Family

ID=56741275

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020237003088A KR102619651B1 (ko) 2015-02-27 2016-02-26 네트워크 컴퓨팅 자원에 의한 데이터 프로세싱의 조정
KR1020177027276A KR102494427B1 (ko) 2015-02-27 2016-02-26 네트워크 컴퓨팅 자원에 의한 데이터 프로세싱의 조정
KR1020237044928A KR20240006086A (ko) 2015-02-27 2016-02-26 네트워크 컴퓨팅 자원에 의한 데이터 프로세싱의 조정

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020237003088A KR102619651B1 (ko) 2015-02-27 2016-02-26 네트워크 컴퓨팅 자원에 의한 데이터 프로세싱의 조정

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020237044928A KR20240006086A (ko) 2015-02-27 2016-02-26 네트워크 컴퓨팅 자원에 의한 데이터 프로세싱의 조정

Country Status (11)

Country Link
EP (1) EP3269090B1 (ko)
JP (3) JP6892824B2 (ko)
KR (3) KR102619651B1 (ko)
CN (1) CN107534584B (ko)
AU (1) AU2016224908B2 (ko)
BR (1) BR112017018133B1 (ko)
CA (1) CA2922072A1 (ko)
HK (1) HK1248934A1 (ko)
MX (3) MX2017011021A (ko)
SG (4) SG11201707004WA (ko)
WO (1) WO2016135705A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220062823A (ko) * 2020-11-09 2022-05-17 한국과학기술원 에지 컴퓨팅 서버의 최적 자원할당 운영 방법

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10057333B2 (en) 2009-12-10 2018-08-21 Royal Bank Of Canada Coordinated processing of data by networked computing resources
US9940670B2 (en) 2009-12-10 2018-04-10 Royal Bank Of Canada Synchronized processing of data by networked computing resources
MX337624B (es) 2009-12-10 2016-03-11 Royal Bank Of Canada Procesamiento sincronizado de datos por recursos de computo conectados en red.
KR102286388B1 (ko) 2012-09-12 2021-08-04 아이이엑스 그룹, 인크. 전송 레이턴시 평준화 장치, 방법 및 시스템
SG11201608606WA (en) 2014-04-16 2016-11-29 Iex Group Inc Systems and methods for providing up-to-date information for transactions
US10706470B2 (en) 2016-12-02 2020-07-07 Iex Group, Inc. Systems and methods for processing full or partially displayed dynamic peg orders in an electronic trading system
SG10201901170PA (en) 2014-08-22 2019-03-28 Iex Group Inc Dynamic peg orders in an electronic trading system
US10311515B2 (en) 2014-09-17 2019-06-04 Iex Group, Inc. System and method for a semi-lit market
EP3269090B1 (en) * 2015-02-27 2019-10-02 Royal Bank Of Canada Coordinated processing of data by networked computing resources
WO2018044334A1 (en) 2016-09-02 2018-03-08 Iex Group. Inc. System and method for creating time-accurate event streams
CA3078476C (en) * 2017-10-31 2022-10-18 Ab Initio Technology Llc Managing a computing cluster using durability level indicators
CN107819696B (zh) * 2017-11-22 2021-09-28 中国银行股份有限公司 一种交易流量控制方法和系统
CN110888889B (zh) * 2018-08-17 2023-08-15 阿里巴巴集团控股有限公司 一种数据信息更新方法、装置及设备
CN109766193A (zh) * 2019-01-29 2019-05-17 努比亚技术有限公司 计算任务执行方法、服务器、终端和计算机可读存储介质
CN110618923B (zh) * 2019-09-18 2023-09-15 创新先进技术有限公司 一种数据监控的方法和系统
CN110865885B (zh) * 2019-10-09 2022-11-18 北京邮电大学 面向分布式数据处理与聚合的任务部署装置和方法
CN111144594B (zh) * 2019-11-25 2023-07-28 大众问问(北京)信息科技有限公司 一种出发时刻确定方法、装置及设备
US11734757B2 (en) 2020-04-14 2023-08-22 Banque Nationale Du Canada Computer implemented method and system for automating analysis of profit and loss (PnL) variations based on market events
US11537455B2 (en) 2021-01-11 2022-12-27 Iex Group, Inc. Schema management using an event stream
CN113592471A (zh) * 2021-07-29 2021-11-02 中国人民银行清算总中心 支付交易应用系统及方法
US20230177604A1 (en) * 2021-12-06 2023-06-08 Jonathon FLETCHER Dynamic allocation of locations of matching engines in a cloud-based exchange

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009073023A1 (en) * 2007-12-03 2009-06-11 Zircon Computing Llc Parallel processing system
KR20100077151A (ko) * 2007-08-30 2010-07-07 인터내셔널 비지네스 머신즈 코포레이션 트랜잭션 프로세싱 쓰루풋을 증가시키기 위한 트랜잭션 취합

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5768594A (en) * 1995-07-14 1998-06-16 Lucent Technologies Inc. Methods and means for scheduling parallel processors
US5820463A (en) * 1996-02-06 1998-10-13 Bell Atlantic Network Services, Inc. Method and apparatus for multi-player gaming over a network
US6677858B1 (en) * 1999-02-26 2004-01-13 Reveo, Inc. Internet-based method of and system for monitoring space-time coordinate information and biophysiological state information collected from an animate object along a course through the space-time continuum
US7840482B2 (en) * 2006-06-19 2010-11-23 Exegy Incorporated Method and system for high speed options pricing
MX337624B (es) * 2009-12-10 2016-03-11 Royal Bank Of Canada Procesamiento sincronizado de datos por recursos de computo conectados en red.
EP3269090B1 (en) * 2015-02-27 2019-10-02 Royal Bank Of Canada Coordinated processing of data by networked computing resources

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100077151A (ko) * 2007-08-30 2010-07-07 인터내셔널 비지네스 머신즈 코포레이션 트랜잭션 프로세싱 쓰루풋을 증가시키기 위한 트랜잭션 취합
WO2009073023A1 (en) * 2007-12-03 2009-06-11 Zircon Computing Llc Parallel processing system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220062823A (ko) * 2020-11-09 2022-05-17 한국과학기술원 에지 컴퓨팅 서버의 최적 자원할당 운영 방법

Also Published As

Publication number Publication date
CA2922072A1 (en) 2016-08-27
KR102494427B1 (ko) 2023-02-01
KR20240006086A (ko) 2024-01-12
WO2016135705A1 (en) 2016-09-01
CN107534584B (zh) 2020-12-01
JP2021166385A (ja) 2021-10-14
MX2017011021A (es) 2018-01-18
EP3269090B1 (en) 2019-10-02
AU2016224908A1 (en) 2017-09-21
EP3269090A1 (en) 2018-01-17
AU2016224908B2 (en) 2019-04-11
JP2024063048A (ja) 2024-05-10
JP6892824B2 (ja) 2021-06-23
KR102619651B1 (ko) 2023-12-29
CN107534584A (zh) 2018-01-02
KR20230024423A (ko) 2023-02-20
MX2023005874A (es) 2023-06-05
JP2018514105A (ja) 2018-05-31
HK1248934A1 (zh) 2018-10-19
SG10202110018RA (en) 2021-10-28
SG11201707004WA (en) 2017-09-28
SG10201913790VA (en) 2020-03-30
BR112017018133B1 (pt) 2022-11-08
EP3269090A4 (en) 2018-08-22
SG10201913740XA (en) 2020-03-30
BR112017018133A2 (pt) 2018-04-10
MX2022004253A (es) 2022-05-06

Similar Documents

Publication Publication Date Title
US11799947B2 (en) Coordinated processing of data by networked computing resources
US9959572B2 (en) Coordinated processing of data by networked computing resources
KR102494427B1 (ko) 네트워크 컴퓨팅 자원에 의한 데이터 프로세싱의 조정
US10771536B2 (en) Coordinated processing of data by networked computing resources
US9979589B2 (en) Coordinated processing of data by networked computing resources
AU2021200879A1 (en) Synchronized processing of data by networked computing resources
CA3041689A1 (en) Coordinated processing of data by networked computing resources

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right