IP Library Granted Patent US 11,036,688
Granted Patent B2
US 11,036,688 · App. 16/247,782 · Granted Jun 15, 2021

Sharing of data with applications

Inventor: Praveen Raja Dhanabalan (Bangalore, IN)
Assignee: Citrix Systems, Inc.
G06F16/176G06F9/45558H04L63/0838H04L65/403H04W12/068H04W12/08G06F2009/45587H04L67/06
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,036,688
App. No.
16/247,782
Granted
Jun 15, 2021
Kind
B2
Abstract

A user may, when using an application of a first computing device, intend to share data with other computing devices. To share the data, sharing processes may be performed by the first computing device, any device that the data is to be shared with, and one or more network locations. The sharing processes may determine whether the data is available at any of the devices or at any of the one or more network locations. Any device or network location where the data is available may be selected as a source of the data. Any device where the data is unavailable may be sent the data from one or more sources. Once received, the data may be stored to enable access by an application.

Claims (70)

1. A method comprising:

receiving, by a first computing device and from a second computing device of a plurality of computing devices in communication with the first computing device, an availability request for data that is to be shared with the first computing device;

determining, based on the availability request for data, that the data is unavailable at the first computing device;

receiving, based on the determination that the data is unavailable at the first computing device, a subset of the data from one or more devices of the plurality of computing devices;

selecting, based on an amount of the subset of the data received from the one or more devices, the one or more devices as a source of the data, the amount of the subset of the data being indicative of conditions of a network that communicatively couples the plurality of computing devices together; and

receiving, by the first computing device and from the one or more devices, at least a portion of the data to enable access to the portion of the data by an application of the first computing device.

2. The method of claim 1 , wherein the portion of the data comprises a file;

wherein the application of the first computing device is an email application; and

wherein receiving at least the portion of the data comprises receiving the file to enable access to the file by the email application.

3. The method of claim 1 , wherein the portion of the data comprises video data or audio data;

wherein the application of the first computing device is a conferencing application; and

wherein receiving at least the portion of the data comprises receiving the video data or the audio data to enable access to the video data or the audio data by the conferencing application.

4. The method of claim 1 , wherein the amount of the subset of the data that was received from each of the one or more devices comprises a first amount of the subset of the data that was received from a first device and a second amount of the subset of the data that was received from a second device, and

wherein selecting the one or more devices is performed based on a comparison of the first amount and the second amount to a third amount of the subset that was received from a third device.

5. The method of claim 1 , wherein selecting the one or more devices is performed based on the amount of the subset of the data that was received from each of the one or more devices being greater than a threshold amount of received data.

6. The method of claim 1 , further comprising:

sending, to each device of the one or more devices, a request for the data, wherein receiving at least the portion of the data is performed based on the request for the data; and

sending, to the second computing device, an indication that a sharing process with the first computing device is complete.

7. The method of claim 1 , further comprising:

storing, based on an encrypted data vault that is associated with an enterprise mobility management system or an encrypted data container that is associated with the enterprise mobility management system, the portion of the data, wherein the portion of the data is accessible to the application via the encrypted data vault or the encrypted data container.

8. The method of claim 1 , further comprising:

storing, based on a local repository associated with a file sharing service, the portion of the data, wherein the file sharing service is of an enterprise mobility management system, and wherein the portion of the data is accessible to the application via the local repository.

9. One or more non-transitory computer-readable media storing executable instructions that, when executed, cause a first computing device to:

receive, from a second computing device of a plurality of computing devices in communication with the first computing device, an availability request for data that is to be shared with the first computing device;

determine, based on the availability request for data, that the data is unavailable at the first computing device;

receive, based on the determination that the data is unavailable at the first computing device, a subset of the data from one or more devices of the plurality of computing devices;

select, based on an amount of the subset of the data received from the one or more devices, the one or more devices as a source of the data, the amount of the subset of the data being indicative of conditions of a network that communicatively couples the plurality of computing devices together; and

receive, from the one or more devices, at least a portion of the data to enable access to the portion of the data by an application of the first computing device.

10. The one or more non-transitory computer-readable media of claim 9 , wherein the portion of the data comprises a file;

wherein the application of the first computing device is an email application; and

wherein the executable instructions, when executed, cause the first computing device to receive at least the portion of the data by receiving the file to enable access to the file by the email application.

11. The one or more non-transitory computer-readable media of claim 9 , wherein the portion of the data comprises video data or audio data;

wherein the application of the first computing device is a conferencing application; and

wherein the executable instructions, when executed, cause the first computing device to receive at least the portion of the data by receiving the video data or the audio data to enable access to the video data or the audio data by the conferencing application.

12. The one or more non-transitory computer-readable media of claim 9 , wherein the amount of the subset of the data that was received from each of the one or more devices comprises a first amount of the subset of the data that was received from a first device and a second amount of the subset of the data that was received from a second device, and

wherein the executable instructions, when executed, cause the first computing device to select the one or more devices based on a comparison of the first amount and the second amount to a third amount of the subset that was received from a third device.

