面向服務的架構(gòu)soa_第1頁
面向服務的架構(gòu)soa_第2頁
面向服務的架構(gòu)soa_第3頁
面向服務的架構(gòu)soa_第4頁
面向服務的架構(gòu)soa_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、面向服務的架構(gòu)-SOA主講人:嵩聚星主要內(nèi)容本次講座的內(nèi)容主要包括以下幾部分1 SOA的發(fā)展歷史及背景2 SOA的基本概念3 SOA的核心思想4 SOA的簡單實現(xiàn)發(fā)展歷史及背景 問題:假如你是馬云,你該如何管理阿里巴巴旗下的 諸多產(chǎn)品?是B/S模式?還是C/S模式?還是?發(fā)展歷史及背景 系統(tǒng)架構(gòu)演化歷程-初始階段架構(gòu)應用程序、數(shù)據(jù)庫、文件等所有的資源都在一臺服務器上。通常服務器操作系統(tǒng)使用linux,應用程序使用PHP開發(fā),然后部署在Apache上,數(shù)據(jù)庫使用Mysql,匯集各種免費開源軟件以及一臺廉價服務器就可以開始系統(tǒng)的發(fā)展之路了。LAMP、J2EE、.Net等。發(fā)展歷史及背景 系統(tǒng)架構(gòu)演

2、化歷程-應用服務和數(shù)據(jù)服務分離應用程序、數(shù)據(jù)庫、文件分別部署在獨立的資源上。數(shù)據(jù)量增加,單臺服務器性能及存儲空間不足,需要將應用和數(shù)據(jù)分離,并發(fā)處理能力和數(shù)據(jù)存儲空間得到了很大改善。發(fā)展歷史及背景 系統(tǒng)架構(gòu)演化歷程-使用緩存改善性能數(shù)據(jù)庫中訪問較集中的一小部分數(shù)據(jù)存儲在緩存服務器中,減少數(shù)據(jù)庫的訪問次數(shù),降低數(shù)據(jù)庫的訪問壓力。系統(tǒng)訪問特點遵循二八定律,即80%的業(yè)務訪問集中在20%的數(shù)據(jù)上。緩存分為本地緩存和遠程分布式緩存, 本地緩存訪問速度更快但緩存數(shù)據(jù)量有限,同時存在與應用程序爭用內(nèi)存的情況。發(fā)展歷史及背景 系統(tǒng)架構(gòu)演化歷程-使用緩存改善性能在做完分庫分表這些工作后,數(shù)據(jù)庫上的壓力已經(jīng)降到

3、比較低了,又開始過著每天看著訪問量暴增的幸福生活了,突然有一天,發(fā)現(xiàn)系統(tǒng)的訪問又開始有變慢的趨勢了,這個時候首先查看數(shù)據(jù)庫, 壓力一切正常,之后查看webserver,發(fā)現(xiàn)apache 阻塞了很多的請求,而應用服務器對每個請求也是比較快的,看來 是請求數(shù)太高導致需要排隊等待,響應速度變慢多臺服務器通過負載均衡同時向外部提供服務, 解決單臺服務器處理能力和存儲空間上限的問題。使用集群是系統(tǒng)解決高并發(fā)、海量數(shù)據(jù)問題的常用手段。通過向集群中追加資源,提升系統(tǒng)的并發(fā)處理能力,使得服務器的負載壓力不再成為整個系統(tǒng)的瓶頸。享受了一段時間的系統(tǒng)訪問量高速增長的幸福后,發(fā)現(xiàn)系統(tǒng)又開始變慢了,這次又是什么狀況呢

