—、PowerDesigner12.0
Sybase 公司PowerDesigner上海研發(fā)中心
1.簡(jiǎn)介:
激烈的市場(chǎng)競爭要求企業(yè)不斷改善其業(yè)務(wù)過(guò)程,努力提高其業(yè)務(wù)流程的靈活性、敏捷性和對市場(chǎng)變化的響應速度。業(yè)務(wù)流程管理(BPM)可以減少企業(yè)的低效之處,幫助企業(yè)主動(dòng)跟上市場(chǎng)的變化步伐。BPM企圖在無(wú)秩序的業(yè)務(wù)與技術(shù)的“十字路口”尋找它們之間的聯(lián)系,為了避免這些流程被“寫(xiě)死”到應用程序的代碼結構中的,導致以后無(wú)法更改,面向服務(wù)的體系架構(Service-oriented architecture,SOA)已經(jīng)成為構建企業(yè)級分布式應用程序的首選藍圖,并成為 BPM 的一個(gè)重要基礎?;凇胺?wù)”的設計可以靈活更改流程,而且流程服務(wù)能夠快速組合,從而編排成更大的端到端流程。
BPM將圖形流程建模功能與應用開(kāi)發(fā)相結合起來(lái),使業(yè)務(wù)分析人員可以通過(guò)解析和描述業(yè)務(wù)功能下面的流程,使工作流合理化,并最終優(yōu)化它們,而IT 技術(shù)人員必須讓現有的應用集成軟件如EAI等協(xié)調行動(dòng),使開(kāi)發(fā)基于流程的應用所需的應用功能可以實(shí)現跨企業(yè)集成。當這個(gè)業(yè)務(wù)設計階段完成時(shí),模型送到開(kāi)發(fā)人員的手中,開(kāi)發(fā)人員將業(yè)務(wù)流程映射到考慮EAI細節的一個(gè)開(kāi)發(fā)環(huán)境中。這種從業(yè)務(wù)人員到開(kāi)發(fā)人員的移交過(guò)程非常關(guān)鍵。大多數廠(chǎng)商提供兩種建模器:一種供業(yè)務(wù)分析員使用,另一種供實(shí)際描述應用如何開(kāi)發(fā)和集成的細節的IT人員使用,存在的一些問(wèn)題:
1)業(yè)務(wù)分析人員建立受業(yè)務(wù)規則制約的模型,而IT必須創(chuàng )建和維持受現有軟件的能力制約的模型。因此,必須建立業(yè)務(wù)過(guò)程分析模型與業(yè)務(wù)過(guò)程開(kāi)發(fā)模型的同步關(guān)系
2)服務(wù)通過(guò)面向對象模型來(lái)加以描述。面向服務(wù)的業(yè)務(wù)流程建模中活動(dòng)主要由服務(wù)來(lái)完成,必須建立業(yè)務(wù)過(guò)程模型與面向服務(wù)的對象模型之間的交互關(guān)系,方便建模過(guò)程中的服務(wù)(消息,接口等)選擇。
3)業(yè)務(wù)過(guò)程與服務(wù)在企業(yè)動(dòng)態(tài)環(huán)境下(如公司并購等),兩者都會(huì )發(fā)生相應的變化,必須提供影響度分析(Impact Analysis), 在各自變更前分析所需要做的修改。
因此,必須提供集成化的建模工具,目前各主要的建模工具廠(chǎng)商如Sybse PowerDesigner, IBM Rational Rose, Computer Associates的ERWin等都在發(fā)展與加強各自建模工具的融合與集成。PowerDesigner經(jīng)過(guò)近20年的發(fā)展,已經(jīng)在原有的數據建模的基礎上,形成一套完整的集成化企業(yè)級建模解決方案,融合了幾種標準建模技術(shù):傳統數據庫建模、使用 UML 的應用程序建模和業(yè)務(wù)流程建模,對面向SOA的業(yè)務(wù)過(guò)程建模提供了從分析到設計的全面支持。本文將首先介紹PowerDesigner12.0對業(yè)務(wù)過(guò)程建模提供的基本能力,并通過(guò)一個(gè)典型實(shí)例展示其強大地全面建模功能。
2.PowerDesigner12.0對面向SOA業(yè)務(wù)過(guò)程建模地支持
PowerDesigner12.0將業(yè)務(wù)過(guò)程建模過(guò)程分成分析到開(kāi)發(fā)兩個(gè)階段,并且在這兩個(gè)階段對不同的標準如BPMN1.0, ebXML, BPEL4WS等提供了不同的業(yè)務(wù)建模視圖(見(jiàn)表1)。不同階段的業(yè)務(wù)過(guò)程模型之間,如業(yè)務(wù)過(guò)程分析模型與BPEL4WS的業(yè)務(wù)過(guò)程執行模型,可以通過(guò)“Generate Business Process Model…”進(jìn)行相互生成。(特別需要指出的:當目標模型已經(jīng)存在,PowerDesigner內置的元模型比較與合并機制進(jìn)行自動(dòng)或交互模型更新)。
表1: 業(yè)務(wù)過(guò)程建模類(lèi)型
PowerDesigner基于UML的面向對象建模(OOM),通過(guò)類(lèi)圖(Class),組件圖(Component)及部署圖(Deployment),可以將Web服務(wù)定義為包含Web服務(wù)實(shí)現的組件(Component),如圖1。除了支持將現有的類(lèi),轉換為相應的WebService組件,還可以通過(guò)WSDL以及UDDI的反向工程,導入相應的Web服務(wù)定義。PowerDesigner支持Java主要Web服務(wù)框架(AXIS, JAXM, JAX-RPC, Web Services for J2EE)以及.Net。
在定義業(yè)務(wù)過(guò)程建模過(guò)程中,可以通過(guò)Service Provider Import/Export將BPM中定義的Web服務(wù)導出到OOM,以此基礎上進(jìn)行Web服務(wù)的實(shí)現設計,或者將現有的OOM中的Web服務(wù)定義導入BPM,定義相應的活動(dòng)調用方式。兩者具體的映射關(guān)系:
表2: 業(yè)務(wù)過(guò)程建模與面向對象模型映射關(guān)系
3. 應用實(shí)例
3.1業(yè)務(wù)過(guò)程需求分析
PowerDesigner的提供了一個(gè)以過(guò)程模型為核心的,包括功能模型、信息模型、組織模型和資源模型的企業(yè)建模工具。圖2是典型的客戶(hù)訂單處理流程,其創(chuàng )建步驟一般為:
1)首先創(chuàng )建一個(gè)業(yè)務(wù)過(guò)程模型。選擇過(guò)程語(yǔ)言為“Analysis”,且為“Business Process Diagram”類(lèi)型的圖。我們將這個(gè)業(yè)務(wù)過(guò)程模型命名為“OrderFulfillment BPM(Analysis)”。打開(kāi)業(yè)務(wù)過(guò)程模型的可視化編輯環(huán)境開(kāi)始新流程的建立。通過(guò)拖放工具欄(Palette),來(lái)完成建模內容的選擇。
2)添加相應的開(kāi)始節點(diǎn),如Customer submits order,任務(wù)(Process),如“Record order request”, “Check credit card details”, “Check item availabity in stock”等,以及結束節點(diǎn),如:“Item unavailable”, “Order complete”等。
3)使用“Flow/Resource Flow”,“Decision”,“Synchronization”來(lái)建立任務(wù)之間的邏輯關(guān)系,即業(yè)務(wù)邏輯。如“Credit card details”決策節點(diǎn)驗證不通過(guò),則到達“Unauthorized amount”狀態(tài)。
4)“Resource”表示了業(yè)務(wù)過(guò)程中所設計的資源,可以是數據庫,文件甚至是企業(yè)的Legacy系統如ERP, CRM等。比如Stock,Bank等。當然“Flow/Resource Flow”也可以定義任務(wù)所需的資源。
5)通過(guò)“Organization unit swimlane”來(lái)表示,各個(gè)任務(wù)所涉及的組織或角色等。如 “Accounting Dpt”,“Sales Dpt”等。
圖2. 業(yè)務(wù)過(guò)程分析模型
3.2 BPEL4WS的業(yè)務(wù)過(guò)程定義
在進(jìn)行業(yè)務(wù)流程需求分析以后,可以通過(guò)“Tools”菜單中的“Generate Business Process Model…”,選擇業(yè)務(wù)流程的執行語(yǔ)言如BPEL4WS,PowerDesigner可以根據業(yè)務(wù)需求分析,生成相應的業(yè)務(wù)流程執行語(yǔ)言對應的業(yè)務(wù)過(guò)程定義。如圖3是在自動(dòng)生成的基礎上,并進(jìn)一步進(jìn)行開(kāi)發(fā)后的的業(yè)務(wù)流程(限于篇幅展示部分BPM)。
圖3 BPEL4WS 業(yè)務(wù)過(guò)程模型
具體的創(chuàng )建步驟一般為:
1)通過(guò)Service Provider Wizard(如圖4)建立活動(dòng)的服務(wù)提供者,如“Check Credit Card details”活動(dòng)所需調用的“BankAccountManagement”的Web服務(wù)。包括Service基本信息,如Target namespace, Prefix等,Service的接口定義,以及服務(wù)相關(guān)的XML Schema定義等。同時(shí)可以通過(guò)BPEL4WS預覽服務(wù)的定義。
圖4. Service Provider定義Wizard
2)通過(guò)Message Format Wizard定義業(yè)務(wù)過(guò)程相關(guān)的消息。PowerDesigner中Message Format就是WSDL中的Message,定義了活動(dòng)之間的信息交換,由Message Part組成(對應與WSDL的Message中的Part)。如消息“checkCreditCardSoapIn”和“checkCreditCardSoapOut”等。
3)通過(guò)Variable Wizard定義變量。通常是流程正確執行所需的局部數據,如流程分支的決策變量“CreditCardVar”等。
4)定義活動(dòng)的服務(wù)調用方式,圖5給出活動(dòng)“Check credit card details”的服務(wù)定義Wizard。在PowerDesigner支持表3 列出的Web服務(wù)交互方式。
圖5 活動(dòng)的服務(wù)定義Wizard
表3. 活動(dòng)的Web服務(wù)交互方式
5)其他:除了上述的典型步驟,PowerDesigner提供了BPEL4WS的全面支持,包括流程的控制分支(Split/Join),數據轉換(Data Transformation),Correlation Key,partnerLink等。圖6給出了BPEL4WS業(yè)務(wù)過(guò)程模型中以過(guò)程模型為中心,信息(服務(wù))模型,資源(消息)模型,以及組織模型的主要內容及其關(guān)系。
圖6. BPEL4WS業(yè)務(wù)過(guò)程模型中的子模型及其關(guān)系
3.3 Web服務(wù)的對象模型
在業(yè)務(wù)過(guò)程建模過(guò)程中,可以通過(guò)“Tools”菜單中的“Service Provider Import…”或“Service Provider Export…”將OOM中的Service 定義導入到BPM中,或者將BPM中的Service Provider導入到OOM中。圖7和8是由圖6所示BPM自動(dòng)導出到某個(gè)具體OOM中的類(lèi)圖,以及組件圖。PowerDesigner支持UML1.3的所有模型從PowerDesigner11.0開(kāi)始就全面支持UML2.0。開(kāi)發(fā)人員可以在OOM中進(jìn)行進(jìn)一步的開(kāi)發(fā),如修改Service的Operation參數,添加Operation等。OOM修改后,在BPM中可以重新導入更新模型中Service定義信息。
特別需要指出的,在具體的建模過(guò)程中,通常不是上述所演示的這樣一種瀑布式的開(kāi)發(fā)方式,而是采用迭代式的開(kāi)發(fā)方式,即業(yè)務(wù)過(guò)程分析,設計以及服務(wù)的對象模型都在增量變化,通過(guò)PowerDesigner的元模型比較與合并機制,可以分析各模型的變化,同步各個(gè)建模的信息。而且也不限于從哪個(gè)模型開(kāi)始,特別地可能某些企業(yè)應用UML模型已經(jīng)存在,可以利用PowerDesigner將其轉化為Web 服務(wù),并最終導入與相應地業(yè)務(wù)流程集成。
4.總結
PowerDesigner12.0提供了企業(yè)所需要更集成的建模套件,即集成化企業(yè)級過(guò)程建模工具,將傳統的業(yè)務(wù)分析員使用地BPM圖形流程建模工具,與IT開(kāi)發(fā)人員的UML建模工具緊密相結合起來(lái),使業(yè)務(wù)分析人員與IT 技術(shù)人員可以通過(guò)解析和描述業(yè)務(wù)功能下面的流程,并與讓現有的應用集成環(huán)境如SOA等協(xié)調行動(dòng)。大大提高了企業(yè)業(yè)務(wù)流程的分析,設計與開(kāi)發(fā)能力,更能夠適應業(yè)務(wù)需求的變化,以提高投資回報率。本文所演示的面向SOA業(yè)務(wù)過(guò)程建模能力只是PowerDesigner強大特性的冰山一角。詳細信息可以閱讀PowerDesigner12.0的BPM的用戶(hù)手冊及其主頁(yè)。
參考文獻:
1.PowerDesigner 12.0 BPM 用戶(hù)手冊。
2. 什么是業(yè)務(wù)建模http://www.matrix.org.cn/resource/article/43/43803_Business_Process_Modeling.html
3. 一個(gè)現實(shí)中業(yè)務(wù)過(guò)程模型
http://dev2dev.bea.com.cn/techdoc/200410114.html
4. IBMSOA架構
http://www-900.ibm.com/cn/software/solution/soa/modeling.shtml
[