The invention relates generally to business process management and workflow systems, and, more specifically, to expressing and enforcing non-functional concerns in such systems.
Current business process management (“BPM”) systems and workflow management (“WFM”) systems support mainly the functional concerns of business processes and workflow processes such as control flow (i.e., sequencing of activities), data and information flow, and organizational concerns. In most BPM systems and WFM systems there is no support for expressing and enforcing non-functional concerns such as security, performance, throughput, SLA constraints, execution time constraints, and so on. Users of such systems may need support for non-functional concerns to cope with the requirements of their use cases or their application domains. Current BPM and WFM systems cannot be extended by end users to support non-functional concerns on demand as such concerns arise. If at all, these systems support only a pre-defined set of non-functional concerns, i.e., only those that were foreseen by the software provider.
A system and method to express and enforce non-functional concerns in business process management and workflow management systems. Non-functional concerns are expressed via annotations that are defined and grouped in profiles. Further, non-functional concerns are enforced via enforcement patterns, which allow producing processes with additional elements and activities that enforce non-functional concerns.
The invention is illustrated by way of example and not by way of limitation in the figures of the accompanying drawings in which like references indicate similar elements. It should be noted that references to “an” or “one” embodiment in this disclosure are not necessarily to the same embodiment, and such references mean at least one.
A system and method for extending business process management (“BPM”) systems and workflow management (“WFM”) systems on demand with support for non-functional concerns as necessary. Non-functional concerns are also referred to as “extra-functional” concerns. A method of one embodiment of the invention defines custom annotations for expressing non-functional concerns and enforcement patterns, which are used by a process transformation tool to generate additional process elements for the enforcement of the non-functional concerns specified by the annotations. Examples of process elements may be, but are not limited to, data declarations, participant declarations, application declarations, control flows, data flows, and activities.
A business process is a collection of activities (also called tasks or steps) to accomplish a business goal. Business processes define a set of interrelated activities, which, if performed in a specified pattern, produce a desired output. A workflow process defines the flow of work across an organization. BPM systems and WFM systems cover the functional concerns of business processes and workflow processes. Examples of functional concerns may be: activities to be executed, control flow (i.e., the ordering of activities and their dependencies), data flow (i.e., the flow of data and information between activities), organizational aspects (i.e., assignments of users to activities, the organizational structure and role hierarchy, and so on), and technical aspects (i.e., which software applications support the execution of a given task). In addition to these functional concerns, there may be several non-functional concerns (also called extra-functional concerns) that may need to be supported by BPM systems and WFM systems to ensure a reliable, secure, and Service-Level Agreement (“SLA”) compliant implementation and execution of business processes and workflow processes. Examples of non-functional concerns may be security, execution time constraints, SLA-compliance, performance, throughput, costs, and so on. In addition to these examples, there may be non-functional concerns that are specific to an organization, which uses a BPM system or WFM system. It is difficult for the provider of the BPM system or WFM system to predict and implement all non-functional concerns that customer organizations may need. Thus, there is a need to extend BMP systems and WFM systems on demand with support for non-functional concerns in a business process or a workflow process as required by an organization. This support may include the ability to express non-functional concerns at design-time and the ability to enforce non-functional concerns at runtime.
Annotations are design time elements that may be attached to a process model, to an element of a process model, or to a group of elements in a process model. Annotations may be used to express non-functional properties on the workflow process model or on the business process model as a whole, of individual activities or other process elements, or of groups of process elements. For example, a user may define annotations to express that a group of activities should be executed in a transactional way. Other annotations may be defined to express that an activity, which interacts with a third party system, should be executed securely. Different security annotations may be defined for different purposes, e.g., for integrity, confidentiality, authentication, and so on. In an exemplary embodiment of the invention, an annotation secure_conversation_boundary is defined. The secure_conversation_boundary annotation may be associated with a sub-process or with a composite activity (i.e., an activity that has child activities), to express that the activity or sub-process including all nested activities should be executed using a security context. A secure_conversation participant annotation may be defined to designate the individual activities that use the secure conversation inside a composite activity or a sub-process. Other annotations may be defined, such as confidentiality_required, integrity_required, authentication_required. These annotations may be associated with activities or other elements of the process model, such as, data objects or data flows to define their security properties. SLA-related annotations may also be defined, such as maximum_execution_time, which may specify the maximum execution time allowed for a certain activity or sub-process. In addition to the annotation name, the annotation creator 120 may define a set of attributes with key-value pairs specifying certain parameters for the annotation. The key part of the attribute may represent the name of the attribute. A type may also be specified for the attribute value to designate acceptable values. For example, the security annotation authentication_required may have an attribute called “type”, which may have possible values such as “username_password” or “X.509 certificate”, and so on. The security annotation confidentiality_required may have an attribute with the name “encryption algorithm”, which may have as value, the name of a specific algorithm that should be used to ensure confidentiality.
The profile creator 110 may create profiles to group related annotations. For example, the profile creator 110 may define a “security” profile to group annotations for encryption, confidentiality, and other security-related annotations. In another embodiment, the profile creator 110 may define a “secure conversation” profile grouping the annotations secure_conversation_boundary and participates_in_secure_conversation. The profile creator 110 may also define constraints on the applicability of the annotation to elements of the process model. These may be constraints that define which annotations may be associated with which elements of the process model and under which conditions. For example, the profile creator 110 may define that the annotation participates_in secure_conversation can be associated only with a sub-process and not with data objects. Further, the profile creator 110 may define a constraint expressing that the annotation participates_in_secure_conversation may be associated only with non-composite activities. In addition, the profile creator 110 may define constraints expressing dependencies between individual annotations. For example, the profile creator 110 may specify that the annotation participates_in_secure_conversation may not be used for an activity unless one of its parent activities is annotated with the annotation secure_conversation boundary. In an alternative embodiment of the invention, the profile creator 110 may define further types of constraints.
The enforcement pattern creator 130 creates enforcement patterns that specify how the non-functional properties expressed by given annotations should be enforced at process execution time. An enforcement pattern is some process logic (i.e., a set of process elements such as data declarations, participant declaration, and activities) that expresses a transformation of the business process model or workflow process model, which enforces a certain non-functional property. For example, in one embodiment, an enforcement pattern may specify that the execution of a composite activity with the annotation secure_conversation boundary should be performed according to the following pattern. First, an activity for creating the secure conversation context should be executed. Then, for each activity that is nested in the sub-process and which has the annotation participates_in secure_conversation, an activity has to be called, which invokes a middleware service to secure the annotated child activity using the previously created context. After the composite activity with the annotation secure_conversation_boundary, an activity should be executed, which destroys the secure conversation context.
In another embodiment, enforcement patterns for measuring the execution time of a process activity or a sub-process may be created. Assuming that there is an annotation maximum_execution_time that can be associated with activities, the enforcement pattern for this annotation may consist of an activity which calls a timing service to get the current time. The enforcement pattern then executes the annotated activity, and after that, executes a subsequent activity, which calls the timing service again to get the time after the annotated activity has completed. The two dates returned by the activities that call the timing service allow the calculation of the execution time of the activity that has the annotation maximum_execution_time. The enforcement pattern may also specify what should be done when the computed execution time is higher than the value specified in the annotation (e.g., an error should be thrown, an e-mail notification should be sent, and so on).
After the profile creator 110, the annotation creator 120, and the enforcement pattern creator 130 create the profiles, annotations, and enforcement patterns, the process transformation tool 140 uses the enforcement patterns to modify a business process or a workflow process by adding new process elements and activities that enforce the non-functional properties expressed by the annotations at execution time. The profile creator 110, the annotation creator 120, and the enforcement pattern creator 130 may also create input for a processor 104. The processor 104 may receive the input and produce output as instructed by the profile creator 110, the annotation creator 120, and the enforcement pattern creator 130. The processor 104 may also create input for a process modeling design time environment 150 to display. In one embodiment, the process modeling design time environment 150 may be part of a graphical user interface. The graphical user interface may be displayed on a screen, monitor, or other type of rendering device.
The process transformation tool 140 identifies the annotated process model elements and then transforms the process model by replacing each annotated process model element (e.g., activity) by one or more process elements or activities that may include the annotated activity itself. As a result of this transformation, the process elements and activities that are defined in the enforcement pattern are added to the original process model, thus ensuring the enforcement of the non-functional properties when the process is executed. The process modeling design time environment 150 may also be used to define the business processes or workflow processes, to associate annotations with process elements, and display the transformed process generated by the process transformation tool 140.
There are a number of advantages in enforcing non-functional concerns using the system of
In an alternative embodiment of the invention, the process as described in
In an alternative embodiment, each of the components in
In an alternative embodiment of the invention, the process as described in
In an alternative embodiment, an annotation may be associated with more than one enforcement pattern. In another embodiment, an enforcement pattern may be defined for a set of annotations. In one embodiment, many enforcement patterns may be associated with a profile.
In an alternative embodiment of the invention, the process as described in
In one embodiment, the enforcement pattern creator 130 may create an enforcement pattern for a set of annotations. In an alternative embodiment, the enforcement pattern creator 130 may create several enforcement patterns to be associated with one profile.
In an alternative embodiment of the invention, the process as described in
In another embodiment of the invention, a BPM system based on Business Process Modeling Notation (“BPMN”) is used. With a BPMN-based tool, profiles may be defined based on the annotation concept of BPMN. As BPMN is a modeling language, profile constraints may be expressed using languages such as the Object Constraint Language (“OCL”). Enforcement patterns may be expressed using BPMN constructs. A process transformation tool may be built using Model-to-Model transformation techniques such as the ATLAS Transformation Language (“ATL”).
In an alternative embodiment of the invention, a WFM system based on the Web Services Business Process Execution Language (“WS-BPEL”) is used. In this exemplary WFM system annotations may be defined using WS-BPEL. WS-BPEL provides extensibility concepts allowing the use of new elements in the process models and adding new attributes to WS-BPEL language constructs given that the new elements and attributes have non-BPEL namespaces. This means that annotations can be defined by creating new XML elements or new attributes of WS-BPEL elements (in this case, using other namespaces). The constraints related to these annotations may be defined using constraint languages for XML or XML schema. The profiles may define the XML elements that implement the different annotations and the respective applicability and constraints and interdependencies constraints on applicability. The enforcement patterns in this case may be expressed using WS-BPEL language constructs such as partners, variables, and activities. As WS-BPEL is based on the eXtensible Markup Language (“XML”), the process transformation in this exemplary embodiment may be implemented using the XML transformation language eXtensible Stylesheet Language Transformations (“XSLT”).
The listing below shows an exemplary sequence activity in BPEL, which contains two nested web service calls via the invoke activity. An annotation is applied to the sequence activity using the new attribute maxAllowedTime of the namespace mns. The value of this attribute defines the maximum allowed time for the annotated activity in seconds. This attribute is not a standard attribute of the sequence activity.
The following listing shows the enforcement pattern in WS-BPEL for the annotation mns:maxallowedTime. This pattern nests the annotated activity in between two calls to the timing web service (first to start the timer and then to stop it).
In this scenario, an XSLT based process transformation tool uses the enforcement patterns to transform the WS-BPEL process so that the non-functional properties expressed using annotations such as mns:maxallowedTime, are enforced.
Embodiments of the present invention are not restricted to a specific business process management system or to a specific workflow management system. Embodiments of the present invention can be incorporated in any such tool given that the underlying business process language or workflow language supports annotations or provides a similar extensibility concept. Enforcement patterns may be defined using the constructs of the process language or the workflow language used in that specific tool. The process transformation tool may be implemented either by using some transformation technology for models, for XML, for textual files or using custom coding. Thus, embodiments of the invention can support both graphical process modeling languages and text-based languages such as those based on XML.
Elements of embodiments of the invention described herein may also be provided as a machine-readable medium for storing the machine-executable instructions. The machine-readable medium may include, but is not limited to, flash memory, optical disks, CD-ROMs, DVD ROMs, RAMs, EPROMs, EEPROMs, and magnetic or optical cares.
It should be appreciated that reference throughout this specification to “one embodiment” or “an embodiment” means that a particular feature, structure or characteristic described in connection with the embodiment is included in at least one embodiment of the present invention. Therefore, it is emphasized and should be appreciated that two or more references to “an embodiment” or “one embodiment” or “an alternative embodiment” in various portions of this specification are not necessarily all referring to the same embodiment. Furthermore, the particular features, structures or characteristics may be combined as suitable in one or more embodiments of the invention. In the foregoing specification, the invention has been described with reference to the specific embodiments thereof. It will, however, be evident that various modifications and changes can be made thereto without departing from the broader spirit and scope of the invention as set forth in the appended claims. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense.