WebSphere Business Events 構建業務事件應用程式

CloudSpace發表於2009-05-20

 

轉自DW中國

作者:Doina Klinger, 顧問軟體工程師, IBM
Latha Sivakumar, 顧問軟體工程師, IBM

過程概述

為了構建應用程式以實現此場景,您將使用 WebSphere Business Events Design Data 工具完成下面的步驟。這些步驟通常由 IT 專家完成。

  1. 定義業務系統,也就是將要進行整合的所謂的接觸點。接觸點是一組相關事件和操作定義。
  2. 在接觸點中,定義發起跨系統流程的活動(事件)以及在確定事件模式時執行的活動(操作)。例如,一天內針對相同客戶和股票的三次 Buy 事件之後的 Sell 事件將產生 SpeculativeCustomer 操作。
  3. 建立業務物件層,即所謂的中間物件,它們將用作事件評估中使用的資料的佔位符。進出執行時系統的所有資料都通過中間物件。例如,Customer 中間物件可以包含從事件中獲得其值的欄位(Name、Address、State 等等),還可以包含從資料庫表獲得其值的聯絡人資訊(Last Order Date、Email Address)。

下一步,您將使用 Business Events Design 工具檢索在前面的步驟中建立的定義,並將其用於定義業務邏輯。這些步驟通常由業務分析人員完成。

  1. 定義 Business Events 執行時伺服器在執行時用於檢測、關聯和響應簡單和複雜事件模式的互動集(包含業務邏輯的互動塊的集合)。
  2. 定義用於指定某個互動塊在什麼條件下為 True 的篩選器。

注意:所有 Business Events 元件的定義都儲存在同一個儲存庫中,從而提供一個完全整合的環境。當 Business Events 執行時伺服器啟動時,它從儲存庫檢索最新的定義集,並編譯互動集,後者評估傳入事件並生成關聯的操作。

構建應用程式

本部分描述使用 Design Data 工具構建 Business Events 應用程式所需完成的步驟。您將描述事件和所產生的操作,以及定義中間物件。

您將完成以下步驟:

  1. 定義接觸點。
  2. 定義事件和一個事件物件。
  3. 建立操作和一個操作物件。
  4. 建立作為操作結果而生成的事件。
  5. 定義一箇中間物件。
  6. 定義中間物件欄位與事件欄位之間的對映。
  7. 定義操作欄位與中間物件之間的對映。

步驟 1:定義接觸點

要定義接觸點,請執行以下操作步驟:

  1. 通過選擇“開始”=>“所有程式”=>“IBM WebSphere Business Events 6.1”=>“Design Data”啟動 Design Data 工具。
  2. 展開左側的 Touchpoints 窗格。(您可以摺疊其他窗格以節省空間。)在左側窗格中單擊滑鼠右鍵並選擇 Insert Touchpoint
  3. 指定 Trade System 作為名稱。

步驟 2:定義事件

要定義事件,請執行以下操作步驟:

  1. 右鍵單擊新的接觸點並選擇 Insert Event => Normal
  2. 指定 Buy 作為名稱。
  3. 右鍵單擊該事件並選擇 Insert Event bject => Blank
  4. 指定 TradeObject 作為名稱。
  5. 右鍵單擊該事件物件並選擇 Insert Event Object Field。Insert Field 對話方塊隨即開啟。您將使用此對話方塊在事件物件、操作物件和中間物件中插入欄位。
  6. 指定 CustomerID 作為名稱,並選擇 String 作為資料型別,如圖 1 所示。

    圖 1. 在事件物件中插入欄位
    在事件物件中插入欄位

  7. 重複步驟 6 以新增以下欄位:
    • StockID,型別為 String
    • Date,型別為 DateTime
    • Quantity,型別為 Real
    • Price,型別為 Real
  8. 建立另一個新欄位,這一次將其命名為 Sell
  9. 右鍵單擊 Sell 並選擇 Insert Event bject => Shared,然後選擇TradeObject

Buy 和 Sell 事件共享同一個事件物件。

步驟 3:建立操作

