chap4-2-數(shù)據(jù)服務(wù)與SOA基本概念_第1頁(yè)
chap4-2-數(shù)據(jù)服務(wù)與SOA基本概念_第2頁(yè)
chap4-2-數(shù)據(jù)服務(wù)與SOA基本概念_第3頁(yè)
chap4-2-數(shù)據(jù)服務(wù)與SOA基本概念_第4頁(yè)
chap4-2-數(shù)據(jù)服務(wù)與SOA基本概念_第5頁(yè)
已閱讀5頁(yè),還剩87頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

數(shù)據(jù)集成與數(shù)據(jù)服務(wù)第4章SOA與數(shù)據(jù)服務(wù)基本概念2023/2/5本章目錄4.1SOA參考架構(gòu)4.2SOA原理與基本體系架構(gòu)4.3SOA關(guān)鍵技術(shù)4.4SOA與大數(shù)據(jù)服務(wù)4.1SOA與數(shù)據(jù)服務(wù)基本概念SOA,ServiceOrientedArchitecture面向服務(wù)的體系架構(gòu)面向服務(wù)的架構(gòu)以服務(wù)為中心的體系結(jié)構(gòu)回顧:SOA起因:處理可伸縮性和分布的老辦法不管用了!不再能一致化系統(tǒng),或維持對(duì)系統(tǒng)的控制。一致化和控制的前提是集中,集中則無(wú)法擴(kuò)展,當(dāng)前已經(jīng)將集中發(fā)揮到極致。需要新的方法——一個(gè)接受異質(zhì)、帶來(lái)分散的方法。SOA作用于:在大型分布式系統(tǒng)中,保持靈活性的唯一辦法就是支持異質(zhì)、分散和容錯(cuò)。SOA四大主要元素SOA:是一種幫助系統(tǒng)在增長(zhǎng)的同時(shí)保持可擴(kuò)展性和靈活性的方法,也有助于填平“業(yè)務(wù)/IT”鴻溝。4大主要元素:1)服務(wù):一個(gè)服務(wù)是一項(xiàng)自足的、能作為一個(gè)或多個(gè)流程一部分的業(yè)務(wù)功能。服務(wù)能由任何技術(shù)、在任何平臺(tái)上實(shí)現(xiàn)。2)企業(yè)服務(wù)總線(ESB):是一個(gè)基礎(chǔ)設(shè)施,支持服務(wù)在異質(zhì)系統(tǒng)間進(jìn)行調(diào)用,使分布式系統(tǒng)和服務(wù)間的高互操作性成為可能。其職責(zé)包括:數(shù)據(jù)轉(zhuǎn)化、(智能)路由、處理安全和可靠性、服務(wù)管理、檢測(cè)、日志。SOA四大主要元素4大主要元素:3)松耦合:減少系統(tǒng)依賴的概念。業(yè)務(wù)流程分布在多個(gè)后端系統(tǒng)上,最小化修改和故障的影響至關(guān)重要。目標(biāo):靈活性、可伸縮性、容錯(cuò)。代價(jià):復(fù)雜化。4)政策和過(guò)程:維護(hù)異質(zhì)系統(tǒng)。什么是服務(wù)?服務(wù)特征:1)本質(zhì)上,服務(wù)就是業(yè)務(wù)功能的IT體現(xiàn)。SOA的目標(biāo)就是基于對(duì)業(yè)務(wù)規(guī)則和功能的抽象來(lái)構(gòu)筑大型分布式系統(tǒng)。2)服務(wù)的自描述性(支持動(dòng)態(tài)發(fā)現(xiàn)與延遲綁定)服務(wù)具有可發(fā)布、可發(fā)現(xiàn)、機(jī)器可處理的接口契約接口定義良好:包括:完整的服務(wù)行為和語(yǔ)義。服務(wù)契約:服務(wù)質(zhì)量(QoS)及服務(wù)等級(jí)協(xié)議(SLA)。什么是服務(wù)?3)服務(wù)自治:獨(dú)立、自主、自給自足。4)抽象性:服務(wù)是種抽象,向使用者隱藏服務(wù)實(shí)現(xiàn)細(xì)節(jié);有助于分離服務(wù)供應(yīng)者的內(nèi)部數(shù)據(jù)結(jié)構(gòu)和外部接口。實(shí)現(xiàn)平臺(tái)透明性。5)粗粒度:支持基于業(yè)務(wù)邏輯的積木式裝配。6)連接與交互方式——松耦合式綁定,基于標(biāo)準(zhǔn)化消息進(jìn)行通信。服務(wù)可具有可復(fù)用、可組合、位置透明以及可互操作等特點(diǎn)。BeforeSOA–AfterSOAsource:IBMSOA適用范圍1.分布式系統(tǒng)OASISSOA參考模型對(duì)SOA的定義指出:SOA是“組織和利用分布式能力”的范式。SOA使得需要一定分布式能力的實(shí)體能定位、使用這些能力。即:SOA方便了服務(wù)供應(yīng)者和服務(wù)消費(fèi)者之間的交互,使業(yè)務(wù)功能的實(shí)現(xiàn)成為可能。SOA適用范圍2.所有者各異OASISSOA參考模型對(duì)SOA的定義指出:這些分布式能力“可能出于不同所有權(quán)范圍控制之下”。SOA包括的某些實(shí)踐和流程基于事實(shí):分布式系統(tǒng)的網(wǎng)絡(luò)不被某個(gè)唯一的所有者掌控。不同的組、不同部門(mén)、甚至不同公司都可能管理不同系統(tǒng)。則,不同平臺(tái)、進(jìn)度、優(yōu)先級(jí)、預(yù)算等都必須被考慮進(jìn)來(lái)。SOA適用范圍2.所有者各異無(wú)論是處于一個(gè)所有者各異的環(huán)境中,還是處于一個(gè)你能控制一切的環(huán)境中,處理問(wèn)題、做出調(diào)整的方式會(huì)根據(jù)需要而相應(yīng)變化。(必須向他人妥協(xié),必須接受不同的優(yōu)先級(jí),不同解決方案的存在。不能控制所有東西。)SOA適用范圍3異質(zhì)(Heterogeneity)大系統(tǒng)缺乏一致性。用不同的平臺(tái)、不同的編程語(yǔ)言(及編程范式)、不同的中間件。它們是異質(zhì)的。老的解決集成分布式系統(tǒng)的方法:試圖消除異質(zhì)性。已不可行。SOA則依靠對(duì)異質(zhì)性的承認(rèn)和支持來(lái)處理大系統(tǒng)。SOA的目標(biāo)僅僅是:在異質(zhì)化存在的地方,用一種合適的方式處理異質(zhì)化。SOA構(gòu)建IT系統(tǒng)的特點(diǎn)-以業(yè)務(wù)為中心以相對(duì)于面向?qū)ο?、面向?gòu)件技術(shù),SOA更多從用戶業(yè)務(wù)出發(fā)讓業(yè)務(wù)人員參與SOA系統(tǒng)的規(guī)劃、設(shè)計(jì)和管理。在深刻理解業(yè)務(wù)的基礎(chǔ)上構(gòu)建IT系統(tǒng),實(shí)現(xiàn)IT系統(tǒng)與用戶業(yè)務(wù)的密切結(jié)合實(shí)施中把完成實(shí)際業(yè)務(wù)流程的一項(xiàng)任務(wù)封裝為服務(wù)基于業(yè)務(wù)選擇合適的技術(shù),避免技術(shù)制約業(yè)務(wù)SOA構(gòu)建IT系統(tǒng)的特點(diǎn)-靈活適應(yīng)變化用戶業(yè)務(wù)實(shí)現(xiàn)為一系列松散耦合的服務(wù)服務(wù)可以根據(jù)用戶業(yè)務(wù)變化和發(fā)展進(jìn)行按需調(diào)整、重構(gòu)和重新組合提高IT系統(tǒng)對(duì)于業(yè)務(wù)靈活變化的適應(yīng)能力SOA構(gòu)建IT系統(tǒng)的特點(diǎn)-重用IT資源,提高開(kāi)發(fā)效率

