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.