使用 WebSphere BPM 套件實現多模組監測

CloudSpace發表於2010-06-10

轉自http://www.ibm.com/developerworks/cn/websphere/library/techarticles/1003_lakshmanan/1003_lakshmanan.html

簡介

在本文中,您將瞭解如何利用 IBM® WebSphere Business Modeler V6.2(此後稱作 Modeler)的 可下載外掛 提供的新功能來實現多模組監測。我們的外掛提供了:

  • Modeler 中的監測集編輯器可用於定義監測集。監測集 包含一個或多個對應於各業務專案屬性的屬性,可允許使用者識別共同構成一個端到端流程的不同業務流程的相應例項。
  • 您可以使用新的匯出選項將專案匯出,以便對一個或多個業務流程實現端到端監測。

您將瞭解如何使用 Modeler 的可下載外掛:

  • 定義監測集。
  • 使用 Modeler 匯出嚮導中的外掛提供的 WebSphere Business Modeler End-to-End Process Monitoring 匯出選項自動完成多模組監測。
  • 將程式碼自動生成的監測模型匯入到 WebSphere Integration Developer (Integration Developer),使用 Integration Developer 中的 Business Monitor(此後稱作 Monitor)監測模組編輯器 (MME) 來編輯它們,生成 Monitor J2EE 專案,將模型釋出到 WebSphere Process Server (Process Server) 並通過在 Business Space 定義小元件來檢視被監測的活動。

背景

在 Modeler 中建立流程和業務度量時,通常會實現兩種型別的監測模型:

高階監測模型 (HMM):業務級監測模型,可從 Modeler 中匯出並可在隨後匯入到模型編輯器中。

低階監測模型 (LMM):通過 Process Server 生成的 IT 級監測模型,可實現 Modeler 中設計的業務流程。

文章 Put new capabilities of business activity monitoring (BAM) to work, Part 6: Integrating high-level and low-level monitor models(developerWorks 2008,Miles 和 Ewan)向您介紹瞭如何整合一對監測模型:高階模型和低階監測模型。這些模型通過事件通訊來協同作業。本文將向您介紹如何使用監測模型編輯器整合這兩種監測模型:在 Modeler 中建立的高階模型以及實現 Modeler 所描述的務流程的 Integration Developer 應用程式生成的低階模型。通過這一過程,您將瞭解如何:

  • 建立 XML 事件定義。
  • 根據低階模型中的事件定義傳送出站事件。
  • 在高階模型中接收入站事件。
  • 使用事件中的資訊更新高階模型中的度量和關鍵績效指標 (KPI)。

在執行時:

  1. 當特定任務 T 執行時,低階模型接收由應用程式發出的事件。
  2. 低階模型每次在任務 T 結束時都會傳送一個事件。
  3. 高階模型接收低階模型傳送的事件。
  4. 高階模型中的度量和關鍵績效指標從事件資訊中接收各自的值。

本文提供的兩個 可下載外掛 可自動化上述流程。使用 Modeler 中的監測集編輯器,您可以建立一個或多個監測集,並將它們繫結到一個或多個希望監測的業務專案屬性。然後,您可以選擇所需監測集進行監測,並選擇要監測的流程元件,然後使用 Modeler 匯出嚮導 WebSphere Business Modeler End-to-End Process Monitoring 中的新選項將它們匯出。

根據監測集選擇,外掛會自動生成度量和 XML 事件定義,而這些定義隨後又將插入到 Modeler WebSphere Integration Developer 匯出選項生成的監測模型中。度量將使用低階監測模型中的監測集(恰好是業務專案屬性)中的欄位初始化,並且將基於高階監測模型作為入站事件接收到的出站事件中的低階監測模型。高階監測模型使用從相同端到端業務流程的不同例項接收到的度量值來組配端到端應用程式。在本文中,我們將剖析這種監測端到端流程的過程,將多個單獨流程拆解為詳細步驟,並通過一個極其簡單的貸款應用程式業務流程(在 Modeler 中建模)來詳述各個步驟。 示例專案 針對端到端監測場景提供。

安裝外掛

要安裝外掛,請執行以下操作:

  • 將所提供的 兩個 JAR 檔案 複製到 Modeler V6.2 安裝的 \plugins 目錄。如果已經將 Modeler 安裝到預設位置,則這個目錄應該為 C:\Program Files\IBM\WBModeler62\plugins。
  • 重新啟動 Modeler。

場景概述

