隨筆 - 251  文章 - 504  trackbacks - 0
          <2006年9月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          1234567

          本博客系個(gè)人收集材料及學(xué)習(xí)記錄之用,各類(lèi)“大俠”勿擾!

          留言簿(14)

          隨筆分類(lèi)

          收藏夾

          My Favorite Web Sites

          名Bloger

          非著名Bloger

          搜索

          •  

          積分與排名

          • 積分 - 202838
          • 排名 - 284

          最新評(píng)論

          (資料是比較老了,BPEL1.1版的,但對(duì)于初學(xué)者來(lái)說(shuō),是個(gè)不錯(cuò)的入門(mén)材料。比直接看標(biāo)準(zhǔn)容易理解)

          轉(zhuǎn)自?http://www-128.ibm.com/developerworks/cn/webservices/ws-bpel/part1/index.html

          級(jí)別:?初級(jí)????2003?年?3?月?01?日?王?強(qiáng),?軟件工程師,?日本富士施樂(lè)(FujiXerox)

          商業(yè)流程執(zhí)行語(yǔ)言BPEL4WS(Business?Process?Execution?Language?For?Web?Services)是專(zhuān)為整合Web?Services而制定的一項(xiàng)規(guī)范標(biāo)準(zhǔn)。它從本質(zhì)上來(lái)說(shuō)是IBM的WSFL和Microsoft的XLANG的結(jié)合物,目前已經(jīng)成為業(yè)界標(biāo)準(zhǔn)。WSFL?支持圖形化的流程,而XLANG在結(jié)構(gòu)化構(gòu)造方面有獨(dú)到的方法,而B(niǎo)PEL4WS正是吸取了兩者的優(yōu)點(diǎn),同時(shí)摒棄了一些復(fù)雜繁瑣的部分,形成了一種較為自然的描述商業(yè)活動(dòng)的抽象高級(jí)語(yǔ)言。
          引言
          本文主要介紹的有3個(gè)方面的內(nèi)容
          &#8226;?BPEL4WS語(yǔ)言的特點(diǎn)。?
          &#8226;?BPEL4WS語(yǔ)言主要元素使用技巧提示。?
          &#8226;?BPEL4WS語(yǔ)言利用外部Web服務(wù)的技巧提示。?
          (注:對(duì)于BPEL4WS的基本語(yǔ)法介紹由于篇幅原因并沒(méi)有包括在本文中,讀者可以參閱附錄中的相關(guān)資料介紹。)

          1.BPEL4WS語(yǔ)言的特點(diǎn)
          BPEL4WS語(yǔ)言從誕生到現(xiàn)在還不到一年的時(shí)間,我們可以說(shuō)它是一門(mén)新的語(yǔ)言,但是它又不完全獨(dú)立于現(xiàn)在已經(jīng)存在的各種編程語(yǔ)言,從各方明進(jìn)行總結(jié),可以得出以下三個(gè)突出的特點(diǎn):
          〈一〉?BPEL4WS并不"新":
          為什么說(shuō)它并不新呢?這主要是因?yàn)楣饩虰PEL4WS語(yǔ)言本身的語(yǔ)法結(jié)構(gòu)以及編程的思想來(lái)說(shuō),它是被廣大程序員所熟悉的(當(dāng)然,你得熟悉XML語(yǔ)言和基本的程序設(shè)計(jì)思想,還有就是得有分布式系統(tǒng)的概念,如DCOM,CORBA等)。
          BPEL4WS的文法是完全基于XML規(guī)范的,如果不考慮它的程序語(yǔ)言特性,大家完全可以把它理解為普通的XML文檔規(guī)范,也就是說(shuō)可以把BPEL4WS中的所有節(jié)點(diǎn)對(duì)應(yīng)到一個(gè)虛擬的DTD文件中。如果不考慮它的程序特性,大家在編寫(xiě)B(tài)PEL文件的時(shí)候就只是按照這個(gè)DTD所定義的規(guī)范在編寫(xiě)普通的XML文件罷了。BPEL4WS主要基于以下幾個(gè)XML規(guī)范的,WSDL?1.1、XML?Schema?1.0?和XPath1.0。WSDL消息和XML?Schema類(lèi)型定義提供了BPEL4WS流程所需要的所有數(shù)據(jù)模型,所有需要的外部資源和伙伴都被描述為WSDL服務(wù)。
          如果對(duì)BPEL4WS語(yǔ)言的語(yǔ)法做較深入的研究,你就會(huì)發(fā)現(xiàn)它其實(shí)只是對(duì)原有編程語(yǔ)言思想的繼承和發(fā)展。
          ●?關(guān)于繼承,BPEL4WS語(yǔ)言擁有傳統(tǒng)編程語(yǔ)言的一些基本特性,如:
          賦值操作(由對(duì)〈container〉的操作完成);
          循環(huán)操作(由〈while〉操作完成);
          選擇操作(由〈switch〉和〈case〉操作完成);
          遠(yuǎn)程調(diào)用操作(由〈invoke〉操作完成);
          錯(cuò)誤捕捉操作(由〈catchfault〉和〈catchall〉操作完成);
          錯(cuò)誤拋出操作(由〈throw〉操作完成)
          Java,C#語(yǔ)言中的try操作(由〈scope〉操作完成)
          ●?關(guān)于發(fā)展,BPEL4WS語(yǔ)言是一門(mén)結(jié)合了商業(yè)處理特點(diǎn)的語(yǔ)言;
          由于BPEL4WS語(yǔ)言是專(zhuān)為商業(yè)流程的執(zhí)行所服務(wù)的,因此它也就自然而然的具有一門(mén)商業(yè)處理語(yǔ)言的特點(diǎn),這體現(xiàn)在以下幾個(gè)方面:
          1>提供了對(duì)于遠(yuǎn)程調(diào)用(〈invoke〉)的同步和異步處理;
          這主要是由商業(yè)處理的特點(diǎn)決定的,就拿民航訂票來(lái)說(shuō)吧,當(dāng)你向民航訂票系統(tǒng)的訂票Web?Service發(fā)出訂票請(qǐng)求后,你不可能期望馬上得到結(jié)果(同步),因?yàn)槊窈较到y(tǒng)必須要首先要進(jìn)行復(fù)雜的身份識(shí)別以確定你的系統(tǒng)是否有預(yù)訂機(jī)票的權(quán)限,接著還要查詢航班情況以確定是否你定的航班還有空座,然后才會(huì)給你答復(fù),而你不可能一直等待得到答復(fù),就算你愿意你的服務(wù)器恐怕也受不了這個(gè)負(fù)擔(dān)。因此你必須選擇異步方式,也就是發(fā)出請(qǐng)求后繼續(xù)執(zhí)行其他的操作,在這一點(diǎn)上有一點(diǎn)類(lèi)似于TCP/IP協(xié)議和UDP協(xié)議的關(guān)系。?
          2〉提供了并行的操作(由〈flow〉操作支持);?
          對(duì)于普通的程序設(shè)計(jì)語(yǔ)言來(lái)說(shuō),并行的概念只是用于表面。打個(gè)比方,也許有人會(huì)說(shuō),利用windows系統(tǒng)(或者unix,?linux系統(tǒng))的多任務(wù)執(zhí)行能力,我可以讓一個(gè)程序一邊在后臺(tái)執(zhí)行計(jì)算而前臺(tái)卻進(jìn)行復(fù)雜的人機(jī)交互工作,這不也是一種并行嗎。的確,這也是一種并行,但它只是cpu級(jí)別的并行,而B(niǎo)PEL4WS語(yǔ)言所體現(xiàn)的并行性是一種更廣范圍的并行,是基于INTERNET的并行,在某些方面,類(lèi)似于傳統(tǒng)的并行處理系統(tǒng)(利用機(jī)群進(jìn)行大規(guī)模復(fù)雜并行計(jì)算)。通過(guò)BPEL4WS,可以同時(shí)調(diào)用位于不同地方(不同城市甚至是國(guó)家)的Web?Services進(jìn)行處理(如計(jì)算,訂貨等)。?
          3〉提供了補(bǔ)償?shù)牟僮鳎ㄓ伞碿ompensate〉操作支持);?
          任何程序的執(zhí)行都可能會(huì)出錯(cuò),而后果也是不同的。有的操作出錯(cuò)并不會(huì)產(chǎn)生什么直接的后果,而有的操作出錯(cuò)的結(jié)果就必須被糾正,也就是必須執(zhí)行一些補(bǔ)償?shù)牟僮鳌1热缒妹窈接喥眮?lái)說(shuō)吧,假如顧客A在系統(tǒng)中預(yù)訂一張機(jī)票,當(dāng)民航系統(tǒng)的Web?Services完成所有訂票操作后,提交給顧客A請(qǐng)求確認(rèn)時(shí),顧客A由于其他原因取消了訂票操作或者系統(tǒng)出現(xiàn)故障,那么就必須要執(zhí)行補(bǔ)償操作,取消所有已執(zhí)行的操作,恢復(fù)數(shù)據(jù)庫(kù)信息。從某個(gè)方面來(lái)說(shuō),這很類(lèi)似于DBMS中的ROLLBACK操作,只不過(guò)在數(shù)據(jù)庫(kù)系統(tǒng)中是微觀執(zhí)行的,而在BPEL4WS中是宏觀執(zhí)行的。?
          〈二〉?BPEL4WS并不"可執(zhí)行":
          BPEL4WS雖然定義為一門(mén)商業(yè)執(zhí)行語(yǔ)言,但實(shí)際上它并不執(zhí)行商業(yè)流程中的任何細(xì)節(jié),也就是說(shuō)它一點(diǎn)也不涉及到商業(yè)數(shù)據(jù)的存儲(chǔ)和處理。BPEL4WS語(yǔ)言從本質(zhì)上來(lái)說(shuō)應(yīng)該是一門(mén)描述性語(yǔ)言,它只是描述了什么時(shí)候?以什么順序?到哪兒?去調(diào)用那些Web服務(wù)?怎樣組織這些調(diào)用?罷了。因此,在BPEL4WS中并沒(méi)有出現(xiàn)復(fù)雜的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)類(lèi)型,也沒(méi)有關(guān)于數(shù)據(jù)存儲(chǔ)和持久化的操作,唯一涉及顯式數(shù)據(jù)操作的地方就是〈container〉的使用了,但容器中的數(shù)據(jù)只是一些臨時(shí)數(shù)據(jù),一旦商業(yè)處理的流程結(jié)束,這些數(shù)據(jù)也就消失了,這些數(shù)據(jù)就好像是傳統(tǒng)程序語(yǔ)言中的變量一樣,但又沒(méi)有那么復(fù)雜的數(shù)據(jù)類(lèi)型。說(shuō)BPEL4WS語(yǔ)言是商業(yè)流程執(zhí)行語(yǔ)言是因?yàn)閺暮暧^上看,所有的操作都由BPEL4WS來(lái)完成,而其背后的操作,如Web服務(wù)的調(diào)用等是不可見(jiàn)的,也就是說(shuō)是不透明的。這就好比軟件測(cè)試中的黑盒測(cè)試一樣,用戶只看到了自己應(yīng)該看到的用戶接口,而不用去關(guān)心這些功能到底是怎樣實(shí)現(xiàn)的。
          〈三〉?BPEL4WS是真正的分布式系統(tǒng):
          隨著INTERNET的迅速發(fā)展,在分布式技術(shù)領(lǐng)域也不斷涌現(xiàn)出新技術(shù)新思想。SOAP,XML以及基于它們的Web?Services,這些新技術(shù)的出現(xiàn)為新的分布式處理模型提供了堅(jiān)實(shí)的基礎(chǔ),而B(niǎo)PEL4WS的誕生,才是分布式技術(shù)的真正升華。比起傳統(tǒng)的分布式系統(tǒng)來(lái)說(shuō),利用BPEL4WS實(shí)現(xiàn)的分布式系統(tǒng)具有更高的靈活性,這主要體現(xiàn)在以下幾個(gè)方面:
          1〉各個(gè)節(jié)點(diǎn)機(jī)可以為異構(gòu)系統(tǒng):
          2〉可以在運(yùn)行時(shí)動(dòng)態(tài)選擇節(jié)點(diǎn)機(jī)進(jìn)行處理:
          3〉可以采用各種通信協(xié)議進(jìn)行通信,只要符合SOAP協(xié)議。
          2.BPEL4WS語(yǔ)言主要元素使用提示。
          BPEL4WS語(yǔ)言中的各個(gè)元素就好像是傳統(tǒng)編程語(yǔ)言中的關(guān)鍵字一樣,正是由這些基本的元素組合到一起,構(gòu)成了BPEL4WS的語(yǔ)言結(jié)構(gòu)。從總體上劃分,BPEL4WS語(yǔ)言可以被劃分為最重要的四個(gè)部分(并不是所有BPEL4WS元素都包含在其中,這只是按主要功能進(jìn)行劃分的)
          1〉數(shù)據(jù)處理
          2〉基本活動(dòng)
          3〉結(jié)構(gòu)化活動(dòng)
          4〉作用域
          由于篇幅的關(guān)系,在這里就不進(jìn)行詳細(xì)的介紹了,相關(guān)的內(nèi)容可以查閱BPEL4WS語(yǔ)言規(guī)范。
          (英文版:?http://www.ibm.comhttp://www.ibm.com/developerworks/library/ws-bpel/)?
          在實(shí)際的開(kāi)發(fā)中,對(duì)于初學(xué)者來(lái)說(shuō),最容易迷惑的恐怕是BPEL4WS語(yǔ)言中關(guān)于各個(gè)元素之間相互包容關(guān)系的理解,這一點(diǎn)也是BPEL4WS語(yǔ)言比傳統(tǒng)編程語(yǔ)言較為難的一點(diǎn)。用傳統(tǒng)的編程開(kāi)發(fā)語(yǔ)言進(jìn)行開(kāi)發(fā),往往各個(gè)元素之間是可以互相嵌套的,而在BPEL4WS語(yǔ)言中各個(gè)元素之間的包含關(guān)系有著嚴(yán)格的規(guī)定,但遺憾的是這在它的Specification中并沒(méi)有明確的指示出來(lái)(即沒(méi)有顯式的總結(jié)出來(lái)),也許對(duì)于一個(gè)資深BPEL4WS開(kāi)發(fā)人員來(lái)說(shuō),一切都是那么自然而然,但對(duì)初學(xué)者來(lái)說(shuō),我覺(jué)得首先掌握BPEL4WS中各個(gè)元素之間的相互包含依賴關(guān)系是十分重要的。
          下面是我為大家總結(jié)的BPEL4WS語(yǔ)言中的最重要的各個(gè)元素之間的包含依賴關(guān)系對(duì)照表。縱坐標(biāo)代表母元素,也就是父節(jié)點(diǎn);橫坐標(biāo)代表子元素,也就是子節(jié)點(diǎn)。有黑點(diǎn)標(biāo)識(shí)的表示子節(jié)點(diǎn)(橫坐標(biāo))可以包含于父節(jié)點(diǎn)(縱坐標(biāo))中,反之則不然。
          ?

          3.BPEL4WS語(yǔ)言利用外部Web服務(wù)的技巧提示。
          既然BPEL4WS語(yǔ)言本身并不執(zhí)行任何業(yè)務(wù)操作,那么這些操作就必須由相應(yīng)的Web服務(wù)來(lái)執(zhí)行,這一點(diǎn)一定要體現(xiàn)在BPEL4WS的程序中。而如何調(diào)用這些外部的Web服務(wù)呢?這就要用到Web服務(wù)描述語(yǔ)言(WSDL)了。在WSDL文件中詳細(xì)的描述了相關(guān)Web服務(wù)的細(xì)節(jié)內(nèi)容,包括接口定義,消息定義,操作定義,連接定義等。
          目前可以得到外部Web服務(wù)詳細(xì)信息的途徑主要有3條途徑:
          1〉通過(guò)本地的WSDL文件獲得相關(guān)的Web服務(wù)信息。
          優(yōu)點(diǎn):使用方便
          缺點(diǎn):不夠靈活;不能保持與最新Web服務(wù)信息的同步
          2〉通過(guò)TCP/IP協(xié)議獲得分布于INTERNET上的Web服務(wù)的詳細(xì)信息。
          優(yōu)點(diǎn):可保持信息的同步
          缺點(diǎn):不能對(duì)同種類(lèi)Web服務(wù)進(jìn)行靈活選擇。
          3〉通過(guò)UDDI注冊(cè)中心獲得已注冊(cè)的Web服務(wù)的詳細(xì)信息。
          優(yōu)點(diǎn):非常靈活,可以對(duì)登記在UDDI注冊(cè)中心的所有同種類(lèi)Web服務(wù)進(jìn)行靈活的選擇。
          缺點(diǎn):實(shí)現(xiàn)起來(lái)難度較大。
          在得到需要的WSDL文件之后,我們就可以開(kāi)始利用其中的信息進(jìn)行系統(tǒng)的構(gòu)架了。但是對(duì)于外部WSDL文件的使用上,有一點(diǎn)比較容易使初學(xué)者感到迷惑,那就是外部WSDL文件中的哪些信息對(duì)我們來(lái)說(shuō)是有用的而哪些信息對(duì)我們來(lái)說(shuō)是沒(méi)用的。對(duì)于這一點(diǎn),雖然在BPEL4WS的Specification中間接的介紹了,但遺憾的是沒(méi)有詳細(xì)的羅列出來(lái)。因此在此有必要做出較為詳細(xì)的說(shuō)明。
          對(duì)于BPEL4WS語(yǔ)言中的各個(gè)元素來(lái)說(shuō),它們使用外部WSDL中的有用信息是通過(guò)它們的屬性值來(lái)體現(xiàn)的。舉個(gè)例子,在使用〈invoke〉時(shí),我們必須指定相應(yīng)的參數(shù)才可以完成調(diào)用,否則系統(tǒng)有哪能知道要調(diào)用什么操作呢?〈invoke〉操作如下所示:
          <invoke?name="getResults"
          ??????????????partner="getResultsService"
          ??????????????portType="getResultsPT"
          ??????????????operation="getResults"
          ??????????????inputContainer="getResultsData">
          ?</invoke>
          在上面的代碼中,紅色的屬性說(shuō)明這些屬性值應(yīng)來(lái)自外部的WSDL文件中;藍(lán)色的屬性說(shuō)明這些屬性值應(yīng)來(lái)自這個(gè)BPEL4WS文件本身。這就說(shuō)明在利用BPEL4WS文件構(gòu)造系統(tǒng)的時(shí)候,不僅要注意那些來(lái)自外部WSDL文件中的有用信息,還要注意利用你所設(shè)計(jì)的BPEL4WS文件本身中已定義的一些信息。對(duì)于這一點(diǎn)在BPEL4WS的Specification中沒(méi)有顯式的提出來(lái),希望在這里可以得到大家的注意。
          (注:在IBM公司Eclipse開(kāi)發(fā)環(huán)境中嵌入的BPEL4WS開(kāi)發(fā)環(huán)境可以實(shí)現(xiàn)BPEL文件本身相關(guān)信息的動(dòng)態(tài)處理,如顯示在下拉框中;但遺憾的是對(duì)于來(lái)自外部WSDL中的信息沒(méi)有動(dòng)態(tài)處理和顯示的功能。)
          在下面的部分中,總結(jié)了BPEL4WS語(yǔ)言中各個(gè)元素的屬性值的數(shù)據(jù)來(lái)源,希望對(duì)大家有所幫助。
          BPEL4WS主要元素參數(shù)分析
          〈一〉?來(lái)源于BPEL文件自身的參數(shù):
          (1)?Container/Input?Container/Output?Container/Fault?Container:
          <數(shù)據(jù)來(lái)源>?
          來(lái)源于BPEL文件中的〈containers〉節(jié)點(diǎn)中的〈container〉節(jié)點(diǎn)的"name"屬性。?
          ???<containers>
          ?????<container?name="request"?
          ????????????????messageType="lns:requestMessage"/>
          ?????<container?name="reply"?
          ????????????????messageType="lns:replyMessage"/>
          ???</containers>???
          (2)?Partner:
          <數(shù)據(jù)來(lái)源>?
          來(lái)源于BPEL文件中的〈partners〉節(jié)點(diǎn)中的〈partner〉節(jié)點(diǎn)的"name"屬性。?
          <partners>
          ??????<partner?name="customer"?
          ???????????????serviceLinkType="lns:buyServiceLinkType"
          ???????????????partnerRole="customer"/>
          ??????<partner?name="seller"?
          ???????????????serviceLinkType="lns:sellServiceLinkType"
          ???????????????partnerRole="seller"/>
          ???</partners>???
          (3)?Scope:
          <數(shù)據(jù)來(lái)源>?
          來(lái)源于BPEL文件中的〈scope〉節(jié)點(diǎn)的"name"屬性的值。?
          <scope?name="buyScope"?>
          ????<compensationHandler>
          ????????<invoke?partner="Seller"?portType="SP:buy"?
          ????????????????operation="CancelBuy"?
          ????????????????inputContainer="getResponse"
          ????????????????outputContainer="getConfirmation">
          ???????????<correlations>
          ??????????????<correlation?set="buyOrder"?pattern="out"/>
          ???????????</correlations>
          ????????</invoke>
          ????</compensationHandler>
          </scope>????
          (4)?Set:
          <數(shù)據(jù)來(lái)源>?
          來(lái)源于BPEL文件中的〈correlation〉節(jié)點(diǎn)的"set"屬性的值。?
          <correlations>
          ???????<correlation?set="shipOrder"?pattern="out"/>
          </correlations>
          (5)?Pattern:
          <數(shù)據(jù)來(lái)源>?
          來(lái)源于BPEL文件中的〈correlation〉節(jié)點(diǎn)的"name"屬性。?
          <correlations>
          ???????<correlation?set="buyOrder"?pattern="out"/>
          </correlations>
          〈二〉?來(lái)源于外部WSDL文件中的參數(shù):
          (1)?Operation:
          <數(shù)據(jù)來(lái)源>?
          來(lái)源于外部WSDL文件中的〈portType〉節(jié)點(diǎn)中的〈operation〉節(jié)點(diǎn)的"name"屬性。?
          <portType?name="buyServicePT">
          ?<operation?name="buyRequest">
          ??<input?message="buyRequestMsg"/>
          ?</operation>
          </portType>
          (2)?PortType:
          <數(shù)據(jù)來(lái)源>?
          來(lái)源于外部WSDL文件中的〈portType〉節(jié)點(diǎn)的"name"屬性。?
          <portType?name="buyServicePT">
          ?<operation?name="buyRequest">
          ??<input?message="buyRequestMsg"/>
          ?</operation>
          </portType>
          (3)?FaultName:
          <數(shù)據(jù)來(lái)源>?
          來(lái)源于外部WSDL文件中的〈portType〉節(jié)點(diǎn)中的〈fault〉節(jié)點(diǎn)的"name"屬性。?
          <portType?name="buyServicePT">
          ?<operation?name="buyRequest">
          ??<input?message="buyRequestMsg"/>
          ?</operation>
          ?????<fault?name="buyFault">
          ?</fault>
          </portType>
          (4)?MessageType:
          <數(shù)據(jù)來(lái)源>?
          來(lái)源于外部WSDL文件中的〈message〉節(jié)點(diǎn)的"name"屬性。?
          <message?name="buyRequestMsg">
          ?<part?name="buyOrder"?type="buy:buyOrder"/>
          </message>
          <message?name="buyNoticeMsg">
          ?<part?name="buyNotice"?type="buy:buyNotice"/>
          </message>
          (5)?MyRole/PartnerRole:
          <數(shù)據(jù)來(lái)源>?
          來(lái)源于外部WSDL文件中的〈serviceLinkType〉節(jié)點(diǎn)中的〈role〉節(jié)點(diǎn)的"name"屬性。
          <slnk:serviceLinkType?name="buyLT"
          ???xmlns:slnk="http://schemas.xmlsoap.org/ws/2002/07/service-link/">
          ?<slnk:role?name="buyService">
          ??<slnk:portType?name="buyServicePT"/>
          ?</slnk:role>
          ?<slnk:role?name="buyServiceCustomer">
          ??<slnk:portType?name="buyServiceCustomerPT"/>
          ?</slnk:role>
          </slnk:serviceLinkType>?
          (6)?ServiceLinkType:
          <數(shù)據(jù)來(lái)源>?
          來(lái)源于外部WSDL文件中的〈serviceLinkType〉節(jié)點(diǎn)的"name"屬性。?
          <slnk:serviceLinkType?name="buyLT"
          ???xmlns:slnk="http://schemas.xmlsoap.org/ws/2002/07/service-link/">
          ?<slnk:role?name="buyService">
          ??<slnk:portType?name="buyServicePT"/>
          ?</slnk:role>
          </slnk:serviceLinkType>

          結(jié)束語(yǔ)
          在本文中簡(jiǎn)要的介紹了BPEL4WS語(yǔ)言的主要特點(diǎn),BPEL4WS主要元素使用技巧以及利用外部Web服務(wù)的一些技巧。在以后的文章中,打算仔細(xì)的探討有關(guān)利用BPEL4WS進(jìn)行系統(tǒng)開(kāi)發(fā)和商業(yè)流程架構(gòu)的細(xì)節(jié)問(wèn)題和技巧,希望能對(duì)大家有所幫助。
          參考資料?
          1.BPEL4WS語(yǔ)言規(guī)范:?
          英文版:?http://www.ibm.com/developerworks/library/ws-bpel/?
          2.Business?processes:?Understanding?BPEL4WS,?Part1-Part4:?
          http://www.ibm.comhttp://www.ibm.com/developerworks/library/ws-bpelcol/?
          3.W3C?Note?"Web?Services?Definition?Language?(WSDL)?1.1"?4.W3C?Recommendation?"The?XML?Specification"?


          posted on 2006-09-10 16:17 matthew 閱讀(466) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): Web Services and SOA
          主站蜘蛛池模板: 裕民县| 宁武县| 略阳县| 昌邑市| 磐安县| 萍乡市| 惠州市| 新泰市| 锡林浩特市| 东安县| 嘉祥县| 梅河口市| 中超| 潞西市| 孝昌县| 宁强县| 宜春市| 邮箱| 屯昌县| 依兰县| 仁寿县| 枣强县| 龙门县| 城口县| 新疆| 泰来县| 甘洛县| 怀安县| 寿光市| 德化县| 青岛市| 嵩明县| 甘洛县| 赞皇县| 忻城县| 漯河市| 甘孜| 嘉义市| 鲁甸县| 恩施市| 南乐县|