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