IP Library Granted Patent US 11,409,716
Granted Patent B2
US 11,409,716 · App. 16/262,496 · Granted Aug 9, 2022

File conflict detection

Inventors: Nishant Jaywant Karajgikar (Raleigh, NC); Ajay Kumar (Raleigh, NC); Jason Yanchuleff (Raleigh, NC)
Assignee: Citrix Systems, Inc.
G06F16/1873G06F16/176
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,409,716
App. No.
16/262,496
Granted
Aug 9, 2022
Kind
B2
Abstract

Methods and systems for shared file conflict detection on a computing device are described herein. A computing device may store a shared file that may be accessed by a variety of other computing devices. An operating system executing on one or more computing devices may generate file handles corresponding to file operations associated with the shared file. One or more of the computing devices may receive, from a remote computing device, a request for a file operation associated with the shared file. A notification corresponding to file handles associated with the shared file may be transmitted to a user. The request for the file operation may be implemented or rejected based on file handles associated with the shared file, the file operation, and/or whether the file operation may cause an application to crash or cause data corruption.

Claims (80)

1. A method comprising:

storing, by a first computing device, a shared file, wherein the shared file is accessible by a plurality of computing devices;

determining, based on an operating system file handle associated with the shared file, that the shared file is being accessed;

receiving, from a second computing device, a request to edit the shared file;

preventing, by the first computing device and based on the operating system file handle, the edit to the shared file; and

sending, to the second computing device and based on the request, a notification corresponding to the operating system file handle;

receiving a response to the notification;

determining, based on the request, a second version of the shared file;

comparing the shared file and the second version of the shared file; and

generating, based on the comparing, the response, and the edit, a new shared file.

2. The method of claim 1 , wherein generating the new shared file is further based on determining whether a potential corruption metric meets a predetermined threshold.

3. The method of claim 1 , wherein the notification enables the second computing device to create a copy of the shared file.

4. The method of claim 1 , wherein the notification enables the second computing device to create a new version of the shared file.

5. The method of claim 1 , wherein the operating system file handle is associated with access, by a third computing device, to the shared file.

6. The method of claim 5 , further comprising:

preventing, by the first computing device and based on the request to edit the shared file, further access to the shared file by the third computing device.

7. The method of claim 1 , wherein an operating system executing on the first computing device is configured to generate operating system file handles based on access to shared files.

8. A method comprising:

storing, by a first computing device, a first version of a shared file, wherein the shared file is accessible by a plurality of computing devices;

accessing, by the first computing device, the first version of the shared file, wherein an operating system executing on the first computing device is configured to generate, based on the accessing, an operating system file handle;

receiving, from a second computing device, a second version of the shared file;

comparing the first version of the shared file and the second version of the shared file; and

replacing, based on the operating system file handle and the comparing, the first version of the shared file with the second version of the shared file.

9. The method of claim 8 , wherein the replacing the first version of the shared file with the second version of the shared file is further based on:

causing the second version of the shared file to be opened in a sandboxed environment.

10. The method of claim 8 , wherein the replacing the first version of the shared file with the second version of the shared file is further based on determining whether a potential corruption metric meets a predetermined threshold.

11. The method of claim 8 , further comprising:

transmitting, to the second computing device, a notification corresponding to the operating system file handle.

12. The method of claim 8 , wherein replacing the shared file with the second version of the shared file comprises:

determining that the operating system file handle has been closed.

13. The method of claim 8 , further comprising:

preventing further access to the shared file by the first computing device.

14. A first computing device comprising:

one or more processors; and

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

store a shared file, wherein the shared file is accessible by a plurality of computing devices;

determine, based on an operating system file handle associated with the shared file, that the shared file is being accessed;

receive, from a second computing device, a request to edit the shared file;

prevent, based on the operating system file handle, the edit to the shared file;

send, to the second computing device and based on the request, a notification corresponding to the operating system file handle;

receive a response to the notification;

determine, based on the request, a second version of the shared file;

compare the shared tile and the second version of the shared file; and

generate, based on the comparing, the response, and the edit, a new shared tile.

15. The first computing device of claim 14 , wherein the instructions, when executed by the one or more processors, cause the first computing device to generate the new shared file based on determining whether a potential corruption metric meets a predetermined threshold.

16. The first computing device of claim 14 , wherein the notification enables the second computing device to create a copy of the shared file.

17. One or more non-transitory computer-readable media storing instructions that, when executed by one or more processors, cause a first computing device to:

store a shared file, wherein the shared file is accessible by a plurality of computing devices;

determine, based on an operating system file handle associated with the shared file, that the shared file is being accessed;

receive, from a second computing device, a request to edit the shared file;

prevent, based on the operating system file handle, the edit to the shared file;

send, to the second computing device and based on the request, a notification corresponding to the operating system file handle;

receive a response to the notification;

determine, based on the request, a second version of the shared file;

compare the shared file and the second version of the shared file; and

generate, based on the comparing, the response, and the edit, a new shared file.

18. The non-transitory computer-readable media of claim 17 , wherein the instructions, when executed by the one or more processors, cause the first computing device to generate the new shared file based on determining whether a potential corruption metric meets a predetermined threshold.

19. The non-transitory computer-readable media of claim 17 , wherein the notification enables the second computing device to create a copy of the shared file.

20. A system comprising:

a server; and

a computing device,

wherein the server comprises:

one or more first processors; and

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

store a shared file, wherein the shared file is accessible by a plurality of computing devices;

determine, based on an operating system file handle associated with the shared file, that the shared file is being accessed;

receive, from the computing device, a request to edit the shared file;

prevent, based on the operating system file handle, the edit to the shared file;

send, to the computing device and based on the request, a notification corresponding to the operating system file handle;

receive a response to the notification;

determine, based on the request, a second version of the shared file;

compare the shared file and the second version of the shared file; and

generate, based on the comparing, the response, and the edit, a new shared file and

wherein the computing device comprises:

one or more second processors; and

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

send, to the server, the request to edit the shared file; and

receive, from the server, the notification.

21. The system of claim 20 , wherein the first instructions, when executed by the one or more first processors, cause the server to perform the edit to the shared file based on determining whether a potential corruption metric meets a predetermined threshold.

22. The system of claim 20 , wherein the notification enables the computing device to create a copy of the shared file.

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 30, 2019
From: KARAJGIKAR, NISHANT JAYWANT; KUMAR, AJAY; YANCHULEFF, JASON
To: CITRIX SYSTEMS, INC.
Reel/Frame 048194/0009 →
Continuity (1)
Related Publication 20200242089A1 · Jul 30, 2020