《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計應(yīng)用 > 基于多Agent的云服務(wù)中間件的研究與應(yīng)用
基于多Agent的云服務(wù)中間件的研究與應(yīng)用
來源:微型機與應(yīng)用2013年第20期
陸雄斌,郭朝珍
(福州大學(xué) 數(shù)學(xué)與計算機科學(xué)學(xué)院,福建 福州350108)
摘要: 在Web應(yīng)用日益普及的今天,,Web服務(wù)器承擔(dān)的任務(wù)越來越繁重,,特別是進行大數(shù)據(jù)量的計算時,服務(wù)器的硬件資源成了計算效率的瓶頸。為了解決這一問題,結(jié)合云計算和中間件的技術(shù)特點,提出了一種基于多Agent的云服務(wù)中間件的體系架構(gòu),,該框架分為用戶接口層、SOA層和資源管理層3個層次,,內(nèi)部采用多Agent技術(shù),。節(jié)點間通過ACL消息進行通信,負(fù)載均衡采用靜態(tài)計算能力與動態(tài)負(fù)載相結(jié)合,,內(nèi)置的日志服務(wù)和容錯服務(wù)保障系統(tǒng)穩(wěn)定運行,。將此框架應(yīng)用到實際Web應(yīng)用中可以大大提高Web服務(wù)器的計算效率。
Abstract:
Key words :

摘  要: 在Web應(yīng)用日益普及的今天,,Web服務(wù)器承擔(dān)的任務(wù)越來越繁重,,特別是進行大數(shù)據(jù)量的計算時,服務(wù)器的硬件資源成了計算效率的瓶頸,。為了解決這一問題,,結(jié)合云計算和中間件的技術(shù)特點,提出了一種基于多Agent的云服務(wù)中間件的體系架構(gòu),,該框架分為用戶接口層,、SOA層和資源管理層3個層次,內(nèi)部采用多Agent技術(shù),。節(jié)點間通過ACL消息進行通信,,負(fù)載均衡采用靜態(tài)計算能力與動態(tài)負(fù)載相結(jié)合,內(nèi)置的日志服務(wù)和容錯服務(wù)保障系統(tǒng)穩(wěn)定運行,。將此框架應(yīng)用到實際Web應(yīng)用中可以大大提高Web服務(wù)器的計算效率,。
關(guān)鍵詞: 云服務(wù);中間件,;多Agent系統(tǒng)分布式計算;負(fù)載平衡


    隨著當(dāng)今網(wǎng)絡(luò)體系和Web技術(shù)的發(fā)展,,Web應(yīng)用被廣泛使用,,Web服務(wù)器所承載的負(fù)荷越來越大,使得對于大數(shù)據(jù)量的計算不能及時響應(yīng),。因此,,需要有一種技術(shù),不僅能將大任務(wù)分配給多臺機器共同計算,,分擔(dān)服務(wù)器的工作,,提高計算效率和穩(wěn)定性,還能利用閑置計算資源,,避免資源浪費,,這就是云計算。
    云計算(Cloud Computing)[1]是一種基于互聯(lián)網(wǎng)的計算方式,,通過這種方式,,共享的軟硬件資源和信息可以按需提供給計算機和其他設(shè)備。
    中間件(Middleware)[2]是一種獨立的系統(tǒng)軟件或服務(wù)程序,,分布式應(yīng)用軟件借助這種軟件在不同的技術(shù)之間共享資源,。
    Agent是一種在某個環(huán)境中自主行動以實現(xiàn)其設(shè)計目標(biāo)的智能化軟件實體[3-4]。其應(yīng)用主要是以一種松散耦合的Agent網(wǎng)絡(luò),,即MAS出現(xiàn),,在多個Agent之間以結(jié)構(gòu)化的ACL[5](Agent Communication Language)進行交互、協(xié)作,以完成某一項任務(wù),。
    臺風(fēng)預(yù)報系統(tǒng)是一個典型的Web應(yīng)用,,它是一個會商式的群決策支持系統(tǒng)(GDSS)[6-7],其中的專家預(yù)報路徑就涉及了大數(shù)據(jù)量計算,,本文將云服務(wù)中間件的技術(shù)應(yīng)用到臺風(fēng)預(yù)報系統(tǒng)上,,以提高相似路徑計算的效率。
