IP Library Granted Patent US 9,792,317
Granted Patent B2
US 9,792,317 · App. 13/886,834 · Granted Oct 17, 2017

Accelerated data integrity through broker orchestrated peer-to-peer data synchronization

Inventors: Raj Kumar Koneru (Windermere, FL); Pattabhi Rama Rao Dasari (Hyderabad, IN); Prajakt Deshpande (Hyderabad, IN); Rajendra Komandur (Hyderabad, IN); Sriram Ramanathan (Lutz, FL); Srinivas Sesham (Orlando, FL); Matthew Terry (Celebration, FL); Matthew B. Trevathan (Roswell, GA); Sathyanarayana Vennapusala (Hyderabad, IN)
Assignee: KONY, INC.
G06F17/30371G06F17/30575G06F17/30578
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,792,317
App. No.
13/886,834
Granted
Oct 17, 2017
Kind
B2
Abstract

A method includes receiving a notification from a first device that a data record has been changed on the first device, and receiving a notification from a second device of an intent to change the data record on the second device. The method also includes instructing the second device to wait before changing the data record on the second device, and instructing the first device to synchronize the changed data record.

Claims (53)

1. A method of data synchronization, comprising:

storing a data record in a master data repository, a first device and a second device, wherein the master data repository, the first device and the second device are coupled to a server comprised of a processor and a memory;

receiving, by the server, a first notification from the first device that the data record has been changed to include first changes on the first device;

receiving, by the server, a second notification from the second device of an intent to change the data record to include second changes on the second device;

instructing, by the server, the second device to wait before changing the data record on the second device;

instructing, by the server, the first device to synchronize the changed data record, wherein the synchronizing comprises the first device sending the changed data record, with the first changes, to one of the master data repository and the second device; and

upon determining that the first device is instructed by the server to send the data record with the first changes to the second device rather than the master data repository, instructing, by the server, the second device to:

change the data record on the second device to include the first changes from the first device and the second changes from the second device to create a twice changed data record; and

synchronize the twice changed data record on the second device to the master data repository,

wherein the first device comprises a first mobile computing device, the second device comprises a second mobile computing device, and the server comprises a server computing device,

wherein the instructing the first device to synchronize the changed data record comprises instructing the first device to synchronize the changed data record to the master data repository.

2. The method of claim 1 , further comprising instructing the second device to obtain the changed data record from the master data repository after the first device has synchronized the changed data record to the master data repository.

3. The method of claim 1 , further comprising initiating a wait period for changing the data record on the second device based on the first device failing to synchronize the changed data.

4. The method of claim 3 , further comprising:

monitoring a number of devices waiting to access the data record during the wait period; and

discarding the changed data record and demoting the first device based on the number of devices exceeding a predefined limit.

5. The method of claim 3 , further comprising discarding the changed data record and demoting the first device based on the wait period expiring.

6. The method of claim 3 , further comprising sending instructions to synchronize to the first device using different communication channels during the wait period.

7. The method of claim 1 , further comprising providing to the second device a visual indication of which fields of the changed data record are permitted to be changed by the second device.

8. The method of claim 1 , wherein the steps of claim 1 are performed by a broker of a synchronization server associated with the master data repository.

9. The method of claim 1 , wherein the steps of claim 1 are implemented in a computer infrastructure having computer executable code tangibly embodied on a non-transitory computer readable storage medium having programming instructions to perform the steps of claim 1 .

10. A system for managing data synchronization, comprising:

a synchronization server including a processor and a memory, and further comprising a broker that executes instructions to perform:

storing a data record in a master data repository, a first device and a second device, wherein the master data repository, the first device and the second device are coupled to the synchronization server;

receiving a first notification from the first device that the data record has been changed to include first changes on the first device;

receiving a second notification from a second device of an intent to change the data record to include second changes on the second device;

sending a message to the second device to wait before changing the data record on the second device;

sending a message to the first device to synchronize the changed data record with the first changes to one of a master data repository and the second device; and

upon determining that the first device is instructed by the server to synchronize the data record with the first changes to the second device rather than the master data repository, instructing, by the server, the first and second devices to:

transmit the data record with the first changes from the first device to the second device;

change the data record on the second device to include the first changes from the first device and the second changes from the second device to create a twice changed data record; and

synchronize the twice changed data record on the second device to the master data repository,

wherein the sending the message to the first device to synchronize the changed data record comprises instructing the first device to synchronize the changed data record to the master data repository.

