Data Binding Framework for Automatic Update Propagation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Developers face challenges in efficiently handling reactive features in software applications, as they traditionally need to manually build handlers for changes, which can be time-consuming and error-prone.

Innovation Solution

A data binding framework that allows developers to declare bound values, automatically propagating updates, treating live/dynamic data like static data, with layers for computation declaration and orchestration, optimizing data subscriptions and usage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If developers manually build handlers for change propagation, then they can handle reactive features, but it becomes time-consuming and error-prone

Engineering Contradiction:
Improveerror-proneVSAvoidtime-consuming
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system enables self-service through automatic change propagation. When a bound variable changes, the framework automatically identifies and notifies all subscribers without requiring manual handler implementation. This eliminates human error in setting up propagation logic while reducing development time through declarative syntax.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The framework performs preliminary action by pre-establishing subscription relationships between bound variables and subscribers. Developers declare bindings in advance, and the system automatically manages the propagation infrastructure before runtime changes occur, eliminating the need for manual handler setup.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If developers manually manage data updates, then they can control data flow, but programming becomes more complex and less efficient

Engineering Contradiction:
ImproveefficiencyVSAvoidprogramming complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The framework introduces an intermediary layer between data sources and consumers. This mediator automatically manages subscription tracking, change detection, and propagation routing. Developers interact with simple declarative bindings while the intermediary handles the complex propagation logic, reducing programming complexity and improving productivity.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system segments data management into independent bound variables and subscribers. Each variable maintains its own subscription list, and changes propagate through discrete, manageable units. This segmentation simplifies the overall system complexity by breaking down manual update management into automated, isolated components.

Inventive Principle:
Principle #1Segmentation

3Extent of automation

If the system tracks all subscription relationships, then update propagation becomes automatic, but memory usage increases

Engineering Contradiction:
Improveautomatic update propagationVSAvoidmemory usage
Core Design Contradiction:
Extent of automationVSQuantity of substance

Solution Approach 1:

The framework implements discarding and recovering by automatically removing subscriptions when they are no longer needed. When bound variables or subscribers are destroyed or unsubscribe, the system recovers the associated memory. This maintains automatic propagation while managing memory usage through active subscription tracking and cleanup.

Inventive Principle:
Principle #34Discarding and recovering

Solution Approach 2:

The system uses feedback mechanisms to track subscription relationships efficiently. Each bound variable provides feedback about its current value and subscription status, allowing the framework to optimize memory usage by only maintaining active subscriptions. This feedback loop enables automatic propagation while managing resource consumption.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS11416239B2System and method of utilizing data binding to propagate data changes
Publication Date: 2022.08.16 META PLATFORMS TECHNOLOGIES LLC
  • US11416239B2 patent drawing
  • US11416239B2 patent drawing
  • US11416239B2 patent drawing

AI summary

In one embodiment, one or more computing systems executes a computer program defining (1) a bound value that references a bound variable and (2) a terminating bound value that references computation instructions for deriving a runtime value from at least the bound value of the bound variable. A computation orchestration layer of a programming framework initializes, according to the computer program, a subscription tracker that tracks subscription relationships between the bound variable and the terminating bound value. The computation orchestration layer uses, in response to receiving an indication of an update to the bound value of the bound variable, the subscription tracker to determine that the terminating bound value subscribes to updates to the bound value of the bound variable. The computation orchestration layer sends an update stream associated with the update to a callback function associated with the terminating bound value.