




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、2關于關于SOA。3關于關于SOA 用戶可以構建、部署和整合這些服務,且無需依賴應用戶可以構建、部署和整合這些服務,且無需依賴應用程序及其技術平臺,從而提高應用的靈活性。這種用程序及其技術平臺,從而提高應用的靈活性。這種業務靈活性可使企業和機構加快發展速度,降低總體業務靈活性可使企業和機構加快發展速度,降低總體擁有成本,及時、準確地獲取信息,同時有助于實現擁有成本,及時、準確地獲取信息,同時有助于實現更多的資產重用。更多的資產重用。 而建設而建設 SOA 體系架構就需要建立一個一致的架構框體系架構就需要建立一個一致的架構框架,在這種框架中,可以快速地進行開發、集成和重架,在這種框架中,可以快速
2、地進行開發、集成和重用應用系統。而對于原有的應用系統來說,可以采用用應用系統。而對于原有的應用系統來說,可以采用合適的技術手段進行平滑的優化與過渡。合適的技術手段進行平滑的優化與過渡。4 迄今為止,對于面向服務的體系結構迄今為止,對于面向服務的體系結構(Service-Oriented Architecture, SOA)還沒有一個公認的定還沒有一個公認的定義。許多組織從不同的角度和不同的側面對義。許多組織從不同的角度和不同的側面對soA進行進行了描述,較為典型的有以下三個。了描述,較為典型的有以下三個。5 (1) W3C的定義的定義:SOA是一種應用程序體系結構,在是一種應用程序體系結構,在
3、這種體系結構中,所有功能都定義為獨立的服務,這這種體系結構中,所有功能都定義為獨立的服務,這些服務帶有定義明確的可調用接口,能夠以定義好的些服務帶有定義明確的可調用接口,能夠以定義好的順序調用這些服務來形成業務流程。順序調用這些服務來形成業務流程。6 (2) ServicFarchitecture, com的定義的定義:服務是精確定服務是精確定義、封裝完整、獨立于其他服務所處環境和狀態的函義、封裝完整、獨立于其他服務所處環境和狀態的函數。數。SOA本質上是服務的集合,服務之間彼此通信本質上是服務的集合,服務之間彼此通信,這種通信可能是簡單的數據傳送,也可能是兩個或,這種通信可能是簡單的數據傳送
4、,也可能是兩個或更多的服務協調進行某些活動。服務之間需要某些方更多的服務協調進行某些活動。服務之間需要某些方法進行連接。法進行連接。7 (3) Gartner的定義的定義:SOA 是一種是一種C/S 體系結構的軟件體系結構的軟件設計方法,應用由服務和服務使用者組成,設計方法,應用由服務和服務使用者組成,SOA與與大多數通用的大多數通用的c/s體系結構模型的不同之處,在于它體系結構模型的不同之處,在于它著重強調構件的松散藕合,并使用獨立的標準接口。著重強調構件的松散藕合,并使用獨立的標準接口。8 W3C、 Service-、Gartner: 萬維網聯盟(萬維網聯盟(World Wide Web
5、Consortium,W3C) Gartner (高德納,又譯顧能公司高德納,又譯顧能公司)全球最具權威的全球最具權威的IT研究與顧問咨詢公司研究與顧問咨詢公司98.1 SOA概述概述 SOA是一種在計算環境中設計、開發、部署和管理是一種在計算環境中設計、開發、部署和管理離散邏輯單元離散邏輯單元(服務服務)模型的方法。模型的方法。SOA并不是一個新并不是一個新鮮事物,而只是面向對象模型的一種替代。鮮事物,而只是面向對象模型的一種替代。 雖然基于雖然基于SOA 的系統并不排除使用的系統并不排除使用OOD來構建單個來構建單個服務,但是其整體設計卻是面向服務的。服務,但是其整體設計卻是面向服務的。
6、由于由于SOA 考慮到了系統內的對象,所以雖然考慮到了系統內的對象,所以雖然SOA是是基于對象的,但是作為一個整體,它卻不是面向對象基于對象的,但是作為一個整體,它卻不是面向對象的。的。10SOA系統原型的一個典型例子是系統原型的一個典型例子是CORBA CORBA已經出現很長時間,其定義的概念與已經出現很長時間,其定義的概念與SOA相相似。似。SOA建立在建立在XML等新技術的基礎上,通過使用等新技術的基礎上,通過使用基于基于XML的語言來描述接口,其服務已經轉到更動態的語言來描述接口,其服務已經轉到更動態且更靈活的接口系統中,且更靈活的接口系統中,CORBA 中的中的IDL無法與之無法與之
7、相比。圖相比。圖8-1 一個完整的一個完整的SOA模型。模型。1112 在在SOA模型中,所有的功能都定義成了獨立的服務模型中,所有的功能都定義成了獨立的服務。服務之間通過交互和協調完成業務的整體邏輯。所。服務之間通過交互和協調完成業務的整體邏輯。所有的服務通過服務總線或流程管理器來連接。有的服務通過服務總線或流程管理器來連接。 這種松散耦合的體系結構使得各服務在交互過程中無這種松散耦合的體系結構使得各服務在交互過程中無須考慮雙方的內部實現細節,以及部署在什么平臺上須考慮雙方的內部實現細節,以及部署在什么平臺上。131、服務的基本結構、服務的基本結構 一個獨立的服務基本結構如圖一個獨立的服務基
8、本結構如圖8-2 所示。所示。14 服務模型的表示層從邏輯層分離出來,中間增加了服服務模型的表示層從邏輯層分離出來,中間增加了服務對外的接口層。務對外的接口層。 通過服務接口的標準化描述,使得服務可以提供給在通過服務接口的標準化描述,使得服務可以提供給在任何異構平臺和任何用戶接口使用。這允許并支持基任何異構平臺和任何用戶接口使用。這允許并支持基于服務的系統成為松散耦合、面向構件和跨技術實現于服務的系統成為松散耦合、面向構件和跨技術實現,服務請求者很可能根本不知道服務在哪里運行、是,服務請求者很可能根本不知道服務在哪里運行、是由哪種語言編寫的,以及消息的傳輸路徑,而是只需由哪種語言編寫的,以及消
9、息的傳輸路徑,而是只需要提出服務請求,然后就會得到答案。要提出服務請求,然后就會得到答案。152. SOA的特征的特征 SOA是一種粗粒度、松藕合的服務體系結構,其服是一種粗粒度、松藕合的服務體系結構,其服務之間通過簡單、精確定義接口進行通信,不涉及底務之間通過簡單、精確定義接口進行通信,不涉及底層編程接口和通信模型。層編程接口和通信模型。 這種模型具有下面兒個特征這種模型具有下面兒個特征:16 (1) 松散耦合。松散耦合。 SOA是松散藕合構件服務,這一點區別于大多數其是松散藕合構件服務,這一點區別于大多數其他的構件體系結構。他的構件體系結構。 松散藕合旨在將服務使用者和服務提供者在服務實現
10、松散藕合旨在將服務使用者和服務提供者在服務實現和客戶如何使用服務方面隔離開來。服務提供者和服和客戶如何使用服務方面隔離開來。服務提供者和服務使用者間松散藕合背后的關鍵點是服務接口作為與務使用者間松散藕合背后的關鍵點是服務接口作為與服務實現分離的實體而存在。這是服務實現能夠在完服務實現分離的實體而存在。這是服務實現能夠在完全不影響服務使用者的情況下進行修改。全不影響服務使用者的情況下進行修改。17 大多數松散藕合方法都依靠基于服務接口的消息,基大多數松散藕合方法都依靠基于服務接口的消息,基于消息的接口能夠兼容多種傳輸方式于消息的接口能夠兼容多種傳輸方式 ( 如如 HTTP、TCP/IP 和和 M
11、OM 等等 ),基于消息的接口可以采用同步,基于消息的接口可以采用同步或異步協議實現?;虍惒絽f議實現。18 (2)粗粒度服務。粗粒度服務。 服務粒度服務粒度(Service Granularity)指的是服務所公開功指的是服務所公開功能的范圍,一般分為細粒度和粗粒度。能的范圍,一般分為細粒度和粗粒度。 其中,細粒度服務是那些能夠提供少量業務流程可用其中,細粒度服務是那些能夠提供少量業務流程可用性的服務。粗粒度服務是那些能夠提供高層業務邏輯性的服務。粗粒度服務是那些能夠提供高層業務邏輯的可用性服務。的可用性服務。19 選擇正確的抽象級別是選擇正確的抽象級別是SOA 建模的一個關鍵司題。建模的一個
12、關鍵司題。設計中應該在不損失或損壞相關性、一致性和完整性設計中應該在不損失或損壞相關性、一致性和完整性的情況下,盡可能地進行粗粒度建模。的情況下,盡可能地進行粗粒度建模。 通過一組有效設計和組合的粗粒度服務,業務專家能通過一組有效設計和組合的粗粒度服務,業務專家能夠有效地組合出新的業務流程和應用程序。夠有效地組合出新的業務流程和應用程序。20 (3) 標準化接口。標準化接口。 SOA通過服務接口的標準化措述,從而使得該服務通過服務接口的標準化措述,從而使得該服務可以提供給在任何異構平臺和任何用戶接口中使用??梢蕴峁┙o在任何異構平臺和任何用戶接口中使用。這一描述囊括了與服務交互需要的全部細節,包
13、括消這一描述囊括了與服務交互需要的全部細節,包括消息格式、傳輸協議和位置。該接口隱藏了實現服務的息格式、傳輸協議和位置。該接口隱藏了實現服務的細節,允許獨立于實現服務基于的硬件或軟件平臺和細節,允許獨立于實現服務基于的硬件或軟件平臺和編寫服務所用的編程語言使用服務。編寫服務所用的編程語言使用服務。213. 服務構件與傳統構件服務構件與傳統構件 服務構件體系結構服務構件體系結構(Service Component Architecture, SCA)是基于是基于SOA 的思想描述服務之的思想描述服務之間組合和協作的規范,它描述用于使用間組合和協作的規范,它描述用于使用SOA構建應構建應用程序和系
14、統的模型。用程序和系統的模型。 它可簡化使用它可簡化使用SOA 進行的應用程序開發和實現工作進行的應用程序開發和實現工作。SCA提供了構件粗粒度構件的機制,這些粗粒度構提供了構件粗粒度構件的機制,這些粗粒度構件由細粒度構件組裝而成。件由細粒度構件組裝而成。SCA將傳統中間件編程從將傳統中間件編程從業務邏輯分離出來,從而使程序員免受其復雜性的困業務邏輯分離出來,從而使程序員免受其復雜性的困擾。它允許開發人員集中精力編寫業務邏輯,而不必擾。它允許開發人員集中精力編寫業務邏輯,而不必將大量的時間花費在更為底層的技術實現上。將大量的時間花費在更為底層的技術實現上。22SCA服務構件與傳統構件的主要區別
15、:服務構件與傳統構件的主要區別: 服務構件往往是粗粒度的,而傳統構件以細粒度居多服務構件往往是粗粒度的,而傳統構件以細粒度居多; 服務構件的接口是標準的,主要是服務描述語言接口服務構件的接口是標準的,主要是服務描述語言接口,而傳統構件常以具體,而傳統構件常以具體API形式出現;形式出現; 服務構件的實現與語言是無關的,而傳統構件常綁定服務構件的實現與語言是無關的,而傳統構件常綁定某種特定的語言;某種特定的語言; 服務構件可以通過構件容器提供服務構件可以通過構件容器提供QoS的服務,而傳統的服務,而傳統構件完全由程序代碼直接控制。構件完全由程序代碼直接控制。23 QoS的英文全稱為的英文全稱為Q
16、uality of Service,中文名為,中文名為服務質量服務質量。QoS是網絡的一種安全機制是網絡的一種安全機制, 是用來解決是用來解決網絡延遲和阻塞等問題的一種技術。網絡延遲和阻塞等問題的一種技術。244. SOA設計原則設計原則 在在SOA體系結構中,繼承了來自對象和構件設計的體系結構中,繼承了來自對象和構件設計的各種原則,例如,封裝和自我包含等。各種原則,例如,封裝和自我包含等。 那些保證服務的靈活性、松散藕合和復用能力的設計那些保證服務的靈活性、松散藕合和復用能力的設計原則,對原則,對SOA體系結構來說同樣是非常重要的。關體系結構來說同樣是非常重要的。關于服務,一些常見的設計原則
17、如下:于服務,一些常見的設計原則如下:25 (1) 明確定義的接口。服務請求者依賴于服務規約來明確定義的接口。服務請求者依賴于服務規約來調用服務,因此,服務定義必須長時間穩定,一旦公調用服務,因此,服務定義必須長時間穩定,一旦公布,不能隨意更改;服務的定義應盡可能明確,減少布,不能隨意更改;服務的定義應盡可能明確,減少請求者的不適當使用;不要讓請求者看到服務內部的請求者的不適當使用;不要讓請求者看到服務內部的私有數據。私有數據。 (2) 自包含和模塊化。服務封裝了那些在業務上穩定自包含和模塊化。服務封裝了那些在業務上穩定、重復出現的活動和構件,實現服務的功能實體是完、重復出現的活動和構件,實現
18、服務的功能實體是完全獨立自主的,獨立進行部署、版本控制、自我管理全獨立自主的,獨立進行部署、版本控制、自我管理和恢復。和恢復。26 (3) 粗粒度。服務數量不應該太多,依靠消息交互而粗粒度。服務數量不應該太多,依靠消息交互而不是遠程過程調用,通常消息量比較大,但是服務之不是遠程過程調用,通常消息量比較大,但是服務之間的交互頻度較低。間的交互頻度較低。 (4)松藕合。服務請求者可見的是服務的接口,其位松藕合。服務請求者可見的是服務的接口,其位置、實現技術、當前狀態和私有數據等,對服務請求置、實現技術、當前狀態和私有數據等,對服務請求者而言是不可見的。者而言是不可見的。27 (5) 互操作性、兼容
19、和策略聲明。為了確保服務規約互操作性、兼容和策略聲明。為了確保服務規約的全面和明確,策略成為一個越來越重要的方面。這的全面和明確,策略成為一個越來越重要的方面。這可以是技術相關的內容,例如,一個服務對安全性方可以是技術相關的內容,例如,一個服務對安全性方面的要求;也可以是與業務有關的語義方面的內容,面的要求;也可以是與業務有關的語義方面的內容,例如,需要滿足的費用或者服務級別方面的要求,這例如,需要滿足的費用或者服務級別方面的要求,這些策略對于服務在交互時是非常重要的。些策略對于服務在交互時是非常重要的。288.2 面向服務的分析與設計面向服務的分析與設計從概念上講,從概念上講,SOA有三個主
20、要的抽象級有三個主要的抽象級別,分別是:別,分別是:操作、服務和業務流程。操作、服務和業務流程。29 在在SOA中位于最低層的操作代表了單個邏輯單元的中位于最低層的操作代表了單個邏輯單元的事物。執行操作通常會導致讀、寫或修改一個或多個事物。執行操作通常會導致讀、寫或修改一個或多個持久性數據。持久性數據。 SOA操作可以直接與面向對象的方法相比,它們都操作可以直接與面向對象的方法相比,它們都有特定的結構化接口,并且返回結構化的響應,完全有特定的結構化接口,并且返回結構化的響應,完全同方法一樣。同方法一樣。8.2 面向服務的分析與設計面向服務的分析與設計30 位于第二層的服務代表了操作的邏輯分組,
21、例如,如位于第二層的服務代表了操作的邏輯分組,例如,如果將客戶管理視為服務,則按照電話號碼查找客戶、果將客戶管理視為服務,則按照電話號碼查找客戶、按照名稱和郵政編碼列出客戶和保存新客戶的數據就按照名稱和郵政編碼列出客戶和保存新客戶的數據就代表相關操作。代表相關操作。8.2 面向服務的分析與設計面向服務的分析與設計31 最高層的業務流程則是為了實現特定業務目標而執行最高層的業務流程則是為了實現特定業務目標而執行的一組長期運行的動作或活動。業務流程通常包括多的一組長期運行的動作或活動。業務流程通常包括多個業務調用。個業務調用。 在在SOA術語中,業務流程包括依據一組業務規則按術語中,業務流程包括依
22、據一組業務規則按照有序序列執行的一系列操作。其中操作的排序、選照有序序列執行的一系列操作。其中操作的排序、選擇和執行成為饋務或流程的編排,典型的情況是調用擇和執行成為饋務或流程的編排,典型的情況是調用已編排服務來響應業務事件。已編排服務來響應業務事件。8.2 面向服務的分析與設計面向服務的分析與設計32 從建模的觀點來看,從建模的觀點來看,SOA帶來的主要挑戰是如何描帶來的主要挑戰是如何描述設計良好的操作、服務和流程抽象的特征,以及如述設計良好的操作、服務和流程抽象的特征,以及如何系統地構造它們。何系統地構造它們。 針對這個問題,針對這個問題,Olaf Zimmermann 和和Pal Kro
23、gdahl 綜合了面向對象的分析與設計綜合了面向對象的分析與設計(OOAD)、企業體系結、企業體系結構構(EA)框架和業務流程建??蚣芎蜆I務流程建模(BPM) 中的適當原理,中的適當原理,將這些規則中的原理與許多獨特的新原理組合起來,將這些規則中的原理與許多獨特的新原理組合起來,提出了面向服務的分析與設計提出了面向服務的分析與設計(Service-Orented Analysis and Design, SOAD)的概念。的概念。8.2 面向服務的分析與設計面向服務的分析與設計33 SOA 實現項目經驗表明,諸如實現項目經驗表明,諸如OOAD、EA 和和BPM 這樣的現有開發流程和表示法僅涵蓋
24、支持這樣的現有開發流程和表示法僅涵蓋支持SOA范式范式所需要的部分要求。所需要的部分要求。 SOA方法在加強已經制定的良好通用軟件體系結構方法在加強已經制定的良好通用軟件體系結構原則的同時,還增加了附加主題,例如,服務編排、原則的同時,還增加了附加主題,例如,服務編排、服務庫服務總線中間件模式,在建模時是需要特別關服務庫服務總線中間件模式,在建模時是需要特別關注的。這就需要整合這三種方法,保留適用的理論,注的。這就需要整合這三種方法,保留適用的理論,摒棄不適用的地方,并且融入一些新的方法和原則。摒棄不適用的地方,并且融入一些新的方法和原則。8.2 面向服務的分析與設計面向服務的分析與設計34
25、總的來說,總的來說,OOAD,EA 和和BPM分別從基礎設計層,分別從基礎設計層,應用結構層和業務組織層三個層次上為應用結構層和業務組織層三個層次上為SOAD 提供提供了理論支撐。其結構如圖了理論支撐。其結構如圖8-3 所示。所示。8.2 面向服務的分析與設計面向服務的分析與設計35 1、基礎設計層、基礎設計層 SOAD的第一層是基礎設計層,它采用了的第一層是基礎設計層,它采用了OOAD 的的思想,其主要目標是能夠進行快速而有效的設予札開思想,其主要目標是能夠進行快速而有效的設予札開發以及執行靈活且可擴展的底層服務構件。對于設計發以及執行靈活且可擴展的底層服務構件。對于設計已定義的服務中的底層
26、類和構件結構,已定義的服務中的底層類和構件結構,OO是一種很是一種很有價值的方法。但是目前與有價值的方法。但是目前與SOAD有關的有關的OO設計在設計在實踐中也存在著一些問題實踐中也存在著一些問題:OO的粒度級別集中在類級的粒度級別集中在類級,對于業務服務建模來說,這樣的抽象級別太低。,對于業務服務建模來說,這樣的抽象級別太低。8.2 面向服務的分析與設計面向服務的分析與設計36 諸如繼承這樣的強關聯產生了相關方之間一定程度的諸如繼承這樣的強關聯產生了相關方之間一定程度的緊藕合。與此相反,緊藕合。與此相反,SOAD試圖通過松藕合來促進靈試圖通過松藕合來促進靈活性和敏捷性。這使得活性和敏捷性。這
27、使得OO難以與難以與SOAD體系結構保體系結構保持一致。諸如這些問題還有待于進一步解決,盡管如持一致。諸如這些問題還有待于進一步解決,盡管如此,此,OO還是為還是為SOAD提供了豐富的理論源泉。提供了豐富的理論源泉。8.2 面向服務的分析與設計面向服務的分析與設計37 2. 體系結構層體系結構層 SOAD第二層是體系結構層,它采用了第二層是體系結構層,它采用了EA 的理論框的理論框架。企業應用程序和架。企業應用程序和IT基礎體系結構發展成基礎體系結構發展成SOA是一是一個龐大的工程,其中可能會涉及眾多的業務流水線和個龐大的工程,其中可能會涉及眾多的業務流水線和組織單元。因此,需要應用組織單元。
28、因此,需要應用EA框架和參考體系結構框架和參考體系結構,以努力實現單獨的解決方案之司體系結構的一致性,以努力實現單獨的解決方案之司體系結構的一致性。在。在SOA中,體系結構層必須以表示業務服務的邏中,體系結構層必須以表示業務服務的邏輯構件為中心,并且集中于定義服務之間的接口和服輯構件為中心,并且集中于定義服務之間的接口和服務級協定。務級協定。8.2 面向服務的分析與設計面向服務的分析與設計38 3. 業務層業務層 SOAD第三層是業務層,它采用第三層是業務層,它采用TBPM規則。規則。BPM是是一個不完整的規則,其中有許多不同的形式、表示法一個不完整的規則,其中有許多不同的形式、表示法和資源,
29、其中應用較為廣泛的是和資源,其中應用較為廣泛的是UML, SOA必須利用必須利用所有現有的所有現有的BPM方法作為方法作為SOAD的起點,同時需要服的起點,同時需要服務流程編排模型中用于驅動候選服務和它們的操作的務流程編排模型中用于驅動候選服務和它們的操作的附加技術來對其加以補充。此外,附加技術來對其加以補充。此外,SOAD中的流程建中的流程建模必須與設計層用例保持同步。模必須與設計層用例保持同步。8.2 面向服務的分析與設計面向服務的分析與設計39 SOAD以以OOAD、EA和和BPM為基礎,為為基礎,為SOA體系結體系結構的業務和構的業務和IT實現之間搭建了一座橋梁,并且為實現之間搭建了一
30、座橋梁,并且為SOA項目的分析和設計提供了一套理論方法。隨著實踐的項目的分析和設計提供了一套理論方法。隨著實踐的深入,深入,SOAD還有待于在理論和實踐上加以完善。還有待于在理論和實踐上加以完善。8.2 面向服務的分析與設計面向服務的分析與設計40 SOA是一種全新的體系結構,為了支持其各種特性是一種全新的體系結構,為了支持其各種特性,相關的技術規范不斷被推出。服務要以一種可互操,相關的技術規范不斷被推出。服務要以一種可互操作的方式執行發布、發現和綁定這三個操作,必須有作的方式執行發布、發現和綁定這三個操作,必須有一個包含每一層標準的服務棧。因此,整個一個包含每一層標準的服務棧。因此,整個SO
31、A 的的技術系列被稱為服務棧,如表技術系列被稱為服務棧,如表8-1 所示。所示。8.3 SOA的關鍵技術的關鍵技術41 1 . 發現服務層發現服務層 發現服務層主要用來幫助客戶端應用程序解析遠程服發現服務層主要用來幫助客戶端應用程序解析遠程服務的位置,通過務的位置,通過UDDI來實現。來實現。 UDDI 規范由規范由Microsoft 、IBM 和和Ariba 三家公司在三家公司在2000 年年7月提出,它是服務的信息注冊規范,以便被月提出,它是服務的信息注冊規范,以便被需要該服務的用戶發現和使用它。需要該服務的用戶發現和使用它。UDDI規范描述了規范描述了服務的概念,同時也定義了一種編程接口
32、。通過服務的概念,同時也定義了一種編程接口。通過UDDI提供的標準接口,企業可以發布自己的服務供提供的標準接口,企業可以發布自己的服務供其他企業查詢和調用,也可以查詢特定服務的描述信其他企業查詢和調用,也可以查詢特定服務的描述信息,并動態綁定到該服務上。通過息,并動態綁定到該服務上。通過UDDI,Web服務可服務可以真正實現信息的以真正實現信息的一次注冊到處訪問一次注冊到處訪問。8.3 SOA的關鍵技術的關鍵技術42 2. 描述服務層描述服務層 描述層為客戶端應用程序提供正確地與遠程服務交互描述層為客戶端應用程序提供正確地與遠程服務交互的描述信息,主要通過的描述信息,主要通過WSDL來實現。與
33、來實現。與UDDI一樣一樣,WSDL 也是由也是由Microsoft 、IBM 和和Arba 三家公司三家公司在在2000 年年7 月提出的。月提出的。WSDL為服務提供者提供以為服務提供者提供以xML格式描述服務請求的標準格式,將網絡服務描述格式描述服務請求的標準格式,將網絡服務描述為能夠進行消息交換的通信端點集合,以表達一個服為能夠進行消息交換的通信端點集合,以表達一個服務能做什么,它的位置在哪,如何調用它等信息。務能做什么,它的位置在哪,如何調用它等信息。8.3 SOA的關鍵技術的關鍵技術43 3. 消息格式層消息格式層 消息格式層主要用來保證客戶端應用程序和服務器端消息格式層主要用來保
34、證客戶端應用程序和服務器端在格式設置上保持一致,一般通過在格式設置上保持一致,一般通過SOAP來實現。來實現。SOAP定義了服務請求者和服務提供者之間的消息傳定義了服務請求者和服務提供者之間的消息傳輸規范。輸規范。SOAP用用XML來格式化消息,用來格式化消息,用HTTP來承來承載消息。載消息。8.3 SOA的關鍵技術的關鍵技術44 SOAP包括三個部分包括三個部分: 定義了描述消息和如何處理消息的框架的封裝定義了描述消息和如何處理消息的框架的封裝(SOAP封裝封裝)、表達應用程序定義的數據類型實例的、表達應用程序定義的數據類型實例的編碼規則編碼規則(SOAP 編碼規則編碼規則),以及描述遠程
35、過程調用,以及描述遠程過程調用和應答的協議和應答的協議(SOAP RPC 表示表示) 。8.3 SOA的關鍵技術的關鍵技術45 4. 編碼格式層編碼格式層 編碼格式層主要為客戶端和服務器之間提供一個標準編碼格式層主要為客戶端和服務器之間提供一個標準的、獨立于平臺的數據交換編碼格式,一般通過的、獨立于平臺的數據交換編碼格式,一般通過XML來實現。來實現。XML是一種元語言,可以用來定義和描述結是一種元語言,可以用來定義和描述結構化數據。構化數據。XML使用基于文本的、利用標準字符集的使用基于文本的、利用標準字符集的編碼方案,從而避開了二進制編碼的平臺不兼容問題編碼方案,從而避開了二進制編碼的平臺
36、不兼容問題bXML有很多優點,包括跨平臺支持,公用類型系統有很多優點,包括跨平臺支持,公用類型系統和對行業標準字符集的支持,它是服務得以實現的語和對行業標準字符集的支持,它是服務得以實現的語言基礎。服務的其他協議規范都是以言基礎。服務的其他協議規范都是以XML形式來描述形式來描述和表達的。和表達的。8.3 SOA的關鍵技術的關鍵技術46 5. 傳輸協議層傳輸協議層 傳輸協議層主要為客戶端和服務器之間提供兩者交互傳輸協議層主要為客戶端和服務器之間提供兩者交互的網絡通信協議,一般通過的網絡通信協議,一般通過HTTP(超文本協議超文本協議)和和SMTP (簡單郵件傳輸協議簡單郵件傳輸協議)來實現。來
37、實現。HTTP 是一個在是一個在Internet 上廣泛使用的協議,為服務部件通過上廣泛使用的協議,為服務部件通過Internet“交互奠定了協議基礎,并具有穿透防火墻交互奠定了協議基礎,并具有穿透防火墻的良好特性。的良好特性。SMTP 則適合于異步通信,如果服務中則適合于異步通信,如果服務中斷,斷,SMTP可以自動進行重試??梢宰詣舆M行重試。8.3 SOA的關鍵技術的關鍵技術478.4 SOA的實現方法的實現方法 SOA 只是一種概念和思想,需要借助于具體的技術只是一種概念和思想,需要借助于具體的技術和方法來實現它。從本質上來看,和方法來實現它。從本質上來看,SOA 是用本地計是用本地計算模
38、型來實現一個分布式的計算應用,也有人稱這種算模型來實現一個分布式的計算應用,也有人稱這種方法為方法為“本地化設計,分布式工作本地化設計,分布式工作”模型。模型。CORBA,DCOM 和和EJB 等都屬于這種解決方式,也等都屬于這種解決方式,也就是說,就是說,SOA 最終可以基于這些標準來實現。最終可以基于這些標準來實現。 從邏輯上和高層抽象來看,目前,實現從邏輯上和高層抽象來看,目前,實現SOA 的方法的方法也比較多,其中主流方式有也比較多,其中主流方式有Web Service、企業服務、企業服務總線和服務注冊表??偩€和服務注冊表。488.4 SOA的實現方法的實現方法 1. Web Serv
39、ice (Web服務體系結構服務體系結構) 隨著計算機網絡技術和通信技術的發展,網絡己無處隨著計算機網絡技術和通信技術的發展,網絡己無處不在。自從不在。自從lnternet(互聯網互聯網)誕生以來,部署在誕生以來,部署在Web 上的應用隨著上的應用隨著Internet 的深入人心而不斷發展。然而的深入人心而不斷發展。然而,當,當Web應用己經走人人們的日常工作和生活的時候應用己經走人人們的日常工作和生活的時候,人們卻發現在,人們卻發現在Web應用和傳統桌面應用應用和傳統桌面應用(例如企業例如企業內部的管理信息系統、辦公自動化系統等內部的管理信息系統、辦公自動化系統等)之間存在之間存在著連接的鴻
40、溝,于是不得不重復地將數據從著連接的鴻溝,于是不得不重復地將數據從Web應用應用遷移到傳統桌面應用,或從傳統桌面應用將數據遷移遷移到傳統桌面應用,或從傳統桌面應用將數據遷移到到Web應用。應用。 498.4 SOA的實現方法的實現方法1. Web Service (Web服務體系結構服務體系結構) 近年來,電子商務和電子政務迅速掘起,大多數電子近年來,電子商務和電子政務迅速掘起,大多數電子商務的應用在處理客戶、供應商、市場和服務提供商商務的應用在處理客戶、供應商、市場和服務提供商之間的連接方式上各不相同。如何將這些應用方便而之間的連接方式上各不相同。如何將這些應用方便而廉價地連接在一起,從而實
41、現大范圍的跨組織的商務廉價地連接在一起,從而實現大范圍的跨組織的商務應用系統的互聯,是擺在開發人員面前的一道難題。應用系統的互聯,是擺在開發人員面前的一道難題。 不同的應用不同的應用(特別是不同組織的應用特別是不同組織的應用)的開發語言不同,的開發語言不同,部署平臺不同,通信協議也可能不同,對外交換的數部署平臺不同,通信協議也可能不同,對外交換的數據格式更可能有很大的差異。如何去面對這些差異所據格式更可能有很大的差異。如何去面對這些差異所帶來的復雜的系統集成的挑戰是解決這道難題的關鍵。帶來的復雜的系統集成的挑戰是解決這道難題的關鍵。50 Web服務服務(Web Services)作為一種新興的
42、作為一種新興的Web應用應用模式,是一種嶄新的分布式計算模型,是模式,是一種嶄新的分布式計算模型,是Web上數據上數據和信息集成的有效機制。和信息集成的有效機制。 從電子商務應用領域來看,復雜的應用鏈接和程序代從電子商務應用領域來看,復雜的應用鏈接和程序代碼使電子商務應用的維護和更新代價很高,而碼使電子商務應用的維護和更新代價很高,而Web 服務恰好能夠解決這一問題,成為應用環境中最為合服務恰好能夠解決這一問題,成為應用環境中最為合理的解決方案。理的解決方案。 目前,無論是在工業界還是在學術界,目前,無論是在工業界還是在學術界,web 服務都服務都被認為被認為美國美國Microsoft公司通過
43、公司通過一切都是服務一切都是服務來概括來概括Web服務服務將給將給IT業帶來的沖擊。業帶來的沖擊。8.4 SOA的實現方法的實現方法1. Web Service (Web服務體系結構服務體系結構)51 什么是什么是Web服務服務Web 服務是使用標準技術在服務是使用標準技術在Internet上運行的商務流程,上運行的商務流程,它可以使用標準的它可以使用標準的Internet 協議協議(例如超文本傳輸協議例如超文本傳輸協議HTTP 和和XML),將功能綱領性地體現在,將功能綱領性地體現在Internet 和和Intranet (企業內部網企業內部網)上。上。通過通過web 服務集成的應用程序可以
44、用標準的方法把功能和服務集成的應用程序可以用標準的方法把功能和數據數據暴露暴露出來,供其他應用程序使用,使組織之間的商出來,供其他應用程序使用,使組織之間的商務處理更加自動化。務處理更加自動化。Web 服務就像服務就像Web 上的構件編程,上的構件編程,開發人員通過調用開發人員通過調用Web應用編程接口,將應用編程接口,將Web服務集成進服務集成進他們的應用程序,就像調用本地服務一樣。他們的應用程序,就像調用本地服務一樣。8.4 SOA的實現方法的實現方法1. Web Service (Web服務體系結構服務體系結構)52什么是什么是Web服務服務 學術界從不同的側面對學術界從不同的側面對we
45、b服務有不同的描述,這里服務有不同的描述,這里概括了如下幾種:概括了如下幾種: 從功能的角度描述從功能的角度描述Web 服務服務,認為,認為Web 服務基于服務基于TCP/IP, HTTP, XML 。等規范而定義,具備如下功。等規范而定義,具備如下功能能:Web上鏈接文檔的瀏覽、事務的自動調用、服務上鏈接文檔的瀏覽、事務的自動調用、服務的動態發現和發布。的動態發現和發布。 從組成框架及實現目標的角度描述從組成框架及實現目標的角度描述Web 服務服務,認為,認為Web 服務作為一種網絡操作,能夠利用標準的服務作為一種網絡操作,能夠利用標準的Web協議及接口進行應用間的交互。協議及接口進行應用間
46、的交互。53什么是什么是Web服務服務 從語義的角度描述從語義的角度描述Web服務服務,認為,認為Web 服務是語義服務是語義Web 的一種應用,由于考慮了語義信息的描述及表的一種應用,由于考慮了語義信息的描述及表示,示,Web服務能夠更準確地被執行,服務組合服務能夠更準確地被執行,服務組合(service composition)能夠按所期望的目標進行。能夠按所期望的目標進行。 從網格計算從網格計算(grid computing)的角度來看的角度來看,認為,認為Web 服務能用于服務能用于Web 上的資源發現、數據管理及網格計上的資源發現、數據管理及網格計算平臺上異構系統的協同設計,從而提出
47、網格服務的算平臺上異構系統的協同設計,從而提出網格服務的新概念。新概念。54什么是什么是Web服務服務 從信息檢索的角度來看從信息檢索的角度來看,認為,認為Web 服務是包含了分服務是包含了分布策略和路由信息的電子文檔之上進行分布式文檔檢布策略和路由信息的電子文檔之上進行分布式文檔檢索的服務。索的服務。 從另一方面來看,針對不同的應用背景,從另一方面來看,針對不同的應用背景,Web服務的服務的應用對象也不同,目前被廣泛應用的應用對象也不同,目前被廣泛應用的Web服務可分為服務可分為如下如下4 類類:面向企業應用面向企業應用( business-oriented)的服務;的服務;面向消費者面向消
48、費者(consumer-oriented) 的服務;的服務;面向設備面向設備( device-oriented) 的服務;的服務;面向系統面向系統( system- oriented)的服務。的服務。55什么是什么是Web服務服務 盡管對盡管對web 服務進行描述的出發點或應用類型不同,服務進行描述的出發點或應用類型不同,但是它們均具有如下共同特征:但是它們均具有如下共同特征:應用的分布式應用的分布式 應用到應用的交互應用到應用的交互平臺無關性平臺無關性56什么是什么是Web服務服務 (1)應用的分布式:應用的分布式:為適應網絡應用中分布式的數據源和服務提供者,為適應網絡應用中分布式的數據源和
49、服務提供者,分布式的服務響應、松散藕合是分布式的服務響應、松散藕合是web服務必須具備服務必須具備的特征。的特征。在應用中,服務請求者不必關心服務提供者的數在應用中,服務請求者不必關心服務提供者的數據源格式是什么,某一服務請求需調用哪些服務,據源格式是什么,某一服務請求需調用哪些服務,服務請求在服務請求在web上怎樣被執行等,即上怎樣被執行等,即Web 服務對服務對用戶具有分布透明性。用戶具有分布透明性。57什么是什么是Web服務服務 (2) 應用到應用的交互:應用到應用的交互:在分布式的環境中在分布式的環境中, 若采用集中控制方式,服務器若采用集中控制方式,服務器有較大的負荷,并且系統不具有
50、健壯性。因此應有較大的負荷,并且系統不具有健壯性。因此應用到應用的交互,使得用到應用的交互,使得Web 服務更具可伸縮性。服務更具可伸縮性。58什么是什么是Web服務服務 (3)平臺無關性:平臺無關性:Web服務的界面、跨服務的界面、跨Web服務的事務、工作流、服務的事務、工作流、消息認證,安全機制均采用規范的協議和約定;消息認證,安全機制均采用規范的協議和約定;由于由于Web服務采用簡單、易理解的標準服務采用簡單、易理解的標準Web協議協議作為構件接口和協同描述的規范,完全屏蔽了不作為構件接口和協同描述的規范,完全屏蔽了不同軟件平臺的差異,因此具有可集成能力。同軟件平臺的差異,因此具有可集成
51、能力。59Web服務的特點服務的特點 使用標準協議規范:使用標準協議規范:所有的所有的web 服務公共協議完全需要使用開放的標服務公共協議完全需要使用開放的標準協議進行描述、傳輸和交換,這些標準協議具準協議進行描述、傳輸和交換,這些標準協議具有完全免費的規范,以便由任意組織進行實現。有完全免費的規范,以便由任意組織進行實現。一般而言,絕大多數規范將最終由一般而言,絕大多數規范將最終由W3C或或OASIS 作為最終版本的發布方和維護方。作為最終版本的發布方和維護方。60Web服務的特點服務的特點 使用協議的規范性:使用協議的規范性:這一特征來源于對象的概念,但相比一般對象而言,這一特征來源于對象
52、的概念,但相比一般對象而言,web服務的界面更加規范化和易于機器理解。首先,作為服務的界面更加規范化和易于機器理解。首先,作為Web服務,對象界面所提供的功能應當使用標準的描述語言來服務,對象界面所提供的功能應當使用標準的描述語言來描述。其次,由標準描述語言描述的服務界面應當是能夠描述。其次,由標準描述語言描述的服務界面應當是能夠被發現的,因此這一描述文檔需要存儲在私有的或公共的被發現的,因此這一描述文檔需要存儲在私有的或公共的注冊庫里面。同時,使用標準描述語言描述的協議不僅僅注冊庫里面。同時,使用標準描述語言描述的協議不僅僅是服務界面,它將延仲到是服務界面,它將延仲到Web 服務的聚合、跨服
53、務的聚合、跨Web 服務服務的事務、工作流等,而這些又都需要服務質量的保障。的事務、工作流等,而這些又都需要服務質量的保障。61Web服務的特點服務的特點 高度集成能力高度集成能力由于由于web 服務采用簡單的、易理解的標準服務采用簡單的、易理解的標準web 協議作為協議作為構件界面描述和協同描述規范,完全屏蔽了不同軟件平臺構件界面描述和協同描述規范,完全屏蔽了不同軟件平臺的差異,無論是的差異,無論是COBRA,DCOM 還是還是EJB,都可以通過這,都可以通過這一標準的協議進行互操作,實現了在當前環境下的最高的一標準的協議進行互操作,實現了在當前環境下的最高的集成性。集成性。62Web服務的
54、特點服務的特點 完好的封裝性:完好的封裝性:Web服務既然是一種部署在服務既然是一種部署在Web上的對象,自然具備對象上的對象,自然具備對象的良好封裝性,對于使用者而言,他能且僅能看到該對象的良好封裝性,對于使用者而言,他能且僅能看到該對象提供的功能列表。提供的功能列表。63Web服務的特點服務的特點 松散耦合松散耦合 :這一特征也是源于對象這一特征也是源于對象/構件技術,當一個構件技術,當一個web 服務的實服務的實現發生變更的時候,調用者是不會感到這一點的,對于調現發生變更的時候,調用者是不會感到這一點的,對于調用者來說,只要用者來說,只要Web 服務的調用界面不變,服務的調用界面不變,W
55、eb 服務實服務實現的任何變更對他們來說都是透明的,甚至是當現的任何變更對他們來說都是透明的,甚至是當Web 服務服務的實現平臺從的實現平臺從J2EE 遷移到了遷移到了. NET 或者是相反的遷移流程,或者是相反的遷移流程,用戶部可以對此一無所知。討于松散耦合而言,尤其是對用戶部可以對此一無所知。討于松散耦合而言,尤其是對Internet環境下的環境下的Web 服務而言,需要有一種適合服務而言,需要有一種適合Internet環境的消息交換協議,環境的消息交換協議,XML/SOAP 正是目前最為正是目前最為適合的消息交換協議。適合的消息交換協議。64Web服務開發生命周期服務開發生命周期 Web
56、服務開發生命周期包括了設計和部署以及在運行服務開發生命周期包括了設計和部署以及在運行時對服務代理時對服務代理;服務提供者和服務請求者每一個角色服務提供者和服務請求者每一個角色的要求。每個角色對生命周期的每一元素都有特定要的要求。每個角色對生命周期的每一元素都有特定要求。求。(1) 構建。構建階段包括開發和測試構建。構建階段包括開發和測試web服務的實現、定服務的實現、定義服務接口描述和定義服務實現描述。可以通過創建新的義服務接口描述和定義服務實現描述??梢酝ㄟ^創建新的Web 服務把現有的應用程序變成服務把現有的應用程序變成Web服務和由其他服務和由其他Web 服務和應用程序組成新的服務和應用程
57、序組成新的Web 服務等方式來提供服務等方式來提供Web 服服務的實現。務的實現。65Web服務開發生命周期服務開發生命周期 (2) 部署部署部署階段包括向服務請求者或服務注冊中心發布服務接口部署階段包括向服務請求者或服務注冊中心發布服務接口和服務實現的定義,以及把和服務實現的定義,以及把Web服務的可執行文件部署到服務的可執行文件部署到執行環境執行環境(典型情況下,是典型情況下,是Web應用程序服務器應用程序服務器)中。中。 (3) 運行運行在運行階段,可以調用在運行階段,可以調用Web服務。這時,服務。這時,Web服務己完全服務己完全部署、可操作,并且服務提供者可以通過網絡訪問服務。部署、
58、可操作,并且服務提供者可以通過網絡訪問服務。由此,服務請求者就可以進行查找和綁定操作。由此,服務請求者就可以進行查找和綁定操作。66Web服務開發生命周期服務開發生命周期 (4) 管理:管理:管埋階段包括持續的管理和經營管埋階段包括持續的管理和經營Web服務應用程序。在此服務應用程序。在此階段,安全性、可用性、性能、服務質量和業務流程問題階段,安全性、可用性、性能、服務質量和業務流程問題都必須被解決。都必須被解決。67Web體系結構的優勢體系結構的優勢 Web服務是近年來提出的一種新的面向服務的體系結服務是近年來提出的一種新的面向服務的體系結構,同傳統分布式體系結構相比構,同傳統分布式體系結構
59、相比web 服務體系結構服務體系結構的主要優勢體現在以下的主要優勢體現在以下4 個方面:個方面:高度的通用性和易用性高度的通用性和易用性完全的平臺、語言獨立性完全的平臺、語言獨立性高度的集成性高度的集成性容易部署和發布容易部署和發布68 (1) 高度的通用性和易用性高度的通用性和易用性Web 服務利用標準的服務利用標準的Internet 協議協議(如如HTTP,SMTP 等等),解決了面向解決了面向web 的分布式計算模型,提高了系統的開放性、的分布式計算模型,提高了系統的開放性、通用性和可擴展性通用性和可擴展性;而而CORBA,DCOM 和和RMI 等使用私有等使用私有協議,只能解決企業內部
60、的對等實體間的分布式計算。協議,只能解決企業內部的對等實體間的分布式計算。此外,此外,HTTP能夠很容易地跨越系統的防火墻,具有高度能夠很容易地跨越系統的防火墻,具有高度的易用性。的易用性。69 (2)完全的平臺完全的平臺語言獨立性。語言獨立性。Web服務進行了更高程度的抽象,只要遵循服務進行了更高程度的抽象,只要遵循Web服務的接口,即可進行服務的請求和調用。服務的接口,即可進行服務的請求和調用。Web 服務服務將將XML作為信息交換格式,使信息的處理更加簡單,廠商作為信息交換格式,使信息的處理更加簡單,廠商之間的信息很容易實現溝通,這種信息格式最適合跨平臺之間的信息很容易實現溝通,這種信息
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 分配生考試數學試卷
- 高二上冊期末數學試卷
- 2025年04月山東工商學院校醫院臨床醫師(省屬高校事業編制)招聘筆試歷年專業考點(難、易錯點)附帶答案詳解
- 2025至2030吹風機行業市場深度研究與戰略咨詢分析報告
- 廣東初中期末數學試卷
- 中藥材種植技術培訓與中藥材市場分析研究考核試卷
- 乳粉生產質量管理中的質量信息共享與溝通平臺搭建考核試卷
- 體育賽事觀眾互動的線上線下融合模式考核試卷
- 辦公自動化系統調度系統的實時性優化技術考核試卷
- 高中理科必修三數學試卷
- 基本原理與性能特點多自由度電磁軸承課件
- Q∕SY 1836-2015 鍋爐 加熱爐燃油(氣)燃燒器及安全聯鎖保護裝置檢測規范
- 北京輸變電工程標準工藝應用圖冊(圖文并茂)
- 儀器使用記錄表
- 三相負荷(380V)及單相(220V)最大供電距離計算表及電壓降計算表
- 《汽車電工電子技術》全套教案(完整版)
- 國家職業技能標準 (2021年版) 嬰幼兒發展引導員
- 計算機網絡專業畢業論文:網上鮮花銷售系統的設計與實現
- 伯杰氏細菌系統分類學手冊
- 班組計件承包協議書
- 小學閱讀材料:五年級下冊閱讀題及答案--寫景類(7篇)
評論
0/150
提交評論