A Delta-driven Execution Model for Semantic Computing
Town and Country Room
Wednesday, 16:15, 45 minutes
Roly Perera, Dynamic Aspects
Jeff Foster, Dynamic Aspects
György Koch, Dynamic Aspects
We describe (and demonstrate) the execution model of a computing platform where computation is both incremental and data-driven. We call such an approach delta-driven. The platform is intended as a delivery vehicle for semantically integrated software, and thus lends itself to the semantic web, domain-driven development, and next-generation software development environments. Execution is transparent, versioned, and persistent. This technology - still at an early stage - is called domain/object.
The execution model of domain/object is a radical departure from that of most programming languages and virtual machines in use today. Execution takes place solely by the propagation and interpretation of object deltas. When a data value changes, a description of that change in the form of a delta propagates to all dependent data values. The incoming delta is interpreted as a (possibly null) delta in the dependent value, which in turn recursively propagates to its dependents. When changes propagate across domains, the delta translation process is an interpreter in the traditional computer science sense, translating actions in the "source" language as they are received into actions in a "target" language and applying them to the target domain. (Action and delta are synonymous in our nomenclature.)
Under the delta-driven approach data values are ?live?, not snapshots like variables are in traditional programming languages. Abstractly the model is more similar to a spreadsheet than a standard programming language. Domain/object is thus a kind of dataflow language.
The ?integration of disparate systems? is the number one priority facing internet-centric businesses today, according to IBM. Yet as an industry we have spent precious little time understanding how to make software really connect. While much remains to be done, domain/object represents an important move in the direction of truly semantic computing.