為了實現監測,您需要在 Modeler 中建立一個模型。該模型應該在一個端到端流程中包含了多個流程,並且業務專案將由這些流程使用。各流程還應指定要監測的值。

為了幫助您入門,我們提供了一個現成可用的貸款流程,您可以 點此處下載它。解壓檔案,並將 .mar 檔案匯入到 Modeler 中,方法是選擇 File => Import => WebSphere Business Modeler Import => WebSphere Business Modeler project

匯入該專案之後,開啟 LoanEndToEndProcess。您應該能看到如圖 1 所示的流程。


圖 1. 端到端貸款應用程式流程
端到端貸款應用程式流程

端到端流程中的兩個任務或流程將被監測。第三個 Review Loan And Update 流程是一個手動流程,因此未被監測。我們來看看這兩個被監測的流程,即 Loan_InitiationOne 和 Loan_CompletionOne,如圖 2 和圖 3 所示。


圖 2. Loan_InitiationOne 流程
Loan_InitiationOne 流程

圖 3. Loan_CompletionOne 流程
Loan_CompletionOne 流程

注意,各流程都使用一個業務專案(在本例中為 LoanApplicationType 和 LoanType)在流程之間傳遞資料。我們將使用這些業務專案來建立監測集。

這時,您可能希望檢視需要監測的一個或多個流程的業務度量。為此,單擊該流程圖的任意位置,您將在 Business Measures 檢視中看到所顯示的資料。圖 4 顯示了 Loan_InitiationOne 流程的業務度量。


圖 4. Loan_InitiationOne 的業務度量
Loan_InitiationOne 的業務度量

您可以檢查 Loan_InitiationOne 流程中的這些活動,以便於監測它們。Modeler 的 Export to WebSphere Integration Developer 功能將為 Loan_InitiationOne 流程監測模型中監測的各活動建立一個監測上下文。外掛從低階監測模型的上下文中提取這些業務度量的值,以便實現端到端監測。我們將在 建立監測集 中詳細描述這一方面的資訊。對於 LoanCompletionOne 流程,業務度量應如圖 5 所示。


圖 5. Loan_CompletionOne 的業務度量
Loan_CompletionOne 的業務度量

注意,甚至 LoanEndToEndProcess 端到端流程也有業務度量。您不需要檢查端到端流程的業務度量便可實現端到端監測。端到端流程中的各流程的監測模型可處理所有必要的監測工作。

通常,對於使用者希望匯入到 Integration Developer 中的 Modeler 專案中的各流程(除了端到端流程)中的每一個獨立的活動,都必須選中 Business Measures 選項卡下的 Monitored Values 選項卡中的 Processing Time 核取方塊。除了 Processing Time 之外,您還可以選擇其他要監測的值。您需要這樣做以確保匯出生成的最終監測模型包含相應活動的監測上下文。監測模型中的監測上下文將接收低階 BPEL 事件,並確保監測模型能接收到與這些活動相關的資料值(比如業務專案屬性值)。

現在,我們來看所使用的實際業務專案,即 LoanApplicationType(圖 6)和 LoanType(圖 7)。


圖 6. LoanApplicationType 業務專案
LoanApplicationType 業務專案

各業務專案都有一些屬性,其中任何屬性都可用於建立監測集。在我們建立的模型中,LoanApplicationType 的所有屬性的型別都是 Text,但是您可以使用任何原始型別,比如 IntegerDate

舉例來說,在 LoanType 中,我們包括了一個 Boolean 和一個 Date 屬性,如圖 7 所示。


圖 7. LoanType 業務專案
LoanType 業務專案

啟用端到端監測

在本節中,您將瞭解如何建立一個監測集,利用 Modeler 中的已有選項建立基本監測模型,以及使用外掛新增的 WebSphere Business Modeler End-to-End Monitoring 匯出選項來整合基本監測模型,以便您能夠監測端到端流程。在 端到端監測特性的限制 中,我們將描述這種新匯出選項的限制。

建立監測集

我們為您提供了模型和監測集,但如果您在開發自己的模型,則需要自己建立監測集。在 Modeler V7.0 中,我們計劃在一個特殊的位置存放監測集,但就 Modeler V6.2 而言,您需要採用不同的方式來訪問監測集編輯器。我們提供的程式碼可以允許您建立一個 “偽” 監測集,它具備監測集的完整功能,但必須通過普通業務專案編輯器來建立它。

如前所述,在本文中,您不需要建立監測集,因為監測集 MonitorSet_MS 已包含在專案中。但是,如果您需要建立監測集,則需要建立一個新的業務專案,方法是選擇 Business items => New => Business Item,如圖 8 所示。


