IP Library Granted Patent US 11,385,946
Granted Patent B2
US 11,385,946 · App. 17/064,712 · Granted Jul 12, 2022

Real-time file system event mapping to cloud events

Inventors: Jason Yanchuleff (Raleigh, NC); Ajay Kumar (Raleigh, NC)
Assignee: Citrix Systems, Inc.
G06F9/542G06F9/4881G06F9/546G06F16/1734G06F2209/548
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,385,946
App. No.
17/064,712
Granted
Jul 12, 2022
Kind
B2
Abstract

Aspects of the disclosure relate to processing systems using improved techniques for mapping events from user device to a cloud storage system. A computing platform, such as a cloud event mapping platform, may receive, at a task manager hosted on the computing platform, events to be processed. The computing platform may use the task manager to determine file objects corresponding to each event. The computing platform may use the task manager to determine a subset of the events to be processed by each dispatcher. The computing platform may use a first dispatcher to generate an event dispatch queue using a plurality of heuristics. After determining expiration of a delay corresponding to each event in the dispatch queue, the computing platform may dispatch each event in the dispatch queue for execution.

Claims (46)

1. A computing platform, comprising:

at least one processor;

a communication interface communicatively coupled to the at least one processor and configured to establish a connection between the computing platform and a computing device; and

a memory communicatively coupled to the processor; and

wherein the computing platform is configured to:

process, using a first dispatcher, two or more of a plurality of events to generate a first dispatch queue;

determine, using the first dispatcher, a plurality of time delays, each time delay of the plurality of time delays corresponding to a respective event in the first dispatch queue;

determine, using the first dispatcher, that all of the plurality of time delays have expired; and

cause execution, using the first dispatcher and based on the determination that all of the plurality of time delays have expired, of each of the two or more of the plurality of events in the first dispatch queue.

2. The computing platform of claim 1 , wherein the first dispatch queue is generated by translating at least one of the two or more of the plurality of events from a first domain to a second domain.

3. The computing platform of claim 2 , wherein translation of the at least one of the two or more of the plurality of events from the first domain to the second domain is performed by deleting at least one of the two or more of the plurality of events.

4. The computing platform of claim 3 , wherein deletion of at least one of the two or more of the plurality of events is performed in response to determining that the first dispatch queue already contains one or more of the two or more of the plurality of events.

5. The computing platform of claim 2 , wherein translation of the two or more of the plurality of events from the first domain to the second domain is performed by adding an event to the two or more of the plurality of events.

6. The computing platform of claim 1 , wherein determination of the two or more of the plurality of events to be processed is performed by each dispatcher in real time as the plurality of events are received.

7. The computing platform of claim 1 , wherein the computing platform is further configured to:

process, using a second dispatcher, two or more other events of the plurality of events to generate a second dispatch queue, wherein the first dispatcher corresponds to a first file object and the second dispatcher corresponds to a second file object;

determine, using the second dispatcher, that there is a remaining time delay corresponding to an event in the second dispatch queue; and

dispatch, using the second dispatcher and after determining expiration of the remaining time delay, each of the two or more other events of the plurality of events in the second dispatch queue for execution.

8. A method comprising:

processing, using a first dispatcher, two or more of a plurality of events to generate a dispatch queue;

determining, using the first dispatcher, a plurality of time delays, each time delay of the plurality of time delays corresponding to a respective event in the dispatch queue;

determining, using the first dispatcher, that all of the plurality of time delays have expired; and

dispatching, using the first dispatcher and based on the determination that all of the plurality of time delays have expired, each of the two or more of the plurality of events in the dispatch queue for execution in a cloud environment.

9. The method of claim 8 , further comprising:

receiving, at a task manager hosted on a cloud event mapping platform, the plurality of events, wherein the task manager comprises a first object hosted by the cloud event mapping platform and is configured to translate events from a source domain to a destination domain by:

identifying each of the plurality of events;

determining a dispatcher for each of the plurality of events; and

providing the plurality of events to the respective dispatchers.

10. The method of claim 9 , wherein the source domain corresponds to a local file system, wherein the destination domain corresponds to the cloud environment, and wherein the plurality of events correspond to events taken on cloud-based files by the local file system.

11. The method of claim 10 , wherein translating the events from the source domain to the destination domain causes a cloud storage application to update data in the cloud environment based on the plurality of events from the local file system.

12. The method of claim 11 , further comprising updating, based on execution of the plurality of events, the cloud storage application.

13. One or more non-transitory computer-readable media storing instructions that, when executed by a computing platform comprising at least one processor, a communication interface, and memory, cause the computing platform to:

process, using a first dispatcher, two or more of a plurality of events to generate a dispatch queue;

determine, using the first dispatcher, a plurality of time delays, each time delay of the plurality of time delays corresponding to a respective event in the dispatch queue;

determine, using the first dispatcher, that all of the plurality of time delays have expired; and

provide, using the first dispatcher and based on the determination that all of the plurality of time delays have expired, the two or more of the plurality of events in the dispatch queue for execution.

14. The one or more non-transitory computer-readable media of claim 13 , wherein:

the first dispatcher is one of a plurality of dispatchers,

the plurality of dispatchers includes a second dispatcher comprising a second object hosted by the computing platform, and

the second dispatcher is configured to add an event to a second dispatch queue, perform heuristics on the second dispatch queue, and provide the second dispatch queue for execution by the computing platform after a predetermined period of time.

15. The one or more non-transitory computer-readable media of claim 14 , wherein the memory stores additional computer readable media storing instructions, that when executed by the at least one processor, cause the computing platform to determine a different predetermined period of time for each event type represented in the dispatch queue.

16. The one or more non-transitory computer-readable media of claim 15 , wherein the memory stores additional computer readable media storing instructions, that when executed by the at least one processor, cause the computing platform to perform the heuristics on the dispatch queue by performing one or more of: modifying, eliminating, and adding events.

17. The one or more non-transitory computer-readable media of claim 16 , wherein the memory stores additional computer readable media storing instructions, that when executed by the at least one processor, cause the computing platform to dynamically adjust the predetermined period of time based on an event context.

18. The one or more non-transitory computer-readable media of claim 17 , wherein each of the plurality of dispatchers are hosted by the computing platform.

19. The one or more non-transitory computer-readable media of claim 18 , wherein the predetermined period of time is adjusted at the first dispatcher and wherein the event context corresponds to an event at the second dispatcher.

20. The one or more non-transitory computer-readable media of claim 14 , wherein the memory stores additional computer readable media storing instructions, that when executed by the at least one processor, cause the computing platform to determine the heuristics using one or more machine learning algorithms and one or more machine learning datasets stored at the computing platform.

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 Oct 8, 2020
From: YANCHULEFF, JASON; KUMAR, AJAY
To: CITRIX SYSTEMS, INC.
Reel/Frame 054006/0009 →
Continuity (2)
Continuation 16022900 · Jun 29, 2018
Related Publication 20210019201A1 · Jan 21, 2021