IP Library Granted Patent US 10,713,085
Granted Patent B2
US 10,713,085 · App. 16/107,703 · Granted Jul 14, 2020

Asynchronous sequential processing execution

Inventors: Chen Fu (Cupertino, CA); John Grant Bennett (Sammamish, WA)
Assignee: Microsoft Technology Licensing, LLC
G06F9/461G06F9/3009G06F9/4843G06F9/542
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 10,713,085
App. No.
16/107,703
Granted
Jul 14, 2020
Kind
B2
Abstract

The described technology provides a system and method for sequential execution of one or more operation segments in an asynchronous event driven architecture. One or more operation segments may be associated and grouped into an activity of operation segments. The operation segments of an activity may be sequentially executed based on a queue structure of references to operation segments stored in a context memory associated with the activity. Any initiated operation segment may be placed on the queue structure upon completion of an associated I/O action.

Claims (30)

1. A system for performing processor executable instructions, the system comprising:

one or more hardware processors;

an activity object initialized in response to receiving a request associated with an operation segment and a next operation segment to be triggered as part of the request, the activity object being configured to access a context memory and a queue structure of the context memory, the operation segment configured to initiate at least one input/output (I/O) action associated with the next operation segment, add a reference to the next operation segment to the queue structure of the context memory upon completion of the at least one I/O action, and initiate execution of an operation segment at the head of the queue structure of the context memory.

2. The system of claim 1 wherein the operation segment is further configured to determine whether the queue structure is empty before adding the reference to the next operation segment and wherein the next operation segment is executed in response to determining that the queue structure is empty.

3. The system of claim 1 wherein the activity object is disabled if the queue structure is empty, wherein disabling the activity object corresponds to releasing a thread to a thread pool.

4. The system of claim 1 wherein the activity object is enabled in response to adding the reference to the next operation segment in the queue structure of the context memory, wherein enabling the activity object corresponds to retrieving a thread from a thread pool to execute the operation segment.

5. The system of claim 1 wherein the context memory stores I/O data associated with the at least one I/O action, the I/O data being retrieved upon execution of the next operation segment.

6. The system of claim 1 , wherein the context memory and the queue structure of the context memory are released when a response is issued by a final operation segment of the activity object.

7. One or more tangible processor-readable storage media embodied with instructions for executing on one or more processors and circuits of a device a process for asynchronous sequential execution, the process comprising:

initializing an activity object in response to receiving a request associated with an operation segment and a next operation segment to be triggered as part of the request, the activity object being configured to access a context memory and a queue structure of the context memory;

initializing an I/O action associated with execution of the operation segment, the operation segment providing a reference to the next operation segment, the next operation segment being associated with completion of the I/O action;

adding the reference to the next operation segment to the queue structure of the context memory in response to completing the I/O action; and

executing an operation segment at the head of the queue structure.

8. The one or more tangible processor-readable storage media of claim 7 wherein executing an operation segment at the head of the queue structure further comprises initializing a second I/O action and providing a reference to a second operation segment associated with completion of the second I/O action.

9. The one or more tangible processor-readable storage media of claim 7 wherein adding the reference to the next operation segment to the queue structure of the context memory in response to completing the I/O action further comprises storing the I/O data of the completed I/O action to the context memory.

10. The one or more tangible processor-readable storage media of claim 9 wherein the I/O data is retrieved upon execution of the next operation segment.

11. The one or more tangible processor-readable storage media of claim 7 wherein the next operation segment is executed if the queue structure of the context memory is empty before adding the reference to the next operation segment to the queue structure of the context memory.

12. A method for asynchronous sequential execution, the method comprising:

initializing an activity object in response to receiving a request associated with an operation segment and a next operation segment to be triggered as part of the request, the activity object being configured to access a context memory and a queue structure of the context memory;

initializing an I/O action associated with execution of the operation segment, the operation segment providing a reference to the next operation segment, the next operation segment being associated with completion of the I/O action;

adding the reference to the next operation segment to the queue structure of the context memory in response to completing the I/O action; and

executing an operation segment referenced at the head of the queue structure.

13. The method of claim 12 wherein executing the operation segment further comprises initiating a second I/O action and a second operation segment associated with the second I/O action and wherein a reference to the second operation segment is added to the queue structure of the context memory upon completion of the second I/O action.

14. The method of claim 12 wherein executing the operation segment referenced at the head of the queue structure further comprises retrieving I/O data associated with the operation segment and instructions for the operation segment from the context memory.

15. The method of claim 12 further comprising determining whether the queue structure in the context memory is empty before storing the reference in the queue structure.

16. The method of claim 12 wherein the operation segment referenced at the head of the queue structure is the next operation segment.

17. The method of claim 12 further comprising disabling the activity object if the queue structure is empty, wherein disabling the activity object corresponds to releasing a thread to a thread pool.

18. The method of claim 12 further comprising enabling the activity object in response to adding a reference to an operation segment in the queue structure of the context memory, wherein enabling the activity object corresponds to retrieving a thread from a thread pool.

19. The method of claim 12 further comprising responding to a request for network resources upon execution of all operation segments of the request.

20. The method of claim 19 further comprising releasing the context memory for use by a second request.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 21, 2018
From: FU, CHEN; BENNETT, JOHN GRANT
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 046653/0499 →
Continuity (2)
Continuation 15171979 · Jun 2, 2016
Related Publication 20180357095A1 · Dec 13, 2018