13. The one or more non-transitory computer-readable media of claim 9 , wherein the executable instructions, when executed, cause the first computing device to select the one or more devices based on the amount of the subset of the data that was received from each of the one or more devices being greater than a threshold amount of received data.

14. The one or more non-transitory computer-readable media of claim 9 , wherein the executable instructions, when executed, cause the first computing device to:

send, to each of the one or more devices, a request for the data; and

send, to the second computing device, an indication that a sharing process with the first computing device is complete.

15. The one or more non-transitory computer-readable media of claim 9 , wherein the executable instructions, when executed, cause the first computing device to:

store, based on an encrypted data vault that is associated with an enterprise mobility management system or an encrypted data container that is associated with the enterprise mobility management system, the portion of the data, wherein the portion of the data is accessible to the application via the encrypted data vault or the encrypted data container.

16. The one or more non-transitory computer-readable media of claim 9 , wherein the executable instructions, when executed, cause the first computing device to:

store, based on a local repository associated with a file sharing service, the portion of the data, wherein the file sharing service is of an enterprise mobility management system, and wherein the portion of the data is accessible to the application via the local repository.

17. A system comprising:

a first computing device comprising:

one or more first processors; and

first memory storing first executable instructions that, when executed by the one or more first processors, cause the first computing device to:

configure a first application for sharing based on a file sharing service;

receive, based on one or more first user interactions with the first application, a first user selection indicating data for sharing;

receive, based on one or more second user interactions with the first application, a second user selection indicating one or more devices or users for sharing; and

send a request that causes performance of a sharing process; and

a second computing device comprising:

one or more second processors; and

second memory storing second executable instructions that, when executed by the one or more second processors, cause the second computing device to:

receive, based on the request that causes performance of the sharing process, an availability request for the data;

determine, based on the availability request for data, that the data is unavailable at the second computing device;

receive, based on the determination that the data is unavailable at the first computing device, a subset of the data from one or more devices of a plurality of computing devices, wherein the plurality of devices are in communication with the second computing device;

select, based on an amount of the subset of the data received from the one or more devices, the one or more devices as a source of the data, the amount of the subset of the data being indicative of conditions of a network that communicatively couples the plurality of computing devices together; and

receive, from the one or more devices, at least a portion of the data to enable access to the portion of the data by a second application of the first computing device.

18. The system of claim 17 , wherein the portion of the data comprises a file;

wherein the first application is a first email application;

wherein the second application is a second email application; and

wherein the second executable instructions, when executed by the one or more second processors, cause the second computing device to receive at least the portion of the data by receiving the file to enable access to the file by the second email application.

19. The system of claim 17 , wherein the portion of the data comprises video data or audio data;

wherein the first application is a first conferencing application;

wherein the second application are both is a second conferencing application; and

wherein the second executable instructions, when executed by the one or more second processors, cause the second computing device to receive at least the portion of the data by receiving the video data or the audio data to enable access to the video data or the audio data by the second email application.

20. The system of claim 17 , wherein the second executable instructions, when executed by the one or more second processors, cause the second computing device to:

store, based on a local repository associated with the file sharing service, the portion of the data, wherein the file sharing service is of an enterprise mobility management system, and wherein the portion of the data is accessible to the application via the local repository.

Assignments (16)
SECURITY INTEREST Recorded Jul 21, 2025
From: PROGRESS SOFTWARE CORPORATION
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 072094/0790 →
SECURITY INTEREST Recorded Dec 26, 2024
From: PROGRESS SOFTWARE CORPORATION
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 069784/0578 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 12, 2024
From: CITRIX SYSTEMS, INC.
To: PROGRESS SOFTWARE CORPORATION
Reel/Frame 069618/0836 →
RELEASE OF CERTAIN PATENT SECURITY INTERESTS AT REEL/FRAME 067662/0568 Recorded Nov 2, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 069291/0525 →
RELEASE OF CERTAIN PATENT SECURITY INTERESTS AT REEL/FRAME 062079/0001 Recorded Nov 2, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION
To: CITRIX SYSTEMS, INC.
Reel/Frame 069291/0536 →
RELEASE OF CERTAIN PATENT SECURITY INTERESTS AT REEL/FRAME 062112/0262 Recorded Nov 2, 2024
From: BANK OF AMERICA, N.A.
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 069291/0492 →
RELEASE OF CERTAIN PATENT SECURITY INTERESTS AT REEL/FRAME 063340/0164 Recorded Nov 2, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 069291/0503 →
RELEASE OF CERTAIN PATENT SECURITY INTERESTS AT REEL/FRAME 062113/0470 Recorded Nov 2, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 069291/0514 →
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 →
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 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 →
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 →
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 →
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 Jan 15, 2019
From: DHANABALAN, PRAVEEN RAJA
To: CITRIX SYSTEMS, INC.
Reel/Frame 048008/0977 →
Continuity (1)
Related Publication 20200226101A1 · Jul 16, 2020