The present application claims priority to European Patent Application No. 11171576.9, filed on Jun. 27, 2011, and all the benefits accruing therefrom under 35 U.S.C. §119, the contents of which in its entirety are herein incorporated by reference.
The present invention relates to business process management systems (BPMS) and/or workflow management systems. More specifically, the present invention relates to migrating business process instances.
In a BPMS, a business process template may be perceived as a graph which represents the ordering of steps and/or activities involved in a business process, together with a description of other properties. Every time a business case is initiated, a new instance of the business process is created, based on the underlying business process model. Since business process instances are often long-running in nature, it becomes evident that changes might be required to the business process model, resulting in a new model. This may impact instances still in-flight that were created based on the original associated process model. The reasons for such changes are varied, for example, emerging business opportunities, changing market conditions or new government regulations can force a company to adjust a business process model.
The issue of migrating process instances that were started on the original version of the process model, when the process model evolved, exists and has been partially solved in prior art.
Presently, business processes can only be migrated if the business process does not contain any compensation logic. Compensation can be seen as an “undoing action”, e.g., when an activity of the process has charged a credit card and fails subsequently to deliver the order, compensation should take care of refunding the money (i.e., undoing the credit card charge). More precisely, compensation logic is executed when a state is reached in a process that is deemed to be undesirable. The compensation logic is also executed if an unforeseen error occurred. Errors of such nature are normally caused by malfunctions of the underlying infrastructure. In such cases it may be necessary to perform explicit compensation steps in the business process to assure that a consistent state is reached. The goal is not always to return to a previous condition, but instead to maintain a balanced and consistent state for the process. As such, compensation logic is usually not modeled as part of regular control flow of a business process, but rather as a “compensation flow” that only gets entered under certain (error) conditions.
It would be useful to support process instance migration for such processes, too. In order to show why this is not presently possible, a prior art migration decision process is described as follows.
Referring to
Returning to compensation, it becomes clear that deciding whether an instance can be migrated or not may be difficult, because a check of whether an instance can be migrated or not is performed statically on a process template, and compensation logic usually results in a derivation from the predefined control flow, making a static check more or less useless.
In U.S. Patent Application Publication No. 2010/0121668 A1 “Automated Compliance Checking for Process Instance Migration” by Hohmann, a business process workflow editorial data processing system is disclosed. The disclosed system can include a workflow management system such as a process editing tool and a repository of templates each template defining a process. At least two of the templates can include a new template and an existing template for an executing instance of a business process. The system can also include compliance checking logic coupled to the workflow management system. The logic can include program code enabled to derive a log of changes between the new template and the existing template based upon added and removed activities and links between activities in the executing process instance, to group the changes in the log according to common activities, to determine a wavefront for the executing process instance, and to migrate the executing process instance to the new template only if the wavefront does not cross any of the groups of the changes, but otherwise rejecting a migration of the process instance to the new template. The disclosed system covers the analysis and compliance check for business processes which do not contain compensation logic.
Existing approaches in the area of instance migration cannot deal with process instances which contain compensation logic effectively. The main difference is that compensation logic enables the underlying workflow management system to derivate from the predefined control flow logic at arbitrary positions. The approach mentioned in U.S. Patent Application Publication No. 2010/0121668 is based mainly on template information and therefore ineffective when dealing with compensation logic since it cannot be statically determined whether logic was actually performed or not. Therefore, this would result in more instances which are rated incorrectly as “incompliant”.
According to exemplary embodiments, a method, system, and computer program product for migrating a business process instance derived from a business process model having compensation logic are provided. The method includes modeling a new business process version of the business process model. The business process model is statically analyzed to create a static process control flow. A potential compensation control flow is derived based on the business process instance. Changes between the new business process version and a previous business process version of the business process model are identified. The identified changes are walked to separate and group changes related to the compensation logic and changes related to a normal control flow of the business process model into change groups. The business process instance is migrated based on migration conditions which are determined based on the change groups.
The system for migrating a business process instance derived from a business process model having compensation logic includes a modeling-tool configured to model a new business process version of the business process model. The system also includes a deployment infrastructure configured to install the business process model onto at least one server and communicate with at least one client, allowing the at least one client to interact with the business process model. The system further includes a data processing engine configured to interpret and execute the business process instance by navigating a flow described in the business process model, where the data processing engine is further configured to perform a method. The method includes statically analyzing the business process model to create a static process control flow. A potential compensation control flow is derived based on the business process instance. Changes between the new business process version and a previous business process version of the business process model are identified. The identified changes are walked to separate and group changes related to the compensation logic and changes related to a normal control flow of the business process model into change groups. The business process instance is migrated based on migration conditions which are determined based on the change groups.
A computer program product for migrating business process instances according to the method is also provided.
The drawings referenced in the present application are only used to exemplify typical embodiments of the present invention and should not be considered to be limiting the scope of the present invention.
A system of migrating business process instances derived from business process models 2,3 having compensation logic includes: the modeling-tool 20 for modeling a new business process version of a business process model 2, 3; the deployment infrastructure 10 for installing the business process model 2, 3 onto at least one server, communicating with the client system 30 allowing the client system 30 to interact with the business process model 2, 3; and the data processing engine 12 interpreting and executing a process instance by navigating a flow described in the business process model 2, 3. In an embodiment, the data processing engine 12 determines if a corresponding business process instance derived from the business process model 2, 3 is applicable for migration. The data processing engine 12 statically analyzes the business process model 2, 3 to create a static process control flow CF2, CF3, CF3′ of
Referring to
Referring to
During deployment time, the business process model 2 is analyzed statically and potential compensation control flows are derived. The derived compensation control flows are incorporated into the regular control flow CF2 of the business process. First, the inner compensation logic 211, 212 is in-lined in the local compensation logic 210 at corresponding activities “Compensate0”, “Compensate1” where it is called. Therefore, the eighteenth activity “Compensate0” is replaced by the tenth activity “Activity8”, and the eleventh activity “Activity9” forming the first inner compensation logic 211. The twentieth activity “Compensate1” is replaced by the fifteenth activity “Activity10” and the sixteenth activity “Activity11” forming the second inner compensation logic 212. Now the local compensation logic 210 for the local scope 110 includes the activities “Snippet0”, “Activity8”, “Activity9”, “Snippet1”, “Activity10”, and “Activity11”, and the compensation logic for the first inner scope 111 and the second inner scope 112 have been detached.
Next, the local compensation logic 210 for the local scope 110 is detached and inserted in regular control flow CF2 after the local scope 110, yielding a restructured process as shown in
Additionally, instance based information can be leveraged to improve accuracy of the migration compliance check (i.e., to reduce the number of false negative results). This is achieved by separating compensation related change logic from changes which affect the standard path, i.e., the normal path which is executed if there are no errors. Therefore, all changes in the compensation logic (i.e., within compensation handler) are grouped into separate change groups (one for each scope of the compensation logic is added during transformation). All changes outside of the compensation logic remain in another change group. This information can then be used in an extended compliance check for compensation changes. If there is a change within a compensation handler then select the direct enclosing scope and check if it is in state finished. If the parent scope is a non-compensable scope then the process may proceed with its parent scope until a compensable scope is found. This assures that modified compensation logic has not been entered yet.
Since compensation logic can potentially be triggered at certain points in the control flow of the process, when the restructured process created with the in-lined compensation logic, certain parts of the compensation logic are duplicated to make sure all the appropriate places where it could get triggered are respected. This handles non-deterministic behavior which comes along with a business process containing compensation logic. It may not be determined statically when the compensation logic is triggered and if it is triggered at all. Each such insertion is called a compensation change group. However, since this is an over-approximation caused by the static nature of the restructuring, only one of the compensation change groups would be valid considering the actual state of a process instance. Thus, when visualizing whether a process instance that contains compensation logic can be migrated or not, the visualization must take that into account.
Referring to
Referring to
Next, the local compensation logic 610 for the local scope 510 is detached and inserted in regular control flow CF3 after the local scope 510, yielding the restructured process shown in
Assuming, that the first inner compensation logic 611 and the third inner compensation logic 613 are empty, which means, that no activities are performed, the regular control flow CF3 may be simplified. The simplified control flow CF3′ is shown in
Referring to
As stated before, the compensation change groups CG, that need to be considered, depend on the current state of the process instance. Referring to
Referring to
Referring to
Referring to
Technical effects of embodiments provide a method of migrating business process instances and a system of migrating business process instances, which are able to migrate business process instances derived from business process models having compensation logic and to solve the above mentioned shortcomings of prior art migrating business process instances.
According to embodiments, a method of migrating business process instances, a system of migrating business process instances, and a computer program product for migrating business process instances is provided.
In an embodiment, a method of migrating business process instances derived from business process models having compensation logic includes modeling of a new business process version and determining if a corresponding business process instance derived from the business process model is applicable for migration. An underlying business process model is statically analyzed to create a static process control flow. Potential compensation control flows are derived and changes between the new business process version and a previous business process version are identified. The identified changes are walked for separating and grouping changes related to compensation logic and changes related to normal control flow of the business process model into change groups. The business process instance is migrated based on migration conditions which are determined based on the change groups.
In further embodiments, static process control flow is extended by incorporating compensation information. In further embodiments, instance related information is attached to the static process control flow. Areas in the business process model are identified which have attached compensation logic. The compensation logic may be disposed to the process control flow at a logical end of the areas, and a resulting modified control flow is then used as input for migration compliance analysis. The migration conditions can be computed by extracting currently active activities from the business process instance; and taking and analyzing the static process control flow and the change groups, where migration of the business process instance is enabled if there is no change group in the past of the static process control flow of the business process instance.
In further embodiments, migration of the business process instance is rejected if there is at least one change group in the past of the static process control flow of the business process instance and if the change group is not a compensation change group. Migration of the business process instance may be enabled if at least one change group in the past of the static process control flow of the business process instance is a compensation change group and a state of a scope associated with the compensation change group is recognized as end state. Migration of the business process instance can be rejected if the at least one change group in the past of the static process control flow of the business process instance is a compensation change group and a state of a scope associated with the compensation change group is recognized as error state.
In another embodiment, a system of migrating business process instances derived from business process models having compensation logic includes a modeling-tool for modeling a new business process version. The system also includes a deployment infrastructure for installing the business process model onto at least one server, and communicating with at least one client allowing the at least one client to interact with the business process. A data processing engine interprets and executes a process instance by navigating a flow described in the business process model, where the data processing engine determines if a corresponding business process instance derived from the business process model is applicable for migration. The data processing engine may statically analyze an underlying business process model to create a static process control flow and derive potential compensation control flows. The data processing engine also identifies changes between the new business process version and a previous business process version. The data processing engine walks the identified changes for separating and grouping changes related to compensation logic and changes related to normal control flow of the business process model into change groups. The data processing engine migrates the business process instance based on migration conditions which are determined based on the change groups.
In further embodiments, the data processing engine extends the static process control flow by incorporating compensation information from a data base. The data processing engine attaches instance related information from the data base to the static process control flow. The data processing engine can identify areas in the business process model which have attached compensation logic, dispose the compensation logic to the process control flow at a logical end of the areas, and use a resulting modified control flow as input for migration compliance analysis.
In another embodiment, a data processing program for execution in a data processing system includes software code portions for performing a method of migrating business process instances when the program is run on the data processing system. In another embodiment, a computer program product stored on a computer-usable medium, includes computer-readable program means for causing a computer to perform a method of migrating business process instances when the program is run on the computer.
The embodiments may address a method or system of associating compensation logic to compensate for the changes indicated by the change groups to the business process instance and deciding whether the business process instances are migrateable or not based on the state of scope associated with the compensation change. Embodiments improve the number of instances which can be migrated.
Embodiments for deciding whether a process instance can be migrated or not for a business process where compensation logic is used may include two actions, plus an additional action to explain this to the user. First, the process model is analyzed and potential compensation control flows are derived, i.e., extending the static process control flow by incorporating compensation information such as credit card transaction information. This is an extension to the deployment infrastructure of the Business Process Management System (BPMS). Next, instance related information is attached to the static process control flow. Compensation logic is defined for a scope, i.e., a part of the control flow which is affected by the modeled compensation logic. Thus, if an unforeseen error occurs within a scope the compensation logic defined for this scope is triggered and the scope enters an error state like “failed” or “compensated” in order to indicate that this scope was not executed and its side effects were compensated. However, if a scope enters an end state such as “finished” or “completed”, it can be assured that the associated compensation logic was not executed, since it is only executed in case of an error. Therefore this information, i.e., the state of the scopes which were already passed, is also extracted from a database and attached to the internal process model. If a scope is in an end state which clearly indicates that there was no compensation logic triggered for this scope, any changes to the compensation logic of this scope can safely be ignored, since the currently running instance cannot be affected. For these scopes, the compensation change groups are removed and not considered for further analysis. Travelling compensation change groups can be visualized, so that the user understands better the extension to the modeling tool or to the client piece of a BPMS.
Embodiments may significantly improve a compliance check and thus make the compliance check more accurate and precise due to incorporating additional process instance based information and compensation information.
The method of migrating business process instances can be implemented as an entirely software embodiment, or an embodiment containing both hardware and software elements. Embodiments can be implemented in software, which includes but is not limited to firmware, resident software, microcode, etc.
Furthermore, embodiments can take the form of a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system. For the purposes of this description, a computer-usable or computer-readable medium can be any apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device.
The medium can be an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation medium. Examples of a computer-readable medium include a semiconductor or solid state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disc, and an optical disc. Current examples of optical discs include Compact Disc-read only memory (CD-ROM), Compact Disc-read/write (CD-R/W), and DVD. A data processing system suitable for storing and/or executing program code will include at least one processor coupled directly or indirectly to memory elements through a system bus. The memory elements can include local memory employed during actual execution of the program code, bulk storage, and cache memories which provide temporary storage of at least some program code in order to reduce the number of times code must be retrieved from bulk storage during execution. Input/output or I/O devices (including but not limited to keyboards, displays, pointing devices, etc.) can be coupled to the system either directly or through intervening I/O controllers.
Network adapters may also be coupled to the system to enable the data processing system to become coupled to other data processing systems or remote printers or storage devices through intervening private or public networks. Modems, cable modems, and Ethernet cards are just a few of the currently available types of network adapters.
Number | Date | Country | Kind |
---|---|---|---|
11171576.9 | Jun 2011 | EP | regional |