重用服務(wù)帶來(lái)對(duì)原有IT資源的重用度提升

大量高重用的服務(wù)資源為快速構(gòu)建新的業(yè)務(wù)功能和業(yè)務(wù)系統(tǒng)奠定了基礎(chǔ)提高IT系統(tǒng)的開(kāi)發(fā)效率,節(jié)約成本

保護(hù)用戶前期的信息化投資和IT資產(chǎn)積累

實(shí)現(xiàn)用戶信息化可持續(xù)發(fā)展服務(wù)架構(gòu)的分層靈活重組

高重用性底層標(biāo)準(zhǔn)化上層定制化關(guān)注點(diǎn)分離不同策略ExampleLayersPresentation

&workflowComposedServicesBasicServicesUnderlying

APIaccordingto:TietoEnatorAB,KurtsBilder主要服務(wù)類(lèi)型基本服務(wù)以數(shù)據(jù)和邏輯為中心的

封裝數(shù)據(jù)操作和數(shù)據(jù)模型,保證數(shù)據(jù)一致性是無(wú)狀態(tài)的(stateless),具有高度的可重用性一般是基于遺留IT系統(tǒng)的API,是SOA成熟度模型中的最基本地級(jí)別服務(wù)可以被重復(fù)調(diào)用,且無(wú)需維護(hù)上下文狀態(tài),例如天氣預(yù)報(bào),沒(méi)有作業(yè)或者會(huì)話的概念,返回服務(wù)調(diào)用結(jié)果之后,處理就完成了,后續(xù)調(diào)用與前面的沒(méi)有任何關(guān)系。主要服務(wù)類(lèi)型組合服務(wù)利用網(wǎng)關(guān),適配器等技術(shù)將不一致的基礎(chǔ)服務(wù)組合為提供一致訪問(wèn)的服務(wù)封裝了業(yè)務(wù)工作流程服務(wù)類(lèi)型SOA的多層參考架構(gòu)(IBM)Layer1:遺留系統(tǒng)客戶已經(jīng)開(kāi)發(fā)使用的信息系統(tǒng).CRMERP應(yīng)用舊的面向?qū)ο髴?yīng)用

