Dynamic Data Binding via Expression Engine

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Developers face the time-consuming task of manually creating or relying on compilers to bind data objects between presentation and database layers in software applications, diverting focus from the application's primary function.

Innovation Solution

An expression engine dynamically creates bindings between objects using run-time type information (RTTI) to automatically establish and manage relationships between data objects, allowing for efficient data movement between layers without prior knowledge of data types.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If developers manually create data bindings between presentation and database layers, then data manipulation is achieved, but development time increases and developer focus is diverted from application function

Engineering Contradiction:
Improvedevelopment efficiencyVSAvoidtime spent on code generation
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system performs data binding automatically without requiring developer intervention. The expression engine self-evaluates runtime type information and creates bindings autonomously, allowing the development process to serve itself rather than requiring manual coding for each binding scenario.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system changes the binding process from a static compile-time operation to a dynamic runtime operation. By evaluating type information at runtime and adapting bindings accordingly, the system eliminates the need for pre-written binding code and allows bindings to be created automatically based on actual data types during execution.

Inventive Principle:
Principle #35Parameter changes

2Extent of automation

If compilers automatically bind data objects, then code generation time is reduced, but flexibility in handling different data types is limited

Engineering Contradiction:
Improveautomatic bindingVSAvoiddata type flexibility
Core Design Contradiction:
Extent of automationVSAdaptability or versatility

Solution Approach 1:

The binding system transitions from static compile-time bindings to dynamic runtime bindings. The expression engine evaluates type information at runtime and creates bindings adaptively based on the actual data types present during execution, providing both automation and flexibility.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The expression engine acts as an intermediary between the presentation layer and database layer. It receives type information, evaluates it dynamically, and mediates the creation of appropriate bindings, thereby bridging the gap between automated processing and type-specific flexibility.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If developers write extensive code to control data manipulation, then precise data flow control is achieved, but the complexity of the application increases

Engineering Contradiction:
Improvedata flow controlVSAvoidapplication complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The binding logic is extracted from the main application code and handled separately by the expression engine. This separation removes the complexity of manual binding code from the application while maintaining reliable data flow control through the dedicated binding mechanism.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The system uses runtime type information as feedback to automatically adjust and create bindings. The expression engine continuously evaluates type information and adapts bindings accordingly, providing reliable data flow control without requiring complex pre-programmed logic.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS10489167B2Dynamically binding data in an application
Publication Date: 2019.11.26 EMBARCADERO TECHNOLOGIES INC
  • US10489167B2 patent drawing
  • US10489167B2 patent drawing
  • US10489167B2 patent drawing

AI summary

In a method for dynamically binding data in an application, an expression describing a relation between a first property of a first data of the application to a first property of a second data of the application is received. A binding is created between the first data and the second data based on the relation. A change is propagated to the first property of the second data based on a change to the first property of the first data. It is determined when to execute the expression in the application.