圖 8. 建立監測集
建立監測集

然後,為監測集指定一個名稱,它必須以 _MSMonitoring Set 結尾,然後儲存它並關閉專案編輯器。例如,監測集的名稱可以是 MyMonitorSetForLoans_MS。

您可以通過以下操作來編輯監測集:

  1. 在專案樹中,右鍵單擊監測集(在本例中為 MonitorSet_MS),然後選擇 Open Monitor Set Editor,如圖 9 所示。

    圖 9. 開啟監測集編輯器
    開啟監測集編輯器

    注意:

    1. 在 Modeler V7 中,我們希望允許您雙擊專案樹中的監測集,並提供普通 Modeler GUI 來建立這類新物件。我們還希望刪除任何特殊的命名限制。
    2. 我們不建議使用業務專案編輯器開啟和修改 “偽” 監測集。如果執意如此,我們無法保證其結果。

    監測集編輯器將開啟,如圖 10 所示。



    圖 10. 監測集編輯器
    監測集編輯器

    如果開啟貸款場景專案提供的監測集例項,則會看到它具有如圖 10 所示的繫結關聯。在任何情況下,您都可以新增和刪除鍵(編輯器左側),以及建立或更改任何鍵的繫結關係(編輯器右側)。

    AddRemove 按鈕功能與您熟悉的業務專案編輯器非常類似,只是在編輯 Type 列時,您只能看到原始型別,如圖 11 所示。它是監測集中的鍵的唯一有效型別。(注意:鍵的順序沒有意義。)



    圖 11. 為監測集新增鍵
    新增鍵

    為確保監測集使用一致的繫結關係,需要確保以下兩點:(1)任何繫結中出現的任何業務專案都必須出現在所有繫結中;以及(2)任何業務專案/屬性對只可能繫結到一個鍵。因此,在刪除繫結時,或者在第一次新增繫結時,監測集會暫時處於不一致的狀態,這將由狀態條中的紅色訊息指示。

  2. 要建立新繫結,從編輯器的主區域選擇一個鍵,單擊編輯器詳細區域中的 Bind,如圖 12 所示。

    圖 12. 將屬性繫結到監測集中的鍵
    將屬性繫結到鍵

    這將開啟一個嚮導,可幫助您選擇要繫結到當前所選鍵的業務專案及其屬性。

  3. 在第一個頁面中,如圖 13 所示,選擇業務專案。確保它將在需要監測的流程中使用。

    圖 13. 選擇要繫結到監測集的鍵的業務專案
    選擇要繫結的業務專案

    注意,如果業務專案沒有正確型別的屬性(換句話說,與剛才建立的監測集鍵相匹配的屬性型別),則不會列出它。另外,如果某個業務專案有正確型別的屬性,但該屬性已經在監測集中完成了繫結,則不會列出業務專案。

  4. 單擊 Next,然後選擇要在繫結中使用的業務專案屬性,如圖 14 所示。

    圖 14. 將業務專案的屬性繫結到監測集的鍵
    將屬性繫結到鍵

  5. 單擊 Finish,您將在監測集編輯器中看到新繫結。
  6. 儲存監測集。

匯出監測模型

