Workflow Patterns
Source: http://www.workflowpatterns.com/documentation/documents/BPM-06-22.pdf
Workflow (Control Flow) Patterns 。
- Basic Control-Flow Patterns
- Advanced branch and join patterns
- Structural Patters
- Multiple instances patterns
- State-based patterns
- Cancellation patterns
Workflow (Control Flow) Patterns 。
- Basic Control-Flow Patterns
- Sequence
- Parallel Split
- Synchronization
- Exclusive Choice
- Simple Merge
- Advanced branch and join patterns
- Multi-Choice
- Structured Synchronizing Merge
- Multi-Merge
- Structured Discriminator)
- Structural Patters
- Arbitrary Cycles
- Implicit Termination
- Multiple instances patterns
- Multiple Instances without Synchronization
- Multiple Instances with a priori Design-Time Knowledge
- Multiple Instances with a priori Run-Time Knowledge
- Multiple instances without a priori run-time knowledge
- State-based patterns
- Deferred Choice
- Interleaved Parallel Routing
- Milestone
- Cancellation patterns
- Cancel Activity
- Cancel Case
New Control-Flow Patterns
- Structured Loop
- Recursion
- Transient Trigger
- Persistent Trigger
- Cancel Region
- Cancel Multiple Instance Activity
- Complete Multiple Instance Activity
- Blocking Discriminator
- Cancelling Discriminator
- Structured Partial Join
- Blocking Partial Join
- Cancelling Partial Join
- Generalized AND-Join
- Static Partial Join for Multiple Instances
- Cancelling Partial Join for Multiple Instances
- Dynamic Partial Join for Multiple Instances
- Acyclic Synchronizing Merge
- General Synchronizing Merge
- Critical Section
- Interleaved Routing
- Thread Merge
- Thread Split
- Explicit Termination
Basic Patterns: Sequence
AKA: Sequential routing, serial routing
<signavio>3f1b76ee0ddd4d06b4b91c3ac229014b:4b4d70dc8e3093b3e719c9bbe17b64fd48816e9eed0346ee3297864bd219_88cf83abf4f57afc0a1fc9c34b61eb2ec33116ea77d263bf272e5ce1c5a77c_59ade4a79f0189798829b30a033c95d8d37a1b8fcc9eebc5916fa061c9e7dc</signavio>
Basic Patterns: Parallel Split
AKA: AND-split, parallel routing, parallel split, fork
<signavio>826caed3ca4c48b19716aad785122f79:a9a5e41e3985beaaee73319de5971e4dac0d5b9a1c9ae7bf66d41545de7ac_db7884c196b11cb29f2cc9788989cf3ba1d3a85fda1f26b8608e814a96bfab_cfe11415e43cf77ddc73884725475749417c4cfbfd64d65945561b88532621cf</signavio>
Basic Patterns: Synchronization
AKA: AND-join, rendezvous, synchronizer
<signavio>d235a661b41944199ce03361045128e6:2c7f9efc698c39599a0923a1f57a1eb9411b3a1bc8871576139d4facdaf6_a9f3e71c9d5e1363459df55c72c92243e72bff239ac3e1eb34ff2c51f8274_1bb0baaca22a8ae02989d8c18cb39811ecc67ac4108b9d92eb2a6d4dc7f2a9</signavio>
Basic Patterns: Exclusive Choice
AKA: XOR-split, exclusive OR-split, conditional routing, switch, decision, case statement
<signavio>2ed20e9dc575496d96a9e1a4cb00ef32:91f684cd5249bb6b9c3f518ae3e384645a8437c17a5a2fd88d4dfc20d7ddbf_8aa55394371c8a2cc95ba7520c3fdd65bf2960f5873bad8677bbb47d82f2_a953328d20dfb9bee813b190e78d2fb5f7ee8cc15d081a996728e6f2bdf1c</signavio>
Basic Patterns: Simple Merge
AKA: XOR-join, exclusive OR-join, asynchronous join, merge.
<signavio>18f38db40b6a4d088e56da625b1ae011:b1deb433d216ae5e668bc8f824b799e9a2a8e8fd1317c0b4ee80fd74ff275779_31a7e311618567116182ab59b737b42ef12ab61fd43371de8993369ce3fd6_1e955e85a12ecb684edc0d757cf18262f6ee77e73123ef8ae0cf9dbec4f1c2</signavio>
Basic Patterns: Multi-Choice
AKA: Conditional routing, selection, OR-split, multiple choice.
<signavio>7a8b790716ba45a6aa75fba18ca9f2f1:94657cf70118edf9a60ef1a38466e67d191f215c75d3bdd4e1bd2b965979fb_1b8db710288535b56e4124609324adb1a29bf0d015f18a8f8f3c74e19abe2_5210c76331c6934295290ac68ad9bc0c85f74b1fa6df35f818fc014a63</signavio>
Basic Patterns: Structured Synchronizing Merge
AKA: Synchronizing join, synchronizer.
<signavio>a0142046038848b4ad9d42730d6e3e3b:8b11146f05414fbc885aa1fabd3f16b19d4a8962b969c658eee5f3d8e13_abdd3a92f9f6ee8cc94974f119e34ccc8dcb272220967021a3601dfcffb8848c_42d4eb32efc231e9156ed964e596aaca68bf8c818d2952e8176d210aa1c59a</signavio>
Basic Patterns: Multi-Merge
AKA: None
<signavio>fde2a6f3b4914751a9bbcd0927feb6fc:3f1db707d83de8af517dd2944be1a2468933cb55bccfe32f81d1a1788e1161b_fb5957114eba854d67a5c768ac503813324333376467cc39cd67b4d04f98217_4dd6dbd4651514dab3846372e9b4bd9e341c1d8bbcb956392c3ec925f3385f</signavio>
Basic Patterns: Structured Discriminator
AKA: 1-out-of-M join.
<signavio>5c463c51173d415c88a8fbbd9ba1b9e5:cdbcaa9b10a62879f4f6e5f19e7472a3077ae712b69d6165d5776139ba4f_7cd6ede885f41f504bbc063ff389a52ba02c88f4d97160396319b4a07ce7b_c1512c8f36f84b1409dee17e0d462733425833d15998e3d4af2f60f327a54</signavio>
Basic Patterns: WCP-10 Arbitrary Cycles
AKA: Unstructured loop, iteration, cycle.
<signavio>a0d63efb30a6444ea1eb913e42dae720:229a56a34f1ee6c2d6add75b4c72463a701a5b594e1cbb8a6b6f8540b862259e_3e316507b4defc1a76240a179b286d5c41951cf64a87b7146f2bc220d9c980_8382d1a7b3fd3cde88188ea37dff39b3d2652b2b8769a53e08d78a8fb676246</signavio>
Structural Patterns
Basic Patterns: Implicit Termination
AKA: None.
<signavio>5a5c077696af43c6b9bfd16f77c40719:89b6f2d8e5c0e1447991f8e6dbbfc14a87167d418dcececc959cea2ec2421a6_4167212aaabdd3292218115ddecbf3835b903fa5747d15820cb7afbcfe_c83d1a2f7856d50bdaef9ef5cd1811816f96926d1dadc786aa26dad5f8ea91</signavio>
Basic Patterns: Multiple Instances without Synchronization
AKA: Multi threading without synchronization, spawn off facility.
<signavio>765b730dbe8c4d48b01a013182400a9d:de5b915426de5c78f96b7ceb9e5d85c37c162c7959df9d5890bc6c593cea6a_9ee8a2a68fcea13117749c8b2cb1b241cad0d5518212dae07e4dcc89c353c4d_c8e0c953537440309851c2e794eb3d69639988e88f5311fddf4435f8e6d04d</signavio>
Basic Patterns: Multiple Instances with a priori Design-Time Knowledge
AKA: None.
<signavio>73d8cdb2fd1247b495634119a780cbf0:e8ecb5d462e6d5945a086ca6ae9f104eb15c2c88a5c510bd9da57ea6de41_88c73ed23bfe6d44b216ec445ebc396194473d879957c486f29dcc214527f2a7_20d6f9442ef611febd2e82ec2c190bc9a9143b7835a53d901a77c4beed51e5</signavio>
Basic Patterns: Multiple Instances with a priori Run-Time Knowledge
AKA: None.
<signavio>c1cf50a829a146d68b98d45ff51ddfd2:aec975b7a5f6d86970e5b974e333d0e74b2a5bb9ca56cd2a758e48d55269e_85c3626e13bd60c0f78c7a5ebb5edb4623a677891b65c7c24d2b3ad646751be8_aaadcadd215a02a6f58d8f466f579cc5e77359651a2188b22d533d41c94e</signavio>
Basic Patterns: Multiple instances without a priori run-time knowledge
AKA: None.
<signavio>517e66ee9ce14ea78a3a8a6d1c1b96b7:52512bbdf3f96ee3be30c24260732b6b8711746cd16942680682f44c171c578_34cc7feccd6090f1dcee47fcb4a18ff87a962459c4d8f99dd9253ca9462718d_6195314f72e7aedf8f4a2391cec90109f22dd797596eb67bb96de65ebe4b7c</signavio>
Basic Patterns: Deferred Choice
AKA: External choice, implicit choice, deferred XOR-split.
<signavio>b87dd72ab64b4f5a8e22b033aacd71d5:11f86f7059baba6618d750df7ec39d4a35e67aafdad87cc7f1cbbc7056ca8fd_16e8b764fd24ff950e57d4aab197a7c3c18e71574bba09a685f2af3ec6fe83b_7eeaf98f62a8e56d4cbd1b887861446ccb860d5f6ace6905bbc338da713d872</signavio>
Basic Patterns: Interleaved Parallel Routing
AKA: None.
- A set of activities has a partial ordering defining the requirements with
respect to the order in which they must be executed
- Each activity in the set must be executed once and they can be completed in any order that accords with the partial order
- However, as an additional requirement, no two activities can be executed at
the same time (i.e. no two activities can be active for the same process instance at the same time)
<signavio>640d16597c1843e4b0a5863dfe0357e5:911b8b7bc7add882bb9599bb7232d0a752a0bc7ef53643546c3f538c8c22963b_60dc35f41bcb4981d4ebb4f3cc5dcb96421b762a9547448e612fb15ba251f2_bcae83fe714045b11f75febd65c0d636ac5731e2fb4bc96b8af6c161bfc36b4</signavio>
Basic Patterns: Milestone
AKA: Test arc, deadline, state condition, withdraw message.
<signavio>4bd856d3ee0b45b0868459a0dfa4ed6b:969d4c4167c6ea37412b2a19224b6c2aa26f86f56a863138db4c9e264e2e084_3f55cfb7ddddb619ab845b58994115d3af132dd6ecbdd2f4a45a37c7766689e_6e6ade63a2e58d81418ee0f1a4f3aab0e99fea8c53e8c4485b321f9fa0ff86</signavio>
Basic Patterns: Cancel Activity
AKA: Withdraw activity.
<signavio>4af2d9d32195467f884127acdaf7b30f:4dce4f1d6a58a4d245cc6fe1b68e48626a65f64acf5a63f5eb4a7d67d898d810_6173b767984d9a8e34b415bab4c3edc4dd42e9edf8338b71e9524e9886ee5c5_123ebf013d78f3b5739bae28ee21ebd7868df7bacfdf2ae42637018b2ee5f42</signavio>
Basic Patterns: Cancel Case
AKA: Withdraw case.
<signavio>3caa9237865e4c96ae524baa8ca8ea78:614c76c7ef8822d0e8de24a9c7b3f67622477158181ca1ce86b7f4b765967_56285dacc898362aace757e1b399248590f02db79069ff227e2aed9a736b698f_aaaf8b73953ffa75bc484bb4236633421bfb93f66865f1b71731b5a9ff4554</signavio>