IP Library Granted Patent US 9,959,286
Granted Patent B1
US 9,959,286 · App. 15/181,015 · Granted May 1, 2018

Method, System and apparatus for synchronizing changes in a directory service

Inventors: David Ely (Austin, TX); Andrew Coulbeck (Austin, TX); Trevor Thompson (Austin, TX); James Snyder (Austin, TX)
Assignee: UNBOUNDID, LLC
G06F17/30174G06F17/30144G06F17/30575G06F17/30581
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 9,959,286
App. No.
15/181,015
Granted
May 1, 2018
Kind
B1
Abstract

In a directory service, a sync request requesting changes to a dataset is received from a sync client, the sync request comprising a token, and sync requests containing tokens are sent to first and second directory servers. Changes are returned by the directory servers with tokens, and the changes are returned to the sync client with a unified token. In embodiments, the changes returned to the sync client are new to the sync client. Also disclosed is a method where a request for new changes to a dataset is received from a sync client, the request including a token, and a response that contains a token and changes that are new to the sync client is returned.

Claims (72)

1. A method of synchronizing changes in a directory service comprising a proxy server coupled to a first and second directory server, comprising:

(a) the proxy server receiving from a sync client an initial sync request, the initial sync request comprising an initial sync request parameter and an initial token, wherein the proxy server sends a sequence of sync requests to directory servers, and wherein the sequence of sync requests includes a first sync request and a second sync request;

(b) sending to the first directory server the first sync request to return changes previously made to a dataset, the first sync request comprising a first sync request parameter and a first token;

(c) receiving a first response from the first directory server, wherein the first response responds to the first sync request and comprises a first directory change set and a first response token, wherein the first directory change set comprises one or more changes to the dataset;

(d) sending to the second directory server the second sync request to return changes previously made to a dataset, the second sync request comprising a second sync request parameter and a second token;

(e) receiving a second response from the second directory server, wherein the second response responds to the second sync request and comprises a second directory change set and a second response token, wherein the second directory change set comprises one or more changes to the dataset and the changes in the first directory change set and the second directory change set together satisfy the initial sync request parameter; and

(f) the proxy server receiving from the sync client a subsequent sync request, the subsequent sync request comprising a subsequent sync request parameter and subsequent token,

wherein the initial token comprises indicia of first previous dataset changes and indicia of second previous dataset changes.

2. The method of synchronizing changes to a dataset of claim 1 , wherein the first directory change set comprises changes that are new to the sync client.

3. The method of synchronizing changes to a dataset of claim 2 , wherein all changes comprised in the first and second directory change sets are new to the sync client.

4. The method of synchronizing changes to a dataset of claim 2 , wherein the first and second directory change sets comprise all changes that have not been previously retrieved by the sync client.

5. The method of synchronizing changes to a dataset of claim 4 , wherein the first response token comprises indicia of changes in the first directory change set and the second response token comprises indicia of changes in the second directory change set.

6. The method of synchronizing changes to a dataset of claim 1 , wherein the initial sync request parameter specifies that changes within a first base distinguished name are to be included and that changes to the first base distinguished name are to be excluded.

7. The method of synchronizing changes to a dataset of claim 1 , wherein the initial sync request parameter specifies the type of changes that are to be returned.

8. The method of synchronizing changes to a dataset of claim 1 , wherein the initial sync request parameter specifies an attribute of the changes to be returned.

9. The method of synchronizing changes to a dataset of claim 1 , further comprising repeating steps (b) through (e), wherein the changes in the repeated first directory change set and the repeated second directory change set together satisfy the subsequent sync request parameter.

10. A method of synchronizing changes in a directory service comprising a proxy server coupled to a first and second directory server, comprising:

(a) the proxy server receiving from a sync client an initial sync request, the initial sync request comprising an initial sync request parameter and an initial token, wherein the proxy server sends a sequence of sync requests to directory servers, and wherein the sequence of sync requests includes a first sync request and a second sync request;

(b) sending to the first directory server the first sync request to return changes previously made to a dataset, the first sync request comprising a first sync request parameter and a first token;

(c) receiving a first response from the first directory server, wherein the first response responds to the first sync request and comprises a first directory change set and a first response token, wherein the first directory change set comprises one or more changes to the dataset;

(d) sending to the second directory server the second sync request to return changes previously made to a dataset, the second sync request comprising a second sync request parameter and a second token;

