Transforming a parallel process model into a statechart

By identifying the bifurcation and joint nodes in the business process model and generating corresponding sub-state diagrams, the problem of hierarchical structure of parallel paths in the state diagram is solved, and effective transformation and synchronous communication of the parallel business process model is realized. It is suitable for Distributed applications and blockchain systems.

CN114641756BActive Publication Date: 2024-12-27INTERNATIONAL BUSINESS MACHINE CORPORATION
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202080077392.5
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2019-11-07
Filing Date
2020-11-02
Publication Date
2024-12-27
Estimated Expiration
2040-11-02

AI Technical Summary

Technical Problem

Parallel business process models cannot be effectively captured when converted into state graphs, mainly because parallel paths in state graphs must be hierarchically structured, and the prior art is difficult to achieve this transformation.

Method used

By identifying the bifurcation nodes and joint nodes in the business process model, a bifurcation edge sub-state and synchronizer sub-state diagram are generated to form a hierarchical state diagram to realize the structured transformation of parallel paths.

Benefits of technology

The parallel business process model was successfully automatically transformed into a hierarchical state diagram, achieving synchronous communication, suitable for distributed applications and blockchain systems, and improving the reliability and efficiency of the system.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114641756B_ABST
    Figure CN114641756B_ABST
Patent Text Reader

Abstract

A computer-implemented method for automatically transforming a business process model (BPM) into a hierarchical state model is provided. The BPM has a parallel path of at least one fork node and at least one junction node. The method includes: in response to identifying each of at least one fork node in the BPM in a node analysis: (i) generating a fork edge substate having an initial state and a working state for each edge from the at least one fork node, and attaching the fork edge substate to the hierarchical state for the at least one fork node; and (ii) generating a synchronizer substate graph corresponding to each junction node passing through the fork node to receive synchronization events from each fork edge substate graph, and attaching the synchronizer substate graph to the hierarchical state of the at least one fork node to form an intermediate version of the hierarchical state graph.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates generally to information processing, and more particularly to transforming a parallel process model into a statechart. Background Art

[0002] The transformation from business process models to state diagrams helps to simplify the development of distributed applications (including distributed applications based on block chains). However, parallel business process models are not well captured by state diagrams. One reason is that business process models allow any combination of parallel paths, while in state diagrams, parallel paths must be hierarchically structured into different sub-state diagrams. Therefore, a method for transforming parallel processing models into state diagrams is needed. Summary of the invention

[0003] According to aspects of the present invention, a computer-implemented method is provided for automatically transforming a business process model (BPM) into a hierarchical state diagram. The BPM has a parallel path with at least one fork node and at least one junction node. The method includes: in response to identifying each fork node in at least one fork node in the BPM in a node analysis: (i) generating a fork edge substate having an initial state and a working state for each edge emanating from the at least one fork node, and attaching the fork edge substate to the hierarchical state for the at least one fork node; and (ii) generating a synchronizer substate diagram corresponding to each junction node passing through the fork node to receive synchronization events from each fork edge substate diagram, and attaching the synchronizer substate diagram to the hierarchical state of the at least one fork node to form an intermediate version of the hierarchical state diagram.

[0004] According to another aspect of the present invention, a computer program product for automatically transforming a business process model (BPM) into a hierarchical state diagram is provided. The BPM has a parallel path with at least one fork node and at least one junction node. The computer program product includes a non-volatile computer-readable storage medium having program instructions embodied therein. The program instructions are executable by a computer to enable the computer to perform a method. The method includes: in response to identifying each of the at least one fork node in the BPM in the node analysis: (i) generating a fork edge substate having an initial state and a working state for each edge from the at least one fork node, and attaching the fork edge substate to the hierarchical state of the at least one fork node; and (ii) generating a synchronizer substate diagram corresponding to each junction node passing through the fork node to receive synchronization events from each fork edge substate diagram, and attaching the synchronizer substate diagram to the hierarchical state of the at least one fork node to form an intermediate version of the hierarchical state diagram.

[0005] According to another aspect of the present invention, a computer processing system for automatically transforming a business process model (BPM) into a hierarchical state model is provided. The BPM has a parallel path with at least one fork node and at least one junction node. The system includes a memory device, the memory device including program code stored thereon. The system also includes a hardware processor, which is operatively coupled to the memory device and configured to run the program code stored on the memory device, in response to identifying each of the at least one fork node in the BPM in the node analysis: (i) generating a fork edge substate having an initial state and a working state for each edge emanating from the at least one fork node, and attaching the fork edge substate to the hierarchical state of the at least one fork node; and (ii) generating a synchronizer substate diagram corresponding to each junction node passing through the fork node to receive synchronization events from each fork edge substate diagram, and attaching the synchronizer substate diagram to the hierarchical state of the at least one fork node to form an intermediate version of the hierarchical state diagram.

[0006] These and other features and advantages will become apparent from the following detailed description of illustrative embodiments thereof, which is to be read in connection with the accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS

[0007] The following description will provide details of the preferred embodiments with reference to the following drawings, in which:

[0008] Figure 1 is a block diagram illustrating an exemplary processing system according to an embodiment of the present invention;

[0009] Figure 2 is a block diagram illustrating an exemplary business process model (BPM) to which the present invention may be applied according to an embodiment of the present invention;

[0010] Figure 3 is a diagram illustrating an exemplary output hierarchical state diagram transformed from BPM 200 according to an embodiment of the present invention;

[0011] Figure 4-5 is a flowchart illustrating an exemplary method for transforming a business process model (BPM) into a layered state diagram according to an embodiment of the present invention;

[0012] Figure 6-7 is a diagram showing an exemplary pseudo code of the main process for transforming a BPM into a layered state diagram according to an embodiment of the present invention;

[0013] Figure 8 is a diagram showing an exemplary pseudo code of a sub-process for creating an event according to an embodiment of the present invention;

[0014] Fig. 9 is a diagram showing an exemplary pseudo code for a sub-process for attaching a synchronizer according to an embodiment of the present invention;

[0015] Fig.10 is a diagram showing an exemplary pseudo code for attaching a sub-process of a sub-state diagram according to an embodiment of the present invention;

[0016] Fig.11 is a diagram showing an exemplary structured BPM to which the present invention can be applied according to an embodiment of the present invention;

[0017] Fig.12 is a diagram illustrating an exemplary output hierarchical state buffer transformed from a structured BPM 1100 according to an embodiment of the present invention;

[0018] Fig.13 is a diagram showing an exemplary unstructured BPM to which the present invention can be applied according to an embodiment of the present invention;

[0019] Fig.14 is a diagram illustrating an exemplary output hierarchical state diagram transformed from an unstructured BPM 1300 according to an embodiment of the present invention;

[0020] Figure 15-16 is a flowchart illustrating an exemplary method for transforming a BPM into a hierarchical state diagram according to an embodiment of the present invention;

[0021] Fig.17 is a block diagram showing an illustrative cloud computing environment having one or more cloud computing nodes with which local computing devices used by cloud consumers communicate, according to an embodiment of the present invention; and

[0022] Fig.18 is a block diagram illustrating a set of functionalized abstraction layers provided by a cloud computing environment according to an embodiment of the present invention. DETAILED DESCRIPTION

[0023] Embodiments of the present invention are directed to transforming a parallel process model into a state diagram.

[0024] In an embodiment, the present invention may provide a transformation method, which can transform both a structured parallel business process model into a state diagram and an unstructured parallel business process model into a state diagram.

[0025] In an embodiment, synchronization is achieved only through events sent and received by the state diagram. No guard conditions or other means are used.

[0026] In an embodiment, communication between state graphs is synchronous so that the blockchain can track the last snapshot of the entire system. No queues or other asynchronous communication mechanisms are used.

[0027] In an embodiment, the business process model to which the present invention is applied includes parallel paths of a fork (FORK) node and a join (JOIN) node. A fork node is a node that divides a process into two paths executed in parallel. A join node is a node that merges two nodes.

[0028] In an embodiment, a forking element is represented as a hierarchical state having two sub-states corresponding to its two outgoing flows.

[0029] In an embodiment, a join element is represented as a state diagram that receives two events for a synchronization path (synchronizer) and two transitions that send events to the synchronizer.

[0030] A flat statechart is represented as a directed graph where states are nodes and state transitions are edges of the graph. Transitions can have labels to specify the received events that trigger the transition. Transitions can perform actions, including sending events.

[0031] A hierarchical statechart as used by an embodiment of the present invention is an extension of a flat statechart because a state can have a sub-statechart. When multiple sub-states are attached to a single state, they can be executed in parallel. The present invention advantageously transforms a BPM into a hierarchical statechart. A hierarchical statechart can be considered an enhanced state machine. When a state is entered, its sub-state machines are started, thus entering a sub-state. When a state is exited, its sub-state machines are also exited, i.e., any sub-state is also exited. Therefore, a hierarchical state is essentially a state machine that allows any state to include more machines in a hierarchical manner.

[0032] Figure 1 1 is a block diagram illustrating an exemplary processing system 100 according to an embodiment of the present invention. Processing system 100 includes a group of processing units (e.g., CPUs) 101, a group of GPUs 102, a group of memory devices 103, a group of communication devices 104, and a group of peripheral devices 105. CPU 101 can be a single-core or multi-core CPU. GPU 102 can be a single-core or multi-core GPU. One or more storage devices 103 can include cache, RAM, ROM, and other memories (flash memory, optical memory, magnetic memory, etc.). Communication device 104 can include wireless and / or wired communication devices (e.g., network (e.g., WIFI, etc.) adapters, etc.). Peripheral device 105 can include display devices, user input devices, printers, imaging devices, etc. The elements of processing system 100 are connected by one or more buses or networks (collectively represented by reference numeral 110).

[0033] In an embodiment, the memory device 103 may store specially programmed software modules to transform the computer processing system into a special-purpose computer configured to implement various aspects of the present invention. For example, in an embodiment, the memory device 103 includes a BPM to hierarchical state diagram converter 103A and a code generator 103B. In an embodiment, the code generator is used to generate a computer program that models the BPM based on the hierarchical state diagram obtained by transforming the BPM. In an embodiment, dedicated hardware (e.g., an application-specific integrated circuit, a field programmable gate array (FPGA), etc.) may be used to implement various aspects of the present invention.

