FireWorkflow微內核 vs jBPM流程虛擬機

客觀地說jBPM還是不錯的,雖然我沒有在項目中用過IBM,oracle等產品,但是我感覺jbpm比這兩個大公司的產品好用,大公司的bpm產品純粹徒有虛名。

這裏,我不得不說,當前Fire workflow比jBPM還是要強一點點, 。我碰到很多人,非常迷信jBPM的流程虛擬機。對此我相當不以爲然,本來計劃寫一系列的文章比較一下這兩款產品,但是由於時間的問題,這個計劃又要延遲了,甚至有點無限延遲的意思了。

今天我終於抽出時間,向大家再次吹一個牛皮,就是告訴大家如何在Fire workflow上面做一點簡單的定製就能實現BPEL語言。在Fire 微內核上實現BPEL要比jBPM PVM漂亮N倍.

我沒有時間實現完整的BPEL,只是實現了BPEL中的Sequnce, IF,While等語法。在附件中是一個完整的Eclipse項目,已經寫好了測試用例,大家可以試驗。

實現BPEL語法基本上只要在Fire 上增加3個類即可
BpelTranslator :實現Bpel語法到Fire 流程模型的轉換
ActivityInstanceExtension,SynchronizerInstanceExtension :響應微內核事件驅動BPEL語言。

下面是一個複雜的BPEL語法的流程以及他的執行效果

複雜BPEL語法

當x=1,a=2,b=2時,執行結果如下:

    Sequence1 begin!
        Activity1.1 executed!
        If1.2 begin!
            IF_1.2.2 begin!
                Activity1.2.2.2 executed!
            IF_1.2.2 end!
        If1.2 end!
        While1.3 begin!
            XYZActivity executed!(1)
        While1.3 end!
        While1.3 begin!
            XYZActivity executed!(2)
        While1.3 end!
        Activity1.4 executed!
    Sequence1 end!
 

 


那麼BPEL的語言結構在Fire 工作流網中表現爲什麼樣子呢?下面這個圖是While在Fire工作流網中的結構,在附件中的project中,可以打開測試類中的註釋,將轉換後的流程圖輸出來。

while轉換後

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章