要建立操作,請完成以下步驟:

  1. 右鍵單擊 Trade System 接觸點並選擇 Insert Action => Normal
  2. 指定 Buy Ack 作為名稱。
  3. 右鍵單擊新的操作並選擇 Insert Action bject => Blank
  4. 指定 TradeOut 作為名稱。
  5. 右鍵單擊 TradeOut 操作物件並選擇 Insert Action Object Field
  6. 在如圖 1 所示的 Insert Field 對話方塊中,指定 CustomerID 作為名稱,並選擇 String 作為資料型別。對以下欄位名稱和型別重複此步驟:
    • StockID,型別為 String
    • Key,型別為 String
    • Date,型別為 DateTime
    • Quantity,型別為 Real
    • Price,型別為 Real

    注意:Business Events 要求所定義的每個事件必須通過某個互動集觸發某個操作。您剛才建立的 Buy Ack 操作滿足 Buy 事件的這個要求。稍後,您將定義一個互動集,該互動集將演示在不使用篩選器或無延遲的情況下生成操作的最簡單事件策略。

    在圖 2 中,您看到了 Design Data 工具,右側顯示了已建立的操作 Buy Ack 的一些詳細資訊,包括其操作物件 TradeOut 和該操作物件的成員欄位,例如 CustomerID。



    圖 2. 操作和操作物件
    操作和操作物件

  7. 通過重複上述過程建立一個名為 SellAfterBuy 的新操作。
  8. 右鍵單擊新的 SellAfterBuy 操作,並選擇 Insert Action bject => Shared,然後選擇 TradeOut
  9. 重複步驟 1 至 8 建立操作 Speculative Customer,此操作也使用操作物件 TradeOut

步驟 4:建立事件

下一步,我們將建立一個人工事件,它將使得 Business Events 能夠注意到重複的 SellAfterBuy 情況併傳送 SpeculativeCustomer 操作。為此,請完成以下操作步驟:

  1. 建立一個名為 SellAfterBuySynEvent 的普通事件。
  2. 右鍵單擊該事件並選擇 Insert Action => To Fire This Event Synthetically。接受所顯示的警告訊息。該事件現已重新命名為 SellAfterBuySynEvent 右鍵單擊 SellAfterBuySynEvent 並選擇 Rename。將該事件重新命名為 SellAfterBuySynAction。最好避免在操作名稱中使用字尾 Event。重新命名該操作會導致將該事件重新命名為 SellAfterBuySynEvent

步驟 5:定義中間物件

下一步是定義中間物件。該示例應用程式使用單箇中間物件。要定義中間物件,請完成以下操作步驟:

  1. 展開 Design Data 工具的 Intermediate Objects 窗格,然後在該窗格中單擊滑鼠右鍵,並選擇 Insert Intermediate bject => Blank
  2. 指定 TradeObject 作為名稱。
  3. 右鍵單擊新物件並選擇 Insert Intermediate Object Field。在 Insert Field 對話方塊中,指定 CustomerID 作為名稱並選擇 String 作為型別。對以下欄位名稱和型別重複此步驟:
    • StockID,型別為 String
    • Date,型別為 DateTime
    • Quantity,型別為 Real
    • Price,型別為 Real
    • Key,型別為 String
  4. 將中間物件 TradeObject 從 Intermediate Objects 部分拖放到 SellAfterBuySynEvent 事件上。
  5. TradeObject 從 Intermediate Objects 部分拖放到 SellAfterBuySynAction 操作上。圖 3 顯示了所建立的人工事件和人工操作的詳細資訊。

    圖 3. 人工事件
    人工事件

步驟 6:定義從事件物件到中間物件的對映

下一步,您需要指定如何將每個事件物件欄位對映到中間物件欄位。所有事件都需要此對映,包括派生的事件。大多數字段直接通過 Buy 和 Sell 事件的屬性進行填充。中間物件的 Key 欄位是使用 JavaScript™ 計算而來的。

