IP Library Granted Patent US 8,990,838
Granted Patent B2
US 8,990,838 · App. 13/178,270 · Granted Mar 24, 2015

Aggregate personal computer system

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,990,838
App. No.
13/178,270
Granted
Mar 24, 2015
Kind
B2
Abstract

Described is an aggregate computer system that operates by sharing devices of networked computing machines. A consumer machine uses a real device of a producer machine as a virtual device, by coupling the real driver of the real device over the network to a virtual driver of the consumer machine. Each machine may include an aggregate device manager that manages the virtual devices, and/or an aggregate connection manager that processes communications received over at least two different types of networks. Each machine may include a virtual bus and virtual bus driver that simulates a physical connection of a remote device to that machine via a bus. Upon receiving a request to plug-in a virtual device, the consumer machines queries for information of the device, and loads a virtual driver based on the device information when received. The consumer machine may query by sending plug-and-play events to the virtual bus.

Claims (47)

1. A system comprising:

a device-providing computing machine having a first hardware processor; and

a device-consuming computing machine having a second hardware processor,

wherein the device-providing computing machine comprises first computer-executable instructions that cause the first hardware processor of the device-providing computing machine to:

provide a real driver that controls a peripheral device that is physically connected to the device-providing computing machine, the real driver controlling the peripheral device via commands that are received from the device-consuming computing machine via a network; and

control the peripheral device at the device-providing computing machine responsive to the commands received from the device-consuming computing machine,

wherein the device-consuming computing machine comprises second computer-executable instructions that cause the second hardware processor of the device-consuming computing machine to:

provide an application executing on the device-consuming computing machine with control of the peripheral device via a virtual driver that sends the commands from the device-consuming computing machine to the device-providing computing machine over the network.

2. The system according to claim 1 , wherein the peripheral device is a peripheral graphics device and the first computer-executable instructions further cause the first hardware processor of the device-providing computing machine to:

in a first instance, lock the peripheral graphics device at the device-providing computing machine responsive to further user input; and

send a message over the network from the device-providing computing machine to the device-consuming computing machine indicating that the peripheral graphics device is locked at the device-providing computing machine.

3. The system according to claim 2 , wherein the first computer-executable instructions further cause the first hardware processor of the device-providing computing machine to:

display a user interface providing an option to unlock the peripheral graphics device; and

in a second instance when the user unlocks the peripheral graphics device via the displayed user interface, send another message from the device-providing computing machine to the device-consuming computing machine indicating that the device-providing computing machine has unlocked the peripheral graphics device.

4. The system according to claim 3 , wherein the displayed user interface further allows the user to plug in or plug out another peripheral device that is connected to the device-consuming computing machine.

5. The system according to claim 1 , wherein the peripheral device comprises a sound card of the device-providing computing machine that is controlled by the application executing on the device-consuming computing machine.

6. A device-consuming computing machine comprising:

at least one hardware processor; and

computer-executable instructions that cause the at least one hardware processor of the device-consuming computing machine to:

execute an application on the device-consuming computing machine; and

execute a virtual graphics driver configured to provide the application executing on the device-consuming computing machine with control of a graphics device that is physically connected to a device-providing computing machine and not physically connected to the device-consuming computing machine, the virtual graphics driver controlling the graphics device by sending graphics commands from the device-consuming computing machine to the device-providing computing machine via a network,

wherein the device-providing consuming machine executes a real graphics driver configured to control the graphics device locally responsive to the graphics commands received from the device-consuming computing machine that is executing the virtual graphics driver and the application.

7. The device-consuming computing machine according to claim 6 , wherein the instructions further cause the at least one hardware processor of the device-consuming computing machine to:

receive a message sent from the device-providing computing machine to the device-consuming computing machine indicating that the graphics device is unlocked; and

provide the application executing on the device-consuming computing machine with control of the graphics device that is physically connected to the device-providing computing machine responsive to receiving the message.

8. The device-consuming computing machine according to claim 6 , wherein the graphics device is a peripheral device.

9. The device-consuming computing machine according to claim 8 , wherein the graphics device is a graphics card.

10. The device-consuming computing machine according to claim 9 , wherein the graphics device is physically connected to the device-providing computing machine via a peripheral component interconnect bus.

11. The device-consuming computing machine according to claim 6 , wherein the graphics commands sent from the device-consuming computing machine to the device-providing computing machine cause the device-providing computing machine to display a graphical user interface of the device-consuming computing machine thereon.

12. The device-consuming computing machine according to claim 11 , wherein the graphical user interface is a desktop of the device-consuming computing machine that is displayed on the device-providing computing machine responsive to receipt, by the device-providing computing machine, of the graphics commands sent from the device-consuming computing machine.

13. A system comprising the device-consuming computing machine of claim 6 and the device-providing computing machine.

14. The device-consuming computing machine according to claim 6 , wherein the computer-executable instructions further cause the at least one hardware processor of the device-consuming computing machine to:

install the virtual graphics driver on the device-consuming computing machine responsive to establishing a remote connection with the device-providing computing machine.

15. A method performed by at least one hardware processor of a device-consuming computing machine, the method comprising:

executing an application on the device-consuming computing machine; and

providing the application executing on the device-consuming computing machine with a virtual driver that controls an input/output device that is physically connected to a device-providing computing machine, the virtual driver controlling the input/output device by sending commands to the device-providing computing machine via a network,

wherein:

the device-providing computing machine controls the input/output device via a real driver,

the virtual driver executes on the device-consuming computing machine, and

the real driver executes on the device-providing computing machine.

16. The method according to claim 15 , further comprising:

executing the virtual driver in kernel mode on the device-consuming computing machine.

17. The method according to claim 15 , wherein the input/output device comprises a sound card on the device-providing computing machine that is controlled by the commands sent from the device-consuming computing machine.

18. The method according to claim 15 , further comprising:

broadcasting a message to multiple other computing machines indicating that another peripheral device is plugged in or plugged out on the device-consuming computing machine.

19. The method of claim 15 , wherein the device-consuming computing machine comprises a laptop computer, the device-providing computing machine comprises a mobile telephone, and the input/output device comprises a camera on the mobile telephone that is controlled by the commands sent from the device-consuming computing machine to the device-providing computing machine.

20. The method of claim 19 , wherein the laptop computer controls the camera of the mobile telephone by sending the commands wirelessly.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 14, 2016
From: MICROSOFT TECHNOLOGY LICENSING, LLC
To: ZHIGU HOLDINGS LIMITED
Reel/Frame 040354/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034544/0001 →