現在,您可以開始匯出監測模型了。這需要兩個步驟,涉及匯出到 Integration Developer 中,然後將 fexport 整合的低階監測模型 (LMMs) 和高階監測模型 (HMM) 匯出到 Integration developer。

  1. 首先,將專案匯出到 Integration Developer,請右鍵單擊專案樹並選擇 File => Export => WebSphere Business Modeler Export => WebSphere Integration Developer
  2. 在第一個頁面中,指定希望存放匯出檔案的資料夾。我們建議您建立一個新資料夾。如果在 Target directory 欄位中指定了一個新目錄,則嚮導會詢問您是否希望建立它。確保選中了 Export entire project and related projects,如圖 15 所示,然後單擊 Next

    圖 15. 選擇匯出專案的目標目錄
    選擇匯出專案的目標目錄

  3. 在下一個頁面中,接受所有預設結果,並單擊 Next
  4. 在下一個頁面中,選中 Export business measures as a monitor model or models,並確保選中了 Export to a single monitor model…,然後單擊 Next,如圖 16 所示。

    圖 16. 選擇將業務度量匯出為監測模型或模型
    選擇匯出業務度量

  5. 驗證匯出正確無誤,然後單擊 Finish。匯出完成後,您應該能看到兩個警告,如圖 17 所示。

    圖 17. 匯出到 Integration Developer 之後的警告
    匯出後的警告

    匯出專案的 Integration Developer 目錄現在應該包含以下兩個壓縮檔案(檔案生成日期和時間將有所不同):

    • wfm1_62c_WeFinanceLoanModelProject_2010-01-06T11.42.53.zip
    • wfm1_62c_WeFinanceLoanModelProject_Monitor_2010-01-06T11.42.52.zip

    包含 _Monitor_ 子字串的壓縮資料夾應該包含監測模型,它使用字尾 .mm,分別針對選擇匯出的專案中的各個流程。除了眾多檔案,它應該包含以下監測模型:

    • Loan_InitiationOne.mm
    • Loan_CompletionOne.mm
    • Loan_UpdateOne.mm
    • LoanEndToEndProcess.mm
  6. 選擇 File => Export => WebSphere Business Modeler Export => WebSphere Business Modeler End-to-End Process Monitoring。(注意:這是外掛提供的一個新選項。)
  7. 選擇步驟 2 中專案匯出的目錄,然後選擇要監測的端到端流程(本例中為 LoanEndToEndProcess),如圖 18 所示.然後,單擊 Next

    圖 18. 選擇要匯出的端到端流程
    選擇要匯出的端到端流程

    注意:如果此目錄包含超過兩個壓縮檔案,或者超過一個包含子字串 _Monitor_ 的 Zip 檔案,則匯出將以失敗告終。
  8. 在下一個頁面中,選擇將要使用的監測集(在本例中為 MonitorSet_MS),如圖 19 所示,然後單擊 Finish。

    圖 19. 選擇要匯出的監測集
     選擇要匯出的監測集


端到端流程監測功能的工作原理

完成上一節中的步驟之後,外掛提供的端到端監測特性會將包含 _Monitor_ 子字串的壓縮資料夾解壓到指定的目標目錄。這個壓縮資料夾應該包含所執行的 Integration Developer 匯出中的監測模型。

對於所選監測集中的各個 k 鍵,程式碼將確定將哪些業務專案屬性繫結到它。對於這些屬性,程式碼將確定哪些輸入和輸出流程,並建立一個獨立流程列表,以確保排除端到端流程。對於各流程,程式碼將定位並開啟相應的監測模型檔案 (suffix .mm) 並插入一個度量和一個出站事件,作為流程輸入或輸出的業務專案屬性的有效載荷,並確保哪些需要繫結到所選監測集的 k 鍵。

此外,對於各出站事件,程式碼將在端到端流程之後指定的高階監測模型中建立一個入站事件,並定義一個關聯度量,用於將從端到端流程中的不同流程的低階監測模型接收到的入站事件的有效載荷關聯在一起。通過比較從不同監測模型(監測端到端流程的部分)接收到的這些度量的值,高階監測模型將能夠識別相同端到端流程的相應例項。程式碼還將為入站/出站事件建立一個 XML 事件定義,並將它儲存到 ModelOutboundEvent.XSD 檔案中。

舉例來說,在本文提供的示例貸款專案中,監測集 MonitorSet_MS 包含 LoanID 鍵,該鍵對映到 LoanApplicationType 業務專案的 LoanId 屬性,同時還對映到 LoanType 業務專案的 LoanID 屬性。 LoanApplicationType 將由 Loan_InitiationOne 流程引用,而 LoanType 將由 Loan_CompletionOne 流程引用。因此,WebSphere Business Modeler 端到端流程監測匯出選項將插入一個出站事件和度量到 Loan_InitiationOne 流程的監測模型。

清單 1 顯示了來自 Loan_InitiationOne_Mon.mm 的出站事件的 XML。


清單 1. Loan_InitiationOne 流程的監測模型中的出站事件
				

    
    
        
        
            
            
            
            
            
        
    


在清單 2 中,度量 LoanId 將通過 expression 欄位進行初始化,該欄位指示可以找到 LoanId 值的監測上下文中的位置。出站事件(清單 1 中的)將這個值傳送給高階監測模型。如清單 2 所示,ReceiveLoanApplication 是 Loan_InitiationOne 流程中的一個活動。


清單 2. 插入的度量,帶有效負荷,在 Loan_InitiationOne 流程的監測模型中
				

   
      
         
      
   


