面向服務(wù)體系結(jié)構(gòu)漫談_第1頁(yè)
面向服務(wù)體系結(jié)構(gòu)漫談_第2頁(yè)
面向服務(wù)體系結(jié)構(gòu)漫談_第3頁(yè)
面向服務(wù)體系結(jié)構(gòu)漫談_第4頁(yè)
面向服務(wù)體系結(jié)構(gòu)漫談_第5頁(yè)
已閱讀5頁(yè),還剩3頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

面對(duì)服務(wù)體系結(jié)構(gòu)(SOA)漫談?wù)罕疚暮?jiǎn)潔的對(duì)于面對(duì)服務(wù)體系結(jié)構(gòu)(SOA)進(jìn)行了介紹,并且對(duì)SOA的特點(diǎn)進(jìn)行了整理,以及對(duì)SOA的將來做了展望。-SOA定義SOA是指為了解決在Internet環(huán)境下業(yè)務(wù)集成的需要,通過連接能完成特定任務(wù)的獨(dú)立功能實(shí)體實(shí)現(xiàn)的一種軟件系統(tǒng)架構(gòu)。從這個(gè)定義中我盼望表達(dá)的前提有下面兩點(diǎn):1)軟件系統(tǒng)架構(gòu):SOA不是一種語言,也不是一種具體的技術(shù)而是一種軟件系統(tǒng)架構(gòu),它嘗試給出在特定環(huán)境下推舉采納的一種架構(gòu),從這個(gè)角度上來說,它更像一種模式(Pattern)0因此它與很多已有的軟件技術(shù)比如面對(duì)對(duì)象技術(shù),是互補(bǔ)的而非互斥的。它們分別面對(duì)不同的應(yīng)用場(chǎng)景,用來滿意不同的特定需求。2)SOA的使用范圍:需求打算同時(shí)也限制功能。SOA并不是包治百病的萬靈丹,它最主要的應(yīng)用場(chǎng)合在于解決在Internet環(huán)境下的不同商業(yè)應(yīng)用之間的業(yè)務(wù)集成問題。在下面我們會(huì)具體爭(zhēng)論Internet的各種特點(diǎn)如何打算SOA的特點(diǎn),這里我們只需要先簡(jiǎn)潔回顧一下Internet環(huán)境區(qū)分于Intranet環(huán)境的幾個(gè)特點(diǎn):a)大量異構(gòu)系統(tǒng)并存,計(jì)算機(jī)硬件工作方式不同,操作系統(tǒng)不同、編程語言也不同;b)大量、頻繁的數(shù)據(jù)傳輸仍舊速度緩慢并且不穩(wěn)定;c)版本升級(jí)無法完成,我們根本就無法知道互聯(lián)網(wǎng)上有哪些機(jī)器直接或者間接的使用某個(gè)服務(wù)。前看來大多數(shù)軟件的功能最終將作為服務(wù)來交付和使用。當(dāng)然,它們可以實(shí)現(xiàn)為緊密耦合的系統(tǒng),但從門戶、設(shè)施以及其它終端使用的觀點(diǎn)看,它們將使用一種面對(duì)服務(wù)的接口。我們已經(jīng)留意到有人提出體系架構(gòu)師和設(shè)計(jì)者應(yīng)當(dāng)謹(jǐn)慎避開將全部功能都作為服務(wù)。我們認(rèn)為這是不正確和不適當(dāng)?shù)?。假如有了成熟的Web服務(wù)合同和技術(shù),再考查是否將全部功能實(shí)現(xiàn)為Web服務(wù)是否有效,這可能會(huì)更加有效,但這并不會(huì)減弱從服務(wù)的角度來設(shè)計(jì)全部功能的需求。服務(wù)是發(fā)布的主要構(gòu)造成分,應(yīng)當(dāng)在每一重要的接口中使用。面對(duì)服務(wù)的體系結(jié)構(gòu)可以讓我們依據(jù)相關(guān)的服務(wù)來管理使用(發(fā)送、接收、使用,等等)服務(wù)。這將對(duì)我們?nèi)绾喂芾碥浖芷诋a(chǎn)生重大影響--從需求規(guī)格說明開頭就作為服務(wù),服務(wù)的設(shè)計(jì),服務(wù)的獵取和外包,以及服務(wù)的評(píng)估等等。隨著時(shí)間推移,功能被說明、發(fā)布或使用的抽象級(jí)別會(huì)漸漸越來越高。我們已經(jīng)經(jīng)受了從模塊化、對(duì)象,到現(xiàn)在的服務(wù)的進(jìn)展過程。然而,在很多方面,SOA的命名還是令人圓滿的。當(dāng)然,SOA也和體系結(jié)構(gòu)相關(guān),不行能將爭(zhēng)論限制在體系結(jié)構(gòu)方面,由于一些事物,如業(yè)務(wù)設(shè)計(jì)和發(fā)送過程也是重要的考慮因素。一個(gè)更有用的命名方法可能是面對(duì)服務(wù)(ServiceOrientation)或SO。實(shí)際上這與面對(duì)對(duì)象(00)和基于組件的開發(fā)(CBD)有很多相像之處:類似于對(duì)象和組件,服務(wù)代表了自然的建筑單元塊,它可以讓我們按更熟識(shí)的方式來組織功能。類似于對(duì)象和組件,服務(wù)是一個(gè)功能建筑單元塊,它可以組合信息和行為。隱蔽內(nèi)部的工作,以防外部入侵。為其它部分供應(yīng)一個(gè)相對(duì)簡(jiǎn)潔的接口。對(duì)象使用了抽象數(shù)據(jù)類型和數(shù)據(jù)抽象,服務(wù)可以通過方面或上下文環(huán)境供應(yīng)類似級(jí)別的適應(yīng)性。對(duì)象和組件可以依據(jù)類或繼承行為的服務(wù)層次來組織,服務(wù)可以單獨(dú)發(fā)布和使用,或者按層次或協(xié)作方式來使用。對(duì)于很多組織來說,爭(zhēng)論面對(duì)服務(wù)的體系結(jié)構(gòu)的起點(diǎn)是對(duì)Web服務(wù)的考慮。然而Web服務(wù)不是內(nèi)在的面對(duì)服務(wù)的。一種Web服務(wù)只是供應(yīng)一種符合Web服務(wù)合同的功能。在本文中,我們將要標(biāo)識(shí)一個(gè)結(jié)構(gòu)良好的服務(wù)所具有的特征,并為系統(tǒng)架構(gòu)師和設(shè)計(jì)者供應(yīng)關(guān)于如何交付面對(duì)服務(wù)的應(yīng)用程序的指導(dǎo)?;谏厦娴那疤?,下面就讓我們一起看一下SOA的基本特征。二SOA三大基本特征1獨(dú)立的功能實(shí)體在Internet這樣松散的使用環(huán)境中,任何訪問懇求都有可能出錯(cuò),因此任何企圖通過Internet進(jìn)行掌握的結(jié)構(gòu)都會(huì)面臨嚴(yán)峻的穩(wěn)定性問題。SOA非常強(qiáng)調(diào)架構(gòu)中供應(yīng)服務(wù)的功能實(shí)體的完全獨(dú)立自主的力量。傳統(tǒng)的組件技術(shù),如.NETRemoting,EJB,COM或者CORBA,都需要有一個(gè)宿主(Host或者Server)來存放和管理這些功能實(shí)體;當(dāng)這些宿主運(yùn)行結(jié)束時(shí)這些組件的壽命也隨之結(jié)束。這樣當(dāng)宿主本身或者其它功能部分消失問題的時(shí)候,在該宿主上運(yùn)行的其它應(yīng)用服務(wù)就會(huì)受到影響。SOA架構(gòu)中特別強(qiáng)調(diào)實(shí)體自我管理和恢復(fù)力量。常見的用來進(jìn)行自我恢復(fù)的技術(shù),比如事務(wù)處理(Transaction),消息隊(duì)歹I」(MessageQueue),冗余部署(RedundantDeployment)和集群系統(tǒng)(Cluster)在SOA中都起到至關(guān)重要的作用。2大數(shù)據(jù)量低頻率訪問對(duì)于.NETRemoting,EJB或者XML-RPC這些傳統(tǒng)的分布式計(jì)算模型而言,他們的服務(wù)供應(yīng)都是通過函數(shù)調(diào)用的方式進(jìn)行的,一個(gè)功能的完成往往需要通過客戶端和服務(wù)器來回很多次函數(shù)調(diào)用才能完成。在Intranet的環(huán)境下,這些調(diào)用給系統(tǒng)的響應(yīng)速度和穩(wěn)定性帶來的影響都可以忽視不計(jì),但是在Internet環(huán)境下這些因素往往是打算整個(gè)系統(tǒng)是否能正常工作的一個(gè)關(guān)鍵打算因素。因此SOA系統(tǒng)推舉采納大數(shù)據(jù)量的方式一次性進(jìn)行信息交換。3基于文本的消息傳遞由于Internet中大量異構(gòu)系統(tǒng)的存在打算了SOA系統(tǒng)必需采納基于文本而非二進(jìn)制的消息傳遞方式。在COM、CORBA這些傳統(tǒng)的組件模型中,從服務(wù)器端傳往客戶端的是一個(gè)二進(jìn)制編碼的對(duì)象,在客戶端通過調(diào)用這個(gè)對(duì)象的方法來完成某些功能"旦是在Internet環(huán)境下,不同語言,不同平臺(tái)對(duì)數(shù)據(jù)、甚至是一些基本數(shù)據(jù)類型定義不同,給不同的服務(wù)之間傳遞對(duì)象帶來的很大困難。由于基于文本的消息本身是不包含任何處理規(guī)律和數(shù)據(jù)類型的,因此服務(wù)間只傳遞文本,對(duì)數(shù)據(jù)的處理依靠于接收端的方式可以幫忙繞過兼容性這個(gè)的大泥坑。止的卜,對(duì)于一個(gè)服務(wù)來說internet與局域網(wǎng)最大的一個(gè)區(qū)別就是在Internet上的版本管理極其困難,傳統(tǒng)軟件采納的升級(jí)方式在這種松散的分布式環(huán)境中幾乎無法進(jìn)行。采納基于文本的消息傳遞方式,數(shù)據(jù)處理端可以只選擇性的處理自己理解的那部分?jǐn)?shù)據(jù),而忽視其它的數(shù)據(jù),從而得到的特別抱負(fù)的兼容性。HTTP合同:一個(gè)典型的SOA實(shí)現(xiàn)每一項(xiàng)新技術(shù)都是在一些舊的技術(shù)基礎(chǔ)上進(jìn)展出來的。正如XML根本思想來自于在60年月就已經(jīng)消失的早期標(biāo)記性語言一樣,SOA雖然這兩年才消失,但是它所表達(dá)的觀念應(yīng)當(dāng)說在網(wǎng)絡(luò)這種分布式系統(tǒng)結(jié)構(gòu)消失不久就已經(jīng)廣泛應(yīng)用了。例如我們最熟識(shí)的HTTP合同就是一個(gè)特別典型的SOA架構(gòu)設(shè)計(jì)。HTTP合同的工作過程簡(jiǎn)潔敘述如下:1)客戶端,通常是通過掃瞄器,向服務(wù)器端以文本的方式發(fā)送一個(gè)懇求,索取一個(gè)Web頁(yè)面;2)服務(wù)器端接收到這個(gè)懇求之后,依據(jù)懇求的內(nèi)容進(jìn)行處理并且返回一個(gè)符合HTML語法的文本;3)客戶端接收到服務(wù)器端的響應(yīng)文本后調(diào)用本地的程序,通常還是掃瞄器,把返回的HTML文本的內(nèi)容呈現(xiàn)出來。下面來看一下HTTP合同如何滿意了SOA的特點(diǎn):*獨(dú)立的功能實(shí)體祚為服務(wù)器端的Web服務(wù)器是肯定不會(huì)由于客戶端的狀況變化而轉(zhuǎn)變的,它總是特別穩(wěn)定地依據(jù)自己的內(nèi)在規(guī)律運(yùn)行,響應(yīng)外部的懇求,管理自己的資源和數(shù)據(jù)。這里一個(gè)特別好的例子就是Web服務(wù)器對(duì)緩存(Cache)的處理,很多Web服務(wù)器為了提高性能都或多或少的對(duì)數(shù)據(jù)進(jìn)行緩存,但是緩存數(shù)據(jù)、刷新數(shù)據(jù)這些于客戶端完全無關(guān)的操作完全由服務(wù)器端獨(dú)立完成,完全不受客戶端的影響。大數(shù)據(jù)量低頻率訪問:對(duì)于一個(gè)HTTP懇求來說,客戶端與服務(wù)器之間訪問的邊界特別簡(jiǎn)潔:就是一個(gè)懇求,一個(gè)響應(yīng),沒有任何其它的信息來回。無論客戶端申請(qǐng)的網(wǎng)頁(yè)上除了文字之外還有什么信息,對(duì)于客戶端來說,它發(fā)出的懇求只是簡(jiǎn)潔的告知Web服務(wù)器它所需要的網(wǎng)頁(yè)的位置;至于為了生成這個(gè)網(wǎng)頁(yè),服務(wù)器端是否需要訪問數(shù)據(jù)庫(kù),執(zhí)行Servlet或者其它的CGI程序?qū)蛻舳硕裕际峭耆噶恋??;谖谋镜南鬟f:迄今為止兼容性最好的系統(tǒng)可能就是HTTP合同支撐的大部分的web應(yīng)用了,我們可以在Windows平臺(tái)下用IE查看互聯(lián)網(wǎng)上一個(gè)Linux+Apache服務(wù)器上的由Perl腳本自動(dòng)生成的網(wǎng)頁(yè)。這里的關(guān)鍵就是全部?jī)?nèi)容都是以格式化的文本方式傳遞的,不管Perl腳本如何執(zhí)行,只要它的輸出是符合HTML法律規(guī)范的網(wǎng)頁(yè),就可以被客戶端的掃瞄器解釋。而由于不同的操作系統(tǒng)上對(duì)于相同的HTML的解釋遵循相同的法律規(guī)范,因此不同操作系統(tǒng)下仍舊能夠看到全都的用戶界面。我們上面基本描述了SOA作為一種軟件架構(gòu)有哪些特點(diǎn),下面讓我們一起看看WebService與SOA的關(guān)系。SOA與WebServiceWebService是就現(xiàn)在而言最適合實(shí)現(xiàn)SOA的一些技術(shù)的集合,事實(shí)上最近SOA的火爆在很大程度上歸功于WebService標(biāo)準(zhǔn)的成熟和應(yīng)用的普及為廣泛的實(shí)現(xiàn)SOA架構(gòu)供應(yīng)了基礎(chǔ)。下面讓我們看看WebService中的各種合同是如何相互工作來滿意SOA所需的特點(diǎn)的:獨(dú)立的功能實(shí)體:通過UDDI的名目查找,我們可以動(dòng)態(tài)轉(zhuǎn)變一個(gè)服務(wù)的供應(yīng)方而無需影響客戶端的應(yīng)用程序配置。全部的訪問都通過SOAP訪問進(jìn)行,只要WSDL接口封裝良好,外界客戶端是根本沒有方法直接訪問服務(wù)器端的數(shù)據(jù)的。大數(shù)據(jù)量低頻率訪問:通過使用WSDL和基于文本(Literal)的SOAP懇求,我們可以實(shí)現(xiàn)能一次性接收大量數(shù)據(jù)的接口。這里需要著重指出的是SOAP懇求分文本方式和遠(yuǎn)程調(diào)用(RPC)兩種方式,正如上文已經(jīng)提到的,采納遠(yuǎn)程調(diào)用方式的SOAP懇求并不符合這點(diǎn)要求。但是令人圓滿的是現(xiàn)有的大多數(shù)SOAP懇求采納的仍舊是遠(yuǎn)程調(diào)用(RPC)方式,在某些平臺(tái)上,例如IBMWebSphere的早期版本,甚至沒有供應(yīng)文本方式的SOAP支持?;谖谋镜南鬟f:WebService全部的通訊是通過SOAP進(jìn)行的,而SOAP是基于XML的,不同版本之間可以使用不同的DTD或者XMLSchema加以辨別和區(qū)分。因此只需要我們?yōu)椴煌陌姹竟?yīng)不同的處理就可以輕松實(shí)現(xiàn)版本掌握的目標(biāo)。SOA對(duì)于軟件架構(gòu)設(shè)計(jì)的影響無論您現(xiàn)在的系統(tǒng)是否牽涉到基于Internet的業(yè)務(wù)集成,采納SOA推舉的架構(gòu)都對(duì)提高您系統(tǒng)的擴(kuò)展性有很大關(guān)心,下面是在系統(tǒng)中引入SOA后需要在軟件架構(gòu)方面做出的轉(zhuǎn)變:使用基于文本方式的SOAP調(diào)用,擺脫遠(yuǎn)程調(diào)用中消失的函數(shù)參數(shù)類型等與數(shù)據(jù)無關(guān)的信息,保證全部SOAP傳遞的都是有意義的商業(yè)數(shù)據(jù)。依靠于Schema,而不是類定義對(duì)這些數(shù)據(jù)進(jìn)行解釋。傳統(tǒng)的三層Web應(yīng)用將可能變成四層結(jié)構(gòu)傳統(tǒng)意義上的商業(yè)規(guī)律層將被進(jìn)一步劃分為存放每個(gè)會(huì)話(Session)信息的客戶規(guī)律層和與狀態(tài)無關(guān)Sateless的SOA層。SOA的前景現(xiàn)在的Web服務(wù)實(shí)現(xiàn)往往是簡(jiǎn)潔的,通常類似于客戶端-服務(wù)器模型。然而,平臺(tái)中立的交換是受支持的,這就使一系列不同的客戶端實(shí)現(xiàn)可以與作為服務(wù)器函數(shù)的新代碼或遺留代碼進(jìn)行交互。很多文章都介紹了使這樣的應(yīng)用程序直接實(shí)現(xiàn)的技術(shù)?,F(xiàn)在是看一看我們能夠如何使用它們的更大圖景的時(shí)候了。公元前221年,秦始皇將以前交戰(zhàn)的幾個(gè)我國(guó)統(tǒng)一為一個(gè)新的我國(guó),我們現(xiàn)在稱之為中國(guó)。中國(guó)作為一個(gè)我國(guó)存在下來的一個(gè)可能的緣由就是秦朝引入了標(biāo)準(zhǔn),標(biāo)準(zhǔn)鞏固了文化,促進(jìn)了貿(mào)易:標(biāo)準(zhǔn)的輪距使得馬車可以有效地行使在任何的道路,共同的書面語言使得每個(gè)人都可以交換信息(即使他們說的并不是相同的語言),而結(jié)實(shí)的工事(比如中國(guó)的長(zhǎng)城)使得人們可以防備外敵入侵。您可以說,他為標(biāo)準(zhǔn)化傳輸、消息交換和防火墻開發(fā)了一些模型。同樣地,現(xiàn)代的業(yè)務(wù)集成同樣也受益于標(biāo)準(zhǔn),它使異構(gòu)的計(jì)算機(jī)系統(tǒng)能夠有效地互操作。這些技術(shù)合在一起稱作Web服務(wù)。Web服務(wù)的消失是以SOAP1.1的引入為標(biāo)志的,SOAP1

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論