ch08基于服務的體系結(jié)構(gòu)_第1頁
ch08基于服務的體系結(jié)構(gòu)_第2頁
ch08基于服務的體系結(jié)構(gòu)_第3頁
ch08基于服務的體系結(jié)構(gòu)_第4頁
ch08基于服務的體系結(jié)構(gòu)_第5頁
已閱讀5頁,還剩118頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、2關(guān)于關(guān)于SOA。3關(guān)于關(guān)于SOA 用戶可以構(gòu)建、部署和整合這些服務,且無需依賴應用戶可以構(gòu)建、部署和整合這些服務,且無需依賴應用程序及其技術(shù)平臺,從而提高應用的靈活性。這種用程序及其技術(shù)平臺,從而提高應用的靈活性。這種業(yè)務靈活性可使企業(yè)和機構(gòu)加快發(fā)展速度,降低總體業(yè)務靈活性可使企業(yè)和機構(gòu)加快發(fā)展速度,降低總體擁有成本,及時、準確地獲取信息,同時有助于實現(xiàn)擁有成本,及時、準確地獲取信息,同時有助于實現(xiàn)更多的資產(chǎn)重用。更多的資產(chǎn)重用。 而建設(shè)而建設(shè) SOA 體系架構(gòu)就需要建立一個一致的架構(gòu)框體系架構(gòu)就需要建立一個一致的架構(gòu)框架,在這種框架中,可以快速地進行開發(fā)、集成和重架,在這種框架中,可以快速

2、地進行開發(fā)、集成和重用應用系統(tǒng)。而對于原有的應用系統(tǒng)來說,可以采用用應用系統(tǒng)。而對于原有的應用系統(tǒng)來說,可以采用合適的技術(shù)手段進行平滑的優(yōu)化與過渡。合適的技術(shù)手段進行平滑的優(yōu)化與過渡。4 迄今為止,對于面向服務的體系結(jié)構(gòu)迄今為止,對于面向服務的體系結(jié)構(gòu)(Service-Oriented Architecture, SOA)還沒有一個公認的定還沒有一個公認的定義。許多組織從不同的角度和不同的側(cè)面對義。許多組織從不同的角度和不同的側(cè)面對soA進行進行了描述,較為典型的有以下三個。了描述,較為典型的有以下三個。5 (1) W3C的定義的定義:SOA是一種應用程序體系結(jié)構(gòu),在是一種應用程序體系結(jié)構(gòu),在

3、這種體系結(jié)構(gòu)中,所有功能都定義為獨立的服務,這這種體系結(jié)構(gòu)中,所有功能都定義為獨立的服務,這些服務帶有定義明確的可調(diào)用接口,能夠以定義好的些服務帶有定義明確的可調(diào)用接口,能夠以定義好的順序調(diào)用這些服務來形成業(yè)務流程。順序調(diào)用這些服務來形成業(yè)務流程。6 (2) ServicFarchitecture, com的定義的定義:服務是精確定服務是精確定義、封裝完整、獨立于其他服務所處環(huán)境和狀態(tài)的函義、封裝完整、獨立于其他服務所處環(huán)境和狀態(tài)的函數(shù)。數(shù)。SOA本質(zhì)上是服務的集合,服務之間彼此通信本質(zhì)上是服務的集合,服務之間彼此通信,這種通信可能是簡單的數(shù)據(jù)傳送,也可能是兩個或,這種通信可能是簡單的數(shù)據(jù)傳送

4、,也可能是兩個或更多的服務協(xié)調(diào)進行某些活動。服務之間需要某些方更多的服務協(xié)調(diào)進行某些活動。服務之間需要某些方法進行連接。法進行連接。7 (3) Gartner的定義的定義:SOA 是一種是一種C/S 體系結(jié)構(gòu)的軟件體系結(jié)構(gòu)的軟件設(shè)計方法,應用由服務和服務使用者組成,設(shè)計方法,應用由服務和服務使用者組成,SOA與與大多數(shù)通用的大多數(shù)通用的c/s體系結(jié)構(gòu)模型的不同之處,在于它體系結(jié)構(gòu)模型的不同之處,在于它著重強調(diào)構(gòu)件的松散藕合,并使用獨立的標準接口。著重強調(diào)構(gòu)件的松散藕合,并使用獨立的標準接口。8 W3C、 Service-、Gartner: 萬維網(wǎng)聯(lián)盟(萬維網(wǎng)聯(lián)盟(World Wide Web

5、Consortium,W3C) Gartner (高德納,又譯顧能公司高德納,又譯顧能公司)全球最具權(quán)威的全球最具權(quán)威的IT研究與顧問咨詢公司研究與顧問咨詢公司98.1 SOA概述概述 SOA是一種在計算環(huán)境中設(shè)計、開發(fā)、部署和管理是一種在計算環(huán)境中設(shè)計、開發(fā)、部署和管理離散邏輯單元離散邏輯單元(服務服務)模型的方法。模型的方法。SOA并不是一個新并不是一個新鮮事物,而只是面向?qū)ο竽P偷囊环N替代。鮮事物,而只是面向?qū)ο竽P偷囊环N替代。 雖然基于雖然基于SOA 的系統(tǒng)并不排除使用的系統(tǒng)并不排除使用OOD來構(gòu)建單個來構(gòu)建單個服務,但是其整體設(shè)計卻是面向服務的。服務,但是其整體設(shè)計卻是面向服務的。

6、由于由于SOA 考慮到了系統(tǒng)內(nèi)的對象,所以雖然考慮到了系統(tǒng)內(nèi)的對象,所以雖然SOA是是基于對象的,但是作為一個整體,它卻不是面向?qū)ο蠡趯ο蟮模亲鳛橐粋€整體,它卻不是面向?qū)ο蟮?。的?0SOA系統(tǒng)原型的一個典型例子是系統(tǒng)原型的一個典型例子是CORBA CORBA已經(jīng)出現(xiàn)很長時間,其定義的概念與已經(jīng)出現(xiàn)很長時間,其定義的概念與SOA相相似。似。SOA建立在建立在XML等新技術(shù)的基礎(chǔ)上,通過使用等新技術(shù)的基礎(chǔ)上,通過使用基于基于XML的語言來描述接口,其服務已經(jīng)轉(zhuǎn)到更動態(tài)的語言來描述接口,其服務已經(jīng)轉(zhuǎn)到更動態(tài)且更靈活的接口系統(tǒng)中,且更靈活的接口系統(tǒng)中,CORBA 中的中的IDL無法與之無法與之

7、相比。圖相比。圖8-1 一個完整的一個完整的SOA模型。模型。1112 在在SOA模型中,所有的功能都定義成了獨立的服務模型中,所有的功能都定義成了獨立的服務。服務之間通過交互和協(xié)調(diào)完成業(yè)務的整體邏輯。所。服務之間通過交互和協(xié)調(diào)完成業(yè)務的整體邏輯。所有的服務通過服務總線或流程管理器來連接。有的服務通過服務總線或流程管理器來連接。 這種松散耦合的體系結(jié)構(gòu)使得各服務在交互過程中無這種松散耦合的體系結(jié)構(gòu)使得各服務在交互過程中無須考慮雙方的內(nèi)部實現(xiàn)細節(jié),以及部署在什么平臺上須考慮雙方的內(nèi)部實現(xiàn)細節(jié),以及部署在什么平臺上。131、服務的基本結(jié)構(gòu)、服務的基本結(jié)構(gòu) 一個獨立的服務基本結(jié)構(gòu)如圖一個獨立的服務基