程式碼還將出站事件和度量插入到 LoanCompletionOne 流程的監測模型中(在本例中為 Loan_CompletionOne_Mon.mm)。出站事件到達高階監測模型,其中包含一個度量值,該值是高階監測模型關聯端到端流程的相同例項所必不可少的。清單 3 顯示了這個插入的出站事件。


清單 3. Loan_CompletionOne 流程的監測模型中的出站事件
				

    
    
        
        
            
                
                
                
            
        
    


在清單 4 中,度量 LoanID 將通過 expression 欄位進行初始化,該欄位指示 Loan_CompletionOne 監測模型在監測上下文中的位置,其中可以找到 LoanID 值。 度量 expression 欄位中的 VerifyRiskOfficerInvolvement 是 Loan_CompletionOne 流程中的一個活動。出站事件(參見清單 3)將來自 Loan_CompletionOne 流程的監測模型的這個度量值傳送給高階監測模型。


清單 4. Loan_CompletionOne 流程的監測模型中插入的 LoanID 度量
				

   
      
         
      
   


清單 5 顯示了出站事件的事件定義,它是由外掛程式碼自動建立的。此事件定義將儲存在 ModelCorrelationEvent.XSD 檔案中。


清單 5. 出站事件的 XML 定義。
				

    
        
            
            
            
            
            
        
    


如清單 6 所示,高階監測模型 LoanEndToEndProcess_Mon.mm 將接收兩個入站事件,一個來自 Loan_InitiationOne 的低階監測模型,另一個來 Loan_CompletionOne 的低階監測模型。


清單 6. 高階模型中從低階監測模型接收到的兩個入站事件
				

    
    
    



    
    
    
|-------10--------20--------30--------40--------50--------60--------70--------80--------9|
|-------- XML error:  The previous line is longer than the max of 90 characters ---------|


如清單 7 所示,高階監測模型將使用從 Loan_InitiationOne 和 Loan_CompletionOne 監測模型接收到的 LoanID 度量的值來初始化一個本地度量 LoanID。高階監測模型將比較接收到的度量,如果它們相同,則本地度量為真。


清單 7. 從低階監測模型接收到的度量值
				

    
        
            
        
    
    
        
            
        
    


外掛程式碼在高階監測模型中插入了一個布林度量,以顯示 HMM 是否接收到任何入站事件。對於貸款場景,程式碼定義了一個布林度量,用於顯示 HMM 是否從 Loan InitiationOne 監測模型接收到了一個入站事件,以及另一個布林度量,用於顯示 HMM 是否從 Loan_CompletionOne 監測模型接收到了一個入站事件。清單 8 顯示了插入的 XML。


清單 8. 顯示 HMM 接收傳入事件的布林度量
				

    
        
            
        
    
    
        
    



    
        
            
        
    
    
        
    


輸出檔案

完成匯出之後,程式碼將建立一個新的壓縮資料夾(其名稱包含子字串 EndToEndMonitor),其中包含經過修改的現在支援端到端監測的監測模型,以及 Integration Developer 匯出建立的原始檔案集。圖 20 顯示了 WebSphere Business Modeler End-to-End Monitoring 匯出完成後的目標資料夾的一個示例(您的日期和時間字尾會有所不同)。我們還在本文的 下載 中提供了這些壓縮資料夾。


圖 20. 端到端監測匯出後的目標目錄
匯出後的目標目錄

端到端監測特性的限制

外掛提供的端到端監測特性具有一些限制。目前,它僅支援單一監測集的監測。雖然這個監測集可以有多個鍵,但每個鍵必須繫結到引用相同業務流程的業務專案屬性。這是必不可少的,因為我們當前未提供定義監測集鍵之間或者甚至不同監測集之間的關係的功能。我們正在研究定義高階業務流程關聯模型的功能。


Integration Developer 中的監測

現在,您可以開始編輯和部署 Integration Developer V6.2 中的監測模型。我們測試了 WebSphere Integration Developer 對監測模型生成的支援,以及 WebSphere Process Server 上的 WebSphere Business Monitor 配置檔案。

將專案匯入到 Integration Developer

