Patent ID: 8239466

Claim:
A method comprising: receiving an instant message (IM) from a first device, the IM addressed to a second device, the first device capable of communicating with a proxy; determining whether the second device is local to the proxy; storing the IM received from the first device in a message cache in response to determining that the second device is local to the proxy; determining a dynamic weight associated with the IM based on a weighting scheme; determining whether the dynamic weight associated with the IM satisfies a pre-determined threshold value; in response to determining that the dynamic weight associated with the IM satisfies the pre-determined threshold, determining a length of time to store the IM in the message cache based at least in part on the dynamic weight; in response to determining that the second device is available to receive the IM, sending the IM from the message cache to the second device and removing the IM from the message cache; determining, using the weighting scheme, an additional dynamic weight associated with each of additional IMs stored in the message cache; prioritizing the additional IMs stored in the message cache based on the additional dynamic weight associated with each of the additional IMs; and determining the length of time to store each of the additional IMs based on the prioritized additional IMs stored in the message cache.