4、,經(jīng)過查找, 發(fā)現(xiàn)數(shù)據(jù)庫寫入、更新的這些操作的部分數(shù)據(jù)庫連接的資源競爭非常激烈,導致了系統(tǒng)變慢發(fā)展歷史及背景 系統(tǒng)架構(gòu)演化歷程-數(shù)據(jù)庫讀寫分離發(fā)展歷史及背景 系統(tǒng)架構(gòu)演化歷程-反向和CDN加速發(fā)展歷史及背景 系統(tǒng)架構(gòu)演化歷程-分布式文件系統(tǒng)和分布式數(shù)據(jù)庫任何強大的單一服務器都滿足不了大型系統(tǒng)持續(xù)增長的業(yè)務需求,數(shù)據(jù)庫讀寫分離隨著業(yè)務的發(fā)展最終也將無法滿足需求,需要使用分布式數(shù)據(jù)庫及分布式文件系統(tǒng)來支撐。分布式數(shù)據(jù)庫是關系數(shù)據(jù)庫拆分的最后方法,只有在單表數(shù)據(jù)規(guī)模非常龐大的時候才使用,更常用的數(shù)據(jù)庫拆分手段是業(yè)務分庫,將不同的業(yè)務數(shù)據(jù)庫部署在不同的物理服務器上。發(fā)展歷史及背景 系統(tǒng)架構(gòu)演化歷程-使

5、用NoSQL和搜索引擎發(fā)展歷史及背景 系統(tǒng)架構(gòu)演化歷程-業(yè)務拆分(橫向拆分)發(fā)展歷史及背景 系統(tǒng)架構(gòu)演化歷程-分布式服務(橫向拆分)公共的應用模塊被提取出來,部署在分布式服務器上供應用服務器調(diào)用。發(fā)展歷史及背景 系統(tǒng)架構(gòu)演化歷程-面向服務的架構(gòu)SOA發(fā)展歷史及背景 系統(tǒng)架構(gòu)演化歷程-面向服務的架構(gòu)SOA發(fā)展歷史及背景 為什么需要SOA?本質(zhì)上是兩種力量驅(qū)動的結(jié)果:需求拉動、技術(shù)推動。業(yè)務需求的拉動,希望解決業(yè)務應用的問題;技術(shù)發(fā)展的推動,使得SOA具備了技術(shù)上的可行性。需求拉動方面,主要來自于兩種信息化的困境。一個是“信息孤島”造成基于系統(tǒng)之間互聯(lián)互通的整合需求;另一個是業(yè)務的變化所導致對IT

6、靈活性,以適應變化的需求。發(fā)展歷史及背景 為什么需要SOA?發(fā)展歷史及背景 為什么需要SOA? 復用軟件應用領域越來越多,相同領域的應用系統(tǒng)之間許多基礎功能和結(jié)構(gòu)是有相似性的,每次開發(fā)系統(tǒng)都從零開始絕對不是一種好的方法,也是對質(zhì)量和效率的很大的傷害。盡可能多地凝練共性并復用以提高軟件開發(fā)效率和質(zhì)量,通過中間件通過提供簡單、一致、集成的開發(fā)和運行環(huán)境,簡化分布式系統(tǒng)的設計、編程和管理,這也是SOA發(fā)展的重要推動力。軟件技術(shù)發(fā)展內(nèi)容,包括更好的程序設計語言、更好的平臺和軟件開發(fā)技術(shù),如面向?qū)ο?、組件開發(fā)、面向服務等等。而這方面,在技術(shù)上逐漸發(fā)展的成果大部分都凝聚在今天的SOA解決方案之中。發(fā)展歷史

7、及背景 為什么需要SOA?基本概念 如何準確理解SOA?OASIS(一個SOA標準組織)給予出的SOA定義“SOA是一個范式,用于組織和利用可能處于不同所有權(quán)范圍控制下的分布式系統(tǒng)?!卑倏平o出的SOA定義“面向服務的體系結(jié)構(gòu)(Service- oriented architecture)是構(gòu)造分布式系統(tǒng)的應用程序的方法。它將應用程序功能作為服務發(fā)送給最終用戶或者其他服務。它采用開放標準、與軟件資源進行交互并采用表示的標準方式”。SOA是包含運行環(huán)境、編程模型、架構(gòu)風格和相關方法論等在內(nèi)的一整套新的分布式軟件系統(tǒng)構(gòu)造方法和環(huán)境,涵蓋服務的整個生命周期:建模-開發(fā)-整合-部署-運行-管理?;靖拍?/p>

