工作流的看法

2021-08-29 11:17:13 字數 983 閱讀 2515

最近開發了一套工作流系統,當然,相對比較簡單,對於複雜的自動機沒有實現。開發完之後對soa有了更深入的理解。

工作流機制是soa的靈魂,下面咱就談談這個靈魂。

完整的工作流系統包含三個部分:

第一,工作流本身的資料模型以及控制流程例項流轉的引擎;

第二,與業務資料密切相關的工作流邊界,負責關聯業務資料和工作流;

第三,工作流的流程管理子系統,最理想的是視覺化編輯。

目前,開源的工作流引擎有osworkflow,jbpm,shark等,這些工作流都符合工作流聯盟的規範。但是要讓他們符合你的需求比較難。最重要的原因是,你的系統裡層級和架構設計,比如dao的方式等規範,與他們對工作流本身資料模型管理的方式出入比較大。osworkflow裡有幾種可選的dao方式,jdbc支援,hibernate支援,hibernate+spring也支援。但是整合方式未必和你的系統規範吻合。

除了在資料模型操作上有出入外,在流程管理上也未必符合你的要求。流程管理的最高境界就是讓客戶按需求自己去配置業務流程。而從osworkflow等提供的方式來看,客戶還必須得精通xml等技術,客戶還不把我們這些人宰了?因此,用他們的東西,一定程度上可以解放工作量,靈活修改流程配置,但是要求是提前跟客戶溝通好有哪些具體流程,萬一流程有變,還得程式設計師自己去修改,做不到讓客戶來視覺化的自己拖放流程。不過ibm的dominao等做的不錯,流程設計還是挺牛的。

如果工作流引擎有了,程式設計師要做的就是開發將業務和工作流關聯起來的邊界程式。別以為你有個工作流放那了,你就輕鬆了。引擎不知道業務資料要被如何計算,以及不知道你什麼用例下才觸發工作流。而且對於角色許可權控制也不知道你是怎麼規定的。邊界程式就是要做這些事。

有幾個概念容易混淆:工作流,控制流,業務流。

工作流是可以被取代的:在業務模型上多加幾個控制狀態的字段就可以了。

使用工作流雖然很好,但是要付出代價的:開發成本高,程式執行成本高,維護成本也高。

如果你的業務流程設計時可以用控制流,那就盡量用狀態字段取代工作流吧,畢竟soa不是用來殺雞的刀

工作流建模 工作流概念

工作流建模 工作流概念 1 案例 工作流系統得基本目的是處理案例。每個案例都有乙個唯一標識,而且每個案例的生命週期都是有限的。案例生命週期都處於某個特定狀態,該狀態由三個元素組成 1 案例相關的屬性的值 案例屬性是一系列同案例相關的變數。能夠用來管理案例。正是通過這些變數,才有可能指出在特定條件下某...

工作流 一 什麼是工作流

什麼是工作流 工作流的英文全稱是 workflow,簡單理解則是業務流程的計算機化或自動化。它是是針對工作中具有固定程式的常規活動而提出的乙個概念,通過將工作活動分解定義良好的任務 角色 規則和過程來進行執行和監控,達到提高生產組織水平和工作效率的目的。工作流技術發端於70年代中期辦公自動化領域的研...

工作流 二 什麼是工作流引擎

什麼是工作流引擎 工作流引擎的英文全稱是 workflow engine,是指workflow作為應用系統的一部分,並為之提供對各應用系統有決定作用的根據角色 分工和條件的不同決定資訊傳遞路由 內容等級等核心解決方案。例如開發乙個系統最關鍵的部分不是系統的介面,也不是和資料庫之間的資訊交換,而是如何...