ES2694406T3 - Procedimiento de sincronización de datos en una red de ordenadores - Google Patents

Procedimiento de sincronización de datos en una red de ordenadores Download PDF

Info

Publication number
ES2694406T3
ES2694406T3 ES13455006.0T ES13455006T ES2694406T3 ES 2694406 T3 ES2694406 T3 ES 2694406T3 ES 13455006 T ES13455006 T ES 13455006T ES 2694406 T3 ES2694406 T3 ES 2694406T3
Authority
ES
Spain
Prior art keywords
server
manipulation
data model
request
client
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
Application number
ES13455006.0T
Other languages
English (en)
Inventor
Markus Klopf
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Frequentis AG
Original Assignee
Frequentis AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Frequentis AG filed Critical Frequentis AG
Application granted granted Critical
Publication of ES2694406T3 publication Critical patent/ES2694406T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2308Concurrency control
    • G06F16/2315Optimistic concurrency control
    • G06F16/2329Optimistic concurrency control using versioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G08SIGNALLING
    • G08GTRAFFIC CONTROL SYSTEMS
    • G08G5/00Traffic control systems for aircraft, e.g. air-traffic control [ATC]
    • G08G5/0004Transmission of traffic-related information to or from an aircraft
    • G08G5/0008Transmission of traffic-related information to or from an aircraft with other aircraft
    • GPHYSICS
    • G08SIGNALLING
    • G08GTRAFFIC CONTROL SYSTEMS
    • G08G5/00Traffic control systems for aircraft, e.g. air-traffic control [ATC]
    • G08G5/0004Transmission of traffic-related information to or from an aircraft
    • G08G5/0013Transmission of traffic-related information to or from an aircraft with a ground station

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

Procedimiento de sincronización de datos en una red de ordenadores (6), especialmente para sincronizar informaciones de tráfico, preferiblemente informaciones de tráfico aéreo, cuya red de ordenadores (6) comprende puestos de mando para vigilar el tráfico, al menos un servidor (1) y una pluralidad de clientes (2) enlazados en materia de datos con el servidor (1), - en el que se mantiene disponible en el servidor (1) un modelo de datos central (11) que contiene los datos a sincronizar y que, al llegar una solicitud de manipulación (3), ejecuta una manipulación de datos correspondiente a la solicitud de manipulación (3), - en el que se mantiene disponible siempre en cada uno de los clientes (2) un modelo de datos local (21) correspondiente al modelo de datos central (11) y sincronizado con éste, - en el que se desarrolla siempre en cada uno de los clientes (2) un programa de presentación (22) para presentar los datos a sincronizar y producir una interacción con un usuario (20), y en el que se desarrolla siempre en los clientes (2) un programa de control (24) que le ofrece al usuario (20) la posibilidad de manipular los datos a sincronizar, - en el que se formula con el programa de control (24) que se desarrolla en un cliente (2), al realizar el usuario (20) la manipulación de datos, una solicitud de manipulación correspondiente (3) y reenvía ésta al modelo de datos local (21), y se ejecuta en el respectivo modelo de datos local (21) de este cliente (2) la respectiva manipulación contenida en la solicitud de manipulación (3), - en el que, después de una ejecución exitosa en el modelo de datos local (21) del cliente (2), se envía la solicitud de manipulación (3) al servidor (1) y se ejecuta en el modelo de datos central (11) del servidor (1) la respectiva manipulación contenida en la solicitud de manipulación (3), y - en el que, después de una realización exitosa de la manipulación del modelo de datos central (11) del servidor (1), se envía la solicitud de manipulación (3) a todos los clientes (2) y se modifican los modelos de datos locales (21) de todos los clientes (2) de conformidad con la solicitud de manipulación (3), caracterizado - por que el modelo de datos local (21) de un cliente (2), especialmente de todos los clientes (2), presenta siempre dos modelos de datos locales homólogos (23, 25) correspondientes al modelo de datos central (11) del servidor (1), - por que, en caso de una activación correspondiente del programa de control (24) por el usuario, se genera una solicitud de manipulación (3) y se envía ésta al primer modelo de datos local (23), y se ejecuta la respectiva manipulación en el primer modelo de datos local (23) del cliente (2), - por que, después de una realización exitosa de la manipulación en el primer modelo de datos local (23) del cliente (2), se envía la solicitud de manipulación (3) al servidor (1), - por que el cliente (2), después de recibir solicitudes de manipulación (3) del servidor (1), envía las respectivas solicitudes de manipulación (3) al segundo modelo de datos local (23), - por que se comparan los modelos de datos primero y segundo (23, 25) uno con otro y, en caso de conflicto, se sobrescribe el primer modelo de datos (23) con el contenido del segundo modelo de datos (25), y - por que, para la transmisión de las solicitudes de manipulación (3) del servidor a un cliente (2), se emplea una transmisión asíncrona o una transmisión de radiodifusión.

Description