8、本結(jié)構(gòu)如圖8-2 所示。所示。14 服務模型的表示層從邏輯層分離出來,中間增加了服服務模型的表示層從邏輯層分離出來,中間增加了服務對外的接口層。務對外的接口層。 通過服務接口的標準化描述,使得服務可以提供給在通過服務接口的標準化描述,使得服務可以提供給在任何異構(gòu)平臺和任何用戶接口使用。這允許并支持基任何異構(gòu)平臺和任何用戶接口使用。這允許并支持基于服務的系統(tǒng)成為松散耦合、面向構(gòu)件和跨技術(shù)實現(xiàn)于服務的系統(tǒng)成為松散耦合、面向構(gòu)件和跨技術(shù)實現(xiàn),服務請求者很可能根本不知道服務在哪里運行、是,服務請求者很可能根本不知道服務在哪里運行、是由哪種語言編寫的,以及消息的傳輸路徑,而是只需由哪種語言編寫的,以及消

9、息的傳輸路徑,而是只需要提出服務請求,然后就會得到答案。要提出服務請求,然后就會得到答案。152. SOA的特征的特征 SOA是一種粗粒度、松藕合的服務體系結(jié)構(gòu),其服是一種粗粒度、松藕合的服務體系結(jié)構(gòu),其服務之間通過簡單、精確定義接口進行通信,不涉及底務之間通過簡單、精確定義接口進行通信,不涉及底層編程接口和通信模型。層編程接口和通信模型。 這種模型具有下面兒個特征這種模型具有下面兒個特征:16 (1) 松散耦合。松散耦合。 SOA是松散藕合構(gòu)件服務,這一點區(qū)別于大多數(shù)其是松散藕合構(gòu)件服務,這一點區(qū)別于大多數(shù)其他的構(gòu)件體系結(jié)構(gòu)。他的構(gòu)件體系結(jié)構(gòu)。 松散藕合旨在將服務使用者和服務提供者在服務實現(xiàn)

10、松散藕合旨在將服務使用者和服務提供者在服務實現(xiàn)和客戶如何使用服務方面隔離開來。服務提供者和服和客戶如何使用服務方面隔離開來。服務提供者和服務使用者間松散藕合背后的關(guān)鍵點是服務接口作為與務使用者間松散藕合背后的關(guān)鍵點是服務接口作為與服務實現(xiàn)分離的實體而存在。這是服務實現(xiàn)能夠在完服務實現(xiàn)分離的實體而存在。這是服務實現(xiàn)能夠在完全不影響服務使用者的情況下進行修改。全不影響服務使用者的情況下進行修改。17 大多數(shù)松散藕合方法都依靠基于服務接口的消息,基大多數(shù)松散藕合方法都依靠基于服務接口的消息,基于消息的接口能夠兼容多種傳輸方式于消息的接口能夠兼容多種傳輸方式 ( 如如 HTTP、TCP/IP 和和 M

11、OM 等等 ),基于消息的接口可以采用同步,基于消息的接口可以采用同步或異步協(xié)議實現(xiàn)?;虍惒絽f(xié)議實現(xiàn)。18 (2)粗粒度服務。粗粒度服務。 服務粒度服務粒度(Service Granularity)指的是服務所公開功指的是服務所公開功能的范圍,一般分為細粒度和粗粒度。能的范圍,一般分為細粒度和粗粒度。 其中,細粒度服務是那些能夠提供少量業(yè)務流程可用其中,細粒度服務是那些能夠提供少量業(yè)務流程可用性的服務。粗粒度服務是那些能夠提供高層業(yè)務邏輯性的服務。粗粒度服務是那些能夠提供高層業(yè)務邏輯的可用性服務。的可用性服務。19 選擇正確的抽象級別是選擇正確的抽象級別是SOA 建模的一個關(guān)鍵司題。建模的一個

12、關(guān)鍵司題。設(shè)計中應該在不損失或損壞相關(guān)性、一致性和完整性設(shè)計中應該在不損失或損壞相關(guān)性、一致性和完整性的情況下,盡可能地進行粗粒度建模。的情況下,盡可能地進行粗粒度建模。 通過一組有效設(shè)計和組合的粗粒度服務,業(yè)務專家能通過一組有效設(shè)計和組合的粗粒度服務,業(yè)務專家能夠有效地組合出新的業(yè)務流程和應用程序。夠有效地組合出新的業(yè)務流程和應用程序。20 (3) 標準化接口。標準化接口。 SOA通過服務接口的標準化措述,從而使得該服務通過服務接口的標準化措述,從而使得該服務可以提供給在任何異構(gòu)平臺和任何用戶接口中使用??梢蕴峁┙o在任何異構(gòu)平臺和任何用戶接口中使用。這一描述囊括了與服務交互需要的全部細節(jié),包

13、括消這一描述囊括了與服務交互需要的全部細節(jié),包括消息格式、傳輸協(xié)議和位置。該接口隱藏了實現(xiàn)服務的息格式、傳輸協(xié)議和位置。該接口隱藏了實現(xiàn)服務的細節(jié),允許獨立于實現(xiàn)服務基于的硬件或軟件平臺和細節(jié),允許獨立于實現(xiàn)服務基于的硬件或軟件平臺和編寫服務所用的編程語言使用服務。編寫服務所用的編程語言使用服務。213. 服務構(gòu)件與傳統(tǒng)構(gòu)件服務構(gòu)件與傳統(tǒng)構(gòu)件 服務構(gòu)件體系結(jié)構(gòu)服務構(gòu)件體系結(jié)構(gòu)(Service Component Architecture, SCA)是基于是基于SOA 的思想描述服務之的思想描述服務之間組合和協(xié)作的規(guī)范,它描述用于使用間組合和協(xié)作的規(guī)范,它描述用于使用SOA構(gòu)建應構(gòu)建應用程序和系

14、統(tǒng)的模型。用程序和系統(tǒng)的模型。 它可簡化使用它可簡化使用SOA 進行的應用程序開發(fā)和實現(xiàn)工作進行的應用程序開發(fā)和實現(xiàn)工作。SCA提供了構(gòu)件粗粒度構(gòu)件的機制,這些粗粒度構(gòu)提供了構(gòu)件粗粒度構(gòu)件的機制,這些粗粒度構(gòu)件由細粒度構(gòu)件組裝而成。件由細粒度構(gòu)件組裝而成。SCA將傳統(tǒng)中間件編程從將傳統(tǒng)中間件編程從業(yè)務邏輯分離出來,從而使程序員免受其復雜性的困業(yè)務邏輯分離出來,從而使程序員免受其復雜性的困擾。它允許開發(fā)人員集中精力編寫業(yè)務邏輯,而不必擾。它允許開發(fā)人員集中精力編寫業(yè)務邏輯,而不必將大量的時間花費在更為底層的技術(shù)實現(xiàn)上。將大量的時間花費在更為底層的技術(shù)實現(xiàn)上。22SCA服務構(gòu)件與傳統(tǒng)構(gòu)件的主要區(qū)別

15、:服務構(gòu)件與傳統(tǒng)構(gòu)件的主要區(qū)別: 服務構(gòu)件往往是粗粒度的,而傳統(tǒng)構(gòu)件以細粒度居多服務構(gòu)件往往是粗粒度的,而傳統(tǒng)構(gòu)件以細粒度居多; 服務構(gòu)件的接口是標準的,主要是服務描述語言接口服務構(gòu)件的接口是標準的,主要是服務描述語言接口,而傳統(tǒng)構(gòu)件常以具體,而傳統(tǒng)構(gòu)件常以具體API形式出現(xiàn);形式出現(xiàn); 服務構(gòu)件的實現(xiàn)與語言是無關(guān)的,而傳統(tǒng)構(gòu)件常綁定服務構(gòu)件的實現(xiàn)與語言是無關(guān)的,而傳統(tǒng)構(gòu)件常綁定某種特定的語言;某種特定的語言; 服務構(gòu)件可以通過構(gòu)件容器提供服務構(gòu)件可以通過構(gòu)件容器提供QoS的服務,而傳統(tǒng)的服務,而傳統(tǒng)構(gòu)件完全由程序代碼直接控制。構(gòu)件完全由程序代碼直接控制。23 QoS的英文全稱為的英文全稱為Q

