IP Library Granted Patent US 6,920,476
Granted Patent B2
US 6,920,476 · App. 09/800,169 · Granted Jul 19, 2005

Messaging system for computers

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 6,920,476
App. No.
09/800,169
Granted
Jul 19, 2005
Kind
B2
Abstract

In accordance with the present invention, a messaging system utilizes a local queue manager to receive messages intended for other processes. Messages received by the local queue manager are stored onto a local persistent storage device when a process sending the message has completed the sending action. The local queue manager then sends the message to an appropriate recipient. When the message has been received and confirmed, the recipient removes the message from the persistent storage device. If a hardware or software failure occurs, the message is stored and can be re-sent after the failure is corrected. In certain embodiments, a message writer is operable to communicate the message to the receiving process and remove the message from the queue after sending it to the receiving process. In certain embodiments, a message communicated by the sending process comprises a first format, and a message collector is operable to format the message received from the sending process into a standard format for transport to the local queue manager and storage on the persistent storage device.

Claims (62)

1. A computer-implemented messaging system for facilitating distributed processing by reliably handling messages communicated between a sending process and one or more receiving processes, comprising:

a message collector operable to receive a message from a sending process, that is operable to generate and send the message, the message specifying a receiving process as an intended destination of the message generated by the sending process; and

a local queue manager operable to:

receive the message from the message collector;

queue the message received from the message collector in a queue for communication to the receiving process that is the intended destination of the message; and

store the message in a persistent storage device in communication with the local queue manager, the persistent storage device operable to reliably store the message until the message is removed by the receiving process after the message is received by the receiving process for processing;

the message received from the sending process being stored at the persistent storage device, until the receiving process removes the message from the persistent storage device after the message is received by the receiving process for processing, storing the message at the persistent storage device until the message is removed by the receiving process after being received by the receiving process enhancing reliability that the message will be successfully communicated to the receiving process.

2. The system in claim 1 , further comprising a message writer in communication with the local queue manager and the receiving process, the message writer operable to communicate the message to the receiving process and to remove the message from the queue after sending it to the receiving process.

3. The system of claim 1 , wherein:

the message communicated by the sending process comprises a first format; and

the message collector is further operable to reformat the message received from the sending process from the first format into a standard format for transport to the local queue manager and storage on the persistent storage device.

4. The system of claim 3 , further comprising at least one process, associated with the receiving process, for converting the received message from the standard format to the first format.

5. The system of claim 1 , wherein the message comprises one or more of:

a remote database access query;

a status request; and

a notification of an event occurring within the sending process.

6. The system of claim 1 , wherein the message collector comprises an object operable to be invoked by the sending process in order to handle the message sent by the sending process.

7. The system of claim 1 , wherein:

the local queue manager is operable to communicate a first success message to the message collector indicating that the message was successfully received by the local queue manager; and

the message collector is operable to, in response to receiving the first success message from the local queue manager, communicate a second success message to the sending process indicating that the message was successfully received by the local queue manager and allowing the sending process to assume that the message will be reliably delivered to the receiving process.

8. The system of claim 1 , wherein the local queue manager is further operable to:

retrieve, if communication of the message to the receiving process fails, the message from the persistent storage device; and

resend the message to the receiving process without requiring the sending process to regenerate the message.

9. A computer-implemented method for facilitating distributed processing by reliably handling messages communicated between a sending process and one or more receiving processes, comprising:

receiving a message from a sending process that is operable to generate and send the message, the message specifying a receiving process as an intended destination of the message generated by the sending process;

queuing the message in a queue for communication to the receiving process that is the intended destination of the message;

storing the message in a persistent storage device operable to reliably store the message until the message is removed, the message being stored at the persistent storage device until the receiving process removes the message from the persistent storage device after the message is received by the receiving process for processing;

sending the message to the receiving process for processing; and

removing the message from the persistent storage device after the message has been received by the receiving process, storing the message at the persistent storage device until the message is removed by the receiving process after being received by the receiving process enhancing reliability that the message will be successfully communicated to the receiving process.

10. The method of claim 9 , further comprising communicating the message to a message writer prior to communication of the message to the receiving process, the message writer operable to communicate the message to the receiving process and to remove the message from the queue after sending the message to the receiving process.

11. The method of claim 9 , wherein:

the message communicated by the sending process comprises a first format; and

the method further comprises formatting the message received from the sending process from the first message format to a standard format for storage on the persistent storage device.

12. The method of claim 11 , further comprising converting the message from the standard format to the first format prior to receipt of the message by the receiving process.

13. The method of claim 9 , wherein the message comprises one or more of:

a remote database access query;

a status request; and

a notification of an event occurring within the sending process.

14. The method of claim 9 , comprising invoking an object for handling the message sent by the sending process.

15. The method of claim 9 , further comprising:

communicating a first success message to the message collector indicating that the message was successfully received by the local queue manager; and

in response to the first success message, communicating a second success message to the sending process indicating that the message was successfully received by the local queue manager and allowing the sending process to assume that the message will be reliably delivered to the receiving process.

16. The method of claim 9 , further comprising:

retrieving, if communication of the message to the receiving process fails, the message from the persistent storage device; and

resending the message to the receiving process without requiring the sending process to regenerate the message.

17. Software for facilitating distributed processing by reliably handling messages communicated between a sending process and one or more receiving processes, the software being embodied in computer-readable media and when executed operable to:

