好久沒(méi)有去看shark項(xiàng)目的進(jìn)展了,說(shuō)起來(lái)有些慚愧上次去enhydra.org網(wǎng)站應(yīng)該還是四年前的事情了,shark 1.x版本一直覺(jué)得夠用了,也就不再留意它的進(jìn)展了。也一直未做過(guò)什么對(duì)外的文檔與代碼貢獻(xiàn),鄙視一下。今天來(lái)看看網(wǎng)站上對(duì)shark的描述,提些自己的看法與應(yīng)用認(rèn)識(shí)。
Shark與JaWE是Enhydra基于LGPL授權(quán)協(xié)議下提供的一組開(kāi)源工作流軟件。打個(gè)比方就類似于JasperReport與iReport的兩者的關(guān)系。Shark提供完整的工作流引擎,JaWE是一個(gè)工作流程設(shè)計(jì)器與調(diào)試環(huán)境。
以我使用的經(jīng)驗(yàn)來(lái)說(shuō),Shark是一個(gè)嚴(yán)格遵守WFMC標(biāo)準(zhǔn)的,使用XPDL語(yǔ)言進(jìn)行描述的引擎。Shark可以應(yīng)用在多種J2EE容器下支持會(huì)話Bean與Corba方式調(diào)用及WEB服務(wù)調(diào)用。
初學(xué)者很容易被這些開(kāi)源項(xiàng)目中大量的概念與術(shù)語(yǔ)嚇住,基本上都是死在第一步上的,無(wú)法入手。以我的經(jīng)驗(yàn)來(lái)說(shuō),先了解WFMC標(biāo)準(zhǔn)與XPDL語(yǔ)言標(biāo)簽的含義,你有個(gè)基本的概念頭認(rèn)識(shí)后,然后用JaWE模仿示例做幾個(gè)你常用的小流程,調(diào)試跑起來(lái),你立即就會(huì)被它吸引上而不斷去嘗試它博大精深的內(nèi)容。
當(dāng)然,很多人又會(huì)跳出來(lái)說(shuō)Shark不好,它是基于自己的框架開(kāi)發(fā)的,并未使用struts/spring+hibernate這些更大眾化的框架來(lái)做,它有自己的DODS等技術(shù),學(xué)習(xí)曲線與成本很高。好象OFBiz不被大家接收也是這個(gè)原因(它有自己的OR技術(shù)與Framework)關(guān)于這點(diǎn)我的看法是,如果你是應(yīng)付一些簡(jiǎn)單項(xiàng)目業(yè)務(wù)需求,是無(wú)需套用象OFBiz或Shark這些面向企業(yè)業(yè)務(wù)應(yīng)用的框架,這叫用高射炮打蚊子。簡(jiǎn)單的信息CRUD自己隨便找個(gè)框架或是原來(lái)的代碼拷貝修改一下就可以了。不要天天比較說(shuō)這個(gè)業(yè)務(wù)框架不好,那個(gè)技術(shù)不夠開(kāi)放。要知道這些項(xiàng)目都是這些開(kāi)源組織多年持續(xù)堅(jiān)持不斷積累的沉淀,那時(shí)哪有這么多成熟的技術(shù)框架呀?而且我覺(jué)得客戶或是作為技術(shù)負(fù)責(zé)人來(lái)說(shuō),只有最適合的,沒(méi)有說(shuō)一定要什么技術(shù)框架?啥叫主流?啥叫未來(lái)方向?扯淡多過(guò)實(shí)際,再過(guò)兩三年現(xiàn)在所謂的主流框架還真的是主流嗎?
shark在不同的人手中應(yīng)該是可以有不同的用法,我是把它獨(dú)立做為一個(gè)組件來(lái)應(yīng)用的,使用需要用到工作流程驅(qū)動(dòng)的應(yīng)用我會(huì)使用到它。通過(guò)JaWE根據(jù)業(yè)務(wù)需求設(shè)計(jì)XPDL文件存放至資源庫(kù)中,把流程結(jié)束點(diǎn)需觸發(fā)的應(yīng)用做成外部應(yīng)用在工作流程中加以定義(支持Beanshell/WebService多種方式),類似于JspClient的示例方式在你自己的頁(yè)面中提供待辦事宜、工作申報(bào)、審批等操作。當(dāng)然最主要的集成工作就是組織結(jié)構(gòu)與權(quán)限的融合。這樣你的業(yè)務(wù)系統(tǒng)就可以同shark全面融合了。最棒的情況下就是多個(gè)業(yè)務(wù)系統(tǒng)通過(guò)shark的同一實(shí)例串接起來(lái),實(shí)現(xiàn)不同業(yè)務(wù)系統(tǒng)的工作銜接。
說(shuō)得有些粗糙,可能文筆比較差,也不知?jiǎng)e人是否能明白。以后有機(jī)會(huì)再就某個(gè)主題來(lái)說(shuō)吧。
本人原創(chuàng)文章,歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明出處!