16、uality of Service,中文名為,中文名為服務質(zhì)量服務質(zhì)量。QoS是網(wǎng)絡(luò)的一種安全機制是網(wǎng)絡(luò)的一種安全機制, 是用來解決是用來解決網(wǎng)絡(luò)延遲和阻塞等問題的一種技術(shù)。網(wǎng)絡(luò)延遲和阻塞等問題的一種技術(shù)。244. SOA設(shè)計原則設(shè)計原則 在在SOA體系結(jié)構(gòu)中,繼承了來自對象和構(gòu)件設(shè)計的體系結(jié)構(gòu)中,繼承了來自對象和構(gòu)件設(shè)計的各種原則,例如,封裝和自我包含等。各種原則,例如,封裝和自我包含等。 那些保證服務的靈活性、松散藕合和復用能力的設(shè)計那些保證服務的靈活性、松散藕合和復用能力的設(shè)計原則,對原則,對SOA體系結(jié)構(gòu)來說同樣是非常重要的。關(guān)體系結(jié)構(gòu)來說同樣是非常重要的。關(guān)于服務,一些常見的設(shè)計原則

17、如下:于服務,一些常見的設(shè)計原則如下:25 (1) 明確定義的接口。服務請求者依賴于服務規(guī)約來明確定義的接口。服務請求者依賴于服務規(guī)約來調(diào)用服務,因此,服務定義必須長時間穩(wěn)定,一旦公調(diào)用服務,因此,服務定義必須長時間穩(wěn)定,一旦公布,不能隨意更改;服務的定義應盡可能明確,減少布,不能隨意更改;服務的定義應盡可能明確,減少請求者的不適當使用;不要讓請求者看到服務內(nèi)部的請求者的不適當使用;不要讓請求者看到服務內(nèi)部的私有數(shù)據(jù)。私有數(shù)據(jù)。 (2) 自包含和模塊化。服務封裝了那些在業(yè)務上穩(wěn)定自包含和模塊化。服務封裝了那些在業(yè)務上穩(wěn)定、重復出現(xiàn)的活動和構(gòu)件,實現(xiàn)服務的功能實體是完、重復出現(xiàn)的活動和構(gòu)件,實現(xiàn)

18、服務的功能實體是完全獨立自主的,獨立進行部署、版本控制、自我管理全獨立自主的,獨立進行部署、版本控制、自我管理和恢復。和恢復。26 (3) 粗粒度。服務數(shù)量不應該太多,依靠消息交互而粗粒度。服務數(shù)量不應該太多,依靠消息交互而不是遠程過程調(diào)用,通常消息量比較大,但是服務之不是遠程過程調(diào)用,通常消息量比較大,但是服務之間的交互頻度較低。間的交互頻度較低。 (4)松藕合。服務請求者可見的是服務的接口,其位松藕合。服務請求者可見的是服務的接口,其位置、實現(xiàn)技術(shù)、當前狀態(tài)和私有數(shù)據(jù)等,對服務請求置、實現(xiàn)技術(shù)、當前狀態(tài)和私有數(shù)據(jù)等,對服務請求者而言是不可見的。者而言是不可見的。27 (5) 互操作性、兼容

19、和策略聲明。為了確保服務規(guī)約互操作性、兼容和策略聲明。為了確保服務規(guī)約的全面和明確,策略成為一個越來越重要的方面。這的全面和明確,策略成為一個越來越重要的方面。這可以是技術(shù)相關(guān)的內(nèi)容,例如,一個服務對安全性方可以是技術(shù)相關(guān)的內(nèi)容,例如,一個服務對安全性方面的要求;也可以是與業(yè)務有關(guān)的語義方面的內(nèi)容,面的要求;也可以是與業(yè)務有關(guān)的語義方面的內(nèi)容,例如,需要滿足的費用或者服務級別方面的要求,這例如,需要滿足的費用或者服務級別方面的要求,這些策略對于服務在交互時是非常重要的。些策略對于服務在交互時是非常重要的。288.2 面向服務的分析與設(shè)計面向服務的分析與設(shè)計從概念上講,從概念上講,SOA有三個主

20、要的抽象級有三個主要的抽象級別,分別是:別,分別是:操作、服務和業(yè)務流程。操作、服務和業(yè)務流程。29 在在SOA中位于最低層的操作代表了單個邏輯單元的中位于最低層的操作代表了單個邏輯單元的事物。執(zhí)行操作通常會導致讀、寫或修改一個或多個事物。執(zhí)行操作通常會導致讀、寫或修改一個或多個持久性數(shù)據(jù)。持久性數(shù)據(jù)。 SOA操作可以直接與面向?qū)ο蟮姆椒ㄏ啾龋鼈兌疾僮骺梢灾苯优c面向?qū)ο蟮姆椒ㄏ啾?,它們都有特定的結(jié)構(gòu)化接口,并且返回結(jié)構(gòu)化的響應,完全有特定的結(jié)構(gòu)化接口,并且返回結(jié)構(gòu)化的響應,完全同方法一樣。同方法一樣。8.2 面向服務的分析與設(shè)計面向服務的分析與設(shè)計30 位于第二層的服務代表了操作的邏輯分組,

21、例如,如位于第二層的服務代表了操作的邏輯分組,例如,如果將客戶管理視為服務,則按照電話號碼查找客戶、果將客戶管理視為服務,則按照電話號碼查找客戶、按照名稱和郵政編碼列出客戶和保存新客戶的數(shù)據(jù)就按照名稱和郵政編碼列出客戶和保存新客戶的數(shù)據(jù)就代表相關(guān)操作。代表相關(guān)操作。8.2 面向服務的分析與設(shè)計面向服務的分析與設(shè)計31 最高層的業(yè)務流程則是為了實現(xiàn)特定業(yè)務目標而執(zhí)行最高層的業(yè)務流程則是為了實現(xiàn)特定業(yè)務目標而執(zhí)行的一組長期運行的動作或活動。業(yè)務流程通常包括多的一組長期運行的動作或活動。業(yè)務流程通常包括多個業(yè)務調(diào)用。個業(yè)務調(diào)用。 在在SOA術(shù)語中,業(yè)務流程包括依據(jù)一組業(yè)務規(guī)則按術(shù)語中,業(yè)務流程包括依

22、據(jù)一組業(yè)務規(guī)則按照有序序列執(zhí)行的一系列操作。其中操作的排序、選照有序序列執(zhí)行的一系列操作。其中操作的排序、選擇和執(zhí)行成為饋務或流程的編排,典型的情況是調(diào)用擇和執(zhí)行成為饋務或流程的編排,典型的情況是調(diào)用已編排服務來響應業(yè)務事件。已編排服務來響應業(yè)務事件。8.2 面向服務的分析與設(shè)計面向服務的分析與設(shè)計32 從建模的觀點來看,從建模的觀點來看,SOA帶來的主要挑戰(zhàn)是如何描帶來的主要挑戰(zhàn)是如何描述設(shè)計良好的操作、服務和流程抽象的特征,以及如述設(shè)計良好的操作、服務和流程抽象的特征,以及如何系統(tǒng)地構(gòu)造它們。何系統(tǒng)地構(gòu)造它們。 針對這個問題,針對這個問題,Olaf Zimmermann 和和Pal Kro

