為了讓讀者能更清晰快捷的了解 IBM Websphere Operation Decision Management (WODM) 強大的業務決策能力以及 IBM Business Process Manager (BPM) 強大的流程建模及管理能力,本文首先向讀者介紹一個簡化的商場消費結算流程的實戰案例,其業務流程如下:
顧客憑借購物小票及會員卡,向商場收銀人員申請消費結算
收銀人員收到該申請後,將消費記錄及會員卡掃描成數據存入結算系統
結算系統根據會員卡號進行客戶信息查詢,並查詢出該會員卡的級別
結算系統根據該會員卡級別以及顧客本次消費總金額查詢其應享有的折扣率
系統計算並返回折扣後最終的金額給收銀員
收銀員收取顧客現金或刷卡扣款
系統對顧客會員卡進行積分及升級
通常在不同的節假日,各大商場都會推出不同的折扣率給會員和非會員,並且不同級別的會員享有的折扣率也會不同。此外,消費金額的總數也會對折扣率產生影響。分析上述結算流程,商場的業務人員及決策者常常會由於不同的市場需求,參與到上面活動 3 與活動 7 的規則決策中來。
針對活動 3,本文采用最常見的商場折扣率計算,即通過顧客所持會員卡的級別及其單筆消費總額決定的折扣優惠率。下面是該商場五一國際勞動節期間的打折優惠策略:
顧客是金卡會員,如果單筆消費總額滿 5000 元,享受 7 折優惠;如果其消費總額在 2000 到 5000 之間,可享受 8 折優惠;如果其消費小於 2000 元,可享受 85 折優惠。
顧客是銀卡會員,如果單筆消費總額滿 5000 元,享受 75 折優惠;如果其消費總額在 2000 到 5000 之間,可享受 85 折優惠;如果其消費小於 2000 元,可享受 9 折優惠。
顧客是普卡會員,如果單筆消費總額滿 5000 元,享受 8 折優惠;如果其消費總額在 2000 到 5000 之間,可享受 9 折優惠;如果其消費小於 2000 元,可享受 95 折優惠。
顧客是非會員,如果單筆消費總額滿 5000 元,享受 9 折優惠;如果其消費總額在 2000 到 5000 之間,可享受 95 折優惠;如果其消費小於 2000 元,不能享受任何折扣優惠。
針對活動 7,假設該商場的積分策略是消費 100 元積 1 分,而其會員卡的升級策略為:
會員卡級別為銀卡,如果卡上積分滿 5000,那麼升級該卡為金卡。
會員卡級別為普卡,如果卡上積分滿 2000,那麼升級該卡為銀卡。
通過 IBPM 能快速的將上述商場消費結算流程的任務節點組合起來,當業務流程需要進行改變時,開發人員也能快速的調整流程,滿足市場的需求。但是,如果將上述活動 3 中的折扣策略使用 BPM 流程中的 Decision Gateway 或 Script 節點實現,首先,流程將會變得復雜難懂,如圖 1 所示。其次,這些策略中的折扣率,消費金額范圍以及積分升級阈值等這些易變的數字將會被硬編碼在程序腳本或流程中,然而這些數據常常會發生改變。這時,開發人員很難查找到具體的位置,並且很容易修改錯誤。另外,開發人員與業務人員之間的溝通代溝也增加了錯誤的可能。
而 IBM WODM 提供的強大業務決策能力很好的彌補了這一劣勢。使用 WODM 能夠快速的創建各種各樣的業務規則,業務決策樹及決策表等。此外,WODM 提供的決策中心,為開發人員與業務決策者之間搭起了溝通的橋梁,它能夠讓業務決策者直接參與規則的制訂,修改等。對於本案例中的折扣策略,通過 WODM 提供的 Decision Table 能很簡潔清晰的描述該策略。當折扣策略需要發生改變的時候,業務決策者可以直接登錄決策中心(Decision Center)對規則進行修改。下圖 2 是從決策中心中看到的使用 WODM 創建的折扣計算決策表。
查看本欄目
本文不打算詳細介紹是 IBPM 的組成及基礎概念,讀者可以從本文後面的參考資料中得到更多的信息。針對本實戰案例,下面使用 IBPM 快速構建商品結算流程。
首先啟動 IBPM 的提供的流程開發工具 Process Designer。如圖 3 所示正在完成一個商品結算的流程定義的實現,開發人員只需要從右側拖拽相應的 Activity 及 Gateway 等組件到右側流程定義的 Diagram 上,在 Properties 頁中進行簡單的實現配置,再使用 Sequence Flow 將 Diagram 中的節點進行連接,就可以快速完成整個商品結算流程的定義。
圖 4 展示了使用 BPM 創建的一個商品結算流程。根據前面對本實戰案例的分析,對應圖 4 中紅框圈著的節點"Has Discount? "將會調用 WODM 中實現的折扣計算規則。本文下面的章節會介紹如何在 WODM 中創建業務規則及其如何與 IBPM 進行集成。
本實戰案例不打算介紹 WODM 的組成和基礎概念,讀者可以從本文後面的參考資料中得到更多的信息。根據前面對實戰案例中折扣計算規則的分析,WODM 提供的 Decision Table 能夠更好的滿足其需求。下面展示如何在 WODM 中開發 Decision Table。
首先啟動 WODM 提供的規則開發工具 Rule Designer,創建一個標准的空的規則項目。當創建好一個規則項目後,規則透視圖中會默認打開 Rule Project Map 視圖,如圖 5 所示。該 Map 展示了一個規則項目開發可能經過的所有的步驟。這對使用 WODM 進行規則開發的初學者來說非常有用,只需要按照 Map 中的提示一步步完成規則的開發。
根據 Rule Project Map 中的提示,完成 XOM 的導入,BOM 的創建,parameter 的創建以及 rule package 與 ruleflow 的添加。下面進行決策表(decision table)的創建。
點擊 Rule Project Map 中的 Create Decision Table,在彈出的向導中填寫決策表的名稱,然後點擊 Finish 按鈕。這時 Decision table 編輯器會在右側自動打開。在打開的 Decision Table 編輯器中,右鍵選中條件列,點擊 Edit Condition Column … ,在彈出的 Condition Column 窗中中,編輯規則條件定義,並輸入該列的名稱。如圖 6 所示進行消費總額 Total Amount 的條件定義。
查看本欄目
根據前面折扣計算規則的分析,除了以客戶消費總額作為折扣條件外,還要考慮客戶的會員級別。下面定義 Card type 條件列,同上面的 Total Amount 創建方法一樣,右鍵 Decision Table 中的 condition 列,選擇 Edit Condition Column …,如圖 7 所示,在彈出的條件定義窗口中定義 Card Type 條件規則。
折扣計算策略的兩個條件定義好後,接下來定義 Action。操作方法與條件列的創建類似,右鍵 Decision Table 中的 Action 列,選擇 Edit Add Column … , 跳出如下所示的 Action 列定義窗口,如圖 8 所示,設置折扣率。
圖 9 為 Rule Designer 中設計並開發好的決策表。
查看本欄目
將規則項目部署到 RES 上,需要在 Rule Designer 上創建該規則項目對應的規則應用工程。這裡就不詳細介紹部署過程。發布成功後,開發人員可以登陸 RES 頁面,下載或獲取該規則項目的 WSDL 地址。然後再將該規則項目同步到決策中心(Decision Center)上。這樣業務人員及決策者可以登陸決策中心,直接對規則、決策表及決策樹等進行查看,編輯及添加,如圖 10 所示,可以對決策表中的消費總金額的最大最小阈值范圍,折扣率,甚至是會員卡的類型進行修改。也可以修改決策表的行或列,以增加新的策略或條件。
IBPM 提供的 JRules Decision Service 是專門用於集成那些托管在 WODM7.5 及更高版本上的決策服務。因此,在 IBPM 業務流程中,使用 JRules Decision Service 組件是實現與 WODM 的集成最便捷最有效的方法。
通常使用 JRules Decision Service 組件之前,需要在 BPM 中配置 WODM 服務器信息。如圖 11 所示,在 Process App Setting 的 Servers 選項卡中,添加一個 WODM 服務器,配置其名稱,服務器類型,以及服務器位置信息。這裡主要服務器類型選擇 ILOG Rules Server,ILOG Rules 是 WODM 更名之前的名稱。
創建一個 Decision Service,從左側 palette 中拖拽 JRule Decision Service 組件到 Service Diagram 上。重命名該節點為 WODM Integration,再 Implementation 中的 Discovery 下面配置 Server 信息,在 Server 後的下拉菜單中選擇前面配置好的 WODM 服務器,指定一個端口號用於 SOAP 連接。然後點擊 Connect 按鈕。連接成功後,右側 Rule 部分就會列出寄宿在該 WODM 服務器上的所有規則項目。如圖 12 所示,選擇前面開發好的 goodssettlementruleapp 及 goodssettlement Ruleset,保證使用最新版本的 RuleApp 及 RuleSet。然後點擊 Generate Types …按鈕完成 Type Generation。
接下來在 Properties 的 Data Mapping 項中配置與該 JRule Decision Service 組件交互的輸入輸出變量。如圖 13 所示。
最後,將 Decsion Service 綁定到商品結算流程中的折扣判斷決策網關上。如圖 14 所示,將開發好的 Evaluate Discount Rate 綁定到"Has Discount"決策網關上,接下來在 Implementation 中使用 Decision service 返回的結果實現折扣的判斷。這樣就完成了 WODM 與 IBPM 的集成。
查看本欄目
當整個規則項目被成功部署到 RES 上後,同時也被發布為 Web Service 供外部系統調用。IBPM 中提供的 Web Service Integration 組件使其與 Web Service 的調用變的簡單快捷。因此,也為 WODM 與其集成提供了新的解決方案。下面展示該集成方法的開發過程。
首先,新建一個 Integration Service,從右側的 Common 中拖拽 Web Service Integration 組件到服務 Diagram 上,然後在將其與 Start 及 End 節點用 Sequence flow 連接起來。如圖 15 所示,選中該 Web Service Integration 活動,在屬性頁中的 Step 中對其重命名,並 Implementation 中的 WSDL URI 處填寫前面得到的 WODM 規則服務的 WSDL 地址。然後點擊 Discover 按鈕,在填出的 Discover 窗口中確認 WSDL URI,並點擊 Discover 按鈕。當 BPM 成功的發現該 Web 服務,Implementation 中的 Operation 處將顯示該服務提供的所有方法。這裡選擇 Goodssettlementrule 方法。
定義該集成服務的輸入及輸出參數,切換到 Variables 視圖,如圖 16 所示,通過 Add Input 和 Add Output 能夠很方便的創建輸入輸出參數。定義完輸入輸出參數後,返回 Diagram 視圖,選中集成服務節點,然後點擊屬性頁中的 Data Mapping 項,在右側綁定 Web Service 調用前後的輸入輸出參數。到此 Web Service 集成服務創建完成。
下面將該 WS 集成服務綁定到 Decision Service 上,完成與 BPM 的集成。如圖 17 所示,新建一個 Decision Service,從右側的 Common 中拖拽 Nested Service 到服務 Diagram 上,然後在 Properties 頁中的 Implementation 處綁定剛剛創建好的 WODM Web Service Integration Service。最後再將該 Decision Service 綁定到流程中的"Has Discount"決策網關上,完成 WODM 與 BPM 的集成。
查看本欄目
使用 Java Integration 的方式實現與 WODM 集成,實際上是使得開發人員可以按照他們最熟悉的 Web Service Client 調用 WODM Web Service,從而實現與 WODM 的集成。開發人員使用 Java IDE 開發 Web Service Client 程序調用前面發布好的 WODM 規則 Web 服務,然後將該 Java 工程打包成 jar 包。IBPM 提供的 Java Integration 節點極大的方便了 BPM 與外部 Java 包的集成。下面展示該集成方法。
首先將開發好的 Jar 包上傳到 BPM 服務器上。如圖 18 所示,點擊 Process Designer 左側 Files 後面的加號,在彈出的下拉菜單中點擊 Server File。然後在彈出的文件創建向導窗口中,點擊 Browse,選擇剛剛導出的 jar 包,然後點擊 Finish。
新建一個 Integration Service,從右側的控件列表中拖拽 Java Integration 組件到 Diagram 上,再使用 Sequence flow 將其與 Start 和 End 節點連接起來。然後在該節點的 Properties 中的 Definition 裡綁定前面導入的 jar 中的 Java 類。操作方法如圖 19 所示,點擊 Select 按鈕,在彈出的菜單中選擇 GoodSettlement.jar 下面的 GoodsSettlement 類。然後在 Method 後的下拉菜單中選擇 evaluateDiscountRate 方法。最後設置 Data Mapping 中的輸入輸出參數,完成 Java Integration 組件的創建。
下面要先將該 Java Integration 組件綁定到 Decision Service 上,然後再將該決策服務綁定到流程中的"Has Discount"決策網關上,從而完成 BPM 與 WODM 的集成開發。
本文以一個簡單的業務模型將快速的展示了 IBM WODM 的規則建模能力,IBPM 的流程建模能力以及產品整合能力。本文為讀者呈現了三種 WODM 與 IBPM 集成開發方法。由於篇幅和時間的限制,都采用了最簡單的方式來呈現給讀者。感興趣的讀者可以從本文介紹的方法入手,使用 WODM 開發功能更為強大的企業運營決策規則,並使用本文提供的三種方法實現與 BPM 業務流程進行集成。