# US 10,771,536 B2 · Coordinated processing of data by networked computing resources

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,771,536 B2
- Document ID: US10771536B2
- Status: Granted
- Kind: B2
- Application number: 16/399,530
- Filed: 2019-04-30
- Published: 2019-08-22
- Granted: 2020-09-08
- Earliest claimed: 2009-12-10
- Assignees: Royal Bank of Canada
- Applicants: Royal Bank of Canada
- Inventors: Walter Michael Pitio; Philip Iannaccone; Daniel Aisen; Bradley Katsuyama; Robert Park; John Schwall; Richard Steiner; Allen Zhang; Thomas L. Popejoy; Gregory Martin Ludvik; Thomas Matthew Clark; Xiaoran Zheng
- Web page: https://patentgrep.com/patent/US10771536B2

## CPC

- H04L 67/10: in which an application is distributed across nodes in the network (software deployment G06F8/60; multiprogramming arrangements G06F9/46)
- G06Q 40/04: Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
- H04L 43/0852: Delays
- H04L 47/283: in response to processing delays, e.g. caused by jitter or round trip time [RTT]
- H04L 67/62: Establishing a time schedule for servicing the requests
- H04L 67/63: Routing a service request depending on the request content or context
- H04L 43/0858: {One way delays}
- H04L 43/0864: Round trip delays
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06Q: INFORMATION 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

## Abstract

Systems, methods, and computer-readable media for coordinating processing of data by multiple networked computing resources include monitoring data associated with a plurality of networked computing resources, and coordinating the routing of data processing segments to the networked computing resources.

## Claims

### Claim 1

A system for coordinating processing of data by multiple networked computing resources, the system comprising at least one processor configured to:
receive from one or more data sources signals representing instructions for execution of at least one data process executable by a plurality of networked computing resources, the at least one data process representing at least one proposed trade in a financial interest;
obtain data providing an indication of available market resources at each of the plurality of networked computing resources, the available market resources for satisfying requirements for execution of at least a portion of the at least one data process;
based on the data providing the indication of available market resources:
divide the at least one data process into a plurality of data processing segments, each data processing segment to be routed to at least one of the plurality of networked computing resources;
determine a plurality of timing parameters, each of the plurality of timing parameters to be associated with a corresponding one of the plurality of data processing segments, the plurality of timing parameters determined to cause synchronized execution of the plurality of data processing segments by the plurality of networked computing resources;
based on the timing parameters and networked computing processors associated with each of the plurality of data processes, determine a timing sequence for routing the data processing segments for all of the plurality of data processes; and
route the plurality of data processing segments to the plurality of corresponding networked computing resources based on the timing sequence.

### Claim 2 (depends on 1)

The system of claim 1 wherein obtaining the data providing an indication of available market resources at each of the plurality of networked computing resources comprises:
receiving first market resource data from a first source, the first market resource data identifying market resources communicated as available for satisfying requirements for execution of at least a portion of the at least one data process at a first subset of the plurality of networked computing resources; and
receiving second market resource data from a second source, the second market resource data identifying market resources communicated as potentially available for satisfying requirements for execution of at least a portion of the at least one data process at a second subset of the plurality of networked computing resources.

### Claim 3 (depends on 2)

The system of claim 2, wherein the first market resource data comprises data made available via a public source; and the second market resource data comprises data identifying market resources associated with an electronic liquidity provider which is communicated via a non-public source.

### Claim 4 (depends on 2)

The system of claim 2, wherein the first market resource data includes data fields associated with every requirement for execution of at least the portion of the at least one data process at the first subset of the plurality of networked computing resources; and the second market resource data includes data fields associated with at subset of the requirements for execution of at least the portion of the at least one data process at the second subset of the plurality of networked computing resources.

### Claim 5 (depends on 2)

The system of claim 2, wherein the second market resource data is received from one or more systems associated with an electronic liquidity provider or single dealer platform.

### Claim 6 (depends on 2)

The system of claim 2, wherein dividing the at least one data process into the plurality of data processing segments comprises: generating a first data processing segment for routing to one of the second subset of the plurality of networked computing resources, wherein the first data processing segment includes a request quantity which is smaller than a quantity communicated as being potentially available in the second market resource data.

