Background Program Execution via Segmented Child Environments
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Modern computer systems face a user experience issue where long-latency program instructions, such as downloading large files, cease to execute when a web application is backgrounded, as environments like WebView do not support continuous execution in the background, leading to a poor user experience.
Innovation Solution
The implementation of a parent environment that spawns a second child environment, such as a JavaScriptCore environment, to continue executing program instructions even when the client application is backgrounded, allowing long-latency operations to complete without user intervention.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If a web application is backgrounded in a WebView environment, then the application switches to another application in the foreground, but long-latency program instructions cease to execute in the background
Solution Approach 1:
The system segments the execution environment into a WebView for UI rendering and a separate JavaScriptCore environment for executing long-latency program instructions. This segmentation allows the WebView to be backgrounded while the JavaScriptCore continues executing instructions, resolving the contradiction between application switching and continuous execution.
Solution Approach 2:
The patent introduces an intermediary mechanism where the WebView communicates execution requests to the JavaScriptCore environment. The JavaScriptCore acts as a mediator that maintains continuous execution of long-latency instructions independently from the WebView's foreground/background state, enabling reliable background execution.
2Adaptability or versatility
If long-latency program instructions are executed in a WebView environment, then web application functionality is provided, but execution stops when the application is backgrounded
Solution Approach 1:
The system separates the execution context into two independent environments: WebView for handling web application functionality and JavaScriptCore for maintaining long-latency instruction execution. This allows the program instructions to execute continuously regardless of WebView state changes.
Solution Approach 2:
The system preliminarily establishes a JavaScriptCore execution environment that is specifically configured to maintain continuous execution of long-latency instructions. This pre-configured environment ensures that when the WebView is backgrounded, the instructions continue executing without interruption.
3Reliability
If the application remains in the foreground to maintain execution, then program instructions continue to execute, but user interface responsiveness is reduced
Solution Approach 1:
The patent segments the application into UI rendering (WebView) and execution maintenance (JavaScriptCore) components. This allows the WebView to remain responsive to user interactions while the JavaScriptCore independently maintains continuous execution of program instructions, resolving the trade-off between reliability and responsiveness.
Solution Approach 2:
The JavaScriptCore environment serves as an intermediary that handles the execution maintenance task, freeing the WebView from the burden of maintaining continuous execution. This mediator approach allows the UI to remain fully responsive while execution reliability is maintained by the specialized JavaScriptCore environment.
Data Source
AI summary
Techniques are disclosed relating to the execution of a set of program instructions in the background. A parent environment of an application executing on a computer system may receive a request from a first child environment within the parent environment to execute a set of program instructions. The first child environment does not permit the set of program instructions to be executed within the first child environment while the application is backgrounded. In response to the request, the parent environment may spawn a second child environment within the parent environment that permits the set of program instructions to be executed while the application is backgrounded. The parent environment may cause the set of program instructions to be executed within the second child environment and may return a result of the executing to the first child environment.


