[go: up one dir, main page]

MX2009001241A - Sistema y metodo de paso a unidad sustitutoria. - Google Patents

Sistema y metodo de paso a unidad sustitutoria.

Info

Publication number
MX2009001241A
MX2009001241A MX2009001241A MX2009001241A MX2009001241A MX 2009001241 A MX2009001241 A MX 2009001241A MX 2009001241 A MX2009001241 A MX 2009001241A MX 2009001241 A MX2009001241 A MX 2009001241A MX 2009001241 A MX2009001241 A MX 2009001241A
Authority
MX
Mexico
Prior art keywords
server
service
servers
primary
library
Prior art date
Application number
MX2009001241A
Other languages
English (en)
Inventor
Tudor Morosan
Gregory A Allen
Viktor Pavlenko
Benson Sze-Kit Lam
Original Assignee
Tsx Inc
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 Tsx Inc filed Critical Tsx Inc
Publication of MX2009001241A publication Critical patent/MX2009001241A/es

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/2023Failover techniques
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/2023Failover techniques
    • G06F11/2028Failover techniques eliminating a faulty processor or activating a spare
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Finance (AREA)
  • Accounting & Taxation (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • Technology Law (AREA)
  • General Business, Economics & Management (AREA)
  • Hardware Redundancy (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

Un aspecto de la presente invención proporciona un sistema para paso a unidad sustitutoria que comprende por lo menos un cliente que puede conectarse de manera selectiva a uno de por lo menos dos servidores interconectados a través de una conexión de redes. En estado normal, se designa un servidor primario a uno de los servidores al conectarse con el cliente y el resto de los servidores están designados como servidores de reserva cuando no se conecten con el cliente. Por lo menos un cliente está configurado para enviar mensajes al servidor primario. Los servidores están configurados para procesar los mensajes utilizando por lo menos un servicio que es idéntico en cada uno de los servidores. Los servicios se desconocen si un servidor con respecto al servicio está operando como el servidor primario o el servidor de reserva. Los servidores además se configuran para mantener una biblioteca o similares, que indique si el servidor es el servidor primario o si el servidor es el servidor de reserva. Los servicios dentro de cada servidor hacen llamadas externas a través de su respectiva biblioteca. La biblioteca en el servidor primario se configura para completar las llamadas externas y regresar resultados de las llamadas externas al servicio en el servidor de reserva. La biblioteca en el servidor secundario no hace llamadas externas sino simplemente envía los resultados de las llamadas externas, como recibidos desde el servidor primario, hasta el servicio en el servidor secundario cuando así se le solicite por el servicio en el servidor secundario.

Description

SISTEMA Y MÉTODO DE PASO A UNIDAD SUSTITUTORIA DESCRIPCIÓN DE LA INVENCIÓN La presente invención se refiere a arquitectura de computadoras y redes y más particularmente se refiere a un sistema y método de paso a unidad sustitutoria o de recuperación ante fallos. La sociedad cada vez más está confiando en las computadoras y redes para interactuar y llevar a cabo negocios. Para lograr un alto nivel de disponibilidad demandada en sistemas críticos, el tiempo improductivo no planeado provocada por defectos en software y hardware debe reducirse . La industria de servicios financieros es sólo un ejemplo de una industria que demanda sistemas altamente disponibles. De hecho, un gran número de actividades de procesamiento de datos en la industria financiera de hoy en día son soportadas por sistemas de cómputo. Particularmente interesantes son las aplicaciones denominadas Procesamiento de Transacción en Línea (OLTP) "en tiempo real" y "casi en tiempo real" , las cuales típicamente procesan grandes cantidades de transacciones financieras durante un periodo prolongado, con alta velocidad y baja latencia. Estas aplicaciones generalmente muestran las siguientes características: (1) procesamiento de datos complejo y de alta velocidad, (2) almacenamiento de datos no volátil fiable, y (3) alto nivel de disponibilidad, es decir, la capacidad de soportar los servicios en una base sustancialmente ininterrumpida. Cuando se implementan, sin embargo, aplicaciones existentes tienden a realizar cambios entre estos requerimientos de rendimiento, puesto que, debido a sus efectos contradictorios en el comportamiento del sistema, ningún diseño puede satisfacer completamente todas estas características simultáneamente, como se especifica en mayor detalle en lo siguiente. Primero, el procesamiento de datos complejo se refiere a la capacidad de realizar, en una forma puntal, una gran cantidad de cálculos, recuperaciones/actualizaciones de bases de datos, etc. Esto puede implementarse a través de procesamiento paralelo, donde múltiples unidades de trabajo se ejecutan simultáneamente en la misma máquina física o en una red distribuida. En algunos sistemas, el resultado de cada transacción depende de los resultados de las transacciones previamente completadas. Los aspectos paralelos de tales sistemas son, inherentemente no deterministas: debido a condiciones de competencia, tareas de programación del sistema operativo, o retardos variables de la red, la secuencia del mensaje y la ejecución de la cadena no pueden ser predichas, ni pueden ser procesadas en paralelo simplemente al pasar copias de mensaje de entrada a un sistema duplicado. Los sistemas no deterministas tienen un resultado no idéntico, de modo que no se ejecutan en paralelo en dos diferentes máquinas de cómputo, con la intención de tener un sustituto para la otra en caso de falla. En segundo lugar, el almacenamiento de datos no volátil confiable se refiere a la capacidad de almacenar persistentemente los datos procesados, incluso si una cantidad de componentes de software o hardware del sistema experimentan falla no esperada. Esto puede implementarse normalmente al utilizar transacciones Atómicas, Consistentes, Aisladas y Durables ("ACID") cuando se acceden o modifican los datos compartidos. Las transacciones ACID pueden asegurar la integridad y persistencia de los datos tan pronto como se complete una unidad de trabajo. Cada transacción ACID dedicada se escribe en la memoria no volátil de la computadora (disco duro) , la cual ayuda a asegurar la durabilidad de los datos, pero es muy costosa en términos de rendimiento y típicamente ralentiza todo el sistema. En tercer lugar, los sistemas altamente disponibles intentan asegurar el porcentaje de disponibilidad de un sistema de cómputo dado tan cerca como sea posible al 100% del tiempo. Tal disponibilidad puede ser implementada a través de software y/o hardware redundantes, los cuales se encargan de la funcionalidad en caso de que se detecte una falla de componente. Para obtener el éxito, la recuperación ante fallos duplica no sólo los datos, sino también el estado de proceso. Como se apreciará por aquellos de experiencia en la técnica, la duplicación de estado puede ser particularmente desafiante en sistemas no deterministas (es decir, sistemas donde el procesamiento computacional del mismo conjunto de eventos puede tener más de un resultando dependiendo del orden en el cual se procesan esos eventos) . Las aplicaciones de software altamente disponibles normalmente se despliegan en ambientes redundantes, para reducir y/o eliminar el punto simple de falla que comúnmente se asocia con el hardware subyacente. Dos procedimientos comunes se conocen como recuperación ante fallos en caliente y recuperación ante fallos templada. La recuperación ante fallos en caliente se refiere a procesar simultáneamente la misma entrada en múltiples sistemas, esencialmente proporcionando una redundancia completa en el caso de una falla en uno de esos sistemas. La recuperación ante fallos templada se refiere a duplicar el estado de la aplicación (es decir, los datos) en sistemas de respaldo, sin procesar esos datos en los sistemas de respaldo, pero teniendo aplicaciones capaces de procesar esos datos cargados y en espera en caso de falla de un sistema primario. La recuperación ante fallos en frío, la cual por muchos no es considerada que sea una forma de alta disponibilidad, se refiere simplemente a arrancar un sistema de respaldo y preparar ese sistema de respaldo para asumir responsabilidades de procesamiento a partir del sistema primario. En configuraciones de recuperación ante fallos en caliente, dos casos de la aplicación se están ejecutando simultáneamente en dos diferentes instalaciones de hardware, procesando copias de la misma entrada. Si una de ellas experimenta una falla crítica, un sistema de sincronización suplementario puede asegurar que el otro continuará soportando la carga de trabajo. En las configuraciones de recuperación ante fallos templada, uno de los sistemas, designado como primario, está ejecutando la aplicación; en caso de falla, el segundo sistema, designado como de respaldo, el cual está aguardando en un estado en espera, "despertará", se encargará y retomará la funcionalidad. Procedimientos de recuperación ante fallos en caliente de la técnica anterior tienen por lo menos dos desventajas. La primera, el software suplementario tiene que ejecutarse para mantener sus dos sistemas sincronizados. En el caso de sistemas no deterministas, este esfuerzo de sincronización puede conducir a una disminución inaceptable (o de otra forma indeseable) en el rendimiento y complejidad donde el orden de llegada de los eventos debe ser garantizado para ser idéntico. También, los sistemas con corrientes de la técnica anterior utilizados en tales aplicaciones típicamente permiten que múltiples cadenas se ejecuten simultáneamente, de modo que son inherentemente no deterministas. Incluso los no deterministas son los sistemas con servidores y clientes geográficamente distribuidos, donde el retardo de red variable distribuye los mensajes al servidor en una secuencia impredecible . La recuperación ante fallos templada puede utilizarse para solucionar ciertos problemas con la recuperación ante fallos en caliente. La recuperación ante fallos templada puede ser otra forma de implementar la recuperación ante fallos de sistemas no deterministas, al duplicar los datos del sistema en un sistema de respaldo redundante, y después restablecer la funcionalidad de la aplicación al sistema secundario. Este procedimiento tiene sus desventajas en el tiempo requerido para recuperar los datos a un estado consistente, después poner la aplicación en un estado funcional, y al final, regresar la aplicación al punto en el procesamiento donde se quedó fuera. Este proceso normalmente toma horas, requiere intervención manual y no puede recuperar generalmente las transacciones al vuelo. Un número de patentes intenta dirigir por lo menos parte de los problemas anteriores. La Patente Norteamericana No. 5,305,200 propone lo que esencialmente es un mecanismo sin renunciación para comunicaciones en un escenario de comercialización negociada entre un comprador/vendedor y un comerciante (creador de mercado) . La redundancia se proporciona para asegurar que el mecanismo sin renunciación funcione en el caso de una falla. No dirige la recuperación ante fallos de una aplicación de transacción en línea en un ambiente no determinista. En términos simples, la Patente Norteamericana No. 5,305, 200 se dirige a proporcionar una respuesta inequívoca a la pregunta: "¿Fue enviada la orden o no?" después de experimentar una falla de red. La Patente Norteamericana No. 5,381,545 propone una técnica para respaldar datos almacenados (en una base de datos) mientras las actualizaciones aún se están realizando en los datos. La Patente Norteamericana No. 5,987,432 dirige un sistema de planta de cotización de datos de mercado tolerante a fallos para ensamblar datos de mercado financiero mundial para distribución regional. Éste es un ambiente determinista, y la solución se enfoca en proporcionar un flujo de datos ininterrumpido de una sola vía a los consumidores. La Patente Norteamericana No. 6,154,847 proporciona un método mejorado para revertir transacciones al combinar un registro de transacción en un almacén no volátil tradicional con una lista de transacciones en el almacén volátil. La Patente Norteamericana No. 6,199,055 propone un método para llevar cabo transacciones distribuidas entre un sistema y un procesador portátil a través de un enlace de comunicación no seguro. La Patente Norteamericana No. 6,199,055 trata con autentificación, asegurando transacciones completas con dispositivos remotos, y con restablecer los dispositivos remotos en caso de falla. En general lo anterior no dirige la recuperación ante fallos de una aplicación de transacción en línea en un ambiente no determinista. La Patente Norteamericana No. 6,202,149 propone un método y aparato para redistribuir automáticamente tareas para reducir el efecto de suspensión temporal de una computadora. El aparato incluye por lo menos un grupo de redundancia comprendido de uno o más sistemas de cómputo, los cuales a su vez son comprendidos de una o más particiones de cómputo. La partición incluye copias de un esquema de base de datos que se duplican en cada partición del sistema de cómputo. El grupo de redundancia monitorea el estado de los sistemas de cómputo y las particiones del sistema de cómputo, y asigna una tarea a los sistemas de cómputo basándose en el estado monitoreado de los sistemas de cómputo. Un problema con la Patente Norteamericana No. 6,202,149 es que no enseña cómo recuperar el flujo de trabajo cuando un sistema de respaldo asume la responsabilidad de procesar transacciones, pero de hecho se dirige a sí misma a la duplicación de toda una base de datos, lo cual puede ser ineficiente y/o lento. Además, tal duplicación puede provocar que información de transacción importante se pierda al vuelo, particularmente durante una falla del sistema primario o la red que interconecta el sistema primario y el de respaldo, llevando por consiguiente a un estado inconsistente entre el primario y el de respaldo. En general, la Patente Norteamericana No. 6,202,149 carece de ciertas características que se desean en el procesamiento de transacciones en línea y similares, y en particular carece de características necesarias para recuperar ante fallos de sistemas no deterministas. La Patente Norteamericana No. 6,308,287 propone un método para detectar una falla de una transacción de componente, retrocediéndolo, almacenando un indicador de falla confiable de modo que se pueda recuperar después de una falla de sistema, y luego volver este indicador de fallas disponible para una transacción adicional. No dirige la recuperación ante fallos de una aplicación de transacción de un ambiente no determinista. La Patente Norteamericana No. 6,574,750 propone un sistema de objetos distribuidos, duplicados, donde los objetos no son deterministas. Propone un método para garantizar la consistencia y limitar la reversión en el evento de falla de un objeto duplicado. Se describe un método donde un objeto recibe una solicitud de cliente entrante y compara la ID de la solicitud con un registro de todas las solicitudes previamente procesadas por réplicas del objeto. Si se encuentra una correlación, entonces la respuesta asociada se devuelve al cliente. Sin embargo, este método en aislamiento no es suficientes para resolver los diversos problemas en la técnica anterior. Otro problema es que el método de la Patente Norteamericana No. 6,574,750 asume una cadena de invocación sincrónica, la cual es inapropiada para aplicaciones de Procesamiento de Transacción en Línea ("OLTP") de alto rendimiento. Con una invocación sincrónica, el cliente espera una respuesta o una pausa antes de continuar. El objeto invocado a su vez puede convertirse en un cliente de otro objeto, propagando la cadena de llamadas sincrónica. El resultado puede ser una operación sincrónica extensiva, bloqueando el procesamiento de cliente y requiriendo que pausas largas se configuren en el cliente de origen. Un aspecto de la presente invención proporciona un sistema para recuperación ante fallos que comprende por lo menos un cliente que se puede conectar selectivamente a uno de por lo menos dos servidores interconectados mediante una conexión de red. En un estado normal, uno de los servidores se designa como servidor primario cuando se conecta al cliente y el resto de los servidores se designa como servidores de reserva cuando no se conectan al cliente. Por lo menos un cliente se configura para enviar mensaje al servidor primario. Los servidores se configuran para procesar los mensajes utilizando por lo menos un servicio que es idéntico en cada uno de los servidores. Los servicios desconocen si un servidor correspondiente al servicio está operando como el servidor primario o el servidor de reserva. Los servidores además se configuran para mantener una biblioteca u otros conjuntos distintos de código útil, que realiza una variedad de tareas, incluyendo indicar si un servidor es el servidor primario o un servidor es el servidor de reserva. Los servicios dentro de cada servidor son para realizar llamadas externas a su biblioteca respectiva. La biblioteca en el servidor primario se configura para completar las llamadas externas y devolver los resultados de las llamadas externas al servicio en el servidor primario y para reenviar resultados de las llamadas externas al servicio en el servidor de reserva. La biblioteca en el servidor secundario no realiza llamadas externas sino simplemente reenvía los resultados de las llamadas externas, como recibidos del servidor primario, al servicio en el servidor secundario cuando se solicite hacerlo de esta forma por el servicio en el servidor secundario. La biblioteca puede implementarse como uno o más conjuntos distintos de código útil. Los servidores cada uno puede configurarse para mantener un recurso compartido donde los servicios puedan almacenar resultados para procesar los mensajes. El recurso compartido puede ser, y por razones de rendimiento, de preferencia se mantienen en una memoria de acceso aleatorio de un servidor respectivo. Sin embargo, no es necesario mantener el recurso compartido en la memoria de acceso aleatorio.
La llamada externa puede ser (como una lista no limitante de ejemplos) una solicitud de una marca de tiempo, o llamada a otro servicio proporcionado en el mismo servidor, o una llamada a otro servicio proporcionado físicamente en una máquina separada. El sistema puede ser parte de un sistema de comercialización electrónica y el mensaje de este modo puede ser una orden para comprar o vender un título. En este caso, la llamada externa puede ser una solicitud de una cotización de fuente de mercado para un valor del título. Donde el sistema es un sistema de comercialización electrónica, por lo menos un servicio puede incluir uno de un servicio de colocación de orden; un servicio de cancelación de orden; un servicio de cambio de orden; un servicio de correlación de orden; un servicio para entrar a una negociación previamente ejecutada; o un servicio para entrar a una negociación cruzada . El servicio en el servidor primario puede configurarse para confirmar al cliente que el mensaje ha sido procesado sólo si el servidor de reserva confirma que los resultados de las llamadas externas se reenviaron exitosamente al servidor de reserva. El servicio en el servidor primario puede ser configurado para confirmar al cliente que el mensaje ha sido procesado independientemente de si el servidor de reserva confirma que los resultados de las llamadas externas se reenviaron exitosamente al servidor de reserva. El servidor primario puede estimar que el servidor de reserva ha fallado si el servidor de reserva no confirma que los resultados de las llamadas externas se reenviaron exitosamente al servidor de reserva dentro de un periodo de tiempo predefinido. Otro aspecto de la invención proporciona un método para recuperación ante fallos en un sistema que comprende: por lo menos un cliente que se puede conectar selectivamente a uno de por lo menos dos servidores interconectados mediante una conexión de red; uno de los servidores se designa como servidor primario cuando se conecta al cliente y el resto de los servidores se designa como servidor de reserva cuando no se conecta al cliente; por lo menos un cliente configurado para enviar mensajes al servidor primario; el método comprende: configurar los servidores para procesar los mensajes utilizando por lo menos un servicio que es idéntico en cada uno de los servidores y desconoce si un servidor correspondiente al servicio está operando como el servidor primario o el servidor de reserva; configurar los servidores para mantener una biblioteca que indica si el servidor es el servidor primario o el servidor es el servidor de reserva; configurar los servicios para hacer llamadas externas a su biblioteca respectiva; y configurar la biblioteca en el servidor primario para completar las llamadas externas y devolver los resultados de las llamadas externas al servicio en el servidor primario y para reenviar los resultados de las llamadas externas al servicio en el servidor de reserva. Otro aspecto de la invención proporciona un medio que se puede leer por computadora que almacena un conjunto de instrucciones de programación que se pueden ejecutar en uno de por lo menos dos servidores interconectados mediante una conexión de red que se puede conectar selectivamente por lo menos a un cliente. Uno de los servidores puede ser designado como servidor primario cuando se conecta al cliente en cuyo caso el resto de los servidores se designa como servidor de reserva cuando no se conectan al cliente. Por lo menos un cliente se configura para enviar mensajes al servidor primario. Las instrucciones de programación comprenden: instrucciones para configurar los servidores para procesar los mensajes utilizando por lo menos un servicio que es idéntico en cada uno de los servidores y desconoce si un servidor correspondiente al servicio está operando como el servidor primario o el servidor de reserva; instrucciones para configurar los servidores para mantener una biblioteca que indica si el servidor es el servidor primario o el servidor es el servidor de reserva; instrucciones para configurar los servicios para hacer llamadas externas a su biblioteca respectiva; y instrucciones para configurar la biblioteca en el servidor primario para completar las llamadas externas y devolver los resultados de las llamadas externas al servicio en el servidor primario y para reenviar los resultados de las llamadas externas al servicio en el servidor de reserva. BREVE DESCRIPCIÓN DE LOS DIBUJOS La invención ahora se describirá por medio de ejemplo solamente, y con referencia los dibujos anexos, en los cuales: La Figura 1 es una representación esquemática de un sistema para recuperación ante fallos de acuerdo con una modalidad de la invención; la Figura 2 es una representación esquemática del sistema en la Figura 1 como operando en un estado normal y que incluye detalles ejemplares de varios elementos de software que se ejecutan en los servidores en el sistema; la Figura 3 es un diagrama de flujo que representa un método para operar un sistema para recuperación ante fallos en el estado normal de acuerdo con otra modalidad de la invención; la Figura 4 muestra el sistema de la Figura 2 durante el rendimiento del método en la Figura 3 ; la Figura 5 muestra el sistema de la Figura 2 durante el rendimiento del método en la Figura 3 ; la Figura 6 muestra el sistema de la Figura 2 durante el rendimiento del método en la Figura 3; la Figura 7 muestra el sistema de la Figura 2 durante el rendimiento del método en la Figura 3; la Figura 8 muestra el sistema de la Figura 2 durante el rendimiento del método en la Figura 3; la Figura 9 muestra el sistema de la Figura 2 durante el rendimiento del método en la Figura 3 ; la Figura 10 muestra el sistema de la Figura 2 durante el rendimiento del método en la Figura 3 ; la Figura 11 muestra el sistema de la Figura 2 durante el rendimiento del método en la Figura 3; la Figura 12 muestra el sistema de la Figura 2 durante el rendimiento del método en la Figura 3; la Figura 13 muestra el sistema de la Figura 2 durante el rendimiento del método en la Figura 3 ; la Figura 14 muestra el sistema de la Figura 2 durante el rendimiento del método en la Figura 3 ; la Figura 15 es un diagrama de flujo que representa un método para recuperación ante fallos de acuerdo con otra modalidad de la invención; la Figura 16 muestra el sistema de la Figura 2 con uno de los servidores operando en el estado sólo primario de acuerdo con otra modalidad de la invención; la Figura 17 muestra el sistema de la Figura 16 con otro servidor operando en el estado sólo primario de acuerdo con otra modalidad de la invención; la Figura 18 es un diagrama de flujo que representa un método para operar uno de los servidores en el estado sólo primario de acuerdo con otra modalidad de la invención; y la Figura 19 es un diagrama de flujo que representa un método para recuperación ante fallos desde el estado normal hasta el servidor de reserva que opera en el estado sólo primario de acuerdo con otra modalidad de la invención. Con referencia ahora a la Figura 1, un sistema para recuperación ante fallos se indica generalmente en 50. El sistema 50 comprende una pluralidad de clientes 51-1 y 54-2 remotos (generalmente referidos en la presente como "cliente 54" y colectivamente "clientes 54" . Esta nomenclatura se utiliza para otros elementos en las Figuras) . Los clientes 54 se conectan a una red 58. La red 58 puede ser cualquier tipo de red de cómputo, tal como la Internet, una red de área local, una red de área extensa, o combinaciones de las mismas. A su vez, la red 58 se conecta a un primer servidor 62-1 y un segundo servidor 62-2. Por consiguiente, clientes 54 pueden comunicarse cada uno con el servidor 62-1 y el servidor 62-2 mediante la red 58, como se discutirá en mayor detalle en lo siguiente. Los clientes 54 cada uno pertenece a individuos y/o entidades que utilizarán su cliente 54 respectivo para presentar solicitudes al servidor 62-2. Para conveniencia, tales individuos o entidades se refieren en la presente como comerciantes T, con el comerciante T-l utilizando el cliente 54-1, y el comerciante T-2 utilizando el cliente 54-2. Cada cliente 54 típicamente es un dispositivo de cómputo tal como una computadora personal que tiene un teclado y un ratón (y otros dispositivos de entrada) un monitor (u otro dispositivo de salida) y un módulo de escritorio que conecta el teclado, ratón y monitor y aloja una o más unidades de procesamiento central, memoria volátil (es decir, memoria de acceso aleatorio) , memoria no volátil (es decir, dispositivos de disco duro) e interfaces de red para permitir al cliente 54 comunicarse sobre la red 58. Sin embargo, se entenderá que el cliente 54 puede ser cualquier tipo de dispositivo de cómputo, tal como un asistente digital personal, teléfono celular, computadora tipo laptop, dispositivo de búsqueda de correo electrónico, etc. Servidores 62 pueden ser cualquier tipo de dispositivo de cómputo que puede operar para recibir y procesar mensajes de los clientes 54, tal como Sun Fire V480 que ejecuta en un sistema operativo UNIX, de Sun Microsystems, Inc. de Palo Alto California, y que tiene cuatro unidades de procesamiento central cada una operando en aproximadamente 900 megahertz y que tiene aproximadamente cuatro gigabytes de memoria de acceso aleatorio y un dispositivo de almacenamiento no volátil tal como una unidad de disco duro. Otro tipo de dispositivo de cómputo adecuado para servidores 62 es un servidor HP ProLiant BL25p de Hewlett-Packard Company, 800 South Taft, Loveland, CO 80537. Sin embargo, se enfatizará que estos servidores particulares son sólo ejemplares, una vasta disposición de otros tipos de ambientes de cómputo para servidores 62-1 y 62-2 se encuentran dentro del alcance de la invención. El tipo de mensaje que es recibido y procesado por el servidor 62-1 no se limita particularmente, pero en una presente modalidad, el servidor 62-1 opera en un sistema de comercialización en línea, y de este modo es capaz de procesar mensajes que incluyen solicitudes para comprar, vender, cancelar, etc., títulos que pueden ser comercializados en línea. Más particularmente, el servidor 62-1 se puede operar para mantener un motor de correlación central (no mostrado) , donde las solicitudes se ejecutan entre sí, y contra un depósito central de órdenes para procesar por consiguiente la comercialización de títulos. El servidor 62-2 típicamente tiene un ambiente de cómputo idéntico (o por lo menos sustancialmente idéntico) como el servidor 62-1. Como se explicará además en lo siguiente, el ambiente de cómputo que incluye su hardware, sistema operativo, aplicaciones, etc., de este modo se selecciona para volver al servidor 62-2 operativo para sustituir la funcionalidad del servidor 62-1 en el caso de falla de servidor 62-1. El sistema 50 también incluye un enlace 78 de duplicación que interconecta el servidor 62-1 y el servidor 62-2. En una presente modalidad, el enlace 78 de duplicación incluye por sí mismo un enlace 82 principal y un enlace 86 a prueba de fallos para proporcionar mayor fuerza en comunicaciones entre el servidor 62-1 y el servidor 62-2. Detalles adicionales sobre las funciones del servidor 62-1 principal, el servidor 62-2 de reserva y el enlace 78 de duplicación, y por extensión los diversos tipos de hardware que puede utilizarse para implementar los servidores 62-1 y 62-2, se volverán aparentes en la siguiente discusión. En la Figura 2, los servidores 62-1 y 62-2 se muestran en mayor detalle. También debe observarse, las diversas conexiones en la Figura 2 se muestran en líneas punteadas, para denotar conexiones virtuales entre varios elementos en el sistema 50, en contraste a las conexiones de línea gruesa en la Figura 1, las cuales denotan las conexiones físicas entre varios elementos del sistema 50. De este modo, tales conexiones como se muestra en la Figura 2 se pretenden para denotar el sistema 50 que opera en un estado normal por el cual el servidor 62-1 se designa como el servidor primario y el servidor 62-2 se designa como el servidor de reserva, con el servidor 62-1 primario dando servicio a solicitud entre los clientes 54. Detalles adicionales sobre el estado normal, y otros estados en los cuales puede operar el sistema 50, se proporcionarán en lo siguiente . Con referencia aún a la Figura 2, el servidor 62-1 y el servidor 62-2 cada uno incluye una pluralidad de elementos de software que ejecutan en sus ambientes de hardware respectivos para dar servicio a solicitudes de clientes y proporcionar funcionalidad de recuperación ante fallos . El servidor 62-1 y el servidor 62-2 cada uno incluye un agente 90-1 y 90-2 de recuperación ante fallos respectivamente. Los agentes 90 de recuperación ante fallos se comunican entre sí y se pueden operar para probar periódicamente la integridad del enlace 78 y entre sí. En una presente modalidad, en el estado normal, el agente 90-1 de recuperación ante fallos distribuirá periódicamente una señal de mantener vigente (por ejemplo, "¿Estás vigente?") al agente 90-2 de recuperación ante fallos, al cual el agente 90-2 de recuperación ante fallos se espera responda periódicamente (por ejemplo, "Sí") . Siempre que son contestadas tales solicitudes por el agente 90-2 de recuperación ante fallos, y siempre que el servidor 62-1 primario continúa operando normalmente, entonces el sistema 50 permanecerá en el estado normal mostrado en la Figura 2. De este modo, el agente 90-1 de recuperación ante fallos siempre se puede operar para comunicarse con otros elementos de software en el servidor 62-1 para indicar que el estado normal está en efecto. Ahora debe ser aparente que los agentes 90 de recuperación ante fallos se pueden operar para hacer uso del enlace 82 principal y el enlace 86 de protección contra fallos que conjuntamente comprenden el enlace 78, como es apropiado o como se desee de otra forma. De esta forma, el sistema 50 puede permanecer en el estado normal siempre y cuando por lo menos uno del enlace 82 principal y el enlace 86 de protección contra fallos sean operacionales . Los servidores 62 cada uno incluye uno o más servicios que pueden recibir y procesar varias solicitudes de uno o más clientes 54. Los tipos de servicios no se limitan particularmente y pueden incluir cualquier tipo de servicio, aplicación, o proceso o similar para el cual se desea la protección de recuperación ante fallos. En una presente modalidad y puramente ejemplar, donde el sistema 50 es un sistema de comercialización en línea, los servidores 62 cada uno incluye un servicio 94 de colocación de orden y un servicio 98 de cancelación de orden. El servicio 94 de colocación de orden, como el nombre lo implica, se configura para recibir solicitudes de los clientes 54 para colocar una orden de venta o una orden de compra para un título particular. El servicio 98 de cancelación de orden, como el nombre lo implica, se configura para recibir solicitudes de los clientes 54 para cancelar las órdenes de compra o venta para un título particular, que se colocó previamente utilizando el servicio 94, pero antes de que se llene completamente la orden particular. Otros tipos de servicios que podrían implementarse , como se presentará ahora para aquellos con experiencia en la técnica de comercialización electrónica, incluyen, sin limitación, correlación de orden, orden de cambio, entrar a una comercialización, o entrar a una comercialización cruzada. En una presente modalidad, los servicios 94 y 98 son de varios comercios, aunque éste no es un requisito. (Como se utiliza en la presente, el multiensarte variado no se utiliza en un sentido limitante, y se refiere a varias formas de procesamiento concurrente donde múltiples mensajes se están procesando simultáneamente, que además contribuye a la naturaleza no determinista de los sistemas. El multiensarte puede implementarse, por ejemplo, utilizando múltiples procesos, o utilizando múltiples cadenas de ejecución con un solo proceso) . Los servidores 62 cada uno también incluye una biblioteca 102 que se puede acceder a los servicios 94 y 98 correspondientes respectivos a la misma. Cada biblioteca 102 incluye un secuenciador 106 y una memoria caché 110. como se explicará en mayor detalle en lo siguiente, el secuenciador 106 genera un número de secuencia en respuesta a una solicitud de un servicio 94 ó 98 correspondiente a la biblioteca 102. El secuenciador 106-2 está inactivo en el estado normal y tal inactividad se representa en la Figura 2 por la codificación hash a través de óvalo que representa el secuenciador 106-2. (La codificación hash se utiliza en otros elementos para denotar si ese elemento está activo o inactivo en cualquier estado particular dado) . La memoria caché 110 es un área de almacenamiento para resultados de celdas de función externa formadas por la biblioteca 102. Cada biblioteca 102 también incluye un registro 114 de estado que mantiene el estado en el cual el sistema 50 está operando actualmente, y que se comunica continuamente con su agente 90 de recuperaciones ante fallos respectivo para poder verificar el estado en el cual está operando actualmente el sistema 50. En la Figura 2, el sistema 50 está operando en el estado normal y por consiguiente el registro 114-1 de estado indica que el servidor 62-1 está designado actualmente como el servidor primario mientras el registro 114-2 de estado indica que el servidor 62-2 está designado actualmente como el servidor de reserva. Sin embargo, como se explicará en mayor detalle en lo siguiente, el estado del sistema 50 puede cambiar dependiendo del estado operacional de varios componentes en el sistema 50. Los servidores 62 cada uno también incluye un agente 118 de recursos externos el cual es responsable de hacer las llamadas externas a los recursos externos a nombre de los servicios 94 y 98, pero que se hacen mediante la biblioteca 102. Los recursos externos pueden incluir recursos que son externos a los servicios 94 y 98 pero que residen en cada servidor 62, tal como una marca de tiempo del reloj del sistema operativo (no mostrado) y/o recursos que son externos a cada servidor 62 conjuntamente, tal como en el caso de un sistema de comercialización electrónica, una alimentación marcada (no mostrada) que mantiene la información actualizada de los precios de mercado de varios títulos que pueden ser el objeto de una orden de compra o una orden de venta que se coloca mediante el servicio 94 de colocación de orden. Aquellos con experiencia en la técnica ahora apreciarán que las llamadas por los servicios 94 y 98 a tales recursos externos contribuyen a la naturaleza no determinista del sistema 50. En el estado normal, solamente el agente 118-1 de recursos externo está activo, mientras el agente 118-2 de recursos externo está inactivo. La inactividad del agente 118-2 de recursos externo se representa en la Figura 2 por la codificación hash a través del óvalo que representa el agente 118-2 de recursos externo. Los servidores 62 cada uno también mantiene un recurso 122 compartido que mantiene los resultados de las etapas de procesamiento realizadas por los servicios 94 y 98 y/o mantiene los datos que pueden ser necesarios para ser accesibles mediante los servicios 94 y 98. Por ejemplo, en el sistema de comercialización electrónica de la presente modalidad, el recurso 122 compartido mantiene una libreta de órdenes, la cual simplemente es un conjunto de registros de órdenes colocadas por el servicio 94. De este modo, el servicio 94 de colocación de orden por ejemplo, puede crear un registro en el recurso 122 compartido de una orden de compra. Tal orden de compra puede necesitar ser accedida en un momento posterior por el servicio 98 de cancelación de orden para cancelar esa orden de compra e indica como tal en el recurso 122 compartido. De igual forma, la orden de compra puede necesitar ser accedida por un servicio de correlación (no mostrado) el cual también se ejecuta en los servidores 62 para correlacionar esa orden de compra, de acuerdo con las reglas de mercado, con una orden de venta correspondiente apropiada, y actualizar esa orden de compra y esa orden de venta para indicar que se ha efectuado una correlación y se llevará a cabo una comercialización. Los servidores 62 cada uno también mantiene un agente 126 de duplicación. En el estado normal, solamente el agente 126-2 de duplicación está activo, mientras el agente 126-1 de duplicación está inactivo. La inactividad del agente 126-1 de duplicación se representa en la Figura 2 por la codificación hash a través del óvalo que representa el agente 126-1 de duplicación. Como se explicará en mayor detalle en lo siguiente, un agente 126 de duplicación activo se comunica con la biblioteca 102 en el servidor 62 de contraparte para facilitar la réplica de información del servidor primario al servidor de reserva . Con referencia ahora a la Figura 3, un método para procesar solicitudes durante el estado normal de acuerdo con otra modalidad de la invención se indica generalmente en 300. Para ayudar en la explicación del método se asumirá que el método presente se opera utilizando sistema 50 en el estado normal mostrado en la Figura 2. Además, la siguiente discusión del método 300 conducirá a un entendimiento adicional del sistema 50 y sus diversos componentes. Para conveniencia solamente, sin embargo, varias etapas de proceso del método 300 se indican en la Figura 3 como presentándose dentro de ciertos componentes del sistema 50. Tales indicaciones no se interpretarán en un sentido limitante. Sin embargo, se entenderá que el sistema 50 y/o el método 300 puede ser variado, y no necesitan funcionar como discute en la presente con untamente entre sí, y las etapas del método 300 no necesitan realizarse en el orden como se muestra. Tales variaciones se encuentran dentro del alcance de la presente invención. Tales variaciones también aplican a otros métodos y diagramas de sistemas discutidos en la presente. Comenzando primero en la etapa 310, se recibe un mensaje de un cliente. El tipo de mensaje no se limita particularmente y es generalmente complementario a un tipo esperado de entrada para uno de los servicios que se ejecutan en los servidores. Cuando se realiza en el sistema 50, el mensaje puede ser de este modo una orden de compra o una orden de venta que se pretende como entrada para el servicio 94 de colocación de orden, o puede ser una orden de cancelación que se pretende como entrada para el servicio 98 de cancelación de orden. Por ejemplo, asumir que una orden para comprar se coloca en un mensaje de cliente 54-1 por el comerciante T-l y el mensaje se envía sobre la red 58 al servicio 94-1 de colocación de orden, donde, de acuerdo con la etapa 310, el mensaje es recibido por el servicio 94-1 de colocación de orden. Este rendimiento ejemplar de la etapa 310 se muestra en la Figura 4, como un mensaje M(Oi) se muestra como operando del cliente 54-1 y recibido en el servidor 62-1 en el servicio 94-1 de colocación de orden. La Tabla 1 muestra un formato ejemplar del mensaje de colocación de orden M(Oi) . Tabla I Mensaje MtO],) Número de Nombre de Campo Contenidos Campo Ejemplares 1 Comerciante Comerciante T-l 2 Nombre de Título ABC Co. 3 Tipo de Transacción Compra 4 Cantidad 1,000 unidades Más particularmente, el Campo 1 de la Tabla I, nombrado "Comerciante" identifica que el comerciante originador del mensaje M(Oi) es el Comerciante T-l. El Campo 2 de la Tabla I, nombrado "Nombre de Titulo" identifica el nombre del titulo específico que es el objeto de la comercialización - en este ejemplo, "ABC Co . " . El Campo 3 de la Tabla I, nombrado "Tipo de Transacción" identifica si la orden es para comprar, vender, etc., el título identificado en el Campo 2. En este ejemplo, el tipo de transacción es "Comprar", indicando que ésta es una orden para comprar. El Campo 4 de la Tabla 1, nombrado "Cantidad" identifica la cantidad deseada del título - en el presente ejemplo, la Cantidad es "1,000 unidades", indicando que la intención es Comprar 1,000 unidades de ABC Co . Aquellos con experiencia en la técnica reconocerán que la orden en la Tabla 1 es una orden de mercado, ya que el precio de la orden se basará en si el precio de mercado actual es para el Título en el Campo 2. Habiendo recibido el mensaje en la etapa 310, el método 300 avanza a la etapa 315 en la cual señalar el servicio relevante hará algunas llamadas para datos externos utilizados para procesar adicionalmente el mensaje. Continuando con el ejemplo, en la etapa 315, el servicio 94-1 de colocación de orden hará tales llamadas externas a la biblioteca 102-1 primaria. En este ejemplo, se asumirá que tales llamadas son para: i) una marca de tiempo para asignar a la orden en el mensaje ?(??) que identifica el tiempo en el cual se recibió la orden y, ii) un precio de mercado actual para el título identificado en la orden en el mensaje M(Oi) . El rendimiento de la etapa 315 se representa en la Figura 2 como una línea punteada que representa una llamada del servicio 94-1 de colocación de orden a la biblioteca 102-1 primaria se indica en 130. Después, en la etapa 320, la biblioteca 102-1 primaria hará las llamadas. La biblioteca 102-1 primaria consultará con el agente 114-1 de recuperación ante fallos y confirmará que el servidor 62-1 se designa como el servidor primario y que el sistema 50 está en el estado normal. Después de confirmarlo de esta forma, la biblioteca 102-1 primaria responderá a las llamadas hechas por el servicio 94-1 al: i) hacer una llamada externa al agente 118-1 de recursos externo para obtener una marca de tiempo; ii) hacer una llamada externa adicional al agente 118-1 de recursos externo para obtener el precio de mercado actual . De este modo, en la etapa 325, el agente 118-1 de recursos externo hará llamadas externas al reloj del sistema operativo (no mostrado) y la alimentación de mercado (no mostrada) para obtener una marca de tiempo y el precio de mercado actual, respectivamente. El rendimiento de las etapas 320 y 325 se representa en la Figura 6 como líneas punteadas que representan llamadas para una marca de tiempo mediante el agente 118-1 de recursos externo y un precio de mercado mediante el agente 118-1 de recursos externo se indican en 132 y 134, respectivamente. Aquellos con experiencia en la técnica ahora reconocerán que las llamadas 132 y 134 externas, en particular, convertirán al sistema 50 no determinista en naturaleza y por lo tanto presentarán retos únicos para proporcionar un sistema de recuperación ante fallos que, en el caso de una recuperación ante fallos dirija la naturaleza no determinista del sistema durante la recuperación de modo que la recuperación sea transparente para los comerciantes T. (Por medio de una explicación adicional, asumir que el sistema 50 fue alterado de modo que ambos servidores 62 hicieron llamadas externas para cada mensaje. Incluso, para cualquier mensaje dado M, la cantidad exacta cuando se hace una llamada para una marca de tiempo es crítica para asegurar la igualdad de mercado, y es muy improbable que ambos servidores 62 hagan una llamada para una marca de tiempo para el mismo mensaje en el mismo tiempo, y por lo tanto cada servidor 62 podría asignar una prioridad diferente de tiempo para el mismo mensaje M, resultando en resultados diferentes del mismo proceso de máquina. De igual forma, para cualquier mensaje dado M, el momento exacto cuando se hace una llamada para un precio de mercado también es crítico para asegurar igualdad de mercado, y es muy improbable que ambos servidores 62 hagan una llamada para un precio de mercado para el mismo mensaje en el mismo tiempo, y por lo tanto cada servidor 62 podría tener un diferente precio de mercado para el mismo mensaje M. Durante una recuperación ante fallos, cada servidor 62 puede no tener datos consistentes comerciales y la recuperación ante fallos puede ser irrelevante) . A partir de leer más, aquellos con experiencia en la técnica reconocerán cómo tales retos son dirigidos, así como reconocerán otros aspectos de la invención. En la etapa 330, los resultados de las llamadas 132 y 134 externas son devueltos a la biblioteca 102-1 primaria. En la etapa 335, los resultados de todas las llamadas 132 y 134 se almacenan en la memoria caché 110-1 y se devuelven al servicio 94-1. Continuando con el ejemplo, se asumirá que el resultado de la llamada 132 es la marca de tiempo 12:00PM, enero 5, 2000; y se asumirá que el resultado de la llamada 134 es el precio de mercado de $2.00. El almacenaje de estos resultados en la memoria caché 110-1 es representada en la Tabla II y la Figura 7. Tabla II Contenidos Ejemplares de la Memoria Caché 110-1 después de la Etapa 335 En la etapa 340, los resultados de la llamada se reciben por el servicio. Continuando con el presente ejemplo, los resultados de llamada almacenados en la Tabla II serán devueltos al servicio 94-1, el cual también se representa en la Figura 7. Después, en la etapa 345, el servicio hará una solicitud de recursos compartidos. En el presente ejemplo, la solicitud se hace por el servicio 94-1 a la biblioteca 102.1. A su vez, en la etapa 350, la biblioteca 102-1 emitirá una instrucción al recurso 122-1 compartido para "bloquearlo" y por consiguiente evitar que cualquier otro servicio (por ejemplo, el servicio 98-1, u otra cadena dentro del servicio 94-1), acceda al recurso 122-1 compartido. (Como se describirá en mayor detalle en lo siguiente, si los recursos 122-1 compartidos ya están bloqueados, entonces el método 300 hará una pausa en la etapa 345 hasta que los recursos 122-1 compartidos se desbloqueen) . El rendimiento de las etapas 345 y 350 se representan en la Figura 8 como una línea punteada que representa una solicitud de recursos compartidos indicada en 140. El bloqueo de los recursos 122-1 compartidos se representa por un candado 138. Después, en la etapa 355, un número de secuencia de recurso compartido se devuelve. Esa etapa puede ser realizada por la biblioteca 102-1 utilizando un secuenciador 106-1 para generar un número de secuencia asociado con el mensaje M(Oi) . Continuando con el ejemplo, se asumirá que un número de secuencia de "uno" se genera. El almacenaje de estos resultados en la memoria caché 110-1 se representa en la Tabla III y la Figura 8. Nótese que la Tabla III es una actualización de la Tabla II. Tabla III Contenidos Ejemplares de la Memoria Caché 110-1 después de la Etapa 355 Después, en la etapa 360, se solicita duplicación. tapa 360 en el presente ejemplo se realiza por servicio 94-1, la cual envía una instrucción a la biblioteca 102-1 para realizar la duplicación. En la etapa 365, la duplicación del mensaje, los resultados de la llamada y el número de secuencia se inician. En el presente ejemplo, los contenidos de la Tabla III se duplican por la biblioteca 102- 1. La etapa 365 se discutirá más adelante en lo siguiente. En la etapa 370, el mensaje se procesa utilizando los resultados de llamada y los recursos compartidos bloqueados. En el presente ejemplo, la etapa 370 se realiza por el servicio 94-1, el cual utiliza los contenidos de la Tabla III y realiza las etapas de procesamiento asociados con el servicio 94-1 para poder generar resultados de la Tabla III. Puesto que el servicio 94-1 es un servicio de colocación de orden, y el mensaje M(Oi) representa una orden de compra, entonces en la etapa 370 el servicio 94-1 generará una orden de compra que será registrada en el recurso 122-1 compartido para una correlación subsiguiente con una orden de venta contra una orden de venta de, por ejemplo, el comerciante T- 2, u otro procesamiento de comercialización tal como la cancelación de la orden utilizando servicio 98-1. Para propósitos del presente ejemplo, se asumirá que no existen órdenes en los recursos 122-1 compartidos contra las cuales el mensaje M(Oi) pueda correlacionarse, y de este los resultados de la etapa 370 serán para generar simplemente un registro completo de los detalles de la orden de compra asociada con el mensaje M(Oi) . La Tabla IV muestra resultados ejemplares del rendimiento de la etapa 370. Tabla IV Resultados Ejemplares del rendimiento de la etapa 370 Después, en la etapa 375, los resultados del rendimiento de la etapa 370 se escriben en los recursos compartidos, y después se desbloquean los recursos compartidos. La generación del Tabla IV por el servicio 94-1 en la etapa 370, y el almacenaje de estos resultados en los recursos 121-1 compartidos en la etapa 375 se representan en la Figura 9. Después, en la etapa 380, el servicio confirma que los resultados se han escrito en la etapa 375, y una confirmación que en la etapa 400 se ha realizado una duplicación. En el ejemplo actual, en la etapa 380, el servicio 94-1 esperará una confirmación de los recursos 122-1 compartidos que en la Tabla IV se escribió los recursos 122-1 compartidos. De igual forma, en la etapa 380, el servicio 94-1 esperará la confirmación, de la etapa 400, que la duplicación iniciada en la etapa 365 se ha completado. Las etapas 365 y 400 se explicarán en mayor detalle en lo siguiente. (En una modalidad alternativa, la etapa 380 no necesita realmente esperar la confirmación de la etapa 400 antes de proceder a la etapa 390. Sin embargo, la etapa 380 aún esperaría recibir eventualmente tal confirmación de la etapa 400, y si tal confirmación no estaba disponible, entonces la etapa 380 asumiría que el servidor 62-2 habría fallado, en cuyo caso el servidor 62-1 comenzaría a realizar el método 600 como se explica posteriormente. Aquellos con experiencia en la técnica ahora reconocerán que esto es un modo asincrónico de operación y puede preferirse en ciertas circunstancias donde se prefiere velocidad sobre la confirmación del estado del servidor 62-2) . Después, en la etapa 390, la confirmación se devuelve al cliente. En el ejemplo actual, en la etapa 390, el servicio 94-1 enviará un mensaje de confirmación al cliente 54-1 de que el mensaje M(Oi) se ha procesado como se solicitó por el comerciante T-l. Se reiterará que la etapa 390 del método 300 (es decir, la operación durante el estado normal) no se completa hasta que la etapa 380, la cual a su vez no se completa hasta que la duplicación iniciada en la etapa 365 se haya completado. Regresando ahora a la etapa 365, los números del mensaje, resultados de llamada y la secuencia de recursos compartidos se duplican. En el presente ejemplo, la etapa 365 se realiza por la biblioteca 102-1 en respuesta a la solicitud del servicio 94-1 en la etapa 360. De este modo, la biblioteca 102-1 manejará los contenidos de la Tabla III y los distribuirá al agente 126-2 de duplicación. El rendimiento de las Etapas 365, 370, 375, 395, 400 y 390 se representan en la Figura 10. (La Figura 10 se fundamenta en la representación del rendimiento de las etapas 370 y 375 en la Figura 9) . La etapa 365, la distribución de la Tabla III de la memoria caché 110-1 de la biblioteca 102-1 al agente 126-2 de duplicación se representa por la línea indicada en 142. Las etapas 370 y 375 se representan en la Figura 10 como se discute previamente con relación a la Figura 9. La etapa 395, el número de mensaje, los resultados de llamada y el número de secuencia de recursos compartidos se representan por el óvalo marcado en la Tabla III que aparece dentro de un agente 126-2 de duplicación. En la etapa 400, la devolución de confirmación de la duplicación del agente 126-2 de duplicación al servicio 94-1 (llevado a cabo mediante la biblioteca 102-1) , se representa por la línea indicada en 144. La etapa 390, la devolución de confirmación del servicio 94-1 al cliente 54-1, se representa por la línea punteada indicada en 146. Lo anterior sustancialmente completa la descripción del procesamiento de un mensaje por el servidor 62-1 primario durante la operación en el estado normal. Ahora se debe entender que el servidor 62-1 primario puede procesar múltiples mensajes, ya sea en serie y/o sustancialmente en paralelo de acuerdo con la descripción anterior de las etapas 310 a 400. Por ejemplo, mientras el servicio 94-1 está manejando un mensaje M, de igual forma el servicio 98-1 también puede estar procesando otro mensaje M sustancialmente como se describe en lo anterior, con la biblioteca 102-1 interactuando con ambos servicios 94-1, 98-1. Adicionalmente , mientras una cadena del servicio 94-1 está manejando un mensaje M. Otra cadena del servicio 94-1 también puede estar procesando otro mensaje M sustancialmente como se describe en lo anterior, con la biblioteca 102-1 interactuando con ambas cadenas del servicio. La etapa 350 asegura que los recursos 122-1 compartidos se bloqueen para evitar contención entre servicios 94-1 y 98-1 (o cadenas de los mismos) para asegurar que sólo uno de esos servicios puede interactuar con el recurso 122-1 compartido en un tiempo. (Nótese que "interactuar" puede incluir cualquier tipo de función, que incluya sin limitación lectura, escritura y borrado) . Como un ejemplo de contención que necesita ser evitado, el servicio 98-1 de cancelación de orden puede leerse y escribirse en el recurso 122-1 compartido mientras se bloquea para poder cancelar una orden dada, lo cual puede evitar que un servicio de correlación (no mostrado) concuerde con una orden que está siendo cancelada. De la misma manera, la etapa 355 utiliza el secuenciador 106-1 para generar un número de secuencia única para cada mensaje M, e independientemente de que el servicio 94-1 ó 98-1 (o cadena del mismo) está manejando el mensaje M. De este modo, pueden existir momentos cuando un servicio 94-1 ó 98-1 particular (o cadena del mismo) hace una solicitud de los recursos 122-1 compartidos en la etapa 345 mientras los recursos 122-1 compartidos son bloqueados, y por lo tanto ese servicio particular (o cadena del mismo) hará una pausa en la etapa 345 hasta que los recursos 122-1 compartidos se desbloqueen antes de continuar hacia delante de la etapa 345. Habiendo descrito el procesamiento de los mensajes por el servidor 62-1 primaria durante la operación en el estado normal, la discusión del método 300 ahora regresará al rendimiento de las etapas 405 y hacia delante y el procesamiento de los mensajes por el servicio 62-2 secundario . Con referencia nuevamente a la Figura 3, en la etapa 405, los mensajes, los resultados de llamada y los números de secuencia se despachan de acuerdo con el número de secuencia de recurso compartido. Continuando con el ejemplo anterior, en este punto, el mensaje M(Oi) (es decir, los contenidos del Campo 1 del Registro 1 de la Tabla III) se despacharán al servicio 94-2, mientras los resultados de llamada (es decir, los contenidos del campo 2 y 3 del Registro 1 de la Tabla III) y el número de secuencia (es decir, los contenidos del Campo 4 del Registro 1 de la Tabla III) se despacharán a la biblioteca 102-2 secundaria. De este modo, en la etapa 310S, el servicio 94-2 recibirá el mensaje M(Oi) del agente 126-2 de duplicación en la misma forma que, en la etapa 310, el servicio 94-1 recibió el mensaje M(Oi) del cliente 54-1. A partir de la perspectiva del servicio 94-2, el mensaje M(Oi) se ha recibido de un cliente. En este punto, ahora se volverá aparente que el servicio 94-2 es sustancialmente idéntico en todas las formas al servicio 94-1. (Igual que el servicio 98-2 es sustancialmente idéntico al servicio 98-1) . El servicio 94-2 operará en el servidor 62-2 sustancialmente en la misma forma que el servicio 94-1 opera en el servidor 62-1. En otras palabras, las etapas 310S, 315S, 340S, 345S, 360S, 370S, 380S y 390S se realizan por el servicio 94-2 de la misma forma que las etapas 310, 315, 340, 345, 360, 370, 380 y 390 se realizan por el servicio 94-1 en el servidor 62-1. Ni el servicio 94-1, ni el servicio 94-2 están concientes de si el servidor particular está operando dentro, se designan como el servidor primario o servidor de reserva. Esto presenta una de las muchas ventajas de la presente invención, ya que los servicios pueden desarrollarse una vez para dos (o más) servidores, sin tener que desarrollar un conjunto de servicios para un servidor designado como servidor primario y un conjunto de servicios para un servidor designado como servidor de reserva. Sin embargo, cada biblioteca 102, en consulta con su agente 90 de recuperación ante fallos respectivo y el registro 114 de estado, está conciente de si su servidor 62 respectivo se designa como servidor primario o como servidor de reserva. De este modo, cuando el servicio 94-2 realiza la etapa 315S y hace llamadas, la biblioteca 102-2 no utilizará el agente 118-2 de recursos externo pero, en la etapa 415, simplemente devolverá los resultados de llamada (es decir, los contenidos de los Campos 2 y 3 del Registro 1 de la Tabla III) que se recibieron por la biblioteca 102-2 en la etapa 410. El rendimiento de las etapas 405, 310S, 410 se representan en la Figura 11. El rendimiento de las etapas 315S, 415 y 340S se representan en la Figura 12. De la misma manera, cuando el servicio 94-2 realiza la etapa 345S y solicita recursos compartidos, la biblioteca 102-2 responderá en la etapa 420 al bloquear los recursos 122-2 compartidos, y en la etapa 425 al devolver el número de secuencia de recursos compartidos (es decir, los contenidos del Campo 4 del Registro 1 de la Tabla III) que se recibieron por la biblioteca 102-2 en la etapa 410 y sin utilizar el secuenciador 106-2. El rendimiento de las etapas 345S, 420, 425 se representan en la Figura 13. De la misma manera, cuando el servicio 94-2 se realiza en la etapa 360S y solicita duplicación, la biblioteca 102-2 responderá en la etapa 430 no sólo al realizar realmente la duplicación, sino al devolver una confirmación de duplicación al servicio 94-2 en la etapa 380S, especialmente imitando la etapa 400. Las etapas 370S y 435 de este modo se realizan sustancial e idénticamente a las etapas 370 y 375, respectivamente, de modo que todos los contenidos de la Tabla IV se generan independientemente por el servicio 94-2 y se almacenan dentro del recurso 122-2 compartido . El rendimiento de las etapas 370S y 435 se representan en la Figura 14. Similarmente , las etapas 380S y 390S se realizan de la misma forma que en la etapa 380 y las etapas 390, excepto que la confirmación de vuelta en la etapa 390S se devolvió al agente 126-2 de duplicación en lugar del cliente 54-1. En este punto, en la conclusión de este rendimiento del método 300, ahora se reconocerá que los resultados del mensaje de procesamiento M(Oi) ahora se almacenan en el recurso 122-1 compartido y el recurso 122-2 compartido como la Tabla IV. También se puede observar que la latencia actual entre el rendimiento de las etapas 310S, 315S, 340S, 345S, 360S, 370S, 380S, 390S y las etapas 310, 315, 340, 345, 360, 370, 380, 390 realmente es muy poca. Cualquier latencia puede determinarse por la latencia de red en la etapa 365 y el procesamiento de las etapas 395 y 405, la cual puede ser muy rápida. En cualquier caso, el sistema 50 puede configurarse de modo que la latencia al final es mucho más rápida que la información de respaldo de escritura en un disco duro, la cual aún es otra ventaja de la presente invención. De este modo, el método 300 puede utilizarse para procesar mensajes para colocar órdenes para comprar y vender títulos utilizando el servicio 94-1 (y como se imita por el servicio 94-2) . De igual forma, el método 300 puede utilizarse para cancelar esas órdenes utilizando el servicio 98-1 (como se imita por 98-2) . Servicios adicionales pueden crearse e incluirse en el servidor 62-1 y pueden colocarse fácilmente en el servidor 62-2 para proporcionar una recuperación ante fallos fuerte para esos servicios, pero sin requerir un conjunto de códigos para el servicio en el servidor 62-1 mientras se requiere otro conjunto de códigos para el servicio en el servidor 62-2 - un conjunto de códigos para un servicio particular es todo lo que se necesita para ambos servidores. Tal vez en forma más importante, a partir de ciertas perspectivas, es que el sistema 50 puede garantizar sustancialmente los resultados en el caso de una recuperación ante fallos, sin la pérdida de velocidad que normalmente acompaña la escritura en un disco duro. Puesto que en el estado normal, el servidor 62-2 mantiene un espejo actualizado del procesamiento realizado en el servidor 62-1, una falla del servidor 62-1 puede recuperarse rápidamente al hacer que el servidor 62-2 asuma las tareas de procesamiento del servidor 62-1 donde el servidor 62-1 se quedó fuera. La Figura 15 muestra un diagrama de flujo que representa un método 500 para manejar un par de servidores donde uno de los servidores se designa como servidor primario mientras el otro servidor se designa como servidor de reserva. Cuando se implementa utilizar el sistema 50, en la etapa 505, se determina si ambos servidores se encuentran disponibles. La etapa 505 se implementa con el uso de los agentes 90 de recuperación ante fallos y los registros 114 de estado. Si es sí, entonces la etapa 505 avanza a la etapa 510 donde el sistema 50 opera en el estado normal como se describe previamente con relación al método 300. La etapa 505 y la etapa 510 continúan ciclando a menos que se determine que ambos servidores no están disponibles en cuyo caso el método avanza a la etapa 520. En la etapa 520, se determina si sólo el primer servidor se encuentra disponible. Por ejemplo, si el agente 90-1 de recuperación ante fallos no puede establecer una conexión, por cualquier razón, con el agente 90-2 de recuperación ante fallos, entonces se determina en la etapa 520 que sólo el primer servidor está disponible y el método 500 avanzará en la etapa 530 en cuyo punto el sistema 500 operará en el estado sólo primario. Posibles razones para que el agente 90-1 de recuperación ante fallos sea incapaz de establecer una conexión con el agente 90-2 de recuperación ante fallos incluyen, pero no se limitan a, el servidor 62-2 experimenta una caída fatal o el corte del enlace 78. Si el primer servidor no está disponible, entonces el método 500 avanza de la etapa 520 a la etapa 540 donde se determina si sólo el segundo servidor está disponible. Si no es así, entonces el método 500 finaliza con una excepción. Sin embargo, si se determina que el segundo servidor está disponible, entonces el método 500 avanza de la etapa 540 a la etapa 550. En la etapa 550, el sistema 50 se recupera ante fallos de modo que el procesamiento adicional se realiza por el segundo servidor. Después, en la etapa 560, la operación continúa como se hace el procesamiento adicional en el estado de sólo secundario. El método 500 entonces cicla entre la etapa 560 y 570 hasta que ambos servidores se vuelven disponibles nuevamente, en cuyo punto el método 500 avanza a la etapa 510 y el sistema 50 se regresa al estado normal. La Figura 16 muestra un ejemplo del sistema 50 en el estado sólo primario, por el cual el servidor 62-1 se designa como el servidor primario pero el servidor 62-2 está fuera de linea (o de otra forma no está disponible debido a falla del enlace 78) . En la Figura 16, puesto que el servidor 62-1 está operando en el estado sólo primario, el registro 114-1 de estado indicará que el servidor 62-1 actualmente se designa como el servidor primario y opera en el estado sólo primario . La Figura 17 muestra un ejemplo del sistema 50 en el estado de sólo secundario, por el cual el servidor 62-2 se designa como el servidor primario pero el servidor 62-1 está fuera de línea. En la Figura 17, puesto que el servidor 62-2 está operando en el estado sólo primario, el registro 114-2 de estado indicará que el servidor 62-2 actualmente se designa como el servidor primario y opera en el estado sólo primario . Aunque no se muestra, observe que el sistema 50 podría ser configurado también para ser del estado normal por el cual el servidor 62-2 se designa como el servidor primario mientras el servidor 62-1 se designa como el servidor de reserva . La Figura 18 muestra un diagrama de flujo que representa un método 600 para procesar mensajes cuando sólo uno de los servidores 62 se encuentra disponible. El método 600 puede realizarse por el servidor 62-1 en la etapa 530 del método 500, o puede realizarse por el servidor 62-2 en la etapa 560 del método 500. Aquellos con experiencia en la técnica ahora apreciarán que el método 600 sustancialmente refleja la operación del servidor primario en el método 300. Más particularmente, puede observarse que las etapas 310-360 y las etapas 370-390 del método 300 corresponden a las contrapartes en el método 600 que llevan los mismos números pero son seguidos por el sufijo "F" . Sin embargo, la etapa 365F del método 600 es diferente de la etapa 365 del método 300. La etapa 365F corresponde a la etapa 430 del método 300, como en la etapa 365F la biblioteca 102 responderá a la solicitud de duplicación de servicio 94 (ó 98) al imitar simplemente la confirmación de que se ha logrado la duplicación, de modo que el servicio 94 (ó 98) recibirá la confirmación en la etapa 380F y permite al método 600 avanzar a la etapa 390F. La Figura 19 muestra un diagrama de flujo que representa un método 700 para recuperación ante fallos de un servidor primario a un servidor de reserva que puede utilizarse para implementar la etapa 550 del método 500. El método 700 podría realizarse, por ejemplo, por el servidor 62-2 si el agente 114-2 de recuperación ante fallos descubrió que el servidor 62-1 había fallado (por ejemplo, cayó o por cualquier razón ya no estaba disponible) . Puesto que los clientes 54 ya se están comunicando con el servidor 62-1, los clientes 54 continuarán interactuando con el servidor 62-1, a pesar del hecho que el servidor 62-2 asumirá que el servidor 62-1 ha fallado y que el servidor 62-2 asumirá que es el servidor primario. En ese evento, el método 700 puede comenzar en la etapa 710 en cuyo punto la cola del agente de duplicación puede encontrarse despejada. En los ejemplos descritos en lo anterior, el servidor 62-2 puede continuar procesando todos los datos almacenados en el agente 126-2 de duplicación de acuerdo con la etapa 405 (y las etapas 310S, 315S, 340S, 345S, 360S, 370S, 380S, 390S, 410, 415, 420, 425, 430 y 435 subsecuentes) para poder limpiar y duplicar el procesamiento de todos los mensajes (y las llamadas externas asociadas) que se estaban procesando en el servidor 62-1 antes de que el servidor 62-1 fallara. En el caso en que el servidor 62-1 falle en la etapa 370, el servidor 62-2 puede recibir un mensaje duplicado del cliente que ejecuta un protocolo de recuperación, tal como una recuperación de espacios, o como otro ejemplo, el tipo de recuperación descrito en la solicitud co-pendiente del solicitante como se describe en la Solicitud Publicada Norteamericana US20050138461. Puesto que el cliente jamás recibirá la confirmación del servidor 62-1 de que el mensaje se procesó. En este caso, el servidor 62-2 se configura para reconocer mensajes duplicados y simplemente devolver la misma respuesta, sin intentar reprocesar el mismo mensaje.
Después, en la etapa 720, el agente de duplicación puede ser desactivado. En el presente ejemplo, el agente 126-2 de duplicación puede desactivarse, de modo que ya no pueda mantener una cola de datos recibida en el servidor 62-1, o pueda configurarse para enviar mensajes a los servicios 94-2 y 98-2. En la etapa 730, el agente de recursos externo y el secuenciador pueden activarse. En el presente ejemplo, el agente 118-2 de recursos externo puede volverse activo de modo que pueda configurarse para realizar las llamadas de función externa mostradas en las etapas 325F y las etapas 330F del método 600. De igual forma, la secuencia 106-2 para que pueda ser configurada para asignar números de secuencia mostrados en la etapa 355F del método 600. Después, en la etapa 740, el agente de recuperación ante fallos se establece para indicar el estado sólo primario. En el ejemplo, el agente 114-2 de recuperación ante fallos se establece para indicar el estado sólo primario de modo que la biblioteca 102-2 sabe operar de acuerdo con las etapas 320F, 335F, 350F, 355F y 365F de método 600. Después, en la etapa 720, la presencia del servidor se anuncia a los clientes. En el presente ejemplo, el servidor 62-2 anunciará a los clientes 54 sobre la red 58 que el servidor 62-2 está listo para aceptar y procesar los mensajes de los clientes 54. La forma en la cual esto se hace no se limita particularmente, y sustancialmente , puede ser la misma forma en la cual el servidor 62-1 se puede haber anunciado a los clientes 54 antes del comienzo del método 300. El protocolo de sesión puede realizar una recuperación de espacios de modo que los lados respectivos puedan reenviar comunicaciones que la contraparte no pudo haber recibido. En este punto, el sistema 50 está en el listado mostrado en la Figura 17, donde el servidor 62-2 ahora se designa como el servidor primario, y el sistema 50 está listo para operar en el estado sólo primario con el servidor 62-2 como el servidor primario. En este punto, el método puede regresar a la etapa 560 del método 500, por la cual, los mensajes de los clientes se reciben y procesan de acuerdo con el método 600. Mientras sólo combinaciones específicas de las diversas características y componentes de la presente invención se han discutido en la presente, será aparente para aquellos de experiencia en la técnica que los subconjuntos deseados de las características y componentes descritos y/o combinaciones alternativas de esas características y componentes pueden utilizarse, como se desee. Por ejemplo, mientras el sistema 50 incluye dos servidores 62-1 y 62-2, se contempla que cualquier número de servidores puede utilizarse. Un servidor puede designarse como servidor primario, mientras cualquier número de servidores adicionales puede designarse como servidores de reserva y unirse juntos, ya sea en serie o en paralelo, utilizando enseñanzas adecuadamente modificadas en la presente. Tales servidores adicionales pueden tener sustancialmente el mismo ambiente de cómputo y estructura que los servidores 62 discutidos en la presente, y en cualquier caso, pueden tener servicios idénticos que interactúen con bibliotecas y otros elementos de software para realizar llamadas externas (en el caso de un servidor primario) a nombre de esos servicios, o para proporcionar duplicaciones de esas llamadas externas (en el caso de servidores de reserva) a nombre de las copias imitadas de esos servicios. También se debe entender que el método 300 puede ser variado. Por ejemplo, el método 300 podría configurarse para operar completa y sincrónicamente, mediante lo cual el servidor primario sólo confirmará al cliente que un mensaje se ha procesado con la condición de que los recursos compartidos primario y secundario se hayan escrito con los resultados del procesamiento hecho por un servicio particular. Esto puede implementarse al cambiar el método 300 de modo que la etapa 400 sólo se realice una vez que se realice la etapa 380S.

