<a></a>
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
本文轉自wzhj132 51CTO部落格,原文連結:http://blog.51cto.com/wzhj132/809355