### Claim 7 (depends on 6)

The system of claim 6, wherein the request quantity is between 10% and 35% of the quantity communicated as being potentially available in the second market resource data.

### Claim 8 (depends on 2)

The system of claim 2, wherein dividing the at least one data process into the plurality of data processing segments comprises prioritizing utilization of resource quantities communicated as being potentially available at the second subset of the plurality of networked computing resources over utilization of resource quantities communicated as available at the first subset of the plurality of networked computing resources.

### Claim 9 (depends on 2)

The system of claim 2, wherein dividing the at least one data process into the plurality of data processing segments comprises: generating a first data processing segment for routing to one of the second subset of the plurality of networked computing resources only when resource quantities communicated as being potentially available at the second subset of the plurality of networked computing resources are larger than resource quantities communicated as available at the first subset of the plurality of networked computing resources.

### Claim 10 (depends on 2)

The system of claim 2, comprising: monitoring data associated with data processing segments previously routed to the second subset of networked computing resources; and
wherein dividing the at least one data process into the plurality of data processing segments, or determining the plurality of timing parameters is based on the monitored data.

### Claim 11 (depends on 10)

The system of claim 10, wherein when the monitored data indicates that timing parameters associated with the data processing segments previously routed to the second subset of networked computing resources are not correlated to successful completion of related data processing segments previously routed to the first subset of networked computing resources, the at least one processor is configured to: prioritize utilization of resource quantities communicated as being potentially available at the second subset of the plurality of networked computing resources over utilization of resource quantities communicated as available at the first subset of the plurality of networked computing resources.

### Claim 12 (depends on 11)

The system of claim 11, wherein prioritizing the utilization of the resource quantities communicated as being potentially available at the second subset of the plurality of networked computing resources comprises: generating timing parameters for the data processing segments to be routed to the second subset of the plurality of networked computing resources with larger timing variances relative to the timing parameters for the data processing segments to be routed to the first subset of the plurality of networked computing resources.

### Claim 13 (depends on 1)

The system of claim 1, wherein the at least one processor is configured to: generate the plurality of data processing segments based on FIX messages using a pre-generated sequence numbers stored in memory mapped files.

### Claim 14 (depends on 1)

The system of claim 1, wherein the at least one processor is configured to: generate the plurality of data processing segments using pre-generated serialized message headers.

### Claim 15

A method for coordinating processing of data by multiple networked computing resources, the method comprising:
receiving from one or more data sources signals representing instructions for execution of at least one data process executable by a plurality of networked computing resources, the at least one data process representing at least one proposed trade in a financial interest;
obtaining data providing an indication of available market resources at each of the plurality of networked computing resources, the available market resources for satisfying requirements for execution of at least a portion of the at least one data process;
based on the data providing the indication of available market resources:
dividing the at least one data process into a plurality of data processing segments, each data processing segment to be routed to at least one of the plurality of networked computing resources;
determining a plurality of timing parameters, each of the plurality of timing parameters to be associated with a corresponding one of the plurality of data processing segments, the plurality of timing parameters determined to cause synchronized execution of the plurality of data processing segments by the plurality of networked computing resources;
based on the timing parameters and networked computing processors associated with each of the plurality of data processes, determining a timing sequence for routing the data processing segments for all of the plurality of data processes; and
routing the plurality of data processing segments to the plurality of corresponding networked computing resources based on the timing sequence.

### Claim 16 (depends on 15)

The method of claim 15 wherein obtaining the data providing an indication of available market resources at each of the plurality of networked computing resources comprises:
receiving first market resource data from a first source, the first market resource data identifying market resources communicated as available for satisfying requirements for execution of at least a portion of the at least one data process at a first subset of the plurality of networked computing resources; and
receiving second market resource data from a second source, the second market resource data identifying market resources communicated as potentially available for satisfying requirements for execution of at least a portion of the at least one data process at a second subset of the plurality of networked computing resources.

### Claim 17 (depends on 16)

The method of claim 16, wherein the first market resource data comprises data made available via a public source; and the second market resource data comprises data identifying market resources associated with an electronic liquidity provider which is communicated via a non-public source.

