WebSphere Business Modeler 的 10 大問題

CloudSpace發表於2009-04-01

引言

IBM WebSphere Business Modeler(以下稱為 Modeler)是用於建立流程模型的強大工具。您可以使用它來對業務流程進行文件記錄或模擬,以及執行分析以支援流程改進。可以將業務模型匯出到 WebSphere Process Server 和其他 IBM 執行時環境。

作為使用 Modeler 已有很長時間的人,我在電子郵件中收到了有關 Modeler 某些方面的問題。隨著時間推移,我注意到其中許多問題是重複的。在本文中,我將回答所收到的十個最常見問題。如果您是 Modeler 新手,本文將回答一些在您開始起步時可能遇到的問題。如果您擁有豐富的 Modeler 經驗,通過了解自己在不加思索的情況下知道多少答案,您可以對自己的知識進行檢驗。

第 10 個問題:如何使用多個輸入和輸出對流程進行模擬?

並非所有流程都從單個點開始。取決於業務邏輯,流程可能從不同的點開始。其他流程也許有多種可能觸發流程執行的渠道。要對類似如此的流程進行模擬,將需要簡單線性流程所不需要的兩個額外步驟。圖 1 顯示了一個示例流程,此流程有一個針對紙質請求的輸入,以及另一個針對 Web 請求的輸入。


圖 1. 具有多個輸入的流程
具有多個輸入的流程

在此流程中,如果到達紙質形式的請求,角色為“接收”的人員需要將表單中的資料輸入系統。如果請求從 Web 到達,則會有一個自動程式執行同樣的工作。然後請求繼續到下一個步驟,該步驟由“處理”角色執行,然後流程結束。只有在工作日的白班才有人力資源可用。

如果嘗試對每個輸入總共使用 10 個令牌來模擬此流程,模擬似乎可以工作。但是,統計資料僅顯示了該流程的 10 個例項的結果,而不是您預期的 20 個例項。您還將看到一條錯誤訊息,它表明模擬已結束,但是並非所有任務都已成功完成。怎麼回事呢?

流程具有輸入邏輯,在中級模式或高階模式下可以看到這一點。輸入邏輯用於確定流程如何開始。預設情況下,當流程有多個輸入時,將對輸入執行 AND 操作。必須完成以下步驟將此操作更改為 OR,才能正確模擬流程:

  1. 切換到中級模式或高階模式。
  2. Attributes 選項卡上,單擊 Input Logic 選項卡,如圖 2 所示。當前條件為 Input AND Input:2

    圖 2. 設定輸入邏輯
    設定輸入邏輯

  3. 為了將 AND 更改為 OR,每個輸入需要在該列表中具有自己的條目。單擊 Add。向輸入邏輯新增第二個名為 Input Criterion:2 的行。
  4. 取消選中 Input Criterion 行中的 Input:2,然後選中 Input Criterion:2 行中的 Input:2。該輸入邏輯現在應該類似如圖 3 所示。這表示在該模型中,流程可以從 Input Criterion 或 Input Criterion:2 開始。

    圖 3. 更新後的輸入邏輯
    更新後的輸入邏輯

  5. 嚴格地講,流程不需要開始節點即可進行模擬。如果您的確選擇使用開始節點,則流程中的每個輸入都需要一個對應的開始節點。

    請確保處於中級模式或高階模式,然後單擊某個開始節點。

  6. Attributes 選項卡上,選擇對應於該開始節點的輸入,如圖 4 所示。
  7. 對流程中的所有開始節點重複此步驟。

    圖 4. 開始節點設定
    開始節點設定

如果流程具有多個輸出,但是每次僅使用其中一個輸出,您將面對類似的問題。預設行為是對兩個輸出條件執行 AND 操作。為了使模擬能夠正常工作,您需要執行以下操作步驟:

  1. Output Logic 選項卡上,確保在每一行上選擇一個輸出條件,以便執行 OR 操作。
  2. 對於每個停止節點,將該停止節點與相應的輸出標準相關聯。與開始節點不同,停止節點是必需的。

現在您可以對具有多個輸入和輸出的流程進行模擬了。

第 9 個問題:為何在建模時獲得額外的輸入和輸出?