11. The system of claim 10 , wherein the first device and the second device comprise mobile computing devices that are intermittently connected to the master data repository.

12. The system of claim 11 , wherein:

the master data repository comprises a server database that contains a copy of the data record; and

the first device and the second device each comprises a client database that contains a copy of the data record.

13. The system of claim 10 , wherein the instructing the first device to synchronize the changed data record comprises instructing the first device to use the second device as a data intermediary for sending the changed data record to the master data repository.

14. A computer system for managing data synchronization, the system comprising:

a CPU, a computer readable memory, and a computer readable storage media;

first program instructions to monitor a change of a data record in a client database of a first mobile device; and

second program instructions to, based on the monitoring, instruct the first device to transmit the change of the data record to one of a master data repository and a second mobile device, wherein the master data repository includes a server database that includes the data record, and the second mobile device includes another client database that includes the data record;

third program instructions to, upon determining that the first mobile device is instructed to transmit the change of the data record to the second mobile device rather than the master data repository, instruct the second mobile device to change the data record on the second mobile device to include the change of the data record from the first mobile device and any changes to the data record from the second mobile device to create a twice changed data record, and synchronize the twice changed data record on the second mobile device to the master data repository,

wherein the first, second and third program instructions are stored on the computer readable storage media for execution by the CPU via the computer readable memory, and

wherein the instructing the first device to transmit the change of the data record comprises instructing the first device to synchronize the change of the data record to the master data repository.

15. The computer system of claim 14 , further comprising third program instructions to: determine connectivity parameters between the first mobile device, the second mobile device, and a broker; and based on the determining, instruct the first mobile device to transmit the change of the data record either directly to the second mobile device or indirectly to the second mobile device via the broker.

16. A method of managing data synchronization between a mobile device and a master data repository using a server comprised of a processor and a memory coupled to the master data repository and the mobile device, comprising:

receiving a notification from the mobile device that a data record has been changed to include first changes in a client database on the mobile device;

determining a current connectivity status of the mobile device to the master data repository having a server database that includes the data record, wherein the determining of the current connectivity status is based on a connectivity map that indicates whether the mobile device is currently in a low connectivity zone, a medium connectivity zone or a high connectivity zone;

predicting a future connectivity status of the mobile device to the master data repository, wherein the predicting is based on a map and at least one of current location data, historical location data, and scheduled location data of the mobile device; and

providing instructions to the mobile device regarding synchronizing the changed data record with the master data repository based on the determining of the current connectivity status and the predicting of the future connectivity status,

wherein the providing instructions comprises instructing the mobile device to utilize a second mobile device as a data intermediary for synchronizing the changed data record with the master data repository, and providing instructions for changing the data record on the second device to include the first changes from the first device and any second changes from the second device to create a twice changed data record, and synchronizing the twice changed data record on the second device to the master data repository.

17. The method of claim 16 , wherein the providing instructions comprises instructing the mobile device to perform the synchronizing at a particular time.

Assignments (7)
RELEASE OF SECURITY INTEREST Recorded Jan 6, 2021
From: ORIX GROWTH CAPITAL, LLC
To: KONY, INC.
Reel/Frame 054829/0562 →
RELEASE OF SECURITY INTEREST Recorded Jul 9, 2019
From: SILICON VALLEY BANK
To: KONY, INC.
Reel/Frame 049706/0024 →
SECURITY INTEREST Recorded Sep 5, 2017
From: KONY, INC.
To: ORIX GROWTH CAPITAL, LLC
Reel/Frame 043489/0497 →
SECURITY AGREEMENT Recorded May 4, 2016
From: KONY, INC.
To: SILICON VALLEY BANK
Reel/Frame 038606/0858 →
SUPPLEMENT TO INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded May 4, 2016
From: KONY, INC.
To: SILICON VALLEY BANK
Reel/Frame 038606/0884 →
CHANGE OF NAME Recorded Jul 3, 2013
From: KONY SOLUTIONS, INC.
To: KONY, INC.
Reel/Frame 030747/0291 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 3, 2013
From: KONERU, RAJ KUMAR; RAMANATHAN, SRIRAM; TERRY, MATTHEW; SESHAM, SRINIVAS; TREVATHAN, MATTHEW
To: KONY SOLUTIONS, INC.
Reel/Frame 030347/0968 →
Continuity (1)
Related Publication 20140330779A1 · Nov 6, 2014