[0034] Of course, as will be readily appreciated by those skilled in the art, the processing system 100 may also include other elements (not shown), as well as omit certain elements. For example, as will be readily appreciated by those skilled in the art, different other input devices and / or output devices may be included in the processing system 100 depending on their specific implementation. For example, different types of wireless and / or wired input and / or output devices may be used. In addition, additional processors, controllers, memories, etc. in various configurations may also be utilized. Further, in another embodiment, a cloud configuration (e.g., see Figure 17-18 These and other variations on processing system 100 will be apparent to one of ordinary skill in the art given the teachings of the present invention provided herein.

[0035] Furthermore, it should be understood that the different figures described below with respect to different elements and steps related to the present invention may be implemented in whole or in part by one or more elements of the system 100 .

[0036] Figure 2 is a block diagram illustrating an exemplary business process model (BPM) 200 to which the present invention may be applied, according to an embodiment of the present invention.

[0037] The BMP 200 is represented as a directed graph having a start node / event 201 and an end node / event 291. The BPM 200 also includes at least one fork node 210, at least one join node 220, and a flow edge 230 connecting the two nodes. The start node / event 201 triggers the process. The end node / event 291 represents the result of the process. The fork node 210 divides the process into two paths that are executed in parallel. The join node 220 merges two parallel processes into one process. The flow edge 230 connects the two nodes.

[0038] Figure 3 is a diagram illustrating an exemplary output hierarchical state diagram 300 transformed from BPM 200 according to an embodiment of the present invention.

[0039] In state diagram 300, the following applies:

[0040] j2 represents the event to be sent from the first bifurcation edge sub-state graph to the synchronizer;

[0041] j 2’ represents the event to be sent from the second fork edge substate graph to the synchronizer;

[0042] / j2 represents the action of sending event j2 from the first bifurcation edge substate;

[0043] / j2’ Indicates sending event j from the second bifurcation edge substate 2’ action.

[0044] Solid arrows represent node-to-node transformations, while dashed lines represent synchronization achieved by sending and receiving the same events between portions of the output hierarchical state diagram 300 .

[0045] Figure 4-5 is a flow chart illustrating an exemplary method 500 for transforming a business process model (BPM) into a layered state diagram according to an embodiment of the present invention.

[0046] At block 405 , node analysis is performed by analyzing each node of the BPM to identify at least one bifurcation node and at least one join node.

[0047] At block 410, in response to identifying each of at least one bifurcation node in the BPM in the node analysis:

[0048] (i) preparing a hierarchical state for the at least one bifurcation node;

[0049] (ii) generating a fork edge sub-state graph having an initial state and a working state, and attaching the fork edge sub-state graph to the hierarchical state for the at least one fork node for each edge emanating from the at least one fork node, and

[0050] (iii) generating a synchronizer sub-state graph corresponding to each joining node passing through the fork node to receive synchronization events from each fork edge sub-state graph, and attaching the synchronizer sub-state graph to the hierarchical state graph for the at least one fork node. The phrase "joining node passing through the fork node" means that each path to the joining node passes through the fork node.

[0051] At block 415, in response to identifying each of at least one join node in the BPM in the node analysis:

[0052] (i) generating a transformation from the working state of the fork edge sub-state graph to send a synchronization event to the synchronizer sub-state graph;

[0053] (ii) generating a second working state;

[0054] (iii) generating a transition from the hierarchical state for the bifurcation node to the second working state in response to the number of transitions for sending synchronization events being equal to the number of transitions for receiving the synchronization events; and

[0055] (iv) in response to the number of transitions being unequal, generating a transition from the synchronizer substate graph for the bifurcation node to the second working state.

[0056] At block 420, a hierarchical state diagram is output.

[0057] At block 425, actions are performed in response to the state of the hierarchical state graph. For example, (1) when the first fork edge sub-state graph transitions to the final state, event j2 is sent to the synchronizer sub-state graph, but the synchronizer is still waiting for another event j2. 2’ (2) When the second bifurcation edge substate graph transforms to the final state, event j 2’ is sent to the synchronizer sub-state graph, which then transforms to its final state, which will cause the entire state graph to transform to its final state. For example, in an embodiment, a code generator is used to generate a computer program that models a BPM based on a hierarchical state graph obtained by transforming the BPM. Studies have shown that code generated from a state graph has fewer errors than code generated from other bases.

[0058] Figure 6-7 is a diagram showing exemplary pseudo code of a main process 500 for transforming a BPM into a hierarchical state chart according to an embodiment of the present invention.

[0059] For this purpose, the following definitions apply:

[0060] Input: Process model P =<O,o0,F> ;

[0061] O is a set of process objects, including start events, end events, fork nodes, and join nodes;

[0062] o0∈O is the start event;

[0063] It is a process relationship;

[0064] Output: State diagram SC =<S,s0,T,Fin> ;

[0065] S is the set of states;

[0066] s0∈S is the initial state; and

[0067] is a transition relation (s, s', e, a) from one state s to another state s' that occurs when an event e is received and an event a is sent as a result of the action associated with the transition. When a transition does not have a send or receive event, we denote it as (s, s').

[0068] Fin is the set of final states.

[0069] Figure 8 is a diagram showing exemplary pseudo code for a subprocess 800 of creating an event according to an embodiment of the present invention.

[0070] Subprocess 800 takes processing object o and number c and outputs event e therefrom.

[0071] Fig. 9 is a diagram illustrating exemplary pseudo code for a subprocess 900 of attaching a synchronizer according to an embodiment of the present invention.

[0072] Subprocess 900 takes state s and join node j as input and outputs state s augmented with the attached synchronizer substate graph.

[0073] Fig.10 is a diagram showing exemplary pseudo code for a sub-process 1000 for attaching a sub-state diagram according to an embodiment of the present invention.

[0074] Subprocess 1000 takes the parent state s as input and outputs a working state s1'.

[0075] An exemplary structured BPM and an exemplary unstructured BPM will now be described. As used herein, the term "structured BPM" refers to a business process model that can be decomposed into a set of sub-business process models, each of which has only one input edge and one output edge. As used herein, the term "unstructured BPM" refers to a business process model that cannot be decomposed into such sub-business process models.

[0076] Fig.11 is a diagram showing a BPM 1100 of an exemplary structure to which the present invention can be applied according to an embodiment of the present invention.

[0077] The structured BPM 1100 includes a start event / node 1101 , an AND FORK 1111 , an AND FORK 1112 , an AND JOIN 1121 , an AND JOIN 1122 , a flow edge 1130 , and an end event / node 1191 .

[0078] AND join 1121 is directly dominated by AND fork 1112. As a definition, D dominates N if every path from the entry to N must go through D. As another definition, D directly dominates N if D does not dominate any other dominator of N.

[0079] The junction 1122 is directly dominated by the bifurcation 1111.

[0080] Fig.12 is a diagram illustrating an exemplary output hierarchical state diagram 1200 transformed from the structured BPM 1100 according to an embodiment of the present invention.

[0081] Synchronizer 1210 becomes ready at the same time as the corresponding fork path starts, and therefore it can receive events from the fork path at any time, which means that the communication is always synchronized. When the second fork edge sub-state diagram changes, synchronizer 1121 becomes ready and it can receive events from the fork 1112 path.

[0082] Fig.13 is a diagram illustrating an exemplary unstructured BPM 1300 to which the present invention may be applied according to an embodiment of the present invention.

[0083] Unstructured BPM 1300 includes a start event / node 1301 , an AND fork 1311 , an AND fork 1312 , an AND join 1321 , and an AND join 1322 .

[0084] The AND junction 1321 is directly dominated by the AND bifurcation 1311.

[0085] The AND junction 1322 is directly dominated by the AND bifurcation 1311.

[0086] Fig.14 is a diagram illustrating an exemplary output hierarchical state diagram 1400 transformed from the unstructured BPM 1300 according to an embodiment of the present invention.

[0087] The synchronizer becomes ready at the same time as the corresponding forking path starts, and therefore it can receive events from the forking path at any time, which means that the communication is always synchronous. Unlike the hierarchical state diagram 1200, the two synchronizers 1321 and 1322 become ready before any forking edge substate transitions, because event j4 can be ready at j3 and j4. 3’ was sent before and it must be received by the synchronizer substate diagram.

[0088] Figure 15-16 is a flow chart illustrating an exemplary method 1500 for transforming a BPM into a hierarchical state diagram, according to an embodiment of the present invention.

[0089] At block 1505, each node of the business process model is traversed in a direction associated with an edge of the business process model, as shown in the following blocks.

[0090] At block 1510 , a target node is identified as a bifurcation node.

[0091] In response to the target node being a fork node visited for the first time, (i) a hierarchical state for the fork node is created, and (ii) a join node is searched so that each path to each join node passes through the fork node. For each join element found, a synchronizer substate graph is created that receives synchronization events from other substate graphs, and the synchronizer is attached to the hierarchical state for the fork node.

[0092] In block 1520 , in response to the target node being a fork node that has been visited, a sub-state graph consisting of an initial state and a working state is created and attached to the hierarchical state of the fork node.

[0093] At block 1525 , a target node is identified as a join node.

[0094] In response to the target node being a joined node, a transition from the working state is created at block 1530. An action is attached to the transition to send a synchronization event.

[0095] At block 1535 , in response to the target node being a join node to be revisited, move backward on the traversal path.

[0096] At block 1540 , in response to the target node being a join node that will not be visited again, the number of transitions that send events and the number of transitions that receive events in the hierarchical state of the fork node to which the synchronizer of the join node belongs are counted.

[0097] At block 1545, in response to the quantities being equal, an operational state and a transition from the hierarchical state for the bifurcation element to the operational state is created.

[0098] At block 1550 , in response to the quantities not being equal, a working state and a transition from the synchronizer to the working state is created.

[0099] At block 1555, an action is selectively performed in response to the quantities being equal or not equal. In an embodiment, the action may involve state transitions of all sub-states occurring synchronously by sending and receiving events, regardless of whether the input business process model is structured or unstructured.

[0100] In an embodiment, the present invention may provide a cloud-based service that performs the transformation of a BPM to a corresponding state diagram.

[0101] It should be understood that although the present disclosure includes detailed descriptions about cloud computing, the implementation of the teachings cited herein is not limited to cloud computing environments. Instead, embodiments of the present invention can be implemented in conjunction with any other type of computing environment now known or later developed.

[0102] Cloud computing is a service delivery model for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, network bandwidth, servers, processing, memory, storage, applications, virtual machines, and services) that can be quickly provisioned and released with minimal management effort or interaction with the provider of the service. The cloud model may include at least five characteristics, at least three service models, and at least four deployment models.

[0103] Features are as follows:

[0104] On-demand self-service: Cloud consumers can unilaterally and automatically provision computing capabilities, such as server time and network storage, as needed, without requiring human interaction with the provider of the service.

[0105] Broad network access: Capabilities are available over the network and accessed through standard mechanisms that facilitate the use of heterogeneous thin-client platforms or thick-client platforms (e.g., mobile phones, laptops, and PDAs).

[0106] Resource pooling: A provider's computing resources are pooled to serve multiple consumers using a multi-tenant model, where different physical and virtual resources are dynamically assigned and reassigned as needed. There is a sense of location independence, as consumers typically do not have control or knowledge of the exact location of the provided resources, but may be able to specify the location at a higher level of abstraction (e.g., country, state, or data center).

[0107] Rapid elasticity: The ability to quickly and elastically provision capacity, in some cases automatically scaling up quickly and releasing quickly to scale down quickly. To the consumer, the capacity available for provisioning typically appears unlimited and can be purchased in any quantity at any time.

[0108] Measured services: Cloud systems automatically control and optimize resource usage by leveraging metering capabilities at some level of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, and active user accounts). Resource usage can be monitored, controlled, and reported, providing transparency to both providers and consumers of the utilized services.

[0109] The service model is as follows:

[0110] Software as a Service (SaaS): The capability provided to the consumer is to use the provider's applications running on a cloud infrastructure. The applications can be accessed from different client devices through a thin client interface such as a web browser (e.g., web-based email). The consumer does not manage or control the underlying cloud infrastructure including the network, servers, operating systems, storage, or even individual application capabilities, with the possible exception of limited user-specific application configuration settings.

[0111] Platform as a Service (PaaS): The capability provided to consumers is to deploy applications created or acquired by consumers using programming languages ​​and tools supported by the provider onto the cloud infrastructure. Consumers do not manage or control the underlying cloud infrastructure including networks, servers, operating systems or storage, but have control over the deployed applications and possible configuration of the application hosting environment.

[0112] Infrastructure as a Service (IaaS): The capabilities provided to consumers are the provision of processing, storage, networking, and other basic computing resources on which consumers can deploy and run arbitrary software, which may include operating systems and applications. Consumers do not manage or control the underlying cloud infrastructure, but have control over the operating system, storage, deployed applications, and possibly limited control over selected networking components (e.g., host firewalls).

[0113] The deployment model is as follows:

[0114] Private Cloud: Cloud infrastructure is operated only for the organization. It can be managed by the organization or a third party and can exist on-premises or off-premises.

[0115] Community Cloud: Cloud infrastructure is shared by several organizations and supports a specific community with shared concerns (e.g., mission, security requirements, policies, and compliance considerations). It can be managed by the organization or a third party and can exist on-premises or off-premises.

[0116] Public cloud: Cloud infrastructure is made available to the public or large industry groups and is owned by an organization that sells cloud services.

[0117] Hybrid cloud: A cloud infrastructure is a combination of two or more clouds (private, community, or public) that remain unique entities but are bound together by standardized or proprietary technologies that enable data and application portability (e.g., cloud bursting for load balancing between clouds).

[0118] Cloud computing environments are service-oriented and focus on statelessness, low coupling, modularity, and semantic interoperability. At the core of cloud computing is the infrastructure that includes a network of interconnected nodes.

[0119] See now Fig.17, depicts an illustrative cloud computing environment 1750. As shown, cloud computing environment 1750 includes one or more cloud computing nodes 1710, with which local computing devices used by cloud consumers can communicate, such as, for example, personal digital assistants (PDAs) or cellular phones 1754A, desktop computers 1754B, laptop computers 1754C, and / or automotive computer systems 1754N. Nodes 1710 can communicate with each other. They can be physically or virtually grouped (not shown) in one or more networks, such as a private cloud, community cloud, public cloud, or hybrid cloud, or a combination thereof, as described above. This allows cloud computing environment 1750 to provide infrastructure, platform, and / or software as a service for which cloud consumers do not need to maintain resources on local computing devices. It should be understood that Fig.17 The types of computing devices 1754A-N shown in are intended to be illustrative only, and computing node 1710 and cloud computing environment 1750 may communicate with any type of computerized device over any type of network and / or network-addressable connection (eg, using a web browser).

[0120] See now Fig.18 , showing the cloud computing environment 1750 ( Fig.17 ) provides a set of functional abstraction layers. It should be understood in advance that Fig.18 The components, layers, and functions shown in are intended to be illustrative only, and embodiments of the present invention are not limited thereto. As described, the following layers and corresponding functions are provided:

[0121] The hardware and software layer 1860 includes hardware and software components. Examples of hardware components include: host 1861; server 1862 based on RISC (Reduced Instruction Set Computer) architecture; server 1863; blade server 1864; storage device 1865; and network and networking components 1866. In some embodiments, software components include network application server software 1867 and database software 1868.

[0122] The virtualization layer 1870 provides an abstraction layer from which the following examples of virtual entities can be provided: virtual servers 1871; virtual storage 1872; virtual networks 1873, including virtual private networks; virtual applications and operating systems 1874; and virtual clients 1875.

[0123] In one example, the management layer 1880 may provide the functionality described below. Resource provisioning 1881 provides dynamic procurement of computing resources and other resources for performing tasks within a cloud computing environment. Metering and pricing 1882 provides cost tracking when resources are utilized within a cloud computing environment, and bills or invoices for the consumption of these resources. In one example, these resources may include application software licenses. Security provides authentication for cloud consumers and tasks, as well as protection for data and other resources. User portal 1883 provides access to the cloud computing environment for consumers and system administrators. Service level management 1884 provides cloud computing resource allocation and management so that the required service levels are met. Service level agreement (SLA) planning and fulfillment 1885 provides pre-scheduling and procurement of cloud computing resources in anticipation of future requirements for the cloud computing resources based on the SLA.

[0124] The workload layer 1890 provides examples of functions that can take advantage of a cloud computing environment. Examples of workloads and functions that can be provided from this layer include: mapping and navigation 1891; software development and lifecycle management 1892; virtual classroom education delivery 1893; data analysis processing 1894; transaction processing 1895; and transforming business process models (BPM) into state diagrams 1896.

[0125] The present invention may be a system, method and / or computer program product of any possible degree of technical detail integration. The computer program product may include a computer-readable storage medium (or multiple media) having computer-readable program instructions thereon for causing a processor to execute various aspects of the present invention.

[0126] Computer readable storage medium can be a tangible device that can retain and store instructions for use by instruction execution devices. Computer readable storage medium can be, for example but not limited to, electronic storage device, magnetic storage device, optical storage device, electromagnetic storage device, semiconductor storage device, or any suitable combination of the above. A non-exhaustive list of more specific examples of computer readable storage medium includes the following: portable computer disk, hard disk, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), portable compact disk read-only memory (CD-ROM), digital versatile disk (DVD), memory stick, floppy disk, mechanical encoding device such as punch card or a protruding structure in a groove with instructions recorded thereon, and any suitable combination of the above. Computer readable storage medium as used herein should not be interpreted as a temporary signal itself, such as radio waves or other free propagating electromagnetic waves, electromagnetic waves propagated by waveguides or other transmission media (e.g., light pulses passing through fiber optic cables) or electrical signals emitted by wires.