您是否建立了這樣的模型,您最終在諸如決策和合並等閘道器構造上獲得額外的輸入和輸出?圖 5 顯示了在兩個分支上都具有額外輸入並具有兩個額外輸出的示例。對於具有許多路徑的較大模型,擁有許多額外的輸入和輸出不僅佔據空間,而且會在模擬和匯出模型時導致問題。


圖 5. 在合併元素上具有額外輸入和輸出的模型
具有額外輸入和輸出的模型

結果證明,罪魁禍首經常是業務項與基本模式的組合。為了儘量簡化您的工作,基本模式有時自動執行在其他模式下不會執行的操作。有時,這對您非常有用,但在此情況下,基本模式的行為可能不是您所希望的。下面讓我們通過一個示例瞭解此模式的行為:

  1. 首先從三個將合併在一起的任務開始。請確保處於基本模式。將第一個任務連線到合併,然後將一個業務項新增到新的連線,如圖 6 所示。

    圖 6. 基本模式下的建模
    基本模式下的建模

  2. 將 Task:2 連線到合併。
  3. 該合併的中間部分現在有一個額外的輸入,如圖 7 所示。

    圖 7. 已新增的連線
    圖 7. 已新增的連線

為什麼會發生這種情況呢?基本模式在此情況下做出了不利於我們的假設。

  • 當您將業務項 RequestData 新增到從 Task 到合併的連結時,合併上的每個輸入都設定為需要一個帶 RequestData 的輸入。
  • 當您將 Task:2 新增到合併時,連結上沒有資料。
  • 基本模式判斷您一定會在合併上需要一個輸入。

如果將 RequestData 業務項新增到您剛才新增的新連結,則會看到一個彈出選單,要求您選擇源輸出和目標輸入,如圖 8 所示。您現在可以選擇要在合併中使用哪一個輸入:沒有關聯業務項的當前輸出或帶有 RequestData 的現有輸入。您通常希望的是第二個選擇。但是,預設值是使用沒有關聯業務項的輸入。


圖 8. 選擇源和目標
選擇源和目標

使用中級模式

當您使用中級或更高階模式時,Modeler 的行為稍微有所不同。與假設您要做什麼不同,這些模式為您提供了直接的控制。下面讓我們看看這些模式是如何工作的:

  1. 撤消先前的步驟,直到流程重新類似如圖 6 所示。
  2. 切換到中級模式或高階模式。關係圖將更改為顯示輸入和輸出。
  3. 建立從 Task:2 到合併的第二個輸入中間的連線,如圖 9 中的紅色圓圈所示。這樣將會建立該連線、關聯業務項 RequestData,並且沒有向合併新增額外的輸入。

    圖 9. 中級模式下的建模
    中級模式下的建模

  4. 建立從 Task:3 到底部輸入的連線。這次連線到輸入的底部,如圖 9 中的藍色橢圓所示。這樣將建立沒有關聯業務項的連線,並建立一個額外的輸入。
  5. 圖 10 顯示了新增連線後的流程。

    圖 10.新增連線後的流程
    新增連線後的流程

可以看到,使用中級模式或更高階模式時,您可以控制行為,而不是讓 Modeler 假設您希望做什麼。僅當您需要的時候才會建立額外的輸入。

第 8 個問題:Modeler XML 匯入和匯出是如何工作的?

第一次設定建模專案時,一個常見要求是使用可能已存在於組織中的資訊填充目錄,而不是必須手動輸入所有資訊。輸入選單上的選項之一是 WebSphere Business Modeler XML。那麼任何 XML 是如何工作的呢?相關侷限性是什麼?如何開始起步呢?

結果表明,Modeler 包括了兩個示例 XML 檔案以幫助您開始起步。您可以在 [Modeler install directory]\samples\xml 找到這些檔案。您將看到兩個檔案:types.xsd 和 wbimodeler.xsd。XSD 檔案為 XML 模式定義 (XML Schema Definition)。這些檔案指定應該如何對檔案進行格式設定。但是,如果您不是 XML 專家,仔細檢視 XSD 可能有點令人畏懼。

與研究模式不同,瞭解 Modeler XML 的更容易方法是從簡單的匯出開始。假設您希望匯入有關組織中角色的資訊。可以通過定義角色開始:

  1. 建立名為 Data Processing 的角色。新增任何可能需要的屬性,例如成本和可用性。
  2. 儲存新角色。
  3. 在專案樹中,右鍵單擊該角色並選擇 Export
  4. 單擊 Next
  5. 選擇您希望將檔案匯出到的目錄。確認僅選擇了 Data Processing 角色,然後單擊 Finish
  6. 這將建立一個與建模專案具有相同名稱的檔案,如清單 1 所示。


