IP Library Granted Patent US 9,800,939
Granted Patent B2
US 9,800,939 · App. 14/280,221 · Granted Oct 24, 2017

Virtual desktop services with available applications customized according to user type

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,800,939
App. No.
14/280,221
Granted
Oct 24, 2017
Kind
B2
Abstract

Methods and apparatus are described for providing access to arbitrary applications via an interactive television service using a pool of remote virtual desktops.

Claims (60)

1. A system for providing virtual computing services, the system comprising:

one or more servers operable to instantiate and manage operation of a plurality of virtual computers of different types, each server being operable to associate a set of one or more applications running on the server with each virtual computer, wherein the set of one or more applications that is associated with virtual computers of different types are different from one another in order to service different types of users operating the virtual computers, wherein the one or more servers are operable to receive from a particular client a request for allocation of a virtual computer according to a preference of a user operating the particular client, and to allocate a particular type of virtual computer to the particular client in response to the request, the particular type of the virtual computer allocated to the particular client being directed to the preference, each virtual computer comprising a graphic display component and an audio output component, the graphic display component being operable to generate graphic display data for the one or more associated applications, the audio output component being operable to generate audio output data for the one or more associated applications, each server also comprising one or more encoders, each encoder being operable to encode the graphic display data and the audio output data from a corresponding one of the virtual computers for transmission over a network such that the encoded graphic display data and the encoded audio output data are synchronized; and

a plurality of clients each respectively coupled with an associated display, each client being operable to display an interactive menu on the associated display of the client, the interactive menu allowing a user of the client to request virtual computer allocation, each client being operable to transmit the request for virtual computer allocation to the one or more servers, receive the encoded graphic display data and the encoded audio output data for an allocated one of the virtual computers via the network, and render a representation of the allocated virtual computer on the associated display, each client comprising a decoder operable to decode the encoded graphic display data and the encoded audio output data such that visible and audible components of the representation of the allocated virtual computer are substantially synchronized;

wherein at least one of the encoders employs a codec that is operable to employ a plurality of time stamps associated with the graphic display data and the audio output data to encode the graphic display data and the audio output data;

the time stamps associated with the graphic display data and the audio output data are derived at the at least one of the encoders from a simulated reference clock;

the at least one of the encoders is operable to drive the simulated reference clock according to a data rate of the audio stream by computing relative time stamps of successive audio captures of a fixed amount of audio data captured; and

the at least one of the encoders is further operable to time stamp each video capture with a last audio time stamp used.

2. The system of claim 1 wherein each client is implemented in a set top box operable to provide interactive television services on the associated display.

3. The system of claim 2 wherein the network comprises one or more of an IP-based transmission infrastructure, a coaxial cable transmission infrastructure, a satellite communication infrastructure, or a telecommunications infrastructure.

4. The system of claim 1 wherein each client is further operable to capture user input data representing interaction of a user with the representation of the allocated virtual computer, and to transmit the user input data to a first one of the servers managing the allocated virtual computer, the first server being operable to provide the user input data to the one or more applications associated with the allocated virtual computer.

5. The system of claim 4 wherein the user input data are generated by one or more of a keyboard, a mouse, a remote control, a game controller, a joystick, a camera, or a microphone.

6. The system of claim 4 wherein the representation of the allocated virtual computer rendered by each client includes a cursor representation, each client being operable to render the cursor representation locally.

7. The system of claim 6 wherein the first server is further operable to identify a visual appearance for the cursor representation relative to the one or more applications in conjunction with providing the user input data to the one or more applications associated with the allocated virtual computer, and to communicate the visual appearance to a first one of the clients corresponding to the allocated virtual computer, the first client being operable to render the cursor representation to have the visual appearance.

8. The system of claim 1 wherein each client is integrated with the associated display.

9. The system of claim 1 , wherein the one or more servers are further operable to:

instantiate a pool of available virtual computers; and

select an unused virtual computer from the pool for allocation to the particular client in response to receiving the request from the particular client.

10. A computer-implemented method for providing virtual computing services, the method comprising:

instantiating a plurality of virtual computers of different types, each virtual computer comprising a graphic display component and an audio output component;

associating a set of one or more applications with each of the virtual computers, wherein the set of one or more applications that is associated with virtual computers of different types are different from one another in order to service different types of users operating the virtual computers;

receive from a requesting client a request for allocation of a virtual computer according to a preference of a user operating the requesting client;

allocating a particular virtual computer of a particular type to the requesting client in response to the request, the particular type of the particular virtual computer being directed to the preference;

generating graphic display data for the set of one or more associated applications by the graphic display component of the particular virtual computer, and generating audio output data for the set of one or more applications by the audio output component of the particular virtual computer;

encoding the graphic display data and the audio output data from the particular virtual computer for transmission over a network to the requesting client such that the encoded graphic display data and the encoded audio output data are synchronized;

