SOA:Service-oriented Architecture 面向服務體系架構, 是一種設計方法和思路,並非一種具體的技術。它嘗試給出在特定環境下推薦採用的一種架構,從這個角度上來講,它更像一種模式(Pattern)。所以它與不少已有的軟件技術好比面向對象技術,是互補的而非互斥的。它們分別面向不一樣的應用場景,用來知足不一樣的特定需求。
需求決定同時也限制功能。SOA主要的應用場合在於解決在Internet環境下的不一樣商業應用之間的業務集成問題。
Ø 大量異構系統並存,計算機硬件工做方式不一樣,操做系統不一樣、編程語言也不一樣;
Ø 大量、頻繁的數據傳輸仍然速度緩慢而且不穩定;
Ø 版本升級沒法完成,咱們根本就沒法知道互聯網上有哪些機器直接或者間接的使用某個服務。
在Internet這樣鬆散的使用環境中,任何訪問請求都有可能出錯,所以任何企圖經過Internet進行控制的結構都會面臨嚴重的穩定性問題。SOA很是強調架構中提供服務的功能實體的徹底獨立自主的能力。傳統的組件技術,如.NET Remoting,EJB,COM或者CORBA,都須要有一個宿主(Host或者Server)來存放和管理這些功能實體;當這些宿主運行結束時這些組件的壽命也隨之結束。這樣當宿主自己或者其它功能部分出現問題的時候,在該宿主上運行的其它應用服務就會受到影響。
SOA架構中很是強調實體自我管理和恢復能力。常見的用來進行自我恢復的技術,好比事務處理(Transaction),消息隊列(Message Queue),冗餘部署(Redundant Deployment)和集羣系統(Cluster)在SOA中都起到相當重要的做用。
對於.NET Remoting,EJB或者XML-RPC這些傳統的分佈式計算模型而言,他們的服務提供都是經過函數調用的方式進行的,一個功能的完成每每須要經過客戶端和服務器來回不少次函數調用才能完成。在Intranet的環境下,這些調用給系統的響應速度和穩定性帶來的影響均可以忽略不計,可是在Internet環境下這些因素每每是決定整個系統是否能正常工做的一個關鍵決定因素。所以SOA系統推薦採用大數據量的方式一次性進行信息交換。
因爲Internet中大量異構系統的存在決定了SOA系統必須採用基於文本而非二進制的消息傳遞方式。在COM、CORBA這些傳統的組件模型中,從服務器端傳往客戶端的是一個二進制編碼的對象,在客戶端經過調用這個對象的方法來完成某些功能;可是在Internet環境下,不一樣語言,不一樣平臺對數據、甚至是一些基本數據類型定義不一樣,給不一樣的服務之間傳遞對象帶來的很大困難。因爲基於文本的消息自己是不包含任何處理邏輯和數據類型的,所以服務間只傳遞文本,對數據的處理依賴於接收端的方式能夠幫忙繞過兼容性這個的大泥坑。
此外,對於一個服務來講,Internet與局域網最大的一個區別就是在Internet上的版本管理極其困難,傳統軟件採用的升級方式在這種鬆散的分佈式環境中幾乎沒法進行。採用基於文本的消息傳遞方式,數據處理端能夠只選擇性的處理本身理解的那部分數據,而忽略其它的數據,從而獲得的很是理想的兼容性。
SOA(面向服務的體系結構,Service-Oriented Architecture),是一種架構模型,用於指導分佈式系統的構建。它倡導一種理念---不一樣技術不一樣平臺開發出來的系統組件可以快速地、自由地組合起來,以知足用戶的須要,而這些組件彼此之間又是互相獨立的,每一個組件能在不依賴於其它的條件下完成必定的功能。
SOA核心思想:服務。服務屏蔽了企業內外部的業務細節,由服務規範描述,並經過已發佈的接口進行訪問。服務間是獨立的、可互操做性的、鬆耦合的、可互相調用的。
WEB服務是SOA的一種技術實現。
SOA是技術和經驗積累起來的成果。SOA所倡導的鬆耦合性、靈活性、廠商平臺無關性等指導思想不少年前就被提出,好比CORBA、DCOM、J2EE等技術都能用來實現SOA,可是都沒有成爲實現SOA的主流技術,很大的一個緣由是這些技術都依賴於具體的平臺廠商,缺少統一的標準來實現這些思想。WEB服務技術爲SOA系統的構建奠基了良好的技術基礎,它所具備的平臺無關、標準中立的特色,使其成爲現今構建SOA系統的首選技術。
基本的web服務架構包含了SOAP、WSDL、UDDI等支持服務請求者與服務提供者進行交互,以及用於web服務發現的規範。
服務提供者一般用WSDL來描述它所提供的web服務,而後將該WSDL描述發佈;
服務請求者能夠經過UDDI或其它註冊庫來獲取WSDL描述,並經過向服務提供者發送一個SOAP消息來請求執行服務。
經過UDDI的目錄查找,咱們能夠動態改變一個服務的提供方而無需影響客戶端的應用程序配置。全部的訪問都經過SOAP訪問進行,只要WSDL接口封裝良好,外界客戶端是根本沒有辦法直接訪問服務器端的數據的。
經過使用WSDL和基於文本(Literal)的SOAP請求,咱們能夠實現能一次性接收大量數據的接口。
Web Service全部的通信是經過SOAP進行的,而SOAP是基於XML的,不一樣版本之間可使用不一樣的DTD或者XML Schema加以辨別和區分。所以只須要咱們爲不一樣的版本提供不一樣的處理就能夠輕鬆實現版本控制的目標。
CORBA、DCOM、J2EE都能實現SOA,但沒有成爲主流技術,由於依賴於具體平臺和廠商,缺少統一的標準。Web服務技術所具備的平臺無關、標準中立等特色,成爲現今構建SOA系統的首選技術。所以WEB服務的技術體系是依據標準的發展而來的。
四種架構體系本質都同樣,只是從不一樣的角度進行分析,4種均可以做爲參考幫助理解,後文之後面兩種爲參考。
包括XML及相關標準 以及網絡傳輸協議。 是全部技術標準的構建基礎。
Ø XML及相關標準:是SOA的基石。規定了服務之間以及服務內部數據交換的格式和結構、保障消息數據的完整性和有效性、提供不一樣數據表達之間互相通訊的格式,同時提供xml文檔和信息內嵌的加密數據和數字簽名格式、爲全部web服務安全技術創建的提供基礎。
Ø 網絡傳輸標準:數據傳輸是SOA系統最基本的需求之一。SOA系統是分佈式系統,須要傳輸大量數據,網絡傳輸標準解決了如何鏈接,如何驗證,如何發送,接收數據以及如何報告錯誤等問題。
是web服務架構的核心,涉及soa的設計、開發、組裝、測試、部署、治理等各個環節。
Ø 消息傳遞標準:系統內部各組成部分間須要不斷相互交換消息,以達到協調完成業務任務的目標。消息傳遞標準提供了在分佈式環境中交換信息的框架,定義了消息格式、消息交換模式、保證SOA系統能可靠、及時的傳遞消息。
Ø 服務描述和發現標準:定義一組服務,用於支持web服務提供者、web服務消費者以及可應用於訪問這些服務的技術接口描述和發現。
Ø 可靠性標準:穩定、魯棒等服務質量因素,可靠消息傳遞容許在出現軟件組件、系統或網絡故障時可靠的分佈式應用程序間交付消息。
Ø 事務性標準:利用傳統事務機制提供的協調行爲來控制應用程序的操做和輸出。
Ø 安全性標準:提供安全通訊的方法。
Ø 互操做性標準:SOA和web服務技術規範不少,不一樣的規範可能來自不一樣的標準化組織,存在着不能徹底互聯互通的問題,互操做性規範來確保開發可互操做的web服務。
Ø 表示層標準:相同的業務流程和業務數據在不一樣平臺不一樣終端上每每要求以不一樣的表現形式展示給用戶,表示層標準將下層的內容以多樣化的形態提供給上層的終端用戶。
Ø 業務流程標準:規範了將衆多業務服務有效地組織來知足業務邏輯的需求。
Ø 集成開發標準:產品的具體實現(包括基礎服務實現、服務組裝實現)須要開發標準指導。整合現有的各類已有資源須要全局的標準化服務組件以及協議接口做爲支撐。
Ø 服務管理標準:用於發現他們存在的問題、瞭解服務的情況、性能,並對服務進行控制和配置。
Ø 質量保證標準:包括可用性、穩定性、可維護性多方面因素。
包含特定行業或特定類型應用的規則和要求。
Ø 基礎層
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相關標準的具體應用。
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通信服務
技術
|
資料
|
備註
|
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 |