5
10
15
20
25
30
35
40
45
50
DESCRIPCION
Procedimiento de sincronización de datos en una red de ordenadores
La invención concierne a un procedimiento de sincronización de datos en una red de ordenadores según el preámbulo de la reivindicación 1.
Asimismo, la invención concierne a una red de ordenadores según el preámbulo de la reivindicación 13.
El estado de la técnica representado por el documento US 2010/0257230 A1 divulga un procedimiento de sincronización de datos en una red de ordenadores.
Se conoce por el estado de la técnica un gran número de diferentes procedimientos de sincronización de datos para redes de ordenadores y también se conocen redes de ordenadores correspondientes. Tales redes de ordenadores comprenden típicamente uno o varios servidores y una pluralidad de clientes enlazados con este servidor. Todos los clientes enlazados con el servidor facilitan al respectivo cliente el acceso de escritura o lectura a los datos almacenados en el servidor. Al mismo tiempo, se debe garantizar en el curso de la sincronización que todos los datos a sincronizar estén disponibles para todos los clientes. En este caso, hay que garantizar básicamente que las distintas entradas de órdenes de los clientes no perjudiquen al sistema total, especialmente no provoquen la caída del servidor y pongan así en peligro la integridad de los datos de toda la red de ordenadores.
Por consiguiente, el cometido de la invención consiste en proporcionar un procedimiento de sincronización de datos en una red de ordenadores, así como una red de ordenadores para habilitar y administrar datos sincronizados, que, por un lado, posibiliten un alto grado de interacción para el usuario y, por otro lado, presenten una alta seguridad de los datos.
La invención resuelve este problema mediante un procedimiento de la clase citada al principio con las características de la reivindicación 1. Asimismo, la invención resuelve el problema mediante la red de ordenadores de la clase citada al principio con las características de la reivindicación 13.
Según la invención, se ha previsto que
- se mantenga disponible en el servidor un modelo de datos central que contenga los datos a sincronizar y que, al llegar una solicitud de manipulación, ejecute una manipulación de datos correspondiente a la solicitud de manipulación,
- manteniéndose disponible siempre en cada uno de los clientes un modelo de datos local correspondiente al modelo de datos central y sincronizado con éste,
- desarrollándose siempre en cada uno de los clientes un programa de presentación para presentar los datos a sincronizar y para generar una interacción con un usuario, y desarrollándose siempre en los clientes un programa de control que le ofrece al usuario la posibilidad de manipular los datos a sincronizar,
- formulándose con el programa de control que se desarrolla en un cliente, al realizar el usuario una manipulación de datos, una solicitud de manipulación correspondiente y reenviándose ésta al modelo de datos local, y ejecutándose en el respectivo modelo de datos local de este cliente una manipulación contenida en la solicitud de manipulación,
- enviándose la solicitud de manipulación al servidor después de una ejecución exitosa de la misma en el modelo de datos local del cliente y ejecutándose en el modelo de datos central del servidor la respectiva manipulación contenida en la solicitud de manipulación, y
- enviándose la solicitud de manipulación a todos los clientes después de una realización exitosa de la manipulación del modelo de datos central del servidor y modificándose los modelos de datos locales de todos los clientes de conformidad con la solicitud de manipulación.
Se hace posible así un alto grado de interacción entre los distintos usuarios de la red de ordenadores y, al mismo tiempo, se garantiza una alta seguridad de los datos.
Para evitar inconsistencias de los datos puede estar previsto que el envío de las solicitudes de manipulación a todos los clientes se ejecute según el orden de su llegada al servidor.
Puede estar previsto con el mismo fin que se asignen índices correlativos a las solicitudes de manipulación según el orden de su llegada, procesándose las solicitudes de manipulación que llegan al servidor con arreglo especialmente a un programa single thread, comprobándose para cada uno de los clientes por el servidor, al recibirse una solicitud de manipulación, si han accedido a él todas las solicitudes de manipulación emitidas a partir de un instante prefijado, comprobándose si para cada índice entre el índice de inicio prefijado y el índice de la última solicitud de manipulación recibida existe siempre una solicitud de manipulación con este índice, y, en caso de que falte una solicitud de manipulación con un índice determinado, se haga una invitación al servidor instándole a que envíe
5
10
15
20
25
30
35
40
45
50
posteriormente la solicitud de manipulación faltante, tras lo cual la solicitud de manipulación faltante es enviada exclusivamente al cliente solicitante por el servidor.
Para impedir en muy amplio grado el envío de solicitudes de manipulación erróneas al servidor puede estar previsto que, antes del envío de una solicitud de manipulación del cliente al servidor, se realice siempre una comprobación del modelo de datos local del cliente y, en caso de rechazo de la solicitud de manipulación por el modelo de datos central del servidor, se suspenda el reenvío de la solicitud de manipulación al servidor y, eventualmente, se represente un aviso de error correspondiente en el programa de presentación.
Para evitar una distribución de solicitudes de manipulación erróneas a todos los clientes incluidos en la red de ordenadores puede estar previsto
-que, antes del envío de una solicitud de manipulación del servidor a todos los clientes, se realice una comprobación del modelo de datos central del servidor y, en caso de rechazo de la solicitud de manipulación por el modelo de datos central del servidor, se suspenda el reenvío de la solicitud de manipulación a los clientes,
- que se recupere la ejecución de la solicitud de manipulación en el modelo de datos central y
- que se envíe un aviso de error al cliente que formula la solicitud de manipulación, recuperándose la ejecución de esta solicitud de manipulación en el modelo de datos local de este cliente y representándose eventualmente un aviso de error correspondiente en el programa de presentación de este cliente.
Para garantizar que las modificaciones localmente realizadas en el modelo de datos local sean consistentes con las modificaciones centralmente realizadas en el modelo de datos central se ha previsto que el modelo de datos local de un cliente, especialmente de todos los clientes, presente siempre dos modelos de datos locales correspondientes al modelo de datos central del servidor,
- formulándose una solicitud de manipulación en caso de una activación correspondiente del programa de control por el usuario y reenviándose esta solicitud al primer modelo de datos local, y ejecutándose la respectiva manipulación en el primer modelo de datos local del cliente,
- enviándose la solicitud de manipulación al servidor después de una realización exitosa de la manipulación en el primer modelo de datos local del cliente,
- reenviando el cliente las respectivas solicitudes de manipulación al segundo modelo de datos local después de recibirse solicitudes de manipulación del servidor y
- comparándose los modelos de datos primero y segundo uno con otro y, en caso de conflicto, sobrescribiéndose el primer modelo de datos con el contenido del segundo modelo de datos,
- desechándose eventualmente las solicitudes de manipulación del primer modelo de datos no tratadas por el servidor y/o representándose el conflicto entre los modelos de datos por el programa de presentación y poniéndose este conflicto en conocimiento del usuario.
Para impedir que todo el sistema de ordenadores quede incapacitado para funcionar después de una caída del servidor puede esta previsto que el servidor envíe a los servidores adicionales un aviso de activo a intervalos temporales prefijados y, al suspenderse un aviso de activo del servidor, uno de los servidores adicionales funcione en adelante como servidor.
Para evitar una caída inmediata siguiente del servidor adicional a consecuencia de solicitudes de manipulación erróneas puede estar previsto que las solicitudes de manipulación que llegan al servidor sean alimentadas con un retardo temporal prefijado a al menos un servidor adicional correspondiente o idéntico al servidor, desechándose los mensajes que, a consecuencia del retardo temporal, no hayan aún llegado al servidor adicional ahora activo.
Para garantizar que, al agregar un cliente adicional, no aparezcan inconsistencias de los datos puede estar previsto que se agregue un cliente adicional durante el funcionamiento continuado y que este cliente se enlace con el servidor a través de la red de ordenadores, enviando el servidor al nuevo cliente agregado la totalidad del modelo de datos central almacenado en el servidor y almacenando el cliente este modelo como modelo de datos local, ajustándose eventualmente el índice de inicio del cliente al valor del índice de la solicitud de manipulación últimamente enviada por el servidor.
Para poder registrar ventajosamente todas las actuaciones de todos los usuarios puede estar previsto que todas las solicitudes de manipulación provenientes de los clientes y/o del servidor se almacenen en un servidor de registro enlazado con el servidor a través de la red de ordenadores.
Para poder inyectar datos externos en la red de ordenadores puede estar previsto que se inyecten datos de una fuente de datos externa en la red de ordenadores, especialmente datos meteorológicos, horarios de vuelos, informaciones de puertas, informaciones de tráfico o datos de radar de vuelo, y se alimenten estos datos a un cliente adicional que disponga de un modelo de datos y un programa de control, formulándose una solicitud de
5
10
15
20
25
30
35
40
45
manipulación en base a los datos entrantes de la fuente de datos externa y reenviándose estos datos al modelo de datos local,
- enviándose la solicitud de manipulación al servidor después de una ejecución exitosa de la misma en el modelo de datos local del cliente adicional y ejecutándose en el modelo de datos central del servidor la respectiva manipulación contenida en la solicitud de manipulación, y
- enviándose la solicitud de manipulación a todos los clientes y a todos los clientes adicionales después de una realización exitosa de la manipulación del modelo de datos central del servidor y modificándose los modelos de datos locales de todos los clientes y de todos los clientes adicionales de conformidad con la solicitud de manipulación.
Se ha previsto que se emplee una transmisión asíncrona o una transmisión de radiodifusión para las solicitudes de manipulación del servidor a un cliente.
Para efectuar una selección ventajosa de clases de envío dentro de la red de ordenadores puede estar previsto que se emplee para el envío de algunas o todas las clases siguientes de mensajes una transmisión síncrona:
a) Solicitudes de manipulación de un cliente al servidor,
b) Solicitudes de manipulación del servidor a un servidor adicional,
c) Envío de solicitudes de manipulación faltantes del servidor a un cliente,
d) Envío de modelos completos del servidor a un cliente,
e) Avisos de activo del servidor a un servidor adicional,
y/o que se emplee una transmisión asíncrona o una transmisión de radiodifusión para el envío de algunas o todas las clases siguientes de mensajes:
f) Avisos de activo del servidor a un cliente.
Asimismo, la invención concierne a una red de ordenadores para habilitar y administrar datos sincronizados, especialmente informaciones de tráfico aéreo. Según la invención, la red de ordenadores comprende al menos un servidor y una pluralidad de clientes enlazados en materia de datos con el servidor,
- presentando el servidor un modelo de datos central que contiene los datos a sincronizar y que, al llegar una solicitud de manipulación, ejecuta una manipulación de datos correspondiente a la solicitud de manipulación,
- presentando siempre cada uno de los clientes un modelo de datos local correspondiente al modelo de datos central y sincronizado con éste,
- desarrollándose siempre en cada uno de los clientes un programa de presentación para fines de presentación e interacción con el usuario, y desarrollándose siempre en los clientes un programa de control que le ofrece al usuario la posibilidad de manipulación de los datos,
- formulando el programa de control de cada cliente, al ser activado por el usuario, una solicitud de manipulación correspondiente y reenviándola al modelo de datos local, y ejecutando el respectivo modelo de datos local la respectiva manipulación contenida en la solicitud de manipulación,
- enviando el cliente la solicitud de manipulación al servidor después de una ejecución exitosa de la misma en el modelo de datos local y ejecutando el modelo de datos central la respectiva manipulación contenida en la solicitud de manipulación, y
- enviando el servidor, después de una realización exitosa de la manipulación del modelo de datos central, la solicitud de manipulación a todos los clientes y ejecutando los modelos de datos locales de todos los clientes la manipulación contenida en la solicitud de manipulación.
Para evitar inconsistencias de los datos puede estar previsto que el servidor presente una unidad de control que asigne a las solicitudes de manipulación unos índices correlativos según el orden de su llegada al servidor.
Puede estar previsto con el mismo fin que el servidor compruebe para cada uno de los clientes, al recibirse una solicitud de manipulación, si han accedido a él todas las solicitudes de manipulación emitidas a partir de un instante prefijado, especialmente si para cada índice entre el índice de inicio prefijado y el índice de la última solicitud de manipulación recibida existe siempre una solicitud de manipulación con este índice, y que, en caso de que falte una solicitud de manipulación con un índice determinado, el cliente envíe al servidor una invitación instándole a que envíe posteriormente la solicitud de manipulación faltante, tras lo cual el servidor envía la solicitud de manipulación faltante exclusivamente al cliente solicitante.
5
10
15
20
25
30
35
40
45
50
Para impedir en muy amplio grado el envío de solicitudes de manipulación erróneas al servidor puede estar previsto que, antes del envío de una solicitud de manipulación al servidor, el cliente realice siempre una comprobación de su modelo de datos local y, en caso de que exista un error en el modelo de datos local, suspenda el reenvío de la solicitud de manipulación al servidor, representando eventualmente el programa de presentación un aviso de error correspondiente.
Para evitar una distribución de solicitudes de manipulación erróneas a todos los clientes incluidos en la red de ordenadores puede estar previsto
-que, antes del envío de una solicitud de manipulación del servidor a todos los clientes, el servidor realice una comprobación del modelo de datos central y, en caso de que exista un error en el modelo de datos central del servidor, suspenda el reenvío de la solicitud de manipulación a los clientes,
- que el servidor recupere la ejecución de la solicitud de manipulación en el modelo de datos central y
- que el servidor envíe un aviso de error al cliente que formula la solicitud de manipulación, recuperando el cliente la ejecución de esta solicitud de manipulación en el modelo de datos local y representando eventualmente el programa de presentación de este cliente un aviso de error correspondiente.
Para garantizar que las modificaciones localmente realizadas en el modelo de datos local sean consistentes con las modificaciones centralmente realizadas en el modelo de datos central se ha previsto que el modelo de datos local de un cliente, especialmente de todos los clientes, presente siempre dos modelos de datos locales correspondientes al modelo de datos central del servidor,
- generando el programa de control una solicitud de manipulación en caso de una activación correspondiente del mismo por el usuario y reenviando esta solicitud al primer modelo de datos local y ejecutando la respectiva manipulación en el primer modelo de datos local del cliente,
- enviando el cliente la solicitud de manipulación al servidor después de una realización exitosa de la manipulación en el primer modelo de datos local,
- reenviando el cliente las respectivas solicitudes de manipulación al segundo modelo de datos local después de recibirse solicitudes de manipulación del servidor y comparando los modelos de datos primero y segundo uno con otro y, en caso de conflicto, sobrescribiendo el contenido del primer modelo de datos con el contenido del segundo modelo de datos,
- desechando eventualmente el cliente las solicitudes de manipulación del primer modelo de datos no tratadas por el servidor y/o representando el programa de presentación el conflicto entre los modelos de datos y poniendo este conflicto en conocimiento del usuario.
Para impedir que todo el sistema de ordenadores quede incapacitado para funcionar después una caída del servidor puede esta previsto que
- haya un servidor adicional cuya entrada esté conectada a la salida de la unidad de retardo, estando configurado el servidor adicional exclusivamente para recibir mensajes y solicitudes de manipulación,
- entregando el servidor al servidor adicional, a intervalos temporales prefijados, una solicitud de manipulación o un aviso de activo,
- cumpliéndose que, al suspenderse un aviso de activo o una solicitud de manipulación, el servidor adicional funciona en adelante como servidor.
Para evitar una caída inmediata siguiente del servidor adicional a consecuencia de solicitudes de manipulaciones erróneas puede estar previsto que
- haya una unidad de retardo con una memoria que archive en su memoria los mensajes que lleguen a su entrada y que, después de un tiempo prefijado, lea estos mensajes en la memoria y los entregue en su salida, alimentándose a la entrada de la unidad de retardo los mensajes que llegan al servidor,
- cumpliéndose que, al suspenderse un aviso de activo o una solicitud de manipulación del servidor, el servidor adicional funciona en adelante como servidor y borra la memoria de la unidad de retardo.
Para poder registrar ventajosamente todas las actuaciones de todos los usuarios puede estar previsto que haya un servidor de registro enlazado en materia de datos con el servidor a través de la red, que almacene todas las solicitudes de manipulación provenientes de los clientes y/o del servidor.
Para poder inyectar datos externos en la red de ordenadores puede estar previsto que haya una fuente de datos externa, especialmente con datos de radar de vuelo, estando previsto un cliente adicional que dispone de un respectivo modelo de datos que corresponde al modelo de datos de los restantes clientes, presentando el cliente
5
10
15
20
25
30
35
40
45
50
55
adicional un programa de control que, al llegar datos de la fuente de datos externa, formula una solicitud de manipulación y la reenvía al modelo de datos local,
- enviando el cliente adicional la solicitud de manipulación al servidor después de una manipulación exitosa de su modelo de datos local y
- ejecutando el servidor en el modelo de datos central de dicho servidor la respectiva manipulación contenida en la solicitud de manipulación, y
- enviando el servidor la solicitud de manipulación a todos los clientes y a todos los clientes adicionales después de una realización exitosa de la manipulación de su modelo de datos central, modificando todos los clientes y todos los clientes adicionales sus modelos de datos locales de conformidad con la solicitud de manipulación.
Ayudándose de las figuras de los dibujos siguientes se representa un ejemplo de realización concreto de la invención.
En la figura 1 se representa a modo de ejemplo una red de ordenadores 6 según una forma de realización preferida de la invención. En la figura 2 se representa en detalle la constitución interna de un cliente. La figura 3 muestra esquemáticamente el modo de proceder en el ejemplo de realización representado.
En la figura 1 se representa una red de ordenadores 6 que comprende un servidor 1 y una pluralidad de clientes 2 enlazados con el servidor 1. Aparte del servidor 1, en esta red de ordenadores 6 se encuentran aún otros componentes opcionales, tales como un servidor adicional 13 y un servidor de registro 12. Además, la red de ordenadores ilustrada en la figura 1 presenta un cliente opcional adicional a través del cual pueden alimentarse datos externos de una fuente de datos externa 5 a la red de ordenadores 6 y especialmente al servidor 1. Se trata aquí eventualmente de datos meteorológicos, horarios de vuelos, informaciones de puertas, informaciones de tráfico o datos de radar de vuelo.
En el ejemplo de realización siguiente se tienen que sincronizar datos de clases muy diferentes entre los distintos clientes; éstos son, por ejemplo, datos externos y datos que se han generado siempre por un cliente 2 a consecuencia de una actuación de manejo de un usuario 2o. Todos estos datos deben estar disponibles en sincronismo para los restantes usuarios que manejan también un cliente 2.
En la figura 1 se representa el modo en que una sola actuación de manipulación de datos 50 ejecutada por un usuario 20 en uno de los clientes 2 repercute sobre toda la red de ordenadores 6. En el cliente 2 se desarrolla un programa de presentación 22 que presenta los datos a sincronizar y hace posible una interacción con el usuario. Este programa de presentación 22 está enlazado en materia de datos con un programa de control 24, activando el programa de control 24 la interfaz de red del cliente 2 y haciendo posible una comunicación de datos con el respectivo servidor 1 a través de la red de ordenadores 6. El usuario 20 ejecuta con el cliente 2 o con el programa de presentación 22 que se desarrolla en él, por ejemplo por clicado, tracción, entrada de órdenes por teclado, etc., una actuación de manipulación de datos 50. Ésta se reenvía (paso 51) por el programa de presentación 22a al programa de control 24, el cual formula una solicitud de manipulación correspondiente 3. Se reenvía (paso 52) esta solicitud de manipulación 3 a un modelo de datos 21 que se desarrolla en el cliente 2. El modelo de datos local 21, que está sincronizado con el modelo de datos central 11 del servidor 1, se hace cargo de la solicitud de manipulación 3 formulada por el usuario 20 o el programa de control 24 y la ejecuta (paso 53). Se modifica así (paso 54) el modelo de datos 21 de conformidad con la solicitud de manipulación 3. La modificación del modelo de datos local 21 por la solicitud de manipulación se efectúa en general correctamente, y el modelo de datos local 21 acepta (paso 55) la solicitud de manipulación 3 sin emitir un aviso de error. Siempre que el modelo de datos local 21 devuelva un aviso de error y deseche la solicitud de manipulación 3 como inválida o inadmisible, hay que partir también de la consideración de que el modelo de datos central 11 del servidor 1, sincronizado con el modelo de datos local 21, desecharía la respectiva solicitud de manipulación o la encontraría inválida o inadmisible. En este caso, se genera ya por el modelo de datos local 21 un aviso de error y se visualiza éste por medio del programa de presentación 22. En caso de que no pudiera procesarse con éxito la entrada de datos del usuario 20, se visualiza también (paso 60) esta ejecución en el programa de presentación 22; en todo caso, se puede representar mediante una codificación de color diferente que los datos manipulados son correctos y se aceptan meramente de forma provisional a reserva de una confirmación definitiva por el servidor 1. El usuario es puesto en conocimiento de esto (paso 61).
Siempre que la solicitud de manipulación 3 se considere correcta por el modelo de datos local 21, el programa de control 24 que se desarrolla en el cliente 2 envía al servidor 1 (paso 56) la solicitud de manipulación 3 a través de la red de ordenadores 26. El servidor 1 confirma la recepción de la solicitud de manipulación 3 y, a su vez, comienza con el procesamiento de la solicitud de manipulación 3 (paso 56a).
En el servidor 16 se desarrolla un programa de control 16 del lado del servidor que recibe la solicitud de manipulación 3 emitida por el cliente 2. El programa de control 16 del lado del servidor envía la solicitud de manipulación 3 al modelo de datos central 11 situado en el servidor 1, y la manipulación contenida en la respectiva solicitud de manipulación 3 es ejecutada en el modelo de datos central 11 del servidor 1. En este caso, se comprueba por el modelo de datos central 11 si la aplicación de la manipulación contenida en la solicitud de manipulación 3 supone una modificación admisible del modelo de datos 11 o si la manipulación contenida en la
5
10
15
20
25
30
35
40
45
50
55
60
solicitud de manipulación 3 es inadmisible o irrealizable. Solamente en el caso de que se pueda realizar con éxito en el modelo de datos central 11 la manipulación contenida en la solicitud de manipulación 3, el programa de control central 16 del cliente 2 envía una solicitud de manipulación 3 a todos los clientes 2 para producir una sincronización con estos clientes 2 (paso 57a).
Siempre que el modelo de datos central 11 del servidor 1 no pueda procesar la solicitud de manipulación 3 que llega al servidor 1 o cuando la manipulación contenida en la solicitud de manipulación 3 es inválida o inadmisible con respecto al modelo de datos central 11 del servidor 1, se suspende el reenvío de la solicitud de manipulación 3 a los clientes 2. Además, se genera un aviso de error 4 que se reenvía al cliente 2 que formula la solicitud de manipulación 3. Se recupera la ejecución de la respectiva solicitud de manipulación 3 en el modelo de datos local 21 del cliente 2 y se visualiza un aviso correspondiente en el programa de presentación 21 del cliente 2.
La solicitud de manipulación 3 accede a los clientes 2, con lo que los respectivos modelos locales de los clientes 2 reciben la respectiva solicitud de manipulación 3. Se envía la solicitud de manipulación 3 al modelo de datos local 21 y se aplica al respectivo modelo de datos local 11 del cliente 2 (paso 58) la respectiva manipulación contenida en la solicitud de manipulación 3. Se modifican así los modelos de datos locales 21 de los clientes 2 de conformidad con la solicitud de manipulación 3. Se visualizan (paso 59) los datos actualizados del modelo de datos local 21 con el respectivo programa de presentación 22, y se informa de ello convenientemente al usuario 20 (paso 59a).
Además, se envían también las solicitudes de manipulación 3 formuladas por el servidor 1 a todos los demás componentes situados en la red de ordenadores 6, en el presente caso al cliente adicional 26, al servidor adicional 13 y al servidor de registro 12, por medio de una comunicación asíncrona de radiodifusión.
En el presente ejemplo de realización especial, representado en la figura 2, el modelo de datos local 21 de un cliente
2 presenta siempre dos modelos de datos locales 23, 25 homólogos y correspondientes al modelo de datos central 11 del servidor 1. Al formular la solicitud de manipulación 3 se reenvía esta solicitud de manipulación 3 al primer modelo de datos local 23 y se ejecuta en el primer modelo de datos 33 del cliente 2 la respectiva manipulación contenida en la solicitud de manipulación 3. A continuación, en presencia de un retroaviso positivo del primer modelo de datos local 23 y un procesamiento exitoso de la respectiva manipulación en el primer modelo de datos local 23, se envía la solicitud de manipulación 3 al servidor 1. Siempre que el servidor 1 continúe procesando con éxito la solicitud de manipulación 3 y reenvíe al cliente 2 una solicitud de manipulación correspondiente 3, se reenvía al segundo modelo de datos local 25 la solicitud de manipulación 3 recibida por el servidor 1 y se aplica al segundo modelo de datos local 25 la manipulación contenida en la solicitud de manipulación 3. A continuación, se comparan los modelos de datos primero y segundo 23, 25 uno con otro. En caso de que el primer modelo de datos 23 y el segundo modelo de datos 25 estén en conflicto uno con otro o no coincidan uno con otro, se sobrescribe el primer modelo de datos 23 con el contenido del segundo modelo de datos 25 y se recupera así la solicitud de manipulación
3 formulada originariamente por el cliente 2. Se expide un aviso correspondiente hacia el cliente 2 o hacia su programa de presentación 22. Por consiguiente, se desecha la solicitud de manipulación del primer modelo de datos 23 no tratada por el servidor 1.
Inmediatamente después de su llegada al servidor 1 se asigna siempre a todas las solicitudes de manipulación 3 formuladas por los clientes 2 y que llegan al servidor 1 un índice correlativo X que corresponde al orden de llegada de las solicitudes de manipulación 3. Se procesan adicionalmente en un programa single thread las solicitudes de manipulación 3 que llegan al servidor 1. El contenido total del modelo de datos local 21, los modelos de datos locales primero y segundo 23, 25 y el modelo de datos centra 11 está constituido por un número diferente de solicitudes de manipulación 3 ejecutadas una tras otra. En el modelo de datos 11 situado en el servidor 1 existen siempre solicitudes de manipulación 3 enviadas por clientes 2, a las cuales se asignan siempre índices correlativos X en el orden de su llegada. La asignación de los índices correlativos X se efectúa inmediatamente después de la llegada de las solicitudes de manipulación 3 al servidor 1. Si el cliente 2 recibe del servidor 1 una solicitud de manipulación 3, el cliente 2 comprueba entonces si han accedido a él todas las solicitudes de manipulación 3 cuyo respectivo índice correlativo X es más pequeño que el índice X asignado la solicitud de manipulación 3 ahora recibida.
Se recomienda a este respecto que se fije un índice de inicio S, siendo necesario que se compruebe únicamente si existe siempre en el modelo de datos local 21, para cada índice X entre el índice de inicio prefijado S y el índice X de la última solicitud de manipulación recibida 3, una solicitud de manipulación 3 con este índice. Siempre que falte una solicitud de manipulación 3 con un índice determinado X, el cliente 2 envía al servidor 1 una invitación instándole a que envíe posteriormente la solicitud de manipulación faltante 3. Seguidamente, el servidor 1 envía exclusivamente al cliente solicitante una solicitud de manipulación correspondiente 3.
Siempre que accedan al servidor 1 aproximadamente al mismo tiempo varias solicitudes de manipulación 3, se fija entonces un orden unívoco por efecto de la fijación del orden de llegada mediante la adjudicación de índices correlativos, con lo que se impide una diferenciación entre los distintos modelos de datos locales 21 provocada por la aplicación diferente de las distintas solicitudes de manipulación 3 en los distintos clientes 2. Siempre que dos o más clientes 2 envíen aproximadamente al mismo tiempo solicitudes de manipulación 3 al servidor 1, este servidor 1 adjudica siempre unos índices correlativos X para estas solicitudes, con lo que estos índices designarán seguidamente cuál de las solicitudes de manipulación 3 es la primera en llegar al servidor 1. Las solicitudes de
5
10
15
20
25
30
35
40
45
50
55
60
manipulación 3 son tramitadas en serie por el servidor 1. Siempre que las solicitudes de manipulación 3 de los distintos clientes 2 conciernan a zonas de datos idénticas del modelo de datos local 21, se tiene que, antes del envío de las distintas solicitudes de manipulación 3 de los clientes 2 al servidor 1, existen siempre modelos de datos locales diferentes 21 en los distintos clientes 2.
En caso de una inconsistencia de esta clase, los datos en el modelo de datos local 11 del servidor 1 tienen prioridad frente a los datos del modelo de datos local 21 de los clientes 2. Si el cliente 2 recibe una solicitud de manipulación 3 del servidor 1 que se desvía en contenido de la solicitud de manipulación 3 enviada por él al servidor 1, el cliente 2 adapta entonces su modelo de datos 21 al modelo de datos 11 del servidor 1. En todo caso, se emite un aviso de error correspondiente.
En particular, se pueden producir datos inconsistentes debido a que dos clientes envían al servidor 1 solicitudes de manipulación 3 que acceden al mismo contenido de datos. Por ejemplo, un primer cliente 2 puede enviar al servidor 1 una solicitud de manipulación 3 según la cual se debe borrar un determinado contenido de datos. Seguidamente, un segundo cliente 2 envía al servidor 1 una solicitud de manipulación 3 que pretende alterar el contenido de datos que se ha borrado mientras tanto. Esta manipulación de los datos es inadmisible, ya que se ha borrado el contenido de datos que se quiere modificar. En este caso, el modelo de datos central 11 rechaza la alteración del contenido de datos y envía al segundo cliente 2 un aviso de error correspondiente.
En lo que sigue se representan con más detalle los componentes opcionales o especiales ya mencionados anteriormente que, junto con el servidor 1 y los clientes 2, pueden encontrarse en la presente red de ordenadores 6. Sin embargo, no es en ningún caso obligatorio hacer uso de los componentes seguidamente citados, pero puede recurrirse adicionalmente a ellos si existe una necesidad correspondiente. Cada uno de estos componentes puede emplearse ventajosamente en solitario o en combinación con los restantes componentes.
En la figura 1 se representa un servidor adicional 13 que tiene la funcionalidad básica del servidor 1. Sin embargo, el servidor adicional 13 está en principio desactivado y, en el estado de funcionamiento normal, desempeña únicamente la función de vigilancia del servidor 1. El servidor 1 envía siempre al servidor adicional 13, a intervalos temporales prefijados, un aviso de activo 14. El servidor adicional 13 comprueba siempre a intervalos temporales si existe un aviso de activo 14 del servidor 1. En caso contrario, el servidor adicional 13 deduce que el servidor 1 no está disponible o es inasequible y asume la función del mismo. Para garantizar una asunción sin fricciones de esta función acceden inmediatamente al servidor adicional 13 las solicitudes de manipulación 3 formuladas por el servidor 1. Sin embargo, el servidor adicional 13 no envía espontáneamente las respectivas solicitudes de manipulación 3 a todos los clientes 2 o a otras unidades contenidas en la red de ordenadores 6, sino que únicamente almacena estas solicitudes y, por su parte, no emite avisos. Únicamente en caso de que, a lo largo de un prolongado espacio temporal o intervalo temporal, no acceda ningún aviso de error 14 del servidor 1 al servidor adicional 13, éste asume la función del servidor 1 y, por consiguiente, envía a los restantes clientes 2 las solicitudes de manipulación 3 que han llegado a él. En la presente forma de realización especial el servidor adicional 13 desecha el último aviso entrante 3. Además, puede suponerse que el cliente 2 del cual proviene el último aviso 3 presenta un funcionamiento erróneo. Este cliente 2 es separado del servidor adicional 13 y sus avisos 3 son ignorados hasta que sea reajustado.
Existe frecuentemente el problema de que la falta de un retroaviso del servidor 1, por ejemplo ocasionado por una caída del servidor 1 o por una interrupción de la red de ordenadores 6 hacia el servidor 1, es provocada por la naturaleza especial de las solicitudes de manipulación 3 que llegan al mismo. Una medida de seguridad adicional preferida, con la cual se impide que falte un retroaviso del servidor adicional 1 y, en consecuencia, de todo el sistema, radica en alimentar al servidor adicional 13 con un retardo temporal las solicitudes de manipulación entrantes 3, con lo que no llegan al servidor adicional 13 las solicitudes de manipulación 3 que se efectuaron durante el intervalo temporal prefijado, especialmente de uno a cinco segundos, antes de la falta de un retroaviso del servidor 1. En este caso, las solicitudes de manipulación 3 formuladas dentro del intervalo temporal prefijado antes de la falta de un retroaviso del servidor 1 no son reenviadas al servidor adicional 13 y son destruidas o desechadas. Para materializar esto, el servidor adicional 13 está enlazado con la red de ordenadores 6 a través de una unidad de retardo 17, destinada a la recepción y emisión retardada de solicitudes de manipulación 3, y de una memoria 18 contenida en dicha unidad. Tan pronto como el servidor adicional 13 funciona como servidor 1, se desactiva la unidad de retardo 17 y se borra la memoria 18, con lo que el servidor adicional 13, actuando ahora como el servidor 1, puede reaccionar inmediatamente a las solicitudes de manipulación 3 que lleguen al mismo. Recíprocamente, se puede poner en estado activo una unidad de retardo 17 antepuesta al servidor 1 y desactivada hasta entonces, después de lo cual el servidor 1 asume la función del servidor adicional 1.
Si, durante el funcionamiento continuado, se agrega un nuevo cliente 2 a la red de ordenadores 6, existe en principio el problema de que este cliente adicional 2 presente un modelo de datos que se desvía el modelo de datos central del servidor. El servidor 1 envía en este caso al nuevo cliente agregado 2 el modelo de datos central 11 almacenado en el mismo. El cliente 2 almacena este modelo de datos 21 enviado al mismo como su modelo de datos local 21; 23, 25. El envío del modelo de datos 21 puede efectuarse en forma de la estructura de datos del modelo de datos 21 o en forma de una pluralidad de solicitudes de manipulación 3 enviadas una tras otra que están dirigidas exclusivamente al nuevo cliente agregado 2. Siempre que, debido a una caída en la red, el nuevo cliente agregado 2 no haya recibido un número determinado de solicitudes de manipulación 3 desde un instante X, existe también la
5
10
15
20
25
30
35
40
45
50
55
60
posibilidad de enviar una vez más al cliente agregado 2 todas las solicitudes de manipulación 3 enviadas a los clientes 2 desde este instante.
En la figura 1 se representa, además, un servidor de registro 12. Se alimentan a este servidor de registro 12, a través de la red de ordenadores 6, todas las solicitudes de manipulación 3 provenientes del servidor 1 y de los clientes 2. El servidor de registro 12 almacena todas las solicitudes de manipulación 3 para su ulterior empleo.
Se puede agregar también a la red de ordenadores 6 un cliente adicional 26 para crear una interfaz “System2System-Interface” a la que se alimentan datos de una fuente de datos externa 5. Estos datos son, por ejemplo, datos meteorológicos, horarios de vuelos, informaciones de puertas, informaciones de tráfico o datos de radar de vuelo. Estos datos se adquieren fundamentalmente de proveedores o suministradores externos, tales como servicios meteorológicos, líneas aéreas, aeropuertos, etc., y se emplean ventajosamente por los usuarios 20 para tomar sus decisiones. Se alimentan los datos de la fuente de datos externa 5 al cliente adicional 26 Este cliente adicional 26 dispone de un modelo de datos 21 y un programa de control 27. Los datos que llegan de la fuente de datos externa 5 son tratados como interacciones de usuarios; en particular, al presentarse nuevos datos externos de la fuente de datos externa 5 se formula una solicitud de manipulación 3 y se reenvía esta solicitud de manipulación 3 al modelo de datos local 21. El modelo de datos local 21 corresponde a los modelos de datos locales 21 de los clientes 2 y al modelo de datos global 11 del servidor 1. Después de ejecutar con éxito en el modelo de datos local 21 del cliente adicional 26 la manipulación almacenada en la solicitud de manipulación 3 se envía la solicitud de manipulación 3 al servidor 1. Siempre que la manipulación contenida en la solicitud de manipulación 3 sea admisible y, por tanto, pueda ser ejecutada en el modelo de datos 11 del servidor 1, se envía la solicitud de manipulación 3 del servidor 1 a todos los clientes 1 y, si están presentes, a todos los clientes adicionales 26. A continuación, se alteran los modelos de datos locales 21 de todos los clientes 2 y los modelos de datos locales 21 de todos los clientes adicionales 26 de conformidad con la solicitud de manipulación 3 del servidor 1. En cuanto al tratamiento de solicitudes de manipulación 3 de clientes 2 y de clientes adicionales 26 que estén conectados a fuentes de datos externas 5, no existen diferencias de ninguna clase por parte del servidor 1. En todo caso, el servidor adicional 26 presenta incluso un programa de presentación 28 que, en caso de datos externos inadmisibles o solicitudes de manipulación inadmisibles 3, visualiza un aviso de error correspondiente. Este aviso de error puede ser enviado en todo caso también al servidor 1 y a los clientes 2.
En lo que sigue se describe con más detalle la transmisión de datos de los distintos mensajes a través de la red de ordenadores 6:
Existe en principio la posibilidad de transmitir mensajes individuales mediante una transmisión de radiodifusión, es decir, desde un emisor a un número indeterminado de receptores. Esto es ventajoso especialmente cuando todas las unidades contenidas en la red de ordenadores 6 deben ser informadas sobre determinados eventos. Por consiguiente, en el presente ejemplo de realización se envían, mediante una transmisión de radiodifusión, solicitudes de manipulación 3 y avisos de activo 14 del servidor 1 a todos los demás componentes de la red de ordenadores 6. El servidor 1 actuante como emisor no recibe en este caso ninguna confirmación referente a si y cómo muchos de los receptores han recibido este mensaje.
En una transmisión síncrona, que en el presente ejemplo de realización se emplea para las restantes clases de transmisión de mensajes entre las distintas unidades de la red de ordenadores 6, existe para el respectivo emisor la posibilidad de garantizar que el respectivo mensaje se haya recibido también realmente por el destinatario. En el presente ejemplo de realización se emplea una transmisión síncrona de mensaje para solicitudes de manipulación 3 de un cliente 2 al servidor 1, para solicitudes de manipulación 3 del servidor 1 a un servidor adicional 13, para el envío de solicitudes de manipulación faltantes 3 del servidor 1 a un cliente 2, para el envío de todos los modelos del servidor 1 a un cliente 2 y para el envío de avisos de activo 14 del servidor 1 a un servidor adicional 13.
Una forma de realización especial de la invención concierne al funcionamiento por islotes; en esta forma de realización no existe ninguna posibilidad de comunicación entre el cliente 2 y el servidor 1. Esto puede ocurrir debido al fallo del servidor 1 y todos los servidores adicionales 13 o bien puede estar interrumpido el enlace entre el cliente 2 y el servidor 1, así como los servidores adicionales 13. Típicamente, el servidor 1 responde dentro de un tiempo prefijado (paso 56a) después de la aparición de una solicitud de manipulación 3 del cliente. Por el contrario, si el servidor 1 no responde a la solicitud de manipulación 3 dentro de un tiempo prefijado, el cliente entra entonces en un modo de funcionamiento autónomo que dura un tiempo determinado, especialmente alrededor de 15 minutos. Durante este tiempo se almacenan en una memoria intermedia las distintas solicitudes de manipulación 3 formuladas por el respectivo cliente 2 y se las mantiene disponibles para un eventual envío posterior al servidor 1. Mientras tanto, se aplican al modelo de datos local 21 del cliente 2 las manipulaciones contenidas en las solicitudes de manipulación 3. Si no puede establecerse un enlace con el servidor 1 dentro del tiempo anteriormente citado de alrededor de 15 minutos, se envían entonces al servidor 1 las solicitudes de manipulación 3 archivadas en la memoria intermedia y se comprueba si las solicitudes de manipulación 3 archivadas en la memoria intermedia son realmente tramitadas por el servidor 1 y se las reenvía de nuevo al cliente 2. Si ocurre esto, el cliente 2 pasa nuevamente al modo de funcionamiento normal.
Por el contrario, si no es posible dentro del espacio temporal fijado establecer nuevamente un enlace entre el cliente 2 y el servidor 1, el cliente 1 pasa entonces a un modo de funcionamiento adicional autónomo, en el que se vuelven
a aplicar directamente al modelo de datos local 21 todas las solicitudes de manipulación formuladas por el cliente 2, sin que se espere a una confirmación del servidor 1. Aun cuando sea posible posteriormente un enlace entre el cliente 2 y el servidor 1, se suspende una sincronización entre el servidor 1 y el cliente 2 mediante un reenvío de todas las solicitudes de manipulación archivadas en la memoria intermedia, puesto que es muy probable que el 5 modelo de datos local 21 del cliente 2 se desvíe entonces tan fuertemente del modelo de datos central 11 del servidor 1 que ya no sea posible una sincronización.