23、gdahl 綜合了面向?qū)ο蟮姆治雠c設(shè)計綜合了面向?qū)ο蟮姆治雠c設(shè)計(OOAD)、企業(yè)體系結(jié)、企業(yè)體系結(jié)構(gòu)構(gòu)(EA)框架和業(yè)務流程建??蚣芎蜆I(yè)務流程建模(BPM) 中的適當原理,中的適當原理,將這些規(guī)則中的原理與許多獨特的新原理組合起來,將這些規(guī)則中的原理與許多獨特的新原理組合起來,提出了面向服務的分析與設(shè)計提出了面向服務的分析與設(shè)計(Service-Orented Analysis and Design, SOAD)的概念。的概念。8.2 面向服務的分析與設(shè)計面向服務的分析與設(shè)計33 SOA 實現(xiàn)項目經(jīng)驗表明,諸如實現(xiàn)項目經(jīng)驗表明,諸如OOAD、EA 和和BPM 這樣的現(xiàn)有開發(fā)流程和表示法僅涵蓋

24、支持這樣的現(xiàn)有開發(fā)流程和表示法僅涵蓋支持SOA范式范式所需要的部分要求。所需要的部分要求。 SOA方法在加強已經(jīng)制定的良好通用軟件體系結(jié)構(gòu)方法在加強已經(jīng)制定的良好通用軟件體系結(jié)構(gòu)原則的同時,還增加了附加主題,例如,服務編排、原則的同時,還增加了附加主題,例如,服務編排、服務庫服務總線中間件模式,在建模時是需要特別關(guān)服務庫服務總線中間件模式,在建模時是需要特別關(guān)注的。這就需要整合這三種方法,保留適用的理論,注的。這就需要整合這三種方法,保留適用的理論,摒棄不適用的地方,并且融入一些新的方法和原則。摒棄不適用的地方,并且融入一些新的方法和原則。8.2 面向服務的分析與設(shè)計面向服務的分析與設(shè)計34

25、總的來說,總的來說,OOAD,EA 和和BPM分別從基礎(chǔ)設(shè)計層,分別從基礎(chǔ)設(shè)計層,應用結(jié)構(gòu)層和業(yè)務組織層三個層次上為應用結(jié)構(gòu)層和業(yè)務組織層三個層次上為SOAD 提供提供了理論支撐。其結(jié)構(gòu)如圖了理論支撐。其結(jié)構(gòu)如圖8-3 所示。所示。8.2 面向服務的分析與設(shè)計面向服務的分析與設(shè)計35 1、基礎(chǔ)設(shè)計層、基礎(chǔ)設(shè)計層 SOAD的第一層是基礎(chǔ)設(shè)計層,它采用了的第一層是基礎(chǔ)設(shè)計層,它采用了OOAD 的的思想,其主要目標是能夠進行快速而有效的設(shè)予札開思想,其主要目標是能夠進行快速而有效的設(shè)予札開發(fā)以及執(zhí)行靈活且可擴展的底層服務構(gòu)件。對于設(shè)計發(fā)以及執(zhí)行靈活且可擴展的底層服務構(gòu)件。對于設(shè)計已定義的服務中的底層

26、類和構(gòu)件結(jié)構(gòu),已定義的服務中的底層類和構(gòu)件結(jié)構(gòu),OO是一種很是一種很有價值的方法。但是目前與有價值的方法。但是目前與SOAD有關(guān)的有關(guān)的OO設(shè)計在設(shè)計在實踐中也存在著一些問題實踐中也存在著一些問題:OO的粒度級別集中在類級的粒度級別集中在類級,對于業(yè)務服務建模來說,這樣的抽象級別太低。,對于業(yè)務服務建模來說,這樣的抽象級別太低。8.2 面向服務的分析與設(shè)計面向服務的分析與設(shè)計36 諸如繼承這樣的強關(guān)聯(lián)產(chǎn)生了相關(guān)方之間一定程度的諸如繼承這樣的強關(guān)聯(lián)產(chǎn)生了相關(guān)方之間一定程度的緊藕合。與此相反,緊藕合。與此相反,SOAD試圖通過松藕合來促進靈試圖通過松藕合來促進靈活性和敏捷性。這使得活性和敏捷性。這

27、使得OO難以與難以與SOAD體系結(jié)構(gòu)保體系結(jié)構(gòu)保持一致。諸如這些問題還有待于進一步解決,盡管如持一致。諸如這些問題還有待于進一步解決,盡管如此,此,OO還是為還是為SOAD提供了豐富的理論源泉。提供了豐富的理論源泉。8.2 面向服務的分析與設(shè)計面向服務的分析與設(shè)計37 2. 體系結(jié)構(gòu)層體系結(jié)構(gòu)層 SOAD第二層是體系結(jié)構(gòu)層,它采用了第二層是體系結(jié)構(gòu)層,它采用了EA 的理論框的理論框架。企業(yè)應用程序和架。企業(yè)應用程序和IT基礎(chǔ)體系結(jié)構(gòu)發(fā)展成基礎(chǔ)體系結(jié)構(gòu)發(fā)展成SOA是一是一個龐大的工程,其中可能會涉及眾多的業(yè)務流水線和個龐大的工程,其中可能會涉及眾多的業(yè)務流水線和組織單元。因此,需要應用組織單元。

28、因此,需要應用EA框架和參考體系結(jié)構(gòu)框架和參考體系結(jié)構(gòu),以努力實現(xiàn)單獨的解決方案之司體系結(jié)構(gòu)的一致性,以努力實現(xiàn)單獨的解決方案之司體系結(jié)構(gòu)的一致性。在。在SOA中,體系結(jié)構(gòu)層必須以表示業(yè)務服務的邏中,體系結(jié)構(gòu)層必須以表示業(yè)務服務的邏輯構(gòu)件為中心,并且集中于定義服務之間的接口和服輯構(gòu)件為中心,并且集中于定義服務之間的接口和服務級協(xié)定。務級協(xié)定。8.2 面向服務的分析與設(shè)計面向服務的分析與設(shè)計38 3. 業(yè)務層業(yè)務層 SOAD第三層是業(yè)務層,它采用第三層是業(yè)務層,它采用TBPM規(guī)則。規(guī)則。BPM是是一個不完整的規(guī)則,其中有許多不同的形式、表示法一個不完整的規(guī)則,其中有許多不同的形式、表示法和資源,

29、其中應用較為廣泛的是和資源,其中應用較為廣泛的是UML, SOA必須利用必須利用所有現(xiàn)有的所有現(xiàn)有的BPM方法作為方法作為SOAD的起點,同時需要服的起點,同時需要服務流程編排模型中用于驅(qū)動候選服務和它們的操作的務流程編排模型中用于驅(qū)動候選服務和它們的操作的附加技術(shù)來對其加以補充。此外,附加技術(shù)來對其加以補充。此外,SOAD中的流程建中的流程建模必須與設(shè)計層用例保持同步。模必須與設(shè)計層用例保持同步。8.2 面向服務的分析與設(shè)計面向服務的分析與設(shè)計39 SOAD以以O(shè)OAD、EA和和BPM為基礎(chǔ),為為基礎(chǔ),為SOA體系結(jié)體系結(jié)構(gòu)的業(yè)務和構(gòu)的業(yè)務和IT實現(xiàn)之間搭建了一座橋梁,并且為實現(xiàn)之間搭建了一