[0127] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to a corresponding computing / processing device via a network (e.g., the Internet, a local area network, a wide area network, and / or a wireless network), or downloaded to an external computer or external storage device. The network can include copper transmission cables, optical transmission fibers, wireless transmissions, routers, firewalls, switches, gateway computers, and / or edge servers. The network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network, and forwards the computer-readable program instructions to be stored in a computer-readable storage medium in the corresponding computing / processing device.

[0128] The computer-readable program instructions for performing the operation of the present invention can be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-related instructions, microcode, firmware instructions, state setting data, configuration data of integrated circuits, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages ​​(such as Smalltalk, C++, etc.) and process programming languages ​​(such as "C" programming languages ​​or similar programming languages). The computer-readable program instructions can be executed completely on the user's computer, partially on the user's computer, executed as an independent software package, partially on the user's computer, partially on a remote computer, or completely on a remote computer or server. In the latter case, the remote computer can be connected to the user's computer through any type of network (including a local area network (LAN) or a wide area network (WAN)), or can be connected to an external computer (for example, using an Internet service provider through the Internet). In certain embodiments, the electronic circuit including, for example, a programmable logic circuit, a field programmable gate array (FPGA) or a programmable logic array (PLA) can perform computer-readable program instructions by utilizing the state information of the computer-readable program instructions to personalize the electronic circuit so as to perform various aspects of the present invention.