商業(yè)智能應(yīng)用使用面向服務(wù)的集成技術(shù)對(duì)其進(jìn)行集成TheSOALayersLayer2:服務(wù)構(gòu)件層-企業(yè)構(gòu)件負(fù)責(zé)實(shí)現(xiàn)服務(wù)功能和保證服務(wù)質(zhì)量-對(duì)企業(yè)級(jí)或者部門(mén)級(jí)資產(chǎn)進(jìn)行管理和控制的集合-典型的,采用基于容器的技術(shù)(如應(yīng)用服務(wù)器)來(lái)實(shí)現(xiàn)組件,負(fù)載管理和負(fù)載均衡,高可用性Layer3:服務(wù)層-商業(yè)業(yè)務(wù)選擇支持和公開(kāi)的服務(wù)-可以通過(guò)服務(wù)發(fā)現(xiàn),進(jìn)行靜態(tài)綁定和調(diào)用,或者編排-為組合服務(wù)-將企業(yè)范圍、業(yè)務(wù)單元、特定項(xiàng)目級(jí)的特定功能,以服務(wù)描述的形式具體化了他們的接口子集-在運(yùn)行時(shí)提供服務(wù)實(shí)現(xiàn)接口所提供的功能-這一層的接口公開(kāi)為一個(gè)服務(wù)描述,服務(wù)可以獨(dú)立存在或者編排為組合服務(wù)。Component構(gòu)件SOA體系架構(gòu)下的應(yīng)用軟件標(biāo)準(zhǔn)構(gòu)造單元用以構(gòu)造能為高級(jí)和更組粒度的應(yīng)用軟件模塊

(Services,References,Properties)用以封裝更為低層和更細(xì)粒度的邏輯實(shí)現(xiàn)

(Implementation)Services:服務(wù)是被使用的功能References:實(shí)現(xiàn)時(shí)所要依賴于其他構(gòu)件的服務(wù)Properties:實(shí)現(xiàn)時(shí)影響構(gòu)件動(dòng)作的可設(shè)置數(shù)值Implementation:支持各種實(shí)現(xiàn)技術(shù)(Java,C++,PHP,JavaScript,EPEL,SQL,XQuery,Composite…)相同點(diǎn):Service和component,都是基于可重用的思想組件從服務(wù)提供者地角度,側(cè)重于IT實(shí)現(xiàn),通過(guò)接口與實(shí)現(xiàn)分離,將功能分解為獨(dú)立的構(gòu)造單元,可以單獨(dú)開(kāi)發(fā),打包和部署,依賴于特定的技術(shù)規(guī)范,如J2EE,.Net,Python等,與具體應(yīng)用有著相同的生命周期服務(wù)則代表更高層次的抽象和演進(jìn),從服務(wù)使用者的角度,側(cè)重描述到底能提供什么,而不是如何提供,只要提供了業(yè)務(wù)所需的行為和質(zhì)量,具體是不是組件實(shí)現(xiàn)的無(wú)關(guān)緊要,它獨(dú)立于應(yīng)用的部署,可以根據(jù)業(yè)務(wù)需要,獨(dú)立重構(gòu)和演進(jìn),使得大規(guī)模的重用變得更容易。服務(wù)在業(yè)務(wù)和IT技術(shù)之間提供了一個(gè)中間層,TheSOALayersLevel4:業(yè)務(wù)過(guò)程層(服務(wù)組合與協(xié)同層)-通過(guò)編制(Orchestration)或編排(Choreography)合成組合服務(wù)-用以支持業(yè)務(wù)處理和業(yè)務(wù)流程Layer5:訪問(wèn)層(表現(xiàn)層)-將用戶接口從組件中分離出來(lái)-提供訪問(wèn)服務(wù)或組合服務(wù)的方式TheSOALayersLevel6:集成(ESB)

-這一層使服務(wù)可以集成-通過(guò)一些可靠性和性能保證技術(shù),比如智能路由,協(xié)議中介和其他轉(zhuǎn)化機(jī)制-經(jīng)常被描述為ESB。Level7:服務(wù)質(zhì)量(QoS)-這一層提供了監(jiān)視,管理和維持諸如安全,性能和可用性等QoS的能力。-監(jiān)測(cè)SOA應(yīng)用程序健康的機(jī)制和工具服務(wù)質(zhì)量 QoS指的是服務(wù)的一種能力,它能相應(yīng)預(yù)期的請(qǐng)求,并能以一定的質(zhì)量完成相關(guān)的任務(wù),符合服務(wù)提供者和客戶的預(yù)期可用性:服務(wù)正常運(yùn)轉(zhuǎn)的時(shí)間,修復(fù)時(shí)間(TTR)可訪問(wèn)性:大量客戶同時(shí)使用服務(wù)的成功率標(biāo)準(zhǔn)性性能:吞吐量和等待時(shí)間服務(wù)質(zhì)量 QoS指的是服務(wù)的一種能力,它能相應(yīng)預(yù)期的請(qǐng)求,并能以一定的質(zhì)量完成相關(guān)的任務(wù),符合服務(wù)提供者和客戶的預(yù)期可靠性:與網(wǎng)絡(luò)等故障無(wú)關(guān),能始終如一的正確運(yùn)行可伸縮性:服務(wù)能力隨需求量而變化安全性:認(rèn)證、授權(quán)、消息完整性、機(jī)密性本章目錄3.1SOA與數(shù)據(jù)服務(wù)基本概念3.2SOA原理與基本體系架構(gòu)3.3SOA關(guān)鍵技術(shù)3.4SOA與大數(shù)據(jù)服務(wù)SOA推廣應(yīng)用的挑戰(zhàn)以服務(wù)為導(dǎo)向

重用性職責(zé)分擔(dān)標(biāo)準(zhǔn)化SOA三步驟