(e) receiving a second response from the second directory server, wherein the second response responds to the second sync request and comprises a second directory change set and a second response token, wherein the second directory change set comprises one or more changes to the dataset and the changes in the first directory change set and the second directory change set together satisfy the initial sync request parameter; and

(f) the proxy server receiving from the sync client a subsequent sync request, the subsequent sync request comprising a subsequent sync request parameter and subsequent token,

wherein the first directory change set comprises changes that are new to the sync client,

wherein the first and second directory change sets comprise all changes that have not been previously retrieved by the sync client, and

wherein the first token comprises the indicia of first previous dataset changes and the second token comprises indicia of second previous dataset changes.

11. The method of synchronizing changes to a dataset of claim 10 , wherein all changes in the first directory change set are subsequent to the first previous dataset changes and all changes in the second directory change set are subsequent to the second previous dataset changes.

12. A method of synchronizing changes in a directory service comprising a proxy server coupled to a first and second directory server, comprising:

(a) the proxy server receiving from a sync client an initial sync request, the initial sync request comprising an initial sync request parameter and an initial token, wherein the proxy server sends a sequence of sync requests to directory servers, and wherein the sequence of sync requests includes a first sync request and a second sync request;

(b) sending to the first directory server the first sync request to return changes previously made to a dataset, the first sync request comprising a first sync request parameter and a first token;

(c) receiving a first response from the first directory server, wherein the first response responds to the first sync request and comprises a first directory change set and a first response token, wherein the first directory change set comprises one or more changes to the dataset;

(d) sending to the second directory server the second sync request to return changes previously made to a dataset, the second sync request comprising a second sync request parameter and a second token;

(e) receiving a second response from the second directory server, wherein the second response responds to the second sync request and comprises a second directory change set and a second response token, wherein the second directory change set comprises one or more changes to the dataset and the changes in the first directory change set and the second directory change set together satisfy the initial sync request parameter; and

(f) the proxy server receiving from the sync client a subsequent sync request, the subsequent sync request comprising a subsequent sync request parameter and subsequent token,

further comprising merging the first response token and the second response token into a unified response token.

13. The method of synchronizing changes to a dataset of claim 12 wherein the subsequent token is the unified response token.

14. A directory service comprising:

a dataset;

a first directory server comprising a first directory change set, the first directory change set comprising one or more changes to the dataset;

a second directory server comprising a second directory change set, the second directory change set comprising one or more changes to the dataset;

a sync client; and

a proxy server coupled to the first directory server, the second directory server, and the sync client, wherein the proxy server sends a sequence of sync requests to directory servers, wherein the sequence of sync requests includes a first sync request and a second sync request, and wherein the proxy server is configured to collect and send to the sync client changes in the first and second directory change sets that are new to the sync client by

(a) sending to the first directory server the first sync request to return changes previously made to a dataset, the first sync request comprising a first sync request parameter and a first token;

(b) receiving a first response from the first directory server, wherein the first response responds to the first sync request and includes the first directory change set and a first response token;

(c) sending to the second directory server the second sync request to return changes previously made to a dataset, the second sync request comprising a second sync request parameter and a second token; and

(d) receiving a second response from the second directory server, wherein the second response responds to the second sync request and comprises the second directory change set and a second response token,

wherein the proxy server is further configured to receive from the sync client an initial sync request, the initial sync request comprising an initial sync request parameter and an initial token and the changes in the first directory change set and the second directory change set together satisfy the initial sync request parameter, and

wherein the initial token comprises indicia of first previous dataset changes and indicia of second previous dataset changes.

15. The directory service of claim 14 , wherein the proxy server is further configured to receive from the sync client a subsequent sync request, the subsequent sync request comprising a subsequent sync request parameter and subsequent token.

16. The directory service of claim 14 , wherein the proxy server is further configured to repeat steps (a) through (d), wherein the changes in the repeated first directory change set and the repeated second directory change set together satisfy the subsequent sync request parameter.

17. A directory service comprising:

a dataset;

a first directory server comprising a first directory change set, the first directory change set comprising one or more changes to the dataset;

a second directory server comprising a second directory change set, the second directory change set comprising one or more changes to the dataset;

a sync client; and

