Dynamic Runtime Environment Selection for Application Portability

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing applications are rigid and inflexible due to predetermination of multiple execution environments, requiring developers to be experts in multiple environments and leading to costly and time-consuming development and maintenance.

Innovation Solution

A system for automatic setup and management of runtime environments, allowing applications to be executed in customizable environments by sending state and logic portions to client devices and executing subsets of the application based on internal and external factors.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If applications are developed for predetermined environments with all environments prepared in advance, then applications can run in multiple environments, but the software code becomes rigid, inflexible, and hard to maintain

Engineering Contradiction:
Improveapplication environment compatibilityVSAvoidcode structure complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent segments the application into multiple independent components (frontend components, backend services, data models) that can be selectively assembled and executed in different runtime environments. This modular architecture allows the application to adapt to various environments without requiring rigid pre-determination of all execution contexts, thereby maintaining code flexibility while achieving multi-environment compatibility.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements dynamic component instantiation where application components are created and configured at runtime based on the detected environment characteristics. Instead of static pre-configuration for all environments, the system dynamically determines which components to instantiate and how to configure them, enabling the application to adapt flexibly to different runtime conditions without code rigidity.

Inventive Principle:
Principle #15Dynamics

2Adaptability or versatility

If developers develop applications for multiple predetermined environments, then applications can run in each environment, but developers need to be experts in multiple environments and development becomes costly and time-consuming

Engineering Contradiction:
Improvemulti-environment execution capabilityVSAvoiddevelopment and maintenance time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent creates a universal application core that can execute in multiple environments through a standardized component interface. The frontend components and backend services are designed with universal protocols that allow them to interact with different runtime environments (desktop, mobile, web, offline, online) without requiring environment-specific development expertise, thereby reducing development time and costs while maintaining multi-environment capability.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The patent introduces an intermediary layer (the runtime environment detection and component assembly mechanism) that mediates between the universal application components and the diverse execution environments. This intermediary handles environment-specific adaptations automatically, eliminating the need for developers to be experts in multiple environments while still achieving comprehensive environment support.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Adaptability or versatility

If applications are rewritten for different environments, then applications can work in each environment, but development becomes costly and time-consuming

Engineering Contradiction:
Improveenvironment-specific functionalityVSAvoiddevelopment efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent performs preliminary environment detection and component assembly preparation before actual application execution. The system pre-identifies the runtime environment characteristics and pre-assembles the appropriate component configuration, avoiding the need for costly and time-consuming rewrites. This preliminary action enables the same application codebase to adapt to different environments efficiently.

Inventive Principle:
Principle #10Preliminary action

4Adaptability or versatility

If multiple different applications are developed for different environments, then each application can run in its target environment, but maintenance becomes costly and user experience consistency is lost

Engineering Contradiction:
Improveenvironment-specific optimizationVSAvoidapplication management complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent merges multiple environment-specific applications into a single unified application that uses the same core components across all environments. By combining the frontend components, backend services, and data models into one cohesive codebase that dynamically adapts to different environments, the system eliminates the complexity of managing multiple separate applications while maintaining environment-specific optimization capabilities.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS20250036436A1Systems and methods for execution in dynamic application runtime environments
Publication Date: 2025.01.30 APPIAN CORP
  • US20250036436A1 patent drawing
  • US20250036436A1 patent drawing
  • US20250036436A1 patent drawing

AI summary

Described herein are methods, systems, and computer-readable storage media for automatic selection of a runtime environment for execution of an application. Techniques include identifying the application at a server for execution in a runtime environment and then accessing a state portion and a logic portion of the application. Techniques further include selecting the runtime environment by determining a location scenario of the state portion and the logic portion of the application. Techniques to determining the location scenario is at least one of: the state portion and the logic portion of the application are present on the server, the state portion is sent to a client device by the server and the logic portion is present on the server, the logic portion is sent to the client device by the server and the state portion is present on the server, the state portion and the logic portion of the application are sent to the client device by the server.