• 工作流-流程控制模式(总介绍,目录)


    Introduction

    The Workflow Patterns Initiative was established with the aim of delineating the fundamental requirements that arise during business process modelling on a recurring basis and describe them in an imperative way. The first deliverable of this research project was a set of twenty patterns describing the control-flow perspective of workflow systems. Since their release, these patterns have been widely used by practitioners, vendors and academics alike in the selection, design and development of workflow systems [vdAtHKB03]. This body of work presents the first systematic review of the original twenty control-flow patterns and provides a formal description of each of them in the form of a Coloured Petri-Net (CPN) model. It also identifies twenty three new patterns relevant to the control-flow perspective. Detailed context conditions and evaluation criteria are presented for each pattern and their implementation is assessed in fourteen commercial offerings including workflow and case handling systems, business process modelling formalisms and business process execution languages.

    Revisiting the Original Patterns

    Here we present a revised description of the original twenty control-flow patterns previously presented in [vdAtHKB03]. Although this material is motivated by earlier research conducted as part of the Workflow Patterns Initiative, the descriptions for each of these patterns have been thoroughly revised and a new set of evaluations have been undertaken. In several cases, detailed review of a pattern has indicated that there are potentially several distinct ways in which the original pattern could be interpreted and implemented. In order to resolve these ambiguities, we have taken the decision to base the revised definition of the original pattern on the most restrictive interpretation of its operation and to delineate this from other possible interpretations that could be made. In several situations, a substantive case exists for consideration of these alterative operational scenarios and where this applies, these are presented in the form of new control-flow patterns.

    New Control Flow Patterns

    Review of the patterns associated with the control-flow perspective over the past few years has led to the recognition that there are a number of distinct modelling constructs that can be identified during process modelling that are not adequately captured by the original set of twenty patterns. Here we present twenty three new control-flow patterns that augment the existing range of patterns described above and elsewhere [vdABtHK00, vdAtHKB03]. In an attempt to describe the operational characteristics of each pattern more rigourously, we also present a formal model in Coloured Petri-Net (CPN) format for each of them. In fact the explicit modelling of the original patterns using CPN Tools helped identify a number of new patterns as well as delineating situations where some of the original patterns turned out to be collections of patterns.

    Basic Control Flow Patterns

    This class of pattern captures elementary aspects of process control and are similar to the definitions of these concepts initially proposed by the Workflow Management Coalition (WfMC) [Wor99].

    1. Sequence
    2. Parallel Split
    3. Synchronization
    4. Exclusive Choice
    5. Simple Merge

    Advanced Branching and Synchronization Patterns

    Here we present a series of patterns which characterise more complex branching and merging concepts which arise in business processes. Although relatively commonplace in practice, these patterns are often not directly supported or even able to be represented in many commercial offerings. The original control-flow patterns identified four of these patterns: Multi-Choice, Synchronizing Merge, Multi-Merge and Discriminator.

    In this revision, the Multi-Choice and Multi-Merge have been retained in their previous form albeit with a more formal description of their operational semantics. For the other patterns however, it has been recognized that there are a number of distinct alternatives to the manner in which they can operate. The original Synchronizing Merge now provides the basis for three patterns: the Structured Synchronizing Merge (WCP7), the Acyclic Synchronizing Merge (WCP37) and the General Synchronizing Merge (WCP38).

    In a similar vein, the original Discriminator pattern is divided into six (6) distinct patterns: the Structured Discriminator (WCP9), the Blocking Discriminator (WCP28), the Cancelling Discriminator (WCP29), the Structured Partial Join (WCP30), the Blocking Partial Join (WCP31) and the Cancelling Partial Join (WCP32). One other addition has been the Generalized AND-Join (WCP33) which identifies a more flexible AND-join useful in concurrent processes.

    Of these patterns, the original descriptions for the Synchronizing Merge and the Discriminator are superseded by their structured definitions.

    6. Multi-Choice
    7. Structured Synchronizing Merge
    8. Multi-Merge
    9. Structured Discriminator
    28. Blocking Discriminator
    29. Cancelling Discriminator
    30. Structured Partial Join
    31. Blocking Partial Join
    32. Cancelling Partial Join
    33. Generalised AND-Join
    37. Local Synchronizing Merge
    38. General Synchronizing Merge
    41. Thread Merge
    42. Thread Split

    Multiple Instance Patterns

    Multiple instance patterns describe situations where there are multiple threads of execution active in a process model which relate to the same activity (an hence share the same implementation definition). Multiple instances can arise in three situations:

    1. An activity is able to initiate multiple instances of itself when triggered (we denote this form of activity a multiple instance activity);
    2. A given activity is initiated multiple times as a consequence of it receiving several independent triggerings (e.g. as part of a loop or in a process instance in which there are several concurrent threads of execution as might result from a Multi-Merge for example; and
    3. Two or more activities in a process share the same implementation definition. This may be the same activity definition in the case of a multiple instance activity or a common sub-process definition in the case of a block activity. Two (or more) of these activities are triggered such that their executions overlap (either partially or wholly).

    Although all of these situations potentially involve multiple concurrent instances of an activity or sub-process, it is the first of them in which we are most interested as they require the triggering and synchonization of multiple concurrent activity instances. This group of patterns focusses on the various ways in which these events can occur.

    Similar to the differentiation introduced in the Advanced Branching and Synchronization Patterns to capture the distinction between the Discriminator and the Partial Join pattern variants, three new patterns have been introduced to recognize alternative operational semantics for multiple instances. These are the the Static Partial Join for Multiple Instances (WCP34), the Cancelling Static Partial Join for Multiple Instances (WCP35) and the Dynamic Partial Join for Multiple Instances (WCP36).

    12. Multiple Instances without Synchronization
    13. Multiple Instances with a Priori Design-Time Knowledge
    14. Multiple Instances with a Priori Run-Time Knowledge
    15. Multiple Instances without a Priori Run-Time Knowledge
    34. Static Partial Join for Multiple Instances
    35. Cancelling Partial Join for Multiple Instances
    36. Dynamic Partial Join for Multiple Instances

    State-based Patterns

    State-based patterns reflect situations for which solutions are most easily accomplished in process languages that support the notion of state. In this context, we consider the state of a process instance to include the broad collection of data associated with current execution including the status of various activities as well as process-relevant working data such as activity and case data elements.

    The original patterns include three patterns in which the current state is the main determinant in the course of action that will be taken from a control-flow perspective. These are: Deferred Choice (WCP16), where the decision about which branch to take is based on interaction with the operating environment, Interleaved Parallel Routing (WCP 17), where two or more sequences of activities are undertaken on an interleaved basis such that only one activity instance is executing at any given time and Milestone (WCP18), where the enabling of a given activity only occurs where the process is in a specific state.

    In recognition of further state-based modelling scenarios, four new patterns have also been identified. These are: Critical Section (WCP39), which provides the ability to prevent concurrent execution of specific parts of a process, Interleaved Routing (WCP40), which denotes situations where a group of activities can be executed sequentially in any order, and Thread Merge (WCP41) and Thread Split (WCP42) which provide for coalescence and divergence of distinct threads of control along a single branch.

    16. Deferred Choice
    17. Interleaved Parallel Routing
    18. Milestone
    39. Critical Section
    40. Interleaved Routing

    Cancellation and Force Completion Patterns

    Several of the patterns above (e.g. (WCP6) Structured Synchronizing Merge and (WCP9) Structured Discriminator) have variants that utlize the concept of activity cancellation where enabled or active activity instance are withdrawn. Various forms of exception handling in processes are also based on cancellation concepts. This section presents two cancellation patterns - Cancel Task (WCP19) and Cancel Case (WCP20).

    Three new cancellation patterns have also been identified Cancel Region (WCP25), Cancel Multiple Instance Activity (WCP26) and Complete Multiple Instance Activity (WCP27).

    19. Cancel Task
    20. Cancel Case
    25. Cancel Region
    26. Cancel Multiple Instance Activity
    27. Complete Multiple Instance Activity

    Iteration Patterns

    The following patterns deal with capturing repetitive behaviour in a workflow.

    10. Arbitrary Cycles
    21. Structured Loop
    22. Recursion

    Termination Patterns

    The following patterns deal with the circumstances under which a workflow is considered to be completed.

    11. Implicit Termination
    43. Explicit Termination

    Trigger Patterns

    The following patterns deal with the external signals that may be required to start certain tasks.

    23. Transient Trigger
    24. Persistent Trigger

    Disclaimer

    We, the authors and the associated institutions, assume no legal liability or responsibility for the accuracy and completeness of any product-specific information contained in this body of work. All possible efforts have been make to ensure that the results presented are, to the best of our knowledge, up to date and correct.

     

    This article is reproduced in Workflow Patterns Initiative,not written by me.

    作者:johnny 出处:http://www.cnblogs.com/sunjunlin 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    实现粘贴WORD图片的在线编辑器
    js实现大文件分片上传的工具
    Nginx实现大文件分片上传的方法
    百度WebUploader实现大文件分片上传的方法
    ckeditor粘贴上传图片
    umediter实现粘贴word图片
    java.net.Socket
    matlab创建对角型矩阵
    QtList
    matlab矩阵行最简形
  • 原文地址:https://www.cnblogs.com/sunjunlin/p/1762438.html
Copyright © 2020-2023  润新知