a proxy server coupled to the first directory server, the second directory server, and the sync client, wherein the proxy server sends a sequence of sync requests to directory servers, wherein the sequence of sync requests includes a first sync request and a second sync request, and wherein the proxy server is configured to collect and send to the sync client changes in the first and second directory change sets that are new to the sync client by

(a) sending to the first directory server the first sync request to return changes previously made to a dataset, the first sync request comprising a first sync request parameter and a first token;

(b) receiving a first response from the first directory server, wherein the first response responds to the first sync request and includes the first directory change set and a first response token;

(c) sending to the second directory server the second sync request to return changes previously made to a dataset, the second sync request comprising a second sync request parameter and a second token; and

(d) receiving a second response from the second directory server, wherein the second response responds to the second sync request and comprises the second directory change set and a second response token,

wherein the proxy server is further configured to merge the first response token and the second response token into a unified response token.

18. A directory service comprising:

a dataset;

a first directory server comprising a first directory change set, the first directory change set comprising one or more changes to the dataset;

a second directory server comprising a second directory change set, the second directory change set comprising one or more changes to the dataset;

a sync client; and

a proxy server coupled to the first directory server, the second directory server, and the sync client, wherein the proxy server sends a sequence of sync requests to directory servers, wherein the sequence of sync requests includes a first sync request and a second sync request, and wherein the proxy server is configured to collect and send to the sync client changes in the first and second directory change sets that are new to the sync client by

(a) sending to the first directory server the first sync request to return changes previously made to a dataset, the first sync request comprising a first sync request parameter and a first token;

(b) receiving a first response from the first directory server, wherein the first response responds to the first sync request and includes the first directory change set and a first response token;

(c) sending to the second directory server the second sync request to return changes previously made to a dataset, the second sync request comprising a second sync request parameter and a second token; and

(d) receiving a second response from the second directory server, wherein the second response responds to the second sync request and comprises the second directory change set and a second response token,

wherein the proxy server is further configured to wherein the subsequent token is the unified response token.

Assignments (12)
RELEASE OF SECURITY INTEREST AT R/F 61703/0988 Recorded Nov 14, 2025
From: BLUE OWL CAPITAL CORPORATION
To: PING IDENTITY CORPORATION
Reel/Frame 073570/0777 →
SECURITY INTEREST Recorded Nov 13, 2025
From: PING IDENTITY CORPORATION; PING IDENTITY INTERNATIONAL, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 073557/0093 →
RELEASE OF SECURITY INTEREST Recorded Oct 19, 2022
From: BANK OF AMERICA, N.A.
To: PING IDENTITY CORPORATION
Reel/Frame 061709/0527 →
GRANT OF SECURITY INTEREST IN PATENT RIGHTS Recorded Oct 18, 2022
From: PING IDENTITY CORPORATION
To: OWL ROCK CAPITAL CORPORATION, AS COLLATERAL AGENT
Reel/Frame 061703/0988 →
RELEASE OF SECURITY INTEREST Recorded Nov 23, 2021
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: PING IDENTITY CORPORATION
Reel/Frame 058195/0557 →
SECURITY INTEREST Recorded Nov 23, 2021
From: PING IDENTITY CORPORATION
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 058944/0687 →
PATENT SECURITY AGREEMENT Recorded Dec 12, 2019
From: PING IDENTITY CORPORATION
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 051271/0247 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 13, 2018
From: ELY, DAVID; COULBECK, ANDREW; THOMPSON, TREVOR; SNYDER, JAMES
To: UNBOUNDID, CORP.
Reel/Frame 047487/0275 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 4, 2018
From: UNBOUNDID, LLC
To: PING IDENTITY CORPORATION
Reel/Frame 045977/0480 →
CHANGE OF NAME Recorded Jun 4, 2018
From: UNBOUNDID CORP.
To: UNBOUNDID, LLC
Reel/Frame 046291/0155 →
RELEASE OF SECURITY INTEREST Recorded Jan 25, 2018
From: GUGGENHEIM CORPORATE FUNDING
To: UNBOUNDID, LLC (F/K/A UNBOUNDID, CORP.)
Reel/Frame 044731/0412 →
SECURITY INTEREST Recorded Sep 8, 2016
From: UNBOUNDID, CORP.
To: GUGGENHEIM CORPORATE FUNDING, LLC
Reel/Frame 039671/0913 →
Continuity (1)
Continuation 13326163 · Dec 14, 2011