您可以使用從源到目標的拖放操作完成對映。但是,我們這裡將描述如何使用顯式的選擇來完成該對映:

  1. 展開 Buy 事件樹節點,右鍵單擊 TradeObject 並選擇 Insert Field Constructor From bject => Trade bject => Customer ID,如圖 4 所示。

    圖 4. 為中間物件新增欄位構造器
     為中間物件新增欄位構造器

  2. 重複前一步驟為 StockID、DatePriceQuantity 插入欄位構造器。不要對映 Key 欄位。這將指定在事件欄位的基礎上構建中間物件的欄位。

    注意:該工具在方括號中顯示了為每個事件建立的中間物件,如圖 5 所示。



    圖 5. 在事件的基礎上建立的中間物件和欄位
    在事件的基礎上建立的中間物件和欄位

  3. 在 Touchpoints 檢視的右側,展開 Buy => TradeObject => CustomerID 並選擇編輯器的 Definition 部分中的 Field
  4. 單擊 Insert object field 並從事件欄位列表中選擇 CustomerID,如圖 6 所示。

    圖 6. 在事件欄位的基礎上設定中間物件
    在事件欄位的基礎上設定中間物件

  5. 重複最後兩個步驟以在 DatePriceQuantityStockID 中插入對應的欄位。這將指定在事件欄位的基礎上構造中間物件的所有欄位。

    注意:在此示例中,事件物件和中間物件的欄位名稱相同,但是它們不是必須相同。

    由於 Buy 和 Sell 事件共享一個事件物件,Buy 和 Sell 事件都會導致建立 TradeObject 中間物件,如圖 7 所示:



    圖 7. 多個事件建立相同的中間物件
    多個事件建立相同的中間物件

  6. 使用 JavaScript. 表示式按如下方式定義 Key 欄位:
    1. 在 Intermediate Objects 窗格中展開 Key 欄位。
    2. Definition 部分,選擇 JavaScript 作為 Type ,並輸入表示式 CustomerID +""+StockID,如圖 8 所示:

      圖 8. 在 JavaScript. 中定義 Key 欄位
      在 .. 中定義 Key 欄位

      注意:Design Data 工具不對 JavaScript. 表示式進行驗證。因此,您需要確保您輸入的表示式是有效的 JavaScript. 表示式。網址 http://localhost:9080/wbe/tools/test_javascript.html 處提供了一個 JavaScript. 測試工具,您可以使用此工具幫助驗證您的 JavaScript。

步驟 7:定義從中間物件到操作的對映

