Spreadsheet Non-Native Dependency Recalculation Control
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Executing non-native functions within the runtime context of a spreadsheet application poses security risks and is computationally inefficient, especially when dealing with large data sets and requiring users to be proficient in unfamiliar programming environments.
Innovation Solution
The technology integrates non-native dependencies in a spreadsheet by identifying dependencies between cells containing non-native arguments and limiting recalculations accordingly, using static analysis to determine the scope of recalculation and enforcing an ordering scheme for non-native code execution.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If non-native functions are executed within the runtime context of a spreadsheet application, then users can leverage tools provided by non-native environments for big data jobs, but security risks are introduced to the application and its general environment
Solution Approach 1:
The patent introduces an intermediary layer that separates non-native code execution from the spreadsheet application's runtime context. A dependency service acts as a mediator, receiving requests from the spreadsheet application, analyzing dependencies in non-native code, and returning results without allowing direct execution within the application's security boundary. This resolves the contradiction by enabling integration capability through the intermediary while preventing security risks from propagating to the core application environment.
2Adaptability or versatility
If non-native functions are integrated into spreadsheet application, then advanced libraries and tools can be used, but computational inefficiency increases when passing large data sets between spreadsheet and non-native resource
Solution Approach 1:
The patent extracts the computationally intensive task of dependency analysis from the spreadsheet application and places it in a separate dependency service. By taking out the dependency analysis function, the system avoids the overhead of passing large data sets between the spreadsheet and non-native resources for dependency tracking, while still allowing library access. The service receives minimal request data, performs analysis, and returns results, improving computational efficiency while maintaining versatility.
3Adaptability or versatility
If non-native code execution is enabled in spreadsheet, then user-defined functions can be created in non-native procedural languages, but users must be proficient with editing macros and configuring unfamiliar programming environment
Solution Approach 1:
The patent implements self-service by having the dependency service automatically analyze non-native code for dependencies without requiring user intervention. Instead of users manually configuring programming environments or editing macros to specify dependencies, the system autonomously parses the non-native code, identifies dependencies, and integrates them into the spreadsheet's dependency graph. This resolves the contradiction by maintaining programming language support while eliminating the need for users to be proficient with macro editing and environment configuration.
4Measurement precision
If recalculation scope is expanded to include all cells with non-native arguments, then dependency accuracy is improved, but recalculation performance deteriorates
Solution Approach 1:
The patent applies local quality by making the dependency analysis scope dynamic and localized rather than uniformly comprehensive. The dependency service analyzes only the specific non-native code relevant to the changed cell, not all non-native arguments in the spreadsheet. This localized approach maintains dependency tracking accuracy for affected areas while avoiding the performance penalty of analyzing the entire spreadsheet, thus resolving the contradiction between precision and speed.
Data Source
AI summary
Technology is disclosed herein for integrating native and non-native dependencies in a spreadsheet hosted by a spreadsheet application. In an implementation, a computing apparatus identifies a formula in a first cell of a spreadsheet which includes a non-native argument. The computing apparatus identifies a dependency between the first cell and a second cell created by the non-native argument. The computing apparatus limits recalculations of the spreadsheet based at least on the dependency. In an implementation, absent any other dependencies between the first cell and other cells, the first cell is excluded from recalculations triggered by changes to the other cells and included in recalculations triggered by the second cell. In an implementation, a direct or indirect dependency is created by, respectively, an explicit or implicit reference to the second cell in the non-native argument. In some implementations, the formula is native to the spreadsheet application hosting the spreadsheet.


