IP Library Granted Patent US 8,661,197
Granted Patent B2
US 8,661,197 · App. 13/462,677 · Granted Feb 25, 2014

Opportunistic block transmission with time constraints

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 8,661,197
App. No.
13/462,677
Granted
Feb 25, 2014
Kind
B2
Abstract

A technique for determining a data window size allows a set of predicted blocks to be transmitted along with requested blocks. A stream enabled application executing in a virtual execution environment may use the blocks when needed.

Claims (47)

1. A system comprising:

a virtual execution environment;

a block granularity caching engine;

a cache;

wherein, in operation:

a process associated with a stream-enabled application is executed in the virtual execution environment;

the virtual execution environment intercepts a request for a resource from the process executing in the virtual execution environment;

the virtual execution environment identifies one or more blocks that are associated with the resource;

the virtual execution environment makes a block request for a requested block associated with the resource;

the block granularity caching engine receives predictively streamed blocks as the predictively streamed blocks are transmitted to the system, the predictively streamed blocks being included as part of an output buffer that includes only requested blocks and the predictively streamed blocks, the output buffer having a size limit based on a data window size that is within an interactivity threshold time throughput, the interactivity threshold being a predetermined time period, a number of the predictively streamed blocks being included in the output buffer based in part on the size limit;

the block granularity caching engine intercepts the block request from the virtual execution environment;

the block granularity caching engine checks the cache for blocks to satisfy the block request;

the block granularity caching engine associates at least one of the predictively streamed blocks with the requested block associated with the resource;

the block granularity caching engine provides the at least one predictively streamed block to the virtual execution environment if the at least one predictively streamed block is found in the cache;

the virtual execution environment satisfies the resource request of the process using the at least one predictively streamed block.

2. The system of claim 1 , wherein the requested block associated with the resource has not been predictively streamed and stored in the cache, further comprising:

an interface, wherein, in operation, the interface sends the block request to a streaming system.

3. The system of claim 1 , further comprising:

an interface, wherein, in operation, the interface receives the predictively streamed block from a streaming system.

4. A method, comprising:

executing a process associated with a stream-enabled application in a virtual execution environment;

intercepting a request for a resource from the process executing in the virtual environment;

identifying one or more blocks that are associated with the resource;

making a block request for a requested block associated with the resource;

receiving predictively streamed blocks as the predictively streamed blocks are transmitted, the predictively streamed blocks being included as part of an output buffer that includes only requested blocks and the predictively streamed blocks, the output buffer having a size limit based on a data window size that is within an interactivity threshold time throughput, the interactivity threshold being a predetermined time period, a number of the predictively streamed blocks being included in the output buffer based in part on the size limit;

intercepting the block request associated with the resource;

checking a cache for blocks to satisfy the block request;

associating at least one of the predictively streamed blocks with the requested block associated with the resource;

providing the at least one predictively streamed block to the virtual execution environment if the at least one predictively streamed block is found in the cache;

satisfying the resource request of the process using the at least one predictively streamed block.

5. The method of claim 4 , further comprising sending the block request to a streaming system before the requested block associated with the resource has been predictively streamed.

6. The method of claim 4 , further comprising receiving at an interface the predictively streamed block from a streaming system.

7. The method of claim 4 , further comprising:

breaking deliverables into blocks of a size that facilitates providing the requested blocks and the predictively streamed blocks within the interactivity threshold;

providing information useful for determining the data window size;

aggregating the requested blocks and the predictively streamed blocks into the output buffer wherein the predictively streamed blocks include the at least one predictively streamed block.

8. A computer program product embodied on a non-transitory computer readable medium, the computer program product comprising a processor configured to execute instructions implementing a method comprising:

executing a process associated with a stream-enabled application in a virtual execution environment;

intercepting a request for a resource from the process executing in the virtual environment;

identifying one or more blocks that are associated with the resource;

making a block request for a requested block associated with the resource;

receiving predictively streamed blocks as the predictively streamed blocks are transmitted, the predictively streamed blocks being included as part of an output buffer that includes only requested blocks and the predictively streamed blocks, the output buffer having a size limit based on a data window size that is within an interactivity threshold time throughput, the interactivity threshold being a predetermined time period, a number of the predictively streamed blocks being included in the output buffer based in part on the size limit;

intercepting the block request associated with the resource;

checking a cache for blocks to satisfy the block request;

associating at least one of the predictively streamed blocks with the requested block associated with the resource;

providing the at least one predictively streamed block to the virtual execution environment if the at least one predictively streamed block is found in the cache;

satisfying the resource request of the process using the at least one predictively streamed block.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 21, 2012
From: ENDEAVORS TECHNOLOGIES, INC.
To: NUMECENT HOLDINGS, INC.
Reel/Frame 029522/0340 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE NAME FROM ENDEAVORS, INC. PREVIOUSLY RECORDED ON REEL 028613 FRAME 0646. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT TO ENDEAVORS TECHNOLOGIES, INC. Recorded Jul 24, 2012
From: DE VRIES, JEFFREY; HITOMI, ARTHUR S.
To: ENDEAVORS TECHNOLOGIES, INC.
Reel/Frame 028629/0551 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 23, 2012
From: DE VRIES, JEFFREY; HITOMI, ARTHUR S.
To: ENDEAVORS, INC.
Reel/Frame 028613/0646 →