【新技術】SOA-體系架構

SOA體系架構

1.SOA概念

1.1 簡介

SOAService-oriented Architecture 面向服務體系架構, 是一種設計方法和思路,並非一種具體的技術。它嘗試給出在特定環境下推薦採用的一種架構,從這個角度上來講,它更像一種模式(Pattern)。所以它與不少已有的軟件技術好比面向對象技術,是互補的而非互斥的。它們分別面向不一樣的應用場景,用來知足不一樣的特定需求。 web

1.2 使用範圍

 需求決定同時也限制功能。SOA主要的應用場合在於解決在Internet環境下的不一樣商業應用之間的業務集成問題。 編程

1.3 Internet環境的特色

Ø 大量異構系統並存,計算機硬件工做方式不一樣,操做系統不一樣、編程語言也不一樣;  安全

Ø 大量、頻繁的數據傳輸仍然速度緩慢而且不穩定;  服務器

Ø 版本升級沒法完成,咱們根本就沒法知道互聯網上有哪些機器直接或者間接的使用某個服務。  網絡

1.4 SOA基本特徵

1.4.1獨立的功能實體 

Internet這樣鬆散的使用環境中,任何訪問請求都有可能出錯,所以任何企圖經過Internet進行控制的結構都會面臨嚴重的穩定性問題。SOA很是強調架構中提供服務的功能實體的徹底獨立自主的能力。傳統的組件技術,如.NET RemotingEJBCOM或者CORBA,都須要有一個宿主(Host或者Server)來存放和管理這些功能實體;當這些宿主運行結束時這些組件的壽命也隨之結束。這樣當宿主自己或者其它功能部分出現問題的時候,在該宿主上運行的其它應用服務就會受到影響。  架構

SOA架構中很是強調實體自我管理和恢復能力。常見的用來進行自我恢復的技術,好比事務處理(Transaction),消息隊列(Message Queue),冗餘部署(Redundant Deployment)和集羣系統(Cluster)SOA中都起到相當重要的做用。  框架

1.4.2大數據量低頻率訪問 

對於.NET RemotingEJB或者XML-RPC這些傳統的分佈式計算模型而言,他們的服務提供都是經過函數調用的方式進行的,一個功能的完成每每須要經過客戶端和服務器來回不少次函數調用才能完成。在Intranet的環境下,這些調用給系統的響應速度和穩定性帶來的影響均可以忽略不計,可是在Internet環境下這些因素每每是決定整個系統是否能正常工做的一個關鍵決定因素。所以SOA系統推薦採用大數據量的方式一次性進行信息交換。 編程語言

1.4.3基於文本的消息傳遞

因爲Internet中大量異構系統的存在決定了SOA系統必須採用基於文本而非二進制的消息傳遞方式。在COMCORBA這些傳統的組件模型中,從服務器端傳往客戶端的是一個二進制編碼的對象,在客戶端經過調用這個對象的方法來完成某些功能;可是在Internet環境下,不一樣語言,不一樣平臺對數據、甚至是一些基本數據類型定義不一樣,給不一樣的服務之間傳遞對象帶來的很大困難。因爲基於文本的消息自己是不包含任何處理邏輯和數據類型的,所以服務間只傳遞文本,對數據的處理依賴於接收端的方式能夠幫忙繞過兼容性這個的大泥坑。  分佈式

此外,對於一個服務來講,Internet與局域網最大的一個區別就是在Internet上的版本管理極其困難,傳統軟件採用的升級方式在這種鬆散的分佈式環境中幾乎沒法進行。採用基於文本的消息傳遞方式,數據處理端能夠只選擇性的處理本身理解的那部分數據,而忽略其它的數據,從而獲得的很是理想的兼容性。  ide

1.5 總結:

SOA(面向服務的體系結構,Service-Oriented Architecture),是一種架構模型,用於指導分佈式系統的構建。它倡導一種理念---不一樣技術不一樣平臺開發出來的系統組件可以快速地、自由地組合起來,以知足用戶的須要,而這些組件彼此之間又是互相獨立的,每一個組件能在不依賴於其它的條件下完成必定的功能。

