介 紹
??? Enhydra Shark 項目以一種不同的方式交付了一個工作流服務(wù)器。??? ??? Enhydra Shark 是一個可擴展的工作流引擎框架,它包括一個完全基于 WFMC 規(guī)范的標(biāo)準(zhǔn)實現(xiàn),它使用XPDL(沒有任何自己新的擴展)作為自身的工作流流程定義格式,使用WFMC 的 "ToolAgents" API 作為系統(tǒng)活動的服務(wù)器端的執(zhí)行形式。??? ??? Enhydra JaWE 圖形XPDL編輯器可用于為 Enhydra Shark 生成 XPDL 流程定義!??? ??? ToolAgents 可用于 JavaScript,JDBC 訪問,EJB 訪問,純 Java 類,CORBA 調(diào)用,EMail,Webservice 調(diào)用,等等...
??? 流程與活動實例的存儲通過一個可配置的持久化 API 來完成。持久層實現(xiàn)采用的標(biāo)準(zhǔn)是輕量級的Enhydra DODS O/R mapping 工具。更多重量級 J2EE EJB 持久層選擇方案在下面展示。??? ??? 每個單一構(gòu)件(持久層,事務(wù)管理,腳本引擎,流程庫...)可用于它的標(biāo)準(zhǔn)實現(xiàn)或被項目特定模塊所擴展/取代。?? ??? 通過這種方式,Enhydra Shark 可作為一個簡單的位于servlet 或 swing 應(yīng)用或運行在J2EE 容器(支持會話 bean API 以及用于 EJB 持久化)中的"Java library",CORBA ORB 或 Web 服務(wù)來使用。??? ??? 工作流引擎內(nèi)核為高負(fù)載環(huán)境下的活動工作流對象提供可配置的 LRU 緩存。緩存可在集群部署時關(guān)閉。
??? 當(dāng)工作流運行時,WFMC WDF API 規(guī)范將用來把 JAWe 編輯器或 selfwritten 程序附加在運行期實例信息上,甚至修改實例。使用這一方法,Enhydra Shark支持動態(tài)工作流機制,能修改其自身來支持更復(fù)雜的工作流環(huán)境或組織的異常處理。?? ??? 通常,基于 Swing 的管理GUI可用于管理工作。JMX 擴展和基于 HTML 的管理客戶端也可用于管理。?? ??? 其他 API 可用于知識庫訪問,日志,知識庫持久化,事件通知,以及為轉(zhuǎn)換評估(transition evaluations)設(shè)計的腳本引擎適配器。??? ObjectWeb 工作流工作組??? ??? 2003 年 12 月,新的 ObjectWeb 工作流工作組會議首次召開。??? ??? 本次會議的目標(biāo)是在當(dāng)前 ObjectWeb 工作流項目,也就是在 "Enhydra Shark"、"COW" 和 "Bonita" 之間確定可行的協(xié)作規(guī)則。會議達(dá)成的共識是,這些組件的 API 應(yīng)該遵循各自的標(biāo)準(zhǔn)(WFMC,OMG,BPEL)。這些組件將會是未來獨立工作流引擎項目的組成部分。??? ??? 所有組件將不會依賴于特定的運行環(huán)境(Swing,Servlets,J2EE/EJB,CORBA...)。??? ??? 要選擇一個通用組件模型("glue"),當(dāng)前非常可能的建議是采用 "Fractal"。??? 新的郵件列表已經(jīng)建立,以方便討論日常工作流工作組事宜和支持項目間的合作。該列表可在 http://www.objectweb.org/wws/info/wow 上找到。?? 其它達(dá)成的共識是使用 Enhydra JaWE 作為 基于XPDL進(jìn)行流程定義的通用編輯器。
??? 對WFMC WDF(工作流定義功能)的研究將表明,該 API 是否適合為流程和活動實例進(jìn)行動態(tài)修改。如果 WDF 成為 API 的首選,JaWE 將支持該 API 以在運行期間可以進(jìn)行圖形化觀看和實例修改。??? ??? 以下列出了初步確定的組件列表:??? ??????? 模型庫??????? 映射模塊,包括到ToolAgents,腳本語言/引擎,以及參與者(用戶和組)的映射??????? 流程和活動實例持久化(基于 Enyhdra DODS, Speedo, EJB's,...)??????? 腳本引擎適配器/包裝器,適用于不同腳本語言(JavaScript, Python,...)的流程轉(zhuǎn)換評估。??????? 活動流程和活動實例的運行期緩存(Perseus ?)??????? 事務(wù)管理(GOTM ?)??????? ToolAgents ??????? 分派API,用于動態(tài)參與者映射??????? 通知 API(Jabber, JMS, ...)??????? 日志(系統(tǒng)日志和管理活動日志)??????? 截止期(Deadline)管理(活動截止期(deadlines), 活動持續(xù)時間(durations), ...)??????? 記時器(Quartz, J2EE Timer Services,...)??????? 升級(Escalation) ???
Enhydra Shark 架構(gòu)
??? 根據(jù)上述已達(dá)成共識的Shark組件,當(dāng)前 Enhydra Shark 架構(gòu)目標(biāo)如下圖所示。???
請注意!引用、轉(zhuǎn)貼本文應(yīng)注明原譯者:Rosen Jiang 以及出處: http://m.tkk7.com/rosen
Powered by: BlogJava Copyright © Rosen