日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

BPEL4WS基础知识

發(fā)布時間:2024/7/5 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 BPEL4WS基础知识 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、為什么選擇BPEL4WS

  • 可以使用行業(yè)范圍內(nèi)的規(guī)范來廣告、發(fā)現(xiàn)和調(diào)用Web服務(wù)

  • 開發(fā)人員和用戶可以通過組合和訂購可用的基本服務(wù)來解決復(fù)雜問題

  • 服務(wù)組合允許服務(wù)重用并加速復(fù)雜的服務(wù)開發(fā)

  • 提供一種表示法,用于將Web服務(wù)的交互描述為業(yè)務(wù)流程

  • 編寫使用Web服務(wù)的程序,通過組合一組現(xiàn)有服務(wù)來定義新的Web服務(wù)

  • 編寫作為Web服務(wù)的程序,組合服務(wù)的接口被描述為任何其他Web服務(wù)

  • ?

    二、BPEL4WS過程的結(jié)構(gòu)

    <process ...><partners>??...</partners>? <!--流程與之交互的Web服務(wù)--><containers> ...</containers>? <!--流程使用的數(shù)據(jù)--><correlationSets> ...? <!--用于支持異步交互--></correlationSets><faultHandlers> ...? <!--代替執(zhí)行路徑已處理錯誤條件--></faultHandlers><compensationHandler> ...? <!--undo動作時執(zhí)行的代碼--></compensationHandler>(activities)*? <!--該過程實(shí)際是做什么的--> </process>

    ?

    三、BPEL的基本元素

  • BPEL流程主要包括對其他服務(wù)的調(diào)用或從其他服務(wù)接收調(diào)用

  • Partner:與流程交互的其他服務(wù)

  • invoked partner:流程調(diào)用的服務(wù),作為其算法的組成部分

  • client partner:調(diào)用流程

  • 第三方partner:流程調(diào)用的服務(wù) 和 調(diào)用流程

  • Partner(Service) Link Type? (SLT)

  • 表示第三方聲明兩個(或更多潛在Web服務(wù)之間的關(guān)系)

  • 定義角色集合,其中每個角色都表示<portTypes>的列表

  • 當(dāng)兩個服務(wù)交互時,伙伴鏈接類型是它們?nèi)绾谓换サ穆暶?/p>

  • 定義了角色以及角色需要支持的端口類型

  • <partnerLinkType name=“...”><role name=“..."><portType name=“...” />*</role><role name=“...”><portType name=“...”/>*</role> </partnerLinkType> <partner name=“...”???partnerLinkType=“...” partnerRole=“...”???myRole=“...”/>
  • 在純被調(diào)用的伙伴和純客戶伙伴的情況下 伙伴鏈接類型只有一種作用

  • <partnerLinkType??????name="inventoryServiceSLT"><role name="inventoryService"><portType name=“InventoryServicePT"/></role> </partnerLinkType><partner???name="inventoryServicePL"partnerLinkType="inventoryServiceSLT"partnerRole="inventoryService"/>

    ?

    四、活動

  • BPEL流程基本上是流程圖,類似于算法的表達(dá),該過程中每個步驟都稱為活動。

  • 原始活動:過程中的原始步驟

  • <invoke>

  • <receive>

  • <reply>

  • <wait>

  • <assign>

  • 結(jié)構(gòu)活動:可以使用原始活動組合為更復(fù)雜的算法

  • <sequence>

  • <while>

  • <flow>

  • 主要活動:

    • <receive>等待用于外部調(diào)用服務(wù)接口操作的消息
    <receive partner=“...” portType=“...” operation=“...” container=“...” [createInstance=“...”] />
    • <invoke>在某些Web服務(wù)上調(diào)用操作
    <invoke??partner=“...”??portType=“...” operation=“...” inputContainer=“...”??outputContainer=“...”/>
    • <reply>生成輸入/輸出操作的響應(yīng),在伙伴調(diào)用中發(fā)送回復(fù)消息
    <reply partner=“...” portType=“...” operation=“...”? container=“...”/>
    • <assign>將數(shù)據(jù)從一個地方復(fù)制到另一個地方
    <assign><copy> … </copy>+ </assign>
  • 原始活動

  • <wait>等待一段時間

  • <throw>表示出了一點(diǎn)問題

  • <terminate>終止整個服務(wù)實(shí)例

  • <empty>或不執(zhí)行任何操作

  • 結(jié)構(gòu)活動

  • <sequence>定義步驟的有序序列

  • <switch>使用現(xiàn)在常見的“案例陳述”方法進(jìn)行分支

  • <while>定義循環(huán)

  • <pick>執(zhí)行幾種替代路徑之一

  • <flow>指示應(yīng)并執(zhí)行步驟集合

  • 基本結(jié)構(gòu)

  • <sequence><receive .../><flow><sequence><invoke ... /><while ... ><assign> ... </assign></while></sequence><sequence><receive ... /><invoke ... /></sequence></flow><reply ... /> </sequence>

    ?

    五、BPEL數(shù)據(jù)模型

  • <Countainer>提供用于保存構(gòu)成業(yè)務(wù)流程狀態(tài)的消息的方法

  • 定義變量的語法已更改為使用三個互斥屬性messageType type和element

  • ?

    六、消息相關(guān)性

  • BPEL中的異步交互

  • BPEL可以對多種類型的交互進(jìn)行建模

  • 無狀態(tài)互動

  • 有狀態(tài)的異步交互

  • 消息關(guān)聯(lián)是BPEL機(jī)制,它允許流程參與有狀態(tài)會話

  • 在許多分布式對象系統(tǒng)中,消息路由涉及檢查消息中是否有用于標(biāo)識目標(biāo)的顯式實(shí)例ID

  • BPEL實(shí)例由交換的消息中一組或多組關(guān)鍵數(shù)據(jù)字段標(biāo)識

  • 舉例:

  • 采購訂單/發(fā)票業(yè)務(wù)情景中,發(fā)票可能包含相應(yīng)的采購訂單編號

    Purchase Order:

    <PurchaseOrder><PurchaseOrderNumber><PurchaseOrderDate>........ </PurchaseOrder>

    Invoice:

    <Invoice><InvoiceNumber><InvoiceDate><PurchaseOrderNumber>........ </Invoice>
  • 相關(guān)集:標(biāo)識流程實(shí)例的數(shù)據(jù)字段的集合

  • 一組捕獲交互狀態(tài)的業(yè)務(wù)數(shù)據(jù)字段

  • 每組初始化一次

  • 在交互過程中值不變

  • 使用相關(guān)集

  • 集合被receive reply invoke pick活動引用

  • 由于receive和pick提供了流程的入口點(diǎn),因此相關(guān)集通常會出現(xiàn)在他們上以啟用消息到實(shí)例的路由

  • reply和invoke活動上的相關(guān)集通常用于驗(yàn)證傳出消息

  • <correlationSet name=“PurchaseOrder” properties=“cor:customerID cor:orderNumber”/> <correlationSet name=“Invoice” properties=“cor:vendorID cor:invoiceNumber”/> <invoke??partnerLink=“Buyer” portType=“SP:BuyerPT” operation=“AsyncPurchaseResponse” inputVariable=“POResponse”><correlations><correlation set=“PurchaseOrder” initiate=“no” pattern=“out”><correlation set=“Invoice” initiate=“yes” pattern=“out”></correlations> </invoke><receive??partnerLink=“Buyer” portType=“SP:PurchasePT” operation=“AsyncPurchase” variable=“PO”><correlations><correlation set=“PurchaseOrder” initiate=“yes” pattern=“in”></correlations> </receive>

    七、BPEL處理程序

  • 錯誤情況的處理通常會影響相互關(guān)聯(lián)的一組活動。

  • BPEL在范圍結(jié)構(gòu)化活動中包含一組相關(guān)活動。

  • 范圍為嵌套在其中的活動提供了上下文,并且在此定義了故障和補(bǔ)償處理程序。

  • 每個范圍可以具有兩種關(guān)聯(lián)的處理程序

  • 故障處理程序:可以針對不同的故障類型附加很多

  • 補(bǔ)償處理程序:每個范圍一個補(bǔ)償處理程序

  • ?

    八、錯誤處理程序

  • 在執(zhí)行BPEL流程時,在調(diào)用的服務(wù)或流程本身內(nèi)部可能會發(fā)生錯誤

  • BPEL提供了一種機(jī)制,可以通過執(zhí)行<fault handles>中指定的子例程來顯式捕獲錯誤并進(jìn)行處理

  • 當(dāng)范圍內(nèi)發(fā)生故障時,故障處理程序定義備用執(zhí)行路徑

  • ?

    九、補(bǔ)償處理程序

  • 業(yè)務(wù)流程通常持續(xù)時間很長,這意味著在業(yè)務(wù)流程進(jìn)行許多事務(wù)之后,可能需要取消業(yè)務(wù)流程。

  • 允許流程的創(chuàng)建者定義某些操作,這些操作應(yīng)用來撤消工作單元并將數(shù)據(jù)恢復(fù)到完成該工作之前的狀態(tài)。

  • ?

    十、可執(zhí)行BPEL&抽象BPEL

  • BPEL4WS支持兩種不同的使用場景:

  • 可執(zhí)行流程——實(shí)施可執(zhí)行業(yè)務(wù)流程

  • 抽象過程——描述不可執(zhí)行的抽象過程

  • 抽象過程:

  • 抽象過程是部分指定的過程,通常不打算執(zhí)行

  • 抽象流程是格式完整的流程,具有完整的表達(dá)能力,可用于指定具有不同程度的操作細(xì)節(jié)的流程。

  • 能夠抽象出操作細(xì)節(jié),使用BPEL的概念應(yīng)能反映描述業(yè)務(wù)協(xié)議公共方面所需的抽象級別。

  • 僅處理與協(xié)議相關(guān)的數(shù)據(jù)

  • 使用不確定的數(shù)據(jù)值隱藏行為的私人方面

  • 抽象過程的使用

  • 導(dǎo)出模式:可執(zhí)行流程到抽象流程

  • 導(dǎo)入模式:抽象過程到可執(zhí)行過程

  • 協(xié)議匹配模式:構(gòu)造一個與抽象過程中描述的預(yù)期行為相匹配的過程

  • ?

    十一、總結(jié)

  • BPEL是一種XML語言,支持面向流程的服務(wù)組合

  • BPEL4WS定義了一個模型和一個語法,用于基于流程及其合作伙伴之間的交互來描述業(yè)務(wù)流程的行為

  • ?

    總結(jié)

    以上是生活随笔為你收集整理的BPEL4WS基础知识的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。