Claims (22)

  1. 5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    REIVINDICACIONES
    1. Procedimiento de sincronización de datos en una red de ordenadores (6), especialmente para sincronizar informaciones de tráfico, preferiblemente informaciones de tráfico aéreo, cuya red de ordenadores (6) comprende puestos de mando para vigilar el tráfico, al menos un servidor (1) y una pluralidad de clientes (2) enlazados en materia de datos con el servidor (1),
    - en el que se mantiene disponible en el servidor (1) un modelo de datos central (11) que contiene los datos a sincronizar y que, al llegar una solicitud de manipulación (3), ejecuta una manipulación de datos correspondiente a la solicitud de manipulación (3),
    - en el que se mantiene disponible siempre en cada uno de los clientes (2) un modelo de datos local (21) correspondiente al modelo de datos central (11) y sincronizado con éste,
    - en el que se desarrolla siempre en cada uno de los clientes (2) un programa de presentación (22) para presentar los datos a sincronizar y producir una interacción con un usuario (20), y en el que se desarrolla siempre en los clientes (2) un programa de control (24) que le ofrece al usuario (20) la posibilidad de manipular los datos a sincronizar,
    - en el que se formula con el programa de control (24) que se desarrolla en un cliente (2), al realizar el usuario (20) la manipulación de datos, una solicitud de manipulación correspondiente (3) y reenvía ésta al modelo de datos local (21), y se ejecuta en el respectivo modelo de datos local (21) de este cliente (2) la respectiva manipulación contenida en la solicitud de manipulación (3),
    - en el que, después de una ejecución exitosa en el modelo de datos local (21) del cliente (2), se envía la solicitud de manipulación (3) al servidor (1) y se ejecuta en el modelo de datos central (11) del servidor (1) la respectiva manipulación contenida en la solicitud de manipulación (3), y
    - en el que, después de una realización exitosa de la manipulación del modelo de datos central (11) del servidor (1), se envía la solicitud de manipulación (3) a todos los clientes (2) y se modifican los modelos de datos locales (21) de todos los clientes (2) de conformidad con la solicitud de manipulación (3), caracterizado
    - por que el modelo de datos local (21) de un cliente (2), especialmente de todos los clientes (2), presenta siempre dos modelos de datos locales homólogos (23, 25) correspondientes al modelo de datos central (11) del servidor (1),
    - por que, en caso de una activación correspondiente del programa de control (24) por el usuario, se genera una solicitud de manipulación (3) y se envía ésta al primer modelo de datos local (23), y se ejecuta la respectiva manipulación en el primer modelo de datos local (23) del cliente (2),
    - por que, después de una realización exitosa de la manipulación en el primer modelo de datos local (23) del cliente (2), se envía la solicitud de manipulación (3) al servidor (1),
    - por que el cliente (2), después de recibir solicitudes de manipulación (3) del servidor (1), envía las respectivas solicitudes de manipulación (3) al segundo modelo de datos local (23),
    - por que se comparan los modelos de datos primero y segundo (23, 25) uno con otro y, en caso de conflicto, se sobrescribe el primer modelo de datos (23) con el contenido del segundo modelo de datos (25), y
    - por que, para la transmisión de las solicitudes de manipulación (3) del servidor a un cliente (2), se emplea una transmisión asíncrona o una transmisión de radiodifusión.
  2. 2. Procedimiento según la reivindicación 1, caracterizado por que el envío de las solicitudes de manipulación (3) a todos los clientes (2) se efectúa según el orden de su llegada al servidor (1).
  3. 3. Procedimiento según cualquiera de las reivindicaciones anteriores, caracterizado por que se asignan índices correlativos (X) a las solicitudes de manipulación (3) según el orden de su llegada, procesándose las solicitudes de manipulación (3) que llegan al servidor (1) con arreglo especialmente a un programa single thread,
    comprobándose por el servidor (1) para cada uno de los clientes (2), al recibirse una solicitud de manipulación (3), si han accedido a él todas las solicitudes de manipulación (3) emitidas a partir de un instante prefijado, comprobándose si para cada índice (X) entre un índice de inicio prefijado (S) y el índice (X) de la última solicitud de manipulación recibida (3) existe siempre una solicitud de manipulación (3) con este índice (X), y
    enviándose al servidor (1), en caso de que falte una solicitud de manipulación (3) con un índice determinado (X), una invitación instándole a que envíe posteriormente la solicitud de manipulación faltante (3), tras lo cual la solicitud de manipulación faltante (3) es enviada exclusivamente al cliente solicitante (2) por el servidor (1).
  4. 4. Procedimiento según cualquiera de las reivindicaciones anteriores, caracterizado por que, antes del envío de una solicitud de manipulación (3) del cliente (2) al servidor (1), se realiza siempre una comprobación del modelo de datos
    5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    local (21) del cliente (2) y, en caso de rechazo de la solicitud de manipulación (3) por el modelo de datos local (21) del cliente (2), se suspende el reenvío de la solicitud de manipulación (3) al servidor (1) y, eventualmente, se representa un aviso de error correspondiente en el programa de presentación (22).
  5. 5. Procedimiento según cualquiera de las reivindicaciones anteriores, caracterizado
    - por que, antes del envío de una solicitud de manipulación (3) del servidor (1) a todos los clientes (2), se realiza una comprobación del modelo de datos central (11) del servidor (1) y, en caso de rechazo de la solicitud de manipulación (3) por el modelo de datos central (11) del servidor (1), se suspenda el reenvío de la solicitud de manipulación (3) a los clientes (2),
    - por que se recupera la ejecución de la solicitud de manipulación (3) en el modelo de datos central (11) y
    - por que se envía un aviso de error (4) al cliente (2) que formula la solicitud de manipulación (3), recuperándose la ejecución de esta solicitud de manipulación (3) en el modelo de datos local (21) de este cliente (2) y representándose eventualmente un aviso de error correspondiente en el programa de presentación (22) de este cliente (2).
  6. 6. Procedimiento según cualquiera de las reivindicaciones anteriores, caracterizado por que se desechan las solicitudes de manipulación (3) del primer modelo de datos (23) no tratadas por el servidor (1) y/o se representa el conflicto entre los modelos de datos (23, 25) por el programa de presentación (22) y se pone este conflicto en conocimiento del usuario.
  7. 7. Procedimiento según cualquiera de las reivindicaciones anteriores, caracterizado por que el servidor (1) entrega a unos servidores adicionales (13) un aviso de activo (14) a intervalos temporales prefijados y, en caso de que se suspenda un aviso de activo (14) del servidor (1), uno de los servidores adicionales (13) asume en adelante la función del servidor (1).
  8. 8. Procedimiento según la reivindicación 7, caracterizado por que las solicitudes de manipulación (3) que llegan al servidor (1) son alimentadas con un retardo temporal prefijado a al menos un servidor adicional (13) correspondiente o idéntico al servidor (1), desechándose los mensajes que, a consecuencia del retardo temporal, no hayan aún llegado al servidor adicional ahora activo.
  9. 9. Procedimiento según cualquiera de las reivindicaciones anteriores, caracterizado por que se agrega un cliente adicional (2) durante el funcionamiento continuado y se enlaza este cliente con el servidor (1) a través de la red de ordenadores (6), enviando el servidor (1) al nuevo cliente agregado (2) la totalidad del modelo de datos central (11) almacenado en el servidor (1) y almacenando el cliente (2) este modelo como modelo de datos local (21), ajustándose eventualmente el índice de inicio (S) del cliente (2) al valor del índice de la solicitud de manipulación (3) últimamente enviada por el servidor (1).
  10. 10. Procedimiento según cualquiera de las reivindicaciones anteriores, caracterizado por que todas las solicitudes de manipulación (3) provenientes de los clientes (2) y/o del servidor (1) se almacenan en un servidor de registro (12) enlazado con el servidor (1) a través de la red de ordenadores (6).
  11. 11. Procedimiento según cualquiera de las reivindicaciones anteriores, caracterizado por que se inyectan datos de una fuente de datos externa (5) en la red de ordenadores (6), especialmente datos meteorológicos, horarios de vuelos, informaciones de puertas, informaciones de tráfico o datos de radar de vuelo, y se alimentan estos datos a un cliente adicional (26) que dispone de un modelo de datos (21) y un programa de control (24), formulándose una solicitud de manipulación (3) en base a los datos entrantes del la fuente de datos externa (5) y reenviándose estos datos al modelo de datos local (21),
    - enviándose la solicitud de manipulación (3) al servidor (1) después de una ejecución exitosa de la misma en el modelo de datos local (21) del cliente adicional (26) y ejecutándose en el modelo de datos central (11) del servidor (1) la respectiva manipulación contenida en la solicitud de manipulación (3), y
    - enviándose la solicitud de manipulación (3) a todos los clientes (2) y a todos los clientes adicionales (26) después de una realización exitosa de la manipulación del modelo de datos central (11) del servidor (1) y modificándose los modelos de datos locales (21) de todos los clientes (2) y de todos los clientes adicionales (26) de conformidad con la solicitud de manipulación (3).
  12. 12. Procedimiento según cualquiera de las reivindicaciones anteriores, caracterizado por que se emplea una transmisión síncrona para el envío de algunas o todas las clases siguientes de mensajes:
    a) solicitudes de manipulación (3) de un cliente (2) al servidor (1),
    b) solicitudes de manipulación (3) del servidor (1) a un servidor adicional (13),
    c) envío de solicitudes de manipulación faltantes (3) del servidor (1) a un cliente (2),
    d) envío de modelos completos del servidor (1) a un cliente (2),
    e) avisos de activo (14) del servidor (1) a un servidor adicional (13),
    5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    y/o por que se emplea una transmisión asíncrona o una transmisión de radiodifusión para el envío de algunas o todas las clases siguientes de mensajes:
    f) avisos de activo (14) del servidor (1) a un cliente (2).
  13. 13. Red de ordenadores para habilitar y administrar datos sincronizados, especialmente informaciones de tráfico aéreo, que comprende al menos un servidor (1) y una pluralidad de clientes (2) enlazados en materia de datos con el servidor (1),
    - en la que el servidor (1) presenta un modelo de datos central (11) que contiene los datos a sincronizar y que, al llegar una solicitud de manipulación (3), ejecuta una manipulación de datos correspondiente a la solicitud de manipulación (3),
    - en la que cada uno de los clientes (2) presenta siempre un modelo de datos local (21) correspondiente al modelo de datos central (11) y sincronizado con éste,
    - en la que se desarrolla siempre en cada uno de los clientes (2) un programa de presentación (22) para fines de presentación e interacción con el usuario, y en el que se desarrolla siempre en los clientes (2) un programa de control (24) que le ofrece al usuario la posibilidad de manipular los datos,
    - en la que el programa de control (24) de cada cliente (2), al ser activado por el usuario, formula una solicitud de manipulación correspondiente (3) y la reenvía al modelo de datos local (21), y el respectivo modelo de datos local (21) ejecuta la respectiva manipulación contenida en la solicitud de manipulación (3),
    - en la que el cliente (2) envía la solicitud de manipulación (3) al servidor (1) después de una ejecución exitosa de la misma en el modelo de datos local (21) y el modelo de datos central (11) ejecuta la respectiva manipulación contenida en la solicitud de manipulación (3), y
    - en la que, después de una realización exitosa de la manipulación del modelo de datos central (11), el servidor (1) envía la solicitud de manipulación (3) a todos los clientes (2) y los modelos de datos locales (21) de todos los clientes (2) ejecutan la manipulación contenida en la solicitud de manipulación (3), caracterizada
    - por que el modelo de datos local (21) de un cliente (2), especialmente de todos los clientes (2), presenta siempre dos modelos de datos locales homólogos (23, 25) correspondientes al modelo de datos central (11) del servidor (1),
    - por que el programa de control (24) genera una solicitud de manipulación (3) en caso de una activación correspondiente del mismo por el usuario y reenvía esta solicitud al primer modelo de datos local (23) y ejecuta la respectiva manipulación en el primer modelo de datos local (23) del cliente (2),
    - por que el cliente (2) envía la solicitud de manipulación (3) al servidor (1) después de una realización exitosa de la manipulación en el primer modelo de datos local (23),
    - por que el cliente (2) reenvía las respectivas solicitudes de manipulación (3) al segundo modelo de datos local (23) después de recibirse solicitudes de manipulación (3) del servidor (1) y compara los modelos de datos primero y segundo (23, 25) uno con otro y, en caso de conflicto, sobrescribe el contenido del primer modelo de datos (23) con el contenido del segundo modelo de datos (25), y
    - por que el servidor (1) envía solicitudes de manipulación (3) al cliente (2) por medio de una transmisión asíncrona o una transmisión de radiodifusión.
  14. 14. Red de ordenadores según la reivindicación 13, caracterizada por que el servidor (1) presenta una unidad de control (16) que asigna índices correlativos (X) a las solicitudes de manipulación (3) según el orden de su llegada al servidor (1).
  15. 15. Red de ordenadores según la reivindicación 13 o 14, caracterizada por que, al recibirse una solicitud de manipulación (3), cada uno de los clientes (2) comprueba si han accedido a él todas las solicitudes de manipulación (3) emitidas a partir de un instante prefijado, especialmente si para cada índice (X) entre un índice de inicio prefijado y el índice (X) de la última solicitud de manipulación recibida (3) existe siempre una solicitud de manipulación (3) con este índice (X), y, en caso de que falte una solicitud de manipulación (3) con un índice determinado (X), el cliente (2) envía al servidor (1) una invitación instándole a que envíe posteriormente la solicitud de manipulación faltante (3), tras lo cual el servidor (1) envía la solicitud de manipulación faltante (3) exclusivamente al cliente solicitante (2).
  16. 16. Red de ordenadores según cualquiera de las reivindicaciones 13 a 15, caracterizada por que, antes del envío de una solicitud de manipulación (3) al servidor (1), el cliente (2) realiza siempre una comprobación de su modelo de datos local (21) y, en caso de exista un error en el modelo de datos local (21), suspende el reenvío de la solicitud de manipulación (3) al servidor (1), representando eventualmente el programa de presentación (22) del cliente (2) un aviso de error correspondiente.
  17. 17. Red de ordenadores según cualquiera de las reivindicaciones 13 a 16, caracterizada
    5
    10
    15
    20
    25
    30
    35
    40
    - por que, antes del envío de una solicitud de manipulación (3) del servidor (1) a todos los clientes (2), el servidor (1) realiza una comprobación del modelo de datos central (11) y, en caso de que exista un error en el modelo de datos central (11), suspende el reenvío de la solicitud de manipulación (3) a los clientes (2),
    - por que el servidor (1) recupera la ejecución de la solicitud de manipulación (3) en el modelo de datos central (11) y
    - por que el servidor (1) envía un aviso de error (4) al cliente (2) que formula la solicitud de manipulación (3), recuperando el cliente (2) la ejecución de esta solicitud de manipulación (3) en el modelo de datos local (21) y representando eventualmente el programa de presentación (22) de este cliente (2) un aviso de error correspondiente.
  18. 18. Red de ordenadores según cualquiera de las reivindicaciones 13 a 17, caracterizada por que se desechan las solicitudes de manipulación (3) del primer modelo de datos (23) no tratadas por el servidor (1) y/o el programa de presentación (22) representa el conflicto entre los modelos de datos (23, 25) y pone este conflicto en conocimiento del usuario.
  19. 19. Red de ordenadores según cualquiera de las reivindicaciones 13 a 18, caracterizada por
    un servidor adicional (13) cuya entrada está conectada a la salida de la unidad de retardo (17), estando configurado el servidor adicional (13) exclusivamente para recibir mensajes y solicitudes de manipulación (3),
    - entregando el servidor (1) al servidor adicional (13), a intervalos temporales prefijados, una solicitud de manipulación (3) o un aviso de activo (14),
    - cumpliéndose que, al suspenderse un aviso de activo (14) o una solicitud de manipulación (3) del servidor (1), el servidor adicional (13) asume en adelante la función del servidor (1).
  20. 20. Red de ordenadores según la reivindicación 19, caracterizada por
    - una unidad de retardo (17) con una memoria (18) que archiva en su memoria los mensajes que llegan a su entrada y que, después de un tiempo prefijado, lee estos mensajes en la memoria y los entrega en su salida, alimentándose a la entrada de la unidad de retardo (17) los mensajes que llegan al servidor (1),
    - cumpliéndose que, al suspenderse un aviso de activo (14) o una solicitud de manipulación (3) del servidor (1), el servidor adicional (13) funciona en adelante como servidor (1) y borra la memoria (18) de la unidad de retardo (17).
  21. 21. Red de ordenadores según cualquiera de las reivindicaciones 13 a 20, caracterizada por un servidor de registro (12) que está enlazado en materia de datos con el servidor (1) a través de la red y que almacena todas las solicitudes de manipulación (3) provenientes de los clientes (2) y/o del servidor (1).
  22. 22. Red de ordenadores según cualquiera de las reivindicaciones 13 a 21, caracterizada por una fuente de datos externa (5), especialmente con datos de radar de vuelo, estando previsto un cliente adicional (26) que dispone de un respectivo modelo de datos (21) que corresponde al modelo de datos (21) de los restantes clientes (2), presentando el cliente adicional (26) un programa de control (27) que, al llegar datos de la fuente de datos externa (5), formula una solicitud de manipulación (3) y la reenvía al modelo de datos local (21),
    - enviando el cliente adicional (26) la solicitud de manipulación (3) al servidor (1) después de una manipulación exitosa de su modelo de datos local (21) y
    - ejecutando el servidor (1) en el modelo de datos central (11) de dicho servidor (1) la respectiva manipulación contenida en la solicitud de manipulación (3), y
    - enviando el servidor (1) la solicitud de manipulación (3) a todos los clientes (2) y a todos los clientes adicionales (26) después de una realización exitosa de la manipulación de su modelo de datos central (11), modificando todos los clientes (2) y todos los clientes adicionales (26) sus modelos de datos locales (21) de conformidad con la solicitud de manipulación (3).
