2003 年 9 月 01 日 本 文描述了一種新工具,該工具是在alphaWorks網(wǎng)站上發(fā)布的Emerging Technologies Toolkit version 1.1 (ETTK),它采取用統(tǒng)一建模語言(Unified Modeling Language,UML)定義的流程并生成相應(yīng)的BPEL和WSDL文檔來實(shí)現(xiàn)該流程。這種性能用于突出對象管理組(OMGs)模型驅(qū)動(dòng)體系結(jié)構(gòu) (MDA)創(chuàng)始的一些優(yōu)點(diǎn):提高開發(fā)過程中的抽象水平,因此獲得更高的生產(chǎn)率, 更好的質(zhì)量,能夠隔離于技術(shù)的根本改變。
隨 著面向服務(wù)的體系結(jié)構(gòu)(SOA)的出現(xiàn),應(yīng)用程序開發(fā)經(jīng)歷了一次徹底改變。這種架構(gòu)合并了基于XML的標(biāo)準(zhǔn),例如WSDL、簡單對象訪問協(xié)議 (SOAP)、統(tǒng)一描述、發(fā)現(xiàn)和集成協(xié)議(UDDI)和現(xiàn)在的BPEL。然而,當(dāng)您能做更多的事情時(shí),開發(fā)任務(wù)的大小和復(fù)雜性已經(jīng)提高,并且開發(fā)者會(huì)發(fā)現(xiàn) 他們沉迷于文檔和語法中,而迷失了他們工作的主要目標(biāo)。另外,開發(fā)人員的目標(biāo)在發(fā)生變化,標(biāo)準(zhǔn)本身也處在發(fā)展之中。因而,為了能快速的采用Web服務(wù),開 發(fā)者正在尋找解決復(fù)雜、高效和技術(shù)改變問題的答案。 UML到BPEL的映射工具能夠獲得用UML工具(例如: IBM Rational的XDE或Rose)開發(fā)的流程模型,并且能將它們轉(zhuǎn)換為正確的BPEL和WSDL文檔來實(shí)現(xiàn)該流程。 Emerging Technologies Toolkit version 1.1 (ETTK)是測試有趣的新技術(shù)的環(huán)境,并且現(xiàn)在具有兩種格式:autonomic和webservices。本文重點(diǎn)介紹后者—— webservices。
BPEL 提供了一種XML注釋和語義,用于指定基于Web服務(wù)的業(yè)務(wù)流程行為。使用合作伙伴的交互方式,定義了該BPEL4WS流程。合作伙伴可以將服務(wù)提供給流 程,也可以向流程請求服務(wù),或者參與到流程的雙向交互中。BPEL通過指定順序來編排Web服務(wù),這對服務(wù)集合的調(diào)用來說意義深遠(yuǎn)。BPEL還針對每個(gè)服 務(wù)分配了合作伙伴的責(zé)任。您可以使用它來指定合作伙伴的公共接口和可執(zhí)行流程的描述。 BPEL 1.1是該規(guī)范的最新版本。它除了澄清術(shù)語之外,還允許較好的變量范圍和附加的事件處理程序。有關(guān)該規(guī)范的最新版本和BPEL介紹,請參閱最前面的兩篇相關(guān)內(nèi)容鏈接。
UML是一種OMG標(biāo)準(zhǔn),該標(biāo)準(zhǔn)提供了一種可視化的建模表示法,這對設(shè)計(jì)和了解復(fù)雜的系統(tǒng)很有效。 UML 具有下列幾種通用優(yōu)點(diǎn):它是眾所周知的面向?qū)ο螅∣bject-Oriented ,oo)建模表示法,具有非常容易理解的圖形表示法以及一套豐富的語義集來捕獲OO系統(tǒng)的關(guān)鍵特征。 UML廣泛地應(yīng)用于面向?qū)ο蟮能浖_發(fā),還常用于定制的、基于組件的軟件開發(fā)、業(yè)務(wù)流程建模和系統(tǒng)設(shè)計(jì)。這使大部分UML經(jīng)驗(yàn)?zāi)鼙粦?yīng)用到成熟的Web服務(wù) 技術(shù)中。 下面部 分,我將介紹一種UML配置文件(Profile),可以通過構(gòu)建與BPEL4WS(Web服務(wù)業(yè)務(wù)流程執(zhí)行語言)相對應(yīng)的一套語義結(jié)構(gòu)來支持建模。同時(shí) 還將描述BPEL4WS映射,BPEL4WS映射可以從適合配置文件的UML模型自動(dòng)生成Web服務(wù)制品(BPEL、WSDL、XSD)。 下面部分將展示實(shí)際的BPEL例子以及UML配置文件(Profile),并重點(diǎn)講述關(guān)鍵概念。
自動(dòng)化業(yè)務(wù)流程的UML配置文件(Profile)
這部分通過一個(gè)例子介紹了UML配置文件子集,該例子定義了一個(gè)簡單本的貸款批準(zhǔn)流程。在本例中您將會(huì)在ETTK的README文檔中發(fā)現(xiàn)轉(zhuǎn)換器。它可以被總結(jié)為如下所示: “在 收到貸款請求時(shí),將請求的數(shù)值與數(shù)值(10000)比較。如果請求的數(shù)值比較少,那么將調(diào)用Assessor服務(wù),否則將將調(diào)用Approver服務(wù)。如 果Accessor認(rèn)為該請求的風(fēng)險(xiǎn)比較高,它也將被傳遞給Approver。當(dāng)Approver完成或者Accessor接受時(shí),將會(huì)返回批準(zhǔn)信息?!?/p> BPEL 流程是有狀態(tài)的并包含實(shí)例,所以在BPEL中,這種情況都會(huì)被作為一個(gè)LoanApproval流程而實(shí)現(xiàn),對于被處理的每個(gè)實(shí)際貸款申請, LoanApproval流程都會(huì)有一個(gè)實(shí)例。每個(gè)實(shí)例都用BPEL變量來捕獲它自己的狀態(tài)。在UML配置文件中,流程被表示為 ![]() 通過活動(dòng)圖可以清楚的描述類的行為。 圖2顯示了貸款批準(zhǔn)流程的活動(dòng)圖。例如, ![]() 應(yīng)答(reply)活動(dòng)向顧客返回響應(yīng),完成流程的處理。每個(gè)活動(dòng)都有一個(gè)描述性的名稱和輸入活動(dòng)來細(xì)化活動(dòng)執(zhí)行的工作。
自動(dòng)化業(yè)務(wù)流程的UML配置文件表示可以從UML模型生成完整的可執(zhí)行BPEL制品。 表1 概要的展示了從配置文件到BPEL的映射,覆蓋到了本文介紹的配置文件子集。
清單1(由于版面空間原因,這里省略了很多細(xì)節(jié)代碼)顯示了BPEL文檔的縮減版本,該文檔是由本文介紹的貸款批準(zhǔn)例子生成的。 清單 1.BPEL清單摘錄
在 參考資料中可以找到完整的配置文件鏈接。
從IBM alphaWorks可以獲得作為ETTK的一部分的技術(shù)驗(yàn)證器,它支持從UML工具(例如Rational XDE)到BPEL4WS運(yùn)行時(shí)間(BPWS4J)的端到端情景。映射實(shí)現(xiàn)被構(gòu)建為Eclipse插件,它采取了UML模型(XMI)交換的工業(yè)標(biāo)準(zhǔn)文件 格式作為輸入。BPEL4WS制品(artifact)同需要的WSDL和XSD制品是一起生成的。 讓我們看一下驗(yàn)證器。首先要根據(jù)您的需要安裝一些先決條件。ETTK頁面顯示了相關(guān)詳細(xì)信息(參閱 參考資料下載鏈接)。概括起來,您需要下列資源:
假設(shè)您已經(jīng)具有下面需要的合適環(huán)境。 驗(yàn)證器隨著不同情景的一套樣例文檔而產(chǎn)生,例如貸款批準(zhǔn)或購買訂單流程。樣例文檔將是兩種類型:一種是可以由Rose或XDEUML打開和修改的模型文檔,另一種是包含UML模型的XMI版本的XML文檔,該文檔可以通過Rose或XDE進(jìn)行輸出。在 圖3中可以看到Rose或XDE中相應(yīng)的模型,或者這些工具的XMI輸出的模型。 圖3使用一個(gè)UML活動(dòng)圖顯示了轉(zhuǎn)換文檔的全部流程;UML沒有用嗎?方框表示制品(通常是文檔),而橢圓表示一個(gè)操作或活動(dòng)。主要階段是:
![]() ![]() 在 圖4UML模型被輸出到XMI——您需要使用XDE v2003或更新版本。注意這種方法的好處是您正在使用的是一般性用途,而不需要修改UML工具和UML的標(biāo)準(zhǔn)擴(kuò)展機(jī)制來構(gòu)建和輸出流程定義。 一旦模型執(zhí)行完畢,則可以點(diǎn)擊File -->Export菜單,選擇XMI Export將其輸出,如 圖4所示。 ![]() 下面為您提供了更改不同前綴的機(jī)會(huì);需要對其進(jìn)行改進(jìn)來與您的設(shè)置相匹配,如果您恰好使用的是ETTK安裝,則默認(rèn)值不需要修改,如 圖6所示。 ![]() 單擊“Finish”按鈕后,許多文檔將顯示在工程中,其中包括主要的BPEL和WSDL文檔,LoanAssessor和LoanApprover服務(wù)以及數(shù)據(jù)定義的WSDL文檔。 導(dǎo) 航到BPEL4WS部署面板(地址是http://localhost:8080/bpws4j/admin/index.html)),接著在各自的字 段輸入與主要服務(wù)相應(yīng)的WSDL文檔(即 Loan ApprovalProcess.wsdl)和BPEL文檔,(即ProcessOrder.bpel),如 圖 7所示。 ![]() 單擊“Continue Deployment”按鈕之后,在流程插入不同角色需要的所有文檔。在本例中有兩個(gè)特別的任務(wù):LoanAssessor和LoanApprover。 ![]() 一旦部署完流程(參閱 Figure 8所示),然后運(yùn)行的例子與BPWS4J例子是相同的:調(diào)用與您的操作系統(tǒng)相應(yīng)的LoanApprovalSample腳本: 例如, 根據(jù)UML活動(dòng)圖,可以知道數(shù)值10000是重要的!
本 文介紹了帶有UML到BPEL轉(zhuǎn)換器的自動(dòng)化業(yè)務(wù)流程UML配置文件。配置文件允許開發(fā)者使用常規(guī)的UML技巧和工具,開發(fā)基于BPEL4WS的Web服 務(wù)業(yè)務(wù)流程。這種方法使面向服務(wù)的的BPEL4WS組件合并到全面的系統(tǒng)設(shè)計(jì),該系統(tǒng)設(shè)計(jì)利用了現(xiàn)存的軟件工程方法。另外,從UML到BPEL4WS的映 射容許使用模型驅(qū)動(dòng)開發(fā)方法,從UML模型自動(dòng)生成BPEL4WS可執(zhí)行的流程。 這種方法著重于了MDA的概念如何能被運(yùn)用到其它領(lǐng)域以及抽象的更高級別,該方法使得開發(fā)者可以隔離于技術(shù)的改變。 這里有幾種不同的情況,每種情況下這種方法都是有益的:
感謝Gary Flood、Catherine Griffin和Tracy Gardner對本文進(jìn)行輸入和注釋工作。
|
聯(lián)系客服