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 PDF

Info

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
Application number
ES06003030T
Other languages
English (en)
Inventor
Kerstin Bein
Wolfgang Schmidt
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.)
Software AG
Original Assignee
Software 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 Software AG filed Critical Software AG
Application granted granted Critical
Publication of ES2307242T3 publication Critical patent/ES2307242T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error 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/202Error 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/2038Error 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error 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/2097Error 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/288Distributed intermediate devices, i.e. intermediate devices for interaction with other intermediate devices on the same level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/59Providing operational support to end devices by off-loading in the network or by emulation, e.g. when they are unavailable
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error 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/202Error 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/2046Error 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error 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/202Error 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/2048Error 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network 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.
1. Ámbito técnico
La presente invención se refiere a un sistema de seguridad contra fallos para la gestión de la comunicación cliente-servidor.
2. Estado de la técnica
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.
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.
3. Resumen de la invención
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.
4. Breve descripción de las figuras
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.
5. Descripción detallada de ejemplos de realización preferidos
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).
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.
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.
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.
1
Ejemplo
\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.
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.
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).
(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.
ES06003030T 2006-02-15 2006-02-15 Sistema de seguridad contra fallos para la gestion de la comunicacion cliente-servidor. Active ES2307242T3 (es)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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) 分散ミラードディスクシステム、コンピュータ装置、ミラーリング方法およびそのプログラム