METHOD AND SYSTEM FOR EXPRESSING AND ENFORCING NON-FUNCTIONAL CONCERNS IN BUSINESS PROCESS MANAGEMENT SYSTEMS AND WORKFLOW SYSTEMS
A system and method to express and enforce non-functional properties in process management systems are described. Non-functional properties are expressed via annotations. Annotations and corresponding constraints are grouped in profiles. Further, non-functional properties are enforced via rules specified in enforcement patterns that are associated with the annotations. The enforcement patterns extend processes with additional process elements and logic for enforcing non-functional properties at runtime.
1 . A computing system, comprising:
a profile creator to define a set of annotations in a profile;
an annotation creator to create each of the annotations in the set in the profile, each of the annotations to express a non-functional property of a process;
an enforcement pattern creator to create an enforcement pattern, the enforcement pattern to define the enforcement of the non-functional property on the process at runtime;
a process transformation tool to transform the process according to the enforcement pattern;
a memory module to load the annotation creator, profile creator, enforcement pattern creator, and process transformation tool; and
a processor to perform operations responsive to receiving input from one or more of the annotation creator, profile creator, enforcement pattern creator, and process transformation tool.
2 . The computing system of claim 1 , wherein the processor is further to send instructions to a design time environment to display the process.
3 . The computing system of claim 1 , wherein the annotation creator comprises:
a logic to define a name for the annotation; and
a logic to define one or more attributes, the attributes to include key-value pairs specifying parameters for enforcing the property expressed by the annotation.
4 . The computing system of claim 1 , wherein the profile creator comprises:
a logic to define constraints on the applicability of the annotations in the set; and
a logic to define constraints on the interdependencies the annotations in the set.
5 . A computer-implemented method, comprising:
creating a profile, the profile to group a set of annotations;
defining the set of annotations in the profile, the set of annotations to express one or more non-functional properties of a process;
defining constraints for the set of annotations;
defining one or more enforcement patterns to enforce the set of annotations on the process at runtime;
loading the profile in a design time environment;
annotating the process with one or more of the annotations in the profile;
transforming the process to enforce the non-functional properties expressed by the annotations at runtime; and
executing the transformed process.
6 . The computer-implemented method of claim 5 , wherein defining the set of annotations comprises, for each of the annotations in the set:
defining a name for an annotation;
defining one or more attributes of the annotation;
defining constraints on the applicability of the annotation; and
defining constraints on the interdependencies between annotations.
7 . The computer-implemented method of claim 5 , wherein defining the enforcement pattern comprises:
loading a profile;
selecting an annotation in the profile; and
defining a set of process elements to replace a process model element annotated by the selected annotation.
8 . The computer-implemented method of claim 5 , wherein transforming the process comprises:
loading the process;
identifying one or more annotations on process elements;
loading one or more enforcement patterns associated with the identified annotations; and
replacing each process element with an identified annotation with one or more process elements according to the enforcement pattern associated with the identified annotation.
9 . A machine-readable medium having instructions therein that when executed by the machine, cause the machine to:
create a profile, the profile to group a set of annotations;
define the set of annotations in the profile, the set of annotations to express one or more non-functional properties of a process;
define constraints for the set of annotations;
define one or more enforcement patterns to enforce the set of annotations on the process at runtime;
load the profile in a design time environment;
annotate the process with one or more of the annotations in the profile;
transform the process to enforce the non-functional properties expressed by the annotations at runtime; and
executing the transformed process.
10 . The machine-readable medium of claim 9 , wherein instructions causing the machine to define a set of annotations, for each annotation in the set, cause the machine to:
define a name for an annotation;
define one or more attributes of the annotation;
define constraints on the applicability of the annotation; and
define constraints on the interdependencies between annotations.
11 . The machine-readable medium of claim 9 , wherein instructions causing the machine to define an enforcement pattern, cause the machine to:
load a profile;
select an annotation in the profile; and
define a set of process elements to replace a process model element annotated by the selected annotation.
12 . The machine-readable medium of claim 9 , wherein instructions causing the machine to transform the process, cause the machine to:
load the process;
identify one or more annotations on process elements;
load one or more enforcement patterns associated with the identified annotations; and
replace each process element with an identified annotation with one or more process elements according to the enforcement pattern associated with the identified annotation.