Patent ID: 7103873

Claim:
A computer based method of dynamically configuring the execution of an application for a particular hardware configuration comprising: loading an application graph of the application on a hardware configuration, wherein the application graph is a directed data flow graph wherein a node of the application graph identifies a processing block and links of the application graph indicate the direction of the data flow between processing blocks, wherein the application graph is independent of hardware configurations; loading a dictionary of components on the hardware configuration, wherein a component represents a feature, wherein a component contains at least one implementation of the feature, wherein an implementation of the feature is represented by a set of processing blocks, wherein an implementation of the feature is customized for at least one hardware configuration; inserting at least one set of processing blocks representing an implementation of a component into the application graph, wherein the implementation is customized for the hardware configuration; and executing the application graph, wherein the application graph is dynamically modified, wherein said executing step includes: traversing the application graph; executing the processing blocks of the application graph, wherein executing the processing blocks specifies a necessary feature; selecting a component from the dictionary based on the specified necessary feature; selecting an implementation from the selected component based on the hardware configuration; and modifying the application graph dynamically at run time by inserting the set of processing blocks of the selected implementation into the application graph.