第一個(gè)步驟是找到服務(wù)。對(duì)于一個(gè)企業(yè)(服務(wù)對(duì)象)來(lái)講有那么多種業(yè)務(wù),怎么確定SOA架構(gòu)里需要哪些服務(wù),以及有哪些服務(wù)是需要抽象出來(lái)的?SOA三步驟

第二個(gè)步驟就是服務(wù)的描述。這些服務(wù)之間的相互關(guān)系是怎樣的,這些服務(wù)分別由哪些服務(wù)組件實(shí)現(xiàn)。SOA三步驟

第三個(gè)步驟就要考慮這些服務(wù)采用什么樣的技術(shù)實(shí)現(xiàn),可能是租用別人提供的服務(wù),也可以重用以前有的服務(wù),也可以重新開(kāi)發(fā)一套服務(wù),或者我利用我們的已有系統(tǒng),把已有系統(tǒng)的功能進(jìn)行封裝成一個(gè)服務(wù)等,已達(dá)到服務(wù)實(shí)現(xiàn)的目的。SOA原則理念標(biāo)準(zhǔn)化服務(wù)契約StandardizedServiceContracts松散耦合LooseCoupling抽象化Abstraction可重用性Reusability自治性Autonomy無(wú)狀態(tài)Statelessness可發(fā)現(xiàn)性Discoverability可組合性Composability管治GovernanceSOAPrinciples-StandardizedServiceContracts“同一服務(wù)目錄下的服務(wù)按照同樣的契約設(shè)計(jì)標(biāo)準(zhǔn)設(shè)計(jì)契約服務(wù)契約表達(dá)服務(wù)的目的表達(dá)服務(wù)的能力使用正式的,標(biāo)準(zhǔn)化的服務(wù)契約Focusontheareasof功能表達(dá)數(shù)據(jù)表示策略經(jīng)過(guò)服務(wù)發(fā)現(xiàn)階段,服務(wù)目錄基本形成,但是對(duì)于每個(gè)服務(wù)本身的屬性信息依然零散。服務(wù)規(guī)約階段的主要任務(wù)是規(guī)范性地描述服務(wù)各個(gè)方面的屬性,其中既包括輸入/輸出消息等功能性屬性,服務(wù)安全約束和響應(yīng)時(shí)間等服務(wù)質(zhì)量約束,以及服務(wù)在業(yè)務(wù)層面的諸多屬性,如涉及的業(yè)務(wù)規(guī)則、業(yè)務(wù)事件、時(shí)間/人員消耗等。與此同時(shí),規(guī)范描述服務(wù)相關(guān)方面的關(guān)系也很重要,如服務(wù)間依賴關(guān)系,服務(wù)和業(yè)務(wù)組件間關(guān)系,服務(wù)和IT組件間關(guān)系和服務(wù)消息間關(guān)系等。SOAPrinciples-StandardizedServiceContracts經(jīng)過(guò)服務(wù)規(guī)約階段,作為業(yè)務(wù)和IT互動(dòng)的服務(wù)契約已經(jīng)形成。但是服務(wù)契約和IT的現(xiàn)狀還是有很大差距的為了將服務(wù)契約落在實(shí)地,服務(wù)實(shí)現(xiàn)階段通過(guò)差距分析,并結(jié)合傳統(tǒng)方法學(xué)完成每個(gè)服務(wù)實(shí)現(xiàn)決策。這其中包括的內(nèi)容甚多,其主要包括現(xiàn)有系統(tǒng)分析,確定服務(wù)分配,服務(wù)實(shí)現(xiàn)決策,服務(wù)基礎(chǔ)設(shè)施設(shè)計(jì)等方面內(nèi)容。SOAPrinciples-LooseCoupling“服務(wù)對(duì)使用者來(lái)說(shuō)只需低的耦合需求,并且自身也同周?chē)h(huán)境解耦"SOA松耦合SOA松耦合SOA松耦合SOA松耦合SOA松耦合SOA松耦合SOAPrinciples-Abstraction“服務(wù)契約僅包含最基本的信息,并且關(guān)于服務(wù)的信息限于服務(wù)契約中所發(fā)布的避免增加不必要的服務(wù)信息,元數(shù)據(jù).盡可能的隱藏服務(wù)的底層細(xì)節(jié).保持松散耦合關(guān)系對(duì)于服務(wù)組合的設(shè)計(jì)很重要SOAPrinciples-Reusability邏輯是高度通用的契約是通用和可擴(kuò)展的可以并發(fā)訪問(wèn)SOAPrinciples-Autonomy獨(dú)立與外部環(huán)境和影響的執(zhí)行邏輯增加可靠性行為可預(yù)測(cè)性SOAPrinciples-Statelessness只有必要時(shí)才維護(hù)狀態(tài)信息根據(jù)每次請(qǐng)求消息獲得服務(wù)所需的全部信息,或者根據(jù)消息從資源信息庫(kù)中獲得完成服務(wù)的所需全部信息增加可靠性和可伸縮性有狀態(tài)的資源:一個(gè)狀態(tài)數(shù)據(jù)集,表示為XML文檔具有標(biāo)識(shí)和生命周期多個(gè)服務(wù)都能夠操縱它WS-RF資源框架SOAPrinciples-Discoverability服務(wù)具有用于注冊(cè)的元數(shù)據(jù),以便被發(fā)現(xiàn)和使用服務(wù)契約元數(shù)據(jù)存儲(chǔ)在服務(wù)注冊(cè)庫(kù)中SOAPrinciples-Composability服務(wù)可以有效組合解決更為復(fù)雜的問(wèn)題無(wú)論各個(gè)成分自身有多復(fù)雜

