Método y sistema para gestionar el orden de mensajes.

Método para ordenar una pluralidad de mensajes recibidos de un remitente que van a enviarse a un receptor en una secuencia basándose en la dependencia de un mensaje de uno o más otros mensajes, comprendiendo el método las etapas de:

- recibir

(500) uno o más mensajes de un flujo de mensajes;

- generar (502) uno o más mensajes a partir del flujo de mensajes y determinar un orden, un objetivo y un valor para un campo de estado para cada uno de los mensajes generados;

- almacenar los mensajes generados en una base de datos;

- identificar una característica de cada mensaje almacenado, característica que es común a un grupo de los mensajes almacenados;

- identificar una dependencia de mensaje para los mensajes almacenados en el grupo de los mensajes almacenados de un parámetro del mensaje almacenado;

- revisar (510) un mensaje almacenado particular en la base de datos para determinar si el mensaje almacenado puede enviarse:

- determinando (516) si el mensaje almacenado particular depende de un mensaje almacenado previo y determinando un estado del mensaje almacenado previo leyendo un valor del campo de estado del mensaje almacenado previo; y

- actualizando (512, 518, 520) el valor del campo de estado del mensaje almacenado particular basándose en el estado del mensaje almacenado previo;

- enviar el mensaje almacenado particular después del acuse de recibo de que se ha enviado el mensaje almacenado previo.

Tipo: Patente Europea. Resumen de patente/invención. Número de Solicitud: E09305450.

Solicitante: AMADEUS S.A.S..

Nacionalidad solicitante: Francia.

Dirección: 485 Route du Pin Montard, Les Bouillides, BP 69 06902 Sophia Antipolis Cedex FRANCIA.

Inventor/es: CADORET,MARION, PENAUD,AGNES, POULOUIN,DAVID.

Fecha de Publicación: .