employing a codec that is operable to employ a plurality of time stamps associated with the graphic display data and the audio output data while encoding the graphic display data and the audio output data;

deriving the time stamps associated with the graphic display data and the audio output data from a simulated reference clock;

driving the simulated reference clock according to a data rate of the audio stream by computing relative time stamps of successive audio captures of a fixed amount of audio data captured; and

time stamping each video capture with a last audio time stamp used.

11. The method of claim 10 wherein the network comprises one or more of an IP-based transmission infrastructure, a coaxial cable transmission infrastructure, a satellite communication infrastructure, or a telecommunications infrastructure.

12. The method of claim 10 further comprising:

receiving user input data representing interaction of a user with a representation of the particular virtual computer; and

providing the user input data to the one or more applications associated with the particular virtual computer.

13. The method of claim 12 further comprising:

identifying a visual appearance for a cursor representation relative to the one or more applications in conjunction with providing the user input data to the one or more applications associated with the particular virtual computer; and

communicating the visual appearance to the requesting client for local rendering of the cursor representation by the requesting client.

14. The method of claim 10 , further comprising:

instantiating a pool of available virtual computers; and

selecting an unused virtual computer from the pool for allocation to the requesting client in response to receiving the request from the requesting client.

15. The method of claim 10 , wherein each client is implemented in a set top box operable to provide interactive television services on the associated display.

16. A non-transitory computer-readable medium comprising computer executable instructions that when executed by a computer cause the computer to provide virtual computing services, the non-transitory computer-readable medium comprising instructions for:

instantiating a plurality of virtual computers of different types, each virtual computer comprising a graphic display component and an audio output component;

associating a set of one or more applications with each of the virtual computers, wherein the set of one or more applications that is associated with virtual computers of different types are different from one another in order to service different types of users operating the virtual computers;

receive from a requesting client a request for allocation of a virtual computer according to a preference of a user operating the requesting client;

allocating a particular virtual computer of a particular type to the requesting client in response to the request, the particular type of the particular virtual computer being directed to the preference;

generating graphic display data for the set of one or more associated applications by the graphic display component of the particular virtual computer, and generating audio output data for the set of one or more applications by the audio output component of the particular virtual computer;

encoding the graphic display data and the audio output data from the particular virtual computer for transmission over a network to the requesting client such that the encoded graphic display data and the encoded audio output data are synchronized;

employing a codec that is operable to employ a plurality of time stamps associated with the graphic display data and the audio output data while encoding the graphic display data and the audio output data;

deriving the time stamps associated with the graphic display data and the audio output data from a simulated reference clock;

driving the simulated reference clock according to a data rate of the audio stream by computing relative time stamps of successive audio captures of a fixed amount of audio data captured; and

time stamping each video capture with a last audio time stamp used.

17. The non-transitory computer-readable medium of claim 16 , wherein the method further comprises:

instantiating a pool of available virtual computers; and

selecting an unused virtual computer from the pool for allocation to the requesting client in response to receiving the request from the requesting client.

18. The non-transitory computer-readable medium of claim 16 , wherein the network comprises one or more of an IP-based transmission infrastructure, a coaxial cable transmission infrastructure, a satellite communication infrastructure, or a telecommunications infrastructure.

19. The non-transitory computer-readable medium of claim 16 , wherein the non-transitory computer-readable medium further comprises instructions for:

receiving user input data representing interaction of the user with a representation of the particular virtual computer; and

providing the user input data to the one or more applications associated with the particular virtual computer.

20. The non-transitory computer-readable medium of claim 16 , wherein the non-transitory computer-readable medium further comprises instructions for:

identifying a visual appearance for a cursor representation relative to the one or more applications in conjunction with providing the user input data to the one or more applications associated with the particular virtual computer; and

communicating the visual appearance to the requesting client for local rendering of the cursor representation by the requesting client.

Assignments (5)
SECURITY INTEREST Recorded May 16, 2023
From: GUEST TEK INTERACTIVE ENTERTAINMENT LTD.
To: BANK OF MONTREAL
Reel/Frame 064176/0385 →
SECURITY INTEREST Recorded Mar 19, 2015
From: GUEST TEK INTERACTIVE ENTERTAINMENT LTD.
To: ALBERTA TREASURY BRANCHES
Reel/Frame 035225/0458 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 7, 2014
From: DUKE, THOMAS R.; THOMAS, JASON; HULSE, DAVID
To: IBAHN GENERAL HOLDINGS CORPORATION
Reel/Frame 033484/0666 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 7, 2014
From: IBAHN GENERAL HOLDINGS CORPORATION
To: GUEST-TEK INTERACTIVE ENTERTAINMENT INC.
Reel/Frame 033484/0785 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 7, 2014
From: GUEST-TEK INTERACTIVE ENTERTAINMENT INC.
To: GUEST TEK INTERACTIVE ENTERTAINMENT LTD.
Reel/Frame 033484/0850 →