清單 1. 匯出為 XML 的角色


  
    
      
    
    
    
  
  
    
      
        
          18.0
        
      
    
  

            

此清單表明了 XML 所需具備的大致情況。可以使用此 XML 作為您希望新增到模型的其他角色的模板。要測試此功能,請執行以下步驟:

  1. 使用文字編輯器開啟該 XML 檔案。
  2. 將角色名稱從 Data Processing 更改為 Quality Control
  3. costValue18.0 更改為 22.5
  4. 儲存更改。
  5. 在 Modeler 中,右鍵單擊您的建模專案,並選擇 Import
  6. 選擇 WebSphere Business Modeler XML,然後單擊 Next
  7. 瀏覽以查詢您的源目錄,然後從列表中選擇您的檔案。確保選擇您的專案作為目標,然後單擊 Finish
  8. Resources 資料夾中,您應該看到角色 Quality Control,其成本定義為每小時 22.5 美元。

Modeler V6.1.2 還可以從電子表格進行匯入。您也應該考慮此選項,以便將現有資料引入建模專案。

第 7 個問題:如何在展開子流程和迴圈的情況下列印模型?

業務流程通常可以分解為子流程。Modeler 呼叫這些區域性流程,並允許您展開它們以定義詳細資訊。區域性流程可能包含另一個區域性流程,以此類推,直到到達任何數量的級別。在 Modeler 中還可以展開迴圈。圖 11 顯示了分解為三個區域性流程的流程示例。


圖 11. 帶區域性流程的流程
帶區域性流程的流程

通常,您希望建立流程的列印輸出。理想的情況是使用 WebSphere Business Modeler Publishing Server 消除紙質輸出,但有些時候您可能仍然需要硬拷貝。圖 11 的列印輸出僅顯示了高階檢視。您可以展開到每個區域性流程,並將其也列印出來,但是這樣將會失去高階檢視。如何建立同時顯示高階檢視和每個區域性流程中的詳細資訊的列印輸出呢?

建立同時帶有高階和詳細檢視的列印輸出的訣竅是建立模擬快照。為此,請完成以下操作步驟:

  1. 在專案樹中右鍵單擊您的流程,並選擇 Simulate。模擬隨即開啟。
  2. 在模擬圖的空白中單擊滑鼠右鍵,選擇 Expand All。所有級別的流程將展開以向您顯示其中的詳細資訊,如圖 12 所示。
  3. 在模擬圖的空白中單擊滑鼠右鍵並選擇 Print

    圖 12. 展開的流程部分螢幕
    展開的流程部分螢幕

此檢視在模擬檢視中可用,以便您在開啟動畫時能看到流程中的所有任務。結果表明,當您希望列印輸出展開了所有容器活動的流程時,該檢視也是非常有用的。

注意:Modeler V6.2 可以就地展開迴圈和區域性流程,從而消除了使用此訣竅的需要。

第 6 個問題:如何一次新增多個任務?

在建立流程的初始模型時,使用者通常單擊皮膚中的任務圖示,然後在流程圖單擊以新增任務。然後他們再次單擊任務圖示,並再次在流程圖中單擊。然後是一次又一次的重複。問題是:如何能夠將多個任務(或其他構造)新增到模型,而不必每次使用兩次單擊呢?

答案非常簡單:使用 Shift 鍵。

  1. 單擊皮膚上的任務圖示。將滑鼠指標移到流程圖之上。指標更改為新增圖示。
  2. 按下 Shift 鍵。
  3. 單擊以將任務放到流程圖中。這樣就新增了一個任務。
  4. 移動滑鼠並單擊流程圖中的其他某個地方。這樣就新增了另一個任務。

只要您按住 Shift 鍵,就可以不斷將更多工新增到模型中。當您完成時,釋放 Shift 鍵,滑鼠將返回到正常指標狀態。

第 5 個問題:如何匯出到 Rational Software Architect?

