BR112017018133B1 - Sistemas e métodos para coordenar o processamento de dados por múltiplos recursos de computação em rede, e meio legível por computador - Google Patents
Sistemas e métodos para coordenar o processamento de dados por múltiplos recursos de computação em rede, e meio legível por computador Download PDFInfo
- Publication number
- BR112017018133B1 BR112017018133B1 BR112017018133-9A BR112017018133A BR112017018133B1 BR 112017018133 B1 BR112017018133 B1 BR 112017018133B1 BR 112017018133 A BR112017018133 A BR 112017018133A BR 112017018133 B1 BR112017018133 B1 BR 112017018133B1
- Authority
- BR
- Brazil
- Prior art keywords
- data processing
- data
- network computing
- computing resources
- time
- Prior art date
Links
- 238000012545 processing Methods 0.000 title claims abstract description 487
- 238000000034 method Methods 0.000 title claims abstract description 208
- 238000012544 monitoring process Methods 0.000 claims abstract description 53
- 230000008569 process Effects 0.000 claims description 128
- 230000001360 synchronised effect Effects 0.000 claims description 26
- 238000009826 distribution Methods 0.000 claims description 20
- 230000004044 response Effects 0.000 claims description 20
- 230000000875 corresponding effect Effects 0.000 description 39
- 238000004891 communication Methods 0.000 description 36
- 230000001934 delay Effects 0.000 description 31
- 230000005540 biological transmission Effects 0.000 description 23
- 230000003044 adaptive effect Effects 0.000 description 13
- 238000004422 calculation algorithm Methods 0.000 description 11
- 238000012790 confirmation Methods 0.000 description 10
- 238000007726 management method Methods 0.000 description 10
- 230000008859 change Effects 0.000 description 9
- 238000005259 measurement Methods 0.000 description 8
- 230000002829 reductive effect Effects 0.000 description 8
- 230000008901 benefit Effects 0.000 description 7
- 238000005096 rolling process Methods 0.000 description 7
- 230000002860 competitive effect Effects 0.000 description 6
- 238000012360 testing method Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000002360 preparation method Methods 0.000 description 5
- 230000008054 signal transmission Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 230000002776 aggregation Effects 0.000 description 4
- 238000004220 aggregation Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 230000003111 delayed effect Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 230000033228 biological regulation Effects 0.000 description 3
- 230000003247 decreasing effect Effects 0.000 description 3
- 230000010354 integration Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000000737 periodic effect Effects 0.000 description 3
- 230000001105 regulatory effect Effects 0.000 description 3
- 238000003860 storage Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 230000001276 controlling effect Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 230000002349 favourable effect Effects 0.000 description 2
- 230000003116 impacting effect Effects 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 230000001788 irregular Effects 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 238000012163 sequencing technique Methods 0.000 description 2
- 238000013179 statistical model Methods 0.000 description 2
- 206010064127 Solar lentigo Diseases 0.000 description 1
- 241000287433 Turdus Species 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000009118 appropriate response Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000013499 data model Methods 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 150000002500 ions Chemical class 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000007620 mathematical function Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000012913 prioritisation Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0852—Delays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3006—Monitoring 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3409—Recording 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- 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
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5017—Task 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)
- Development Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Environmental & Geological Engineering (AREA)
- Economics (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Multi Processors (AREA)
- Hardware Redundancy (AREA)
- Computer And Data Communications (AREA)
- Data Mining & Analysis (AREA)
- Magnetic Resonance Imaging Apparatus (AREA)
Abstract
SISTEMAS E MÉTODOS PARA COORDENAR O PROCESSAMENTO DE DADOS POR MÚLTIPLOS RECURSOS DE COMPUTAÇÃO EM REDE, E MEIO LEGÍVEL POR COMPUTADOR. A presente invenção refere-se a sistemas (100, 1000), métodos (200, 300, 800, 1200), e meios legíveis por computador (214, 118, 1018) para coordenar o processamento de dados por múltiplos recursos de computação em rede (102, 106, 1102, 1106) que incluem monitorar (302, 810) dados associados a uma pluralidade de recursos de computação em rede (102, 106, 1102, 1106), e coordenar o roteamento de segmentos de processamento de dados para os recursos de computação em rede (102, 106, 1102, 1106)
Description
[0001] Este pedido reivindica todos os benefícios, incluindo priori dade, de: Pedido de Patente Provisória U.S. Número 62/126.106, depositado em 27 de Fevereiro de 2015, e intitulado PROCESSAMENTO DE DADOS COORDENADO POR RECURSOS DE COMPUTAÇÃO EM REDE; Pedido Provisório U.S. Número 62/126.120, depositado em 27 de Fevereiro de 2015, e intitulado PROCESSAMENTO DE DADOS COORDENADO POR RECURSOS DE COMPUTAÇÃO EM REDE; e Pedido Provisório U.S. Número 62/132.063, depositado em 12 de Março de 2015, e intitulado PROCESSAMENTO DE DADOS COORDENADO POR RECURSOS DE COMPUTAÇÃO EM REDE.
[0002] Todos os pedidos acima notados estão por meio disto in corporados por referência em suas totalidades.
[0003] A presente descrição refere-se geralmente a sistemas, mé todos, dispositivos e meios legíveis por computador para o gerenciamento de processamento de dados por múltiplos recursos de computação em rede. Especificamente, a descrição refere-se à coordenação ou sincronização de solicitações relativas ou temporais para processamento de dados em recursos de rede distribuída.
[0004] Aspectos do material descrito neste pedido podem funda mentar ou referir à posse, transferência, e/ou administração de títulos e outros interesses financeiros. Aspectos de tal posse, transferência, e/ou administração podem estar sujeitos à regulação por agências go- vernamentais e outras. A descrição aqui é feita somente em termos de lógica, programação, e possibilidades de comunicações, sem referência a considerações estatutárias, regulatórias, ou outras considerações legais. Nada aqui está destinado como uma declaração ou representação que qualquer sistema, método ou processo aqui proposto ou discutido, ou a sua utilização, está ou não em conformidade com qualquer estatuto, lei, regulação, ou outro requisito legal em qualquer jurisdição; nem deve ser tomado ou considerado como fazendo isto.
[0005] Em várias formas de sistemas de processamento de dados em rede ou de outro modo distribuídos, processos complexos e/ou múltiplos relativos são frequentemente roteados para múltiplos recursos de computação para execução. Por exemplo, em sistemas financeiros e outros comerciais, pedidos para compras, vendas, e outras transações em interesses financeiros são frequentemente roteados para múltiplos servidores de mercado ou bolsa para atendimento. Por exemplo, quando um grande pedido é roteado para múltiplas bolsas (por exemplo, com base na liquidez disponível em cada mercado), os pedidos tendem a chegar nas bolsas mais rápidas (isto é, aquelas que têm menos latências inerentes) antes que estes cheguem em mais lentas (isto é, aquelas que têm maiores latências inerentes), e assim aparecem nas carteiras de diferentes bolsas em diferentes tempos. Quando os pedidos começam a aparecer nas carteiras das bolsas mais rápidas, outras partes podem detectar os pedidos e tentar se aproveitar da latência de bolsas mais lentas cancelando, mudando, e ou de outro modo manipulando as cotas (por exemplo, lances e ofertas) ou outros parâmetros de mercado nas bolsas mais lentas, efetivamente aumentando os custos comerciais implícitos. Como um resultado, os pedidos que podem ser de outro modo executados em qual-quer única bolsa em uma alta razão de preenchimento tendem a exibir uma razão de preenchimento total mais baixa quando roteados para múltiplas bolsas como um negócio dividido.
[0006] Os documentos da técnica anterior, tal como o artigo de Rony Kay "Pragmatic Network Latency Engineering, Fundamental Facts e Analysis", tentaram resolver tais problemas propondo a eliminação de latências de comunicações em um sentido (isto é, "pacote"). Tais sistemas falham em resolver oportunidades de arbitragem e outros problemas causados ou facilitados por variações no tempo requerido para múltiplos processadores executarem porções individuais de solicitações de execução de múltiplos processadores (isto é, latências de execução), além das (ou como parte de) latências de comunicações.
[0007] Em vários aspectos a presente descrição provê sistemas, métodos, e mecanismos de instrução executáveis por computador (por exemplo, estruturas de programação legíveis por máquina não transientes) tal como conjuntos de instruções e dados codificados por software, para o gerenciamento de processamento de dados por múltiplos recursos de computação em rede. Especificamente, por exemplo, a presente descrição provê sistemas, métodos, e meios úteis em controlar a sincronização ou coordenação de solicitações relativas para processamento de dados utilizando recursos de rede distribuída.
[0008] Por exemplo, em um aspecto a presente descrição provê sistemas, métodos, e meios para coordenar o processamento de dados por múltiplos recursos de computação em rede. Tais sistemas, por exemplo, podem incluir pelo menos um processador configurado para: receber de uma ou mais fontes de dados sinais que representam instruções para execução de pelo menos um processo de dados executável por uma pluralidade de recursos de computação em rede; dividir o pelo menos um processo de dados em uma pluralidade de segmentos de processamento de dados, cada segmento de processamento de dados a ser roteado para um diferente de uma pluralidade de processadores de execução em rede; com base pelo menos parcialmente em latências em execução de solicitações de processamento de dados anteriores roteadas pelo sistema para cada um da pluralidade de processadores de execução em rede, determinar uma pluralidade de parâmetros de tempo, cada um da pluralidade de parâmetros de tempo estando associado com um correspondente da pluralidade de segmentos de processamento de dados, a pluralidade de parâmetros de tempo determinada causar uma execução sincronizada da pluralidade de segmentos de processamento de dados pela pluralidade de processadores de execução em rede; rotear a pluralidade de segmentos de processamento de dados para a pluralidade de processadores de execução em rede correspondentes em uma sequência de tempo com base nos parâmetros de tempo; determinar uma razão de captura para os segmentos de processamento de dados; e ajustar os parâmetros de tempo associados com cada um da pluralidade de processadores de execução em rede com base na razão de captura.
[0009] Em alguns aspectos a presente descrição provê sistemas, métodos, e programação ou outras instruções interpretáveis por máquina para causar um processamento de dados sincronizado / coordenado por múltiplos recursos de computação em rede, tais sistemas, por exemplo, compreendendo pelo menos um processador configurado para executar instruções interpretáveis por máquina e fazer com que o sistema: monitore a execução de solicitações de execução de processamento sinal por cada um da pluralidade de recursos de computação em rede; determinar pelo menos um parâmetro de tempo associados com uma latência em execução de processos de sinal entre o sistema e cada um da pluralidade de recursos de computação em rede; e armazenar o pelo menos um parâmetro de tempo em uma memória legível por máquina acessível por pelo menos um processador.
[00010] O monitoramento de execução de solicitações de execução de processamento de sinal de acordo com tal e outras modalidades da invenção pode ser implementado em base contínua, periódica, e/ou outras bases adequadas ou desejáveis.
[00011] Em várias modalidades dos vários aspectos da invenção, os recursos de computação em rede podem incluir um ou mais servidores de bolsa. As fontes de dados podem incluir um ou mais sistemas ou servidores de corretor ou negociante, os processos de sinal controlados podem representar negócios em interesses financeiros, e a execução de solicitações de execução de processamento sinal representa a execução de transações em interesses financeiros, incluindo, por exemplo ações, apólices, opções e interesses de contrato, moedas e/ou outros interesses intangíveis, e/ou mercadorias. Em tais modalidades, as solicitações para execução de procedimentos de processamento de dados podem estar baseadas totalmente ou parcialmente em parâmetros que incluem, por exemplo, qualquer uma ou mais de cotações de dados de mercado, regras de roteamento de pedidos, características de pedido, liquidez exibida de cada recurso de computação em rede, e um provável retardo, ou latência, na execução de uma quantidade de pedidos em cada recurso de computação em rede.
[00012] Nos mesmos e adicionais aspectos a invenção provê sistemas para controlar ou de outro modo gerenciar solicitações para processamento de dados por recursos de computador distribuídos, tais sistemas incluindo um ou mais processadores configurados para executar instruções para fazer com que o sistema: monitore a execução de solicitações de execução de processamento de sinal por cada um da pluralidade de recursos de computação em rede; determine pelo menos um parâmetro de tempo associado com a latência em execução de processos de sinal entre o sistema e cada um da pluralidade de recursos de computação em rede; e armazene o pelo menos um pa- râmetro de tempo para cada um da pluralidade de recursos de computação em rede.
[00013] De acordo com um aspecto, está provido um sistema para coordenar o processamento de dados por múltiplos recursos de computação em rede. O sistema inclui pelo menos um processador configurado para: monitorar dados associados com uma pluralidade de recursos de computação em rede, os dados monitorados incluindo dados associados com segmentos de processamento de dados previamente roteados para a pluralidade de recursos de computação em rede; receber de uma ou mais fontes de dados sinais que representam instruções para execução de pelo menos um processo de dados executável pela pluralidade de recursos de computação em rede; com base nos dados monitorados: dividir o pelo menos um processo de dados em pelo menos um segmento de processamento de dados, cada segmento de processamento de dados a ser roteado para um da pluralidade de recursos de computação em rede; determinar uma pluralidade de parâmetros de tempo, cada um da pluralidade de parâmetros de tempo estando associado com um correspondente da pluralidade de recursos de computação em rede, a pluralidade de parâmetros de tempo determinada para causar uma execução sincronizada do pelo menos um segmento de processamento de dados pela pluralidade de processadores de computação em rede; e rotear o pelo menos um segmento de processamento de dados para a pluralidade de proces-sadores de computação em rede correspondentes em uma sequência de tempo com base nos parâmetros de tempo.
[00014] De acordo com outro aspecto está provido um método para coordenar um processamento de dados por múltiplos recursos de computação em rede. O método inclui: monitorar dados associados com uma pluralidade de recursos de computação em rede, os dados monitorados incluindo dados associados com segmentos de proces- samento de dados previamente roteados para a pluralidade de recursos de computação em rede; receber de uma ou mais fontes de dados sinais que representam instruções para execução de pelo menos um processo de dados executável pela pluralidade de recursos de computação em rede; com base nos dados monitorados: dividir o pelo menos um processo de dados em pelo menos um segmento de processamento de dados, cada segmento de processamento de dados a ser roteado para um da pluralidade de recursos de computação em rede; determinar uma pluralidade de parâmetros de tempo, cada um da pluralidade de parâmetros de tempo estando associado com um correspondente da pluralidade de recursos de computação em rede, a pluralidade de parâmetros de tempo determinada para causar uma execução sincronizada do pelo menos um segmento de processamento de dados pela pluralidade de processadores de computação em rede; e rotear o pelo menos um segmento de processamento de dados para a pluralidade de processadores de computação em rede correspondentes em uma sequência de tempo com base nos parâmetros de tempo.
[00015] De acordo com outro aspecto está provido um meio ou meios legíveis por computador que têm armazenados nos mesmos instruções as quais quando executadas por pelo menos um processador, configuram o pelo menos um processador para: monitorar dados associados com uma pluralidade de recursos de computação em rede, os dados monitorados incluindo dados associados com segmentos de processamento de dados previamente roteados para a pluralidade de recursos de computação em rede; receber de uma ou mais fontes de dados sinais que representam instruções para execução de pelo menos um processo de dados executável pela pluralidade de recursos de computação em rede; com base nos dados monitorados: dividir o pelo menos um processo de dados em pelo menos um segmento de processamento de dados, cada segmento de processamento de dados a ser roteado para um da pluralidade de recursos de computação em rede; determinar uma pluralidade de parâmetros de tempo, cada um da pluralidade de parâmetros de tempo estando associado com um correspondente da pluralidade de recursos de computação em rede, a pluralidade de parâmetros de tempo determinada para causar uma execução sincronizada do pelo menos um segmento de processamento de dados pela pluralidade de processadores de computação em rede; e rotear o pelo menos um segmento de processamento de dados para a pluralidade de processadores de computação em rede correspondentes em uma sequência de tempo com base nos parâmetros de tempo.
[00016] De acordo com outro aspecto está provido: um sistema para coordenar o processamento de dados por múltiplos recursos de computação em rede. O sistema inclui pelo menos um processador configurado para: obter uma pluralidade de ondas de processamento de dados, cada onda de processamento de dados identificando: um ou mais segmentos de processamento de dados, um ou mais recursos de computação correspondentes em rede para os quais os um ou mais segmentos de processamento de dados devem ser roteados; e uma sequência de tempo na qual os um ou mais segmentos de processamento de dados devem ser roteados; obter um intervalo de manipulação mínimo para cada um dos recursos de computação em rede; programar uma ordem para rotear a pluralidade de ondas de processamento de dados com base nas sequências de tempo de onda e os intervalos de manipulação mínimos para os recursos de computação em rede; e rotear cada um dos segmentos de processamento de dados na pluralidade de ondas de processamento de dados com base na ordem.
[00017] De acordo com outro aspecto, está provido: um método para coordenar um processamento de dados por múltiplos recursos de computação em rede, o método compreendendo: obter uma pluralida- de de ondas de processamento de dados, cada onda de processamento de dados identificando: um ou mais segmentos de processamento de dados, um ou mais recursos de computação correspondentes em rede para os quais os um ou mais segmentos de processamento de dados devem ser roteados; e uma sequência de tempo na qual os um ou mais segmentos de processamento de dados devem ser roteados; obter um intervalo de manipulação mínimo para cada um dos recursos de computação em rede; programar uma ordem para rotear a pluralidade de ondas de processamento de dados com base nas sequências de tempo de onda e os intervalos de manipulação mínimos para os recursos de computação em rede; e rotear cada um dos segmentos de processamento de dados na pluralidade de ondas de processamento de dados com base na ordem.
[00018] De acordo com outro aspecto, está provido: um meio ou meios legíveis por computador que têm armazenados nos mesmos instruções as quais quando executadas por pelo menos um processador, configuram o pelo menos um processador para: obter uma pluralidade de ondas de processamento de dados, cada onda de processamento de dados identificando: um ou mais segmentos de processamento de dados, um ou mais recursos de computação correspondentes em rede para os quais os um ou mais segmentos de processamento de dados devem ser roteados; e uma sequência de tempo na qual os um ou mais segmentos de processamento de dados devem ser roteados; obter um intervalo de manipulação mínimo para cada um dos recursos de computação em rede; programar uma ordem para rotear a pluralidade de ondas de processamento de dados com base nas se-quências de tempo de onda e os intervalos de manipulação mínimos para os recursos de computação em rede; e rotear cada um dos segmentos de processamento de dados na pluralidade de ondas de processamento de dados com base na ordem.
[00019] De acordo com outro aspecto, está provido: um sistema para coordenar o processamento de dados por múltiplos recursos de computação em rede, o sistema compreendendo pelo menos um processador configurado para: receber de uma ou mais fontes de dados sinais que representam instruções para execução de uma pluralidade de processos de dados executáveis por uma pluralidade de recursos de computação em rede, os processos de dados representando uma transação proposta em um interesse financeiro; obter dados associados com liquidez disponível do interesse financeiro em cada um da pluralidade de recursos de computação em rede; dividir cada um da pluralidade de processos de dados em uma pluralidade de segmentos de processamento de dados, cada segmento de processamento de dados dividido de um único processo de dados a ser roteado para pelo menos um da pluralidade de processadores de computação em rede; com base pelo menos parcialmente em latências em execução de solicitações de processamento de dados anteriores roteadas pelo sistema para cada um da pluralidade de processadores de computação em rede e a liquidez disponível em cada um da pluralidade de processadores de computação em rede, determinar uma pluralidade de parâmetros de tempo, cada um da pluralidade de parâmetros de tempo estando associado com um correspondente da pluralidade de segmentos de processamento de dados, a pluralidade de parâmetros de tempo determinada causar uma execução sincronizada da pluralidade de segmentos de processamento de dados pela pluralidade de processadores de computação em rede; com base nos parâmetros de tempo e processadores de computação em rede associados com cada um da pluralidade de processos de dados, determinar uma sequência de tempo para rotear os segmentos de processamento de dados para todos da pluralidade de processos de dados; e rotear a pluralidade de segmentos de processamento de dados para a pluralidade de proces- sadores de computação em rede correspondentes com base na sequência de tempo.
[00020] De acordo com outro aspecto, está provido um método para coordenar um processamento de dados por múltiplos recursos de computação em rede, o método: receber de uma ou mais fontes de dados sinais que representam instruções para execução de uma pluralidade de processos de dados executáveis por uma pluralidade de recursos de computação em rede, os processos de dados representando uma transação proposta em um interesse financeiro; obter dados associados com liquidez disponível do interesse financeiro em cada um da pluralidade de recursos de computação em rede; dividir cada um da pluralidade de processos de dados em uma pluralidade de segmentos de processamento de dados, cada segmento de processamento de dados dividido de um único processo de dados a ser roteado para pelo menos um da pluralidade de processadores de computação em rede; com base pelo menos parcialmente em latências em execução de solicitações de processamento de dados anteriores roteadas pelo sistema para cada um da pluralidade de processadores de computação em rede e a liquidez disponível em cada um da pluralidade de processadores de computação em rede, determinar uma pluralidade de parâmetros de tempo, cada um da pluralidade de parâmetros de tempo estando associado com um correspondente da pluralidade de segmentos de processamento de dados, a pluralidade de parâmetros de tempo determinada causar uma execução sincronizada da pluralidade de segmentos de processamento de dados pela pluralidade de processadores de computação em rede; com base nos parâmetros de tempo e processadores de computação em rede associados com cada um da pluralidade de processos de dados, determinar uma sequência de tempo para rotear os segmentos de processamento de dados para todos da pluralidade de processos de dados; e rotear a pluralidade de segmentos de processamento de dados para a pluralidade de processadores de computação em rede correspondentes com base nas sequência de tempo.
[00021] De acordo com outro aspecto, está provido um meio ou meios legíveis por computador que têm armazenados nos mesmos instruções as quais quando executadas por pelo menos um processador, configuram o pelo menos um processador para: receber de uma ou mais fontes de dados sinais que representam instruções para execução de uma pluralidade de processos de dados executáveis por uma pluralidade de recursos de computação em rede, os processos de dados representando uma transação proposta em um interesse financeiro; obter dados associados com liquidez disponível do interesse financeiro em cada um da pluralidade de recursos de computação em rede; dividir cada um da pluralidade de processos de dados em uma pluralidade de segmentos de processamento de dados, cada segmento de processamento de dados dividido de um único processo de dados a ser roteado para pelo menos um da pluralidade de processadores de computação em rede; com base em pelo menos parcialmente em la- tências em execução de solicitações de processamento de dados anteriores roteadas pelo sistema para cada um da pluralidade de processadores de computação em rede e a liquidez disponível em cada um da pluralidade de processadores de computação em rede, determinar uma pluralidade de parâmetros de tempo, cada um da pluralidade de parâmetros de tempo estando associado com um correspondente da pluralidade de segmentos de processamento de dados, a pluralidade de parâmetros de tempo determinada causar uma execução sincronizada da pluralidade de segmentos de processamento de dados pela pluralidade de processadores de computação em rede; com base nos parâmetros de tempo e processadores de computação em rede associados com cada um da pluralidade de processos de dados, determi- nar uma sequência de tempo para rotear os segmentos de processamento de dados para todos da pluralidade de processos de dados; e rotear a pluralidade de segmentos de processamento de dados para a pluralidade de processadores de computação em rede correspondentes com base na sequência de tempo.
[00022] Como será apreciado por aqueles versados na técnica relevante, uma vez que estes se tornaram familiarizados com esta descrição, coordenação ou sincronização de execução de solicitações de processamento de dados distribuídas por, por exemplo, uma transmissão sincronizada ou coordenada de solicitações para tal processamento, tem uma grande quantidade de possíveis aplicações em um grande número de campos de processamento de dados.
[00023] Referência será agora feita aos desenhos, os quais mostram como exemplo modalidades da presente descrição.
[00024] Figuras 1A, 1B, 1C, 3 e 9 mostram exemplos de sistemas adequados para causar um processamento de dados por múltiplos recursos de computação em rede de acordo com vários aspectos da invenção.
[00025] Figuras 2, 4, 8 e 12 mostram fluxogramas que ilustram exemplos de métodos para coordenar o processamento de dados por múltiplos recursos de computação em rede de acordo com vários aspectos da invenção.
[00026] Figura 5 mostra um histograma exemplar que pode ser utilizado em um método exemplar para gerenciar o processamento de dados por múltiplos recursos de computação em rede de acordo com vários aspectos da invenção.
[00027] Figuras 6A e 6B mostram uma comparação de razões de preenchimento utilizando um método e sistema exemplar para processamento de dados por múltiplos recursos de computação em rede ver- sus utilizar um método e sistema convencional.
[00028] Figura 7 ilustra a utilização de uma métrica exemplar para comparar um método e sistema exemplar para processamento de dados por múltiplos recursos de computação em rede versus resultados de utilizar um método e sistema da técnica anterior.
[00029] Figura 10 mostra uma tabela que ilustra dados exemplares associados com recursos de computação em rede.
[00030] Figura 11A, 11B, 11C, 11D, 11E mostram programações exemplares para rotear segmentos de processamento de dados em ondas de processamento de dados.
[00031] Através de todos os desenhos anexos, características iguais estão identificadas por números de referência iguais.
[00032] Nesta descrição, como será compreendido por aqueles versados na técnica relevante, 'sincronizado' ou 'coordenado' pode significar de acordo com qualquer sequência de tempo desejada, seja regular, irregular, e/ou totalmente ou parcialmente simultânea.
[00033] A Figura 1 mostra um exemplo de um sistema 100 adequado para coordenar o processamento de dados por múltiplos recursos de computação em rede de acordo com a invenção.
[00034] No exemplo mostrado, o sistema 100 inclui um ou mais fontes de sinal ou dados 102 (que compreendem uma ou mais cada uma das fontes 102a, 102b), processador(es) de roteador de execução 104, e um ou mais recursos de computação em rede, ou processadores de execução, 106. Em algumas modalidades, fontes de dados 102 podem incluir uma ou mais fontes de dados internas 102a, as quais podem comunicar com o roteador 104 diretamente (por exemplo, através de rede(s) locais ou de área ampla ou outra comunicação sem fio ou com fio segura, através de canal(is) de comunicação direta ou através de comunicação(ões) dentro de um único servidor). Na mesma e/ou ou- tras modalidades, a(s) fonte(s) de dados 102 podem também incluir um ou mais fontes de dados externas 102b, as quais podem, por exemplo, comunicar com processador(es) de roteador 104 através de uma ou mais redes públicas 108 (por exemplo, uma rede de telecomunicações pública ou privada tal como a internet), utilizado dispositivos de segurança de rede adequados ou de outro modo desejados os quais podem, por exemplo, inclui criptografia de dados, etc. No exemplo mostrado, processador(es) de roteador 104 comunicam com cada um dos um ou mais recursos de execução em rede, ou computação 106 através de uma rede 110, a qual pode ser a mesma que ou diferente que a(s) rede(s) 108.
[00035] Em várias modalidades, a(s) fonte(s) de dados 102 podem incluir dispositivos que proveem, no nome de uma ou mais entidades que geram negócios e/ou outras solicitações de processamento de dados, sinais que comunicam dados e/ou instruções relativos à execução de processos de processamento de dados para o(s) processa- dor(es) de roteador 104, cujos dados e/ou instruções o(s) processa- dor(es) de roteador 104 podem processar (por exemplo, agregar por soma, média, etc.; e/ou dividir em segmentos, etc.). e utilizar como bases para solicitações para processamento de dados pelos recursos de computação em rede 106. As fontes de dados 102a, 102b podem incluir, por exemplo, sistemas, servidores, processadores e/ou quaisquer outra(s) fonte(s) adequadas de solicitações para execução de tarefas de processamento de dados tais como ofertas e/ou lances para compra de mercadorias, interesses financeiros intangíveis, etc., e/ou outras tarefas de processamento de dados, tais como palavra, imagem, e/ou outras comunicações ou tarefas de processamento de documento. Cada de qualquer da(s) fonte(s) de dados 102, processador(es) 104, e recursos 106 pode incluir múltiplos tais sistemas, servidores ou processadores.
[00036] Em várias modalidades, alguns ou todos a(s) fonte(s) de dados 102 e processador(es) de roteador 104 podem ser combinados, e/ou de outro modo configurados para implementar múltiplas programações outras aplicações de instrução de máquina que executam em máquinas únicas.
[00037] Os recursos de computação em rede 106 podem incluir quaisquer dispositivos ou outros recursos que comunicam com (s) pro- cessador(es) de roteador 104 para receber e executar qualquer de uma muito ampla variedade de solicitações de processamento de dados. Tais recursos de computação em rede 106 podem inclui sistemas, servidores, processadores ou quaisquer outros dispositivos adequados adaptados para execução de quaisquer processos adequados para utilização na implementação da invenção, incluindo, por exemplo, processamento de ofertas ou lances para compra de mercadorias, interesses financeiros, etc., e/ou outras tarefas de processamento de dados, tais como processamento de palavra ou documento, imagem, e/ou outras comunicações ou tarefas de documentação.
[00038] Em várias modalidades, as uma ou mais fontes de dados 102 transmitem ou de outro modo proveem para o(s) processador(es) de roteador 104 sinais que representam instruções, ou solicitações, para executar funções de processamento de dados. As instruções de quaisquer dada(s) fonte(s) de dados 102 podem inclui instruções para processos de sinal a serem executados por qualquer um ou mais recursos de computação em rede 106. Os processos de sinal solicitados podem incluir, por exemplo, operações de computação, manipulações de dados, e/ou processos de comunicações ou outras trocas de sinal, entre outros. Em alguns mas não necessariamente todos os exemplos, tais instruções podem especificamente identificar recurso(s) de computação em rede 106 especificamente visados para execução de tais processos.
[00039] O(s) processador(es) de roteador 104 pode analisar os sinais de instrução recebidos de uma ou mais fonte(s) 102 e utilizar tais sinais para preparar instruções, ou solicitações, para serem encaminhadas para pluralidades de processadores de execução 106, para execução de processamento de dados e/ou outros processos de sinal de acordo com as instruções recebidas. A análise de tais instruções podem incluir, por exemplo, identificar o tipo de processo(s) a serem solicitados, incluindo, por exemplo o volume ou quantidade de um pedido ou lance para um negócio ou uma quantidade de processamento de documentos a ser feita, e o tipo, natureza, e/ou identidade(s) de recurso(s) de computação em rede 106 a serem solicitado para executar, e por meio disto associados com, um dado processamento de dados e/ou outra solicitação de processamento de sinal.
[00040] Por exemplo, de modo a aumentar a eficiência de sinal e/ou outras funções de processamento de dados, o(s) processador(es) de roteador 104 podem analisar, classificar, e agregar instruções ou solicitações recebidas de múltiplas fontes 102 para solicitações de execução relativamente menor em uma ou mais solicitações maiores para processamento, e ainda dividir tais solicitação(ões) agregadas em pluralidades de menores solicitações a serem distribuídas para pluralida- de(s) de processadores de execução 106, dependendo, por exemplo, na capacidade corrente dos processadores de execução 106 satisfazer ou completar tais solicitações processadas.
[00041] Por exemplo, múltiplos conjuntos de sinais de instrução recebidos de diferentes fontes de dados 102a, 102b podem estar associados com (por exemplo, endereçados para fornecimento para e execução por) recurso(s) de computação em rede individuais 106, e tais instruções podem ser agregadas em únicas solicitações de execução de processo de sinal para tais recurso(s) de computação em rede 106. Em alguns exemplos, a identificação do(s) recurso(s) de computação em rede 106 a serem atarefados com uma dada solicitação de processamento de sinal pode ser executada após a agregação. Por exemplo, múltiplas instruções de diferentes fontes de dados 102a, 102b podem ser classificadas ou de outro modo associadas com um único sinal ou processo de dados, e tais instruções podem ser agregadas, e as instruções agregadas podem ser associadas com um ou mais recurso(s) de computação em rede identificados 106, de modo que um ou mais solicitações de processo de sinal podem ser consequentemente preparadas para o(s) recurso(s) de computação em rede identificados 106. Tal análise, classificação, e/ou identificação podem ser executadas de acordo com regras ou algoritmos predeterminados (por exemplo, com base em capacidades de processamento continuadas ou correntes de um ou mais recurso(s) de computação em rede específicos 106), e de acordo com requisitos codificados nas instruções ou de outro modo providos pela(s) fonte(s) originadoras 102, onde relevante.
[00042] Como um exemplo adicional, conjuntos de instruções únicos para processamento de dados podem ser partidos por processa- dor(es) 104 e distribuídos para uma pluralidade de recursos 106 para uma execução distribuída. Por exemplo, um pedido relativamente grande para negociação em um ou mais interesses financeiros que originam de uma única fonte 102a, 102b, pode precisar ser distribuído para múltiplos servidores de bolsa 106 de modo a serem completamente preenchidos; em tais casos a(s) solicitação(ões) de uma ou mais fonte(s) 102 podem ser partidas por processador(es) 104 em pedidos adequados para execução por uma pluralidade de tais recursos 106.
[00043] Em algumas modalidades, os conjuntos de instruções podem ser recebidos como partes de várias ondas de pedido de um ou mais corretores. Estas ondas de pedido podem conter conjuntos de instruções, os quais podem ser visados para serem transmitidos para vá- rias jurisdições para negociação em um ou mais interesses financeiros.
[00044] Recursos de computação em rede / processadores de execução visados, ou especificamente identificados, 106 comunicam com o(s) processador(es) de roteador 104 para receber as solicitações de execução de processo de sinal segmentadas e podem posteriormente executá-los consequentemente. A execução de tais processos de sinal pode incluir, por exemplo, executar uma operação de processamento de texto ou imagem, uma computação matemática, ou uma troca de sinais de comunicações, entre outros.
[00045] Como será prontamente compreendido por aqueles versados na técnica relevante, vários componentes do sistema 100 pode ser combinados, ou podem ser implementados na forma de sistemas ou dispositivos separados. Em uma ampla variedade de configurações, tais (sub)sistemas combinados ou separados podem ser operados pelas mesmas ou distintas entidades. Como um exemplo específico, uma ou mais fonte(s) de solicitação 102 podem estar integrados com, ou de outro modo associadas com, roteador(es) individual(is) 104.
[00046] Em algumas modalidades, o sistema pode prover um ou mais roteadores de pedido inteligentes 104 incluindo um ou mais processadores que podem estar configurados para o roteamento sequen- ciado, priorizado, programado, escalonado, de segmentação, e/ou agrupados de pedidos ou outros segmentos / solicitações de processamento de dados relativos a um ou mais interesses financeiros.
[00047] Por exemplo, os segmentos de processamento de dados podem estar agrupados em ondas, e o roteamento dos segmentos individuais pode ser programado, escalonado, agrupado, etc., com base nos dados monitorados associados com recursos de computação em rede de destino. Em algumas modalidades, os segmentos de processamento de dados podem ser roteados de modo que os pedidos cheguem em, sejam processados por, e/ou sejam executados em um ou mais recursos de computação em rede dentro de um quadro de tempo definido pelo menos em parte sobre os dados monitorados. A Figura 1C provê um diagrama esquemático de amostra que apresenta um número de ondas exemplares de segmentos de processamento de dados sendo submetidos por Corretores X e Y para Jurisdições 1-5, utilizando o(s) processador(es) de roteador 104.
[00048] Em algumas modalidades, múltiplas instâncias de uma solicitação de processamento de dados podem ser roteadas para múltiplas trocas com diferentes quantidades, conduzidas em uma sequência de tempo determinada. A sequência de tempo pode estar baseada em parâmetros de tempo determinados dos dados monitorados, e pode definir um pedido temporizado no qual a iniciação do roteamento dos segmentos de processamento de dados deve ser executada.
[00049] Em pedidos de roteamento, o sistema pode estar configurado para a determinação de parâmetros de tempo, os quais podem incluir a determinação de faixas de tempo, distribuições, etc. Os parâmetros de tempo podem ser variáveis, adaptáveis, ponderados, pro- babilísticos, etc., e podem também ser sintonizáveis dependendo de vários fatores, tal como congestionamento de rede, carga de pedidos, prioridade de pedido, características de jurisdição, etc.
[00050] Em algumas modalidades, o sistema pode estar configurado para adaptar o roteamento de pedidos (segmentos de processamento de dados) com base em um fluxo de pedidos predito. Por exemplo, o sistema pode ter um grande número de pedidos programados a serem roteados em um tempo específico ou durante um quadro de tempo específico. Consequentemente, o sistema pode estar configurado para adaptar o roteamento de um ou mais pedidos dadas cargas preditas sobre o equipamento de rede, canais de comunicação, sistemas de jurisdição, percursos de roteamento, equipamento de rede intermediário, etc. O sistema pode estar ainda configurado para distri- buir o roteamento de pedidos através de várias conexões de rede e/ou através de diferentes quadros de tempo de modo a balancear em carga o roteamento de pedidos.
[00051] Como aqui descrito, o sistema monitora dados associados com um ou mais recursos de computação em rede. Estes dados podem ser adquiridos com ou recebidos de um ou mais componentes ou dispositivos no sistema.
[00052] O sistema pode também estar configurado para monitorar dados de rede associados com um ou mais recursos de computação em rede, incluindo o monitoramento de desempenho de rede, monitoramento de conexões de rede disponíveis, entre outros. Distribuições probabilísticas e/ou modelos de desempenho de rede podem ser gerados, adaptados, definidos e/ou empregados em relação ao monitoramento de rede. O monitoramento de rede pode ser utilizado para adaptar parâmetros de tempo, etc. O monitoramento de rede pode incluir a determinação e/ou monitoramento de, por exemplo, meios de latência, máximos, desvio padrão, curtose, L-curtose, distorção, medianas, variância, modo, correlações, correlações cruzadas, covariância, etc., e pode estar correlacionado e/ou associado com outros fatores, tal como carga de pedido, hora do dia (por exemplo, a abertura de negociação, o fechamento de negociação), a ocorrência de eventos financeiros (por exemplo, parar pedidos de negócio, eventos corporativos, publicações de estatística, publicação de relatórios de analista, mudanças de classificação de crédito), a ocorrência de eventos de rede (por exemplo, manchas solares, negação de ataques de serviço).
[00053] O monitoramento de rede pode ocorrer, por exemplo, através do rastreamento de desempenho de rede através de 'batimentos cardíacos' (por exemplo, a transmissão de sinais ping, transmissões regularmente programadas, pacotes de solicitação de eco) para medir o tempo de transmissão de sinais, desempenho de roteamento de pe- dido histórico, fluxo de roteamento de pedido recente, o envio de mensagens de teste, etc.
[00054] Em algumas modalidades, as mensagens de teste são utilizados para monitoramento de rede e a diferença em tempo entre as mensagens de teste e as mensagens de pedido roteados pode ser utilizada na determinação de várias características de roteamento de pedido, tal como o tempo requerido para processar um pedido, latência interna dentro de uma jurisdição, etc.
[00055] Em algumas modalidades, o sistema utiliza várias técnicas de predição de rede na determinação de carga de pedidos através de várias conexões de rede, em várias jurisdições, etc., incluindo pedidos programados para serem roteados pelo próprio sistema. As solicitações de execução podem ser redispostas e/ou programadas com base em parte na prática predita.
[00056] Em algumas modalidades, o sistema pode acessar ban- co(s) de dados ou pode receber ou monitorar mensagens de rede para obter informações referentes à topologia de uma ou mais cone- xão(ões) de rede assim como o esquema de redundância. Por exemplo, o sistema pode ter duas ou mais conexões e/ou rotas para uma jurisdição. Acessando e monitorando o desempenho destas conexões e/ou rotas, quando uma conexão / rota primária falha, quando da detecção, o sistema pode estar configurado para rotear todos os pedidos subsequentes com base em latências associadas com a rota / conexão secundária conhecida de modo a minimizar tempos indesejados e provavelmente taxas de preenchimento causados pela falha.
[00057] Em algumas modalidades, quando disponível, o monitoramento de rede pode ser executado em solicitações de negócio previamente roteados.
[00058] O sistema pode também estar configurado para o rastrea- mento da razão de captura de negócio, a qual pode ser determinada pela razão entre a soma de liquidez de pedido como determinado em um tempo (por exemplo, quando uma decisão de negócio é feita) e a quantidade de liquidez que foi capturada em um negócio.
[00059] A razão de captura de negócio pode ser utilizada para vários propósitos, tal como adaptar parâmetros de tempo, determinar que um componente de rede falhou, detectar que terceiros podem estar interceptando pedidos, etc. Por exemplo, uma alta razão de captura de negócio pode ser indicativa de vazamento de informações reduzido e/ou taxa de preenchimento aumentada, e uma baixa razão de captura de negócio pode ser indicativa de vazamento de informações aumentado e/ou uma taxa de preenchimento diminuída. Uma baixa razão de captura de negócio pode, por exemplo, disparar um alerta, uma notificação, adaptação pelo sistema através da aplicação de lógica comercial, implementação de parâmetros de tempo, estratégias de rotea- mento modificadas, etc.
[00060] Em algumas modalidades, o sistema pode incluir uma lógica comercial que pode ser utilizada na determinação de como os pedidos, instruções de roteamento, etc., podem ser sequenciados, priori- zados, programados, escalonados, segmentados, e/ou agrupados. A lógica comercial pode também ser utilizada para seleção de rota, determinação de rota, priorização de rota, etc. A lógica comercial pode também ser utilizada para suporte de decisão. Em algumas modalidades, a lógica comercial pode ser utilizada para priorizar pedidos com base em várias regras comerciais, tal como regras configuradas para priorizar jurisdições que têm carteiras de pedido que contêm maiores quantidades de liquidez para um título financeiro específico, etc.
[00061] Em algumas modalidades, a lógica comercial pode incluir capacidades de suporte de decisão inteligente, tal como a capacidade de atravessar árvores de decisão, etc.
[00062] Em alguns exemplos, o sistema pode acessar, receber ou determinar (com base em rede monitorada e desempenho de pedido) informações referentes a diferentes jurisdições. Em alguns exemplos, estar informações podem incluir uma estimativa capacidades de manipulação de mensagem de jurisdição(ões). Como aqui ilustrado, se o pedido cair em uma fila de jurisdições ou as capacidades de processamento de jurisdição(ões) estão sobrecarregadas, o retardo de processamento resultante pode afetar a eficiência de parâmetros de tem-po e pode reduzir o controle que o sistema tem sobre a arbitragem de latência limitante. Consequentemente, em alguns exemplos, o sistema pode estar configurado para utilizar parâmetros de tempo para evitar filas de jurisdições ou sobrecarga.
[00063] Em alguns exemplos, as informações de jurisdição podem incluir localizações físicas de jurisdições, distâncias entre jurisdições (distâncias de cabo ótico ou tempos de transmissão), presença conhecida ou provável de um negociante predatório colocalizado, eficiência ou velocidade do negociante colocalizado, etc. Em alguns exemplos, um ou mais destes fatores podem ser utilizados para determinar os parâmetros de tempo. Por exemplo, se uma onda de pedido envolver uma jurisdição com um negociante colocalizado conhecido, efetivo, os parâmetros de tempo podem ser determinados com base em uma tolerância / diferencial de tempo mais baixa. Em alguns exemplos, rotear negócios com a mais alta tolerância de tempo ocorrerá quando os negócios são roteados em uma sequência de tempo que resulta em chegada ou execução simultânea. Em alguns casos, ter uma chegada / execução simultânea pode não ser ótimo para mercados em mudança, assim o(s) processador(es) podem estar configurados para considerar diferentes permutas.
[00064] O sistema pode estar configurado para levar em consideração o potencial para terceiros impactar a concretização de transações e/ou negócios em títulos financeiros. Por exemplo, um negociante de alta frequência pode utilizar informações relativas a um primeiro pedido em uma primeira jurisdição para determinar que um segundo pedido acontecerá em uma segunda jurisdição. O negociante de alta frequência pode então fazer um negócio oportunista antes da chegada do segundo pedido, potencialmente impactando o preço e/ou quantidade disponível para o segundo pedido. Como um resultado, o segundo pedido pode não ser concretizado ou ser concretizado em uma quantidade mais baixa, impactando a captura de negócio e taxa de preenchimento. Como um segundo exemplo, um negociante de alta frequência pode utilizar informações relativas a um primeiro pedido em uma primeira jurisdição no cancelamento de um pedido em uma segunda jurisdição e substituindo o pedido por um pedido de preço mais alto, na expectativa da chegada de um segundo pedido pela entidade de colocou o primeiro pedido. Como um terceiro exemplo, um negociante de alta frequência pode utilizar informações relativas a um primeiro pedido em uma primeira jurisdição na determinação de informações de pedido (por exemplo, tal como a National Best Bid and Offer) que pode estar mais atualizado do que as informações de pedido disponíveis em uma ou mais jurisdições. O negociante de alta frequência pode então utilizar estas informações para colocar pedidos oportunistas que causam a execução de transações onde os preços e/ou quantidades podem ser subótimas para as contrapartes para seus pedidos. Por exemplo, pedidos com preço errado sendo deixados nas carteiras de pedido, etc.
[00065] O sistema pode ser implementado em vários componentes de uma rede comercial. Por exemplo, o sistema pode ser implementado como parte de sistemas eletrônicos de corretor; como parte de uma rede; como um serviço de porta e fornecimento de mensagem intermediário; como parte de sistemas eletrônicos de jurisdição, etc.
[00066] Por exemplo, se o sistema for implementado como um ser- viço de porta e fornecimento de mensagem intermediário, o sistema pode estar configurado para receber de um ou mais corretores uma pluralidade de pedidos, os quais podem estar associados com uma ou mais ondas de pedido para uma ou mais jurisdições. O serviço de porta e fornecimento de mensagem intermediário pode então coordenar o roteamento, grupamento e/ou segmentação dos pedidos e/ou subpe- didos para as uma ou mais jurisdições. Por exemplo, um corretor pode 'desistir' de um pedido e rotear um pedido em nome do corretor.
[00067] Em algumas modalidades, o sistema está implementado em um nível de corretor. Por exemplo, um corretor pode utilizar o sistema para o roteamento de pedidos de cliente. Em algumas modalidades, o sistema está implementado em um nível de cliente. Por exemplo, um cliente pode utilizar o sistema para o roteamento de seus próprios pedidos.
[00068] O sistema pode estar configurado para o roteamento de um grande número de pedidos, e pode estar projetado para escalar com base no volume de pedidos. Consequentemente, o sistema pode ser implementado utilizando várias tecnologias adequadas. Em algumas modalidades, o sistema é uma solução baseada em software. Em algumas modalidades, o sistema é uma solução baseada em utensílio. Em algumas modalidades, o sistema é uma combinação de uma solução tanto baseada em software quanto utensílio. A escalabilidade pode ser importante já que o sistema pode precisar ser capaz de manipular um grande número de ondas de múltiplos corretores simultanea-mente.
[00069] Em algumas modalidades, o sistema está implementado utilizando tecnologias em rede distribuída, por exemplo, técnicas de computação de nuvem. Uma vantagem potencial de utilizar as tecnologias em rede distribuída incluem a capacidade de provisionar recursos para suportar várias instâncias dos sistemas com base nos volu mes de roteamento de pedido. Tecnologias de resiliência e/ou alta dis-ponibilidade, tal como os sistemas de tolerância a falhas, backups ge-renciados, esquemas de backup quente / frio podem também ser utilizados para atingir um nível consistente de serviço e/ou tempo ativo. Por exemplo, podem existir várias instâncias do sistema que podem estar configuradas para compartilhar informações entre si, o que pode permitir o restabelecimento de seções sem perda para clientes e jurisdições no caso de uma falha.
[00070] Algumas modalidades do sistema podem prover vários benefícios, tal como as taxa de captura de negócio aumentada, taxas de preenchimento aumentadas, vazamento de informações para terceiros reduzido, risco reduzido de mover o mercado, tomada de decisão aperfeiçoada (por exemplo, conseguir uma negociação mais ótima entre liquidez de pedido e o risco de vazamento de informações), a capacidade de utilizar informações de tempo de várias fontes, a capacidade de utilizar modelos de latência adaptáveis e/ou probabilísticos, a capacidade de rapidamente e efetivamente determinar falhas em uma rede ou em equipamento de rede, etc.
[00071] Onde o sistema está implementado como um serviço de porta e fornecimento de mensagem intermediário, podem existir pode estar benefícios potenciais já que não existe integração ou integração reduzida requerida em um nível de jurisdição e/ou um nível de corretor, e um corretor pode ser capaz de utilizar o sistema com necessidade reduzida para investimento em infraestrutura, pode existir a capacidade de operar o sistema independentemente de corretores, instituições financeiras, clientes, e/ou jurisdições. Em algumas modalidades, a infraestrutura existente, protocolos de mensagens, redes, etc., podem ser utilizados em conjunto com o sistema. Uma necessidade reduzida para integração e/ou adaptação, assim como facilidade de inte- roperação com padrões e/ou protocolos existentes pode ser comerci- almente valiosa em vista de requisitos regulatórios, requisitos de resili- ência, requisitos de título, e as despesas potenciais e/ou complexidade requerida para modificações de sistema. A capacidade para interope- rar com sistemas externos e/ou protocolos existentes pode levar a uma adoção e/ou fluxo de corretor elevados.
[00072] Além disso ou alternativamente à determinação de parâmetros de tempo para as solicitações de roteamento para múltiplas jurisdições, em algumas modalidades, aspecto(s) do sistema podem estar configurados para determinar os parâmetros de tempo para o rotea- mento de múltiplas solicitações para a mesma jurisdição (isto é, em ondas ou de outro modo).
[00073] Um exemplo de uma aplicação de uma sistema 100 para execução distribuída de solicitações de processamento segmentado de acordo com a invenção está provido por um sistema financeiro 1000 adaptado para processamento de solicitações para processamento de dados que representam negócios e/ou ofertas para negócios, ou outras transações, em interesses financeiros tangíveis e/ou intangíveis tais como ações, apólices, moedas (por exemplo, câmbio estrangeiro), várias formas de natural recursos naturais ou mercadorias, opções, empréstimos, etc. Como mostrado nas Figuras 1A e 1B, por exemplo, em um sistema de processamento de dados de transação financeira 1000 de acordo com a invenção, a(s) fonte(s) de sinal ou de dados 102 podem incluir sistema(s) de negociante 1102, os quais podem, por exemplo, incluir sistemas ou servidores de negociante / corretor assim como quaisquer outras fontes de lances, ofertas, ou outras transações em interesses financeiros tal como correntemente provido por plataformas de negociação financeira. Em várias modalidades, tais sistemas de negociante 1102 podem ser referidos como sistemas de origem de pedido.
[00074] Os sistemas de origem de pedido 1102, 102a podem incluir sistemas operados por ou em nome de, por exemplo, entidades possuídas ou de outro modo controladas por organizações de controle pais ou outras tais como bancos ou casas de corretagem. Os sistemas de origem de pedido 1102, 102b podem, por exemplo, incluir sistemas operados por ou em nome de corretores ou outras entidades comerciais que atuam no nome de, por exemplo, investidores individuais, que negociam através de ou com a assistência de bancos independentemente controlados, investidores institucionais, e/ou outras casas de corretagem.
[00075] O(s) processador(es) de roteador 104 em tais modalidades podem inclui, por exemplo, servidor(es) ou outros sistema(s) 1104 que comunicam com os sistemas de negociante 1102, 102, por exemplo através do recebimento e transmissão de sinais eletrônicos codificados que representam solicitações para processamento de dados que representam a execução e/ou confirmação de transações em interesses financeiros; e os quais comunicam com sistemas ou processador(es) de execução de corredor, bolsa, ou outro mercado 1106 para execução de tais transações. Em tais modalidades um processador 104 pode ser referido como um Roteador de Pedido Inteligente ou Roteador de Pedido Híbrido Táctico (em qualquer caso, "SOR") 1104, 104. Um SOR 1104 pode, por exemplo, incluir uma ou mais porta(s) 1122 e/ou roteador(es) 1124 para facilitar as comunicações por roteador(es) 1104 com um ou mais sistemas de negociante 1102, 102 diretamente (por exemplo, através de comunicação com fio, utilizando um ou mais canal(is) de comunicação dedicados, ou através de comunicação dentro de um único servidor) e/ou indiretamente (por exemplo, através de comunicação sem fio, através de uma rede 108, 1108 ou através de um servidor intermediário). Os sistemas de bolsa ou mercado 1106, ou outro(s) processador(es) de execução 106 podem estar em comunicação com SOR(s) 1104 através de, por exemplo, uma rede 110, 1110, tal como a internet ou outra rede pública, a qual pode ser a mesma que a rede 1108.
[00076] Para uma modalidade de um sistema 100 configurado como um sistema de negociação financeira ou execução de pedido 1000, processos de sinal solicitados e executados providos por fonte(s) 102 podem representar negócios ou outras transações em interesses financeiros. Tais transações podem incluir, por exemplo, negócios e/ou ofertas para negócios, ou outras transações, em interesses financeiros tais como ações, apólices, moedas (por exemplo, câmbio estrangeiro), várias formas de recursos naturais ou mercadorias, opções, empréstimos, etc.; e recursos de computação em rede 106 podem ser, por exemplo, servidores de bolsa 1106, exemplos dos quais incluem sistemas de mercado automáticos ou eletrônicos.
[00077] Como será bem compreendido versados na técnica relevante, um (sub)sistema de SOR, ou processador, 1104 que recebe tais conjuntos de sinais de solicitação de transação podem aplicar uma ampla variedade de processos nas solicitação(ões). Por exemplo, onde os conjuntos de sinal representam solicitações para transações em interesses financeiros, as transações solicitadas podem ser agregadas, ou ao longo do tempo e/ou através de múltiplas fontes de solicitação de transação 1102; e/ou solicitações de processamento para transações em um ou mais interesses podem ser divididas para roteamen- to para múltiplos manipuladores ou processadores de execução 1106, individualmente ou em lotes.
[00078] Os conjuntos de sinais que representam solicitações para transações em interesses financeiros, por exemplo, podem ser seções de FIX como recebidas de corretores de cliente. Como exemplos, dois tipos de pedido ou instruções de pedido que podem ser aceitos incluem pedidos imediatos ou de cancelamento (IOC), e pedidos únicos visados.
[00079] No contexto de pedidos de IOC - um corretor poderia enviar em um conjunto de sinais que representa pedidos que o corretor pretende ser enviado como uma única onda para um conjunto de bolsas. Onde os pedidos são sempre IOCs, muitas outras funções são simplificadas já que pode não haver necessidade para a manipulação de cancelamentos ou substituições subsequentes. Consequentemente, as ondas de IOC podem não precisar manter afinidade e podem ser livres para utilizar seções de bolsa disponível para melhor gerencias o congestionamento.
[00080] No contexto de pedidos únicos visados, um cliente de corredor pode utilizar o sistema para enviar pedidos diretos para bolsas, aproveitando-se de conectividade de rede seções de bolsa. Este serviço pode ser utilizado por um corretor como uma porta de pedido primária para bolsas ou como um serviço de backup (reduzindo suas necessidades para conectividade de backup para bolsas individuais).
[00081] Em alguns exemplos outros tipos de pedido tal como pedidos diários, pedidos bons até cancelados, ou qualquer outro tipo de pedido podem ser utilizados mas podem requerer um rastreamento adicional para manete afinidades e resultados de pedido e podem envolver enviar e receber múltiplas mensagens (por exemplo substituir / modificar / cancelar pedidos e confirmações) para das diferentes jurisdições.
[00082] Em algumas modalidades, utilizar pedidos diretos ou imediatos ou cancelar, pode em alguns casos permitir que o sistema de SOR utilize um processo de mensagens mais eficiente o que pode reduzir as cargas de mensagens de pedido e/ou processamento, e/ou aumentar o rendimento de mensagens.
[00083] Em várias modalidades, como aqui descrito, a(s) fonte(s) de pedido 102, 1102 podem ser implementadas juntamente com, ou como parte de, roteador(es) de pedido 104, 1104. Será prontamente com- preendido por aqueles versados na técnica relevante que qualquer ou todos os vários componentes do(s) sistema(s) 100, 1000, incluindo, por exemplo qualquer ou todos o(s) processador(es) 102, 104, 106, e métodos para operá-los de acordo com a descrição aqui, podem ser implementados utilizando quaisquer dispositivos, software, e/ou firmware configurados para os propósitos aqui descritos. Uma ampla variedade de componentes, tanto de hardware quanto de software, assim como firmware, é agora conhecida que são adequados, quando utilizados separadamente e/ou em várias combinações, para implementar tais sistemas, dispositivos, e métodos; sem dúvida outros daqui em diante serão desenvolvidos.
[00084] Exemplos de componentes adequados para utilização na implementação de exemplos de sistemas 100, 1000, e os vários processos aqui descritos, incluindo, por exemplo processos 200 da Figura 2 e 300 da Figura 4, incluem, por exemplo, sistemas de classe de servidor tal como o IBM x3850 M2™, o HP ProLiant DL380 G5™, HP ProLiant DL585™, e HP ProLiant DL585 G1™. Uma ampla variedade de outros processadores, incluindo em algumas modalidades sistemas de modelo desktop, laptop, ou palm servirão.
[00085] Um exemplo de um método 200 para processamento de um conjunto de sinais de solicitação de transação gerado por uma fonte de sinal de solicitação de transação 102, 1102, adequado para implementação por um processador(es) de roteador 104 tal como, por exemplo, um SOR 1104 de um sistema 1000, está mostrado na Figura 2.
[00086] O processo 200 da Figura 2 pode ser considerado iniciar em 202, com o recebimento pelo(s) processador(es) 104, 1104 de sinais que representam uma solicitação para processamento de dados tais como, por exemplo, uma transação em um ou mais interesses financeiros. Em modalidades dos sistemas 100, 1000 que compreendem processador(es) de roteamento de SOR 1104 adaptados para processar sinais que representam solicitações para execução de negócios e/ou outras transações em interesses financeiros recebidos de fonte(s) de sinal de transação 1102, conjuntos de sinais que representam solicitações para execução de transações em um ou mais interesses financeiros podem incluir sinais ou conjuntos de sinais que representam, por exemplo, um ou mais identificadores que representam: • a(s) fonte(s) da solicitação, tal como um URL ou outro endereço de rede ou identificador utilizado por ou de outro modo associados com um sistema de negócio 102, 1102; • o(s) interesse(s) a serem negociados ou de outro modo transacionados, tal como um identificador utilizado por uma ou mais bolsas para identificar uma ação, um número CUSIP para uma apólice, um conjunto de moedas a serem negociadas, etc.; • um tipo de transação (por exemplo, compra, venda, lance, oferta, etc.). a ser executado ou solicitado; • uma ou mais quantidades (isto é, quantidades ou volumes) do(s) interesse(s) a serem transacionados (incluindo, por exemplo quaisquer quantidades totais e/ou reserva); e • termos de preço correspondentes
[00087] Parâmetros adicionais podem incluir, por exemplo, corrente e/ou histórico: • probabilidade de preenchimento para solicitações de transação de múltiplas partes, ou segmentadas (isto é, a proporção histórica de pedidos de múltiplas partes que resultam em transações completadas); • quantidades de margem de lucro entre, por exemplo, preços de lance e oferta, por exemplo, correntes e/ou relativos a tendências históricas em margem de lucro; • volatilidade de mercado em interesses específicos a serem negociados, ou interesse(s) relativos ou correspondentes, pontos de referência ou índices relativos; • profundidade de carteira(s) de mercado, por exemplo pro-fundidade corrente em relação a tendências históricas em profundidade; • quantidades de reserva; • prioridade de pedido; • tolerância para vazamento de informações; • período de latência máximo (o qual pode, por exemplo, restringir um tamanho máximo para um parâmetro de tempo associado); • percurso de roteamento desejado; • jurisdição desejada; • instruções de roteamento específicas; • quantidades de exibição; e • tamanho de exibição e apoio, por exemplo em lados de compra e/ou venda.
[00088] Alguns ou todos estes parâmetros podem ser coletados como ou baseados em dados monitorados associados com um ou mais recursos de computação em rede.
[00089] Em outras modalidades, tais conjuntos de sinais podem compreender um conteúdo e/ou identificadores que representam imagens, texto, ou outro conteúdo ou para ser processado por um ou mais processadores de execução 104, 1104, e solicitações de execução específicas.
[00090] Onde os pedidos de cliente / corretor que entram necessitariam ser identificados como fazendo parte de uma onda de pedido, em alguns exemplos, o(s) processador(es) podem estar configurados para receber grupos de repetição de mensagem de FIX , onde os pedidos individuais podem ter sinalizadores que indicam que o pedido é o Nth pedido de uma onda de M pedidos totais.
[00091] Alternativamente, os pedidos podem ser marcados como sendo o primeiro e último pedidos de uma onda. Em algumas modalidades, uma afinidade pode precisar ser preservada de modo que substituições e cancelamentos sejam manipulados corretamente nas mesmas seções de jurisdição que os pedidos originais.
[00092] Entre os muitos tipos de sistemas de mercado 1106 adequados com várias modalidades da invenção estão os sistemas de negócios alternativos (ATSs) do tipo conhecido como bolsas 'escuras', ou coligações 'escuras'. Tipicamente, tais bolsas não exibem abertamente as ofertas de mercado para os membros do público negociante. A utilização de quantidades de reserva conhecidas ou preditas pode ser especialmente útil em tais modalidades.
[00093] Assim um exemplo de um registro de dados a ser provido por uma fonte 102, 1102 para solicitar uma transação em um dado interesse, em termos declarados, pode incluir: <fonte (102, 1102) de solicitação><tipo de transação><identificador de interesse ><quantidade(s)>< termo(s) de preço>
[00094] Os conjuntos de sinais recebidos pelos processadores 104, 1104 em 202 podem ser armazenados em qualquer memória(s) voláteis e/ou persistentes conforme apropriado para propósitos de arquivamento e/ou processamento adicional.
[00095] Em 204, a transação ou outras solicitações de execução de processamento de dados recebidas em 202 podem ser analisadas por processador(es) de roteador 104, 1104 para colocá-las em qualquer forma adequada ou desejada para utilização na preparação de um ou mais conjuntos de sinais de instrução a serem providos para os pro- cessador(es) de execução 106, 1106. A análise de sinais de instrução pode incluir, por exemplo, identificar o tipo de transação(ões) ou pro- cesso(s) a serem solicitados, incluindo, por exemplo, volumes e/ou quantidades de pedidos ou lances para negócios em interesse(s) es- pecificados, e se tais volumes devem ser comprados ou vendidos, ou oferecidos para venda ou compra; quantidades e/ou tipos de processamento de documentos a serem feitos; e o tipo e natureza de recur- so(s) de computação em rede ou processador(es) de execução 106 a serem solicitados para executar e por meio disto ser associados com tais instruções de execução ou processamento. Em várias modalidades os conjuntos de instruções analisados podem ser armazenados em memória(s) temporárias ou voláteis 118, 1018 acessíveis pelos processador(es) correspondente(s) 104, 1104 para agregação com outras solicitações de processamento, divisão para roteamento para múltiplos processadores de execução / recursos 106, 1106, e/ou preparação e transferência de lote ou outras solicitações de execução retardadas.
[00096] Na preparação de um ou mais conjuntos de sinais de instrução, um módulo de programação de pedido pode ser utilizado que pode estar configurado para manipular a capacidade a jusante, enfileiramento, e congestionamento na rede, portas de bolsa, e filas de máquina de cruzamento de bolsa.
[00097] O módulo pode estar configurado para prever a taxa de fluxo de mensagem / pedido máxima que cada seção de bolsa pode manipular, e então pró-ativamente evitar exceder ou ficar próximo desta taxa. Os processador(es) de roteador de SOR 1104 podem estar configurados para ressequenciar ou retardar o envio dos pedidos iniciais em uma onda, se este calcular que subsequentes pedidos na onda ou em uma onda seguinte poderiam tornar-se congestionados ou enfileirados.
[00098] O módulo pode estar configurado com um mecanismo de retorno (com base em monitoramento de latência de ida e volta de ACK) para dinamicamente determinar um congestionamento a jusante e retardos de enfileiramento já que estes podem não ser estáticos, consistentes, ou preditíveis.
[00099] Para manipular estas capacidades, os processador(es) de roteador de SOR 1104 podem estar configurados para acessar as bolsas utilizando múltiplas seções de pedido de bolsa e podem também estar configurados para balanceamento de carga do fluxo através das seções de pedido.
[000100] Em algumas modalidades, os conjuntos de instruções podem consistir em mensagens de FIX que têm mecanismos embutidos tal como grupos repetitivos que têm grupos de informações de pedido armazenados como múltiplos constituintes com uma única mensagem. Estas mensagens podem frequentemente ser utilizadas para transportar ondas de cestas - por exemplo, para representar pedidos da mesma ação em diferentes jurisdições, ou para representar um portfolio que deseja comprar um conjunto de 38 ações, múltiplas instâncias do mesmo pedido de ação podem ser transmitidas para múltiplas bolsas com diferentes quantidades, transportadas em uníssono com o(s) pro- cessador(es) de roteador de SOR determinando a programação utili-zando o tempo.
[000101] As instruções recebidas em 202 podem ser acumuladas durante intervalos de tempo definidos, regulares ou irregulares, tal como a duração de um dia de negócios ou qualquer seu segmento, ou quaisquer outro(s) período(s) de tempo desejado(s), os quais podem ser pré-ajustados e/ou dinamicamente determinados pelos processa- dor(es) 104, 1104. As instruções podem também ser processadas individualmente, conforme recebidas. Se mais instruções devem ser recebidas antes do processamento, ou podem potencialmente ser recebidas, o processo 200 pode retornar para 202.
[000102] As solicitações / instruções de transação podem ser acumuladas durante intervalos de tempo definidos, tal como a duração de um dia comercial ou qualquer seu segmento, ou a período de tempo dese- jado, o qual pode ser pré-ajustado e/ou dinamicamente determinado pelo(s) processador(es) 104, 1104. Se mais instruções devem ser recebidas, ou podem potencialmente ser recebidas, processo 200 pode retornar para 202.
[000103] Em modalidades da invenção as quais empregam técnicas de classificação / agregação em analisar ou de outro modo preparar um pedido ou outras solicitações de processamento, em 206 o(s) pro- cessador(es) 104, 1104 podem repetir o processo 202 - 204 até que todos os conjuntos de sinais de solicitação de processamento relativos ou agregáveis necessários ou desejados tenham sido recebidos da(s) fonte(s) 102, 1102. Por exemplo, como acima descrito, números de registros de dados arbitrários que representam pedidos ou solicitações para compra de apólices identificáveis por números CUSIP (Committee on Uniform Security Identification Procedures) podem ser recebidos da(s) fonte(s) de dados 102, 1102, e armazenados na memória 118, 1018 associada com os processador(es) 104, 1104, para processamento em lote, por exemplo: <fonte 1><venda><CUSIP No. AA><10.000><preço A>< res. 9.000><preço D> <fonte 2><compra><CUSIP No. BB><12.000><preço C>< res. 1.000><preço B> <fonte 3><venda><CUSIP No. BB><11.000><preço A>< res. 8.000><preço D> <fonte 6><venda><CUSIP No. AA><14.000><preço A>< res. 2.000><preço E> <fonte 4><compra><CUSIP No. AA><18.000><preço C>< res. 7.000><preço B> <fonte 1><venda><CUSIP No. BB><20.000><preço A>< res. 3.000><preço D> <fonte 3><venda><CUSIP No. AA><13.000><preço A>< res. 6.000><preço D> <fonte 4><compra><CUSIP No. BB><22.000><preço C>< res. 4.000><preço B> <fonte 5><venda><CUSIP No. AA><21.000><preço A>< res. 5.000><preço E> <fonte 4><compra><CUSIP No. BB><15.000><preço C>< res. 7.000><preço F> <fonte 1><venda><CUSIP No. AA><19.000><preço A>< res. 3.000><preço D> <fonte 5><compra><CUSIP No. BB><16.000><preço C>< res. 8.000><preço F> <fonte 6><venda><CUSIP No. BB><17.000><preço A>< res. 6.000><preço H>
[000104] Em outro cenário exemplar, os processador(es) podem receber grandes instruções de execução individuais da(s) fonte(s) de dados 102, 1102. Por exemplo: <fonte 1><compra><CUSIP No. AAA><100.000><preço A>
[000105] Em outro cenário exemplar, como ilustrado, exemplo na Figura 1C, os processador(es) podem receber instruções de execução de pedido em ondas. Como ilustrado nas instruções exemplares na Figura 1C, em alguns exemplos, as instruções de execução que chegam podem também incluir campos de jurisdições específicas para identificar o recursos em rede ou jurisdição para visar.
[000106] Quando do recebimento individual, ou em uma dada taxa periódica, a um dado tempo quando um dado número de pedidos foi recebido, quando todos os pedidos desejados foram recebidos, ou quando qualquer outro critério desejado foi satisfeito, o(s) processa- dor(es) 104, 1104 podem, como parte de análise ou de outro modo instruções de processamento em 204, classificar e/ou agrupar os registros armazenados de acordo com qualquer um ou mais critérios de- sejados, por exemplo, por tipo de solicitação de transação e identificador de interesse. Por exemplo, no primeiro cenário exemplar acima: <compra><CUSIP No. AA><18.000><preço C><res. 7.000> <preço G><fonte 4> <venda><CUSIP No. AA><10.000><preço A><res. 9.000> <preço D><fonte 1> <venda><CUSIP No. AA><14.000><preço A><res. 2.000>< preço E><fonte 6> <venda><CUSIP No. AA><13.000><preço A><res. 6.000> <preço D><fonte 3> <venda><CUSIP No. AA><21.000><preço A><res. 5.000> <preço E><fonte 5> <venda><CUSIP No. AA><19.000><preço A><res. 3.000> <preço D><fonte 1> <compra><CUSIP No. BB><15.000><preço C><res. 7.000> <preço F><fonte 4> <compra><CUSIP No. BB><22.000><preço C><res. 4.000> <preço B><fonte 4> <compra><CUSIP No. BB><12.000><preço C><res. 1.000> <preço B><fonte 2> <compra><CUSIP No. BB><16.000><preço C><res. 8.000> <preço F><fonte 5> <venda><CUSIP No. BB><20.000><preço A><res. 3.000>< preço D><fonte 1> <venda><CUSIP No. BB><11.000><preço A><res. 8.000>< preço D><fonte 3> <venda><CUSIP No. BB><17.000><preço A><res. 6.000>< preço H><fonte 6> como mostrado, vários campos de dados nos registros de solicitação de transação podem ser reordenados ou de outro modo re- formatados conforme necessário ou desejado, para adequar às necessidades de processamento do(s) processador(es) de roteamento 104, 1104. Por exemplo, como mostrado, a associação de um item de dados "fonte" associado com ou de outro modo acordado uma diferentes prioridade, para facilitar uma ordenação eficiente enquanto permitindo que o(s) processador(es) 104, 1104 reportem a concretização de transações / solicitações no completamento de processamento de pedido.
[000107] O processo 204 pode ainda incluir a agregação pelo(s) pro- cessador(es) 104, 1104 de solicitações de transação recebidas e classificadas, em pedido(s) coletados ou consolidados para específicos tipos de transações em específicos interesse(s), por exemplo, somando quantidades totais ou subtotais associadas com solicitações de transação correspondentes, assim: <compra><CUSIP No. AA><18.000><preço C><res. 7.000> <preço G> <venda><CUSIP No. AA><77.000><preço A><res. 18.000> <preço D> <res. 7.000><preço E> <compra><CUSIP No. BB><65.000><preço C><res. 15.000 ><preço E><res. 5.000><preço B> <venda><CUSIP No. BB><48.000><preço A><res. 11.000> <preço D><res. 6.000><preço H>
[000108] A Figura 9 mostra um processo e diagrama de fluxo de dados de processos e fluxos de dados exemplares para um roteador / sistema de pedido 104, 1104. Em alguns exemplos, o roteador / sistema de pedido 104, 1104 pode incluir um módulo de processamento de mensagem de cliente 2105 por meio de que o(s) processador(es) 104, 1104 e/ou outros componentes de hardware podem estar configurados para receber ondas de mensagens de cliente. Em alguns exemplos, as instruções de pedido de cliente podem ser recebidas em ondas de múltiplas mensagens. Em alguns tais exemplos, o módulo de proces- samento de mensagem de cliente pode estar configurado para preparar mensagens de pedido em um armazenamento temporário ou outro dispositivo de memória / armazenamento de preparação de onda de pedido 2110 até que todas as mensagens de pedido que pertencem a uma onda específica sejam recebidas.
[000109] Em um exemplo, um registro de dados a ser provido por uma fonte 102, 1102 para solicitar uma transação em um dado interesse, em termos declarados, pode, além de outros campos que contêm detalhes de solicitação de transação, incluir: <WaveID><Número total de pedidos na onda><Índice de pedido corrente><Modo de Tempo para Onda><Deslocamento de tempo para modo de tempo manual><chave(s) de segurança>
[000110] Em outro exemplo, ao invés de incluir um campo de dados que indica o número total de pedidos na onda, um registro de dados pode incluir um sinalizador de <onda completa> para indicar a mensagem de pedido corrente é a última mensagem em uma onda.
[000111] Em alguns exemplos, as mensagens de pedido que chegam podem estar em um formato FIX (Financial Information eXchange), ou qualquer outro padrão ou formato / protocolo de propriedade.
[000112] Como ilustrado no exemplo na Figura 9, uma vez que pedidos individuais ou ondas completas foram recebidos, estes podem ser armazenados em um ou mais armazenamentos temporários ou outros dispositivos de memória / armazenamento até que estes estejam prontos para serem processados por um manipulador de tempo de onda 2115. No sistema exemplar na Figura 9, as solicitações de pedido completas (incluindo pedidos individuais e pedidos de onda completos) podem estar armazenados em múltiplos níveis ou filas. Por exemplo, as solicitações de pedido podem ser inicialmente armazenadas em uma fila de seção de cliente até que estas sejam selecionadas para serem movidas para uma fila de ondas. Em alguns exemplos, o siste- ma está configurado para somente permitir que N ondas estejam presentes na fila de ondas. Em alguns casos, isto pode impedir que uma seção de alto volume domine a fila de ondas e recursos de roteamen- to. Em alguns exemplos, o sistema pode estar configurado para permitir mais do que N ondas na fila de ondas quando outras filas de seção não completaram a utilização do seu lote.
[000113] Em outros exemplos, solicitações de pedido completas podem ser armazenadas diretamente em uma ou mais filas de ondas (isto é sem nenhuma fila de seção de cliente intermediária).
[000114] O manipulador de tempo de onda 2115 pode ser implementado por um ou mais dispositivo(s) de hardware e/ou processador(es) 104, 1104 configurados para gerenciar a(s) fila(s) e determinar quais pedido(s) nas fila(s) serão transmitidos para as jurisdições a seguir.
[000115] Em alguns exemplos, uma proposta de primeiro a entrar, primeiro a sair (FIFO) modificada pode ser utilizada pelo manipulador de tempo de onda. No entanto, ao invés de um FIFO estrito, em algumas modalidades, o manipulador de tempo pode estar configurado para rearranjar, redirecionar, pular, ou de outro modo selecionar o(s) pe- dido(s) em uma sequência outra que simplesmente atravessar a fila. Por exemplo, em algumas modalidades, os primeiros M pedidos de onda na fila podem ser processados para determinar uma sequência para rotear estes M pedidos de onda, ou simplesmente para determinar qual dos M pedidos de onda será roteado a seguir independentemente da ordenação subsequente ou de outro modo.
[000116] Em alguns exemplos, o manipulador de tempo de onda pode estar configurado para determinar uma sequência na qual rotear os pedidos de onda para aumentar o rendimento de roteamento de pedidos disponíveis, para diminuir o período de tempo requerido para rotear todos os pedidos, e/ou para otimizar qualquer outro aspecto operacional do(s) roteador(es) 104, 1104.
[000117] Em alguns exemplos como aqui descrito ou de outro modo, a ordenação do processamento de ondas pode estar baseada em la- tências de jurisdição, rendimentos, dados mercado (por exemplo, liquidez disponível, preço, etc.)., etc.
[000118] Quando todos os conjuntos de sinais desejados foram recebidos em 202, e opcionalmente classificados, acumulados e/ou de outro modo processados em 204, em 208 o(s) processador(es) 104, 1104, utilizando os conjuntos de instruções processados em 204, podem preparar conjuntos de sinais de solicitação de execução para transmissão para processadores de recursos / de execução 106, 1106. Tais conjuntos de sinais de solicitação de execução podem compreender quaisquer sinais necessários ou desejáveis para causar o processamento solicitado, incluindo conteúdo ou dados e sinais de comando. Por exemplo, em modalidades adaptadas para o processamento de solicitações para transações em interesses financeiros, as solicitações podem ser classificadas e/ou agregadas com base em interesse(s) a serem negociados, quantidades de interesse(s) a serem negociados, preço, etc., e associadas com sinais de comando de execução adequados. A forma de quaisquer sinais de comando de execução associados com uma dada solicitação pode depender, como aqueles versados na técnica relevante reconhecerão, da natureza e tipo de solicitações a serem executadas e os processadores 106, 1106 pelos quais estas devem ser executadas, assim como quaisquer redes 110, 1110 sobre as quais os sinais trocados entre o(s) processador(es) 104, 1104 e 106, 1106 devem ser enviados, incluindo requisitos de protocolos e formatação de instruções aplicáveis. Portanto, os dados que pertencem a qualquer ou todos os sistemas 106, 1106, 104, 1104, e 110, 1110, os protocolos utilizados por meio disto, e/ou informações relativas a interesses negociados, oferecidos, ou descritos por meio destes podem ser acessados e utilizados pelo(s) processador(es) 104, 1104 em analisar e preparar instruções para execução de processamento por qualquer dos processadores ou recursos 106, 1106. As fontes 1126 de tais dados podem incluir, por exemplo, um sistema de dados de mercado de bolsa 1126v (Figura 1B) o qual, por exemplo, em modalidades da invenção adaptadas para processamento de transações financeiras, podem incluir informações recebidas de vários sistemas de bolsa 1106, fontes de informações de notícias tal como Bloomberg ou Reuters, e/ou outras fontes.
[000119] É algumas vezes necessário ou desejável, na montagem de solicitações para processamento de dados utilizando recursos de pro-cessamento em rede, incluir muitos recursos configurado para utilização em execução de transações financeiras, para partir a execução e/ou outras solicitações de processamento em múltiplas partes. Tais partes, ou segmentos, podem, por exemplo, corresponder a porções de pedidos maiores ou outras solicitações de processamento de dados, a serem executadas por uma pluralidade de recursos em rede 106 tal como servidores de bolsa ou outro processador de execução ou manipuladores 1106. Por exemplo, se uma pluralidade de servidores de bolsa ou outros mercados estiverem disponíveis para execução de uma solicitação de transação que representa um pedido de compra para uma quantidade significativa de um interesse financeiro tal como uma ação ou apólice, pode ser necessário ou desejável dividir o pedido em múltiplas partes, para execução em múltiplos mercados e/ou por múltiplos servidores de bolsa 1106. Por exemplo, quantidades suficientes de interesses específicos podem não estar disponíveis, em todos ou em preços desejáveis, em uma única bolsa: de modo a preencher um pedido inteiramente, pode ser necessário ou desejável partir um único pedido em menores segmentos e roteá-lo para múltiplas bolsas.
[000120] Assim, por exemplo, em várias modalidades da invenção visadas para o processamento de solicitações de transações em instrumentos financeiros, quando um roteador 104,1104 é solicitado por uma ou mais fontes 106, 1106 para completar uma transação em um ou mais interesses financeiros, o roteador 104, 1104 pode, na preparação de conjunto(s) de sinais que representam as solicitações para as transações, acessar informações disponíveis de fontes tal como fon- te(s) de dados de mercado 1126, assim como qualquer um ou mais processador(es) de execução 106, 1106, para determinar as quantidades de tais interesses disponíveis através dos respectivos processadores 106, 1106 e os termos sob os quais tais quantidades estão disponíveis, e pode construir um conjunto de sinal de solicitação de execução configurado para roteamento para cada um dos respectivos processadores desejados 106, 1106, com base no número de quantidades disponíveis nos termos mais favoráveis.
[000121] Por exemplo, continuando o primeiro exemplo acima, pode ser necessário ou desejável dividir uma ou mais solicitações de processamento que chegam em menores partes, visadas para uma pluralidade de bolsas, de modo a obter a concretização do(s) pedido(s) completo(s). Isto pode ser executado, por exemplo, acessando dados que representam carteiras de pedido correntes providas por um ou mais servidores de bolsa 1106 e dividindo o(s) pedido(s) correspondentemente, utilizando técnicas de processamento de dados conhecidas. Assim, por exemplo, o pedido agregado 'venda CUSIP No. AA' acima pode ser partido em porções ou segmentos e associando com dados que representam tais segmentos URLs de segmentos ou outros identificadores de endereço de recurso de rede adequados para utilização no roteamento dos vários segmentos para uma pluralidade de servidores de bolsa A1 - C3, como desejado, assim: <bolsa A1><venda><CUSIP No. AA><15.000><preço A><res. 6.000><preço D><res. 2.000><preço E> <bolsa B2><venda><CUSIP No. AA><27.000><preço A><res. 6.000><preço D><res. 2.500><preço E> <bolsa C3><venda><CUSIP No. AA><35.000><preço A><res. 6.000><preço D><res. 2.500><preço E>
[000122] Como aqui descrito ou de outro modo, em alguns exemplos, preparar 208 as solicitações de execução podem incluir combinar, ou dividir pedidos em menos ou mais pedidos para uma pluralidade de diferentes jurisdições. Em alguns exemplos, preparar 208 as solicitações de execução pode incluir formatar, rearranjar ou de outro modo preparar pedidos originais, divididos e/ou combinados em FIX ou outro(s) forma- to(s) compatíveis com as respectivas jurisdições de destino.
[000123] Em algumas modalidades, na preparação das solicitações execução / negócio, o(s) processador(es) de roteamento de SOR 1104 podem estar configurados para determine qual jurisdição um pedido deve ser roteado. Vários fatores podem ser considerados pelo(s) pro- cessador(es) de roteamento de SOR 1104, tal como tamanho de cota, estrutura de custo, suporte de vários tipos de pedido, estrutura de desconto, execução velocidade média, latência, variância de latência, taxa de preenchimento histórica, etc.
[000124] Apesar do método exemplar 200 na Figura 2 ilustrar a preparação de solicitações de execução 208 e a determinação de tempo para solicitações de execução 210 como blocos separados, em algumas modalidades, a preparação e a determinação de tempo para as solicitações podem ser feitas em ordens opostas, concorrentemente, e/ou podem fazer parte do mesmo processo. Por exemplo, vários fatores e dados observados / medidos como aqui descrito ou de outro modo podem ser utilizados para tanto preparar solicitações de execução quanto determinar o tempo para estas solicitações.
[000125] Como será apreciado por aqueles versados na técnica relevante, a execução de porções individuais de uma transação distribuída ou outra solicitação de processamento de dados de múltiplas partes tal como uma transação em interesses financeiros colocada em múltiplas bolsas por uma pluralidade de recursos de rede, tal como servidores de mercado ou de bolsa 1106 ou outros processadores de execução 106, tipicamente requer diferentes quantidades de tempo. Isto é, se múltiplas partes de uma solicitação de execução de transação desejada forem enviadas simultaneamente para uma pluralidade de processadores de execução de bolsa 106, 1106, cada parte ou segmento da solicitação de transação pode ser esperado executar em um diferente ponto no tempo. Isto é porque a quantidade de tempo, ou 'latência,' requerida para a transmissão de sinais de solicitação de execução do(s) roteador(es) de pedido 104, 1104 para os diferentes vários recursos ou processador de execução 106, 1106 através de uma rede 110, 1110 ou outro percurso de comunicações; para um processamento real de porções correspondentes da solicitação de execução pelos processadores correspondentes 106, 1106; e/ou para retorno de dados confirmatórios ou outros para o(s) roteador(es) de pedido 104, 1104 tipicamente varia dependendo de um número de fatores, incluindo, por exemplo, os percursos de rede entre o(s) roteador(es) 104, 1104 e os processadores de execução 106, 1106; a quantidade de tráfego de rede sendo processada pela(s) rede(s) 110, 1110; o número de solicitações sendo manipuladas pelos processadores de execução individuais 106, 1106, etc.
[000126] Por um número de razões pode ser importante, em tais casos, sincronizar a execução de duas ou mais porções de uma solicitação de execução de múltiplas partes. Como um exemplo, quando uma solicitação de execução representa uma solicitação para execução de múltiplas partes de uma transação financeira in múltiplos mercados ou em múltiplas bolsas, uma execução não sincronizada, escalonada de porções individuais da transação por múltiplos correspondentes servi- dores pode afetar tanto a possibilidade de completar as porções posteriores da transação e/ou os termos sob os quais tais porções posteriores podem ser completadas.
[000127] Um exemplo específico do desejo de sincronizar as solicitações de execução pode estar ilustrado através de referência à Figura 3. No exemplo mostrado in Figura 3, o sistema 100, 1000 compreende o roteador de pedido 104, 1104 e uma pluralidade de recursos de execução em rede 106, servidores de bolsa ou processadores de execução 1106 "Bolsa 1," "Bolsa 2," "Bolsa 3". Além disso, o sistema 100, 1000 da Figura 3 ainda compreende um servidor de negociação co- localizado 304 configurado para executar negócios ou outras transações no recurso de execução 1106 "Bolsa 1". Como notado na Figura, o servidor de negociação co-localizado 304, o qual emprega um algoritmo de negociação de latência relativamente baixa, está associado com a Bolsa 1 de tal modo que este pode executar transações com a Bolsa 1 em um período de tempo relativamente curto comparado com a quantidade de tempo requerida para outros processadores, tal como roteador(es) 104, 1104, para completar transações similares com a Bolsa 1. Por exemplo, o servidor co-localizado 304 pode estar comunicativamente conectado com a Bolsa 1 por conexão com fio direta, ou outro sistema de processamento rápido. Mais ainda, a Bolsa 1 é capaz de completar uma solicitação de execução com processador(es) não co-localizado(s) 104, 1104 em um período de tempo relativamente mais curto (isto é, como uma "latência mais baixa") do que é a Bolsa 2 ou a Bolsa 3. Em outras palavras, como mostrado na Figura 3, Tempo de latência X < Tempo Y e Tempo X < Tempo Z, enquanto que um tempo de execução para uma transação entre servidor co-localizado 304 e a Bolsa 1 é menor do que qualquer um do Tempo X, Tempo Y, e Tempo Z.
[000128] Se, por exemplo, sinais que representam uma solicitação para negócio em um ou mais interesses financeiros forem recebidos por um processador de roteador 104, 1104 de uma ou mais fontes de solicitação 102, 1102, e a solicitação é de tal quantidade ou magnitude que um pedido que reflete tal solicitação será muito grande para ser completamente preenchido por qualquer uma das Bolsas 1, 2, ou 3, o roteador de pedido 104, 1104 pode tentar verificar as disponibilidades sobre os vários processadores disponíveis 106, 1106 e dividir o pedido consequentemente, de modo a rotear uma porção deste para uma da Bolsa 1, Bolsa 2, e Bolsa 3. Se o roteador 104, 1104 da Figura 3 simultaneamente transmitir para cada uma da Bolsa 1, Bolsa 2, e Bolsa 3 dos processadores de execução 106, 1106 uma porção dividida ou segmento da solicitação para execução da transação solicitada, é possível que o servidor de negociação 304 (o qual poderia, por exemplo, ser operado por uma entidade de negociação de alta frequência, ou outro investidor especulativo) será capaz de preencher uma porção desta transação na Bolsa 1, por exemplo, atuando como uma contra- parte para a transação proposta vendendo ou comprando toda ou uma porção da solicitação de transação transferida para aquela bolsa pelo roteador de pedido 104, em termos declarados na solicitação para a transação, e ter um tempo no qual mudar ou de outro modo postar termos para preenchimento de porções restante do pedido na Bolsa 2 e/ou Bolsa 3, em termos mais favoráveis para a parte que torna a(s) transação(ões) disponíveis (por exemplo, a parte que opera ou atua através do servidor 304) do que aquelas que oferecem tais transações (por exemplo, aqueles pedidos atrasados providos pelo(s) processa- dor(es) de solicitação 104, 1104) poderiam de outro modo ter tentado. Em outras palavras, por exemplo, o servidor de negociação co- localizado 304 pode, devido à diferença em latências de execução associadas com negócios com a Bolsa 1, Bolsa 2, e Bolsa 3, ser capaz de preencher uma porção da transação solicitada na Bolsa 1 e mover para aperfeiçoar seus termos, por exemplo, aumentando ou diminuindo seu lance / preço oferecido, para preencher as porções restantes da transação na Bolsa 2 ou Bolsa 3 antes que tais porções restantes possam executar em preços previamente declarados, de modo a aumentar seus próprios lucros do operador ou beneficiário(s), ou os lucros de outros negociantes que oferecem interesses similares nestas Bolsas.
[000129] Como pode ser visto na Figura 3, tais possibilidades (as quais podem ser referidas como oportunidades de 'arbitragem de la- tência') podem existir quando: Tempo X + Tempo A < Tempo Y e/ou Tempo X + Tempo B < Tempo Z
[000130] Será apreciado por aqueles versados na técnica relevante que, mesmo onde sinais de transação ou de outra solicitação de processamento são enviados simultaneamente para cada uma das Bolsas 1, 2, 3 do(s) roteador(es) 104, 1104, o tempo requerido para cada porção dividida da solicitação a ser recebida, confirmada, e/ou processada pelos respectivos recursos 106, 1106 (por exemplo, Tempos X, Y, Z) pode em geral ser diferente, por exemplo devido a diferenças em percursos de comunicações de rede e velocidades de processamento em qualquer ou todos o(s) processador(es) 104, 1104 e/ou 106, 1106. Similarmente, o tempo requerido para o servidor de negociação 304 mudar os termos de ofertas de transação em cada uma das Bolsas 2 e 3 pode em geral diferir.
[000131] Entre as desvantagens as quais podem surgir em tais casos é que os negociantes representados por fonte(s) de solicitação 102, 1102 podem pagar preços mais altos na execução de seus negócios do que estes de outro modo pagariam, na ausência de tais oportunidades de arbitragem; ou, se os preços em bolsas subsequentes forem mudados suficientemente para colocá-los fora dos termos decla- rados em suas solicitações de execução, estes podem não ser capazes de completar as transações em quantidades desejadas - por exemplo, toda ou parte de uma transação roteada para um bolsa processador 1106 pode não negociar em vista de um preço mudado.
[000132] Em tais exemplos, nos quais uma instrução de negócio pode não ser totalmente concretizado em um servidor de bolsa 1106 devido a, por exemplo, o preço ou outra manipulação de termo por um terceiro se aproveitando de latências, em prosseguimento de solicitações de processamento de dados em um ou mais servidores de bolsa 1106 pode ser útil temporizar ou programar o envio de solicitações de negócio para múltiplos servidores de bolsa 1106 de modo que a execução de tais solicitações de negócio em todos os servidores de bolsa 1106 aconteçam em um modo sincronizado, tal como, por exemplo, em um modo substancialmente concorrente. Especificamente, pode ser útil sincronizar a execução de solicitações de execução de processamento sinal, ou suas porções ou segmentos, em múltiplos recursos de computação em rede 106, 1106, por exemplo de modo que os processos de sinal sejam recebidos, confirmados, e/ou executados pelos recursos 106, 1106 em um modo substancialmente concorrente.
[000133] Em alguns exemplos pode não ser necessário que os processos de sinal sejam executados em cada processador 106, 1106 serem executados simultaneamente, mas pode ser suficiente que: Tempo Y - Tempo X < Tempo A, e/ou Tempo Z - Tempo X < Tempo B, de modo que a execução das(s) solicitação(ões) ou seus segmentos ocorra antes que qualquer mudança em termos possa ser implementada por um servidor de negociação 304. A utilização de tais tempos sincronizados pode, por exemplo, fazer com que: Tempo X + Tempo A > Tempo Y e/ou Tempo X + Tempo B > Tempo Z e assim, por exemplo, derrotar as oportunidades de arbitragem de latência. Em algumas modalidades, portanto, a invenção provê ao(s) roteador(es) 104, 1104 a capacidade de executar transações através de múltiplos recursos 106, 1106 com mínima ou nenhuma variância de tempo, de modo que aos algoritmos executados por negoci- ante(s) 304 que empregam algoritmos de baixa latência seja dados tempo insuficiente para reagir às mudanças de mercado.
[000134] Em algumas modalidades, a faixa de tempo requerida para assegurar que a arbitragem de latência como descrita na equação acima possa ser minimizada e/ou eliminada pode determinar uma faixa aceitável para o roteamento de sinais que representam pedidos para um ou mais servidores de negociação 304.
[000135] Assim, nestes e outros casos onde a sincronização é desejada, em 210 o processador / roteador 104, 1104 pode determinar que tempos absolutos ou relativos sejam atribuídos para, ou de outro modo associados com, várias porções ou segmentos de uma solicitação de execução, de modo a obter o sequenciamento desejado. Tais tempos podem ser determinados de modo a causar qualquer sincronização desejada: por exemplo, tempos configurado para causar uma execução simultânea, ou substancialmente simultânea, pode ser determinados, ou tempos configurados para causar qualquer sequenciamento desejado podem ser determinados.
[000136] Em alguns exemplos, uma sequência para rotear solicitações pode ser definida determinando parâmetros de tempo aceitáveis (incluindo faixas) para escalonar o roteamento das diferentes solicitações de roteamento. Estas sequências podem incluir solicitações para diferentes jurisdições ou múltiplas solicitações para a mesma jurisdição. Em alguns exemplos, a sequência de tempo pode ser determinada de modo a fazer cm que solicitações relativas sejam executadas dentro de um limite de tempo definido. Este limite de tempo pode estar baseado em um tempo de arbitragem de latência observado ou de outro modo.
[000137] Assim em 210, um parâmetro de tempo pode ser determinado para cada solicitação de execução de processamento de sinal, ou sua porção, a ser atribuída para cada respectivo recurso de computação em rede 106, 1106. Os parâmetros são determinados de tal modo a causar uma execução sincronizada das solicitações de execução de processamento sinal em cada um dos respectivos recursos de computação em rede 106, 1106. Esta determinação pode estar baseada pelo menos parcialmente em uma latência determinada correspondente no tempo de execução de tal(is) solicitação(ões) e/ou por- ção(ões), tal como, por exemplo qualquer ou todas as latências A, B, X, Y, Z da Figura 3, e/ou quaisquer outras latências relevantes, na execução de trocas de sinal entre o(s) processador(es) de roteador 104, 1104 e cada um dos recursos de computação em rede 106, 1106, ou no processamento de outros tais sinais por qualquer de tais dispositivos.
[000138] Em algumas modalidades, os parâmetros de tempo podem ser atribuídos a respectivas solicitações de execução de processamento sinal, ao invés dos recursos de computação em rede 106, 1106. Em algumas modalidades, os parâmetros de tempo são definidos como faixas para execução, e podem ser utilizados de acordo com a lógica comercial aplicada para determinar e/ou implementar estratégias de roteamento para associação com um ou mais respectivas solicitações de execução de processamento sinal. Por exemplo, os parâmetros de tempo podem ser utilizados para indicar que um conjunto específico de solicitações de execução de processamento sinal deve ser processado / recebido / executado dentro de uma específica faixa de tempo, com a faixa de tempo sendo determinada dinamicamente pe- lo(s) processador(es) de roteador de SOR 1104. Por exemplo, uma faixa de tempo pode ser determinada com base em vários fluxos lógicos comerciais que recebem como parâmetros a liquidez na carteira de pedidos de uma jurisdição específica. Em algumas modalidades, uma faixa de tempo e/ou parâmetro de tempo pode também ser satisfeito através da seleção de um percurso de roteamento específico ou conexão de comunicação.
[000139] Em algumas modalidades, os parâmetros de tempo podem levar em consideração condições e/ou características de rede monitoradas. Por exemplo, a variância, desvio padrão, mediana, média, modo, curtose, etc.
[000140] Em algumas modalidades, os parâmetros de tempo podem ser determinados com base em uma faixa de tempo e/ou probabilida- de(s) que um negócio específico chegará e/ou será executado dentro de uma faixa de latência específica. Como ilustrado na Figura 5, dados de latência historicamente monitorados podem em alguns exemplos prover probabilidade(s) e/ou outros dados estatísticos tal como desvios padrão, variância, etc. Em algumas modalidades, o(s) processador(es) de roteador de SOR 1104 podem estar configurados para determinar parâmetros de tempo os quais caem dentro de limites estatísticos definidos.
[000141] Como uma alternativa a, ou em conjunto com a latência requerida para transmissão, as características rede podem ser monitoradas e utilizadas por processador(es) de roteador de SOR 1104 para o roteamento de pedidos.
[000142] O monitoramento de desempenho de rede pode ser uma tarefa não trivial já que as condições de rede podem estar constantemente mudando devido a uma variedade de fatores, tal como congestionamento de rede, tráfego, largura de banda disponível, força de canal, ruído, artefatos, eventos de rede, etc., e o desempenho pode afetar a transmissão e/ou roteamento de pedidos. Podem existir proble- mas de rede específicos de jurisdição, tal como congestionamento em portas de bolsa, etc.
[000143] Em algumas modalidades, o desempenho de rede monitorado pode ser aproximado e/ou modelado utilizando uma ou mais medidas, por exemplo, para determinar valores estatísticos, tal como média, modo, mediana, variância, covariância, correlação, curtose, distorção, desvio padrão, etc.
[000144] O desempenho de rede monitorado pode ser monitorado com níveis variáveis de granularidade e escopo, por exemplo, um percurso de rede individual pode ser monitorado, uma jurisdição pode ser monitorada, etc. Em algumas modalidades, podem existir múltiplos percursos de rede que podem ser utilizados para rotear um sinal para uma jurisdição, e os próprios percursos podem ser monitorados por suas características de rede.
[000145] Por exemplo, podem existir três diferentes conexões de rede, A, B e C, e se A e B estiverem congestionadas, conexão de rede C pode ser selecionada.
[000146] Em algumas modalidades, o monitoramento de desempenho de rede pode ser ponderado de modo que as medições de rede mais recentes tenham uma maior significância e/ou influência sobre um modelo, para refletir a aceitação das informações medidas.
[000147] O monitoramento de rede pode ser executado com base em uma variedade de dados, por exemplo, mensagens instantâneas de viagem de retorno programadas podem ser enviadas para periodicamente determinar as latências de rede através de um número de conexões. Em algumas modalidades, informações de pedido e/ou informações de roteamento históricas podem ser utilizadas na determinação de desempenho de rede. Por exemplo, o roteador 1104 enviou uma dúzia de pedidos sobre esta conexão nos últimos 2 ms, e um número de latências que têm características específicas foi encontrado.
[000148] Em algumas modalidades, mensagens de teste, mensagens duplicadas, etc., podem também ser transmitidas as características de latência de rede. Mensagens que têm vários comprimentos e/ou instruções, ou uma falta de instruções podem ser comparadas umas com as outras para determinar as latências associadas com o processamento de jurisdição.
[000149] Em algumas modalidades, o monitoramento de rede pode estar configurado para determinar diferentes componentes de uma la- tência de negócio. Por exemplo, quando latência de ida e volta é monitorada, a latência de ida e volta pode ser dividida em dois ou três componentes. Por exemplo, três componentes podem incluir a latência associada com a transmissão de uma solicitação sendo enviada para a jurisdição, a latência associada com a execução da solicitação pela jurisdição, e a latência associada com a transmissão de uma resposta sendo enviada de volta da jurisdição. Em outro exemplo, a latência de ida e volta pode ser dividida entre latências de transmissão (isto é medição combinada das latências de transmissão para enviar a solicitação a jurisdição, e para receber a resposta da jurisdição), e a latência associada com a execução da solicitação pela jurisdição. Outras com-binações de diferentes componentes baseados em latência podem também ser utilizadas.
[000150] Em alguns exemplos, a determinação dos diferentes componentes de uma viagem de ida de volta ou outra latência agregada pode estar baseada no monitoramento da latência agregada para diferentes tipos de solicitação. Por exemplo, solicitações para diferentes tipos de pedido ou para cotas podem resultar em diferentes latências de ida e voltas agregadas e podem, em alguns exemplos, ser utilizadas para determinar diferentes componentes das latências agregadas, e/ou para determinar parâmetros de tempo para diferentes tipos de solicitação.
[000151] Em alguns exemplos, o(s) processador(es), em 208 e/ou 210, podem estar configurados para selecionar jurisdições para visar e/ou ajustar tempos com base em outros fatores como aqui descrito ou de outro modo. Em alguns exemplos, o(s) processador(es) para selecionar as jurisdições e/ajustar os tempos com base nos dados associados com uma jurisdição. Estes dados podem, em alguns exemplos, ser acessados de uma fonte de dados e/ou podem compilados ou observados com base em razões de captura, latências e similares.
[000152] Em alguns exemplos, o(s) processador(es) podem estar configurados para preferir jurisdições ou terem diferenciais de tempo mais longos para jurisdições as quais são menos prováveis de ter mais competição para solicitações de negócio (por exemplo por um negociante colocalizado e/ou de alta frequência). Em alguns exemplos, o(s) processador(es) podem estar configurados para terem diferentes pontuações preferenciais ou ajustes de tempo para diferentes jurisdições com base em fatores os quais podem ser indicativos de maior competição ou um maior risco de perder negócios para a arbitragem. Em alguns exemplos, um conhecimento explícito de um negociante colocali- zado oportunista pode ser acessado de uma fonte de dados ou pode ser implicitamente determinado com base em menores razões de capturas e/ou menores diferenciais de tempo que envolvem a jurisdição específica.
[000153] Em alguns exemplos, o(s) processador(es) podem estar configurado para terem diferentes pontuações preferenciais ou ajustes de tempo para jurisdições com base na estrutura de taxa e/ou desconto da jurisdição. Por exemplo, as jurisdições as quais proveem descontos para portar certos negócios podem ser mais prováveis terem competição de negociantes de alta frequência.
[000154] Em alguns exemplos, quando múltiplas opções de jurisdição estão disponíveis, o(s) processador(es) podem estar configurado para selecionar jurisdições as quais são menos prováveis terem uma maior competição. Em alguns exemplos, o(s) processador(es) podem estar configurado para gerar tempos os quais podem arriscar perder a liquidez da jurisdição com maior competição (por exemplo programando-a mais tarde na sequência ou com um maior retardo) se este aumentar as chances de capturar liquidez em outra(s) jurisdição(ões). Em alguns exemplos, o(s) processador(es) podem gerar tempos mais apertados para ondas que envolvem jurisdições com maior competição.
[000155] Em alguns exemplos, o(s) processador(es) podem estar configurados para selecionar jurisdições e/ou ajustar diferenciais de tempo com base na liquidez perdida ou valor bruto perdido o que seria sofrido se uma solicitação de negócio devesse chegar muito cedo ou muito tarde na jurisdição. Isto pode estar, em alguns exemplos, baseado em liquidez postada, lance / pedir preço postado, etc. O(s) pro- cessador(es) podem estar configurados para diminuir a pontuação preferencial ou apertar o diferencial de tempo para jurisdição(ões) as quais resultariam em maiores perdas (liquidez ou valor) se uma solicitação de negócio para a(s) jurisdição(ões) devessem chegar muito cedo ou tarde resultando em perdas de arbitragem potenciais.
[000156] Em algumas modalidades, o(s) processador(es) de roteador de SOR 1104 podem estar configurados para automaticamente ajustar o valor de parâmetros de tempo e/ou o tamanho de faixas de tempo em resposta a vários valores medidos providos como retorno, tal como uma razão de captura de negócio, uma recente de taxa de preenchimento, etc. Por exemplo, uma razão de captura de negócio decrescente pode ser indicativa de vazamento de informações, e as faixas para parâmetros de tempo podem ser automaticamente apertadas e/ou os parâmetros de tempo modificados em resposta.
[000157] Por exemplo, além da latência e outros parâmetros, o(s) processador(es) de SOR podem estar configurados para monitorar a taxa de preenchimento ou razão de captura de pedidos anteriores roteados ao longo de uma rota específica ou para uma jurisdição específica. Em alguns exemplos, o(s) processador(es) podem estar configurados para determinar a taxa de preenchimento ou a razão de captura comparado o volume de transação total para todas as solicitações de transação relativas a rota com liquidez disponível. Em alguns exemplos, a liquidez disponível pode ser a liquidez postada total em cada uma das jurisdições visadas. Em alguns exemplos, a liquidez disponível pode ser a liquidez postada total em qualquer jurisdição. Em alguns exemplos, a liquidez disponível pode estar baseada nos dados de liquidez postados disponíveis para o(s) processador(es) de SOR no tempo que o(s) processador(es) preparam as solicitações de execução as quais podem incluir selecionar jurisdições para visar e/ou dividir uma grande solicitação de pedido. Em alguns exemplos, a liquidez disponível pode estar baseada nos dados de liquidez postados disponíveis para o(s) processador(es) de SOR quando a primeira solicitação de transação em uma onda ou sequência é roteada.
[000158] Em algumas modalidades, a liquidez disponível pode incluir uma liquidez publicamente postada e/ou liquidez prevista. O(s) pro- cessador(es) que monitoram os dados associados com os recursos de computação em rede podem estar configurados para monitorar se a liquidez publicamente postada que é capturada de um segmento de processamento de dados anteriormente roteado é subsequentemente reabastecida com nova liquidez publicamente postada e/ou o tempo entre a captura da liquidez original e a repostagem da nova liquidez. A preparação de segmentos de processamento de dados e a determinação de seus parâmetros de tempo podem estar baseadas nestes da-dos liquidez previstos.
[000159] Em outro exemplo, o(s) processador(es) podem rastrear ou identificar quando múltiplos segmentos de processamento de dados (não relacionados ou relacionados com o mesmo processo de dados) visam a mesma liquidez postada. Monitorando os dados associados com estes segmentos de processamento de dados para ver se suas taxas de preenchimento excedem a liquidez postada, o(s) processa- dor(es) podem compilar estes dados de liquidez não postados capturados.
[000160] O monitoramento dos dados associados com os recursos de computação em rede pode incluir monitorar tanto a repostagem de liquidez quando a captura de liquidez não postada como dados de liquidez previstos os quais podem ser utilizados pelos processadores para preparar segmentos de processamento de dados e seus parâmetros de tempo para visar tais dados de liquidez previstos.
[000161] Em alguns exemplos, o(s) processador(es) podem estar configurados para determinar a taxa de preenchimento ou razão de captura compilando as confirmações / reconhecimentos ou outras mensagens de resposta das jurisdições visadas para determinar um volume de transação total que foi capturado / completados com sucessor após todas as solicitações de negócio em uma onda terem sido roteadas.
[000162] Em alguns exemplos, o(s) processador(es) podem estar configurados para ajustar os parâmetros de tempo e/ou sequências de tempo com base na taxa de preenchimento ou razão de captura determinada. Por exemplo, se uma razão de captura para uma rota ou jurisdição cai de seu valor anterior, histórico e/ou típico, o(s) processa- dor(es) podem determinar que os parâmetros de tempo e/ou sequências (por exemplo, com base em latências e/ou outros fatores) são menos efetivos em evitar qualquer vazamento de informações ou negócios de arbitragem.
[000163] Em alguns exemplos, quando a razão de captura cai abaixo de um limite definido ou por mais do que uma quantidade limite, o(s) processador(es) podem estar configurados para ajustar os parâmetros de tempo (por exemplo, diminui ou aumentar o tempo Y ou tempo Z na Figura 3), ajustar as sequências de tempo e/ou diminuir limite(s) de tempo para diferenças em tempo de execução em diferentes jurisdições (por exemplo, diminuir Tempo = A e/ou Tempo = B na Figura 3).
[000164] Em alguns exemplos, quando a razão de captura cai abaixo de um limite definido ou por mais do que uma quantidade limite, pode ser indicativo de uma mudança em um dispositivo de rede tal como uma conexão ou componente que falha ou próximo de falhar em um roteador ou outro dispositivo de comutação. Em alguns exemplos, o(s) processador(es) podem estar configurados para gerar um alerta ou notificação que pode existir um potencial problema de rede e/ou problema de equipamento. O alerta ou notificação pode incluir alertas de áudio, alertas visuais em um display ou fonte de luz, mensagem(ns) (por exemplo e-mail, mensagem instantânea, etc.)., ou qualquer outro mecanismo para alertar um administrador que pode existir um problema de rede e/ou problema de equipamento. Em alguns exemplos, foi observado que uma razão de captura que cai pode prover um aviso mais cedo de um problema de equipamento ou falha iminente antes do roteador ou outro equipamento afetado gere seu próprio aviso ou notificação de falha.
[000165] Em alguns exemplos, o limite definido ou quantidade de limite pode ser valores absolutos ou relativos. Por exemplo, o(s) pro- cessador(es) podem estar configurados para ajustar parâmetro(s) de tempo, sequência(s) e/ou limite(s) quando a razão de captura caiu 2% ou cai 2% de seu valor anterior ou histórico.
[000166] Em outro exemplo, o(s) processador(es) podem estar configurados para ajustar os parâmetro(s) de tempo, sequência(s) e/ou limi- te(s) quando a razão de captura cai fora de sua faixa de variância típi- ca ou varia por um número definido de desvios padrão de sua norma (por exemplo quando a razão de captura está 1-3 desvios padrão afastada da norma).
[000167] Em alguns exemplos, o(s) processador(es) podem estar configurados para determinar a faixa de variância e/ou desvios padrão coletando razões de captura sobre X períodos de tempo e construindo uma distribuição Gaussiana ou outra.
[000168] Quando determinando que uma razão de captura para uma rota / jurisdição ou um par ou grupo de rotas / jurisdições está abaixo do limite definido ou caiu por um limite definido, o(s) processador(es) podem estar configurados para automaticamente ajustar o(s) parâmetro de tempo, sequência(s) e/ou limite(s) de diferencial de tempo para a(s) rota(s) e/ou jurisdição(ões) associadas para tentar aumentar a razão de captura para futuras ondas ou sequências de solicitação de negócio.
[000169] Em alguns exemplos, o(s) processador(es), em 208 e/ou 210, podem estar configurados para selecionar jurisdições para visar e/ou ajustar tempos com base em outros fatores como aqui descrito ou de outro modo. Em alguns exemplos, o(s) processador(es) para selecionar jurisdições e/ou ajustar tempos com base em dados associados com a jurisdição. Estes dados podem, em alguns exemplos, ser acessados de uma fonte de dados e/ou podem ser compilados ou observados com base nas razões de captura, latências e similares.
[000170] Em alguns exemplos, o(s) processador(es) podem estar configurados para preferir jurisdições ou terem diferenciais de tempo mais longos para as jurisdições as quais são menos prováveis de tem mais competição para as solicitações de negócio (por exemplo por um negociante colocalizado e/ou de alta frequência). Em alguns exemplos, o(s) processador(es) podem estar configurados para terem diferentes ajustes de pontuações ou tempo preferenciais para diferentes jurisdi- ções com base em fatores os quais podem ser indicativos de uma maior competição ou um maior risco de perder negócios para a arbitragem. Em alguns exemplos, um conhecimento explícito de um negociante colocalizado oportunista pode ser acessado de uma fonte de dados ou pode ser implicitamente determinado com base em menores razões de captura e/ou menores diferenciais de tempo envolvendo a jurisdição específica.
[000171] Em alguns exemplos, o(s) processador(es) podem estar configurados para terem diferentes ajustes de pontuação ou tempo preferenciais para jurisdições com base na estrutura de taxa e/ou desconto da jurisdição. Por exemplo, as jurisdições as quais proveem descontos para postar certos negócios podem ser mais prováveis terem competição de negociantes de alta frequência.
[000172] Em alguns exemplos, quando múltiplas opções de jurisdição estão disponíveis, o(s) processador(es) podem estar configurados para selecionar as jurisdições as quais são menos prováveis de ter maior competição. Em alguns exemplos, o(s) processador(es) podem estar configurados para gerar tempos os quais podem arriscar perder liquidez da jurisdição com maior competição (por exemplo programá-la mais tarde na sequência ou com um maior retardo) se isto aumenta as chances de capturar a liquidez em outra(s) jurisdição(ões). Em alguns exemplos, o(s) processador(es) podem gerar tempos mais apertados para ondas que envolvem jurisdições com maior competição.
[000173] Em alguns exemplos, o(s) processador(es) podem estar configurados para selecionar jurisdições e/ou ajustar diferenciais de tempo com base na liquidez perdida ou valor bruto perdido o que seria sofrido se uma solicitação de negócio devesse chegar muito cedo ou muito tarde na jurisdição. Isto pode estar, em alguns exemplos, baseado em liquidez postada, lance / pedir preço postado, etc. O(s) pro- cessador(es) podem estar configurados para diminuir a pontuação pre- ferencial ou apertar o diferencial de tempo para jurisdição(ões) as quais resultariam em maiores perdas (liquidez ou valor) se uma solicitação de negócio para a(s) jurisdição(ões) devessem chegar muito cedo ou tarde resultando em perdas de arbitragem potenciais.
[000174] Em algumas modalidades, o processador de roteador 1104 pode estar configurado para otimizar o fluxo de pedidos através de múltiplas rotas e para múltiplos pedidos. Por exemplo, aumentar a taxa de preenchimento para uma única rota através de um esquema de ro- teamento específico pode por em desvantagem outras rotas. O processador de roteador 1104 pode estar configurado para balancear as cargas de pedido através de jurisdições, conexões de comunicação, conexões de rede, tempo, etc. O processador de roteador 1104 pode estar configurados para determinar impactos de latência potenciais que podem surgir devido ao congestionamento causado pelo rotea- mento programado do processador de roteador 1104, e programar e/ou rearranjar e/ou associar os parâmetros de tempo consequentemente. Em algumas modalidades, o processador de roteador 1104 pode estar configurado para automaticamente ressintonizar e/ou embaralhar as transmissões programadas
[000175] Em algumas modalidades, o processador de roteador 1104 pode estar configurado para a aplicação de uma ou mais regras comerciais que representam uma lógica comercial. As regras comerciais podem causar a distorção e/ou ponderação de vários fatores utilizados na determinação de características de roteamento para um conjunto de instruções específico associado com um pedido. Por exemplo, as regras podem determinar como um pedido é segmentado, para qual(is) jurisdição(ões) um pedido pode ser transmitido, a faixa de tempo aceitável etc.
[000176] Por exemplo, uma jurisdição específica que rem uma latên- cia específica pode ser favorecida já que a jurisdição pode ter uma alta razão de captura de negócio associada com esta, e um peso mais alto pode estar associado com o roteamento de sinais para esta jurisdição específica.
[000177] Como outro exemplo, uma primeira jurisdição pode prover uma carteira de pedidos mais profunda que tem mais liquidez do que uma segunda jurisdição. Apesar da primeira jurisdição poder ter algumas características de rede menos desejáveis, esta pode ser ponderada mais pesadamente para seleção dada a quantidade de liquidez que está disponível.
[000178] Em algumas modalidades exemplares, o(s) processa- dor(es) de SOR podem estar configurados para determinar jurisdições para visar assim como os parâmetros de tempo para estas jurisdições ponderando a liquidez e a variância de latência.
[000179] Em alguns exemplos, a variância de latência pode ser causada por fatores tais como tráfego de rede, qualidade de sinal ruim ou variável de comunicações de rede, problemas de nodo de rede, congestionamento ou sobrecarga na jurisdição (processador(es) de execução em rede) e similares.
[000180] Em alguns exemplos, a variância de latência pode ser causada por retardo(s) intencionalmente introduzidos por uma jurisdição ou aspectos de uma rede ou dispositivo(s) de comunicação da jurisdição. Por exemplo, uma jurisdição pode randomicamente introduzir um retardo (por exemplo, uma "lombada") em solicitações de pedido de um tipo específico, ou em todos os pedidos. Este retardo aumentará a latência para execução do pedido solicitação afetado. Em alguns exemplos, a(s) jurisdição(ões) podem introduzir um retardo fixo (por exemplo 350 μs) nas solicitações de pedido. Em alguns exemplos, a(s) jurisdição(ões) podem introduzir um retardo que tem um comprimento randomicamente selecionado (por exemplo entre 5-25 ms) nas solicitações de pedido.
[000181] Em alguns exemplos, as solicitações de pedido às quais o(s) retardo(s) são aplicados e/ou o comprimento do(s) retardo(s) pode ser randomicamente selecionado, podem estar baseadas no tipo de pedido, podem estar baseadas em parâmetros / opções / sinalizadores / etc. de pedido, e/ou qualquer sua combinação.
[000182] Em alguns exemplos, a(s) jurisdição(ões) podem introduzir retardos que têm comprimentos randomicamente selecionados os quais são selecionados de faixas baseadas em tipo / parâmetros / opções / sinalizadores / etc. das solicitações de pedido. Por exemplo, uma classificação de pedidos pode estar sujeita a retardos randômicos entre 1-10 ms apesar de outra classificação ou pedidos poderem estar sujeitos a retardos randômicos entre 14-24 ms.
[000183] Os dados associados com segmentos de processamento de dados previamente roteados os quais pode ter sido sujeitos a tais retardos randômicos que são monitorados pelo(s) processador(es) podem, em alguns casos, mostrar uma distribuição multimodal ilustrativa da faixa de 1-10 ms e da faixa de 14-24 ms.
[000184] Em alguns exemplos, o(s) processador(es) podem estar configurados para acessar aspectos definidos de retardos intencionalmente aplicados de um ou mais banco(s) de dados ou outra(s) fonte(s) de dados. Em alguns exemplos, aspectos de retardos intencionalmente aplicados podem ser observados rastreando pedidos históricos e seus respectivos tempos de processamento. Com base em pelo menos em parte no acesso e/ou informações de retardo observadas, em alguns exemplos, o(s) processador(es) podem estar configurados para determinar faixas de latência, variâncias, e outros valores estatísticos para as latências.
[000185] Os dados associados com segmentos de processamento de dados previamente roteados os quais podem ter sido sujeitos a re- tardos randomicamente introduzidos que são monitorados pelo(s) pro- cessador(es) podem, em alguns casos, mostrar uma distribuição multimodal ilustrativa de uma faixa latências sem o retardo randômico, e uma segunda faixa de latências incluindo o retardo randômico.
[000186] Em alguns exemplos, o(s) processador(es) podem estar configurados para obter dados associados com a liquidez disponível de uma proposta transação para cada recurso de computação em rede (jurisdição) o qual pode potencialmente ser utilizado.
[000187] Em alguns exemplos, os dados associados com liquidez disponível podem ser recebidos de fontes publicamente disponíveis e podem incluir o número de ações abertamente disponíveis em uma jurisdição. Em alguns exemplos, o(s) processador(es) podem estar configurados para determinar se pode existir mais liquidez do que está abertamente postado (por exemplo iceberg ou volume de reserva). Esta determinação pode ser baseada em dados obtidos para pedidos históricos ou passados colocados com as jurisdições para similares interesses financeiros, volumes, horas do dia, contrapartes e/ou quaisquer outros dados de pedido.
[000188] Em 208 e 210, o(s) processador(es) podem estar configurados para dividir uma grande transação proposta em menores processos de dados que representam menores solicitações de negócio para diferentes jurisdições ou outros processadores de execução em rede com base nas latência e dados de liquidez. Em alguns exemplos, o(s) processador(es) podem estar configurados para selecionar jurisdi- ção(ões) e volumes com base em dados de liquidez e variância de la- tência.
[000189] Em alguns exemplos, onde uma jurisdição tem uma grande liquidez disponível mas uma grande variância de latência, o(s) proces- sador(es) podem estar configurados para balancear a chance de capturar aquela liquidez com a chance de perder a liquidez em outras jurisdições devido a movimentos de mercado durante a faixa potencial de períodos de latência.
[000190] Por exemplo, em uma situação hipotética: a jurisdição A tem 5000 ações disponíveis no preço X, e tem uma latência de 100 μs +/- 80 μs; e jurisdição B tem 500 ações disponíveis no preço X, latên- cia de 80 μs +/- 1 μs. Se o SOR está tentando capturar todas as 5500 ações, o(s) processador(es) podem estar configurados para rotear uma primeira solicitação de transação para a jurisdição A em t = 0, e uma segunda solicitação de transação para a jurisdição B 20 μs mais tarde. Se as solicitações de transação chegarem ou forem processadas de acordo com os tempo de latência médios, as transações devem capturar o volume disponível em ambas as jurisdições em t = 100 μs. No entanto, como a variância de latência da jurisdição A é tão grande, é possível que o negócio na jurisdição A poderia executar m t = 20 μs, e antes que o negócio execute na jurisdição B em t = 100 μs, o preço ou disponibilidade das 500 ações na jurisdição B pode ter mudado. Similarmente, se o negócio na jurisdição A não executar até t = 180 μs, o pedido em B p qual executou em t = 100 μs pode ter disparado o mercado para mudar ou cancelar o pedido em A antes da solicitação ser processado em t = 180 μs.
[000191] Em alguns exemplos, o(s) processador(es) podem estar configurados para selecionar recurso(s) de computação em rede / ju- risdição(ões) com base em uma razão de liquidez para variância de latência. Quando a liquidez disponível em uma jurisdição é alta, o(s) processador(es) podem estar configurados para visar esta liquidez mesmo se esta tiver uma alta variância de latência. Em alguns cenários exemplares, isto pode envolver sacrificar ou arriscar a perda de liquidez em outra jurisdição.
[000192] Por exemplo, na situação acima, com base na razão de liquidez / variância de latência ou outra(s) métrica(s) de jurisdição A versus jurisdição B, o(s) processador(es) podem estar configurados para determinar parâmetros de tempo os quais criam uma probabilidade mais alta que a liquidez na jurisdição A será capturada. Por exemplo, assumindo que um sistema de negócio competitivo requer 50 μs para observar um pedido na jurisdição B e mudar o pedido na jurisdição A, o(s) processador(es) podem estar configurados para determinar parâmetros de tempo e/ou uma sequência de tempo de modo que uma solicitação de pedido seja enviada para a jurisdição A no tempo = 0 e uma solicitação de pedido seja enviada para a jurisdição B após um tempo = 51 μs. Neste modo, se o pedido na jurisdição A executar na extremidade mais lenta da faixa a 180 μs, e o pedido na jurisdição B executar na extremidade mais rápida da faixa a 130 μs (79 μs de la- tência, 51 μs de retardo), levando em conta o limite de tempo de sistema de negócio competitivo de 50 μs, o pedido na jurisdição A será capaz de ser preenchido sem nenhum risco de arbitragem do pedido na jurisdição B. Como ilustrado por exemplo, o(s) processador(es) podem estar configurados para visar jurisdição(ões) que têm grande(s) latência(s) se estas tiverem grandes liquidezes disponíveis, mesmo se isto poder arriscar perder pedidos em outra(s) jurisdição(ões) que têm menores liquidezes disponíveis.
[000193] Neste exemplo, o(s) processador(es) foram configurados para tomar o cenário de pior caso; no entanto, com base em tolerâncias de risco, o(s) processador(es) podem estar configurados para selecionar parâmetros e sequências de tempo mais agressivos.
[000194] Em alguns exemplos, o(s) processador(es) podem estar configurados para selecionar jurisdições alvo com base em variâncias de liquidez e latência. Em um primeiro cenário, se uma grande transação proposta puder ser capturada evitando completamente jurisdi- ção(ões) que têm grande(s) variância(s) de latência, o(s) processa- dor(es) podem estar configurados para selecionar e rotear as solicitações de negócio para a(s) jurisdição(ões) sem as grandes variâncias de latência.
[000195] Em alguns exemplos, o(s) processador(es) podem estar configurados para dividir a grande transação proposta entre uma jurisdição com grande variância de latência e outra(s) jurisdição(ões) com menores latências.
[000196] Se uma jurisdição tiver uma grande variância de latência causada por retardos intencionais ou projetados, em alguns exemplos, o(s) processador(es) podem estar configurados para visar a liquidez na jurisdição enviando múltiplos pedidos para a mesma jurisdição em uma sequência de tempo. Por exemplo, se um processador de jurisdição aplicar um retardo randomicamente atribuído que é grande em relação a típicas latências de execução de pedido, em alguns exemplos, o(s) processador(es) de SOR podem estar configurados para detectar que um pedido previamente enviado foi retardado e podem enviar um ou mais pedidos subsequentes na esperança que um dos pedidos será processado mais cedo. Em alguns exemplos, o(s) processador(es) podem estar configurados para detectar que um pedido previamente enviado foi retardado observando as confirmações de pedido ou mensagens de resposta que indicam que os pedidos subsequente para a mesma jurisdição foram processados.
[000197] Em alguns exemplos, múltiplos pedidos podem ser roteados para a jurisdição que tem retardos randomicamente atribuídos em conjunto com pedidos para outras jurisdições. Em alguns exemplos, enviando múltiplos pedidos para a jurisdição com retardos randômicos, pode existir uma probabilidade mais alta que pelo menos um dos pedidos seja processado com pouco ou nenhum retardo. Em alguns exemplos, o(s) processador(es) podem estar configurados para coordenar os pedidos em rajada para a jurisdição com retardos randômicos com pedidos para outras jurisdições. Utilizando parâmetros de tempo e/ou uma sequência de tempo com base na faixa baixa de retardos intencionalmente induzidos para a jurisdição de retardo randômico, e as latências de execução para as outras, o(s) processador(es) podem ser capazes de capturar tanto a liquidez na jurisdição de retardo ran- dômico assim como as outras. Em alguns exemplos, isto pode reduzir a liquidez perdida na(s) outra(s) jurisdição(ões) e/ou pode aumentar as chances de capturar pelo menos parte da liquidez na jurisdição de retardo randômico. Em alguns exemplos, um ou mais destes tempos e pedidos em rajada aplicados pelo(s) processador(es) podem resultar em uma mais alta razão de captura.
[000198] Em alguns exemplos, pedidos em rajada para uma jurisdição de retardo randômico podem cada um ser para menores volumes para reduzir a chance de sobre-encher o pedido proposto inicial.
[000199] Em alguns exemplos, o(s) processador(es) podem estar configurados para determinar o número e tamanho de pedidos em uma rajada com base na liquidez e faixa de retardos aplicadas pela jurisdição. Em alguns exemplos, o número e tamanho de pedidos em uma rajada podem ser uma função do número de sistema de arbitragem conhecidos, a capacidade de porta destes sistemas, e/ou a taxa de estrangulamento destes sistemas para a jurisdição de retardo ran- dômico.
[000200] Em alguns exemplos, o(s) processador(es) podem estar configurados para determinar o número e tamanho de pedidos em rajada com base em desempenho de pedido em rajada histórica para a jurisdição específica.
[000201] Em alguns exemplos, quando uma grande porção de liquidez está disponível em outras jurisdições, o(s) processador(es) podem estar configurados para enviar uma rajada que tem menos pedidos para uma jurisdição de retardo randômico com uma sequência de tempo com base na extremidade curta da possível faixa de retardo. Em alguns casos, isto pode priorizar a captura de liquidez nas outras jurisdições enquanto potencialmente sacrificando ou desistindo de alguma da liquidez na jurisdição de retardo randômico.
[000202] Em algumas modalidades, o(s) processador(es) podem estar configurados para enviar múltiplos pedidos para uma única jurisdição (retardo randômico ou de outro modo) para potencialmente capturar a liquidez de reserva ou iceberg a qual não aparece na carteira.
[000203] Por exemplo, com base em dados associados com pedidos anteriores ou dados recebidos de fonte(s) de dados, o(s) processa- dor(es) podem determinar que o volume de reserva pode estar disponível além do que é visível em uma jurisdição específica.
[000204] Em alguns exemplos, o(s) processador(es) podem estar configurados para dividir um grande pedido em menores solicitações de pedido incluindo duas ou mais solicitações de pedido para a mesma jurisdição. Em alguns exemplos, estas duas solicitações de pedido podem ser roteadas com parâmetros de tempo e/ou sequência para capturar liquidez de reserva ou iceberg na jurisdição.
[000205] Por exemplo, quando analisando um pedido e/ou comportamento de jurisdição histórico com base em dados transação passados, se o(s) processador(es) determinarem que uma jurisdição específica pode repostar uma liquidez de reserva ou iceberg disponível 80 μs após o pedido inicial ser preenchido, o(s) processador(es) podem estar configurados para enviar dois pedidos para a jurisdição 80 μs afastados. Em alguns exemplos, o(s) processador(es) podem estar configurados para enviar os dois pedidos em uma sequência com menos de 80 μs entre estes se o(s) processador(es) determinarem que o segundo pedido é provável ser preenchido independentemente se a jurisdição repostou a liquidez subjacente.
[000206] Em outro cenário exemplar, o(s) processador(es) podem determinar que a jurisdição A tem 500 ações disponíveis no preço X, e tem uma latência de 30 μs; e a jurisdição B tem 200 ações disponíveis no preço X, com uma latência de 100 μs e provavelmente tem uma liquidez de reserva / iceberg subjacente.
[000207] Em algumas tais instâncias, o(s) processador(es) podem estar configurados para enviar um primeiro pedido para a jurisdição B para 200 ações no tempo = 0, um segundo pedido para a jurisdição B para 200 ações no tempo = 50 μs (de modo a não sobrecarregar a jurisdição B, ou permitir que a liquidez de reserva torne-se disponível, ou de outro modo), e um terceiro pedido para 500 ações para a jurisdição A no tempo = 70 μs. Neste exemplo, a sequência de tempo determinada pelo(s) processador(es) pode permitir que o sistema capture múltiplos segmentos de liquidez na jurisdição B enquanto ainda capturando a na jurisdição A.
[000208] Em alguns exemplos, o(s) processador(es) podem estar configurados para dividir o(s) pedido(s) e determinar parâmetros de tempo / sequências para capturar múltiplas porções de um volume de reserva / iceberg em uma primeira jurisdição e liquidez em outra(s) ju- risdição(ões) antes que sistemas de contraparte possam mudar o volume ou preço em ou a primeira jurisdição (com o volume de reserva / iceberg) ou a(s) outra(s) jurisdição(ões).
[000209] A arbitragem e outros problemas causados por variações em tempo de execução entre servidores podem também ser minimizados ou eliminados reduzindo as latências absolutas em transmissão e execução de solicitações de processamento. Assim a determinação de parâmetros de tempo como acima descrito pode ser praticada em combinação com procedimentos os quais também servem para minimizar as quantidades absolutas de tempo associadas com a execução e/ou reporte de solicitações de execução pelo(s) recurso(s) 106, 1106.
[000210] As informações sobre latências determinadas utilizadas na determinação de parâmetros de tempo a serem associados com as várias porções de uma solicitação de execução de múltiplas partes provida pelo(s) roteador(es) 104, 1104 para uma pluralidade de processadores de execução 106, 1106 podem incluir informações de tempo (por exemplo, retardos transmissão, retardos de propagação de sinal, retardos de serialização, retardos de enfileiramento, e/ou outros retardos de processamentos no(s) processador(es) de roteador 104, 1104, no recurso de computação em rede 106, 1106, e/ou rede(s) 110, 1110, 108, 1108). Tais informações podem ser providas por ou recebidas de quaisquer fonte(s), e podem ser armazenadas em e recuperadas de um ou mais armazenamentos de dados 214. O(s) dados arma- zenamento(s) de dados de tempo 214, em várias modalidades, pode incluir bancos de dados ou outras estruturas de dados que residem em memória(s) 118, 1018 associadas com ou de outro modo acessíveis pelo(s) processador(es) de roteador 104, 1104. Por exemplo, se a execução de uma porção de uma solicitação de execução associada com um primeiro recurso de computação em rede 106, 1106 tiver uma latência determinada mais longa do que aquela associada com um segundo recurso de computação em rede 106, 1106 (como, por exemplo, no caso de Bolsa 1 vs. Bolsas 2 e 3 da Figura 3) o tempo para porções associadas a solicitações de uma solicitação de transação a ser roteado para estes dois recursos de computação em rede 106, 1106 pode ser determinado de modo que uma solicitação de execução, ou sua porção, associada com o primeiro recurso de computação em rede 106 é sincronizada para ser enviada mais dedo do que a solicitação associada com o segundo recurso de computação em rede 106, com o objetivo de ter as solicitações executadas nos dois recursos de compu-tação em rede 106 substancialmente concorrentemente, ou dentro de um tempo mínimo efetivo A ou B associado com uma possível manipulação de termo por um servidor de negociação 304.
[000211] Em algumas modalidades, um ou mais algoritmos, os quais podem, por exemplo, utilizar um modelo de probabilidade de latência outro modelo preditivo, pode podem ser utilizados na determinação de parâmetros de tempo a serem associados com porções de solicitações de execução a serem roteadas para vários processadores de execução 106, 1106, com base em informações associadas com tal comunicação e/ou retardo de processamentos, ou latências. Por exemplo, uma média rolante de dados de latência históricos, acumulados sobre ou relevantes para quaisquer dispositivos desejados, período de tempos, ou outras considerações de tempo pode ser utilizada para predizer uma latência esperada para execução de uma solicitação de processamento de dados.
[000212] Um exemplo de um algoritmo adequado para utilização na determinação de parâmetros de tempo a serem associados pelo(s) roteador(es) 104, 1104 com porção(ões) de solicitações para execução providas pela(s) fonte(s) 102, 1102, onde é desejado causar uma chegada concorrente ou de outro modo sincronizado de tais porções ou solicitações em recursos de rede 106, 1106, está baseado em uma latência média entre a transmissão de sinais de solicitação do(s) rote- ador(es) 104, 1104 e uma referência de tempo apropriada. Tal(is) refe- rência(s) de tempo podem, por exemplo incluir um início de processamento pelo(s) recurso(s) visados correspondentes 106, 1106, e/ou recebimento por processador(es) de roteamento 104, 1104 de um sinal de confirmação gerado pelo(s) recurso(s) 106, 1106 no recebimento da solicitação e/ou completamento de execução da solicitação. Por exemplo, em algumas modalidades, pode ser vantajoso medir as la- tências entre a transmissão para um dado recurso 106, 1106 e o rece-bimento pelo(s) roteador(es) 104, 1104 de um sinal de confirmação ou reconhecimento, ou outro sinal de resposta apropriado 1260, de tal recurso 106, 1106, e utilizar tal(is) latência(s) medidas na determinação de parâmetro(s) de tempo em 210.
[000213] O processo etapa 210 pode, por exemplo, ser executada por uma aplicação executada por, ou um módulo de, ou de outro modo associada com, processador(es) de roteamento 104, 1104 tal como uma entidade ou módulo de gerenciamento de capital 1126 no caso de um sistema financeiro 1000. A determinação de um parâmetro de tempo a ser associado com cada parte ou segmento de uma solicitação de execução de múltiplas partes pode, por exemplo, incluir a utilização de um módulo lógico de aprendizado & compensação de latência de ida e volta (RTL) de bolsa adaptável 1126c, tal como aquele mostrado na Figura 1B. Referindo à Figura 3, tal módulo lógico de aprendizado & compensação de RTL de bolsa adaptável 1126c pode determinar o tempo para cada solicitação de processamento de sinal (por exemplo, uma solicitação de negócio) como segue: 1) Para cada porção ou segmento n de uma solicitação de processamento m partes múltiplas partes X, um tempo T1x,n provido por, por exemplo, um relógio associado com o(s) processador(es) 104, 1104 é estampado no tempo pelo(s) processador(es) 104, 1104 em um ponto definido desejado dentro do processo de analisar ou gerar o(s) pedidos de transação, ou outra(s) solicitação(ões) de processamento X, e está associado com um registro(s) de conjunto de sinal se solicitação de processamento que corresponde a cada parte ou segmento n da solicitação de m partes X. 2) T2x,n para cada porção n da solicitação de múltiplas partes X está estampado no tempo pelo(s) processador(es) 104, 1104 quando o nth conjunto de sinais de solicitação de porção correspondente foi recebido na bolsa visada 106, 1106, e uma mensagem de confirmação gerada por bolsa correspondente foi recebida pelo processador de roteamento solicitante 104, 1104. 3) Durante o curso de um dia de negócios (ou outro período de processamento de dados), as etapas de processo 2 e 3 podem ser repetidas, e T1x,n e T2x,n correspondentes determinados para cada segmento de transação roteado para um dado processador de execução 106, 1106. 4) Para cada segmento de porção n de uma solicitação de execução de múltiplas partes pendente subsequente Y, o parâmetro de tempo determinado RTLy,n = ∑(T2x,n - T1x,n) / Z, onde Z é o número de segmentos de pedido previamente executados roteados para um dado processador de execução 106, 1106 utilizado no cálculo.
[000214] Onde o(s) armazenamento(s) de dados de tempo 214 armazenam um registro rolante de parâmetros de tempo passados (por exemplo, uma pluralidade de parâmetros de tempo determinados RTLy,n) associados com um ou mais recursos de execução 106 / servidor de bolsa 1106, tais dados podem ser utilizados para criar um histograma rolante, o qual pode ser utilizado para predizer uma latência corrente ou cumulativa para cada recurso 106 / servidor de bolsa 1106. Como tais predições estão baseadas em um registro que muda continuamente ("rolante"), este processo pode ser referido como "aprendizado online". Pode existir um componente (por exemplo, uma memória ou componente de processamento de histograma de latência de bolsa, não mostrada) dentro do módulo lógico de aprendizado & compensação de RTL de bolsa adaptável 1126c responsável por isto.
[000215] Um módulo lógico de aprendizado & compensação de RTL de bolsa adaptável 1126c pode utilizar latências preditas para determinar parâmetros de tempo apropriados para serem utilizados na transmissão de solicitações de negócio (ou outro processamento de dados) para vários servidores de bolsa 1106 de modo a compensar por diferenças em latências de execução associadas com tais servidores de bolsa 1106, em um modo que reduz, controla, minimiza ou elimina as diferenças em tempo de execução de porções de solicitações de negócio divididas roteadas para diferentes servidores de bolsa 1106, e assim, por exemplo, reduz ou elimina oportunidades para arbitragem de latência por negociantes oportunistas.
[000216] O(s) módulo(s) de RTL adaptável 1126c podem utilizar uma variedade de algoritmos na determinação de parâmetros de tempo adequados para utilização em sincronizar a execução de solicitações de processamento múltiplas partes. Por exemplo, tal módulo pode utilizar valores de latência determinados para as várias bolsas para determinar a extensão na qual o(s) roteador(es) 104, 1104 devem compensar para diferentes latências de bolsa enviando para os vários processadores 106, 1106 as suas porções correspondentes de uma solicitação para processamento em, por exemplo, diferentes tempos. Isto pode minimizar o retardo entre o completamento de execução de cada porção, por exemplo, minimizando a diferença em tempo entre a recepção de cada respectiva porção por ser correspondente recurso de execução 106, 1106. (Na Figura 3, por exemplo, isto seria mostrado como minimizando as diferenças entre tempos decorridos no Tempo X, Tempo Y e Tempo Z). Tais algoritmos podem também levar em conta diferenças históricas no tempo requerido para execução de negócio ou outros pedidos de processamento nos vários recursos 106, 1106, além de retardos de comunicação. O(s) módulo(s) de RTL adaptável 1126c podem estar configurados, por exemplo, para determinar faixas de tempo, para manter modelos de monitoramento de rede, registros de monitoramento de rede, etc.
[000217] O(s) módulo(s) de RTL adaptável 1126c podem também estar configurados para a sintonia automática de parâmetro de tempo / sequências dependendo de informações, tais como taxa de preenchimento, razão de captura de negócio, características de rede preditas, etc.
[000218] O(s) módulo(s) lógico(s) de aprendizado & compensação de RTL de bolsa adaptável 1126c podem além disso coletar informações sobre condições de mercado que prevalecem em cada servidor de bolsa 1106 (utilizando, por exemplo, fontes de dados tais como fon- te(s) de dados de mercado de bolsa 1126v), pedidos / execuções de ondas, latências reais e latências alvo (por exemplo, como acima preditas) quando as solicitações de negócio não enviadas. Pode existir um componente dentro do módulo lógico de aprendizado & compensação de RTL de bolsa adaptável 1126c responsável por isto.
[000219] Um ou mais parâmetros de tempo associados com solicitações de execução a serem roteadas para qualquer um ou mais pro- cessador(es) de execução 106, 1106 podem também ser providos para o(s) processador(es) de roteamento 104, 1104 (por exemplo, para o armazenamento de dados de tempo 214) por, ou determinado por tais processador(es) 104, 1104 utilizando dados relativos supridos por, quaisquer um ou mais suprimento(s) de dados mercado ou processa- dor(es) 1126 (incluindo por exemplo, qualquer um ou mais processadores ou (sub)sistemas 1126a - 1126g e/ou 1126v), e/ou pelos próprios processador(es) 106, 1106.
[000220] Em alguns exemplos, o(s) processador(es) podem estar configurados para evoluir randomicamente introduzindo pequenas variações a vários parâmetros de tempo e/ou fatores de seleção de jurisdição. Medindo as razões de captura resultantes ao longo do tempo, e reajustando os parâmetros de tempo e/ou fatores de seleção de jurisdição, o(s) processador(es) podem, em alguns exemplos, evoluir na direção de tempos e/ou ponderações de fator mais ótimos. Em alguns exemplos, este loop de retorno pode permitir o(s) processador(es) automaticamente ajustarem para quaisquer mudanças na rede, jurisdições, comportamento de competidores e similares.
[000221] Em alguns exemplos, considerando as razões de captura ou taxas de preenchimento, o(s) processador(es) pode inerentemente levar em conta qualquer número de fatores subjacentes tais como condições de rede, condições de recurso em rede, comportamento de competidor sem nenhuma compreensão específica de quais fatores subjacentes podem ter afetado a razão de captura. Em alguns casos, isto pode resultar em um sistema mais simples e/ou sistema mais eficiente o qual pode ajustar para mudanças ou variações sem computações potencialmente complexas de todos os possíveis fatores subjacentes.
[000222] Em 212, as várias porções da(s) solicitação(ões) de execução de processamento de sinal opcionalmente agregadas e divididas são enviadas para os respectivos recursos de computação em rede 106 de acordo com parâmetros de tempo ou sequência(s) determinados ou de outro modo adquiridos em 210. Posteriormente a(s) solicita- ção(ões), ou as suas várias porções, podem ser executadas pelos respectivos recursos de execução 106, 1106, com subsequente comunicações e processamento de sinal conforme necessário ou desejado. Como será compreendido por aqueles versados na técnica relevante, uma vez que estes se tornaram familiarizados com esta descrição, uma vez que os parâmetros de uma solicitação de execução desejada foram determinados por roteador(es) 104, 1104, os sinais que repre-sentam estes parâmetros podem ser montados, utilizando técnicas de processamento de dados conhecidas ou especializadas; formatados de acordo com o protocolo de Financial Information Exchange (FIX) e/ou quaisquer outro(s) protocolo(s) desejados; e transmitidos, escritos ou de outro modo comunicados para o(s) processador(es) de execução correspondentes 106, 1106 utilizando técnicas de comunicações de sinal conhecias ou especializadas, e executados de acordo com a transação solicitada ou outros processos de dados.
[000223] Por exemplo, continuando o exemplo acima, retardos de tempo, ou parâmetros X', Y', Z', um ou todos os quais podem ser igual a zero ou qualquer outro período de tempo adequado, podem ser determinados de acordo com a descrição acima e associados com os segmentos de pedido gerados pelo(s) processador(es) 1104 para compra de 77.000 lotes de apólices de apólices CUSIP No. AA no preço A, com 25.000 lotes (18.000 + 7.000) em reserva nos preços D e E, respectivamente, assim: <retardo X'><bolsa A1><venda><CUSIP No. AA><15.000> <preço A> <res. 6.000><preço D><res. 2.000><preço E> <retardo Y'><bolsa B2><venda><CUSIP No. AA><27.000> <preço A><res. 6.000><preço D><res. 2.500><preço E> <retardo Z'><bolsa C3><venda><CUSIP No. AA><35.000> <preço A><res. 6.000><preço D><res. 2.500><preço E>
[000224] Posteriormente, o(s) processador(es) de roteamento 104, 1104 podem processar os segmentos de transação utilizando parâmetros de tempo, por exemplo, retardos X', Y', Z', para fazer com que os segmentos de transação correspondentes sejam transmitidos ou de outro modo providos para as bolsas 106, 1106 A1, B2, C3 para execução de acordo com uma sequência de tempo desejada, para execução simultânea ou de outro modo desejado sequencial.
[000225] Após a execução de todas ou tantas quantas porções de segmentos de transação ou processamento roteados, o(s) processa- dor(es) de roteamento 104, 1104 podem receber do(s) processa- dor(es) de execução correspondentes 106, 1106 dados que confirmam ou de outro modo indicam tal execução, e acessando os registros de dados armazenados em memória(s) associada(s), podem alocar os resultados de execução para a(s) fonte(s) solicitantes 102, 1102.
[000226] Referência é agora feita à Figura 4, que mostra um exemplo de um método 300 para determinar parâmetros de tempo a serem utilizado no gerenciamento de processamento de dados por múltiplos recursos de computação em rede 106. Na modalidade mostrada, o método 300 é um método iterativo, e cada loop do método 300 é denotado como N. O método 300 está adequado para implementação utilizando, por exemplo, qualquer de várias modalidades de sistemas 100, 1000 e seus componentes, incluindo especificamente o(s) processa- dor(es) de roteador 104, 1104 e a(s) fonte(s) de dados 1126.
[000227] Em 302, cada um de uma pluralidade de recursos de computação em rede 106, 1106 é monitorado, por exemplo, por processa- dor(es) de roteador 104, 1104, processador(es) de execução 106, 1106, processador(es) externos 1126, e/ou vários componentes ou módulos operados por ou de outro modo associados com estes, para latências associadas com a recepção e/ou execução de solicitações de execução de processamento de sinal. Isto pode ser executado, por exemplo, por um módulo de monitoramento (por exemplo, um módulo de medição de RTL de bolsa 1126b, tal como para o sistema financeiro 1000) no(s) processador(es) de roteador 104, 1104. Tal monitoramento pode compreender, por exemplo, solicitações de saída de estampa de tempo para processamento de dados, e comparar tempos de recepção ou confirmação(ões) ou resultados de processamento com a solicitação de saída de tempo estampado correspondente. A diferença em tempo entre a solicitação de saída e a confirmação de recepção que entra e/ou resultados de processamento de dados pode ser definida como uma latência de processamento de dados ou sinal, e armazenada em memória acessível pelo(s) processador(es) de roteador 104, 1104. As diferenças de tempo entre as solicitações de saída e as recepções, confirmações, e/ou resultados de entrada, tais latências podem ser monitoradas em uma base contínua, periódica, e/ou outra dinâmica.
[000228] Em 306, pelo menos um parâmetro de tempo associado com a(s) latência(s) observadas na execução solicitações de processamento de sinal providas para os recursos monitorados 106, 1106 pelo(s) processador(es) de roteamento 104, 1104 é determinado. Como aqui descrito, tal(is) parâmetro(s) de tempo podem incluir, por exemplo, latências devidas a retardo de comunicação, tal como retar- dos de transmissão ou outros retardos de propagação de sinal, e/ou retardos de processamentos, entre outros. Tipicamente, parâmetro(s) de tempo correspondentes são determinados para cada um da pluralidade de recursos de computação em rede 106, 1106 para o qual um pedido de transação ou outra solicitação de processamento de dados, ou uma sua porção, é esperado ser enviado pelo(s) processador(es) de roteamento 104, 1104.
[000229] Em várias modalidades, tal como em várias formas de sistemas financeiros 1000, e dependendo dos tipos de sistema(s) a serem utilizados e resultados de processamento desejados, tais parâmetros de tempo podem ser determinados para comunicações de uma via e/ou ida e volta entre o(s) processador(es) de roteamento 1104 operador por ou em nome de uma entidade de gerenciamento de capital e o servidor de bolsa 1106; isto é, da geração de uma solicitação de transação de múltiplas partes pelo processador de roteamento 1104 da entidade de gerenciamento de capital para a recepção de uma resposta, tal confirmação de recepção como parte de um maior pedido de negociação e/ou confirmação de execução de todo ou parte de um negócio solicitado, do recurso de execução para o qual a solicitação de processamento foi direcionado. Com referência à Figura 1B, por exemplo, e acima explicado, uma medição de RTL pode incluir latên- cias devidas a qualquer ou toda a transmissão de sinais dentro do servidor de entidade de gerenciamento de capital 1104, processamento de sinais dentro da entidade de gerenciamento de capital 1104, transmissão de sinais entre a entidade de gerenciamento de capital 1104 e uma rede 1110, transmissão de sinais dentro da rede 1110, transmissão de sinais entre a rede 1110 e o servidor de bolsa visado 1106, e processamento de sinais dentro do servidor de bolsa 1106; para tanto as comunicações enviados do(s) processador(es) de roteamento 104, 1104 quanto as respostas (por exemplo, reconhecimento de comuni- cação, rejeição de uma solicitação de negócio, confirmação de uma de uma solicitação de negócio, etc.) enviadas do servidor de bolsa 106, 1106. Em tais modalidades, o(s) parâmetro(s) de tempo ser simplesmente o tempo total para a comunicação de ida e volta, ou uma sua função estatística ou outra matemática. .
[000230] Por exemplo, um módulo de medição de RTL de bolsa 1126b, tal como aquele associado com SOR 1104 mostrado na Figura 1B, pode determinar um parâmetro de tempo como segue: 1) Um valor de estampa de tempo T1 é associado pelo(s) processador(es) 1104 com uma nova comunicação M1 (por exemplo, uma solicitação de negócio) enviada por um servidor de bolsa 1106. 2) Um valor de estampa de tempo T2 é associado pelo(s) processador(es) 1104 com qualquer resposta para a solicitação M1 recebida do processador de bolsa 1106 para o qual a solicitação M1 foi enviada. Esta resposta pode ser qualquer resposta tal como reconhecimento, rejeição, preenchimento total ou parcial, etc., e pode depender da natureza da solicitação representada por M1. 3) O RTL associado com a solicitação M1 é calculado como a diferença entre T2 e T1. Em algumas modalidades, como acima notado, o RTL pode ser calculado como uma média do tempo (T2 - T1) para um número passado Z (por exemplo, 30) de solicitações de processamento roteadas para cada um de uma pluralidade de proces- sador(es) de bolsa visados 1106.
[000231] Em 308, o(s) parâmetro(s) de tempo associados com cada recurso de computação em rede 106 podem ser armazenados em ar- mazenamento(s) de dados de tempo 214. Como aqui descrito, um armazenamento de dados de tempo 214, em alguns exemplos, pode ser um banco de dados ou outra estrutura de dados que reside em uma memória associada com ou de outro modo acessível pelo(s) proces- sador(es) de roteador 104. O(s) parâmetro(s) de tempo armazenado no(s) armazenamento(s) de dados de tempo 214 podem ser empregados em processos tais como aqueles acima descritos em conexão o bloco de processo 210 da Figura 2.
[000232] O(s) parâmetro(s) de tempo determinados pelo(s) proces- sador(es) 104, 1104 podem, por exemplo, representar histograma(s) rolante(s) que representam latências associadas com processadores de execução individuais 106, 1106 e/ou outros componentes do(s) sis- tema(s) 100, 1000.
[000233] A Figura 5 mostra um exemplo de um histograma que ilustra dados armazenados que representam comunicações associadas a valores de tempo de latência de processamento e/ou outro processamento associado com um processador de execução 106, 1106 em um sistema 100, 1000. No exemplo mostrado, tempos de latência de ida e volta (em ms) estão armazenados para as 30 solicitações de transação mais recentes ou outras comunicações com um dado servidor de execução 106. Apesar do exemplo mostrar 30 tempos de latência sendo armazenados, o número de parâmetro(s) de tempo armazenados utilizados na determinação de RTLs ou outros parâmetros de tempo pode ser maior ou menor, e pode variar de acordo com as condições tais como a hora do dia, a estação, etc. Os resultados de cálculos com base nas latências armazenadas, e outros dados relativos, podem também ser armazenados em armazenamento(s) de dados de tempo 214. Por exemplo, no exemplo da Figura 5, além de tempos de latên- cia brutos, uma média de rolagem ou um modo de rolagem dos 30 (ou outro número adequado) tempos de latência passados associados com as comunicações e/ou outro processamento com ou por cada servidor de execução 106 pode também ser calculada e armazenada em armazenamento(s) de dados de tempo 214.
[000234] Como será prontamente compreendido por aqueles versados na técnica relevante, fatores adicionais, incluindo, por exemplo, deslocamentos ou retardos fixos desejados, ou fatores de escalagem associados com a hora do dia, dia da semana, estação do ano, etc., negociação conhecida ou outros padrões de processamento de dados, condições econômicas, etc., podem ser utilizados em 210 na determinação de parâmetros de tempo.
[000235] Os parâmetros de tempo determinados em 210 podem ser utilizados pelo(s) processador(es) de roteamento 104, 1104 para sincronizar a execução de solicitações de processamento originadas pe- la(s) fonte(s) 102, 1102 e direcionadas para o(s) processador(es) 106, 1106, por exemplo, associando com tais solicitações, ou porções destas a serem transferidas para execução por cada um de múltiplos pro- cessador(es) 106, 1106, itens de dados utilizáveis pelo(s) processa- dor(es) 104, 1104 para causar a comunicação das solicitações para os processador(es) correspondentes 106, 1106 em tempos absolutos ou relativos desejados, para conseguir a sincronização desejada da chegada das solicitações no(s) processador(es) de execução correspondentes 106, 1106. Por exemplo, utilizando itens de dados configurados para causar a comunicação de uma ou mais porções das solicitações em dado(s) tempo(s) de acordo com um relógio associado com o(s) processador(es) 104, 1104, o(s) processador(es) 104, 1104 podem fazer com que a(s) solicitação(ões) ou porção(ões) de solicitação sejam comunicadas em uma hora do dia desejada, ou em qualquer ordem ou sequência relativa desejada sem considerar o hora do dia real, mas ao invés umas com relação às outras ou algum terceiro índice.
[000236] Em 310, N é incrementado por um, ou outro valor adequado, ou o controle é de outro modo retornado para 302 de modo que o processo 302 - 308 continue. Opcionalmente o processo 302 - 310 continua até que um número desejado máximo de iterações ter sido completado, ou até que todas as solicitações para transações ou outro processamento por pedidos tenham sido processadas (por exemplo, roteadas para os processadores de execução 106, 1106), ou até que outro critério adequado tenha sido atendido.
[000237] Para ajudar os operadores e usuários do(s) sistema(s) 100, 1000, ou seus componentes, compreender ou avaliar o efeito do método e sistema descritos para causar o processamento de dados por múltiplos recursos de computação em rede, em alguns aspectos, a presente descrição também provê várias métricas (por exemplo, pontos de referência de negociação, no caso de um sistema financeiro 1000) as quais podem ser determinadas por, e através da utilização de dados gerados de, qualquer ou todos os vários componentes de um sistema 100, 1000.
[000238] Referência é agora feita à Figura 6, a qual mostra comparações de resultados de transmissão de solicitações de execução de negócios de múltiplas partes para pluralidades de recursos de computação em rede, ou processadores de execução 106, 1106 de acordo com um exemplo do método e sistema descritos, a resultados de solicitações de negócio de múltiplas partes convencionalmente transmitidas.
[000239] A Figura 6A mostra resultados de execução de uma solicitação de transação de múltiplas partes que utiliza os métodos e sistemas descritos para obter uma execução sincronizada (no caso ilustrado, substancialmente simultânea) das várias partes ou segmentos 624 da solicitação de transação de múltiplas partes (um pedido de venda) por uma pluralidade de servidores de bolsa 106, 1106. No exemplo mostrado, uma taxa de preenchimento de 94% pedido agregado original foi conseguida no preço de oferta original 630 de $4,21 (mostrado como "Nível 1"). Em uma segunda rodada de transações (a qual foi preenchida em uma única transação, como mostrado em 626) o volu-me restante foi vendido em um preço 632 menos desejado, mas ainda aceitável de $4,20 (mostrado como "Nível 2"). O custo associado com os pedidos preenchidos abaixo do preço de pedido solicitado (isto é, aqueles pedidos no Nível 2) foi $53.000 para os sistemas de negociante 1102 (por exemplo, sistemas de cliente) e $10.049 para a entidade de gerencialmente de capital 1106.
[000240] Na Figura 6B, utilizando os métodos e sistemas de negociação da técnica anterior, uma solicitação de negócio de múltiplas partes não sincronizada (pedido de venda de múltiplas bolsas) que consiste em múltiplos, segmentos de pedido não sincronizados 624' para a mesma solicitação de transação total resultou em uma taxa de preenchimento inicial de 47% no preço de pedido preferido 630 de $4,21 (mostrado como "Nível 1"). 43% adicionais da solicitação foi subsequentemente preenchido no preço menos desejável 632 de $4,20 (mostrado como "Nível 2"), com o restante sendo preenchido em um preço adicionalmente reduzido 634 de $4,19 (mostrado como "Nível 3").
[000241] Utilizando os métodos e sistemas de acordo com a descrição, um preço de venda médio ponderado em volume (VWAP) 636 de $4,2094 / ação foi realizado, como mostrado em 628. Utilizando os métodos e sistemas da técnica anterior, um VWAP 638 de $4,2038 / ação foi realizado.
[000242] Como será prontamente compreendido por aqueles versados na técnica relevante, os sistemas 100, 1000 podem compreender dispositivos ou componentes adequados para prover uma ampla variedade de métricas e funcionalidades adicionais. Por exemplo, referência é agora feita à Figura 7, a qual ilustra dois exemplos da provisão por um processador de roteamento 104, 1104 ou outro processador de uma comparação de ponto de referência em relação a um preço médio de mercado provido por, por exemplo, um serviço de notícias de mercado ou outra fonte de dados de mercado 1126v. Em 646, o desempenho de um sistema 100, 1000 em processamento sincronizado de uma solicitação de transação de múltiplas partes de acordo com a invenção é comparado com um indicador de desempenho de mercado "Ponto de Referência de Preço Médio". Tal ponto de referência de preço médio, ou outro ponto de referência ou fator métrico, pode ser obtido de, por exemplo, qualquer ou todos os componentes 1126, 1106, etc. Em 644, o desempenho de um sistema 100, 1000 em um processamento não sincronizado de uma solicitação de transação de múltiplas partes de acordo com os métodos da técnica anterior é comparado com o mesmo indicador de desempenho de mercado "Ponto de Referência de Preço Médio". A comparação das comparações 646, 644 indica que o processamento de transações de acordo com a invenção provê melhores resultados para um vendedor de interesses financeiros. Como será compreendido por aqueles versados na técnica relevante, uma ampla variedade de pontos de referência pode ser utilizada na avaliação de desempenho de sistemas e métodos de acordo com a invenção. Tais pontos de referência podem ser determinados pelo menos parcialmente pela natureza do sistema 100, 1000 utilizado, e os tipos de transações ou outras solicitações de execução processados por tal sistema.
[000243] A Figura 8 é um fluxograma que ilustra aspectos de um método exemplar 800 para coordenar o processamento de dados por múltiplos recursos de computação em rede. O método é adequado para implementação por processador(es) de roteador 104 tal como, por exemplo, um SOR 1104 ou por qualquer um ou mais processadores no sistema 1000.
[000244] Aspectos do método exemplar 800 na Figura 8 são similares ou os mesmos que aqueles que aparecem nas Figuras 2 e 4 e descrito em várias modalidades exemplares aqui descrita. Portanto, quaisquer exemplos ou detalhes de implementação descritos com relação a estas figuras ou como aqui descritos podem ser aplicados ao método da Figura 8. Similarmente, exemplos e detalhes de implementação descritos com relação à Figura 8 podem ser similarmente apli- cados aos métodos exemplares das Figuras 2 e 4. Todas estas variantes e combinações destes aspectos estão contempladas pela presente descrição.
[000245] Em 810, um ou mais processadores 104 no sistema 1000 monitoram os dados associados com os recursos de computação em rede 106. Como aqui descrito, em algumas modalidades, os dados associados com os recursos de computação em rede podem, entre outras coisas, incluir dados associados com segmentos de processamento de dados previamente roteados para os recursos de computação em rede.
[000246] Em algumas modalidades, os dados associados com os segmentos de processamento de dados previamente roteados podem incluir informações de tempo associadas com quando um segmento de processamento de dados é roteado (por exemplo, utilizando uma estampa de tempo), quando um segmento de processamento de dados é processado em um recurso de computação em rede (por exemplo, um campo de estampa de tempo ou tempo de processamento em uma mensagem de resposta), quando uma mensagem resposta é recebida no sistema (por exemplo, utilizando uma estampa de tempo). Em algumas modalidades, monitorar tais dados pode incluir determinar as latências de execução para os segmentos de processamento de dados (e/ou os diferentes componentes de latência) e associá-las com o re-curso de computação em rede correspondente.
[000247] Em algumas modalidades, monitorar dados pode incluir monitorar e comparar latências para diferentes tipos de segmentos de processamento de dados. Por exemplo, diferentes tipos de segmentos de processamento de dados roteados para a mesma jurisdição podem ter latências de transmissão similares, mas podem ter diferentes latên- cias associadas com a execução real do segmento de processamento de dados. Em outro exemplo, os segmentos de processamento de da dos que têm diferentes comprimentos ou mesmo uma falta de instrução podem ter diferentes latências quando roteados para o mesmo recurso de computação em rede.
[000248] Em outro exemplo, um segmento de processamento de dados impropriamente formatado pode ser rapidamente rejeitado por um recurso de computação em rede de modo que os processadores podem estar configurados para assumir que toda ou a maioria da latência associada com tal segmento de processamento de dados é atribuível a latências de transmissão.
[000249] Em algumas modalidades, os processadores no sistema são configurados para determinar os diferentes componentes de latên- cia associados com um recurso de computação em rede específico com base em diferenças entre as latências totais para os diferentes tipos / comprimentos / etc. de pedido.
[000250] Em alguns exemplos, os componentes latência podem incluir mas não estão necessariamente limitados a latência de transmissão de saída, latência de execução e latência de transmissão de retorno (por exemplo, de uma mensagem de resposta).
[000251] Os dados monitorados associadas com segmentos de pro-cessamento de dados previamente roteados podem, em alguns exemplos, incluir dados em uma ou mais mensagens de resposta que indicam se o segmento de processamento de dados foi processado com sucesso e/ou em qual grau teve sucesso. Por exemplo, um segmento de processamento de dados que representa uma solicitação de negócio, dados em uma ou mais mensagens de resposta para a solicitação de negócio podem indicar se o negócio foi preenchido, quanto da solicitação foi preenchida, e/ou um preço no qual a solicitação foi preenchida.
[000252] Os dados monitorados associados com os segmentos de processamento de dados previamente roteados podem incluir dados que indicam a liquidez de um interesse financeiro postado ou de outro modo conhecido estar disponível nos recursos de computação em rede no tempo em que um segmento de processamento de dados inicial em uma onda é roteado, ou em um tempo antes do roteamento inicial.
[000253] Em algumas modalidades, monitorar os dados associados com segmentos de processamento de dados previamente roteados pode incluir determinar uma ou mais razões de captura para cada segmento de processamento de dados e/ou para um ou mais processos de dados como um todo. O(s) processador(es) podem determinar uma razão de captura comparando a liquidez disponível visada em um recurso de computação em rede com a liquidez real capturada pela solicitação de negócio. A razão de captura de segmentos de proces-samento de dados previamente roteados pode ser monitorada em uma base de segmento por segmento e através de todos os segmentos de processamento de dados divididos dos um ou mais processos de dados originais.
[000254] Em algumas modalidades, os dados monitorados podem incluir parâmetros dados que identificam um risco de vazamento de informações para cada um dos recursos de computação em rede. Por exemplo, os parâmetros podem ser ajustados para indicar a presença de um servidor de terceiros colocalizado ou ativo de baixa latência, um esquema de desconto o qual encoraja um ou mais tipos de solicitação de negócio, dados associados com segmentos de processamento de dados previamente roteados para um recurso de computação em rede de computação que indica que um ou mais segmentos de processamento de dados relativos não tiveram sucesso, etc. Em alguns exemplos, monitorar os dados inclui gerar uma pontuação de risco de vazamento de informações com base nos dados monitorados.
[000255] Em algumas modalidades, o sistema tem múltiplas rotas de rede para um recurso de computação em rede. Nestas modalidades, os dados monitorados associados com um recurso de computação em rede específico podem ser monitorados / associados em uma base de rota por rota.
[000256] Além de rotas, em alguns exemplos, os dados monitorados podem também incluir dados de latência e ou informações de status para segmento(s) de rota ao longo de uma ou mais rotas e/ou disposi- tivo(s) em um ou mais rotas.
[000257] Em algumas modalidades, monitorar os dados pode incluir adquirir, medir ou solicitar dados de um ou mais componentes ou dispositivos no sistema como aqui descrito ou de outro modo. Alguns dados monitorar pode envolver vários cálculos.
[000258] Monitorar dados pode incluir armazenar os dados em uma ou mais memórias ou dispositivos de armazenamento de dados no sistema. Em algumas modalidades, múltiplos pontos de dados associados com os recursos de computação em rede podem ser coletados para prover uma faixa e/ou distribuição / probabilidade para os dados.
[000259] Em 820, o(s) processador(es) recebem, de uma ou mais fontes de dados 102, sinais que representam instruções para execução de um ou mais processos de dados que são executáveis por um ou mais dos recursos de computação em rede 106. Como acima discutido, por exemplo, com referência à Figura 2, os um ou mais processos de dados podem, em algumas modalidades, representar solicitações para execução de negócios e/ou outras transações em interesses financeiros.
[000260] Em alguns exemplos, as instruções para a execução de processo(s) de dados podem incluir parâmetros específicos para executar o processo de dados incluindo: prioridade de processo, valor de tolerância para vazamento de informações, um período de latência permissível máximo entre quaisquer segmentos de processamento de dados, um percurso de roteamento desejado, uma jurisdição desejada, instruções de roteamento específicas, etc.
[000261] Em 830, com base nos dados monitorados, o(s) processa- dor(es) preparam segmentos de processamento de dados para os um ou mais processos de dados. Em alguns exemplos, preparar os segmentos de processamento de dados pode incluir combinar, dividir, ou de outro modo determinar e preparar um número e tamanho de segmentos de processamento de dados para executar os ou mais processos de dados recebidos.
[000262] Em algumas modalidades, a preparação do(s) processa- dor(es) ou divisão dos processos de dados nos pelo menos um dos segmentos de processamento de dados inclui selecionar para qual dos recursos de computação em rede rotear um ou mais segmentos de processamento de dados. Esta seleção está baseada nos dados monitorados associados com os recursos de computação em rede.
[000263] Preparar / dividir os processos de dados também inclui determinar um tamanho de cada um dos segmentos de processamento de dados. Em algumas modalidades, isto pode incluir um tamanho de uma tarefa de processamento, ou um tamanho de uma solicitação de negócio. Os processadores estão configurados para determinar o tamanho de cada um dos segmentos de processamento de dados com base nos dados monitorados.
[000264] As determinações de seleção e tamanho, em algumas modalidades, podem estar baseadas em dados monitorados incluindo um ou mais de: liquidez disponível nos recursos de computação em rede de interesse(s) financeiro(s) associados com o processo de dados, um risco de vazamento de informações, e latência(s) associadas com os recursos de computação em rede.
[000265] Apesar da preparação de segmentos de processamento de dados poder estar baseada em visar a liquidez disponível em múltiplos recursos de computação em rede, em alguns exemplos, o(s) proces- sador(es) podem determinar que um único segmento de processamento de dados deve ser enviado para um único recurso de computação em rede. Alternativamente, isto pode ser visto como enviando um tamanho 0 ou nenhum segmento de processamento de dados para outros recursos de computação em rede.
[000266] Em 840, o(s) processador(es) determinam os parâmetros de tempo para os segmentos de processamento de dados. Os parâmetros de tempo estão baseados nos dados monitorados, e podem identificar diferenças no tempo de iniciação do roteamento dos segmentos de processamento de dados. Em alguns exemplos, os parâmetros de tempo podem definir desvios ou retardos de tempo entre os quais um primeiro segmento de processamento de dados deve ser roteado em relação ao tempo de roteamento de um segundo segmento de processamento de dados. Em alguns exemplos, os parâmetros de tempo podem definir uma faixa de tempos dentro da qual um primeiro segmento de processamento de dados deve ser roteado em relação a um tempo de roteamento de um segundo segmento de processamento de dados.
[000267] Em algumas modalidades, os parâmetros de tempo podem definir uma probabilidade ou fator de risco para vazamento de informações associadas com diferentes subfaixas de tempo dentro da faixa de tempos.
[000268] Os parâmetros de tempo estão determinados para causar uma execução sincronizada dos segmentos de processamento de dados. Em alguns exemplos, os parâmetros de tempo podem ser determinados com o objetivo de ter os segmentos de processamento de dados executando tão proximamente juntos quanto possível. Em alguns exemplos, os parâmetros de tempo podem ser determinados com o objetivo de ter os segmentos de processamento de dados executando em uma sequência desejada e/ou com tempos relativos dese- jados. Em alguns exemplos, os parâmetros de tempo podem ser determinados com o objetivo de capturar tanta liquidez quanto possível e/ou em um preço tão desejável quanto possível. Em alguns exemplos, os parâmetros de tempo podem ser determinados com base na distribuição de um retardo randomicamente introduzido em um ou mais dos recursos de computação em rede.
[000269] Em 850, o(s) processador(es) iniciam o roteamento dos segmentos de processamento de dados para os seus respectivos recursos de computação em rede com base nos parâmetros de tempo.
[000270] Como aqui descrito ou de outro modo, a divisão de processos de dados, a determinação do número, tamanho e destino de recursos de computação em rede de segmentos de processamento de dados está baseada nos dados monitorados associados com os recursos de computação em rede.
[000271] Em algumas situações, os processadores estão configurados para considerar diferentes permutas entre liquidez disponível, risco de vazamento de informações e/ou variância de latência para um ou mais recursos de computação em rede.
[000272] Por exemplo, por padrão ou com base em um valor de tolerância de risco associado com uma fonte de dados da qual um processo de dados foi recebido, o(s) processador(es) podem preparar segmentos de processamento de dados e parâmetros de tempo para visar tanta liquidez quanto possível apesar de um risco mais alto de vazamento de dados e de perder parte da liquidez ou um melhor preço. Ao contrário, com base em um diferente padrão ou valor de tolerância de risco mais baixo associado com uma fonte de dados, o(s) processa- dor(es) podem preparar segmentos de processamento de dados e parâmetros de tempo para visar uma menor quantidade de liquidez com um menor risco de vazamento de dados.
[000273] Como aqui descrito ou de outro modo, em algumas modali- dades os processadores podem preparar os segmentos de processamento de dados e parâmetros de tempo com base na liquidez disponível.
[000274] Como ilustrado, por exemplo, na Figura 4, continuamente e/ou periodicamente monitorando os dados associados com os recursos de computação em rede, o sistema pode, em alguns casos, estabelecer dados mais precisos e/ou atualizados tal como latências, fatores de risco, liquidez, etc. Em alguns exemplos, ao longo do tempo, os dados monitorados podem estabelecer frequências, distribuições, etc. de um ou mais tipos de dados monitorados.
[000275] Em alguns exemplos, monitorando os parâmetros de tempo e dados de resultado para segmentos de processamento de dados e ondas previamente arquivados, os processadores podem estabelecer valores mínimos ou máximos locais que proveem melhores resultados. Em algumas modalidades, quando determinando e/ou aplicando parâmetros de tempo para roteamento, o(s) processador(es) podem introduzir variações de tempo randômicas em uma sequência de tempo. Em alguns exemplos, estas variações podem ser pequenas em relação aos parâmetros de tempo e/ou podem ser selecionadas de modo que os tempos variados ainda caiam dentro de uma faixa que satisfaça os parâmetros de tempo. Em alguns exemplos, a introdução das variações de tempo e monitorando os dados associados com os segmentos de processamento de dados afetados, ajustes resultantes nos parâmetros de tempo podem mais rapidamente convergir para um valor mais ótimo, ou podem descobrir diferentes mínimos / máximos locais.
[000276] Em alguns casos, por exemplo, quando um recurso de computação em rede específico randomicamente introduz retardos ou lombadas, as distribuições de parâmetro de tempo podem ser multi- modais. Em algumas modalidades, os processadores podem dividir os processos de dados em pelo menos dois segmentos de processamento de dados a serem roteados para o recurso de computação em rede específico, e podem estabelecer parâmetros de tempo com base na distribuição multimodal. Por exemplo, os processadores podem gerar uma rajada de segmentos de processamento de dados com menores solicitações de negócio com o objetivo de ter pelo menos um subconjunto dos segmentos de processamento de dados executado sem estar sujeito ao retardo intencional ou lombada no recurso de computação em rede.
[000277] Na modalidade mostrada na Figura 1B, a(s) fonte(s) 1126 de dados monitorados utilizáveis pelo(s) processador(es) 104 na preparação de transação financeira ou outras solicitações de execução de processamento de dados incluem uma pluralidade de módulos 1126a- g úteis na preparação de uma solicitação de execução de múltiplas partes. No exemplo mostrado, os módulos 1126a-g incluem um módulo de processamento de dados de mercado 1126a, um módulo de medição de latência de ida e volta de bolsa 1126b, módulo lógico de aprendizado & compensação de latência de ida e volta (RTL) de bolsa adaptável 1126c, módulo lógico de alocação de ação de varredura in-teligente 1126d, módulo lógico de postagem inteligente 1126e, módulo lógico de acesso de bolsa regional & nacional 1126f, e módulo de gerenciamento de agressividade 1126g.
[000278] O módulo de processamento de dados de mercado 1126a recebe e processa os dados mercado, os quais podem ser os mesmos que ou diferentes dos dados providos através do módulo de dados de mercado de bolsa 1126v do servidor de bolsa 1106. As fontes de tais dados podem ser internas ao sistema 1104, ou externa, conforme necessário ou desejado, e podem incluir quaisquer fontes de dados privadas ou publicamente disponíveis adequadas úteis na preparação solicitações de execução, e especificamente tais solicitações que são úteis em dividir ou de outro modo preparar um pedido de transação: as informações providas podem, por exemplo, incluir os números ou quantidades e/ou preços disponíveis em quaisquer bolsas específicas; volumes ou preços de negociação históricos; profundidade de merca- do(s) ou liquidez corrente e histórica; tamanhos de reserva; margens de lucro de preço absolutas, relativas e/ou médias; e heurística específica de ação ou interesse; e/ou tendências em qualquer todas estas.
[000279] O módulo de medição de RTL de bolsa 1126b determina os parâmetros de tempo para utilização em sincronizar a execução de um negócio de múltiplas partes ou outras solicitações de processamento de dados por pluralidades de servidores de bolsa 1106s, como por exemplo, aqui explicado, utilizando dados de latência estaticamente definidos que representam tempo(s) decorridos entre o envio de solicitações ou outros dados para, e o recebimento de confirmação ou resultados de execução de, processador(es) de execução individual(is) 106, 1106.
[000280] O módulo de medição de RTL de bolsa adaptável 1126c determina os parâmetros de tempo para utilização em sincronizar a execução de um negócio de múltiplas partes ou outras solicitações de processamento de dados por pluralidades de servidores de bolsa 1106s, como, por exemplo, aqui explicado, utilizando dados de latên- cia de ("rolamento") dinamicamente definidos que representam tempos decorridos entre o envio de múltiplas solicitações de processamento, ou outros dados, para, e o recebimento de confirmação ou resultados de execução de, processador(es) de execução individual(is) 106, 1106. Histogramas e outros modelos de dados e/ou estruturas que re-presentam tais dados de rolamento podem ser utilizados pelos módu- lo(s) 1126c na determinação de parâmetros de tempo de acordo com tais processos.
[000281] O módulo lógico de alocação de ação de varredura inteligente 1126d inclui um modelo estatístico para estrategicamente su- perdimensionar as solicitações de transação, e/ou associar quantida- de(s) de reserva com pedidos publicamente postados, com base em dados mercado historicamente observados. Este módulo 1126d determina, por exemplo, um superdimensionamento adequado (isto é, pedidos em excesso sobre uma solicitação de negócio) para ser incorporado em um pedido aberto, levando em consideração quantidade(s) de reserva ocultas preditas em um servidor de bolsa 1106, com base em dados estatístico sobre a reserva oculta disponível naquele servidor de bolsa 1106 sobre um dado período ou sob outras condições especificadas (por exemplo, as últimas 30 solicitações de negócio). Com base em tais reservas de mercado ocultas preditas, uma reserva oculta adequadamente dimensionada pode ser determinada, e associ-ada com um pedido de transação, para resultar em superdimensiona- mento estratégico do pedido publicamente visível e ajudar a assegurar que um volume de negociação desejado real seja realizado.
[000282] O módulo lógico de postagem inteligente 1126e inclui um modelo estatístico para determinar a probabilidade de preenchimentos (isto é, percentagem de satisfação de uma solicitação de negócio) esperados serem realizados em solicitações de negócio roteadas para servidores de bolsa individuais 1106. Tais modelos estatísticos pode, exemplo, incluir dados de preenchimento históricos realizados em tais bolsas individuais sobre um dado período (por exemplo, as 30 solicitações de negócio passadas, último mês, 12 meses anteriores, etc.). Um módulo lógico de postagem inteligente 1126e pode levar em consideração fatores que incluem, por exemplo, a profundidade do topo de carteira em cada servidor de bolsa 1106, o nível volatilidade através dos servidores de bolsa 1106 e o latência tempo médio para execução de uma solicitação de negócio, entre outros fatores.
[000283] O módulo lógico de postagem inteligente 1126e pode também estar configurado para determinar as razões de captura de negócio para pedidos históricos, por exemplo, dividindo a liquidez desejada no tempo que o pedido foi submetido e/ou transmitido, com a liquidez capturada real que foi conseguida através da execução do pedido.
[000284] O módulo lógico de acesso de bolsa regional & nacional 1126f provê informações sobre como uma solicitação de negócio deve ser roteada para um servidor de bolsa 1106, dependendo se o servidor de bolsa 1106 é regional ou nacional. Dados internamente e/ou externamente armazenados relativos a protocolo(s) adequado(s) podem ser empregados, regulações a serem observadas, etc., podem ser empregadas na provisão de tais. Tais dados podem ser utilizados, por exemplo, em assegurar que o negócio ou outras solicitações de processamento transferidos recursos externos 106, 1106 pelo(s) processa- dor(es) de roteamento 104, 1104 sejam adequadamente formatados, em vista do(s) recurso(s) 106, 1106 para os quais a(s) solicitação(ões) são providas, e assegurando que tal(is) solicitação(ões) estejam em conformidade com todos os padrões legais aplicáveis.
[000285] O módulo lógico de gerenciamento de agressividade 1126g inclui um modelo de probabilidade para determinar a probabilidade de uma percentagem de preenchimento para servidores de bolsa individuais 1106, e modificar as solicitações de execução roteadas para tais servidores consequentemente. Tal módulo 1126g pode levar em consideração fatores tais como, por exemplo, a taxa de preenchimento em cada servidor de bolsa 1106, a profundidade da carteira em cada servidor de bolsa 1106, e os níveis de volatilidade através de servidores de bolsa 1106, entre outros fatores.
[000286] Em algumas modalidades, mensagens de pedido especialmente construídas podem ser utilizadas para roteamento de pedido. Por exemplo, o processador de roteador 1104 pode ser para mensagem FIX ou manipulação mensagem de (ou outro protocolo). O lado de jurisdição do sistema, executa a parte de programação do processamento e as seguintes funções de manipulação de mensagem:
[000287] Ajustar o número de sequência- já que o número de sequência pode somente ser determinado uma vez que o pedido é programado. Para fazer isto, a máquina de FIX sempre gerará um campo de número de sequência nulo, de comprimento fixo (como 8 ou 9 zeros "000000000"), então o programador sobrescreverá este campo com o número de sequência real.
[000288] Ajustar o checksum com base no número de sequência - para reduzir o processamento, a máquina de FIX passará uma mensagem com um checksum correto para o campo de número de sequência "000000000". Então quando o programador atualiza o número de sequência, este subtrai os caracteres não zero no número de sequência do checksum; por meio disto evitando recalcular o checksum para a mensagem inteira e reduzindo o processamento para uma operação muito simples e mecânica.
[000289] O número de sequência será passado de volta para a máquina de FIX remetente dentro do processador de roteador 1104 de modo que este possa ser incorporado nos registros / estado de seção.
[000290] As mensagens das jurisdições desviarão do programador e serão manipuladas diretamente pelas máquinas de FIX.
[000291] Em algumas modalidades, a programação e atualização de mensagem podem ser reduzidas para operações muito "mecânicas" que prestam estas mesmas para técnica de codificação de alta velocidade e potencial aceleração de hardware a (em FPGA, etc.).
[000292] Como acima descrito, em algumas modalidades, a sequência na qual as ondas de pedidos são removidas da fila e roteadas para as jurisdições associadas pode estar baseada em qualquer um dos fatores aqui descritos ou de outro modo.
[000293] Rotear as solicitações de negócio em uma sequência de tempo pode incluir retardar uma ou mais solicitações de negócio em uma onda / sequência. Em alguns casos, isto pode aperfeiçoar a razão de captura de um negócio, mas rotear um número de solicitações de negócio em uma sequência sincronizada pode inerentemente demorar mais do que enviá-las todas de uma vez.
[000294] Em alguns exemplos, em 208 e/ou 210, o(s) processa- dor(es) podem estar configurados para determinar uma sequência para rotear as solicitações de negócio de múltiplas ondas. Em alguns exemplos, isto pode incluir interdispersar, sobrepor ou de outro modo rotear pelo menos algumas solicitações de negócio para diferentes ondas concorrentemente.
[000295] Em alguns exemplos, o(s) processador(es) podem estar configurados para sequenciar as solicitações de negócio de múltiplas ondas enquanto respeitando os parâmetros de tempo intraonda assim como parâmetros de tempo gerais tal como um intervalo de mensagem mínimo que deve ser respeitado para evitar sobrecarga ou enfileiramento em uma jurisdição.
[000296] Em alguns exemplos, os parâmetros de tempo gerais ou específicos de jurisdição podem estar baseados em fatores de tempo observados tais como latências e taxas de preenchimento. Em alguns exemplos, os parâmetros de tempo gerais ou específicos de jurisdição podem estar baseados em características associadas com dispositivos de rede, conexões e/ou jurisdições. Estas características podem incluir mas não estão limitadas ao dispositivo, conexão e/ou rendimentos ou limitações de desempenho, fatores desempenho com base em acordos de nível de serviço.
[000297] Por exemplo, a tabela na Figura 10 ilustra dados monitorados exemplares recebidos ou determinados de monitoramento de desempenho de rede, pedidos históricos e/ou dados de pedido históricos.
[000298] Com estas latências e rendimentos exemplares, em um cenário exemplar, as 4 ondas de pedidos ilustradas na Figura 11A são recebidas (e os parâmetros de tempo padrão associados são exibi- dos).
[000299] Sem modificação, e assumindo uma taxa de processamento de 10 microssegundos entre as ondas, a tabela na Figura 11B lista os tempos quando os pedidos são roteados e entre parênteses, os tempos quando os pedidos chegam no(s) processador(es) de jurisdição e o erro de tempo resultante.
[000300] Neste exemplo, se os erros de tempo devem estar dentro 100 microssegundos do alvo cada uma das ondas B, C e D não encontrarão o alvo. Este cenário requer 2130 microssegundos do tempo do roteador e 2910 microssegundos incluindo as jurisdições.
[000301] Em outro cenário exemplar, as ondas C e D podem ser reordenadas para serem enviadas mais cedo porque estas são para símbolos não relativos. A tabela na Figura 11C mostra os tempos se a onda D é iniciada imediatamente após a onda A, e então as ondas B e C são iniciadas simultaneamente.
[000302] Enquanto as ondas B, C e D todas erram o alvo de 100 mi- crossegundos , existe um aperfeiçoamento no tempo total para manipular todas as 4 ondas (1310 microssegundos no roteador e 2600 mi- crossegundos incluindo as jurisdições).
[000303] No seguinte cenário ilustrado na Figura 11D, as ondas são roteadas prevendo o congestionamento de jurisdição e preservando as sequências de ondas de pedido.
[000304] Como ilustrado, todas as ondas encontram o alvo de 100 microssegundos, mas o tempo de manipulação aumentou para 3700 microssegundos.
[000305] Como ilustrado na Figura 11E, no próximo cenário, o manipulador de tempo de onda pode estar configurado para programar os pedidos a serem roteados em uma sequência de tempo interondas, assim como uma sequência de tempo intraonda com base tanto em rendimento / congestionamento de jurisdição quanto latências.
[000306] No cenário acima, todas as ondas encontram o alvo de 100 microssegundos, e o tempo de manipulação é 2300 microssegundos para o roteador e as jurisdições.
[000307] Em alguns exemplos, o manipulador de tempo de onda pode estar configurado para determinar uma programação disponível ótima ou melhor para as próxima N ondas. Em alguns exemplos, quando N é pequeno (por exemplo menos de 10), o manipulador de tempo de onda pode utilizar um algoritmo de força bruta calculando o tempo de manipulação toda a sequência possível de tempo manipulação resultante e selecionado a melhor.
[000308] Em alguns exemplos, quando N é maior ou quando uma proposta de força bruta resulta em retardos desordenados para o processo de roteamento de onda, o manipulador de tempo de onda pode estar configurado para calcular tantas possíveis sequências em uma quantidade definida / alotada de tempo / ciclos de computação e selecionar a melhor.
[000309] Em alguns exemplos, o(s) processador(es) podem estar configurados para aplicar outros algoritmos de otimização de programação de trabalho para programar as diferentes ondas no tempo de manipulação mais curto.
[000310] Em alguns exemplos, o número de ondas a serem incluídas no algoritmo de programação pode depender do número de jurisdições e/ou solicitações de negócio nas ondas.
[000311] A Figura 12 é um fluxograma que mostra aspectos de um método exemplar 1200 para coordenar o processamento de dados por múltiplos recursos de computação em rede. Em 1210, os processadores obtêm ondas de processamento de dados de uma fila de ondas ou seções. As ondas de processamento de dados identificam um ou mais segmentos de processamento de dados e recurso de computação em rede correspondente para o qual cada um dos segmentos de proces- samento de dados deve ser roteado. As ondas de processamento de dados também identificam uma sequência de tempo na qual os um ou mais segmentos de processamento de dados devem ser roteados.
[000312] Em 1220, os processadores obtêm intervalos de manipulação mínimos para cada um dos recursos de computação em rede. Em algumas modalidades, os intervalos de manipulação podem estar baseados nos dados monitorados associados com os recursos de computação em rede.
[000313] Em 1230, os processadores programam uma ordem para rotear as ondas de processamento de dados com base nas sequências de tempo de onda e os intervalos de manipulação para os recursos de computação em rede. Em algumas modalidades, programar a ordem compreende determinar uma ordem a qual interdispersa os segmentos de processamento de dados de diferentes ondas de processamento de dados sem violar os intervalos de manipulação de recurso de computação em rede e sem violar as sequências de tempo das ondas de processamento de dados.
[000314] Em alguns exemplos, as sequências de tempo podem incluir faixas de tempo aceitáveis dentro das quais um segmento de processamento de dados pode ser roteado em relação ao tempo para ro- teamento um segundo segmento de processamento de dados. Em algumas modalidades, programar uma ordem para roteamento de ondas de processamento de dados pode incluir ajustar uma sequência de tempo de roteamento para uma ou mais onda dentro destas faixas de tempo.
[000315] Em algumas modalidades, os processadores estão configurados para obter M ondas de processamento de dados de uma fila de ondas, e para determinar um tempo de manipulação total para cada possível disposição das M ondas de processamento de dados. Os processadores então programam o pedido com base na disposição que tem o tempo de manipulação total mais curto.
[000316] Em algumas modalidades, os processadores consideram parâmetros adicionais. Por exemplo, quando uma escolha está disponível, o processador pode estar configurado para selecionar uma disposição a qual utiliza o menor número de seções de recurso de computação em rede (jurisdição). Em outro exemplo, os processadores podem considerar se diferentes segmentos de processamento de dados são solicitações de negócio são para o mesmo interesse financeiro, e podem selecionar uma disposição para evitar ou reduzir quaisquer conflitos. Outros fatores similares incluem tamanho de pedido, preços, partes para um negócio, etc.
[000317] A seleção do número de M ondas de processamento de dados pode ser dependente da quantidade de tempo requerida para avaliar todas as disposições de pedido para as M ondas versus o tempo de manipulação total requerido pelo processador de onda de pedidos para rotear uma onda. Se o tempo de avaliação for muito alto, este pode tornar-se um gargalo e desperdiçar recursos de roteamento permitindo-os ficarem ociosos enquanto a avaliação está sendo executada. Isto também pode aumentar a quantidade de tempo durante a qual os preços ou liquidez nos recursos de computação em rede podem mudar por meio disto potencialmente reduzindo as razões de captura. Se M for muito pequeno, os recursos de roteamento podem ser des-perdiçados porque pode existir menos oportunidade para otimizar a programação das ondas.
[000318] Em alguns exemplos, o número de ondas M pode ser selecionado dinamicamente conforme os recursos e/ou tempos de manipulação de onda mudam.
[000319] Em algumas modalidades, os processadores computam tantas das possíveis disposições para as M ondas que podem ser avaliadas antes de um limite de tempo expire. Uma vez limite de tempo expira, a melhor programação das disposições avaliadas é selecionada.
[000320] Em algumas modalidades, os processadores estão configurados para selecionar e programar M ondas da fila de ondas. No entanto, somente as primeiras W ondas do pedido programado são roteadas enquanto que as M-W ondas restantes na programação e as próximas W ondas na fila de ondas são avaliadas para determinar uma próxima ordem de programação.
[000321] Em algumas modalidades, o sistema roteia um pedido programado de ondas (ou um subconjunto do pedido) enquanto computando concorrentemente a programação para o próximo pedido. Este encadeamento do processo pode, em alguns exemplos, levar a um desempenho aperfeiçoado.
[000322] Em alguns exemplos, a seleção de ondas da fila de ondas e/ou filas de seções pode estar baseada em um ou mais esquemas de prioridade. Estes esquemas podem incluir lotes, round robins, primeiro a entrar primeiro a sair, etc. Em algumas modalidades, o esquema de prioridade está baseado em atender requisitos regulatórios. Em alguns exemplos, o esquema de prioridade inclui regras baseadas em símbolos de interesse financeiro, tamanhos de pedido, preços, prioridades, clientes, esquemas de preço, obrigações contratuais, etc.
[000323] Em algumas modalidades, a seleção de ondas de uma fila pode estar baseada no tempo de roteamento / manipulação total para a onda específica. Por exemplo, se uma onda tiver parâmetros de tempo apertados (isto é, pequenos retardos entre os segmentos de processamento de dados, e portanto um tempo de manipulação mais curto), esta pode ser priorizada sobre uma onda que um tempo de manipulação mais longo se esta puder facilmente encaixar em uma próxima programação ou de outro modo resultar em rendimento mais alto.
[000324] Em 850, o sistema roteia cada um dos segmentos de processamento de dados nas ondas de processamento de dados ordena- das com base na programação.
[000325] Como aqui descrito, os processadores monitoram dados associados com os recursos de computação em rede. Em algumas modalidades, os processadores obtêm um tempo de intervalo de manipulação mínimo identificando com os dados monitorados quando dois ou mais segmentos de processamento de dados roteados para o mesmo recurso de computação em rede resultaram em uma ou mais latências as quais são mais longas do que um valor de latência histórico para o recurso de computação em rede. A diferença em tempo entre os segmentos de processamento de dados envolvidos pode ser utilizada para definir um tempo de manipulação mínimo para o recurso de computação em rede. Em alguns exemplos, a latência mais longa pode ser indicativa que um dos segmentos de processamento de dados foi enfileirado no recurso de computação em rede (ou ao longo do percurso).
[000326] Similarmente, em algumas modalidades, os processadores podem identificar um número de segmentos de processamento de dados que podem ser tipicamente roteados para o mesmo recurso de computação em rede dentro de um tempo de manipulação mínimo antes que uma latência mais longa do que típica seja observada. Em alguns exemplos, este número pode ser indicativo com um número de processadores, etc. em um recurso de computação em rede que devem estar ocupados antes que uma solicitação subsequente seja enfileirada.
[000327] Em algumas modalidades, quando os dados monitorados (por exemplo, latência, razão de captura) indicam que um recurso de computação em rede (ou rota) está congestionado, os processadores podem retardar, reprogramar ou repreparar qualquer onda que tenha pelo menos um segmento de processamento de dados para rotear para o recurso de computação em rede afetado.
[000328] Em algumas modalidades, monitorar os dados inclui identificar em vários segmentos de processamentos de dados dos pedidos de onda programados os quais devem ser roteados para o mesmo destino ou de outro modo têm o potencial para atuar como um bom caso de teste para determinar parâmetros de tempo, tempos de manipulação, limites de congestionamento, etc. Em alguns exemplos, identificando e especificamente monitorando estes segmentos de processamento de dados com capacidade de teste, o sistema pode, em alguns casos reduzir a necessidade de enviar segmentos de processamento de dados de teste.
[000329] Apesar da descrição ter sido provida e ilustrada em conexão com modalidades específicas, presentemente preferidas, muitas variações e modificações podem ser feitas sem afastar do espírito e escopo da(s) invenção(ões) aqui descritas. A descrição e inven- ção(ões) portanto não estão limitadas aos componentes ou detalhes exatos de metodologia ou construção acima apresentados. Exceto para a extensão necessária ou inerente nos próprios processos, nenhuma ordem ou etapas ou estágios específicos de métodos ou processos descritos nesta descrição, incluindo as figuras, é pretendida ou implicada. Em muitos casos a ordem de etapas de processo pode ser variada sem mudar o propósito, efeito, ou significado dos métodos descritos. O escopo das reivindicações deve ser definido somente pelas reivindicações anexas, dando a devida consideração para a doutrina de equivalentes e doutrinas relativas.
Claims (49)
1. Sistema (100, 1000) para coordenar o processamento de dados por múltiplos recursos de computação em rede (102, 106, 1102, 1106), o sistema caracterizado pelo fato de que compreende pelo menos um processador (104,1104) configurado para: monitorar (302) dados associados com uma pluralidade de recursos de computação em rede (102, 106, 1102, 1106), os dados monitorados incluindo dados associados com segmentos de processamento de dados previamente roteados para a pluralidade de recursos de computação em rede (102, 106, 1102, 1106), em que os dados associados com os segmentos de processamento de dados previamente roteados para a pluralidade de recursos de computação em rede incluem pelo menos uma razão de captura para pelo menos um segmento de processamento de dados previamente roteado; receber (202) de uma ou mais fontes de dados sinais que representam instruções para execução de pelo menos um processo de dados executável pela pluralidade de recursos de computação em rede (102, 106, 1102, 1106); com base nos dados monitorados (302) incluir pelo menos uma razão de captura: dividir o pelo menos um processo de dados em pelo menos um segmento de processamento de dados, cada segmento de processamento de dados a ser roteado para um da pluralidade de recursos de computação em rede (102, 106, 1102, 1106); determinar (306) uma pluralidade de parâmetros de tempo, cada um da pluralidade de parâmetros de tempo estando associado com um correspondente da pluralidade de recursos de computação em rede (102, 106, 1102, 1106), a pluralidade de parâmetros de tempo determinada para causar uma execução sincronizada do pelo menos um segmento de processamento de dados pela pluralidade de proces- sadores de computação em rede (102, 106, 1102, 1106); e rotear o pelo menos um segmento de processamento de dados para a pluralidade de processadores de computação em rede correspondentes em uma sequência de tempo com base nos parâmetros de tempo.
2. Sistema, de acordo com a reivindicação 1, caracterizado pelo fato de que monitorar os dados associados com a pluralidade de recursos de computação em rede (102, 106, 1102, 1106) compreende: receber mensagens em resposta ao roteamento do pelo menos um segmento de processamento de dados para a pluralidade de processadores de computação em rede correspondentes; e determinar, a partir das mensagens recebidas, pelo menos uma razão de captura para o pelo menos um processo de dados; em que determinar a pluralidade de parâmetros de tempo para pelo menos um segmento de processamento de dados subsequente está baseado pelo menos em parte na pelo menos uma razão de captura.
3. Sistema, de acordo com a reivindicação 1, caracterizado pelo fato de que monitorar os dados associados com a pluralidade de recursos de computação em rede compreende: receber mensagens em resposta ao roteamento do pelo menos um segmento de processamento de dados para a pluralidade de processadores de computação em rede correspondentes; determinar, a partir das mensagens recebidas, pelo menos uma razão de captura para o pelo menos um processo de dados; e gerar um alerta indicativo de uma falha de hardware potencial quando a pelo menos uma razão de captura está abaixo de um limite definido ou muda de uma média histórica por um limite definido.
4. Sistema, de acordo com a reivindicação 1, caracterizado pelo fato de que monitorar os dados associados com a pluralidade de recursos de computação em rede compreende: determinar componentes de uma latência associada com o roteamento de um segmento de processamento de dados para um da pluralidade de recursos de computação em rede; em que determinar os componentes está baseado em diferenças em latências associadas com o roteamento de diferentes tipos de segmentos de processamento de dados para o um da pluralidade de recursos de computação em rede.
5. Sistema, de acordo com a reivindicação 1, caracterizado pelo fato de que os dados monitorados associados com a pluralidade de recursos de computação em rede inclui dados associados com múltiplas rotas para rotear segmentos de processamento de dados do sistema para os recursos de computação em rede.
6. Sistema, de acordo com a reivindicação 5, caracterizado pelo fato de que os dados associados com as múltiplas rotas incluem dados de latência ou informações de status para pelo menos um segmento de rota ou dispositivo em pelo menos uma das múltiplas rotas.
7. Sistema, de acordo com a reivindicação 1, caracterizado pelo fato de que os dados monitorados associados com a pluralidade de recursos de computação em rede incluem dados para identificar um risco de vazamento de informações de um correspondente dos recursos de computação em rede.
8. Sistema, de acordo com a reivindicação 1, caracterizado pelo fato de que dividir o pelo menos um processo de dados no pelo menos um dos segmentos de processamento de dados compreende: selecionar para qual da pluralidade de recursos de computação em rede pelo menos um do pelo menos um segmento de processamento de dados deve ser roteado; e para cada um dos recursos de computação em rede selecionados, determinar um tamanho do correspondente pelo menos um dos processos de dados que processa segmentos.
9. Sistema, de acordo com a reivindicação 8, caracterizado pelo fato de que a seleção e a determinação de tamanho estão baseadas em pelo menos um dentre: uma liquidez disponível, um risco de vazamento de informações, e uma latência associada com a pluralidade de recursos de computação.
10. Sistema, de acordo com a reivindicação 9, caracterizado pelo fato de que a liquidez disponível inclui liquidez publicamente postada e liquidez prevista.
11. Sistema, de acordo com a reivindicação 1, caracterizado pelo fato de que os parâmetros de tempo definem uma faixa de tempo permissível dentro da qual um primeiro segmento de processamento de dados deve ser roteado em relação a um tempo de rotea- mento de um segundo segmento de processamento de dados.
12. Sistema, de acordo com a reivindicação 1, caracterizado pelo fato de que o pelo menos um processador é configurado para: introduzir variações de tempo randômicas na sequência de tempo para rotear a pluralidade de segmentos de processamento de dados, as variações de tempo randômicas caindo dentro de uma faixa que satisfaz a pluralidade de parâmetros de tempo; monitorar dados associados com os segmentos de processamento de dados roteados com as variações de tempo randômicas; e ajustar os parâmetros de tempo associados com a pluralidade de processadores de computação em rede correspondentes.
13. Sistema, de acordo com a reivindicação 1, caracterizado pelo fato de que monitorar os dados associados com a pluralidade de recursos de computação em rede compreende: receber mensagens em resposta ao roteamento da pluralidade de segmentos de processamento de dados para a pluralidade de processadores de computação em rede correspondentes; e determinar uma distribuição de latências de execução associada com um dos processadores de computação em rede com base nas mensagens recebidas associadas com segmentos de processamento de dados roteados para o um dos processadores de computação em rede; e em que o pelo menos um processador é configurado para determinar a sequência de tempo com base em uma ou mais faixas de tempo dentro das quais um primeiro segmento de processamento de dados pode ser roteado em relação a um tempo no qual um segundo segmento de processamento de dados é roteado, as uma ou mais faixas de tempo com base na distribuição.
14. Método para coordenar um processamento de dados por múltiplos recursos de computação em rede (102,106, 1102, 1106), o método caracterizado pelo fato de que compreende: monitorar (810) dados associados com uma pluralidade de recursos de computação em rede (102,106, 1102, 1106), os dados monitorados incluindo dados associados com segmentos de processamento de dados previamente roteados para a pluralidade de recursos de computação em rede (102,106, 1102, 1106), em que os dados associados com segmentos de processamento de dados previamente roteados para a pluralidade de recursos de computação em rede incluem pelo menos uma razão de captura para pelo menos um segmento de processamento de dados previamente roteado; receber (820) de uma ou mais fontes de dados sinais que representam instruções para execução de pelo menos um processo de dados executável pela pluralidade de recursos de computação em rede (102,106, 1102, 1106); com base nos dados monitorados incluir pelo menos uma razão de captura: dividir (830) o pelo menos um processo de dados em pelo menos um segmento de processamento de dados, cada segmento de processamento de dados a ser roteado para um da pluralidade de recursos de computação em rede (102,106, 1102, 1106); determinar (840) uma pluralidade de parâmetros de tempo, cada um da pluralidade de parâmetros de tempo estando associado com um correspondente da pluralidade de recursos de computação em rede (102,106, 1102, 1106), a pluralidade de parâmetros de tempo determinada para causar uma execução sincronizada do pelo menos um segmento de processamento de dados pela pluralidade de processadores de computação em rede (102,106, 1102, 1106); e rotear (850) o pelo menos um segmento de processamento de dados para a pluralidade de processadores de computação em rede correspondentes em uma sequência de tempo com base nos parâmetros de tempo.
15. Método, de acordo com a reivindicação 14, caracterizado pelo fato de que monitorar os dados associados com a pluralidade de recursos de computação em rede compreende: receber mensagens em resposta ao roteamento do pelo menos um segmento de processamento de dados para a pluralidade de processadores de computação em rede correspondentes; e determinar, a partir das mensagens recebidas, pelo menos uma razão de captura para o pelo menos um processo de dados; em que determinar a pluralidade de parâmetros de tempo para pelo menos um segmento de processamento de dados subsequente está baseado pelo menos em parte na pelo menos uma razão de captura.
16. Método, de acordo com a reivindicação 14, caracterizado pelo fato de que monitorar os dados associados com a pluralidade de recursos de computação em rede compreende: receber mensagens em resposta ao roteamento do pelo menos um segmento de processamento de dados para a pluralidade de processadores de computação em rede correspondentes; determinar, a partir das mensagens recebidas, pelo menos uma razão de captura para o pelo menos um processo de dados; e gerar um alerta indicativo de uma falha de hardware potencial quando a pelo menos uma razão de captura está abaixo de um limite definido ou muda de uma média histórica por um limite definido.
17. Método, de acordo com a reivindicação 14, caracterizado pelo fato de que monitorar os dados associados com a pluralidade de recursos de computação em rede compreende: determinar componentes de uma latência associada com o roteamento de um segmento de processamento de dados para um da pluralidade de recursos de computação em rede; em que determinar os componentes está baseado em diferenças em latências associadas com o roteamento de diferentes tipos de segmentos de processamento de dados para o um da pluralidade de recursos de computação em rede.
18. Método, de acordo com a reivindicação 14, caracterizado pelo fato de que os dados monitorados associados com a pluralidade de recursos de computação em rede incluem dados associados com múltiplas rotas para rotear segmentos de processamento de dados para os recursos de computação em rede.
19. Método, de acordo com a reivindicação 18, caracterizado pelo fato de que os dados associados com as múltiplas rotas incluem dados de latência ou informações de status para pelo menos um segmento de rota ou dispositivo em pelo menos uma das múltiplas rotas.
20. Método, de acordo com a reivindicação 14, caracterizado pelo fato de que os dados monitorados associados com a plura- lidade de recursos de computação em rede incluem dados para identificar um risco de vazamento de informações de um correspondente dos recursos de computação em rede.
21. Método, de acordo com a reivindicação 14, caracterizado pelo fato de que dividir o pelo menos um processo de dados no pelo menos um dos segmentos de processamento de dados compreende: selecionar para qual da pluralidade de recursos de computação em rede pelo menos um do pelo menos um segmento de processamento de dados deve ser roteado; e para cada um dos recursos de computação em rede selecionados, determinar um tamanho do correspondente pelo menos um processo de dados que processa segmentos.
22. Método, de acordo com a reivindicação 21, caracterizado pelo fato de que a seleção e a determinação de tamanho estão baseadas em pelo menos um dentre: uma liquidez disponível, um risco de vazamento de informações, e uma latência associada com a pluralidade de recursos de computação.
23. Método, de acordo com a reivindicação 14, caracterizado pelo fato de que os parâmetros de tempo definem uma faixa de tempo permissível dentro da qual um primeiro segmento de processamento de dados deve ser roteado em relação a um tempo de rotea- mento de um segundo segmento de processamento de dados.
24. Método, de acordo com a reivindicação 14, caracterizado pelo fato de que compreende: introduzir variações de tempo randômicas na sequência de tempo para rotear a pluralidade de segmentos de processamento de dados, as variações de tempo randômicas caindo dentro de uma faixa que satisfaz a pluralidade de parâmetros de tempo; monitorar dados associados com os segmentos de proces- samento de dados roteados com as variações de tempo randômicas; e ajustar os parâmetros de tempo associados com a pluralidade de processadores de computação em rede correspondentes.
25. Método, de acordo com a reivindicação 14, caracterizado pelo fato de que monitorar os dados associados com a pluralidade de recursos de computação em rede compreende: receber mensagens em resposta ao roteamento da pluralidade de segmentos de processamento de dados para a pluralidade de processadores de computação em rede correspondentes; e determinar uma distribuição de latências de execução associada com um dos processadores de computação em rede com base nas mensagens recebidas associadas com segmentos de processamento de dados roteados para o um dos processadores de computação em rede; e em que o método compreende: determinar a sequência de tempo com base em uma ou mais faixas de tempo dentro das quais um primeiro segmento de processamento de dados pode ser roteado em relação a um tempo no qual um segundo segmento de processamento de dados é roteado, as uma ou mais faixas de tempo com base na distribuição.
26. Meio legível por computador (214, 118, 1018) caracterizado pelo fato de que possui armazenado no mesmo instruções as quais quando executadas por pelo menos um processador, configuram o pelo menos um processador (104) para: monitorar (302, 810) dados associados com uma pluralidade de recursos de computação em rede (102, 106, 1102, 1106), os dados monitorados incluindo dados associados com segmentos de processamento de dados previamente roteados para a pluralidade de recursos de computação em rede (102, 106, 1102, 1106) , em que os dados associados com os segmentos de processamento de dados previamente roteados para a pluralidade de recursos de computação em rede incluem pelo menos uma razão de captura para pelo menos um segmento de processamento de dados previamente roteado; receber (820) de uma ou mais fontes de dados sinais que representam instruções para execução de pelo menos um processo de dados executável pela pluralidade de recursos de computação em rede (102, 106, 1102, 1106); com base nos dados monitorados incluir pelo menos uma razão de captura: dividir (830) o pelo menos um processo de dados em pelo menos um segmento de processamento de dados, cada segmento de processamento de dados a ser roteado para um da pluralidade de recursos de computação em rede (102, 106, 1102, 1106); determinar (840) uma pluralidade de parâmetros de tempo, cada um da pluralidade de parâmetros de tempo estando associado com um correspondente da pluralidade de recursos de computação em rede (102, 106, 1102, 1106), a pluralidade de parâmetros de tempo determinada para causar uma execução sincronizada do pelo menos um segmento de processamento de dados pela pluralidade de processadores de computação em rede (102, 106, 1102, 1106); e rotear (850) o pelo menos um segmento de processamento de dados para a pluralidade de processadores de computação em rede (102, 106, 1102, 1106) correspondentes em uma sequência de tempo com base nos parâmetros de tempo.
27. Sistema para coordenar o processamento de dados por múltiplos recursos de computação em rede (102, 106, 1102, 1106), o sistema caracterizado pelo de que compreender pelo menos um processador configurado para: obter (1210) uma pluralidade de ondas de processamento de dados, cada onda de processamento de dados identificando: dois ou mais segmentos de processamento de dados, um ou mais recursos de computação correspondentes em rede (102, 106, 1102, 1106) para os quais os dois ou mais segmentos de processamento de dados devem ser roteados; e uma sequência de tempo na qual os dois ou mais segmentos de processamento de dados devem ser roteados; obter (1220) um intervalo de manipulação mínimo para cada um dos recursos de computação em rede (102, 106, 1102, 1106); programar (1230) uma ordem para rotear a pluralidade de ondas de processamento de dados com base nas sequências de tempo de onda e nos intervalos de manipulação mínimos para os recursos de computação em rede (102, 106, 1102, 1106); e rotear (1240) cada um dos segmentos de processamento de dados na pluralidade de ondas de processamento de dados com base na ordem.
28. Sistema, de acordo com a reivindicação 27, caracterizado pelo fato de que programar a ordem para rotear a pluralidade de ondas de processamento de dados compreende determinar uma ordem que cruza os segmentos de processamento de dados de diferentes ondas de processamento de dados sem violar os intervalos mínimos de manipulação da pluralidade de recursos de computação em rede ou as sequências de tempo da pluralidade de ondas de processamento de dados.
29. Sistema, de acordo com a reivindicação 27, caracterizado pelo fato de que as sequências de tempo identificam um ou mais intervalos de tempo dentro dos quais um primeiro segmento de processamento de dados em uma determinada onda de processamento de dados pode ser roteado em relação a um tempo em que um segundo segmento de processamento de dados em uma determinada onda de processamento de dados é roteado.
30. Sistema, de acordo com a reivindicação 1, caracteriza- do pelo fato de que obter a pluralidade de ondas de processamento de dados compreende obter ondas de processamento de dados M a partir de uma fila de ondas; e em que a programação da ordem de ro- teamento das ondas de processamento de dados M compreende: determinar um tempo total de manuseio para cada arranjo possível das ondas de processamento de dados M, e programar a ordem como um arranjo dos arranjos possíveis tendo o menor tempo total de manuseio.
31. Sistema, de acordo com a reivindicação 30, caracterizado pelo fato de que M é selecionada com base em um tempo de computação de programação e tempos totais de manipulação para uma ou mais da pluralidade de ondas de processamento de dados.
32. Sistema, de acordo com a reivindicação 1, caracterizado pelo fato de que obter a pluralidade de ondas de processamento de dados compreende a obtenção de ondas de processamento de dados M a partir de uma fila de ondas; e em que a programação da ordem de roteamento das ondas de processamento de dados M compreende: determinar o tempo total de manipulação para diferentes arranjos das ondas de processamento de dados N até que um tempo de computação definido expire, e a programação da ordem como uma disposição das diferentes disposições que possuem o menor tempo total de manipulação determinado antes que o tempo de computação definido expire.
33. Sistema, de acordo com a reivindicação 1, caracterizado pelo fato de que o pelo menos um processador é configurado para: monitorar dados associados com a pluralidade de recursos de computação em rede, os dados monitorados incluindo dados associados com segmentos de processamento de dados previamente roteados para a pluralidade de recursos de computação em rede.
34. Sistema, de acordo com a reivindicação 33, caracterizado pelo fato de que a obtenção do tempo mínimo de intervalo de tempo de manipulação compreende: determinar quando dois ou mais segmentos de processamento de dados roteados para um dos recursos de computação em rede resultaram em uma ou mais latências de execução que são mais longas do que um valor de latência histórica; e usar um tempo relativo do roteamento dos dois ou mais segmentos de processamento de dados para definir o tempo mínimo de manipulação para o um dos recursos de computação em rede.
35. Sistema, de acordo com a reivindicação 27, caracterizado pelo fato de que o pelo menos um processador é configurado para: identificar dois ou mais segmentos de processamento de dados que estão programados para serem roteados para um da pluralidades de recursos de computação em rede com um tempo relativo que está dentro de um limite do intervalo mínimo de manipulação do um da pluralidade de recursos de computação em rede; e após o roteamento dos dois ou mais segmentos de processamento de dados, monitorar as latências de execução dos dois ou mais segmentos de processa-mento de dados para determinar se é necessário ajustar o intervalo mínimo de manipulação do um da pluralidade de recursos de computação em rede.
36. Sistema, de acordo com a reivindicação 27, caracterizado pelo fato de que o pelo menos um processador é configurado para identificar uma pluralidade de segmentos de processamento de dados que são programados para serem roteados para um da pluralidade de recursos de computação em rede com um tempo relativo que está dentro de um limite do intervalo mínimo de manipulação do um da pluralidade de recursos de computação em rede; e após o roteamento da pluralidade de segmentos de processamento de dados, monitorar as latências de execução para a pluralidade de segmentos de processamento de dados para determinar um número de segmentos de processamento de dados que acionará o intervalo mínimo de manipula- ção da pluralidade de recursos de computação em rede.
37. Sistema, de acordo com a reivindicação 27, caracterizado pelo fato de que a pluralidade de ondas de processamento de dados é obtida de uma fila de ondas; em que o pelo menos um processador é configurado para preencher a fila de ondas com no máximo N ondas de processamento de dados de cada uma da pluralidade de filas de sessões associadas com uma ou mais fontes de dados correspondentes.
38. Sistema, de acordo com a reivindicação 37, caracterizada pelo fato de que o preenchimento da fila de ondas compreende a seleção de ondas de processamento de dados a partir da pluralidade de filas de sessões, utilizando um esquema de prioridade que é baseado, pelo menos em parte, nos parâmetros de tempo associados com as ondas de processamento de dados.
39. Método para coordenar um processamento de dados por múltiplos recursos de computação em rede, o método caracterizado pelo fato de que compreende: obter (1210) uma pluralidade de ondas de processamento de dados, cada onda de processamento de dados identificando: dois ou mais segmentos de processamento de dados, um ou mais recursos de computação correspondentes em rede para os quais os dois ou mais segmentos de processamento de dados devem ser roteados; e uma sequência de tempo na qual o um ou mais segmentos de processamento de dados devem ser roteados; obter (1220) um intervalo de manipulação mínimo para cada um dos recursos de computação em rede; programar (1230) uma ordem para rotear a pluralidade de ondas de processamento de dados com base nas sequências de tempo de onda e nos intervalos de manipulação mínimos para os recursos de computação em rede; e rotear (1240) cada um dos segmentos de processamento de dados na pluralidade de ondas de processamento de dados com base na ordem.
40. Sistema para coordenar o processamento de dados por múltiplos recursos de computação em rede (102, 106, 1102, 1106), o sistema caracterizado pelo fato de que compreende pelo menos um processador configurado para: receber (202) de uma ou mais fontes de dados sinais que representam instruções para execução de uma pluralidade de processos de dados executáveis por uma pluralidade de recursos de computação em rede (102, 106, 1102, 1106), os processos de dados representando uma transação proposta em um interesse financeiro; obter dados associados com liquidez disponível do interesse financeiro em cada um da pluralidade de recursos de computação em rede (102, 106, 1102, 1106); dividir cada um da pluralidade de processos de dados em uma pluralidade de segmentos de processamento de dados, cada segmento de processamento de dados dividido de um único processo de dados a ser roteado para pelo menos um da pluralidade de processadores de computação em rede (102, 106, 1102, 1106); com base pelo menos parcialmente em latências em execução de solicitações de processamento de dados anteriores roteadas pelo sistema para cada um da pluralidade de processadores de computação em rede (102, 106, 1102, 1106), determinar uma pluralidade de parâmetros de tempo, cada um da pluralidade de parâmetros de tempo estando associado com um correspondente da pluralidade de segmentos de processamento de dados; com base nos parâmetros de tempo e na liquidez disponível em cada um da pluralidade de recursos de computação em rede associada com cada um da pluralidade de processos de dados, determinar (210, 840) uma sequência de tempo para rotear os segmentos de pro-cessamento de dados para todos da pluralidade de processos de dados, a sequência de tempo determinada para causar uma execução sincronizada da pluralidade de segmentos de processamento de dados pela pluralidade de recursos de computação em rede (102, 106, 1102, 1106); e rotear (850) a pluralidade de segmentos de processamento de dados para a pluralidade de recursos de computação em rede (102, 106, 1102, 1106) correspondentes com base na sequência de tempo.
41. Sistema, de acordo com a reivindicação 40, caracterizado pelo fato de que dividir o pelo menos um processo de dados em uma pluralidade de segmentos de processamento de dados compreende: selecionar para qual dos recursos de computação em rede, pelo menos um da pluralidade de segmentos de processamento de dados deve ser roteado; e para cada um dos recursos de computação em rede selecionado, determinar um tamanho do correspondente de pelo menos um processo de dados que processa segmentos.
42. Sistema, de acordo com a reivindicação 41, caracterizado pelo fato de que a seleção e a determinação do tamanho são baseadas, pelo menos em parte, na liquidez disponível e na distribuição das latências históricas de execução associadas com a pluralidade de recursos de computação.
43. Sistema, de acordo com a reivindicação 42, caracterizado pelo fato de que o pelo menos um processador é configurado para: quando a distribuição para um determinado recurso de computação em rede é uma distribuição multimodal: a pluralidade de segmentos de processamento de dados inclui pelo menos dois segmentos de processamento de dados a serem roteados para o recurso de computação em rede particular com base na distribuição multimodal, e determinar os parâmetros de tempo para os pelo menos dois segmentos de processamento de dados com base na distribuição multimodal.
44. Sistema, de acordo com a reivindicação 42, caracterizado pelo fato de que dividir o pelo menos um processo de dados em uma pluralidade de segmentos de processamento de dados compreende a divisão do pelo menos um processo de dados em pelo menos dois segmentos de processamento de dados a serem roteados para o mesmo recurso de computação em rede; em que o pelo menos um processador é configurado para determinar os parâmetros de tempo para cada um dos pelo menos dois segmentos de processamento de dados.
45. Sistema, de acordo com a reivindicação 42, caracterizado pelo fato de que a seleção e a determinação do tamanho são uma função da variação das distribuições das latências históricas de execução para a pluralidade de recursos de computação em rede.
46. Sistema, de acordo com a reivindicação 40, caracterizado pelo fato de que o pelo menos um processador é configurado para determinar se a liquidez, além da liquidez disponível postada, está historicamente disponível em um determinado recurso de computação em rede; e em que a divisão do pelo menos um processo de dados inclui dividir o pelo menos um processo de dados em pelo menos dois segmentos de processamento de dados a serem roteados para o recurso de computação em rede específico, os pelo menos dois segmentos de processamento de dados possuindo parâmetros de tempo para direcionar a liquidez de transação disponível postada e a liquidez adicional.
47. Método para coordenar um processamento de dados por múltiplos recursos de computação em rede, o método caracterizado pelo fato de que compreende: receber de uma ou mais fontes de dados sinais que representam instruções para execução de uma pluralidade de processos de dados executáveis por uma pluralidade de recursos de computação em rede, os processos de dados representando uma transação proposta em um interesse financeiro; obter dados associados com a liquidez disponível do interesse financeiro em cada um da pluralidade de recursos de computação em rede; dividir cada um da pluralidade de processos de dados em uma pluralidade de segmentos de processamento de dados, cada segmento de processamento de dados dividido de um único processo de dados a ser roteado para pelo menos um da pluralidade de recursos de computação em rede; com base pelo menos parcialmente em latências em execução de solicitações de processamento de dados anteriores roteadas pelo sistema para cada um da pluralidade de processadores de computação em rede, determinar uma pluralidade de parâmetros de tempo, cada um da pluralidade de parâmetros de tempo estando associado com um correspondente da pluralidade de segmentos de processamento de dados; com base nos parâmetros de tempo e na liquidez disponível em cada um da pluralidade de recursos de computação em rede associados com cada um da pluralidade de processos de dados, determinar uma sequência de tempo para rotear os segmentos de processamento de dados para todos da pluralidade de processos de dados, a sequência de tempo determinada para causar uma execução sincronizada da pluralidade de segmentos de processamento de dados pela pluralidade de recursos de computação em rede; e rotear a pluralidade de segmentos de processamento de dados para a pluralidade de processadores de computação em rede correspondentes com base na sequência de tempo.
48. Sistema (100, 1000) para coordenar o processamento de dados por múltiplos recursos de computação em rede (102, 106, 1102, 1106), o sistema caracterizado pelo fato de que compreende pelo menos um processador (104,1104) configurado para: monitorar (302) dados associados com uma pluralidade de recursos de computação em rede (102, 106, 1102, 1106), os dados monitorados incluindo dados associados com segmentos de processamento de dados previamente roteados para a pluralidade de recursos de computação em rede (102, 106, 1102, 1106); receber (202) de uma ou mais fontes de dados sinais que representam instruções para execução de pelo menos um processo de dados executável pela pluralidade de recursos de computação em rede (102, 106, 1102, 1106); com base nos dados monitorados (302): dividir o pelo menos um processo de dados em pelo menos um segmento de processamento de dados, cada segmento de processamento de dados a ser roteado para um da pluralidade de recursos de computação em rede (102, 106, 1102, 1106); determinar (306) uma pluralidade de parâmetros de tempo, cada um da pluralidade de parâmetros de tempo estando associado com um correspondente da pluralidade de recursos de computação em rede (102, 106, 1102, 1106), a pluralidade de parâmetros de tempo determinada para causar uma execução sincronizada do pelo menos um segmento de processamento de dados pela pluralidade de processadores de computação em rede (102, 106, 1102, 1106); e rotear o pelo menos um segmento de processamento de dados para a pluralidade de processadores de computação em rede correspondentes em uma sequência de tempo com base nos parâmetros de tempo; e em que o pelo menos um processador é configurado para: introduzir variações de tempo aleatórias na sequência de tempo para rotear a pluralidade de segmentos de processamento de dados, as variações de tempo aleatórias dentro de uma faixa que satisfaz a pluralidade de parâmetros de tempo; monitorar os dados associados aos segmentos de processamento de dados roteados com as variações de tempo aleatórias; e ajustar os parâmetros de tempo associados com a pluralidade de processadores de computação em rede correspondentes.
49. Método para coordenar o processamento de dados por múltiplos recursos de computação em rede (102, 106, 1102, 1106), o método caracterizado pelo fato de que compreende: monitorar (302) dados associados com uma pluralidade de recursos de computação em rede (102, 106, 1102, 1106), os dados monitorados incluindo dados associados com segmentos de processamento de dados previamente roteados para a pluralidade de recursos de computação em rede (102, 106, 1102, 1106); receber (202) de uma ou mais fontes de dados sinais que representam instruções para execução de pelo menos um processo de dados executável pela pluralidade de recursos de computação em rede (102, 106, 1102, 1106); com base nos dados monitorados (302): dividir o pelo menos um processo de dados em pelo menos um segmento de processamento de dados, cada segmento de processamento de dados a ser roteado para um da pluralidade de recursos de computação em rede (102, 106, 1102, 1106); determinar (306) uma pluralidade de parâmetros de tempo, cada um da pluralidade de parâmetros de tempo estando associado com um correspondente da pluralidade de recursos de computação em rede (102, 106, 1102, 1106), a pluralidade de parâmetros de tempo determinada para causar uma execução sincronizada do pelo menos um segmento de processamento de dados pela pluralidade de processadores de computação em rede (102, 106, 1102, 1106); e rotear o pelo menos um segmento de processamento de dados para a pluralidade de processadores de computação em rede correspondentes em uma sequência de tempo com base nos parâmetros de tempo; e o método ainda compreendendo: introduzir variações de tempo aleatórias na sequência de tempo para rotear a pluralidade de segmentos de processamento de dados, as variações de tempo aleatórias caindo dentro de uma faixa que satisfaz a pluralidade de parâmetros de tempo; monitorar os dados associados com os segmentos de pro-cessamento de dados roteados com as variações de tempo aleatórias; e ajustar os parâmetros de tempo associados com a pluralidade de processadores de computação em rede correspondentes.
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562126120P | 2015-02-27 | 2015-02-27 | |
US201562126106P | 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 |
Publications (2)
Publication Number | Publication Date |
---|---|
BR112017018133A2 BR112017018133A2 (pt) | 2018-04-10 |
BR112017018133B1 true BR112017018133B1 (pt) | 2022-11-08 |
Family
ID=56741275
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
BR112017018133-9A BR112017018133B1 (pt) | 2015-02-27 | 2016-02-26 | Sistemas e métodos para coordenar o processamento de dados por múltiplos recursos de computação em rede, e meio legível por computador |
Country Status (11)
Country | Link |
---|---|
EP (1) | EP3269090B1 (pt) |
JP (3) | JP6892824B2 (pt) |
KR (3) | KR102619651B1 (pt) |
CN (1) | CN107534584B (pt) |
AU (1) | AU2016224908B2 (pt) |
BR (1) | BR112017018133B1 (pt) |
CA (1) | CA2922072A1 (pt) |
HK (1) | HK1248934A1 (pt) |
MX (3) | MX2017011021A (pt) |
SG (4) | SG10201913790VA (pt) |
WO (1) | WO2016135705A1 (pt) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2510451B1 (en) | 2009-12-10 | 2019-08-28 | Royal Bank Of Canada | Synchronized processing of data by networked computing resources |
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 |
EP3726451A1 (en) | 2012-09-12 | 2020-10-21 | IEX Group, Inc. | Transmission latency leveling apparatuses, methods and systems |
JP6542800B2 (ja) | 2014-04-16 | 2019-07-10 | アイイーエックス グループ,インコーポレーテッド | トランザクションの最新情報を提供するシステム及び方法 |
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 |
KR20170047292A (ko) | 2014-08-22 | 2017-05-04 | 아이이엑스 그룹, 인크. | 전자 거래 시스템에서의 동적 페그 주문 |
US10311515B2 (en) | 2014-09-17 | 2019-06-04 | Iex Group, Inc. | System and method for a semi-lit market |
KR102619651B1 (ko) * | 2015-02-27 | 2023-12-29 | 로얄 뱅크 오브 캐나다 | 네트워크 컴퓨팅 자원에 의한 데이터 프로세싱의 조정 |
WO2018044334A1 (en) | 2016-09-02 | 2018-03-08 | Iex Group. Inc. | System and method for creating time-accurate event streams |
US10558493B2 (en) | 2017-10-31 | 2020-02-11 | Ab Initio Technology Llc | Managing a computing cluster using time interval counters |
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 |
KR102544799B1 (ko) * | 2020-11-09 | 2023-06-20 | 한국과학기술원 | 에지 컴퓨팅 서버의 최적 자원할당 운영 방법 |
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 |
US20240264921A1 (en) * | 2023-02-06 | 2024-08-08 | Chicago Mercantile Exchange Inc. | Performance obfuscation to maintain user expectations |
Family Cites Families (8)
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 |
US8347292B2 (en) * | 2007-08-30 | 2013-01-01 | International Business Machines Corporation | Transaction aggregation to increase transaction processing throughout |
WO2009073023A1 (en) * | 2007-12-03 | 2009-06-11 | Zircon Computing Llc | Parallel processing system |
EP2510451B1 (en) * | 2009-12-10 | 2019-08-28 | Royal Bank Of Canada | Synchronized processing of data by networked computing resources |
KR102619651B1 (ko) * | 2015-02-27 | 2023-12-29 | 로얄 뱅크 오브 캐나다 | 네트워크 컴퓨팅 자원에 의한 데이터 프로세싱의 조정 |
-
2016
- 2016-02-26 KR KR1020237003088A patent/KR102619651B1/ko active IP Right Grant
- 2016-02-26 BR BR112017018133-9A patent/BR112017018133B1/pt active IP Right Grant
- 2016-02-26 SG SG10201913790VA patent/SG10201913790VA/en unknown
- 2016-02-26 SG SG10201913740XA patent/SG10201913740XA/en unknown
- 2016-02-26 KR KR1020237044928A patent/KR20240006086A/ko active Application Filing
- 2016-02-26 SG SG10202110018R patent/SG10202110018RA/en unknown
- 2016-02-26 KR KR1020177027276A patent/KR102494427B1/ko active IP Right Grant
- 2016-02-26 MX MX2017011021A patent/MX2017011021A/es unknown
- 2016-02-26 JP JP2017545392A patent/JP6892824B2/ja active Active
- 2016-02-26 AU AU2016224908A patent/AU2016224908B2/en active Active
- 2016-02-26 EP EP16754851.0A patent/EP3269090B1/en active Active
- 2016-02-26 SG SG11201707004WA patent/SG11201707004WA/en unknown
- 2016-02-26 CN CN201680024608.5A patent/CN107534584B/zh active Active
- 2016-02-26 WO PCT/IB2016/051091 patent/WO2016135705A1/en active Application Filing
- 2016-02-29 CA CA2922072A patent/CA2922072A1/en active Pending
-
2017
- 2017-08-25 MX MX2023005874A patent/MX2023005874A/es unknown
- 2017-08-25 MX MX2022004253A patent/MX2022004253A/es unknown
-
2018
- 2018-06-28 HK HK18108317.9A patent/HK1248934A1/zh unknown
-
2021
- 2021-05-28 JP JP2021089695A patent/JP2021166385A/ja active Pending
-
2024
- 2024-02-19 JP JP2024022985A patent/JP2024063048A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
JP2018514105A (ja) | 2018-05-31 |
KR102494427B1 (ko) | 2023-02-01 |
MX2023005874A (es) | 2023-06-05 |
CN107534584A (zh) | 2018-01-02 |
EP3269090A4 (en) | 2018-08-22 |
BR112017018133A2 (pt) | 2018-04-10 |
SG10202110018RA (en) | 2021-10-28 |
EP3269090A1 (en) | 2018-01-17 |
KR102619651B1 (ko) | 2023-12-29 |
AU2016224908B2 (en) | 2019-04-11 |
JP2024063048A (ja) | 2024-05-10 |
KR20170139004A (ko) | 2017-12-18 |
CN107534584B (zh) | 2020-12-01 |
JP2021166385A (ja) | 2021-10-14 |
JP6892824B2 (ja) | 2021-06-23 |
AU2016224908A1 (en) | 2017-09-21 |
EP3269090B1 (en) | 2019-10-02 |
SG10201913790VA (en) | 2020-03-30 |
WO2016135705A1 (en) | 2016-09-01 |
HK1248934A1 (zh) | 2018-10-19 |
KR20240006086A (ko) | 2024-01-12 |
SG10201913740XA (en) | 2020-03-30 |
SG11201707004WA (en) | 2017-09-28 |
CA2922072A1 (en) | 2016-08-27 |
MX2017011021A (es) | 2018-01-18 |
MX2022004253A (es) | 2022-05-06 |
KR20230024423A (ko) | 2023-02-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11799947B2 (en) | Coordinated processing of data by networked computing resources | |
BR112017018133B1 (pt) | Sistemas e métodos para coordenar o processamento de dados por múltiplos recursos de computação em rede, e meio legível por computador | |
US9959572B2 (en) | Coordinated processing of data by networked computing resources | |
US10771536B2 (en) | Coordinated processing of data by networked computing resources | |
US9979589B2 (en) | Coordinated processing of data by networked computing resources | |
US20230410200A1 (en) | Synchronized processing of data by networked computing resources | |
US11631136B2 (en) | Methods and systems for low latency generation and distribution of quote price direction estimates | |
CA3041689A1 (en) | Coordinated processing of data by networked computing resources |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
B06U | Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette] | ||
B09A | Decision: intention to grant [chapter 9.1 patent gazette] | ||
B16A | Patent or certificate of addition of invention granted [chapter 16.1 patent gazette] |
Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 26/02/2016, OBSERVADAS AS CONDICOES LEGAIS |