現在,您需要將 下載 中提供的兩個專案交換檔案匯入到工作空間中。Integration Developer 要求您首先依次匯入模型交換資料夾和監測交換資料夾。

  1. 在 Integration Developer 中,選擇 File => Import
  2. Select and import source 欄位中指定 inter,或者在深層次中找到 Project Interchange,如圖 21 所示,然後選擇 Project Interchange 並單擊 Next

    圖 21. 將 Modeler 專案匯入到 Integration Developer
    匯入 Modeler 專案

  3. 在下一個頁面中,瀏覽到下載的模型交換壓縮檔案,並選中它,如圖 22 所示(時間戳會有所不同)。此時將顯示這些資料夾的列表。單擊 Select All,然後單擊 Finish

    圖 22. 選擇要匯入的資料夾
    選擇要匯入的資料夾

  4. 等待直到匯入完成,並匯入 EndToEndMonitor 專案交換壓縮檔案,如圖 23 所示(時間戳會有所不同)。

    圖 23. 選擇要匯入的 EndtoEndMonitor 專案
    選擇要匯入的專案

  5. 工作空間已經建立。完成這一步後(也只能在這一步之後),建議 “清理工作空間”。為此,選擇 Project => Clean => Clean all projects,然後單擊 OK。這將重建工作空間。在繼續之前,請等待工作空間構建完成,這一點非常重要。選擇 Problems 選項卡,檢視工作空間中是否存在任何錯誤。如果遇到構建錯誤,請參閱 故障排除 獲取幫助。

    成功匯入專案交換檔案之後,視區中的工作空間應該如圖 24 所示。



    圖 24. 匯入後的 Integration Developer 工作空間
    匯入後的工作空間

  6. 接下來,我們將做一些建議的更改。開啟 Loan_InitiationOne 流程,並在 Properties 檢視的 Details 部分中,將 Automatically delete the process after completion 更改為 No。這將允許您在工作流程成功完成之後檢查 Business Process Choreographer Explorer 中的流程例項。
  7. 切換到 Properties 檢視的 Event Monitor 選項卡, 如圖 25 所示,並確保已經啟用事件,事件採用 XML 格式且支援模式,以及為整個流程及各監測的活動傳送了適當的 Common Event Infrastructure (CEI) 事件(Event Monitor)。

    圖 25. Properties 檢視中的 Event Monitor 選項卡
    Event                             Monitor 選項卡

  8. 對 Loan_CompletionOne 流程重複步驟 6 和 7。
  9. 從 Modeler 中匯出的 BPEL 工作流程還不能執行。要成功執行,它們必須提供一些服務供程式呼叫。我們並未實現 Web 服務,而是使用簡單的 Java™ 實現,它可直接關聯到 BPEL 工作流程。
  10. 為此,選擇 wfm1_62c_WeFinanceLoanModelProject_impl => Assembly Diagram 並右鍵單擊中間流元件中的 Reference Partner 埠,它們代表服務(如 VerifyRiskOfficerInvolvement),然後選擇 Wire References to New => Components。這將建立一個新的無型別引用元件,即 ReferencePartner。
  11. 要實現該元件,雙擊它並選擇 OK。在出現的對話方塊中,從實現型別列表中選擇 Java,選擇 Default Implementation,然後單擊 OK。 此時將開啟一個新的編輯器,其中包含 Java 程式碼。
  12. 在編輯器中,可以看到如圖 26 所示的 InputCriterion(DataObject input) 方法。如果這個方法返回 void,則不需要做出更改,但如果它返回 DataObject,則可以將最後一行從 return null; 更改為 return input;
  13. 如果希望確定該方法將於何時在伺服器日誌檔案中呼叫,還可以新增以下內容: System.out.println("VerifyRiskOfficerInvolvement method called")

    圖 26. VerifyRiskOfficerInvolvement 活動的 BPEL 工作流程的 Java 實現中的 InputCriterion() 方法
    InputCriterion() 方法

  14. 對集合圖中的各服務元件重複步驟 10-13。或者,您也可以選擇定義自己的服務實現,但 StoreComment 不在此列,它是 Loan_UpdateOne 流程的一部分。

    現在,您的服務實現已經就緒,並且您可以開始部署工作流程並使用它們。

生成 J2EE