30、座橋梁,并且為SOA項目的分析和設(shè)計提供了一套理論方法。隨著實踐的項目的分析和設(shè)計提供了一套理論方法。隨著實踐的深入,深入,SOAD還有待于在理論和實踐上加以完善。還有待于在理論和實踐上加以完善。8.2 面向服務的分析與設(shè)計面向服務的分析與設(shè)計40 SOA是一種全新的體系結(jié)構(gòu),為了支持其各種特性是一種全新的體系結(jié)構(gòu),為了支持其各種特性,相關(guān)的技術(shù)規(guī)范不斷被推出。服務要以一種可互操,相關(guān)的技術(shù)規(guī)范不斷被推出。服務要以一種可互操作的方式執(zhí)行發(fā)布、發(fā)現(xiàn)和綁定這三個操作,必須有作的方式執(zhí)行發(fā)布、發(fā)現(xiàn)和綁定這三個操作,必須有一個包含每一層標準的服務棧。因此,整個一個包含每一層標準的服務棧。因此,整個SO

31、A 的的技術(shù)系列被稱為服務棧,如表技術(shù)系列被稱為服務棧,如表8-1 所示。所示。8.3 SOA的關(guān)鍵技術(shù)的關(guān)鍵技術(shù)41 1 . 發(fā)現(xiàn)服務層發(fā)現(xiàn)服務層 發(fā)現(xiàn)服務層主要用來幫助客戶端應用程序解析遠程服發(fā)現(xiàn)服務層主要用來幫助客戶端應用程序解析遠程服務的位置,通過務的位置,通過UDDI來實現(xiàn)。來實現(xiàn)。 UDDI 規(guī)范由規(guī)范由Microsoft 、IBM 和和Ariba 三家公司在三家公司在2000 年年7月提出,它是服務的信息注冊規(guī)范,以便被月提出,它是服務的信息注冊規(guī)范,以便被需要該服務的用戶發(fā)現(xiàn)和使用它。需要該服務的用戶發(fā)現(xiàn)和使用它。UDDI規(guī)范描述了規(guī)范描述了服務的概念,同時也定義了一種編程接口

32、。通過服務的概念,同時也定義了一種編程接口。通過UDDI提供的標準接口,企業(yè)可以發(fā)布自己的服務供提供的標準接口,企業(yè)可以發(fā)布自己的服務供其他企業(yè)查詢和調(diào)用,也可以查詢特定服務的描述信其他企業(yè)查詢和調(diào)用,也可以查詢特定服務的描述信息,并動態(tài)綁定到該服務上。通過息,并動態(tài)綁定到該服務上。通過UDDI,Web服務可服務可以真正實現(xiàn)信息的以真正實現(xiàn)信息的一次注冊到處訪問一次注冊到處訪問。8.3 SOA的關(guān)鍵技術(shù)的關(guān)鍵技術(shù)42 2. 描述服務層描述服務層 描述層為客戶端應用程序提供正確地與遠程服務交互描述層為客戶端應用程序提供正確地與遠程服務交互的描述信息,主要通過的描述信息,主要通過WSDL來實現(xiàn)。與

33、來實現(xiàn)。與UDDI一樣一樣,WSDL 也是由也是由Microsoft 、IBM 和和Arba 三家公司三家公司在在2000 年年7 月提出的。月提出的。WSDL為服務提供者提供以為服務提供者提供以xML格式描述服務請求的標準格式,將網(wǎng)絡(luò)服務描述格式描述服務請求的標準格式,將網(wǎng)絡(luò)服務描述為能夠進行消息交換的通信端點集合,以表達一個服為能夠進行消息交換的通信端點集合,以表達一個服務能做什么,它的位置在哪,如何調(diào)用它等信息。務能做什么,它的位置在哪,如何調(diào)用它等信息。8.3 SOA的關(guān)鍵技術(shù)的關(guān)鍵技術(shù)43 3. 消息格式層消息格式層 消息格式層主要用來保證客戶端應用程序和服務器端消息格式層主要用來保

34、證客戶端應用程序和服務器端在格式設(shè)置上保持一致,一般通過在格式設(shè)置上保持一致,一般通過SOAP來實現(xiàn)。來實現(xiàn)。SOAP定義了服務請求者和服務提供者之間的消息傳定義了服務請求者和服務提供者之間的消息傳輸規(guī)范。輸規(guī)范。SOAP用用XML來格式化消息,用來格式化消息,用HTTP來承來承載消息。載消息。8.3 SOA的關(guān)鍵技術(shù)的關(guān)鍵技術(shù)44 SOAP包括三個部分包括三個部分: 定義了描述消息和如何處理消息的框架的封裝定義了描述消息和如何處理消息的框架的封裝(SOAP封裝封裝)、表達應用程序定義的數(shù)據(jù)類型實例的、表達應用程序定義的數(shù)據(jù)類型實例的編碼規(guī)則編碼規(guī)則(SOAP 編碼規(guī)則編碼規(guī)則),以及描述遠程

35、過程調(diào)用,以及描述遠程過程調(diào)用和應答的協(xié)議和應答的協(xié)議(SOAP RPC 表示表示) 。8.3 SOA的關(guān)鍵技術(shù)的關(guān)鍵技術(shù)45 4. 編碼格式層編碼格式層 編碼格式層主要為客戶端和服務器之間提供一個標準編碼格式層主要為客戶端和服務器之間提供一個標準的、獨立于平臺的數(shù)據(jù)交換編碼格式,一般通過的、獨立于平臺的數(shù)據(jù)交換編碼格式,一般通過XML來實現(xiàn)。來實現(xiàn)。XML是一種元語言,可以用來定義和描述結(jié)是一種元語言,可以用來定義和描述結(jié)構(gòu)化數(shù)據(jù)。構(gòu)化數(shù)據(jù)。XML使用基于文本的、利用標準字符集的使用基于文本的、利用標準字符集的編碼方案,從而避開了二進制編碼的平臺不兼容問題編碼方案,從而避開了二進制編碼的平臺

36、不兼容問題bXML有很多優(yōu)點,包括跨平臺支持,公用類型系統(tǒng)有很多優(yōu)點,包括跨平臺支持,公用類型系統(tǒng)和對行業(yè)標準字符集的支持,它是服務得以實現(xiàn)的語和對行業(yè)標準字符集的支持,它是服務得以實現(xiàn)的語言基礎(chǔ)。服務的其他協(xié)議規(guī)范都是以言基礎(chǔ)。服務的其他協(xié)議規(guī)范都是以XML形式來描述形式來描述和表達的。和表達的。8.3 SOA的關(guān)鍵技術(shù)的關(guān)鍵技術(shù)46 5. 傳輸協(xié)議層傳輸協(xié)議層 傳輸協(xié)議層主要為客戶端和服務器之間提供兩者交互傳輸協(xié)議層主要為客戶端和服務器之間提供兩者交互的網(wǎng)絡(luò)通信協(xié)議,一般通過的網(wǎng)絡(luò)通信協(xié)議,一般通過HTTP(超文本協(xié)議超文本協(xié)議)和和SMTP (簡單郵件傳輸協(xié)議簡單郵件傳輸協(xié)議)來實現(xiàn)。來

