IP Library Granted Patent US 9,015,303
Granted Patent B2
US 9,015,303 · App. 13/230,823 · Granted Apr 21, 2015

Message queue behavior optimizations

Inventors: Jayteerth Katti (Redmond, WA); Kartik Paramasivam (Redmond, WA); Stuart John Langley (Woolooware, AU); Pramod Gurunath (Sammamish, WA); Muralidhar Krishnaprasad (Redmond, WA); Elvin Morales (Kew Gardens, NY); Manu Srivastava (Redmond, WA)
Assignee: Microsoft Corporation
H04L51/26H04L51/30
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 9,015,303
App. No.
13/230,823
Granted
Apr 21, 2015
Kind
B2
Abstract

Network and storage calls are reduced by batching messages. Messages are collected from a client and sent to the gateway or backend application in one round trip. Alternatively, the messages are collected for different entities, and the batched messages are durably stored. Related messages, which may have the same sessionID, are grouped into a logical unit or session. This session may be locked to a single message consumer. A session may be associated with an application processing state as an atomic unit of work while other operations are performed on the messages in the session. Acknowledgements are accumulated by a broker on a message server, but the messages are not immediately deleted. Instead, multiple messages in a selected range are periodically truncated from a message store in a single operation. Expired messages for active sessions are proactive cleaned up to prevent sessions from reaching a quota or limit.

Claims (25)

1. A method, comprising: receiving messages at a message server from a source;

collecting the messages into a plurality of groups based upon properties associated with the messages, wherein the properties associated with the messages used for grouping comprise message topics;

storing messages of each of the plurality of groups in a corresponding one of a plurality of queues, wherein messages in a selected one the plurality of groups are directed from the source to an individual one of a plurality of destinations;

and sending all of the messages in the selected group to the individual destination in a single transaction; wherein the destination is a gateway.

2. The method of claim 1 , wherein each of the groups is buffered in a different one of the plurality of queues.

3. The method of claim 1 , wherein the individual destination is a backend application configured to process the messages in the selected group.

4. The method of claim 1 , wherein the messages are orders, wherein each of the plurality of queues is configured to store orders from different sources, and wherein the difference sources are present at a same location.

5. The method of claim 4 , wherein the location is a city.

6. The method of claim 4 , wherein each of the plurality of destinations is configured to apply a different location-specific processing to the orders.

7. The method of claim 6 , wherein the location-specific processing includes a tax rate.

8. The method of claim 6 , wherein the location specific-processing includes a delivery option.

9. A system, comprising:

a processor; and

a memory coupled to the processor, the memory having program instructions stored thereon that, upon execution by the processor, cause the system to:

receive messages at a message server from a source;

collect the messages into a plurality of groups based upon properties associated with the messages;

store messages of each of the plurality of groups in a corresponding one of a plurality of queues, wherein messages in a selected one the plurality of groups were sent by the source to an individual one of a plurality of destinations; and

send all of the messages in the selected group to the individual destination in a single transaction, wherein the destination is a gateway.

10. The system of claim 9 , wherein the individual destination is a durable message store.

11. The system of claim 9 , wherein the properties associated with the messages used for collecting comprise a destination address in a message header.

12. The system of claim 9 , wherein the properties associated with the messages used for collecting comprise source address in a message header.

13. A computer-readable storage device comprising instructions that, when executed by a computer, cause the computer to:

receive messages at a message server from a source;

collect the messages into one or more a plurality of groups based upon properties associated with the messages store messages of each of the plurality of groups in a corresponding one of a plurality of queues, wherein messages in a selected one the plurality of groups were sent by the source to reach a single one of a plurality of destinations; and

send all of the messages in the selected group to the single destination in a single transaction, wherein the messages are acknowledgements of previously sent messages; wherein the destination is a gateway.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034544/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 19, 2011
From: KATTI, JAYTEERTH; PARAMASIVAM, KARTIK; LANGLEY, STUART JOHN; GURUNATH, PRAMOD; KRISHNAPRASAD, MURALIDHAR; MORALES, ELVIN; SRIVASTAVA, MANU
To: MICROSOFT CORPORATION
Reel/Frame 027082/0448 →
Continuity (1)
Related Publication 20130066977A1 · Mar 14, 2013