[0129] The present invention will be described below with reference to the flowchart and / or block diagram of the method, device (system) and computer program product according to the embodiment of the present invention. It should be understood that each box of the flowchart and / or block diagram and the combination of each box in the flowchart and / or block diagram can be implemented by computer readable program instructions.

[0130] These computer-readable program instructions can be provided to a processor of a computer or other programmable data processing device to produce a machine, so that the instructions executed by the processor of the computer or other programmable data processing device create a device for implementing the functions / actions specified in one or more boxes of the flowchart and / or block diagram. These computer-readable program instructions can also be stored in a computer-readable storage medium, which instructions cause the computer, programmable data processing device, and / or other equipment to work in a specific manner, so that the computer-readable storage medium in which the instructions are stored includes a manufactured product containing instructions for implementing aspects of the functions / actions specified in one or more boxes of the flowchart and / or block diagram.

[0131] Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device, so that a series of operational steps are performed on the computer, other programmable apparatus, or other device to produce computer-implemented processing, so that the instructions executed on the computer, other programmable apparatus, or other device implement the functions / actions specified in or in multiple boxes in the flowchart and / or block diagram.

[0132] References in the specification to "one embodiment" or "an embodiment" of the present invention and other variations thereof mean that the specific features, structures, characteristics, etc. described in conjunction with the embodiment are included in at least one embodiment of the present invention. Therefore, the phrases "in one embodiment" or "in an embodiment" and any other variations appearing in various places throughout the specification do not necessarily refer to the same embodiment. However, it should be understood that in view of the teachings of the present invention provided herein, the features of one or more embodiments may be combined.