37、實現(xiàn)。HTTP 是一個在是一個在Internet 上廣泛使用的協(xié)議,為服務部件通過上廣泛使用的協(xié)議,為服務部件通過Internet“交互奠定了協(xié)議基礎(chǔ),并具有穿透防火墻交互奠定了協(xié)議基礎(chǔ),并具有穿透防火墻的良好特性。的良好特性。SMTP 則適合于異步通信,如果服務中則適合于異步通信,如果服務中斷,斷,SMTP可以自動進行重試。可以自動進行重試。8.3 SOA的關(guān)鍵技術(shù)的關(guān)鍵技術(shù)478.4 SOA的實現(xiàn)方法的實現(xiàn)方法 SOA 只是一種概念和思想,需要借助于具體的技術(shù)只是一種概念和思想,需要借助于具體的技術(shù)和方法來實現(xiàn)它。從本質(zhì)上來看,和方法來實現(xiàn)它。從本質(zhì)上來看,SOA 是用本地計是用本地計算模

38、型來實現(xiàn)一個分布式的計算應用,也有人稱這種算模型來實現(xiàn)一個分布式的計算應用,也有人稱這種方法為方法為“本地化設(shè)計,分布式工作本地化設(shè)計,分布式工作”模型。模型。CORBA,DCOM 和和EJB 等都屬于這種解決方式,也等都屬于這種解決方式,也就是說,就是說,SOA 最終可以基于這些標準來實現(xiàn)。最終可以基于這些標準來實現(xiàn)。 從邏輯上和高層抽象來看,目前,實現(xiàn)從邏輯上和高層抽象來看,目前,實現(xiàn)SOA 的方法的方法也比較多,其中主流方式有也比較多,其中主流方式有Web Service、企業(yè)服務、企業(yè)服務總線和服務注冊表??偩€和服務注冊表。488.4 SOA的實現(xiàn)方法的實現(xiàn)方法 1. Web Serv

39、ice (Web服務體系結(jié)構(gòu)服務體系結(jié)構(gòu)) 隨著計算機網(wǎng)絡(luò)技術(shù)和通信技術(shù)的發(fā)展,網(wǎng)絡(luò)己無處隨著計算機網(wǎng)絡(luò)技術(shù)和通信技術(shù)的發(fā)展,網(wǎng)絡(luò)己無處不在。自從不在。自從lnternet(互聯(lián)網(wǎng)互聯(lián)網(wǎng))誕生以來,部署在誕生以來,部署在Web 上的應用隨著上的應用隨著Internet 的深入人心而不斷發(fā)展。然而的深入人心而不斷發(fā)展。然而,當,當Web應用己經(jīng)走人人們的日常工作和生活的時候應用己經(jīng)走人人們的日常工作和生活的時候,人們卻發(fā)現(xiàn)在,人們卻發(fā)現(xiàn)在Web應用和傳統(tǒng)桌面應用應用和傳統(tǒng)桌面應用(例如企業(yè)例如企業(yè)內(nèi)部的管理信息系統(tǒng)、辦公自動化系統(tǒng)等內(nèi)部的管理信息系統(tǒng)、辦公自動化系統(tǒng)等)之間存在之間存在著連接的鴻

40、溝,于是不得不重復地將數(shù)據(jù)從著連接的鴻溝,于是不得不重復地將數(shù)據(jù)從Web應用應用遷移到傳統(tǒng)桌面應用,或從傳統(tǒng)桌面應用將數(shù)據(jù)遷移遷移到傳統(tǒng)桌面應用,或從傳統(tǒng)桌面應用將數(shù)據(jù)遷移到到Web應用。應用。 498.4 SOA的實現(xiàn)方法的實現(xiàn)方法1. Web Service (Web服務體系結(jié)構(gòu)服務體系結(jié)構(gòu)) 近年來,電子商務和電子政務迅速掘起,大多數(shù)電子近年來,電子商務和電子政務迅速掘起,大多數(shù)電子商務的應用在處理客戶、供應商、市場和服務提供商商務的應用在處理客戶、供應商、市場和服務提供商之間的連接方式上各不相同。如何將這些應用方便而之間的連接方式上各不相同。如何將這些應用方便而廉價地連接在一起,從而實

41、現(xiàn)大范圍的跨組織的商務廉價地連接在一起,從而實現(xiàn)大范圍的跨組織的商務應用系統(tǒng)的互聯(lián),是擺在開發(fā)人員面前的一道難題。應用系統(tǒng)的互聯(lián),是擺在開發(fā)人員面前的一道難題。 不同的應用不同的應用(特別是不同組織的應用特別是不同組織的應用)的開發(fā)語言不同,的開發(fā)語言不同,部署平臺不同,通信協(xié)議也可能不同,對外交換的數(shù)部署平臺不同,通信協(xié)議也可能不同,對外交換的數(shù)據(jù)格式更可能有很大的差異。如何去面對這些差異所據(jù)格式更可能有很大的差異。如何去面對這些差異所帶來的復雜的系統(tǒng)集成的挑戰(zhàn)是解決這道難題的關(guān)鍵。帶來的復雜的系統(tǒng)集成的挑戰(zhàn)是解決這道難題的關(guān)鍵。50 Web服務服務(Web Services)作為一種新興的

42、作為一種新興的Web應用應用模式,是一種嶄新的分布式計算模型,是模式,是一種嶄新的分布式計算模型,是Web上數(shù)據(jù)上數(shù)據(jù)和信息集成的有效機制。和信息集成的有效機制。 從電子商務應用領(lǐng)域來看,復雜的應用鏈接和程序代從電子商務應用領(lǐng)域來看,復雜的應用鏈接和程序代碼使電子商務應用的維護和更新代價很高,而碼使電子商務應用的維護和更新代價很高,而Web 服務恰好能夠解決這一問題,成為應用環(huán)境中最為合服務恰好能夠解決這一問題,成為應用環(huán)境中最為合理的解決方案。理的解決方案。 目前,無論是在工業(yè)界還是在學術(shù)界,目前,無論是在工業(yè)界還是在學術(shù)界,web 服務都服務都被認為被認為美國美國Microsoft公司通過

43、公司通過一切都是服務一切都是服務來概括來概括Web服務服務將給將給IT業(yè)帶來的沖擊。業(yè)帶來的沖擊。8.4 SOA的實現(xiàn)方法的實現(xiàn)方法1. Web Service (Web服務體系結(jié)構(gòu)服務體系結(jié)構(gòu))51 什么是什么是Web服務服務Web 服務是使用標準技術(shù)在服務是使用標準技術(shù)在Internet上運行的商務流程,上運行的商務流程,它可以使用標準的它可以使用標準的Internet 協(xié)議協(xié)議(例如超文本傳輸協(xié)議例如超文本傳輸協(xié)議HTTP 和和XML),將功能綱領(lǐng)性地體現(xiàn)在,將功能綱領(lǐng)性地體現(xiàn)在Internet 和和Intranet (企業(yè)內(nèi)部網(wǎng)企業(yè)內(nèi)部網(wǎng))上。上。通過通過web 服務集成的應用程序可以

44、用標準的方法把功能和服務集成的應用程序可以用標準的方法把功能和數(shù)據(jù)數(shù)據(jù)暴露暴露出來,供其他應用程序使用,使組織之間的商出來,供其他應用程序使用,使組織之間的商務處理更加自動化。務處理更加自動化。Web 服務就像服務就像Web 上的構(gòu)件編程,上的構(gòu)件編程,開發(fā)人員通過調(diào)用開發(fā)人員通過調(diào)用Web應用編程接口,將應用編程接口,將Web服務集成進服務集成進他們的應用程序,就像調(diào)用本地服務一樣。他們的應用程序,就像調(diào)用本地服務一樣。8.4 SOA的實現(xiàn)方法的實現(xiàn)方法1. Web Service (Web服務體系結(jié)構(gòu)服務體系結(jié)構(gòu))52什么是什么是Web服務服務 學術(shù)界從不同的側(cè)面對學術(shù)界從不同的側(cè)面對we

