IP Library Granted Patent US 9,286,329
Granted Patent B2
US 9,286,329 · App. 14/169,483 · Granted Mar 15, 2016

Generating analytics application using reusable application modules

Inventors: Tomas Svarovsky (Daly City, CA); Petr Olmer (San Francisco, CA)
Assignee: GoodData Corporation
G06F17/30294
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,286,329
App. No.
14/169,483
Granted
Mar 15, 2016
Kind
B2
Abstract

Analytics applications are generated using application modules. An application module stores metadata for use in an analytics application. The application module is associated with one or more data fields that correspond to data used in the analytics reports of an application module. An application module may be a composite application module that includes other application modules. An analytics application is generated from a specification including a set of fields. The set of data fields of the specification are matched against the data fields of the application modules. An application module matches the specification of the analytics application if the specification includes all the data fields of the application module. All matching application modules are selected and sent for deployment of the analytics application. The analytics application generated is configured to present information based on analytics reports.

Claims (80)

1. A method for generating an analytics application, the method comprising:

storing, by a multi-tenant system, a set of application modules for use as reusable components of analytics applications, each application module comprising metadata, the multi-tenant system configured to receive and store data from a plurality of external systems and present analytics reports for each external system, the metadata describing:

a set of data fields processed by the application module,

information for extracting data for the set of data fields of the application module from external systems,

a database schema for storing data extracted from external systems,

queries for generating data for an analytics report based on the data fields, and

format for presentation of results of the analytics report;

for each of the plurality of external systems, generating an analytics application for the external system by the multi-tenant system, the generating comprising:

receiving an analytics application specification for the external system, the external system having a set of source fields, the analytics application specification including a mapping of source fields of the external system to data fields of the stored application modules;

for one or more stored application modules, determining whether the analytics application specification specifies a source field corresponding to each of the data fields of the application module;

selecting a plurality of application modules for including in the analytics application being generated, wherein the set of data fields of each of the plurality of application modules matches a distinct subset of the set of source fields of the external system;

packaging the plurality of selected application modules; and

for each of the plurality of external systems, executing the generated analytics application by the multi-tenant system, the executing comprising:

deploying the packaged plurality of selected application modules as the analytics application;

periodically receiving data from the external system; and

displaying reports generated using the received data via the deployed application.

2. The method of claim 1 , further comprising:

rejecting an application module if a data field of the application module fails to match any source field of the external system.

3. The method of claim 1 , wherein the set of application modules comprises a composite module that includes a first application module and a second application module, such that selecting the composite module provides the queries of the first application module and the queries of the second application module in the generated analytics application.

4. The method of claim 3 , wherein the composite application module further includes additional queries based on data fields from the first application module and the second application module.

5. The method of claim 4 , wherein an additional query of the composite application module relates a first field from the first application module and a second field from the second application module wherein the first field and the second field are unrelated in the metadata of the first application module and the second application module.

6. The method of claim 3 , further comprising:

determining that the composite application module is excluded from the one or more application modules selected for the analytics application if at least one application module of the composite module includes a data field that fails to match to any source field of the external system.

7. The method of claim 1 , further comprising:

receiving request to customize an application module from the set of application module, the request specifying modification to the metadata of the application module;

modifying the metadata of the application module based on the request to customize; and

storing the modified application module.

8. The method of claim 1 , wherein the packaged one or more selected application modules are sent to the server for deployment on a platform for executing analytics applications shared by multiple users.

9. The method of claim 1 , wherein the information for extracting data for the set of data fields comprises parameters for creating a connection with the external system.

10. The method of claim 1 , further comprising:

receiving specification for transforming data retrieved from a source field of the external system to obtain data of a data field of the analytics application.

11. The method of claim 1 , further comprising:

sending, to a client device, information identifying fields from the set of source fields of the external system that are not included in the one or more application modules selected for generating the analytics application.

12. A non-transitory computer-readable storage medium storing instructions for:

storing, by a multi-tenant system, a set of application modules for use as reusable components of analytics applications, each application module comprising metadata, the multi-tenant system configured to receive and store data from a plurality of external systems and present analytics reports for each external system, the metadata describing:

a set of data fields processed by the application module,

information for extracting data for the set of data fields of the application module from external systems,

a database schema for storing data extracted from external systems,

queries for generating data for an analytics report based on the data fields, and

format for presentation of results of the analytics report;

for each of the plurality of external systems, generating an analytics application for the external system by the multi-tenant system, the generating comprising:

receiving an analytics application specification for the external system, the external system having a set of source fields, the analytics application specification including a mapping of source fields of the external system to data fields of the stored application modules;

for one or more stored application modules, determining whether the analytics application specification specifies a source field corresponding to each of the data fields of the application module;

selecting a plurality of application modules for including in the analytics application being generated, wherein the set of data fields of each of the plurality of application modules matches a plurality of a distinct subset of the set of source fields of the external system; and

packaging the plurality of selected application modules; and