### Claim 18 (depends on 16)

The method of claim 16, wherein the first market resource data includes data fields associated with every requirement for execution of at least the portion of the at least one data process at the first subset of the plurality of networked computing resources; and the second market resource data includes data fields associated with at subset of the requirements for execution of at least the portion of the at least one data process at the second subset of the plurality of networked computing resources.

### Claim 19 (depends on 16)

The method of claim 16, wherein the second market resource data is received from one or more systems associated with an electronic liquidity provider or single dealer platform.

### Claim 20 (depends on 16)

The method of claim 16, wherein dividing the at least one data process into the plurality of data processing segments comprises: generating a first data processing segment for routing to one of the second subset of the plurality of networked computing resources, wherein the first data processing segment includes a request quantity which is smaller than a quantity communicated as being potentially available in the second market resource data.

### Claim 21 (depends on 20)

The method of claim 20, wherein the request quantity is between 10% and 35% of the quantity communicated as being potentially available in the second market resource data.

### Claim 22 (depends on 16)

The method of claim 16, wherein dividing the at least one data process into the plurality of data processing segments comprises prioritizing utilization of resource quantities communicated as being potentially available at the second subset of the plurality of networked computing resources over utilization of resource quantities communicated as available at the first subset of the plurality of networked computing resources.

### Claim 23 (depends on 16)

The method of claim 16, wherein dividing the at least one data process into the plurality of data processing segments comprises: generating a first data processing segment for routing to one of the second subset of the plurality of networked computing resources only when resource quantities communicated as being potentially available at the second subset of the plurality of networked computing resources are larger than resource quantities communicated as available at the first subset of the plurality of networked computing resources.

### Claim 24 (depends on 16)

The method of claim 16, comprising: monitoring data associated with data processing segments previously routed to the second subset of networked computing resources; and
wherein dividing the at least one data process into the plurality of data processing segments, or determining the plurality of timing parameters is based on the monitored data.

### Claim 25 (depends on 24)

The method of claim 24, comprising when the monitored data indicates that timing parameters associated with the data processing segments previously routed to the second subset of networked computing resources are not correlated to successful completion of related data processing segments previously routed to the first subset of networked computing resources, prioritizing utilization of resource quantities communicated as being potentially available at the second subset of the plurality of networked computing resources over utilization of resource quantities communicated as available at the first subset of the plurality of networked computing resources.

### Claim 26 (depends on 25)

The method of claim 25, wherein prioritizing the utilization of the resource quantities communicated as being potentially available at the second subset of the plurality of networked computing resources comprises: generating timing parameters for the data processing segments to be routed to the second subset of the plurality of networked computing resources with larger timing variances relative to the timing parameters for the data processing segments to be routed to the first subset of the plurality of networked computing resources.

### Claim 27 (depends on 15)

The method of claim 15, comprising: generating the plurality of data processing segments based on FIX messages using a pre-generated sequence numbers stored in memory mapped files.

### Claim 28 (depends on 15)

The method of claim 15, comprising: generating the plurality of data processing segments using pre-generated serialized message headers.

### Claim 29

A non-transitory, computer-readable medium or media having stored thereon computer-executable instructions which when executed by at least one processors, configure the at least one processor for:
receiving from one or more data sources signals representing instructions for execution of at least one data process executable by a plurality of networked computing resources, the at least one data process representing at least one proposed trade in a financial interest;
obtaining data providing an indication of available market resources at each of the plurality of networked computing resources, the available market resources for satisfying requirements for execution of at least a portion of the at least one data process;
based on the data providing the indication of available market resources:
dividing the at least one data process into a plurality of data processing segments, each data processing segment to be routed to at least one of the plurality of networked computing resources;
determining a plurality of timing parameters, each of the plurality of timing parameters to be associated with a corresponding one of the plurality of data processing segments, the plurality of timing parameters determined to cause synchronized execution of the plurality of data processing segments by the plurality of networked computing resources;
based on the timing parameters and networked computing processors associated with each of the plurality of data processes, determining a timing sequence for routing the data processing segments for all of the plurality of data processes; and
routing the plurality of data processing segments to the plurality of corresponding networked computing resources based on the timing sequence.
