何勰緋 萬加富
摘 要: 傳統(tǒng)DBA數(shù)據(jù)庫控制方法對系統(tǒng)參數(shù)進行設(shè)置和配置時,存在控制效率低以及能耗高的問題。提出基于JADE的數(shù)據(jù)庫自適應(yīng)負載控制方法,設(shè)計以JADE平臺為基礎(chǔ)的數(shù)據(jù)庫自適應(yīng)負載控制系統(tǒng)。系統(tǒng)由搜索和查詢兩部分構(gòu)成,通過Agent之間相互協(xié)作來完成總體系統(tǒng)的負載控制。通過數(shù)據(jù)庫爬蟲Agent在數(shù)據(jù)庫中搜集信息,形成原始數(shù)據(jù)庫;應(yīng)用KNN算法對原始數(shù)據(jù)庫進行分類,實現(xiàn)數(shù)據(jù)庫負載控制。查詢部分通過JSP頁面中的用戶接口Agent實現(xiàn)與用戶的交互;采用JDBC橋技術(shù)實現(xiàn)查詢Agent對數(shù)據(jù)庫的訪問。實驗結(jié)果表明,采用所提方法控制數(shù)據(jù)庫負載,可提高數(shù)據(jù)庫的實現(xiàn)價值、吞吐率以及資源利用率。
關(guān)鍵詞: JADE; 數(shù)據(jù)庫; 自適應(yīng); 負載控制; Agent
中圖分類號: TN911?34; TP311.13 文獻標(biāo)識碼: A 文章編號: 1004?373X(2017)16?0050?03
Abstract: The traditional DBA database control method exists low efficiency and high energy consumption for system parameter setting and allocation, so the JADE?based adaptive load control method of database is proposed to design the database adaptive load control system based on JADE platform. The system is composed of search and query. The load control of the overall system is completed by the mutual collaboration between Agents. The information is collected in the database by Agent, and the original database is formed. KNN algorithm is used to classify the original database to realize the load control of the database. The query part realizes the interaction with the users through the user interface Agent in the JSP page, and uses the JDBC bridge technology to query the Agent access to the database. The experimental results show that the proposed method for the database load control can improve the value, throughput and resource utilization of database.
Keywords: JADE; database; adaptive load control; Agent
由于當(dāng)前科學(xué)技術(shù)水平不斷提升,信息技術(shù)被作為生產(chǎn)力衡量的標(biāo)準(zhǔn),信息數(shù)據(jù)量呈幾何性的增長。應(yīng)用數(shù)據(jù)庫憑借其對海量數(shù)據(jù)的管理和存儲優(yōu)勢從眾多數(shù)據(jù)庫系統(tǒng)中脫穎而出,成為時下的新寵。傳統(tǒng)DBA數(shù)據(jù)庫控制方法對系統(tǒng)參數(shù)進行設(shè)置和配置時,無法適應(yīng)大量、復(fù)雜多變的數(shù)據(jù)庫負載情況,存在控制效率低以及能耗高的問題。本文提出基于JADE的數(shù)據(jù)庫自適應(yīng)負載控制方法,增強系統(tǒng)穩(wěn)定性,提高系統(tǒng)自身使用價值。
1 數(shù)據(jù)庫自適應(yīng)負載控制系統(tǒng)設(shè)計
1.1 系統(tǒng)體系結(jié)構(gòu)設(shè)計
通過圖1可知,塑造的基于JADE的數(shù)據(jù)庫自適應(yīng)負載控制系統(tǒng)由搜索和查詢兩大相對獨立的部分組成,這兩大部分通過分類數(shù)據(jù)庫相連接[1]。分類數(shù)據(jù)庫既可作為搜索部分的運行結(jié)果,又可作為查詢部分的數(shù)據(jù)源。搜索部分包括數(shù)據(jù)庫爬蟲Agent、自動分類Agent和原始數(shù)據(jù)庫[2];查詢部分包括用戶界面、用戶接口Agent和查詢Agent。
搜索部分可完成數(shù)據(jù)庫信息的搜索與集成,對數(shù)據(jù)庫信息進行歸類,等待用戶在數(shù)據(jù)庫中查詢。搜索部分的工作流程為:
(1) 服務(wù)器啟動網(wǎng)絡(luò)Agent,采用初始URL對爬蟲進行發(fā)送;
(2) 爬蟲Agent對從網(wǎng)絡(luò)中采集的初始URL進行分析篩選并將結(jié)果寫入原始數(shù)據(jù)隊列中[3];
(3) 數(shù)據(jù)庫頁面分類Agent對爬蟲Agent抓取的URL做進一步分類,通過分析數(shù)據(jù)屬性,篩選出數(shù)據(jù)大小較符合的負載命令數(shù)據(jù)庫優(yōu)先執(zhí)行,并反復(fù)執(zhí)行該命令,直到達到滿足條件時終止[4],信息分類結(jié)果將分別存儲在各類數(shù)據(jù)庫中。
采用JDBC橋技術(shù)實現(xiàn)查詢Agent對數(shù)據(jù)庫訪問,查詢部分工作流程為:
(1) 用戶通過JSP頁面中的用戶接口Agent獲取數(shù)據(jù)庫服務(wù)器中的關(guān)鍵詞;
(2) 用戶接口Agent請求數(shù)據(jù)庫內(nèi)部服務(wù)器對其獲取關(guān)鍵詞進行查詢;
(3) 數(shù)據(jù)庫內(nèi)部相應(yīng)的查詢Agent通過對分類數(shù)據(jù)庫的訪問[5],并將查詢結(jié)果返回到用戶接口Agent中,通過JSP頁面呈現(xiàn)給用戶。
1.2 系統(tǒng)Agent設(shè)計
如圖2所示,Agent模塊由用戶接口Agent、查詢Agent、數(shù)據(jù)庫爬蟲Agent及數(shù)據(jù)庫頁面分類Agent組成。這些Agent是數(shù)據(jù)庫信息自適應(yīng)負載控制的功能單元,它們據(jù)不同需求擁有明確的分工,基于外界指令形成不同的行為,協(xié)作完成數(shù)據(jù)庫信息自適應(yīng)負載控制。endprint
用戶接口Agent負責(zé)用戶在用戶界面Agent輸入請求并接收到查詢結(jié)果。查詢Agent負責(zé)在數(shù)據(jù)庫中查詢從用戶Agent接收到的關(guān)鍵詞,將查詢結(jié)果反饋到用戶接口Agent。該Agent與用戶接口Agent和查詢Agent沒有任何聯(lián)系,所以并不與二者進行通信[6]。數(shù)據(jù)庫頁面分類Agent,運用KNN算法對數(shù)據(jù)庫爬蟲Agent提取到初步數(shù)據(jù)庫進行分析并分類,將各類鏈接進行整理,分別劃入相應(yīng)數(shù)據(jù)庫。
管理Agent對數(shù)據(jù)庫爬蟲Agent及數(shù)據(jù)庫頁面分類Agent進行控制[7]。
2 自適應(yīng)控制系統(tǒng)源代碼的實現(xiàn)
數(shù)據(jù)庫頁面分類Agent源代碼實現(xiàn)步驟:
import 有價值的包;
public class DivisionAgentcomplete Agent{
public valueless setup()
try{
//對數(shù)據(jù)庫進行訪問
}
Obtain(Not consider d){
//異常處理
}
get address;
}
添加動作:
class Control headerDivisionmovementr extendOne?off action
public void movement()
try // 提取URLList中的關(guān)鍵詞
while(urlRs.nex()){
//通過KNN算法在各數(shù)據(jù)表內(nèi)錄入相應(yīng)的URL
//自定義在URL提取的關(guān)鍵詞
//RetrievalKey(Character setAddr,Character setkeyWords)
}
Obtain(Not consider d){
//異常處理
myAgent.dofilter();
Public kicongRetrievalKey(Character set addr,Character set keyWords)
//在url數(shù)據(jù)列表中提取addr的keywords
}
以上是一個使用了KNN算法的數(shù)據(jù)庫頁面分類Agent,具體過程為,先建造一個擁有各種分類數(shù)據(jù)表的數(shù)據(jù)庫。通過數(shù)據(jù)庫頁面分類Agent對數(shù)據(jù)庫進行訪問,提取出關(guān)鍵詞與該頁面進行匹配,匹配成功的就在該分類變量上加權(quán)值[8]。經(jīng)過反復(fù)訪問、匹配,再將最終得到幾個權(quán)值減去一個閾值并取最大值的分類,當(dāng)這個結(jié)果大于零時,該頁面可歸納到該分類當(dāng)中[9],相反的就要歸納到其他分類中。通過分析數(shù)據(jù)屬性,篩選出數(shù)據(jù)大小較符合負載命令數(shù)據(jù)庫優(yōu)先執(zhí)行。
3 實驗分析
3.1 實驗數(shù)據(jù)
實驗對某網(wǎng)站應(yīng)用數(shù)據(jù)庫中20個控制間隔進行測試,各間隔包括20個負載請求,各負載請求均包含不同特征屬性,負載控制特征參數(shù)為響應(yīng)時間、CPU消耗及內(nèi)存消耗。這些負載特征用文本的形式記錄于文本文件中。采用本文提出的基于JADE自適應(yīng)負載控制方法和傳統(tǒng)DBA負載控制方法,對這些負載特征進行控制,分析兩種控制方法負載控制性能。
實驗以20條數(shù)據(jù)為一個控制間隔,隨機抽取300條數(shù)據(jù),分為20組進行實驗。表1為一個控制間隔內(nèi)5個負載的特征參數(shù)。
3.2 實驗結(jié)果分析
基于上述描述的負載特征數(shù)據(jù),實驗檢測本文方法和傳統(tǒng)DBA方法的負載實現(xiàn)價值、平均響應(yīng)時間、CPU消耗、內(nèi)存消耗以及吞吐率性能。設(shè)置實驗網(wǎng)站應(yīng)用數(shù)據(jù)庫的CPU空閑值為60%、內(nèi)存空閑是50 KB、各控制間隔遺傳代數(shù)為30。
通過圖3可知,在傳統(tǒng)DBA數(shù)據(jù)庫控制方法下,負載平均響應(yīng)時間在1~14 s之間,處理響應(yīng)并不穩(wěn)定,峰值較高。經(jīng)過本文負載控制方法后,負載平均響應(yīng)時間在2~6 s之間波動,在處理數(shù)據(jù)穩(wěn)定情況下,平均響應(yīng)時間明顯縮短。在數(shù)據(jù)庫資源過載情況下,通過本文負載控制方法的控制下,應(yīng)用數(shù)據(jù)庫系統(tǒng)平均響應(yīng)時間較控制前明顯縮短,大幅度提高了數(shù)據(jù)庫處理效率。
4 結(jié) 論
本文提出了基于JADE的數(shù)據(jù)庫自適應(yīng)負載控制方法。實驗結(jié)果表明,采用所提方法控制數(shù)據(jù)庫負載,可提高數(shù)據(jù)庫的實現(xiàn)價值、吞吐率以及資源利用率。
參考文獻
[1] 崔建群,江波,吳黎兵.基于移動應(yīng)用層組播終端主動反饋的自適應(yīng)負載均衡機制研究[J].計算機科學(xué),2015,42(4):40?43.
[2] 郭晴,楊海霞,劉永泰.云計算環(huán)境下的復(fù)雜數(shù)據(jù)庫并行調(diào)度模型仿真[J].計算機仿真,2015,32(6):360?363.
[3] 郭鑫,任海鵬.三相PWM變換器的負載自適應(yīng)控制[J].電子學(xué)報,2015,43(10):2088?2094.
[4] 任俠.基于動態(tài)自適應(yīng)負載均衡的服務(wù)器集群優(yōu)化策略[J].工業(yè)控制計算機,2015,28(12):38?39.
[5] 唐亞,王振友.基于JADE的自動聚類算法[J].計算機系統(tǒng)應(yīng)用,2016,25(9):183?187.
[6] 楊芳,郭宏剛.網(wǎng)絡(luò)入侵反追蹤節(jié)點最優(yōu)路徑推演平臺的設(shè)計與實現(xiàn)[J].現(xiàn)代電子技術(shù),2016,39(22):14?17.
[7] 潘甦,張磊,劉勝美.基于未來負載預(yù)測的無線異構(gòu)網(wǎng)絡(luò)自適應(yīng)負載均衡算法[J].系統(tǒng)工程與電子技術(shù),2015,37(6):1384?1390.
[8] 茹心芹,韋徵,王偉,等.微網(wǎng)逆變器不平衡負載控制技術(shù)研究[J].電力電子技術(shù),2016,50(7):40?43.
[9] 薛忠斌,周烜,張延松,等.內(nèi)存列存儲數(shù)據(jù)庫中優(yōu)化的混合自適應(yīng)索引[J].計算機科學(xué),2015,42(11):28?31.endprint