45、b服務有不同的描述,這里服務有不同的描述,這里概括了如下幾種:概括了如下幾種: 從功能的角度描述從功能的角度描述Web 服務服務,認為,認為Web 服務基于服務基于TCP/IP, HTTP, XML 。等規(guī)范而定義,具備如下功。等規(guī)范而定義,具備如下功能能:Web上鏈接文檔的瀏覽、事務的自動調(diào)用、服務上鏈接文檔的瀏覽、事務的自動調(diào)用、服務的動態(tài)發(fā)現(xiàn)和發(fā)布。的動態(tài)發(fā)現(xiàn)和發(fā)布。 從組成框架及實現(xiàn)目標的角度描述從組成框架及實現(xiàn)目標的角度描述Web 服務服務,認為,認為Web 服務作為一種網(wǎng)絡(luò)操作,能夠利用標準的服務作為一種網(wǎng)絡(luò)操作,能夠利用標準的Web協(xié)議及接口進行應用間的交互。協(xié)議及接口進行應用間

46、的交互。53什么是什么是Web服務服務 從語義的角度描述從語義的角度描述Web服務服務,認為,認為Web 服務是語義服務是語義Web 的一種應用,由于考慮了語義信息的描述及表的一種應用,由于考慮了語義信息的描述及表示,示,Web服務能夠更準確地被執(zhí)行,服務組合服務能夠更準確地被執(zhí)行,服務組合(service composition)能夠按所期望的目標進行。能夠按所期望的目標進行。 從網(wǎng)格計算從網(wǎng)格計算(grid computing)的角度來看的角度來看,認為,認為Web 服務能用于服務能用于Web 上的資源發(fā)現(xiàn)、數(shù)據(jù)管理及網(wǎng)格計上的資源發(fā)現(xiàn)、數(shù)據(jù)管理及網(wǎng)格計算平臺上異構(gòu)系統(tǒng)的協(xié)同設(shè)計,從而提出

47、網(wǎng)格服務的算平臺上異構(gòu)系統(tǒng)的協(xié)同設(shè)計,從而提出網(wǎng)格服務的新概念。新概念。54什么是什么是Web服務服務 從信息檢索的角度來看從信息檢索的角度來看,認為,認為Web 服務是包含了分服務是包含了分布策略和路由信息的電子文檔之上進行分布式文檔檢布策略和路由信息的電子文檔之上進行分布式文檔檢索的服務。索的服務。 從另一方面來看,針對不同的應用背景,從另一方面來看,針對不同的應用背景,Web服務的服務的應用對象也不同,目前被廣泛應用的應用對象也不同,目前被廣泛應用的Web服務可分為服務可分為如下如下4 類類:面向企業(yè)應用面向企業(yè)應用( business-oriented)的服務;的服務;面向消費者面向消

48、費者(consumer-oriented) 的服務;的服務;面向設(shè)備面向設(shè)備( device-oriented) 的服務;的服務;面向系統(tǒng)面向系統(tǒng)( system- oriented)的服務。的服務。55什么是什么是Web服務服務 盡管對盡管對web 服務進行描述的出發(fā)點或應用類型不同,服務進行描述的出發(fā)點或應用類型不同,但是它們均具有如下共同特征:但是它們均具有如下共同特征:應用的分布式應用的分布式 應用到應用的交互應用到應用的交互平臺無關(guān)性平臺無關(guān)性56什么是什么是Web服務服務 (1)應用的分布式:應用的分布式:為適應網(wǎng)絡(luò)應用中分布式的數(shù)據(jù)源和服務提供者,為適應網(wǎng)絡(luò)應用中分布式的數(shù)據(jù)源和

49、服務提供者,分布式的服務響應、松散藕合是分布式的服務響應、松散藕合是web服務必須具備服務必須具備的特征。的特征。在應用中,服務請求者不必關(guān)心服務提供者的數(shù)在應用中,服務請求者不必關(guān)心服務提供者的數(shù)據(jù)源格式是什么,某一服務請求需調(diào)用哪些服務,據(jù)源格式是什么,某一服務請求需調(diào)用哪些服務,服務請求在服務請求在web上怎樣被執(zhí)行等,即上怎樣被執(zhí)行等,即Web 服務對服務對用戶具有分布透明性。用戶具有分布透明性。57什么是什么是Web服務服務 (2) 應用到應用的交互:應用到應用的交互:在分布式的環(huán)境中在分布式的環(huán)境中, 若采用集中控制方式,服務器若采用集中控制方式,服務器有較大的負荷,并且系統(tǒng)不具有

50、健壯性。因此應有較大的負荷,并且系統(tǒng)不具有健壯性。因此應用到應用的交互,使得用到應用的交互,使得Web 服務更具可伸縮性。服務更具可伸縮性。58什么是什么是Web服務服務 (3)平臺無關(guān)性:平臺無關(guān)性:Web服務的界面、跨服務的界面、跨Web服務的事務、工作流、服務的事務、工作流、消息認證,安全機制均采用規(guī)范的協(xié)議和約定;消息認證,安全機制均采用規(guī)范的協(xié)議和約定;由于由于Web服務采用簡單、易理解的標準服務采用簡單、易理解的標準Web協(xié)議協(xié)議作為構(gòu)件接口和協(xié)同描述的規(guī)范,完全屏蔽了不作為構(gòu)件接口和協(xié)同描述的規(guī)范,完全屏蔽了不同軟件平臺的差異,因此具有可集成能力。同軟件平臺的差異,因此具有可集成

51、能力。59Web服務的特點服務的特點 使用標準協(xié)議規(guī)范:使用標準協(xié)議規(guī)范:所有的所有的web 服務公共協(xié)議完全需要使用開放的標服務公共協(xié)議完全需要使用開放的標準協(xié)議進行描述、傳輸和交換,這些標準協(xié)議具準協(xié)議進行描述、傳輸和交換,這些標準協(xié)議具有完全免費的規(guī)范,以便由任意組織進行實現(xiàn)。有完全免費的規(guī)范,以便由任意組織進行實現(xiàn)。一般而言,絕大多數(shù)規(guī)范將最終由一般而言,絕大多數(shù)規(guī)范將最終由W3C或或OASIS 作為最終版本的發(fā)布方和維護方。作為最終版本的發(fā)布方和維護方。60Web服務的特點服務的特點 使用協(xié)議的規(guī)范性:使用協(xié)議的規(guī)范性:這一特征來源于對象的概念,但相比一般對象而言,這一特征來源于對象

52、的概念,但相比一般對象而言,web服務的界面更加規(guī)范化和易于機器理解。首先,作為服務的界面更加規(guī)范化和易于機器理解。首先,作為Web服務,對象界面所提供的功能應當使用標準的描述語言來服務,對象界面所提供的功能應當使用標準的描述語言來描述。其次,由標準描述語言描述的服務界面應當是能夠描述。其次,由標準描述語言描述的服務界面應當是能夠被發(fā)現(xiàn)的,因此這一描述文檔需要存儲在私有的或公共的被發(fā)現(xiàn)的,因此這一描述文檔需要存儲在私有的或公共的注冊庫里面。同時,使用標準描述語言描述的協(xié)議不僅僅注冊庫里面。同時,使用標準描述語言描述的協(xié)議不僅僅是服務界面,它將延仲到是服務界面,它將延仲到Web 服務的聚合、跨服

