【05】 服務(wù)組合技術(shù)_第1頁
【05】 服務(wù)組合技術(shù)_第2頁
【05】 服務(wù)組合技術(shù)_第3頁
【05】 服務(wù)組合技術(shù)_第4頁
【05】 服務(wù)組合技術(shù)_第5頁
已閱讀5頁,還剩56頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

面向服務(wù)的體系結(jié)構(gòu)(SOA)

5服務(wù)組合技術(shù)2023年2月4日主要內(nèi)容服務(wù)組合(ServiceComposition)服務(wù)編排(ServiceOrchestration)服務(wù)協(xié)同(ServiceChoreography)編排vs

協(xié)同服務(wù)組合中的協(xié)調(diào)問題(ServiceCoordination)服務(wù)組合方法SOA的哲理:集成集成(Integration)盡可能的集成(Integrationasfaraspossible)盡可能靈活的集成(Integrationasflexiblyaspossible)將小粒度服務(wù)集成為大粒度服務(wù)(composefine-grainedservicesintocoarse-grainedservice)將硬編碼的集成變?yōu)閯討B(tài)可配置的集成(transformhard-codedintegrationintodynamicallyreconfigurableintegration)這是SOA的優(yōu)勢所在,也是我們追求的目標(biāo)所在5.1服務(wù)組合

(ServiceComposition)集成的方法:CompositionvsHard-coding服務(wù)組合(servicecomposition)獨立存在的服務(wù)具有較低的價值,只有多方提供的多個服務(wù)集成在一起,通過協(xié)同來完成共同的業(yè)務(wù)目標(biāo),服務(wù)和SOA才能體現(xiàn)出其優(yōu)勢。單個Web服務(wù)的功能或/和性能有限,難以滿足一些業(yè)務(wù)應(yīng)用的需求,從而需要解決服務(wù)組合問題。服務(wù)組合(ServiceComposition)是將已有服務(wù)組合為一個新服務(wù)的過程,以增加服務(wù)的可復(fù)用性、功能和性能。案例:“開設(shè)銀行賬戶”服務(wù)組合的兩大概念SOA中提出了兩個概念:orchestration和choreography前者定義了如何將小粒度的服務(wù)按照特定的流程聚合為大粒度的服務(wù);后者則定義了如何在多方的業(yè)務(wù)流程之間通過服務(wù)實現(xiàn)協(xié)同的動作編排。二者的本質(zhì)上都是用來規(guī)劃服務(wù)之間的協(xié)同。5.2ServiceOrchestration

服務(wù)編排OrchestrationOrchestration的本意是“為管弦樂譜曲”:使用五線譜所提供的基本音符,構(gòu)造一首完整的樂曲。SOA中的Orchestration:服務(wù)編排/服務(wù)組合Orchestration:將多個小粒度的Web服務(wù)按照特定的業(yè)務(wù)邏輯規(guī)則構(gòu)造為一個可執(zhí)行的業(yè)務(wù)過程,同時又可以看作是一個大粒度的復(fù)合Web服務(wù)。執(zhí)行時需要有中心控制機(jī)制;由一個組織所擁有;側(cè)重點:如何使用已有的服務(wù)來構(gòu)造新的服務(wù)。Composition≈OrchestrationSOA中的Orchestration:服務(wù)編排/服務(wù)組合服務(wù)編排/組合的一個例子SubmitOrderCheckInventoryCheckCreditSend

Resultto

UserPortalSAPJavaWebAppMainframeFormulate

Fulfillment

OfferFormulateRejectionCan

Fulfill?TransformOrder/

CustomerDetermineDiscount示例:“訂單管理”的服務(wù)流程服務(wù)編排的描述方法:BPEL(4WS)針對orchestration,出現(xiàn)了大量的服務(wù)協(xié)同建模標(biāo)準(zhǔn),最典型的莫過于BPEL和BPEL4WS,在實踐中得到了廣泛的應(yīng)用。BPEL:BusinessProcessExecutionLanguageBPEL4WS:BPELforWebServices面向Web服務(wù)的過程建模語言;由IBM、Microsoft和BEA共同提出;BPEL能夠?qū)崿F(xiàn)基于WSDL的WebServices之間的流程編排和服務(wù)協(xié)同,它提供了一種XML注釋和語義,用于指定對WebServices進(jìn)行編排并確定Web服務(wù)之間的業(yè)務(wù)流程,實現(xiàn)WebServices之間的協(xié)同。BPEL的基本結(jié)構(gòu)過程中的基本功能單元:活動<activity>活動之間的次序關(guān)系:先后次序<sequence>多分支<switch>循環(huán)<while>并發(fā)與同步<flow>非確定性選擇<pick>過程的相關(guān)數(shù)據(jù):容器<container>錯誤處理機(jī)制:<catching>、<handlingfaults>補(bǔ)償機(jī)制:<compensationhandler>BPEL的一個例子Determineif

