IP Library Granted Patent US 7,487,212
Granted Patent B2
US 7,487,212 · App. 10/022,325 · Granted Feb 3, 2009

Fast path message transfer agent

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 7,487,212
App. No.
10/022,325
Granted
Feb 3, 2009
Kind
B2
Abstract

A method of providing a fast path message transfer agent is provided. The method includes receiving bytes of a message over a network connection and determining whether the number of bytes exceeds a predetermined threshold. If the number of bytes is less than a predetermined threshold, then the message is written only to memory. However, if the number of bytes exceeds the predetermined threshold, then some of the bytes (e.g. up to the predetermined threshold) are written to memory, wherein the remainder of the bytes are stored onto the non-volatile storage. If the message was received successfully by each destination, then the message is removed from the memory/non-volatile storage. If not, all failed destinations are identified and the message (with associated failed destinations) is stored on the nonvolatile storage for later sending.

Claims (34)

1. A method, implemented in hardware, comprising:

receiving bytes of a message over a network connection;

determining whether a number of bytes of the message exceeds a predetermined threshold of bytes set for a message;

wherein if not, then writing the message only to a memory;

wherein if so, then writing the message to the memory and a non-volatile storage, including: writing a portion of the bytes up to the predetermined threshold to the memory; storing a remainder of the bytes onto the non-volatile storage; determining whether all bytes of the message have been received; wherein if not, then receiving additional bytes of the message over the network connection; writing the additional bytes onto the non-volatile storage; wherein if so, then proceeding to re-route the message; wherein if the number of bytes is less than the predetermined threshold and all bytes of the message have been received, then proceeding to re-route the message;

accessing the message;

sending the message to each destination;

determining whether the message was received successfully by each destination;

wherein if the message was received successfully by each destination, then removing the message from the memory and the non-volatile storage, if on the non-volatile storage; and indicating a successful receipt of the message;

wherein if the message was not received successfully by each destination, then identifying all failed destinations; storing the message on the non-volatile storage; and indicating a successful receipt of the message.

2. The method of claim 1 , further including retrying the failed destinations after a delay.

3. The method of claim 2 , further including;

determining whether the message is successfully received by the failed destinations,

wherein if not, then returning to the step of retrying the failed destinations after a delay; and

wherein if so, then removing the message from the non-volatile storage.

4. The method of claim 3 , further including disabling the fast path message transfer agent if a predetermined condition exists.

5. A computer usable storage medium, implemented in hardware, having a computer readable program code embodied therein for providing a fast path message transfer agent, the computer readable program code comprising:

computer readable program code that receives bytes of a message over a network connection;

computer readable program code that determines if a number of bytes of the message exceeds a predetermined threshold of bytes set for a message; wherein if not, then writing the message only to a memory; wherein if so, then writing the message to the memory and a non-volatile storage;

computer readable program code that writes a portion of the bytes up to the predetermined threshold to the memory;

computer readable program code that stores a remainder of the bytes onto the non-volatile storage;

computer readable program code that determines if all bytes of the message have been received; wherein if not, then receiving additional bytes of the message over the network connection and writing the additional bytes onto the non-volatile storage; wherein if so, then proceeding to re-route the message;

computer readable program code that proceeds to re-route the message if the number of bytes is less than the predetermined threshold and all bytes of the message have been received;

computer readable program code that accesses the message;

computer readable program code that sends the message to each destination;

computer readable program code that determines if the message was received successfully by each destination;

computer readable program code that removes the message from the memory and the non-volatile storage, if on the non-volatile storage, and indicates a successful receipt of the message if the message was received successfully by each destination;

computer readable program code that identifies all failed destinations, stores the message on the non-volatile storage, and indicates a successful receipt of the message if the message was not received successfully by each destination.

6. The computer program product of claim 5 , further comprising:

computer readable program code that retries the failed destinations after a delay.

7. The computer program product of claim 6 , further comprising:

computer readable program code that determines whether the message is successfully received by the failed destinations, wherein if not, then returning to the step of retrying the failed destinations after a delay, and wherein if so, then removing the message from the non-volatile storage.

