Enhydra Shark是一個開源的工作流引擎架構,使用Java進行開發,遵守LGPL協定。Shark遵守WfMC、OMG規範,以XPDL(XML Process Definition Language)進行流程定義。 Shark以Java庫的方式運作,并不啟動自己的線程,而是和使用它的系統一起運作。這種簡單點的方式使它可以在很多環境中運作,如Web、Java Application、CORBA、EJB、RMI、WEB Service等環境下都可以運作,甚至以Shark為基礎也可以開發出支援分布式工作流的應用。 Shark具有非常好的靈活性,本身有很多内置的實作子產品,如使用者/使用者組模型、任務配置設定模型,如果覺得Shark内置的實作方式不滿足自己的需求,也可以定義自己的實作方式。 Shark支援JTA事務,在開發應用程式時,不用擔心業務系統、工作流引擎的全局事務問題,這一點對于開發健壯的資料一緻的系統尤為重要。 編寫XPDL的工作流定義時,可以用Enhydra JaWE(Java Workflow Editor)進行XPDL檔案的編輯。JaWE是開源的圖形化的工作流程編輯器,遵守WfMC的XPDL規範。 在 http://www.enhydra.org/workflow/shark/index.html有對Shark的簡介,點選右側的圖示連結到Shark的下載下傳界面(http://forge.ow2.org/projects/shark/),提供幾種格式的下載下傳,我們選擇tws-community-2.4-1.setup.exe,這是Shark的2.4.1版本。下載下傳完成之後進行安裝,以下以%SHARK_HOME%代表Shark的安裝目錄。安裝完成後,運作開始菜單|程式|Together Workflow Server CE 2.4-1|Run TWS Admin Application,就可以打開Shark的模拟器了,具體用法參考安裝之後的文檔。 安裝Shark之後,預設的是使用hsql資料庫,是以沒有進行任何配置,就可以模拟工作流的環境了。Shark支援db2、hsql、informix、msql、msql2005、mysql、oracle、postgresql、sybase等多種資料庫,如果要使用其他資料庫,進行以下配置: 1、編輯%SHARK_HOME%/configure.properties,配置資料庫資訊。 此處假定使用mysql資料庫。configure.properties中需要修改的地方如下: db_loader_job=mysql (注:資料庫的類型) db_ext_dirs=D:/mysql-5.0.51b-win32/jdbclib (注:資料庫jdbc驅動所在的路徑) mysql_JdbcDriver=com.mysql.jdbc.Driver (注:資料庫的jdbc驅動管理類的類名稱) mysql_Connection_Url=jdbc:mysql://localhost:3306/sharkDemo (注:資料庫的連接配接字元串) mysql_user=root (注:資料庫的使用者名) mysql_passwd= (注:資料庫的密碼) 2、運作%SHARK_HOME%/configure.bat 完成之後,連接配接到資料庫,就會看到裡面建立了很多表,再次啟動Shark就會連接配接新的資料庫了。其實,在資料庫執行的腳本都在%SHARK_HOME%/conf/sql下面,LoaderJob.olj定義了sql腳本的執行順序,我們按順序執行腳本也可以建立起資料庫。 系統自帶了一個工作流的簡單例子,在%SHARK_HOME%/JSPClient/readme.txt中介紹了JSPClient在Tomcat 6.x下的安裝方法,即: 1、把sharkworklisthandler.war檔案從%SHARK_HOME%/JSPClient拷貝到%TOMCAT_HOME%/webapps檔案夾下面。 2、把carol.properties檔案從%SHARK_HOME%/JSPClient拷貝到%TOMCAT_HOME%/lib檔案夾下面。 啟動tomcat,sharkworklisthandler這個簡單的應用就可以運作了,簡單到所有的任務隻配置設定給一個人,但在這個簡單應用的基礎上,我們可以開發自己的應用程式,節省了自己配置的麻煩,開發的方法以後再介紹。