IP Library › Granted Patent US 11,429,633
Granted Patent B2
US 11,429,633 · App. 15/616,052 · Granted Aug 30, 2022

Data processing system with synchronization of local directory information to cloud system

Inventor: Pengcheng Zhang (Jiangsu, CN)
Assignee: Citrix Systems, Inc.
G06F16/27G06F21/552G06F21/64H04L63/102H04L63/20
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,429,633
App. No.
15/616,052
Granted
Aug 30, 2022
Kind
B2
Abstract

A primary domain controller maintains synchronization of directory information (e.g., Active Directory information) between local directory controllers in a local domain and cloud directory controllers in a cloud domain. The primary domain controller subscribes to directory event reports for selected directory events occurring at the local directory controllers, such as addition, deletion or modification of user accounts. Upon receiving the directory event reports, the primary domain controller creates corresponding directory event records in an event log, and regularly forwards contents of the directory event records of the event log to the cloud directory controllers for use in updating system directory information in the cloud domain.

Claims (36)

1. A method of synchronizing system directory information from a plurality of local directory controllers in a local domain of a data processing system to a cloud directory controller in a separate cloud domain, the system directory information including user account information describing each of a set of user accounts, including user authentication and authorization information, comprising:

operating one of the local directory controllers as a primary domain controller having respective first connections to others of the local directory controllers and a second connection to the cloud directory controller, the local directory controllers being local domain controllers that each (1) maintain system directory information in a respective local directory object store and local directory event information in a respective local event log, and (2) create directory event reports from the local event log based on local changes to system directory information in the local directory object store, the other local directory controllers sending their respective directory event reports to the primary domain controller for forwarding the directory event information to the cloud directory controller by the primary domain controller; and

by the primary domain controller:

(1) subscribing to the directory event reports for selected directory events occurring at the other local directory controllers, the directory events including adding a new user, removing an existing user, and modifying information for an existing user, the directory events modifying the system directory information at the local directory controllers;

(2) upon receiving the directory event reports from the other local directory controllers via the respective first connections, creating corresponding directory event records in an event log of the primary domain controller; and

(3) forwarding contents of the directory event records of the event log of the primary domain controller to the cloud directory controller via the second connection for use in updating system directory information in the cloud domain.

2. The method of claim 1 , wherein an event worker thread in the primary domain controller monitors events via an event log subscription, and then synchronizes directory objects into a cloud portal manager system of the cloud domain.

3. The method of claim 2 , wherein the event worker thread runs the following tasks periodically:

scanning the records in the event log subscription since a last scanned event index;

upon finding an addition or modification to be forwarded to the cloud domain, extracting pertinent information, and obtaining additional information from a local operating environment if necessary;

executing a call according to a cloud portal manager API to synchronize the addition or modification as well as the additional information to the cloud domain; and

updating the last scanned event index to reflect the above processing.

4. The method of claim 1 , wherein the system directory information includes user groups and organization units as directory objects to be synchronized to the cloud domain.

5. The method of claim 1 , wherein the cloud domain provides cloud-based services including hosted applications or hosted desktops, and the cloud directory controller maintains system directory information for users using the cloud-based services within the cloud domain.

6. The method of claim 5 , wherein the cloud domain includes a cloud portal manager providing an interface to the cloud directory controller from the primary domain controller.

7. The method of claim 1 , wherein the local directory object stores of the local domain controllers are collections of records having (1) object identifiers identifying user accounts and (2) attributes of the user accounts.

8. The method of claim 7 , wherein the attributes of the user accounts include user names, passwords, and access control data describing access privileges to system resources.

9. The method of claim 1 , wherein the subscribing takes the form of event subscriptions established at the local domain controllers, indicating that certain directory events that are added to the local event logs should be reported by sending directory event reports to the primary domain controller.

10. The method of claim 1 , wherein the local domain includes local server computers executing corresponding applications, and wherein the local directory controllers provide system directory services to the applications based on the system directory information in the local directory object stores.

11. A computer for use as a primary domain controller being one of a plurality of local directory controllers in a local domain of a data processing system to maintain synchronization of system directory information from the local directory controllers to a cloud directory controller in a separate cloud domain, the system directory information including user account information describing each of a set of user accounts, including user authentication and authorization information, comprising:

one or more processors;

memory coupled to the processors; and

input/output interface circuitry coupled to the memory and processors by one or more high-speed data buses, the input/output interface circuitry providing respective first connections to others of the local directory controllers and a second connection to the cloud directory controller, the local directory controllers being local domain controllers that each (1) maintain system directory information in a respective local directory object store and local directory event information in a respective local event log, and (2) create directory event reports from the local event log based on local changes to system directory information in the local directory object store, the other local directory controllers sending their respective directory event reports to the primary domain controller for forwarding the directory event information to the cloud directory controller by the primary domain controller,

the memory storing computer program instructions which, when executed by the processors, cause the computer to perform a method including:

subscribing to directory event reports for selected directory events occurring at the other local directory controllers, the directory events including adding a new user, removing an existing user, and modifying information for an existing user the directory events modifying the system directory information at the local directory controllers;

upon receiving the directory event reports from the other local directory controllers via the respective first connections, creating corresponding directory event records in an event log of the primary domain controller; and

forwarding contents of the directory event records of the event log of the primary domain controller to the cloud directory controller via the second connection for use in updating system directory information in the cloud domain.

12. The computer of claim 11 , wherein the method performed by the computer further includes execution of an event worker thread to monitor events via an event log subscription, and then synchronizes directory objects into a cloud portal manager system of the cloud domain.

13. The computer of claim 12 , wherein the event worker thread runs the following tasks periodically:

scanning the records in the event log subscription since a last scanned event index;

upon finding an addition or modification to be forwarded to the cloud domain, extracting pertinent information, and obtaining additional information from a local operating environment if necessary;

executing a call according to a cloud portal manager API to synchronize the addition or modification as well as the additional information to the cloud domain; and

updating the last scanned event index to reflect the above processing.

14. The computer of claim 11 , wherein the system directory information includes user groups and organization units as directory objects to be synchronized to the cloud domain.

15. The computer of claim 11 , wherein the cloud domain provides cloud-based services including hosted applications or hosted desktops, and the cloud directory controller maintains system directory information for users using the cloud-based services within the cloud domain.

16. The computer of claim 15 , wherein the cloud domain includes a cloud portal manager providing an interface to the cloud directory controller from the primary domain controller.

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 Aug 8, 2017
From: ZHANG, PENGCHENG
To: CITRIX SYSTEMS, INC.
Reel/Frame 043231/0185 →
Continuity (1)
Related Publication 20180357294A1 · Dec 13, 2018