53、務的聚合、跨Web 服務服務的事務、工作流等,而這些又都需要服務質(zhì)量的保障。的事務、工作流等,而這些又都需要服務質(zhì)量的保障。61Web服務的特點服務的特點 高度集成能力高度集成能力由于由于web 服務采用簡單的、易理解的標準服務采用簡單的、易理解的標準web 協(xié)議作為協(xié)議作為構(gòu)件界面描述和協(xié)同描述規(guī)范,完全屏蔽了不同軟件平臺構(gòu)件界面描述和協(xié)同描述規(guī)范,完全屏蔽了不同軟件平臺的差異,無論是的差異,無論是COBRA,DCOM 還是還是EJB,都可以通過這,都可以通過這一標準的協(xié)議進行互操作,實現(xiàn)了在當前環(huán)境下的最高的一標準的協(xié)議進行互操作,實現(xiàn)了在當前環(huán)境下的最高的集成性。集成性。62Web服務的

54、特點服務的特點 完好的封裝性:完好的封裝性:Web服務既然是一種部署在服務既然是一種部署在Web上的對象,自然具備對象上的對象,自然具備對象的良好封裝性,對于使用者而言,他能且僅能看到該對象的良好封裝性,對于使用者而言,他能且僅能看到該對象提供的功能列表。提供的功能列表。63Web服務的特點服務的特點 松散耦合松散耦合 :這一特征也是源于對象這一特征也是源于對象/構(gòu)件技術(shù),當一個構(gòu)件技術(shù),當一個web 服務的實服務的實現(xiàn)發(fā)生變更的時候,調(diào)用者是不會感到這一點的,對于調(diào)現(xiàn)發(fā)生變更的時候,調(diào)用者是不會感到這一點的,對于調(diào)用者來說,只要用者來說,只要Web 服務的調(diào)用界面不變,服務的調(diào)用界面不變,W

55、eb 服務實服務實現(xiàn)的任何變更對他們來說都是透明的,甚至是當現(xiàn)的任何變更對他們來說都是透明的,甚至是當Web 服務服務的實現(xiàn)平臺從的實現(xiàn)平臺從J2EE 遷移到了遷移到了. NET 或者是相反的遷移流程,或者是相反的遷移流程,用戶部可以對此一無所知。討于松散耦合而言,尤其是對用戶部可以對此一無所知。討于松散耦合而言,尤其是對Internet環(huán)境下的環(huán)境下的Web 服務而言,需要有一種適合服務而言,需要有一種適合Internet環(huán)境的消息交換協(xié)議,環(huán)境的消息交換協(xié)議,XML/SOAP 正是目前最為正是目前最為適合的消息交換協(xié)議。適合的消息交換協(xié)議。64Web服務開發(fā)生命周期服務開發(fā)生命周期 Web

56、服務開發(fā)生命周期包括了設(shè)計和部署以及在運行服務開發(fā)生命周期包括了設(shè)計和部署以及在運行時對服務代理時對服務代理;服務提供者和服務請求者每一個角色服務提供者和服務請求者每一個角色的要求。每個角色對生命周期的每一元素都有特定要的要求。每個角色對生命周期的每一元素都有特定要求。求。(1) 構(gòu)建。構(gòu)建階段包括開發(fā)和測試構(gòu)建。構(gòu)建階段包括開發(fā)和測試web服務的實現(xiàn)、定服務的實現(xiàn)、定義服務接口描述和定義服務實現(xiàn)描述??梢酝ㄟ^創(chuàng)建新的義服務接口描述和定義服務實現(xiàn)描述??梢酝ㄟ^創(chuàng)建新的Web 服務把現(xiàn)有的應用程序變成服務把現(xiàn)有的應用程序變成Web服務和由其他服務和由其他Web 服務和應用程序組成新的服務和應用程

57、序組成新的Web 服務等方式來提供服務等方式來提供Web 服服務的實現(xiàn)。務的實現(xiàn)。65Web服務開發(fā)生命周期服務開發(fā)生命周期 (2) 部署部署部署階段包括向服務請求者或服務注冊中心發(fā)布服務接口部署階段包括向服務請求者或服務注冊中心發(fā)布服務接口和服務實現(xiàn)的定義,以及把和服務實現(xiàn)的定義,以及把Web服務的可執(zhí)行文件部署到服務的可執(zhí)行文件部署到執(zhí)行環(huán)境執(zhí)行環(huán)境(典型情況下,是典型情況下,是Web應用程序服務器應用程序服務器)中。中。 (3) 運行運行在運行階段,可以調(diào)用在運行階段,可以調(diào)用Web服務。這時,服務。這時,Web服務己完全服務己完全部署、可操作,并且服務提供者可以通過網(wǎng)絡(luò)訪問服務。部署、

58、可操作,并且服務提供者可以通過網(wǎng)絡(luò)訪問服務。由此,服務請求者就可以進行查找和綁定操作。由此,服務請求者就可以進行查找和綁定操作。66Web服務開發(fā)生命周期服務開發(fā)生命周期 (4) 管理:管理:管埋階段包括持續(xù)的管理和經(jīng)營管埋階段包括持續(xù)的管理和經(jīng)營Web服務應用程序。在此服務應用程序。在此階段,安全性、可用性、性能、服務質(zhì)量和業(yè)務流程問題階段,安全性、可用性、性能、服務質(zhì)量和業(yè)務流程問題都必須被解決。都必須被解決。67Web體系結(jié)構(gòu)的優(yōu)勢體系結(jié)構(gòu)的優(yōu)勢 Web服務是近年來提出的一種新的面向服務的體系結(jié)服務是近年來提出的一種新的面向服務的體系結(jié)構(gòu),同傳統(tǒng)分布式體系結(jié)構(gòu)相比構(gòu),同傳統(tǒng)分布式體系結(jié)構(gòu)

59、相比web 服務體系結(jié)構(gòu)服務體系結(jié)構(gòu)的主要優(yōu)勢體現(xiàn)在以下的主要優(yōu)勢體現(xiàn)在以下4 個方面:個方面:高度的通用性和易用性高度的通用性和易用性完全的平臺、語言獨立性完全的平臺、語言獨立性高度的集成性高度的集成性容易部署和發(fā)布容易部署和發(fā)布68 (1) 高度的通用性和易用性高度的通用性和易用性Web 服務利用標準的服務利用標準的Internet 協(xié)議協(xié)議(如如HTTP,SMTP 等等),解決了面向解決了面向web 的分布式計算模型,提高了系統(tǒng)的開放性、的分布式計算模型,提高了系統(tǒng)的開放性、通用性和可擴展性通用性和可擴展性;而而CORBA,DCOM 和和RMI 等使用私有等使用私有協(xié)議,只能解決企業(yè)內(nèi)部

60、的對等實體間的分布式計算。協(xié)議,只能解決企業(yè)內(nèi)部的對等實體間的分布式計算。此外,此外,HTTP能夠很容易地跨越系統(tǒng)的防火墻,具有高度能夠很容易地跨越系統(tǒng)的防火墻,具有高度的易用性。的易用性。69 (2)完全的平臺完全的平臺語言獨立性。語言獨立性。Web服務進行了更高程度的抽象,只要遵循服務進行了更高程度的抽象,只要遵循Web服務的接口,即可進行服務的請求和調(diào)用。服務的接口,即可進行服務的請求和調(diào)用。Web 服務服務將將XML作為信息交換格式,使信息的處理更加簡單,廠商作為信息交換格式,使信息的處理更加簡單,廠商之間的信息很容易實現(xiàn)溝通,這種信息格式最適合跨平臺之間的信息很容易實現(xiàn)溝通,這種信息

溫馨提示

  • 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

提交評論