8、 如何準確理解SOA?基本概念 其他與SOA相關的概念-ESBESB(企業(yè)服務總線 Enterprise Service Bus)是一種在松散耦合的服務和應用之間標準的集成方式。ESB采用了“總線”這樣一種模式來管理和簡化應用之間的集成拓撲結(jié)構(gòu),以廣為接受的開放標準為E基SB礎-來-企支業(yè)持服應務用總之線間,在像消一息根、明和”服的務管級道別,上用動態(tài)的互連互通。來連接各個“愚笨”的節(jié)點。為了集成不同系統(tǒng),ESB不提同供協(xié)了驅(qū)務動,和E文SB檔做導了向消的息處的理轉(zhuǎn)模換式解,釋以與及路分由布式的運行管理機等制工,作它,支讓持不基同于的內(nèi)服容務的互路聯(lián)由互和通過。濾,具備了復雜數(shù)據(jù)的傳輸能力,并

9、可以提供一系列的標準接口。同時可以消除不同應用之間的技術(shù)差異,讓不同的應用服務器協(xié)調(diào)運作,實現(xiàn)了不同服務之間的通信與整合。它可以作用于:面向服務的架構(gòu)分布式的應用由可重用的服務組成;面向消息的架構(gòu)應用之間通過ESB發(fā)送和接受消息;驅(qū)動的架構(gòu)應用之間異步地產(chǎn)生和接收消息?;靖拍?其他與SOA相關的概念-JBI&SCA&SDOSOA在Java領域有兩套標準:一個是SUN推出的JBI(沒有得到BEA和IBM的承認),另外一個是:IBM和BEA等公司推出的SCA和SDO標準。JBI(Java Business Integration Java業(yè)務集成)只關注Java組件只處理Java組件的集成。SC

10、A(Service Component Architecture 服務組件架構(gòu))實現(xiàn)了業(yè)務組件和傳輸協(xié)議的分離,可以處理各種平臺組件的集成。SDO可以的自由讀取各種不同數(shù)據(jù)源的數(shù)據(jù)。SCA的實現(xiàn)需要ESB,相反JBI則不需要ESB。核心思想 核心要素核心思想 標準化封裝(滿足互操作性)在軟件的互操作方面,傳統(tǒng)中間件只是實現(xiàn)了訪問互操作, 即通過標準化的API實現(xiàn)了同類系統(tǒng)之間的調(diào)用互操作,而連接互操作還是依賴于特定的訪問協(xié)議,如JAVA使用RMI等。而SOA通過標準的、支持Internet、與操作系統(tǒng)無關的SOAP協(xié)議實現(xiàn)了連接互操作。而且,服務的封裝是采用XML協(xié)議,具有自解析和自定義的特性

11、,這樣,基于SOA的中間件還可以實現(xiàn)語義互操作。SOA要實現(xiàn)互操作,就是通過一系列的標準族,來實現(xiàn)訪問、連接和語義等各種層面的互操作。核心思想 標準化封裝(滿足互操作性)核心思想 復用核心思想 耦合性核心思想 設計原則(1) 無狀態(tài)。以避免服務請求者總依賴于服務的提供者的狀態(tài)。(2) 單一實例。避免功能冗余。(3) 明確定義的接口。wsdl標準(4) 自包含和模塊化。獨立進行部署、版本控制、自我管理等。(5) 粗粒度。服務數(shù)量不應太大。(6) 松耦合。(7) 重用性。(8) 互操作性。核心思想 基本架構(gòu)核心思想 基本架構(gòu)簡單實現(xiàn) WebServiceWeb Services,從字面上理解就是通

12、過Web提供的服務。我們可以理解Web Services是自包含的、模塊化的應用程序,它可以在網(wǎng)絡(通常為Web)中被描述、發(fā)布、查找以及調(diào)用;也可以理解Web Services是基于網(wǎng)絡的、分布式的模塊化組件,它執(zhí)行特定的任務,遵守具體的技術(shù)規(guī)范,這些規(guī)范使得Web Sevices能與其他兼容的組件進行互操作;也可以這樣理解,所謂Web服務,它是指由企業(yè)發(fā)布的完成其特別商務需求的在線應用服務,其他公司或應用軟件能夠通過Internet來訪問并使用這項應用服務Web 。service 簡單來說就是一個向外界暴露出的能夠通過internet進行調(diào)用的api和應用程序, 是基于SOA松耦合等思想開發(fā)出來的一套技術(shù),但是它并一定完全符合SOA的架構(gòu)。簡單實現(xiàn) WebServiceSOAP、WSDL(WebServicesDescriptionLanguage)、UDDI(UniversalDescriptionDiscovery andIntegration)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論