IP Library Granted Patent US 8,200,765
Granted Patent B2
US 8,200,765 · App. 12/352,284 · Granted Jun 12, 2012

Preserving message order using a message ordering manager

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,200,765
App. No.
12/352,284
Granted
Jun 12, 2012
Kind
B2
Abstract

A method and system for preserving a message ordering while processing message are discussed. A message ordering manager records an order in which electronic messages arrive at an input queue. An application server processes the electronic messages out-of-order or in parallel. The message ordering manager commits the processed electronic messages in the order in which electronic messages arrive at an input queue. If a processed message cannot be committed because older message(s) are not completely processed, then application server determines whether processing older message(s) is critical or not. If the processing the older message(s) is critical, the application server rolls back the processed message and the older message(s). Otherwise, the message ordering manager commits the processed message before the older electronic messages are committed.

Claims (62)

1. A method for preserving a message order while processing electronic messages, the method comprising:

receiving electronic messages in an order sequence at an input queue;

maintaining, at a message ordering manager, a list of the received electronic messages, the list including the order sequence in which the electronic messages arrive at the input queue;

providing the electronic messages from the input queue to an application server adapted for processing the electronic messages;

processing, at the application server, the electronic messages not in the order sequence; and

committing, at the message ordering manager, the processed electronic messages according to the order sequence in the list,

wherein the message ordering manager and the application server do not perform a sequential logic operation that indicates, within each electronic message, a position of said each electronic message in the order sequence.

2. The method according to claim 1 , further comprising:

processing the electronic messages in parallel.

3. A method for handling electronic messages that cannot be processed, the method comprising:

receiving a first electronic message and one or more subsequent electronic messages in an order sequence at an input queue;

maintaining, at a message ordering manager, a list of the received electronic messages, the list including the order sequence in which the first electronic message and the one or more subsequent electronic messages arrive at the input queue;

providing the first electronic message and the one or more subsequent electronic messages from the input queue to an application server adapted for processing the first electronic message and the one or more subsequent electronic messages;

attempting processing of the first message and the one or more subsequent electronic messages out-of-order;

checking whether the first message has been processed;

waiting for a pre-determined period of time for the first message to be processed, if the first message is not processed yet;

rolling back the one or more subsequent electronic messages, if the first message is not processed until at the end of the period; and

cancelling all changes made while processing the one or more subsequent electronic messages,

wherein the receiving, the maintaining, the providing, the attempting, the checking, the waiting, the rolling back and the cancelling do not perform a sequential logic operation that indicates, within the first electronic message, a position of the first electronic message in the order sequence, and that indicates, within each of the one or more subsequent electronic messages, a position of said each of the one or more subsequent electronic messages in the order sequence.

4. The method according to claim 3 , wherein the first message is tried again to be processed during the period of time.

5. The method according to claim 3 , wherein the first message and the one or more subsequent electronic messages are tried to be processed in parallel.

6. A method for processing electronic messages, the method comprising:

receiving a first electronic message and one or more subsequent electronic messages in an order sequence at an input queue;

maintaining, at a message ordering manager, a list of the received electronic messages, the list including the order sequence in which the first electronic message and the one or more subsequent electronic messages arrive at the input queue;

providing the first electronic message and the one or more subsequent electronic messages from the input queue to an application server adapted for processing the first electronic message and the one or more subsequent electronic messages;

attempting processing of the first electronic message and the one or more subsequent electronic messages out-of-order;

checking whether the first electronic message has been processed;

waiting for a pre-determined period of time for the first electronic message to be processed, if the first message is not processed;

determining whether the processing of the first electronic message is critical; and

committing the one or more subsequent electronic messages, if the processing of the first electronic message is not critical,

wherein the receiving, the maintaining, the providing, the attempting, the checking, the waiting, the determining and the cancelling do not perform a sequential logic operation that indicates, within the first electronic message, a position of the first electronic message in the order sequence, and that indicates, within each of the one or more subsequent electronic messages, a position of said each of the one or more subsequent electronic messages in the order sequence.

7. The method according to claim 6 , wherein the first message and the one or more subsequent electronic messages are tried to be processed in parallel.

8. The method according to claim 6 , wherein the criticality of the processing first message is based on a dependency between the first message and the one or more subsequent electronic messages.

9. The method according to claim 6 , further comprising:

