Simulated Change Apparatus for Immutable Software Nodes

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Managing changes to software objects at runtime is challenging due to the creation of unnecessary new objects, especially in multi-threaded applications, leading to performance issues and complexity in maintaining object immutability.

Innovation Solution

A system and method for simulating changes to immutable software nodes during runtime, using a simulated change apparatus that intercepts and redirects references, allowing operations to be performed without actually modifying existing objects in memory, thereby maintaining logical immutability and reducing object creation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If immutable objects are changed in memory by creating new objects, then the object can be updated, but the number of newly created objects increases and performance decreases

Engineering Contradiction:
Improveobject update capabilityVSAvoidruntime performance
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent introduces a simulated change apparatus as an intermediary layer between the immutable objects and the code execution module. This apparatus intercepts change instructions and applies them virtually without creating new objects in memory, thus maintaining performance while enabling object updates through simulation

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

Instead of creating new object instances in memory, the patent creates a virtual copy of the change instruction in the simulated change apparatus. This virtual copy allows the system to simulate object changes without the overhead of actual object creation and memory allocation

Inventive Principle:
Principle #26Copying

2Adaptability or versatility

If immutable objects are changed by creating new objects, then the object state can be updated, but the complexity of managing object references increases

Engineering Contradiction:
Improveobject state updateVSAvoidobject reference management
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The simulated change apparatus serves as an intermediary that manages all object reference changes centrally. It intercepts change instructions and applies them virtually, eliminating the need for complex reference management code throughout the system while still enabling object state updates

Inventive Principle:
Principle #24Intermediary (Mediator)

3Adaptability or versatility

If immutable objects are changed in multi-threaded applications, then the object can be modified, but maintaining logical immutability becomes difficult

Engineering Contradiction:
Improveobject modification capabilityVSAvoidlogical immutability consistency
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The simulated change apparatus acts as a centralized intermediary that controls all object modifications. It receives change instructions from any thread and applies them virtually in a controlled manner, ensuring that the underlying immutable objects remain unchanged while maintaining consistent logical state across all threads

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The simulated change apparatus automatically manages the complexity of multi-threaded immutability by intercepting and processing change instructions itself. It handles the coordination and consistency maintenance without requiring application code to implement complex synchronization or immutability logic

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS11537418B2Simulated change of immutable objects during execution runtime
Publication Date: 2022.12.27 MORGAN STANLEY SERVICES GROUP INC
  • US11537418B2 patent drawing
  • US11537418B2 patent drawing
  • US11537418B2 patent drawing

AI summary

A system for executing software, wherein a computing device stores instructions for a code execution module such that, when the instructions are executed, the computing device will: receive, for execution by the code execution module, software; create one or more immutable software nodes described in the software; determine that the software comprise an instruction to begin a simulated change at runtime of the one or more immutable software nodes; store the simulated change in a simulated change apparatus; using the simulated change apparatus, perform one or more operations of the software as if the one or more immutable software nodes had been changed in memory, during a period of time where each of the one or more immutable software nodes is guaranteed to retain logical immutability; and output results of the one or more operations.