1 云服務(wù)中間件的體系架構(gòu)
1.1 云服務(wù)中間件的工作原理

    云服務(wù)中間件的設(shè)計可以將大任務(wù)分解成若干小任務(wù),,再通過分配給閑置計算節(jié)點來分擔(dān)服務(wù)器的工作,,計算結(jié)果由所有計算節(jié)點產(chǎn)生的子結(jié)果匯集而成。云服務(wù)中間件的工作原理如圖1所示,。

    用戶接口層定義了外部程序調(diào)用云服務(wù)所需的接口,,請求端的Agent將計算任務(wù)通過接口發(fā)給云服務(wù)中間件。
    SOA層管理著云服務(wù)中間件結(jié)構(gòu)所需的基本服務(wù),,包括主控服務(wù),、計算服務(wù)、日志服務(wù)和容錯服務(wù),。目錄服務(wù)是SOA層各類服務(wù)的目錄,,提供查找已注冊在目錄上的服務(wù),并調(diào)用它。計算任務(wù)通過用戶接口傳進SOA層后,,被發(fā)送到目錄下的主控服務(wù)上,。
    資源管理層是操作計算機資源的各種Agent組成,每一種Agent負(fù)責(zé)對應(yīng)的工作,。在主控服務(wù)下有一個主控Agent,,帶有一個負(fù)載均衡器。計算服務(wù)下有多個計算Agent,,日志服務(wù)下有多個日志Agent,,有一個日志收集器和多個日志記錄器。容錯服務(wù)下有多個容錯Agent,。主控Agent對應(yīng)一個日志收集器和一個容錯Agent,,每個計算Agent對應(yīng)一個日志記錄器和一個容錯Agent。
    主控Agent是云服務(wù)中間件的核心Agent,,它管理著所有計算Agent節(jié)點,,負(fù)責(zé)接收請求端發(fā)來的計算任務(wù),根據(jù)業(yè)務(wù)邏輯對任務(wù)進行分解,,并通過負(fù)載均衡器將子任務(wù)分配給輕載的計算節(jié)點,。主控Agent所帶的日志收集器Agent負(fù)責(zé)收集日志記錄器Agent發(fā)送的日志消息,記錄在平臺和日志文件中,。計算Agent在云服務(wù)中間件起著重要的作用,,它是計算的核心,接收來自主控Agent發(fā)來的子任務(wù),,計算并返回部分結(jié)果,。每個計算Agent都帶有一個日志記錄器Agent,用以記錄Agent工作的日志并轉(zhuǎn)發(fā)給日志收集器Agent,。同時,,主控Agent和計算Agent都帶有一個容錯Agent,容錯Agent負(fù)責(zé)處理Agent異常并恢復(fù)出錯的Agent,。
1.3 云服務(wù)中間件的消息機制
    云服務(wù)中間件是通過Agent間的發(fā)送接收消息來完成內(nèi)部通信的,,ACL消息是Agent的通信語言,兩個重要的屬性分別是對象內(nèi)容和接收者,,對象內(nèi)容是指發(fā)送消息的對象,,可以是一個java類對象,接收者是接收Agent的ID,。通信過程是:發(fā)送Agent將消息對象封裝到ACL消息中,,通過send方法發(fā)送消息給指定的接收Agent;接收Agent通過receive方法接收ACL消息并解開消息對象,,讀取消息內(nèi)容,。通信過程如圖3所示,。

    消息對象是存儲消息內(nèi)容的對象,云服務(wù)中間件根據(jù)不同的需求定義不同的消息格式,,它們共同繼承自一個消息基類,,消息基類管理所有消息的類型。云服務(wù)中間件涉及的消息對象有注冊相關(guān)消息,、業(yè)務(wù)相關(guān)消息、登錄相關(guān)消息,、負(fù)載相關(guān)消息和日志相關(guān)消息,。
2 負(fù)載均衡策略
    負(fù)載平衡[8]是分布式系統(tǒng)的資源管理模塊,它的主要功能是合理和透明地在處理器之間分配系統(tǒng)負(fù)載,,以達到系統(tǒng)的綜合性能最優(yōu),。負(fù)載均衡器設(shè)計的目的是在眾多閑置的計算節(jié)點中選擇閑置計算能力最大的作為任務(wù)分配的節(jié)點,以達到計算效率最優(yōu),。
    本文所采用的負(fù)載平衡是結(jié)合靜態(tài)計算能力和動態(tài)負(fù)載加權(quán)組成,,同時考慮了節(jié)點的靜態(tài)能力和動態(tài)負(fù)載,兩者加權(quán)得出閑置計算能力,,使得分配任務(wù)更合理,,充分利用了計算資源。設(shè)計算節(jié)點為C,,閑置計算能力的計算方法如式(1)所示:
    Abilityfree(C)=Abilitytotal(C)×(1-LoadValue(C)/100)(1)
其中Abilitytotal(C)為計算節(jié)點C的全部計算能力,,即靜態(tài)計算能力。LoadValue(C)為計算節(jié)點C的負(fù)載值,,即動態(tài)負(fù)載,,單位是百分比。

 


    (1)專家編輯方案,,系統(tǒng)將預(yù)測路徑通過云服務(wù)模式交給請求Agent,;
    (2)請求Agent將預(yù)報路徑封裝成預(yù)報消息,發(fā)送給云服務(wù)中間件的主控Agent,;
    (3)主控Agent接收到預(yù)報消息后,,將任務(wù)分解成若干子任務(wù),分發(fā)給計算Agent,;
    (4)計算Agent計算最相似歷史臺風(fēng)路徑,,返回結(jié)果給主控Agent;
    (5)主控Agent匯總結(jié)果,,將結(jié)果封裝成結(jié)果消息發(fā)送回請求Agent,;
    (6)請求Agent解開結(jié)果消息,把最相似路徑在地圖上顯示給專家,。
    期間,,請求Agent,、計算Agent將工作日志發(fā)送給日志記錄Agent,主控Agent將工作日志發(fā)送給日志收集Agent,,日志記錄Agent將接收到的日志轉(zhuǎn)發(fā)給日志收集Agent,。容錯Agent負(fù)責(zé)對主控Agent和計算Agent集群中的每個計算Agent進行監(jiān)控。
