IP Library Granted Patent US 9,021,503
Granted Patent B2
US 9,021,503 · App. 12/019,041 · Granted Apr 28, 2015

Coordinating application state and communication medium state

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,021,503
App. No.
12/019,041
Granted
Apr 28, 2015
Kind
B2
Abstract

The present invention extends to methods, systems, and computer program products for coordinating application sate and communication mediums state. Embodiments of present invention provide a mechanism for a communication medium to provide a view of message content for a message (a peek) to an application along with the communication medium preventing further access to the message (a lock) until the application signals back how to handle the message. Thus, the communication medium indicates that the message is locked for the duration of processing at the application. Indicating that the message is locked significantly reduces the chance of the message being provided to another application (or another consumer of the same application) during the time the application is processing the view of message content.

Claims (20)

1. In a computer architecture including a communication medium and an application with a plurality of consumers that consume messages from the communication medium, a method for coordinating state between the communication medium and the application, the method comprising:

an act of a consumer sending a message request to the communication medium;

an act of the consumer receiving a view of the contents of a message from the communication medium, the receiving being a result of a receive function which is separated into an access action and a lock action, the communication medium having locked the message for exclusive access by the consumer in response to the message request and the communication medium having provided a view of the contents of the message to the consumer such that a competing consumer sees a message immediately following the locked message as a next available message;

an act of the consumer attempting to update application state for the application based on the content view;

an act of determining the results of the attempted application state update; and

an act of signaling the communication medium how to update communication medium state based on the determined results to coordinate the communication medium state with the application state, the signal indicating the communication medium state is to unlock the message when the consumer cannot accept the message and the signal indicating the communication medium state is to delete the message when the consumer successfully accepts the message;

wherein the act of the consumer receiving a view of the contents of a message from the communication medium comprises an act of receiving a view of a message body that is contained in a message envelope along with a message header,

wherein the contents of a message comprise an object,

wherein the object is extended with property associated with the message, the property being an abstraction of a portion of temporary state the communication medium is holding and associating with the message, and

wherein the consumer interacts with the property to complete message receipt.

2. The method as recited in claim 1 , wherein the act of determining the results of the attempted application state update comprises an act of determining that the attempted application state update successfully transitioned the state of the application.

3. The method as recited in claim 2 , wherein an act of determining that the attempted application state update successfully transitioned the state of the application comprises an act of determining that the attempted application state update successfully transitioned the application to a next state.

4. The method as recited in claim 2 , wherein an act of determining that the attempted application state update successfully transitioned the state of the application comprises:

an act of determining that the attempted application state update failed to transition the application to a next state;

an act of attempting to transition the application to an alternate next state in response to the failure to transition the application to the next state; and

an act of determining that the attempted application state update successfully transitioned the application to the alternate next state.

5. The method as recited in claim 2 , wherein the act of signaling the communication medium how to update communication medium state comprises an act of signaling the communication medium to delete the message.

6. The method as recited in claim 1 , wherein the act of determining the results of the attempted application state update comprises an act of determining that the attempted application state update failed to transition the state of the application.

7. The method as recited in claim 6 , wherein the act of signaling the communication medium how to update communication medium state comprises an act of signaling the communication medium to unlock the message.

8. The method recited in claim 1 , wherein the act of the consumer attempting to update application state for the application based on the content view, the act of determining the results of the attempted application state update, and the act signaling the communication medium how to update communication medium state based on the determined results to coordinate the communication medium state with the application state are all part of and included in the same transaction.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034542/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 24, 2008
From: ALLEN, NICHOLAS A.; BATRES, STEFAN; ELIEN, JEAN-EMILE; TAYLOR, JOHN A.
To: MICROSOFT CORPORATION
Reel/Frame 020409/0673 →