8. The computer program product of claim 7 , further comprising:

computer readable program code that disables the fast path message transfer agent if a predetermined condition exists.

Assignments (17)
RELEASE OF SECURITY INTEREST Recorded Mar 8, 2016
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS AGENT
To: CRITICAL PATH, INC.
Reel/Frame 037924/0246 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 30, 2014
From: MIRAPOINT SOFTWARE, INC.
To: CRITICAL PATH, INC.
Reel/Frame 033421/0136 →
RELEASE OF SECURITY INTEREST Recorded Dec 3, 2013
From: SILICON VALLEY BANK
To: CRITICAL PATH, INC.
Reel/Frame 031709/0175 →
SECURITY AGREEMENT Recorded Dec 3, 2013
From: CRITICAL PATH, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS AGENT
Reel/Frame 031763/0778 →
RELEASE OF SECURITY INTEREST Recorded Nov 11, 2013
From: ESCALATE CAPITAL I, L.P.
To: CRITICAL PATH, INC.
Reel/Frame 031578/0520 →
THIRD AMENDED AND RESTATED INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Jan 31, 2012
From: CRITICAL PATH, INC.
To: ESCALATE CAPITAL I, L.P.
Reel/Frame 027629/0433 →
RELEASE OF SECURITY INTEREST Recorded Dec 2, 2010
From: SQUARE 1 BANK
To: MIRAPOINT SOFTWARE, INC.
Reel/Frame 025381/0870 →
SECURITY AGREEMENT Recorded Nov 6, 2010
From: CRITICAL PATH, INC.
To: SILICON VALLEY BANK
Reel/Frame 025328/0374 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ADDRESS OF RECEIVING PARTY DATA FROM 150 ALMADEN BOULEVARD, SAN JOSE, CA, 95113 TO 909 HERMOSA CT., SUNNYVALE, CA 94085, PREVIOUSLY RECORDED ON REEL 021526 FRAME 0401. ASSIGNOR(S) HEREBY CONFIRMS THE CONTRIBUTION AGREEMENT, CERTIFICATE OF INCORPORATION, AMENDED AND RESTATED CERTIFICATE OF INCORPORATION. Recorded Sep 18, 2008
From: ESCALATE CAPITAL I, L.P.
To: MIRAPOINT SOFTWARE, INC.
Reel/Frame 021554/0106 →
CONTRIBUTION AGREEMENT Recorded Sep 12, 2008
From: MIRAPOINT, INC.
To: ESCALATE CAPITAL I, L.P.
Reel/Frame 021526/0355 →
CONTRIBUTION AGREEMENT, CERTIFICATE OF INCORPORATION, AMENDED AND RESTATED CERTIFICATE OF INCORPORATION Recorded Sep 12, 2008
From: ESCALATE CAPITAL I, L.P.
To: MIRAPOINT SOFTWARE, INC.
Reel/Frame 021526/0401 →
SECURITY AGREEMENT Recorded Feb 15, 2008
From: MIRAPOINT SOFTWARE, INC.
To: SQUARE 1 BANK
Reel/Frame 020526/0232 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 21, 2007
From: MIRAPOINT, INC.
To: ESCALATE CAPITAL I, L.P.
Reel/Frame 020143/0243 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 21, 2007
From: ESCALATE CAPITAL I, L.P.
To: MIRAPOINT SOFTWARE, INC.
Reel/Frame 020143/0249 →
SECURITY AGREEMENT Recorded Nov 21, 2007
From: MIRAPOINT SOFTWARE, INC.
To: ESCALATE CAPITAL I, L.P.
Reel/Frame 020143/0327 →
SECURITY AGREEMENT Recorded Oct 5, 2007
From: MIRAPOINT, INC.
To: ESCALATE CAPITAL I, L.P.
Reel/Frame 019920/0624 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 14, 2001
From: TAYLOR, BRADLEY
To: MIRAPOINT, INC
Reel/Frame 012395/0594 →