建立業務模型以後,您可能發現了某個需要建立的候選可重用服務。Rational® Software Architect(以下稱為 Software Architect)是 IBM® 用於在設計階段中進行 UML2 建模的工具。它基於 UML2 模型生成程式碼框架,然後可在 Rational Application Developer 中對該框架進行編碼和測試。業務模型中的元素轉換為 UML 模型的元素。例如,業務模型變為業務用例。角色變為業務參與者或者擁有某個介面的業務工作者。業務項變為業務實體,等等。問題是:Export 選單上沒有針對 Rational Software Architect 的選項,那麼如何匯出到 Rational Software Architect 呢?

第 5 個問題是個偽問題——您不需要匯出到 Software Architect!相反,Software Architect 直接讀取 Modeler 工作區。一旦將 Software Architect 指向 Modeler 工作區,就可以將業務模型中的元素拖放到 UML2 模型中。不需要匯出。

注意:如果將 Software Architect 安裝在不同的計算機上,您可以使用諸如 Rational Clear Case 之類的原始碼控制儲存庫儲存 Modeler 中的專案,然後從 Rational Software Architect 訪問該儲存庫。

第 4 個問題:如何附加檔案以進行文件記錄?

與流程圖相比,業務模型的優點之一在於模型包含後設資料以及視覺化的表示形式。有時,將其他文件與模型包括在一起會非常有用。問題是:如何能夠將現有檔案附加到模型呢?

您可以使用流程的 Specification 選項卡新增檔案附件,如圖 13 所示。可以通過單擊 Add 新增一個或多個附件。然後該檔案將與模型包括在一起,甚至可以在將模型釋出到 WebSphere Business Modeler Publishing Server 以後檢視該檔案。附件是在流程級別新增的;您不能將檔案附加到諸如角色和業務項等其他構造。


圖 13. Specification 選項卡
Specification 選項卡 

第 3 個問題:如何匯入 WSDL 以便在匯出到 WebSphere Integration Developer 時能夠工作?

可以使用 Import 選單將 Web 服務描述語言(Web Services Definition Language,WSDL)檔案匯入 Modeler。如果您使用 WebSphere Service Registry and Repository,則還可以通過執行業務服務搜尋匯入服務。在任一種情況下,都會使用匯入的服務填充業務服務目錄,並且相關的 XSD 進入業務服務物件目錄中。如果希望使用業務服務,您可以在多個級別將業務服務拖放到業務模型中。為了使匯入的業務服務在匯出到 Integration Developer 以後能夠正常工作,匯入業務服務的正確方法是什麼呢?

答案在於,您需要拖放的內容是業務服務的操作,而不是 WSDL 檔案本身。為此,請完成以下操作步驟:

  1. 右鍵單擊您的 Modeler 專案並選擇 Import
  2. 選擇 Business services and service objects (.wsdl, .xsd),然後單擊 Next
  3. 單擊 Browse,並導航到 .wsdl 檔案所在的目錄。選擇該目錄,您將立即看到其中包含的所有 .wsdl 和 .xsd 檔案的列表。單擊您希望匯入的檔案所對應的核取方塊,然後單擊 Finish
  4. 檔案將匯入您的建模專案。

圖 14 顯示了匯入的服務的一個示例。在此例中,ABCBankServices 資料夾表示 WSDL 檔案本身。ABCBank 資料夾表示 WSDL 埠,而 checkCompanyCredit 和 checkCompanyHealth 則是操作。CompanyInfo 是該 WSDL 檔案引用的外部 XSD。

圖 14. 匯入的業務服務


圖 14. 匯入的業務服務
圖 14. 匯入的業務服務

對於此示例,您將把其中一個操作 checkCompanyCredit 或 checkCompanyHealth 拖放到流程中,以表示所呼叫的業務服務。將流程匯出到 Integration Developer 時,WSDL 和 XSD 將包括在匯出中。業務服務將變成 BPEL 呼叫。在 SCA 關係圖中,呼叫的引用連線到帶有 Web 服務繫結的匯入。

注意:並非所有 WSDL 均受支援,但是此過程適用於許多 WSDL。


第 2 個問題:如何讓工作在某個任務前面排隊等待?

在開啟動畫的情況下執行模擬時,通常的行為如下:

  • 某個令牌到達某個任務。
  • 活動任務例項的數量(模擬處於活動狀態時任務上面的框中的數字)增加。
  • 當任務完成時,隨著令牌流出並繼續到達下一個步驟,活動任務例項數量減少。

