王茂光,王家瑞
(中央財經(jīng)大學(xué)信息學(xué)院,北京100081)
基于Agent的自主構(gòu)件模型設(shè)計與評估
王茂光,王家瑞
(中央財經(jīng)大學(xué)信息學(xué)院,北京100081)
為適應(yīng)復(fù)雜環(huán)境和業(yè)務(wù)需求的變化,自適應(yīng)軟件開發(fā)要求為系統(tǒng)及其構(gòu)成成分提供新的抽象和建模手段。自主構(gòu)件能夠感知并依據(jù)環(huán)境的變化自動地做出決策。采用自主構(gòu)件開發(fā)復(fù)雜軟件系統(tǒng)的主要目的是有效降低軟件開發(fā)和維護(hù)的復(fù)雜性。在分析自適應(yīng)軟件實(shí)體功能和特征的基礎(chǔ)上,提出一種基于智能體(Agent)的自主構(gòu)件模型,該自主構(gòu)件模型能動態(tài)感知環(huán)境的變化,合理封裝自適應(yīng)邏輯,依據(jù)策略規(guī)則進(jìn)行決策,并根據(jù)目標(biāo)導(dǎo)向,自動規(guī)劃執(zhí)行行為的序列。評估結(jié)果表明,該模型為建模與開發(fā)復(fù)雜自適應(yīng)化軟件提供了有效的底層支持。
智能體;自主構(gòu)件;編程模型;自主度;評估
隨著網(wǎng)絡(luò)化軟件系統(tǒng)所處的環(huán)境越來越開放、動態(tài)、難控,構(gòu)成系統(tǒng)的軟件實(shí)體也越來越異構(gòu)、智能和自主。同時,系統(tǒng)的復(fù)雜性也不斷提高,這使得系統(tǒng)的維護(hù)與演化的成本不斷增加。現(xiàn)有的軟件開發(fā)方法并不能很好地滿足此類軟件的設(shè)計需求,主要問題是網(wǎng)絡(luò)環(huán)境的不穩(wěn)定性、開放性和動態(tài)性對軟件實(shí)體自適應(yīng)環(huán)境的變化提出了新的技術(shù)挑戰(zhàn)。這促使研究人員對在復(fù)雜網(wǎng)絡(luò)環(huán)境下構(gòu)造自適應(yīng)軟件實(shí)體及系統(tǒng)進(jìn)行更深入的研究,有效降低系統(tǒng)的復(fù)雜性,增強(qiáng)系統(tǒng)自管理的能力[1-2]。
把能夠適應(yīng)環(huán)境變化,且自主進(jìn)行決策的構(gòu)件稱為自主構(gòu)件[3]。采用自主構(gòu)件來開發(fā)軟件系統(tǒng)的主要目的是使得軟件在運(yùn)行環(huán)境或業(yè)務(wù)需求發(fā)生變化時能主動適應(yīng)環(huán)境的變化。一方面,從構(gòu)件角度來看,自主構(gòu)件與普通構(gòu)件相同,它具有相對獨(dú)立的功能,能夠被復(fù)用和組裝,成為系統(tǒng)的有機(jī)構(gòu)成成分。另一方面,從自主性的角度來看,自主構(gòu)件行為受到自身策略的驅(qū)動向外提供服務(wù),并且可以在運(yùn)行時刻收集系統(tǒng)的信息,感知變化從而做出決策。
本文設(shè)計的自主構(gòu)件模型從兩方面對構(gòu)件的自主行為提供了支持:(1)構(gòu)件模型提供了較強(qiáng)的自主行為描述能力,支持應(yīng)用開發(fā)人員為構(gòu)件設(shè)計特定于應(yīng)用的自主行為;(2)對于復(fù)雜計算環(huán)境帶來的具有一定普遍性的自適應(yīng)需求,自主構(gòu)件模型提供了自適應(yīng)策略驅(qū)動,將帶有普遍性的自適應(yīng)需求以規(guī)則的形式存儲到策略庫中。
自適應(yīng)系統(tǒng)的目標(biāo)體現(xiàn)為系統(tǒng)元素的自我管理以及它們之間的交互,因此,相關(guān)領(lǐng)域的研究人員十分關(guān)注構(gòu)件的適應(yīng)性問題[3]。
典型的 Fractal是一個層次化、動態(tài)的構(gòu)件框架[4]。Fractal支持復(fù)合構(gòu)件的概念,一個復(fù)合構(gòu)件由多個原子構(gòu)件或復(fù)合構(gòu)件組成,并且可以在運(yùn)行時動態(tài)修改Fractal應(yīng)用系統(tǒng)的軟件體系結(jié)構(gòu)。文獻(xiàn)[5]介紹了一種對Fractal構(gòu)件模型進(jìn)行擴(kuò)展以支持自適應(yīng)行為的方法,其所做的擴(kuò)展主要包括:提供一個收集環(huán)境上下文信息的服務(wù)以獲取運(yùn)行時刻信息,基于“事件-條件-動作”的模式定義自適應(yīng)策略。
而Accord[6]是一種基于高層規(guī)則進(jìn)行組織和協(xié)調(diào)的構(gòu)件模型,主要由規(guī)約計算邏輯的功能端口、協(xié)調(diào)邏輯的控制端口和對自適應(yīng)規(guī)則進(jìn)行管理的操作端口3個部分構(gòu)成。
K-Component[7-8]提供了一個自適應(yīng)的構(gòu)件編程模型,并基于合作強(qiáng)化學(xué)習(xí)技術(shù)提供了一個協(xié)調(diào)模型,支持在無中心環(huán)境下構(gòu)建自適應(yīng)系統(tǒng)。在 KComponent框架中,封裝自適應(yīng)邏輯的適應(yīng)合約使用特定的描述語言來定義,包含一組聲明、表達(dá)式,以及監(jiān)控操作和適應(yīng)動作。
這些構(gòu)件模型在具體表示上還是有區(qū)別的。在表示構(gòu)件知識的狀態(tài)模型方面,Accord采用的是比較簡單的“屬性-值”對的方式,Fractal則是通過資源本體對原始數(shù)據(jù)進(jìn)行組織。K-Component除了“屬性-值”的方式之外,支持使用馬爾可夫決策過程來組織自身的狀態(tài),這是為了更好支持其自適應(yīng)策略的需要。
在自適應(yīng)策略方面,Fractal和Accord均是采用規(guī)則的方式來描述,這也是絕大多數(shù)自適應(yīng)構(gòu)件模型采取的方式,均支持對規(guī)則的在線修改。KComponent除了規(guī)則外,還可以通過指定參數(shù)的方式支持構(gòu)件執(zhí)行強(qiáng)化學(xué)習(xí)策略,這樣構(gòu)件可以動態(tài)調(diào)整自己的行為。就評估時機(jī)而言,三者對于信息的收集和判斷與計算邏輯都是正交的,即策略的評估與動作執(zhí)行與構(gòu)件提供服務(wù)是異步的,此外也有不少自適應(yīng)構(gòu)件模型的自適應(yīng)策略評估與功能邏輯同步執(zhí)行,如一些基于AOP技術(shù)、在功能請求到來前后收集信息并進(jìn)行自適應(yīng)評估。
現(xiàn)有研究工作中,對于自適應(yīng)行為的支持往往限定于某種特定的決策機(jī)制。例如,Fractal和Accord模型中,自適應(yīng)主要通過一組預(yù)先定義好的策略規(guī)則來描述,這就意味著管理員需要對這個環(huán)境中可能出現(xiàn)的變化,其對應(yīng)的運(yùn)行時刻系統(tǒng)事件,以及相對應(yīng)的解決方案有一個預(yù)先的了解,這一假設(shè)在復(fù)雜網(wǎng)絡(luò)環(huán)境下有時無法成立[9];K-Component模型通過強(qiáng)化學(xué)習(xí)技術(shù)可以在運(yùn)行時刻調(diào)整自身的策略,然而由于缺少對網(wǎng)絡(luò)環(huán)境特征的系統(tǒng)分析與支持,模型往往無法直接應(yīng)用于自適應(yīng)網(wǎng)絡(luò)化軟件的構(gòu)造。
針對新網(wǎng)絡(luò)計算環(huán)境的特點(diǎn),一種應(yīng)對上述技術(shù)挑戰(zhàn)的可行途徑是不再將運(yùn)行系統(tǒng)的構(gòu)成單元視為被動的受管對象,而是將其建模為具有主動能力的軟件實(shí)體。這些實(shí)體能夠通過觀察運(yùn)行時刻信息,主動地對自身實(shí)現(xiàn)進(jìn)行調(diào)整,或是改變與其他實(shí)體的交互;繼而,系統(tǒng)通過這些構(gòu)成單元局部間的相互作用表現(xiàn)出整體性的自適應(yīng)行為。這類具有主動能力的計算實(shí)體,稱為自主構(gòu)件(Autonomous Component,AC)。
自主構(gòu)件是具有自主性的構(gòu)件,能夠感知環(huán)境的變化,并根據(jù)環(huán)境的變化自動地做出決策響應(yīng)環(huán)境的變化[10]。自主構(gòu)件同時具備了構(gòu)件以及 Agent的關(guān)鍵性質(zhì)。自主構(gòu)件從能力要求來看,除了對外提供服務(wù),自主構(gòu)件區(qū)別于傳統(tǒng)構(gòu)件的能力主要有:
(1)功能性:能對外提供服務(wù),可以通過調(diào)用外部構(gòu)件的服務(wù)來實(shí)現(xiàn)自身的功能性需求;并具有質(zhì)量屬性評估的功能。
(2)自決策性:對功能性和非功能性目標(biāo)的實(shí)現(xiàn)和改進(jìn)具有決策能力。
(3)自適應(yīng)性:自主構(gòu)件對于不同應(yīng)用環(huán)境具有適應(yīng)能力,在不同場景下,對外所展現(xiàn)的行為會有所不同。能夠決定如何選擇和使用外部資源(依賴服務(wù)),并規(guī)范依賴服務(wù)的行為。
(4)交互性和協(xié)同性:能參與交互和合作,多個自主構(gòu)件可以協(xié)作完成復(fù)雜的任務(wù)。
自主構(gòu)件要能夠感知環(huán)境,根據(jù)需要動態(tài)監(jiān)控環(huán)境的變化,分析環(huán)境的動態(tài)變化,通過自適應(yīng)策略驅(qū)動自主構(gòu)件作出決策,并執(zhí)行自身的行為,必要時作用于環(huán)境[11]。
從功能上分析,自主構(gòu)件通過感知器感知環(huán)境在運(yùn)行時刻獲取所需要的信息,基于給定的自適應(yīng)策略作出決策,確定需執(zhí)行的調(diào)整行為,最后通過效應(yīng)器對系統(tǒng)中的受控資源進(jìn)行管理,其核心功能是自適應(yīng)決策。
自主構(gòu)件的功能模塊構(gòu)成一個執(zhí)行循環(huán):監(jiān)控→分析→決策→執(zhí)行。監(jiān)控部分負(fù)責(zé)監(jiān)控環(huán)境的變化;分析部分對當(dāng)前環(huán)境進(jìn)行分析,建立決策模型,并使得自主構(gòu)件可以對環(huán)境進(jìn)行學(xué)習(xí),幫助自主構(gòu)件預(yù)測未來;決策部分通過決策規(guī)劃實(shí)現(xiàn)目標(biāo)的行為;執(zhí)行部分執(zhí)行規(guī)劃得到的行為序列,并對執(zhí)行過程控制管理。以上4個部分使用的數(shù)據(jù)作為共享的知識存儲在知識庫中,共享的知識包括網(wǎng)絡(luò)拓?fù)湫畔ⅰ⑾到y(tǒng)日志、策略庫等。自主構(gòu)件通過監(jiān)控→分析→決策→執(zhí)行來動態(tài)的監(jiān)控環(huán)境變化并做出實(shí)時響應(yīng)。
由于自主構(gòu)件類似于Agent具有自主、目標(biāo)驅(qū)動等特點(diǎn),因此可以把自主構(gòu)件看作具有特殊功能具有自管理、自決策特性的Agent[11]。但面臨的問題是,一方面,當(dāng)前對Agent開發(fā)和運(yùn)行平臺的規(guī)范進(jìn)行支持的實(shí)現(xiàn)提供商還是較少;另一方面,網(wǎng)絡(luò)上的軟件實(shí)體并非都是Agent,且對Agent互操作協(xié)議等的支持有限,從而單純基于Agent技術(shù)進(jìn)行開發(fā)將在一定程度上限制其適用范圍。因此,借鑒了傳統(tǒng)構(gòu)件的通用特征和BDI Agent特有的特點(diǎn)來設(shè)計開發(fā)自主構(gòu)件。將策略/決策規(guī)則、質(zhì)量屬性評估引入構(gòu)件模型,提出一種以決策為中心的自主構(gòu)件模型。
定義 自主構(gòu)件的形式化模型是一個六元組<K,A,G,P,R,Q >。其中,K為自主構(gòu)件的知識庫;A為關(guān)于自主構(gòu)件的行為集合;G為自主構(gòu)件的目標(biāo)集合;P為自主構(gòu)件規(guī)劃的集合;R為自主構(gòu)件策略集;Q為自主構(gòu)件質(zhì)量屬性評估函數(shù)。K為自主構(gòu)件的知識庫,它是自主構(gòu)件對當(dāng)前狀態(tài)下環(huán)境感知的一種反映和描述,包括環(huán)境狀態(tài)、領(lǐng)域知識等。
自主構(gòu)件的行為集A是一組行為描述的集合,它表明自主構(gòu)件能夠執(zhí)行的行為,行為封裝了自主構(gòu)件執(zhí)行的任務(wù)和自身的能力。自主構(gòu)件的一個行為可看作是一個動作或多個動作的組合,動作執(zhí)行的前提條件就是行為的前件,而動作執(zhí)行后的整體效果就是行為的后件。定義具體的行為 Beh∈A,Beh= (BehaviorID,Constraints,Params,Effects)。BehaviorID標(biāo)識了執(zhí)行的行為;Constraints聲明了執(zhí)行行為的具體條件,一般為規(guī)則表達(dá)式;Params是執(zhí)行行為的輸入?yún)?shù);Effects為指定行為執(zhí)行后得到的結(jié)果。
自主構(gòu)件的目標(biāo)G就是自主構(gòu)件準(zhǔn)備努力去實(shí)施的動作或者達(dá)到的某個狀態(tài)。目標(biāo)有主次或輕重緩急之分,凡要求第一位達(dá)到的目標(biāo)賦予優(yōu)先因子f1,次位的賦予優(yōu)先因子f2,…,規(guī)定 fk≥fk+1。若要區(qū)別具有相同優(yōu)先因子目標(biāo)的差別,可分別賦予不同的權(quán)重,目標(biāo)G通??梢砸苑謱拥臉錉罱Y(jié)構(gòu)表示。G=(Goals,Rels),分別表示原子目標(biāo)的集合和目標(biāo)關(guān)系的集合,Goals={g1,g2,…,gm},Rels={∩,∪}表示原子目標(biāo)復(fù)合的與、或關(guān)系。因?yàn)?個不同的目標(biāo)往往有邏輯上的關(guān)系,所以進(jìn)一步分析可得目標(biāo)的互斥、蘊(yùn)含、前件、等價、依賴關(guān)系[12]。
自主構(gòu)件通過規(guī)劃P生成具體的規(guī)劃方案,每個自主構(gòu)件都有一個規(guī)劃庫,用以存儲實(shí)現(xiàn)某個目標(biāo)的規(guī)劃方案。規(guī)劃P是自主構(gòu)件執(zhí)行的行動序列,它指明了自主構(gòu)件為實(shí)現(xiàn)一定的需求和目標(biāo)的主要方法和途徑。自主構(gòu)件間的交互在一定的時刻和狀態(tài)下發(fā)生,設(shè) ri=(ci,bi,ti,g),rj=(cj,bj,tj, v)∈I,分別表示構(gòu)件ci在ti時刻執(zhí)行行為bi,實(shí)現(xiàn)目標(biāo)g;cj在tj時刻執(zhí)行行為bj,實(shí)現(xiàn)目標(biāo)v。自主構(gòu)件間的多次交互就形成了一個行為序列。
R為自主構(gòu)件策略,指導(dǎo)自主構(gòu)件的行為,策略驅(qū)動了構(gòu)件在給定的環(huán)境狀態(tài)下執(zhí)行動作的決策過程,這一決策過程是構(gòu)件自適應(yīng)決策的核心[3]。自主構(gòu)件可以封裝多種決策過程,當(dāng)決策過程為基于規(guī)則的前向推理時,具體策略為一個規(guī)則集;當(dāng)決策過程為學(xué)習(xí)算法時,具體策略可以為一個馬爾可夫決策過程等。
質(zhì)量屬性評估函數(shù)Q={f1,f2,…,fk},是質(zhì)量屬性評估函數(shù)的集合,對于與領(lǐng)域相關(guān)的自主構(gòu)件的執(zhí)行結(jié)果進(jìn)行質(zhì)量屬性評估,如自主度評估。
上述形式化模型將自主構(gòu)件的功能和非功能屬性(質(zhì)量屬性評估)規(guī)約在統(tǒng)一的模型內(nèi);模型支持策略驅(qū)動和學(xué)習(xí)算法,使自主構(gòu)件感知自身和外部環(huán)境的變化,并根據(jù)目標(biāo)規(guī)劃和決策進(jìn)行自我管理。
在開放網(wǎng)絡(luò)環(huán)境中,構(gòu)件所依賴的服務(wù)質(zhì)量和數(shù)量、鏈接的狀態(tài)等都是動態(tài)變化的。理想狀態(tài)下,具有自適應(yīng)能力的構(gòu)件能夠在網(wǎng)絡(luò)環(huán)境不斷變化的情況下,無需外界進(jìn)行顯式控制,就能調(diào)整其自身內(nèi)部行為或結(jié)構(gòu)保證正常對外提供服務(wù)。
自主構(gòu)件將數(shù)據(jù)、操作、質(zhì)量屬性封裝在一起。自主構(gòu)件是部署在網(wǎng)絡(luò)上、能被第三方復(fù)用的軟件實(shí)體,如圖1所示。
圖1 自主構(gòu)件設(shè)計模型
自主構(gòu)件主要由以下8個部分組成:
(1)接口:即自主構(gòu)件對外部提供的服務(wù)接口,由一組操作來實(shí)現(xiàn)。主要由感知器和效應(yīng)器2個接口組成,分別用于感知環(huán)境和作用于環(huán)境。
(2)質(zhì)量屬性:是影響質(zhì)量的各種因素的評估函數(shù),這些因素包括內(nèi)部數(shù)據(jù)、內(nèi)部操作、外部依賴服務(wù)以及交互對象等。質(zhì)量屬性與依賴因素之間的關(guān)系可以是相互促進(jìn)的(正面影響),也可能是相互妨礙的(負(fù)面影響)。這是自主構(gòu)件選擇依賴服務(wù)和交互對象的主要根據(jù)。
(3)內(nèi)部數(shù)據(jù):由數(shù)據(jù)名、類型,以及允許的取值范圍定義。往往用于記錄自主構(gòu)件內(nèi)部和外部環(huán)境的動態(tài)變化。
(4)外部依賴服務(wù):定義了自主構(gòu)件對外部計算資源的依賴,以及對計算資源的計算能力和服務(wù)質(zhì)量的期待。每個服務(wù)可能有多個服務(wù)提供者來提供,自主構(gòu)件將根據(jù)提供者的服務(wù)狀態(tài)來選擇合適的提供者,以實(shí)現(xiàn)自身的目標(biāo)、提供自身的服務(wù)質(zhì)量。自主構(gòu)件將會維護(hù)一個候選者的列表,并實(shí)時根據(jù)提供者的服務(wù)狀態(tài)、以及對服務(wù)質(zhì)量的期望,評估提供者的可信度,以選擇合適的服務(wù)提供者。
(5)交互對象:定義了自主構(gòu)件在合作過程中,對交互對象的期望列表。其對交互對象的規(guī)約與依賴服務(wù)類似,不同的是自主構(gòu)件通過服務(wù)請求與依賴服務(wù)進(jìn)行交互,而通過信息傳遞與交互對象進(jìn)行交互。
(6)交互協(xié)議:自主構(gòu)件在選擇不同的交互對象后,需要根據(jù)交互對象確定具體的交互協(xié)議。交互協(xié)議定義了自主構(gòu)件能夠支持的交互方式。
(7)動作:定義了自主構(gòu)件的具體行為,自主構(gòu)件有能力執(zhí)行多個不同并發(fā)的任務(wù)。自主構(gòu)件中一個具體的任務(wù)被封裝為一個行為,自主構(gòu)件可以動態(tài)添加或刪除封裝的行為,行為成為自主構(gòu)件執(zhí)行的任務(wù)列表。
(8)決策:決定是否采取行動,以及如何采取行動,以便更好地實(shí)現(xiàn)自身的目標(biāo)。有4種類型的決策:1)功能性相關(guān)的決策,決定是否以及何時執(zhí)行動作或提供服務(wù),用何種方式(選擇哪個規(guī)劃)實(shí)現(xiàn)服務(wù);2)質(zhì)量相關(guān)的決策,決定如何選擇服務(wù)提供者以及交互對象,如何保證服務(wù)提供者或交互對象遵循行為規(guī)范;3)交互相關(guān)的決策,負(fù)責(zé)選擇交互對象以及交互協(xié)議,確定是否繼續(xù)交互;4)自適應(yīng)相關(guān)的決策,當(dāng)內(nèi)部狀態(tài)和外部狀態(tài)(主要是指外部服務(wù)提供者和交互對象的服務(wù)狀態(tài))發(fā)生變化時,如何應(yīng)對。
在自主構(gòu)件抽象規(guī)約的基礎(chǔ)上,自主構(gòu)件的基本構(gòu)成及其運(yùn)行機(jī)理如圖2所示。
圖2 自主構(gòu)件運(yùn)行示意圖
部署運(yùn)行自主構(gòu)件時,主要實(shí)現(xiàn)如下:
(1)每個自主構(gòu)件實(shí)現(xiàn)由3個部分構(gòu)成,包括構(gòu)件的抽象規(guī)約、封裝的計算邏輯,以及自適應(yīng)支持機(jī)制。其中,構(gòu)件的抽象規(guī)約包括對外發(fā)布的服務(wù)接口描述,以及對自身自適應(yīng)行為的描述;計算邏輯描述了構(gòu)件執(zhí)行的業(yè)務(wù)邏輯(行為),以及與自適應(yīng)相關(guān)的功能實(shí)現(xiàn)(如對內(nèi)部參數(shù)的配置);自適應(yīng)機(jī)制主要由資源管理模塊、信息監(jiān)控模塊、決策模塊,以及執(zhí)行模塊組成,它們分別為自主構(gòu)件服務(wù)資源的管理,自適應(yīng)行為的監(jiān)控、分析、決策、執(zhí)行提供支持。
(2)在運(yùn)行時刻,自主構(gòu)件處理外界的服務(wù)請求,同時監(jiān)測與其自適應(yīng)行為相關(guān)的環(huán)境信息,在此基礎(chǔ)上決定應(yīng)執(zhí)行的決策方法,并在執(zhí)行的過程中選擇合適的服務(wù)資源來實(shí)現(xiàn)服務(wù)。
(3)底層支撐平臺為自主構(gòu)件提供了運(yùn)行環(huán)境、互操作機(jī)制等公共服務(wù)。
當(dāng)開發(fā)一個自主構(gòu)件時,開發(fā)人員需要根據(jù)自主構(gòu)件模型,物理實(shí)現(xiàn)相關(guān)的關(guān)鍵模塊;這些信息被自主構(gòu)件的部署工具所解析并映射到圖2所示的運(yùn)行時刻結(jié)構(gòu)中。在運(yùn)行時刻,自主構(gòu)件運(yùn)行于一個容器中,其計算行為建立在一組自主性相關(guān)的基礎(chǔ)設(shè)施服務(wù)之上。
自主構(gòu)件經(jīng)過設(shè)計、實(shí)施、測試、驗(yàn)證,經(jīng)過安裝和配置,自主構(gòu)件需要向系統(tǒng)注冊安裝和配置信息,以便在進(jìn)行后續(xù)自決策時使用。安裝配置完成后,自主構(gòu)件進(jìn)入自己的生命周期:首先進(jìn)入就緒狀態(tài),隨時等待運(yùn)行。自主構(gòu)件由就緒狀態(tài)啟動后進(jìn)行初始化工作,完成以后進(jìn)入活躍狀態(tài);當(dāng)系統(tǒng)需要將其暫停時,自主構(gòu)件進(jìn)入掛起狀態(tài),直到有恢復(fù)命令自主構(gòu)件才能回到活躍狀態(tài);當(dāng)運(yùn)行條件不滿足時,自主構(gòu)件自動進(jìn)入等待狀態(tài),直到該自主構(gòu)件被喚醒;當(dāng)自主構(gòu)件需要移動到其他節(jié)點(diǎn)時,則進(jìn)入遷移狀態(tài),直到在目標(biāo)節(jié)點(diǎn)開始執(zhí)行,它才進(jìn)入活躍狀態(tài)?;钴S狀態(tài)包含監(jiān)控、分析、決策、執(zhí)行等功能狀態(tài)。若自主構(gòu)件退出,則進(jìn)入新的就緒狀態(tài)。在此狀態(tài)下,如果被卸載,自主構(gòu)件就進(jìn)入了消亡狀態(tài),從而完成了其完整的生命周期。在活躍狀態(tài),自主構(gòu)件通過決策引擎會循環(huán)檢測其運(yùn)行狀態(tài):正常態(tài):系統(tǒng)各項(xiàng)性能指標(biāo)處于正常;異常態(tài):系統(tǒng)運(yùn)行過程中,數(shù)據(jù)處理發(fā)生錯誤或者運(yùn)行時發(fā)現(xiàn)故障;恢復(fù)態(tài):更新、添加和刪除無法正常運(yùn)行的服務(wù),調(diào)整自身狀態(tài);重構(gòu)態(tài):自主構(gòu)件恢復(fù)失敗時,系統(tǒng)進(jìn)入重構(gòu)狀態(tài),即對某些服務(wù)重新進(jìn)行配置。自主構(gòu)件生命周期如圖3所示。
圖3 自主構(gòu)件生命周期
自主構(gòu)件的優(yōu)勢在于具有一定的自主性,能夠主動適應(yīng)環(huán)境的變化并做出決策。在具體應(yīng)用領(lǐng)域,自主度要求映射到系統(tǒng)具體的質(zhì)量屬性中。以交通系統(tǒng)中的汽車為例,設(shè)計的目的是賦予汽車一定的自主度,如根據(jù)道路狀況自主決定交叉路口行車路徑的能力,測試自主度對其行為產(chǎn)生的影響。顯然對于給定交通網(wǎng)絡(luò),車輛的速度、路面的擁堵率與路面上行駛的汽車有直接的關(guān)系。在初始自主度為0.2(限制抽取的規(guī)則數(shù)/當(dāng)前場景的總策略規(guī)則數(shù)),限速為45 km/h的情況下,系統(tǒng)通過設(shè)計道路、車輛、交通信號等模擬交通暢通、擁堵、事故等不同場景,自動決策行車路線[3]。其中,自主度簡單量化為一種決策的能力,則模擬得交通擁堵場景下?lián)矶侣嗜鐖D4所示。
圖4 系統(tǒng)質(zhì)量屬性評估
經(jīng)過分析驗(yàn)證,多數(shù)場景隨著構(gòu)件自主度的提高,可以提高系統(tǒng)的質(zhì)量屬性,如有效降低道路的擁堵率、提高平均行駛速度等。但在有的場景下,如路況復(fù)雜、車輛接近飽和,即使提高自主度值往往質(zhì)量屬性也會下降,因?yàn)榇藭r個別自主構(gòu)件決策復(fù)雜度的提高有時會與整個系統(tǒng)相沖突。因?yàn)楫?dāng)自主度過大時,在某些復(fù)雜度很高的環(huán)境下,由于自主構(gòu)件的感知范圍或推理能力的局限性,過分依賴自身的決策會導(dǎo)致一系列問題,具體體現(xiàn)為,車輛的速度明顯下降,車輛在低速時的油耗率會大大增加等實(shí)際屬性值。
本文根據(jù)自適應(yīng)軟件的開發(fā)要求,提出了一種基于Agent的自主構(gòu)件模型,分析并實(shí)現(xiàn)了自主構(gòu)件的規(guī)約和物理結(jié)構(gòu)。該自主構(gòu)件模型能動態(tài)感知環(huán)境的變化,通過自適應(yīng)策略支持自主決策,并有一定的自主度能執(zhí)行自身行為對環(huán)境變化做出響應(yīng)。下一步將研究自主構(gòu)件的決策能力對整個系統(tǒng)的影響,并對其質(zhì)量屬性進(jìn)行評估和驗(yàn)證。
[1] 張???史忠植.自主計算軟件工程方法[J].小型微型計算機(jī)系統(tǒng),2006,27(6):1077-1082.
[2] 張???基于主體的自主計算研究[D].北京:中國科學(xué)院研究生院,2005.
[3] 王茂光.基于自主構(gòu)件的自適應(yīng)網(wǎng)構(gòu)軟件開發(fā)方法[D].北京:北京大學(xué),2011.
[4] Bruneton E,Coupaye T,Leclerc M,et al.An Open Component Model and Its Support in Java[C]// Proceedings of International Symposium on Componentbased Software Engineering.Edinburgh,UK:[s.n.], 2004:7-22.
[5] David P C,Ledoux T.Towards a Framework for Selfadaptive Component-based Applications[C]//Proceedings of International Conference on Distributed Applications and Interoperable Systems.Paris,France:[s.n.],2003:1-14.
[6] Liu Hua,Parashar M.Accord:A Programming Framework for Autonomic Applications[J].IEEE Transactions on Systems,Man,and Cybernetics,2006,36(3):341-352.
[7] Dowling J,Cahill V.The K-component Architecture Metamodel for Self-adaptive Software[C]//Proceedings of the 3rd International Conference on Metalevel Architectures and Separation of Crosscutting Concerns.[S.l.]:Springer, 2001:81-88.
[8] Dowling J.The Decentralised Coordination ofSelfadaptive Components for Autonomic Distributed Systems[D].Dublin,Ireland:University of Dublin,2004.
[9] Cheng B H C,LemosR,GieseH,etal.Software Engineering forSelf-adaptive Systems:A Research Roadmap[EB/OL].(2013-04-17).http://dx.doi.org/ 10.1007/978-3-642-02161-9_1 2009.
[10] Jiao Wenpin.Using Autonomous Components to Improve Runtime Qualities of Software[J].IET Software,2011, 5(1):1-20.
[11] Wang Maoguang,Jie Junjing,She Tingxun,et al.An Agentbased Autonomous Component Model for Internetware[C]//Proceedings of International Conference on Web Information Systems and Mining.[S.l.]:IEEE Computer Society,2010:348-352.
[12] DeLoach S A,Miller M.A Goal Model for Adaptive Complex Systems [J].International Journal of Computational Intelligence:Theory and Practice,2010, 5(2):83-92.
編輯 顧逸斐
Design and Evaluation of Autonomous Component Model Based on Agent
WANG Maoguang,WANG Jiarui
(School of Information,Central University of Finance and Economics,Beijing 100081,China)
Autonomous component is capable of sensing and making decisions automatically according to the environment changes.The purpose of developing complex software system based on autonomous component is to reduce the complexity of software development and maintenance effectively.Self-adaptive software development requires the system and constructive component should provide a new abstract and model method to adapt to complex environment and business requirements changes.After analyzing the software entity functions and characteristics,this paper proposes an autonomous component model based on intelligent agent.The autonomous component can sense the complex environment dynamic changes,encapsulates self-adaptation logic reasonably,makes decisions in accordance with policy rules,and plans the goal-directed behaviors automatically.Autonomous component provides the efficient support for modeling and developing complex self-adaptive software.
Agent;autonomous component;programming model;autonomy degree;evaluation
1000-3428(2014)11-0304-06
A
TP18
10.3969/j.issn.1000-3428.2014.11.060
國家自然科學(xué)基金資助項(xiàng)目“基于自主構(gòu)件的開放分布式自適應(yīng)軟件系統(tǒng)的開發(fā)方法”(61073020);國家留學(xué)基金資助項(xiàng)目(201306495003)。
王茂光(1974-),男,副教授、博士,主研方向:分布式智能,軟件工程;王家瑞,碩士研究生。
2013-11-15
2014-04-23E-mail:wangmg@cufe.edu.cn
中文引用格式:王茂光,王家瑞.基于Agent的自主構(gòu)件模型設(shè)計與評估[J].計算機(jī)工程,2014,40(11):304-309.
英文引用格式:Wang Maoguang,Wang Jiarui.Design and Evaluation of Autonomous Component Model Based on Agent[J].Computer Engineering,2014,40(11):304-309.