定義 BPEL 工作流程之後,您需要在伺服器上部署監測模型。在 Integration Developer Business Monitoring 視區中,您應該能看到兩個監測模型(Loan_InitiationOne 和 Loan_CompletionOne)以及一個高階監測模型 (LoanEndToEndProcess)。您可以忽略 Loan_UpdateOne 的檢測模型,它是一個手動流程。

  1. 右鍵單擊各監測模型檔案(除 Loan_UpdateOne 之外),然後選擇 Generate Monitor J2EE Projects,如圖 27 所示。

    圖 27. 生成 Monitor J2EE 專案
      生成 Monitor J2EE 專案

  2. 如果監測伺服器尚未啟動,則在 Servers 檢視中啟動它,如圖 28 所示。

    圖 28. 啟動 Monitor 伺服器
    啟動伺服器

  3. 啟動伺服器之後,右鍵單擊伺服器並選擇 Add and Remove Projects,以新增專案。
  4. 在出現的對話方塊中,選擇所有模組,包括 wfm1_62c_WeFinanceLoanModelProject_implApp 和 wfm1_62c_WeFinanceLoanModelProject,並單擊 Add,如圖 29 所示。

    圖 29. 將專案釋出到伺服器
    釋出專案

  5. 現在,您可以開始執行工作流程並監測它們。執行工作流程以便檢視貸款流程監測狀態的最簡單的方法是使用 Business Process Choreographer Explorer。要開啟 Choreographer,在您的 Web 瀏覽器中鍵入其 URL,通常為 https://localhost:9444/bpc/faces/pages/Login.jsp。
  6. 要啟動工作流,請單擊左側的 Process Templates,並檢查要執行的流程模板,如圖 30 所示.

    圖 30. Business Process Choreographer 中的流程模板
    流程模板

  7. 選中 Loan_InitiationOne 並單擊 Start Instance
  8. 提供輸入引數,比如 455 作為 LoanID,並單擊 Submit,如圖 31 所示。

    圖 31. 提交 Loan_InitiationOne 以便執行
    提交                             Loan_InitiationOne

  9. 對 Loan_CompletionOne 流程模板重複步驟 7 和 8,如圖 32 所示。

    圖 32. 提交 Loan_CompletionOne 以便執行
    提交                             Loan_CompletionOne

定義監測的業務空間

在工作流程的執行過程中,您可以使用 Business Space 中的監測小元件來檢視它們的狀態。

  1. 開啟 Business Space,這需要在瀏覽器中輸入正確的 URL,通常為 https://localhost:9444/BusinessSpace/login.jsp。
  2. 如圖 33 所示,建立一個名稱為 TestMonitoring 的業務空間,併為以下功能新增新頁面:
    • 監測貸款初始化 (MonitorLoanInit)
    • 監測貸款完成(MonitorLoanDone)
    • 監測端到端貸款流程 (MonitorLoanEndToEnd)


    圖 33. 檢視被監測事件的新業務空間
    新業務空間

  3. 在各頁面上新增兩個小元件,分別針對 Instances 和 Diagrams,並配置它們,如圖 34 所示。

    圖 34. 配置業務空間中的 Loan_InitiationOne 小元件
    配置 Loan_InitiationOne

  4. 要為 Loan_InitiationOne 配置 Instances 小元件,請選擇相應的監測模型 Loan_InitiationOne 並單擊 Set as default,然後選擇所有要顯示的可用列。在 Wiring 選項卡中,單擊 Enable this widget to send events over wires,然後單擊 Apply 並單擊 OK
  5. 要配置 Diagrams 小元件,請選擇 Loan_InitiationOne 作為 Monitoring Context, 如圖 35 所示,然後單擊 ApplyOK

    圖 35. 選擇要顯示的圖
    選擇要顯示的圖

現在,您應該能夠開啟 MonitorLoanInit 和 MonitorLoanDone,其中可看到在 Business Process Choreographer Explorer 中執行的流程 Loan_InitiationOne(圖 36)和 Loan_CompletionOne(圖 37)的例項,以及它們的 LoanIDLoanId


圖 36. Loan_InitiationOne with LoanId = 455 例項成功執行
成功 1

圖 37. Loan_CompletionOne with LoanID = 455 例項成功執行
成功 2

最後,您可以看到端到端流程監測。開啟建立的小元件,開始監測端到端貸款流程,如圖 38 所示。


圖 38. HMM 檢測到 LoanID = 455 的端到端流程
檢測到 LoanID = 455 的端到端流程

使用 Integration Developer 監測模型編輯器進行可選定製

使用 Integration Developer 中的監測模型編輯器 (MME),您可以選擇性地在各監測模型中定製可視模型(例如更改度量值載入時的顏色),如圖 39 所示。


圖 39. 在監測模型編輯器中編輯可視模型
編輯可視模型

舉例來說,您可以根據所執行的流程來更改 Loan_InitiationOne 和 Loan_CompletionOne 活動框的顏色,其屬性在樹的 fill color 葉中指定,如圖 39 所示。您可以始終將通過業務空間的事件接收到的度量值顯示為文字。通過編輯各監測模型中的可視模型,您可以啟用業務空間小元件中的圖中的活動,以更改監測資訊時的顏色和/或顯示文字。

