<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    DANCE WITH JAVA

    開發出高質量的系統

    常用鏈接

    統計

    積分與排名

    好友之家

    最新評論

    工作流入門

      工作流無疑是一個熱門話題,以前的開發中一直不會接觸到這個層面,所以一直沒有來得及看到。現在由于工作需要開始接觸工作流,這里留下一個我學習的過程,提供一些好的資源和一些自己的體會,方便大家學習探討。

    一、為什么使用工作流、工作流這個技術的現狀
    出于習慣,每當我學習一個技術的時候,必須要知道為什么要學習它,它能給我帶來什么好處,了解了這個才能讓我決定是否使用,在什么時候使用。另外了解一下這個技術的現狀有助于從總體上把握這個技術。對于一個發展階段的技術和一個成熟的技術對待方式是不一樣的。
    關于這點,參考這篇文章:http://www.joinwork.net/document/The%20State%20of%20Workflow2.htm
    所有我看過的文章中,這篇文章最清晰的說明了我上邊的兩個問題,而且以問答的方式來寫的,適合從頭開始的人。
    這篇文章的作者Tom Baeyens (jbpm工作流框架的作者)翻譯dinghong,感謝他們提供了一個好的文章。
    二、工作流框架的選擇
    由于開源的流行我們可以有更多的選擇,這給我們帶來了很多的方便,好處多多不用說了,但也給我們帶了了一些麻煩,用Java 的人都了解,百家爭鳴讓人眼花繚亂,一個重要的事情是選擇,哪一個適合自己,或者說你更喜歡哪一個。選擇也是一個難題。選擇的好能節省很多時間,少走彎路。
    在這個問題上我沒有選擇,因為我不是這個方面的主要負責人,框架的選擇已經定下來了,OSWorkFlow.這對我也許是個好消息,因為我不需要再在大量的框架中去選擇,只需要專一于一個,省去大量的時間。
    三、OSWorkFlow主要優勢
    OSWorkflow 給你絕對的靈活性。OSWorkflow 被認為是一種“低級別”工作流實現。與其他工作流系統能用圖標表現“Loops(回路)”和“Conditions(條件)”相比,OSWorkflow 只是手工“編碼(Coded)”來實現的。但這并不能說實際的代碼是需要完全手工編碼的,腳本語言能勝任這種情形。OSWorkflow 不希望一個非技術用戶修改工作流程,雖然一些其他工作流系統提供了簡單的 GUI 用于工作流編輯,但像這樣改變工作流,通常會破壞這些應用。所以,進行工作流調整的最佳人選是開發人員,他們知道該怎么改變。不過,在最新的版本中,OSWorkflow 也提供了 GUI 設計器來協助工作流的編輯。

    OSWorkflow 基于有限狀態機概念。每個 state 由 step ID 和 status 聯合表現(可簡單理解為 step 及其 status 表示有限狀態機的 state)。一個 state 到另一 state 的 transition 依賴于 action 的發生,在工作流生命期內有至少一個或多個活動的 state。這些簡單概念展現了 OSWorkflow 引擎的核心思想,并允許一個簡單 XML 文件解釋工作流業務流程。

    上邊這段話是從OSWorkFlow的教程中得到的,總結一下,OSWorkFlow是基于xml手工配置的,它特點是靈活,它認為工作流的調整應該是程序員的事情。
    四、OSWorkFlow核心概念
    步驟(Step)
        一個 Step 描述的是工作流所處的位置。可能從一個 Step Transtion(流轉)到另外一個 Step,或者也可以在同一個 Step 內流轉(因為 Step 可以通 Status 來細分,形成多個State)。一個流程里面可以多個Step。

    狀態(Status)
        工作流 Status 是用來描述工作流程中具體Step(步驟)狀態的字符串。OSWorkflow 的有 Underway(進行中)、Queued(等候處理中)、Finished(完成)三種 Status。一個實際State(狀態)真正是由兩部分組成:State = (Step + Status) 。

    流轉(Transtion)
        一個State到另一個State的轉移。

    動作(Action)
        Action 觸發了發生在 Step 內或 Step 間的流轉,或者說是基于 State 的流轉。一個 step 里面可以有多個Action。Action 和Step 之間的關系是,Step 說明“在哪里”,Action 說明“去哪里”。 一個 Action 典型地由兩部分組成:可以執行此Action(動作)的
    Condition(條件),以及執行此動作后的 Result(結果)。    

    條件(Condition)
    類似于邏輯判斷,可包含“AND”和“OR”邏輯。比如一個請假流程中的“本部門審批階段”,該階段利用“AND”邏輯,判斷流程狀態是否為等候處理中,以及審批者是否為本部門主管。

    結果(Result)
    Result 代表執行Action(動作)后的結果,指向新的 Step 及其 Step Status,也可能進入 Split 或者 Join。Result 分為兩種, Contidional-Result (有條件結果),只有條件為真時才使用該結果,和 Unconditional-Result(無條件結果),當條件不滿足或沒有條件時使用該結果。

    分離/連接(Split/Join)
    流程的切分和融合。很簡單的概念,Split 可以提供多個 Result(結果);Join 則判斷多個 Current Step 的態提供一個 Result(結果)。

    好了,到這里,工作流的一個概貌是出來了。在下邊的文章中會以OSWorkFlow為例來進入工作流的天地。

    posted on 2007-05-07 19:06 dreamstone 閱讀(3826) 評論(2)  編輯  收藏 所屬分類: 其它開源框架

    評論

    # re: 工作流入門 2007-06-07 13:09 tiantian

    你好!
    和你的處境一樣!我們也要開始使用工作流,我也沒有選擇什么框架的權力,osworkflow!
    剛剛接觸,有很多的知識需要學習,相信以后的共同語言會很多哦!
    tiantian810605@tom.com,希望可以多多交流,共同進步!我也會常來逛逛的!  回復  更多評論   

    # re: 工作流入門 2007-10-29 13:59 Terrence

    你好!
    比你們的處境差一點!我還不知道用的是什么框架,先學一個。
    寫的很好,學著!  回復  更多評論   

    主站蜘蛛池模板: 91成年人免费视频| 69影院毛片免费观看视频在线| 成年女人色毛片免费看| 亚洲av成人综合网| 最近最新的免费中文字幕| 亚洲国产人成在线观看| 亚色九九九全国免费视频| 亚洲二区在线视频| 免费A级毛片无码免费视| 99亚偷拍自图区亚洲| 啦啦啦www免费视频| 亚洲国产成人AV网站| 国产男女猛烈无遮挡免费网站| 亚洲精品女同中文字幕| 四虎影视永久免费观看| 一区二区3区免费视频| 亚洲精品自在在线观看| 99re免费在线视频| 亚洲乱人伦精品图片| 暖暖日本免费在线视频| 边摸边脱吃奶边高潮视频免费| 国产亚洲老熟女视频| 无码国产精品一区二区免费模式| 亚洲色偷偷av男人的天堂| 毛片免费vip会员在线看| 国产亚洲午夜精品| 精品亚洲永久免费精品| 免费在线观看h片| 豆国产96在线|亚洲| 国产成人综合亚洲亚洲国产第一页| 久久精品中文字幕免费| 亚洲AV成人一区二区三区在线看| 亚洲国产成人久久综合一区77| 免费av片在线观看网站| 日韩亚洲国产高清免费视频| 久久国产成人精品国产成人亚洲| 5g影院5g天天爽永久免费影院| 亚洲国产精品成人AV在线| 亚洲精品tv久久久久久久久| 毛片免费在线观看网站| 伊人久久大香线蕉免费视频|