Enhydra Shark 管理(翻譯)

什麼是 Enhydra Shark 管理程序?

    Shark 管理程序是一個 Java swing 應用程序,管理者可用於進行 Shark 引擎的管理。有兩種管理程序,一種是把 shark 直接作爲庫來使用,另一種是利用 shark CORBA 包裝器接口,配置成CORBA 服務與Shark進行通信。該管理程序可用來處理含有XPDL文件(上傳新的 XPDL 文件或刪除已有)的 shark 外部庫,向 shark 中加載 XPDL 文件,以及卸載、更新該文件,以實例化和監控 shark 的流程,進行參與者定義到實際用戶間的映射, application definitions Tool agents 間映射,等等。該管理程序還包括用來執行 workitem 的內置 worklist 處理程序,或從某個用戶向另一用戶再次指派 workitem

下一章節將闡述管理程序的可行性。

   

啓動 Shark 管理程序

有兩種管理程序,第一個是把 shark 直接作爲庫來使用,另一個則通過它的CORBA 接口來使用它。

    啓動把Shark作爲庫來使用的管理程序

    要啓動把Shark作爲庫來使用的 shark 管理程序,你只需執行 runSA 腳本(runSA.bat)即可(依賴操作系統)。

    當程序啓動後,將會出現登陸界面。要真正連接上 shark,首先你應該輸入用戶名和密碼。你輸入什麼都可以,但必須是合法的,除非你以前用相同用戶名和不同密碼登陸過。

    當你輸入了必要的參數後,點擊 OK 按鈕,你將連接上 shark

    啓動 CORBA 管理程序

    採用這種方式,你只需執行 runA 腳本(runA.bat)即可(依賴操作系統)。

    當程序啓動後,將會出現登陸界面。要真正連接上 shark,首先你應輸入用戶名和密碼。如果 shark 服務器設置沒有發生改變過,默認用戶名和密碼寫在 "Shark.conf" 中,分別是 usename="admin"password="enhydra"

    下一步,你應該知道啓動的 CORBA 命名服務器所在機器(Shark 服務器本身已經登記的機器)的名稱和端口。同時,你必須知道自己登記的命名服務器的名字(該參數也設置在服務器"Shark.conf"文件裏)。

    如果已經啓動命名服務器,服務器和客戶都在你的本地機器上,使用給定的腳本文件,要是沒有改變 "Shark.conf" 文件的話,除了用戶名和密碼外的所有值都被設置好了。

    當你輸入了必要的參數後,點擊 OK 按鈕,將連接上服務器(當然,服務器應該調用 run 腳本(run.bat)先運行起來)。

注意:如果你想把命名服務器、shark 服務器和管理程序一起啓動,你只需簡單的運行 runAll 腳本(runAll.bat)即可。

   

