ES2601804T3 - Aparato y método para la transferencia de procesos de detector de eventos operativos - Google Patents
Aparato y método para la transferencia de procesos de detector de eventos operativos Download PDFInfo
- Publication number
- ES2601804T3 ES2601804T3 ES11782086.0T ES11782086T ES2601804T3 ES 2601804 T3 ES2601804 T3 ES 2601804T3 ES 11782086 T ES11782086 T ES 11782086T ES 2601804 T3 ES2601804 T3 ES 2601804T3
- Authority
- ES
- Spain
- Prior art keywords
- event detector
- event
- events
- detector process
- node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
- G06F9/4856—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
- G06F9/5088—Techniques for rebalancing the load in a distributed system involving task migration
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Debugging And Monitoring (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Transfer Between Computers (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
Un aparato (800) para transferir un primer proceso de detector de eventos operativos de un primer nodo (704-1) de un sistema informático distribuido (300; 700) hacia un segundo proceso de detector de eventos de un segundo nodo (704-2) del sistema informático distribuido (300; 700) siendo el segundo nodo (704-2) diferente del primer nodo (704-1), cuyo aparato (800) comprende: un medio (802) para copiar un contenido de proceso del primer proceso de detector de eventos hacia el segundo proceso de detector de eventos; un medio (804) para coordinar eventos de entrada del primer proceso de detector de eventos de modo que los eventos de entrada del primer proceso de detector de eventos sean procesados en paralelo, a la vez, con el primero y el segundo proceso de detector de eventos; y un medio (806) para verificar si los eventos de entrada del primer proceso de detector de eventos, que son procesados en paralelo, a la vez, para el primero y segundo proceso de detector de eventos, conducen a eventos de salida idénticos, a la vez, al primer y al segundo proceso de detector de eventos, en donde el medio (806) para verificación es utilizable para desactivar el primer proceso de detector de eventos en caso de que los eventos de salida en, a la vez, los primeros y segundos procesos de detector de eventos sean idénticos o para desactivar el segundo proceso de detector de eventos en caso de que los eventos de salida en, a la vez, los primeros y segundos procesos de detector de eventos no sean idénticos caracterizado por cuanto que el medio (802) para copiar es utilizable para copiar el contenido de proceso, de manera iterativa, desde el primer proceso de detector de eventos al segundo proceso de detector de eventos, de modo que el contenido que no cambiará durante un resto del proceso de copia sea copiado en primer lugar, en donde el medio (802) para copiar es utilizable para congelar operativamente el contenido de proceso del primer detector de eventos en un instante preestablecido antes de copiar un último, así denominado, delta de contenido y para copiar el último delta de contenido congelado desde el primer proceso de detector de eventos al segundo proceso de detector de eventos.
Description
5
10
15
20
25
30
35
40
45
50
55
60
65
DESCRIPCION
Aparato y metodo para la transferencia de procesos de detector de eventos operativos CAMPO DE LA INVENCION
Las formas de realizacion de la presente invencion se refieren, en general, a redes de datos y, en particular, a aparatos y metodos para la transferencia de procesos de detector de eventos entre diferentes nodos de un sistema informatico distribuido.
ANTECEDENTES DE LA INVENCION
Las redes de sensores, tales como, a modo de ejemplo, redes de sensores inalambricas, tienen una amplia gama de aplicaciones. A modo de ejemplo, las redes de sensores inalambricas de diversas tecnologfas pueden utilizarse para fines de localizacion, tal como la localizacion de seres humanos y/o otros objetos. En este caso, el termino “localizacion” significa la deteccion o determinacion de una localizacion o posicion geografica. Algunos sistemas especializado en el seguimiento de localizaciones o posiciones pueden utilizarse para localizar los jugadores y otros objetos (p.ej., una pelota) en acontecimientos deportivos, tales como, a modo de ejemplo, soccer, futbol americano, rugby, tenis, etc.
Con la utilizacion de datos agrupados de posicionamiento o localizacion geografica de jugadores y/o una pelota es posible obtener informacion estadfstica relacionada con los acontecimientos deportivos completos, a modo de ejemplo, un partido de futbol americano, o en relacion con equipos individuales o jugadores. Dicha informacion estadfstica derivada puede ser de interes por varios motivos. Por una parte, existen diversos intereses comerciales tales como algunas estadfsticas y su analisis que pueden ser de particular importancia para los espectadores en un estadio y/o en frente de un aparato de television en su domicilio. En consecuencia, proporcionar algunas estadfsticas puede suscitar mas interes en los acontecimientos deportivos. Por otro lado, los datos estadfsticos derivados de datos de posicionamiento en bruto pueden tambien utilizarse para fines de entrenamiento. En este caso, un oponente y/o el comportamiento del propio equipo pueden analizarse asf como el rendimiento y/o estado de salud de jugadores individuales.
Los sistemas de seguimiento de localizacion o posicion antes citados pueden basarse en diversas tecnologfas. A modo de ejemplo, la informacion de localizacion puede determinarse sobre la base de la evaluacion de senales de radio inalambricas y/o campos magneticos. Para esta finalidad los transmisores y/o receptores se suelen utilizar tambien como sensores, pueden situarse en los objetos individuales (p.ej., jugadores, pelota, etc.) para ser localizados por el sistema. Dispositivos de recepcion y/o transmision correspondientes pueden montarse tambien para localizaciones predeterminadas alrededor de una zona geografica de interes, como, a modo de ejemplo, un campo de futbol americano. Una evaluacion de las intensidades de las senales, los tiempos de propagacion de las senales y/o fases de las senales, solamente para nombrar unas pocas alternativas tecnicas posibles, pueden conducir entonces a flujos de datos de sensores indicativos de la posicion geografica de jugadores u objetos individuales en diferentes instantes en el tiempo. En condiciones normales, una muestra de datos de localizacion geografica esta asociada con una marca temporal que indica en que momento un objeto estaba situado en que posicion geografica. Con estos datos cinematicos de informacion combinados, tales como velocidad (speed), aceleracion, etc., pueden proporcionarse tambien ademas de los datos de localizacion comprendiendo, a modo de ejemplo, coordenadas x-, y- y z-. En la secuela de esta especificacion, los datos de localizacion y cinematicos proporcionados por el sistema de sensores de localizacion se referiran tambien como datos (brutos) de sensores.
En un ejemplo particular de un sistema de seguimiento inalambrico, las personas u objetos pueden estar provistos de transmisores diminutos, que pueden incorporarse en el calzado, uniformes y pelotas y cuyas senales se captan por varias antenas situadas alrededor de la zona bajo observacion. Las unidades de receptores procesan las senales recogidas y determinan sus tiempos de llegada (ToA). Sobre la base de un calculo de las diferencias en el retardo de propagacion, se determina entonces continuamente la posicion de cada transmisor. Ademas, una red informatica integrada con el sistema de seguimiento inalambrico puede analizar las posiciones o datos de sensores con el fin de detectar eventos espedficos. Operando en la banda de 2.4 GHz, el sistema de seguimiento esta libre de licencias en un marco global.
Sobre la base de los flujos de datos brutos de sensores obtenidos a partir del sistema de seguimiento de localizaciones o posiciones asf denominados “eventos” pueden ser objeto de deteccion. De este modo, un evento puede definirse como siendo una ocurrencia instantanea de interes en un punto en el tiempo. En general, un evento esta asociado con un cambio en la distribucion de una magnitud relacionada que puede detectarse. Un evento puede ser un evento primitivo, que este directamente basado en datos de sensores (datos cinematicos) del sistema de seguimiento o un evento compuesto, que este basado, en cambio, en otros eventos anteriormente detectados. Es decir, un evento compuesto no es directamente dependiente de los datos brutos de sensores sino de otros eventos. En aplicaciones de juegos con pelotas, un evento puede, a modo de ejemplo, ser “jugador X golpea la pelota” o “el jugador X esta en posesion de la pelota”. Eventos mas complicados pueden ser, a modo de ejemplo, “offside” (fuera de juego) o “foul” (falta).
5
10
15
20
25
30
35
40
45
50
55
60
65
La deteccion de eventos sobre la base de los flujos de datos de sensores subyacentes ha suscitado un interes cada vez mayor en la base de datos y comunidades de sistemas distribuidos en los ultimos anos. Una amplia gama y numeros cada vez mayores de aplicaciones actuales, incluyendo aplicaciones tales como control de redes, comercio electronico, asistencia sanitaria, analisis financiero y seguridad o la supervision de eventos deportivos antes citados, se basan en la capacidad para procesar demandas informativas a traves de flujos de datos que, en condiciones ideales, adoptan la forma de series de eventos temporalmente ordenados. La deteccion de eventos indica el procesamiento completamente automatizado de datos brutos de sensores y/o eventos sin la necesidad de la intervencion humana, puesto que en numerosas aplicaciones, la amplia cantidad de datos de datos de sensores suministrados y/o eventos ya no pueden capturarse ni procesarse por un operador humano. A modo de ejemplo, las publicaciones WO 2011/127059 Al y WO 99/17478 A1 estan relacionadas con la migracion de eventos y la solicitud de eventos.
A modo de ejemplo, si variaciones a alta velocidad de jugadores o un objeto deportivo, p.ej., una pelota, han de estar previstos, los datos brutos del detector (seguimiento de localizaciones o posiciones) ha de determinarse con una tasa de datos suficientemente alta por la red de sensores subyacente (inalambrica). Ademas, si existe un alto numero de jugadores y/o objetos (p.ej., en el futbol americano hay 22 jugadores en la pista y una pelota) para ser objeto de seguimiento, la cantidad de muestras de datos cinematicos y de posiciones geograficas globales por segundo pueden hacerse prohibitivamente altas en particular con respecto a los requisitos de procesamiento de eventos en tiempo real.
Por lo tanto, aun cuando los flujos de datos brutos de eventos y/o sensores sean analizados y senalizados de forma completamente automatica, puede existir todavfa demasiada informacion, que posiblemente no sean de interes alguno en su integridad. En el futuro, este problema sera cada vez peor puesto que cada vez mas dispositivos estaran provistos de sensores y la posibilidad de proporcionar sus datos de sensores determinados para redes publicas, tales como Internet (p.ej., datos meteorologicos o de temperaturas determinados por dispositivos inalambricos tales como telefonos inteligentes). Por este motivo, la cantidad de datos de sensores a procesarse crecera con rapidez, incluso en algunos eventos de interes. La deteccion de eventos automatizada puede proporcionar una solucion para esta situacion intentando agregar los datos de sensores brutos elemento por elemento y determinar los eventos abstractos e interdependientes, que puedan transferirse por bastante mas informacion que los propios datos brutos de sensores. A modo de ejemplo, ademas de los acontecimientos relacionados con el futbol americano antes citados, dichos eventos determinados podnan incluir “el vetnculo X esta situado en el cruce Y” o “atasco de trafico en la carretera X”.
El problema que se plantea en la deteccion de eventos automatizada es la potencia informatica requerida para realizar la deteccion de eventos sobre posiblemente flujos masivos de datos de eventos y/o sensores en paralelo - y todo bajo al menos requisitos de procesamiento casi en tiempo real. Este problema puede resolverse mediante la disposicion en paralelo de los detectores de eventos, que pueden, a modo de ejemplo, realizarse en diferentes nodos de redes de una red informatica, lo que permite, a modo de ejemplo, comunicarse a traves de Ethernet. Por lo tanto, un detector de eventos extrae automaticamente un determinado evento de interes a partir de un flujo de datos de sensores o de eventos en conformidad con las especificaciones de eventos de un usuario. Detectores de eventos individuales pueden distribuirse a traves de diferentes nodos de red de una red de datos, en donde los diferentes detectores de eventos se comuniquen utilizando datos de detectores y/o eventos que se desplazan a traves de la red utilizando rutas y bifurcaciones de redes diferentes. En consecuencia, los datos brutos de sensores y/o eventos pueden transportarse en paquetes de datos en conformidad con algun protocolo de transporte, tal como, a modo de ejemplo, UDP (Protocolo de Datagrama de Usuarios), TCP (Protocolo de Control de Transmision)/IP (Protocolo Internet), etc. Este concepto, sin embargo, causa nuevos problemas con respecto a la carga de calculo informatico posiblemente desequilibrada entre diferentes nodos de redes y con respecto a la sincronizacion de flujos de datos de eventos dentro de la red. Sin contramedidas adecuadas, las cargas de calculo informatico entre diferentes nodos de la red estan desequilibradas y los flujos de datos de eventos y/o sensores individuales, en la red, no estan sincronizados temporalmente entre sf, lo que significa que eventos individuales pueden alcanzar un detector de eventos fuera de su orden temporal original y dan lugar, en consecuencia, a resultados detectados falsos.
Examinemos, a modo de ejemplo, un escenario operativo deportivo de futbol americano, en donde una pluralidad de detectores de eventos de funcionamiento automatico en paralelo se supone que detectan pase desde el jugador A al jugador B. Con el fin de detectar dicho evento de “pase” se requiere la secuencia de eventos precedente siguiente:
1. “el jugador A esta en posesion del balon”
2. “el jugador A golpea el balon”,
3. “el balon abandona la posicion del jugador A”,
4. “el balon llega cerca del jugador B”,
5. “el jugador B golpea el balon”.
5
10
15
20
25
30
35
40
45
50
55
60
65
La deteccion de eventos para el evento de “el jugador X golpea el balon” puede basarse en la secuencia de eventos de “el jugador X cerca del balon y un maximo de aceleracion detecta del balon. Existen las siguientes alternativas para la configuracion de un detector de eventos automatizado para dicho evento “el jugador X golpea el balon”.
Se puede esperar eventos requeridos individuales - uno tras otro. Si se han considerado todos los eventos requeridos en el orden correcto (temporal) (en este caso, cualesquiera criterios de interrupcion no son considerados para mayor simplicidad), puede decirse que se ha visto o experimentado un pase. Sin embargo, para aplicaciones complejas, la deteccion de todos los eventos requeridos no tiene lugar necesariamente en un nodo de red unico o una unidad CPU (Unidad Central de Procesamiento) debido a la disposicion en paralelo de los detectores de eventos. Por este motivo, no esta necesariamente garantizado que los eventos requeridos individuales alcancen el detector de eventos en el orden requerido correcto. Esto puede deberse, a modo de ejemplo, a fluctuacion de la red, carga de la unidad CPU desequilibrada y/o variable o aumento de la carga de la red.
En consecuencia, se podna intentar memorizar los eventos y luego buscar en la memoria el modelo de eventos correcto. ^Pero que magnitud de memoria intermedia debena utilizarse?. Si se considera que un pase ha de suceder dentro de un maximo de 5 segundos, se tendna que considerar eventos dentro de un periodo de tiempo de un maximo de 5 segundos despues del primer evento pertinente hasta que se haya detectado el pase o hasta que se haya interrumpido voluntariamente. Sin embargo, es tambien posible que el ultimo evento pertinente tenga un calculo informatico demasiado complejo, lo que exige una pequena memoria intermedia adicional. ^Pero cual es el tamano de esta memoria intermedia adicional?. Y ^cual es la magnitud de la memoria intermedia relacionada con detectores de eventos compuestos que requieren el evento de “pase” como un evento de entrada?. Los retardos de senalizacion de eventos son dependientes de una configuracion de sistema/red completa, esto es, la distribucion de los detectores de eventos, asf como la carga de la red y la carga de la unidad CPU. Ni la configuracion del sistema final ni el escenario operativo de la carga pueden estar previstos en el momento de la compilacion.
La mayona de los sistemas de deteccion de eventos existentes no consideran el retardo de la senalizacion de eventos antes citado y/o las cuestiones del equilibrio de las cargas, puesto que en numerosos casos carece de importancia los retardos de propagacion o procesamiento de eventos. Sin embargo, este no es el caso en particular para sistemas de deteccion de eventos en tiempo real de alta complejidad, tales como escenarios de seguimiento de posiciones o de elementos financieros.
El siguiente ejemplo relacionado con el futbol americano se refiere al problema del retardo de eventos sobre la base de un escenario de deteccion de eventos “offside” frecuentemente requerido, lo que se ilustra esquematicamente en la Figura 1.
El jugador 100 pasa el balon 110 hacia delante a su companero de equipo 120. En el tiempo verdadero (real) del pase, esto es, el momento en el que el balon 110 experimenta una oscilacion de aceleracion o de valor maximo (vease Figura 1, izquierda), el jugador 120 esta situado en posicion “offside” (fuera de juego) en unos pocos centimetros. En consecuencia, el juego tendna que interrumpirse.
Sin embargo, para poder ser capaces de distinguir entre un pase directo o un driblling del primer jugador 100, el pase desde el primer jugador 100 al segundo jugador 120 solamente puede detectarse cuando el balon 120 abandona realmente la posicion del primer jugador 100. Debido a la tasa de datos limitada de los datos del sensor, esta decision caractenstica puede tener un retardo “natural” de al menos unos pocos milisegundos. Despues de transcurrir este retardo natural, el segundo jugador 120 puede, sin embargo, ya no estar en una posicion de fuera de juego (vease Figura 1, derecha).
En este caso, simplemente considerando el orden temporal de los eventos participates automaticamente generados no es suficiente tomar la decision de fuera de juego. Ademas, han de clasificarse. No solamente el tiempo de calculo del evento o el retardo de propagacion es importante, sino tambien las variaciones en tiempo real causales que han de considerarse. La marca temporal del evento del pase detectado ha de ser objeto de reposicion en el pasado, esto es, el momento en el que el balon experimenta un impulso de aceleracion.
Ademas de la estabilidad del sistema general demandada, es deseable garantizar una distribucion de la carga informatica posiblemente igual en un sistema informatico distribuido tambien debido a la importancia del orden temporal de los eventos para decisiones de seguimiento correctas o los propios eventos.
SUMARIO DE LA INVENCION
La invencion se establece con respecto a un aparato independiente en la reivindicacion 1, el metodo correspondiente en la reivindicacion 9 y el programa informatico correspondiente en la reivindicacion 10.
Para detectar eventos, tales como eventos primitivos y/o compuestos, varios detectores de eventos pueden hacerse funcionar en diferentes nodos de un sistema informatico distribuido. Por lo tanto, un evento primitivo suele estar exclusivamente basado o derivado a partir de datos (brutos) de sensores, mientras que un evento compuesto suele
5
10
15
20
25
30
35
40
45
50
55
60
65
estar basado en eventos primitivos u otros eventos compuestos precedentes. Los datos de sensores pueden derivarse de una red de sensores acoplada al sistema distribuido, en donde la red de sensores puede, en particular, ser una red de seguimiento de localizaciones inalambrica o un sistema pertinente, en conformidad con algunas formas de realizacion. En este caso, los datos de sensores pueden comprender datos cinematicos comprendiendo, a su vez, los datos cinematicos, muestras de datos de localizaciones geograficas, muestras de datos de velocidad y/o muestras de datos de aceleracion, en donde las muestras de datos individuales corresponden a intervalos temporales de muestras predefinidos, respectivamente. Por lo tanto, los eventos pueden detectarse por detectores de eventos sobre la base de eventos anteriores y/o flujos de datos de detectores en paralelo que se derivan a partir de un sistema de localizacion geografica.
Dichos detectores de eventos pueden causar diferentes cargas sobre sus respectivos nodos asociados y/o el sistema informatico distribuido completo, dependiendo de la condicion del sistema y/o dependiendo de la complejidad informatica del algoritmo subyacente del detector de eventos y/o los datos de detectores que han de analizarse. Por lo tanto, en un escenario de premisas o condiciones cambiantes de una configuracion del sistema original, una distribucion original de los detectores de eventos en los diversos nodos de la red podna llegar a ser sub-optimos con respecto al equilibrio de carga informatica o podna incluso dar lugar a una interrupcion no planificada del sistema informatico distribuido.
Dichos desequilibrios de cargas indeseables pueden contrarrestarse por las formas de realizacion de la presente invencion. Si, a modo de ejemplo, al menos un retardo de eventos alcanza un valor prohibitivamente alto, ello puede constituir un indicador para ese hecho en un procedimientos de detector de eventos original a partir de los cuales el evento correspondiente alcanza un proceso de detector de eventos destino, se sobrecarga o experimenta algunos otros problemas operativos. En dicho escenario, puede ser deseable transferir o reubicar el proceso de detector de eventos origen en condicion anomala a algun otro recurso de hardware del sistema informatico distribuido. A modo de ejemplo, el proceso de detector de eventos origen en condicion anomala puede transferirse desde su nodo actual a otro nodo, ffsicamente separado y diferente, del sistema informatico distribuido, que tiene mas recursos de hardware disponibles.
Para esta finalidad, las formas de realizacion de la presente invencion dan a conocer un aparato para la transferencia de un primer proceso de detector de eventos de un primer nodo de un sistema informatico distribuido a un segundo proceso de detector de eventos de un segundo nodo del sistema informatico distribuido. El segundo nodo es ffsicamente diferente del primer nodo. El aparato comprende un medio para copiar un contenido de proceso del primer proceso de detector de eventos al segundo proceso de detector de eventos, medios para coordinar eventos de entrada del primer proceso de detector de eventos tales como los eventos de entrada del primer proceso de detector de eventos que se procesan en paralelo en, a la vez, el primer y el segundo proceso de detector de eventos y medios para verificar si los eventos de entrada del primer proceso de detector de eventos, que se procesan en paralelo en, a la vez, el primer y el segundo proceso de detector de eventos, conducen a eventos de salida identicos en ambos primero y segundo proceso de detector de eventos.
En conformidad con algunas formas de realizacion, un proceso de detector de eventos ha de entenderse como una instancia operativa de un programa informatico que se esta ejecutando en un nodo del sistema distribuido. Un proceso de detector de eventos comprende el codigo del programa del programa informatico y su actividad actual. El sistema distribuido puede ser una red informatica distribuida o un procesador multinucleo, a modo de ejemplo. En caso de una red informatica, un nodo, esto es, un nodo de red, puede comprender un dispositivo informatico o una unidad de procesamiento (p.ej., unidad CPU) que se comunica con otros nodos de la red a traves de Ethernet, a modo de ejemplo, o alguna otra forma de tecnologfa de comunicacion por redes.
En conformidad con algunas formas de realizacion, un proceso de detector de eventos puede comprender una maquina de estados, que puede entenderse como un modelo de comportamiento utilizado para disenar un programa informatico subyacente del proceso de detector de eventos. Una maquina de estados esta constituida por un numero (finito) de estados asociados a transiciones, en donde la transicion es un conjunto de acciones que se inicia desde un estado y finaliza en otro (o el mismo) estado. Una transicion se inicia por un dispositivo iniciador, en donde dicho dispositivo iniciador puede, a modo de ejemplo, ser un evento primitivo o evento compuesto o una entrada de datos brutos de sensores al proceso de detector de eventos. Por lo tanto, en conformidad con los aspectos de la idea inventiva de la presente invencion un proceso de detector de eventos puede comprender una maquina de estados y un contenido de proceso de detector de eventos o respuesta anticolision que puede reflejar un estado actual de dicha maquina de estados, tal como, a modo de ejemplo, variables individuales o conjuntos matriciales o variables. Para procesos de detector de eventos, la maquina de estados puede ser una maquina de estados basada en software, p.ej., una maquina de estados de Lenguaje Unificado de Modelado (UML).
El aparato para la transferencia, que puede referirse entonces como un aparato de transferencia, puede ponerse en practica, a modo de ejemplo, como una entidad central del sistema informatico distribuido. Dicha entidad central puede tener informacion sobre mas o la totalidad de los retardos de senales de eventos que se desplazan a lo largo de diferentes rutas en el sistema distribuido. Por lo tanto, un retardo de un evento puede, a modo de ejemplo, deberse a diferente fluctuacion, diferentes capacidades de procesamiento y/o diferentes tiempos de propagacion de las senales de las rutas o trayectorias de las redes. Como alternativa o de forma adicional, el aparato de
5
10
15
20
25
30
35
40
45
50
55
60
65
transferencia central puede tener informacion sobre mas o la totalidad de situaciones de carga (p.ej., carga de la unidad CPU) de nodos individuales y/o informacion indicativa de una carga del sistema global. En consecuencia, en conformidad con algunas formas de realizacion, el aparato de transferencia puede tener un conocimiento global de los parametros del sistema. En conformidad con otras formas de realizacion, el aparato de transferencia puede ser tambien no central, esto es, distribuido a traves de una pluralidad de nodos de la red. En este caso, un nodo de la red solamente puede tener informacion limitada indicativa de su propia carga o situacion de retardo de eventos. Por lo tanto, el conocimiento de los parametros del sistema global puede no estar disponible en algunas formas de realizacion.
Los procesos de detectores de eventos del sistema pueden estar distribuidos entre los nodos de la red en conformidad con un determinado criterio de distribucion de procesos de detector de eventos, que puede ser mas o menos optimo, dependiendo del parametro del sistema global o del nivel de conocimiento de la situacion del sistema del aparato de transferencia. Un aparato de transferencia central acoplado a por lo menos una pluralidad de nodos de red pueden mas informacion del sistema disponible que la forma de realizacion de un aparato de transferencia, que solamente estan acoplados a un nodo de red unico o a unos pocos nodos de red.
Formas de realizacion del aparato de transferencia pueden comprender medios para determinar el segundo nodo entre un conjunto de posibles segundos nodos sobre la base de un criterio de distribucion del proceso de detector de eventos (optimo). Dependiendo de lo que se considere como ser “optimo”, el criterio de distribucion de procesos de detector de eventos optimo puede dar lugar a uno de entre un retardo global mmimo de todos los eventos en el sistema informatico distribuido, un numero mmimo de suscripciones de eventos seguras en el sistema informatico distribuido, una variacion minima de la carga de un nodo dado del sistema informatico distribuido o una carga minima del sistema informatico distribuido global. En consecuencia, un proceso de detector de eventos, o un planificador de eventos que le este asociado, pueden realizar la suscripcion a eventos que sean requeridos por el proceso de detector de eventos para determinar sus eventos de salida. Si algunos eventos de entrada son absolutamente obligatorios para el detector de eventos puede “suscribirse de forma segura” a dichos eventos de entrada. En este caso, los eventos en cuestion pueden transportarse al planificador/detector de eventos mediante conceptos de transmision controlada por errores (p.ej., Demanda de Repeticion Automatica (ARQ)).
En conformidad con algunas formas de realizacion, el aparato de transferencia puede comprender medios para crear una instancia operativa de proceso, que este en correspondencia con el primer proceso de detector de eventos, en el segundo nodo con el fin de obtener el segundo proceso de detector de eventos. Una instancia operativa ha de entenderse como una ocurrencia o una copia de un objeto, se este ejecutando actualmente o no lo este. Instancias operativas de una clase o de un proceso comparten el mismo conjunto de atributos, pero suelen diferir en lo que contienen esos atributos. El procedimiento de transferencia de procesos de detector de eventos puede, a modo de ejemplo, realizarse con la ayuda de un Sistema Operativo (OS) que controle el sistema informatico distribuido. Un sistema operativo OS, por lo tanto, ha de entenderse como un conjunto de programas que gestiona los recursos de hardware del ordenador del sistema distribuido, y proporciona servicios comunes para el software de aplicacion, tales como los procesos de detectores de eventos, a modo de ejemplo. Dichos servicios del sistema operativo OS pueden comprender tambien funcionalidades de instanciacion, esto es, funcionalidades para crear una instancia operativa del proceso, a la que puedan tener acceso los medios para copiar el contenido del proceso. Es decir, los medios de creacion pueden comprender medios para acceder a funcionalidades de instanciacion de procesos de un sistema operativo que controla el sistema distribuido.
Tan pronto como el segundo proceso de detector de eventos, que es una instancia operativa del primer proceso de detector de eventos, haya sido objeto de instanciacion en el segundo nodo, puede suscribirse a los mismos eventos a los que el segundo proceso de detector de eventos del primer nodo haya estado ya suscrito, con el fin de recibir los mismos eventos o flujos de eventos desde el sistema distribuido como senales de entrada. Dicho de otro modo, los medios para crear la instancia pueden ser utilizables, despues de la instanciacion del segundo proceso de detector de eventos en el segundo nodo, para la suscripcion del segundo proceso de detector de eventos para o a eventos de entrada identicos que los del primer proceso de detector de eventos.
Los servicios del sistema operativo pueden comprender, ademas, funcionalidades de copia, a las que pueden tener acceso los medios de copia para copiar el contenido del proceso. Es decir, los medios de copia pueden comprender medios para acceder a las funcionalidades de copia del proceso de un sistema operativo que se ejecuta en los nodos informaticos o alguna otra entidad de control del sistema distribuido. Los medios de copia pueden ser tambien utilizables para “congelar” el contenido del proceso del primer proceso de detector de eventos en un instante temporal predefinido con el fin de obtener una condicion definida del primer proceso de detector de eventos en el instante de la “congelacion”. Por lo tanto, el termino “congelacion” significa que el proceso de detector de eventos se lleva a un estado determinado y deja de dar respuesta a sus entradas en el instante de la congelacion operativa. Dicho de otro modo, el primer proceso de detector de eventos puede interrumpirse en el instante de la congelacion operativa con el fin de copiar su contenido para el segundo proceso de detector de eventos objeto de instanciacion.
Por lo tanto, los medios de copia pueden adaptarse para copiar el contenido del proceso congelado desde el primer proceso de detector de eventos al segundo proceso de detector de eventos con el fin de obtener el mismo estado determinado o condicion definida en el segundo proceso de detector de eventos. En consecuencia, los medios para
5
10
15
20
25
30
35
40
45
50
55
60
65
copiar pueden ser utilizables para copiar el contenido del proceso de forma iterativa desde el primer proceso de detector de eventos al segundo proceso de detector de eventos, de modo que sea copiado primero el contenido del proceso (que ya no cambiara durante el resto del procedimiento de copia). Es decir, en cada iteracion, solamente se copia el contenido del proceso, que no cambiara durante el procedimiento de copia restante. Lo que antecede permite copiar el contenido del proceso sin interrumpir explfcitamente los procesos de detector de eventos mientras se realiza la copia. En consecuencia, los datos contenidos en el primer proceso de detector de eventos pueden copiarse desde el primer nodo al segundo nodo en una pluralidad de iteraciones. En consecuencia, debe definirse que datos pertenecen a la informacion del estado operativo de un detector de eventos. En caso de procesos, esta es la memoria de procesos, a modo de ejemplo. Mientras se copia, de forma iterativa, el contenido del proceso, la diferencia o el intervalo (esto es, el denominado delta) del contenido del proceso a copiarse obtiene una diferencia cada vez menor hasta que la diferencia permanezca pequena si no es cero. Es decir, una copia del delta del contenido del proceso no sera cero puesto que un detector de eventos “no congelados” puede cambiar su estado de forma continua. Por lo tanto, antes de copiar un ultimo delta de contenido, el proceso de detector de eventos puede congelarse de forma conveniente.
Antes del recientemente objeto de instanciacion, esto es, el segundo proceso de detector de eventos, se inicie o conmute en el segundo nodo, los datos de entrada (identicos) de ambos procesos de detector de eventos pueden memorizarse de modo que ambos procesos de detector de eventos que, debido a la operacion de copia, ya tienen, en condiciones ideales, la misma condicion interna definida, tambien obtienen datos de entrada externos identicos comenzando a partir del instante predefinido, esto es, el instante de “congelacion”. Por lo tanto, los medios para copiar pueden ser tambien utilizables para memorizar los eventos de entrada del primer proceso de detector de eventos durante y/o despues de la copia del contenido el proceso desde el primero al segundo proceso de detector de eventos.
Cuando la totalidad del contenido del proceso pertinente ha sido copiado desde el primero (es decir, la antigua instancia), al segundo (esto es, la nueva instancia) proceso de detector de eventos y los datos de entrada han sido memorizados, ambos procesos de detector de eventos pueden activarse para el procesamiento en paralelo de los datos de entrada (eventos) memorizados (idealmente identicos) a condicion de que el primero y el segundo proceso de detector de eventos esten ambos en las mismas condiciones internas o estados. Es decir, ambos detectores de eventos pueden activarse despues de la copia y del procedimiento de memorizacion y pueden procesar los mismos datos de entrada bifurcados y, por lo tanto, en paralelo. Para esta finalidad, los medios para coordinar pueden ser utilizables para planificar la copia de contenidos de procesos, la memorizacion intermedia y el procesamiento de los eventos de entrada del primer proceso de detector de eventos, de modo que el primero y el segundo proceso de detector de eventos se realicen en paralelo comenzando desde el instante temporal predefinido (congelacion) y sobre la base del contenido del proceso objeto de copia. De este modo, las instancias de procesos que se ejecutan en diferentes nodos de red pueden producir salidas identicas. Ademas, los medios de coordinacion pueden tener acceso al sistema operativo OS para esa finalidad, a modo de ejemplo.
Los medios para verificar, que pueden, a modo de ejemplo, comprender un comparador, pueden verificar luego si ambos procesos de detector de eventos conducen realmente, o no, a la misma salida, respectivamente. Si este no fuera el caso, pueden desactivarse el antiguo, es decir, el primero, proceso de detector de eventos. De este modo, puede disminuir la carga del primer nodo. Si ambos procesos de detector de eventos no conducen a la misma salida, la copia precedente y/o el procedimiento de memorizacion intermedia probablemente haya tenido un fallo operativo y el nuevo proceso de detector de eventos (esto es, el segundo) puede desactivarse para iniciar el procedimiento de transferencia de detector de eventos completo desde el principio. Por lo tanto, en conformidad con algunas formas de realizacion, los medios para la verificacion pueden ser utilizables para desactivar el primer proceso de detector de eventos en caso de que los eventos de salida, en ambos primero y segundo proceso de detector de eventos, sean identicos o, desactivar el segundo proceso de detector de eventos en caso de que los eventos de salida en ambos primero y segundo proceso de detector de eventos no sean identicos.
En conformidad con un aspecto adicional de la idea inventiva de la presente invencion, se da a conocer tambien un sistema informatico distribuido para determinar los eventos sobre la base de al menos un flujo de datos (brutos) de sensores. El sistema informatico distribuido, dado a conocer, que puede ser una red informatica, comprende una pluralidad de nodos distribuidos, teniendo cada uno de ellos un proceso de detector de eventos asociado y al menos una forma de realizacion de un aparato para la transferencia de procesos de detector de eventos entre los nodos distribuidos del sistema informatico distribuido.
En algunas formas de realizacion, el sistema informatico distribuido puede acoplarse a un sistema de localizacion para localizar y/o efectuar el seguimiento de objetos dentro de una zona geografica preestablecida, en donde el sistema de localizacion proporciona el por lo menos un flujo de datos de sensores para el sistema informatico distribuido, conteniendo el flujo de datos de sensores, que son datos indicativos de posiciones geograficas de los objetos localizados. El sistema de localizacion puede basarse de una red de sensores inalambrica, que ha sido ya descrita en la parte introductoria de esta especificacion.
A pesar de la transferencia de los procesos de detectores de eventos, los eventos que se desplazan a lo largo de diferentes rutas o trayectorias a traves del sistema distribuido pueden experimentar todavfa retardos diferentes,
5
10
15
20
25
30
35
40
45
50
55
60
65
incluso cuando los detectores de eventos esten (casi) optimamente distribuidos en el sistema distribuido. Lo que antecede puede deberse a diferentes retardos de propagacion, tiempo de procesamiento de senales y/o fluctuacion de la red. Las diferencias en los retardos de eventos pueden dar lugar a detecciones de eventos compuestos falsas indeseables, puesto que un detector de eventos puede consumir eventos de entrada en un orden temporal que no corresponda a su orden de ocurrencia original. Por lo tanto, ademas de una distribucion optima de los detectores de eventos entre varios nodos de la red, una recuperacion de un orden temporal original de eventos que alcanzan un detector de eventos a traves de diferentes rutas de la red y, por lo tanto, que experimenten diferentes retardos de procesamiento y/o programa de aplicacion pueden ser deseables para obtener resultados optimos.
Lo que antecede puede conseguirse retardando los eventos adecuadamente antes del reenvfo o su retransmision a un detector de eventos posterior. El tiempo en el que un evento es retardado para el detector de evento posterior puede basarse en la marca temporal original del respecto evento y los retardos de procesamiento y/o propagacion de todos los eventos de entrada requeridos por el detector de eventos posterior con el fin de determinar su evento de salida.
Para esta finalidad, las formas de realizacion de la presente invencion dan a conocer tambien un aparato para sincronizar un primer evento con un segundo evento. El primer evento se ha asociado con un primer valor de temporizacion de eventos basado en una senal de reloj comun, mientras que el segundo evento se ha asociado con un segundo valor de temporizacion de eventos basado en la senal de reloj comun. El primero y el segundo eventos experimentan diferentes retardos, respectivamente, mientras se desplazan a traves de diferentes rutas de un sistema informatico distribuido. Al menos un evento de salida ha de determinarse sobre la base del primero y del segundo evento por un detector de eventos. En conformidad con las formas de realizacion, el aparato para sincronizar comprende un compensador de retardos asociado al detector de eventos, en donde el compensador de retardos comprende una entrada para recibir el primero y el segundo eventos y una salida para reenviar las versiones retardadas el primero y segundo eventos recibidos al detector de eventos asociado. El compensador de retardos es utilizable para retransmitir o enviar el primero y el segundo evento al detector de eventos asociado sobre la base de los retardos experimentados y basados en el primero y segundo valores de temporizacion de eventos asociados, que pueden referirse tambien como marcas temporales de eventos que reflejan el tiempo de ocurrencia del evento original, respectivamente.
En conformidad con otro aspecto de la presente invencion, el aparato para la transferencia del primer proceso de detector de eventos puede integrarse en un sistema informatico distribuido, preferentemente, pero no de forma exclusiva, en combinacion con el aparato para sincronizar los primeros y segundos eventos operativos. Dicho sistema informatico distribuido puede, por consiguiente, comprender una pluralidad de nodos distribuidos, en donde cada uno de entre la pluralidad de nodos distribuidos comprende un aparato para sincronizar, en conformidad con las formas de realizacion de la presente invencion, y un aparato la transferencia de un primer proceso de detector de eventos de un primer nodo del sistema informatico distribuido a un segundo proceso de detector de eventos de un segundo nodo del sistema informatico distribuido, en donde el aparato para la transferencia comprende las caractensticas operativas antes citadas.
Dicho de otro modo, las formas de realizacion dan a conocer un sistema informatico distribuido para determinar eventos basados en al menos un flujo de datos de detectores (brutos). El sistema informatico distribuido que puede ser una red de ordenadores, comprende una pluralidad de nodos distribuidos. El sistema informatico distribuido comprende una forma de realizacion del aparato de transferencia en conformidad con la presente invencion. Ademas, cada uno de entre la pluralidad de nodos informaticos distribuidos pueden comprender un aparato para sincronizar un primer evento, que tenga asociado un primer valor de temporizacion de eventos basado en una senal de reloj comun, y un segundo evento que tiene asociado un segundo valor de temporizacion de eventos sobre la base de la senal de reloj comun, en donde el primero y el segundo eventos experimentan diferentes retardos mientras se desplazan a traves de diferentes rutas del sistema informatico distribuido. Al menos un evento de salida ha de determinarse por detector de eventos sobre la base del primer evento y del segundo evento. El aparato para la sincronizacion comprende un compensador de retardos asociado para el detector de eventos, teniendo el compensador de retardos una entrada para la recepcion del primero y del segundo eventos y teniendo una salida para reenviar las versiones retardadas del primero y del segundo eventos recibidos al detector de eventos asociado, en donde el compensador de retardos es utilizable para retransmitir el primero y el segundo eventos al detector de eventos sobre la base de los retardos experimentados y basado en los primeros y segundos valores asociados.
Los desequilibrios de la carga indeseables antes citados entre diferentes nodos pueden, a modo de ejemplo, detectarse mediante formas de realizacion del aparato de sincronizacion o su compensador de retardos. Si, a modo de ejemplo, al menos un retardo de eventos alcanza un retardo prohibitivamente alto, esta circunstancia puede ser un indicador para ese hecho de que un proceso de detector de eventos origen desde el que los correspondientes eventos alcanzan el compensador de retardos, esta sobrecargado o experimenta algun otro problema. En dicho escenario operativo puede ser deseable transferir o reubicar el proceso de detector de eventos origen en condicion anomala a algun otro recurso de hardware del sistema informatico distribuido. A modo de ejemplo, el proceso de detector de eventos origen en condicion anomala puede transferirse desde nodo origen actual a otro nodo de destino diferente y ffsicamente separado del sistema informatico distribuid, que tiene mas recursos de hardware disponibles. El aparato para la transferencia de eventos y el aparato para sincronizar eventos pueden, por lo tanto, cooperar, de
5
10
15
20
25
30
35
40
45
50
55
60
65
forma sine^stica, en la manera descrita. Es decir, el aparato para la sincronizacion puede detectar un retardo y, por lo tanto, anomalfas de carga dentro del sistema informatico distribuido, mientras que el aparato para la transferencia puede efectuar la transferencia de procesos de detector de eventos con el fin de equilibrar mejor la distribucion de detectores de eventos, dando lugar a mas pequenos retardos globales y a mas bajas cargas.
Otros aspectos de la presente invencion dan a conocer tambien un metodo para la transferencia de un primer proceso de detector de eventos de un primer nodo de un sistema informatico distribuido a un segundo proceso de detector de eventos de un segundo nodo de un sistema informatico distribuido, siendo el segundo nodo diferente del primer nodo. El metodo comprende una etapa de copia de un contenido de proceso del primer proceso de detector de eventos al segundo proceso de detector de eventos, una etapa de coordinacion de los eventos de entrada del primer proceso de detector de eventos de modo que los eventos de entrada del primer proceso de detector de eventos sean procesados en paralelo en ambos primero y segundo proceso de detector de eventos, y una etapa de verificacion de si los eventos de entrada del primer proceso de detector de eventos, que se procesan en paralelo en ambos primero y segundo proceso de detector de eventos, conducen a eventos de salida identicos en ambos primero y segundo proceso de detector de eventos.
Algunas formas de realizacion comprenden un circuito de control digital instalado dentro de un aparato para realizar el metodo para la transferencia del primer evento y del segundo evento. Dicho circuito de control digital, a modo de ejemplo, un procesador de senal digital (DSP) necesita programarse en consecuencia. Por lo tanto, formas de realizacion adicionales dan a conocer tambien un programa informatico que tiene un codigo de programa para realizar los modos de realizacion del metodo, cuando el programa informatico se ejecuta en un ordenador o un procesador digital.
Una ventaja de las formas de realizacion de la presente invencion es que los eventos pueden reconocerse/detectarse y reenviarse a detectores de eventos posteriores con solamente un retardo mmimo. Formas de realizacion de la presente invencion pueden ponerse en practica de modo que el reenvfo de eventos con menos retardo no sea facilmente posible sin tener el riesgo de una deteccion de eventos posterior erronea. Ademas, con formas de realizacion de la presente invencion, los desarrolladores de detectores de eventos no necesitan tener ningun conocimiento especial sobre los retardos de eventos particulares, puesto que las formas de realizacion del sistema distribuido pueden medir y administrar dichos retardos de eventos de forma automatica.
Otra ventaja puede derivarse de la organizacion automatica de un sistema informatico distribuido en conformidad con las formas de realizacion de la presente invencion. Dicho sistema informatico distribuido puede reaccionar sobre las condiciones del sistema cambiantes efectuando la transferencia de procesos de detector de eventos entre nodos de la red, de modo que la red o sistema distribuido sea siempre capaz de realizar un procesamiento de senales de eventos de forma solida y eficiente.
BREVE DESCRIPCION DE LOS DIBUJOS
Algunas formas de realizacion de los aparatos y/o metodos seran descritas a continuacion, a modo de ejemplo solamente, y haciendo referencia a los dibujos adjuntos en los que
La Figura 1 ilustra un escenario operativo de deteccion de eventos-situaciones de fuera de juego;
La Figura 2 ilustra, de forma esquematica, un diagrama de bloques de un aparato para sincronizar un primer evento con un segundo evento, en conformidad con una forma de realizacion de la presente invencion;
La Figura 3 ilustra, de forma esquematica, una forma de realizacion de la presente invencion, en donde el aparato para sincronizar el primer evento con el segundo evento se pone en practica como un programa middleware entre una red distribuida y un software de detector de eventos asociado;
La Figura 4 ilustra una tabla de temporizacion de cuatro eventos A, B, C y D que son requeridos por un detector de eventos;
La Figura 5 ilustra, de forma esquematica, una planificacion de eventos en conformidad con una forma de realizacion de la presente invencion;
La Figura 6 ilustra, de forma esquematica, un diagrama de flujo de un metodo, a modo de ejemplo, para sincronizar un primer evento con un segundo evento;
La Figura 7 ilustra una forma de realizacion de un sistema informatico distribuido para determinar eventos sobre la base de al menos un flujo de datos de sensores, en donde el sistema informatico distribuido comprende una pluralidad de nodos informaticos distribuidos en donde cada uno de entre la pluralidad de nodos informaticos distribuidos comprende una forma de realizacion del aparato para sincronizar eventos;
La Figura 8 ilustra, de forma esquematica, una forma de realizacion de un aparato para efectuar la transferencia de
5
10
15
20
25
30
35
40
45
50
55
60
65
un primer proceso de detector de eventos de un primer nodo de un sistema informatico distribuido a un segundo proceso de detector de eventos de un segundo nodo del sistema informatico distribuido; y
La Figura 9 ilustra, de forma esquematica, un diagrama de flujo de una forma de realizacion del metodo para la transferencia de un primer proceso de detector de eventos de un primer nodo de un sistema informatico distribuido a un segundo proceso de detector de eventos de un segundo nodo del sistema informatico distribuido.
DESCRIPCION DETALLADA DE LAS FORMAS DE REALIZACION
Varias formas de realizacion, a modo de ejemplo, se describiran a continuacion, mas completamente, haciendo referencia a los dibujos adjuntos en los que se ilustran algunas formas de realizacion a modo de ejemplo. En las Figuras, el espesor de las capas y/o zonas puede exagerarse para mayor claridad.
En consecuencia, aunque las formas de realizacion ejemplo son capaces de varias modificaciones y formas alternativas, dichas formas de realizacion se ilustran, a modo de ejemplo, en las Figuras y se describiran aqrn en detalle. Debe entenderse, sin embargo, que no existe intencion alguna de limitar las formas de realizacion ejemplo a las formas particulares dadas a conocer, sino que por el contrario, dichas formas de realizacion estan disenadas para cubrir todas las modificaciones, equivalentes y alternativas que caigan dentro del alcance de la invencion. Las referencias numericas similares se refieren a elementos similares a traves de toda la descripcion de las Figuras.
Se entendera que cuando un elemento se refiera como estando “conectado” o “acoplado” a otro elemento, puede conectarse directamente o acoplarse al otro elemento o los elementos intervinientes que puedan estar presentes. Por el contrario, cuando un elemento se refiere como estando “directamente conectado” o “directamente acoplado” a otro no existen elementos intervinientes presentes. Otros terminos utilizados para describir la relacion entre elementos deben interpretarse de una forma similar (p.ej., “entre” respecto a “directamente entre”, “adyacente” frente a “directamente adyacente”, etc.).
La terminologfa aqrn utilizada es para la finalidad de describir formas de realizacion particulares solamente y no esta prevista para ser limitadora de las formas de realizacion ejemplo. Tal como aqrn se utilizan, las formas singulares “un”, “una” y “el” estan previstos para incluir tambien las formas plurales, a no ser que el contexto lo indique claramente de otro modo. Se entendera, ademas, que los terminos “comprende”, “que comprende”, “incluye” y/o “incluyendo”, cuando aqrn se utilizan, especifican la presencia de caractensticas declaradas, numeros enteros, etapas, operaciones, elementos y/o componentes, pero no excluyen la presencia o adicion de una o mas otras caractensticas, numeros enteros, etapas, operaciones, elementos, componentes y/o sus grupos.
A no ser que se definan de otro modo, todos los terminos (incluyendo los terminos tecnicos y cientfficos) aqrn utilizados tienen el mismo significado que se entiende normalmente por un experto en esta tecnica a la que pertenecen las formas de realizacion ejemplo. Asimismo, se entendera que los terminos p.ej., los definidos en los diccionarios normalmente utilizados, deben interpretarse como teniendo un significado que es coherente con su significado en el contexto de la tecnica pertinente y no habran de interpretarse en un sentido idealizado o formal a no ser que aqrn expresamente asf se definan.
La Figura 2 ilustra, de forma esquematica, una forma de realizacion de un aparato 200 para sincronizar un primer evento 202 con un segundo evento 204.
El primer evento 202 esta asociado con un primer valor de temporizacion, o marca temporal original, sobre la base de una senal de referencia de reloj comun. El segundo evento 204 tiene tambien asociado un valor de temporizacion de eventos original o una marca temporal, sobre la base de la senal de reloj comun. Los primero y segundo valores de temporizacion de eventos originales representan un instante de ocurrencia del evento original. La senal de reloj comun proporciona un tiempo del sistema global, que es valido para todos los nodos distintos en un sistema informatico distribuido. Antes de alcanzar el aparato 200 para sincronizar los eventos, los primero y segundos eventos 202, 204 experimentan cada uno diferentes retardos cuando se desplazan a traves de diferentes rutas o trayectorias del sistema informatico distribuido (que no se ilustran en la Figura 2). Sobre la base de los dos eventos 202, 204 al menos un evento de salida 206 puede determinarse por detector de eventos 208, que puede disponerse posteriormente (en posicion sucesiva) o en flujo descendente respecto al aparato 200 para sincronizar los eventos 202, 204.
El aparato de sincronizacion 200 que puede tambien considerarse como un planificador de eventos para el detector de eventos 208 en algunas formas de realizacion comprende un compensador de retardos 210, tambien referido como un medio de compensacion de retardos, que esta asociado o relacionado con el detector de eventos 208 posterior. El compensador de retardos 210 tiene entradas 212-1, 212-2 para recibir el primero y el segundo evento 202, 204 desde la red distribuida. Ademas, el compensador de retardos tiene salidas 214-1, 214-2 para retransmitir o reenviar versiones retransmitidas de los primero y segundos eventos recibidos 202, 204 al deteccion asociado 208, que puede disponerse posteriormente o en flujo descendente al compensador de retardos 210. El compensador de retardos 210 es utilizable para retransmitir los primero y segundo eventos 202, 204 al detector de eventos asociado 208 sobre la base de los retardos experimentos de los eventos 202, 204 y sobre la base de los primero y segundos
5
10
15
20
25
30
35
40
45
50
55
60
65
valores de temporizacion de eventos originales asociados o marcas temporales vinculadas a los dos eventos 202, 204.
Una configuracion ejemplo de un sistema informatico distribuido 300 (en forma de una red), varios detectores de eventos 208 y una forma de realizacion de un aparato 200 para sincronizar una pluralidad de eventos se ilustra, de forma esquematica, en la Figura 3.
La Figura 3 ilustra, de forma esquematica, una red distribuida 300 desde la que eventos 302 y datos brutos de sensores 304 alcanzan el aparato de sincronizacion 200, que se indica, a modo de ejemplo, como “EventCore” en la Figura 3. El aparato de sincronizacion 200 puede actuar como un planificador de eventos recibiendo eventos 302 y/o datos de sensores brutos 304 desde la red subyacente 300 por una parte, y reenviandolos a una pluralidad de detectores de eventos 208 acoplados al aparato de sincronizacion 200 en alguna salida requerida o instancias del tiempo de retransmision, por otro lado. El aparato de sincronizacion 200 esta adaptado para sincronizar diferentes eventos 302 y/o datos de sensores 304, que son requeridos por los detectores de eventos posteriores 208. De este modo, el aparato de sincronizacion 200 puede ponerse en practica en una manera distribuida, de modo que pueda sincronizar individualmente eventos 302 o 304 requeridos por cada uno de los detectores de eventos posteriores 208. Es decir, el aparato base de eventos 200 puede comprender una pluralidad de compensadores de retardos 210 o sus instancias operativas, en donde cada uno de entre la pluralidad de compensadores de retardos 210 esta asociado a uno de entre la pluralidad de detectores de eventos posteriores 208. De este modo, una instancia del compensador de retardos 210 y un detector de eventos asociado 208 pueden ponerse en practica, preferentemente, en un nodo de red comun. En conformidad con algunas formas de realizacion, el aparato de sincronizacion 200 y sus instancias de compensadores de retardos 210 pueden ponerse en practica como un programa middleware entre la red 300 y los detectores de eventos 208.
Una senal de reloj comun 306 se proporciona al aparato de sincronizacion 200 o a sus diferentes instancias operativas, con lo que se permite la sincronizacion temporal de todas las existencias de detectores de eventos y/o compensadores de retardos 210, 208 de la arquitectura de sistema distribuido ilustrada en la Figura 3. De este modo, cada compensador de retardos 210 tiene acceso a la misma base de tiempos comun. dicho de otro modo, todos los aparatos de sincronizacion (distribuidos) o instancias de compensadores de retardo 200, 210, pueden recuperar la misma marca temporal del sistema en cualquier momento dado. En caso de que una instancia de compensador de retardos 210 reciba un evento 302 o 304, puede memorizar dicho evento para una instancia de detector de eventos posterior asociada 208 durante una cantidad de tiempo requerida, que corresponde a una probabilidad suficientemente alta para que no se reciban, en el futuro, ningun por otro evento requerido por la instancia de detector de eventos 208 y que contenga una marca temporal anterior.
Para conocer mas detalles, se describe a continuacion la realizacion ejemplo siguiente: un detector de eventos arbitrario 208 requiere eventos de entrada A, B, C y D para ser capaz de determinar correctamente o detectar un evento de salida compuesto E sobre la base de dichos eventos de entrada. Puesto que cada instancia de red esta sincronizada por la senal de reloj comun global 306, es posible asociar un tiempo de deteccion a cada evento (vease Figura 4, columna central). De este modo, el instante de tiempo de deteccion de un evento es necesariamente posterior al instante de ocurrencia real del evento (vease Figura 4, columna izquierda) debido a la velocidad de procesamiento limitada.
En esta realizacion ejemplo, el tiempo de ocurrencia del evento A tevent.A es 10, sin embargo, solamente se detecta por un detector de eventos en el tiempo de deteccion tdetection.A = 14. El detector de eventos posterior para detectar el evento compuesto E recibe el evento A requerido en el tiempo de recepcion tED.A = 16. De forma similar, el evento B realmente sucede en teven.B = 12 y resulta detectado por algun detector de eventos en tdetection.B = 13. El detector de eventos compuesto posterior para detectar el evento compuesto E recupera el evento B en la instancia de tiempo tED.A = 15. Es decir, el detector de eventos compuestos para el evento E recibe el evento B antes de que reciba el evento A, lo que, sin embargo, ha sucedido realmente con anterioridad respecto al evento B. Debido a los retardos de propagacion de red y procesamiento tambien el evento C, que realmente aparece posteriormente al evento A, se recibe con anterioridad en el detector de eventos compuestos posterior.
A partir de este ejemplo, sin utilizar formas de realizacion de la presente invencion, puede deducirse que el detector de eventos compuestos posterior para el evento E recibe los eventos A, B, C y D requeridos en un orden temporal (vease Figura 4, columna de la derecha), que es diferente del orden temporal o causal original (vease Figura 4, columna izquierda) de dichos eventos. De este modo, es la tarea de las formas de realizacion de la presente invencion clasificar los eventos requeridos A, B, C y D de forma adecuada con el fin de recuperar un orden temporal que corresponde al orden temporal original antes del reenvfo de los eventos requeridos A, B, C y D al detector de eventos compuestos posterior. Para esa finalidad, una instancia del aparato de sincronizacion 200 puede ponerse en practica en cada nodo de red junto con un detector de eventos asociado 208.
En conformidad con las formas de realizacion, un compensador de retardos 210 del aparato de sincronizacion 200 (posiblemente distribuido) puede ser utilizable para retransmitir la pluralidad de eventos requeridos a un detector de eventos asociado, de modo que un orden temporal de las versiones retransmitidas de los eventos requeridos A, B, C y D, que han sido recibidos en el compensador de retardos 210, corresponda a un orden temporal original de la
5
10
15
20
25
30
35
40
45
50
55
60
pluralidad de eventos requeridos A, B, C y D. Para esa finalidad, el compensador de retardos 210 puede retransmits cada uno de la pluralidad de eventos A, B, C y D de modo que una diferencia temporal relativa entre los eventos retransmitidos individuales corresponda a una diferencia temporal relativa original entre los eventos individuales A, B, C y D, respectivamente. Para recuperar el orden temporal de eventos original, el compensador de retardos 210 puede determinar las instancias temporales de salida para cada uno de entre la pluralidad de eventos A, B, C y D. De este modo, un evento se retransmite al detector de eventos asociado 210 en su instancia temporal de salida correspondiente. las instancias de tiempo de salida de los eventos puede determinarse sobre la base de un valor de retardo comun y las instancias temporales de ocurrencia originales de los eventos A, B, C y D.
Con referencia al ejemplo anterior, las instancias del aparato de sincronizacion 200 y, por lo tanto, las instancias del compensador de retardos 210 allf incluidas, pueden medir o determinar los siguientes retardos de eventos sobre la base de sus respectivos tiempos de recepcion y sus valores de temporizacion de eventos originales asociados respectivos que reflejan su ocurrencia real:
Evento A: 16 -10 = 6
Evento B: 15 -12 = 3
Evento C: 15 -14 = 1
Evento D: 18 -15 = 3
Evidentemente, la recepcion del evento A en el compensador de retardos 210 tiene una duracion bastante mas larga en comparacion con los otros eventos B, C y D requeridos por el detector de eventos compuestos posterior. Lo que antecede puede, a modo de ejemplo, deberse a la deteccion del evento A en un nodo informatico distante lo que da lugar a un largo tiempo de propagacion a traves de la red 300 o debido a que el evento A es detectado con un algoritmo de calculo mas complejo con un tiempo de calculo informatico mas largo. En el caso, a modo de ejemplo, del retardo largo del evento A se debe probablemente a que la deteccion del evento dura cuatro ciclos de reloj o intervalos temporales.
Se supone que se han medido o determinado todos los retardos de todos los eventos de interes con frecuencia suficiente y se ha llegado a la posicion siguiente: en la instancia temporal toC,C = 1000, el evento C alcanza el aparato 200 para la sincronizacion, incluyendo al compensador de retardos 210. El evento C se transmite a lo largo de un valor de temporizacion de eventos tevent.C = 999, lo que indica que el evento C ha ocurrido en el instante temporal 999. El compensador de retardos 210 busca los retardos de todos los eventos de interes, esto es, los eventos A, B, C y D requeridos por el detector de eventos compuestos 208 posterior asociado y determina la magnitud en que el evento C ha de retardarse hasta que pueda enviarse al detector de eventos 208 posterior asociado. Conviene senalar que el compensador de retardos 210 solamente conoce que los eventos A, B, C y D son requeridos por el detector de eventos posterior asociado 208 pero no en que orden y para que finalidad.
Las instancias temporales de salida para retransmitir el evento C al detector de eventos posterior asociado 208 pueden determinarse segun la expresion
Wc = ^event.c + max(A(A), A(B), A(C), A(D))
= 999 + max(6,3,l,3) = 999 + 6 = 1005. (1)
En la ecuacion (1), A, B, C y D indican el primero a cuarto evento, respectivamente, A(.) indica un retardo de un evento desde su ocurrencia hasta la entrada del compensador de retardos 210 asociado para el detector de eventos posterior asociado 208, max(.) indica el operador maximo y Wo indica la instancia temporal de salida del evento C retransmitido.
En general, el compensador de retardos 210 puede ser utilizable para determinar una instancia temporal de salida para retransmitir el evento ej a partir de un conjunto de K eventos requeridos sobre la base de la expresion:
En un sistema informatico distribuido dinamico con una situacion de carga cambiable de la red 300, posiblemente cambiando las capacidades de procesamiento de nodos individuales y/o posiblemente cambiando, de forma dinamica, las rutas de la red, los retardos de propagacion o procesamiento de los eventos que alcanzan una instancia del compensador de retardos 210 probablemente hayan de cambiar en el transcurso del tiempo, en lugar de ser estaticos. El compensador de retardos 210 puede tener en cuenta lo que antecede determinando un valor de retardo de eventos A(ej) de un evento ej a partir de un conjunto de K eventos sobre la base de un retardo actual y
5
10
15
20
25
30
35
40
45
50
55
una pluralidad de retardos de eventos previamente medidos o determinados para dicho evento ej. De este modo, los mas recientes retardos de eventos pueden ponderarse mas que sus retardos de eventos precedentes. En una forma de realizacion espedfica, el compensador de retardos puede adaptarse para determinar el retardo de evento A(ej) del evento ej sobre la base de la ecuacion
en donde k indica un conjunto de k retardos de eventos ya determinados, Aej (i) indica el i-esimo retardo determinado del evento ej, en donde i = 1 corresponde al mas reciente retardo determinado, a( ej) indica la desviacion estandar de los mas recientes retardos determinados A(ej) y en donde 0 indica un factor de seguridad. En algunas formas de realizacion, el factor 0 puede establecerse tambien a cero para un calculo mas facil y menos complejo del retardo de evento A(ej) del evento j. Los sumandos individuales de la ecuacion (3) son ponderados en conformidad con una fila geometrica. El factor 1/2 sirve como un facto de normalizacion, puesto que la fila geometrica converge hacia 2 para un valor de “k” suficientemente grande. El termino 0-o (ej) puede servir como una memorizacion de seguridad, teniendo en cuenta la desviacion estandar de los mas recientes valores de la medicion. Con, p.ej., 0 = 3, puede servir para una seguridad del 99.975 %, a modo de ejemplo. De este modo, una seguridad del 99.975 % significa que un retardo calculado u objeto de prediccion, en conformidad con la ecuacion (3), no es mas pequeno que un retardo de red actual o real correspondiente con una probabilidad del 99.975 %. La memorizacion de seguridad 0-o (ej) puede adaptarse para una estabilidad de la red con respecto a las variaciones de los retardos, a modo de ejemplo.
Volviendo de nuevo al ejemplo simple anterior, el evento C puede reenviarse al detector de eventos posterior asociado 208 en el instante temporal de salida Wc = 1005. Esta es exactamente la instancia temporal en la que se puede afirmar que los eventos A, B y D no sucedieron causalmente antes del evento C. En nuestro ejemplo, el del lado de la red posterior asociado 208 obtiene el reenvfo de los siguientes eventos en las instancias temporales de salida o retransmision que se indican en la tabla siguiente.
- Evento
- Ocurrencia Recibido en el compensador de retardos Retransmitido al detector de eventos
- A
- 999 1005 999 + 6 = 1005
- B
- 999 1002 999 + 6 = 1005
- C
- 999 1000 999 + 6 = 1005
- D
- 1000 1003 1000 + 6 = 1006
Como puede deducirse de la tabla anterior, los eventos A, B, C y D han sido reenviados por el compensador de retardos 210 al detector de eventos posterior asociado 208 en un orden correcto en conformidad con su orden de ocurrencia temporal original.
El principio de funcionamiento de un aparato de sincronizacion 200, que comprende un compensador de retardos 210, se ilustra de forma esquematica por la Figura 5.
Un evento entrante indicado por la referencia numerica 502, comprende un valor de temporizacion de eventos original tevent y un identificador de evento (event ID). Ademas, un valor temporal de salida tout esta asociado con el evento 502. La salida del evento o el tiempo de retransmision tout puede determinarse sobre la base del tiempo de evento original tevent y un valor de retardo comun 6, que es 79 en el ejemplo ilustrado en la Figura 5. Los posibles calculos del valor de retardo comun han sido descritos con anterioridad. El evento 502 a retransmitirse a un detector de eventos posterior o de flujo abajo 208 puede insertarse luego en una memoria intermedia de retransmision o planificacion 504 del aparato de sincronizacion 200. La insercion de eventos entrantes en la memoria intermedia 504 puede basarse en sus instancias temporales de salida determinadas tout, en donde los eventos han de reenviarse al detector de eventos posterior asociado 208. Para el evento ejemplo 502, que acaba de llegar en la entrada del compensador de retardos 210, la instancia temporal de salida tout ha sido calculada para ser 367. Por ese motivo, se inserta entre dos eventos memorizados que han de planificarse (esto es, reenviarse) en los tiempos de salida 364 y 369, respectivamente. Despues de que los eventos se hayan retardado en conformidad con el valor de retardo comun actual 6, que es 79 en el ejemplo ilustrado, los eventos contenidos en la memoria intermedia de eventos 504 son objeto de planificacion o notificacion, es decir, reenviados al detector de eventos asociado posterior 208. Despues de que un evento haya sido reenviado al detector de eventos asociado 208, el evento puede suprimirse antes de que se planifique el siguiente evento en la memoria intermedia 504.
La Figura 6 ilustra, de forma esquematica, un diagrama de flujo de un metodo 600 para sincronizar el primer evento 202 y el segundo evento 204 en conformidad con una forma de realizacion de la presente invencion.
Segun se indico con anterioridad, los dos eventos 202, 204 tienen asociadas las primeras y segunda marcas
5
10
15
20
25
30
35
40
45
50
55
60
65
temporales de eventos teventei, tevente2 sobre la base de la senal de reloj comun 306, respectivamente. Ademas, el primer y el segundo evento experimentan ambos diferentes retardos A(e1), A(e2), mientras que se desplazan a traves de diferentes rutas del sistema informatico distribuido 300. Para sincronizar los eventos 202, 204, el metodo de sincronizacion 600 comprende una etapa 602 de retransmision, en un compensador de retardos 210, los primero y segundos eventos 202, 204 al detector de eventos asociado 208, en donde los primero y segundo eventos 202, 204 son retransmitidos al detector de eventos 208, sobre la base de los retardos experimentados A(e1), A(e2) y sobre la base de las primera y segunda marcas temporales de eventos originales asociadas teventei, Wnte2. Ademas, el metodo 600 comprende una etapa 604 de deteccion, en el detector de eventos 208 asociado al compensador de retardos 210, de al menos un evento de salida 206 sobre la base del primer y del segundo eventos de entrada 202', 204' retransmitidos. El primer evento retransmitido y el segundo evento de entrada retransmitido 202', 204' pueden indicarse tambien como versiones retransmitidas del primero y del segundo eventos de entrada retransmitidos. En condiciones normales, estas versiones retransmitidas son identicas a los primero y segundos eventos 202, 204, respectivamente. Sin embargo, pueden ser temporalmente retardados por el aparato de sincronizacion 200 o su compensador de retardos 210.
El concepto descrito solamente se aplica de forma fiable si se dispone de retardos de eventos determinados o medidos. Inmediatamente despues del inicio operativo del sistema, los retardos de eventos son desconocidos. Sin embargo, es posible proporcionar retardos de eventos iniciales al compensador de retardos 210 despues de la iniciacion del sistema. Dichos retardos de eventos iniciales pueden basarse en experiencias del tipo de caso mas desfavorable para los eventos respectivos. Como alternativa, el aparato de sincronizacion puede memorizar su conocimiento sobre los retardos de eventos antes de su desactivacion, de modo que cada instancia del aparato de sincronizacion 200 puede recuperar la configuracion de un estado (red) anterior y, en consecuencia, puede aproximar los retardos para la configuracion de red actual, puesto que tiene informacion sobre que eventos se ejecutan en que nodos del sistema informatico distribuido.
Los valores de retardos medidos pueden haberse medido en diferentes situaciones de la red y/o carga de CPU. Esto podna tenerse en cuenta mediante una normalizacion apropiada de los respectivos valores de retardos medidos. A modo de ejemplo, el factor de normalizacion que refleja una situacion de carga actual podna aplicarse al valor del retardo medido bajo dicha situacion de carga actual. A modo de ejemplo, un factor de normalizacion correspondiente a una situacion de carga normal podna ser el valor uno. Si un valor de retardo se determina en una situacion de alta carga, esta ultima puede reflejarse por un factor de normalizacion mayor que 1. Por el contrario, si un valor de retardo se mide bajo condiciones de carga baja, esta circunstancia puede reflejarse por el factor de normalizacion menor que 1. El peso de ponderacion real aplicado al valor del retardo respectivo, a modo de ejemplo, en la ecuacion (3) podna ser entonces dependiente de una relacion entre el factor de normalizacion del retardo medido y un factor de normalizacion actual relacionado con la situacion de carga actual. Si una situacion de carga actual es menor que una situacion de carga, en donde se ha medido un determinado valor del retardo, dicho metodo podna dar lugar a un valor de retardo normalizado que sea mas pequeno que el valor del retardo realmente medido con el fin de tener en cuenta la situacion de carga mas pequena o mas baja.
La Figura 7 ilustra, de forma esquematica, una forma de realizacion adicional de la presente invencion.
La Figura 7 ilustra, de forma esquematica, un sistema informatico distribuido 700 para determinar los eventos basados en al menos un flujo de datos o sensor 702-1, 702-2. El sistema informatico distribuido 700, que puede ser una red de ordenadores distribuida o un procesador multi-nucleo, a modo de ejemplo, comprende una pluralidad de nodos informaticos distribuidos 704, en donde cada uno de entre la pluralidad de nodos informaticos distribuidos 704 comprende un aparato 200 para la sincronizacion en conformidad con las formas de realizacion de la presente invencion.
En conformidad con una forma de realizacion de la presente invencion, cada uno de los nodos informaticos 704 puede comprender, de este modo, un aparato de sincronizacion 200 junto con un compensador de retardos 210. Ademas, cada uno de los nodos 700, que comprende un aparato de sincronizacion 200, comprende tambien un detector de eventos asociado 208. En conformidad con una forma de realizacion, a modo de ejemplo, los nodos informaticos 704 pueden ser ordenadores o procesadores de senales distribuidos. En algunas otras formas de realizacion, los nodos 704 pueden ser tambien una version diferente de una unidad de procesamiento multi-nucleo que se pone en practica en el mismo dispositivo informatico y en consecuencia, se localiza practicamente en la misma posicion geografica.
Formas de realizacion de la presente invencion estan relacionadas, en particular, con la deteccion de eventos sobre la base de los datos de sensores brutos que se derivan de un sistema de seguridad inalambrico, que puede utilizarse para el seguimiento de los jugadores y todas las posiciones de un evento deportivo en el que se utilice un balon, tal como, a modo de ejemplo, soccer, futbol americano, rugby, tenis, etc. En consecuencia, el sistema informatico distribuido 700 puede acoplarse a dicho sistema de seguimiento inalambrico o sistema de localizacion para localizar y/o efectuar el seguimiento de objetos y todas las personas con una zona geografica preestablecida, que puede ser un campo de futbol americano, a modo de ejemplo. El sistema de localizacion introduce el al menos un flujo de datos de sensores 702-1, 702-2 al sistema informatico distribuido 700, en donde el flujo de datos de sensores contiene datos que son indicativos de las posiciones geograficas de los objetos localizados. Ademas, el
5
10
15
20
25
30
35
40
45
50
55
60
65
flujo de datos de sensores puede contener tambien otros datos cinematicos de los objetos localizados.
Para detectar eventos, tales como eventos primitivos y/o compuestos, varios detectores de eventos 208 se hacen funcionar en diferentes nodos 704 del sistema informatico distribuido 700. Dichos detectores de eventos o instancias de detectores de eventos 208 pueden causar una carga diferente sobre sus respectivos nodos 704 y/o el sistema informatico distribuido completo 700, dependiendo de una condicion actual del sistema 700 o dependiendo de la complejidad de los detectores de eventos 208 y/o los flujos de datos de sensores 702-1, 702-2 para ser analizados. De este modo, en un escenario de premisas o condiciones cambiantes de una configuracion del sistema original, esto es, una distribucion de los detectores de eventos 208 en los diversos nodos de red 704, una configuracion del sistema actual podna considerarse como sub-optima o podna incluso dar lugar a una interrupcion operativa (crash) del sistema informatico distribuido 700.
Dichos desequilibrios de la carga indeseables, que, en consecuencia, conducen tambien a retardos de eventos desequilibrados, pueden detectarse por las formas de realizacion del aparato de sincronizacion 200 o, en particular, su compensador de retardos o instancia de compensador de retardos 210. Si al menos un retardo de evento medido o determinado A(.) alcanza un valor prohibitivamente alto, ello puede indicar que un proceso de detector de eventos que proporciona el evento correspondiente y que esta dispuesto flujo arriba para el compensador de retardos 210 puede estar sobrecargado o puede experimentar algun otro problema operativo. En dicho escenario operativo, puede ser deseable transferir o reubicar el proceso de detector de eventos con origen malintencionado para algunos otros recursos de hardware o nodo 704 del sistema informatico distribuido 700. A modo de ejemplo, el proceso de detector de eventos malintencionados puede transferirse desde su nodo actual a otro nodo diferente y ffsicamente separado del sistema informatico distribuido 700. Para esta finalidad, en conformidad con un aspecto adicional de la presente invencion, se da a conocer tambien un aparato 800 para transferir un proceso de detector de eventos entre nodos diferentes 704. Formas de realizacion del aparato 800 para la transferencia pueden combinarse con formas de realizacion del aparato de sincronizacion 200 y/o el sistema informatico distribuido 700.
La Figura 8 ilustra, de forma esquematica, un diagrama de bloques esquematico de una forma de realizacion de un aparato 800 para efectuar la transferencia, que puede referirse tambien como aparato de transferencia.
El aparato de transferencia 800 sirve efectuar la transferencia un primer proceso de detector de eventos de un primer nodo 704-1 del sistema informatico distribuido 700 a un segundo proceso de detector de eventos de un segundo nodo 704-2 del sistema informatico distribuido 700. De este modo, el segundo nodo 704-2 es diferente del primer nodo 704-1, con respecto a su ubicacion geografica o con respecto a una distinta unidad de procesamiento de un procesador multinucleo, a modo de ejemplo. El aparato de transferencia 800 comprende medios 802 para copiar un contenido de proceso del primer proceso de detector de eventos al segundo proceso de detector de eventos. Ademas, el aparato de transferencia 800 comprende medios 804 para coordinar eventos de entrada del primer proceso de detector de eventos, de modo que los eventos de entrada del primer proceso de detector de eventos sean procesados en paralelo en los primero y segundo proceso de detector de eventos. Ademas, el aparato 800 comprende medios 806 para verificar si los eventos de entrada del primer proceso de detector de eventos, que se procesan en paralelo en ambos primero y segundo proceso de detector de eventos, dan lugar a eventos de salida identicos en ambos, primero y segundo procesos de detector de eventos.
Un proceso, en general, ha de entenderse como una instancia operativa de un programa informatico que se esta ejecutando en un dispositivo informatico, que puede incluirse por un nodo de red. Un proceso comprende el codigo de programa del programa informatico y su actividad en curso. Un proceso de detector de eventos puede comprender una maquina de estados, que puede entenderse como un modelo de comportamiento utilizado para disenar programas informaticos. Una maquina de estados esta constituida por un numero (finito) de estados asociados a transiciones. Una transicion es un conjunto de acciones que se inicia desde un estado y finaliza en otro estado (o en el mismo) estado. Una transicion se inicia por un dispositivo iniciador, en donde dicho dispositivo iniciador puede, a modo de ejemplo, ser una entrada de evento primitivo o compuesto al proceso. Por lo tanto, en conformidad con los aspectos de la presente invencion, un proceso de detector de eventos puede comprender una maquina de estados y una memoria o contenido de proceso de detector de eventos puede que puede reflejar un estado actual de dicha maquina de estados, como, a modo de ejemplo, variables individuales o conjuntos matriciales de variables.
En las formas de realizacion en donde existe un conjunto de segundos nodos informaticos 704-2 posibles o alternativos, para la absorcion del primer proceso de detector de eventos del primer nodo 704-1, el aparato de transferencia 800 puede comprender, ademas, medios 808 para determinar el segundo nodo 704-2 entre el conjunto de posibles nodos sobre la base o en conformidad con un criterio de distribucion de procesos de detector de eventos optimo. Por lo tanto, dicho criterio de distribucion de procesos de detector de eventos optimo puede dar lugar a uno de entre un retardo global mmimo de todos los eventos en el sistema informatico distribuido 700, un numero mmimo de suscripciones de eventos seguras en el sistema informatico distribuido 700, una variacion minima de la carga de un nodo dado 704 del sistema informatico distribuido 700 o una carga de sistema informatico distribuido global minima.
Los medios 808 para la determinacion, pueden comprender, a modo de ejemplo, una entidad de red central que
5
10
15
20
25
30
35
40
45
50
55
60
65
tiene informacion de una condicion de red global, incluyendo la carga de nodos individuals 704 y la carga del sistema completo 700. Dicha entidad de red central puede tener tambien informacion sobre los tiempos de retardo de eventos A(.) de los eventos que se desplazan a traves de la red distribuida 700. En tal caso, la entidad de red central puede iniciar una transferencia de un proceso de detector de eventos p.ej., desde un nodo mas fuertemente cargado 704-1 a un nodo con carga menos fuerte 704-2. O bien, puede iniciar una transferencia de proceso de detector de eventos entre diferentes nodos 704-2, 704-2 con el fin de reducir uno o mas retardos de eventos en el sistema distribuido 700.
En conformidad con otra forma de realizacion, los medios 808 para la determinacion pueden comprender tambien o pueden estar incluidos por un aparato de sincronizacion 200 o su instancia operativa de compensador de retardos 210. Una instancia de compensador de retardos 210 tiene conocimiento de los retardos de dichos eventos que retransmite a un proceso de detector de eventos posterior o en flujo descendente asociado. A modo de ejemplo, en caso de que la instancia del compensador de retardos 210 mide un retardo prohibitivamente alto de un evento que se derive de un detector de eventos origen o en flujo ascendente, la instancia del compensador de retardos 210 puede iniciar la transferencia de dicho proceso de detector de eventos de flujo ascendente desde su nodo de red actual a otro nodo de red con el fin de reducir el retardo de eventos. En caso de que la instancia del compensador de retardos 210 no tenga ningun conocimiento adicional sobre la situacion de la carga de nodos individuales 704 en el sistema distribuido 700, esta circunstancia puede ser un procedimiento de prueba y error simple, a modo de ejemplo.
En conformidad con algunas formas de realizacion, el aparato de transferencia 800 puede comprender, ademas, medios 810 para crear una instancia de proceso, que esta en correspondencia con el primer proceso de detector de eventos en el segundo nodo 704-2 con el fin de obtener el segundo proceso de detector de eventos. El procedimiento de transferencia del proceso completo puede, a modo de ejemplo, realizarse con la ayuda de un Sistema Operativo (OS), que ha de entenderse como un conjunto de programas que gestionan recursos de hardware informaticos, y proporciona servicios comunes para software de aplicacion, como un proceso de detector de eventos, a modo de ejemplo. Dichos servicios del sistema operativo OS pueden comprender tambien funcionalidades de instanciacion a las que puede tener acceso el medio 802 para copiar el contenido del proceso. es decir, los medios de creacion 810 pueden comprender medios para acceder a las funcionalidades de instanciacion de procesos de un sistema operativo que se ejecuta en los nodos informaticos individuales 704-1, 704-2 y/o controlar el sistema distribuido 700. Tan pronto como ha sido instanciado el segundo proceso de detector de eventos del segundo nodo 704-2, puede suscribirse a los mismos eventos a los que se ya se ha suscrito el primer proceso de detector de eventos del primer nodo 704-1, con el fin de recibir los mismos eventos o flujos de eventos desde el sistema distribuido como senales de entrada. Dicho de otro modo, los medios 810 para creacion de la instancia pueden ser utilizables, despues de la instanciacion del segundo proceso de detector de eventos en el segundo nodo 704-2, para suscribir el segundo proceso de detector de eventos para eventos de entrada identicos como el proceso del primer detector de eventos.
Los servicios del sistema operativo OS pueden comprender, ademas, funcionalidades de copia, a las que puede tener acceso los medios de copia 802 para copiar el contenido del proceso. Es decir, los medios de copia 802 pueden comprender medios para acceder a las funcionalidades de copia de procesos de un sistema operativo que se ejecuta en los nodos informaticos 704-1, 704-2 o alguna otra entidad controladora del sistema distribuido 700. Los medios de copia 802 pueden ser tambien utilizables para “congelar” el contenido del proceso del primer proceso de detector de eventos en un instante predeterminado con el fin de obtener una condicion definida del primer proceso de detector de eventos. En este caso, el termino “congelacion” significa que el proceso de detector de eventos cesa de responder a sus entradas. los medios de copia 802 pueden adaptarse, ademas, para copiar el contenido del proceso congelado desde el primer proceso de detector de eventos al segundo proceso de detector de eventos con el fin de obtener la misma condicion definida en el segundo proceso de detector de eventos. De este modo, los medios 802 para la copia pueden ser utilizables para copiar el contenido del proceso, de forma iterativa, desde el primer proceso de detector de eventos al segundo proceso de detector de eventos, de modo que se copie primero el contenido, que no cambiara durante el resto del procedimiento de copias. En consecuencia, los datos contenidos en el primer proceso de detector de eventos pueden copiarse desde el primer nodo 704-1 al segundo nodo 704-2 en una pluralidad de iteraciones. Por lo tanto, debe definirse que datos pertenecen a la informacion de estado operativo de un detector de eventos. En caso de procesos, este es la memoria de procesos, a modo de ejemplo. Mientras se realiza una copia iterativa del contenido del proceso, la diferencia o laguna informativa (esto es, el delta) del contenido del proceso a copiarse obtiene cada vez menor diferencia hasta que la diferencia se mantenga pequena pero no nula.
Antes de que el nuevo, esto es, segundo proceso de detector de eventos se inicie o active en el segundo nodo 7042, los datos de entrada (identicos) de ambos procesos de detector de eventos pueden memorizarse de modo que ambos procesos de detector de eventos, que en condiciones ideales, ya tienen la misma condicion interna definida, tambien obtengan datos de entrada externas identicas desde el instante predefinido, esto es, el instante de congelacion. De este modo, los medios 802 para copia pueden ser tambien utilizables para memorizar los eventos de entrada del primer proceso de detector de eventos durante y/despues de la copia del contenido de proceso desde el primero al segundo proceso de detector de eventos.
Cuando la totalidad del contenido pertinente ha sido copiada desde el primero (antiguo) al segundo (nuevo) proceso
5
10
15
20
25
30
35
40
45
50
55
60
65
de detector de eventos y se han memorizado los datos de entrada, ambos procesos de detector de eventos pueden activarse para un procesamiento en paralelo de los datos de entrada (eventos) memorizados (idealmente identicos), dadas las mismas condiciones internas o estados del primero y de segundo procesos de detector de eventos. Es decir, ambos detectores de eventos son activados despues del procedimiento de copia y memorizacion y de bifurcarse el proceso y, en consecuencia, los mismos datos de entrada en paralelo. Para esta finalidad, los medios 804 para la coordinacion pueden ser utilizables para procesar los eventos de entrada del primer proceso de detector de eventos en paralelo en ambos primero y segundo procesos de detector de eventos comenzando desde el instante predefinido (congelacion) y sobre la base del contenido del proceso objeto de copia. Ademas, los medios de coordinacion 804 pueden tener acceso al sistema operativo OS para esa finalidad, a modo de ejemplo.
El medio 806 para la verificacion, p.ej., un comparador, verifica luego si ambos procesos de detector de eventos conducen a la misma salida, respectivamente. Si este fuera el caso, el antiguo, esto es, el primero, proceso de detector de eventos puede desactivarse. Si este no es el caso, el procedimiento de copia y/o de memorizacion ha fallado probablemente y el nuevo (esto es, el segundo) proceso de detector de eventos puede desactivarse para iniciar el procedimiento de transferencia completo desde el principio. En consecuencia, y en conformidad con algunas formas de realizacion, el medio 806 para la verificacion puede ser utilizable para desactivar el primer proceso de detector de eventos en caso de que los eventos de salida en ambos procesos, primero y segundo, del detector de eventos sean identicos o para desactivar el segundo proceso de detector de eventos en caso de que los eventos de salida en ambos, primero y segundos, procesos de detector de eventos no sean identicos.
Como se indico con anterioridad, formas de realizacion del aparato de transferencia 800 pueden combinarse con formas de realizacion del aparato de sincronizacion 200, puesto que sus caractensticas operativas pueden complementarse entre sf de forma sinergfstica. En consecuencia, algunos aspectos de la presente invencion dan a conocer tambien un sistema informatico distribuido 700 para la determinacion de eventos sobre la base de al menos un flujo de datos de sensores, en donde el sistema informatico distribuido comprende una pluralidad de nodos informaticos distribuidos 704 y una forma de realizacion de un aparato de transferencia de procesos de eventos 800 para transferir un primer proceso de detector de eventos de un primer nodo 704-1 del sistema informatico distribuido 700 a un segundo proceso de detector de eventos de un segundo nodo 704-2 del sistema informatico distribuido 700. Ademas, cada uno de entre la pluralidad de nodos informaticos distribuidos 704 comprende un aparato 200 para sincronizar un primer evento 202, que tiene asociado un primer instante de evento teventei sobre la base de una senal de reloj comun y un segundo evento 204, que tiene asociado un segundo instante de evento tevente2 sobre la base de la senal de reloj comun, en donde el primero y el segundo eventos 202, 204 (o el y e2) experimenta diferentes retardos A(e1), A(e2) mientras se desplazan a traves de las diferentes rutas o trayectorias del sistema informatico distribuido 700 y en donde al menos un evento de salida 206 ha de determinarse por un detector de eventos (proceso) 208 sobre la base del primero y de segundo evento 202, 204 (o el o e2). Como ya se ha explicado con referencia a la Figura 2, el aparato 200 para sincronizar los eventos 202, 204 comprende un compensador de retardos 210 asociado al detector de eventos 208, teniendo el compensador de retardos 210 entradas 212-1, 212-2 para la recepcion del primero y del segundo eventos 202, 204 y que tiene una salida 214-1, 214-2 para reenviar las versiones retransmitidas 202'. 204' de los primero y segundo eventos recibidos al detector de eventos asociado 208. Formas de realizacion del compensador de retardos 210 son utilizables para retransmitir los primero y segundo eventos 202, 204 al detector de eventos asociado 208 sobre la base de los retardos experimentados A(e1), A(e2) y sobre la base de los tiempos de los primero y segundo eventos asociados tevente-i, tevente2 segun se ha explicado con mayor detalle anteriormente.
Aspectos de la idea inventiva, en donde los detectores de eventos seran transferibles desde un nodo a otro nodo, preferentemente mientras se estan ejecutando o en curso, comprende tambien un metodo para transferir un primer proceso de detector de eventos de un primer nodo 704-1 de un sistema informatico distribuido 700 a un segundo proceso de detector de eventos de un segundo nodo 704-2 del sistema informatico distribuido 700. Un diagrama de flujo esquematico de dicho metodo de transferencia 900 se ilustra en la Figura 9.
El metodo de transferencia 900 comprende una etapa 902 para copiar un contenido de proceso del primer proceso de detector de eventos al segundo proceso de detector de eventos. Antes de que pueda determinarse que nodo informatico o su proceso administrativo gestionara el proceso de un denominado hilo de ejecucion (thread)proceso de detector de eventos sobrecargado. En algunas formas de realizacion, la etapa de copia 902 puede comprender la copia de datos incluidos del proceso de detector de eventos desde el primer nodo 704-1 al segundo nodo 704-2 en una pluralidad de iteraciones, segun fue descrito con anterioridad. La etapa de copia 902 comprende, de este modo, la definicion de que datos pertenecen a la informacion de estado de un detector de eventos. En caso de procesos, esta es la memoria de procesos, a modo de ejemplo. Mientras la copia del delta del contenido del proceso a copiarse se hace cada vez mas pequena hasta que los cambios permanezcan pequenos pero no nulos.
El metodo 900 comprende, ademas, una etapa 904 de procesamiento de eventos de entrada del primer proceso de detector de eventos en paralelo en ambos primero y segundo, procesos de detector de eventos. Para esa finalidad, los datos de entrada del primer proceso de detector de eventos pueden memorizarse y/o copiarse para ambos detectores de eventos, de modo que ambos detectores de eventos puedan procesar flujos de datos de entrada identicos. Ambos detectores de eventos pueden activarse luego con el fin de procesar dichos flujos de datos de entrada en paralelo.
5
10
15
20
25
30
35
40
45
50
55
60
65
En una etapa adicional 906, se verifica si los eventos de entrada del primer proceso de detector de eventos, que se procesan en paralelo en ambos, primero y segundo procesos de detector de eventos, dan lugar a eventos de salida identicos en ambos, primero y segundo, procesos de detector de eventos. Si este ultimo fuera el caso, es decir, en caso de que los eventos de salida en ambos primero y segundo procesos de detector de eventos sean identicos, el primer proceso de detector de eventos puede desactivarse (vease etapa 908). Si este no es el caso, esto es, en caso de que los eventos de salida en ambos, primero y segundo, procesos de detector de eventos no sean identicos, el segundo proceso de detector de eventos puede desactivarse en cambio y el metodo de transferencia 900 se inicia de nuevo en la etapa 902.
En consecuencia, la transferencia de procesos de detector de eventos entre diferentes nodos de la red puede, a modo de ejemplo, realizarse teniendo instancias administrativas, tales como planificadores (tambien referidos como procesos basicos de eventos), asociados a los detectores de eventos de los diferentes nodos 704 que se comunican entre sl Sobre la base de esta comunicacion, pueden decidir efectuar la transferencia de procesos de detector de eventos o sus algoritmos desde un nodo a otro nodo del sistema 700.
La descripcion y los dibujos adjuntos simplemente ilustran los principios de la invencion. Ademas, todos los ejemplos aqrn descritos estan principalmente destinados expresamente para ser solamente para fines pedagogicos como una ayuda a su lector en el entendimiento de los principios de la invencion y los conceptos contribuidos por los inventores para ampliar los conocimientos de la tecnica y han de interpretarse como no constituyendo una limitacion a dichas condiciones y ejemplos concretamente citados. Ademas, todas las declaraciones aqrn realizadas se refieren a principios, aspectos y formas de realizacion de la invencion, asf como sus ejemplos espedficos, estando previstas para abarcar sus equivalentes.
Los bloques funcionales indicados como “medios para...” (que realizan una determinada funcion) se entenderan como bloques funcionales que comprenden circuitos que estan adaptados, configurados o son utilizables para realizar una determinada funcion, respectivamente. En consecuencia, un “medio para alguna cosa” puede entenderse tambien como un “medio que se adapta, configura o es utilizable para hacer alguna cosa”. Un medio que esta adaptado para realizar una determinada funcion, por lo tanto, no implica que dicho medio este realizando necesariamente dicha funcion (en un instante dado).
Funciones de varios elementos ilustrados en las Figuras, incluyendo cualesquiera bloques funcionales pueden proporcionarse mediante el uso de hardware especializado, como p.ej., un procesador, asf como hardware capaz de ejecutar el software en asociacion con un software adecuado. Cuando se proporcionan por un procesador, las funciones pueden proporcionarse por un procesador especializado unico, por un procesador compartido unico o por una pluralidad de procesadores individuales, algunos de los cuales pueden estar compartidos. Ademas, el uso explfcito del termino procesador” o “controlador” no debe interpretarse para referirse exclusivamente a hardware capaz de ejecutar el software y pueden incluir explfcitamente, sin limitacion, hardware de procesador de senal digital (DSP), procesador de red, circuito integrado espedfico de la aplicacion (ASIC), conjuntos de puertas logicas programables in situ (FPGA), memoria de solamente lectura (ROM) para memorizar programas informaticos, memoria de acceso aleatorio (RAM) y memorizacion no volatil. Otro hardware, convencional y/o personalizado puede tambien incluirse a este respecto.
Debe apreciarse por los expertos en esta tecnica que cualesquiera diagramas de bloques aqrn representados se refieren a vistas conceptuales de circuitos ilustrativos que realizan los principios de la invencion.
De modo similar, sera apreciado que cualesquiera graficos, diagramas de flujo, diagramas de transicion de estados, pseudocodigos y elementos similares representan varios procesos que pueden esencialmente representarse en un soporte legible por ordenador y asf ejecutarse por un ordenador o procesador, sea o no, dicho ordenador o procesador explfcitamente ilustrado.
Ademas, las siguientes reivindicaciones estan aqrn incorporadas en la descripcion detallada, en donde cada reivindicacion puede considerarse como una forma de realizacion separada. Aunque cada reivindicacion puede considerarse por sf misma como una forma de realizacion separada, conviene senalar que - aunque una reivindicacion subordinada puede referirse en las reivindicaciones para una combinacion espedfica con una o mas otras reivindicaciones - otras formas de realizacion pueden incluir tambien una combinacion de las reivindicaciones subordinadas con el contenido de cada otra reivindicacion subordinada. Dichas combinaciones se ofrecen en esta descripcion a no ser que se declare que no esta prevista una combinacion espedfica. Ademas, esta previsto incluir tambien caractensticas de una reivindicacion a cualquier otra reivindicacion independiente aun cuando esta reivindicacion no se haga directamente subordinada a la reivindicacion independiente.
Ademas, conviene senalar que los metodos dados a conocer en la especificacion o en las reivindicaciones pueden ponerse en practica por un dispositivo que disponga de medios para realizar cada una de las respectivas etapas de estos metodos.
Asimismo, ha de entenderse que la idea inventiva de multiples etapas o funciones dadas a conocer en la
especificacion o reivindicaciones no pueden interpretarse como que estan dentro del orden espedfico. Por lo tanto, la idea inventiva de multiples etapas o funciones no limitara estas ultimas a un orden particular a no ser que dichas etapas o funciones no sean intercambiables por motivos tecnicos.
5 Ademas, en algunas formas de realizacion, una etapa unica puede incluir o puede descomponerse en multiples sub- etapas. Dichas sub-etapas pueden incluirse y constituir parte de la idea inventiva de esta etapa unica a no ser que se excluya de forma explfcita.
Claims (10)
- 5101520253035404550556065REIVINDICACIONES1. Un aparato (800) para transferir un primer proceso de detector de eventos operativos de un primer nodo (704-1) de un sistema informatico distribuido (300; 700) hacia un segundo proceso de detector de eventos de un segundo nodo (704-2) del sistema informatico distribuido (300; 700) siendo el segundo nodo (704-2) diferente del primer nodo (704-1), cuyo aparato (800) comprende:un medio (802) para copiar un contenido de proceso del primer proceso de detector de eventos hacia el segundo proceso de detector de eventos;un medio (804) para coordinar eventos de entrada del primer proceso de detector de eventos de modo que los eventos de entrada del primer proceso de detector de eventos sean procesados en paralelo, a la vez, con el primero y el segundo proceso de detector de eventos; yun medio (806) para verificar si los eventos de entrada del primer proceso de detector de eventos, que son procesados en paralelo, a la vez, para el primero y segundo proceso de detector de eventos, conducen a eventos de salida identicos, a la vez, al primer y al segundo proceso de detector de eventos, en donde el medio (806) para verificacion es utilizable para desactivar el primer proceso de detector de eventos en caso de que los eventos de salida en, a la vez, los primeros y segundos procesos de detector de eventos sean identicos o para desactivar el segundo proceso de detector de eventos en caso de que los eventos de salida en, a la vez, los primeros y segundos procesos de detector de eventos no sean identicoscaracterizado por cuanto queel medio (802) para copiar es utilizable para copiar el contenido de proceso, de manera iterativa, desde el primer proceso de detector de eventos al segundo proceso de detector de eventos, de modo que el contenido que no cambiara durante un resto del proceso de copia sea copiado en primer lugar, en donde el medio (802) para copiar es utilizable para congelar operativamente el contenido de proceso del primer detector de eventos en un instante preestablecido antes de copiar un ultimo, asf denominado, delta de contenido y para copiar el ultimo delta de contenido congelado desde el primer proceso de detector de eventos al segundo proceso de detector de eventos.
- 2. El aparato (800) segun la reivindicacion 1, que comprende, ademas:un medio (808) para determinar el segundo nodo (704-2) entre un conjunto de posibles nodos sobre la base de un criterio de distribucion de procesos de detector de eventos optimo.
- 3. El aparato (800) segun la reivindicacion 2, en donde el criterio de distribucion de procesos de detector de eventos optimo conduce a uno de entre un retardo global mmimo de todos los eventos en el sistema informatico distribuido, un numero mmimo de suscripciones de eventos asegurados en el sistema informatico distribuido, una variacion minima de la carga de un nodo dado del sistema informatico distribuido o una carga de sistema informatico distribuido global minima.
- 4. El aparato (800) segun una de las reivindicaciones precedentes, que comprende, ademas:un medio (810) para crear una instancia operativa correspondiente al primer proceso del detector de eventos en el segundo nodo con el fin de obtener el segundo proceso del detector de eventos.
- 5. El aparato (800) segun la reivindicacion 4, en donde el medio (810) para crear la instancia operativa es utilizable despues de la instanciacion del segundo proceso de detector de eventos en el segundo nodo (704-2) para suscribir el segundo proceso de detector de eventos para eventos de entrada identicos como el primer proceso de detector de eventos.
- 6. El aparato (800) segun la reivindicacion 1, en donde el medio (804) para coordinar eventos de entrada en paralelo es utilizable para procesar los eventos de entrada del primer proceso de detector de eventos en paralelo, a la vez, para los primero y segundo proceso de detector de eventos, a partir del instante preestablecido y sobre la base del contenido del proceso copiado.
- 7. El aparato (800) segun una de las reivindicaciones precedentes, en donde el medio (802) para copiar es utilizable para memorizar los eventos de entrada del primer proceso de detector de eventos durante la copia del contenido del proceso.
- 8. El aparato (800) segun una de las reivindicaciones precedentes, en donde un proceso de detector de eventos comprende una maquina de estados y en donde el contenido del proceso refleja un estado actual de dicha maquina de estados.
- 9. Un metodo (900) para transferir un primer proceso de detector de eventos de un primer nodo (704-1) de un51015202530sistema informatico distribuido (300; 700) a un segundo proceso de detector de eventos de un segundo nodo (704-2) del sistema informatico distribuido (300; 700), siendo el segundo nodo diferente del primer nodo, con el metodo (900) comprendiendo:copiar (902) un contenido de proceso del primer proceso de detector de eventos para el segundo proceso de detector de eventos;coordinar (904) los eventos de entrada del primer proceso de detector de eventos de modo que los eventos de entrada del primer proceso de detector de eventos sean procesados en paralelo, a la vez, en el primero y el segundo procesos de detector de eventos; yverificar (906) si los eventos de entrada del primer proceso de detector de eventos, que son procesados en paralelo en, a la vez, el primer y el segundo proceso de detector de eventos, conducen a eventos de salida identicos en, a la vez, el primer proceso de detector de eventos y el segundo proceso de detector de eventos, en donde la verificacion comprende la desactivacion del primer proceso de detector de eventos en caso de que los eventos de salida sean identicos en, a la vez, el primer proceso de detector de eventos y el segundo proceso de detector de eventos o la desactivacion del segundo proceso de detector de eventos en caso de que los eventos de salida no sean identicos en, a la vez, el primer proceso de detector de eventos y el segundo proceso de detector de eventoscaracterizado por cuanto queel contenido del proceso se copia, de manera iterativa, desde el primer proceso de detector de eventos al segundo proceso de detector de eventos, de modo que el contenido que no cambiara durante un resto del procedimiento de copia sea copiado en primer lugar, en donde el contenido de proceso del primer detector de eventos sea congelado en un instante preestablecido antes de copiar un ultimo delta de contenido y el ultimo delta de contenido congelado se copia desde el primer proceso de detector de eventos al segundo proceso de detector de eventos.
- 10. Un programa informatico que tiene un codigo de programa para realizar el metodo (900) de la reivindicacion 9, cuando el programa informatico se ejecuta en un ordenador o procesador.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2011/069159 WO2013064171A1 (en) | 2011-10-31 | 2011-10-31 | Apparatus and method for transferring event detector processes |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2601804T3 true ES2601804T3 (es) | 2017-02-16 |
Family
ID=45815572
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES11782086.0T Active ES2601804T3 (es) | 2011-10-31 | 2011-10-31 | Aparato y método para la transferencia de procesos de detector de eventos operativos |
ES12708349.1T Active ES2555578T3 (es) | 2011-10-31 | 2012-03-14 | Aparato, método y programa informático para realizar una migración de un proceso de detector de eventos operativos |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES12708349.1T Active ES2555578T3 (es) | 2011-10-31 | 2012-03-14 | Aparato, método y programa informático para realizar una migración de un proceso de detector de eventos operativos |
Country Status (8)
Country | Link |
---|---|
US (2) | US9954932B2 (es) |
EP (2) | EP2774035B1 (es) |
JP (2) | JP5847953B2 (es) |
CN (2) | CN104025051B (es) |
AU (2) | AU2011380288B2 (es) |
BR (2) | BR112014010370B1 (es) |
ES (2) | ES2601804T3 (es) |
WO (2) | WO2013064171A1 (es) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2763041A1 (en) * | 2013-01-31 | 2014-08-06 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Apparatus, method and computer program for processing out-of-order events |
CH709742A1 (de) * | 2014-06-05 | 2015-12-15 | Swisstradingbox Ag | Börsenhandelssystem. |
US9891966B2 (en) | 2015-02-10 | 2018-02-13 | Red Hat, Inc. | Idempotent mode of executing commands triggered by complex event processing |
US10423468B2 (en) | 2015-02-10 | 2019-09-24 | Red Hat, Inc. | Complex event processing using pseudo-clock |
US10151215B2 (en) * | 2015-06-01 | 2018-12-11 | Solar Turbines Incorporated | High speed recorder for a gas turbine engine |
CN105105755B (zh) * | 2015-06-25 | 2017-10-31 | 简极科技有限公司 | 一种智能球场系统及其数据获取方法 |
CN105786618B (zh) * | 2016-02-24 | 2019-06-18 | 华为技术有限公司 | 加速器网络中路由报文的方法和装置 |
US11537419B2 (en) * | 2016-12-30 | 2022-12-27 | Intel Corporation | Virtual machine migration while maintaining live network links |
US11945382B2 (en) * | 2018-03-30 | 2024-04-02 | Sumitomo Electric Industries, Ltd. | System, server computer thereof, control method, and computer program |
US11143055B2 (en) | 2019-07-12 | 2021-10-12 | Solar Turbines Incorporated | Method of monitoring a gas turbine engine to detect overspeed events and record related data |
US11411969B2 (en) * | 2019-11-25 | 2022-08-09 | Red Hat, Inc. | Live process migration in conjunction with electronic security attacks |
US11354207B2 (en) | 2020-03-18 | 2022-06-07 | Red Hat, Inc. | Live process migration in response to real-time performance-based metrics |
JP2022019145A (ja) * | 2020-07-17 | 2022-01-27 | 富士通株式会社 | イベントストリーム処理方法及びイベントストリーム処理プログラム |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3231563B2 (ja) | 1994-11-10 | 2001-11-26 | 日本電気株式会社 | メッセージ到着順序制御方式 |
JPH09244984A (ja) * | 1996-03-08 | 1997-09-19 | Nippon Telegr & Teleph Corp <Ntt> | イベント順序補正方法 |
US6052363A (en) | 1997-09-30 | 2000-04-18 | Northern Telecom Limited | Method for causal ordering in a distributed network |
BRPI0405235A (pt) | 2003-01-08 | 2005-10-04 | Nokia Corp | Aparelho e método para executar as operações de temporização da zona de pacote em um nó móvel operável em um sistema de radiocomunicação de pacote |
US7010538B1 (en) * | 2003-03-15 | 2006-03-07 | Damian Black | Method for distributed RDSMS |
US7487206B2 (en) * | 2005-07-15 | 2009-02-03 | International Business Machines Corporation | Method for providing load diffusion in data stream correlations |
US9009234B2 (en) * | 2007-02-06 | 2015-04-14 | Software Ag | Complex event processing system having multiple redundant event processing engines |
CN100476742C (zh) | 2007-02-09 | 2009-04-08 | 华中科技大学 | 基于对象存储设备的负载平衡方法 |
CN101441528B (zh) * | 2007-11-19 | 2011-03-02 | 华硕电脑股份有限公司 | 计算机系统的输入装置与其操作方法 |
US8479216B2 (en) * | 2009-08-18 | 2013-07-02 | International Business Machines Corporation | Method for decentralized load distribution in an event-driven system using localized migration between physically connected nodes and load exchange protocol preventing simultaneous migration of plurality of tasks to or from a same node |
US8370560B2 (en) * | 2009-11-16 | 2013-02-05 | International Business Machines Corporation | Symmetric live migration of virtual machines |
JP5504872B2 (ja) | 2009-12-16 | 2014-05-28 | 日本電気株式会社 | データストリーム処理システム及び方法、処理ノード再配置装置及びプログラム |
WO2011127060A1 (en) | 2010-04-05 | 2011-10-13 | Huawei Technologies Co., Ltd. | Method for dynamic on demand startup of a process or resource |
CN102223597A (zh) * | 2010-04-15 | 2011-10-19 | 上海启电信息科技有限公司 | 一种移动定位装置 |
US8521974B2 (en) * | 2010-11-23 | 2013-08-27 | International Business Machines Corporation | Migration of data in a distributed environment |
US8478743B2 (en) * | 2010-12-23 | 2013-07-02 | Microsoft Corporation | Asynchronous transfer of state information between continuous query plans |
-
2011
- 2011-10-31 EP EP11782086.0A patent/EP2774035B1/en active Active
- 2011-10-31 US US14/354,957 patent/US9954932B2/en active Active
- 2011-10-31 JP JP2014537500A patent/JP5847953B2/ja active Active
- 2011-10-31 AU AU2011380288A patent/AU2011380288B2/en active Active
- 2011-10-31 ES ES11782086.0T patent/ES2601804T3/es active Active
- 2011-10-31 CN CN201180074529.2A patent/CN104025051B/zh active Active
- 2011-10-31 BR BR112014010370-4A patent/BR112014010370B1/pt active IP Right Grant
- 2011-10-31 WO PCT/EP2011/069159 patent/WO2013064171A1/en active Application Filing
-
2012
- 2012-03-14 ES ES12708349.1T patent/ES2555578T3/es active Active
- 2012-03-14 US US14/354,976 patent/US9537937B2/en active Active
- 2012-03-14 AU AU2012331452A patent/AU2012331452B2/en active Active
- 2012-03-14 BR BR112014010348-8A patent/BR112014010348B1/pt active IP Right Grant
- 2012-03-14 EP EP12708349.1A patent/EP2774036B1/en active Active
- 2012-03-14 CN CN201280052949.5A patent/CN103907092B/zh active Active
- 2012-03-14 JP JP2014539262A patent/JP5847956B2/ja active Active
- 2012-03-14 WO PCT/EP2012/054475 patent/WO2013064273A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
CN103907092A (zh) | 2014-07-02 |
BR112014010370A2 (pt) | 2017-04-25 |
JP5847956B2 (ja) | 2016-01-27 |
BR112014010370B1 (pt) | 2021-08-10 |
EP2774035A1 (en) | 2014-09-10 |
WO2013064273A1 (en) | 2013-05-10 |
EP2774035B1 (en) | 2016-08-03 |
AU2012331452B2 (en) | 2015-06-18 |
CN103907092B (zh) | 2017-03-08 |
EP2774036A1 (en) | 2014-09-10 |
US20140297800A1 (en) | 2014-10-02 |
EP2774036B1 (en) | 2015-09-16 |
WO2013064171A1 (en) | 2013-05-10 |
BR112014010348A2 (pt) | 2017-04-18 |
US20140280448A1 (en) | 2014-09-18 |
CN104025051A (zh) | 2014-09-03 |
CN104025051B (zh) | 2017-05-03 |
JP5847953B2 (ja) | 2016-01-27 |
JP2015501493A (ja) | 2015-01-15 |
JP2015501031A (ja) | 2015-01-08 |
ES2555578T3 (es) | 2016-01-05 |
AU2011380288A1 (en) | 2014-04-17 |
US9954932B2 (en) | 2018-04-24 |
BR112014010348B1 (pt) | 2021-08-03 |
AU2011380288B2 (en) | 2015-09-17 |
US9537937B2 (en) | 2017-01-03 |
AU2012331452A1 (en) | 2014-04-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2601804T3 (es) | Aparato y método para la transferencia de procesos de detector de eventos operativos | |
ES2564842T3 (es) | Aparato y procedimiento para sincronizar eventos | |
Shih et al. | Designing CPS/IoT applications for smart buildings and cities | |
CN103560924B (zh) | 具有跟踪资源的系统 | |
CN108304717A (zh) | 安全监管 | |
US20140100699A1 (en) | Monitoring User Position to Determine a Time for Providing a Specified State at a User Premises | |
Hsiao et al. | An empirical evaluation of Bluetooth-based decentralized contact tracing in crowds | |
Becker et al. | Intrusion detection system framework for Internet of Things | |
Bate et al. | Searching for the minimum failures that can cause a hazard in a wireless sensor network | |
Hinrichs et al. | Applying Safety Methods To Sensor Networks | |
Wang | Accurate and Scalable Security Evaluation of Wireless Sensor Networks | |
Behfarnia | APPLICATION OF PROBABILISTIC INFERENCE TO RESILIENCY AND SECURITY ANALYSIS OF CYBER-PHYSICAL SYSTEMS | |
Phatak et al. | Detection of Faulty Sensor Node within Wireless Sensor Network for improving Network Performance | |
Kang et al. | qPALS: Quality-aware synchrony protocol for distributed real-time systems |