Claims (24)

  1. REIVINDICACIONES 1. Un sistema de paso a unidad sustitutoria o para recuperación ante fallos caracterizado porque comprende: por lo menos un cliente que se puede conectar 5 selectivamente a uno de por lo menos dos servidores interconectados mediante una conexión de red, uno de los servidores se designa como servidor primario cuando se conecta al cliente y el resto de los servidores se designa como servidor de reserva cuando no se conecta al cliente; por 10 lo menos un cliente configurado para enviar un mensaje al servidor primario; cada uno de los servidores configurado para procesar todos los mensajes mediante una pluralidad de servicios que procesan diferentes tipos de mensajes; cada 15 uno de los servicios configurado para acceder y/o actualizar un recurso compartido mantenido por cada uno de los servidores basándose en los resultados de procesar los mensaj es ; cada uno de los servidores mantiene una biblioteca 20 asociada con los servicios; la biblioteca configurada, cuando se mantiene por el servidor primario, para responder a una solicitud de un servicio correspondiente al: i) realizar por lo menos una llamada externa a un 25 recurso externo; ii) secuenciar cada mensaje basándose en una solicitud de un servicio correspondiente al mensaje; iii) devolver resultados de la llamada externa y la secuencia al servicio correspondiente al mensaje; y iv) almacenar los resultados de la llamada externa y la secuencia en una memoria caché compartida por lo servicios; y el servidor primario y el servidor de reserva se conectan de modo que : i) los mensajes de por lo menos un cliente se reciban en el servidor primario; y ii) los resultados guardados en memoria caché de la llamada externa; se reflejen en el servidor de reserva; la biblioteca configurada, cuando se mantiene por el servidor de reserva, para responder a una solicitud de un servicio correspondiente al mensaje al: i) devolver los resultados de la llamada externa utilizando contenidos de los resultados guardados en memoria caché reflejados del servidor primario; el servidor de reserva utiliza la memoria caché para procesar los mensajes en la misma secuencia que el servidor primario de modo que el recurso compartido es sustancialmente idéntico en el servidor primario y el servidor de reserva y de modo que si el servidor primario falla, el servidor de reserva se designa como el servidor primario y continúa procesando los mensajes adicionales a nombre de los clientes en una forma sustancialmente transparente .
  2. 2. El sistema de conformidad con la reivindicación 1, caracterizado porque la memoria caché se mantiene en una memoria volátil.
  3. 3. El sistema de conformidad con la reivindicación 1, caracterizado porque el sistema es parte de un sistema de comercialización electrónica y e servicio es parte de un motor de comercialización; el sistema incluye dos clientes adicionales cada uno presentando dos mensajes adicionales al servidor primario; cada uno de los mensajes adicionales se procesa en sustancialmente la misma forma que el mensaje.
  4. 4. El sistema de conformidad con la reivindicación 3, caracterizado porque uno de los mensajes representa una orden de compra y los dos mensajes adicionales recibidos se reciben en diferentes momentos aunque casi idénticos; los dos mensajes adicionales representan una orden de venta que cumple con los términos de la orden de compra de modo que si el servidor primario falla, el servidor de reserva continúa procesando los mensajes de modo que una previa de las órdenes de venta se correlaciona con la orden de compra.
  5. 5. El sistema de conformidad con la reivindicación 4, caracterizado porque el recurso externo es una marca de tiempo del sistema operativo y una alimentación de mercado.
  6. 6. El sistema de conformidad con la reivindicación 1, caracterizado porque el recurso externo es una marca de tiempo del sistema operativo.
  7. 7. Un sistema para recuperación ante fallos caracterizado porque comprende: por lo menos un cliente que se puede conectar selectivamente a uno de por lo menos dos servidores interconectados mediante una conexión de red; uno de los servidores se designa como servidor primario cuando se conecta al cliente y el resto de los servidores se designa como servidor de reserva cuando no se conecta al cliente; por lo menos un cliente configurado para enviar mensajes al servidor primario; los servidores configurado para procesar los mensajes utilizando múltiples cadenas a nombre del cliente y para mantener un recurso compartido accesible a cada cadena utilizada junto con procesador de mensajes; el servidor primario configurado para procesar los mensajes al realizar por lo menos una llamada de función externa a un recurso externo correspondiente a uno o más de los mensajes; el servidor primario configurado para imitar: i) los mensajes; ii) los resultados de la llamada de función externa asociados con los mensajes; y iii) una secuencia para procesar los mensajes; al servidor de reserva, el servidor de reserva configurado para procesar los mensajes utilizando los resultados de la llamada de función externa imitados recibidos del servidor primario de acuerdo con la secuencia, de modo que durante el procesamiento de los mensajes por cada uno de los servidores, el recurso compartido es sustancialmente idéntico tanto en el servidor primario como en el servidor de reserva.
  8. 8. Un sistema para recuperación ante fallos caracterizado porque comprende: por lo menos un cliente que se puede conectar selectivamente a uno de por lo menos dos servidores interconectados mediante una conexión de red; uno de los servidores se designa como servidor primario cuando se conecta al cliente y el resto de los servidores se designa como servidor de reserva cuando no se conecta al cliente; por lo menos un cliente configurado para enviar mensajes al servidor primario; los servidores configurados para procesar los mensajes utilizando por lo menos uno de un servicio que es idéntico en cada uno de los servidores y se desconoce si un servidor correspondiente del servicio está operando como el servidor primario o el servidor de reserva; los servidores además configurados para mantener una biblioteca que indica si el servidor es el servidor primario o el servidor es el servidor de reserva; los servicios dentro de cada servidor configurados para realizar por lo menos una llamada externa mediante su biblioteca respectiva; la biblioteca en el servidor primario configurada para completar las llamadas externas y devolver los resultados de las llamadas externas al servicio en el servidor primario y para reenviar los resultados de las llamadas externas a la biblioteca en el servidor de reserva; la biblioteca en el servidor de reserva configurada para devolver los resultados de la llamada externa al servicio en el servidor de reserva; el servicio en el servidor primario y el servicio en el servidor de reserva además configurados para procesar cada mensaje utilizando resultados de la llamada externa.
  9. 9. El sistema de conformidad con la reivindicación 8, caracterizado porque la biblioteca se implementa como uno o más conjuntos distintos de código útil.
  10. 10. El sistema de conformidad con la reivindicación 8, caracterizado porque los servidores se configuran cada uno para mantener un recurso compartido donde los servicios pueden almacenar resultados de procesar los mensajes.
  11. 11. El sistema de conformidad con la reivindicación 10, caracterizado porque el recurso compartido se mantiene en memoria de acceso aleatorio de un servidor respectivo.
  12. 12. El sistema de conformidad con la reivindicación 8, caracterizado porque la llamada externa es una solicitud de marca de tiempo.
  13. 13. El sistema de conformidad con la reivindicación 8, caracterizado porque el sistema es parte de un sistema de comercialización electrónica y el mensaje es una orden para comprar o vender un titulo; y la llamada externa es una solicitud de cotización de alimentación de mercado para un valor del título.
  14. 14. El sistema de conformidad con la reivindicación 8, caracterizado porque por lo menos un servicio incluye uno de un servicio de colocación de orden; un servicio de cancelación de orden; un servicio de cambio de orden; un servicio de correlación de orden; un servicio para entrar a una comercialización previamente ejecutada; o un servicio para entrar una comercialización cruzada.
  15. 15. El sistema de conformidad con la reivindicación 10, caracterizado porque el servicio en el servidor primario se configura para confirmar al cliente que el mensaje ha sido procesado sólo si el servidor de reserva confirma que los resultados de las llamadas externas se reenviaron exitosamente al servidor de reserva.
  16. 16. El sistema de conformidad con la reivindicación 10, caracterizado porque el servicio en el servidor primario se configura para confirmar al cliente que el mensaje se ha procesado independientemente de si el servidor de reserva confirma que los resultados de las llamadas externas se reenviaron exitosamente al servidor de reserva.
  17. 17. El sistema de conformidad con la reivindicación 16, caracterizado porque el servidor primario estimará que el servidor de reserva ha fallado si el servidor de reserva no confirma que los resultados de las llamadas externas se reenviaron exitosamente al servidor de reserva dentro de un periodo de tiempo predefinido.
  18. 18. Un método de paso a unidad sustitutoria o para recuperación ante fallos en un sistema, caracterizado porque comprende : por lo menos un cliente que se puede conectar selectivamente a uno de por lo menos dos servidores interconectados mediante una conexión de red; uno de los servidores se designa como servidor primario cuando se conecta al cliente y el resto de los servidores se designa como servidor de reserva cuando no se conecta al cliente,- por lo menos un cliente configurado para enviar mensajes al servidor primario; el método comprende: configurar los servicios para mantener una biblioteca que indica si el servidor es el servidor primario o el servidor es el servidor de reserva; configurar los servicios para realizar llamadas externas mediante su biblioteca respectiva; y configurar la biblioteca en el servidor primario para completar las llamadas externas y devolver los resultados de las llamadas externas a un servicio en el servidor primario y para reenviar los resultados de las llamadas externas a la biblioteca en el servidor de reserva; configurar la biblioteca en el servidor de reserva para reenviar resultados de las llamadas externas a un servicio en el servidor de reserva; configurar el servicio en el servidor primario para procesar los mensajes utilizando los resultados de las llamadas externas proporcionadas por la biblioteca en el servidor primario; configurar el servicio en el servidor de reserva para procesar los mensajes utilizando los resultados de las llamadas externas proporcionados por la biblioteca en el servidor de reserva; cada uno de los servicios es sustancialmente idéntico en cada uno de los servidores; cada uno de los servicios desconoce si el servidor correspondiente al servicio está operando como el servidor primario o el servidor de reserva.
  19. 19. Un medio que se puede leer por computadora que almacena un conjunto de instrucciones de programación que se pueden ejecutar en por lo menos uno de dos servidores interconectados mediante una conexión de red que se puede conectar selectivamente por lo menos a un cliente; uno de los servidores se designa como un servidor primario cuando se conecta al cliente y el resto de los servidores se designa como servidor de reserva cuando no se conectan al cliente; por lo menos un cliente configurado para enviar mensajes al servidor primario; las instrucciones de programación caracterizadas porque comprenden: instrucciones para configurar los servidores para mantener una biblioteca que indica si el servidor es el servidor primario o el servidor es el servidor de reserva; instrucciones para configurar los servicios para realizar llamadas externas mediante su biblioteca respectiva; instrucciones para configurar la biblioteca en el servidor primario para completar las llamadas externas y devolver los resultados de las llamadas externas a un servicio en el servidor primario y para reenviar los resultados de las llamadas externas a la biblioteca en el servidor de reserva; instrucciones para configurar la biblioteca en el servidor de reserva para reenviar resultados de las llamadas externas a un servicio en el servidor de reserva; instrucciones para configurar el servicio en el servidor primario para procesar los mensajes utilizando los resultados de las llamadas externas proporcionadas por la biblioteca en el servidor primario; instrucciones para configurar el servicio en el servidor de reserva para procesar los mensajes utilizando los resultados de las llamadas externas proporcionados por la biblioteca en el servidor de reserva; instrucciones que configuran cada uno de los servicios para ser sustancialmente idénticos en cada uno de los servidores y configurar cada uno de los servicios para desconocer si el servidor correspondiente del servicio está operando como el servidor primario o el servidor de reserva.
  20. 20. Un sistema para recuperación ante fallos caracterizado porque comprende: un servidor primario y por lo menos un servidor de reserva ; el servidor primario configurado para: determinar una pluralidad de entradas de procesamiento ; reenviar las entradas de procesamiento al servidor de reserva antes de procesar el servidor primario que procesa las entradas .
  21. 21. El sistema de conformidad con la reivindicación 20, caracterizado porque las entradas de procesamiento comprenden entradas que garantizan el procesamiento determinista de las entradas por ambos servidores.
  22. 22. El sistema de conformidad con la reivindicación 20, caracterizado porque las entradas de procesamiento comprenden los resultados de llamada en un recurso externo.
  23. 23. El sistema de conformidad con la reivindicación 20, caracterizado porque las entradas de procesamiento además comprenden un recurso compartido.
  24. 24. El sistema de conformidad con la reivindicación 20, caracterizado porque las entradas de procesamiento además comprenden un número de secuencia generado por el servidor primario . RESUMEN Un aspecto de la presente invención proporciona un sistema para paso a unidad sustitutoria que comprende por lo menos un cliente que puede conectarse de manera selectiva a uno de por lo menos dos servidores interconectados a través de una conexión de redes. En estado normal, se designa un servidor primario a uno de los servidores al conectarse con el cliente y el resto de los servidores están designados como servidores de reserva cuando no se conecten con el cliente. Por lo menos un cliente está configurado para enviar mensajes al servidor primario. Los servidores están configurados para procesar los mensajes utilizando por lo menos un servicio que es idéntico en cada uno de los servidores. Los servicios se desconocen si un servidor con respecto al servicio está operando como el servidor primario o el servidor de reserva. Los servidores además se configuran para mantener una biblioteca o similares, que indiquen si el servidor es el servidor primario o si el servidor es el servidor de reserva. Los servicios dentro de cada servidor hacen llamadas externas a través de su respectiva biblioteca. La biblioteca en el servidor primario se configura para completar las llamadas externas y regresar resultados de las llamadas externas al servicio en el servidor primario y enviar resultados de las llamadas externas al servicio en el servidor de reserva. La biblioteca en el servidor secundario no hace llamadas externas sino simplemente envía los resultados de la llamadas externas, como recibidos desde el servidor primario hasta el servicio en el servidor secundario cuando así se 1 solicite por el servicio en el servidor secundario.
