Asynchronous dynamic functions for calculation engines
First Claim
1. A method of providing a data calculation framework for a user application, the method comprising:
- providing one or more functions for use by a calculation engine of the user application;
monitoring an availability status of each of the one or more functions, wherein the availability status is related to a present capability of one of each of the one or more functions to process expressions associated with the calculation engine;
determining that the calculation engine issues a call for evaluation of a nested expression comprising at least a child function embedded in a parent function, and responsively dispatching at least a first evaluation process for a first portion of the nested expression that employs the child function;
determining, during the monitoring, that the parent function has an unavailable status;
during evaluation of the nested expression, indicating to the calculation engine, based on the unavailable status of the parent function, a predetermined result for at least the parent function;
determining, during the monitoring based on availability of a child result from the first evaluation process, that the parent function has an available status;
responsive to the available status of the parent function, dispatching at least a second evaluation process for a second portion of the nested expression that employs the child result; and
responsive to receiving a parent result from the second evaluation process, indicating the parent result to the calculation engine.
1 Assignment
0 Petitions
Accused Products
Abstract
Systems, methods, and software for data calculation frameworks for user applications are provided herein. An exemplary method includes providing functions for use by a calculation engine of the user application, determining that the calculation engine issues a call for evaluation of a nested expression comprising at least a child function embedded in a parent function, and responsively dispatching at least a first evaluation process for a first portion of the nested expression that employs the child function. During evaluation of the nested expression, the method includes indicating to the calculation engine a predetermined result for at least the parent function, and dispatching at least a second evaluation process for a second portion of the nested expression that employs the child result. Responsive to receiving a parent result from the second evaluation process, the method includes indicating the parent result to the calculation engine.
14 Citations
18 Claims
-
1. A method of providing a data calculation framework for a user application, the method comprising:
-
providing one or more functions for use by a calculation engine of the user application; monitoring an availability status of each of the one or more functions, wherein the availability status is related to a present capability of one of each of the one or more functions to process expressions associated with the calculation engine; determining that the calculation engine issues a call for evaluation of a nested expression comprising at least a child function embedded in a parent function, and responsively dispatching at least a first evaluation process for a first portion of the nested expression that employs the child function; determining, during the monitoring, that the parent function has an unavailable status; during evaluation of the nested expression, indicating to the calculation engine, based on the unavailable status of the parent function, a predetermined result for at least the parent function; determining, during the monitoring based on availability of a child result from the first evaluation process, that the parent function has an available status; responsive to the available status of the parent function, dispatching at least a second evaluation process for a second portion of the nested expression that employs the child result; and responsive to receiving a parent result from the second evaluation process, indicating the parent result to the calculation engine. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A function evaluation framework for a user application, comprising:
-
one or more computer readable storage media; a processing system operatively coupled with the one or more computer readable storage media; and program instructions stored on the one or more computer readable storage media that, based on being read and executed by the processing system, direct the processing system to at least; provide one or more functions for use by a calculation engine of the user application; monitor an availability status of each of the one or more functions, wherein the availability status is related to a present capability of each of the one or more functions to process expressions associated with the calculation engine; determine that the calculation engine issues a call for evaluation of a nested expression comprising at least a child function embedded in a parent function, and responsively dispatch at least a first evaluation process for a first portion of the nested expression that employs the child function; determine, during the monitoring, that the parent function has an unavailable status; during evaluation of the nested expression, indicate to the calculation engine, based on the unavailable status of the parent function, a predetermined result for at least the parent function; determining, during the monitoring based on availability of a child result from the first evaluation process, that the parent function has an available status; responsive to the available status of the parent function, dispatch at least a second evaluation process for a second portion of the nested expression that employs the child result; and responsive to receiving a parent result from the second evaluation process, indicate the parent result to the calculation engine. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A method of providing a function handling service to a spreadsheet application that comprises cells containing one or more data evaluation expressions, the method comprising:
-
receiving a request from a calculation service of the spreadsheet application for evaluation of a nested expression in a cell that comprises a top-level function calling one or more inner functions; monitoring an availability status of the top-level function and the one or more inner functions, wherein the availability status is related to a present capability of each of the monitored functions to process expressions associated with the calculation service; determining, during the monitoring, that the top-level function has an unavailable status and responsively returning, based on the unavailable status of the top-level function, a predetermined result to the calculation service and dispatching an evaluation process for the one or more inner functions; after completion of the evaluation process for the one or more inner functions, caching results returned for the one or more inner functions and indicating a recalculation request to the calculation service for the cell; receiving a recalculation request issued by the calculation service for the top-level function, and responsively performing an evaluation process for the top-level function using cached results for the one or more inner functions; after completion of the evaluation process for the top-level function, caching a result returned for the top-level function and indicating a further recalculation request to the calculation service for the cell; and receiving a further recalculation request issued by the calculation service for the top-level function, and responsively returning to the calculation service a cached result for the top-level function. - View Dependent Claims (16, 17, 18)
-
Specification