SOA Agents──當網(wǎng)格遇上SOA
最近幾年,SOA獲得了巨大進步。它由軟件愛好者的實驗性實現(xiàn)走向了今天IT的主流。這一進步背后的一個主要驅動力就是對服務接口背后現(xiàn)有企業(yè)IT 資產(chǎn)的合理運用和虛擬化能力,而這一能力又是與企業(yè)業(yè)務模型和當下及今后的企業(yè)流程高度對齊的。此外,通過引入企業(yè)服務總線實現(xiàn)了SOA的進步,而它正是一個虛擬化服務基礎設施的模式。通過利用仲裁、服務位置解析、服務水平協(xié)議(SLA)支持等,ESB允許軟件架構師顯著地簡化服務基礎設施。整個SOA中所缺失的***一個環(huán)節(jié)就是企業(yè)數(shù)據(jù)訪問。這一問題的一個可行解決方案就是引入企業(yè)數(shù)據(jù)總線(EDB 一個對企業(yè)數(shù)據(jù)進行普適訪問的模式)。
EDB的一個可行實現(xiàn)是使用數(shù)據(jù)網(wǎng)格,如Websphere eXtreme Scale,Oracle Coherence數(shù)據(jù)網(wǎng)格,GigaSpaces數(shù)據(jù)與應用網(wǎng)格或者NCache分布式數(shù)據(jù)網(wǎng)格。
數(shù)據(jù)網(wǎng)格是為構建某類解決方案而設計的軟件系統(tǒng),其適用的解決方案范圍從簡單的內存數(shù)據(jù)庫到分布于規(guī)模達數(shù)千臺服務器之上的強大分布式一致緩存。典型的數(shù)據(jù)網(wǎng)格實現(xiàn)會將數(shù)據(jù)分割到跨機器存儲于內存里的不重合的塊中。其結果是,通過標準的流程可達到極高水平的性能和伸縮性。性能是通過并行執(zhí)行更新和查詢(數(shù)據(jù)的不同部分可以在不同的機器上同時訪問)實現(xiàn)的,而伸縮性和容錯性則通過在多臺機器上復制同一數(shù)據(jù)得以實現(xiàn)。
盡管基于網(wǎng)格的EDB簡化了對企業(yè)數(shù)據(jù)的高速訪問,它仍然有可能要求EDB和服務實現(xiàn)之間進行大量的數(shù)據(jù)交換。服務必須加載所有所需數(shù)據(jù),執(zhí)行其處理,然后將結果存儲回網(wǎng)格中去。
一個更優(yōu)的架構是讓服務執(zhí)行點離企業(yè)數(shù)據(jù)更近;將服務實現(xiàn)為Agent(代理)的協(xié)調人[7],而這些Agent則在包含企業(yè)數(shù)據(jù)的內存空間里執(zhí)行(圖3)。在這個例子中,服務實現(xiàn)接收一個請求并啟動一個或多個Agent,它們在網(wǎng)格節(jié)點的上下文里執(zhí)行,將結果返回給服務實現(xiàn),服務實現(xiàn)再組合 Agent的執(zhí)行結果并將服務執(zhí)行結果返回。
Agent的概念可以回溯到分布式人工智能(DAI)的早期研究,當時引入了這一自完備、可交互、并發(fā)執(zhí)行的對象概念。這一對象有某些被封裝好的內 部狀態(tài)并能對其它類似對象發(fā)來的消息作出響應。根據(jù)文獻[7],“一個Agent是一個能精確行動以代表用戶完成任務的軟件組件以及/或硬件?!?/P>
EDB的引入允許架構師進一步簡化SOA實現(xiàn),這是通過在服務實現(xiàn)和企業(yè)數(shù)據(jù)之間引入“標準化的”訪問實現(xiàn)的。它同時簡化了服務調用和執(zhí)行模型,還為服務提供了進一步的解耦。使用網(wǎng)格作為EDB實現(xiàn)對EDB的可伸縮性和高可用性提供了支持。***,使用直接在網(wǎng)格內部執(zhí)行的服務Agent更進一步提升了可伸縮性和性能。本文所描述的網(wǎng)格的高級架構和編程模型,為這一實現(xiàn)提供了一個簡單卻健壯的基礎。
【編輯推薦】
