,都可以有效進(jìn)行組合有利于可重用性靈活的服務(wù)契約,以便不同種類(lèi)的數(shù)據(jù)交換SOAPrinciples-ApplyingSOA-Governance針對(duì)服務(wù)所制定的管控策略和機(jī)制,涵蓋服務(wù)的整個(gè)生存周期。計(jì)劃——確定治理的重點(diǎn)。定義——定義治理模型啟用——實(shí)現(xiàn)治理模型度量——改進(jìn)治理模型當(dāng)服務(wù)越來(lái)越多時(shí),服務(wù)URL配置管理變得非常困難,硬件負(fù)載均衡器的單點(diǎn)壓力也越來(lái)越大。當(dāng)進(jìn)一步發(fā)展,服務(wù)間依賴關(guān)系變得錯(cuò)蹤復(fù)雜,甚至分不清哪個(gè)應(yīng)用要在哪個(gè)應(yīng)用之前啟動(dòng),架構(gòu)師都不能完整的描述應(yīng)用的架構(gòu)關(guān)系。

接著,服務(wù)的調(diào)用量越來(lái)越大,服務(wù)的容量問(wèn)題就暴露出來(lái),這個(gè)服務(wù)需要多少機(jī)器支撐?什么時(shí)候該加機(jī)器?

SOAPrinciples-ApplyingSOA-Governance規(guī)模繼續(xù)擴(kuò)大,應(yīng)用之間不再是扁平的對(duì)應(yīng)關(guān)系,開(kāi)始分層,比如核心數(shù)據(jù)層,業(yè)務(wù)集成層等,就算沒(méi)有出現(xiàn)循環(huán)依賴,也不允許從低層向高層依賴,以免后續(xù)被逼循環(huán)依賴。

服務(wù)多了,溝通成本也開(kāi)始上升,調(diào)某個(gè)服務(wù)失敗該找誰(shuí)?服務(wù)的參數(shù)都有什么約定?

慢慢一些敏感數(shù)據(jù)也都服務(wù)化了,安全問(wèn)題開(kāi)始變得重要,誰(shuí)能調(diào)該服務(wù)?如何授權(quán)?

SOAPrinciples-ApplyingSOA-Governance就算是不敏感的服務(wù),也不是能任意調(diào)用,比如某服務(wù)突然多了一個(gè)消費(fèi)者,這個(gè)消費(fèi)者的請(qǐng)求量直接把服務(wù)給拖跨了,其它消費(fèi)者跟著一起故障。

雖然有SLA約定,如果不能控制,就只是君子協(xié)定,如何確保服務(wù)質(zhì)量?

SOAPrinciples-ApplyingSOA-Governance

服務(wù)上線后,需要驗(yàn)證服務(wù)是否可用。

服務(wù)接口設(shè)計(jì)的經(jīng)驗(yàn)一直在慢慢的積累過(guò)程中,很多接口并不能一促而蹴,在修改的過(guò)程中,如何保證兼容性,怎么判斷是否兼容?另外,更深層次的,業(yè)務(wù)行為兼容嗎?

SOAPrinciples-ApplyingSOA-Governance隨著服務(wù)的不停升級(jí),總有些意想不到的事發(fā)生,比如cache寫(xiě)錯(cuò)了導(dǎo)致內(nèi)存溢出,故障不可避免,每次核心服務(wù)一掛,影響一大片,人心慌慌,如何控制故障的影響面?服務(wù)是否可以功能降級(jí)?或者資源劣化?誰(shuí)能調(diào)該服務(wù)?如何授權(quán)?

SOAPrinciples-ApplyingSOA-Governance當(dāng)已有很多小服務(wù),可能就需要組合多個(gè)小服務(wù)的大服務(wù),為此,不得不增加一個(gè)中間層,暴露一個(gè)新服務(wù),里面分別調(diào)其它小服務(wù),這樣的新服務(wù)業(yè)務(wù)邏輯少,卻帶來(lái)很多開(kāi)發(fā)工作量。

