Location-Based Runtime Environment for Web Application Memory Management

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Web applications using page-oriented development face limitations in handling complex, interactive interfaces and memory management, leading to inefficiencies and potential memory leaks, while traditional rich client applications incur startup delays and resource inefficiencies.

Innovation Solution

Implementing a runtime environment that allows location-based behavior, where 'locations' serve as containers for child objects, enabling navigation and memory management without recreating UI components, thereby providing a robust and efficient client-side execution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If web applications use page-oriented development with frequent page reloads, then navigation and view switching are simple, but memory leaks and accumulated memory leaks occur due to repeated recreation of client components

Engineering Contradiction:
Improvenavigation simplicityVSAvoidmemory stability
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The patent segments the application into persistent components and location-specific components. Persistent components remain in memory across navigations, while location components are loaded and unloaded based on navigation. This segmentation allows simple page-oriented navigation while preventing memory leaks by selectively managing component lifecycle.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces dynamic component loading and unloading based on location navigation. Components are dynamically added to or removed from the client instance depending on whether they are persistent or location-specific, enabling memory management that adapts to navigation patterns without sacrificing navigation simplicity.

Inventive Principle:
Principle #15Dynamics

2Reliability

If traditional rich client applications are used to provide robust execution capabilities, then execution reliability improves, but startup delays increase and resource inefficiency occurs

Engineering Contradiction:
Improveexecution reliabilityVSAvoidstartup delay
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent applies partial loading by initially loading only persistent components and essential functionality, providing a responsive client experience immediately. Additional location-specific components are loaded on-demand during navigation, reducing initial startup time while maintaining execution reliability for critical functions.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The patent performs preliminary action by pre-loading and maintaining persistent components in memory that are needed across multiple locations. This preliminary preparation eliminates repeated loading overhead while maintaining reliable execution of core functionality, reducing startup delays without sacrificing robustness.

Inventive Principle:
Principle #10Preliminary action

3Device complexity

If all client components are recreated on every page reload, then state management is simplified, but productivity decreases due to excessive processing and memory usage

Engineering Contradiction:
Improvestate management complexityVSAvoidapplication performance
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent segments components into persistent and location-specific categories, allowing selective retention of state. Persistent components maintain state across navigations without full recreation, while location components are recreated only when needed. This segmentation simplifies state management for persistent data while improving productivity by avoiding unnecessary recreation of all components.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements selective discarding and recovering of components based on location navigation. Location-specific components are discarded when leaving a location and recovered when returning, while persistent components are recovered and maintained. This approach simplifies state management by automatically handling component lifecycle while maintaining productivity through intelligent resource management.

Inventive Principle:
Principle #34Discarding and recovering

Data Source

PatentUS9417851B2Location-based application development for runtime environments
Publication Date: 2016.08.16 ADOBE INC
  • US9417851B2 patent drawing
  • US9417851B2 patent drawing
  • US9417851B2 patent drawing

AI summary

A runtime environment can access code data defining an application comprising a persistent component comprising code for a user interface element and referencing a navigation action, a location loader, and a plurality of location components. Each location component can comprise executable code for child contents for providing a respective view of the application. A first view of the application can be provided by loading code of a first location component into memory via the location loader and executing code of the child contents of the first location component via the runtime environment. In response to receiving a navigation command via the user interface element, a second view of the application can be provided by loading code of a second location component into memory and executing code of the child contents of the second location component via the runtime environment. The code of the first location component may be removed from memory after the navigation command is received.