從UML到BPEL

發表于:2007-05-25來源:作者:點擊數: 標簽:web模型umlBPEL服務
Web服務世界中的模型驅動體系結構 如此多的XML ... BPEL是什么? UML為什么? 自動化業務流程的UML配置文件(Profile) 映射到BPEL4WS UML到BPEL映射驗證器 反射 鳴謝 參考資源 關于作者 本文描述了一種新工具,該工具是在alphaWorks網站上發布的Emerging Te
Web服務世界中的模型驅動體系結構
如此多的XML ...
BPEL是什么?
UML為什么?
自動化業務流程的UML配置文件(Profile)
映射到BPEL4WS
UML到BPEL映射驗證器
反射
鳴謝
參考資源
關于作者
本文描述了一種新工具,該工具是在alphaWorks網站上發布的Emerging Technologies Toolkit version 1.1 (ETTK),它采取用統一建模語言(Unified Modeling Language,UML)定義的流程并生成相應的BPEL和WSDL文檔來實現該流程。這種性能用于突出對象管理組(OMGs)模型驅動體系結構(MDA)創始的一些優點:提高開發過程中的抽象水平,因此獲得更高的生產率, 更好的質量,能夠隔離于技術的根本改變。

如此多的XML ...

隨著面向服務的體系結構(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是什么?

BPEL提供了一種XML注釋和語義,用于指定基于Web服務的業務流程行為。使用合作伙伴的交互方式,定義了該BPEL4WS流程。合作伙伴可以將服務提供給流程,也可以向流程請求服務,或者參與到流程的雙向交互中。BPEL通過指定順序來編排Web服務,這對服務集合的調用來說意義深遠。BPEL還針對每個服務分配了合作伙伴的責任。您可以使用它來指定合作伙伴的公共接口和可執行流程的描述。

BPEL 1.1是該規范的最新版本。它除了澄清術語之外,還允許較好的變量范圍和附加的事件處理程序。有關該規范的最新版本和BPEL介紹,請參閱最前面的兩篇相關內容鏈接。

為什么使用UML?

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配置文件(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類 。

圖 1.用于BPEL流程建模的UML類

通過活動圖可以清楚的描述類的行為。圖2顯示了貸款批準流程的活動圖。例如,invokeAssessor活動顯示為帶有圓角的長方形。執行的操作顯示為活動的入口條件;例如,riskAssessment(一個變量)被設置為檢查服務的結果。通過UML分區(也作為泳道)來表示流程中通信的合作伙伴:customer、assessor以及approver。每個分區中顯示了往合作伙伴發送或者接收信息的活動。箭頭表示流程執行活動的順序。注意分派(assingment)活動沒有放到一個分區中;它描繪了發生在它自身流程內的活動,該流程不需要外部服務。

圖 2貸款批準流程的活動圖

應答(reply)活動向顧客返回響應,完成流程的處理。每個活動都有一個描述性的名稱和輸入活動來細化活動執行的工作。

映射到BPEL4WS

自動化業務流程的UML配置文件表示可以從UML模型生成完整的可執行BPEL制品。表1 概要的展示了從配置文件到BPEL的映射,覆蓋到了本文介紹的配置文件子集。

表 1. UML到BPEL4WS映射概述

配置文件構件 BPEL4WS概念
<<process>>類 BPEL流程定義
<<process>> 類的活動圖 BPEL活動級別
<<process>>類屬性 BPEL變量
分層結構和控制流 BPEL順序和流程活動
<<receive>>、 <<reply>>、<<invoke>>活動 BPEL活動

清單1(由于版面空間原因,這里省略了很多細節代碼)顯示了BPEL文檔的縮減版本,該文檔是由本文介紹的貸款批準例子生成的。

清單 1.BPEL清單摘錄

            <process name="loanApprovalProcess" ...>
            <variables>
            <variable name="request"
            messageType="loandef:creditInformationMessage"/>
            <variable name="riskAssessment"
            messageType="asns:riskAssessmentMessage"/>
            ...
            </variables>
            ...
            <flow>
            <receive name="receive1" partner="customer"
            portType="apns:loanApprovalPT"
            operation="approve" variable="request"
            createInstance="yes">
            <source linkName="receive-to-assess"
            transitionCondition=
            "bpws:getVariableData('request', 'amount')<10000"/>
            <source linkName="receive-to-approval"
            transitionCondition=
            "bpws:getVariableData('request', 'amount')>=10000"/>
            </receive>
            <invoke name="invokeAssessor" partner="assessor"
            portType="asns:riskAssessmentPT"
            operation="check"
            inputVariable="request"
            outputVariable="riskAssessment">
            <target linkName="receive-to-assess"/>
            <source linkName="assess-to-setMessage"
            transitionCondition=
            "bpws:getVariableData('riskAssessment', 'risk')='low'"/>
            <source linkName="assess-to-approval"
            transitionCondition=
            "bpws:getVariableData('riskAssessment', 'risk')!='low'"/>
            </invoke>
            <assign name="assign">
            <target linkName="assess-to-setMessage"/>
            <source linkName="setMessage-to-reply"/>
            <copy>
            <from expression="'yes'"/>
            <to variable="approvalInfo" part="accept"/>
            </copy>
            </assign>
            ...
            <reply name="reply" partner="customer" portType="apns:loanApprovalPT"
            operation="approve" variable="approvalInfo">
            <target linkName="setMessage-to-reply"/>
            <target linkName="approval-to-reply"/>
            </reply>
            </flow>
            </process>
            

參考資料中可以找到完整的配置文件鏈接。

UML到BPEL映射驗證器

從IBM alphaWorks可以獲得作為ETTK的一部分的技術驗證器,它支持從UML工具(例如Rational XDE)到BPEL4WS運行時間(BPWS4J)的端到端情景。映射實現被構建為Eclipse插件,它采取了UML模型(XMI)交換的工業標準文件格式作為輸入。BPEL4WS制品(artifact)同需要的WSDL和XSD制品是一起生成的。

讓我們看一下驗證器。首先要根據您的需要安裝一些先決條件。ETTK頁面顯示了相關詳細信息(參閱參考資料下載鏈接)。概括起來,您需要下列資源:

  • Rose或XDE(本文采用的是XDE v2003)
  • Eclipse 2.0+或WebSphere Studio Application Developer(WSAD)5.0+
  • WebSphere Application Server (WAS) 5.0+或Apache Tomcat 4.1.24+
  • The ETTK本身(其中包含了BPWS4J)。

假設您已經具有下面需要的合適環境。

驗證器隨著不同情景的一套樣例文檔而產生,例如貸款批準或購買訂單流程。樣例文檔將是兩種類型:一種是可以由Rose或XDEUML打開和修改的模型文檔,另一種是包含UML模型的XMI版本的XML文檔,該文檔可以通過Rose或XDE進行輸出。在圖3中可以看到Rose或XDE中相應的模型,或者這些工具的XMI輸出的模型。

圖3使用一個UML活動圖顯示了轉換文檔的全部流程;UML沒有用嗎?方框表示制品(通常是文檔),而橢圓表示一個操作或活動。主要階段是:

  • 構建UML模型并將其導出到XMI(使用Rose或XDE)
  • 生成BPEL、WSDL和XSD文檔
  • 在BPWS4J運行時間部署并運行這些文檔—— 測試。

圖3. 開發一個流程

構建并輸出UML模型
如果具有Rose而不沒有XDE,則可以打開其中一個UML文檔(.mdl或.mdx);在本文中您已經通過貸款批準的例子看到了這些例子。

圖 4.使用XDE建模并輸出

圖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所示。

圖 5.轉換XMI文件

下面為您提供了更改不同前綴的機會;需要對其進行改進來與您的設置相匹配,如果您恰好使用的是ETTK安裝,則默認值不需要修改,如圖6所示。

圖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所示。

圖7.部署流程

單擊“Continue Deployment”按鈕之后,在流程插入不同角色需要的所有文檔。在本例中有兩個特別的任務:LoanAssessor和LoanApprover。

圖 8.部署服務

一旦部署完流程(參閱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的概念如何能被運用到其它領域以及抽象的更高級別,該方法使得開發者可以隔離于技術的改變。

這里有幾種不同的情況,每種情況下這種方法都是有益的:

  • 第一種情況,屏蔽在項目使用的技術版本的更改。BPEL可以(并且已經)更改了版本。如果流程所使用的語義沒有發生根本的變化,可以重新生成實現而無需開發人員的干預。這種轉換技術也能用來保護開發者在最初開發UML模型的投入:當有UML新版本可用的時候(例如將版本從1.4升級到2版本),UML模型本身也能進行轉換。
  • 第二種情況,可以產生UML配置表,使用它能生成其它過程實現,諸如BPML。
  • 第三種方法,可以從單個模型生成多種技術的制品(artifact)。在本例中包括BPEL和WSDL,但不能能生成non-XML輸出,諸如Java輸出。
  • 最后,轉變是雙向的--在本例中有一個反向映射來支持現有的BPEL4WS和WSDL制品(artifact)的導入,以及支持BPEL4WS和WSDL制品(artifact)的同步,一方發生的改變能夠反映到另一方。

致謝

感謝Gary Flood、Catherine Griffin和Tracy Gardner對本文進行輸入和注釋工作。

參考資料

 

  • 從IBM alphaWorks下載ETTK。

  • 請參閱IBM alphaWorks 上的live running install of the ETTK on developerWorks。

  • 閱讀James Snell編寫的“Implementing Web services with the ETTK”教程。 (developerWorks,2003年4月)

  • 查看OMG上的MDA參考資料頁面,那里有很多文章,可以鏈接到會議和更多信息。

  • 瀏覽OMG上的UML參考資料,那里有很多文章,可以鏈接到會議和更多信息。

  • 在<ettk install directory>\\wstk\\services\\demos\\uml2bpel\\docs\\UMLProfileForBusinessProcess1.1.pdf文檔中查找UML Profile。

  • 閱讀BPEL 1.1規范developerWorks,2003年3月)。

  • 通過閱讀Frank Leymann和Dieter Roller編寫的“Web服務世界中的業務流程”,,獲取優秀的關于BPEL4WS的概述(developerWorks,2002年8月)。

關于作者

Keith在英國的Hursley Park IBM開發基地工作。他目前工作在Model Driven Business Integration小組。他在很多領域進行了應用軟件開發工作,其中包括零售業、金融業和保險業,他經常使用UML和其它技術提高品質、效率和股東之間的通訊。 可以在keith_mantell at uk.ibm.com與Keith聯系。

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97