IP Library Granted Patent US 10,133,801
Granted Patent B2
US 10,133,801 · App. 14/209,872 · Granted Nov 20, 2018

Providing data aggregated from various sources to a client application

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 10,133,801
App. No.
14/209,872
Granted
Nov 20, 2018
Kind
B2
Abstract

A system and a method are disclosed for generating a repository to be used on a client device. The repository is generated based on a repository format supported by the client device, which is identified by analyzing an empty repository created by the client device. The generated repository is configured with metadata that allows an operating system executing on the client device to communicate with the repository. Once generated, the repository is populated with data associated with a user of the client device. The populated repository is transmitted to the client device, where the repository is used by applications for retrieving and storing data.

Claims (51)

1. A method for generating a storage repository in a server system for use on a client device, the method comprising:

receiving, from the client device at a data processing engine, a snapshot of an empty storage repository created by the client device;

determining, by the data processing engine, a repository format supported by an operating system executing on the client device based on the snapshot of the empty storage repository, the repository format specifying an internal structure of the empty storage repository and metadata stored in the empty storage repository to enable the operating system to communicate with the empty storage repository;

creating, by the data processing engine, a new storage repository according to the repository format supported by the client device, the new storage repository configured with an internal structure and metadata that allows the operating system executing on the client device to communicate with the new storage repository;

populating, by the data processing engine, the new storage repository with a plurality of records stored in a server repository to be used by a client application of the client device, wherein the plurality of records is received from one or more data sources; and

transmitting, by the data processing engine, the populated new storage repository to the client device for storage and for access by the client application.

2. The method of claim 1 , further comprising, prior to transmitting the populated new storage repository, compressing the populated new storage repository to reduce the amount of time needed to transmit the populated repository to the client device.

3. The method of claim 1 , wherein populating the new storage repository with a plurality of records comprises selecting records from a server repository that stores records received from a plurality of data sources.

4. The method of claim 1 , further comprising:

storing a copy of the new storage repository in a server-side repository;

receiving additional data from the client application that was written to the new storage repository in the client device; and

storing the additional data in the copy of the new storage repository.

5. The method of claim 1 , further comprising:

after transmitting the populated new storage repository, identifying additional data to be used by the client application; and

transmitting the additional data to the client device for storing in the populated new storage repository.

6. The method of claim 1 , wherein the new storage repository is populated with data to be used by a client application executing on the client device.

7. The method of claim 1 , wherein the subset of data comprises contact data.

8. A non-transitory computer-readable storage medium for storing instructions that, when executed by a processor, cause the processor to generate a repository to be used on a client device, the instructions when executed cause the processor to:

receive, from the client device at a data processing engine, a snapshot of an empty storage repository created by the client device;

determine, by the data processing engine, a repository format supported by an operating system executing on the client device based on the snapshot of the empty storage repository, the repository format specifying an internal structure of the empty storage repository and metadata stored in the empty storage repository to enable the operating system to communicate with the empty storage repository;

create, by the data processing engine, a new storage repository according to the repository format supported by the client device, the new storage repository configured with an internal structure and metadata that allows the operating system executing on the client device to communicate with the new storage repository;

populate, by the data processing engine, the new storage repository with a plurality of records stored in a server repository to be used by a client application of the client device, wherein the plurality of records is received from one or more data sources; and

transmit, by the data processing engine, the populated new storage repository to the client device for storage and for access by the client application.

9. The computer readable storage medium of claim 8 , wherein the instructions further comprise instructions that when executed cause the processor to:

store a copy of the new storage repository in a server-side repository;

receive additional data from the client application that was written to the new storage repository in the client device; and

store the additional data in the copy of the new storage repository.

10. The computer readable storage medium of claim 8 , wherein the instructions further comprise instructions that when executed cause the processor to, prior to transmitting the populated new storage repository, compress the populated new storage repository to reduce the amount of time needed to transmit the populated new storage repository to the client device.

11. The computer readable storage medium of claim 8 , wherein the instructions further comprise instructions that when executed cause the processor to:

after transmitting the populated new storage repository, identify additional data to be used by the client application; and

transmit the additional data to the client device for storing in the populated new storage repository.

12. The computer readable storage medium of claim 8 , wherein the instruction to populate the new storage repository with data further comprise instructions that when executed cause the processor to select data from a server repository that stores data received from a plurality of data sources.

13. The computer readable storage medium of claim 8 , wherein the new storage repository is populated with data to be used by a client application executing on the client device.

14. The computer readable storage medium of claim 8 , wherein the subset of data comprises contact data.

15. A system for generating a repository to be used on a client device, the system comprising:

a data processing engine configured to:

receive a snapshot of an empty storage repository created by the client device;

determine a repository format supported by an operating system executing on the client device based on the snapshot of the empty storage repository, the repository format specifying an internal structure of the empty storage repository and metadata stored in the empty storage repository to enable the operating system to communicate with the empty storage repository;

create a new storage repository according to the repository format supported by the client device, the new storage repository configured with an internal structure and metadata that allows the operating system executing on the client device to communicate with the new storage repository;

populate the new storage repository with a plurality of records stored in a server repository to be used by a client application of the client device, wherein the plurality of records is received from one or more data sources; and

transmit the populated new storage repository to the client device for storage and for access by the client application.

16. The system of claim 15 , wherein the data processing engine is further configured to:

store a copy of the new storage repository in a server-side repository;

receive additional data from the client application that was written to the new storage repository in the client device; and

store the additional data in the copy of the new storage repository.

17. The system of claim 15 , wherein the data processing engine is further configured to, prior to transmitting the populated new storage repository, compress the populated new storage repository to reduce the amount of time needed to transmit the populated new storage repository to the client device.

18. The system of claim 15 , wherein the data processing engine is further configured to:

after transmitting the populated new storage repository, identify additional data to be used by the client application; and

transmit the additional data to the client device for storing in the populated new storage repository.

19. The system of claim 15 , wherein populating the new storage repository with data comprises selecting data from a server repository that stores data received from a plurality of data sources.

20. The system of claim 15 , wherein the new storage repository is populated with data to be used by a client application executing on the client device.

Assignments (7)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 3, 2025
From: AKTANA, INC.
To: PHARMAFORCEIQ, INC.
Reel/Frame 073482/0293 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 30, 2025
From: EXCALIBUR ACQUISITIONCO, LLC
To: AKTANA, INC.
Reel/Frame 072738/0118 →
RELEASE OF SECURITY INTEREST Recorded Nov 8, 2023
From: HERCULES CAPITAL, INC.
To: TACT.AI TECHNOLOGIES, INC.
Reel/Frame 065498/0296 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 8, 2023
From: TACT.AI TECHNOLOGIES, INC.
To: EXCALIBUR ACQUISITIONCO, LLC
Reel/Frame 065498/0893 →
SECURITY INTEREST Recorded Feb 13, 2020
From: TACT.AI TECHNOLOGIES, INC.
To: HERCULES CAPITAL, INC., AS AGENT
Reel/Frame 051816/0816 →
CHANGE OF NAME Recorded Dec 27, 2017
From: TACTILE, INC.
To: TACT.AI TECHNOLOGIES, INC.
Reel/Frame 044968/0276 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 12, 2015
From: PRASANNA, DHANANJAY; PARAMESWARAN, PREMNATH; SEEBALDT, KURTIS L.; SMITH, KEVIN LYNN
To: TACTILE, INC.
Reel/Frame 036773/0912 →