Efficient assignment of query requests between analytical engines of differing complexity
First Claim
Patent Images
1. A non-transitory computer program product comprising a machine-readable medium storing instructions that, when executed by at least one programmable processor, cause the at least one programmable processor to perform operations comprising:
- receiving a query request from a single user interface via which a user selects a desired set of analytical functions from a presented full range of levels of analytical complexity supported by the plurality of analytical reporting engines;
analyzing the received query request at runtime to determine a level of analytical complexity required to generate a report responsive to the query request;
distributing, based on the determined level of analytical complexity, the one or more analysis tasks among a plurality of analytical reporting engines of differing analytical complexity such that a full complexity analytical engine of the plurality of analytical reporting engines is used only for those of the one or more analysis tasks that require capabilities of the full complexity analytical engine;
distributing, based on the determined level of analytical complexity, those of the one or more analysis tasks that do not require capabilities of the full complexity analytical engine to one or more reduced complexity analytical engines of the plurality of analytical reporting engines, the one or more reduced complexity analytical reporting engines comprising fewer capabilities than the full complexity analytical engine; and
generating the report based at least in part on output from each of the plurality of analytical engines to which the one or more analytical tasks were distributed.
2 Assignments
0 Petitions
Accused Products
Abstract
Runtime performance of report generation and other response to query requests can be improve using a report analyzer that can parse the query request and distribute the necessary analytical task among two or more analytical engines of varying levels of complexity.
-
Citations
17 Claims
-
1. A non-transitory computer program product comprising a machine-readable medium storing instructions that, when executed by at least one programmable processor, cause the at least one programmable processor to perform operations comprising:
-
receiving a query request from a single user interface via which a user selects a desired set of analytical functions from a presented full range of levels of analytical complexity supported by the plurality of analytical reporting engines; analyzing the received query request at runtime to determine a level of analytical complexity required to generate a report responsive to the query request; distributing, based on the determined level of analytical complexity, the one or more analysis tasks among a plurality of analytical reporting engines of differing analytical complexity such that a full complexity analytical engine of the plurality of analytical reporting engines is used only for those of the one or more analysis tasks that require capabilities of the full complexity analytical engine; distributing, based on the determined level of analytical complexity, those of the one or more analysis tasks that do not require capabilities of the full complexity analytical engine to one or more reduced complexity analytical engines of the plurality of analytical reporting engines, the one or more reduced complexity analytical reporting engines comprising fewer capabilities than the full complexity analytical engine; and generating the report based at least in part on output from each of the plurality of analytical engines to which the one or more analytical tasks were distributed. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A system comprising:
-
at least one programmable processor; and a machine-readable medium storing instructions that, when executed by the at least one processor, cause the at least one programmable processor to perform operations comprising; receiving a query request from a single user interface via which a user selects a desired set of analytical functions from a presented full range of levels of analytical complexity supported by the plurality of analytical reporting engines; analyzing the received query request at runtime to determine a level of analytical complexity required to generate a report responsive to the query request; distributing, based on the determined level of analytical complexity, the one or more analysis tasks among a plurality of analytical reporting engines of differing analytical complexity such that a full complexity analytical engine of the plurality of analytical reporting engines is used only for those of the one or more analysis tasks that require capabilities of the full complexity analytical engine; distributing, based on the determined level of analytical complexity, those of the one or more analysis tasks that do not require capabilities of the full complexity analytical engine to one or more reduced complexity analytical engines of the plurality of analytical reporting engines, the one or more reduced complexity analytical reporting engines comprising fewer capabilities than the full complexity analytical engine; and generating the report based at least in part on output from each of the plurality of analytical engines to which the one or more analytical tasks were distributed. - View Dependent Claims (7, 8, 9, 10, 11)
-
-
12. A computer-implemented method comprising:
-
receiving, by at least one processor, a query request from a single user interface via which a user selects a desired set of analytical functions from a presented full range of levels of analytical complexity supported by the plurality of analytical reporting engines; analyzing, by the least one processor, the received query request at runtime to determine a level of analytical complexity required to generate a report responsive to the query request; distributing, by the least one processor and based on the determined level of analytical complexity, the one or more analysis tasks among a plurality of analytical reporting engines of differing analytical complexity such that a full complexity analytical engine of the plurality of analytical reporting engines is used only for those of the one or more analysis tasks that require capabilities of the full complexity analytical engine; distributing, by the least one processor and based on the determined level of analytical complexity, those of the one or more analysis tasks that do not require capabilities of the full complexity analytical engine to one or more reduced complexity analytical engines of the plurality of analytical reporting engines, the one or more reduced complexity analytical reporting engines comprising fewer capabilities than the full complexity analytical engine; and generating, by the at least one processor, the report based at least in part on output from each of the plurality of analytical engines to which the one or more analytical tasks were distributed. - View Dependent Claims (13, 14, 15, 16, 17)
-
Specification