Clasificación Internacional de Patentes:

  • SECCION H — ELECTRICIDAD > TECNICA DE LAS COMUNICACIONES ELECTRICAS > TRANSMISION DE INFORMACION DIGITAL, p. ej. COMUNICACION... > Redes de datos de conmutación (interconexión o... > H04L12/58 (Sistemas de conmutación de mensajes)
  • SECCION G — FISICA > COMPUTO; CALCULO; CONTEO > TRATAMIENTO DE DATOS DIGITALES ELECTRICOS (computadores... > Disposiciones para el control por programa, p. ej.... > G06F9/46 (Disposiciones para la multiprogramación)

PDF original: ES-2520941_T3.pdf

 

google+ twitter facebookPin it
Ilustración 1 de Método y sistema para gestionar el orden de mensajes.
Ilustración 2 de Método y sistema para gestionar el orden de mensajes.
Ilustración 3 de Método y sistema para gestionar el orden de mensajes.
Ilustración 4 de Método y sistema para gestionar el orden de mensajes.
Ver la galería de la patente con 11 ilustraciones.
Método y sistema para gestionar el orden de mensajes.

Fragmento de la descripción:

Método y sistema para gestionar el orden de mensajes Campo de la invención

La presente invención se refiere a un método y a un sistema para gestionar el orden de los mensajes, particular pero no exclusivamente con respecto a la secuenciación de mensajes a sistemas externos en un entorno de múltiples procesadores.

Antecedentes de la invención

Existen sistemas de mensajería en una multitud de dominios diferentes y se formulan en una multitud de maneras diferentes. Los mensajes están relacionados a menudo con otros mensajes que o bien han salido antes o bien todavía están por llegar, en otras palabras a menudo hay una secuencia para los mensajes. Debido a la manera en la que ahora funcionan muchos sistemas de mensajería, no es raro que se reciban mensajes en un entorno de procesamiento central fuera de secuencia. Éste es el caso particularmente en entornos de múltiples procesadores en los que los procesos pueden producirse a velocidades diferentes, lo que conduce a una pérdida de secuenciación. Entonces, a menudo se requiere que estos mensajes se transmitan a un destino. Algunos destinos no pueden hacer frente a mensajes que se reciben fuera de secuencia puesto que entonces no pueden procesar los mensajes apropiadamente.

Hay muchos sistemas de mensajería conocidos, que intentan superar algunos de los problemas identificados anteriormente. Por ejemplo, el documento WO 2007/062510 describe un sistema que usa un secuenciador para procesar mensajes de manera concurrente. Los mensajes tienen un identificador único y un indicador de secuencia. En este sistema, las condiciones son tales que es posible determinar a priori un identificador de secuencia para el o cada mensaje. Esto facilita el uso de afinidad: los mensajes que comparten el mismo identificador de secuencia se distribuyen mediante el mismo proceso. En el documento W02007/062510, la secuenciación se gestiona bloqueando los mensajes en una cola de salida.

El documento US 2007/0124398 da a conocer un entorno de múltiples procesadores en el que un sistema usa una combinación de identificador de secuencia y número de secuencia para garantizar que los mensajes se procesan mediante el mismo recurso. Este método requiere hilos de mensajes en espera que requieren acuses de recibo antes de que puedan procesarse. También existe una elección de cola dependiendo del número de secuencia y las colas pueden ordenarse.

El documento US 2003/110230 da a conocer un entorno de procesamiento paralelo en el que se mantiene la ordenación de mensajes procesando mensajes desde la misma fuente con un recurso común o hilo común. De nuevo, esto requiere el uso de hilos y procesos en espera o una cola ordenada de mensajes para su transmisión posterior.

El documento US 2006/0146848 da a conocer un método y un sistema para poner en cola mensajes con el fin de procesar mensajes en un orden predeterminado. El sistema comprende un identificador único para un grupo de mensajes. El sistema también incluye mensajes adicionales para determinar si los mensajes se procesaron satisfactoriamente y un parámetro de ID de correlación para correlacionar grupos separados de mensajes.

El documento US2003/0158883 da a conocer un método para procesar mensajes en una cola en el que cada mensaje tiene un identificador en relación con el origen del mensaje. El método también da a conocer una etapa de limitar la cantidad del tiempo de procesamiento para optimizar la gestión de los mensajes en la cola.

Los métodos de la técnica anterior mencionados anteriormente funcionan en cierta medida, aunque dependen mucho de poner en cola mensajes lo que conduce a una complejidad y al uso de grandes cantidades de memoria y potencia de procesamiento. El principal problema con este sistema es el mantenimiento y el hecho de que no siempre es posible que la secuenciación se base en una correlación de secuencia única. Las dependencias pueden ser mucho más complicadas que sólo el orden de un número de secuencia dentro del mismo identificador de secuencia. Los métodos anteriores funcionan pero presentan problemas de mantenimiento y fiabilidad. Tener un hilo en espera en una memoria no es persistente: así, si se produce un problema en la máquina se perderá la secuenciación. La gestión de la secuenciación en colas ordenadas da lugar a un problema de escalabilidad. Es más difícil añadir más colas, o debe haber afinidad entre procesos y colas. La afinidad también es más compleja de gestionar. Añade un punto de fallo porque no hay redundancia en términos de servicio. Además, la técnica anterior no enseña un historial centralizado, por tanto, no es posible manejar una secuenciación compleja. En otras palabras, cuando no hay un identificador de secuencia único.

Sumario de la invención

La presente invención proporciona un método y un sistema tal como se expone en las reivindicaciones adjuntas.

Según una realización, se proporciona un método para ordenar una pluralidad de mensajes recibidos de un remitente que van a enviarse a un receptor en una secuencia equivalente a un orden de mensajes de la pluralidad de mensajes en el que el orden de mensajes se determina en tiempo real, comprendiendo el método las etapas de: recibir uno o más mensajes de un flujo de mensajes y almacenarlos en una base de datos; identificar una característica (orden de clave P) de cada mensaje que es común a un grupo de mensajes; identificar una secuencia que corresponde al orden de mensajes (1, 2, 3, 4, etc.) para el grupo de mensajes a partir de un parámetro del mensaje; revisar un mensaje almacenado particular en la base de datos para determinar si el mensaje almacenado puede enviarse; determinando si existe un mensaje previo en la secuencia antes del mensaje almacenado y determinando un estado del mensaje previo; actualizando el estado del mensaje almacenado basándose en el estado del mensaje previo; y enviar el mensaje almacenado según la secuencia una vez que se ha enviado el mensaje previo.

La presente invención proporciona un sistema muy escalable, que puede extenderse fácilmente para hacer frente a un aumento de tráfico. La presente invención también garantiza que los mensajes se envíen en el orden correcto en un entorno de múltiples procesadores. Las dependencias de los mensajes son estrictamente las requeridas. El sistema no introduce ninguna dependencia. La ordenación no es total: los mensajes que son independientes pueden enviarse en paralelo. Por tanto, si falla un enlace de receptor, no influirá sobre ningún otro receptor a menos que los mensajes estén enlazados funcionalmente. Además, el uso de los órdenes correctos es muy importante puesto que la desincronización entre procesadores diferentes puede conducir a muchos problemas. Por ejemplo, en el entorno de una línea aérea, si hay problemas en relación con la sincronización de los mensajes, a los pasajeros se les podría denegar un asiento cuando de hecho hay espacio disponible en la aeronave. Esto conduce a una pérdida de dinero en la línea aérea y también a otras desventajas.

El proceso según la presente invención se proporciona mediante una implementación sencilla puesto que los hilos y la afinidad no forman parte del proceso. En particular, no hay afinidad entre ningún elemento en cola y de procesamiento del sistema puesto que no están presentes. Además, hay una manera flexible en la que pueden procesarse errores. Esto es particularmente importante cuando se maneja un mensaje que falta en una secuencia. Usando una base de datos, se mantiene un historial completo de los mensajes y las transmisiones durante una ventana de tiempo específica. La ventana de tiempo también proporciona un umbral. Antes del umbral, el mensaje puede estar en un estado y después el estado puede cambiar. El umbral es particularmente útil... [Seguir leyendo]

 


Reivindicaciones:

Método para ordenar una pluralidad de mensajes recibidos de un remitente que van a enviarse a un receptor en una secuencia basándose en la dependencia de un mensaje de uno o más otros mensajes, comprendiendo el método las etapas de:

- recibir (500) uno o más mensajes de un flujo de mensajes;

- generar (502) uno o más mensajes a partir del flujo de mensajes y determinar un orden, un objetivo y un valor para un campo de estado para cada uno de los mensajes generados;

- almacenar los mensajes generados en una base de datos;

- identificar una característica de cada mensaje almacenado, característica que es común a un grupo de los mensajes almacenados;

- identificar una dependencia de mensaje para los mensajes almacenados en el grupo de los mensajes almacenados de un parámetro del mensaje almacenado;

- revisar (510) un mensaje almacenado particular en la base de datos para determinar si el mensaje almacenado puede enviarse:

- determinando (516) si el mensaje almacenado particular depende de un mensaje almacenado previo y determinando un estado del mensaje almacenado previo leyendo un valor del campo de estado del mensaje almacenado previo; y

- actualizando (512, 518, 520) el valor del campo de estado del mensaje almacenado particular basándose en el estado del mensaje almacenado previo;

- enviar el mensaje almacenado particular después del acuse de recibo de que se ha enviado el mensaje almacenado previo.

Método según la reivindicación 1, que comprende además retardar el mensaje almacenado particular hasta que se cumpla una condición predeterminada.

Método según la reivindicación 1, que comprende además retardar (522) el mensaje almacenado particular hasta que se cumpla un retardo de tiempo.

Método según cualquier reivindicación anterior, en el que la etapa de determinar (516) si existe un mensaje previo comprende recibir un acuse de recibo de mensaje de que se ha recibido el mensaje previo por un destinatario.

Método según la reivindicación 4, que comprende además enviar el mensaje almacenado particular a una cola de salida.

Método según la reivindicación 4 o la reivindicación 5, que comprende además actualizar el valor del campo de estado del mensaje almacenado particular para de ese modo actualizar el valor del campo de estado de cualquier mensaje posterior asociado con el mensaje almacenado particular.

Método según cualquier reivindicación anterior, que comprende además repetir secuencialmente las etapas de revisión, actualización y envío para cada mensaje en el grupo de mensajes.

Método según cualquier reivindicación anterior, que comprende además actualizar la base de datos con cualquier cambio en el estado.

Sistema de mensajes para ordenar una pluralidad de mensajes sin un identificador de secuencia recibidos de un remitente que van a enviarse a un receptor en una secuencia equivalente a un orden de mensajes de la pluralidad de mensajes, comprendiendo el sistema:

- un módulo receptor para recibir (500) uno o más mensajes de un flujo de mensajes y para generar (502) uno o más mensajes a partir del flujo de mensajes y determinar un orden, un objetivo y un valor de un campo de estado para cada uno de los mensajes generados, y almacenar los mensajes generados en una base de datos;

- un módulo de gestión de mensajes para identificar una característica de cada mensaje que es común a un grupo de los mensajes almacenados; para identificar una secuencia que corresponde al orden de

10.

11.

12.

mensajes para el grupo de mensajes a partir de un parámetro del mensaje; y para revisar (510) un mensaje almacenado particular en la base de datos para determinar si el mensaje almacenado particular puede enviarse empleando:

- medios para determinar (516) si existe un mensaje almacenado previo en la secuencia antes del mensaje almacenado particular y determinar un estado del mensaje previo leyendo un valor del campo de estado del mensaje almacenado previo; y

- medios para actualizar (512, 518, 520) el valor del campo de estado del mensaje almacenado particular basándose en el estado del mensaje almacenado previo;

- un módulo de transmisión para enviar el mensaje almacenado particular según la secuencia una vez que se ha enviado el mensaje almacenado previo.

Sistema según la reivindicación 9, que comprende además un módulo de retardo para retardar el mensaje almacenado particular hasta que se cumpla una condición predeterminada.

Sistema según la reivindicación 9, que comprende además un módulo de retardo de tiempo (308) para retardar (522) el mensaje almacenado particular hasta que se cumpla un retardo de tiempo.

Programa informático que comprende instrucciones para llevar a cabo el método según cualquiera de las reivindicaciones 1 a 8 cuando dicho programa informático se ejecuta en un aparato programable.