SOA核心思想:服務。服務屏蔽了企業內外部的業務細節,由服務規範描述,並經過已發佈的接口進行訪問。服務間是獨立的、可互操做性的、鬆耦合的、可互相調用的。

2.WEB服務

2.1 簡介

WEB服務是SOA的一種技術實現。

SOA是技術和經驗積累起來的成果。SOA所倡導的鬆耦合性、靈活性、廠商平臺無關性等指導思想不少年前就被提出,好比CORBADCOMJ2EE等技術都能用來實現SOA,可是都沒有成爲實現SOA的主流技術,很大的一個緣由是這些技術都依賴於具體的平臺廠商,缺少統一的標準來實現這些思想。WEB服務技術爲SOA系統的構建奠基了良好的技術基礎,它所具備的平臺無關、標準中立的特色,使其成爲現今構建SOA系統的首選技術。

2.2 基本架構

基本的web服務架構包含了SOAPWSDLUDDI等支持服務請求者與服務提供者進行交互,以及用於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 體系架構(標準)

CORBADCOMJ2EE都能實現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服務消費者以及可應用於訪問這些服務的技術接口描述和發現。

Ø 可靠性標準:穩定、魯棒等服務質量因素,可靠消息傳遞容許在出現軟件組件、系統或網絡故障時可靠的分佈式應用程序間交付消息。

Ø 事務性標準:利用傳統事務機制提供的協調行爲來控制應用程序的操做和輸出。

Ø 安全性標準:提供安全通訊的方法。

Ø 互操做性標準:SOAweb服務技術規範不少,不一樣的規範可能來自不一樣的標準化組織,存在着不能徹底互聯互通的問題,互操做性規範來確保開發可互操做的web服務。

Ø 表示層標準:相同的業務流程和業務數據在不一樣平臺不一樣終端上每每要求以不一樣的表現形式展示給用戶,表示層標準將下層的內容以多樣化的形態提供給上層的終端用戶。

Ø 業務流程標準:規範了將衆多業務服務有效地組織來知足業務邏輯的需求。

Ø 集成開發標準:產品的具體實現(包括基礎服務實現、服務組裝實現)須要開發標準指導。整合現有的各類已有資源須要全局的標準化服務組件以及協議接口做爲支撐。

Ø 服務管理標準:用於發現他們存在的問題、瞭解服務的情況、性能,並對服務進行控制和配置。

Ø 質量保證標準:包括可用性、穩定性、可維護性多方面因素。

2.4.2.1.3應用層

包含特定行業或特定類型應用的規則和要求。

2.4.2.2 組成部分關係分析

Ø 基礎層

XMLHTTP相關標準(網絡傳輸標準)是支撐SOA技術的重要基礎。

XML做爲目前數據交換的公共語言,是架構層全部SOA標準的基礎,提供了不一樣平臺及應用軟件經過網絡可進行交互的數據內容和結構描述格式。

XML相關技術:XML SchemaXSLTXML signatureXML EncryptionSOA架構層中的關鍵消息傳遞、web服務安全等標準提供了直接構建和引用基礎。

基礎層中HTTP爲表明的網絡傳輸標準,是SOA消息傳遞標準的基礎。

Ø 架構層

架構層的SOA技術標準以WS_*核心。

消息傳遞標準構築在傳輸標準之上,它以傳輸標準做爲載體進行工做。消息傳遞標準之上是服務描述和發現相關標準,這三個部分構成了SOA的基本框架。

可靠、安全、事務三個部分的標準與服務描述、發現相關標準結合起來,必定程度上對基本的服務描寫、發現標準的補充,知足SOA實際應用的要求。

互操做性標準將SOA標準中二義性進行從新定義,在語義上確保交互的一致性,以實現不一樣實現平臺的互操做。是SOA標準體系的基礎組成部分,利用它支撐構建比較完善的SOA系統。