使用 Shark 管理程序

    shark 管理程序被分成多個邏輯部分。各部分分別表述下列內容。

    庫管理(Repository Management

    庫管理中顯示了在引擎的 XPDL庫裏所有可利用的文件。在這裏你能管理引擎的 XPDL 庫,可以從本地上傳新的 XPDL 文件到服務器的知識庫中,或刪除其中一個。

    上傳新包,要點擊 'upload' 按鈕。接着出現一個對話框讓你從本地文件系統選擇 XPDL 文件。當你選擇了要上傳的包文件後,對話框將自動顯示引擎庫的相對路徑。你也可以自己定義引擎上的 XPDL 目錄結構和文件名。例如:test/conformance/test1.xpdl

    當文件上傳到引擎的庫後,就可被載入到引擎中,流程也就可以運行起來了,這些都會在下面描述到。

    當然,你也能從引擎的庫選擇想要刪除的文件,再點擊 'delete' 按鈕。

注意:如果你想上傳到庫的文件不是 'shark' 合法的,一些描述問題原因的信息會顯示出來,包將不會被上傳。

    包管理(Package Management

    包管理顯示了所有裝載到引擎的包(XPDLs)。包管理允許你從引擎中裝載和卸載包,而且也能更新已載入包和同步引擎包的緩存。

    載入包:要把包載入到引擎中,你應該點擊 'load' 按鈕,接着選擇某個包。你所載入的包都來自於引擎庫,除了當前你已經載入的包,並且 Id 和已經被裝載的包名一樣。當你從列表選擇了包,文件名和 Id 會顯示到文本筐內。接着,再點擊 'Load' 按鈕,包將被加載到引擎中(如果是合法且在加載過程中沒問題),你將能啓動基於包流程定義的流程實例。

    注意:如果包引用了一些外部包,這些外部包也會被載入引擎,當然他們也要是合法的。

    注意:如果你想加載到引擎的文件不是 'shark' 合法的,將會顯示問題描述的錯誤信息,接着包被卸載掉。

    卸載包:要從引擎卸載包,先選擇好目標,然後點擊 'unload' 按鈕。如果包流程定義中沒有已實例化的流程,則仍舊保留在 DB 中,並且這個包也沒有引用任何其他包,則將從引擎中卸載。一旦卸載了,你不能從流程定義中實例化流程。

    你也有可能卸載包的所有版本,但這需要 furfilled 包的每個版本。

    更新包:如果你想更新包,就先選中它,再點擊 'update' 按鈕。將列出庫中所有的包,顯示了和你想要更新名稱一樣的 Id(包)。接着再選擇其中一個點擊 'update' 按鈕。這個時候的流程還是基於原先包中定義運行,不過你可以建立基於新版本包的流程定義。

    如果你想更新的包文件不是 'shark' 合法的,將會出現錯誤信息。

注意:流程定義的可視化圖形界面將會在實例化和監控章節說明,如果一些包有多個版本,你只能看到最新的包流程定義,無論實際的流程管理器是否基於老的版本,所以視圖在這種情況下是無效的。同樣可以在包列表樹上點擊鼠標右鍵取得屬性。

    流程實例管理(Process Instantiation Management

    從這裏開始,你將看到已裝載包的流程定義(package-processdefinition 樹。如果你從樹中選擇了一個包,並點擊鼠標左鍵,將會出現包屬性對話框。如果你選擇了某些包流程定義,你就可以通過點擊鼠標右鍵得到屬性對話框,當然也可以做些其他事:

    在右邊,有些基本的流程屬性,以及基於流程定義的當前流程運行數目。

    通過點擊 'Instantiate' 按鈕,你將創建新的流程運行實例。

    通過點擊 'View' 按鈕,你能看到流程的圖形化視圖。

    通過點擊 'Description' 按鈕,你能看到流程定義的描述。

    你能把包的具體流程定義或整體流程定義設置爲有效或無效。

    你可進行指派的重新評估(如果你改變了參與者 -> 用戶的映射,並且想應用到已建好的指派中,這會很有用)。

    注意:當圖形化界面中出現了相同流程定義的多個版本,你只能看見最新的一個,無論實際流程管理器是否根據老定義運行,那樣的話視圖是無效的。同樣對包樹上的流程定義單擊鼠標右鍵讀取屬是有效的。

    流程監控(Process Monitor

    流程監控被分成四個主要部分。package-processdefinition-processinstances 樹允許你從包流程定義中選擇某個正在運行的實例。當選擇了流程實例,另一部分將會顯示相應的流程實例的圖形化數據。你會看到主要的實例屬性(名字、當前狀態),你能看到標記了當前正在運行,處於活動狀態的流程實例的圖形化對話框,你也能通過底部的按鈕對流程實例進行不同的操作。

    可進行的操作如下:

    啓動流程 如果流程處於 open.not_running.not_started 狀態則可用。

    暫停流程 通過激活 subflow 活動,所有激活的活動以及同步 sub-processes 的實例化將暫停。

    恢復流程 通過激活 subflow 活動,所有活動和同步的 sub-processes 將被恢復。注意:( if you try to resume a synchronous process started by some subflow activity of the suspended process)。你將不會直接做這件事,因爲當 'parent' 激活恢復後將自動恢復。

    終止流程 所有活動和同步 sub-processes 的實例化都是通過激活 subflow 活動來終止的。

    中斷流程 所有活動和同步 sub-processes 的實例化都是通過激活 subflow 來中斷的。

    查看流程歷史 從流程啓動開始記錄,按時間順序排列(當流程啓動,當流程狀態改變,當流程變量改變,當流程活動狀態改變,當流程活動變量改變,當活動指派給資源...)。

    查看流程描述

    查看和編輯流程變量,那樣你能按需管理流程(如果轉換條件依賴變量值)。

    進入活動管理對話框。對話框顯示了流程活動列表,當你選中一個,當前狀態會顯示在文本筐中。從這個對話框,你能對單個活動做類似操作:

    暫停活動

    恢復活動

    終止活動(當你終止一個活動,如果滿足轉換條件的話,流程會處理下一活動)

    中斷活動 流程變成 'stucked' 狀態

    手動啓動活動

    刪除所有已完成流程

    刪除選中的流程(或基於選中流程定義的已完成流程,或基於所有包流程定義的已完成流程)

    進行所有流程的活動終止期檢查

    進行所有流程和活動的限制檢查

    用戶管理(User Management

    分爲三個部分:

    帳戶(Accounts 通過定義新帳戶,刪除已存在帳戶或改變他們的屬性來達到管理 shark 服務器用戶目的。

    注意:如果 shark 被配置爲依賴 LDAP 實現的 UserGroup 管理器,將不能創建新帳戶以及修改或者刪除存在的帳戶,只能查看已存在的。

    日誌(Logged 顯示已記錄日誌的用戶

    映射(Mapping 讓你能爲真實的 shark 用戶映射包和包流程參與者。一旦定義了映射,並且當一項活動需要一個或多個實際用戶映射到參與者執行時,就需要在這裏查看流程,每個已映射用戶的 workitem 將被放在 worklist 中。

    應用映射(Application Mapping

   你能映射包以及包流程應用到由tool agent控制的實際應用。目前 Shark 發佈了六個  tool agent。要映射應用定義到 tool agent 應用,你應該去管理程序的應用映射部分,點擊 'add' 按鈕,將會彈出對話框,可以從左邊的框中選擇應用定義,tool agent 則在右邊的筐中。接着可以爲 tool agent 輸入一些映射參數。當應用定義映射到 tool agent 時,shark 將試圖連接到相應的 tool agent,讓它執行該應用,接着得到執行結果。以下是關於設置參數的摘要性描述:

    用戶名和密碼 對於 Shark 自帶的 tool agent 不是必須輸入的。而其他 tool agent 卻需要,因爲調用應用時需要登陸。

    應用名稱 應該由 tool agent 啓動的應用名稱(例如:JavaClassToolAgent 是類的全名,RuntimeApplicationToolAgent 是可執行文件名,應該是 tool agent 所在機器的路徑,JavaScriptToolAgent 代表 java 腳本文件的名字,或者是 java 腳本自身,依賴應用模型屬性),對於SOAPToolAgent來說它是WEB 服務的位置,MailToolAgent MailMessageHandler 的類,用來進行發送/接收郵件。

    應用模型 不同的 tool agent 使用該屬性是爲了達到不同目的。例如,RuntimeApplicationToolAgent 使用模型 0 表明直到系統程序結束才能結束運行(另外,它將啓動系統程序並返回完成狀態 -> 活動不等系統程序結束,而流程接着處理下一活動),JavaScriptToolAgent 使用模型 0 表明它要搜索 java 腳本文件(另外,程序名字將被認爲是 java 腳本)。

    更多關於 tool agent 映射可參考 Tool Agent 文檔

    緩存管理(Cache Management

    通過本部分你可以設置 shark 緩存大小。可以改變流程以及資源緩存的大小,也可以清除它們。

    Worklist 管理(Worklist Management

    這幾乎和 shark worklist 處理程序是相同的。通過這些,能處理已實例化流程的 workitem。你能處理自己的 workitem,也能看到其他的 workitem。同樣,也能把 workitem 從一個用戶指派給其他用戶。

    點擊 'complete' 按鈕 workitem 將執行,或在表單中雙擊它也可。如果 workitem 中有你打算更新的變量,當 'completing' 時你將會被問到是否更新,或在你輸入更新對話框之前完成了 workitem(只是在你接受它之後)。

    workitem 中被放入兩個或多個不同用戶的列表時,它將停留在那裏直到任何一個用戶受理它。一旦有人受理 workitem,該 workitem 就從其他用戶的 worklist 中去除,而如果該用戶又拒絕受理 workitem,則該 workitem 將退回到適當的用戶 worklist 中。

    注意:爲了在執行 workitem 時能更新或查看變量,活動定義必須有一些特殊的外部屬性被定義,範例如下:

    如果你想在執行活動時允許執行者更新 'x' 流程變量,在創建流程定義時,你應該爲那些活動定義以下外部屬性:

    <ExtendedAttribute Name="VariableToProcess_UPDATE",Value="x"/>

    如果你想在執行活動時只允許執行者看到 'y' 'z' 流程變量,在創建流程定義時,你應該爲那些活動定義以下兩個外部屬性:

   <ExtendedAttribute Name="VariableToProcess_VIEW",Value="y"/>

   <ExtendedAttribute Name="VariableToProcess_VIEW",Value="z"/>

   如果你想在執行活動時允許執行者更新 'x''y''z' 流程變量,同時觀察 'a''b''c' 變量,應該爲給定活動定義以下外部屬性:

   <ExtendedAttribute Name="VariableToProcess_UPDATE",Value="x"/>

   <ExtendedAttribute Name="VariableToProcess_UPDATE",Value="y"/>

   <ExtendedAttribute Name="VariableToProcess_UPDATE",Value="z"/>

   <ExtendedAttribute Name="VariableToProcess_VIEW",Value="a"/>

   <ExtendedAttribute Name="VariableToProcess_VIEW",Value="b"/>

   <ExtendedAttribute Name="VariableToProcess_VIEW",Value="c"/>

利用 Enhydra JaWE 工作流編輯器,你可以更簡單地進行以上工作。

 

(請注意!引用、轉貼本文應註明原譯者:Rosen Jiang 以及出處:http://blog.csdn.net/rosen

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章