并不是所有服務(wù)的訪問(wèn)量都大,很多的服務(wù)都只有一丁點(diǎn)訪問(wèn)量,卻需要部署兩臺(tái)提供服務(wù)的機(jī)器,進(jìn)行HA互備,如何減少浪費(fèi)的機(jī)器。SOAPrinciples-ApplyingSOA-Governance策略法律、規(guī)章制度、最佳實(shí)踐SOAPrinciples-ApplyingSOA-Governance服務(wù)定義(服務(wù)的范圍、接口和邊界)服務(wù)部署生命周期(各個(gè)生命周期階段)服務(wù)版本治理(包括兼容性)服務(wù)遷移(啟用和退役)服務(wù)注冊(cè)中心(依賴關(guān)系)SOAPrinciples-ApplyingSOA-Governance已計(jì)劃。已標(biāo)識(shí)了新服務(wù)并正在設(shè)計(jì)中,不過(guò)尚未實(shí)現(xiàn)或正在實(shí)現(xiàn)中。測(cè)試。實(shí)現(xiàn)后,必須對(duì)服務(wù)進(jìn)行測(cè)試(稍后將對(duì)測(cè)試進(jìn)行更詳細(xì)的說(shuō)明)。有些測(cè)試可能需要在生產(chǎn)環(huán)境中執(zhí)行,此環(huán)境會(huì)將服務(wù)作為活動(dòng)服務(wù)處理?;顒?dòng)。這是服務(wù)可供使用的階段,我們通常所談?wù)f的服務(wù)實(shí)際是處于此階段的服務(wù)。這是一個(gè)服務(wù),處于可用狀態(tài),在實(shí)際運(yùn)行并且確實(shí)可完成相應(yīng)的工作,而且尚未退役。已棄用。此階段描述仍然處于活動(dòng)狀態(tài)但不會(huì)再存在很長(zhǎng)時(shí)間的服務(wù)。這將警告使用者停止使用此服務(wù)。已退役。這是服務(wù)的最后一個(gè)階段,表示一個(gè)不再提供的服務(wù)。注冊(cè)中心可以保存有關(guān)曾經(jīng)處于活動(dòng)狀態(tài)但不再可用的服務(wù)的記錄。服務(wù)消息模型(規(guī)范數(shù)據(jù)模型)服務(wù)監(jiān)視(進(jìn)行問(wèn)題確定)服務(wù)所有權(quán)(企業(yè)組織)服務(wù)測(cè)試(重復(fù)測(cè)試)服務(wù)安全(包括可接受的保護(hù)范圍)SOAPrinciples-ApplyingSOA-GovernanceApplyingSOA–

GovernanceSOA的基本體系結(jié)構(gòu)樣式SOA體系結(jié)構(gòu)解決什么??jī)H僅有松散耦合的服務(wù)還不夠,服務(wù)本身不解決接口間調(diào)用關(guān)系的拓?fù)鋯?wèn)題P2P,HUB的混亂和瓶頸問(wèn)題仍然存在64SOA的體系結(jié)構(gòu)模式應(yīng)用SOA來(lái)構(gòu)造業(yè)務(wù)系統(tǒng),既可以通過(guò)簡(jiǎn)單的WebService調(diào)用,也可以通過(guò)復(fù)雜的企業(yè)服務(wù)總線(ESB)將異構(gòu)系統(tǒng)集成為業(yè)務(wù)過(guò)程。按照SOA應(yīng)用場(chǎng)景的復(fù)雜度,將其體系結(jié)構(gòu)模式分為10種65SOA的體系結(jié)構(gòu)模式按照SOA應(yīng)用場(chǎng)景的復(fù)雜度,將其體系結(jié)構(gòu)模式分為10種:硬連線(Hard-wired)點(diǎn)對(duì)點(diǎn)的服務(wù)發(fā)布與調(diào)用(P2P)服務(wù)適配器(Serviceadaptor)服務(wù)代理(Serviceproxy)遠(yuǎn)程服務(wù)策略(Remoteservicestrategy)單點(diǎn)訪問(wèn)(Singlepointofaccess)虛擬服務(wù)提供者(Virtualprovider)服務(wù)集成器(Serviceintegrator)企業(yè)服務(wù)總線(Enterpriseservicebus)集成化的服務(wù)生態(tài)系統(tǒng)(Integratedserviceecosystem)SOA基本體系結(jié)構(gòu)樣式之一:發(fā)布-訪問(wèn)發(fā)布(Publish):為了使服務(wù)可訪問(wèn),需要發(fā)布服務(wù)描述以使服務(wù)使用者可以發(fā)現(xiàn)它。發(fā)現(xiàn)(Find):服務(wù)請(qǐng)求者定位服務(wù),方法是查詢服務(wù)注冊(cè)中心來(lái)找到滿足其標(biāo)準(zhǔn)的服務(wù)。調(diào)用(invoke):在檢索到服務(wù)描述之后,服務(wù)使用者繼續(xù)根據(jù)服務(wù)描述中的信息來(lái)調(diào)用服務(wù)。服務(wù)提供者服務(wù)注冊(cè)中心服務(wù)使用者(1)發(fā)布(2)發(fā)現(xiàn)(3)調(diào)用一個(gè)可通過(guò)網(wǎng)絡(luò)尋址的實(shí)體,它接受和執(zhí)行來(lái)自使用者的請(qǐng)求一個(gè)應(yīng)用程序、一個(gè)軟件模塊或需要一個(gè)服務(wù)的另一個(gè)服務(wù),服務(wù)使用者根據(jù)服務(wù)契約來(lái)使用服務(wù)服務(wù)發(fā)現(xiàn)的支持者它包含一個(gè)可用服務(wù)的存儲(chǔ)庫(kù),并允許感興趣的服務(wù)使用者查找服務(wù)提供者接口WebService中該模式的實(shí)現(xiàn)機(jī)制WSDL:Web服務(wù)描述語(yǔ)言用于服務(wù)接口的描述——Whatcantheservicedo?UDDI:統(tǒng)一描述、發(fā)現(xiàn)和集成協(xié)議服務(wù)使用者通過(guò)UDDI發(fā)現(xiàn)相應(yīng)的服務(wù)并據(jù)此將服務(wù)集成在自身的系統(tǒng)中——Whatkindofservicesareneeded?SOAP:簡(jiǎn)單對(duì)象訪問(wèn)協(xié)議用戶在服務(wù)客戶端與服務(wù)提供者之間傳遞信息,通過(guò)HTTP或JMS等各類(lèi)基于文本的消息傳遞協(xié)議來(lái)運(yùn)輸WebService提供者WebService注冊(cè)中心WebService客戶端(1)WSDL(2)UDDI(3)SOAP68基本模式:發(fā)布-訪問(wèn)WSDL