MX2009001241A 2006-08-04 2007-02-19 Sistema y metodo de paso a unidad sustitutoria. MX2009001241A (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/498,802 US7725764B2 (en) 2006-08-04 2006-08-04 Failover system and method
PCT/CA2007/000246 WO2008014585A1 (en) 2006-08-04 2007-02-19 Failover system and method

Publications (1)

Publication Number Publication Date
MX2009001241A true MX2009001241A (es) 2009-03-26

Family

ID=38996808

Family Applications (1)

Application Number Title Priority Date Filing Date
MX2009001241A MX2009001241A (es) 2006-08-04 2007-02-19 Sistema y metodo de paso a unidad sustitutoria.

Country Status (8)

Country Link
US (4) US7725764B2 (es)
EP (3) EP2479670A3 (es)
JP (3) JP5355400B2 (es)
CN (2) CN101523355B (es)
AU (1) AU2007281055B2 (es)
CA (2) CA2923373A1 (es)
MX (1) MX2009001241A (es)
WO (1) WO2008014585A1 (es)

Families Citing this family (97)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7113980B2 (en) * 2001-09-06 2006-09-26 Bea Systems, Inc. Exactly once JMS communication
US7870265B2 (en) 2005-06-30 2011-01-11 Oracle International Corporation System and method for managing communications sessions in a network
US9141481B1 (en) * 2010-08-06 2015-09-22 Open Invention Network, Llc System and method for reliable non-blocking messaging for multi-process application replication
US8584145B1 (en) 2010-08-06 2013-11-12 Open Invention Network, Llc System and method for dynamic transparent consistent application-replication of multi-process multi-threaded applications
US8589953B1 (en) * 2010-08-06 2013-11-19 Open Invention Network, Llc System and method for transparent consistent application-replication of multi-process multi-threaded applications
US8621275B1 (en) 2010-08-06 2013-12-31 Open Invention Network, Llc System and method for event-driven live migration of multi-process applications
CN101346634B (zh) 2005-11-04 2012-10-24 甲骨文国际公司 用于通信网络中的网守的系统和方法
US8171466B2 (en) 2006-05-16 2012-05-01 Oracle International Corporation Hitless application upgrade for SIP server architecture
US8001250B2 (en) 2006-05-16 2011-08-16 Oracle International Corporation SIP and HTTP convergence in network computing environments
US8219697B2 (en) * 2006-05-17 2012-07-10 Oracle International Corporation Diameter protocol and SH interface support for SIP server architecture
US7725764B2 (en) * 2006-08-04 2010-05-25 Tsx Inc. Failover system and method
US7480827B2 (en) 2006-08-11 2009-01-20 Chicago Mercantile Exchange Fault tolerance and failover using active copy-cat
US7434096B2 (en) * 2006-08-11 2008-10-07 Chicago Mercantile Exchange Match server for a financial exchange having fault tolerant operation
US8041985B2 (en) 2006-08-11 2011-10-18 Chicago Mercantile Exchange, Inc. Match server for a financial exchange having fault tolerant operation
US7661027B2 (en) * 2006-10-10 2010-02-09 Bea Systems, Inc. SIP server architecture fault tolerance and failover
US20080086567A1 (en) * 2006-10-10 2008-04-10 Bea Systems, Inc. SIP server architecture for improving latency in message processing
US8078737B2 (en) * 2006-12-13 2011-12-13 Oracle International Corporation System and method for efficient storage of long-lived session state in a SIP server
US9667430B2 (en) * 2006-12-13 2017-05-30 Oracle International Corporation System and method for a SIP server with offline charging
US20080147551A1 (en) * 2006-12-13 2008-06-19 Bea Systems, Inc. System and Method for a SIP Server with Online Charging
US7844851B2 (en) * 2006-12-13 2010-11-30 Oracle International Corporation System and method for protecting against failure through geo-redundancy in a SIP server
US8195340B1 (en) * 2006-12-18 2012-06-05 Sprint Communications Company L.P. Data center emergency power management
GB0706494D0 (en) * 2007-04-03 2007-05-09 British Telecomm Computer telephony system
US7685044B1 (en) * 2007-05-11 2010-03-23 Morgan Stanley Low latency trading system
CA2630014C (en) * 2007-05-18 2014-05-27 Nec Infrontia Corporation Main device redundancy configuration and main device replacing method
US8201016B2 (en) * 2007-06-28 2012-06-12 Alcatel Lucent Heartbeat distribution that facilitates recovery in the event of a server failure during a user dialog
CN101483495B (zh) * 2008-03-20 2012-02-15 华为技术有限公司 一种背景噪声生成方法以及噪声处理装置
US20100017321A1 (en) * 2008-07-18 2010-01-21 Chicago Mercantile Exchange, Inc. Adaptive Implied Spread Matching
US20100070471A1 (en) * 2008-09-17 2010-03-18 Rohati Systems, Inc. Transactional application events
EP2395713A4 (en) * 2009-02-09 2014-12-31 Nec Corp COMMUNICATION SYSTEM, COMMUNICATION DEVICE, CONTROL DEVICE, CONTROL METHOD, AND PROGRAM
US8682954B2 (en) * 2009-07-15 2014-03-25 International Business Machines Corporation Replication in a network environment
JP5418070B2 (ja) * 2009-08-27 2014-02-19 富士通株式会社 業務操作支援方法及びコンピュータ装置
US8074107B2 (en) 2009-10-26 2011-12-06 Amazon Technologies, Inc. Failover and recovery for replicated data instances
US8676753B2 (en) 2009-10-26 2014-03-18 Amazon Technologies, Inc. Monitoring of replicated data instances
US8335765B2 (en) * 2009-10-26 2012-12-18 Amazon Technologies, Inc. Provisioning and managing replicated data instances
US10572937B2 (en) 2010-06-17 2020-02-25 Chicago Mercantile Exchange Inc. Generating implied orders based on electronic requests for quotes
JP5441834B2 (ja) * 2010-06-25 2014-03-12 古野電気株式会社 航法データ共有システム及び航法機器
US8578202B2 (en) * 2010-07-29 2013-11-05 Ca, Inc. System and method for providing high availability for distributed application
JP5481315B2 (ja) * 2010-08-20 2014-04-23 株式会社東芝 証券売買システム及び装置
US9002946B2 (en) * 2010-08-25 2015-04-07 Autodesk, Inc. Dual modeling environment in which commands are executed concurrently and independently on both a light weight version of a proxy module on a client and a precise version of the proxy module on a server
US8589732B2 (en) 2010-10-25 2013-11-19 Microsoft Corporation Consistent messaging with replication
KR101413298B1 (ko) 2010-11-04 2014-06-27 한국전자통신연구원 단편적 정보를 이용하여 메타 데이터를 복구하기 위한 장치, 시스템 및 그 방법
CA2745823C (en) * 2010-11-23 2014-06-17 Mitel Networks Corporation Fast detection and reliable recovery on link and server failures in a dual link telephony server architecture
US8451828B2 (en) 2010-11-23 2013-05-28 Mitel Network Corporation Registering an internet protocol phone in a dual-link architecture
US8345840B2 (en) 2010-11-23 2013-01-01 Mitel Networks Corporation Fast detection and reliable recovery on link and server failures in a dual link telephony server architecture
US8850261B2 (en) * 2011-06-01 2014-09-30 Microsoft Corporation Replaying jobs at a secondary location of a service
US10585766B2 (en) 2011-06-06 2020-03-10 Microsoft Technology Licensing, Llc Automatic configuration of a recovery service
JP2013025365A (ja) * 2011-07-15 2013-02-04 Nec Corp 二重化システムにおける予備装置の障害通知方法
CN102891762B (zh) * 2011-07-20 2016-05-04 赛恩倍吉科技顾问(深圳)有限公司 连续处理网络数据的系统及方法
US8745157B2 (en) 2011-09-02 2014-06-03 Trading Technologies International, Inc. Order feed message stream integrity
CN102541498B (zh) * 2011-12-20 2015-02-25 人民网股份有限公司 一种通过移动终端在pc服务器上显示图片的方法及系统
CN103176516B (zh) * 2011-12-23 2016-07-06 英业达股份有限公司 机柜系统及机柜系统的监控方法
JP6026142B2 (ja) * 2012-06-04 2016-11-16 株式会社日立製作所 複数計算機が独立動作する制御システム
US8862642B1 (en) * 2012-06-29 2014-10-14 Emc Corporation Endurant cache
US9058326B1 (en) 2012-06-29 2015-06-16 Emc Corporation Recovery and flush of endurant cache
EP4191431A1 (en) * 2013-03-12 2023-06-07 Toshiba Solutions Corporation Database system, program, and data processing method
WO2014197975A1 (en) * 2013-06-13 2014-12-18 Tsx Inc. Apparatus and method for failover of device interconnect using remote memory access with segmented queue
CN105393519A (zh) * 2013-06-13 2016-03-09 多伦多证券交易所 故障切换系统及方法
US10664548B2 (en) 2013-07-12 2020-05-26 Trading Technologies International, Inc. Tailored messaging
US9280426B2 (en) * 2013-07-24 2016-03-08 Solar Turbines Incorporated System and method for server redundancy
JP6307858B2 (ja) * 2013-11-29 2018-04-11 富士通株式会社 伝送装置、伝送システム、及び監視制御方法
CN103942127B (zh) * 2014-02-21 2016-08-24 上海华力微电子有限公司 一种wat测试的备份结构及备份方法
EP3125121A4 (en) * 2014-03-25 2017-12-06 Murakumo Corporation Database system, information processing device, method, and program
US9578112B2 (en) * 2014-04-30 2017-02-21 Jive Communications, Inc. Reliability of a connection during a communication session on a network device
CN104052799B (zh) * 2014-05-23 2018-01-26 上海爱数信息技术股份有限公司 一种利用资源环实现高可用存储的方法
TWI556076B (zh) 2014-10-30 2016-11-01 台達電子工業股份有限公司 區域控制系統及其自動配置方法
CN105629907B (zh) * 2014-10-30 2018-12-28 台达电子工业股份有限公司 区域控制系统及其自动配置方法
CN105550064A (zh) * 2015-12-04 2016-05-04 广州中海达定位技术有限公司 基于gnss接收机的存储器固件双重备份方法及装置
CN105573861B (zh) * 2015-12-08 2019-01-25 曙光信息产业股份有限公司 分布式文件系统中小文件的修复方法和装置
CN105550065A (zh) * 2015-12-11 2016-05-04 广州华多网络科技有限公司 一种进行数据库服务器通信管理的方法和装置
CN105573863A (zh) * 2015-12-14 2016-05-11 北京尚易德科技有限公司 一种索引文件恢复方法、装置及视频监控系统
US10248709B2 (en) 2015-12-15 2019-04-02 Microsoft Technology Licensing, Llc Promoted properties in relational structured data
US11226985B2 (en) 2015-12-15 2022-01-18 Microsoft Technology Licensing, Llc Replication of structured data records among partitioned data storage spaces
US10235406B2 (en) 2015-12-15 2019-03-19 Microsoft Technology Licensing, Llc Reminder processing of structured data records among partitioned data storage spaces
US10599676B2 (en) 2015-12-15 2020-03-24 Microsoft Technology Licensing, Llc Replication control among redundant data centers
CN106685697B (zh) * 2016-12-06 2020-03-13 中国工商银行股份有限公司 一种异常边际消息数据恢复处理的方法及系统
CN106789257B (zh) * 2016-12-23 2019-03-05 中科星图股份有限公司 一种云系统服务器状态可视化管理方法
CN106648996A (zh) * 2017-01-10 2017-05-10 郑州云海信息技术有限公司 一种存储管理软件的用户数据保护方法
US10740303B2 (en) * 2017-03-28 2020-08-11 Oracle International Corporation Composite file system commands
CN107368507B (zh) * 2017-03-28 2020-03-27 创新先进技术有限公司 一种基于区块链的共识方法及装置
CN107480002B (zh) * 2017-07-26 2020-06-30 阿里巴巴集团控股有限公司 消息处理方法及装置、电子设备
CN107886328B (zh) * 2017-11-23 2021-01-26 深圳壹账通智能科技有限公司 交易处理方法、装置、计算机设备及存储介质
CN108415797A (zh) * 2018-03-05 2018-08-17 山东超越数控电子股份有限公司 一种避免服务器故障切换时数据库数据丢失的方法
US11151161B2 (en) * 2018-07-06 2021-10-19 Snowflake Inc. Data replication and data failover in database systems
CN109472680A (zh) * 2018-10-26 2019-03-15 中国银行股份有限公司 一种账务处理方法及系统
US10958720B2 (en) 2018-12-18 2021-03-23 Storage Engine, Inc. Methods, apparatuses and systems for cloud based disaster recovery
US10887382B2 (en) * 2018-12-18 2021-01-05 Storage Engine, Inc. Methods, apparatuses and systems for cloud-based disaster recovery
US10983886B2 (en) 2018-12-18 2021-04-20 Storage Engine, Inc. Methods, apparatuses and systems for cloud-based disaster recovery
US11252019B2 (en) 2018-12-18 2022-02-15 Storage Engine, Inc. Methods, apparatuses and systems for cloud-based disaster recovery
US11178221B2 (en) 2018-12-18 2021-11-16 Storage Engine, Inc. Methods, apparatuses and systems for cloud-based disaster recovery
US11176002B2 (en) 2018-12-18 2021-11-16 Storage Engine, Inc. Methods, apparatuses and systems for cloud-based disaster recovery
US11489730B2 (en) 2018-12-18 2022-11-01 Storage Engine, Inc. Methods, apparatuses and systems for configuring a network environment for a server
CN109992384B (zh) * 2019-03-18 2020-07-14 北京方鸿智能科技有限公司 服务注册发现协调系统及其方法
CN110298758B (zh) * 2019-07-09 2021-10-01 恒生电子股份有限公司 订单申报方法及装置
US11360866B2 (en) * 2020-04-14 2022-06-14 International Business Machines Corporation Updating stateful system in server cluster
CN112669148A (zh) * 2020-12-22 2021-04-16 深圳市富途网络科技有限公司 一种处理订单的方法及装置
US12411679B2 (en) 2023-04-28 2025-09-09 Dell Products L.P. System and method for managing a cache hosted by a data processing system using a digital twin
US20240362561A1 (en) * 2023-04-28 2024-10-31 Dell Products L.P. System and method for managing data workflows using digital twins

Family Cites Families (107)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5339392A (en) * 1989-07-27 1994-08-16 Risberg Jeffrey S Apparatus and method for creation of a user definable video displayed document showing changes in real time data
US5307481A (en) 1990-02-28 1994-04-26 Hitachi, Ltd. Highly reliable online system
US5157663A (en) * 1990-09-24 1992-10-20 Novell, Inc. Fault tolerant computer system
US5544347A (en) 1990-09-24 1996-08-06 Emc Corporation Data storage system controlled remote data mirroring with respectively maintained data indices
US5305200A (en) 1990-11-02 1994-04-19 Foreign Exchange Transaction Services, Inc. Financial exchange system having automated recovery/rollback of unacknowledged orders
GB9027249D0 (en) * 1990-12-17 1991-02-06 Reuters Ltd Offer matching system
JP3409859B2 (ja) 1991-01-31 2003-05-26 株式会社日立製作所 制御装置の制御方法
DE69119222T2 (de) 1991-06-04 1996-11-21 Ibm Datensicherung und Beseitigung in einem Datenverarbeitungssystem
US5437022A (en) 1992-12-17 1995-07-25 International Business Machines Corporation Storage controller having additional cache memory and a means for recovering from failure and reconfiguring a control unit thereof in response thereto
GB2281644A (en) 1993-09-02 1995-03-08 Ibm Fault tolerant transaction-oriented data processing.
US5987432A (en) 1994-06-29 1999-11-16 Reuters, Ltd. Fault-tolerant central ticker plant system for distributing financial market data
JP3611894B2 (ja) * 1995-03-30 2005-01-19 富士通株式会社 二重化構成をもつシステム制御装置
US5713017A (en) * 1995-06-07 1998-01-27 International Business Machines Corporation Dual counter consistency control for fault tolerant network file servers
GB9601584D0 (en) * 1996-01-26 1996-03-27 Hewlett Packard Co Fault-tolerant processing method
US5796934A (en) 1996-05-31 1998-08-18 Oracle Corporation Fault tolerant client server system
US6101497A (en) 1996-05-31 2000-08-08 Emc Corporation Method and apparatus for independent and simultaneous access to a common data set
US6000020A (en) 1997-04-01 1999-12-07 Gadzoox Networks, Inc. Hierarchical storage management from a mirrored file system on a storage network segmented by a bridge
US7389312B2 (en) 1997-04-28 2008-06-17 Emc Corporation Mirroring network data to establish virtual storage area network
US6108300A (en) 1997-05-02 2000-08-22 Cisco Technology, Inc Method and apparatus for transparently providing a failover network device
US6490610B1 (en) * 1997-05-30 2002-12-03 Oracle Corporation Automatic failover for clients accessing a resource through a server
US6199055B1 (en) 1997-11-05 2001-03-06 E-Stamp Corporation System and method for providing fault tolerant transcriptions over an unsecured communication channel
US6317844B1 (en) * 1998-03-10 2001-11-13 Network Appliance, Inc. File server storage arrangement
DE19836347C2 (de) * 1998-08-11 2001-11-15 Ericsson Telefon Ab L M Fehlertolerantes Computersystem
US6959323B1 (en) * 1998-08-27 2005-10-25 Lucent Technologies Inc. Scalable atomic multicast
US6247141B1 (en) * 1998-09-24 2001-06-12 Telefonaktiebolaget Lm Ericsson (Publ) Protocol for providing replicated servers in a client-server system
US6202149B1 (en) 1998-09-30 2001-03-13 Ncr Corporation Automated application fail-over for coordinating applications with DBMS availability
GB2343020A (en) 1998-10-19 2000-04-26 Ibm Handling transaction failures in a transaction processing system
US6697960B1 (en) * 1999-04-29 2004-02-24 Citibank, N.A. Method and system for recovering data to maintain business continuity
US7082410B1 (en) * 1999-07-02 2006-07-25 The Nasdaq Stock Market, Inc. Line handler
US7454372B1 (en) * 1999-07-02 2008-11-18 The Nasdaq Stock Market, Inc. Market event alerts and user access to monitoring data
US8239303B2 (en) 1999-09-23 2012-08-07 The Nasdaq Omx Group, Inc. Match-off of order flow in electronic market system
US6647410B1 (en) * 1999-11-05 2003-11-11 Reuters Limited Method, apparatus and program for delivery and display of information from dynamic and static data sources
US6338126B1 (en) 1999-12-06 2002-01-08 Legato Systems, Inc. Crash recovery without complete remirror
US6574750B1 (en) 2000-01-06 2003-06-03 Oracle Corporation Preserving consistency of passively-replicated non-deterministic objects
US6480970B1 (en) 2000-05-17 2002-11-12 Lsi Logic Corporation Method of verifying data consistency between local and remote mirrored data storage systems
US7058853B1 (en) 2000-06-09 2006-06-06 Hewlett-Packard Development Company, L.P. Highly available transaction processing
WO2002001473A1 (en) * 2000-06-26 2002-01-03 Tradingscreen, Inc. Securities trade state tracking method and apparatus
US6701455B1 (en) * 2000-08-29 2004-03-02 Hitachi, Ltd. Remote copy system with data integrity
US6823336B1 (en) 2000-09-26 2004-11-23 Emc Corporation Data storage system and method for uninterrupted read-only access to a consistent dataset by one host processor concurrent with read-write access by another host processor
US20020120546A1 (en) * 2000-12-18 2002-08-29 Paul Zajac Mutli-interface financial transaction system and method
JP2002189570A (ja) 2000-12-20 2002-07-05 Hitachi Ltd 記憶システムの二重化方法および記憶システム
US6681339B2 (en) 2001-01-16 2004-01-20 International Business Machines Corporation System and method for efficient failover/failback techniques for fault-tolerant data storage system
US7539746B2 (en) * 2001-02-01 2009-05-26 Emc Corporation Highly available transaction failure detection and recovery for electronic commerce transactions
US7480633B2 (en) * 2001-02-13 2009-01-20 American Express Bank Ltd. Real-time brokerage account application system and method
US6715098B2 (en) * 2001-02-23 2004-03-30 Falconstor, Inc. System and method for fibrechannel fail-over through port spoofing
US6523087B2 (en) 2001-03-06 2003-02-18 Chaparral Network Storage, Inc. Utilizing parity caching and parity logging while closing the RAID5 write hole
US6772363B2 (en) * 2001-03-12 2004-08-03 Hewlett-Packard Development Company, L.P. Fast failover database tier in a multi-tier transaction processing system
JP2002287999A (ja) * 2001-03-26 2002-10-04 Duaxes Corp サーバの二重化方法、二重化サーバシステム、および二重化データベースサーバ
US20030055776A1 (en) * 2001-05-15 2003-03-20 Ralph Samuelson Method and apparatus for bundling transmission rights and energy for trading
US20020174058A1 (en) * 2001-05-18 2002-11-21 Baghdady George J. System for providing orders from a market analysis platform to the electronic communication network
US6928580B2 (en) * 2001-07-09 2005-08-09 Hewlett-Packard Development Company, L.P. Distributed data center system protocol for continuity of service in the event of disaster failures
WO2003009157A1 (en) * 2001-07-16 2003-01-30 Bea Systems, Inc. Method and apparatus for session replication and failover
DE60233877D1 (de) 2001-07-16 2009-11-12 Sap Ag Parallelisierte nur-redo-protokollierung und behebung für datenbanksysteme mit hochverfügbarem hauptspeicher
US6910150B2 (en) 2001-10-15 2005-06-21 Dell Products L.P. System and method for state preservation in a stretch cluster
US7069468B1 (en) * 2001-11-15 2006-06-27 Xiotech Corporation System and method for re-allocating storage area network resources
US6954877B2 (en) * 2001-11-29 2005-10-11 Agami Systems, Inc. Fault tolerance using logical checkpointing in computing systems
US7996517B2 (en) * 2002-01-23 2011-08-09 Novell, Inc. Transparent network connection takeover
US20040078625A1 (en) 2002-01-24 2004-04-22 Avici Systems, Inc. System and method for fault tolerant data communication
CN1714545A (zh) * 2002-01-24 2005-12-28 艾维西系统公司 容错的数据通信的方法和系统
US7107355B2 (en) * 2002-02-11 2006-09-12 Sun Microsystems, Inc. High availability lightweight directory access protocol service
US20030167224A1 (en) * 2002-02-22 2003-09-04 Periwal Vijay K. Sequential execution system of trading orders
US7143307B1 (en) * 2002-03-15 2006-11-28 Network Appliance, Inc. Remote disaster recovery and data migration using virtual appliance migration
GB0206604D0 (en) * 2002-03-20 2002-05-01 Global Continuity Plc Improvements relating to overcoming data processing failures
US6978396B2 (en) * 2002-05-30 2005-12-20 Solid Information Technology Oy Method and system for processing replicated transactions parallel in secondary server
US9311673B2 (en) * 2002-06-05 2016-04-12 Nasdaq, Inc. Security transaction matching
US20040107381A1 (en) * 2002-07-12 2004-06-03 American Management Systems, Incorporated High performance transaction storage and retrieval system for commodity computing environments
EP1543420B1 (en) 2002-07-29 2012-04-04 Open Invention Network LLC Consistent message ordering for semi-active and passive replication
US7058850B2 (en) 2002-07-31 2006-06-06 Hewlett-Packard Development Company, L.P. Method and system for preventing data loss within disk-array pairs supporting mirrored logical units
US7752116B2 (en) * 2002-10-30 2010-07-06 Nasdaq Liffe Markets, Llc Liquidity engine for futures trading exchange
US7769650B2 (en) * 2002-12-03 2010-08-03 Jp Morgan Chase Bank Network-based sub-allocation systems and methods for swaps
US20040148247A1 (en) * 2003-01-24 2004-07-29 Lawrence Miller Network-based systems, methods, and software for initiating or executing financial transactions
JP2004259079A (ja) 2003-02-27 2004-09-16 Hitachi Ltd データ処理システム
US7587422B2 (en) * 2003-04-24 2009-09-08 Neopath Networks, Inc. Transparent file replication using namespace replication
US7251745B2 (en) * 2003-06-11 2007-07-31 Availigent, Inc. Transparent TCP connection failover
EP1678853A2 (en) * 2003-10-03 2006-07-12 Quantum Trading Analytics, Inc. Method and apparatus for measuring network timing and latency
US8655755B2 (en) * 2003-10-22 2014-02-18 Scottrade, Inc. System and method for the automated brokerage of financial instruments
US7188273B2 (en) 2003-11-24 2007-03-06 Tsx Inc. System and method for failover
US6996502B2 (en) 2004-01-20 2006-02-07 International Business Machines Corporation Remote enterprise management of high availability systems
US8370247B2 (en) * 2004-02-13 2013-02-05 Omx Technology Ab Multi site solution for securities trading
US8601049B2 (en) * 2004-03-04 2013-12-03 The United States Postal Service System and method for providing centralized management and distribution of information to remote users
US7478275B1 (en) * 2004-03-29 2009-01-13 Symantec Operating Corporation Method and apparatus for performing backup storage of checkpoint data within a server cluster
JP2005293315A (ja) * 2004-03-31 2005-10-20 Nec Corp データミラー型クラスタシステム及びデータミラー型クラスタシステムの同期制御方法
US7523341B2 (en) * 2004-05-13 2009-04-21 International Business Machines Corporation Methods, apparatus and computer programs for recovery from failures in a computing environment
US7590706B2 (en) * 2004-06-04 2009-09-15 International Business Machines Corporation Method for communicating in a computing system
US7321906B2 (en) * 2004-07-23 2008-01-22 Omx Technology Ab Method of improving replica server performance and a replica server system
JP4491330B2 (ja) * 2004-11-08 2010-06-30 富士通株式会社 ディスクアレイ装置とそのデータのリカバリ方法およびデータリカバリプログラム
JP4383321B2 (ja) * 2004-11-09 2009-12-16 富士通株式会社 記憶制御装置および外部記憶装置
US7668962B2 (en) * 2005-02-07 2010-02-23 Symantec Operating Corporation System and method for connection failover using redirection
WO2006094527A1 (en) * 2005-03-10 2006-09-14 Telecom Italia S.P.A. Disaster recovery architecture
US8191078B1 (en) * 2005-03-22 2012-05-29 Progress Software Corporation Fault-tolerant messaging system and methods
US7519859B2 (en) * 2005-08-30 2009-04-14 International Business Machines Corporation Fault recovery for transaction server
US20070113031A1 (en) * 2005-11-16 2007-05-17 International Business Machines Corporation Memory management system and method for storing and retrieving messages
US8233384B2 (en) 2005-12-21 2012-07-31 Rockstar Bidco, LP Geographic redundancy in communication networks
EP1959639B1 (de) * 2006-02-15 2011-11-02 Software AG Ausfallsicheres System zum Verwalten von Client-Server-Kommunikation
US7496579B2 (en) * 2006-03-30 2009-02-24 International Business Machines Corporation Transitioning of database service responsibility responsive to server failure in a partially clustered computing environment
AU2007238116B2 (en) * 2006-04-11 2011-09-08 Financial & Risk Organisation Limited Credit data processing system for controlling electronic trading based on credit arrangements
US8001036B2 (en) * 2006-05-30 2011-08-16 Altex-Ats Ltd System for matching orders for futures contracts which facilitate electronic trading of over the counter futures contracts
US8676876B2 (en) * 2006-06-27 2014-03-18 International Business Machines Corporation Synchronizing an active feed adapter and a backup feed adapter in a high speed, low latency data communications environment
US8122144B2 (en) * 2006-06-27 2012-02-21 International Business Machines Corporation Reliable messaging using redundant message streams in a high speed, low latency data communications environment
US7725764B2 (en) * 2006-08-04 2010-05-25 Tsx Inc. Failover system and method
US7480827B2 (en) * 2006-08-11 2009-01-20 Chicago Mercantile Exchange Fault tolerance and failover using active copy-cat
US7434096B2 (en) * 2006-08-11 2008-10-07 Chicago Mercantile Exchange Match server for a financial exchange having fault tolerant operation
US8190572B2 (en) * 2007-02-15 2012-05-29 Yahoo! Inc. High-availability and data protection of OLTP databases
US7631214B2 (en) * 2007-05-31 2009-12-08 International Business Machines Corporation Failover processing in multi-tier distributed data-handling systems
CN102224518A (zh) * 2008-11-21 2011-10-19 多伦多证券交易所 用于集合计算服务器资源的方法和系统
US8745157B2 (en) * 2011-09-02 2014-06-03 Trading Technologies International, Inc. Order feed message stream integrity
AU2012307047B2 (en) 2011-09-07 2016-12-15 Tsx Inc. High availability system, replicator and method

Also Published As

Publication number Publication date
JP2009545788A (ja) 2009-12-24
AU2007281055B2 (en) 2012-01-19
AU2007281055A2 (en) 2009-02-26
CA2659844A1 (en) 2008-02-07
US20100198718A1 (en) 2010-08-05
CN103593267A (zh) 2014-02-19
US20110225448A1 (en) 2011-09-15
JP2014002751A (ja) 2014-01-09
EP2049999A4 (en) 2009-11-18
WO2008014585A1 (en) 2008-02-07
US20080126832A1 (en) 2008-05-29
US7975174B2 (en) 2011-07-05
CN101523355A (zh) 2009-09-02
US8683257B2 (en) 2014-03-25
JP5355400B2 (ja) 2013-11-27
EP2479670A2 (en) 2012-07-25
EP2049999A1 (en) 2009-04-22
EP2479670A3 (en) 2013-11-13
JP5551749B2 (ja) 2014-07-16
EP2479671A3 (en) 2013-11-13
US7725764B2 (en) 2010-05-25
CN101523355B (zh) 2013-07-24
JP5536939B2 (ja) 2014-07-02
US20140115380A1 (en) 2014-04-24
CA2923373A1 (en) 2008-02-07
JP2013033493A (ja) 2013-02-14
EP2049999B1 (en) 2014-05-07
US8909977B2 (en) 2014-12-09
CA2659844C (en) 2016-10-18
EP2479671A2 (en) 2012-07-25
AU2007281055A1 (en) 2008-02-07

Similar Documents

Publication Publication Date Title
MX2009001241A (es) Sistema y metodo de paso a unidad sustitutoria.
CA2921108C (en) System and method for failover
US9798639B2 (en) Failover system and method replicating client message to backup server from primary server
AU2012202229B2 (en) Failover system and method
HK1174120A (en) Failover system and method
HK1174117A (en) Failover system and method
HK1100499B (en) System and method for failover
HK1136363B (en) System and method for failover

Legal Events

Date Code Title Description
FG Grant or registration