評論專欄: 為執行建模,再論
簡介: 為執行建模技術已經被廣泛地應用於業務流程管理(BPM)解決方案的設計。本文突出了在如何將這個概念應用於成功的 BPM 專案交付方面的一些發展。 本文來自於 IBM WebSphere Developer Technical Journal 中文版。
在 2008 年的一篇關於 IBM® WebSphere® 業務流程管理工具的 文章 中曾討論過為執行而建模的方法。在 2009 年的一篇 後續文章中 討論了 IBM 的 BPM 堆疊產品 V6.2 版本的改進,這些產品簡化了為執行建模的流程。現在到了 2010 年,由於我們已經在這個領域有了一些實際的實現體驗,另外業務流程管理方面也出現了一些新的工業標準,因此現在是時候來再次討論一下這個主題了。
為執行建模並不是一個新概念,因為這種方式已經在傳統的軟體和系統開發中被用了有一些時間了。它總是開始於一個用某種可視語言表達的高階平臺獨立模型(PIM)。這個模型然後會被以一種針對特定平臺的特定的程式語言翻譯或轉換為一個特定於平臺的模型(PSM),然後才可被編譯後執行。實際上,這個方法使用了 Object Management Group (OMG) 的 Model Driven Architecture (MDA) 的原理。圖 1 顯示了這兩個模型之間的關係。
圖 1. 模型轉換
這個受模型驅動的架構開始於我們熟知的並且是長期建立起來的將系統的運轉與該系統如何使用其平臺功能的細節分離開來的想法。MDA 的三個首要目標就是通過關注點的架構分離的可移植性、互操作性和可重用性。
BPM 解決方案交付是一種新的受業務驅動和以流程為中心的交付應用程式的方法。它能夠也應該使用在過去十幾年間的軟體開發和系統工程中所積累的最佳實踐。MDA 原理當然也可以應用在這裡,但由於 MPM 解決方案交付比較獨特,因為它更強調可重複的業務設計並需要業務使用者和分析人員更多的參與,因此在採用為執行而建模技術時需要加以特別的考慮。
很多公司均已經為基於 WebSphere BPM 產品套件的解決方案交付使用了為執行而建模的方法和技巧。圖 2 顯示了從業務模型轉換為技術業務模型再到實現模型的典型轉換。
圖 2. 從業務模型到實現模型
圖 2 顯示了這三個階段:
- 一個業務分析員或業務流程架構師在 Basic 或 Advanced 模式下在 IBM WebSphere Business Modeler 中建立一個業務模型。這個業務模型圖形化地顯示了業務流程並使用了與業務分析員和主題專家相關的語義。這個業務模型也可被用於模擬。
- 一個技術業務分析員或技術流程架構師在 IBM WebSphere Process Server 模式下優化此模型,生成一個技術業務模型來圖形化地給出業務流程並開始將業務語義翻譯成技術語義。技術業務分析師從 WebSphere Business Modeler 作為一個專案交換檔案匯出技術業務模型,這個檔案的格式為 .zip,內含組成這個實現模型的所有執行時工件。
- 一個流程架構師或整合開發人員將這個實現模型匯入到 IBM WebSphere Integration Developer。 這個實現模型圖形化地給出要實現的業務流程。整合開發人員可進一步完善這個模型並完成從業務語義到技術語義的翻譯。
這裡有一點非常重要,需要注意,即雖然是工作在 WebSphere Business Modeler 內,但底層的那些模型還是表示為一個特定於 Modeler 的 BOM(業務物件模型)流程模型。當作為一個專案交換檔案匯出模型時,這些 BOM 流程模型就會被轉換為 BPEL 流程模型,而這正是您在 WebSphere Integration Developer 內處理的語義。
使用者在使用為執行建模的方式交付 WebSphere BPM 解決方案方面有了一些成功經驗,尤其是在再物件導向和以整合為中心的流程領域。而它的實現是通過使用 BPEL 作為轉換自業務流程模型的底層特定於平臺的模型(PSM)獲得。 BPEL 是一種開放的行業標準,也是一種經過驗證的流程編排語言,並特別側重於 Web 服務整合。現在,很多公司都具有基於 BPEL 的關鍵流程應用程式在生產中執行,提供了所需的事務整體性、安全性和效能。
雖然就執行時而言,目前的 WebSphere 的為執行建模提供了強壯的解決方案,但是在開發流程方面仍有改進的空間,尤其是在迭代開發的模型同步領域。
圖 3 給出了在目前的工具條件下這個情況是如何處理的。
圖 3. 用 WebSphere BPM 工具進行的迭代開發流程
如您所見,這個流程可能會相當複雜,並且會涉及幾個手動步驟,而手動步驟很容易發生錯誤。實際的使用者體驗也表明這種方式對於經常需要進行更改的情況將非常有挑戰性,這就是廣為人知的 “roundtriping” 問題。當然,這個問題並不是 WebSphere BPM 堆疊獨有的。只要您在具有不同語義的不同領域間進行模型轉換,模型同步都將是一個挑戰。
於是出現了為執行建模的一些最佳實踐。一種是在 WebSphere Integration Developer 內減少對代表著業務模型的業務邏輯模組的更改。由於業務邏輯模組內的元素直接與 WebSphere Business Modeler 內的元素對映,所以應該在 WebSphere Business Modeler 內做更改。尤其應該減少對流程的結構性更改。
像這樣的建議對於減少模型同步的需要可能會有所幫助,但是它們並不能完全消除這種需求,而這就為我們帶來了另一種方式。
Lombardi Software 是 BPM 軟體和服務的領先提供商,該公司於今年年初被 IBM 收購,它對為執行建模有著自己獨特的見解,因為它會在流程的整個生命週期都保持此模型具有相同的格式。圖 4 給出了 Lombardi Teamworks BPM 套件的架構。
圖 4. Lombardi Teamworks 為執行建模的方式
如上所示,在 Teamworks 內定義的所有流程元素均儲存在一個單一的 Shared Model 中,用以表示流程內的每個元素,從流程圖到業務資料、使用者介面和系統整合。藉助 Shared Model 架構,在一個流程元素內所作的更改會(根據訪問許可權)立即可見並可由其他流程元素訪問。這就使得流程元素之間的依賴性一目瞭然,也就讓流程設計者能夠進行更好的交流並有助於流程質量的提高。
那麼,為什麼這一點對於為執行建模如此重要呢?因為業務建模者和開發者(如圖 4 所示)處理的是相同的共享底層流程模型 —— 只是從不同的檢視和透檢視 ——- 此模型永遠不會不同步,並且 roundtripping 問題也沒有了!這個範型會激勵更為迭代和敏捷的開發,業務管理者和 IT 部門也會有更緊密的協作。
現在,對於為執行建模我們有了兩種策略:
- 轉換模型以實現優化的執行時行為。
- 跨流程生命週期共享模型。
哪個更好?答案仍要依賴於您實現的是哪種業務流程以及哪些因素對您最為重要,比如是對敏捷和迭代開發的支援,還是對 round-trip 的支援,又抑或是執行時健壯性、持續流程改善、鼓勵業務/IT 協作的簡單易用性,等等。
希望這些資訊能夠幫助您在為您特定的需求選擇正確的方法和工具時擴充套件您的思維和決策過程。
原文連結:http://www.ibm.com/developerworks/cn/websphere/techjournal/1004_col_xu/1004_col_xu.html
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14789789/viewspace-669854/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 評論專欄: 使 Web 2.0 趨向成熟Web
- 再論執行oracle DDL語句要注意的問題Oracle
- 以“空城計”為例的專案管理執行方法論乾貨專案管理
- 家訪(圖論建模)圖論
- 再論開源
- [技術討論]建模工具的使用到客觀評價
- 多執行緒理論執行緒
- 外刊 IT 評論
- 淘寶商品評論介面,商品評論內容,天貓商品評論介面程式碼展示
- 淘寶商品評論資料介面,電商平臺評論介面,行業商品評論資料介面程式碼封裝教程行業封裝
- 最小步數(圖論建模)圖論
- 京東商品評論資料介面,電商平臺評論介面,行業商品評論資料介面程式碼封裝教程行業封裝
- MongoDB資料建模小案例:朋友圈評論內容管理MongoDB
- 再論“庫存控制”
- 再論NAT和穿透穿透
- 資料倉儲建模方法論
- “摩登時代”:試論《幽靈行動:斷點》為何惡評如潮斷點
- 再談方法論和模式模式
- 網易雲音樂評論爬蟲(2):歌曲的全部評論爬蟲
- 關於實現論壇的回覆評論
- 從執行緒池理論聊聊為什麼要看原始碼執行緒原始碼
- 專案總監的方法論總結——點評
- document模型裡為什麼只有評論數字段模型
- 為hexo部落格新增基於gitment評論功能HexoGit
- [20140213]再論行遷移.txt
- JavaScript基礎 釋出評論/刪除評論/獲取時間JavaScript
- 關於部落格評論外掛的討論
- GoLang之Concurrency再討論Golang
- Java多執行緒之synchronized理論Java執行緒synchronized
- Explain For理論執行計劃相關AI
- JavaScript 論程式碼執行上下文JavaScript
- 評論功能完成,順便總結下開發評論的經驗
- 專案需求討論-標題欄上的搜尋功能
- 數學建模 # 1 論文撰寫技巧
- 第 10 篇 評論介面
- API 獲取商品評論?API
- final釋出評論
- 獲取評論相關的欄位值一段php程式碼PHP