receive a message from a sending process that is operable to generate and send the message, the message specifying a receiving process as an intended destination of the message generated by the sending process;

queue the message in a queue for communication to the receiving process that is the intended destination of the message;

store the message in a persistent storage device operable to reliably store the message until the message is removed, the message being stored at the persistent storage device until the receiving process removes the message from the persistent storage device after the message is received by the receiving process for processing;

send the message to the receiving process for processing; and

remove the message from the persistent storage device after the message has been received by the receiving process, storing the message at the persistent storage device until the message is removed by the receiving process after being received by the receiving process enhancing reliability that the message will be successfully communicated to the receiving process.

18. The software of claim 17 , further operable to communicate the message to a message writer prior to communication of the message to the receiving process, the message writer operable to communicate the message to the receiving process and remove the message from the queue after sending the message to the receiving process.

19. The software of claim 17 , wherein:

the message communicated by the sending process comprises a first format; and

the software is further operable to format the message received from the sending process from the first format to a standard format for storage one the persistent storage device.

20. The software of claim 19 , further operable to convert the message from the standard format to the first format prior to receipt of the message by the receiving process.

21. A computer-implemented messaging system for facilitating distributed processing by reliably handling messages communicated between a sending process and one or more receiving processes, comprising:

means for receiving a message from a sending process that is operable to generate and send the message, the message specifying a receiving process as an intended destination of the message generated by the sending process;

means for queuing the message in a queue for communication to the receiving process that is the intended destination of the message;

means for storing the message in a persistent storage device operable to reliably store the message until the message is removed, the message being stored at the persistent storage device until the receiving process removes the message from the persistent storage device after the message is received by the receiving process for processing;

means for sending the message to the receiving process for processing; and

means for removing the message from the persistent storage device after the message has been received by the receiving process, storing the message at the persistent storage device until the message is removed by the receiving process after being received by the receiving process enhancing reliability that the message will be successfully communicated to the receiving process.

Assignments (10)
RELEASE OF SECURITY INTEREST Recorded Sep 16, 2021
From: JPMORGAN CHASE BANK, N.A.
To: BLUE YONDER GROUP, INC.; BLUE YONDER, INC.; JDA SOFTWARE SERVICES, INC.; I2 TECHNOLOGIES INTERNATIONAL SERVICES, LLC; MANUGISTICS SERVICES, INC.; MANUGISTICS HOLDINGS DELAWARE II, INC.; REDPRAIRIE COLLABORATIVE FLOWCASTING GROUP, LLC; JDA SOFTWARE RUSSIA HOLDINGS, INC.; REDPRAIRIE SERVICES CORPORATION; BY BOND FINANCE, INC.; BY NETHERLANDS HOLDING, INC.; BY BENELUX HOLDING, INC.
Reel/Frame 057724/0593 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REEL 026468 FRAME NUMBER FROM 0199 TO 0119 PREVIOUSLY RECORDED ON REEL 055136 FRAME 0623. ASSIGNOR(S) HEREBY CONFIRMS THE CORRECTION ASSIGNMENT. Recorded Apr 19, 2021
From: I2 TECHNOLOGIES US, INC.
To: JDA TECHNOLOGIES US, INC.
Reel/Frame 056813/0110 →
CORRECTIVE ASSIGNMENT TO CORRECT THE NAME OF THE CONVEYING AND RECEIVING PARTIES TO INCLUDE A PERIOD AFTER THE TERM INC PREVIOUSLY RECORDED AT REEL: 026740 FRAME: 0676. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Feb 8, 2021
From: JDA TECHNOLOGIES US, INC.
To: JDA SOFTWARE GROUP, INC.
Reel/Frame 055257/0747 →
CORRECTIVE ASSIGNMENT TO CORRECT THE NAME OF THE CONVEYING AND RECEIVING PARTIES TO INCLUDE A PERIOD AFTER THE TERM INC PREVIOUSLY RECORDED ON REEL 026468 FRAME 0199. ASSIGNOR(S) HEREBY CONFIRMS THE CHANGE OF NAME FROM I2 TECHNOLOGIES US, INC. TO JDA TECHNOLOGIES US, INC.. Recorded Dec 12, 2020
From: I2 TECHNOLOGIES US, INC.
To: JDA TECHNOLOGIES US, INC.
Reel/Frame 055136/0623 →
RELEASE OF SECURITY INTEREST IN PATENTS AT REEL/FRAME NO. 29556/0809 Recorded Oct 12, 2016
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: JDA SOFTWARE GROUP, INC.
Reel/Frame 040337/0356 →
SECURITY AGREEMENT Recorded Oct 12, 2016
From: RP CROWN PARENT, LLC; RP CROWN HOLDING LLC; JDA SOFTWARE GROUP, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 040326/0449 →
RELEASE OF SECURITY INTEREST IN PATENTS AT REEL/FRAME NO. 29556/0697 Recorded Oct 12, 2016
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: JDA SOFTWARE GROUP, INC.
Reel/Frame 040337/0053 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Jan 2, 2013
From: JDA SOFTWARE GROUP, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 029556/0697 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Jan 2, 2013
From: JDA SOFTWARE GROUP, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 029556/0809 →
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Dec 21, 2012
From: WELLS FARGO CAPITAL FINANCE, LLC
To: JDA TECHNOLOGIES US, INC.
Reel/Frame 029529/0812 →