ES13455006.0T 2012-07-02 2013-06-28 Procedimiento de sincronización de datos en una red de ordenadores Active ES2694406T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
ATA50261/2012A AT513242B1 (de) 2012-07-02 2012-07-02 Verfahren zur Synchronisation von Daten in einem Computernetzwerk
AT502612012 2012-07-02

Publications (1)

Publication Number Publication Date
ES2694406T3 true ES2694406T3 (es) 2018-12-20

Family

ID=48703393

Family Applications (1)

Application Number Title Priority Date Filing Date
ES13455006.0T Active ES2694406T3 (es) 2012-07-02 2013-06-28 Procedimiento de sincronización de datos en una red de ordenadores

Country Status (3)

Country Link
EP (1) EP2706474B1 (es)
AT (1) AT513242B1 (es)
ES (1) ES2694406T3 (es)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10394692B2 (en) * 2015-01-29 2019-08-27 Signalfx, Inc. Real-time processing of data streams received from instrumented software

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6792436B1 (en) * 2000-02-11 2004-09-14 Persistence Software, Inc. Method for synchronizing multiple software caches in a memory
US6996584B2 (en) * 2002-05-14 2006-02-07 Pervasive Software, Inc. System and method of maintaining functional client side data cache coherence
CN1754155A (zh) * 2003-01-17 2006-03-29 泰斯特网络公司 使用分布式文件系统进行存储式高速缓存的方法和系统
US7395258B2 (en) * 2004-07-30 2008-07-01 International Business Machines Corporation System and method for adaptive database caching
CA2596719A1 (en) * 2005-02-24 2006-08-31 Xeround Systems Ltd. Method and apparatus for distributed data management in a switching network
US8725793B2 (en) * 2009-04-03 2014-05-13 Google Inc. Architectural pattern for persistent web application design

