為了找出並行計算上的各種狀況,需要找到可以表達的模型。
目前已知並行狀態機可以使用Petri Net來表達。
在找Petri Net資料中,找到了工作流模式(workflow pattern)。
也就是所有並行式工作流,都可以使用工作流模式內的模型來表達。
工作流模式基本模型有21種:
1. 順序(Sequence)
2. 平行拆分(Parallel Split)
3. 同步(Synchronization)
4. 排他選擇(Exclusive Choice)
5. 單合併(Single Merge)
6. 多選(Multi-choice)
7. 平行合併(Synchronize Merge)
8. 多合併(Multi-merge)
9. 鑒別器(Discriminator)
10. M中的N模式(N-out-of-M Join)
11. 強制循環(Arbitrary Cycles)
12. 隱式終止(Implicit Termination)
13. 非同步的多實例(Multiple Instances Without Synchronization)
14. 在設計期間預先確定的多實例(Multiple Instances With a Priori Design Time Knowledge)
15. 在運行期預先確定的多實例(Multiple Instances With a Priori Runtime Knowledge)
16. 無法在運行期預先確定的多實例(Multiple Instances Without a Priori Runtime Knowledge)
17. 延遲選擇(Deferred Choice)
18. 交替平行路由(Interleaved Parallel Routing)
19. 里程碑(Milestone)
20. 取消活動(Cancel Activity)
21. 取消實例(Cancel Case)
可以到
http://is.ieis.tue.nl/research/patterns/patterns.htm
上面有動畫實例,可以很容易的了解各模型的差異。
有了這個工作流模式,只要把各狀況找出解決方式,就不會用自己想的怪方法來解,然後遇到不明的問題。
沒有留言:
張貼留言