架構層業務流程標準創建起業務與服務的橋樑,開發標準指導SOA系統的實施。他們都是以構築在標準體系基礎組成部分之上的服務爲對象,所以它們須要基礎組成部分標準對他們的支持。

架構層質量保證標準是SOA構建後重要的評估手段。

Ø 應用層

應用層標準是針對各行業制定的指南性標準,基於應用行業以及企業具體要求及規則,對應各種SOA相關標準的具體應用。

2.4.2.3 具體標準技術

XML及相關標準:

XML:可擴展標記語言

XKMSXML密鑰管理

XML signatureXML簽名

XML-EncryptionXML加密

XACML:可擴充訪問控制標記語言

XrML:可擴展版權標記語言

DSS:數字簽名服務

網絡傳輸標準:

HTTP:超文本傳輸協議

BEEP:塊可擴展交換協議

消息傳遞標準:

SOAP:簡單對象訪問協議

SOAP MTOMSOAP消息傳輸優化機制

WEB服務尋址

WS-EventingWeb服務事件

WEB服務通知包括的:

WS-base notificationweb服務基本通知

WS-Brokers notificationweb服務代理通知

WS-Topicsweb服務主題。

WS-Message deliveryweb服務信息傳送

服務描述和發現標準:

UDDI:統一描述、發現和集成協議

WSDLweb服務描述語言

Web services semanticsweb服務語義

OWL-Sweb服務的語義標記

Web服務元數據交換

Web服務策略

斷言語言

Web服務策略框架

Web服務策略制定者指導方針

Web服務策略附件

Web服務轉移

Web服務資源框架

Web服務資源特性規範

Web服務資源生命週期

Web服務基本故障

Web服務服務組

WS-RTWeb服務資源轉移

可靠性標準:

WS-Reliabilityweb服務可靠性

Web服務可靠消息傳遞

WS-RXweb服務可靠×××換標準

WS-RMweb服務可靠消息傳遞策略斷言

事務性標準:

WS-Transactionweb服務事務處理

WS-Coordinationweb服務協調

WS-AT:web服務原子事務

WS-BAweb服務業務活動

WS-CAFweb服務合成應用框架

WS-CTXweb服務上下文

WS-CFweb服務協調框架

WS-TXMweb服務事務管理標準

WS-ACIDweb服務互操做的兩個階段提交協議

WS-LRAweb服務長期運做動做

WS-BPweb服務業務流程

安全性標準:

Web服務聯合語言

Web服務聯合--主動請求者概要

Web服務聯合--被動請求者概要

Web服務安全

web服務安全對話語言

Web服務安全補遺

Web服務安全kerberos綁定

Web服務安全策略

Web服務祕密

Web服務認證

Web服務信任

安全性斷言標記語言

互操做性標準:

WS-I Basic Profileweb服務互操做性基本概要

WS-I Basci Secure Profileweb服務互操做性基本安全概要

WS-I Reliable Secure Profileweb服務互操做性可靠安全概要

表示層標準:

XFormsXForms表單

WSRP:遠程Portlet web服務

業務流程標準:

BPMN:業務流程建模標註

WS-BPELweb服務業務流程執行語言

WS-BPEL擴展:用於人工交互的web服務業務流程執行語言擴展

WS-CDLweb服務編排描述語言

集成開發標準:

SOA RMSOA參考模型

Web服務遺留儲備

SCA:服務組件架構

SDO:服務數據對象

服務管理標準:

WSDMweb服務分佈式管理

Web服務管理系列規範1

Web服務管理概念

Wen服務管理表示

質量保證標準:

WSQMweb服務質量模型

應用標準:

ebXML系列標準:

ebXML BPebXML業務流程

ebXML CPPAebXML協做模式及共識

ebXML RIMebXML註冊信息模型

ebXML RSebXML註冊服務

ebXML MSGebXML通信服務

3.學習資源

技術

資料

備註

SOAweb服務)

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

相關文章
相關標籤/搜索