CanFulfill10:00amHandleNegativeCreditExceptionDiscountServicestartendBPELFlow?CreditServiceInventory

ServiceGetDiscountSendCreditApplicationReceiveCreditResult03:00pmSendInventoryRequestReceiveInventoryResult<process></process><switch><variable><partnerLink><partnerLink><partnerLink><faultHandlers><receive><invoke><invoke><flow></flow>BPEL的一個例子服務(wù)編排的運行模式(1):集中式的執(zhí)行引擎CentralizedServiceOrchestration服務(wù)編排的執(zhí)行過程需要有一個中心控制引擎,負(fù)責(zé)調(diào)用各個離散的服務(wù)示例:Oracle的BPEL執(zhí)行引擎服務(wù)編排的運行模式(2):基于Hub的分布式引擎Decentralizedserviceorchestrationwithhubsupport服務(wù)編排的運行模式(3):無Hub的分布式引擎Decentralizedorchestrationwithouthub三種模式的對比分析5.3ServiceChoreography

服務(wù)協(xié)同Choreography“編舞”:一支舞蹈需要由多個演員來協(xié)同完成,編舞者需要將各人的動作編排在一起,形成為一套完整的舞蹈?!敖豁憳肪幣拧保阂恢Ы豁憳非枰麄€樂隊各樂手之間的配合才能演奏成功,樂團(tuán)指揮就是起到在不同樂手之間的協(xié)調(diào)功能。SOA中的Choreography:服務(wù)編舞/服務(wù)協(xié)同Choreography:將多個零散的、分別由多方提供的服務(wù)/業(yè)務(wù)流程按照彼此之間的協(xié)同關(guān)系組織起來,支持多方的交互行為。側(cè)重于不同服務(wù)之間的消息傳遞的次序與規(guī)則,以保證期望的協(xié)同行為。無需中心控制;無需完全由一個組織所擁有;Collaboration≈ChoreographySOA中的Choreography:服務(wù)編舞/服務(wù)協(xié)同服務(wù)協(xié)同的例子(1):企業(yè)采購服務(wù)協(xié)同的例子(2):航空訂票PlanTripSubmittoTravelAgentReceiveTicketsSelectAirlineOrderTicketsSendTicketsGetItineraryGetOrderReceiveConfirmationReserveSeatsConfirmFlightSendConfirmationTravelerAgentAirlineChargeCreditCard服務(wù)協(xié)同模式的分類鏈?zhǔn)絽f(xié)同模式(Chained)chainedsubstitutive(CS)chainedadditive(CA)同步協(xié)同模式(Synchronized)parallelsynchronized(PS)嵌套協(xié)同模式

(Nested)nestedsynchronous(NS)nesteddeferred(ND)nestedparallel(NP)服務(wù)協(xié)同模式的分類:復(fù)合模式服務(wù)協(xié)同模式的例子:采購過程“服務(wù)協(xié)同”的描述語言:WS-CDLWS-CDL:WebServiceChoreographyDescriptionLanguageWS-CDL的文檔結(jié)構(gòu)“服務(wù)協(xié)同”的描述語言:WS-CDLChoreographyInteractionChannelinstancesStructuredActivitiesSequenceParallelChoiceRepetitionPerformConditionalsNon-observableObservableWorkunitsPackageParticipantsRolesRelationshipsChanneltypesExceptionsFinalizers一個例子MarketMaker視角的WS-CDLsendRequestQuotereceiveQuotesendAcceptQuotechoice{

receiveQuoteHasExpired

sequence{ receiveTradeAffirmation sendTradeAffirmed }}MarketTaker的QuotationSystem視角的WS-CDLMarketTaker的TradingSystem視角的WS-CDLreceiveRequestQuotesendQuotechoice{

sequence{ receiveAcceptQuote sendQuoteAcceptConfirmed receiveTradeAffirmation sendTradeAffirmed } noAction}5.4二者的比較

Orchestrationvs.ChoreographyOrchestrationvs.ChoreographyOrchestrationvs.ChoreographyOrchestrationvs.Choreographyprovidedinterface...orchestrationchoreographyrequiredinterfaceAdaptation(execution)Adaptation(design)Adaptation(design)Internalservice/API二者在SOA的標(biāo)準(zhǔn)協(xié)議棧中的位置SOAToolsAppDevFrameworkSOAP,WSDL,UDDIWS-IBasicProfile

