SOA的進(jìn)化(一)----------大綱和SOA時間軸(從XML到Web服務(wù)再到SOA)
??????本文審視
XML
、
Web
服務(wù)及
SOA
間的關(guān)系,并解釋廠商和標(biāo)準(zhǔn)組織如何從那些持續(xù)浮現(xiàn)
的
Web
服務(wù)規(guī)范中形成奇妙的競爭與協(xié)同競技場。然后我們從應(yīng)用架構(gòu)簡短歷史的敘述著手來對過去的二十年作一個總結(jié)。
本文大綱如下:
-
SOA
時間軸(從
XML
到
Web
服務(wù)再到
SOA
)
-
SOA
的持續(xù)進(jìn)化(標(biāo)準(zhǔn)組織與貢獻(xiàn)廠商)
- SOA 的根源( SOA 與過去架構(gòu)的比較)
這個主題順序可能有一點(diǎn)奇怪。我們以最近及當(dāng)前的開發(fā)開始,以回顧過去架構(gòu)平臺而結(jié)束。簡單地選擇了這個結(jié)構(gòu),是因?yàn)楸疚淖詈蟓h(huán)節(jié)的信息或許不是每個人
都需要
閱讀。
1
SOA
時間軸(從
XML
到
Web
服務(wù)再到
SOA
)
我們從講述形成當(dāng)前 SOA 平臺的關(guān)鍵工業(yè)開發(fā)入手來建立時間軸。然后我們看一看 SOA 在它的權(quán)限范圍內(nèi),如何作為當(dāng)代架構(gòu)的平臺而改變了 XML 與 Web 服務(wù)技術(shù)的角色。
1.1.
XML
簡史
如同
HTML
,擴(kuò)展標(biāo)記語言(
XML
)系
W
XML
在
90
年代后期的電子商務(wù)運(yùn)動中聲名鵲起,服務(wù)器端腳本語言可以經(jīng)由互聯(lián)網(wǎng)而處理業(yè)務(wù)。通過
XML
的使用,開發(fā)者能夠給任何片段附加上意義和上下文,再跨越互聯(lián)網(wǎng)協(xié)議傳輸。
XML
不僅被用于以標(biāo)準(zhǔn)化的方式來表達(dá)數(shù)據(jù),其語言自身還被用作一系列的附加規(guī)范的基礎(chǔ)。
XML Schema
定義語言(
XSD
)與
XSL
轉(zhuǎn)換語言(
XSLT
)都以
XML
表達(dá)。這些規(guī)范,事實(shí)上已成為關(guān)鍵核心
XML
技術(shù)集的關(guān)鍵部分。
XML
表達(dá)架構(gòu)代表了
SOA
的基礎(chǔ)層。在其內(nèi)部,
XML
建立了在服務(wù)各處流動的消息格式與結(jié)構(gòu)。
XSD schemas
保持消息數(shù)據(jù)的完整與有效性,而且
XSLT
使得不同的數(shù)據(jù)表達(dá)間通過
schema
映射而能夠互相通信。換句話說,沒有
XML
你在
SOA
內(nèi)寸步難行。
1.2.
Web
服務(wù)簡史
在
2000
年,
W
很快,公司及軟件廠商開始看到,對于推進(jìn)通過構(gòu)建于專有
-
免費(fèi)的互聯(lián)網(wǎng)通信框架之上的電子商務(wù)技術(shù),存在日益巨大的潛力。這最后導(dǎo)致了創(chuàng)建一個純粹的、基于
Web
的分布式技術(shù)能充分利用概念標(biāo)準(zhǔn)化的通信框架,來橋接組織之間和組織內(nèi)部所存在的巨大差異。這個概念被稱為
Web
服務(wù)。
Web
服務(wù)最重要的部分是其公共接口。它是分配服務(wù)識別并使其激活的核心信息塊。因此,首先支持
Web
服務(wù)的是
Web
服務(wù)描述(
WSDL
)。
W
為了進(jìn)一步的開放協(xié)同性的愿景,
Web
服務(wù)需要一個互聯(lián)網(wǎng)友好的、
XML
兼容的通信格式,以便能夠建立一個標(biāo)準(zhǔn)化的通訊框架。盡管有別的選擇,譬如可以考慮
XML-RPC
,但
SOA
P
因?yàn)楣I(yè)界的偏好而勝出,并且保留了最初的通訊標(biāo)準(zhǔn)用于
Web
服務(wù)。
為支持
SOA
P
的新角色,
W
完成第一代
Web
服務(wù)標(biāo)準(zhǔn)家族的是
UDDI
規(guī)范,它原本由
UDDI.org
所開發(fā),被遞交到
OASIS
之后,它繼續(xù)與
UDDI.org
一起合作開發(fā)。這個規(guī)范考慮在組織內(nèi)部及組織邊界之外來創(chuàng)建標(biāo)準(zhǔn)化的服務(wù)描述的注冊。
UDDI
提供了潛在的對
Web
服務(wù)在一個集中的位置注冊,在此處能夠被服務(wù)請求者所發(fā)現(xiàn)。
WSDL
與
SOA
P
不同,
UDDI
尚未被工業(yè)界所普遍接受,并且保留了一個可選的
SOA
擴(kuò)展。
開發(fā)定制的
Web
服務(wù)可適應(yīng)變化的業(yè)務(wù)需求,并且第三方市場出現(xiàn)了促進(jìn)各種實(shí)用服務(wù)的銷售或租賃?,F(xiàn)存的通訊平臺,譬如面向消息的中間件(
MOM
)產(chǎn)品,結(jié)合
Web
服務(wù)可支持
SOA
P
之外的其他消息協(xié)議。一些組織可迅速合并
Web
服務(wù),以促進(jìn)
B2B
數(shù)據(jù)交換經(jīng)常要轉(zhuǎn)變?yōu)?/span>
EDI
(電子數(shù)據(jù)交換)替代品的需求。
1.3.
SOA
簡史
不久前組織才開始意識到只需要緩和地替代現(xiàn)存的分布式應(yīng)用,
Web
服務(wù)可成為獨(dú)立的架構(gòu)平臺
---
可使用
Web
服務(wù)技術(shù)集的效益來實(shí)現(xiàn)企業(yè)中服務(wù)概念的平臺。這樣,面向服務(wù)架構(gòu)開始進(jìn)入
IT
的主流。
在這一點(diǎn)
SOA
頻繁地以不同的方式被分類,經(jīng)常依賴于構(gòu)建服務(wù)所用的實(shí)現(xiàn)技術(shù)。早期的模型,主要從
Web
服務(wù)標(biāo)準(zhǔn)初始系列中得到靈感,將
SOA
定義為一個圍繞三個基本的構(gòu)件的架構(gòu)模型:服務(wù)請求者,服務(wù)服務(wù)提供者與服務(wù)注冊(
圖
1
)。
圖
1. SOA
的早期形態(tài)
第一代
Web
服務(wù)標(biāo)準(zhǔn)實(shí)現(xiàn)此模型的以下方面:
-
WSDL
描述服務(wù)。
-
SOA
P
提供了用于服務(wù)及其請求者的通訊格式。
-
UDDI
提供了標(biāo)準(zhǔn)化的服務(wù)注冊格式。
從物理架構(gòu)的角度,基于
Web
服務(wù)的
SOA
第一次變異實(shí)際上超越了
原始
SOA
模型。你或許能回憶起原始
SOA
不需要使用服務(wù)注冊。作為替代,發(fā)現(xiàn)被歸類為當(dāng)代
SOA
的一個特征,通過面向服務(wù)原則在服務(wù)層面被提倡。
我們的原始
SOA
模型在今天可輕易獲得,因?yàn)樗驯凰兄饕獜S商的開發(fā)及運(yùn)行平臺所支持。這些相同廠商都有關(guān)于
SOA
的遠(yuǎn)大計(jì)劃,其中許多現(xiàn)在已經(jīng)能夠自我證明。
當(dāng)代
SOA
的諸多特征,大都是過分主動的開發(fā)與協(xié)作的結(jié)果,已經(jīng)產(chǎn)生了一系列第一代
Web
服務(wù)平臺的擴(kuò)展。知名的“第二代”或“
WS-*
”規(guī)范,這些擴(kuò)展處理特殊的功能區(qū)域,
Web
服務(wù)技術(shù)平臺全面提升至企業(yè)水平。
補(bǔ)充
WS-*
領(lǐng)域?qū)τ趯⒚嫦蚍?wù)概念引入業(yè)務(wù)分析的世界也很重要。通過面向服務(wù),業(yè)務(wù)邏輯能夠清晰地被封裝,并從根本的自動化技術(shù)中抽象。這個愿景藉由業(yè)務(wù)流程定義語言的提升而得到進(jìn)一步支持,最知名的是
WS-BPEL
。這不僅考慮到將傳統(tǒng)的業(yè)務(wù)流程管理(
BPM
)模型解決成一系列的服務(wù),更進(jìn)一步提供具體的和可執(zhí)行的格式充分表達(dá)業(yè)務(wù)邏輯的語言能力,填補(bǔ)了分析與實(shí)現(xiàn)間的空隙。
這些及其他工業(yè)影響已經(jīng)擴(kuò)大了
SOA
的潛在范圍。如同更多的當(dāng)代特征被增加,也很可能今天我們所歸類的當(dāng)代
SOA
,會形成未來原始
SOA
的基礎(chǔ)。
SOA
是一個真正的進(jìn)化。今天的結(jié)果明顯是被不同的相關(guān)標(biāo)準(zhǔn)組織和軟件廠商主動驅(qū)動的結(jié)果。通過受協(xié)作與競爭的混合刺激的不穩(wěn)定環(huán)境,擴(kuò)展被作為戰(zhàn)略定位,每個都定義了我們稱為當(dāng)代
SOA
技術(shù)平臺一個特定部分。在第
2
節(jié),我們近距離看看標(biāo)準(zhǔn)的開發(fā)過程。
1.4.
SOA
如何改造
XML
與
Web
服務(wù)
如同任何架構(gòu),
SOA
引入了邊界和規(guī)則。盡管當(dāng)代
SOA
可能由
XML
及
Web
服務(wù)技術(shù)平臺所構(gòu)成,但這些平臺需要經(jīng)歷大量的變化,以便其各自的技術(shù)被適當(dāng)定位并在面向服務(wù)架構(gòu)范圍內(nèi)加以利用。
使用
XML
或
Web
服務(wù)的傳統(tǒng)分布式應(yīng)用環(huán)境因此肯定有一些重新實(shí)現(xiàn),面向服務(wù)的設(shè)計(jì)原則需要在技術(shù)與心態(tài)方面都進(jìn)行改變。以下是當(dāng)你必須對現(xiàn)存實(shí)現(xiàn)翻工時,你可能面對的一些潛在問題示例。
- SOA 現(xiàn)在需要數(shù)據(jù)表達(dá)與服務(wù)建模標(biāo)準(zhǔn)表達(dá)保持一致。這個相當(dāng)含糊的需求有許多含意,并主要促進(jìn)內(nèi)在協(xié)同性。
- SOA 依賴于負(fù)責(zé)所有服務(wù)間通信的 SOA P 通訊。結(jié)果,所有需要 XML 的地方,一般也會有 SOA P 消息,以照顧傳輸、臨時處理與路由及最終交付。 XML 文檔與關(guān)聯(lián)的 XSD schema 現(xiàn)在經(jīng)常需要有意地與 SOA P 通訊一起建模。
- SOA 使用標(biāo)準(zhǔn)化的文檔風(fēng)格的通訊。從 RPC 風(fēng)格遷移到文檔風(fēng)格的消息給服務(wù)描述的設(shè)計(jì)強(qiáng)加了變化。特別地,接口特征需要以更普通的術(shù)語表示,并全面增加操作粒度。
- 由于強(qiáng)調(diào)文檔風(fēng)格的 SOA P 消息, SOA 促進(jìn)內(nèi)容及高智能模型。這個支持服務(wù)的無狀態(tài)及自治,并使消息傳輸?shù)念l度最小化。然而先前的 RPC 風(fēng)格的方法支持帶有目標(biāo)數(shù)據(jù)的小顆粒 XML 文檔傳輸,在 SOA 內(nèi)的 XML 文檔經(jīng)常需要代表不止一個數(shù)據(jù)語境的綁定數(shù)據(jù)。
- 直到 WS-* 擴(kuò)展的高階信息能力普遍流行,許多應(yīng)用都將需要配備 SOA P 報(bào)頭來實(shí)現(xiàn)臨時解決方案以管理復(fù)雜的消息交換。一些更急迫需求包括管理與關(guān)聯(lián)。這些臨時的設(shè)計(jì)有效地建立了轉(zhuǎn)變模型,需要時可輕易地遷移到工業(yè)標(biāo)準(zhǔn)的實(shí)現(xiàn)。
要點(diǎn)總結(jié)
-
核心
XML
技術(shù)集已成為分布式互聯(lián)網(wǎng)架構(gòu)的通用部分?,F(xiàn)在也提供基礎(chǔ)數(shù)據(jù)表達(dá)及
SOA
數(shù)據(jù)管理層。
-
第一代
Web
服務(wù)架構(gòu)來自關(guān)鍵標(biāo)準(zhǔn)開發(fā):
WSDL
、
SOA
P
與
UDDI
。然而
UDDI
對于多數(shù)據(jù)環(huán)境而言仍舊是一個可選的發(fā)現(xiàn)機(jī)制,
WSDL
與
SOA
P
已經(jīng)成為構(gòu)建在
XML
層之上定義
SOA
基本通信框架的核心技術(shù)。
-
SOA
充分利用
XML
與
Web
服務(wù)率先鋪設(shè)的道路。它將久經(jīng)考驗(yàn)的概念與先進(jìn)技術(shù)的結(jié)合,已經(jīng)被
IT
社團(tuán)所充分接受。
- 盡管當(dāng)代 SOA 已經(jīng)形成并有了對 XML 與 Web 服務(wù)的工業(yè)級接受度, SOA 的到來對于已有 XML 及 Web 服務(wù)的傳統(tǒng)應(yīng)用還是帶來了改變。
posted on 2006-12-03 09:11 BPM 閱讀(234) 評論(0) 編輯 收藏 所屬分類: SOA