[0133] It should be understood that, for example, in the case of "A / B", "A and / or B", and "at least one of A and B", the use of any of the following " / ", "and / or", and "at least one of" is intended to include: selecting only the first listed item (A), or selecting only the second listed item (B), or selecting both options (A and B). As another example, in the case of "A, B, and / or C" and "at least one of A, B, and C", such wording is intended to cover: selecting only the first listed item (A), or selecting only the second listed item (B), or selecting only the third listed item (C), or selecting only the first and second listed items (A and B), or selecting only the first and third listed items (A and C), or selecting only the second and third listed items (B and C), or selecting all three options (A and B and C). This can be extended to multiple listed items.

[0134] The flow chart and block diagram in the accompanying drawings show the architecture, function and operation of the possible implementation of the system, method and computer program product according to different embodiments of the present invention. To this end, each box in the flow chart or block diagram may represent a module, segment or part of an instruction, which includes one or more executable instructions for realizing a specified logical function. In some alternative implementations, the function marked in the box may not occur in the order marked in the figure. For example, the two boxes shown in succession can actually be completed as a step, and are executed simultaneously, substantially simultaneously, in a partially or completely overlapping manner in time, or the boxes can sometimes be executed in the opposite order, depending on the functions involved. It should also be noted that each box in the block diagram and / or flow chart, and the combination of the boxes in the block diagram and / or flow chart can be implemented with a dedicated hardware-based system that performs a specified function or action or performs a combination of dedicated hardware and computer instructions.