rolling back the one or more subsequent electronic messages, if the processing first message is critical; and

cancelling all changes made while processing the one or more subsequent electronic messages.

10. The method according to claim 6 , wherein the first message is tried again to be processed during the period of time.

11. A system for handling electronic messages that cannot be processed, the system comprising:

an input queue for receiving a first electronic message and one or more subsequent electronic messages in an order sequence at an input queue;

a message ordering manager maintaining a list of the received electronic messages, the list including the order sequence in which the first electronic message and the one or more subsequent electronic messages arrive at the input queue;

a queue manager for providing the first electronic message and the one or more subsequent electronic messages from the input queue to an application server adapted for processing the first electronic message and the one or more subsequent electronic messages, the application server attempting processing of the first message and the one or more subsequent electronic messages out-of-order;

the message ordering manager for checking whether the first message has been processed and waiting for a pre-determined period of time for the first message to be processed, if the first message is not processed yet;

the application server for rolling back the one or more subsequent electronic messages, if the first message is not processed until at the end of the period; and

the application server for cancelling all changes made while processing the one or more subsequent electronic messages,

wherein the input queue, the queue manager, the message ordering manager and the application server do not perform a sequential logic operation that indicates, within the first electronic message, a position of the first electronic message in the order sequence, and that indicates, within each of the one or more subsequent electronic messages, a position of said each of the one or more subsequent electronic messages in the order sequence.

12. The system according to claim 11 , wherein the first message is tried again to be processed during the period of time.

13. The system according to claim 11 , wherein the first message and the one or more subsequent electronic messages are tried to be processed in parallel.

14. A system for processing electronic messages, the method comprising:

an input queue for receiving a first electronic message and one or more subsequent electronic messages in an order sequence at an input queue;

a message ordering manager maintaining a list of the received electronic messages, the list including the order sequence in which the first electronic message and the one or more subsequent electronic messages arrive at the input queue;

a queue manager for providing the first electronic message and the one or more subsequent electronic messages from the input queue to an application server adapted for processing the first electronic message and the one or more subsequent electronic messages, the application server attempting processing of the first electronic message and the one or more subsequent electronic messages out-of-order;

the message ordering manager for checking whether the first electronic message has been processed and waiting for a pre-determined period of time for the first electronic message to be processed, if the first message is not processed;

the application server for determining whether the processing of the first electronic message is critical; and

the application server for committing the one or more subsequent electronic messages, if the processing of the first electronic message is not critical,

wherein the input queue, the queue manager, the message ordering manager and the application server do not perform a sequential logic operation that indicates, within the first electronic message, a position of the first electronic message in the order sequence, and that indicates, within each of the one or more subsequent electronic messages, a position of said each of the one or more subsequent electronic messages in the order sequence.

15. The system according to claim 14 , wherein the first message and the one or more subsequent electronic messages are tried to be processed in parallel.

16. The system according to claim 14 , wherein the criticality of the processing first message is based on a dependency between the first message and the one or more subsequent electronic messages.

17. The system according to claim 14 , further comprising:

the application server for rolling back the one or more subsequent electronic messages, if the processing first message is critical and for cancelling all changes made while processing the one or more subsequent electronic messages.

18. The system according to claim 14 , wherein the first message is tried again to be processed during the period of time.

19. A computer program product including programs of instructions in a non-transitory computer readable medium for processing electronic messages, wherein, when the programs of instructions are executed by at least one processor, the computer program product performs the steps of claim 6 .

20. The method according to claim 1 , wherein each electronic message has a different unique identifier.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 7, 2024
From: DAEDALUS BLUE LLC
To: TAIWAN SEMICONDUCTOR MANUFACTURING COMPANY, LIMITED
Reel/Frame 066749/0668 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 29, 2020
From: DAEDALUS GROUP, LLC
To: DAEDALUS BLUE LLC
Reel/Frame 051737/0191 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 27, 2020
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: DAEDALUS GROUP, LLC
Reel/Frame 051710/0445 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 14, 2019
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: DAEDALUS GROUP LLC
Reel/Frame 051032/0784 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 12, 2009
From: BITTLES, WILLIAM; GORMLEY, SIMON R.; MATTHEWSON, CHRISTOPHER; TITHERIDGE, PAUL
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 022091/0934 →