如此多的XML ... |
BPEL是什么? |
UML為什么? |
自動化業務流程的UML配置文件(Profile) |
映射到BPEL4WS |
UML到BPEL映射驗證器 |
反射 |
鳴謝 |
參考資源 |
關于作者 |
本文描述了一種新工具,該工具是在alphaWorks網站上發布的Emerging Technologies Toolkit version 1.1 (ETTK),它采取用統一建模語言(Unified Modeling Language,UML)定義的流程并生成相應的BPEL和WSDL文檔來實現該流程。這種性能用于突出對象管理組(OMGs)模型驅動體系結構(MDA)創始的一些優點:提高開發過程中的抽象水平,因此獲得更高的生產率, 更好的質量,能夠隔離于技術的根本改變。
隨著面向服務的體系結構(SOA)的出現,應用程序開發經歷了一次徹底改變。這種架構合并了基于XML的標準,例如WSDL、簡單對象訪問協議(SOAP)、統一描述、發現和集成協議(UDDI)和現在的BPEL。然而,當您能做更多的事情時,開發任務的大小和復雜性已經提高,并且開發者會發現他們沉迷于文檔和語法中,而迷失了他們工作的主要目標。另外,開發人員的目標在發生變化,標準本身也處在發展之中。因而,為了能快速的采用Web服務,開發者正在尋找解決復雜、高效和技術改變問題的答案。
UML到BPEL的映射工具能夠獲得用UML工具(例如:IBM Rational的XDE或Rose)開發的流程模型,并且能將它們轉換為正確的BPEL和WSDL文檔來實現該流程。 Emerging Technologies Toolkit version 1.1 (ETTK)是測試有趣的新技術的環境,并且現在具有兩種格式:autonomic和webservices。本文重點介紹后者——webservices。
BPEL提供了一種XML注釋和語義,用于指定基于Web服務的業務流程行為。使用合作伙伴的交互方式,定義了該BPEL4WS流程。合作伙伴可以將服務提供給流程,也可以向流程請求服務,或者參與到流程的雙向交互中。BPEL通過指定順序來編排Web服務,這對服務集合的調用來說意義深遠。BPEL還針對每個服務分配了合作伙伴的責任。您可以使用它來指定合作伙伴的公共接口和可執行流程的描述。
BPEL 1.1是該規范的最新版本。它除了澄清術語之外,還允許較好的變量范圍和附加的事件處理程序。有關該規范的最新版本和BPEL介紹,請參閱最前面的兩篇相關內容鏈接。
UML是一種OMG標準,該標準提供了一種可視化的建模表示法,這對設計和了解復雜的系統很有效。
UML具有下列幾種通用優點:它是眾所周知的面向對象(Object-Oriented ,oo)建模表示法,具有非常容易理解的圖形表示法以及一套豐富的語義集來捕獲OO系統的關鍵特征。 UML廣泛地應用于面向對象的軟件開發,還常用于定制的、基于組件的軟件開發、業務流程建模和系統設計。這使大部分UML經驗能被應用到成熟的Web服務技術中。
QCQBB">擴展UML
擴展或定制UML的特性對MDA來說是很必要的;可以通過定制UML來支持系統建模,這種系統是需要完全或部分的部署到Web服務基礎架構上。本文主要介紹模板(stereotypes)。模板(stereotypes)是一種對模型的元素進行分類的方法。例如,如果您有一個表示顧客的類,那么您可以附加<<entity>>
模板(stereotypes)來表示它代表一個數據對象(或許是Entity Bean)。這種信息有助于人們對模型的可讀性,甚至可以用來改變表示CASE工具(例如Rational Rose)中類的圖標。然而,在這種情況下您可以使用它來指導模型的翻譯。要記住,您可以將模板(stereotypes)添加到UML模型中的更多元素上。還可以在配置文件(Profile)中結合這些模板(stereotypes)。為了表示特定的興趣域,UML配置文件(Profiles)用于定義對基本UML的擴展集合。例如那些為CORBA和數據建模(Data Modeling)定義的配置文件(Profiles)。配置文件定義了要使用的UML元素,如何對其進行擴展,以及約束元素集合的良好性規則(well-formedness rules)。
下面部分,我將介紹一種UML配置文件(Profile),可以通過構建與BPEL4WS(Web服務業務流程執行語言)相對應的一套語義結構來支持建模。同時還將描述BPEL4WS映射,BPEL4WS映射可以從適合配置文件的UML模型自動生成Web服務制品(BPEL、WSDL、XSD)。
下面部分將展示實際的BPEL例子以及UML配置文件(Profile),并重點講述關鍵概念。
這部分通過一個例子介紹了UML配置文件子集,該例子定義了一個簡單本的貸款批準流程。在本例中您將會在ETTK的README文檔中發現轉換器。它可以被總結為如下所示:
“在收到貸款請求時,將請求的數值與數值(10000)比較。如果請求的數值比較少,那么將調用Assessor服務,否則將將調用Approver服務。如果Aclearcase/" target="_blank" >ccessor認為該請求的風險比較高,它也將被傳遞給Approver。當Approver完成或者Accessor接受時,將會返回批準信息。”
BPEL流程是有狀態的并包含實例,所以在BPEL中,這種情況都會被作為一個LoanApproval流程而實現,對于被處理的每個實際貸款申請,LoanApproval流程都會有一個實例。每個實例都用BPEL變量來捕獲它自己的狀態。在UML配置文件中,流程被表示為<<Process>>
模板類。類的屬性與流程的狀態相對應(在BPEL4WS 1.0術語中的容器,或者BPEL 1.1中的變量)圖1顯示了表示貸款批準流程的UML類 。
通過活動圖可以清楚的描述類的行為。圖2顯示了貸款批準流程的活動圖。例如,invokeAssessor
活動顯示為帶有圓角的長方形。執行的操作顯示為活動的入口條件;例如,riskAssessment
(一個變量)被設置為檢查服務的結果。通過UML分區(也作為泳道)來表示流程中通信的合作伙伴:customer、assessor以及approver。每個分區中顯示了往合作伙伴發送或者接收信息的活動。箭頭表示流程執行活動的順序。注意分派(assingment)活動沒有放到一個分區中;它描繪了發生在它自身流程內的活動,該流程不需要外部服務。
應答(reply)活動向顧客返回響應,完成流程的處理。每個活動都有一個描述性的名稱和輸入活動來細化活動執行的工作。
自動化業務流程的UML配置文件表示可以從UML模型生成完整的可執行BPEL制品。表1 概要的展示了從配置文件到BPEL的映射,覆蓋到了本文介紹的配置文件子集。
配置文件構件 | BPEL4WS概念 |
<<process>>類 | BPEL流程定義 |
<<process>> 類的活動圖 | BPEL活動級別 |
<<process>>類屬性 | BPEL變量 |
分層結構和控制流 | BPEL順序和流程活動 |
<<receive>>、 <<reply>>、<<invoke>>活動 | BPEL活動 |
清單1(由于版面空間原因,這里省略了很多細節代碼)顯示了BPEL文檔的縮減版本,該文檔是由本文介紹的貸款批準例子生成的。
清單 1.BPEL清單摘錄
|
在參考資料中可以找到完整的配置文件鏈接。
從IBM alphaWorks可以獲得作為ETTK的一部分的技術驗證器,它支持從UML工具(例如Rational XDE)到BPEL4WS運行時間(BPWS4J)的端到端情景。映射實現被構建為Eclipse插件,它采取了UML模型(XMI)交換的工業標準文件格式作為輸入。BPEL4WS制品(artifact)同需要的WSDL和XSD制品是一起生成的。
讓我們看一下驗證器。首先要根據您的需要安裝一些先決條件。ETTK頁面顯示了相關詳細信息(參閱參考資料下載鏈接)。概括起來,您需要下列資源:
假設您已經具有下面需要的合適環境。
驗證器隨著不同情景的一套樣例文檔而產生,例如貸款批準或購買訂單流程。樣例文檔將是兩種類型:一種是可以由Rose或XDEUML打開和修改的模型文檔,另一種是包含UML模型的XMI版本的XML文檔,該文檔可以通過Rose或XDE進行輸出。在圖3中可以看到Rose或XDE中相應的模型,或者這些工具的XMI輸出的模型。
圖3使用一個UML活動圖顯示了轉換文檔的全部流程;UML沒有用嗎?方框表示制品(通常是文檔),而橢圓表示一個操作或活動。主要階段是:
構建并輸出UML模型
如果具有Rose而不沒有XDE,則可以打開其中一個UML文檔(.mdl或.mdx);在本文中您已經通過貸款批準的例子看到了這些例子。
在圖4UML模型被輸出到XMI——您需要使用XDE v2003或更新版本。注意這種方法的好處是您正在使用的是一般性用途,而不需要修改UML工具和UML的標準擴展機制來構建和輸出流程定義。
一旦模型執行完畢,則可以點擊File -->Export菜單,選擇XMI Export將其輸出,如圖4所示。
生成BPEL和WSDL文檔
在Eclipse(或WebSphere Application Developer (IE))中創建Java Project,然后導入您在前面創建的XMI文檔(或使用ETTK提供的XMI樣例文檔)。最后選擇XMI文件并通過右擊鼠標菜單選擇“Generate BPEL from UML”,如圖5所示。
下面為您提供了更改不同前綴的機會;需要對其進行改進來與您的設置相匹配,如果您恰好使用的是ETTK安裝,則默認值不需要修改,如圖6所示。
單擊“Finish”按鈕后,許多文檔將顯示在工程中,其中包括主要的BPEL和WSDL文檔,LoanAssessor和LoanApprover服務以及數據定義的WSDL文檔。
測試
這時,生成的文檔應該準備進行部署。本文中可以部署到Apache Tomcat,但是也同樣可以使用WebSphere Application Server。
導航到BPEL4WS部署面板(地址是http://localhost:8080/bpws4j/admin/index.html)),接著在各自的字段輸入與主要服務相應的WSDL文檔(即 Loan ApprovalProcess.wsdl)和BPEL文檔,(即ProcessOrder.bpel),如圖 7所示。
單擊“Continue Deployment”按鈕之后,在流程插入不同角色需要的所有文檔。在本例中有兩個特別的任務:LoanAssessor和LoanApprover。
一旦部署完流程(參閱Figure 8所示),然后運行的例子與BPWS4J例子是相同的:調用與您的操作系統相應的LoanApprovalSample腳本:
LoanApprovalSample [soap-address] first-name last-name amount
例如,
LoanApprovalSample http://localhost:80/bpws4j/soaprpcrouter John Doe 10
根據UML活動圖,可以知道數值10000是重要的!
本文介紹了帶有UML到BPEL轉換器的自動化業務流程UML配置文件。配置文件允許開發者使用常規的UML技巧和工具,開發基于BPEL4WS的Web服務業務流程。這種方法使面向服務的的BPEL4WS組件合并到全面的系統設計,該系統設計利用了現存的軟件工程方法。另外,從UML到BPEL4WS的映射容許使用模型驅動開發方法,從UML模型自動生成BPEL4WS可執行的流程。
這種方法著重于了MDA的概念如何能被運用到其它領域以及抽象的更高級別,該方法使得開發者可以隔離于技術的改變。
這里有幾種不同的情況,每種情況下這種方法都是有益的:
感謝Gary Flood、Catherine Griffin和Tracy Gardner對本文進行輸入和注釋工作。
關于作者 Keith在英國的Hursley Park IBM開發基地工作。他目前工作在Model Driven Business Integration小組。他在很多領域進行了應用軟件開發工作,其中包括零售業、金融業和保險業,他經常使用UML和其它技術提高品質、效率和股東之間的通訊。 可以在keith_mantell at uk.ibm.com與Keith聯系。 |
原文轉自:http://www.anti-gravitydesign.com