軟件設(shè)計與體系結(jié)構(gòu)秦航10_第1頁
軟件設(shè)計與體系結(jié)構(gòu)秦航10_第2頁
軟件設(shè)計與體系結(jié)構(gòu)秦航10_第3頁
軟件設(shè)計與體系結(jié)構(gòu)秦航10_第4頁
軟件設(shè)計與體系結(jié)構(gòu)秦航10_第5頁
已閱讀5頁,還剩26頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第10章 Web服務(wù)體系結(jié)構(gòu)1清華大學(xué)出版社內(nèi)容提要10.1 Web服務(wù)概述 10.2 Web服務(wù)體系結(jié)構(gòu)模型 10.3 Web服務(wù)的核心技術(shù) 10.4 面向服務(wù)軟件體系結(jié)構(gòu)SOA 10.5 Web服務(wù)的應(yīng)用實例 10.5.1 Web服務(wù)的創(chuàng)建 10.5.2 Web服務(wù)的發(fā)布 10.5.3 Web服務(wù)的調(diào)用 10.6 小結(jié) 2清華大學(xué)出版社10.1 Web服務(wù)概述Web服務(wù)就是通過Web接口提供的某個功能程序段。通過標(biāo)準(zhǔn)的Internet協(xié)議(例如HTTP,Hypertexttransferprotocol)可以很容易地訪問該功能,這就意味著所有客戶機(jī)都可以使用Internet進(jìn)行遠(yuǎn)程過程調(diào)用(RemoteProcedureCall,RPC)操作,該操作將對Internet上的服務(wù)器進(jìn)行請求,并接受以XML格式的返回響應(yīng)。3清華大學(xué)出版社web服務(wù)體系結(jié)構(gòu)4清華大學(xué)出版社使用Web服務(wù)的好處所有的Web服務(wù)能夠與所有的技術(shù)解決方案進(jìn)行交互,這樣可以增強(qiáng)分布式系統(tǒng)的功能,使之無須依賴于某一項技術(shù)(例如DCOM、CORBA或RMI)。使用Web服務(wù)的好處。(1)平臺的無關(guān)性(2)通用的通信信道(3)企業(yè)的互操作性(4)功能復(fù)用(5)拓展業(yè)務(wù)(6)服務(wù)器的中立性(7)安全的通信5清華大學(xué)出版社幾個標(biāo)準(zhǔn)除了SOAP協(xié)議之外,要使Web服務(wù)成為一個可行的解決方案,還需要其它幾個標(biāo)準(zhǔn)。XML(ExtensibleMarkuplanguage,可擴(kuò)展標(biāo)記語言):一種在所有Web服務(wù)中表示數(shù)據(jù)和消息的統(tǒng)一的標(biāo)準(zhǔn)方式。WSDL(WebServiceDescriptionLanguage,Web服務(wù)描述語言):WSDL說明了Web服務(wù)的接口,即每個被調(diào)用的方法以及它能夠接受和返回的參數(shù)。DISCO(DiscoveryProtocol,發(fā)現(xiàn)協(xié)議):DISCO的作用相當(dāng)于一個指針,它幫助所有的Web服務(wù)在特定的Web站點上進(jìn)行定位。該協(xié)議可以為一個公司動態(tài)地發(fā)現(xiàn)已發(fā)布的Web服務(wù)。UDDI(UniversalDescription,DiscoveryandIntegration,通用描述、發(fā)現(xiàn)和集成):UDDI相當(dāng)于存儲可用的Web服務(wù)的中心倉庫。應(yīng)用程序和開發(fā)人員可以通過訪問UDDI注冊表來了解Internet上都有哪些可用的Web服務(wù)。6清華大學(xué)出版社7清華大學(xué)出版社10.2 Web服務(wù)體系結(jié)構(gòu)模型使用Web服務(wù)的另一種方式是:作為一個客戶端,或者外部Web服務(wù)的用戶。(1)提供Web服務(wù)(2)使用Web服務(wù)8清華大學(xué)出版社10.3 Web服務(wù)的核心技術(shù)Web服務(wù)是可以在組織內(nèi)部或者公司之間的異構(gòu)計算資源中被共享、組合、使用和復(fù)用的商業(yè)資產(chǎn)。Web服務(wù)是一個可編程的部件,它提供一種易于通過Internet獲取的商業(yè)服務(wù)。Web服務(wù)可以是獨立的,也可以連接在一起向外部世界提供更強(qiáng)大的系統(tǒng)功能。Web服務(wù)將逐漸成為構(gòu)建電子商務(wù)應(yīng)用的基礎(chǔ)體系結(jié)構(gòu)?;赪eb服務(wù)的體系結(jié)構(gòu)是從一個分布式面向?qū)ο蟛考南到y(tǒng)向一個服務(wù)網(wǎng)絡(luò)的邏輯演進(jìn),該服務(wù)網(wǎng)絡(luò)提供一個能夠跨企業(yè)集成的松散耦合的底層基礎(chǔ)結(jié)構(gòu)。Web服務(wù)是基于Internet的模塊化應(yīng)用,它們執(zhí)行特定的商業(yè)任務(wù)并遵循特定的技術(shù)格式。9清華大學(xué)出版社1. Web服務(wù)棧(WebServicesStack)10清華大學(xué)出版社2. HTTPWeb服務(wù)棧中的最底層是網(wǎng)絡(luò)層,也可以稱為協(xié)議層。分布式的應(yīng)用需要有網(wǎng)絡(luò)協(xié)議來定義兩個并發(fā)過程之間的通信機(jī)制。概念上,Web服務(wù)的設(shè)計是與協(xié)議無關(guān)的,在web分層體系結(jié)構(gòu)模型中,從底向上任何標(biāo)準(zhǔn)的Internet協(xié)議都可以用于在網(wǎng)絡(luò)上調(diào)用Web服務(wù)。但目前主要是HTTP(HypertextTransportProtocol)和HTTPS(HypertextTransportProtocolSecure)協(xié)議。11清華大學(xué)出版社3. XML(ExtensibleMarkupLanguage,可擴(kuò)展標(biāo)記語言)基于XML的消息層包括數(shù)據(jù)表示、數(shù)據(jù)格式和消息傳輸協(xié)議。XML為信息交換定義了描述和格式。(1)數(shù)據(jù)表示(2)數(shù)據(jù)格式12清華大學(xué)出版社4. SOAP(SimpleObjectAccessProtocol,簡單對象訪問協(xié)議)SOAP沒有定義一種編程模型或?qū)崿F(xiàn),而是定義了一個模塊化的包裝模型,并在模塊內(nèi)定義了編碼數(shù)據(jù)的編碼機(jī)制。這使得SOAP可以在從消息傳遞系統(tǒng)到遠(yuǎn)程過程調(diào)用的任何系統(tǒng)中應(yīng)用。SOAP由四個部分組成:(1)一個SOAP封皮(Envelope)(2)一組SOAP編碼規(guī)則(Encodingrules)(3)SOAPRPC表示(4)SOAP綁定(binding)13清華大學(xué)出版社14清華大學(xué)出版社SOAP消息是用XML編碼的文檔,由三個部分組成:(1)SOAP封皮(SOAPEnvelope),是描述SOAP消息的XML文檔的頂點元素。(2)SOAP消息頭(SOAPHeader),提供了一種靈活的機(jī)制對SOAP消息以分散的、模塊化的方式進(jìn)行擴(kuò)充,而通信的各方(SOAP發(fā)送者,SOAP接收者以及SOAP中介)不必預(yù)先知道。SOAP消息頭是可選的。(3)SOAP消息體(SOAPBody),定義了一個簡單的機(jī)制來交換要發(fā)送給最終SOAP接收者的消息中的必要信息,是這些信息的容器。典型的使用是編組RPC調(diào)用和SOAP錯誤報告。15清華大學(xué)出版社SOAP消息交換模型要求接收到一個SOAP消息的應(yīng)用程序執(zhí)行下列操作:(1)識別SOAP消息中意圖供給本應(yīng)用的部分,本應(yīng)用可以作為SOAP中介將消息的其它部分傳遞給另外的應(yīng)用。(2)檢驗SOAP消息中指定的所有必須處理的部分,并進(jìn)行相應(yīng)的處理。(3)如果SOAP應(yīng)用不是消息的最終目的地,它應(yīng)該在刪除所有自己消耗的部分后將消息轉(zhuǎn)發(fā)給消息要供給的下一個應(yīng)用。16清華大學(xué)出版社5. WSDL(WebServicesDescriptionLanguage,Web服務(wù)描述語言)WSDL使用下面的元素定義網(wǎng)絡(luò)服務(wù):類型(Types),使用某種類型系統(tǒng)的數(shù)據(jù)類型定義的容器。WSDL并沒有引入新的類型定義語言,而將XSD作為自己的標(biāo)準(zhǔn)類型系統(tǒng),并允許通過可擴(kuò)展性使用其它的類型定義語言。消息(Message),對要傳送的數(shù)據(jù)的一個抽象定義。操作(Operation),對服務(wù)支持的動作的抽象描述。端口類型(PortType),一個或多個端點支持的操作的一個抽象集合。綁定(Binding),對特定端口類型的一個具體協(xié)議和數(shù)據(jù)格式規(guī)格。端口(Port),一個單獨的端點,由一個綁定和一個網(wǎng)絡(luò)地址組合在一起定義。服務(wù)(Service),一組相關(guān)的端點的集合。17清華大學(xué)出版社6. UDDI(UniversalDescription,Discovery,andIntegration,統(tǒng)一描述、發(fā)現(xiàn)和集成)UDDI是一套基于Web的、分布式的、為Web服務(wù)提供的信息注冊中心的實現(xiàn)標(biāo)準(zhǔn)規(guī)范,同時也包含一組使企業(yè)能將自身提供的Web服務(wù)注冊以使別的企業(yè)能夠發(fā)現(xiàn)的訪問協(xié)議的實現(xiàn)標(biāo)準(zhǔn)。(1)信息結(jié)構(gòu)(2)服務(wù)發(fā)布和發(fā)現(xiàn)(3)編程接口(4)使用UDDI(5)其它標(biāo)準(zhǔn)18清華大學(xué)出版社7. 服務(wù)集成和工作流工作流的概念在設(shè)計電子商務(wù)應(yīng)用時愈加重要。當(dāng)一個企業(yè)需要集成來自多方的Web服務(wù)并為終端用戶組織這些服務(wù)時,必須掌握其系統(tǒng)的過程和順序。(1)WSFL(2)XLang(3)BPMIBPML和BPQL,都是開放規(guī)范。19清華大學(xué)出版社8. 其它相關(guān)標(biāo)準(zhǔn)和領(lǐng)域其它許多組織在Web服務(wù)規(guī)范的制定方面也做了大量的工作。這里只簡單介紹幾種比較知名的規(guī)范。(1)ebXML(2)JAXPackWeb服務(wù)棧定義了如何建造基于Web的解決方案,是實現(xiàn)互操作性的基礎(chǔ)。Web服務(wù)是否成功,首要因素在于能真正支持互操作性的開放標(biāo)準(zhǔn)。為此需要建立一致的標(biāo)準(zhǔn)和消除差異。各方面的參與者何時能夠?qū)@些標(biāo)準(zhǔn)達(dá)成一致意見對Web服務(wù)的成功程度起著決定性作用。20清華大學(xué)出版社10.4 面向服務(wù)軟件體系結(jié)構(gòu)SOASOA(service-orientedarchitecture,面向服務(wù)的體系結(jié)構(gòu))是指為了解決在Internet環(huán)境下業(yè)務(wù)集成的需要,通過連接能完成特定任務(wù)的獨立功能實體實現(xiàn)的一種軟件系統(tǒng)架構(gòu)。(1)軟件系統(tǒng)架構(gòu):SOA不是一種語言,也不是一種具體的技術(shù)而是一種軟件系統(tǒng)架構(gòu),它嘗試給出在特定環(huán)境下推薦采用的一種架構(gòu),從這個角度上來說,它更像一種模式(Pattern)。因此它與很多已有的軟件技術(shù)比如面向?qū)ο蠹夹g(shù),是互補(bǔ)的而非互斥的。它們分別面向不同的應(yīng)用場景,用來滿足不同的特定需求。(2)SOA的使用范圍:需求決定同時也限制功能。SOA并不是包治百病的萬靈丹,它最主要的應(yīng)用場合在于解決在Internet環(huán)境下的不同商業(yè)應(yīng)用之間的業(yè)務(wù)集成問題。21清華大學(xué)出版社22清華大學(xué)出版社SOA三大的基本特征。(1)獨立的功能實體在Internet這樣松散的使用環(huán)境中,任何訪問請求都有可能出錯,因此任何企圖通過Internet進(jìn)行控制的結(jié)構(gòu)都會面臨嚴(yán)重的穩(wěn)定性問題。(2)大數(shù)據(jù)量低頻率訪問對于.NETRemoting,EJB或者XML-RPC這些傳統(tǒng)的分布式計算模型而言,它們的服務(wù)提供都是通過函數(shù)調(diào)用的方式進(jìn)行的,一個功能的完成往往需要通過客戶端和服務(wù)器來回很多次函數(shù)調(diào)用才能完成(3)基于文本的消息傳遞由于Internet中大量異構(gòu)系統(tǒng)的存在決定了SOA系統(tǒng)必須采用基于文本而非二進(jìn)制的消息傳遞方式。23清華大學(xué)出版社HTTP協(xié)議的工作過程客戶端,通常是通過瀏覽器,向服務(wù)器端以文本的方式發(fā)送一個請求,索取一個Web頁面;服務(wù)器端接收到這個請求之后,根據(jù)請求的內(nèi)容進(jìn)行處理并且返回一個符合HTML語法的文本;客戶端接收到服務(wù)器端的響應(yīng)文本后調(diào)用本地的程序,通常還是瀏覽器,把返回的HTML文本的內(nèi)容展現(xiàn)出來。24清華大學(xué)出版社HTTP協(xié)議如何滿足了SOA的特點獨立的功能實體大數(shù)據(jù)量低頻率訪問基于文本的消息傳遞25清華大學(xué)出版社WebService中的各種協(xié)議是如何互相工作來滿足SOA所需的特點獨立的功能實體:通過UDDI的目錄查找,可以動態(tài)改變一個服務(wù)的提供方而無需影響客戶端的應(yīng)用程序配置。所有的訪問都通過SOAP訪問進(jìn)行,只要WSDL接口封裝良好,外界客戶端是根本沒有辦法直接訪問服務(wù)器端的數(shù)據(jù)的。大數(shù)據(jù)量低頻率訪問:通過使用WSDL和基于文本的SOAP請求,可以實現(xiàn)能一次性接收大量數(shù)據(jù)的接口。這里需要著重指出的是SOAP請求分文本方式和遠(yuǎn)程調(diào)用(RPC)兩種方式,正如上文已經(jīng)提到的,采用遠(yuǎn)程調(diào)用方式的SOAP請求并不符合這點要求。但是令人遺憾的是現(xiàn)有的大多數(shù)SOAP請求采用的仍然是遠(yuǎn)程調(diào)用(RPC)方式,在某些平臺上,例如IBMWebSphere的早期版本,甚至沒有提供文本方式的SOAP支持?;谖谋镜南鬟f:WebService所有的通訊是通過SOAP進(jìn)行的,而SOAP是基于XML的,不同版本之間可以使用不同的DTD或者XMLSchema加以辨別和區(qū)分。因此只需要我們?yōu)椴煌陌姹咎峁┎煌奶幚砭涂梢暂p松實現(xiàn)版本控制的目標(biāo)。26清華大學(xué)出版社下面是在系統(tǒng)中引入SOA后需要在軟件架構(gòu)方面做出的改變:使用基于文本方式的SOAP調(diào)用,擺脫遠(yuǎn)程調(diào)用中出現(xiàn)的函數(shù)參數(shù)類型等與數(shù)據(jù)無關(guān)的信息,保證所有SOAP傳遞的都是有意義的商業(yè)數(shù)據(jù)。依賴于Schema,而不是類定義對這些數(shù)據(jù)進(jìn)行解釋。傳統(tǒng)的三層Web應(yīng)用將可能變成四層結(jié)構(gòu):傳統(tǒng)意義上的商業(yè)邏輯層將被進(jìn)一步劃分為存放每個會話(Session)信息的客戶邏輯層和與狀態(tài)無關(guān)Sateless的SOA層。27清華大學(xué)出版社10.5 Web服務(wù)的應(yīng)用實例Web服務(wù)創(chuàng)建28清華大學(xué)出版社10.5.2 Web服務(wù)的發(fā)布每一種Web服務(wù)都需要一個名稱空間(namespace)。所謂名稱空間就是標(biāo)識Web服務(wù)的一種附加方法。如果創(chuàng)建了兩個同名的Web服務(wù),如果這兩個Web服務(wù)在不同的名稱空間內(nèi)存在,調(diào)用就不會混淆。因此,在Web服務(wù)公開發(fā)布之前必須修改默認(rèn)的名稱空間。通常用自己公司的域名作為命名空間。為了發(fā)布你的Web服務(wù)以便其他人能夠使用它,需要在一個可查找的目錄登記自己的服務(wù)。UDDI(統(tǒng)一描述、發(fā)現(xiàn)和集成服務(wù))就是最好的目錄。29清華大學(xué)出版社10.5.3 Web服務(wù)的調(diào)用服務(wù)請求方和服務(wù)提供方都應(yīng)該包含一個SOAP消息監(jiān)聽器(SOAPListener),它專門負(fù)責(zé)SOAP消息的接收與發(fā)送。運行時,首先由請求方的應(yīng)用程序發(fā)出服務(wù)調(diào)用請求,由客戶端代理程序?qū)⒃撜埱筠D(zhuǎn)化成符合Web服務(wù)調(diào)用所要求的格式;然后,由SOAP消息監(jiān)聽器將消息以SOAP請求的形式傳給服務(wù)提供方;服務(wù)提供方的SOAP監(jiān)聽器收到SOAP請求后,由SOAP路由器(SOAPRouter)處理該請求,并將請求轉(zhuǎn)發(fā)給能處理該請求的web服務(wù)應(yīng)用程序,由該程序處理并返回相應(yīng)結(jié)果;最后,由SOAP消息監(jiān)聽器將處理結(jié)果封裝成SOAP響應(yīng)的形式返回給客戶端;服務(wù)請求方收到

溫馨提示

  • 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

提交評論