麻煩在於,如果您的資源數量有限,則有些活動例項正在進行處理,而有些則正在等待資源被釋放。問題是:如何對模型進行設定,以便能夠看到排入佇列中正在等待資源的工作?

圖 15 顯示了一個具有兩個步驟的簡單流程的示例。兩個步驟使用不同的角色,每個角色在資源池中設定為 2。Step 1 上面的數字表明存在三個活動的例項。但是,其中一個例項正在等待某個資源。沒有辦法看到哪些例項是活動的,以及哪些例項正在等待。


圖 15. 具有無限同時任務的模擬
具有無限同時任務的模擬

答案是使用最大同時任務數量設定。通過控制此引數,您可以告訴模擬引擎一次只能啟用特定數量的任務。任何傳入令牌將必須在前面排隊等待,並等待各自的機會。要設定此引數,請執行以下步驟:

  1. 在模擬快照中,單擊 Step 1
  2. Attributes 檢視的 General 選項卡上,將最大同時任務數量設定為 2。預設設定 0 表示無限數量。
  3. Step 2 重複此操作。
  4. 儲存更改,然後從模擬控制皮膚啟動模擬。

    圖 16. 最大同時任務數量設定為 2 的模擬
    最大同時任務數量設定為 2 的模擬

圖 16 顯示了將兩個任務的最大同時任務數量均設定為 2 的相同模擬。Step 1 的兩個例項是活動的,其他傳入令牌必須在該任務前面的佇列中等待。隨著佇列的增大,將以圖形和數字的方式顯示佇列深度。如果佇列中的令牌超過 20 個,顏色將變為紅色以指示重大的任務積壓。

通過設定最大同時任務數量,您能夠視覺化地看到您的任務所積壓的工作。

第一個最常見 Modeler 問題:如何啟用多個模擬執行?

圖 17 顯示了一個簡單流程的示例。建立模型以後,如果您決定模擬該流程,則會遇到一個問題:如何執行多個模擬呢?如果從控制皮膚啟動模擬,則只有一個令牌將流經該流程。這不足以瞭解工作積壓位置、流程案例和其他重要資訊以便分析。問題是:如何啟用多個模擬執行呢?


圖 17. 簡單流程
簡單流程

答案在於,為了執行多個模擬,需要有某個內容流入流程的第一個任務。圖 15 顯示了一個類似的流程,該流程有一個流向 Step 1 的輸入。要建立此輸入,請執行以下操作:

  1. 在流程編輯器中,將滑鼠指標移到流程的最左側邊緣,直到指標更改為指示您正在新增連線的圖示。單擊以開始該連線,然後將指標移到 Step 1 並再次單擊。
  2. 這樣將建立從流程邊緣到 Step 1 的連線。預設情況下,將向連線新增 Text 型別的業務項以指示資料流。
  3. 或者,可以將某個業務項拖放到新連線上,以將 Text 替換為更有意義的內容。
  4. 在流程樹中右鍵單擊該流程,並選擇 Simulate。在 Add Elements 視窗中單擊 OK 以繼續。
  5. 在模擬 Attributes 檢視中,選擇 Inputs 選項卡。單擊 Input 以選擇它,如圖 18 所示。

    圖 18. 模擬輸入屬性
    圖 18. 模擬輸入屬性

  6. 單擊 Edit 以設定令牌總數。每個令牌表示該流程的一個輸入。如果到達的流程輸入大小不為 1,則單擊 Edit 以設定每個包的令牌數量。令牌包表示一批同時到達的工作。或者,如果流程的每個輸入具有關聯的成本,可以單擊 Edit 以選擇每個令牌的一次性成本。
  7. 令牌可由時間觸發器建立,這是預設設定。您可以設定令牌之間的時間間隔,或者使用預設的一分鐘間隔。
  8. 如果令牌之間的時間不同,您可以使用隨機時間觸發器,並使用某個分佈來改變時間。
  9. 如果令牌之間的時間間隔在一天的不同時間是不同的,您可以使用時間表觸發器。可以將一天劃分為多個區間,每個區間具有不同的令牌建立頻率。
  10. 單擊 Save 以儲存更新。

當您從控制皮膚啟動模擬時,現在將會執行流程的多個例項。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14789789/viewspace-582732/,如需轉載,請註明出處,否則將追究法律責任。

相關文章