隨筆 - 19, 文章 - 93, 評論 - 17, 引用 - 0
          數(shù)據(jù)加載中……

          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é)。

          本文大綱如下:

          1. SOA 時間軸(從 XML Web 服務(wù)再到 SOA
          2. SOA 的持續(xù)進(jìn)化(標(biāo)準(zhǔn)組織與貢獻(xiàn)廠商)
          3. 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 )系 W3C 所創(chuàng)建,源自流行的標(biāo)準(zhǔn)通用標(biāo)記語言( SGML ),它在 60 年代后期就已存在。這是廣泛使用的元語言,允許組織增加原始文檔數(shù)據(jù)。

          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 年, W3C 接受了一項(xiàng)關(guān)于 簡單對象訪問協(xié)議 SOA P )規(guī)范的提案。這個規(guī)范本來設(shè)計(jì)用于(并在一些案例替代)專有 RPC 通信。想法是對于在構(gòu)件間傳輸參數(shù)數(shù)據(jù)可以序列化成 XML 傳送,然后支序列化成其原生格式。

          很快,公司及軟件廠商開始看到,對于推進(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 )。 W3C 第一份 WSDL 評議提案是在 2001 年,此后還在不斷地修訂這一規(guī)范。

          為了進(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 的新角色, W3C 隨之發(fā)布了更新版本的規(guī)范,同時考慮了 RPC 風(fēng)格的與文檔風(fēng)格的消息類型。而后者在 SOA 里面更為常用。最終,“ SOA P ”一詞不再代表“簡單對象訪問協(xié)議”的首字母縮寫。到了規(guī)范的 1.2 版,它變成了一個獨(dú)立的術(shù)語。

          完成第一代 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)

          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

          主站蜘蛛池模板: 淳安县| 阿瓦提县| 叙永县| 甘孜| 潞西市| 荃湾区| 墨江| 延吉市| 万盛区| 嘉峪关市| 璧山县| 永丰县| 灵寿县| 兴文县| 托克托县| 庄浪县| 吉首市| 台前县| 天台县| 北京市| 陆丰市| 新民市| 竹山县| 巴楚县| 阿城市| 建宁县| 巴塘县| 班戈县| 扶绥县| 贞丰县| 连州市| 五指山市| 通城县| 姚安县| 仲巴县| 安仁县| 都昌县| 汽车| 五家渠市| 炉霍县| 清徐县|