WebServicePolicyWebServiceTransactionsWebServiceReliableMessagingJ2EE1.4WebServiceSecurityWebServiceOrchestrationWebServiceDistributedManagementWebServiceCoordinationWebServiceChoreographyTPM,Mainframe,LegacySysApplicationsDatabasesB2BPartnersJ2EEApplicationServer(OracleAS10g)BPEL4WSvs.WS-CDLBPEL需要集中式的控制機(jī)制;遞歸式的服務(wù)組合;可執(zhí)行的過程建模語言;需要調(diào)用Web服務(wù);WS-CDL無需集中式的控制機(jī)制(分布在各個參與方);描述性語言,不可執(zhí)行;無需調(diào)用Web服務(wù);5.5服務(wù)組合中的協(xié)調(diào)問題

(ServiceCoordination)什么是“協(xié)調(diào)”(Coordination)?多個Web服務(wù)通過orchestration或choreography組合在一起并被客戶端所調(diào)用時,它們之間存在著復(fù)雜的交互過程。每個服務(wù)不是獨立與客戶端發(fā)生交互,各服務(wù)之間需要共享若干信息,這些信息會影響到自身服務(wù)的執(zhí)行策略。執(zhí)行過程需要較長的時間;各參與方需要根據(jù)其他參與方的選擇作出自己的決策;Coordination:各參與者之間通過傳遞消息的而共享信息的過程;使用Coordination的目的:為了在多個參與者之間達(dá)成一致的結(jié)果;為了讓參與者都接收到在應(yīng)用領(lǐng)域中某些特定的消息。Coordination的實例(1):分布式事務(wù)處理例如在實現(xiàn)分布式事務(wù)時,就需要由事務(wù)管理器在各個資源管理器之間相互協(xié)調(diào),并且由兩階段提交協(xié)議(2PC)規(guī)定了具體的協(xié)調(diào)過程。Coordination的實例(2):工作流管理為了控制工作流的運行,需要使用coordination與工作流中的各個活動打交道。Coordination的實例(3):TravelAgencyService服務(wù)協(xié)調(diào)器(Coordinator)的組成部分Activationservice:向客戶端提供一個接口,用來創(chuàng)建協(xié)調(diào)上下文實例(coordinationinstanceorcontext);Registrationservice:向客戶端提供一個接口,允許客戶端將自己注冊到上下文環(huán)境中來;Asetofcoordinationprotocolservices:每個服務(wù)支持一種特定的協(xié)調(diào)協(xié)議。服務(wù)協(xié)調(diào)器(Coordinator)的工作過程publicResultCompositionService(Parameterp)

{

Resulta=ServiceA(p);

Resultb=ServiceB(p);

Resultc=ServiceC(p);

returna+b+c;

}5.6服務(wù)組合方法服務(wù)組合的難點BPEL等標(biāo)準(zhǔn)只是規(guī)定了服務(wù)編排之后的模型樣式,難點問題在于如何進(jìn)行編排。

給定用戶需求,如何選擇恰當(dāng)?shù)姆?wù)集合并組織起來形成一個流程,并且能夠滿足功能和QoS方面的需求。這是一項非常困難的任務(wù),需要考慮多方面要素,如coordination、transaction、context、conversationmodeling、executionmonitoring、infrastructure等。靜態(tài)組合VS.動態(tài)組合靜態(tài)組合:假定已知組合的目標(biāo),相關(guān)服務(wù)及其交互方式。此時,只需要找到對應(yīng)的服務(wù),建立相應(yīng)的組合腳本(BPEL)并執(zhí)行它即可。靜態(tài)組合一般在設(shè)計時完成,適用于業(yè)務(wù)需求和環(huán)境較少發(fā)生變化的場合。MicrosoftBiztalk、BEAWeblogic等均支持靜態(tài)組合;缺點:可擴(kuò)展性差隨著可用服務(wù)的數(shù)量增加,手動組合是不現(xiàn)實的。在一些應(yīng)用情況中,應(yīng)用程序或用戶的目標(biāo)可能隨系統(tǒng)或環(huán)境而變化,可用服務(wù)及其交互方式也可能隨系統(tǒng)或環(huán)境變化。靜態(tài)組合VS.動態(tài)組合動態(tài)組合根據(jù)用戶的動態(tài)目標(biāo)和約束,以及可用資源和服務(wù),在運行時執(zhí)行組合,實現(xiàn)按需組合。動態(tài)組合的核心問題是根據(jù)當(dāng)前環(huán)境生成備選組合規(guī)劃,并評估(現(xiàn)實的)最優(yōu)規(guī)劃。

動態(tài)組合一般在運行時完成,適用于需求和環(huán)境頻繁發(fā)生的場合。HPe-Flow和SunSt

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論