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