于 浚 于 倩 李妙旎
[摘要]通過對s0A和虛擬化的概念、特點、應用等入手,提出虛擬化與SOA的融合方案,并最終通過EsB的例子具體描述虛擬化在SOA中的應用。
[關鍵詞]SOA虛擬化SOA與虛擬化的融合
一、SOA面述
SOA(service—Oriented Architecture,面向服務的體系結構)是一個組件模型,它將應用程序的不同功能單元(稱為服務)通過這些服務之間定義良好的接口和契約聯(lián)系起來。簡單的說,SOA是指為了解決在Internet環(huán)境下業(yè)務集成的需要,通過連接能完成特定任務的獨立功能實體實現(xiàn)的一種軟件系統(tǒng)架構。
SOA伴隨著無處不在的標準,為企業(yè)的現(xiàn)有資產(chǎn)或投資帶來了更好的重用性。SOA能夠在現(xiàn)有的和最新的應用之上創(chuàng)建新型應用;SOA能夠消除服務消費者因服務實現(xiàn)的改變所帶來的影響:SOA能夠升級單個服務或服務消費者而無需重寫整個應用,也無需保留不再適用于新需求的現(xiàn)有系統(tǒng)??偠灾琒OA以借助現(xiàn)有的應用來組合產(chǎn)生新服務的敏捷方式,提供給企業(yè)更好的靈活性來構建應用程序和業(yè)務流程。
在技術層,實現(xiàn)SOA已從原先的CORBA方式升級為現(xiàn)在的基于XML語言的WSDL文檔描述方式。采用SOA的一個最大的好處就是:服務消費者可以首先根據(jù)服務的WSDL定義來查詢一個或多個滿足他們需求的服務,然后用新的方式把服務組織起來,以實現(xiàn)新的服務功能。
二、虛擬化的定義及解決方案
虛擬化是一個廣義的術語,是指計算元件在虛擬的基礎上而不是真實的基礎上運行,是一個為了簡化管理,優(yōu)化資源的解決方案。
虛擬化目前有商種解決方案:軟件解決方案和硬件解決方案。在軟件虛擬化解決方案中,存在需要二進制轉換的額外通信層,以通過提供到物理資源的接口模擬硬件環(huán)境,然而這種轉換必然會增加系統(tǒng)的復雜性。硬件虛擬化技術可提供全新的架構,支持操作系統(tǒng)直接在上面運行,從而無需進行二進制轉換,減少了相關的性能開銷,極大提高了性能。
在IT基礎設施領域內(nèi),尚未進行虛擬化的地方并不多,他們包括服務器虛擬化、任務負載虛擬化、芯片虛擬化、存儲虛擬化、信息虛擬化和網(wǎng)絡虛擬化等。所有這些方面的虛擬化已經(jīng)在深刻影響著IT領域的發(fā)展,甚至催生了許多新型的IT業(yè)務模式。比如各種類型的應用網(wǎng)格,比如全新的諸如SaaS之類的軟件交付形式。
三、SOA與虛擬化的融合
SOA和虛擬化之間有一種高度協(xié)作的關系。盡管SOA已經(jīng)是家喻戶曉的軟件技術,但是隨著企業(yè)采用的服務不斷增多以及這些服務的規(guī)模不斷增大,實現(xiàn)和支持這些服務的基礎設施虛擬化技術也就日益重要。沒有基礎設施的虛擬化,企業(yè)的管理就會變得非常復雜,很難實現(xiàn)服務的靈活性。因此,可以說,虛擬化和SOA間是相輔相成、相互影響的。
虛擬技術可靈活調配計算資源、簡化硬件管理,從而使SOA突破傳統(tǒng)應用平臺限制,以數(shù)碼形式捕捉各種企業(yè)能力并使其可用于再配置和再連接,從而滿足不斷變化的企業(yè)需求。SOA與虛擬化的融合可協(xié)助構建有利于IT整合與標準化的高度靈活的系統(tǒng),從而使企業(yè)IT資源更為集成進而實現(xiàn)企業(yè)績效的最優(yōu)化。對于在一個虛擬化平臺上搭建SOA應用,有三種方式可以選擇:
1,硬件虛擬化:通過軟件方式或者硬件方式將服務器的硬件分成2個或者多個單獨的區(qū),每個區(qū)都可以安裝相同或者不同的操作系統(tǒng),區(qū)與區(qū)之間互不影響。
2,終端虛擬化:通過分流、虛擬化以及桌面代理技術,即時設置和保護終端環(huán)境,同時降低成本并提高工作效率。
3,服務虛擬化:為建立和管理復雜的服務生態(tài)環(huán)境提供一個通用的基礎設施,開發(fā)人員只把重點放在建設新的功能方面,不用擔心這些功能以后將如何暴露、消費和管理。
四、虛擬化在SOA中的應用
虛擬化使s0A變得更為強大,主要體現(xiàn)在以下三個方面:
1,基礎設施虛擬化:服務中有很大一部分具有移動性和動態(tài)特性,從而在分布式基礎設施上對其生命周期進行管理也很難,因此我們可以通過對中間件進行虛擬化來實現(xiàn)這種功能。
2,信息虛擬化;由于服務具有移動性,因此從不同位置獲得對整個企業(yè)中信息的訪問是一個非常重要但卻很困難的要求。我們可以通過對智能形式的信息訪問進行虛擬化來請求信息附近啟動服務從而減輕這個問題。
3,服務器虛擬化;服務器虛擬化對于面向服務的架構有特殊的優(yōu)點,它可在機器或集群層通過分布式資源提供任務負載虛擬化。
以下將通過ESB(Enterprise Service Bus,企業(yè)服務總線)的例子來說明虛擬化在SOA中的應用。
ESB越復雜,所要從虛擬化技術中獲取的價值就越多,這意味著IT對流程的依賴程度越高。采用基于虛擬技術和ESB的IT架構在支持動態(tài)業(yè)務環(huán)境的同時,在利用IT資源、提高業(yè)務流程的效率方面也大有作為,虛擬化技術能夠在至少以上提到的三個領域對EsB進行深度融合。
1,基礎設施虛擬化:由于服務中有很大一部分具有移動性,因此虛擬機為服務提供了一個中立級別的平臺,不同類型的服務可以在相同的物理資源上執(zhí)行。
2,信息虛擬化:由于服務是可以移動的,這就需要更多的智能形式的信息訪問和虛擬化。信息虛擬化通常在一個基礎或底層上進行構建,支持元數(shù)據(jù)管理和一些基礎功能。
3,服務虛擬化:要求在需要的地方和時間啟動服務,如果任務負載的需求增加了或產(chǎn)生了故障,那么可以在其他資源上自動啟動相關服務。并將任務路由到這些服務上,即在機器或集群層通過分布式資源提供任務,負載虛擬化。
五、結語
在本文中,我們已經(jīng)簡要介紹了SOA的概念及特點、虛擬化的概念及解決方案,進而我們引出了對在SOA中融合虛擬化的方式及具體應用的描述。現(xiàn)實中,s0A和基礎設施虛擬化技術可以很好地進行協(xié)作。隨著在企業(yè)中提供的服務規(guī)模和數(shù)量的增大,以及英特爾、微軟等國際知名軟硬件企業(yè)對該領域研發(fā)和競爭的不斷深入,虛擬化必將成為SOA未來發(fā)展的一個重要方向。