[0135] Having described preferred embodiments of the systems and methods (which are intended to be illustrative and not limiting), it should be noted that modifications and variations may be made by those skilled in the art in light of the above teachings. Therefore, it should be understood that changes may be made in the specific embodiments disclosed within the scope of the invention as outlined by the appended claims. Various aspects of the invention having the details and features required by the patent laws have thus been described, and what is required and desired to be protected by Letters Patent is set forth in the claims.

Claims

1. A computer-implemented method for automatically transforming a business process model (BPM) into a hierarchical state diagram, the BPM having parallel paths with at least one fork node and at least one join node, the method comprising: In response to identifying each of the at least one bifurcation node in the BPM in the node analysis: generating a forked edge sub-state graph having an initial state and a working state for each edge emanating from the at least one fork node, and attaching the forked edge sub-state graph to the hierarchical state for the at least one fork node; generating a synchronizer sub-state graph corresponding to each join node passing through the fork node to receive synchronization events from each fork edge sub-state graph, and attaching the synchronizer sub-state graph to the hierarchical state for the at least one fork node to form an intermediate version of the hierarchical state graph; as well as A computer program is automatically generated by a code generator, the computer program modeling the BPM using a final version of the hierarchical state diagram derived from the intermediate version, the computer program executing multiple sub-state diagrams attached to a single state in parallel.

2. The computer-implemented method of claim 1 , further comprising: In response to identifying each of the at least one joined node in the BPM in the node analysis: generating a transformation from a working state of the fork edge substate graph to send the synchronization event to the synchronizer substate graph; generating a second working state; In response to the number of transformations for sending synchronization events being equal to the number of transformations for receiving the synchronization events, generating a transformation from the hierarchical state for the at least one fork node to the second working state to form a final version of the hierarchical state diagram; as well as In response to the number of transitions being unequal, generating a transition from the synchronizer substate graph for the at least one fork node to the second working state to form the final version of the hierarchical state graph.

3. The computer-implemented method of claim 2, wherein: The node analysis includes analyzing each node of the BPM to identify the at least one bifurcation node and the at least one join node.

4. The computer-implemented method of claim 2, wherein: The BPM relates to inventory control, and the method further includes automatically replenishing items having the current inventory below a threshold amount in response to a status related to the current inventory in the final version of the hierarchical state.

5. The computer-implemented method of claim 2, wherein: The node analysis is responsive to a non-first visit to the at least one joined node, the method further comprising moving backward on a traversal path used in the node analysis.

6. The computer-implemented method of claim 2, wherein: The second working state represents a current state of the BPM relative to the state diagram.

