A method and apparatus for composing software are described. In one
embodiment, the apparatus comprises a loader to obtain software structure
data identifying a plurality of application components associated with
requested functionality and to obtain software logic data indicating
interaction rules between the plurality of application components, a
parameter index generator to parse a description file and generate an
index for each parameter of the plurality of application components, a
parameter mapping to map input, output and state parameters to indices
that are used by application components to access the input, output and
state parameters, and a scheduler to coordinate an invocation of the
plurality of application components at run time based on the software
logic data.