下一步,您需要定義如何在中間物件的基礎上構造操作,以及定義從中間物件欄位到操作欄位的對映。

  1. 在 Touchpoints 皮膚中,選擇 Buy Ack => TradeOut
  2. 在右側,展開 StockID,如圖 9 所示。

    圖 9. 對映操作物件欄位
    對映操作物件欄位

  3. 在操作的 Definition 部分,選擇 Field 作為 Type,選擇 Insert object field ,併為欄位列表選擇 TradeObject.StockID
  4. CustomerIDKeyDateQuantityPrice 重複前一步驟。對於這其中每個欄位,新增字首為 TradeObject 的關聯中間物件欄位。
  5. 通過選擇 File => Save Project 儲存專案。將專案命名為 Trading.xml 並退出 Design Data 工具。

    注意:在開啟 Design 工具定義業務邏輯之前,確保儲存 Design Data 定義並關閉 Design Data。

    定義業務邏輯

    本部分描述使用 Design 工具構建業務邏輯所需要完成的步驟。這些步驟通常由業務分析人員完成。

    1. 開啟 Trading.xml 檔案。
    2. 建立兩個篩選器。
    3. 定義三個互動集。

    注意:由於 Design Data 工具和 Design 工具使用同一個檔案,因此最好在關閉一個工具之後再開啟另一個工具。

    步驟 1:啟動 Design 工具並開啟 Trading.xml

    要開始入手,請執行以下操作:

    1. 選擇“開始”=>“所有程式”=>“WebSphere Business Events v6.1”=>“Design”啟動 Design 工具。
    2. 通過選擇 File => Open 並指定 Trading.xml 開啟專案。您在 Design Data 工具中定義的物件將顯示出來,但是您不能修改它們。

    步驟 2:建立 After Buy 篩選器

    您需要建立的第一個篩選器是 After Buy 篩選器,此篩選器檢查其應用到的事件是否在 Buy 事件後的一小時內發生。您將把此篩選器應用於 Sell 事件。要建立 After Buy 篩選器,請執行以下步驟:

    1. 單擊工具欄上的 Filter 按鈕(或者從選單上選擇 Create => Filter)。這將在編輯器中建立一個篩選器模板。
    2. 指定 After Buy Filter 作為名稱,然後選擇 operator?。可用的運算子列表隨即顯示出來。從 ContextOperator 資料夾中選擇 Follows Within,如圖 10 所示。

      圖 10. 建立第一個篩選器
      建立第一個篩選器

      篩選器模板將更新以顯示所選的運算子及其引數。

    3. 下一步,單擊第一個 operand?,然後選擇 Select an event
    4. 專案中定義的事件列表隨即顯示出來,如圖 11 所示。選擇 Buy

      圖 11. 為流函式選擇事件引數
      選擇事件引數

    5. 單擊第二個 operand?(在 Within 之後,請參見圖 11),並選擇 Enter text
    6. 在隨後出現的對話方塊中,指定 1 作為天數,並單擊 OK

      在此階段,該篩選器應該與圖 12 所示類似。



      圖 12. After Buy 篩選器
      After Buy 篩選器

    您剛才建立的篩選器將由 Sell After Buy 互動集(您很快就將對其進行定義)使用,該互動集將確定 Buy 事件之後何時發生了針對相同股票和客戶的 Sell 事件。

    這個簡單和可讀的篩選器將工作得足夠好。其唯一的問題是事件配對。例如,假設一個 Buy 事件之後發生了三個 Sell 事件,全都在同一天針對相同的客戶和股票。根據該篩選器到目前為止的定義,所有三個 Sell 事件將通過 After Buy 篩選器,從而導致生成三個 SellAfterBuy 操作。但是,您真正希望的是對於每一對買入和賣出事件,您僅檢查到一個這樣的情形。

    為了實現此目的,您需要進一步改進該篩選器。您將新增一個條件,規定僅當某個事件在某個 Buy 事件之後的一天內發生,並且在上一個 SellAfterBuy 操作之後有一個 Buy 事件發生時,該事件才通過篩選器。這樣,上述序列中的第二和第三個 Sell 事件將無法通過篩選器,這就是您希望的結果。要將此條件新增到篩選器,可以執行以下步驟:

    1. 單擊第二行上的篩選器圖示,並選擇 Add a filter condition,如圖 13 所示。

      圖 13. 新增篩選器條件
      新增篩選器條件

      這樣就新增了一個新的模板條件,兩個條件之間用 AND 運算子連線。
    2. 現在您需要填入第二個篩選器條件的引數。單擊第一個 operand? 旁邊的圖示,並選擇 Select a Predefined Function,然後選擇 ContextFunction => Event or Action Occurs,如圖 14 所示。

      圖 14. 選擇 Event or Action Occurs
      選擇 Event or Action Occurs

    3. 篩選器將更改以顯示 Occurrences of 函式。單擊 Occurrences Ofoperand?,然後選擇 Select an event ,再選擇 SellAfterBuy
    4. 單擊 operator? 並從 NumericOperators 列表中選擇 Is,如圖 15 所示。

      圖 15. 選擇數值運算子
      選擇數值運算子

    5. 單擊剩餘的 operand?,選擇 Enter Text 並輸入 0。現在該篩選器應該與圖 16 所示類似。

      圖 16. 帶第一個分支條件的 After Buy 篩選器
      帶第一個分支條件的 After Buy 篩選器

    請注意事件 事件符號 和操作 操作符號 的篩選器定義中的不同符號。

    該篩選器已經幾乎完成了。當滿足以下條件時,它將變為 True:

    • 事件在 Buy 事件之後的一天內發生。
    • 還不存在 SellAfterBuy 操作。

    要將 Buy 和 Sell 事件進行配對,您需要向該篩選器新增另一個條件,此條件檢查上一個 SellAfterBuy 操作之後已經發生了上一個 Buy 事件。這確保不會將一個 Buy 事件與多個 Sell 事件配對,從而避免導致重複的 SellAfterBuy 操作。要新增此條件,請完成以下操作步驟:

    1. 單擊該篩選器的第二個條件(第一個括號右側的圖示,如圖 17 所示),並選擇 Branch this filter condition

      圖 17. 分支篩選器條件
      分支篩選器條件

    2. 在結果分支中,選擇 And 並將其替換為 Or,如圖 18 所示。

      圖 18. 修改連結篩選器條件的布林運算子
      修改布林運算子

    3. 單擊第一個 operand? 後面的符號,選擇 Select a predefined function,再選擇 DateTimeFunction,然後選擇 Last Occurrence Of,如圖 19 所示。

      圖 19. 選擇 DateTime 函式
      選擇 DateTime 函式

    4. 單擊 operand? 並選擇 Select an Event,然後選擇 Buy
    5. 單擊其餘兩個 operator? 欄位中的第一個,並從隨後顯示的列表中選擇 is After DateTime
    6. 單擊最後一個 operand?,選擇 Select a Predefined Function,然後選擇 Last Occurrence Of
    7. 選擇 Select an action 並選擇 SellAfterBuy。圖 20 顯示了最終的篩選器:

      圖 20. After Buy 篩選器——完成後的定義
      After Buy 篩選器——完成後的定義

    步驟 3:建立 Speculative Customer 篩選器

    下面需要建立 Speculative Customer 篩選器。此篩選器將在一天內每當發生第三個 SellAfterBuySynEvent 事件時求值為 True。

    完成後的篩選器使用了 Occurrences of This Event Within 函式。此函式不對事件的當前例項計數。因此,對於該事件的第三個例項,先前的例項數量為 2。您需要加一以補償此行為。

    要使該篩選器在每當發生第三個事件時求值為 True,我們將利用該函式的結果為整數的事實,並且我們可以使用 Business Events 整除函式 divmod。例如,對於某個數字 n:當且僅當 n 為 3 的倍數時,(n div 3 ) X 3 = n 才成立。

    當且僅當事件的總髮生次數(包括當前發生的事件)為 3 的倍數時,該篩選器才求值為 True。圖 21 顯示了完成後的篩選器的大致情況:


    圖 21. Speculative Customer 篩選器
    Speculative Customer 篩選器

    要建立 peculative Customer 篩選器,請執行以下操作步驟:

    1. 單擊工具箱中的 Filter 按鈕,並在模板中輸入 Speculative Customer 作為名稱。
    2. 首先我們將構建該篩選器的右側部分,從運算子 Is 開始。
      1. 單擊 operator? 並選擇 NumericOperator =>Is。然後單擊第二個 operand? 右側的圖示,並選擇 Select a Predefined Function => NumericFunction => Plus
      2. 單擊最後一個 operand? 右側的圖示,選擇 Enter text,然後輸入 1
      3. 單擊 Plus 之前的 operand? 右側的圖示,並選擇 Select a Predefined Function => ContextFunction => This Event Occurs Within
      4. 通過單擊 operand? 旁邊的圖示並選擇 Enter text 完成運算元,然後輸入 1 作為天數。現在該篩選器應該與圖 22 所示類似。

        圖 22. Speculative Customer 篩選器——部分完成
        Speculative Customer 篩選器——部分完成

    3. 對於該篩選器的左側,我們將使用類似的方法。我們將從右至左地構建此部分:從運算元的選單中選擇一個預定義的函式,通過輸入文字填寫右側運算元,並重復針對左側運算元的過程,直到該篩選器完成,如下所示:
      1. 單擊 operand? 右側的圖示,並選擇 Select a Predefined Function => NumericFunction => multiplied By
      2. 單擊右側的 operand?,選擇 Enter Text 並輸入 3
      3. 單擊左側 operand? 旁邊的圖示,並選擇 Select a Predefined Function => NumericFunction => Divided by
      4. 單擊左側的 operand?,選擇 Enter Text 並輸入 3
      5. 單擊左側 operand? 旁邊的圖示,然後選擇 Select a Predefined Function => NumericFunction => Plus
      6. 單擊運算元並選擇 Enter text,然後輸入 1
      7. 最後,選擇 Occurrences of this Event

    Speculative Customer 篩選器現在就完成了。

    步驟 4:建立互動集

    現在您需要建立以下互動集,這些互動集將使用您剛才建立的篩選器做出業務決策:

    • Buy Acknowledgment 規則規定在接收到 Buy 事件時始終生成 Buy Acknowledgment 操作。
    • Sell After Buy 規則規定當某個 Sell 事件發生並滿足 After Buy 篩選器(即該 Sell 事件在某個 Buy 事件之後的一小時內發生,並針對相同的股票和客戶)時,將生成一個 SellAfterBuy 操作。此策略按 TradeObject.key 分組,後者是 Customer ID 和 Stock ID 的拼接。
    • Speculative Customer 規則規定,當某個滿足 Speculative Customer 篩選器(即 24 小時內針對相同客戶的事件發生次數超過兩次)的 Sell After Buy 事件發生時,將生成對應的操作。此策略通過 Customer ID 進行關聯。

    您將建立如圖 23 所示的互動集:


    圖 23. 互動集
    互動集

    要構建第一個互動集,請執行以下操作步驟:

    1. 在 Design 工具中單擊 Interaction Set(或者從選單中選擇 Create => Interaction Set)。
    2. 這樣會建立一個互動塊模板。輸入 Buy Acknowledgment 作為名稱。
    3. 單擊 In response toevent?,並選擇 Buy。這將填充該策略的 Always 部分。
    4. 單擊 action? 並選擇 Buy Ack
    5. 單擊互動集名稱 (Buy Acknowledgment) 後面的區域中的任何地方,並從選單中選擇 Define context relationship
    6. 選擇 TradeObject.Key 作為上下文 ID,如圖 24 所示。

      圖 24. 定義上下文關係
      定義上下文關係

    雖然 Buy acknowledgement 互動集不需要上下文關係,但是買入和賣出事件的計數是按客戶和股票進行統計的,因此該規則需要具有上下文 ID。

    要構建第二個互動集,請執行以下操作步驟:

    1. 與前面一樣,建立一個新的互動集並將其命名為 Sell After Buy
    2. 對於響應事件,請選擇 Sell
    3. 單擊策略名稱後面的區域中的任何地方,並從選單中選擇 Define context relationship
    4. 選擇 TradeObject.Key 作為流 ID。
    5. 下一步,向該策略新增一個篩選器條件。單擊第二行開頭的篩選器圖示,並選擇 Add a filter,如圖25 所示。

      圖 25. 向策略新增篩選器
      向策略新增篩選器

    6. 對於 Where 運算子,從可用篩選器的列表中選擇 After Buy
    7. 對於 Always,請從操作列表中選擇 Sell After Buy
    8. 右鍵單擊操作空間(從 Always 開始的框)並選擇 Add an action,然後選擇人工事件 SellAfterBuySynEvent

    現在您已經為構建最終的互動集做好準備了。定義互動集的步驟與定義 Sell After Buy 策略的步驟完全相同:

    1. 建立一個新的互動集並將其命名為 Speculative Customer
    2. 選擇 SellAfterBuySynEvent 作為該策略的執行所響應的事件。
    3. 通過在互動集名稱旁邊單擊滑鼠右鍵並選擇所需的上下文關係,從而定義一個將 TradeObject.CustomerID 作為其鍵的上下文關係。
    4. 右鍵單擊該互動集並選擇 Add a filter => Speculative Customer
    5. 選擇要在該篩選器求值為 True 時執行的操作,在此例中為 Speculative Customer

    該 WebSphere Business Events 應用程式現在就完成了!儲存專案並退出 Design 工具。

    部署並執行應用程式

    為了部署和執行您剛才構建的 Business Events 應用程式,您將執行以下步驟:

    1. 為事件和操作指定聯結器資訊。將此資訊包括在部署步驟中的原因在於,在本系列的後續部分中與其他 IBM 產品進行整合時,需要更改的正是此資訊。
    2. 如果還沒有啟動的話,在 WebSphere Application Server 中啟動 Business Events 執行時。
    3. 將該 Business Events 應用程式部署到執行時。
    4. 啟用歷史記錄。
    5. 重新啟動 Business Events 執行時。
    6. 啟動聯結器程式。

    步驟 1:指定聯結器資訊

    在測試 Business Events 應用程式之前,您需要為所有的事件和操作指定聯結器資訊。為簡單起見,您可以使用檔案系統聯結器 (File System Connector) 實現此目的。

    1. 啟動 Design Data 工具並開啟專案。
    2. 展開 Touchpoints 並選擇 Buy
    3. 單擊滑鼠右鍵並選擇 Event Properties
    4. Connection 選項卡上,單擊 File System Connection,如圖 26 所示。
    5. File Event Connection 對話方塊上,選擇 Connector Packet 作為 Format,如圖 26 所示。
    6. Contact frequency (in minutes) 選擇 1,然後單擊 Configure,如圖 26 所示。
    7. Server 對話方塊中,指定您將放置事件檔案的目錄位置,例如 C:\Business Events\test\Buy,以及用於 File Pattern*.xml,如圖 26 所示。確保您指定的資料夾在檔案系統上存在。
    8. 對 Sell 事件重複這些步驟,並指定 Connector Packet 作為格式,將聯絡頻率指定為 1 分鐘,指定 C:\WBE\test\Sell 作為目錄。

      注意:您不需要對 SellAfterBuySynEvent 事件執行這些步驟,因為該事件是由 Business Events 本身在內部生成的。



      圖 26. 為 Buy 和 Sell 事件配置聯結器資訊
      配置檔案聯結器資訊

    現在您需要對操作執行類似的配置步驟:

    1. 右鍵單擊 Buy Ack 並選擇 Action properties
    2. Action Properties 對話方塊的 Connection 選項卡上,選擇 File System Connector
    3. 使用某個目錄配置伺服器部分,該目錄不同於與 Buy 和 Sell 事件關聯的目錄。例如 c:\WBE\testactions。這是 Business Events 輸出所生成的操作的地方。確保您指定的資料夾在檔案系統上存在。
    4. 指定此操作的唯一檔案模式。例如 Buy*.xml。為每種型別指定不同的命名模式可以使得快速檢視 Business Events 輸出的內容更加容易。
    5. SellAfterBuySpeculativeCustomer 重複這些步驟,並使用相同的檔案路徑(例如 c:\WBE\testactions),但是使用不同的模式,例如 sell*.xmlspec*.xml
    6. 儲存專案。

    步驟 2:啟動 Business Events 執行時

    要啟動 Business Events 執行時,請執行以下操作步驟:

    1. 選擇“開始”=>“IBM WebSphere”=>“Application Server Network Deployment”=>“Profiles”=>“AppSrvr01”=>“Start Server”
    2. 在 Web 瀏覽器中開啟 WebSphere Application Server 管理控制檯並登入。例如,開啟 http://localhost:9060/ibm/console並使用使用者名稱 admin 登入。
    3. 在控制檯中,確保 WBERuntime 應用程式已啟動,如圖 27 所示。

      圖 27. 確保 Business Events 在控制檯中執行
      確保 Business Events 在執行

    4. 確保資料庫管理器已啟動。如果您在使用 Derby,可以從 \WAS\derby\bin\networkServer目錄中呼叫 startNetworkServer.bat

    步驟 3:將 Business Events 應用程式部署到執行時

    要將 Business Events 應用程式部署到執行時,請執行以下操作步驟:

    1. 在 Design Data 工具中,選擇 Tools => Repositories,然後單擊 Login
    2. 指定使用者名稱和密碼。
    3. 如果您正在使用的 WebSphere Application Server 版本未使用預設埠號,您可能需要指定不同的埠號(除 9080 以外的埠號)。
    4. 按 Ctrl+A 選擇 Repository 對話方塊的 Project 選項卡上的構件列表中的所有元素,然後單擊 Add in,如圖 29 所示。這將把所有元素新增到儲存庫。請注意,您可能需要再次輸入使用者名稱和密碼。

      圖 28. Repository 檢視
      Repository 檢視

    5. 單擊 Close 並退出 Design Data 工具。確保儲存專案。

    步驟 4:啟用歷史記錄

    現在已經部署了該專案,您可以啟用 Business Events 歷史記錄功能。這使得 Business Events 執行時能夠跟蹤事件、操作、篩選器和互動集,以便您可以在傳送事件時檢查 Business Events 中發生的情況。

    1. 選擇“開始”=>“IBM WebSphere Business Events v6.1”=>“Events”=>“Properties”
    2. 同時指定 wbe 作為使用者 ID 和密碼,單擊 Next,然後再次單擊 Next
    3. 在 Server Settings 對話方塊中,將 Enable historyfalse 更改為 true
    4. 單擊 Save and exit

    步驟 5:重新啟動 Business Events 執行時

    重複步驟 2 中的步驟重新啟動 Business Events 執行時。

    步驟 6:啟動聯結器程式

    要啟動聯結器程式,可以從 \director\bin 目錄執行 connector.bat(或 .sh)。

    測試應用程式

    現在讓我們看看 Business Events Buy 和 Sell 事件,並測試能否生成操作。

    1. 將下面所示的示例 Buy 事件複製並貼上到某個檔案中,並將其儲存為 Buy_event.xml。確保檔名與檔案聯結器模式 Buy*.xml 匹配。
      
        
          
            Jamie Danny
            IBM
            2008-06-04T10:04:41Z
            10
            150
          
        
        TISMANA
        2008-06-04T10:04:41Z
        Test values from WebSphere Business Events:Design Data
      
      

    2. 將下面的示例 Sell 事件複製並貼上到某個檔案中,並將其儲存為 sell_event.xml。同樣,確保檔名與檔案聯結器模式 Sell*.xml 匹配。
      
        
          
            Jamie Danny
            IBM
            2008-06-04T10:07:15Z
            9
            150
          
        
        TISMANA
        2008-06-04T10:07:15Z
        Test values from WebSphere Business Events:Design Data
      
      

    3. 將 Buy 事件檔案複製到檔案聯結器中指定的位置,例如 c:\WBE\test\Buy。
    4. 等待 1 分鐘(聯結器屬性中指定的輪詢間隔)。在此階段,該事件檔案應該消失,並且應該在操作聯結器中指定的目錄(例如,c:\WBE\testactions)中生成一個 Buy Ack 操作。
    5. 下一步,傳送一個針對相同客戶和股票的 Sell 事件。這應該生成一個 Sell After Buy 操作。
    6. 向 Business Events 傳送附加的 Buy 和 Sell 事件,以導致生成 Speculative Customer 操作。

    圖 29 顯示了 c:\WBE\testactions 中的示例輸出,其中具有測試中生成的操作檔案。


    圖 29. 使用檔案聯結器的示例 Business Events 輸出

    注意:您還可以使用位於 \director\bin 中的 cmdline 工具直接向 Business Events 傳送事件。要使用該工具,可以執行命令 cmdline .xml。例如,您可以發出以下命令以將一個 Buy 事件傳送到 Business Events: cmdline c:\temp\Buy_event.xml.

    注意:如果您看到以下訊息在聯結器視窗中重複多次:

    FS Sending event: Sell
    FS Sending event: Sell
    .…

    並且沒有看到預期的輸出操作,請確保您正確完成了指定聯結器資訊部分中的步驟 5。必須將聯結器格式設定為 Connector Packet,才能正確地觸發事件。

    使用 Business Events 監視器檢視報告

    您還可以使用 Business Events 監視器檢視在處理事件時 Business Events 中所發生的情況。這是通過啟用歷史記錄來實現的。要使用 Business Events 監視器檢視報告,請執行以下操作步驟:

    1. 在瀏覽器中輸入以下 URL:http://localhost:9080 /wbe/common/login.jsp。確保對 Application Server 使用正確的埠號。
    2. 輸入使用者名稱和密碼並從 Tool 列表中選擇Administrator,然後單擊 Login
    3. 單擊控制皮膚頂部的 Reports 圖示。
    4. 選擇 Actions by Touchpoint by time 作為 Report Type
    5. 單擊 Generate Report 圖示執行報告。報告顯示在單獨的視窗中,如圖 30 所示。檢視操作列表以後,關閉該視窗。

      圖 30. Business Events 監視器的示例輸出
      Business Events 監視器中的示例輸出

    通過從 Reports 檢視中選擇不同的報告型別,您可以檢視 WebSphere Business Events 在其執行過程中使用的事件、篩選器、策略、流和中間物件。

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

相關文章