1. Field of the Invention
The present invention generally relates to a method and apparatus for creating a new process model from related business process models and optionally checking whether the references between them are consistent.
2. Description of the Related Art
Business process models can contain references to other process models. A reference is a mechanism for connecting the end, or the result, of one process to the start of or to trigger another process model. The reference may be described as a “goto” programming statement. Typically, there are two references to represent this construct, one indicating in the source process model that this process continues within another process model and one indicating in the target process model where to continue the execution of which source process model. Such references can also be referred to as “process interfaces” (such as in ARIS program by IDS Scheer) or link (such as in business process modeling notation (BPMN)).
For example, in a typical event-driven process chains modeling approach that is used in the ARIS tool set.
Process references, process interfaces, or links, that occur at the beginning of the control flow in business model 100 are inbound links (or references) and those that occur at the end of the control flow are outbound links (or references).
Other related business process models may also include one or more links in the intermediate steps. For example, decision step 130 may include a process interface or link associated with another business process model.
Conventionally, business users would not have an overview on how their business processes connect to each other where those business processes are complex. Without such an overview, users cannot revise the connections of their processes. For technical users, such an overview is also helpful because they can see whether the current process models are a suitable basis for a service-oriented architecture.
In view of the foregoing, and other exemplary problems, drawbacks, and disadvantages of the conventional systems, it is an exemplary feature of the present invention to provide a method and system (e.g. a computerized method) of constructing a process reference map.
In an exemplary aspect, the method includes iterating over each of a plurality of process models, creating an intermediary reference graph, adding a directed link for each reference in the process models to the intermediary reference graph, the link pointing from a node in the reference graph representing a process model within which a reference occurred to a node representing a process model that the reference is pointing towards, determining whether, between two process models of the plurality of process models, that an inconsistency including one of an outbound process reference missing inconsistency, an inbound process reference missing inconsistency, or if some information is not available inconsistency exists, and constructing a new process model map from the intermediary reference graph with one element each representing a process models and the elements being linked representing the references therebetween. Each link has an attribute indicating one of a context, type of reference, or a modeling element.
For example, in an exemplary aspect of the invention, a business process model where the user has defined references is taken and a reference map is generated by processing the information contained in the references. The invention could be used on its own or, for instance, in context of the ARIS import for WebSphere Business Modeler. ARIS business process models contain process interfaces, that is, references, and upon the import into Modeler, the map can be generated. The present invention may also be used in combination with process modeling tools using the BPMN notation and generating such a map for the BPMN links contained within the process models.
The foregoing and other purposes, aspects and advantages will be better understood from the following detailed description of an exemplary embodiment of the invention with reference to the drawings, in which:
Referring now to the drawings, and more particularly to
Exemplarily, a dependencies chart is created based on the existing process models. The dependencies chart may also be referred to as an “intermediate reference graph.”
In the case illustrated in
In addition, process model A also contains edge 320 from A to B since A contains a second reference pointing to B. Edge 320 has the attributes of being reference y and having an “outward” direction and therefore also marked with the name of the reference (y/out). Exemplarily, an incoming edge is an edge containing an expectation that another process occurs to reach a certain point in execution before continuing/starting.
Dependencies graph 300 also contains edge 330 from B to A (since B contains a reference pointing to A). Edge 330 is referred to with the name x/in and is an incoming edge because edge 330 would expect another process to reach a certain point in execution before continuing/starting. Finally, edge 340 is an edge pointing from B to A due to the second reference in B, and is referred to with the name y, and is otherwise referred to as y/in.
In some instances, information including names of references and directionality of the references may be not available so that the references have no names or there is no information concerning an incoming or outgoing reference. Nonetheless, exemplary aspects of the present invention could account for these deficiencies to perform properly even if some of the information is not available. In some instances, such as in the analysis described below, the results would be less precise because there is less information, i.e. the process may detect an inconsistency, but the process may not be able to provide as much information about how the inconsistency occurred, such as the name of a missing reference or the type of inconsistency.
In Step 820, it is determined if a reference points to another process model and, if so, proceeding to Step 830. In Step 830, a directed link is added for each reference of the process reference map that points to another process model, the link pointing from a node representing a process model from which a reference occurred to a node representing a process model that the reference is pointed towards.
Step 840 detects an inconsistency, such as the exemplary inconsistency illustrated in
In Step 850, a new reference map is constructed based on associated process model links. After Step 850, method 800 may repeat and return to Step 820 when there are more references that have not been processed.
Each node would exemplarily be inspected for inconsistencies and at Step 1010; the next node is referred to for inspection. In Step 1020, a link for each reference is added to the process reference map. This process is repeated for each edge that represents an outbound reference.
In Step 1030, it is determined whether the edge currently being considered has an inbound reference of the same name pointing back to the node containing the outbound reference. If there is such a reciprocal edge, then the reference is error-free and the method proceeds with Step 1055 which removes the two correct edges and then proceeds to Step 1060 to determine if there are any nodes remaining to be inspected.
If, in Step 1030, it is determined that there is no reciprocal edge, then the method would proceed to Step 1040 to report the inconsistency and may then proceed to Step 1050 to remove the single edge. After performing Step 1050, the method may proceed to Step 1060 to determine if the current node is the last node. If the current node is the last node, then the method ends at Step 1070. On the other hand, if there are additional nodes remaining, the method proceeds to Step 1010 to begin inspecting the next node.
Referring back to
Each incoming node would exemplarily be inspected for inconsistencies and at Step 1110, the next node is referred to for inspection. In Step 1120, a link for each reference is added to the process reference map.
Since, in Step 920 of
After performing Step 1150, the method may proceed to Step 1160 to determine if the current node is the last node. If the current node is the last node, then the method ends at Step 1170. On the other hand, if there are additional nodes remaining, then the method proceeds to Step 1110 to begin inspecting the next node.
Referring now to
In addition to the system described above, a different aspect of the invention includes a computer-implemented method for performing the above method. As an example, this method may be implemented in the particular environment discussed above.
Such a method may be implemented, for example, by operating a computer, as embodied by a digital data processing apparatus, to execute a sequence of machine-readable instructions. These instructions may reside in various types of signal-bearing media.
Such a method may be implemented, for example, by operating the CPU 1210 to execute a sequence of machine-readable instructions. These instructions may reside in various types of signal bearing media.
Thus, this aspect of the present invention is directed to a programmed product, comprising signal-bearing media tangibly embodying a program of machine-readable instructions executable by a digital data processor incorporating the CPU 1210 and hardware above, to perform the method of the invention.
This signal-bearing media may include, for example, a RAM contained within the CPU 1210, as represented by the fast-access storage for example. Alternatively, the instructions may be contained in another signal-bearing media, such as a magnetic data storage diskette 1300 or CD-ROM 1302, (
Whether contained in the computer server/CPU 1210, or elsewhere, the instructions may be stored on a variety of machine-readable data storage media, such as DASD storage (e.g., a conventional “hard drive” or a RAID array), magnetic tape, electronic read-only memory (e.g., ROM, EPROM, or EEPROM), an optical storage device (e.g., CD-ROM, WORM, DVD, digital optical tape, etc.), paper “punch” cards, or other suitable signal-bearing media including transmission media such as digital and analog and communication links and wireless. In an illustrative embodiment of the invention, the machine-readable instructions may comprise software object code, complied from a language such as “C,” etc.
While the invention has been described in terms of exemplary embodiments, those skilled in the art will recognize that the invention can be practiced with modification within the spirit and scope of the appended claims.
Further, it is noted that, Applicants' intent is to encompass equivalents of all claim elements, even if amended later during prosecution.