Method and apparatus for managing functions
First Claim
1. A machine readable medium having stored thereon:
- a function requiring a set of one or more input parameters;
a first object including, a first structure storing a key for each of said set of input parameters, and an action method, which when applied by a processor, causes that processor to invoke an action unit; and
a second object including, a first structure to store data for identifying, for each of said set of input parameters, the corresponding key and a value for that input parameter, a second structure identifying said first object, and an execute method, which when applied by a processor, causes that processor to apply said action method;
said action unit including instructions, which when executed by a processor, cause that processor to, access said values, and invoke said function using said values as input parameters.
1 Assignment
0 Petitions
Accused Products
Abstract
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.
27 Citations
46 Claims
-
1. A machine readable medium having stored thereon:
-
a function requiring a set of one or more input parameters;
a first object including, a first structure storing a key for each of said set of input parameters, and an action method, which when applied by a processor, causes that processor to invoke an action unit; and
a second object including, a first structure to store data for identifying, for each of said set of input parameters, the corresponding key and a value for that input parameter, a second structure identifying said first object, and an execute method, which when applied by a processor, causes that processor to apply said action method;
said action unit including instructions, which when executed by a processor, cause that processor to, access said values, and invoke said function using said values as input parameters. - View Dependent Claims (2, 3, 4, 5, 6)
the data in said first structure of said second object identifies a third object; and
said third object includes a structure to store, for one or more of said set of input parameters, the corresponding key and value for that input parameter.
-
-
5. The machine readable medium of claim 1, wherein:
-
the data in said first structure of said second object identifies a third object; and
said third object includes, a first structure to store a plurality of context objects, each of said plurality of context objects to store, for one or more of said set of input parameters, the corresponding key and a value for that input parameter, and a second structure to store data identifying one of said plurality of context objects as a default context object.
-
-
6. The machine readable medium of claim 1, wherein:
-
said function provides a set of one or more output parameters;
said first structure in said first object also storing a key for each of said set of output parameters.
-
-
7. A machine readable medium having stored thereon:
-
a function requiring a set of one or more input parameters;
a first object including, a first structure storing a key for each of said set of input parameters, and an action method, which when applied by a processor, causes that processor to invoke said function; and
a second object including, a first structure identifying a third object, a second structure identifying said first object, and an execute method, which when applied by a processor, causes that processor to apply said action method; and
said third object including, a first structure to store a plurality of context objects, each of said plurality of context objects to store, for one or more of said set of input parameters, the corresponding key and a value for that input parameter, and a second structure to store data identifying one of said plurality of context objects as a default context object. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14)
an action unit including said function as a method.
-
-
9. The machine readable medium of claim 7 further having stored thereon:
-
an action unit including instructions, which when executed by a processor, cause that processor to invoke said function; and
wherein said action method, when applied, causes the execution of the instructions in said action unit.
-
-
10. The machine readable medium of claim 7 further having stored thereon:
-
an action unit including instructions, which when executed by a processor, cause that processor to, access values for one or more of said set of input parameters from a selected one of said plurality of context objects that is passed to said action unit, and invoke said function using said values as input parameters; and
wherein said action method, when applied, causes said function to be invoked through the instructions in said action unit.
-
-
11. The machine readable medium of claim 10, wherein:
-
said second object also includes a first structure storing data identifying, for one or more of said set of input parameters, the corresponding key and a value for that input parameter; and
said instructions of said action unit, when executed by a processor, also cause that processor to access values for one or more of said set of input parameters from said first structure.
-
-
12. The machine readable medium of claim 11, wherein:
said instructions of said action unit, when executed by a processor, also cause that processor to access values for one or more of said set of input parameters from said default context object.
-
13. The machine readable medium of claim 11, wherein:
said instructions of said action unit, when executed by a processor, also cause that processor to access values for one or more of said set of input parameters from said default context object.
-
14. The machine readable medium of claim 7 further having stored thereon:
-
said second object also includes a first structure to store data identifying, for one or more of said set of input parameters, the corresponding key and a value for that input parameter; and
an action unit including instructions, which when executed by a processor, cause that processor to, access values for said set of input parameters from said first structure of said second object, a selected one of said plurality of context objects that is passed to said action unit, and said default context object, and invoke said function using said values as input parameters.
-
-
15. A machine readable medium having stored thereon:
-
a plurality of functions for one or more applications, each of said plurality of functions requiring one or more input parameters, the input parameters required by said plurality of functions collectively defining a set of parameter kinds irrespective of data type, each parameter kind in said set being assigned a unique key;
a metadata object corresponding to each of said plurality of functions, each said metadata object storing data to locate the corresponding one of said plurality of functions, each said metadata object also storing the unique key for each input parameter required by the corresponding one of said plurality of functions; and
each metadata object having one or more corresponding execution objects, each execution object including a structure storing data to identify a value for each input parameter of the one of said plurality of functions identified by the corresponding metadata object. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22)
an action unit for each of said plurality of functions, each of said action units including instructions, which when executed by a processor, cause that processor to invoke the corresponding one of said plurality of functions; and
wherein the data in each of said metadata objects for locating the corresponding one of said plurality of functions identifies the corresponding one of said action units; and
wherein each of said metadata objects includes an action method, which when applied, causes the execution of the instructions in the corresponding one of said action units.
-
-
18. The machine readable medium of claim 17, wherein:
-
each execution object includes a method, which when applied, causes said action method of the corresponding metadata object to be applied for that business rule;
each action method, when applied responsive to the method of an execution object, causes the instructions in the corresponding action unit to be executed for that business rule; and
the instructions in each action unit, when applied responsive to an action method responsive to the method of an execution object, causes the values of that business rule to be accessed and said function of that action unit to be invoked with said values as input parameters.
-
-
19. The machine readable medium of claim 15, wherein at least one of said execution objects stores the key and a corresponding value for at least one input parameter of the corresponding one of said plurality of functions.
-
20. The machine readable medium of claim 15, wherein:
-
at least one of said execution objects includes a structure identifying a manager object; and
said manager object includes a structure to store the key and a corresponding value for at least on input parameter of the one of said plurality of functions corresponding to the at least one of said execution objects.
-
-
21. The machine readable medium of claim 15, wherein:
-
at least one of said execution objects includes a structure identifying a manager object; and
said manager object includes, a first structure to store a plurality of context objects, each of said plurality of context objects to store the key and a corresponding value for one or more input parameters to at least certain of the plurality of functions, and a second structure to store data identifying one of said plurality of context objects as a default context object.
-
-
22. The machine readable medium of claim 15, wherein:
-
each of said plurality of functions provides one or more output parameters, the input and output parameters of said plurality of functions collectively defining said set of parameter kinds irrespective of data type;
each said metadata object also storing the unique key for each input and output parameter of the corresponding one of said plurality of functions.
-
-
23. A machine readable medium having stored thereon sequences of instructions, which when executed by a set of one or more processors, cause said set of one or more processors to perform the acts of:
-
applying a first method from a first execution object, said first execution object identifying a first metadata object corresponding to a first function, said first function requiring one or more input parameters, said first metadata object storing data describing each input parameter of said first function, said first method causing the acts of, accessing the data describing each input parameter of said first function from said first metadata object;
attempting to match values associated with said first execution object to each input parameter of said first function as described by the data; and
determining a value is missing for at least a first input parameter to said first function. - View Dependent Claims (24, 25, 26, 27, 28, 29)
locating a second metadata object corresponding to a second function having one or more output parameters, said second metadata object storing data describing each output parameter of said second function;
determining the missing first input parameter is an output parameter of said second function; and
executing said second function to acquire the missing value.
-
-
25. The machine readable medium of claim 24, wherein said first method further causes the act of:
-
associating the acquired value with said first execution object; and
executing said first function using the acquired value now associated with said first execution object as the first input parameter.
-
-
26. The machine readable medium of claim 23, wherein said first method further causes the acts of:
-
determining a set of metadata objects that each have stored therein data describing an output parameter that matches one or more of the missing input parameters, wherein each metadata object in said set corresponds to a different function having a set of one or more output parameters, each metadata object in said set storing data describing said set of output parameters for the corresponding function; and
executing the functions corresponding to the set of metadata objects to acquire said set of missing values;
associating the acquired values with the first execution object; and
executing said first function using the values associated with the first execution object as input parameters.
-
-
27. The machine readable medium of claim 23, wherein said attempting further includes:
accessing a structure in said first execution object, said structure in said first execution object to store values for one or more said set of input parameters to said first function.
-
28. The machine readable medium of claim 23, wherein said attempting further includes:
-
accessing a structure in a manager object identified by a structure in said first execution object, said structure in said manager object identifying a default one of a plurality of context objects, each of said plurality of context objects to store values for one or more of the input parameters to said first function; and
accessing said values from said default context object.
-
-
29. The machine readable medium of claim 23, wherein said sequences of instructions, when executed, cause said set of processors to further perform the acts of:
-
applying a first method from a second execution object, said second execution object also identifying said first metadata object, said first method of said second execution object causing the acts of, accessing the data describing each input parameter of said first function from said first metadata object;
attempting to match values associated with said second execution object to each input parameter of said first function as described by the data in said first metadata object; and
determining one or more values are missing for at least certain input parameters of said first function.
-
-
30. A machine readable medium having stored thereon sequences of instructions, which when executed by a set of one or more processors, cause said set of one or more processors to perform the acts of:
-
applying a first method from a first execution object, said first execution object identifying a first of a plurality of metadata objects, each of said plurality of metadata objects identifying a different function, each of said functions having input and output parameters, wherein one or more parameters for different functions are the same, the parameters for the different functions collectively defining a set of parameter kinds, each parameter kind in said set of parameter kinds being assigned a unique key, each of said plurality of metadata objects storing the unique keys assigned the input and output parameters of the function they identify, said first method causing the acts of, accessing the key for each input parameter stored in said first metadata object;
attempting to match parameter values associated with said first execution object to each of the accessed keys; and
determining parameter values are missing for a set including at least one of the accessed keys. - View Dependent Claims (31, 32, 33, 34, 35, 36)
locating a set of one or more of said plurality of metadata objects that collectively store each of the set of keys; and
executing the functions corresponding to the set of metadata objects to acquire said set of missing parameter values as outputs of the functions;
associating the acquired parameter values with the first execution object; and
executing the function identified by the first metadata object using the parameter values associated with the first execution object as input parameters.
-
-
33. The machine readable medium of claim 30, wherein said attempting further includes:
accessing a structure in said first execution object, said structure in said first execution object to store values for one or more said set of input parameters to the function identified by the first metadata object.
-
34. The machine readable medium of claim 30, wherein said attempting further includes:
-
accessing a structure in a manager object identified by a structure in said first execution object, said structure in said manager object identifying a default one of a plurality of context objects, each of said plurality of context objects to store values for one or more of the input parameters to said first function; and
accessing one or more of said values from said default context object.
-
-
35. The machine readable medium of claim 30, wherein said sequences of instructions, when executed, cause said set of processors to further perform the acts of:
-
applying a first method from a second execution object, said second execution object also identifying said first metadata object, said first method of said second execution object causing the acts of, accessing the key for each input parameter stored in said first metadata object;
attempting to match values associated with said second execution object to each of the accessed keys; and
determining parameter values are missing for a set including at least one of the accessed keys.
-
-
36. The machine readable medium of claim 30, wherein said attempting further includes:
-
accessing from a first structure in said first execution object a value for a first input parameter to said function identified by said first metadata object;
accessing, from a first of a set of context objects that was passed, a value for a second input parameter to said first function, said set of context objects being stored in a first structure of a manager object, each of said set of context objects to store values for one or more of the input parameters to said first function, said manager object identifying one of said set of context objects as a default context object; and
accessing from said default context object a value for a third input parameter to said first function.
-
-
37. A machine readable medium having stored thereon sequences of instructions, which when executed by a set of one or more processors, cause said set of one or more processors to perform the acts of:
-
receiving a request to locate a function that provides a particular parameter kind as an output;
locating a metadata object having stored therein data identifying said particular parameter kind, said metadata object identifying a function and storing said data to indicate the particular parameter kind is an output parameter of said function; and
providing an execution object that identifies said metadata object, wherein said execution object includes, structure to identify values for a set of one or more input parameters to said function, and a method, which when applied, causes said function to be invoked using the values identified by said structure as input parameters. - View Dependent Claims (38, 39, 40)
said function has a plurality of parameters, said metadata object stores data identifying each kind of said plurality of parameters.
-
-
39. The machine readable medium of claim 38, wherein each parameter of said function is of one of a plurality of data types each supporting a range of values, wherein different data is categorized irrespective of data type, and wherein each category of data defines one of the parameter kinds.
-
40. The machine readable medium of claim 37, wherein:
-
said metadata object includes an action method, which when applied by a processor, causes said processor to invoke said function; and
said method in said execution object, when applied, causes said action method to be applied.
-
-
41. A machine readable medium having stored thereon sequences of instructions, which when executed by a set of one or more processors, cause said set of one or more processors to perform the acts of:
-
receiving a request to locate a function that provides a particular output parameter, wherein each of a plurality of metadata objects identify a different function having one or more output parameters, said output parameters for the different functions collectively defining a set of parameter kinds, each parameter kind in said set being assigned a unique key, each of said plurality of metadata objects storing the unique keys assigned the output parameters of the function they identify;
locating a first of said plurality of metadata objects that stores the unique key for the particular output parameter; and
creating an execution object that identifies said first metadata object, wherein said execution object includes, a structure to identify values for a set of one or more input parameters to said function identified by said first metadata object, and a method, which when applied, causes said function identified by said first metadata object to be invoked using the values identified by said structure as input parameters. - View Dependent Claims (42, 43, 44)
applying said method from said execution object, wherein both said input and output parameters for the different functions collectively define said set of parameter kinds, each of said plurality of metadata objects storing the unique keys assigned the input and output parameters of the function they identify, said method from said execution object causing the acts of, accessing the key for each input parameter stored in said first metadata object;
attempting to match parameter values associated with said execution object to each of the accessed keys; and
executing the function identified by said first metadata object using the parameter values associated with the execution object as input parameters.
-
-
44. The machine readable medium of claim 41, wherein said attempting further causes the acts of:
-
determining parameter values are missing for a set including at least one of the accessed keys. locating a set of one or more of said plurality of metadata objects that collectively store each of the set of keys for output parameters; and
executing the functions corresponding to the plurality of metadata objects to acquire said set of missing parameter values as outputs of the functions; and
associating the acquired parameter values with first execution object.
-
-
45. A machine readable medium having stored thereon sequences of instructions, which when executed by a set of one or more processors, cause said set of one or more processors to perform the acts of:
-
applying a first method from a first execution object, said first execution object identifying a first of a plurality of metadata objects, each of said plurality of metadata objects identifying a different function, each of said functions having input and output parameters, wherein one or more parameters for different functions are the same, said parameters for the different functions collectively defining a set of parameter kinds, each parameter kind in said set of parameter kinds being assigned a unique key, each of said plurality of metadata objects storing the unique keys assigned the input and output parameters of the function they identify, said first method causing the acts of, accessing the key for each input parameter stored in said first metadata object;
associating with said first execution object a value stored as part of a first of a set of context objects that was passed, said value stored for use as a first input parameter, said set of context objects being stored in a first structure of a manager object, each of said set of context objects to store values for one or more of the input parameters to said first function; and
executing said first function using the parameter values associated with the first execution object as input parameters. - View Dependent Claims (46)
associating with said first execution object a value stored as part of one of said set of context objects identified by said manager object as a default context object, said value stored for a second input parameter to said first function.
-
Specification