A method and apparatus for managing functions (e.g., that express business
rules) to allow calling functions, maintaining functions, and providing of
an execution framework for functions. In one embodiment, there are a
number of functions to be maintained. An object technology infrastructure
is formed to store data and metadata for the functions. For example,
metadata about a function can include data describing what that function
does, a "cost" associated with that function, how to execute that
function, the input and output parameters required by that function. The
exposure of the metadata regarding the functions' input and output
parameters allows an engine to track input/output relationships between
the functions and, in essence, define the order of execution.