WebService(J2EE,PL/SQL,

.NET,C/C++,

Legacy…)WebServiceClient(J2EE,.NET,

PL/SQL…)PointstodescriptionDescribesServiceFindsServiceInvokeswithXMLMessagesSOAPUDDI

RegistryPointstoserviceSOA基本體系結(jié)構(gòu)樣式之二:適配器模式企業(yè)中存在若干遺留系統(tǒng)(legacysystem);這些系統(tǒng)采用較傳統(tǒng)的技術(shù)開(kāi)發(fā),無(wú)法提供清晰的接口(interface);但其他系統(tǒng)仍然需要訪問(wèn)這些遺留系統(tǒng)的功能;——怎么辦?通過(guò)構(gòu)造適配器(adaptor,wrapper),將遺留系統(tǒng)中的功能進(jìn)行二次包裝,從而開(kāi)放出接口供其他系統(tǒng)使用。典型技術(shù):Java2ConnectorWebSphereBusinessIntegrationAdaptor服務(wù)適配器Wrapper包裝器:在每個(gè)數(shù)據(jù)源上加一個(gè)Wrapper,負(fù)責(zé)封裝數(shù)據(jù)源,將該數(shù)據(jù)源的特定數(shù)據(jù)對(duì)象邏輯的轉(zhuǎn)換為一個(gè)通用的數(shù)據(jù)模型,并將對(duì)通用數(shù)據(jù)模型提出的查詢轉(zhuǎn)換為本地可執(zhí)行的操作。綁定服務(wù)地址與遺留系統(tǒng)的功能之間的映射關(guān)系以上2種SOA模式的缺陷客戶端為了使用服務(wù),必須在自己的程序中寫(xiě)入調(diào)用服務(wù)的代碼,即通過(guò)服務(wù)的URI地址來(lái)訪問(wèn)服務(wù)。這導(dǎo)致客戶端與服務(wù)之間的耦合度過(guò)大,系統(tǒng)的靈活性受到限制。例如,客戶端需要在多個(gè)候選服務(wù)之間進(jìn)行靈活替換,以獲得更好的QoS?!趺崔k?將這種綁定關(guān)系從代碼中抽取出來(lái)。SOA基本體系結(jié)構(gòu)樣式之三:服務(wù)代理②客戶端通過(guò)“serviceregistry”來(lái)訪問(wèn)服務(wù),當(dāng)希望訪問(wèn)其他服務(wù)時(shí),只要手工修改該registry即可——相當(dāng)于一個(gè)配置文件;③客戶端通過(guò)“servicebroker”來(lái)動(dòng)態(tài)決定需訪問(wèn)那個(gè)服務(wù);——完全動(dòng)態(tài)的服務(wù)選擇,很困難,需要用到服務(wù)語(yǔ)義的相關(guān)技術(shù)。①客戶端直接綁定服務(wù)接口(WSDL/URI);以上模式存在的問(wèn)題上述場(chǎng)景都是調(diào)用單個(gè)服務(wù)如果客戶端需要同時(shí)或連續(xù)調(diào)用多個(gè)服務(wù)的功能,它必須在自己的系統(tǒng)中分別寫(xiě)出多個(gè)調(diào)用;——非常麻煩;而且,對(duì)多個(gè)服務(wù)的調(diào)用次序也是容易發(fā)生變化的,需要頻繁的修改;——難以做到;以上模式存在的問(wèn)題——怎么辦?降低耦合度將servicebroker的思想進(jìn)一步發(fā)揮,客戶端不去逐一調(diào)用服務(wù),而是首先將這些被調(diào)用的服務(wù)按邏輯關(guān)系集成起來(lái),形成一個(gè)集成的、大粒度的服務(wù);客戶端只需調(diào)用這一個(gè)服務(wù)即可;當(dāng)該服務(wù)執(zhí)行時(shí),集成器(integrator)依靠配置信息來(lái)分別調(diào)用一個(gè)個(gè)小粒度的服務(wù);對(duì)這些配置信息進(jìn)行修改,即可方便的做到變更。SOA的基本體系結(jié)構(gòu)樣式之四:服務(wù)集成器服務(wù)集成器OperationalSystemsService-OrientedBusinessProcessComponent-basedPresentationQoS,Security,Management&Monitoring(InfrastructureService)IntegrationArchitecture(EnterpriseServiceBus)Object-orientedCICS/COBOLCRM,ERPBusinessIntelligenceProcessChoreographyCompositeServicesPortlets5432167EnterpriseComponentsSOA中的Orchestration:服務(wù)編制Orchestration:指業(yè)務(wù)流程,以一種說(shuō)明性的方式(而非編程方式)定義編制的服務(wù)的執(zhí)行順序(如并行,邏輯條件分支等),最終合稱(chēng)為組合服務(wù)。通常包括分支控制點(diǎn)、并行處理、人工相應(yīng)步驟和許多預(yù)定義步驟(轉(zhuǎn)換、適配器、電子郵件、報(bào)警等)。SOA中的Choreography:服務(wù)編排Choreography:指業(yè)務(wù)協(xié)作,將多個(gè)零散的、分別由多方提供的服務(wù)/業(yè)務(wù)流程按照彼此之間的協(xié)同關(guān)系組織起來(lái),支持多方的交互行為。側(cè)重于不同服務(wù)之間的消息傳遞的次序與規(guī)則,各自描述自己如何與其他服務(wù)進(jìn)行消息交換,以保證期望的協(xié)同行為。Choreography&Orchestration編制(Orchestration)——面向可執(zhí)行的流程:流程編制使用一個(gè)可執(zhí)行的中心流程來(lái)協(xié)同內(nèi)部及外部的WebService交互。通過(guò)中心流程來(lái)控制總體的目標(biāo),涉及的操作,服務(wù)調(diào)用順序。適用于域內(nèi)小粒度服務(wù)組合;有中心控制點(diǎn)(流程引擎),層次調(diào)用。