7. The computer-implemented method of claim 2, wherein: Transitions from the working state of the fork edge substate graph and transitions from the hierarchical state of the fork node are not protected.

8. The computer-implemented method of claim 1, wherein: In response to identifying each of the at least one fork node in the BPM in the node analysis, the hierarchical state for the at least one fork node is prepared by generating a substate for a fork edge and a synchronizer substate.

9. The computer-implemented method of claim 1 , wherein: The BPM is a structured BPM.

10. The computer-implemented method of claim 1, wherein: The BPM is an unstructured BPM.

11. The computer-implemented method of claim 1 , responsive to identifying each of the at least one bifurcation node in the BPM in the node analysis, the method further comprising: In response to a first visit to the bifurcation node, assigning an initial state of one of two parallel paths created by the bifurcation node to a current state; as well as In response to a subsequent visit to the bifurcation node, an initial state of the other of the two parallel paths created by the bifurcation node is assigned to the current state.

12. A computer program product for automatically transforming a business process model (BPM) into a hierarchical state diagram, the BPM having a parallel path with at least one fork node and at least one join node, the computer program product comprising a non-volatile computer-readable storage medium having program instructions embodied therein, the program instructions being executable by a computer to cause the computer to perform a method comprising: In response to identifying each of the at least one bifurcation node in the BPM in the node analysis: generating a forked edge substate having an initial state and a working state for each edge originating from the at least one fork node, and attaching the forked edge substate to a hierarchical state for the at least one fork node; generating a synchronizer sub-state graph corresponding to each junction node passing through the fork node to receive synchronization events from each fork edge sub-state graph, and attaching the synchronizer sub-state graph to the hierarchical state of the at least one fork node to form an intermediate version of the hierarchical state graph; as well as A computer program is automatically generated by a code generator, the computer program modeling the BPM using a final version of the hierarchical state diagram derived from the intermediate version, the computer program executing multiple sub-state diagrams attached to a single state in parallel.

13. The computer program product of claim 12, the method further comprising: In response to identifying each of the at least one join node in the BPM in the node analysis: generating a transformation from a working state of the fork edge substate graph to send the synchronization event to the synchronizer substate graph; generating a second working state; In response to the number of transformations for sending synchronization events being equal to the number of transformations for receiving the synchronization events, generating a transformation from the hierarchical state of the at least one fork node to the second working state to form a final version of the hierarchical state diagram; as well as In response to the number of transitions being unequal, generating a transition from the synchronizer substate graph for the at least one fork node to the second working state to form the final version of the hierarchical state graph.

14. The computer program product of claim 13, wherein: The node analysis includes analyzing each node of the BPM to identify the at least one bifurcation node and the at least one join node.

15. The computer program product of claim 13, wherein: The BPM relates to inventory control, and the method further includes automatically replenishing items having the current inventory below a threshold amount in response to a state related to the current inventory in the final version of the hierarchical state store.

16. The computer program product of claim 13, wherein: The node analysis is responsive to a non-first visit to the at least one joined node, the method further comprising moving backward on a traversal path used in the node analysis.

17. The computer program product of claim 13, wherein: The second working state represents a current state of the BPM relative to the state diagram.

18. The computer program product of claim 13, wherein: Transitions from the working state of the fork edge substate graph and transitions from the hierarchical state of the fork node are not protected.

19. The computer program product of claim 12, wherein: In response to identifying each of the at least one fork node in the BPM in the node analysis, the hierarchical state prepared for the at least one fork node is prepared by generating a substate for a fork edge and a synchronizer substate.

20. The computer program product of claim 12, wherein: The BPM is a structured BPM.

21. The computer program product of claim 12, wherein: The BPM is an unstructured BPM.

22. The computer program product of claim 12, responsive to identifying each of the at least one bifurcation node in the BPM in the node analysis, the method further comprising: In response to a first initial visit to the bifurcation node, assigning an initial state of one of two parallel paths created by the bifurcation node to a current state; as well as In response to a subsequent visit to the bifurcation node, an initial state of the other of the two parallel paths created by the bifurcation node is assigned to the current state.

23. A computer processing system for automatically transforming a business process model (BPM) into a hierarchical state diagram, the BPM having parallel paths with at least one fork node and at least one join node, the system comprising: a memory device including program code stored thereon; A hardware processor is operatively coupled to the memory device and configured to execute the program code stored on the memory device to In response to identifying each of the at least one bifurcation node in the BPM in the node analysis: generating a forked edge substate having an initial state and a working state for each edge originating from the at least one fork node, and attaching the forked edge substate to a hierarchical state for the at least one fork node; generating a synchronizer sub-state graph corresponding to each junction node passing through the fork node to receive synchronization events from each fork edge sub-state graph, and attaching the synchronizer sub-state graph to the hierarchical state of the at least one fork node to form an intermediate version of the hierarchical state graph; as well as A computer program is automatically generated by a code generator, the computer program modeling the BPM using a final version of the hierarchical state diagram derived from the intermediate version, the computer program executing multiple sub-state diagrams attached to a single state in parallel.