4 實驗結(jié)果及分析
4.1 實驗準(zhǔn)備

    將云服務(wù)中間件應(yīng)用到臺風(fēng)預(yù)報系統(tǒng)中,,分別對單機和云服務(wù)兩個模式進行實驗,,測試計算時間。實驗所用到的計算機集群有:1臺主控服務(wù)器,,1臺Web服務(wù)器,,若干臺計算服務(wù)器和若干臺數(shù)據(jù)庫服務(wù)器。
    實驗數(shù)據(jù)有多組,,每組均來自隨機產(chǎn)生的臺風(fēng)路徑,,每個臺風(fēng)的路徑點數(shù)為66個,對不同數(shù)量臺風(fēng)的臺風(fēng)預(yù)測計算時間,,對單機與云服務(wù)進行效率比較,。
4.2 實驗結(jié)果
    單機模式與云服務(wù)模式的計算的平均時間如表1所示。

    從表中可以看出,,云服務(wù)的整體計算性能明顯高于單機,,當(dāng)臺風(fēng)個數(shù)為1 200時,云服務(wù)計算時間僅為單機的31.84%,,速度提高了214.11%,, 說明云服務(wù)中間件應(yīng)用到臺風(fēng)預(yù)報系統(tǒng)中可以大大提高Web服務(wù)器的計算效率。
4.3 結(jié)果分析
    實驗結(jié)果表明,,單機與云服務(wù)下計算時間隨臺風(fēng)個數(shù)成正比,,兩者的計算時間都是線性增加的。圖5為單機與云服務(wù)計算時間對比圖,。從圖5可以看出,,單機下的計算時間趨勢線斜率高于云服務(wù)的計算時間趨勢線,計算時間差隨著臺風(fēng)個數(shù)的增加而拉大,,說明基于多Agent的云服務(wù)中間件可以大大縮短Web服務(wù)器的計算時間,,提高計算效率。

    本文分析了Web應(yīng)用的現(xiàn)狀和Web服務(wù)器的瓶頸問題,,結(jié)合云計算和中間件技術(shù),,提出了一種基于多Agent的云服務(wù)中間件的體系架構(gòu)。介紹了云服務(wù)中間件的工作原理,,即將復(fù)雜的任務(wù)分解成小任務(wù),,再將結(jié)果匯總。從層次上看,,云服務(wù)中間件分為3個層次,,分別是用戶接口層,、SOA層和資源管理層。內(nèi)部的Agent使用ACL消息進行通信,,介紹了各類消息,。負(fù)載均衡采用靜態(tài)計算能力與動態(tài)負(fù)載相結(jié)合,保證了整體性能,。
  本文將設(shè)計的云服務(wù)中間件框架應(yīng)用到一個典型的Web應(yīng)用臺風(fēng)預(yù)報系統(tǒng)中,,以實驗數(shù)據(jù)進行單機與云服務(wù)模式的計算時間對比,可以看到云服務(wù)中間件對提高Web服務(wù)器計算時間的作用,。云服務(wù)中間件的研究是未來Web應(yīng)用的一個很有價值的應(yīng)用前景,,對推動云計算的發(fā)展有著至關(guān)重要的作用。
參考文獻
[1] 趙立新.云計算:信息時代的新主宰[J].科技創(chuàng)新導(dǎo)報,,2010(12):213-214.
[2] 吳禮裕,盧珊.中間件的研究綜述[J].科技與生活,,2009(21):24-24,,67.
[3] 賴如潔,曹健,,李明祿,,等.服務(wù)Agent的設(shè)計與實現(xiàn)[J].計算機工程與科學(xué),2010,,32(5):113-117.
[4] WILDE G J.The theory of risk homeostasis:implications for  safety and healt[J].Risk Analysis,,1982,2(4):209-225.
[5] WILDE G J.Social interaction patterns in driver behavior:an introductory review[J].Human Factors,,1976,,18(5):447-492.
[6] 陳偉江,郭朝珍.分布式ETL中協(xié)同機制的研究與設(shè)計[J].通信學(xué)報,,2006,,27(11):177-182.
[7] 閆鈞華,張煥春,,經(jīng)亞枝.基于Multi2agent的分布式系統(tǒng)負(fù)載平衡[J].華南理工大學(xué)學(xué)報:自然科學(xué)版,,2004,32(12):74-79.
[8] 陳濤,,陳啟買.分布式計算機系統(tǒng)負(fù)載平衡研究[J].計算機技術(shù)與發(fā)展,,2006,16 (5):33-35.

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。