Also Published As

Publication number Publication date
EP2706474A2 (de) 2014-03-12
AT513242A1 (de) 2014-02-15
AT513242B1 (de) 2018-07-15
EP2706474A3 (de) 2016-04-13
EP2706474B1 (de) 2018-10-10

Similar Documents

Publication Publication Date Title
ES2962660T3 (es) Sistemas y métodos para facilitar la mensajería clínica en un entorno de red
CN106663264B (zh) 基于地理位置的事件画廊
US10270781B2 (en) Techniques for data security in a multi-tenant environment
US8938775B1 (en) Dynamic data loss prevention in a multi-tenant environment
US9292823B2 (en) Pneumatic transport delivery control
US20190266026A1 (en) Partitioning for delayed queues in a distributed network
US10142267B2 (en) Method for tracking and routing financial messages for mobile devices
US20150113369A1 (en) Image transitioning and error detection for online presentations
US11128588B2 (en) Apparatus, method and computer-readable recording medium storing computer program for restricting electronic file viewing utilizing antivirus software
JP6063425B2 (ja) 航空機用データ通信ネットワーク
CN111033633A (zh) 将数据记录上传到云存储库
CN110958215A (zh) 安全的在线接收的网络分组处理
JP2021519483A (ja) 仮想現実デバイスへ配信される通知を管理するための方法、装置およびコンピュータ可読媒体
ES2694406T3 (es) Procedimiento de sincronización de datos en una red de ordenadores
US20190156959A1 (en) Method, communication system and computer program for providing information indicative of concentration of allergens in the environment
CN110958216B (zh) 安全的在线网络分组传输
US9280440B2 (en) Monitoring target apparatus, agent program, and monitoring system
WO2018209077A1 (en) Handheld photo enforcement systems and methods
US10257262B2 (en) Mobile itinerant software agent carrying itinerary and data within
KR101889604B1 (ko) Dicom 게이트웨이에서 송수신 영상의 자동 검증 방법
US8589605B2 (en) Inbound message rate limit based on maximum queue times
CN109861853A (zh) 一种传输设备的管理方法及系统
US10855642B2 (en) Asynchronous messaging and communication in a social networking system
US20220042811A1 (en) Method and server
KR20180101071A (ko) 배송원의 안전 관리 방법 및 장치