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