使用 WebSphere Business Modeler 進行業務建模
周 暉 (zhuish@cn.ibm.com), Websphere 架構師, IBM
陳 宇翔 (chenyux@cn.ibm.com), 資深 Websphere 工程師與行業架構師, IBM
SOA 的概念、產品平臺已經廣為業界所接受,SOA 適用的業務範圍以及可以給業務帶來的益處也廣為宣傳,但是一個專案如何用 SOA 的方法來做業務分析、架構設計到編碼實現、測試上線確是很多客戶所困惑的事情,包括一些應用開發廠商。大家都知道 SOA 的架構設計和傳統的 J2EE 架構設計不一樣,開發過程也不一樣,比如客戶最想知道的一個問題:服務是如何抽取的,什麼樣的顆粒度是合適的。
本系列文章以假定的業務為樣例來回答上述問題,通過一個較為真實的例子帶讀者走一遍 SOA 的開發歷程,也從中深刻體會 SOA 的開發和傳統開發的不同之處,掌握 SOA 開發的基本要領。在這過程中,充分使用 IBM 的 SOA 工具一步一步實施,讓讀者最終可以重現此 SOA 的開發過程。
本系列文章,共分為 4 個部分,本文為第 1 部分,將向您講述業務建模,即如何從一個具體需求開始,使用 IBM 的 SOA 建模工具 WBM(Websphere Business Modeler) 進行業務建模。第 2 個部分是服務建模和架構設計,以業務建模為輸入,通過 RSA(Rational Software Architect)+SOMA-ME(Service Oriented Modeling and Architecture--Modeling Environment),進行服務識別、確定服務規約,進行架構設計。第 3 部分介紹如何使用 WID(Websphere Integrated Developer) 進行開發,從 WBM 匯入業務建模,生成開發的粗框架,然後具體編碼實現,並進行單元測試和系統測試。第 4 部分,這是一個示例專案用 SOA 方法進行實施,總結實施中的一些經驗。
|
本文的業務案例是支付平臺的業務,也即支付方通過支付平臺支付費用,如水電煤費之類的費用。支付平臺根據請求到銀行扣款,然後根據一定的規則收取支付平臺費用,最後向收費方核銷費用。
這個業務是個常見而典型的業務。業務流程如下:
以下為圖中每個節點的業務功能介紹:
1、使用者登入繳費平臺,選擇一筆費用進行支付,提交請求,觸發支付流程,進入流程節點報文處理,繳費平臺的繳費要求和支付平臺的報文處理之間通過 JMS 繫結。
2、流程進入支付平臺,對進入的報文進行處理,曝光記錄日誌,從支付請求報文中提取資料,把支付相關資訊寫入資料庫。
3、支付平臺將支付請求發往銀行,和銀行之間通過 MQ 通訊,把報文發給指定的 MQ 佇列,非同步等待另外一個 MQ 的銀行報文回覆
4、銀行響應,支付平臺接收銀行回來的報文,通過 MQ 繫結此節點輸入
5、報文處理,支付平臺處理已接收到的回覆報文,如更新銀行支付資訊的資料庫
6.1、對這筆支付進行計費,如果交易成功,則按如下的規則進行計費
計費業務規則:
根據客戶程式碼 PAYER_NO 的值,確定是哪類客戶:包月客戶,按次客戶,按交易量客戶
如果是包月客戶,不計費
如果是按次客戶,計費一次,一次收費 0.5 元
如果是按交易量計費,則交易金額低於 10000,收費 1 元,交易金額大於 10000,收費 2 元,更新計費表,在資料庫中提交交易費用,記錄交易流水。
6.2、支付響應,支付平臺給繳費系統回應是否支付成功。
7、支付核銷,繳費平臺把核銷的報文傳送給收費方做費用核銷。
|
IBM WebSphere Business Modeler ( 簡稱 WBM) 是一個簡單易用的業務過程建模工具,除了可以對流程建模,還可以對業務規則建模、對業務資料建模,WBM 是非系統設計的資料建模,對於系統設計階段的資料建模,可以用 Rational Data Architect 建模
在業務建模中,業務資料建模是個比較關鍵的步驟,業務人員做需求分析的時候,把業務流程流經的每個節點的業務資料梳理出來,很形象的來說就是一個業務表單,要做這個業務,需要哪些業務資訊。
本文 WBM 的版本是 V6.1.2。
開啟 WBM,選擇選單 -> 檔案 -> 新建 -> 專案 ->Websphere Business Modeler-> 業務建模專案。輸入專案名稱及預設流程名稱,點選下一步。選擇泳道佈局 -> 點選完成。
接下來建立業務資料項。通過 WBM 建立的業務資料模型,稱為業務項。
在專案樹下,點選業務項,右鍵 -> 新建 -> 業務項。如下圖:
比如這個業務裡面的支付請求業務項 PAY_REQUESR,業務上會包括:
交易程式碼
交易序列號
請求時間
支付者編號
支付者銀行帳號
支付的業務型別
支付的筆數
支付的總金額
記賬日期
支付的詳單(注,業務上可以一次支付多筆業務,每筆業務有一個詳單)。
分別輸入各個業務項的屬性和型別,每個業務項的屬性均可以輸入屬性描述,便於對資料項業務含義的理解。還可以新增業務項的說明文件。
再分別完成請求回覆的業務項 (PAY_RESPONSE)、計費業務項 (CHARGEBO)、核銷資訊 (HEZHU)、計費項(CHARGEITEMBO)。在實際架構設計中,這些業務項就是資料架構設計的原型,在詳細的資料架構設計中,會針對 IT 的需要增加一些欄位。
WBM 的業務資料建模支援資料型別的巢狀和陣列的定義,如 PAY_REQUEST 中就包含有 PAY_DETAIL 的資料結構陣列。資料項即可以通過 XSD(XML Schema Definition,XML 綱要)匯入。
|
這個業務有典型的業務流程,有嚴格的執行順序,雖然主要是自動流程,但也可以引入人工流程做異常處理。
用 WBM 建模,可以把業務模型直接匯入開發環境,這樣一方面可以重用業務模型,不需要重新編排業務流程,另外一方面也消除了 IT 人員重新畫業務流程和業務人員的流程上理解不一致帶來的差異,也即消除了業務模型到 IT 模型的溝壑。
WBM 支援泳道形式的業務流程建模,也支援自由形式的流程建模。考慮到泳道形式的業務流程更易於理解,我們用泳道方式對支付業務建模。
先定義泳道,可以有多種方式劃分泳道,如角色、資源、分類、位置、組織架構單元等。在本示例中,都是自動流程,我們按不同的角色的方式劃分,如按下圖方式定義角色:
根據業務需求定義了 5 個:
計費系統
支付平臺
繳費系統
銀行
收費方
如下圖,在專案樹下,點選資源 -> 右鍵 -> 新建 -> 角色,輸入角色名稱,重複其他 4 個角色的定義。
下面定義流程的每個節點,以第一個節點—支付請求為例,從 WBM 的選用板中拖一個任務到繳費系統的泳道,點選屬性,在常規標籤中輸入名稱支付請求。
定義一個業務節點,除了要描述業務實現的功能,還要定義完成此業務所需要的業務項,和完成以後可以提供給下一步的業務項。點選屬性的輸入標籤,點選新增,點選關聯資料右端,彈出型別選擇,選擇業務項 ->PAY_REQEUST,輸出也是 PAY_REQUEST。
如果是人員任務,還要定義組織架構,任務以什麼方式分配到什麼角色或是資源,任務在什麼情況下進入升級處理,如任務沒有人去宣告處理,或是處理時間超時等進入升級,進入升級後的通知操作,以 Email 還是任務項的形式通知什麼人去處理。
逐個定義業務流程的每個活動項,並用合適的連線連線。
如上圖,為最終的 WBM 的流程建模。圖中每個節點的輸入輸出都會顯示。
|
在業務中,計費是按照規則計費的。有 2 個規則,一個是客戶分類規則,另一個是計費規則。WBM 可以對業務規則進行建模,和 WID(Websphere Integration Developer) 的規則建模類似。WBM 可以先建一個規則模板,然後再模板上再例項化為業務規則,也可以直接建立業務規則。通過模板的方式建規則,是個很好的規則重用方式。
對於第一個規則:客戶分類,是按照 PAY_REQUEST 中的業務屬性支付者編號 PAYER_NO 來劃分的,如果 PAYER_NO 小於 10000 就是包月客戶,也即不對每次交易計費。如果 PAYER_NO 大於等於 10000 且小於 20000 就是按次客戶,一次支付計費 0.5 元,也即不對每次交易計費。如果 PAYER_NO 大於 20000 就是按交易金額計費的,交易金額低於 10000,收費 1 元,交易金額大於 10000,收費 2 元。
一個業務規則建模分為 2 部分,一是條件定義 If,二是 then 的操作。如下圖為條件定義,通過 AND/OR 可以定義多個條件組合,條件定義多是輸入變數的一些判斷。
從選用板中拖一個業務規則任務到計費系統的泳道中,屬性 -> 常規 -> 名稱中輸入確定客戶型別,在屬性 -> 輸入中選擇兩個輸入:CHARGEITEMBO,PAY_REQUEST。輸出中選擇 CHARGEBO 和 CHARGEITEMBO。在業務規則標籤中新增規則,輸入名詞確定客戶型別,點選新增規則,點選規則條件右端,彈出規則條件對話方塊如下:
點選新增,也即新增一個條件,在第一項下選擇建模工件,然後選擇輸入的屬性 PAYER_NO,運算子選擇小於等於,第二項選擇數字,然後輸入 10000。
確定以後點選規則操作的右端,彈出規則操作對話方塊,如下圖為 then 的操作定義,主要是對輸出的業務屬性的賦值,詳細資訊中選擇 Type,值規範中選擇特定值,輸入“按月計費”。
這樣就形成了客戶型別的第一個規則。
針對每個業務規則,WBM 會生成很容易讀懂的指令碼,如下圖是確定客戶型別的第二個規則。
類似的,再設定計費的業務規則。通過條件判斷,給輸出的 CHARGEITEMBO 的 Fee 賦值。
|
完成了業務建模以後,要匯出業務模型,並將之匯入 WID,以生成專案檔案和專案框架。
在 WBM 中點選專案右鍵,選擇匯出,進入下圖介面:
選擇 Websphere Integration Developer(開發工具)。
點選下一步,選擇匯出檔案存放目錄。進入下一步的匯出設定:
注意:一般按推薦選項,然後把實施模組名稱和庫名詞修改為英文,為了開發方便起見,流程的節點名字,流程業務項都最好用英文,這樣最終生成的 WID 就都是英文變數,否則在 WID 中的中文變數、專案名會帶來一些開發的麻煩。
然後點選完成,就可以生成 WID 的匯入專案,一般是專案名稱 + 生成日期時間的 zip 交換檔案。
至此,我們完成了業務建模的工作,包括業務資料 ( 業務表單 ) 的建模、流程建模和規則建模,並把業務建模的成果匯入開發環境,形成了粗的開發框架。
對一個具體的業務例子,我們應用業務建模的方法,通過 WBM 對此業務例子進行了業務建模。業務建模使得業務人員把需求以一種比較標準的方式移交給 IT 開發人員,消除了從業務需求和 IT 實現之間的歧義。這個業務建模是未來服務識別的一個重要輸入,也可以匯入開發環境,生成開發框架,是 SOA 架構設計的重要一環。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14789789/viewspace-610877/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 使用 WebSphere Business Modeler 實現業務流程的直接部署Web
- WebSphere Business Events 進行業務事件處理Web行業事件
- 使用 WebSphere Business Events V6.1 進行業務事件處理Web行業事件
- WebSphere Business Modeler 的 10 大問題Web
- 瞭解 WebSphere Business Modeler 與 FileNet 整合Web
- WebSphere Business Modeler V6.2 中的新增功能Web
- WebSphere Business Events 構建業務事件應用程式Web事件
- 使用 WebSphere Adapter 整合 Oracle Workflow Business Event System 實現業務整合WebAPTOracle
- 自定義 WebSphere Business Monitor 業務空間的外觀Web
- 使用WebSphere Business Events REST介面從應用程式發出簡單業務事件WebREST事件
- 使用Business Events和Business Monitor對感測器資料進行智慧分析
- 使用Gensim進行主題建模(一)
- 使用Gensim進行主題建模(二)
- WebSphere Business Services Fabric v6.1 概述Web
- 配置 WebSphere Business Monitor V6.1.2 安全環境Web
- WebSphere Business Monitor 事件處理內幕揭祕Web事件
- WebSphere Business Monitor V6.2 中的新增功能Web
- 使用SAP WebIDE進行SAP Cloud Platform Business Application開發WebIDECloudPlatformAPP
- 使用 WebSphere CloudBurst 進行應用程式環境遷移(一)WebCloud
- 使用 WebSphere CloudBurst 進行應用程式環境遷移(二)WebCloud
- 在 WebSphere Process Server 中進行版本管理WebServer
- [技術討論]業務建模和使用者業務的關係
- 將 Business Events 與公共業務事件整合事件
- 用形而上學進行領域建模
- 使用業務能力方法實現DDD戰略建模 - pulse
- 使用WebSphere Integration Developer和WebSphere Process Server的二進位制Jar檔案WebDeveloperServerJAR
- 業務領先模型(Business Leadership Model; BLM)模型
- 使用 AI 進行 - 視覺化 - 業務&系統邏輯AI視覺化
- SAP 業務技術平臺(BTP) 上的 Business Rules Service 使用介紹
- EA業務建模實踐之業務用例圖
- 構建一個高可用 WebSphere Business Events 事件基礎設施Web事件
- 使用TLA +進行分散式系統的建模與除錯設計分散式除錯
- Oracle 12.1業務使用者使用序列時報ORA-600導致業務無法正常進行Oracle
- 跨境電商必看:如何使用Pinterest進行海外業務營銷? - aestheticREST
- 對業務流程建模而不是對實體建模 - poweredbybeard
- 業務資料分析和建模薦
- 業務建模:CQRS應用場景
- 時間序列分析專題——利用SPSS專家建模器進行建模SPSS