# US 2016/0259657 A1 · Dynamically binding data in an application

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2016/0259657 A1
- Document ID: US20160259657A1
- Status: Published application
- Kind: A1
- Application number: 15/157,287
- Filed: 2016-05-17
- Published: 2016-09-08
- Earliest claimed: 2011-08-30
- Assignees: Embarcadero Technologies, Inc.
- Applicants: Embarcadero Technologies, Inc.
- Inventors: James Tierney; John R. Thomas
- Web page: https://patentgrep.com/patent/US20160259657A1

## CPC

- G06F 9/44521: {Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading}
- G06F 8/54: Link editing before load time
- G06F 9/54: Interprogram communication
- G06F 9/545: {where tasks reside in different layers, e.g. user- and kernel-space}
- G06F 9/547: {Remote procedure calls [RPC]; Web services}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A computer-usable storage medium having instructions embodied therein that when executed cause a computer system to perform a method for binding data in an application. An expression is created via a framework based on input from a developer. The expression is received at an expression engine wherein the expression describes a relation between a first property of a first data of the application to a first property of a second data of the application. A binding is created between the first data and the second data based on the relation via the expression engine. The first property of the second data is changed based on a change to the first property of the first data wherein the changing occurs because of the binding. The receiving the expression, the creating the binding, and the changing the first property are orchestrated via the framework to manage when the expression is executed in the application.

## Claims

### Claim 1

A non-transitory computer-usable storage medium having instructions embodied therein that when executed cause a computer system to perform a method for dynamically binding data in an application, said method comprising:
creating an expression via a framework based on input from a developer;
receiving said expression at an expression engine wherein said expression describes a relation between a first property of a first data of said application to a first property of a second data of said application;
creating a binding between said first data and said second data based on said relation via said expression engine;
changing said first property of said second data based on a change to said first property of said first data wherein said changing occurs because of said binding; and
orchestrating said receiving said expression, said creating said binding, and said changing said first property via said framework to manage when said expression is executed in said application.

### Claim 2 (depends on 1)

The non-transitory computer-usable storage medium of claim 1, the method further comprising:
wherein said first data is associated with a presentation layer of said application and wherein said second data is associated with a database layer of said application; and
moving said second data from said database layer of said application to said presentation layer of said application based on said binding during an execution of said application.

### Claim 3 (depends on 2)

The non-transitory computer-usable storage medium of claim 2, the method further comprising:
modifying said second data in said presentation layer of said application based on information received from a user; and
moving said second data from said presentation layer of said application back to said database layer of said application after said modifying said second data.

### Claim 4 (depends on 1)

The non-transitory computer-usable storage medium of claim 1 wherein said receiving said expression and said creating said binding are accomplished using run time type information (RTTI) associated with said first data and said second data.

### Claim 5 (depends on 1)

The non-transitory computer-usable storage medium of claim 1 wherein said receiving said expression and said creating said binding occur during development of said application.

### Claim 6 (depends on 5)

The non-transitory computer-usable storage medium of claim 5 wherein said development of said application occurs via a manipulation of visual components associated with a graphical user interface.

### Claim 7 (depends on 1)

The non-transitory computer-usable storage medium of claim 1 wherein said receiving said expression and said creating said binding occur dynamically during an execution of said application.

### Claim 8 (depends on 1)

The non-transitory computer-usable storage medium of claim 1 wherein said binding occurs to allow said first data or said second data to move unidirectional.

### Claim 9 (depends on 1)

The non-transitory computer-usable storage medium of claim 1 wherein said binding occurs to allow said first data or said second data to move bidirectional.

### Claim 10 (depends on 1)

The non-transitory computer-usable storage medium of claim 1 wherein said first data is a control object of said application and said second data is a source object of said application.

### Claim 11 (depends on 1)

The non-transitory computer-usable storage medium of claim 1 wherein said changing said first property of said second data converts a data type of said second data to a new data type.

### Claim 12 (depends on 1)

The non-transitory computer-usable storage medium of claim 1 wherein said receiving said expression and said creating said binding are repeated to create a plurality of bindings based on a plurality of expressions.

### Claim 13 (depends on 1)

The non-transitory computer-usable storage medium of claim 1, further comprising:
altering a property of said second data based on said binding; and
altering a property of a third data bound to said second data based on said altering said property of said second data.

### Claim 14 (depends on 1)

The non-transitory computer-usable storage medium of claim 1 wherein said application was developed using C++ programming language.

### Claim 15 (depends on 1)

The non-transitory computer-usable storage medium of claim 1 wherein said creating said expression creates a plurality of expressions and said creating said binding creates a plurality of bindings based on said plurality of said expressions.

### Claim 16

A non-transitory computer-usable storage medium having computer readable program code embedded therein that when executed causes a computing system to dynamically bind data in an application, said program code comprising:
a first data with a first property;
a second data with a first property;
an expression relating said first data to said second data; and
an expression engine for querying said first data and said second data for run time type information (RTTI), receiving said expression, binding said first data to said second data based on said RTTI and said expression and for changing said first property of said second data based on a change to said first property of said first data wherein said changing occurs because of said binding; and
a framework for creating said expression based on input from a developer and for orchestrating a movement of said first data and said second data in said application to control when said expression is executed in said application.

### Claim 17 (depends on 16)

The non-transitory computer-usable storage medium of claim 16 wherein said first data is associated with a presentation layer of said application, wherein said second data associated with a database layer of said application, and wherein said expression engine is for moving said second data from said database layer of said application to said presentation layer of said application based on said binding during an execution of said application.

### Claim 18 (depends on 16)

The non-transitory computer-usable storage medium of claim 16 wherein said application was developed using C++ programming language.

### Claim 19 (depends on 16)

The non-transitory computer-usable storage medium of claim 16, further comprising:
a graphical user interface at said computing system for manipulating said expression and properties of said first data and said second data.

### Claim 20 (depends on 16)

The non-transitory computer-usable storage medium of claim 16 wherein said binding is a managed binding.

### Claim 21 (depends on 16)

The non-transitory computer-usable storage medium of claim 16 wherein said binding is an unmanaged binding.

### Claim 22

A non-transitory computer-usable storage medium having instructions embodied therein that when executed cause a computer system to perform a method for dynamically binding data in an application, said method comprising:
creating an expression via a framework based on input from a developer;
receiving said expression at an expression engine wherein said expression describes a relation between a first property of a first data of said application to a first property of a second data of said application;
querying said first data and said second data for run time type information (RTTI) via said expression engine;
creating a binding between said first data and said second data based on said relation and said RTTI via said expression engine;
changing said first property of said second data based on a change to said first property of said first data wherein said changing occurs because of said binding; and
orchestrating the receiving the expression, the creating the binding, and the changing the first property via the framework to manage when the expression is executed in the application.

### Claim 23 (depends on 22)

The non-transitory computer-usable storage medium of claim 22, the method further comprising:
wherein said first data is associated with a presentation layer of said application and wherein said second data is associated with a database layer of said application; and
moving said second data from said database layer of said application to said presentation layer of said application based on said binding during an execution of said application.
