IP Library › Granted Patent US 11,533,349
Granted Patent B2
US 11,533,349 · App. 17/504,686 · Granted Dec 20, 2022

Perhipheral device sharing over peer-to-peer connection

Inventors: Yedong Yu (Nanjing, CN); Jiandong Hong (Nanjing, CN); Yajun Yao (Nanjing, CN); Mingming Ren (Nanjing, CN); Yuan Zhang (Nanjing, CN); Juanjuan Chen (Nanjing, CN); Qiaofei Zhu (Nanjing, CN)
Assignee: Citrix Systems, Inc.
H04L65/65H04L61/5007H04L65/1073H04L65/70H04L67/1078H04L67/1091
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 11,533,349
App. No.
17/504,686
Granted
Dec 20, 2022
Kind
B2
Abstract

Disclosed is a computing system capable of performing a method that involves receiving, from a first device, a first indication that a peripheral device associated with the first device is available for sharing; sending, to a second device, a second indication that the peripheral device is available for sharing; receiving, from the second device, a request to access the peripheral device; and based at least in part on receipt of the request, causing a peer-to-peer connection to be established between the second device and the first device, the peer-to-peer connection enabling communication between the second device and the peripheral device. The peer-to-peer connection may, for example, enable direction of the peripheral device to the second device so that the peripheral device is a virtual device of the second device.

Claims (58)

1. A method performed by a computing system, comprising:

receiving, by a computing system and from a first device, a request to access a peripheral device associated with a second device; and

based at least in part on receipt of the request, causing a peer-to-peer connection to be established between the first device and the second device by sending instructions to the first device, the instructions including an identifier of the peripheral device, a network address of the second device, and a network address for a service to which the first device is to send a request to coordinate signaling between the first device and the second device to establish the peer-to-peer connection, the peer-to-peer connection enabling communication between the first device and the peripheral device.

2. The method of claim 1 , wherein the network address of the second device comprises a first internet protocol (IP) address to which the first device can direct first messages over the peer-to-peer connection, and causing the peer-to-peer connection to be established further comprises:

receiving, from the first device, a second IP address associated with the first device; and

sending the second IP address to the second device to enable the second device to send second messages to the first device over the peer-to-peer connection.

3. The method of claim 1 , wherein causing the peer-to-peer connection to be established further comprises:

receiving, from the second device, first information identifying data handling capabilities of the second device;

sending the first information to the first device to enable the first device to communicate with the second device over the peer-to-peer connection;

receiving, from the first device, second information identifying data handling capabilities of the first device; and

sending the second information to the second device to enable the second device to communicate with the first device over the peer-to-peer connection.

4. The method of claim 1 , wherein causing the peer-to-peer connection to be established further comprises:

causing the peer-to-peer connection to be established using an RTCPeer Connection application programming interface (API) of WebRTC.

5. The method of claim 1 , further comprising:

authenticating, by the computing system, an identity of a first user of the first device; and

determining, by the computing system, to cause the peer-to-peer connection to be established between the first device and the second device based at least in part on authenticating the identity of the first user.

6. The method of claim 5 , further comprising:

authenticating, by the computing system, an identity of a second user of the second device;

wherein determining to cause the peer-to-peer connection to be established between the first device and the second device is further based at least in part on authenticating the identity of the second user.

7. The method of claim 1 , further comprising:

based at least in part on receipt of the request, enabling streaming of data between a driver for the peripheral device and the peer-to-peer connection to direct the peripheral device to the first device so that the peripheral device operates as a virtual device of the first device, wherein the second device includes the driver.

8. The method of claim 7 , further comprising:

enabling streaming of data between the driver and the peer-to-peer connection comprises using an RTCDataChannel application programming interface (API) of WebRTC to stream data between the driver and the peer-to-peer connection.

9. A computing system, comprising:

at least one processor; and

at least one computer-readable medium encoded with instructions which, when executed by the at least one processor, cause the computing system to:

receive, from a first device, a request to access a peripheral device associated with a second device, and

based at least in part on receipt of the request, cause a peer-to-peer connection to be established between the first device and the second device by sending instructions to the first device, the instructions including an identifier of the peripheral device, a network address of the second device, and a network address for a service to which the first device is to send a request to coordinate signaling between the first device and the second device to establish the peer-to-peer connection, the peer-to-peer connection enabling communication between the first device and the peripheral device.

10. The computing system of claim 9 , wherein the network address of the second device comprises a first internet protocol (IP) address to which the first device can direct first messages over the peer-to-peer connection, and the at least one computer-readable medium is further encoded with additional instructions which, when executed by the at least one processor, cause the computing system to cause the peer-to-peer connection to be established at least in part by:

receiving, from the first device, a second IP address associated with the first device; and

sending the second IP address to the second device to enable the second device to send second messages to the first device over the peer-to-peer connection.

11. The computing system of claim 9 , wherein the at least one computer-readable medium is further encoded with additional instructions which, when executed by the at least one processor, further the computing system to cause the peer-to-peer connection to be established at least in part by:

