最近在做工作流處理流程部分的工作,順便研究了一下工作流引擎的一些設計理念和原理。由于以前接觸過人工智能神經網絡的一些東西,發現工作流引擎和神經網絡還是頗有一些相似之處,都是滿足一定的條件下向下一個節點傳遞。在神經網絡的神經元中有個閥的概念,就是只有當神經元接收到神經沖動超過閥值后才會激活此神經元。由此我大膽的在工作流中也引入閥值的概念。
?
我們知道在工作流中的一些基本概念,節點,路由,條件是工作流的一些基本組成部分。其中節點和路由的共性是都是滿足一定的條件向后流轉,不同點是節點可以進行更多的操作,修改狀態,路由只能根據已經定義好的條件進行判斷是否從此路由進行流轉。對于條件的判斷有如下幾種情況,并,或,一票確定,一票否定,數量確定,比例確定等。我們可以嘗試用閥值來模擬這幾種情況,首先我們先確定規則,當節點計數器達到閥值后激活向后流轉,
每次操作可以取不同的閥值可達到不同的效果。?
如上流程圖,現在有Node(A) Node(B),Node(C), Node(D), Node(E), Node(F) 六個節點,Route(AB), Route(BC), Route(BD), Route(BE), Route(CF), Route(DF), Route(EF)七個路由
類型 | Node (C) | Node (D) | Node (E) | Node(F) | Function |
并 | 1 | 1 | 1 | 3 | F(x)=x+1 |
或 | 1 | 1 | 1 | 1 | F(x)=x+1 |
一票確定 | 1 | 1 | 1 | 1 | F(x)=x+1 |
一票否定 | 0 | 0 | 0 | 0 | F(x)=x*x |
數量確定 | 1 | 1 | 1 | 2 | F(x)=x+1 |
比例確定 | 1 | 1 | 1 | 2 | F(x)=x+1 |
說明:function為Route接收參數后進行運算的規則,可以是復雜的函數以實現復雜的控制條件
?
??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 朱現國 2014-04-29