SOA體系架構
1.SOA概念
1.1 簡介
SOA:Service-oriented Architecture 面向服務體系架構, 是一種設計方法和思路,並不是一種具體的技術。它嘗試給出在特定環境下推薦採用的一種架構,從這個角度上來說,它更像一種模式(Pattern)。因此它與很多已有的軟件技術比如面向對象技術,是互補的而非互斥的。它們分別面向不同的應用場景,用來滿足不同的特定需求。
1.2 使用範圍
需求決定同時也限制功能。SOA主要的應用場合在於解決在Internet環境下的不同商業應用之間的業務集成問題。
1.3 Internet環境的特點
Ø 大量異構系統並存,計算機硬件工作方式不同,操作系統不同、編程語言也不同;
Ø 大量、頻繁的數據傳輸仍然速度緩慢並且不穩定;
Ø 版本升級無法完成,我們根本就無法知道互聯網上有哪些機器直接或者間接的使用某個服務。
1.4 SOA基本特徵
1.4.1獨立的功能實體
在Internet這樣鬆散的使用環境中,任何訪問請求都有可能出錯,因此任何企圖通過Internet進行控制的結構都會面臨嚴重的穩定性問題。SOA非常強調架構中提供服務的功能實體的完全獨立自主的能力。傳統的組件技術,如.NET Remoting,EJB,COM或者CORBA,都需要有一個宿主(Host或者Server)來存放和管理這些功能實體;當這些宿主運行結束時這些組件的壽命也隨之結束。這樣當宿主本身或者其它功能部分出現問題的時候,在該宿主上運行的其它應用服務就會受到影響。
SOA架構中非常強調實體自我管理和恢復能力。常見的用來進行自我恢復的技術,比如事務處理(Transaction),消息隊列(Message Queue),冗餘部署(Redundant Deployment)和集羣系統(Cluster)在SOA中都起到至關重要的作用。
1.4.2大數據量低頻率訪問
對於.NET Remoting,EJB或者XML-RPC這些傳統的分佈式計算模型而言,他們的服務提供都是通過函數調用的方式進行的,一個功能的完成往往需要通過客戶端和服務器來回很多次函數調用才能完成。在Intranet的環境下,這些調用給系統的響應速度和穩定性帶來的影響都可以忽略不計,但是在Internet環境下這些因素往往是決定整個系統是否能正常工作的一個關鍵決定因素。因此SOA系統推薦採用大數據量的方式一次性進行信息交換。
1.4.3基於文本的消息傳遞
由於Internet中大量異構系統的存在決定了SOA系統必須採用基於文本而非二進制的消息傳遞方式。在COM、CORBA這些傳統的組件模型中,從服務器端傳往客戶端的是一個二進制編碼的對象,在客戶端通過調用這個對象的方法來完成某些功能;但是在Internet環境下,不同語言,不同平臺對數據、甚至是一些基本數據類型定義不同,給不同的服務之間傳遞對象帶來的很大困難。由於基於文本的消息本身是不包含任何處理邏輯和數據類型的,因此服務間只傳遞文本,對數據的處理依賴於接收端的方式可以幫忙繞過兼容性這個的大泥坑。
此外,對於一個服務來說,Internet與局域網最大的一個區別就是在Internet上的版本管理極其困難,傳統軟件採用的升級方式在這種鬆散的分佈式環境中幾乎無法進行。採用基於文本的消息傳遞方式,數據處理端可以只選擇性的處理自己理解的那部分數據,而忽略其它的數據,從而得到的非常理想的兼容性。
1.5 總結:
SOA(面向服務的體系結構,Service-Oriented Architecture),是一種架構模型,用於指導分佈式系統的構建。它倡導一種理念---不同技術不同平臺開發出來的系統組件能夠快速地、自由地組合起來,以滿足用戶的需要,而這些組件彼此之間又是互相獨立的,每個組件能在不依賴於其它的條件下完成一定的功能。
SOA核心思想:服務。服務屏蔽了企業內外部的業務細節,由服務規範描述,並通過已發佈的接口進行訪問。服務間是獨立的、可互操作性的、鬆耦合的、可互相調用的。
2.WEB服務
2.1 簡介
WEB服務是SOA的一種技術實現。
SOA是技術和經驗積累起來的成果。SOA所倡導的鬆耦合性、靈活性、廠商平臺無關性等指導思想很多年前就被提出,比如CORBA、DCOM、J2EE等技術都能用來實現SOA,但是都沒有成爲實現SOA的主流技術,很大的一個原因是這些技術都依賴於具體的平臺廠商,缺乏統一的標準來實現這些思想。WEB服務技術爲SOA系統的構建奠定了良好的技術基礎,它所具有的平臺無關、標準中立的特點,使其成爲現今構建SOA系統的首選技術。
2.2 基本架構
基本的web服務架構包含了SOAP、WSDL、UDDI等支持服務請求者與服務提供者進行交互,以及用於web服務發現的規範。
服務提供者通常用WSDL來描述它所提供的web服務,然後將該WSDL描述發佈;
服務請求者可以通過UDDI或其它註冊庫來獲取WSDL描述,並通過向服務提供者發送一個SOAP消息來請求執行服務。
2.3 web服務特徵
2.3.1獨立的功能實體
通過UDDI的目錄查找,我們可以動態改變一個服務的提供方而無需影響客戶端的應用程序配置。所有的訪問都通過SOAP訪問進行,只要WSDL接口封裝良好,外界客戶端是根本沒有辦法直接訪問服務器端的數據的。
2.3.2大數據量低頻率訪問
通過使用WSDL和基於文本(Literal)的SOAP請求,我們可以實現能一次性接收大量數據的接口。
2.3.3基於文本的消息傳遞
Web Service所有的通訊是通過SOAP進行的,而SOAP是基於XML的,不同版本之間可以使用不同的DTD或者XML Schema加以辨別和區分。因此只需要我們爲不同的版本提供不同的處理就可以輕鬆實現版本控制的目標。
2.4 體系架構(標準)
CORBA、DCOM、J2EE都能實現SOA,但沒有成爲主流技術,因爲依賴於具體平臺和廠商,缺乏統一的標準。Web服務技術所具有的平臺無關、標準中立等特點,成爲現今構建SOA系統的首選技術。因此WEB服務的技術體系是依據標準的發展而來的。
2.4.1四種架構體系
四種架構體系本質都一樣,只是從不同的角度進行分析,4種都可以作爲參考幫助理解,後文以後面兩種爲參考。
2.4.2web服務標準
2.4.2.1 體系結構分析
2.4.2.1.1基礎層:
包括XML及相關標準 以及網絡傳輸協議。 是所有技術標準的構建基礎。
Ø XML及相關標準:是SOA的基石。規定了服務之間以及服務內部數據交換的格式和結構、保障消息數據的完整性和有效性、提供不同數據表達之間互相通信的格式,同時提供xml文檔和信息內嵌的加密數據和數字簽名格式、爲所有web服務安全技術建立的提供基礎。
Ø 網絡傳輸標準:數據傳輸是SOA系統最基本的需求之一。SOA系統是分佈式系統,需要傳輸大量數據,網絡傳輸標準解決了如何連接,如何驗證,如何發送,接收數據以及如何報告錯誤等問題。
2.4.2.1.2架構層
是web服務架構的核心,涉及soa的設計、開發、組裝、測試、部署、治理等各個環節。
Ø 消息傳遞標準:系統內部各組成部分間需要不斷相互交換消息,以達到協調完成業務任務的目標。消息傳遞標準提供了在分佈式環境中交換信息的框架,定義了消息格式、消息交換模式、保證SOA系統能可靠、及時的傳遞消息。
Ø 服務描述和發現標準:定義一組服務,用於支持web服務提供者、web服務消費者以及可應用於訪問這些服務的技術接口描述和發現。
Ø 可靠性標準:穩定、魯棒等服務質量因素,可靠消息傳遞允許在出現軟件組件、系統或網絡故障時可靠的分佈式應用程序間交付消息。
Ø 事務性標準:利用傳統事務機制提供的協調行爲來控制應用程序的操作和輸出。
Ø 安全性標準:提供安全通信的方法。
Ø 互操作性標準:SOA和web服務技術規範很多,不同的規範可能來自不同的標準化組織,存在着不能完全互聯互通的問題,互操作性規範來確保開發可互操作的web服務。
Ø 表示層標準:相同的業務流程和業務數據在不同平臺不同終端上往往要求以不同的表現形式展現給用戶,表示層標準將下層的內容以多樣化的形態提供給上層的終端用戶。
Ø 業務流程標準:規範了將衆多業務服務有效地組織來滿足業務邏輯的需求。
Ø 集成開發標準:產品的具體實現(包括基礎服務實現、服務組裝實現)需要開發標準指導。整合現有的各種已有資源需要全局的標準化服務組件以及協議接口作爲支撐。
Ø 服務管理標準:用於發現他們存在的問題、瞭解服務的狀況、性能,並對服務進行控制和配置。
Ø 質量保證標準:包括可用性、穩定性、可維護性多方面因素。
2.4.2.1.3應用層
包含特定行業或特定類型應用的規則和要求。
2.4.2.2 組成部分關係分析
Ø 基礎層
XML和HTTP相關標準(網絡傳輸標準)是支撐SOA技術的重要基礎。
XML作爲目前數據交換的公共語言,是架構層所有SOA標準的基礎,提供了不同平臺及應用軟件通過網絡可進行交互的數據內容和結構描述格式。
XML相關技術:XML Schema、XSLT、XML signature、XML Encryption爲SOA架構層中的關鍵消息傳遞、web服務安全等標準提供了直接構建和引用基礎。
基礎層中HTTP爲代表的網絡傳輸標準,是SOA消息傳遞標準的基礎。
Ø 架構層
架構層的SOA技術標準以WS_*核心。
消息傳遞標準構築在傳輸標準之上,它以傳輸標準作爲載體進行工作。消息傳遞標準之上是服務描述和發現相關標準,這三個部分構成了SOA的基本框架。
可靠、安全、事務三個部分的標準與服務描述、發現相關標準結合起來,一定程度上對基本的服務描寫、發現標準的補充,滿足SOA實際應用的要求。
互操作性標準將SOA標準中二義性進行重新定義,在語義上確保交互的一致性,以實現不同實現平臺的互操作。是SOA標準體系的基礎組成部分,利用它支撐構建比較完善的SOA系統。
架構層業務流程標準建立起業務與服務的橋樑,開發標準指導SOA系統的實施。他們都是以構築在標準體系基礎組成部分之上的服務爲對象,因此它們需要基礎組成部分標準對他們的支持。
架構層質量保證標準是SOA構建後重要的評估手段。
Ø 應用層
應用層標準是針對各行業制定的指南性標準,基於應用行業以及企業具體要求及規則,對應各類SOA相關標準的具體應用。
2.4.2.3 具體標準技術
XML及相關標準:
XML:可擴展標記語言
XKMS:XML密鑰管理
XML signature:XML簽名
XML-Encryption:XML加密
XACML:可擴充訪問控制標記語言
XrML:可擴展版權標記語言
DSS:數字簽名服務
網絡傳輸標準:
HTTP:超文本傳輸協議
BEEP:塊可擴展交換協議
消息傳遞標準:
SOAP:簡單對象訪問協議
SOAP MTOM:SOAP消息傳輸優化機制
WEB服務尋址
WS-Eventing:Web服務事件
WEB服務通知包括的:
WS-base notification:web服務基本通知
WS-Brokers notification:web服務代理通知
WS-Topics:web服務主題。
WS-Message delivery:web服務信息傳送
服務描述和發現標準:
UDDI:統一描述、發現和集成協議
WSDL:web服務描述語言
Web services semantics:web服務語義
OWL-S:web服務的語義標記
Web服務元數據交換
Web服務策略
斷言語言
Web服務策略框架
Web服務策略制定者指導方針
Web服務策略附件
Web服務轉移
Web服務資源框架
Web服務資源特性規範
Web服務資源生命週期
Web服務基本故障
Web服務服務組
WS-RT:Web服務資源轉移
可靠性標準:
WS-Reliability:web服務可靠性
Web服務可靠消息傳遞
WS-RX:web服務可靠性交換標準
WS-RM:web服務可靠消息傳遞策略斷言
事務性標準:
WS-Transaction:web服務事務處理
WS-Coordination:web服務協調
WS-AT:web服務原子事務
WS-BA:web服務業務活動
WS-CAF:web服務合成應用框架
WS-CTX:web服務上下文
WS-CF:web服務協調框架
WS-TXM:web服務事務管理標準
WS-ACID:web服務互操作的兩個階段提交協議
WS-LRA:web服務長期運作動作
WS-BP:web服務業務流程
安全性標準:
Web服務聯合語言
Web服務聯合--主動請求者概要
Web服務聯合--被動請求者概要
Web服務安全
web服務安全對話語言
Web服務安全補遺
Web服務安全kerberos綁定
Web服務安全策略
Web服務祕密
Web服務認證
Web服務信任
安全性斷言標記語言
互操作性標準:
WS-I Basic Profile:web服務互操作性基本概要
WS-I Basci Secure Profile:web服務互操作性基本安全概要
WS-I Reliable Secure Profile:web服務互操作性可靠安全概要
表示層標準:
XForms:XForms表單
WSRP:遠程Portlet web服務
業務流程標準:
BPMN:業務流程建模標註
WS-BPEL:web服務業務流程執行語言
WS-BPEL擴展:用於人工交互的web服務業務流程執行語言擴展
WS-CDL:web服務編排描述語言
集成開發標準:
SOA RM:SOA參考模型
Web服務遺留儲備
SCA:服務組件架構
SDO:服務數據對象
服務管理標準:
WSDM:web服務分佈式管理
Web服務管理系列規範1
Web服務管理概念
Wen服務管理表示
質量保證標準:
WSQM:web服務質量模型
應用標準:
ebXML系列標準:
ebXML BP:ebXML業務流程
ebXML CPPA:ebXML協作模式及共識
ebXML RIM:ebXML註冊信息模型
ebXML RS:ebXML註冊服務
ebXML MSG:ebXML通訊服務
3.學習資源
技術 |
資料 |
備註 |
SOA(web服務) |
《Web服務:原理和技術》 |
|
SOA標準體系白皮書 V1.0 |
|
|
http://www.ibm.com/developerworks/cn/webservices/ |
IBM專題 |
|
http://whithin.blog.51cto.com/690417/137284 |
|
|
http://jianghui.blog.51cto.com/793304/160728 |
|