編排(Choreography)——面向合作:更多的強(qiáng)調(diào)協(xié)同工作和業(yè)務(wù)合作能力,通過(guò)消息的交互序列來(lái)控制各個(gè)部分資源的交互。參與交互的資源都是對(duì)等的,沒(méi)有集中的控制。適用于域間大粒度服務(wù)協(xié)作

Orchestration的特性在于:請(qǐng)求者-提供者模型,通過(guò)一個(gè)中心的控制來(lái)協(xié)同流程中的各種活動(dòng)(用什么服務(wù),什么時(shí)候用,怎么用)Choreography是對(duì)等模型,高度依賴2件事情:各參與方地位平等協(xié)同工作;詳細(xì)定義的通用規(guī)則以保證協(xié)同不會(huì)導(dǎo)致混亂.SOA中的“集成”:服務(wù)編制(ServiceOrchestration)服務(wù)編制(ServiceOrchestration):將多個(gè)小粒度的Web服務(wù)按照特定的業(yè)務(wù)邏輯規(guī)則構(gòu)造為一個(gè)可執(zhí)行的業(yè)務(wù)過(guò)程,同時(shí)又可以看作是一個(gè)大粒度的復(fù)合Web服務(wù)。側(cè)重點(diǎn):如何使用已有的服務(wù)來(lái)構(gòu)造新的服務(wù)。BPEL面向Web服務(wù)的過(guò)程建模語(yǔ)言;由IBM、Microsoft和BEA共同提出;實(shí)現(xiàn)基于WSDL的WebServices之間的流程編排;BPEL的一個(gè)例子Determineif

CanFulfill10:00amHandleNegativeCreditExceptionDiscountServicestartendBPELFlow?CreditServiceInventory

ServiceGetDiscountSendCreditApplicationReceiveCreditResult03:00pmSendInventoryRequestReceiveInventoryResult<process></process><switch><variable><partnerLink><partnerLink><partnerLink><faultHandlers><receive><invoke><invoke><flow></flow>BPEL是一門(mén)用于自動(dòng)化業(yè)務(wù)流程的形式規(guī)約語(yǔ)言。用XML文檔寫(xiě)入BPEL中的流程能在Web服務(wù)之間以標(biāo)準(zhǔn)化的交互方式得到精心組織。這些流程能夠在任何一個(gè)符合BPEL規(guī)范的平臺(tái)或產(chǎn)品上執(zhí)行。所以,通過(guò)允許顧客們?cè)诟鞣N各樣的創(chuàng)作工具和執(zhí)行平臺(tái)之間移動(dòng)這些流程,BPEL使得他們保護(hù)了他們?cè)诹鞒套詣?dòng)化上的投資。示例:Oracle的BPEL執(zhí)行引擎OracleBPELProcessManager可用于集成應(yīng)用程序和原有系統(tǒng),使用較細(xì)粒度的服務(wù)組成粗粒度的服務(wù),構(gòu)建以流程為中心的組合應(yīng)用程序,完成業(yè)務(wù)流程和工作流應(yīng)用程序(包括復(fù)雜的路由和調(diào)升)自動(dòng)化。WS-CDLWS-ChoreographyDefinitionLanguage(WS-CDL)isalanguagefordescribinghowpeer-to-peerparticipantscollaborate.ThelanguageusesXML,andsomeaspectsareinspiredbythepi-calculus.(未獲得廣泛認(rèn)可)DifferenciesbetweenBPELandCDLCDLprovidesadefinitionoftheinformationformatsbeingexchangedbyALLparticipants,BPELprovidestheinformationformatsexchangedbyoneparticipant.(全局/局部信息交換格式)CDLprovidestheglobalmessageexchangebetweenparticipantswithoutaspecificpointofview,BPELprovidesthemessageexchangefromthepointofviewofoneparticipant(全局/局部消息傳遞)CDLprovides“reactive”rulesthatareusedbyeachparticipanttocomputethestateofthechoreographyandinferwhichmessageexchangewill/canhappennext.BPELspecifies“active”rulesthatareexecutedtoinferwhattodonext,oncetheruleiscomputed,theorchestrationrun-timeexecutesthecorrespondingactivity(ies).(被動(dòng)/主動(dòng)活動(dòng)激活)WS-CDL(WebServiceChoreographyDefinitionLanguage):專(zhuān)門(mén)的Web服務(wù)編排標(biāo)準(zhǔn),由SUN,SAP,Oracle發(fā)起,目前由W3C發(fā)布。WS-CDL是一種描述多方契約的語(yǔ)言,有些類(lèi)似WSDL擴(kuò)展;可以看作是在已經(jīng)存在的webserv

溫馨提示

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

評(píng)論

0/150

提交評(píng)論