receiving, from the second device, first information identifying data handling capabilities of the second device;

sending the first information to the first device to enable the first device to communicate with the second device over the peer-to-peer connection;

receiving, from the first device, second information identifying data handling capabilities of the first device; and

sending the second information to the second device to enable the second device to communicate with the first device over the peer-to-peer connection.

12. The computing system of claim 9 , wherein the at least one computer-readable medium is further encoded with additional instructions which, when executed by the at least one processor, cause the computing system to cause the peer-to-peer connection to be established at least in part by:

causing the peer-to-peer connection to be established using an RTCPeer Connection application programming interface (API) of WebRTC.

13. The computing system of claim 9 , wherein the at least one computer-readable medium is further encoded with additional instructions which, when executed by the at least one processor, cause the computing system to:

authenticate an identity of a first user of the first device; and

determine to cause the peer-to-peer connection to be established between the first device and the second device based at least in part on authenticating the identity of the first user.

14. The computing system of claim 13 , wherein the at least one computer-readable medium is further encoded with additional instructions which, when executed by the at least one processor, cause the computing system to:

authenticate an identity of a second user of the second device; and

determine to cause the peer-to-peer connection to be established between the first device and the second device further based at least in part on authenticating the identity of the second user.

15. The computing system of claim 9 , wherein the at least one computer-readable medium is further encoded with additional instructions which, when executed by the at least one processor, cause the computing system to:

based at least in part on receipt of the request, enable streaming of data between a driver for the peripheral device and the peer-to-peer connection to direct the peripheral device to the first device so that the peripheral device operates as a virtual device of the first device, wherein the second device includes the driver.

16. The computing system of claim 15 , wherein the at least one computer-readable medium is further encoded with additional instructions which, when executed by the at least one processor, cause the computing system to:

enable streaming of data between the driver and the peer-to-peer connection comprises using an RTCDataChannel application programming interface (API) of WebRTC to stream data between the driver and the peer-to-peer connection.

17. At least one non-transitory computer-readable medium encoded with instructions which, when executed by at least one processor of a computing system, cause the computing system to:

receive, from a first device, a request to access a peripheral device associated with a second device, and

based at least in part on receipt of the request, cause a peer-to-peer connection to be established between the first device and the second device by sending instructions to the first device, the instructions including an identifier of the peripheral device, a network address of the second device, and a network address for a service to which the first device is to send a request to coordinate signaling between the first device and the second device to establish the peer-to-peer connection, the peer-to-peer connection enabling communication between the first device and the peripheral device.

18. The at least one non-transitory computer-readable medium of claim 17 , wherein the network address of the second device comprises a first interne protocol (IP) address to which the first device can direct first messages over the peer-to-peer connection, and the at least one non-transitory computer-readable medium is further encoded with additional instructions which, when executed by the at least one processor, cause the computing system to cause the peer-to-peer connection to be established at least in part by:

receiving, from the first device, a second IP address associated with the first device; and

sending the second IP address to the second device to enable the second device to send second messages to the first device over the peer-to-peer connection.

19. The at least one non-transitory computer-readable medium of claim 17 , further encoded with additional instructions which, when executed by the at least one processor, cause the computing system to:

based at least in part on receipt of the request, enable streaming of data between a driver for the peripheral device and the peer-to-peer connection to direct the peripheral device to the first device so that the peripheral device operates as a virtual device of the first device, wherein the second device includes the driver.

20. The at least one non-transitory computer-readable medium of claim 19 , further encoded with additional instructions which, when executed by the at least one processor, cause the computing system to:

enable streaming of data between the driver and the peer-to-peer connection comprises using an RTCDataChannel application programming interface (API) of WebRTC to stream data between the driver and the peer-to-peer connection.

Assignments (9)
PATENT SECURITY AGREEMENT Recorded Aug 15, 2025
From: CLOUD SOFTWARE GROUP, INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 072488/0172 →
SECURITY INTEREST Recorded May 24, 2024
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 067662/0568 →
PATENT SECURITY AGREEMENT Recorded Apr 14, 2023
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 063340/0164 →
RELEASE AND REASSIGNMENT OF SECURITY INTEREST IN PATENT (REEL/FRAME 062113/0001) Recorded Apr 14, 2023
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 063339/0525 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062112/0262 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 062113/0001 →
SECURITY INTEREST Recorded Sep 30, 2022
From: CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 062079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 19, 2021
From: YU, YEDONG; HONG, JIANDONG; YAO, YAJUN; REN, MINGMING; ZHANG, YUAN; CHEN, JUANJUAN; ZHU, QIAOFEI
To: CITRIX SYSTEMS, INC.
Reel/Frame 057831/0391 →
Continuity (3)
Continuation 16585119 · Sep 27, 2019
Continuation PCTDN2019105057 · Sep 10, 2019
Related Publication 20220038519A1 · Feb 3, 2022