Accelerating USB redirection over a network

US9544179B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9544179-B2
Application numberUS-201414281650-A
CountryUS
Kind codeB2
Filing dateMay 19, 2014
Priority dateMay 1, 2013
Publication dateJan 10, 2017
Grant dateJan 10, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

In particular embodiments, a client computing device identifies a USB device connected to the client computing device. The client computing device redirects the USB device to a remote server computing device. The client computing device determines whether the USB device is of a particular device type, and if the USB device is determined to be of the particular device type, then the client computing device requests data from the USB device. Upon receiving a response from the USB device comprising data, the client computing device sends the data to the remote server computing device.

First claim

Opening claim text (preview).

What is claimed is: 1. A method comprising: by a client computing device, identifying a Universal Serial Bus (USB) device connected to the client computing device, wherein one or more interfaces are associated with the USB device; by an interface redirection function driver of the client computing device, reading one or more descriptors associated with the USB device, wherein the one or more descriptors comprise at least one of a device descriptor, a configuration descriptor, and an interface descriptor; by the interface redirection function driver, parsing the one or more descriptors to create one or more independent virtual devices based, at least in part, on functionality of the one or more interfaces; grouping at least one of the one or more interfaces into at least one of the one or more independent virtual devices based, at least in part, on functionality of the one or more interfaces, wherein the system is adapted to group the one or more interfaces with a plurality of the one or more independent virtual devices; by the client computing device, redirecting the grouped one or more interfaces to a remote server computing device such that the one or more independent virtual devices associated with the grouped one or more interfaces are available to one or more applications associated with the remote server computing device as if locally installed at the remote server computing device; by the client computing device, passing to the remote server computing device at least one of an interface number associated with each of the one or more interfaces and the one or more descriptors; by the client computing device, determining whether the USB device is of a particular device type; and if the USB device is determined to be of the particular device type: by the client computing device, notifying the remote server computing device of the determined particular device type; by the client computing device, receiving, from the remote server computing device, a request for data from the USB device; by the client computing device, requesting the data from the USB device; and upon receiving a response from the USB device comprising the requested data, sending the response to the remote server computing device. 2. The method of claim 1 , wherein the particular device type comprises signature pad devices. 3. The method of claim 1 , further comprising, if the USB device is not determined to be of the particular device type: by the client computing device, waiting for a data request from the remote server computing device; by the client computing device, in response to receiving a data request from the remote server computing device, reading data from the USB device; and by the client computing device, sending the data to the remote server computing device. 4. The method of claim 1 , wherein the remote server computing device is operable to queue data received from the client computing device. 5. The method of claim 4 , wherein data in the queue is deleted once it reaches a pre-determined threshold age. 6. The method of claim 5 , wherein the pre-determined threshold age may be dynamically determined, and wherein the pre-determined threshold age corresponds to an amount of time elapsed since the data was received by the remote server computing device. 7. The method of claim 4 wherein the remote server computing device provides data from the queue in response to a request from an application to read the USB device. 8. The method of claim 1 , wherein redirecting the USB device to the remote server computing device is performed for a particular class of USB transfer data. 9. The method of claim 8 , wherein the particular class of USB transfer data comprises one or more of the following: USB BULK data; USB INTERRUPT data; USB ISOCHRONOUS data; or USB CONTROL data. 10. The method of claim 1 , wherein the USB device is a composite device. 11. An information-handling system comprising: one or more processors; and a memory coupled to the processors comprising instructions executable by the processors, the processors being operable when executing the instructions to: identify a Universal Serial Bus (USB) device connected to a client computing device, wherein one or more interfaces are associated with the USB device; read one or more descriptors associated with the USB device, wherein the one or more descriptors comprise at least one of a device descriptor, a configuration descriptor, and an interface descriptor; parse the one or more descriptors to create one or more independent virtual devices associated with the one or more interfaces; group at least one of the one or more interfaces into at least one of the one or more independent virtual devices based, at least in part, on functionality of the one or more interfaces, wherein the system is adapted to group the one or more interfaces with a plurality of the one or more independent virtual devices; redirect the grouped one or more interfaces to a remote server computing device such that the one or more independent virtual devices associated with the grouped one or more interfaces are available to one or more applications associated with the remote server computing device as if locally installed at the remote server computing device; pass to the remote server computing device at least one of an interface number associated with each of the one or more interfaces and the one or more descriptors; determine whether the USB device is of a particular device type; and if the USB device is determined to be of the particular device type: notify the remote server computing device of the determined particular device type; receive from the remote server computing device a request for data from the USB device; request the data from the USB device; and upon receiving a response from the USB device comprising the requested data, send the response to the remote server computing device. 12. The information-handling system of claim 11 , wherein the particular device type comprises signature pad devices. 13. The information-handling system of claim 11 , further comprising, if the USB device is not determined to be of the particular device type: wait for a data request from the remote server computing device; in response to receiving a data request from the remote server computing device, read data from the USB device; and send the data to the remote server computing device. 14. The information-handling system of claim 11 , wherein the remote server computing device is operable to queue data received from the client computing device. 15. The information-handling system of claim 14 , wherein data in the queue is deleted once it reaches a pre-determined threshold age. 16. The information-handling system of claim 15 , wherein the pre-determined threshold age may be dynamically determined, and wherein the pre-determined threshold age corresponds to an amount of time elapsed since the data was received by the server computing device. 17. The information-handling system of claim 14 , wherein the remote server computing device provides data from the queue in response to a request from an application to read the USB device. 18. The information-handling system of claim 11 , wherein redirecting the USB device to the remote server computing device is performed for a particular class of USB transfer data. 19. The information-handling system of claim 18 , wherein the particular class of USB transfer data comprises one or more of the following: USB BULK data; USB INTERRUPT data; or USB CON

Assignees

Inventors

Classifications

  • H04L67/125Primary

    involving control of end-device applications over a network · CPC title

  • G06F13/00Primary

    Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units (interface circuits for specific input/output devices G06F3/00 {; multiprogram control therefor  G06F9/46}; multiprocessor systems  G06F15/16 ) · CPC title

  • Electricity · mapped topic

  • using bus bridges (G06F13/4022 takes precedence) · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9544179B2 cover?
In particular embodiments, a client computing device identifies a USB device connected to the client computing device. The client computing device redirects the USB device to a remote server computing device. The client computing device determines whether the USB device is of a particular device type, and if the USB device is determined to be of the particular device type, then the client compu…
Who is the assignee on this patent?
Dell Products Lp
What technology area does this patent fall under?
Primary CPC classification H04L67/125. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Jan 10 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).