BR112014010298B1 - Aparelho para encomendar um primeiro evento e um segundo evento, sistema de computação distribuído para determinar eventos e método para encomendar um primeiro evento e um segundo evento - Google Patents
Aparelho para encomendar um primeiro evento e um segundo evento, sistema de computação distribuído para determinar eventos e método para encomendar um primeiro evento e um segundo evento Download PDFInfo
- Publication number
- BR112014010298B1 BR112014010298B1 BR112014010298-8A BR112014010298A BR112014010298B1 BR 112014010298 B1 BR112014010298 B1 BR 112014010298B1 BR 112014010298 A BR112014010298 A BR 112014010298A BR 112014010298 B1 BR112014010298 B1 BR 112014010298B1
- Authority
- BR
- Brazil
- Prior art keywords
- event
- events
- delay
- distributed computing
- event detector
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 184
- 230000001934 delay Effects 0.000 claims abstract description 56
- 230000008569 process Effects 0.000 claims description 152
- 238000001514 detection method Methods 0.000 claims description 24
- 238000012545 processing Methods 0.000 claims description 23
- 239000002131 composite material Substances 0.000 claims description 18
- 230000002123 temporal effect Effects 0.000 claims description 18
- 238000012546 transfer Methods 0.000 description 25
- 230000006870 function Effects 0.000 description 12
- 238000010606 normalization Methods 0.000 description 8
- 239000000872 buffer Substances 0.000 description 7
- 230000001133 acceleration Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 5
- 238000004590 computer program Methods 0.000 description 5
- 230000003111 delayed effect Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000007704 transition Effects 0.000 description 4
- 238000011144 upstream manufacturing Methods 0.000 description 4
- 230000011664 signaling Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000001364 causal effect Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000013404 process transfer Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 241000282412 Homo Species 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000009849 deactivation Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000010355 oscillation Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Images
Classifications
-
- H04L29/08—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/28—Timers or timing mechanisms used in protocols
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Medical Informatics (AREA)
- Computer Security & Cryptography (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
- Multi Processors (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Debugging And Monitoring (AREA)
- Computer And Data Communications (AREA)
Abstract
aparelho e método para sincronizar eventos. a presente invenção refere-se a métodos e aparelhos (200) para sincronizar um primeiro evento (202), tendo associado aos mesmos um primeiro valor de cronometragem de evento original, e um segundo evento (204), tendo associado ao mesmo um segundo valor de cronometragem de evento original, em que primeiro e segundo eventos (202; 204) experimentam retardos diferentes enquanto percorrendo através de caminhos diferentes de um sistema de computação distribuído (300; 700), e em que pelo menos um evento de saída (206) deve ser determinado por um detector de eventos (208) baseado no primeiro e no segundo eventos (202; 204). o aparelho (200) compreende um compensador de retardo (210), o compensador de retardo (210) tendo uma saída (212) para receber o primeiro e o segundo eventos (202; 204) e tendo uma saída (214) para encaminhar versões retransmitidas (202'; 204') do primeiro e segundo eventos recebidos ao detector de eventos associado (208), em que o compensador de retardo (210) é operável para retransmitir o primeiro e o segundo eventos (202; 204) ao detector de eventos associado (208) baseado nos retardos experimentados e baseado no primeiro e segundo valores de cronometragem de evento associados. 21146800v1
Description
[001] As modalidades da presente invenção referem-se geralmente a redes de dados e, em particular, a aparelhos e métodos para sincronizar eventos que chegam a um detector de eventos através de caminhos de rede diferentes.
[002] As redes de sensores, tais como, por exemplo, redes de sensores sem fio, têm uma ampla faixa de aplicações. Por exemplo, redes de sensores sem fio de várias tecnologias podem ser usadas para fins de localização, tais como localizar humanos e/ou outros objetos. No presente, "localizar" significa a detecção ou determinação de uma localização ou posição geográfica. Alguns sistemas de rastreamento de localização ou posição podem ser usados para localizar jogadores e outros objetos (por exemplo, uma bola) em eventos esportivos, tais como, por exemplo, futebol, futebol americano, rugby, tênis, etc.
[003] Com o uso de dados de localização ou posicionamento geográfico recolhidos de jogadores e/ou de uma bola é possível derivar informação estatística relacionada aos eventos esportivos totais, por exemplo, um jogo de futebol, ou relacionada a equipes ou jogadores individuais. Tal informação estatística derivada pode ser interessante por várias razões. Por um lado, existem vários interesses comerciais uma vez que certas estatísticas e suas análises podem ser de relevância particular para os espectadores em um estádio e/ou em frente de uma televisão em casa. Portanto, a provisão de certas estatísticas pode aumentar mais o interesse em eventos esportivos.Por outro lado, os dados estatísticos derivados de dados de posicionamento brutos também podem ser usados para fins de treinamento. No presente, um oponente e/ou o comportamento da própria equipe pode ser analisado bem como o desempenho e/ou as condições de saúde de jogadores individuais.
[004] Os sistemas de rastreamento de localização ou posição acima mencionados podem ser baseados em várias tecnologias. Por exemplo, a informação de localização pode ser determinada baseada na avaliação de sinais de rádio e/ou campos magnéticos sem fio. Para este fim, transmissores e/ou receptores, geralmente também indicados como sensores, podem ser colocados nos objetos individuais (por exemplo, jogadores, bola, etc.) a serem localizados pelo sistema. Dispositivos de recepção e/ou de transmissão correspondentes também podem ser montados em locais predeterminados em torno de uma área geográfica de interesse como, por exemplo, um campo de futebol. Uma avaliação de forças de sinal, tempos de propagação de sinal e/ou fases de sinal, apenas para citar algumas alternativas técnicas possíveis, podem então levar a fluxos de dados de sensores indicativos da posição geográfica de jogadores ou objetos individuais em momentos de tempo diferentes. Tipicamente, uma amostra de dados de localização geográfica está associada com um carimbo temporal indicando sendo que tempo um objeto foi localizado em qual posição geográfica. Com estes dados cinemáticos de informação combinados, como velocidade (rapidez), aceleração, etc., também podem ser providas, além dos dados de localização compreendendo, por exemplo, as coordenadas x, y e z. Na sequência deste relatório, os dados de localização e cinemáticos liberados pelo sistema de sensores de localização também serão referidos como dados de sensores (brutos).
[005] Em um exemplo particular de um sistema de rastreamento sem fio, pessoas ou objetos podem ser equipados com transmissores minúsculos, que podem ser embutidos em calçados, uniformes e bolas e cujos sinais são captados por um número de antenas colocadas em torno da área sob observação. As unidades receptoras processam os sinais coletados e determinam seus Tempos de Chegada (ToA). Baseado em um cálculo das diferenças em atraso de propagação, cada posição do transmissor é então continuamente determinada. Além disso, uma rede de computador integrada com os sistemas de rastreamento sem fio pode analisar os dados de posição e de sensores de modo a detectar eventos específicos. Operando na banda de 2,4 GHz, o sistema de rastreamento é globalmente isento de licença.
[006] Baseado nos fluxos de dados de sensores brutos emitidos a partir do sistema de rastreamento de localização e posição os assim chamados "eventos" podem ser detectados. Deste modo, um evento pode ser definido ser uma ocorrência instantânea de interesse em um ponto de tempo. Em geral, um evento está associado com uma troca na distribuição de uma quantidade relacionada que pode ser sentida. Um evento pode ser um evento primitivo, que é diretamente baseado em dados de sensores (dados cinemáticos) do sistema de rastreamento, ou um evento compósito, que é baseado em outros eventos detectados anteriormente em vez disso. Quer dizer, um evento compósito não está dependendo diretamente de dados de sensores brutos, mas de outros eventos. Em aplicativos de jogo de bola, um evento pode, por exemplo, ser "jogador X bate a bola" ou "jogador X está de posse da bola". Eventos mais complicados podem, por exemplo, ser "impedimento" ou "falta".
[007] A detecção de eventos baseada em fluxos de dados de sensores subjacentes suscitou o interesse aumentado nas comunidades de sistemas de base de dados e distribuídos nos últimos anos. Uma ampla faixa e sempre crescentes números de aplicativos nos dias de hoje, incluindo aplicativos como monitoração de rede, e- negócios, assistência médica, análises financeiras e segurança ou a supervisão de eventos esportivos mencionada acima, contam com a capacidade de processar questões sobre fluxos de dados que tomam idealmente a forma de uma série de eventos em ordem de tempo. A detecção de eventos indica o processamento totalmente automatizado de dados de sensores brutos e/ou eventos sem a necessidade de intervenção humana, como em muitos aplicativos a grande quantidade de dados de sensores e/ou de eventos supridos não pode ser capturada ou processada por um ser humano não mais. Por exemplo, se variações de jogadores de alta velocidade ou um objeto esportivo, por exemplo, uma bola, devem ser esperadas, os dados de sensores brutos (rastreamento de localização ou posição) têm que ser determinados em uma taxa de dados suficientemente alta pela rede de sensores subjacente (sem fio). Além disso, se existe um alto número de jogadores e/ou objetos (por exemplo, em futebol existem 22 jogadores e uma bola) a ser rastreados, a quantidade de amostras de dados de localização e cinemáticos geográficos total por segundo pode tornar-se proibitivamente alta, em particular com respeito aos requisitos de processamento de eventos em tempo real.
[008] Portanto, mesmo se fluxos de dados de sensores e/ou de eventos são analisados e sinalizados totalmente automatizados, ainda pode haver de longe muita informação, que possivelmente não é de qualquer interesse em sua totalidade. No futuro este problema ainda irá piorar uma vez que mais e mais dispositivos serão equipados com sensores e a possibilidade de prover seus dados de sensores determinados a redes públicas tal como a Internet para (por exemplo, dados de tempo ou de temperatura determinados por dispositivos sem fio como telefones inteligentes). Por esta razão, a quantidade de dados de sensores a ser processados mais em certos eventos de interesse crescerá rapidamente. A detecção de eventos automatizada pode prover remédio para isto tentando agregar parte a parte dos dados de sensores brutos e determinar eventos mais abstratos e interdependentes, que podem transferir de longe mais informação do que os dados de sensores brutos por si mesmos. Por exemplo, além dos exemplos relacionados a futebol mencionados acima, tais eventos determinados podem incluir "carro X está localizado no cruzamento Y" ou "engarrafamento na rota X".
[009] O problema que surge na detecção de eventos automatizada é a energia de computação requerida para realizar detecção de eventos em fluxos de dados de sensores e/ou de eventos possivelmente maciçamente paralelos - e tudo isto sob pelo menos requisitos de processamento quase em tempo real. Este problema pode ser resolvido pela paralelização de detecções de eventos, que pode, por exemplo, funcionar em nós de rede diferentes de uma rede de computador, que podem, por exemplo, comunicar-se via Ethernet.
[0010] Deste modo, um detector de eventos extrai automaticamente certo evento de interesse de um fluxo de dados de eventos ou de sensores de acordo com as especificações de evento do usuário. Os detectores de eventos individuais podem ser distribuídos sobre nós de rede diferentes de uma rede de dados, sendo que os detectores de eventos diferentes comunicam-se usando dados de eventos e/ou de sensores percorrendo através da rede usando rotas e ramais de rede diferentes. Deste modo, os dados de sensores brutos e/ou de eventos podem ser transportados em pacotes de dados de acordo com algum protocolo de transporte, como, por exemplo, UDP (Protocolo de Datagrama de Usuário), TCP (Protocolo de Controle de Transmissão)/IP (Protocolo de Internet), etc. Este conceito, no entanto, causa novos problemas com respeito à sincronização de fluxos de dados de eventos dentro da rede. Sem contramedidas apropriadas, os fluxos de dados de sensores e/ou de eventos individuais na rede não são sincronizados em tempo um com o outro, que significa que eventos individuais podem alcançar um detector de eventos fora de sua ordem temporal original e, deste modo, levar a resultados detectados falsos.
[0011] Deixe-nos olhar para um cenário de futebol exemplar,sendo que uma pluralidade de detectores de eventos operando automaticamente paralelos é suporta de detectar um passe do jogador A para o jogador B. A fim de detectar dito evento de "passe", a seguinte sequência de eventos precedente é requerida: 1. "o jogador A está de posse da bola", 2. "o jogador A quica a bola", 3. "o jogador A deixa a bola", 4. "a bola vem próximo ao jogador B", 5. "o jogador B bate a bola"
[0012] A detecção de evento para o evento "jogador X quica a bola" pode ser baseada na sequência de eventos "jogador X próximo à bola" e um pico de aceleração detectado da bola. Existem as seguintes alternativas para montar um detector de eventos automatizado em dito evento "jogador X quica a bola".
[0013] Nós podemos aguardar eventos requeridos individuais – um após o outro. Se nós vimos todos os eventos requeridos na ordem correta (temporal) (no presente, quaisquer critérios de aborto são desconsiderados por razões de simplicidade) podemos dizer que vimos ou experimentamos um passe. No entanto, para aplicações complexas, a detecção de todos os eventos requeridos não ocorre necessariamente em um nó de rede único ou em uma CPU (Unidade de Processamento Central) devido à paralelização de detectores de eventos. Por esta razão, não é necessariamente garantido que eventos requeridos individuais alcancem o detector de eventos na ordem requerida correta. Isto pode, por exemplo, ser devido à tremulação de rede, variando a carga da CPU ou carga de rede aumentada.
[0014] No presente, podemos tentar armazenar temporariamente eventos e então pesquisar o armazenamento temporário para o padrão de evento correto. Mas, que armazenamento temporário deve ser usado? Se dissermos que um passe tem que acontecer dentro de no máximo 5 s podemos ter que considerar eventos dentro de um período de tempo de no máximo 5 s após o primeiro evento relevante até tanto termos detectado o passe ou até abortarmos. No entanto, também é possível que o último evento relevante seja computacionalmente muito complexo, o que requer um armazenamento temporário adicional pequeno. Mas, qual é o tamanho deste armazenamento temporário adicional: E qual é o tamanho do armazenamento temporário relacionado a detectores de eventos compósitos que requerem o evento de "passe" como um evento de entrada? Os atrasos de sinalização de evento dependem de uma configuração de sistema/rede final total, isto é, a distribuição dos detectores de eventos, bem como a carga de rede e de CPU. Nem a configuração de sistema final nem o cenário de carga pode ser previsto no momento da compilação.
[0015] A maior parte dos sistemas de detecção de eventos não considera os problemas de atraso de sinalização de eventos acima mencionados, uma vez que em muitos dos casos os atrasos de processamento ou de propagação não são relevantes. No entanto, este não é o caso particularmente para sistemas de detecção de eventos em tempo real, altamente complexos, tal como em cenários de rastreamento financeiro ou de posição.
[0016] O seguinte exemplo referente a futebol exemplifica o problema de atraso de eventos na base de um cenário de detecção de evento de "impedimento" frequentemente requerido, que é ilustrado esquematicamente na figura 1.
[0017] O jogador 100 passa a bola 110 para frente para seu companheiro de equipe 120. No tempo verdadeiro (real) do passe, isto é, o tempo sendo que a bola 110 experimenta uma oscilação ou pico de aceleração (ver figura 1, esquerda), o jogador 120 está situado em posição de impedimento por alguns centímetros. Portanto, o jogo pode ter que ser interrompido.
[0018] No entanto, a fim de ser capaz de distinguir entre um passé direto ou um drible do primeiro jogador 100, o passe a partir do primeiro jogador 100 para o segundo jogador 120 somente pode ser detectado quando a bola 120 realmente deixa o primeiro jogador 100. Devido a uma taxa de dados limitada dos dados de sensores esta decisão de distinguir pode tomar um atraso "natural" adicional de pelo menos alguns milissegundos. Após este atraso natural o segundo jogador 120 pode, no entanto, não mais estar em posição de impedimento (ver figura 1, direita).
[0019] No presente, considerar apenas a ordem temporal dos eventos gerados participando automaticamente não é suficiente para tomar a decisão de impedimento. Além do mais, eles têm que ser classificados. Não somente o atraso de tempo de computação ou de propagação de rede é relevante, mas também variações causais em tempo real que têm que ser consideradas. O carimbo temporal do evento de passe detectado tem que ser reiniciado no passado, isto é, o momento sendo que a bola experimenta um pico de aceleração.
[0020] Devido à importância da ordem temporal de eventos para acompanhamento correto de decisões ou eventos, é desejável assegurar uma ordem temporal original de eventos a ser processados por um detector de eventos.
[0021] As modalidades da presente invenção podem ser baseadas na descoberta de que uma recuperação de uma ordem temporal original de eventos alcançando um detector de eventos através de caminhos de rede diferentes e, portanto, experimentando atrasos de processamento e/ou propagação diferentes, pode ser obtida atrasando os eventos apropriadamente antes de encaminhar ou retransmitir os mesmos para um detector de eventos subsequente. O tempo sendo que um evento é retransmitido para o detector de eventos subsequente pode ser baseado no carimbo temporal original do respectivo evento e nos atrasos de processamento e/ou propagação de todos os eventos de saída requeridos pelo detector de eventos subsequente a fim de determinar seu evento de saída.
[0022] Para este fim, as modalidades da presente invenção proporcionam um aparelho para sincronizar um primeiro evento com um segundo evento. O primeiro evento tem associado ao mesmo um primeiro valor de cronometragem de evento baseado em um sinal de relógio comum, enquanto o segundo evento tem associado ao mesmo um segundo valor de cronometragem de evento baseado no sinal de relógio comum. O primeiro e o segundo evento experimentam atrasos diferentes, respectivamente, enquanto percorrendo através de caminhos diferentes de um sistema de computação distribuído. Pelo menos um evento de saída deve ser determinado baseado no primeiro e no segundo eventos por um detector de eventos. De acordo com as modalidades, o aparelho para sincronização compreende um compensador de atraso associado ao detector de eventos, sendo que o compensador de atraso compreende uma entrada para receber o primeiro e o segundo evento e uma saída para encaminhar versões retransmitidas do primeiro e do segundo eventos recebidos ao detector de eventos associado. O compensador de atraso é operável para retransmitir ou encaminhar o primeiro e o segundo evento ao detector de eventos associado baseado nos atrasos experimentados e baseado no primeiro e segundo valores de cronometragem de evento associados, que também podem ser referidos como campos de data de eventos refletindo o tempo de ocorrência de eventos original, respectivamente.
[0023] O aparelho para sincronização, que também pode ser referido como aparelho de sincronização, pode ser implementado em ou dentro de um nó do sistema de computação distribuído, que pode ser uma rede de computador distribuída bem como um processador de múltiplos núcleos, por exemplo. No caso de uma rede de computador, um nó, isto é, nó de rede, pode ser um computador ou uma unidade de processamento (por exemplo, CPU) do mesmo comunicando-se com outros nós através da Ethernet, por exemplo. Além disso, o aparelho de sincronização é associado ao detector de eventos, que preferivelmente pode ser executado ou implementado no mesmo nó de hardware. No entanto, o aparelho de sincronização também pode ser implementado como um programador para encaminhar eventos de entrada ao detector de eventos associado na ordem correta. Todos os nós de sistema ou de rede e/ou detectores de eventos que são executados nos nós do sistema de computação distribuído têm uma base de tempo comum que pode ser derivada a partir do sinal de relógio comum. Os tempos de ocorrência ou de detecção de eventos, isto é, valores de cronometragem de evento ou campos de data correspondentes, são derivados a partir do sinal de relógio comum, que é válido para todos os nós do sistema de computação distribuído.
[0024] Um evento pode ser um evento primitivo, que é baseado somente em ou derivado de dados de sensores (brutos), ou um evento compósito, que é novamente baseado em eventos primitivos. Deste modo, os dados de sensores podem descender de uma rede de sensores acoplada ao sistema distribuído, sendo que a rede de sensores pode ser em particular uma rede ou sistema de rastreamento de localização sem fio, de acordo com algumas modalidades. Neste caso, os dados de sensores podem conter dados cinemáticos, os dados cinemáticos compreendendo amostras de dados de localização geográficos, amostras de dados de velocidade e/ou amostras de dados de aceleração, sendo que as amostras de dados individuais correspondem a intervalos de tempo de amostras pré-definidos, respectivamente. Portanto, de acordo com algumas modalidades, o primeiro e o segundo evento podem ser baseados em fluxos de dados de sensores paralelos descendendo de um sistema de localização geográfico. Além disso, o primeiro e o segundo evento podem ter ocorrido originalmente ou foram detectados em nós de computação diferentes do sistema de computação distribuído, de modo que eles têm que percorrer ao longo de caminhos de sistema diferentes a fim de alcançar o nó de compensador de atraso, que é o nó de computação no qual o compensador de atraso está em execução ou implementado.
[0025] De acordo com algumas modalidades, o compensador de atraso pode compreender uma memória de armazenamento temporário em cache e atrasar pelo menos um do primeiro e do segundo eventos antes de retransmitir ou encaminhar os mesmos a seu detector de eventos associado para mais processamento. No caso do primeiro e do segundo eventos chegarem à entrada do compensador de atraso em uma ordem de recepção temporal que não corresponde a uma ordem de ocorrência ou detecção temporal original do primeiro e do segundo eventos, que pode ser derivada de seu carimbo temporal de eventos original associado, o compensador de atraso é operável para retransmitir tanto o primeiro como o segundo eventos ao detector de eventos associado de modo que uma ordem temporal do primeiro e segundo eventos retransmitidos corresponda à sua ordem de ocorrência temporal original. Deste modo, a ordem de ocorrência temporal original refere-se à ordem sendo que o primeiro e o segundo evento ocorreram originalmente ou foram detectados antes de alcançarem o compensador de atraso do aparelho de sincronização.
[0026] Para restaurar ou recuperar a ordem temporal original do primeiro e do segundo eventos, que podem ter chegado foram de ordem na entrada do compensador de atraso, o compensador de atraso pode ser operável para retransmitir o primeiro e o segundo evento, respectivamente, de modo que uma diferença de tempo relativa entre as versões retransmitidas do primeiro e segundo eventos recebidos corresponda a uma diferença de tempo relativa original entre o primeiro e o segundo evento. Isto pode ser obtido determinando instâncias de tempo de saída para retransmitir ou encaminhar o primeiro e o segundo evento ao detector de eventos associado baseado no primeiro e no segundo valores de cronometragem de eventos originais, isto é, baseado no primeiro e no segundo campos de data de eventos originais, e um valor de atraso comum pelo qual todos os eventos para um detector de eventos subsequente associado são atrasados.
[0027] A fim de garantir um valor de atraso comum mínimo requerido, isto é, possibilitar uma retransmissão possivelmente rápida dos dois eventos (pelo menos), o compensador de atraso pode ser operável para determinar um tempo de saída para retransmitir o primeiro e o segundo evento ao detector de eventos associado baseado no valor de cronometragem de evento do primeiro e do segundo eventos e baseado em um atraso mínimo do primeiro e do segundo eventos. Deste modo, um atraso de um evento pode ser devido a várias razões. Por exemplo, um atraso de eventos dentro do sistema de computação distribuído pode ser devido a condições de tremulação diferentes em caminhos de rede diferentes, ou devido a durações de processamento diferentes e/ou latências de rede diferentes. Em outras palavras, uma ordem de recepção do primeiro e do segundo eventos na entrada do compensador de atraso pode ser diferente de uma ordem de ocorrência original do primeiro e do segundo eventos devido a condições de tremulação diferentes,durações de processamento diferentes e/ou latências de rede diferentes.
[0028] De acordo com algumas modalidades da presente invenção, o compensador de atraso pode ser operável para medir ou determinar os atrasos de eventos do primeiro e do segundo eventos, respectivamente, baseado em um tempo de recepção do primeiro e do segundo eventos no compensador de atraso e baseado em seus respectivos valores de cronometragem de eventos associados refletindo as ocorrências de evento. Quando indicando um atraso de propagação ou de sinalização de um evento ei (i=1, 2,...) a partir de seu tempo de ocorrência ou detecção tevento, ei (i=1, 2, ...) para a entrada do compensador de atraso por Δ(-), o compensador de atraso pode, de acordo com algumas modalidades, ser operável para determinar as instâncias de tempo de saída tfora, ei (i=1, 2, ...) para retransmitir o primeiro e o segundo evento para o detector de eventos subsequente emem que max(-) indica o operador máximo. Quer dizer, o compensador de atraso pode ser operável para determinar um valor de atraso máximo tomado a partir do conjunto de atrasos de eventos associados com o primeiro e o segundo evento. No caso sendo que existem mais de dois eventos a ser retransmitidos pelas modalidades do compensador de atraso, então, naturalmente, o compensador de atraso pode determinar o valor de atraso comum tomando o valor de atraso máximo a partir do conjunto de atrasos de eventos associados ao mais do que dois eventos.
[0029] Em um sistema de computação distribuído dinâmico com troca de situação de carga de sistema, troca de capacidades de processamento em nós individuais, e possivelmente dinamicamente troca de caminhos de rede, os atrasos de propagação ou de processamento do primeiro e do segundo eventos alcançando o compensador de atraso também trocarão ao longo do tempo em vez de serem estáticos. As modalidades da presente invenção podem ser adaptadas para explicar isto. O compensador de atraso, portanto, pode ser adaptado ou operável para determinar um atraso de eventos Δ(e_j) de um evento j baseado em atrasos de eventos atuais e em uma pluralidade de atrasos de eventos medidos ou determinados anteriormente. Deste modo, os atrasos de eventos mais recentes podem ser ponderados mais do que seus atrasos de eventos precedentes. Em uma modalidade específica, o compensador de atraso pode ser adaptado para determinar o atraso de eventos Δ(ej) de evento j baseado emem que k indica um conjunto de atrasos de eventos k já determinados, Δej(i) indica o io atraso de eventos e determinado, sendo que i=l corresponde ao último atraso determinado, o(ej) indica o desvio padrão dos últimos eventos determinados Δ( ej), e sendo que θ indica um fator de segurança. Em algumas modalidades o fator θ também pode ser fixado em zero para uma computação mais fácil e menos complexa do atraso de eventos Δ(ej) do evento j. Os somatórios de Equação (2) são ponderados de acordo com uma fileira geométrica. O fator ^ serve como um fator de normalização, uma vez que a fileira geométrica converge em direção a 2 para "k" suficientemente grande.O termo θ-o(ej) pode servir como um armazenamento temporário de segurança, tendo em conta o desvio padrão dos últimos valores de medição. Com, por exemplo, θ=3, ele pode servir para 99,975% de segurança, por exemplo. Deste modo, 99,975% de segurança significa que um atraso computado ou previsto de acordo com a equação (2) não é menor do que um atraso de rede atual ou real correspondente com uma probabilidade de 99,975%. Um armazenamento temporário de segurança θ-o(ej) pode ser adaptada a uma estabilidade da rede com respeito a variações de atraso, por exemplo.
[0030] Um aparelho para sincronização e, portanto, o compensador de atraso podem ser preferivelmente implementados no mesmo nó (por exemplo, nó de rede, nó de processador, etc.) do sistema de computação distribuído como o detector de eventos associado a fim de não introduzir mais atrasos de sinal diferentes e imprevisíveis para o primeiro e segundo eventos retransmitidos ou encaminhados. Deste modo, o compensador de atraso e/ou o detector de eventos associado pode ser implementado em hardware, por exemplo, na forma de ASICs (Circuito Integrado Especifico da Aplicativo) ou em software, por exemplo, por meio de uma instância de um programa de computador que é executado no nó de computação como um processo. Um processo compreende código de programa e sua atividade atual. Dependendo do Sistema Operacional (OS), um processo pode ser composto de múltiplos segmentos de execução que executam instruções simultaneamente. Por exemplo, o compensador de atraso pode ser implementado como um componente de software de middleware conectando o detector de eventos associado aos eventos, que são distribuídos entre nós de rede diferentes do sistema de rede ou distribuído.
[0031] O compensador de atraso recebe sinais de evento destinados ao detector de eventos. Os eventos recebidos podem ser liberados para o compensador de atraso fora de sua ordem temporal original porque os eventos que percorrem em caminhos diferentes através do sistema de computação distribuído podem experimentar atrasos diferentes. Por exemplo, embora um primeiro evento tenha originalmente ocorrido antes de um segundo evento, o primeiro evento pode alcançar o compensador de atraso mais tarde do que o segundo evento devido a um atraso de propagação maior, por exemplo. Como descrito acima, o compensador de atraso pode determinar os atrasos dos eventos baseado em seus campos de data de ocorrência e em seu tempo de recepção no compensador de atraso. Baseado nos atrasos de todos os eventos de interesse um valor de atraso máximo pode ser determinado. A fim de recuperar a ordem temporal original dos eventos e, ao mesmo tempo, introduzir somente o atraso comum menor possível, cada evento de interesse é encaminhado ao detector de eventos associado em uma instância de tempo de saída que é determinada baseada no campo de dados de ocorrência do evento mais o valor de atraso máximo de todos os eventos de interesse. Tendo em conta um fluxo de eventos para o detector de eventos, o fluxo de evento compreendendo o primeiro e o segundo evento, o compensador de atraso pode ser disposto a montante (isto é, precedendo) ao detector de eventos associado a fim de ser capaz de armazenar em cache o evento de interesse para seu detector de eventos associado. Correspondentemente, o detector de eventos pode ser disposto a jusante (isto é, sucedendo) a seu compensador de atraso associado.
[0032] De acordo com outro aspecto da presente invenção é proporcionado um sistema de computação distribuído para determinar eventos baseado em pelo menos um fluxo de dados de sensores (bruto). O sistema de computação distribuído proporcionado, que pode ser uma rede de computador, compreende uma pluralidade de nós distribuídos, sendo que cada um da pluralidade de nós distribuídos compreende um detector de eventos e um aparelho de sincronização associado de acordo com as modalidades da presente invenção.
[0033] Em algumas modalidades, o sistema de computação distribuído pode ser acoplado a um sistema de localização para localizar e/ou rastrear objetos dentro de uma área geográfica pré- definida, sendo que o sistema de localização provê o pelo menos um fluxo de dados de sensores ao sistema de computação distribuído, o fluxo de dados de sensores transportando dados que são indicativos de posições geográficas dos objetos localizados. O sistema de localização pode ser baseado em uma rede de sensores sem fio, que já foi descrita na parte introdutória deste relatório.
[0034] Para detectar eventos, tais como eventos primitivos e/ou compósitos, vários detectores de eventos estão funcionando em nós diferentes do sistema de computação distribuído. Tais detectores de eventos podem causar carga diferente em seus respectivos nós e/ou no sistema de computação distribuído total, dependendo do estado do sistema e/ou dependendo da complexidade dos detectores de eventos ou de dados de sensores a ser analisados. No entanto, em um cenário de premissas ou condições de troca de uma configuração de sistema original, uma distribuição original dos detectores de eventos sobre os vários nós de rede pode vir a ser subótima com respeito ao equilíbrio de carga ou pode ainda levar a uma falha do sistema de computação distribuído.
[0035] Tais desequilíbrios de carga indesejáveis podem, por exemplo, ser detectados pelas modalidades do aparelho de sincronização ou é o compensador de atraso. Se pelo menos um atraso de eventos alcança um atraso proibitivamente alto, isto pode ser um indicador para o fato de que um processo de detectores de eventos de origem, a partir do qual os eventos correspondentes alcançam o compensador de atraso, é sobrecarregado ou experimenta alguns outros problemas. Em tal cenário pode ser desejável transferir ou relocalizar o processo de detectores de eventos de origem maliciosos para algum outro recurso de hardware do sistema de computação distribuído. Por exemplo, o processo de detectores de eventos maliciosos pode ser transferido a partir de seu nó atual para outro, nó separado e diferente fisicamente do sistema de computação distribuído, que tem mais recursos de hardware disponíveis.
[0036] Para este fim, de acordo com outro aspecto da presente invenção, também é proporcionado um aparelho para transferir um primeiro processo de detectores de evento de um primeiro nó de um sistema de computação distribuído para um segundo processo de detectores de eventos de um segundo nó do sistema de computação distribuído, o segundo nó sendo diferente do primeiro nó. O aparelho para transferência compreende meio para copiar um conteúdo de processo do primeiro processo de detectores de eventos para o segundo processo de detectores de eventos. Além disso, o aparelho compreende meio para coordenar eventos de entrada do primeiro processo de detectores de eventos de modo que os eventos de saída do primeiro processo de detectores de eventos são processados em paralelo em ambos o primeiro e o segundo processos de detectores de eventos. Ainda são proporcionados meio para verificar se os eventos de entrada do primeiro processo de detectores de eventos, que são processados em paralelo em ambos o primeiro e o segundo processo de detectores de eventos, levam a eventos de saída idênticos em ambos o primeiro e o segundo processos de detectores de eventos.
[0037] De acordo com algumas modalidades, o meio para verificação pode ser operável para desativar o primeiro processo de detectores de eventos no caso dos eventos de saída tanto no primeiro como no segundo processos de detectores de eventos serem idênticos, ou, ativar o segundo processo de detectores de eventos no caso dos eventos de saída tanto no primeiro como no segundo processos de detectores de eventos não serem idênticos.
[0038] De acordo com outro aspecto da presente invenção, o aparelho para transferir o primeiro processo de detectores de eventos pode ser integrado em um sistema de computação distribuído, preferivelmente, mas não exclusivamente, em combinação com o aparelho para sincronizar primeiro e segundo eventos. Tal sistema de computação distribuído pode, portanto, compreender uma pluralidade de nós distribuídos, sendo que cada um da pluralidade de nós distribuídos compreende um aparelho para sincronização de acordo com as modalidades da presente invenção, e um aparelho para transferir um primeiro processo de detectores de eventos de um primeiro nó do sistema de computação distribuído para um segundo processo de detectores de eventos de um segundo nó do sistema de computação distribuído, sendo que o aparelho para transferência compreende as características mencionadas acima.
[0039] O aparelho para sincronizar eventos e o aparelho para transferir processos de detectores de eventos podem, deste modo, cooperar de forma sinérgica no modo descrito. Quer dizer, o aparelho para sincronização pode detectar atraso e, portanto, anomalias de carga dentro do sistema de computação distribuído, embora o aparelho para transferência possa transferir processos de detectores de eventos a fim de equilibrar melhor a distribuição de detectores de eventos, levando a atrasos totais menores e a cargas mais baixas. A distribuição de detectores de eventos pode ser feita baseada em uma variedade de critérios de distribuição de processos de detectores de eventos. De acordo com aspectos diferentes da presente invenção, os critérios de distribuição de processos de detectores de eventos podem levar a um de um atraso total mínimo de todos os eventos no sistema de computação distribuído, um número mínimo de subscrições de eventos seguros no sistema de computação distribuído, uma variação mínima da carga de um determinado nó do sistema de computação distribuído, ou uma carga do sistema de computação distribuído distribuída total mínima. Deste modo, um detector de eventos ou um programador de eventos associado pode subscrever a eventos que são requeridos pelo detector de eventos. Se certos eventos são absolutamente obrigatórios para o detector de eventos, ele pode "subscrever-se seguramente" a ditos eventos. Neste caso, os eventos sendo questão são transportados para o detector/programador de eventos através de conceitos de transmissão controlados por erro (por exemplo, Automatic Repeat reQuest (ARQ)).
[0040] Ainda outros aspectos da presente invenção também proporcionam um método para sincronizar um primeiro evento, tendo associado com o mesmo um primeiro valor de cronometragem de evento (original) baseado em um sinal de relógio comum, e um segundo evento, tendo associado ao mesmo um segundo valor de cronometragem de evento (original) baseado no sinal de relógio comum, sendo que o primeiro e o segundo evento experimentam atrasos diferentes enquanto percorrendo através de caminhos diferentes de um sistema de computação distribuído. O método compreende a etapa de retransmitir, em um compensador de atraso, o primeiro evento e o segundo evento a um detector de eventos associado, sendo que o primeiro e o segundo evento são retransmitidos ao detector de eventos baseado nos atrasos experimentados e baseado no primeiro e segundo valores de cronometragem de evento associados (originais). O método para sincronizar compreende ainda uma etapa de detectar, no detector de eventos associado ao compensador de atraso, pelo menos um evento de saída baseado no primeiro evento retransmitido e no segundo evento de entrada retransmitido.
[0041] Tais modalidades compreendem um circuito de controle digital instalado dentro de um aparelho para realizar o método para sincronizar o primeiro evento e o segundo evento. Tal circuito de controle digital, por exemplo, um processador de sinal digital (DSP), precisa ser programado em conformidade. Portanto, ainda outras modalidades proporcionam um programa de computador tendo um código de programa para realizar modalidades do método, quando o programa de computador é executado em um computador ou em um processador digital.
[0042] Um benefício das modalidades da presente invenção é que os eventos podem ser reconhecidos/detectados e encaminhados a detectores de eventos subsequentes somente com um atraso mínimo. As modalidades da presente invenção podem ser implementadas de modo que encaminhar os eventos com menos atraso não é facilmente possível sem o risco de detecção de eventos subsequente errada. Também, com as modalidades da presente invenção, os desenvolvedores de detectores de eventos não precisam ter qualquer conhecimento especial sobre atrasos de eventos particulares, uma vez que as modalidades do sistema distribuído podem medir e administrar os atrasos de eventos automaticamente.
[0043] Outro benefício pode ser visto na auto-organização de um sistema de computação distribuído de acordo com as modalidades da presente invenção. Tal sistema de computação distribuído pode reagir em condições de sistema de troca transferindo os processos de detectores de eventos entre nós de rede, de modo que o sistema distribuído ou rede é sempre capaz de realizar processamento de sinal de evento robusto e eficaz.
[0044] Algumas modalidades dos aparelhos e/ou métodos serão descritas a seguir a título de exemplo somente, e com referência às figuras anexas, sendo que
[0045] a figura 1 ilustra um cenário de detecção de evento de impedimento específico de futebol;
[0046] a figura 2 mostra esquematicamente um diagrama de bloco de aparelho para sincronizar um primeiro evento com um segundo evento, de acordo com uma modalidade da presente invenção;
[0047] a figura 3 ilustra esquematicamente uma modalidade da presente invenção, sendo que o aparelho para sincronizar o primeiro evento com o segundo evento é implementado como middleware entre uma rede distribuída e um software de detectores de eventos associado;
[0048] a figura 4 mostra uma tabela de cronometragem de quarto eventos A, B, C e D, que são requeridos por um detector de eventos;
[0049] a figura 5 ilustra esquematicamente uma programação de eventos de acordo com uma modalidade da presente invenção;
[0050] a figura 6 mostra esquematicamente um fluxograma de um método exemplar para sincronizar um primeiro evento com um segundo evento;
[0051] a figura 7 mostra uma modalidade de um sistema de computação distribuído para determinar eventos baseados em pelo menos um fluxo de dados de sensores, sendo que o sistema de computação distribuído compreende uma pluralidade de nós de computação distribuídos, sendo que cada um da pluralidade de nós de computação distribuídos compreende uma modalidade de aparelho para sincronizar eventos;
[0052] a figura 8 ilustra esquematicamente uma modalidade de um aparelho para transferir um primeiro processo de detectores de eventos de um primeiro nó de um sistema de computação distribuído para um segundo processo de detectores de eventos de um Segundo nó do sistema de computação distribuído; e
[0053] a figura 9 ilustra esquematicamente um fluxograma de uma modalidade de método para transferir um primeiro processo de detectores de eventos de um primeiro nó de um sistema de computação distribuído para um segundo processo de detectores de eventos de um segundo nó do sistema de computação distribuído.
[0054] Várias modalidades exemplares serão descritas mais completamente com referência aos desenhos anexos sendo que algumas modalidades exemplares são ilustradas. Nas figuras, as espessuras de camadas e/ou regiões podem ser exageradas para clareza;
[0055] Consequentemente, embora as modalidades exemplars sejam capazes de várias modificações e formas alternativas, as modalidades das mesmas são mostradas por meio de exemplo nas figuras e serão, portanto, descritas em detalhe. Deve ser entendido, no entanto, que não se pretende limitar as modalidades exemplares às formas particulares divulgadas, mas, ao contrário, as modalidades exemplares devem cobrir todas as modificações, equivalentes e alternativas que estão dentro do escopo da invenção. Números iguais referem-se a elementos iguais ou similares por toda a descrição das figuras.
[0056] Será entendido que quando um elemento é referido como estando "conectado" ou "acoplado" a outro elemento, ele pode estar conectado ou acoplado diretamente ao outro elemento ou elementos de intervenção podem estar presentes. Em contraste, quando um elemento é referido como estando "diretamente conectado" ou "diretamente acoplado" a outro elemento, não existe nenhum elemento de intervenção presente. Outras palavras usadas para descrever a relação entre elementos devem ser interpretadas em um aspecto semelhante (por exemplo, "entre" versus "diretamente entre", "adjacente" versus "diretamente adjacente", etc.).
[0057] A terminologia usada no presente documento é para o fim de descrever as modalidades particulares somente e não pretende ser limitante das modalidades exemplares. Como usado no presente documento, as formas singulares "uma", "um" e "o" são destinados a incluir formas plurais também, a menos que o contexto indique claramente ao contrário. Será entendido ainda que os termos "compreende", "compreendendo", "inclui" e/ou "incluindo", quando usados no presente documento, especificam a presença de características, números inteiros, etapas, operações, elementos e/ou componentes declarados, mas não excluem a presença ou a adição de uma ou mais características, números inteiros, etapas, operações, elementos, componentes e/ou grupos dos mesmos.
[0058] A menos que definido de outro modo, todos os termos (incluindo termos técnicos e científicos) usados no presente documento têm o mesmo significado como comumente entendido por um dos peritos na técnica à qual as modalidades exemplares pertencem. Será entendido ainda que os termos, por exemplo, os definidos em dicionários comumente usados, devem ser interpretados como tendo um significado que seja consistente com seu significado no contexto da técnica relevante e não será interpretado em um sentido idealizado ou excessivamente formal a menos que expressamente assim definido no presente documento.
[0059] A figura 2 ilustra esquematicamente uma modalidade de um aparelho 200 para sincronizar um primeiro evento 202 com um segundo evento 204.
[0060] O primeiro evento 202 tem associado ao menos um primeiro valor de cronometragem de evento original ou carimbo temporal baseado em um sinal de relógio comum. O segundo evento 204 também tem associado ao mesmo um segundo valor de cronometragem de evento original ou carimbo temporal baseado no sinal de relógio comum. O primeiro e segundo valores de cronometragem de evento originais representam um instante de tempo de ocorrência de evento original. O sinal de relógio comum produz um tempo de sistema total, que é válido para todos os nós distintos em um sistema de computação distribuído. Antes de alcançar o aparelho 200 para sincronizar os eventos, o primeiro e segundo eventos 202, 204 experimentam, cada um, atrasos diferentes enquanto percorrendo através de caminhos ou rotas diferentes do sistema de computação distribuído (não mostrados na figura 2). Baseado nos dois eventos 202, 204 pelo menos um evento de saída 206 pode ser determinado por um detector de eventos 208, que pode ser disposto subsequente (sucedendo) ou a jusante do aparelho 200 para sincronizar os eventos 202, 204.
[0061] O aparelho de sincronização 200, que também pode ser considerado como um programador de eventos para o detector de eventos 208 em algumas modalidades compreende um compensador de atraso 210, também referido como meio de compensação de atraso, que é associado ou relacionado ao detector de eventos subsequente 208. O compensador de atraso 210 tem entradas 212-1, 212-2 para receber o primeiro e o segundo evento 202, 204 a partir da rede distribuída. Além disso, o compensador de atraso tem saídas 214-1, 214-2 para retransmitir ou encaminhar versões retransmitidas do primeiro e segundo eventos 202, 204 recebidos para o detector de eventos associado 208 baseado nos atrasos experimentados dos eventos 202, 204 e baseado nos valores de cronometragem ou campos de data do primeiro e segundo eventos originais ligados aos dois eventos 202, 204.
[0062] Uma configuração exemplar de um sistema de computação distribuído 300 (na forma de uma rede), vários detectores de eventos 208, e uma modalidade de um aparelho 200 para sincronizar uma pluralidade de eventos são esquematicamente representados na figura 3.
[0063] A figura 3 ilustra esquematicamente uma rede distribuída 300 a partir da qual os eventos 302 e dados de sensores brutos 304 alcançam o aparelho de sincronização 200, que é exemplarmente indicado como "EventCore" na figura 3. O aparelho de sincronização 200 pode agir como um programador de eventos recebendo os eventos 302 e/ou os dados de sensores brutos 304 a partir da rede subjacente 300 por um lado, e encaminhando os mesmos para uma pluralidade de detectores de eventos 208 acoplados ao aparelho de sincronização 200 em certas instâncias de saída ou de tempo de retransmissão requeridos, por outro lado. O aparelho de sincronização 200 é adaptado para sincronizar eventos 302 e/ou dados de sensores 304 diferentes, que são requeridos pelos detectores de eventos subsequentes 208. Deste modo, o aparelho de sincronização 200 pode ser implementado em um modo distribuído, de modo que ele pode sincronizar individualmente eventos 302 e 304 requeridos por cada um dos detectores de eventos subsequentes 208. Quer dizer, o aparelho de núcleo de eventos 200 pode compreender uma pluralidade de compensadores de atraso 210 ou instâncias dos mesmos, sendo que cada um da pluralidade de compensadores de atraso 210 é associado a um da pluralidade de detectores de eventos subsequentes 208. Deste modo, uma instância de compensador de atraso 210 e um detector de eventos associado 208 podem ser preferivelmente implementados em um nó de rede comum. De acordo com algumas modalidades, o aparelho de sincronização 200 e suas instâncias de compensador de atraso 210 podem ser implementados como middleware entre a rede 300 e os detectores de eventos 208.
[0064] Um sinal de relógio comum 306 é proporcionado ao aparelho de sincronização 200 ou às diferentes instâncias do mesmo, deste modo possibilitando a sincronização temporal de todas as instâncias de compensador de atraso e/ou detector de eventos 210, 208 da arquitetura de sistema distribuída representada na figura 3. Portanto, cada compensador de atraso 210 tem acesso à mesma base de tempo comum. Em outras palavras, todas as instâncias de aparelho de sincronização (distribuído) ou de compensador de atraso 200, 210 podem recuperar o mesmo carimbo temporal do sistema em qualquer tempo determinado. Caso uma instância de compensador de atraso 210 receba um evento 302 ou 304, ela pode armazenar temporariamente dito evento para uma instância de detector de eventos subsequente 208 associado durante uma quantidade requerida de tempo, que corresponde a uma probabilidade suficientemente alta para que nenhum outro evento requerido pela instância de detector de eventos 208 e o transporte de um carimbo temporal mais posterior será recebido.
[0065] Para mais detalhes deixe que os requerentes olhem para o exemplo a seguir: um detector de eventos 208 arbitrário requer os eventos de entrada A, B, C e D a fim de ser capaz de determinar ou detectar corretamente um evento de saída E compósito baseado em ditos eventos de entrada. Uma vez que cada instância de rede é sincronizada pelo sinal de relógio comum total 306, é possível associar um tempo de detecção para cada evento (ver figura 4, coluna central). Deste modo, um instante de tempo de detecção de evento é necessariamente mais tarde do que o instante de tempo de ocorrência atual de evento (ver figura 4, coluna esquerda) devido à velocidade de processamento limitada.
[0066] Neste exemplo, o tempo de ocorrência do evento A tevento,A é 10, no entanto, somente é detectado por um detector de eventos no tempo de detecção tdetecção,A=14. O detector de eventos subsequente para detectar o evento compósito E recebe o evento A requerido no tempo de recepção tED,A=16. Similarmente, o evento B acontece atualmente em tevento,B=12 e ser detectado por algum detector de eventos em tdetecção,B=13. O detector de eventos compósitos subsequente para detectar o evento compósito E recupera o evento B na instância de tempo tED,A=15. Quer dizer, o detector de eventos compósito para o evento E recebe o evento B antes de receber o evento A, que tem, no entanto, atualmente acontecido mais cedo do que o evento B. Devido aos atrasos de processamento e de propagação de rede também o evento C, que atualmente aparece mais tarde do que o evento A, é recebido mais cedo do que o detector de eventos compósitos subsequente.
[0067] A partir deste exemplo, sem usar as modalidades da presente invenção, deve ser visto que o detector de eventos compósitos subsequente para o evento E recebe os eventos A, B, C e D requeridos em uma ordem temporal (ver figura 4, coluna mais à direita), que é diferente a partir da ordem causal original ou temporal (ver figura 4, coluna mais à esquerda) de ditos evento. Portanto, a tarefa das modalidades da presente invenção é classificar os eventos A, B, C e D requeridos apropriadamente a fim de recuperar uma ordem temporal que corresponde à ordem temporal original antes de encaminhar os eventos A, B, C e D requeridos ao detector de eventos compósitos subsequente. Para esse fim, uma instância do aparelho de sincronização 200 pode ser implementada em cada nó de rede junto com um detector de eventos 208 associado.
[0068] De acordo com as modalidades, um compensador de atraso 210 do aparelho de sincronização 200 (possivelmente distribuído) pode ser operável para retransmitir a pluralidade de eventos requeridos a um detector de eventos associado de modo que uma ordem temporal das versões retransmitidas dos eventos A, B,C e D requeridos, que foram recebidos no compensador de atraso 210, corresponde a uma ordem temporal original da pluralidade de eventos A, B, C e D requeridos. Para esse fim, o compensador de atraso 210 pode retransmitir cada um da pluralidade de eventos A, B, C e D de modo que uma diferença de tempo relativa entre eventos retransmitidos individuais corresponde a uma diferença de tempo relativa original entre os eventos A, B, C e D individuais,respectivamente. Para recuperar a ordem de eventos temporal original, o compensador de atraso 210 pode determinar instâncias de tempo de saída para cada um da pluralidade de eventos A, B, C e D. Deste modo, um evento é retransmitido ao detector de evento 210 associado e sua instância de tempo de saída correspondente. As instâncias de tempo de saída de eventos podem ser determinadas baseadas em um valor de atraso comum e as instâncias de tempo de ocorrência original dos eventos A, B, C e D.
[0069] Tomando o exemplo acima, as instâncias do aparelho de sincronização 200 e, portanto, as instâncias do compensador de atraso 210 compreendidas no mesmo, podem medir ou determinar os seguintes atrasos de evento baseadas em seus respectivos tempos de recepção e seus respectivos valores de cronometragem de evento originais associados refletindo sua ocorrência atual: Evento A: 16 - 10 = 6 Evento B: 15 - 12 = 3 Evento C: 15 - 14 = 1 Evento D: 18 - 15 = 3
[0070] Obviamente, a recepção de evento A no compensador de atraso 210 toma substancialmente mais tempo comparado aos eventos B, C e D requeridos pelo detector de eventos compósito subsequente. Isto pode, por exemplo, ser devido à detecção de evento A em um nó de computação mais remoto levando a um tempo de propagação longo através da rede 300, ou devido ao evento A ser detectado por um algoritmo mais complexo computacional com tempo de computação mais longo. No caso exemplar, o atraso longo de evento A é provavelmente devido à detecção de eventos tomando quatro ciclos de relógio ou intervalos de tempo.
[0071] Deixe-nos assumir que medimos ou determinamos todos os atrasos de todos os eventos de interesse suficientemente frequentemente e estamos na posição a seguir: na instância de tempo tDC,C=1000 o evento C alcança o aparelho 200 para sincronização compreendendo o compensador de atraso 210. O evento C transporta ao longo um valor de cronometragem de evento tevento,C=999, que indica que o evento C ocorrei no instante de tempo 000. O compensador de atraso 210 olha para os atrasos de todos os eventos de interesse, isto é, todos os eventos A, B, C e D requeridos pelo detector de eventos compósitos subsequente 208, e determina quanto o evento C tem que ser atrasado até ele poder ser encaminhado ao detector de eventos subsequente associado 208. Notar que o compensador de atraso 210 somente sabe que os eventos A, B, C e D são requeridos pelo detector de eventos subsequente associado 208, mas não sendo que ordem e para qual fim.
[0072] As instâncias de tempo de saída para retransmitir o evento C ao detector de eventos subsequente associado 208 pode ser determinado de acordo com:
[0073] Na equação (3), A, B, C e D indicam o primeiro ao quarto evento, respectivamente, Δ(-) indica um atraso de um evento a partir de sua ocorrência para a entrada do compensador de atraso 210 associado ao detector de eventos subsequente associado 208, max(-) indica o operador máximo, e tfora,C indica a instância de tempo de saída do evento C atrasado.
[0074] Em geral, o compensador de atraso 210 pode ser operável para determinar uma instância de tempo de saída para retransmitir o evento ej a partir de um conjunto de eventos requeridos K baseado em
[0075] Em um sistema de computação distribuído dinâmico com uma troca de situação de carga de rede 300, possivelmente trocando as capacidades de processamento de nós individuais, e/ou possivelmente trocando dinamicamente os caminhos de rede, os atrasos de propagação ou de processamento dos eventos que alcançam uma instância de compensador de atraso 210 são prováveis de trocar ao longo do tempo em vez de serem estáticos. O compensador de atraso 210 pode explicar isto determinando um valor de atraso de eventos Δ(e_j) de um evento e a partir de um conjunto de eventos K baseado em atrasos de eventos medidos ou determinados atuais e uma pluralidade de atrasos de eventos medidos ou determinados para dito evento ej. Deste modo, atrasos de eventos mais recentes podem ser ponderados mais do que seus atrasos de eventos precedentes. Em uma modalidade específica o compensador de atraso pode ser adaptado para determinar o atraso de eventos Δ(ej) do evento ej baseado em variantes da equação (2) mencionada acima.
[0076] Voltando ao exemplo simples acima, o evento C pode ser encaminhado ao detector de eventos subsequente associado 208 na instância de tempo de saída tfora,C = 1005. Esta é exatamente a instância de tempo sendo que os requerentes podem dizer que os eventos A, B, C e D não acontecem causalmente antes do evento C. No exemplo dos requerentes o detector de eventos subsequente associado 208 encaminhou os seguintes eventos às instâncias de atraso ou de tempo de saída indicadas na seguinte tabela:
[0077] Como se pode ver a partir da tabela acima, os eventos A,8. C e D foram encaminhados pelo compensador de atraso 210 ao detector de eventos subsequente associado 208 corretamente ordenados de acordo com sua ordem temporal original de ocorrência.
[0078] O princípio do trabalho de um aparelho de sincronização 200 compreendendo um compensador de atraso 210 é representado esquematicamente pela figura 5.
[0079] Um evento de entrada, indicado pelo número de referência 502, compreende um valor de cronometragem de evento original tevento e um IDentificador (ID de evento). Além disso, um valor de tempo de saída tfora está associado com o evento 502. O tempo de saída ou de atraso tfora pode ser determinado baseado no tempo de evento original tevento e um valor de atraso comum δ, que é 79 no exemplo representado na figura 5. Computações possíveis do valor de atraso comum foram descritas acima. O evento 502 a ser retransmitido para um detector de eventos 208 subsequente ou a jusante pode então ser inserido em um armazenamento temporário 504 de retransmissão ou programação do aparelho de sincronização 200. A inserção de eventos de entrada no armazenamento temporário 504 pode ser baseada em suas instâncias de tempo de saída determinadas tfora, sendo que os eventos devem ser encaminhados ao detector de eventos subsequente associado 208. Para o evento exemplar 502, que apenas chegou à entrada do compensador de atraso 210, a instância de tempo de saída tfora foram computadas em 367. Por essa razão ele é inserido no meio de dois eventos de armazenamento temporário que devem ser programados (isto é, encaminhados) nos tempos de saída 364 e 369, respectivamente. Após os eventos serem atrasados de acordo com o valor de atraso comum atual δ, que é 79 no exemplo representado, os eventos no armazenamento temporário de eventos 504 são programados ou notificados, isto é, encaminhados, ao detector de eventos associado subsequente 208. Após um evento ter sido encaminhado ao detector de eventos associado 208, o evento pode ser detectado antes do próximo evento no armazenamento temporário 504 ser programado.
[0080] A figura 6 ilustra esquematicamente um fluxograma de um método 600 para sincronizar o primeiro evento 202 e o segundo evento 204, de acordo com uma modalidade da presente invenção.
[0081] Como mencionado antes, os dois eventos 202, 204 têm associado aos mesmos campos de data de primeiro e segundo eventos tevento, e1, tevento,e2 baseado no sinal de relógio comum 306, respectivamente. Além disso, o primeiro e o segundo evento experimentam atrasos diferentes Δ( el), Δ( e2) enquanto percorrendo através de rotas diferentes do sistema de computação distribuído 300. Para sincronizar os eventos 202, 204 o método de sincronização 600 compreende uma etapa 602 de retransmitir, em um compensador de atraso 210, o primeiro e o segundo evento 202, 204 do detector de eventos associado 208, sendo que o primeiro e o segundo evento 202, 204 são retransmitidos ao detector de eventos 208 baseados nos atrasos experimentados Δ(e1), Δ(e2) e baseados nos campos de data do primeiro e do segundo eventos originais tevento, e1, tevento, e2. Além disso, o método 600 compreende uma etapa 604 de detectar no detector de eventos 208 associado ao compensador de atraso 210, pelo menos um evento de saída 206 baseado no primeiro e segundo eventos de saída atrasados 202', 204'. O primeiro e o segundo evento de entrada 202', 204' retransmitidos também podem ser indicados como versões retransmitidas do primeiro e segundo eventos de saída retransmitidos. Tipicamente, estas versões retransmitidas são idênticas ao primeiro e segundo eventos 202, 204, respectivamente. No entanto, eles podem ser retransmitidos temporariamente pelo aparelho de sincronização 200 ou o compensador de atraso 210 dos mesmos.
[0082] O conceito descrito somente trabalha seguramente se atrasos de eventos determinados ou medidos estiverem disponíveis. Logo após iniciar o sistema os atrasos de eventos são desconhecidos. No entanto, é possível prover atrasos de eventos iniciais ao compensador de atraso 210 após um início de sistema. Tais atrasos de eventos iniciais podem ser baseados em experiências de casos piores para os respectivos eventos. Alternativamente, o aparelho de sincronização pode armazenar seu conhecimento em atrasos de eventos antes de desativar, de modo que cada instância de aparelho de sincronização 200 pode recuperar a configuração atual de rede uma vez que ele tem informação sobre quais eventos são executados em quais nós do sistema de computação distribuído.
[0083] Os valores de atraso medidos podem ter sido medidos em situações de rede e/ou de carga de CPU diferentes. Isto pode ser explicado pela normalização apropriada dos respectivos valores de atraso medidos. Por exemplo, o fator de normalização refletindo uma situação de carga atual pode ser aplicado ao valor de atraso medido sob dita situação de carga atual. Por exemplo, um fator de normalização correspondendo a uma situação de carga normal pode ser um. Se um valor de atraso é determinado em uma situação de carga alta isto pode ser refletido por um fator de normalização maior do que 1. Em contraste, se um valor de atraso é medido sob condições de carga baixas isto pode ser refletido pelo fator de normalização menor do que 1, O peso atual aplicado ao valor de atraso respectivo, por exemplo, n equação (2), pode então depender de uma relação entre o fator de normalização do atraso medido e um fator de normalização atual referente à situação de carga atual. Se uma situação de carga atual é menor do que uma situação de carga, onde certo valor de atraso foi determinado, tal abordagem pode levar a um valor de atraso normalizado que é menor do que o valor de atraso medido atualmente a fim de explicar a situação de carga menor ou mais baixa.
[0084] A figura 7 ilustra esquematicamente outra modalidade da presente invenção.
[0085] A figura 7 mostra esquematicamente um sistema de computação distribuído 700 para determinar eventos baseado em pelo menos um fluxo de sensores ou de dados 702-1, 702-2. O sistema de computação distribuído 700, que pode ser uma rede de computador distribuída ou um processador de múltiplos núcleos, por exemplo, compreende uma pluralidade de nós de computação distribuídos 704, sendo que cada um da pluralidade de nós de computação distribuídos 704 compreende um aparelho 200 para sincronização de acordo com as modalidades da presente invenção.
[0086] De acordo com uma modalidade da presente invenção cada um dos nós de computação 704 pode, portanto, compreender um aparelho de sincronização 200 junto com um compensador de atraso 210. Também, cada um dos nós 700 compreendendo um aparelho de sincronização 200 também compreende um detector de eventos associados 208. De acordo com uma modalidade exemplar os nós de computação 704 podem ser processadores ou computadores de sinal distribuídos. Em algumas outras modalidades os nós 704 também podem ser um curso diferente de uma unidade de processamento de múltiplos núcleos sendo implementados no mesmo dispositivo de computador e, portanto, estando localizados essencialmente na mesma posição geográfica.
[0087] As modalidades da presente invenção são em particular relacionadas à detecção de eventos baseada na descendência de dados de sensores brutos a partir de um sistema de rastreamento sem fio, que pode ser usado para rastrear jogadores e todas as posições de um evento esportivo com bola, tais como, por exemplo, futebol, futebol americano, rugby, tênis, etc. Portanto, o sistema de computação distribuído 700 pode ser acoplado a tal sistema de rastreamento sem fio ou sistema de localização para localizar e/ou rastrear objetos e todas as pessoas com em uma área geográfica pré- definida, que pode ser um campo de futebol, por exemplo. O sistema de localização introduz o pelo menos um fluxo de dados de sensores 702-1, 702-2 no sistema de computação distribuído 700, sendo que o fluxo de dados de sensores transporta dados sendo indicativos de posições geográficas dos objetos localizados. Além disso, o fluxo de dados de sensores também pode transportar outros dados cinemáticos dos objetos localizados.
[0088] Para detectar eventos, tais como eventos primitivos e/ou compósitos, vários detectores de eventos 208 são executados em nós 704 diferentes do sistema de computação distribuído 700. Tais detectores de eventos ou instâncias de detectores de eventos 208 podem causar carga diferente em seus respectivos nós 704 e/ou no sistema de computação distribuído 700 total, dependendo de uma condição atual do sistema 700 ou dependendo da complexidade dos detector de eventos 208 e/ou os fluxos de dados de sensores 702-1, 702-2 a ser analisados. Portanto, em um cenário de premissas ou condições de troca de uma configuração de sistema original, isto é, uma distribuição dos detectores de eventos 208 sobre os vários nós de rede 704, uma configuração de sistema atual pode voltar a ser subótima ou pode ainda levar a um rompimento do sistema de computação distribuído 700.
[0089] Tais desequilíbrios de carga indesejáveis, que consequentemente também levam a atrasos de eventos desequilibrados, podem ser detectados pelas modalidades do aparelho de sincronização 200 ou, em particular, seu compensador de atraso ou instância de compensador de atraso 210. Se pelo menos um atraso de evento Δ(-) medido ou determinado alcança um valor proibitivamente alto isto pode indicar que um processo de detector de eventos liberando o evento correspondente e estando disposto a montante do compensador de atraso 210 pode ser sobrecarregado ou pode experimentar alguns outros problemas. Em tal cenário pode ser desejável transferir ou relocalizar o processo de detector de eventos de origem maliciosa para algum ouro recurso de hardware ou nó 704 do sistema de computação distribuído 700. Por exemplo, o processo de detector de eventos malicioso pode ser transferido de seu nó atual para outro, nó fisicamente separado e diferente do sistema de computação distribuído 700. Para este fim, de acordo com outro aspecto da presente invenção, também é provido um aparelho 800 para transferir um processo de detector de eventos entre nós 704 diferentes. As modalidades do aparelho 800 para transferência podem ser combinadas com as modalidades do aparelho de sincronização 200 e/ou do sistema de computação distribuído 700.
[0090] A figura 8 ilustra esquematicamente um diagrama de bloco esquemático de uma modalidade de um aparelho 800 para transferência, que também pode ser referido como aparelho de transferência.
[0091] O aparelho de transferência 800 serve para transferir um primeiro processo de detector de eventos de um primeiro nó 704-1 do sistema de computação distribuído 700 para um segundo processo de detector de eventos de um segundo nó 704-2 do sistema de computação distribuído 700. Deste modo, o segundo nó 704-2 é diferente do primeiro nó 704-1, tanto com respeito à sua localização geografia ou com respeito a uma unidade de processamento diferente de um processador de múltiplos núcleos, por exemplo. O aparelho de transferência 800 compreende meio 802 para copiar um conteúdo de processo do primeiro processo de detector de eventos para o segundo processo de detector de eventos. Além disso, o aparelho de transferência 800 compreende meio 804 para coordenar eventos de entrada do primeiro processo de detector de eventos de modo que os eventos de entrada do primeiro processo de detector de eventos são processados em paralelo tanto no primeiro como no segundo processos de detector de eventos. Além do mais, o aparelho 800 compreende o meio 806 para verificar se os eventos de entrada do primeiro processo de detector de eventos, que são processados em paralelo tanto no primeiro como no segundo processos de detector de eventos, levam a eventos de saída idênticos tanto ao primeiro como ao segundo processos de detector de eventos.
[0092] Um processo geralmente deve ser entendido como uma instância de um programa de computador que está sendo executado em um dispositivo de computador, que pode ser compreendido por um nó de rede. Um processo compreende o código de programa do programa de computador e sua atividade atual. Um processo de detector de eventos pode compreender uma máquina de estado, que pode ser entendida como um modelo comportamental usado para projetar programas de computador. Uma máquina de estado é composta de um número (finito) de estados associados a transições. Uma transição é um conjunto de ações que começa a partir de um estado e termina em outro estado (ou no mesmo). Uma transição é iniciada por um gatilho, sendo que tal gatilho, por exemplo, pode ser um evento primitivo ou compósito introduzido no processo. Portanto, de acordo com os aspectos da presente invenção, um processo de detector de eventos pode compreender uma máquina de estado e um conteúdo ou memória de processo de detector de eventos pode refletir um estado atual de dita máquina de estado, como, por exemplo, variáveis individuais ou matrizes ou variáveis.
[0093] Nas modalidades onde existe um conjunto de segundos nós de computação 704-2 possíveis ou alternativos para rastrear ao longo do primeiro processo de detector de eventos do primeiro nó 7041, o aparelho de transferência 800 pode compreender ainda meio 808 para determinar o segundo nó 704-2 entre o conjunto de nós possíveis baseado em ou de acordo com um critério de distribuição de processo de detector de eventos ótimo. Deste modo, tal critério de distribuição de processo de detector de eventos ótimo pode levar a um de um atraso total mínimo de todos os eventos no sistema de computação distribuído 700, um número mínimo de subscrições de eventos seguras no sistema de computação distribuído 700, uma variação mínima da carga de um determinado nó 704 do sistema de computação distribuído 700, ou uma carga de sistema de computação distribuído total mínima.
[0094] O meio para o meio 800 para determinação pode, por exemplo, compreender uma entidade de rede central que tem informação de uma condição de rede total, incluindo a carga de nós individuais 704 e a carga do sistema total 700. Tal entidade de rede central também pode ter informação nos tempos de atraso de evento Δ(-) dos eventos percorrendo através da rede distribuída 700. Em tal caso, a entidade de rede central pode iniciar uma transferência de um processo de detector de eventos, por exemplo, a partir de um nó carregado mais pesadamente 704-1 para um nó carregado menos pesadamente 704-2. Ou, ela pode iniciar uma transferência de processo de detector de eventos entre nós diferentes 704-2, 704-2 a fim de reduzir um ou mais atrasos de eventos no sistema distribuído 700.
[0095] De acordo com outra modalidade, o meio 808 para determinação também pode compreender ou ser compreendido por um aparelho de sincronização 200 ou uma instância de compensador de atraso 210 do mesmo. Uma instância de compensador de atraso 210 tem conhecimento de atrasos daqueles eventos que ele retransmite a um processo de detector de eventos associado subsequente ou a jusante. Por exemplo, no caso da instância de compensador de atraso 210 medir um atraso proibitivamente alto de um evento descendendo de um detector de evento de origem ou a montante, a instância de compensador de atraso 210 pode iniciar a transferência de dito processo de detector de eventos a montante a partir de seu nó de rede atual para outro nó de rede a fim de reduzir o atraso de eventos. No caso da instância de compensador de atraso 210 não ter nenhum outro conhecimento sobre a situação da carga de nós individuais 704 no sistema distribuído 700, isto pode ser um procedimento de tentativa e erro simples, por exemplo.
[0096] De acordo com algumas modalidades, o aparelho de transferência 800 pode compreender ainda meio 810 para criar uma instância de processo, que é correspondente ao primeiro processo de detector de eventos no segundo nó 704-2 a fim de obter o segundo processo de detector de eventos. O procedimento de transferência de processo total pode, por exemplo, ser realizado com o auxílio de um Sistema Operacional (OS), que deve ser entendido como um conjunto de programas que gerencia recursos de hardware de computador, e provê serviços comuns para software de aplicativo, como um processo de detector de eventos, por exemplo. Tais serviços de OS também podem compreender funcionalidades instanciais às quais o meio 802 para copiar o conteúdo de processo pode ter acesso. Quer dizer, o meio de criação 810 pode compreender meio para acessar funcionalidades instanciais de processo de um sistema operacional funcionando nos nós de computação individuais 704-1, 704-2 e/ou controlar o sistema distribuído 700. Tão logo o segundo processo de detector de eventos do segundo nó 704-2 tenha instanciado ele pode se subscrever ao(s) mesmo(s) evento(s) que o primeiro segundo processo de detector de eventos do primeiro nó 704-1 tenha se subscrito, a fim de receber o(s) mesmo(s) evento(s) ou fluxo(s) de evento(s) a partir do sistema distribuído como sinais de entrada. Em outras palavras, o meio 810 para criar a instância pode ser operável, após instanciar o segundo processo de detector de eventos no segundo nó 704-2, para subscrever o segundo processo de detector de eventos para eventos de entrada idênticos como o primeiro processo de detector de eventos.
[0097] Os serviços OS podem compreender ainda funcionalidades de cópia, às quais o meio de copiar 802 para copiar o conteúdo de processo pode ter acesso. Quer dizer, o meio de copiar 802 pode compreender meio para acessar funcionalidades de cópia de processo de um sistema operacional funcionando nos nós de computação 7041, 704-2 ou alguma outra entidade de controle do sistema distribuído 700. O meio de cópia 802 também pode ser operável para "congelar" o conteúdo de processo do primeiro processo de detector de eventos em um instante de tempo pré-definido a fim de obter uma condição definida do primeiro processo de detector de eventos. No presente, "congelar" significa o processo de detector de evento parar de responder a suas entradas. O meio de cópia 802 pode ser ainda adaptado para copiar o conteúdo de processo congelado a partir do primeiro processo de detector de eventos para o segundo processo de detector de eventos a fim de obter a mesma condição definida no segundo processo de detector de eventos. Deste modo, o meio 802 para copiar pode ser operável para copiar o conteúdo de processo iterativamente a partir do primeiro processo de detector de eventos para o segundo processo de detector de eventos, de modo que o conteúdo, que não trocará durante o restante do procedimento de cópia, é copiado primeiro. Portanto, os dados contidos no primeiro processo de detector de eventos podem ser copiados a partir do primeiro nó 704-1 para o segundo nó 704-2 em uma pluralidade de iterações. Deste modo, deve ser definido quais dados pertencem à informação de estado de um detector de eventos. No caso de conteúdo de processo a ser copiado ficar menor e menos até a diferença permanecer pequena, mas não zero.
[0098] Antes do novo, isto é, do segundo processo de detector de eventos ser iniciado ou comutado no segundo nó 704-2, os dados de entrada (idênticos) de ambos os processos detector de eventos podem ser armazenados temporariamente de modo que ambos os processos detector de eventos, que idealmente já têm a mesma condição interna definida, também obtêm dados de entrada externos idênticos começando a partir do instante de tempo pré-definido, isto é, o instante de "congelar". Portanto, o meio 802 para copiar também pode ser operável para armazenar temporariamente os eventos de entrada do primeiro processo de detector de eventos durante e/após copiar o conteúdo de processo a partir do primeiro para o segundo processos de detector de eventos.
[0099] Quando todo o conteúdo relevante foi copiado a partir do primeiro (antigo) para o segundo (novo) processo de detector de eventos e os dados de entrada foram armazenados temporariamente, ambos os processos de detector de eventos podem ser ativados para processamento paralelo dos dados de entrada (eventos) armazenados temporariamente (idealmente idênticos), tendo em conta as mesmas condições internas ou estados do primeiro e do segundo processos de detector de eventos. Quer dizer, ambos os detectores de eventos são comutados após o procedimento de cópia e de armazenamento temporário e processam os ramificados e, portanto, alguns dados de entrada em paralelo. Para este fim, o meio 804 para coordenação pode ser operável para processar os eventos de entrada do primeiro processo de detector de eventos em paralelo tanto no primeiro como no segundo processos de detector de eventos começando a partir do instante de tempo pré-definido (congelar) baseado no conteúdo de processo copiado. Também, o meio de coordenação 804 pode ter acesso ao OS para esse fim, por exemplo.
[00100] O meio 806 para verificar, por exemplo, um comparador, então verifica se ambos os processos de detector de eventos levam à mesma saída, respectivamente. Se for este o caso, o processo de detector de eventos antigo, isto é, o primeiro, pode ser desligado. Se não for este o caso, o procedimento de cópia e/ou de armazenamento temporário provavelmente falhou e o novo processo de detector de eventos (isto é, o segundo) pode ser desativado para iniciar o procedimento de transferência total a partir do começo. Portanto, de acordo com algumas modalidades, o meio 806 para verificação pode ser operável para desativar o primeiro processo de detector de eventos no caso dos eventos de saída em ambos os primeiro e segundo processos de detector de eventos serem idênticos, ou, desativar o segundo processo de detector de eventos no caso dos eventos de saída em ambos o primeiro e o segundo processos de detector de eventos não serem idêntico.
[00101] Como foi mencionado acima, as modalidades do aparelho de transferência 800 podem ser combinadas com as modalidades do aparelho de sincronização 200, uma vez que suas características podem complementar de modo sinérgico um ao outro. Portanto, alguns aspectos da presente invenção também proporcionam um sistema de computação distribuído 700 para determinar os eventos baseados em pelo menos um fluxo de dados de sensores, sendo que o sistema de computação distribuído compreende uma pluralidade de nós de computação distribuídos 704 e uma modalidade de um aparelho de transferência 800 para transferir um primeiro processo de detector de eventos de um primeiro nó 704-1 do sistema de computação distribuído 700 para um segundo processo de detector de eventos de um segundo nó 704-2 do sistema de computação distribuído 700. Além disso, cada um da pluralidade de nós de computação distribuídos 704 compreende um aparelho 200 para sincronizar um primeiro evento 202, tendo associado ao mesmo um primeiro tempo de evento tevento, e1 baseado em um sinal de relógio comum, e um segundo evento 204, tendo associado ao mesmo um segundo tempo de evento tevento, e2 baseado no sinal de relógio comum, sendo que o primeiro e o segundo evento 202, 204 (ou e1 e e2) experimentam atrasos diferentes Δ(e1), Δ(e2) enquanto percorrendo através de caminhos e rotas diferentes do sistema de computação distribuído 700, e sendo que pelo menos um evento de saída 206 deve ser determinado por um detector de eventos (processo) 208 baseado no primeiro e no segundo eventos 202, 204 (ou e1 e e2). Como já foi explicado com referência à figura 2, o aparelho 200 para sincronizar os eventos 202, 204 compreende um compensador de atraso 210 associado ao detector de eventos 208, o compensador de atraso 210 tendo entradas 212—1, 212-2 para receber o primeiro e o segundo evento 202,204 e tendo uma saída 214-1, 214-2 para encaminhar verões retransmitidas 202', 204' do primeiro e segundo eventos recebidos para o detector de eventos associado 208. As modalidades do compensador de atraso 210 são operáveis para retransmitir o primeiro e o segundo evento 202, 204 ao detector de eventos associado 208 nos atrasos experimentados Δ(e1), Δ(e2) e baseadas no primeiro e no segundo tempos de evento associados tevento, e1, tevento, e2, como foi explicado em maior detalhe acima.
[00102] Os aspectos da presente invenção, onde os detectores de eventos poderão ser transferíveis de um nó para outro nó, preferivelmente enquanto eles estão sendo executados ou em funcionamento, também compreendem um método para transferir um primeiro processo de detector de eventos de um primeiro nó 704-1 de um sistema de computação distribuído 700 para um segundo processo de detector de eventos de um segundo nó 704-2 do sistema de computação distribuído 700. Um fluxograma esquemático de tal método de transferência 900 é ilustrado na figura 9.
[00103] O método de transferência 900 compreende uma etapa 902 de copiar um conteúdo de processo do primeiro processo de detector de eventos para o segundo processo de detector de eventos. Antes disso pode ser determinado que nó de computação ou processo administrativo do mesmo manipulará o processo de um processo de detector de eventos sobrecarregado/segmento. Em algumas modalidades a etapa de copiar 902 pode compreender dados de cópia compreendidos do processo de detector de eventos a partir do primeiro nó 704-1 para o segundo nó 704-2 em uma pluralidade de iterações, como já descrito acima. A etapa de copiar 902, deste modo, compreende definir que dados pertencem à informação de estado de um detector de eventos. No caso de processos, este é o processo de memória, por exemplo. Enquanto copiando o delta de conteúdo de processo a ser copiado torne-se menor e menor até as trocas permanecerem pequenas, mas não zero. Quer dizer, uma cópia de delta de conteúdo de processo não será zero porque um detector de eventos não congelado pode trocar seu estado continuamente. Portanto, embora copiando o último delta de conteúdo o processo de detector de eventos pode vantajosamente ser congelado.
[00104] O método 900 compreende ainda uma etapa 904 de processar eventos de entrada do primeiro processo de detector de eventos em paralelo tanto no primeiro como no segundo processos de detector de eventos. Para esse fim, os primeiros dados de entrada do detector de eventos podem ser armazenados temporariamente e/ou copiado para ambos os detectores de eventos, de modo que ambos os detectores podem processar fluxos de dados de entrada idênticos. Ambos os detectores de eventos podem então ser comutados a fim de processar ditos fluxos de dados de entrada em paralelo.
[00105] Em uma etapa 906 é verificado se os eventos de entrada do primeiro processo de detector de eventos, que são processados em paralelo tanto no primeiro como no segundo processos de detector de eventos, levam a eventos de saída idênticos tanto no primeiro como no segundo processos de detector de eventos. Se for este o caso, isto é, no caso dos eventos de saída tanto no primeiro como no segundo processos de detector de eventos serem idênticos, o primeiro processo de detector de eventos pode ser desativado (ver etapa 908). Se não for este o caso, isto é, no caso dos eventos de saída tanto no primeiro como no segundo processo de detector de eventos não serem idênticos, o segundo processo de detector de eventos pode ser desativado ao invés de e o método de transferência 900 é iniciado novamente na etapa 902.
[00106] Portanto, a transferência de processos de detector de eventos entre nós de rede diferentes pode, por exemplo, ser feita tendo instâncias administrativas, como programadores (também referidos como processos de núcleo de eventos), associadas aos detectores de eventos dos diferentes nós 704 comunicando-se umas com as outras. Baseadas nesta comunicação elas podem decidir transferir os processos de detector de eventos ou algoritmos dos mesmos a partir de um nó para outro nó do sistema 700.
[00107] A descrição e os desenhos ilustram simplesmente os princípios da invenção. Assim, será apreciado que os peritos na técnica sejam capazes de elaborar vários arranjos que, embora não explicitamente descritos ou mostrados no presente documento, incorporam os princípios da invenção e são incluídos em seu espírito e escopo. Além disso, todos os exemplos descritos no presente documento são principalmente destinados expressamente a serem somente para fins pedagógicos para ajudar o leitor no entendimento dos princípios da invenção e nos conceitos contribuídos pelo(s) inventor(es) para promover a técnica, e devem ser interpretados como sendo sem limitação para tais exemplos e condições descritos. Além do mais, todas as declarações no presente documento descrevendo os princípios, aspectos e modalidades da invenção, bem como os exemplos específicos da mesma, são destinadas a englobar equivalentes das mesmas.
[00108] Os blocos funcionais como "meio para ..." (realizar certa função) devem ser entendidos como blocos funcionais compreendendo circuito que é adaptado, configurado ou operável para realizar certa função, respectivamente. Portanto, um "meio para s.th." pode também ser entendido como um "meio sendo adaptado configurado ou operável para fazer s.th". Um meio que é adaptado para realizar certa função, portanto, não sugere que tal meio necessariamente está realizando dita função (em um determinado instante de tempo.
[00109] As funções de vários elementos mostrados nas figuras, incluindo quaisquer blocos funcionais podem ser providas através do uso de hardware dedicado, como, por exemplo, um processador, bem como hardware capaz de executar software em associação com software apropriado. Quando providas por um processador, as funções podem ser providas por um único processador dedicado, por um processador compartilhado único, ou por uma pluralidade de processadores individuais, alguns dos quais podem ser compartilhados. Além disso, o uso explícito dos termos "processador" ou "controlador" não pode ser interpretado para se referir exclusivamente a hardware capaz de executar software, e pode incluir implicitamente, sem limitação, hardware de processador de sinal (DSP), processador de rede, circuito integrado específico do aplicativo (ASIC), matriz de portal programável no campo (FPGA), memória somente de leitura (ROM) para armazenar software, memória de acesso aleatório (RAM), e armazenamento não volátil. Outro hardware, convencional e/ou personalizado, também pode ser incluído.
[00110] Deve ser apreciado pelos peritos na técnica que quaisquer diagramas de bloco no presente documento representam vistas conceituais de circuito ilustrativo incorporando os princípios da invenção. Similarmente, será apreciado que quaisquer diagramas, fluxogramas, diagramas de transição de estado, pseudocódigo, e semelhantes representam vários processos que podem ser substancialmente representados em meio legível por computador e assim executados por um computador ou processador, quer ou não tal computador ou processador seja explicitamente mostrado.
[00111] Além disso, as seguintes concretizações são pelo presente incorporadas na descrição detalhada, onde cada concretização pode permanecer em si própria como uma modalidade separada. Embora cada concretização possa permanecer em si própria como uma modalidade separada, deve ser notado que - embora uma concretização possa se referir nas concretizações a uma combinação específica com uma ou mais outras concretizações - outras modalidades também podem incluir uma combinação da concretização com o assunto da concretização dependendo uma da outra. Tais combinações são propostas no presente documento a menos que seja declarado que uma combinação específica não é pretendida. Além disso, é pretendido incluir também características de uma concretização em qualquer outra concretização dependente mesmo se esta concretização não se tornou diretamente dependente para a concretização independente.
[00112] Deve ser notado ainda que os métodos divulgados no relatório ou nas concretizações podem ser implementados por um dispositivo que tem meios para realizar cada uma das respectivas etapas destes métodos.
[00113] Além disso, deve ser entendido que a divulgação de múltiplas etapas ou funções divulgadas no relatório ou concretizações não pode ser interpretada como para estar dentro da ordem específica. Portanto. A divulgação de múltiplas etapas ou funções não irá limitar estas a uma ordem particular a menos que tais etapas ou funções não sejam intercambiáveis por razões técnicas.
[00114] Além disso, em algumas modalidades uma etapa única pode incluir ou pode ser rompida em múltiplas subetapas. Tais subetapas podem ser incluídas e parte da divulgação desta etapa única a menos que explicitamente excluídas.
Claims (14)
1. Aparelho (200) para encomendar um primeiro evento (202), tendo associado ao mesmo um primeiro valor de cronometragem de evento baseado em um sinal de relógio comum, e um segundo evento (204) tendo associado ao mesmo um segundo valor de cronometragem de evento baseado no sinal de relógio comum, caracterizado pelo fato de que os primeiro e segundo valores de cronometragem de evento constituem uma ordem temporal original do primeiro e do segundo evento (202; 204), sendo que o primeiro e o segundo evento (202; 204) experimentam atrasos diferentes enquanto percorrem através de caminhos diferentes de um sistema de computação distribuído (300; 700), e sendo que pelo menos um evento de saída (206) deve ser determinado por um detector de eventos (208) baseado no primeiro e no segundo evento (202; 204), o aparelho (200) compreendendo um compensador de atraso (210) associado ao detector de eventos (208), o compensador de atraso (210) tendo uma entrada (212) para receber, em uma ordem temporal correspondendo aos atrasos diferentes, o primeiro e o segundo evento (202; 204) e tendo uma saída (214) para encaminhar versões retransmitidas (202'; 204') do primeiro e segundo eventos recebidos para o detector de eventos associado (208), sendo que o compensador de atraso (210) é operável para retransmitir o primeiro e o segundo evento (202; 204) ao detector de eventos associado (208) em uma ordem temporal correspondendo à ordem temporal original do primeiro e do segundo evento (202; 204) baseado nos atrasos experimentados e baseado no primeiro e segundo valores de cronometragem de evento associados.
2. Aparelho (200), de acordo com a reivindicação 1, caracterizado pelo fato de que o compensador de atraso (210) é operável para respectivamente retransmitir o primeiro e o segundo evento (202; 204; 302; 304) de modo que uma diferença de tempo relativa entre as versões retransmitidas (202'; 204') do primeiro e segundo eventos recebidos corresponde a uma diferença de tempo relativa original entre o primeiro e o segundo evento (202; 204; 302; 304).
3. Aparelho (200), de acordo com a reivindicação 1 ou 2, caracterizado pelo fato de que o compensador de atraso (210) é operável para determinar instâncias de tempo de saída para retransmitir o primeiro e o segundo evento (202; 204; 302; 304) ao detector de eventos associado baseado no primeiro e no segundo valor de cronometragem de evento e um valor de atraso comum.
4. Aparelho (200), de acordo com qualquer uma das reivindicações precedentes, caracterizado pelo fato de que o compensador de atraso (210) é operável para determinar um tempo de saída para retransmitir o primeiro e o segundo evento (202; 204; 302; 304) para o detector de eventos associado baseado no primeiro e no segundo valor de cronometragem de evento e um atraso de eventos máximo do primeiro e do segundo evento.
5. Aparelho (200), de acordo com qualquer uma das reivindicações precedentes, caracterizado pelo fato de que o compensador de atraso (210) é operável para medir atrasos de eventos do primeiro e do segundo evento (202; 204; 302; 304), respectivamente, baseado em um tempo de recebimento do primeiro ou do segundo evento (202; 204; 302; 304) no compensador de atraso (210) e seus respectivos valores de cronometragem de evento associados.
6. Aparelho (200), de acordo com qualquer uma das reivindicações precedentes, caracterizado pelo fato de que o compensador de atraso (210) é operável para determinar instâncias de tempo de saída para atrasar o primeiro e o segundo evento (202; 204; 302; 304) baseado em sendo que e1, e2 indicam o primeiro e segundo eventos, respectivamente, Δ(.) indica um atraso de um evento de sua origem para a entrada do compensador de atraso associado ao detector de eventos, max(.) indica o operador máximo, e tfora indica a instância de tempo de saída do primeiro ou segundo evento retransmitido.
7. Aparelho (200), de acordo com qualquer uma das reivindicações precedentes, caracterizado pelo fato de que o compensador de atraso (210) é operável para determinar um atraso de eventos Δ(ej) de evento j baseado em sendo que k indica um conjunto de atrasos de eventos k já determinados, Δej(i) indica o io atraso determinado de evento ej, sendo que i = 1 corresponde ao último atraso determinado, o(ej) indica o desvio padrão dos últimos eventos determinados Δ(ej), e sendo que θ indica um fator de segurança.
8. Aparelho (200), de acordo com qualquer uma das reivindicações precedentes, caracterizado pelo fato de que um valor de cronometragem de evento corresponde a um dentre um tempo de detecção de evento original ou um tempo de ocorrência de evento original.
9. Aparelho (200), de acordo com qualquer uma das reivindicações precedentes, caracterizado pelo fato de que um evento (202; 204; 302; 304) é um evento primitivo, que é diretamente baseado em dados de sensores, ou um evento compósito, que é baseado em eventos primitivos.
10. Aparelho (200), de acordo com qualquer uma das reivindicações precedentes, caracterizado pelo fato de que o primeiro e o segundo eventos (202; 204; 302; 304) são originalmente detectados em nós distribuídos (704) do sistema de computação distribuído (300; 700), e sendo que o primeiro e o segundo eventos (202; 204; 302; 304) são baseados em fluxos de dados de sensores paralelos de um sistema de localização geográfico.
11. Sistema de computação distribuído (700) para determinar eventos baseados em pelo menos um fluxo de dados de sensores (702), o sistema de computação distribuído (700) caracterizado pelo fato de que compreende uma pluralidade de nós de computação distribuídos (704), sendo que cada um da pluralidade de nós de computação distribuídos compreende um aparelho (200) para sincronização, como definido em qualquer uma das reivindicações precedentes.
12. Sistema de computação distribuído (700), de acordo com a reivindicação 11, caracterizado pelo fato de que o sistema de computação distribuído (700) é acoplado a um sistema de localização para localizar e/ou rastrear objetos dentro de uma área geográfica pré- definida, e sendo que o sistema de localização introduz um fluxo de dados de sensores (702) no sistema de computação distribuído (700), o fluxo de dados de sensores (700) transportando dados sendo indicativos de posições geográficas dos objetos localizados.
13. Sistema de computação distribuído (700), de acordo com a reivindicação 11 ou 12, caracterizado pelo fato de que compreende ainda um aparelho (800) para transferir um primeiro processo detector de eventos de um primeiro nó (704-1= do sistema de computação distribuído (700) para um segundo processo detector de eventos de um segundo nó (704-1) do sistema de computação distribuído sendo diferente do primeiro nó (704-1), o aparelho (800) compreendendo meio (802) para copiar uma faixa de dados do primeiro processo detector de eventos para o segundo processo detector de eventos; meio (804) para processar eventos de entrada do primeiro processo detector de eventos em paralelo tanto ao primeiro como ao segundo processos detectores de eventos; e meio (806) para verificar se os eventos de entrada do primeiro processo detector de eventos, que são processados em paralelo tanto ao primeiro como ao segundo processos detectores de eventos, levam a eventos de saída idênticos tanto ao primeiro como ao segundo processos detector de eventos.
14. Método (600) para encomendar um primeiro evento (202), tendo associado ao mesmo um primeiro valor de cronometragem de evento em um sinal de relógio comum, e um segundo evento (204), tendo associado ao mesmo um segundo valor de cronometragem de evento baseado no sinal de relógio comum, caracterizado pelo fato de que o primeiro e o segundo valores de cronometragem de vento constituem uma ordem temporal original do primeiro e do segundo evento (202; 204), sendo que o primeiro e o segundo evento (202; 204) experimentam atrasos diferentes enquanto percorrem através de caminhos diferentes de um sistema de computação distribuído (300; 700), o método (600) compreendendo receber, em um compensador de atraso (210), o primeiro e o segundo evento (202; 204) em uma ordem temporal correspondendo aos diferentes atrasos; retransmitir (602), no compensador de atraso (210), o primeiro evento (202) e o segundo evento (204) a um detector de eventos associado (208), sendo que o primeiro e o segundo evento (202; 204) são retransmitidos ao detector de eventos (208) em uma ordem temporal correspondendo à ordem temporal original do primeiro e do segundo evento (202; 204) baseado nos atrasos experimentados e baseado no primeiro e segundo valores de cronometragem de evento originais associados; e detectar (604), no detector de eventos (208) associado ao compensador de atraso (210), pelo menos um evento de saída (20) baseado no primeiro e no segundo eventos de entrada retransmitidos.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2011/069160 WO2013064172A1 (en) | 2011-10-31 | 2011-10-31 | Apparatus and method for synchronizing events |
Publications (2)
Publication Number | Publication Date |
---|---|
BR112014010298A2 BR112014010298A2 (pt) | 2017-04-18 |
BR112014010298B1 true BR112014010298B1 (pt) | 2021-12-07 |
Family
ID=44992885
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
BR112014010298-8A BR112014010298B1 (pt) | 2011-10-31 | 2011-10-31 | Aparelho para encomendar um primeiro evento e um segundo evento, sistema de computação distribuído para determinar eventos e método para encomendar um primeiro evento e um segundo evento |
Country Status (8)
Country | Link |
---|---|
US (1) | US9641601B2 (pt) |
EP (1) | EP2732600B1 (pt) |
JP (1) | JP5856684B2 (pt) |
CN (1) | CN104025554B (pt) |
AU (1) | AU2011380289B2 (pt) |
BR (1) | BR112014010298B1 (pt) |
ES (1) | ES2564842T3 (pt) |
WO (1) | WO2013064172A1 (pt) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013136718A1 (ja) * | 2012-03-16 | 2013-09-19 | 日本電気株式会社 | 時系列データ処理装置、時系列データ処理方法及び時系列データ処理プログラム記憶媒体 |
JP6183016B2 (ja) * | 2013-07-10 | 2017-08-23 | 住友電気工業株式会社 | センサ情報処理装置、センサ情報処理方法およびセンサ情報処理プログラム |
US10158868B2 (en) * | 2013-10-15 | 2018-12-18 | Nvidia Corporation | Systems and methods to limit lag between a client and a server for remote computing |
DE102013112317A1 (de) * | 2013-11-08 | 2015-05-13 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Vorrichtung und Verfahren zum automatischen Bewerten eines Verlaufes einer Trainingsübung |
US10423468B2 (en) * | 2015-02-10 | 2019-09-24 | Red Hat, Inc. | Complex event processing using pseudo-clock |
US9891966B2 (en) | 2015-02-10 | 2018-02-13 | Red Hat, Inc. | Idempotent mode of executing commands triggered by complex event processing |
GB201512964D0 (en) * | 2015-07-22 | 2015-09-02 | Cambridge Medical Robotics Ltd | Communication paths for robot arms |
WO2018044334A1 (en) * | 2016-09-02 | 2018-03-08 | Iex Group. Inc. | System and method for creating time-accurate event streams |
WO2018137767A1 (en) * | 2017-01-26 | 2018-08-02 | Telefonaktiebolaget Lm Ericsson (Publ) | Detection systems and methods |
US11208208B2 (en) * | 2017-10-18 | 2021-12-28 | Geocue Group, Inc. | Systems and methods for synchronizing events in shifted temporal reference systems |
CN110309227B (zh) * | 2018-05-28 | 2022-12-13 | 腾讯科技(深圳)有限公司 | 分布式数据回档方法、装置和计算机可读存储介质 |
US11327790B1 (en) * | 2018-07-03 | 2022-05-10 | Synopsys, Inc. | Event-level parallel simulation using dynamic synchronization |
US10853658B2 (en) * | 2018-10-30 | 2020-12-01 | Sony Corporation | Image-based detection of offside in gameplay |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6945784B2 (en) * | 2000-03-22 | 2005-09-20 | Namco Holding Corporation | Generating a musical part from an electronic music file |
US6934766B1 (en) * | 2000-11-02 | 2005-08-23 | Cisco Technology, Inc. | Method and apparatus for exchanging event information between computer systems that reduce perceived lag times by subtracting actual lag times from event playback time |
CA2363396A1 (en) * | 2001-11-21 | 2003-05-21 | Handshake Interactive Technologies Inc | Hard real time control center |
JP4159338B2 (ja) * | 2002-10-18 | 2008-10-01 | 日本テキサス・インスツルメンツ株式会社 | 書き込みパルス生成回路 |
US7433266B2 (en) * | 2004-09-16 | 2008-10-07 | Vanderbilt University | Acoustic source localization system and applications of the same |
GB0423110D0 (en) * | 2004-10-18 | 2004-11-17 | Manthatron Ip Ltd | Acting on a subject system |
US7889669B2 (en) * | 2005-09-26 | 2011-02-15 | Alcatel Lucent | Equalized network latency for multi-player gaming |
EP2301635B1 (en) * | 2009-09-29 | 2013-03-20 | Alcatel Lucent | Method of network delay equalization |
CN101949715B (zh) * | 2010-08-10 | 2012-06-20 | 武汉武大卓越科技有限责任公司 | 高精度时空数据获取的多传感器集成同步控制方法和系统 |
US9298575B2 (en) * | 2011-10-12 | 2016-03-29 | Lytx, Inc. | Drive event capturing based on geolocation |
-
2011
- 2011-10-31 AU AU2011380289A patent/AU2011380289B2/en active Active
- 2011-10-31 CN CN201180074531.XA patent/CN104025554B/zh active Active
- 2011-10-31 US US14/354,945 patent/US9641601B2/en active Active
- 2011-10-31 JP JP2014537501A patent/JP5856684B2/ja active Active
- 2011-10-31 WO PCT/EP2011/069160 patent/WO2013064172A1/en active Application Filing
- 2011-10-31 ES ES11784447.2T patent/ES2564842T3/es active Active
- 2011-10-31 EP EP11784447.2A patent/EP2732600B1/en active Active
- 2011-10-31 BR BR112014010298-8A patent/BR112014010298B1/pt active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
AU2011380289A1 (en) | 2014-04-17 |
JP2015503257A (ja) | 2015-01-29 |
WO2013064172A1 (en) | 2013-05-10 |
US20140365551A1 (en) | 2014-12-11 |
JP5856684B2 (ja) | 2016-02-10 |
BR112014010298A2 (pt) | 2017-04-18 |
CN104025554B (zh) | 2017-02-08 |
AU2011380289B2 (en) | 2015-03-26 |
EP2732600B1 (en) | 2015-12-30 |
EP2732600A1 (en) | 2014-05-21 |
US9641601B2 (en) | 2017-05-02 |
ES2564842T3 (es) | 2016-03-29 |
CN104025554A (zh) | 2014-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
BR112014010298B1 (pt) | Aparelho para encomendar um primeiro evento e um segundo evento, sistema de computação distribuído para determinar eventos e método para encomendar um primeiro evento e um segundo evento | |
BR112014010370B1 (pt) | Aparelho e método para transferir processos detectores de evento | |
JP6116707B2 (ja) | アウトオブオーダーイベントを処理するための装置、方法及びコンピュータプログラム | |
Mutschler et al. | Distributed low-latency out-of-order event processing for high data rate sensor streams | |
Parikh et al. | Formally enhanced runtime verification to ensure noc functional correctness | |
US10746792B1 (en) | Debug mechanisms for a processor circuit | |
Freitag et al. | Dynamic interference quantification for multicore processors | |
Wächter et al. | Runtime fault recovery protocol for NoC-based MPSoCs | |
Zhang | Failure Diagnosis for Datacenter Applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
B06F | Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette] | ||
B06U | Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette] | ||
B15K | Others concerning applications: alteration of classification |
Free format text: A CLASSIFICACAO ANTERIOR ERA: H04L 29/08 Ipc: H04L 29/08 (2006.01), H04L 29/06 (2006.01) |
|
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 31/10/2011, OBSERVADAS AS CONDICOES LEGAIS. PATENTE CONCEDIDA CONFORME ADI 5.529/DF, QUE DETERMINA A ALTERACAO DO PRAZO DE CONCESSAO. |