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