圖 39 中的定製結果將顯示在 Business Space 中,如圖 40 所示。活動將變為橙色,並且 LoanID 度量值將在檢測到 LoanID = 222 的貸款應用程式例項時顯示。


圖 40. Business Space 中顯示的定製結果
定製結果

故障排除

如果未在高階監測模型中看到流程例項(在 Business Space 的 MonitorLoan 頁面中),請檢查來自 Loan_InitiationOne 和 Loan_CompletionOne 監測模型的事件。為此,開啟 Common Base Event Browser(通常為 https://localhost:9044/ibm/console/cbebrowser/),單擊 GetEvent,選擇 Creation Time Date 範圍並單擊 Get Events

在 WebSphere Integrated Solutions Console 中啟用事件記錄

確保 WebSphere Integrated Solutions Console 啟用了事件記錄。要完成此任務:

  1. 選擇 Applications => Monitor Services => Recorded Events Manager,如圖 41 所示.

    圖 41. 使用 Integrated Solutions Console 執行故障排除
    使用 ISC 執行故障排除

  2. 選擇 Events Management 選項卡,並選中 Enable event to be recorded
  3. 將事件匯出到 XML,以確定低階監測模型是否在接收和傳送事件。在 Web 瀏覽器或文字編輯器中開啟匯出的 XML 檔案,並確定是否傳送了預期的事件。
  4. 如果重複執行流程,那麼您可能會希望刪除舊例項,以簡化測試過程。為此,開啟 Integration Developer 管理控制檯,通常為 https://localhost:9044/ibm/console/secure/securelogon.do。
  5. 選擇 Applications => Enterprise Applications 檢視流程,如圖 42 所示。要刪除舊流程例項,請選擇中並單擊 Uninstall。系統將提示確認,然後單擊 Save

    圖 42. Integration Developer 管理控制檯
    Integration Developer 管理控制檯

潛在錯誤

從 Modeler 匯入專案檔案到 Integration Developer 中時,您可能會在 LoanEndToEndProcess_Mon.mm 中發現一個編譯器錯誤。該錯誤是在從 Modeler V6.2 向 Integration Developer V6.2 匯入專案時發生的。該錯誤位於 monitoringContextdisplayNameLoanEndToEndProcess)標記中,並且會影響屬性 eventSequenceIDPath。 如果遇到此錯誤,請嘗試刪除這個屬性和它的值,然後重新編輯工作空間,方法是從 Project 選單中選擇 Clean => Clean All Projects


結束語

在本文中,您瞭解瞭如何使用單一監測集實現端到端監測。您還了解了如何自動生成高階監測模型,它可以關聯從低階監測模型接收到的事件,以便使用在監測集中指定的鍵將它們組配成端到端流程。

下面是 Modeler 中的步驟概述:

  1. 從 Modeler 中的貸款應用程式專案開始,將它匯出到 Integration Developer。
  2. 然後,定位到包含匯出檔案的資料夾,並使用外掛 WebSphere Business Modeler End-to-End Process Monitoring 特性再次將它們匯出到 Modeler 中。

    現在,目標目錄中已經有三個壓縮格式的資料夾,其中一個在名稱中包含 EndToEndMonitor,其中包含插入了程式碼以支援端到端監測的監測模型。

  3. 將以下兩個壓縮檔案匯入到 Integration Developer 中:
    • wfm1_62c_WeFinanceLoanModelProject_.zip
    • wfm1_62c_WeFinanceLoanModelProject_EndToEndMonitor_.zip
  4. 在 Integration Developer 中,確保專案檔案正確編譯且沒有錯誤,然後切換到 Business Integration 視區併為專案中的所有活動定義一個 BPEL 實現(除手動流程 LoanUpdate 之外)。然後,為 Loan_InitiationOne、Loan_CompletionOne 和 LoanEndToEndProcess 監測模型生成 Monitor J2EE 檔案,並將它們釋出到 Monitor 伺服器。
  5. 在 Business Process Choreographer 中,啟動一個 Loan_InitiationOne 和 Loan_CompletionOne 例項,指定所需的 LoanID。
  6. 在 Business Space 中,定義小元件,用於檢視三個監測模型所監測的事件,並驗證 LoanEndToEndProcess 高階模型從 Loan_InitiationOne 和 Loan_CompletionOne 低階模型接收到了事件,並且能夠使用從它們接收到的 LoanID 來組配一個相同的端到端貸款流程例項。

 

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

相關文章