spark的自留地(ofbiz/eclipse rcp/shark/opentaps)

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            54 Posts :: 0 Stories :: 112 Comments :: 0 Trackbacks

          好久沒有去看shark項目的進展了,說起來有些慚愧上次去enhydra.org網站應該還是四年前的事情了,shark 1.x版本一直覺得夠用了,也就不再留意它的進展了。也一直未做過什么對外的文檔與代碼貢獻,鄙視一下。今天來看看網站上對shark的描述,提些自己的看法與應用認識。

          Shark與JaWE是Enhydra基于LGPL授權協議下提供的一組開源工作流軟件。打個比方就類似于JasperReport與iReport的兩者的關系。Shark提供完整的工作流引擎,JaWE是一個工作流程設計器與調試環境。

          以我使用的經驗來說,Shark是一個嚴格遵守WFMC標準的,使用XPDL語言進行描述的引擎。Shark可以應用在多種J2EE容器下支持會話Bean與Corba方式調用及WEB服務調用。

          初學者很容易被這些開源項目中大量的概念與術語嚇住,基本上都是死在第一步上的,無法入手。以我的經驗來說,先了解WFMC標準與XPDL語言標簽的含義,你有個基本的概念頭認識后,然后用JaWE模仿示例做幾個你常用的小流程,調試跑起來,你立即就會被它吸引上而不斷去嘗試它博大精深的內容。

          當然,很多人又會跳出來說Shark不好,它是基于自己的框架開發的,并未使用struts/spring+hibernate這些更大眾化的框架來做,它有自己的DODS等技術,學習曲線與成本很高。好象OFBiz不被大家接收也是這個原因(它有自己的OR技術與Framework)關于這點我的看法是,如果你是應付一些簡單項目業務需求,是無需套用象OFBiz或Shark這些面向企業業務應用的框架,這叫用高射炮打蚊子。簡單的信息CRUD自己隨便找個框架或是原來的代碼拷貝修改一下就可以了。不要天天比較說這個業務框架不好,那個技術不夠開放。要知道這些項目都是這些開源組織多年持續堅持不斷積累的沉淀,那時哪有這么多成熟的技術框架呀?而且我覺得客戶或是作為技術負責人來說,只有最適合的,沒有說一定要什么技術框架?啥叫主流?啥叫未來方向?扯淡多過實際,再過兩三年現在所謂的主流框架還真的是主流嗎?

          shark在不同的人手中應該是可以有不同的用法,我是把它獨立做為一個組件來應用的,使用需要用到工作流程驅動的應用我會使用到它。通過JaWE根據業務需求設計XPDL文件存放至資源庫中,把流程結束點需觸發的應用做成外部應用在工作流程中加以定義(支持Beanshell/WebService多種方式),類似于JspClient的示例方式在你自己的頁面中提供待辦事宜、工作申報、審批等操作。當然最主要的集成工作就是組織結構與權限的融合。這樣你的業務系統就可以同shark全面融合了。最棒的情況下就是多個業務系統通過shark的同一實例串接起來,實現不同業務系統的工作銜接。

          說得有些粗糙,可能文筆比較差,也不知別人是否能明白。以后有機會再就某個主題來說吧。

          本人原創文章,歡迎轉載,轉載請注明出處!


           

          posted on 2008-10-12 13:40 shanghai_spark 閱讀(4270) 評論(6)  編輯  收藏 所屬分類: shark

          Feedback

          # re: shark在業務系統開發中的應用方法 2008-10-12 15:14 leekiang
          你把shark作為一個獨立的組件來用,那么怎么解決事務問題的?  回復  更多評論
            

          # re: shark在業務系統開發中的應用方法 2008-10-12 17:53 Jack.Wang
          恩,說的不錯,幾年前做過工作流,當時我負責 flowbuilder 和 formbuilder 工具的設計和開發,參考過JaWE和ireport開源項目,覺得很不錯!其中flowbuilder 核心是采用 JGraph 開發的!想想以幾年過去了!  回復  更多評論
            

          # re: 如何集成shark工作流到你自己的業務系統 2008-10-12 18:01 廣州spark
          shark是一個工作流引擎,為你的業務系統提供流程信息(如流程、當前活動、當前意見等),業務中的事務的控制是由你自己處理。對shark來說可是一個封閉的應用調用。我當初是這么做的,不知道我這樣描述能否明白。  回復  更多評論
            

          # re: 如何集成shark工作流到你自己的業務系統 2008-10-13 01:45 leekiang
          我的意思是,你的業務操作和流程操作應該在一個事務內,要么都發生,要么都不發生。
          用shark的話怎么做到這一點?  回復  更多評論
            

          # re: 如何集成shark工作流到你自己的業務系統 2008-10-13 10:52 廣州spark
          對我的系統來說,報批、批復、駁回、中止這些流程操作是對你的業務(比如OA公文)的意見,它本身并不涉及具體業務內容(比如說對公文的意見并不會直接去改寫公文內容,它們不是一個原子事務)。它相當于觸發器,觸發我業務系統中的對應操作(我所有操作都在業務系統的服務代碼中,它可以讀取流程信息對業務事務進行控制,當然你也可以回寫shark的流程信息,比如在某種異常情況下去改寫對應流程或活動實例信息)。  回復  更多評論
            

          # re: 如何集成shark工作流到你自己的業務系統[未登錄] 2013-08-26 16:49 tony
          你好:
          能不能介紹下如何搭建shark開發環境,搞了2周沒有搭好,領導向導不滿意。 157826218@qq.com  回復  更多評論
            

          主站蜘蛛池模板: 安图县| 黎城县| 获嘉县| 汶川县| 鄂托克旗| 富顺县| 特克斯县| 乌什县| 佛教| 邛崃市| 鹤壁市| 常山县| 隆尧县| 天柱县| 方山县| 五原县| 麻城市| 赤壁市| 长丰县| 甘肃省| 丹阳市| 宁南县| 万全县| 梁山县| 友谊县| 甘肃省| 东乌| 闽清县| 洪江市| 自贡市| 习水县| 保德县| 青州市| 深圳市| 中山市| 九江县| 长丰县| 尉犁县| 得荣县| 陆川县| 仪征市|