ES2307242T3 - Sistema de seguridad contra fallos para la gestion de la comunicacion cliente-servidor. - Google Patents
Sistema de seguridad contra fallos para la gestion de la comunicacion cliente-servidor. Download PDFInfo
- Publication number
- ES2307242T3 ES2307242T3 ES06003030T ES06003030T ES2307242T3 ES 2307242 T3 ES2307242 T3 ES 2307242T3 ES 06003030 T ES06003030 T ES 06003030T ES 06003030 T ES06003030 T ES 06003030T ES 2307242 T3 ES2307242 T3 ES 2307242T3
- Authority
- ES
- Spain
- Prior art keywords
- agent
- primary
- controlling agent
- controller
- reserve
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2038—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with a single idle spare processing component
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2097—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated
-
- 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/2866—Architectures; Arrangements
- H04L67/288—Distributed intermediate devices, i.e. intermediate devices for interaction with other intermediate devices on the same level
-
- 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/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/59—Providing operational support to end devices by off-loading in the network or by emulation, e.g. when they are unavailable
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2046—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share persistent storage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2048—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share neither address space nor persistent storage
-
- 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
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- 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/50—Network services
- H04L67/56—Provisioning of proxy services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/40—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Hardware Redundancy (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Sistema para la gestión de la comunicación entre al menos un cliente (10a - d) y al menos un servidor (12a - d) comprendiendo a. un agente controlador (20) primario con una primera memoria (23) volátil que está configurado para gestionar al menos una consulta de al menos un cliente (10a - d) a al menos un servidor (12a - d); b. un agente controlador de reserva (12a - d) con una segunda memoria (33) volátil que está configurado para gestionar la al menos una consulta del cliente (10a - d) al servidor (12a - d) cuando el agente controlador (20) primario ha fallado; c. comprendiendo el agente controlador (20) primario un diario con las entradas de las acciones que son apropiadas para cambiar el estado de la primera memoria (23) volátil, y estando configurado el agente controlador primario para enviar estas entradas del diario al agente controlador de reserva (30), de forma que el agente controlador de reserva (30) está en condiciones de asumir sin interrupción el tratamiento de todas las consultas en caso de un fallo del agente controlador primario, caracterizado porque d. el agente controlador (20) primario está configurado para responder a una comunicación con el al menos un cliente (10a - d) y/o el al menos un servidor (12a - d) que conduce a una entrada en el diario después de que el agente controlador de reserva (30) ha confirmado la recepción de la entrada correspondiente.
Description
Sistema de seguridad contra fallos para la
gestión de la comunicación cliente-servidor.
La presente invención se refiere a un sistema de
seguridad contra fallos para la gestión de la comunicación
cliente-servidor.
Las redes cliente-servidor son
omnipresentes hoy en día en el tratamiento de datos. Como un cliente
se considera en este caso todo tipo de participante en la red que
realiza una consulta por un servicio que se suministra en la red.
Un servidor es un participante de una red que suministra un servicio
para los clientes en la red. Por ejemplo, un cliente puede ser un
programa de aplicación que solicita los datos de un servidor en
forma de base de datos.
La gestión de la comunicación entre una
pluralidad de clientes y servidores se organiza difícilmente en
particular cuando los participantes de la red son heterogéneos, es
decir, se emplean diferentes software y/o hardware. Por ejemplo,
hay una pluralidad de sistemas operativos y protocolos de red
diferentes que pueden emplearse por los clientes y/o los servidores
de una red. También del lado del hardware son concebibles
variaciones tanto en los clientes, como también en los servidores y
en la arquitectura de red.
Para superar estas dificultades se conoce del
estado de la técnica la gestión de la comunicación entre el / los
clientes y el / los servidores de una red con la ayuda de un agente
del servicio o agente controlador, tal y como se da a conocer en el
documento EP 0 600 235 B1 de la solicitante. La fig. 1 muestra de
forma esquemática la disposición del agente controlador 20,
conocida del documento EP 0 600 235 B1, en una red heterogénea de
clientes 10a - d y servidores
12a - d.
12a - d.
Puesto que el agente controlador tiene una
importancia central para la comunicación entre los diferentes
participantes de la red, su fallo puede conducir a una pérdida de
datos no deseada. Por ello es necesario suministrar un mecanismo
con el que pueda impedirse o al menos minimizarse una pérdida de
datos.
Los sistemas conocidos del estado de la técnica,
como por ejemplo, un sistema RAID, hacen posible un almacenamiento
seguro contra fallos de datos almacenados no volátilmente (en un
disco duro o similares). Los datos que se encuentran en una memoria
volátil, es decir, la memoria principal típica de un sistema de
ordenadores, sin embargo, se pierden de forma irrecuperable en el
caso de una caída del sistema. La función explicada arriba del
agente controlador trae consigo que los componentes esenciales de la
comunicación entre los clientes y los servidores de la red se
realizan en la memoria volátil, el así llamado banco de memoria del
agente controlador. Por ello una protección de los datos
almacenados de forma no volátil del agente controlador puede
resolverse en el mejor de los casos parcialmente el problema de la
seguridad contra fallos.
Grandes ordenadores de la empresa IBM ofrecen
con esta finalidad el soporte Parallel SYSPLEX. Programas
privilegiados del usuario pueden usar en este caso XES (los
servicios extendidos de uso de datos) para gestionar el
almacenamiento común que puede emplearse conjuntamente por
diferentes sistemas MVS. Esta memoria común se pone a disposición a
través del fundamento de uso compartido de datos (XCF). Por
consiguiente en el caso de fallo de un componente en una LPAR
(Partición lógica), el componente en otra LPAR puede asegurar el
funcionamiento ulterior de la aplicación.
Finalmente del documento US 2005/0172161 A1 se
conoce una reducción de la pérdida de datos en el caso de fallo de
un nodo primario al suministrare un nodo secundario. En el caso de
un fallo del nodo primario, que se detecta por la ausencia de una
señal de disponibilidad, una dirección IP virtual, que señala en
primer lugar al nodo primario, se redirecciona al nodo secundario,
y se interrumpe inmediatamente el suministro de corriente al nodo
primario para impedir inconsistencias en el otro procesamiento de
datos. Al mismo tiempo el nodo secundario obtiene acceso a una
partición de una memoria no volátil, empleada en un principio por el
nodo primario. No obstante, con el sistema conocido del documento
US 2005/0172161 A1 en el mejor de los casos puede conseguirse
parcialmente una pérdida de los datos situados en la memoria
volátil.
Del documento US, 6,578,160 B1 se conoce un
mecanismo de protocolo(s) para transacciones en el que se
duplican protocolos para hacer posible un restablecimiento de un
proceso al fallar un recurso del sistema.
La presente invención se basa por ello en el
problema de suministrar un sistema de seguridad contra fallos para
la gestión de la comunicación cliente-servidor, de
forma que también los datos almacenados en una memoria volátil de
un agente controlador para la comunicación entre los clientes y los
servidores no se pierden esencialmente al fallar el agente
controlador.
Este problema se resuelve por un sistema según
la reivindicación 1.
Mientras que el agente controlador primario
desarrolla por consiguiente la comunicación entre los clientes y
los servidores, y en este caso, por ejemplo, procesa todas las
consultas de los participantes, mediante la generación de las
entradas del diario y el envío al agente controlador de reserva se
reflejan allí todos los procesos relevantes. En el caso de un fallo
del agente controlador primario, a causa de la concordancia
esencial de las dos memorias volátiles, el agente controlador de
reserva está en condiciones de asumir sin interrupción el
tratamiento de todas las consultas, independientemente de si los
datos relacionados con ello están almacenados de forma volátil o no
volátil.
El agente controlador primario presenta
preferiblemente una función de filtrado que define que entradas se
escriben en el diario. Por consiguiente el diario no protocoliza
cada byte modificado, sino que retiene preferiblemente de una forma
lo más compacta posible todos los cambios relevantes de los objetos
en la memoria volátil del agente controlador primario.
El agente controlador de reserva presenta además
preferiblemente un interpretador del diario que procesa las
entradas recibidas del agente controlador primario, para que el
estado de la segunda memoria volátil sea esencialmente idéntico con
el estado de la primera memoria volátil. En este caso el
procesamiento de las entradas en el diario por el interpretador del
diario del agente controlador de reserva coloca la segunda memoria
volátil preferiblemente, mediante al menos otro paso diferente que
el o los pasos realizadas por el agente controlador primario, en el
estado esencialmente idéntico a la primera memoria volátil. Como
resultado se reduce por ello el coste del tratamiento de las
entradas en el agente controlador de reserva, puesto que la segunda
memoria volátil se coloca directamente en el estado de la primera
memoria volátil sin uno o varios pasos intermedios que han sido
realizados para ello a ser posible en la primera memoria volátil del
agente controlador primario.
En respuesta a la recepción de una comunicación
de un cliente o de un servidor, el agente controlador primario
comunica preferiblemente al cliente o al servidor una identificación
del agente controlador de reserva. Es especialmente ventajoso
cuando cada respuesta por la consulta de un cliente presenta la
identificación del agente controlador de reserva. Una consulta
fallida al agente controlador primario puede enviarse por ello
directamente de nuevo al agente controlador de reserva, por ejemplo,
mediante instrucciones correspondientes al interface del programa
correspondiente del usuario.
El agente controlador primario responde a una
comunicación con el al menos un cliente y/o el al menos un servidor
que conduce a una entrada en el diario, solo después de que el
agente controlador de reserva ha confirmado la recepción de la
entrada correspondiente. Por consiguiente se garantiza que cada
proceso relevante en el agente controlador primario se salva en
primer lugar de un fallo, antes de que se siga el procesamiento. El
agente controlador de reserva, en caso de ser necesario, puede
continuar por ello inmediatamente el tratamiento allí donde ha
fallado el agente controlador primario.
Para evitar inconsistencias se identifica
preferiblemente de manera unívoca cada comunicación con el agente
controlador primario que conduce a una entrada en el diario. En este
caso cada consulta de un participante al agente controlador
primario que conduce a una entrada en el diario se numera
preferiblemente de forma consecutiva de tal manera que, por
ejemplo, puede descubrirse e impedirse el doble envío de un reporte
al agente controlador de reserva.
En funcionamiento el agente controlador de
reserva envía preferiblemente una señal de prueba al agente
controlador primario si no ha recibido una nueva entrada durante un
lapso de tiempo determinado. Al contrario que en el estado de la
técnica explicado arriba la red no se carga por la transmisión
constante de una señal de disponibilidad, sino que sólo se emplea
una prueba semejante cuando el agente controlador de reserva no ha
recibido una entrada adicional del diario durante un lapso de
tiempo predeterminado.
Otras realizaciones del sistema según la
invención se definen en otras reivindicaciones dependientes.
Finalmente la presente invención se refiere a un
medio legible por ordenador con instrucciones para el suministro
del sistema explicado anteriormente, así como un programa con
instrucciones para el suministro de este sistema. El sistema según
la invención puede llevarse a efecto por consiguiente, por un lado,
gracias a un hardware dedicado o gracias a un software
correspondiente que puede descargarse a través de un soporte de
datos o de Internet y luego puede instalarse en cualquier
plataforma hardware y software que adopte las propiedades definidas
arriba del sistema requerido.
En la descripción detallada siguiente se
explican en detalle ejemplos de realización de la invención
preferibles en la actualidad en referencia a las figuras adjuntas.
Estas figuras muestran:
Fig. 1: la disposición de un agente controlador
individual según el estado de la técnica;
Fig. 2: una representación esquemática de un
ejemplo de realización de la presente invención;
Fig. 3: una representación esquemática de los
dos agentes controladores y de sus memorias volátiles y no
volátiles en el ejemplo de realización de la fig. 2;
Fig. 4: un ejemplo de realización de una
disposición de un primer y de un segundo agente controlador en un
gran ordenador;
Fig. 5: una representación esquemática de los
pasos para la protección de la memoria volátil del agente
controlador primario; y
Fig. 6: una representación esquemática de los
pasos para la asunción de la función de gestión por el agente
controlador de reserva.
Un agente controlador sirve para la gestión de
la comunicación entre clientes y servidores de una red. La Fig. 1,
que se ha deducido esencialmente del documento EP 0 600 235 B1,
muestra de forma esquemática la disposición de un agente
controlador 20 en una red de una pluralidad de clientes 10a - d y
servidores 12a - d. Los detalles de la comunicación entre los
clientes, los servidores y el agente controlador, en particular las
órdenes y atributos mencionados a continuación, que se emplean en
el marco de la comunicación, se dan a conocer en el documento EP 0
600 235 B1, igual que las numerosas funciones de gestión del agente
controlador 20.
Puede reconocerse directamente que en la
disposición mostrada el agente controlador 20 es irrenunciable para
la comunicación entre los clientes 10a - d y los servidores 12a - d.
Aun cuando se asegure el contenido de una memoria no volátil (no
representada en la fig. 1, pero compárese la fig. 3 explicada abajo,
referencia 24) del agente controlador frente a la pérdida de datos,
por ejemplo, mediante el empleo de un sistema RAID o dispositivos
similares, en un fallo general y la reanudación siguiente del agente
controlador 20 se pierden todos los datos que están almacenados
sólo en una memoria volátil, en el así llamado banco de memoria 23
(compárese fig. 3) del agente controlador 20. Para muchas
aplicaciones críticas, por ejemplo, los procesos de negocio de un
banco, no son aceptables un fallo temporal ni la pérdida de
datos.
La fig. 2 muestra de forma esquemática un
ejemplo de realización de la presente invención. Según puede
reconocerse, un agente controlador de reserva 30 está dispuesto
paralelamente respecto al agente controlador 20 primario. Al fallar
el agente controlador 20 primario se gestiona otra comunicación
entre los clientes 10a - d y los servidores
12a - d a través del agente controlador de reserva 30 (compárese las líneas a trazos en la fig. 2).
12a - d a través del agente controlador de reserva 30 (compárese las líneas a trazos en la fig. 2).
Adicionalmente a la disposición descrita a
continuación con un agente controlador primario y un agente
controlador de reserva es concebible también prever uno o varios
agentes controladores de reserva para facilitar un grado todavía
mayor de seguridad contra fallos.
Para el funcionamiento del cluster representado
en la fig. 2 a partir del agente controlador primario y del agente
controlador de reserva se emplean preferiblemente dos instancias de
versiones idénticas de venta y parcheo del agente controlador, que
están configuradas además esencialmente idénticas, es decir, las
dimensiones para los bloques de control, reportes y otros datos que
se definen individualmente en el documento EP 0 600 235 B1, deben
estar disponibles tanto en el agente controlador de reserva como en
el agente controlador primario. Otros recursos como salidas que se
utilizan en el agente controlador 20 primario deben existir también
en el agente controlador de reserva 30; pero pueden poseer otros
nombres. La seguridad para la gestión de datos se desarrolla
preferiblemente a través de un sistema global de seguridad (no
representado). No obstante, las memorias 24 ó 34 no volátiles,
empleadas por el agente controlador 20 primario y por el agente
controlador de reserva 30 (compárese fig. 3) pueden estar
configuradas de forma
diferente.
diferente.
Los ficheros de atributos del agente controlador
20 primario y del agente controlador de reserva 30 son
preferiblemente idénticos a excepción de los siguientes atributos
que se dan a conocer en el documento EP 0 600 235 B1:
BROKER-ID
NUM-WORKER
PSTORE-TYPE
TRACE-LEVEL
TRANSPORT
También todos los atributos específicos de
transporte pueden diferir. Para un funcionamiento sin dificultades
del agente controlador primario y del agente controlador de reserva
pueden igualarse las dimensiones de los dos bancos de memoria 23 y
33, y de las dos memorias 24 y 34 no volátiles (memorias
persistentes).
Según se representa en la fig. 2 por las dos
flechas entre los dos agentes controladores 20, 30, los dos agentes
controladores preferiblemente se comunican entre sí directamente,
pudiéndose emplear una compresión de datos para la optimización.
La fig. 3 muestra un ejemplo de realización con
dos dispositivos completamente separadas para el agente controlador
primario y el agente controlador de reserva. En este caso los dos
agente controladores 20 y 30 funcionan en hardware separado para
conseguir un grado máximo de independencia y por consiguiente
protección contra fallo de todo el sistema. Para ello cada agente
controlador 20, 30 presenta un banco de memoria 23 ó 33 propio, así
como una memoria 24 ó 34 no volátil propia, por ejemplo, en forma de
un disco duro o al menos de una zona parcial para ello.
Además,
cada agente controlador presenta componentes de núcleo 21 ó 31, así como componentes de transporte 22 ó 32.
cada agente controlador presenta componentes de núcleo 21 ó 31, así como componentes de transporte 22 ó 32.
Alternativamente también es concebible una forma
de realización, según se representa de forma esquemática en la fig.
4. Aquí funcionan en un ordenador gigante, por ejemplo, un IBM z900
Mainframe, dos instancias del agente controlador 50, 60. Los dos
agentes controladores se dividen para ello en dos LPAR's
(particiones lógicas) del ordenador gigante. Las referencias 41, 43
caracterizan aquí los sistemas operativos correspondientes de
funcionamiento z/OS.
En el ejemplo de realización de la fig. 3 es
concebible un entorno heterogéneo cuando, por ejemplo, el agente
controlador 20 primario y el agente controlador de reserva 30 están
instalados en sistemas computerizados con diferente hardware y/o
diferentes sistemas operativos (Windows®, Unix, Linux, OS/2
etc.).
Para asegurar el contenido del banco de memoria
23 en el caso de un fallo general, en el ejemplo de realización de
la fig. 3, el agente controlador 20 primario gestiona un diario (no
representado).
El diario contiene todas las actividades
referidas al objeto de toda las vías de comunicación que se emplean
en el agente controlador 20 para la gestión de la comunicación con
los clientes 10a - d y los servidores 12a - d (compárese la fig. 2).
El diario contiene entradas definidas que son necesarias, por
ejemplo, para el tratamiento de una consulta de un participante, o
para los desarrollos como la cancelación de recursos determinados
del agente controlador 20.
En el caso de una consulta de un participante
estos datos se recopilan en el agente controlador 20 y se
transfieren al agente controlador de reserva antes de una respuesta
al participante a través de la unión directa de comunicación. Solo
tras la recepción de una confirmación del agente controlador de
reserva 30 al agente controlador 20 primario se envía la respuesta
sobre la consulta al participante.
Este proceso se representa en detalle en la fig.
5 y comprende los siguientes pasos:
- (1)
- La consulta del participante 70 (cliente o servidor) se envía al agente controlador 20 primario a través de un interface 71, por ejemplo, el cabo explicado en el documento EP 0 600 235 B1. La capa de transporte del interface espera en este ejemplo de forma síncrona una respuesta del agente controlador 20, es decir, el participante 70 detiene su propio tratamiento del proceso hasta que se produce la respuesta del agente controlador 20.
- (2)
- Igual que el participante 70 el agente controlador 20 primario presenta componentes de transporte 22 para la comunicación que están representados de forma simplificada en las figuras y están denotadas generalmente con la referencia 22. El agente controlador 20 pone a disposición junto a los componentes de transporte habituales hasta ahora, que actúan como servidores en el sentido de los protocolos de transporte correspondientes, así llamados reenviadores. Actúan en el sentido de los protocolos de transporte correspondientes como clientes, y ponen al agente controlador 20 primario en la situación de enviar el diario y los datos para la consulta de un participante al agente controlador de reserva 30. El agente controlador de reserva 30 puede enviar una prueba con una señal de disponibilidad al agente controlador 20 primario a través de sus componentes de transporte 32 para determinar inmediatamente cuando falla el agente controlador 20 primario (véase más de esto abajo). Los componentes de transporte 22 del agente controlador 20 primario traspasan la consulta después de la recepción completa a los componentes de núcleo 21 del agente controlador 20 para el procesamiento. Durante el procesamiento se protocoliza la información relevante en el diario (no representado).
- (3)
- Después del procesamiento completo se genera la respuesta sobre la consulta del participante 70.
- (4)
- En lugar de la respuesta, en primer lugar se envían la o las entradas en el diario y opcionalmente otros datos para la consulta del participante 70 al agente controlador de reserva 30.
- (5)
- Los componentes de transporte 32 del agente controlador de reserva 30 traspasan la / las entrada(s) del diario y los datos opcionales a los componentes de núcleo 31 para el procesamiento mediante un interpretador del diario, que luego se explica en detalle más debajo. Con el procesamiento de las entradas se coloca el banco de memoria 33 del agente controlador de reserva 30 esencialmente en el mismo estado que el banco de memoria 23 del agente controlador 20 primario.
- (6)
- Después del procesamiento completo se genera una señal de confirmación para el agente controlador 20 primario.
- (7)
- La señal de confirmación del agente controlador de reserva 30 se envía al agente controlador 20 primario.
- (8)
- La respuesta generada en el paso (3) se envía al interface 71 del participante 70 y se traspasa dado el caso a una aplicación.
Todas las consultas de los participantes,
tiempos de espera internos, y comandos administrativos cambian la
durabilidad de los datos en el banco de memoria 23, y probablemente
también en la memoria 24 no volátil del agente controlador 20
primario. Todas estas actividades deben analizarse en el agente
controlador 20 primario respecto a su relevancia para el agente
controlador de reserva 30. Si las acciones son relevantes para el
agente controlador de reserva 30 se protocolizan mediante la
producción de una entrada correspondiente. El diario responsable de
ello es un buffer de datos correspondiente que se llena con la
información necesaria preferiblemente en forma binaria. Puesto que
esta información describe detalladamente todas las acciones
realizadas en el agente controlador 20 primario, relevantes para el
banco de memoria 23, después de una transmisión de las entradas al
agente controlador de reserva 30 y el procesamiento simplificado,
explicado ulteriormente abajo el banco de memoria 33 se encuentra
esencialmente en el mismo estado que el banco de memoria 23.
No todos los procesos en el agente controlador
20 primario conducen a una entrada del diario. Por ejemplo, no
deben transferirse necesariamente los cronofechadores, actualizados
necesarios para la producción de una estadística, de procesos
individuales al agente controlador de reserva 30, puesto que el
mecanismo de repetición en el agente controlador de reserva 30
realiza estas acciones de forma autónoma durante al procesar las
entradas del diario. Diversos cronofechadores no deben
transmitirse. Por ejemplo, igualmente se ponen preferiblemente
valores internos por defecto de forma automática por el agente
controlador de reserva y no se transmiten como entradas del diario,
puesto que estos valores son idénticos en cada agente controlador de
la misma versión.
Las consultas de información, por ejemplo, de la
versión del núcleo del agente controlador 20 primario o de la
última unidad de trabajo de un participante son puramente
informativas y no requieren una reflexión al agente controlador de
reserva 30. Un RECEIVE, con el que un participante comunica al
agente controlador 20 primario su disponibilidad para la recepción
de datos, no se refleja preferiblemente hasta la generación de una
respuesta. Preferiblemente es igualmente irrelevante para el agente
controlador de reserva 30 el hecho de que un participante esté en
estado de espera. Solo la entrega de una respuesta RECEIVE debería
transmitirse al agente controlador de reserva 30, ya que se ha
cambiado el contador de peticiones en el agente controlador 20
primario o puede haber sido modificada la disposición de los
reportes en una conversación si, por ejemplo, ha sido cancelado el
último reporte leído.
Las consultas de participantes al servicio
interno del agente controlador 20 no se protocolizan, a no ser que
modifiquen la estructura de los datos del banco de memoria 23, como
por ejemplo, un SHUTDOWN SERVER o un SUBSCRIBE TOPIC. Igualmente se
filtran, por ejemplo, todas las consultas no conversacionales,
almacenadas de forma no duradera, puesto que una aplicación puede
repetir la consulta en caso de una avería del agente controlador
20. Es decisivo para la clasificación el hecho de que el coste para
la reflexión de esta información no está en relación alguna con el
uso para aplicaciones no conversacionales. Todo el sistema podría
cargarse demasiado fuertemente por una reflexión también de esta
información.
Todos los datos referidos al usuario se graban
en el diario. LOGON, LOGOFF y todos los cambios de los campos en el
bloque de control del participante (Participant Control Block) (PCB,
véase más de ello abajo) se transfieren al agente controlador de
reserva 30. Si falla el agente controlador 20 primario, por ello
está presente completamente el contexto de usuario perdido en el
agente controlador de reserva 30.
Los requerimientos en un SEND se vuelven más
complejos. Tanto los datos del diario, como también el mismo
reporte enviado se transmiten preferiblemente del agente controlador
20 primario al agente controlador de reserva 30. En este caso se
transfiere la consulta de un participante como unidad independiente
a continuación de los datos del diario. El proceso es análogo para
la función SEND_PUBLICATION.
La inteligencia para reconocer que datos deben
dirigirse al diario y cuales no debe considerarse como un filtro.
Este filtro es activo en el agente controlador 20 primario para no
tener en cuenta operaciones irrelevantes, por ejemplo, consultas
formuladas mal sintácticamente, ya que esto no provoca cambios
relevantes de objetos en el agente controlador 20 primario, es
decir, en el banco de memoria 23 o incluso en la memoria 24 no
volátil.
El interpretador del diario en el agente
controlador de reserva 30 genera, modifica o cancela los objetos de
datos según los datos del diario. El interpretador es un componente
especial de un agente controlador que está activo solo en el modo
de seguridad. Trabaja hilado de forma simple para manipular
completamente sin averías los datos en el banco de memoria 33 del
agente controlador de reserva 30 y adaptar, dado el caso,
adicionalmente la memoria 34 no volátil. Los procesos de acción son
optimizados en este caso según se explica en el ejemplo
siguiente:
El agente controlador 20 primario genera en el
momento de su inicialización todos los objetos, como por ejemplo,
bloques de control del participante (PCBs) para un nuevo
participante, bloque de control de la conversación para una nueva
comunicación, bloques de control del servicio, etc. Los tipos
correspondientes de bloques de control se colocan en vectores. Por
consiguiente se asegura que, por ejemplo, todos los PCBs se
dispongan físicamente uno tras otro en el banco de memoria 23. Por
consiguiente es posible alcanzar cada bloque de control PCB a
través de un índice con la ayuda de la dirección de consulta del
vector PCB.
\global\parskip0.950000\baselineskip
Dirección PCB 2
= dirección de comienzo de todos los PCBs + longitud fija de dos
bloques de control de
PCB.
Este vector se configura en una cola, la cola de
los PCBs libres. El dispositivo de anclaje de esta cola libre
señala a PCB 0, PCB 0 señala con su indicador siguiente a PCB 1 que
señala de nuevo a PCB 2, etc. El último PCB contiene como indicador
siguiente un 0. Esta cola libre PCB corresponde en el momento de la
inicialización a la disposición física en el banco de memoria
23.
Además, hay una cola activa PCB que, no
obstante, está todavía vacía en el momento de la inicialización del
agente controlador 20. Si debe generarse ahora un PCB para un nuevo
participante, de la cola libre se deduce la primera entrada (PCB
0), es decir, el dispositivo de anclaje de la cola libre señala a
PCB 1, permaneciendo invariable el resto de esta cola.
La cola activa PCB se complementa alrededor del
PCB 0. Puesto que la cola estaba vacía, PCB 0 es la única entrada.
El dispositivo de anclaje señala a PCB 0, el indicador siguiente en
PCB 0 está puesto a 0 para señalizar que no existen otros PCBs. En
el transcurso del tratamiento se encadenan nuevos PCBs en la cola
activa, y al borrar un participante también se convierten de nuevo
en la cola libre. Después de un tiempo las colas lógicas no tienen
ninguna relación con el vector físico. Por ejemplo, la cola libre
podría parecer así:
El dispositivo de anclaje señala al PCB 253 cuyo
indicador siguiente señala al PCB 1 cuyo indicador siguiente señala
de nuevo al PCB 830, etc. Esto conduce a que el agente controlador
20 cuando, por ejemplo, debe buscar un PCB con la
USER-ID "HUGO", examina la cadena lógica
partiendo del dispositivo de anclaje de la cola activa hasta que ha
sido encontrado el USER-ID, o se ha alcanzado el
final de la cadena. Procesos semejantes de búsqueda tienen lugar,
no obstante, sólo en el agente controlador 20 primario a causa del
procesamiento simplificado de las entradas del diario en el agente
controlador de reserva 30.
Si, por ejemplo, el PCB con el
USER-ID "HUGO" tiene el índice 2000, entonces
esto significa para el agente controlador de reserva 30 que el
agente controlador puede utilizar este PCB con índice 2000 sin que
deba buscarlo, puesto que el diario comunica al agente controlador
de reserva el PCB con este índice. Como resultado se evita en el
agente
controlador de reserva 30 cualquier coste para la localización de información ya que el diario formula accesos directos.
controlador de reserva 30 cualquier coste para la localización de información ya que el diario formula accesos directos.
Si falla el agente controlador 20 primario,
pueden estar disponibles en el agente controlador de reserva 30
todos los objetos relevantes de gestión, pero también los datos de
uso en forma de reportes, unidades de trabajo o publicaciones (que
están definidas más exactamente en el documento EP 0 600 235 B1). A
causa de la sincronización de los datos del diario, por ejemplo,
una conversación en el agente controlador 20 primario como también
en el agente controlador de reserva 30 posee la misma
CONV-ID. Como resultado todos los datos relevantes
para el funcionamiento de seguridad existen como copia exacta en el
agente controlador de reserva 30.
Los datos del diario para el ajuste continuo de
datos presentan preferiblemente la estructura siguiente:
- COMMAND:
- ADD_OBJ, UPD_OBJ, DEL_OBJ
- OBJECT:
- BCT, PCB, PCBEXT, SCB, SCBEXT, CCB, TOQ, ...
- OBJECT-INDEX:
- Indice del objeto
- FIELD-KEY:
- Números de identificación específicos para el objeto para los campos de datos del objeto;
- \quad
- Formato de campo y longitud de campo se deducen implícitamente del código de campo indicado.
- FIELD-FORMAT: {}\hskip0.5cm i1|i2|i4
- para número entero en el Host-orden
- s1|s2|sn
- para vectores de carácter no terminados en cero en representación local
- x1|x2|xn
- para valores hexadecimales
- FIELD-VALUE:
- valor que debe entrar en el campo referenciado.
- \quad
- Representación de datos en el formato del Host fuente.
Los campos FIELD-KEY,
FIELD-FORMAT y FIELD-VALUE pueden
repetirse varias veces hasta que se pone FIELD-KEY
EOD. El comando DEL-OBJ se utiliza sin indicación de
datos FIELD-*.
\global\parskip1.000000\baselineskip
Junto a este tipo descriptivo de la
protocolización de los cambios son validos también metaobjetos
cuando, por ejemplo, el contexto de un cliente debe generarse o se
asigna una conversación a un servidor determinado. Abstracciones,
como el comando CREATE_CLIENT acortan la cantidad de datos del
diario, puesto que las acciones necesarias se conocen en relación
con metaobjetos, y solo son necesarios índices complementarios para
poder realizar la repetición de forma síncrona.
Adicionalmente al ajuste de los datos sobre las
entradas del diario pueden sincronizarse también las memorias 24 y
34 no volátiles. Un ajuste semejante de los datos puede realizarse
mediante la conexión dinámica del agente controlador de reserva 30,
explicada ampliamente debajo, al agente controlador 20 primario, no
obstante, requiere un coste para la transmisión de todos los datos
almacenados de forma no volátil del agente controlador 20 primario
al agente controlador de reserva 30. Puesto que este ajuste dinámico
puede desarrollarse de forma aislada, el copiado o conversión de
las memorias no volátiles también puede realizase en el ámbito de
tiempos de mantenimiento.
Preferiblemente cada consulta de un participante
en el agente controlador 20 primario contiene en la respuesta la ID
del agente controlador de reserva 30. En el caso de un fallo del
agente controlador 20 primario puede enviarse por ello la consulta
del interface 71 directamente al agente controlador de reserva 30.
Tan pronto como el agente controlador de reserva 30 está activado
como agente controlador primario como consecuencia del proceso
explicado en detalle debajo, acepta consultas de los participantes y
prosigue conversaciones o publicaciones existentes. La ID para el
agente controlador en el API se modifica correspondientemente.
Para evitar la duplicación de una consulta de un
participante, - el fallo del agente controlador 20 primario puede
ocurrir antes, durante o después del tratamiento de la consulta -,
se numera de forma consecutiva cada consulta por participante, de
forma que puede descubrirse e impedirse el envío doble de un reporte
al agente controlador de reserva 30.
La asunción de la función como agente
controlador por el agente controlador de reserva 30 discurre como
sigue: paralelamente al procesamiento eficiente explicado arriba de
las entradas del diario transferidas por el agente controlador 20
primario funciona en el agente controlador de reserva 30 un sensor o
un programa de supervisión (no representado), de forma que en el
caso de superar un tiempo de espera definible (atributo
PRIMARY-BROKER-
NONACT) se envían verificaciones de direcciones al agente controlador 20 primario para comprobar su disponibilidad. Si falta la respuesta dentro del PRIMARY-BROKER-NONACT, se activa el agente controlador de reserva 30, es decir, se desactiva el rechazo de la aceptación directa de consultas normales de los participantes. Además, el interpretador del diario se para y comienza el funcionamiento normal como agente controlador. Todas las consultas del participante con un número consecutivo que es igual o menor al número ya tratado, se rechazan con un mensaje de error especial para evitar la generación de mensajes dobles o duplicaciones similares.
NONACT) se envían verificaciones de direcciones al agente controlador 20 primario para comprobar su disponibilidad. Si falta la respuesta dentro del PRIMARY-BROKER-NONACT, se activa el agente controlador de reserva 30, es decir, se desactiva el rechazo de la aceptación directa de consultas normales de los participantes. Además, el interpretador del diario se para y comienza el funcionamiento normal como agente controlador. Todas las consultas del participante con un número consecutivo que es igual o menor al número ya tratado, se rechazan con un mensaje de error especial para evitar la generación de mensajes dobles o duplicaciones similares.
El interface trata el rechazo de un SEND doble
sin tener que informar a la aplicación. Un RECEIVE no se rechaza
nunca. Si ha sido entregado ya el reporte, el agente controlador de
reserva interpreta la consulta repetida como RECEIVE LAST.
La fig. 6 muestra en detalle los pasos durante
la asunción de la función como agente controlador:
- (1)
- El interface 71 de la aplicación 70 utiliza la ID del agente controlador 20 primario para el direccionamiento de una consulta.
- (2)
- Después del procesamiento de la consulta se envía la respuesta al interface 71 desde el componente de transporte 22 del agente controlador 20 primario. La respuesta contiene también la dirección del agente controlador de reserva 30 disponible.
- (3)
- La conexión con el agente controlador 20 primario se interrumpe. El agente controlador de reserva 30 no recibe más entradas del diario. Después de alcanzar el valor PRIMARY-BROKER-NONACT se envía una verificación de dirección del agente controlador de reserva 30 al agente controlador 20 primario. Si la verificación de dirección permanece un tiempo PRIMARY-BROKER-NONACT sin contestación, el agente controlador de reserva 30 inicia el programa de emergencia. Para ello el agente controlador de reserva 30 realiza una secuencia de asunción que le activa como agente controlador primario. Esto comprende la aceptación de todos los requerimientos de conexión y el procesamiento de las consultas de los participantes. Si en este momento no existe otro agente controlador de reserva, cualquier toma de contacto no se produce para la protección de los datos en la memoria 33 volátil.
- (4)
- Puesto que el agente controlador 20 primario no puede alcanzarse, el interface 71 cambia la ID para el agente controlador e intenta contactar con el agente controlador de reserva 30. Después de una asunción con éxito está preparado funcionalmente el agente controlador de reserva 30, y acepta la consulta del participante.
- (5)
- Después del procesamiento de la consulta del participante se envía la respuesta al interface 71 desde el componente de transporte 32 del agente controlador de reserva 30. Esta respuesta no contiene una dirección de un nuevo agente controlador de reserva, a no ser que mientras tanto se haya realizado el inicio descrito debajo de un agente controlador de reserva.
A continuación se explica la adición de un
agente controlador de reserva a un agente controlador primario
corriente. Este proceso se realiza, por ejemplo, cuando el agente
controlador de reserva ha asumido el papel del agente controlador
primario de la forma arriba descrita después de un fallo de un
agente controlador primario, y ahora se añade otro agente
controlador de reserva para el mantenimiento de la seguridad contra
fallos, por ejemplo, el agente controlador primario original
iniciado de nuevo o un tercer agente controlador que debe servir
como nuevo agente controlador de reserva.
El proceso de conexión bloquea el agente
controlador 20 primario que actúa sólo hasta aquí durante un breve
intervalo. Mientras tanto se realiza un intercambio de datos entre
el agente controlador 20 primario y el agente controlador de
reserva 30. Para ello se transmite en primer lugar la memoria no
volátil.
La posibilidad de la transmisión de los datos
almacenados de forma no volátil de la memoria 24 del agente
controlador 20 primario a la memoria 34 no volátil del agente
controlador de reserva 30 a añadir permite transferir cómodamente
datos de usuario, independientemente de otros procesos, siendo
irrelevante si el tipo de la memoria no volátil de la fuente y del
objetivo es idéntico o no. Igualmente los sistemas operativos pueden
ser diferentes. El protocolo para la transmisión de la información
a almacenar de forma no volátil y el tipo de la transmisión hacen
la transferencia de forma completamente flexible.
Luego se realiza la transmisión de todos los
datos relevantes del banco de memoria 23. De forma similar a como
en el diario consecutivo, con esta finalidad se envían al agente
controlador de reserva 30 las durabilidades de los datos en el
banco de memoria 23 a través de un diario completo. Un diario
completo es necesario por ello porque todo el banco de memoria 23
debe analizarse y, dado el caso, ajustarse. Puesto que estos
procesos requieren un sistema consistente en sí, durante la
sincronización del agente controlador 20 primario con el agente
controlador de reserva 30 no debe tratarse ninguna consulta del
participante.
El protocolo de transferencia de los datos
almacenados de forma no volátil transmite las unidades de trabajo
con la ayuda del protocolo del diario:
- COMMAND:
- ADD_OBJ
- OBJECT:
- UOW
- OBJECT-INDEX:
- Índice del objeto
- FIELD-KEY:
- Números de identificación específicos para el objeto para los campos de datos del objeto;
- \quad
- Formato de campo y longitud de campo se deducen implícitamente del código de campo indicado.
- FIELD-FORMAT: {}\hskip0.5cm i1|i2|i4
- para número entero en el Host-orden
- s1|s2|sn
- para vectores de carácter no terminados en cero en representación local
- x1|x2|xn
- para valores hexadecimales
- FIELD-VALUE:
- valor que debe entrar en el campo referenciado.
- \quad
- Representación de datos en el formato del Host fuente.
Los reportes archivados en el UOW se transmiten
como un vector binario. La reconstrucción de la información de
control del vector binario se realiza en el host de destino para
convertir, por ejemplo, descriptores de codificación o longitudes de
reporte en la representación local.
Finalmente se explica todavía el modo de
proceder para el inicio y para la parada del funcionamiento del
cluster del agente controlador 20 primario y del agente controlador
de reserva 30. Si deben activarse las dos instancias del agente
controlador casi simultáneamente son necesarios los pasos
siguientes:
El agente controlador 20 primario se inicia con
el "RUN-MODE = PRIMARY". Adicionalmente se
define la dirección de transporte del agente controlador de reserva
30 en el fichero de atributos a través del "PARTNER =
broker_id". Después del arranque del agente controlador 20
primario se intenta contactar con el agente asociado. Mientras que
el agente controlador de reserva 30 no responde el agente
controlador 20 primario no está disponible para las consultas del
participante.
El agente controlador de reserva 30 se inicia
con el "RUN-MODE = BACKUP". Adicionalmente se
define la dirección de transporte del agente controlador 20
primario en el fichero de atributos a través del "PARTNER =
broker_id". Después del arranque del agente controlador de
reserva 30 se intenta contactar con el agente asociado. Mientras
que el agente controlador 20 primario no responde el agente
controlador de reserva 30 permanece a la espera. Este retraso
conduce, no obstante, a una asunción del papel del agente
controlador 30 primario.
Después de la interacción de los dos agentes
controladores 20, 30 se determina si el agente controlador de
reserva 30 debe sincronizarse en primer lugar, o si están ya
dispuestas para el funcionamiento del cluster con la actualización
basada en el diario. Si es necesaria una sincronización, pueden
cumplirse los pasos arriba explicados que son necesarios para la
conexión dinámica de un agente controlador de reserva 30.
Para la detención de los dos agentes
controladores se realiza preferiblemente la siguiente secuencia:
Parada conjunta del agente controlador 20
primario y del agente controlador de reserva 30 (comando
SHUTDOWN_CLUSTER):
- (1)
- El agente controlador PARTNER se pone en conocimiento del SHUTDOWN inminente.
- (2)
- El agente controlador 20 primario no acepta más consultas nuevas.
- (3)
- El agente controlador de reserva 30 procesa todos los registros del diario todavía pendientes y los archiva.
- (4)
- El agente controlador 20 primario envía las respuestas para todas las consultas no contestadas o interrumpe las llamadas bloqueadas.
- (5)
- El agente controlador 20 primario y el agente controlador de reserva 30 sincronizan el SHUTDOWN conjunto.
- (6)
- El agente controlador 20 primario y el agente controlador de reserva 30 se paran.
\vskip1.000000\baselineskip
Parada del agente controlador 20 primario
(comando SHUTDOWN_BROKER):
- (1)
- El agente controlador de reserva 30 se pone en conocimiento del SHUTDOWN inminente.
- (2)
- El agente controlador 20 primario no acepta más consultas del participante nuevas.
- (3)
- El agente controlador de reserva 30 procesa todos los registros del diario todavía pendientes y los archiva.
- (4)
- El agente controlador 20 primario envía las respuestas para todas las consultas del participante no contestadas o interrumpe las llamadas bloqueadas.
- (5)
- El agente controlador 20 primario y el agente controlador de reserva 30 sincronizan el SHUTDOWN del agente controlador 20 primario.
- (6)
- El agente controlador 20 primario se para.
- (7)
- El agente controlador de reserva 30 realiza la secuencia TAKEOVER que le activa como agente controlador primario. Esto comprende la aceptación de todos los requerimientos de conexión y el procesamiento de las consultas del participante.
- (8)
- Puesto que en este momento no existe un agente controlador de reserva cualquier aceptación de contacto no se produce.
\vskip1.000000\baselineskip
Parada del agente controlador de reserva
(comando SHUTDOWN_BROKER con opción STOP_CLUSTER_
MODE).
MODE).
- (1)
- El agente controlador 20 primario se pone en conocimiento del SHUTDOWN inminente.
- (2)
- El agente controlador 20 primario para la transmisión de los registros del diario al agente controlador de reserva 30 y trabaja así ulteriormente en funcionamiento normal.
- (3)
- El agente controlador de reserva 30 inicia el SHUTDOWN y termina el tratamiento.
Claims (14)
1. Sistema para la gestión de la comunicación
entre al menos un cliente (10a - d) y al menos un servidor (12a - d)
comprendiendo
- a.
- un agente controlador (20) primario con una primera memoria (23) volátil que está configurado para gestionar al menos una consulta de al menos un cliente (10a - d) a al menos un servidor (12a - d);
- b.
- un agente controlador de reserva (12a - d) con una segunda memoria (33) volátil que está configurado para gestionar la al menos una consulta del cliente (10a - d) al servidor (12a - d) cuando el agente controlador (20) primario ha fallado;
- c.
- comprendiendo el agente controlador (20) primario un diario con las entradas de las acciones que son apropiadas para cambiar el estado de la primera memoria (23) volátil, y estando configurado el agente controlador primario para enviar estas entradas del diario al agente controlador de reserva (30), de forma que el agente controlador de reserva (30) está en condiciones de asumir sin interrupción el tratamiento de todas las consultas en caso de un fallo del agente controlador primario, caracterizado porque
- d.
- el agente controlador (20) primario está configurado para responder a una comunicación con el al menos un cliente (10a - d) y/o el al menos un servidor (12a - d) que conduce a una entrada en el diario después de que el agente controlador de reserva (30) ha confirmado la recepción de la entrada correspondiente.
2. Sistema según la reivindicación 1, en el que
el agente controlador (20) primario presenta una función de filtrado
que define que entradas se escriben en el diario.
3. Sistema según la reivindicación 1 ó 2, en el
que el agente controlador de reserva (30) presenta un interpretador
del diario que recibe y procesa las entradas recibidas por el agente
controlador (20) primario.
4. Sistema según la reivindicación 3, en el que
el procesamiento de las entradas en el diario por el interpretador
del diario del agente controlador de reserva (30) coloca la segunda
memoria (33) volátil, mediante al menos otro paso diferente que el
o los pasos realizadas por el agente controlador (20) primario, en
un estado tal que el agente controlador de reserva (30) está en
condiciones de asumir sin interrupción el tratamiento de todas las
consultas en caso de un fallo del agente controlador primario.
5. Sistema según una de las reivindicaciones 1 -
4, en el que, en respuesta a la recepción de una comunicación de un
cliente (10a - d) o de un servidor (12a - d), el agente controlador
(20) primario comunica al cliente o al servidor una identificación
del agente controlador de reserva (30).
6. Sistema según la reivindicación 5, en el que
cada respuesta a la consulta de un cliente (10a - d) contiene la
identificación del agente controlador de reserva (30).
7. Sistema según una de las reivindicaciones 1 -
6, en el que cada comunicación con el agente controlador (20)
primario que conduce a una entrada en el diario se identifica de
manera unívoca.
8. Sistema según la reivindicación 7, en el que
cada consulta de un participante al agente controlador (20) primario
que conduce a una entrada en el diario se numera de forma
consecutiva.
9. Sistema según una de las reivindicaciones 1 -
8, en el que el agente controlador de reserva (30) envía una señal
de prueba al agente controlador (20) primario si no ha recibido una
nueva entrada durante un lapso de tiempo determinado.
10. Sistema según la reivindicación 9, en el
que, para la comunicación con el al menos un cliente (10a - d) y el
al menos un servidor (12a - d), el agente controlador de reserva
(30) está dispuesto en estado de recepción si el agente controlador
(20) primario no responde a la señal de prueba dentro de un tiempo
predeterminado.
11. Sistema según una de las reivindicaciones 1
- 10, en el que el agente controlador de reserva (30) puede
conectarse al agente controlador (20) primario en un momento
cualquiera, de forma que todas las entradas almacenadas hasta ese
momento en el diario se transmiten al agente controlador de reserva
(30) y se procesan allí.
12. Sistema según la reivindicación 11, en el
que adicionalmente los datos de una memoria (24) no volátil del
agente controlador (20) primario se transmiten a una memoria (34) no
volátil del agente controlador de reserva (30).
13. Medio legible por ordenador con las
instrucciones para el suministro de un sistema según una de las
reivindicaciones 1 - 12.
14. Programa con las instrucciones, a ejecutar
en un ordenador, para el suministro de un sistema según una de las
reivindicaciones 1 - 13.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP06003030A EP1821498B1 (de) | 2006-02-15 | 2006-02-15 | Ausfallsicheres System zum Verwalten von Client-Server-Kommunikation |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2307242T3 true ES2307242T3 (es) | 2008-11-16 |
Family
ID=36691380
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES06003030T Active ES2307242T3 (es) | 2006-02-15 | 2006-02-15 | Sistema de seguridad contra fallos para la gestion de la comunicacion cliente-servidor. |
Country Status (6)
Country | Link |
---|---|
US (1) | US8156177B2 (es) |
EP (2) | EP1821498B1 (es) |
CN (1) | CN101043378B (es) |
AT (2) | ATE532313T1 (es) |
DE (1) | DE502006000801D1 (es) |
ES (1) | ES2307242T3 (es) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7725764B2 (en) * | 2006-08-04 | 2010-05-25 | Tsx Inc. | Failover system and method |
US20080307036A1 (en) * | 2007-06-07 | 2008-12-11 | Microsoft Corporation | Central service allocation system |
US10362131B1 (en) | 2008-06-18 | 2019-07-23 | Amazon Technologies, Inc. | Fault tolerant message delivery |
US8261286B1 (en) | 2008-06-18 | 2012-09-04 | Amazon Technologies, Inc. | Fast sequential message store |
JP5609193B2 (ja) * | 2010-03-19 | 2014-10-22 | 富士通株式会社 | 試験プログラム、試験装置、および試験方法 |
CN102891833B (zh) * | 2011-07-21 | 2017-03-29 | 中兴通讯股份有限公司 | 网络容灾方法和系统 |
US9798639B2 (en) | 2013-06-13 | 2017-10-24 | Tsx Inc. | Failover system and method replicating client message to backup server from primary server |
KR102266639B1 (ko) * | 2013-08-16 | 2021-06-21 | 인튜어티브 서지컬 오퍼레이션즈 인코포레이티드 | 이종 장치들간 기록 및 리플레이 시스템 및 방법 |
US9729653B2 (en) * | 2014-01-23 | 2017-08-08 | Software Ag | Systems and/or methods for automatically tuning a delivery system for transmission of large, volatile data |
US10831571B2 (en) | 2018-09-27 | 2020-11-10 | International Business Machines Corporation | Communicating between systems using a coupling facility list structure |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5278982A (en) * | 1991-12-23 | 1994-01-11 | International Business Machines Corporation | Log archive filtering method for transaction-consistent forward recovery from catastrophic media failures |
JP2708009B2 (ja) * | 1995-03-17 | 1998-02-04 | 日本電気株式会社 | Lan間接続装置及び接続方式 |
US6065062A (en) | 1997-12-10 | 2000-05-16 | Cisco Systems, Inc. | Backup peer pool for a routed computer network |
US6065325A (en) | 1999-05-26 | 2000-05-23 | Tsai; Sou-Jun | Automatic stamping machine |
US6665705B1 (en) * | 1999-10-19 | 2003-12-16 | International Business Machines Corporation | Method and apparatus for proxy replication |
US7043504B1 (en) * | 2000-04-10 | 2006-05-09 | International Business Machines Corporation | System and method for parallel primary and secondary backup reading in recovery of multiple shared database data sets |
US6578160B1 (en) * | 2000-05-26 | 2003-06-10 | Emc Corp Hopkinton | Fault tolerant, low latency system resource with high level logging of system resource transactions and cross-server mirrored high level logging of system resource transactions |
US7647422B2 (en) * | 2001-11-06 | 2010-01-12 | Enterasys Networks, Inc. | VPN failure recovery |
US7130891B2 (en) * | 2002-02-04 | 2006-10-31 | Datasynapse, Inc. | Score-based scheduling of service requests in a grid services computing platform |
JP3932994B2 (ja) * | 2002-06-25 | 2007-06-20 | 株式会社日立製作所 | サーバ引継システムおよびその方法 |
US7188273B2 (en) * | 2003-11-24 | 2007-03-06 | Tsx Inc. | System and method for failover |
US7246256B2 (en) * | 2004-01-20 | 2007-07-17 | International Business Machines Corporation | Managing failover of J2EE compliant middleware in a high availability system |
-
2006
- 2006-02-15 AT AT08009257T patent/ATE532313T1/de active
- 2006-02-15 EP EP06003030A patent/EP1821498B1/de not_active Not-in-force
- 2006-02-15 AT AT06003030T patent/ATE396579T1/de not_active IP Right Cessation
- 2006-02-15 DE DE502006000801T patent/DE502006000801D1/de active Active
- 2006-02-15 ES ES06003030T patent/ES2307242T3/es active Active
- 2006-02-15 EP EP08009257A patent/EP1959639B1/de not_active Not-in-force
-
2007
- 2007-02-14 CN CN2007100879697A patent/CN101043378B/zh not_active Expired - Fee Related
- 2007-02-14 US US11/674,946 patent/US8156177B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
EP1821498A1 (de) | 2007-08-22 |
EP1821498B1 (de) | 2008-05-21 |
ATE396579T1 (de) | 2008-06-15 |
DE502006000801D1 (de) | 2008-07-03 |
US8156177B2 (en) | 2012-04-10 |
EP1959639B1 (de) | 2011-11-02 |
US20070203976A1 (en) | 2007-08-30 |
EP1959639A1 (de) | 2008-08-20 |
CN101043378B (zh) | 2011-12-14 |
CN101043378A (zh) | 2007-09-26 |
ATE532313T1 (de) | 2011-11-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2307242T3 (es) | Sistema de seguridad contra fallos para la gestion de la comunicacion cliente-servidor. | |
US6161191A (en) | Mechanism for reliable update of virtual disk device mappings without corrupting data | |
US5964886A (en) | Highly available cluster virtual disk system | |
CN100423491C (zh) | 虚拟化网络存储系统及其网络存储设备 | |
ES2333519T3 (es) | Una arquitectura de controlador de dispositivo de red. | |
CN100547558C (zh) | 并行计算系统中的冗余保护的方法和系统 | |
CN102411598B (zh) | 一种实现数据一致性的方法及其系统 | |
KR100450400B1 (ko) | 안전 기억 장치가 없는 환경을 위한 이중화 구조의 주 메모리 상주 데이터베이스 관리시스템 및 그 데이터 일치성 제어방법 | |
US6535929B1 (en) | Universal communication mechanism for applications running in a multitasking environment | |
JP2002049575A (ja) | ファイルシステム | |
CN101137984A (zh) | 用于分布加载数据库的系统、方法和软件 | |
WO2022108640A1 (en) | Extra-resilient cache for resilient storage array | |
US9910808B2 (en) | Reflective memory bridge for external computing nodes | |
JP4501096B2 (ja) | 高可用性クラスタ仮想ディスク・システム | |
JP5366858B2 (ja) | クラスタシステム、および、クラスタシステムにおける系切替え方法 | |
KR20020036502A (ko) | 이중화 구조를 가지는 데이터베이스 관리시스템 및 그의이중화 처리방법 | |
CN110297822A (zh) | 面向区块链的密钥管理方法、装置、设备及存储介质 | |
KR102598619B1 (ko) | 데이터베이스 관리 서비스 제공 시스템 | |
CN103188065A (zh) | 一种业务服务中数据同步的方法和系统 | |
Cardoza et al. | Design of the TruCluster multicomputer system for the Digital UNIX environment | |
CN112069160B (zh) | 一种基于cap数据清洗同步方法 | |
JP2003058435A (ja) | サービス制御アプリケーション実行方法及びシステム | |
KR100336500B1 (ko) | 상용 실시간 운영체제와 미들웨어를 통한 아이/오 기반고가용성 구현 방법 | |
CN109376193B (zh) | 基于自适应规则的数据交换系统 | |
JP2011253400A (ja) | 分散ミラードディスクシステム、コンピュータ装置、ミラーリング方法およびそのプログラム |