本文審視XML、Web服務及SOA間的關系,并解釋廠商和標準組織如何從那些持續浮現的Web服務規范中形成奇妙的競爭與協同競技場。然后我們從應用架構簡短歷史的敘述著手來對過去的二十年作一個總結。
1 SOA時間軸(從XML到Web服務再到SOA)
我們從講述形成當前SOA平臺的關鍵工業開發入手來建立時間軸。然后我們看一看SOA在它的權限范圍內,如何作為當代架構的平臺而改變了XML與Web服務技術的角色。
1.1. XML簡史
如同HTML,擴展標記語言(XML)系W3C所創建,源自流行的標準通用標記語言(SGML),它在60年代后期就已存在。這是廣泛使用的元語言,允許組織增加原始文檔數據。
XML在90年代后期的電子商務運動中聲名鵲起,服務器端腳本語言可以經由互聯網而處理業務。通過XML的使用,開發者能夠給任何片段附加上意義和上下文,再跨越互聯網協議傳輸。
XML不僅被用于以標準化的方式來表達數據,其語言自身還被用作一系列的附加規范的基礎。XML Schema定義語言(XSD)與XSL轉換語言(XSLT)都以XML表達。這些規范,事實上已成為關鍵核心XML技術集的關鍵部分。
XML表達架構代表了SOA的基礎層。在其內部,XML建立了在服務各處流動的消息格式與結構。XSD schemas保持消息數據的完整與有效性,而且XSLT使得不同的數據表達間通過schema映射而能夠互相通信。換句話說,沒有XML你在SOA內寸步難行。
1.2. Web服務簡史
在2000年,W3C接受了一項關于簡單對象訪問協議(SOAP)規范的提案。這個規范本來設計用于(并在一些案例替代)專有RPC通信。想法是對于在構件間傳輸參數數據可以序列化成XML傳送,然后支序列化成其原生格式。
很快,公司及軟件廠商開始看到,對于推進通過構建于專有-免費的互聯網通信框架之上的電子商務技術,存在日益巨大的潛力。這最后導致了創建一個純粹的、基于Web的分布式技術能充分利用概念標準化的通信框架,來橋接組織之間和組織內部所存在的巨大差異。這個概念被稱為Web服務。
Web服務最重要的部分是其公共接口。它是分配服務識別并使其激活的核心信息塊。因此,首先支持Web服務的是Web服務描述(WSDL)。W3C第一份WSDL評議提案是在2001年,此后還在不斷地修訂這一規范。
為了進一步的開放協同性的愿景,Web服務需要一個互聯網友好的、XML兼容的通信格式,以便能夠建立一個標準化的通訊框架。盡管有別的選擇,譬如可以考慮XML-RPC,但SOAP因為工業界的偏好而勝出,并且保留了最初的通訊標準用于Web服務。
為支持SOAP的新角色,W3C隨之發布了更新版本的規范,同時考慮了RPC風格的與文檔風格的消息類型。而后者在SOA里面更為常用。最終,“SOAP”一詞不再代表“簡單對象訪問協議”的首字母縮寫。到了規范的1.2版,它變成了一個獨立的術語。
完成第一代Web服務標準家族的是UDDI規范,它原本由UDDI.org所開發,被遞交到OASIS之后,它繼續與UDDI.org一起合作開發。這個規范考慮在組織內部及組織邊界之外來創建標準化的服務描述的注冊。UDDI提供了潛在的對Web服務在一個集中的位置注冊,在此處能夠被服務請求者所發現。WSDL與SOAP不同,UDDI尚未被工業界所普遍接受,并且保留了一個可選的SOA擴展。
開發定制的Web服務可適應變化的業務需求,并且第三方市場出現了促進各種實用服務的銷售或租賃?,F存的通訊平臺,譬如面向消息的中間件(MOM)產品,結合Web服務可支持SOAP之外的其他消息協議。一些組織可迅速合并Web服務,以促進B2B數據交換經常要轉變為EDI(電子數據交換)替代品的需求。
1.3. SOA簡史
不久前組織才開始意識到只需要緩和地替代現存的分布式應用,Web服務可成為獨立的架構平臺---可使用Web服務技術集的效益來實現企業中服務概念的平臺。這樣,面向服務架構開始進入IT的主流。
在這一點SOA頻繁地以不同的方式被分類,經常依賴于構建服務所用的實現技術。早期的模型,主要從Web服務標準初始系列中得到靈感,將SOA定義為一個圍繞三個基本的構件的架構模型:服務請求者,服務服務提供者與服務注冊(圖1)。
圖1. SOA的早期形態第一代Web服務標準實現此模型的以下方面:
從物理架構的角度,基于Web服務的SOA第一次變異實際上超越了原始SOA模型。你或許能回憶起原始SOA不需要使用服務注冊。作為替代,發現被歸類為當代SOA的一個特征,通過面向服務原則在服務層面被提倡。
我們的原始SOA模型在今天可輕易獲得,因為它已被所有主要廠商的開發及運行平臺所支持。這些相同廠商都有關于SOA的遠大計劃,其中許多現在已經能夠自我證明。當代SOA的諸多特征,大都是過分主動的開發與協作的結果,已經產生了一系列第一代Web服務平臺的擴展。知名的“第二代”或“WS-*”規范,這些擴展處理特殊的功能區域,Web服務技術平臺全面提升至企業水平。
補充WS-*領域對于將面向服務概念引入業務分析的世界也很重要。通過面向服務,業務邏輯能夠清晰地被封裝,并從根本的自動化技術中抽象。這個愿景藉由業務流程定義語言的提升而得到進一步支持,最知名的是WS-BPEL。這不僅考慮到將傳統的業務流程管理(BPM)模型解決成一系列的服務,更進一步提供具體的和可執行的格式充分表達業務邏輯的語言能力,填補了分析與實現間的空隙。
這些及其他工業影響已經擴大了SOA的潛在范圍。如同更多的當代特征被增加,也很可能今天我們所歸類的當代SOA,會形成未來原始SOA的基礎。
SOA是一個真正的進化。今天的結果明顯是被不同的相關標準組織和軟件廠商主動驅動的結果。通過受協作與競爭的混合刺激的不穩定環境,擴展被作為戰略定位,每個都定義了我們稱為當代SOA技術平臺一個特定部分。在第2節,我們近距離看看標準的開發過程。
1.4. SOA如何改造XML與Web服務
如同任何架構,SOA引入了邊界和規則。盡管當代SOA可能由XML及Web服務技術平臺所構成,但這些平臺需要經歷大量的變化,以便其各自的技術被適當定位并在面向服務架構范圍內加以利用。
使用XML或Web服務的傳統分布式應用環境因此肯定有一些重新實現,面向服務的設計原則需要在技術與心態方面都進行改變。以下是當你必須對現存實現翻工時,你可能面對的一些潛在問題示例。
要點總結
核心XML技術集已成為分布式互聯網架構的通用部分?,F在也提供基礎數據表達及SOA數據管理層。
第一代Web服務架構來自關鍵標準開發:WSDL、SOAP與UDDI。然而UDDI對于多數據環境而言仍舊是一個可選的發現機制,WSDL與SOAP已經成為構建在XML層之上定義SOA基本通信框架的核心技術。
SOA充分利用XML與Web服務率先鋪設的道路。它將久經考驗的概念與先進技術的結合,已經被IT社團所充分接受。
盡管當代SOA已經形成并有了對XML與Web服務的工業級接受度,SOA的到來對于已有XML及Web服務的傳統應用還是帶來了改變。
推薦:SOA的進化(二)標準組織與貢獻廠商
(責任編輯:銘銘)