for each of the plurality of external systems, executing the generated analytics application by the multi-tenant system, the executing comprising:

deploying the packaged plurality of selected application modules as the analytics application;

periodically receiving data from the external system; and

displaying reports generated using the received data via the deployed application.

13. The non-transitory computer readable storage medium of claim 12 , wherein the set of application modules comprises a composite module that includes a first application module and a second application module, such that selecting the composite module provides the queries of the first application module and the queries of the second application module in the generated analytics application, the composite application module further comprising additional queries based on the fields from the first application module and the second application module.

14. The non-transitory computer readable storage medium of claim 13 , wherein an additional query of the composite application module relates a first field from the first application module and a second field from the second application module wherein the first field and the second field are unrelated in the metadata of the first application module and the second application module.

15. The non-transitory computer readable storage medium of claim 13 , further comprising instructions for:

determining that the composite application module is excluded from the one or more application modules selected for the analytics application if at least one application module of the composite application module includes a data field that fails to match to any source field of the external system.

16. The non-transitory computer readable storage medium of claim 12 , further comprising instructions for:

rejecting an application module if a data field of the application module fails to match any source field of the external system.

17. The non-transitory computer readable storage medium of claim 12 , further comprising instructions for:

receiving request to customize an application module from the set of application module, the request specifying modification to the metadata of the application module;

modifying the metadata of the application module based on the request to customize; and

storing the modified application module.

18. The non-transitory computer readable storage medium of claim 12 , wherein the information for extracting data for the set of data fields comprises parameters for creating a connection with the external system.

19. The non-transitory computer readable storage medium of claim 12 , further comprising instructions for:

receiving specification for transforming data retrieved from a source field of the external system to obtain data of a data field of the analytics application.

20. A computer system, comprising:

a computer processor; and

non-transitory computer-readable storage medium storing instructions for:

storing, by a multi-tenant system, a set of application modules for use as reusable components of analytics applications, each application module comprising metadata, the multi-tenant system configured to receive and store data from a plurality of external systems and present analytics reports for each external system, the metadata describing:

a set of data fields processed by the application module,

information for extracting data for the set of data fields of the application module from external systems,

a database schema for storing data extracted from external systems,

queries for generating data for an analytics report based on the data fields, and

format for presentation of results of the analytics report;

for each of the plurality of external systems, generating an analytics application for the external system by the multi-tenant system, the generating comprising:

receiving an analytics application specification for the external system, the external system having a set of source fields, the analytics application specification including a mapping of source fields of the external system to data fields of the stored application modules;

for one or more stored application modules, determining whether the analytics application specification specifies a source field corresponding to each of the data fields of the application module;

selecting a plurality of application modules for including in the analytics application being generated, wherein the set of data fields of each of the plurality of application modules matches a distinct subset of the set of source fields of the external system;

packaging the plurality of selected application modules; and

for each of the plurality of external systems, executing the generated analytics application by the multi-tenant system, the executing comprising:

deploying the packaged plurality of selected application modules as the analytics application;

periodically receiving data from the external system; and

displaying reports generated using the received data via the deployed application.

Assignments (9)
RELEASE OF SECURITY INTEREST Recorded Jan 20, 2022
From: WESTERN ALLIANCE BANK, AN ARIZONA CORPORATION
To: GOODDATA CORPORATION
Reel/Frame 058710/0111 →
RELEASE OF SECURITY INTEREST Recorded Jan 20, 2022
From: WF FUND V LIMITED PARTNERSHIP
To: GOODDATA CORPORATION
Reel/Frame 058710/0450 →
SECURITY INTEREST Recorded Jun 1, 2021
From: GOODDATA CORPORATION
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 056403/0849 →
RELEASE OF SECURITY INTEREST Recorded Jan 31, 2020
From: COMERICA BANK
To: GOODDATA CORPORATION
Reel/Frame 051689/0786 →
SECURITY INTEREST Recorded Jan 30, 2020
From: GOODDATA CORPORATION
To: WESTERN ALLIANCE BANK, AN ARIZONA CORPORATION
Reel/Frame 051670/0173 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTERESTS Recorded Jan 9, 2018
From: WF FUND V LIMITED PARTNERSHIP, C/O/B/ AS WELLINGTON FINANCIAL LP AND WELLINGTON FINANCIAL FUND V
To: CANADIAN IMPERIAL BANK OF COMMERCE
Reel/Frame 045028/0880 →
SECURITY INTEREST Recorded Jul 6, 2017
From: GOODDATA CORPORATION
To: COMERICA BANK
Reel/Frame 042914/0765 →
SECURITY INTEREST Recorded Jun 29, 2017
From: GOODDATA CORPORATION
To: WF FUND V LIMITED PARTNERSHIP
Reel/Frame 042870/0023 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 31, 2014
From: SVAROVSKY, TOMAS; OLMER, PETR
To: GOODDATA CORPORATION
Reel/Frame 032106/0699 →
Continuity (1)
Related Publication 20150220572A1 · Aug 6, 2015