版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
數(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),或維持對系統(tǒng)的控制。一致化和控制的前提是集中,集中則無法擴展,當前已經(jīng)將集中發(fā)揮到極致。需要新的方法——一個接受異質(zhì)、帶來分散的方法。SOA作用于:在大型分布式系統(tǒng)中,保持靈活性的唯一辦法就是支持異質(zhì)、分散和容錯。SOA四大主要元素SOA:是一種幫助系統(tǒng)在增長的同時保持可擴展性和靈活性的方法,也有助于填平“業(yè)務(wù)/IT”鴻溝。4大主要元素:1)服務(wù):一個服務(wù)是一項自足的、能作為一個或多個流程一部分的業(yè)務(wù)功能。服務(wù)能由任何技術(shù)、在任何平臺上實現(xiàn)。2)企業(yè)服務(wù)總線(ESB):是一個基礎(chǔ)設(shè)施,支持服務(wù)在異質(zhì)系統(tǒng)間進行調(diào)用,使分布式系統(tǒng)和服務(wù)間的高互操作性成為可能。其職責包括:數(shù)據(jù)轉(zhuǎn)化、(智能)路由、處理安全和可靠性、服務(wù)管理、檢測、日志。SOA四大主要元素4大主要元素:3)松耦合:減少系統(tǒng)依賴的概念。業(yè)務(wù)流程分布在多個后端系統(tǒng)上,最小化修改和故障的影響至關(guān)重要。目標:靈活性、可伸縮性、容錯。代價:復(fù)雜化。4)政策和過程:維護異質(zhì)系統(tǒng)。什么是服務(wù)?服務(wù)特征:1)本質(zhì)上,服務(wù)就是業(yè)務(wù)功能的IT體現(xiàn)。SOA的目標就是基于對業(yè)務(wù)規(guī)則和功能的抽象來構(gòu)筑大型分布式系統(tǒng)。2)服務(wù)的自描述性(支持動態(tài)發(fā)現(xiàn)與延遲綁定)服務(wù)具有可發(fā)布、可發(fā)現(xiàn)、機器可處理的接口契約接口定義良好:包括:完整的服務(wù)行為和語義。服務(wù)契約:服務(wù)質(zhì)量(QoS)及服務(wù)等級協(xié)議(SLA)。什么是服務(wù)?3)服務(wù)自治:獨立、自主、自給自足。4)抽象性:服務(wù)是種抽象,向使用者隱藏服務(wù)實現(xiàn)細節(jié);有助于分離服務(wù)供應(yīng)者的內(nèi)部數(shù)據(jù)結(jié)構(gòu)和外部接口。實現(xiàn)平臺透明性。5)粗粒度:支持基于業(yè)務(wù)邏輯的積木式裝配。6)連接與交互方式——松耦合式綁定,基于標準化消息進行通信。服務(wù)可具有可復(fù)用、可組合、位置透明以及可互操作等特點。BeforeSOA–AfterSOAsource:IBMSOA適用范圍1.分布式系統(tǒng)OASISSOA參考模型對SOA的定義指出:SOA是“組織和利用分布式能力”的范式。SOA使得需要一定分布式能力的實體能定位、使用這些能力。即:SOA方便了服務(wù)供應(yīng)者和服務(wù)消費者之間的交互,使業(yè)務(wù)功能的實現(xiàn)成為可能。SOA適用范圍2.所有者各異OASISSOA參考模型對SOA的定義指出:這些分布式能力“可能出于不同所有權(quán)范圍控制之下”。SOA包括的某些實踐和流程基于事實:分布式系統(tǒng)的網(wǎng)絡(luò)不被某個唯一的所有者掌控。不同的組、不同部門、甚至不同公司都可能管理不同系統(tǒng)。則,不同平臺、進度、優(yōu)先級、預(yù)算等都必須被考慮進來。SOA適用范圍2.所有者各異無論是處于一個所有者各異的環(huán)境中,還是處于一個你能控制一切的環(huán)境中,處理問題、做出調(diào)整的方式會根據(jù)需要而相應(yīng)變化。(必須向他人妥協(xié),必須接受不同的優(yōu)先級,不同解決方案的存在。不能控制所有東西。)SOA適用范圍3異質(zhì)(Heterogeneity)大系統(tǒng)缺乏一致性。用不同的平臺、不同的編程語言(及編程范式)、不同的中間件。它們是異質(zhì)的。老的解決集成分布式系統(tǒng)的方法:試圖消除異質(zhì)性。已不可行。SOA則依靠對異質(zhì)性的承認和支持來處理大系統(tǒng)。SOA的目標僅僅是:在異質(zhì)化存在的地方,用一種合適的方式處理異質(zhì)化。SOA構(gòu)建IT系統(tǒng)的特點-以業(yè)務(wù)為中心以相對于面向?qū)ο?、面向?gòu)件技術(shù),SOA更多從用戶業(yè)務(wù)出發(fā)讓業(yè)務(wù)人員參與SOA系統(tǒng)的規(guī)劃、設(shè)計和管理。在深刻理解業(yè)務(wù)的基礎(chǔ)上構(gòu)建IT系統(tǒng),實現(xiàn)IT系統(tǒng)與用戶業(yè)務(wù)的密切結(jié)合實施中把完成實際業(yè)務(wù)流程的一項任務(wù)封裝為服務(wù)基于業(yè)務(wù)選擇合適的技術(shù),避免技術(shù)制約業(yè)務(wù)SOA構(gòu)建IT系統(tǒng)的特點-靈活適應(yīng)變化用戶業(yè)務(wù)實現(xiàn)為一系列松散耦合的服務(wù)服務(wù)可以根據(jù)用戶業(yè)務(wù)變化和發(fā)展進行按需調(diào)整、重構(gòu)和重新組合提高IT系統(tǒng)對于業(yè)務(wù)靈活變化的適應(yīng)能力SOA構(gòu)建IT系統(tǒng)的特點-重用IT資源,提高開發(fā)效率
重用服務(wù)帶來對原有IT資源的重用度提升
大量高重用的服務(wù)資源為快速構(gòu)建新的業(yè)務(wù)功能和業(yè)務(wù)系統(tǒng)奠定了基礎(chǔ)提高IT系統(tǒng)的開發(fā)效率,節(jié)約成本
保護用戶前期的信息化投資和IT資產(chǎn)積累
實現(xiàn)用戶信息化可持續(xù)發(fā)展服務(wù)架構(gòu)的分層靈活重組
高重用性底層標準化上層定制化關(guān)注點分離不同策略ExampleLayersPresentation
&workflowComposedServicesBasicServicesUnderlying
APIaccordingto:TietoEnatorAB,KurtsBilder主要服務(wù)類型基本服務(wù)以數(shù)據(jù)和邏輯為中心的
封裝數(shù)據(jù)操作和數(shù)據(jù)模型,保證數(shù)據(jù)一致性是無狀態(tài)的(stateless),具有高度的可重用性一般是基于遺留IT系統(tǒng)的API,是SOA成熟度模型中的最基本地級別服務(wù)可以被重復(fù)調(diào)用,且無需維護上下文狀態(tài),例如天氣預(yù)報,沒有作業(yè)或者會話的概念,返回服務(wù)調(diào)用結(jié)果之后,處理就完成了,后續(xù)調(diào)用與前面的沒有任何關(guān)系。主要服務(wù)類型組合服務(wù)利用網(wǎng)關(guān),適配器等技術(shù)將不一致的基礎(chǔ)服務(wù)組合為提供一致訪問的服務(wù)封裝了業(yè)務(wù)工作流程服務(wù)類型SOA的多層參考架構(gòu)(IBM)Layer1:遺留系統(tǒng)客戶已經(jīng)開發(fā)使用的信息系統(tǒng).CRMERP應(yīng)用舊的面向?qū)ο髴?yīng)用
商業(yè)智能應(yīng)用使用面向服務(wù)的集成技術(shù)對其進行集成TheSOALayersLayer2:服務(wù)構(gòu)件層-企業(yè)構(gòu)件負責實現(xiàn)服務(wù)功能和保證服務(wù)質(zhì)量-對企業(yè)級或者部門級資產(chǎn)進行管理和控制的集合-典型的,采用基于容器的技術(shù)(如應(yīng)用服務(wù)器)來實現(xiàn)組件,負載管理和負載均衡,高可用性Layer3:服務(wù)層-商業(yè)業(yè)務(wù)選擇支持和公開的服務(wù)-可以通過服務(wù)發(fā)現(xiàn),進行靜態(tài)綁定和調(diào)用,或者編排-為組合服務(wù)-將企業(yè)范圍、業(yè)務(wù)單元、特定項目級的特定功能,以服務(wù)描述的形式具體化了他們的接口子集-在運行時提供服務(wù)實現(xiàn)接口所提供的功能-這一層的接口公開為一個服務(wù)描述,服務(wù)可以獨立存在或者編排為組合服務(wù)。Component構(gòu)件SOA體系架構(gòu)下的應(yīng)用軟件標準構(gòu)造單元用以構(gòu)造能為高級和更組粒度的應(yīng)用軟件模塊
(Services,References,Properties)用以封裝更為低層和更細粒度的邏輯實現(xiàn)
(Implementation)Services:服務(wù)是被使用的功能References:實現(xiàn)時所要依賴于其他構(gòu)件的服務(wù)Properties:實現(xiàn)時影響構(gòu)件動作的可設(shè)置數(shù)值Implementation:支持各種實現(xiàn)技術(shù)(Java,C++,PHP,JavaScript,EPEL,SQL,XQuery,Composite…)相同點:Service和component,都是基于可重用的思想組件從服務(wù)提供者地角度,側(cè)重于IT實現(xiàn),通過接口與實現(xiàn)分離,將功能分解為獨立的構(gòu)造單元,可以單獨開發(fā),打包和部署,依賴于特定的技術(shù)規(guī)范,如J2EE,.Net,Python等,與具體應(yīng)用有著相同的生命周期服務(wù)則代表更高層次的抽象和演進,從服務(wù)使用者的角度,側(cè)重描述到底能提供什么,而不是如何提供,只要提供了業(yè)務(wù)所需的行為和質(zhì)量,具體是不是組件實現(xiàn)的無關(guān)緊要,它獨立于應(yīng)用的部署,可以根據(jù)業(yè)務(wù)需要,獨立重構(gòu)和演進,使得大規(guī)模的重用變得更容易。服務(wù)在業(yè)務(wù)和IT技術(shù)之間提供了一個中間層,TheSOALayersLevel4:業(yè)務(wù)過程層(服務(wù)組合與協(xié)同層)-通過編制(Orchestration)或編排(Choreography)合成組合服務(wù)-用以支持業(yè)務(wù)處理和業(yè)務(wù)流程Layer5:訪問層(表現(xiàn)層)-將用戶接口從組件中分離出來-提供訪問服務(wù)或組合服務(wù)的方式TheSOALayersLevel6:集成(ESB)
-這一層使服務(wù)可以集成-通過一些可靠性和性能保證技術(shù),比如智能路由,協(xié)議中介和其他轉(zhuǎn)化機制-經(jīng)常被描述為ESB。Level7:服務(wù)質(zhì)量(QoS)-這一層提供了監(jiān)視,管理和維持諸如安全,性能和可用性等QoS的能力。-監(jiān)測SOA應(yīng)用程序健康的機制和工具服務(wù)質(zhì)量 QoS指的是服務(wù)的一種能力,它能相應(yīng)預(yù)期的請求,并能以一定的質(zhì)量完成相關(guān)的任務(wù),符合服務(wù)提供者和客戶的預(yù)期可用性:服務(wù)正常運轉(zhuǎn)的時間,修復(fù)時間(TTR)可訪問性:大量客戶同時使用服務(wù)的成功率標準性性能:吞吐量和等待時間服務(wù)質(zhì)量 QoS指的是服務(wù)的一種能力,它能相應(yīng)預(yù)期的請求,并能以一定的質(zhì)量完成相關(guān)的任務(wù),符合服務(wù)提供者和客戶的預(yù)期可靠性:與網(wǎng)絡(luò)等故障無關(guān),能始終如一的正確運行可伸縮性:服務(wù)能力隨需求量而變化安全性:認證、授權(quán)、消息完整性、機密性本章目錄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)向
重用性職責分擔標準化SOA三步驟
第一個步驟是找到服務(wù)。對于一個企業(yè)(服務(wù)對象)來講有那么多種業(yè)務(wù),怎么確定SOA架構(gòu)里需要哪些服務(wù),以及有哪些服務(wù)是需要抽象出來的?SOA三步驟
第二個步驟就是服務(wù)的描述。這些服務(wù)之間的相互關(guān)系是怎樣的,這些服務(wù)分別由哪些服務(wù)組件實現(xiàn)。SOA三步驟
第三個步驟就要考慮這些服務(wù)采用什么樣的技術(shù)實現(xiàn),可能是租用別人提供的服務(wù),也可以重用以前有的服務(wù),也可以重新開發(fā)一套服務(wù),或者我利用我們的已有系統(tǒng),把已有系統(tǒng)的功能進行封裝成一個服務(wù)等,已達到服務(wù)實現(xiàn)的目的。SOA原則理念標準化服務(wù)契約StandardizedServiceContracts松散耦合LooseCoupling抽象化Abstraction可重用性Reusability自治性Autonomy無狀態(tài)Statelessness可發(fā)現(xiàn)性Discoverability可組合性Composability管治GovernanceSOAPrinciples-StandardizedServiceContracts“同一服務(wù)目錄下的服務(wù)按照同樣的契約設(shè)計標準設(shè)計契約服務(wù)契約表達服務(wù)的目的表達服務(wù)的能力使用正式的,標準化的服務(wù)契約Focusontheareasof功能表達數(shù)據(jù)表示策略經(jīng)過服務(wù)發(fā)現(xiàn)階段,服務(wù)目錄基本形成,但是對于每個服務(wù)本身的屬性信息依然零散。服務(wù)規(guī)約階段的主要任務(wù)是規(guī)范性地描述服務(wù)各個方面的屬性,其中既包括輸入/輸出消息等功能性屬性,服務(wù)安全約束和響應(yīng)時間等服務(wù)質(zhì)量約束,以及服務(wù)在業(yè)務(wù)層面的諸多屬性,如涉及的業(yè)務(wù)規(guī)則、業(yè)務(wù)事件、時間/人員消耗等。與此同時,規(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)過服務(wù)規(guī)約階段,作為業(yè)務(wù)和IT互動的服務(wù)契約已經(jīng)形成。但是服務(wù)契約和IT的現(xiàn)狀還是有很大差距的為了將服務(wù)契約落在實地,服務(wù)實現(xiàn)階段通過差距分析,并結(jié)合傳統(tǒng)方法學(xué)完成每個服務(wù)實現(xiàn)決策。這其中包括的內(nèi)容甚多,其主要包括現(xiàn)有系統(tǒng)分析,確定服務(wù)分配,服務(wù)實現(xiàn)決策,服務(wù)基礎(chǔ)設(shè)施設(shè)計等方面內(nèi)容。SOAPrinciples-LooseCoupling“服務(wù)對使用者來說只需低的耦合需求,并且自身也同周圍環(huán)境解耦"SOA松耦合SOA松耦合SOA松耦合SOA松耦合SOA松耦合SOA松耦合SOAPrinciples-Abstraction“服務(wù)契約僅包含最基本的信息,并且關(guān)于服務(wù)的信息限于服務(wù)契約中所發(fā)布的避免增加不必要的服務(wù)信息,元數(shù)據(jù).盡可能的隱藏服務(wù)的底層細節(jié).保持松散耦合關(guān)系對于服務(wù)組合的設(shè)計很重要SOAPrinciples-Reusability邏輯是高度通用的契約是通用和可擴展的可以并發(fā)訪問SOAPrinciples-Autonomy獨立與外部環(huán)境和影響的執(zhí)行邏輯增加可靠性行為可預(yù)測性SOAPrinciples-Statelessness只有必要時才維護狀態(tài)信息根據(jù)每次請求消息獲得服務(wù)所需的全部信息,或者根據(jù)消息從資源信息庫中獲得完成服務(wù)的所需全部信息增加可靠性和可伸縮性有狀態(tài)的資源:一個狀態(tài)數(shù)據(jù)集,表示為XML文檔具有標識和生命周期多個服務(wù)都能夠操縱它WS-RF資源框架SOAPrinciples-Discoverability服務(wù)具有用于注冊的元數(shù)據(jù),以便被發(fā)現(xiàn)和使用服務(wù)契約元數(shù)據(jù)存儲在服務(wù)注冊庫中SOAPrinciples-Composability服務(wù)可以有效組合解決更為復(fù)雜的問題無論各個成分自身有多復(fù)雜
,都可以有效進行組合有利于可重用性靈活的服務(wù)契約,以便不同種類的數(shù)據(jù)交換SOAPrinciples-ApplyingSOA-Governance針對服務(wù)所制定的管控策略和機制,涵蓋服務(wù)的整個生存周期。計劃——確定治理的重點。定義——定義治理模型啟用——實現(xiàn)治理模型度量——改進治理模型當服務(wù)越來越多時,服務(wù)URL配置管理變得非常困難,硬件負載均衡器的單點壓力也越來越大。當進一步發(fā)展,服務(wù)間依賴關(guān)系變得錯蹤復(fù)雜,甚至分不清哪個應(yīng)用要在哪個應(yīng)用之前啟動,架構(gòu)師都不能完整的描述應(yīng)用的架構(gòu)關(guān)系。
接著,服務(wù)的調(diào)用量越來越大,服務(wù)的容量問題就暴露出來,這個服務(wù)需要多少機器支撐?什么時候該加機器?
SOAPrinciples-ApplyingSOA-Governance規(guī)模繼續(xù)擴大,應(yīng)用之間不再是扁平的對應(yīng)關(guān)系,開始分層,比如核心數(shù)據(jù)層,業(yè)務(wù)集成層等,就算沒有出現(xiàn)循環(huán)依賴,也不允許從低層向高層依賴,以免后續(xù)被逼循環(huán)依賴。
服務(wù)多了,溝通成本也開始上升,調(diào)某個服務(wù)失敗該找誰?服務(wù)的參數(shù)都有什么約定?
慢慢一些敏感數(shù)據(jù)也都服務(wù)化了,安全問題開始變得重要,誰能調(diào)該服務(wù)?如何授權(quán)?
SOAPrinciples-ApplyingSOA-Governance就算是不敏感的服務(wù),也不是能任意調(diào)用,比如某服務(wù)突然多了一個消費者,這個消費者的請求量直接把服務(wù)給拖跨了,其它消費者跟著一起故障。
雖然有SLA約定,如果不能控制,就只是君子協(xié)定,如何確保服務(wù)質(zhì)量?
SOAPrinciples-ApplyingSOA-Governance
服務(wù)上線后,需要驗證服務(wù)是否可用。
服務(wù)接口設(shè)計的經(jīng)驗一直在慢慢的積累過程中,很多接口并不能一促而蹴,在修改的過程中,如何保證兼容性,怎么判斷是否兼容?另外,更深層次的,業(yè)務(wù)行為兼容嗎?
SOAPrinciples-ApplyingSOA-Governance隨著服務(wù)的不停升級,總有些意想不到的事發(fā)生,比如cache寫錯了導(dǎo)致內(nèi)存溢出,故障不可避免,每次核心服務(wù)一掛,影響一大片,人心慌慌,如何控制故障的影響面?服務(wù)是否可以功能降級?或者資源劣化?誰能調(diào)該服務(wù)?如何授權(quán)?
SOAPrinciples-ApplyingSOA-Governance當已有很多小服務(wù),可能就需要組合多個小服務(wù)的大服務(wù),為此,不得不增加一個中間層,暴露一個新服務(wù),里面分別調(diào)其它小服務(wù),這樣的新服務(wù)業(yè)務(wù)邏輯少,卻帶來很多開發(fā)工作量。
并不是所有服務(wù)的訪問量都大,很多的服務(wù)都只有一丁點訪問量,卻需要部署兩臺提供服務(wù)的機器,進行HA互備,如何減少浪費的機器。SOAPrinciples-ApplyingSOA-Governance策略法律、規(guī)章制度、最佳實踐SOAPrinciples-ApplyingSOA-Governance服務(wù)定義(服務(wù)的范圍、接口和邊界)服務(wù)部署生命周期(各個生命周期階段)服務(wù)版本治理(包括兼容性)服務(wù)遷移(啟用和退役)服務(wù)注冊中心(依賴關(guān)系)SOAPrinciples-ApplyingSOA-Governance已計劃。已標識了新服務(wù)并正在設(shè)計中,不過尚未實現(xiàn)或正在實現(xiàn)中。測試。實現(xiàn)后,必須對服務(wù)進行測試(稍后將對測試進行更詳細的說明)。有些測試可能需要在生產(chǎn)環(huán)境中執(zhí)行,此環(huán)境會將服務(wù)作為活動服務(wù)處理?;顒?。這是服務(wù)可供使用的階段,我們通常所談?wù)f的服務(wù)實際是處于此階段的服務(wù)。這是一個服務(wù),處于可用狀態(tài),在實際運行并且確實可完成相應(yīng)的工作,而且尚未退役。已棄用。此階段描述仍然處于活動狀態(tài)但不會再存在很長時間的服務(wù)。這將警告使用者停止使用此服務(wù)。已退役。這是服務(wù)的最后一個階段,表示一個不再提供的服務(wù)。注冊中心可以保存有關(guān)曾經(jīng)處于活動狀態(tài)但不再可用的服務(wù)的記錄。服務(wù)消息模型(規(guī)范數(shù)據(jù)模型)服務(wù)監(jiān)視(進行問題確定)服務(wù)所有權(quán)(企業(yè)組織)服務(wù)測試(重復(fù)測試)服務(wù)安全(包括可接受的保護范圍)SOAPrinciples-ApplyingSOA-GovernanceApplyingSOA–
GovernanceSOA的基本體系結(jié)構(gòu)樣式SOA體系結(jié)構(gòu)解決什么?僅僅有松散耦合的服務(wù)還不夠,服務(wù)本身不解決接口間調(diào)用關(guān)系的拓撲問題P2P,HUB的混亂和瓶頸問題仍然存在64SOA的體系結(jié)構(gòu)模式應(yīng)用SOA來構(gòu)造業(yè)務(wù)系統(tǒng),既可以通過簡單的WebService調(diào)用,也可以通過復(fù)雜的企業(yè)服務(wù)總線(ESB)將異構(gòu)系統(tǒng)集成為業(yè)務(wù)過程。按照SOA應(yīng)用場景的復(fù)雜度,將其體系結(jié)構(gòu)模式分為10種65SOA的體系結(jié)構(gòu)模式按照SOA應(yīng)用場景的復(fù)雜度,將其體系結(jié)構(gòu)模式分為10種:硬連線(Hard-wired)點對點的服務(wù)發(fā)布與調(diào)用(P2P)服務(wù)適配器(Serviceadaptor)服務(wù)代理(Serviceproxy)遠程服務(wù)策略(Remoteservicestrategy)單點訪問(Singlepointofaccess)虛擬服務(wù)提供者(Virtualprovider)服務(wù)集成器(Serviceintegrator)企業(yè)服務(wù)總線(Enterpriseservicebus)集成化的服務(wù)生態(tài)系統(tǒng)(Integratedserviceecosystem)SOA基本體系結(jié)構(gòu)樣式之一:發(fā)布-訪問發(fā)布(Publish):為了使服務(wù)可訪問,需要發(fā)布服務(wù)描述以使服務(wù)使用者可以發(fā)現(xiàn)它。發(fā)現(xiàn)(Find):服務(wù)請求者定位服務(wù),方法是查詢服務(wù)注冊中心來找到滿足其標準的服務(wù)。調(diào)用(invoke):在檢索到服務(wù)描述之后,服務(wù)使用者繼續(xù)根據(jù)服務(wù)描述中的信息來調(diào)用服務(wù)。服務(wù)提供者服務(wù)注冊中心服務(wù)使用者(1)發(fā)布(2)發(fā)現(xiàn)(3)調(diào)用一個可通過網(wǎng)絡(luò)尋址的實體,它接受和執(zhí)行來自使用者的請求一個應(yīng)用程序、一個軟件模塊或需要一個服務(wù)的另一個服務(wù),服務(wù)使用者根據(jù)服務(wù)契約來使用服務(wù)服務(wù)發(fā)現(xiàn)的支持者它包含一個可用服務(wù)的存儲庫,并允許感興趣的服務(wù)使用者查找服務(wù)提供者接口WebService中該模式的實現(xiàn)機制WSDL:Web服務(wù)描述語言用于服務(wù)接口的描述——Whatcantheservicedo?UDDI:統(tǒng)一描述、發(fā)現(xiàn)和集成協(xié)議服務(wù)使用者通過UDDI發(fā)現(xiàn)相應(yīng)的服務(wù)并據(jù)此將服務(wù)集成在自身的系統(tǒng)中——Whatkindofservicesareneeded?SOAP:簡單對象訪問協(xié)議用戶在服務(wù)客戶端與服務(wù)提供者之間傳遞信息,通過HTTP或JMS等各類基于文本的消息傳遞協(xié)議來運輸WebService提供者WebService注冊中心WebService客戶端(1)WSDL(2)UDDI(3)SOAP68基本模式:發(fā)布-訪問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ù)開發(fā),無法提供清晰的接口(interface);但其他系統(tǒng)仍然需要訪問這些遺留系統(tǒng)的功能;——怎么辦?通過構(gòu)造適配器(adaptor,wrapper),將遺留系統(tǒng)中的功能進行二次包裝,從而開放出接口供其他系統(tǒng)使用。典型技術(shù):Java2ConnectorWebSphereBusinessIntegrationAdaptor服務(wù)適配器Wrapper包裝器:在每個數(shù)據(jù)源上加一個Wrapper,負責封裝數(shù)據(jù)源,將該數(shù)據(jù)源的特定數(shù)據(jù)對象邏輯的轉(zhuǎn)換為一個通用的數(shù)據(jù)模型,并將對通用數(shù)據(jù)模型提出的查詢轉(zhuǎn)換為本地可執(zhí)行的操作。綁定服務(wù)地址與遺留系統(tǒng)的功能之間的映射關(guān)系以上2種SOA模式的缺陷客戶端為了使用服務(wù),必須在自己的程序中寫入調(diào)用服務(wù)的代碼,即通過服務(wù)的URI地址來訪問服務(wù)。這導(dǎo)致客戶端與服務(wù)之間的耦合度過大,系統(tǒng)的靈活性受到限制。例如,客戶端需要在多個候選服務(wù)之間進行靈活替換,以獲得更好的QoS?!趺崔k?將這種綁定關(guān)系從代碼中抽取出來。SOA基本體系結(jié)構(gòu)樣式之三:服務(wù)代理②客戶端通過“serviceregistry”來訪問服務(wù),當希望訪問其他服務(wù)時,只要手工修改該registry即可——相當于一個配置文件;③客戶端通過“servicebroker”來動態(tài)決定需訪問那個服務(wù);——完全動態(tài)的服務(wù)選擇,很困難,需要用到服務(wù)語義的相關(guān)技術(shù)。①客戶端直接綁定服務(wù)接口(WSDL/URI);以上模式存在的問題上述場景都是調(diào)用單個服務(wù)如果客戶端需要同時或連續(xù)調(diào)用多個服務(wù)的功能,它必須在自己的系統(tǒng)中分別寫出多個調(diào)用;——非常麻煩;而且,對多個服務(wù)的調(diào)用次序也是容易發(fā)生變化的,需要頻繁的修改;——難以做到;以上模式存在的問題——怎么辦?降低耦合度將servicebroker的思想進一步發(fā)揮,客戶端不去逐一調(diào)用服務(wù),而是首先將這些被調(diào)用的服務(wù)按邏輯關(guān)系集成起來,形成一個集成的、大粒度的服務(wù);客戶端只需調(diào)用這一個服務(wù)即可;當該服務(wù)執(zhí)行時,集成器(integrator)依靠配置信息來分別調(diào)用一個個小粒度的服務(wù);對這些配置信息進行修改,即可方便的做到變更。SOA的基本體系結(jié)構(gòu)樣式之四:服務(wù)集成器服務(wù)集成器OperationalSystemsService-OrientedBusinessProcessComponent-basedPresentationQoS,Security,Management&Monitoring(InfrastructureService)IntegrationArchitecture(EnterpriseServiceBus)Object-orientedCICS/COBOLCRM,ERPBusinessIntelligenceProcessChoreographyCompositeServicesPortlets5432167EnterpriseComponentsSOA中的Orchestration:服務(wù)編制Orchestration:指業(yè)務(wù)流程,以一種說明性的方式(而非編程方式)定義編制的服務(wù)的執(zhí)行順序(如并行,邏輯條件分支等),最終合稱為組合服務(wù)。通常包括分支控制點、并行處理、人工相應(yīng)步驟和許多預(yù)定義步驟(轉(zhuǎn)換、適配器、電子郵件、報警等)。SOA中的Choreography:服務(wù)編排Choreography:指業(yè)務(wù)協(xié)作,將多個零散的、分別由多方提供的服務(wù)/業(yè)務(wù)流程按照彼此之間的協(xié)同關(guān)系組織起來,支持多方的交互行為。側(cè)重于不同服務(wù)之間的消息傳遞的次序與規(guī)則,各自描述自己如何與其他服務(wù)進行消息交換,以保證期望的協(xié)同行為。Choreography&Orchestration編制(Orchestration)——面向可執(zhí)行的流程:流程編制使用一個可執(zhí)行的中心流程來協(xié)同內(nèi)部及外部的WebService交互。通過中心流程來控制總體的目標,涉及的操作,服務(wù)調(diào)用順序。適用于域內(nèi)小粒度服務(wù)組合;有中心控制點(流程引擎),層次調(diào)用。
編排(Choreography)——面向合作:更多的強調(diào)協(xié)同工作和業(yè)務(wù)合作能力,通過消息的交互序列來控制各個部分資源的交互。參與交互的資源都是對等的,沒有集中的控制。適用于域間大粒度服務(wù)協(xié)作
Orchestration的特性在于:請求者-提供者模型,通過一個中心的控制來協(xié)同流程中的各種活動(用什么服務(wù),什么時候用,怎么用)Choreography是對等模型,高度依賴2件事情:各參與方地位平等協(xié)同工作;詳細定義的通用規(guī)則以保證協(xié)同不會導(dǎo)致混亂.SOA中的“集成”:服務(wù)編制(ServiceOrchestration)服務(wù)編制(ServiceOrchestration):將多個小粒度的Web服務(wù)按照特定的業(yè)務(wù)邏輯規(guī)則構(gòu)造為一個可執(zhí)行的業(yè)務(wù)過程,同時又可以看作是一個大粒度的復(fù)合Web服務(wù)。側(cè)重點:如何使用已有的服務(wù)來構(gòu)造新的服務(wù)。BPEL面向Web服務(wù)的過程建模語言;由IBM、Microsoft和BEA共同提出;實現(xiàn)基于WSDL的WebServices之間的流程編排;BPEL的一個例子Determineif
CanFulfill10:00amHandleNegativeCreditExceptionDiscountServicestartendBPELFlow?CreditServiceInventory
ServiceGetDiscountSendCreditApplicationReceiveCreditResult03:00pmSendInventoryRequestReceiveInventoryResult<process></process><switch><variable><partnerLink><partnerLink><partnerLink><faultHandlers><receive><invoke><invoke><flow></flow>BPEL是一門用于自動化業(yè)務(wù)流程的形式規(guī)約語言。用XML文檔寫入BPEL中的流程能在Web服務(wù)之間以標準化的交互方式得到精心組織。這些流程能夠在任何一個符合BPEL規(guī)范的平臺或產(chǎn)品上執(zhí)行。所以,通過允許顧客們在各種各樣的創(chuàng)作工具和執(zhí)行平臺之間移動這些流程,BPEL使得他們保護了他們在流程自動化上的投資。示例:Oracle的BPEL執(zhí)行引擎OracleBPELProcessManager可用于集成應(yīng)用程序和原有系統(tǒng),使用較細粒度的服務(wù)組成粗粒度的服務(wù),構(gòu)建以流程為中心的組合應(yīng)用程序,完成業(yè)務(wù)流程和工作流應(yīng)用程序(包括復(fù)雜的路由和調(diào)升)自動化。WS-CDLWS-ChoreographyDefinitionLanguage(WS-CDL)isalanguagefordescribinghowpeer-to-peerparticipantscollaborate.ThelanguageusesXML,andsomeaspectsareinspiredbythepi-calculus.(未獲得廣泛認可)DifferenciesbetweenBPELandCDLCDLprovidesadefinitionoftheinformationformatsbeingexchangedbyALLparticipants,BPELprovidestheinformationformatsexchangedbyoneparticipant.(全局/局部信息交換格式)CDLprovidestheglobalmessageexchangebetweenparticipantswithoutaspecificpointofview,BPELprovidesthemessageexchangefromthepointofviewofoneparticipant(全局/局部消息傳遞)CDLprovides“reactive”rulesthatareusedbyeachparticipanttocomputethestateofthechoreographyandinferwhichmessageexchangewill/canhappennext.BPELspecifies“active”rulesthatareexecutedtoinferwhattodonext,oncetheruleiscomputed,theorchestrationrun-timeexecutesthecorrespondingactivity(ies).(被動/主動活動激活)WS-CDL(WebServiceChoreographyDefinitionLanguage):專門的Web服務(wù)編排標準,由SUN,SAP,Oracle發(fā)起,目前由W3C發(fā)布。WS-CDL是一種描述多方契約的語言,有些類似WSDL擴展;可以看作是在已經(jīng)存在的webserv
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 多中心性網(wǎng)狀組織細胞增生癥的臨床護理
- 急性心力衰竭的護理
- 《第一章》課件-第七章第一節(jié):大數(shù)據(jù)技術(shù)與應(yīng)用-應(yīng)用場景
- 《第一章》課件-第七章第二節(jié):大數(shù)據(jù)技術(shù)與應(yīng)用-技術(shù)體驗-天貓大數(shù)據(jù)之數(shù)據(jù)清洗
- 妊娠合并甲狀腺功能亢進的臨床護理
- 癤癰的臨床護理
- 孕期臉色發(fā)黃的健康宣教
- 腺樣體切除術(shù)的健康宣教
- JJF(陜) 017-2019 數(shù)字溫濕度計校準規(guī)范
- 模擬電子電路基礎(chǔ)課件大全課件
- JTJ034-2000 公路路面基層施工技術(shù)規(guī)范
- 戰(zhàn)場防護基本知識課件
- 初中圖書目錄
- 礦山爆破安全知識
- 搞笑小品劇本《白蛇前傳》劇本臺詞完整版
- 高速路政員年度工作總結(jié)
- 面試著裝與禮儀通用課件
- 新生兒凝血功能異常的護理課件
- 理論力學(xué)全部教程通用課件
- 《微積分基礎(chǔ)》大作業(yè)
- 浙江省寧波市2023-2024學(xué)年高一上學(xué)期期末考試數(shù)學(xué)
評論
0/150
提交評論