Posted on 2008-08-30 13:48
江上一葉舟 閱讀(2165)
評論(5) 編輯 收藏 所屬分類:
軟件藝術
幾個月前公司有個項目,項目建設內容較為簡單,使用Websphere process server(以下簡稱WPS)建設幾條流程。
在該項目前期,我曾經帶領一個團隊使用wps做了一個項目,這個項目中有八九條流程,在使用wps的過程當中,我發現wps根本不適合做一些復雜的人工審批工作流,ibm軟件日趨全球化,但卻忽略了很多本土化的東西,譬如說wps,作為金融行業融合企業內部服務的soa總線級產品,其內嵌的ESB根本達不到應有的性能(每筆交易時間),而作為電信行業流程引擎,卻忽略了最重要的中國國情--人工審批。在前幾天上海分公司信息化部召開的技術討論會議中,我就目前公司內部系統中幾個技術難點發出提問,ibm的工程師與老板都不知所云。
中外文化差異很大,國外的工作流希望自動化環節更多一些,減少人工參與,降低上行下達過程中人為的,可能造成誤差,而中國則不然,中國要求自動化環節少一些,決策都由人來審批,從處長到經理,從經理到分管領導,審批通過還不能作數,要簽字蓋章,留作日后證據。為什么會有這樣的差異,這個問題暫且交給余秋雨之流去論述,我們只講技術,既然中國企業工作流中講究的是審批,那問題就來了,人工審批工作流復雜無比,譬如說會簽、聯簽、發散、匯聚、選擇下一節點、選擇下一節點處理人等等,這都不是一個符合wfmc或bpel標準的工作流就能做出來的,包括最初的普元,幾年前來我們公司做技術交流和產品介紹的時候,我們就這些技術難點提出疑問,EOS完全無法滿足電信行業需求,于是其回去閉門苦練,一年后再來介紹時,工作流已經基本上能滿足99%的審批要求,而WPS剛剛進入中國市場在中國做審批工作流連一個像樣的大型成功案例都沒有,就更無法滿足需求了。
但介于公司內部系統的現狀,使用WPS還是有一些benefit的,公司建設內部管理系統使用了Websphere portal,Domino,Tivoli,MQ,MB等軟件,在集成展現上使用portal,內部oa使用lotus,統一認證,統一用戶管理使用了TAM,TIM,EAI使用了MB,這樣如果工作流使用wps的話,至少做一些展現、SSO、UM等都不存在問題,再加上IBM幾個銷售賣力的忽悠,領導被騙進,公司吃藥,使用了wps,秉承技術人員認證負責的態度,用就用了,把它用到最好,是我的責任,于是我進行了一系列的探索,前期使用wps建設時候,由于其無法滿足“選擇下一節點處理人”的需求,我自己封裝了一大堆的代碼,補充wps的流程預知功能,等項目結束后,我驚訝的發現,我自己寫的那部分代碼,居然已經構成了一個小型工作流引擎,汗顏的同時,我也在思考,既然這樣,我不然干脆就做一個輕量級的工作流引擎來取代wps的HumanTask組件進行人工審批,讓wps發揮其ESB的功能,當系統之間竄接的過程中遇到個別簡單的審批,則采用wps本身的人工任務,但如若需要進行復雜的人工審批流程,則進入我自己的輕量級工作流引擎進行審批,我為自己的這個想法感到興奮、躍躍欲試,接下來的工作就是選型了,目前市面上的工作流引擎很多,普元的,西安協同的,這些都需要購買license,不考慮,開源框架里有jbpm,osworkflow,shark等,經過考慮再三,jbpm和shark過于封閉,不利于改造成適應行業需求的流程引擎,于是采用osworkflow(以下簡稱os),自己在os上擴展了一層,我把它叫做ExtOSWorkflow,從取英文首字母來命名簡稱,變成了EOS,我狂暈,于是不偷懶,我把它叫做ExtOS,在ExtOS中,我擴展改造了很多功能,差不多改掉了除核心以外的一半的源碼,完成功能其中包括:完整的待辦任務列表、在辦任務列表、已辦任務列表、流程歷史、流程會簽、流程回退、流程委派、子流程、流程時限監控,流程版本控制等,其中會簽與版本控制功能尚在繼續開發,其余的已經實現,總結之余發表篇文章到blog、圈子、論壇,也想借機引起正在做同類產品的同行的討論,拋磚引玉吧,關于osworkflow的封裝,請聽下回分解