王茂光,王家瑞
(中央財(cái)經(jīng)大學(xué)信息學(xué)院,北京100081)
基于Agent的自主構(gòu)件模型設(shè)計(jì)與評(píng)估
王茂光,王家瑞
(中央財(cái)經(jīng)大學(xué)信息學(xué)院,北京100081)
為適應(yīng)復(fù)雜環(huán)境和業(yè)務(wù)需求的變化,自適應(yīng)軟件開發(fā)要求為系統(tǒng)及其構(gòu)成成分提供新的抽象和建模手段。自主構(gòu)件能夠感知并依據(jù)環(huán)境的變化自動(dòng)地做出決策。采用自主構(gòu)件開發(fā)復(fù)雜軟件系統(tǒng)的主要目的是有效降低軟件開發(fā)和維護(hù)的復(fù)雜性。在分析自適應(yīng)軟件實(shí)體功能和特征的基礎(chǔ)上,提出一種基于智能體(Agent)的自主構(gòu)件模型,該自主構(gòu)件模型能動(dòng)態(tài)感知環(huán)境的變化,合理封裝自適應(yīng)邏輯,依據(jù)策略規(guī)則進(jìn)行決策,并根據(jù)目標(biāo)導(dǎo)向,自動(dòng)規(guī)劃執(zhí)行行為的序列。評(píng)估結(jié)果表明,該模型為建模與開發(fā)復(fù)雜自適應(yīng)化軟件提供了有效的底層支持。
智能體;自主構(gòu)件;編程模型;自主度;評(píng)估
隨著網(wǎng)絡(luò)化軟件系統(tǒng)所處的環(huán)境越來越開放、動(dòng)態(tài)、難控,構(gòu)成系統(tǒng)的軟件實(shí)體也越來越異構(gòu)、智能和自主。同時(shí),系統(tǒng)的復(fù)雜性也不斷提高,這使得系統(tǒng)的維護(hù)與演化的成本不斷增加。現(xiàn)有的軟件開發(fā)方法并不能很好地滿足此類軟件的設(shè)計(jì)需求,主要問題是網(wǎng)絡(luò)環(huán)境的不穩(wěn)定性、開放性和動(dòng)態(tài)性對(duì)軟件實(shí)體自適應(yīng)環(huán)境的變化提出了新的技術(shù)挑戰(zhàn)。這促使研究人員對(duì)在復(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ā)生變化時(shí)能主動(dòng)適應(yīng)環(huán)境的變化。一方面,從構(gòu)件角度來看,自主構(gòu)件與普通構(gòu)件相同,它具有相對(duì)獨(dú)立的功能,能夠被復(fù)用和組裝,成為系統(tǒng)的有機(jī)構(gòu)成成分。另一方面,從自主性的角度來看,自主構(gòu)件行為受到自身策略的驅(qū)動(dòng)向外提供服務(wù),并且可以在運(yùn)行時(shí)刻收集系統(tǒng)的信息,感知變化從而做出決策。
本文設(shè)計(jì)的自主構(gòu)件模型從兩方面對(duì)構(gòu)件的自主行為提供了支持:(1)構(gòu)件模型提供了較強(qiáng)的自主行為描述能力,支持應(yīng)用開發(fā)人員為構(gòu)件設(shè)計(jì)特定于應(yīng)用的自主行為;(2)對(duì)于復(fù)雜計(jì)算環(huán)境帶來的具有一定普遍性的自適應(yīng)需求,自主構(gòu)件模型提供了自適應(yīng)策略驅(qū)動(dòng),將帶有普遍性的自適應(yīng)需求以規(guī)則的形式存儲(chǔ)到策略庫中。
自適應(yīng)系統(tǒng)的目標(biāo)體現(xiàn)為系統(tǒng)元素的自我管理以及它們之間的交互,因此,相關(guān)領(lǐng)域的研究人員十分關(guān)注構(gòu)件的適應(yīng)性問題[3]。
典型的 Fractal是一個(gè)層次化、動(dòng)態(tài)的構(gòu)件框架[4]。Fractal支持復(fù)合構(gòu)件的概念,一個(gè)復(fù)合構(gòu)件由多個(gè)原子構(gòu)件或復(fù)合構(gòu)件組成,并且可以在運(yùn)行時(shí)動(dòng)態(tài)修改Fractal應(yīng)用系統(tǒng)的軟件體系結(jié)構(gòu)。文獻(xiàn)[5]介紹了一種對(duì)Fractal構(gòu)件模型進(jìn)行擴(kuò)展以支持自適應(yīng)行為的方法,其所做的擴(kuò)展主要包括:提供一個(gè)收集環(huán)境上下文信息的服務(wù)以獲取運(yùn)行時(shí)刻信息,基于“事件-條件-動(dòng)作”的模式定義自適應(yīng)策略。
而Accord[6]是一種基于高層規(guī)則進(jìn)行組織和協(xié)調(diào)的構(gòu)件模型,主要由規(guī)約計(jì)算邏輯的功能端口、協(xié)調(diào)邏輯的控制端口和對(duì)自適應(yīng)規(guī)則進(jìn)行管理的操作端口3個(gè)部分構(gòu)成。
K-Component[7-8]提供了一個(gè)自適應(yīng)的構(gòu)件編程模型,并基于合作強(qiáng)化學(xué)習(xí)技術(shù)提供了一個(gè)協(xié)調(diào)模型,支持在無中心環(huán)境下構(gòu)建自適應(yīng)系統(tǒng)。在 KComponent框架中,封裝自適應(yīng)邏輯的適應(yīng)合約使用特定的描述語言來定義,包含一組聲明、表達(dá)式,以及監(jiān)控操作和適應(yīng)動(dòng)作。
這些構(gòu)件模型在具體表示上還是有區(qū)別的。在表示構(gòu)件知識(shí)的狀態(tài)模型方面,Accord采用的是比較簡(jiǎn)單的“屬性-值”對(duì)的方式,Fractal則是通過資源本體對(duì)原始數(shù)據(jù)進(jìn)行組織。K-Component除了“屬性-值”的方式之外,支持使用馬爾可夫決策過程來組織自身的狀態(tài),這是為了更好支持其自適應(yīng)策略的需要。
在自適應(yīng)策略方面,Fractal和Accord均是采用規(guī)則的方式來描述,這也是絕大多數(shù)自適應(yīng)構(gòu)件模型采取的方式,均支持對(duì)規(guī)則的在線修改。KComponent除了規(guī)則外,還可以通過指定參數(shù)的方式支持構(gòu)件執(zhí)行強(qiáng)化學(xué)習(xí)策略,這樣構(gòu)件可以動(dòng)態(tài)調(diào)整自己的行為。就評(píng)估時(shí)機(jī)而言,三者對(duì)于信息的收集和判斷與計(jì)算邏輯都是正交的,即策略的評(píng)估與動(dòng)作執(zhí)行與構(gòu)件提供服務(wù)是異步的,此外也有不少自適應(yīng)構(gòu)件模型的自適應(yīng)策略評(píng)估與功能邏輯同步執(zhí)行,如一些基于AOP技術(shù)、在功能請(qǐng)求到來前后收集信息并進(jìn)行自適應(yīng)評(píng)估。
現(xiàn)有研究工作中,對(duì)于自適應(yīng)行為的支持往往限定于某種特定的決策機(jī)制。例如,Fractal和Accord模型中,自適應(yīng)主要通過一組預(yù)先定義好的策略規(guī)則來描述,這就意味著管理員需要對(duì)這個(gè)環(huán)境中可能出現(xiàn)的變化,其對(duì)應(yīng)的運(yùn)行時(shí)刻系統(tǒng)事件,以及相對(duì)應(yīng)的解決方案有一個(gè)預(yù)先的了解,這一假設(shè)在復(fù)雜網(wǎng)絡(luò)環(huán)境下有時(shí)無法成立[9];K-Component模型通過強(qiáng)化學(xué)習(xí)技術(shù)可以在運(yùn)行時(shí)刻調(diào)整自身的策略,然而由于缺少對(duì)網(wǎng)絡(luò)環(huán)境特征的系統(tǒng)分析與支持,模型往往無法直接應(yīng)用于自適應(yīng)網(wǎng)絡(luò)化軟件的構(gòu)造。
針對(duì)新網(wǎng)絡(luò)計(jì)算環(huán)境的特點(diǎn),一種應(yīng)對(duì)上述技術(shù)挑戰(zhàn)的可行途徑是不再將運(yùn)行系統(tǒng)的構(gòu)成單元視為被動(dòng)的受管對(duì)象,而是將其建模為具有主動(dòng)能力的軟件實(shí)體。這些實(shí)體能夠通過觀察運(yùn)行時(shí)刻信息,主動(dòng)地對(duì)自身實(shí)現(xiàn)進(jìn)行調(diào)整,或是改變與其他實(shí)體的交互;繼而,系統(tǒng)通過這些構(gòu)成單元局部間的相互作用表現(xiàn)出整體性的自適應(yīng)行為。這類具有主動(dòng)能力的計(jì)算實(shí)體,稱為自主構(gòu)件(Autonomous Component,AC)。
自主構(gòu)件是具有自主性的構(gòu)件,能夠感知環(huán)境的變化,并根據(jù)環(huán)境的變化自動(dòng)地做出決策響應(yīng)環(huán)境的變化[10]。自主構(gòu)件同時(shí)具備了構(gòu)件以及 Agent的關(guān)鍵性質(zhì)。自主構(gòu)件從能力要求來看,除了對(duì)外提供服務(wù),自主構(gòu)件區(qū)別于傳統(tǒng)構(gòu)件的能力主要有:
(1)功能性:能對(duì)外提供服務(wù),可以通過調(diào)用外部構(gòu)件的服務(wù)來實(shí)現(xiàn)自身的功能性需求;并具有質(zhì)量屬性評(píng)估的功能。
(2)自決策性:對(duì)功能性和非功能性目標(biāo)的實(shí)現(xiàn)和改進(jìn)具有決策能力。
(3)自適應(yīng)性:自主構(gòu)件對(duì)于不同應(yīng)用環(huán)境具有適應(yīng)能力,在不同場(chǎng)景下,對(duì)外所展現(xiàn)的行為會(huì)有所不同。能夠決定如何選擇和使用外部資源(依賴服務(wù)),并規(guī)范依賴服務(wù)的行為。
(4)交互性和協(xié)同性:能參與交互和合作,多個(gè)自主構(gòu)件可以協(xié)作完成復(fù)雜的任務(wù)。
自主構(gòu)件要能夠感知環(huán)境,根據(jù)需要?jiǎng)討B(tài)監(jiān)控環(huán)境的變化,分析環(huán)境的動(dòng)態(tài)變化,通過自適應(yīng)策略驅(qū)動(dòng)自主構(gòu)件作出決策,并執(zhí)行自身的行為,必要時(shí)作用于環(huán)境[11]。
從功能上分析,自主構(gòu)件通過感知器感知環(huán)境在運(yùn)行時(shí)刻獲取所需要的信息,基于給定的自適應(yīng)策略作出決策,確定需執(zhí)行的調(diào)整行為,最后通過效應(yīng)器對(duì)系統(tǒng)中的受控資源進(jìn)行管理,其核心功能是自適應(yīng)決策。
自主構(gòu)件的功能模塊構(gòu)成一個(gè)執(zhí)行循環(huán):監(jiān)控→分析→決策→執(zhí)行。監(jiān)控部分負(fù)責(zé)監(jiān)控環(huán)境的變化;分析部分對(duì)當(dāng)前環(huán)境進(jìn)行分析,建立決策模型,并使得自主構(gòu)件可以對(duì)環(huán)境進(jìn)行學(xué)習(xí),幫助自主構(gòu)件預(yù)測(cè)未來;決策部分通過決策規(guī)劃實(shí)現(xiàn)目標(biāo)的行為;執(zhí)行部分執(zhí)行規(guī)劃得到的行為序列,并對(duì)執(zhí)行過程控制管理。以上4個(gè)部分使用的數(shù)據(jù)作為共享的知識(shí)存儲(chǔ)在知識(shí)庫中,共享的知識(shí)包括網(wǎng)絡(luò)拓?fù)湫畔?、系統(tǒng)日志、策略庫等。自主構(gòu)件通過監(jiān)控→分析→決策→執(zhí)行來動(dòng)態(tài)的監(jiān)控環(huán)境變化并做出實(shí)時(shí)響應(yīng)。
由于自主構(gòu)件類似于Agent具有自主、目標(biāo)驅(qū)動(dòng)等特點(diǎn),因此可以把自主構(gòu)件看作具有特殊功能具有自管理、自決策特性的Agent[11]。但面臨的問題是,一方面,當(dāng)前對(duì)Agent開發(fā)和運(yùn)行平臺(tái)的規(guī)范進(jìn)行支持的實(shí)現(xiàn)提供商還是較少;另一方面,網(wǎng)絡(luò)上的軟件實(shí)體并非都是Agent,且對(duì)Agent互操作協(xié)議等的支持有限,從而單純基于Agent技術(shù)進(jìn)行開發(fā)將在一定程度上限制其適用范圍。因此,借鑒了傳統(tǒng)構(gòu)件的通用特征和BDI Agent特有的特點(diǎn)來設(shè)計(jì)開發(fā)自主構(gòu)件。將策略/決策規(guī)則、質(zhì)量屬性評(píng)估引入構(gòu)件模型,提出一種以決策為中心的自主構(gòu)件模型。
定義 自主構(gòu)件的形式化模型是一個(gè)六元組<K,A,G,P,R,Q >。其中,K為自主構(gòu)件的知識(shí)庫;A為關(guān)于自主構(gòu)件的行為集合;G為自主構(gòu)件的目標(biāo)集合;P為自主構(gòu)件規(guī)劃的集合;R為自主構(gòu)件策略集;Q為自主構(gòu)件質(zhì)量屬性評(píng)估函數(shù)。K為自主構(gòu)件的知識(shí)庫,它是自主構(gòu)件對(duì)當(dāng)前狀態(tài)下環(huán)境感知的一種反映和描述,包括環(huán)境狀態(tài)、領(lǐng)域知識(shí)等。
自主構(gòu)件的行為集A是一組行為描述的集合,它表明自主構(gòu)件能夠執(zhí)行的行為,行為封裝了自主構(gòu)件執(zhí)行的任務(wù)和自身的能力。自主構(gòu)件的一個(gè)行為可看作是一個(gè)動(dòng)作或多個(gè)動(dòng)作的組合,動(dòng)作執(zhí)行的前提條件就是行為的前件,而動(dòng)作執(zhí)行后的整體效果就是行為的后件。定義具體的行為 Beh∈A,Beh= (BehaviorID,Constraints,Params,Effects)。BehaviorID標(biāo)識(shí)了執(zhí)行的行為;Constraints聲明了執(zhí)行行為的具體條件,一般為規(guī)則表達(dá)式;Params是執(zhí)行行為的輸入?yún)?shù);Effects為指定行為執(zhí)行后得到的結(jié)果。
自主構(gòu)件的目標(biāo)G就是自主構(gòu)件準(zhǔn)備努力去實(shí)施的動(dòng)作或者達(dá)到的某個(gè)狀態(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)?個(gè)不同的目標(biāo)往往有邏輯上的關(guān)系,所以進(jìn)一步分析可得目標(biāo)的互斥、蘊(yùn)含、前件、等價(jià)、依賴關(guān)系[12]。
自主構(gòu)件通過規(guī)劃P生成具體的規(guī)劃方案,每個(gè)自主構(gòu)件都有一個(gè)規(guī)劃庫,用以存儲(chǔ)實(shí)現(xiàn)某個(gè)目標(biāo)的規(guī)劃方案。規(guī)劃P是自主構(gòu)件執(zhí)行的行動(dòng)序列,它指明了自主構(gòu)件為實(shí)現(xiàn)一定的需求和目標(biāo)的主要方法和途徑。自主構(gòu)件間的交互在一定的時(shí)刻和狀態(tài)下發(fā)生,設(shè) ri=(ci,bi,ti,g),rj=(cj,bj,tj, v)∈I,分別表示構(gòu)件ci在ti時(shí)刻執(zhí)行行為bi,實(shí)現(xiàn)目標(biāo)g;cj在tj時(shí)刻執(zhí)行行為bj,實(shí)現(xiàn)目標(biāo)v。自主構(gòu)件間的多次交互就形成了一個(gè)行為序列。
R為自主構(gòu)件策略,指導(dǎo)自主構(gòu)件的行為,策略驅(qū)動(dòng)了構(gòu)件在給定的環(huán)境狀態(tài)下執(zhí)行動(dòng)作的決策過程,這一決策過程是構(gòu)件自適應(yīng)決策的核心[3]。自主構(gòu)件可以封裝多種決策過程,當(dāng)決策過程為基于規(guī)則的前向推理時(shí),具體策略為一個(gè)規(guī)則集;當(dāng)決策過程為學(xué)習(xí)算法時(shí),具體策略可以為一個(gè)馬爾可夫決策過程等。
質(zhì)量屬性評(píng)估函數(shù)Q={f1,f2,…,fk},是質(zhì)量屬性評(píng)估函數(shù)的集合,對(duì)于與領(lǐng)域相關(guān)的自主構(gòu)件的執(zhí)行結(jié)果進(jìn)行質(zhì)量屬性評(píng)估,如自主度評(píng)估。
上述形式化模型將自主構(gòu)件的功能和非功能屬性(質(zhì)量屬性評(píng)估)規(guī)約在統(tǒng)一的模型內(nèi);模型支持策略驅(qū)動(dòng)和學(xué)習(xí)算法,使自主構(gòu)件感知自身和外部環(huán)境的變化,并根據(jù)目標(biāo)規(guī)劃和決策進(jìn)行自我管理。
在開放網(wǎng)絡(luò)環(huán)境中,構(gòu)件所依賴的服務(wù)質(zhì)量和數(shù)量、鏈接的狀態(tài)等都是動(dòng)態(tài)變化的。理想狀態(tài)下,具有自適應(yīng)能力的構(gòu)件能夠在網(wǎng)絡(luò)環(huán)境不斷變化的情況下,無需外界進(jìn)行顯式控制,就能調(diào)整其自身內(nèi)部行為或結(jié)構(gòu)保證正常對(duì)外提供服務(wù)。
自主構(gòu)件將數(shù)據(jù)、操作、質(zhì)量屬性封裝在一起。自主構(gòu)件是部署在網(wǎng)絡(luò)上、能被第三方復(fù)用的軟件實(shí)體,如圖1所示。
圖1 自主構(gòu)件設(shè)計(jì)模型
自主構(gòu)件主要由以下8個(gè)部分組成:
(1)接口:即自主構(gòu)件對(duì)外部提供的服務(wù)接口,由一組操作來實(shí)現(xiàn)。主要由感知器和效應(yīng)器2個(gè)接口組成,分別用于感知環(huán)境和作用于環(huán)境。
(2)質(zhì)量屬性:是影響質(zhì)量的各種因素的評(píng)估函數(shù),這些因素包括內(nèi)部數(shù)據(jù)、內(nèi)部操作、外部依賴服務(wù)以及交互對(duì)象等。質(zhì)量屬性與依賴因素之間的關(guān)系可以是相互促進(jìn)的(正面影響),也可能是相互妨礙的(負(fù)面影響)。這是自主構(gòu)件選擇依賴服務(wù)和交互對(duì)象的主要根據(jù)。
(3)內(nèi)部數(shù)據(jù):由數(shù)據(jù)名、類型,以及允許的取值范圍定義。往往用于記錄自主構(gòu)件內(nèi)部和外部環(huán)境的動(dòng)態(tài)變化。
(4)外部依賴服務(wù):定義了自主構(gòu)件對(duì)外部計(jì)算資源的依賴,以及對(duì)計(jì)算資源的計(jì)算能力和服務(wù)質(zhì)量的期待。每個(gè)服務(wù)可能有多個(gè)服務(wù)提供者來提供,自主構(gòu)件將根據(jù)提供者的服務(wù)狀態(tài)來選擇合適的提供者,以實(shí)現(xiàn)自身的目標(biāo)、提供自身的服務(wù)質(zhì)量。自主構(gòu)件將會(huì)維護(hù)一個(gè)候選者的列表,并實(shí)時(shí)根據(jù)提供者的服務(wù)狀態(tài)、以及對(duì)服務(wù)質(zhì)量的期望,評(píng)估提供者的可信度,以選擇合適的服務(wù)提供者。
(5)交互對(duì)象:定義了自主構(gòu)件在合作過程中,對(duì)交互對(duì)象的期望列表。其對(duì)交互對(duì)象的規(guī)約與依賴服務(wù)類似,不同的是自主構(gòu)件通過服務(wù)請(qǐng)求與依賴服務(wù)進(jìn)行交互,而通過信息傳遞與交互對(duì)象進(jìn)行交互。
(6)交互協(xié)議:自主構(gòu)件在選擇不同的交互對(duì)象后,需要根據(jù)交互對(duì)象確定具體的交互協(xié)議。交互協(xié)議定義了自主構(gòu)件能夠支持的交互方式。
(7)動(dòng)作:定義了自主構(gòu)件的具體行為,自主構(gòu)件有能力執(zhí)行多個(gè)不同并發(fā)的任務(wù)。自主構(gòu)件中一個(gè)具體的任務(wù)被封裝為一個(gè)行為,自主構(gòu)件可以動(dòng)態(tài)添加或刪除封裝的行為,行為成為自主構(gòu)件執(zhí)行的任務(wù)列表。
(8)決策:決定是否采取行動(dòng),以及如何采取行動(dòng),以便更好地實(shí)現(xiàn)自身的目標(biāo)。有4種類型的決策:1)功能性相關(guān)的決策,決定是否以及何時(shí)執(zhí)行動(dòng)作或提供服務(wù),用何種方式(選擇哪個(gè)規(guī)劃)實(shí)現(xiàn)服務(wù);2)質(zhì)量相關(guān)的決策,決定如何選擇服務(wù)提供者以及交互對(duì)象,如何保證服務(wù)提供者或交互對(duì)象遵循行為規(guī)范;3)交互相關(guān)的決策,負(fù)責(zé)選擇交互對(duì)象以及交互協(xié)議,確定是否繼續(xù)交互;4)自適應(yīng)相關(guān)的決策,當(dāng)內(nèi)部狀態(tài)和外部狀態(tài)(主要是指外部服務(wù)提供者和交互對(duì)象的服務(wù)狀態(tài))發(fā)生變化時(shí),如何應(yīng)對(duì)。
在自主構(gòu)件抽象規(guī)約的基礎(chǔ)上,自主構(gòu)件的基本構(gòu)成及其運(yùn)行機(jī)理如圖2所示。
圖2 自主構(gòu)件運(yùn)行示意圖
部署運(yùn)行自主構(gòu)件時(shí),主要實(shí)現(xiàn)如下:
(1)每個(gè)自主構(gòu)件實(shí)現(xiàn)由3個(gè)部分構(gòu)成,包括構(gòu)件的抽象規(guī)約、封裝的計(jì)算邏輯,以及自適應(yīng)支持機(jī)制。其中,構(gòu)件的抽象規(guī)約包括對(duì)外發(fā)布的服務(wù)接口描述,以及對(duì)自身自適應(yīng)行為的描述;計(jì)算邏輯描述了構(gòu)件執(zhí)行的業(yè)務(wù)邏輯(行為),以及與自適應(yīng)相關(guān)的功能實(shí)現(xiàn)(如對(duì)內(nèi)部參數(shù)的配置);自適應(yīng)機(jī)制主要由資源管理模塊、信息監(jiān)控模塊、決策模塊,以及執(zhí)行模塊組成,它們分別為自主構(gòu)件服務(wù)資源的管理,自適應(yīng)行為的監(jiān)控、分析、決策、執(zhí)行提供支持。
(2)在運(yùn)行時(shí)刻,自主構(gòu)件處理外界的服務(wù)請(qǐng)求,同時(shí)監(jiān)測(cè)與其自適應(yīng)行為相關(guān)的環(huán)境信息,在此基礎(chǔ)上決定應(yīng)執(zhí)行的決策方法,并在執(zhí)行的過程中選擇合適的服務(wù)資源來實(shí)現(xiàn)服務(wù)。
(3)底層支撐平臺(tái)為自主構(gòu)件提供了運(yùn)行環(huán)境、互操作機(jī)制等公共服務(wù)。
當(dāng)開發(fā)一個(gè)自主構(gòu)件時(shí),開發(fā)人員需要根據(jù)自主構(gòu)件模型,物理實(shí)現(xiàn)相關(guān)的關(guān)鍵模塊;這些信息被自主構(gòu)件的部署工具所解析并映射到圖2所示的運(yùn)行時(shí)刻結(jié)構(gòu)中。在運(yùn)行時(shí)刻,自主構(gòu)件運(yùn)行于一個(gè)容器中,其計(jì)算行為建立在一組自主性相關(guān)的基礎(chǔ)設(shè)施服務(wù)之上。
自主構(gòu)件經(jīng)過設(shè)計(jì)、實(shí)施、測(cè)試、驗(yàn)證,經(jīng)過安裝和配置,自主構(gòu)件需要向系統(tǒng)注冊(cè)安裝和配置信息,以便在進(jìn)行后續(xù)自決策時(shí)使用。安裝配置完成后,自主構(gòu)件進(jìn)入自己的生命周期:首先進(jìn)入就緒狀態(tài),隨時(shí)等待運(yùn)行。自主構(gòu)件由就緒狀態(tài)啟動(dòng)后進(jìn)行初始化工作,完成以后進(jìn)入活躍狀態(tài);當(dāng)系統(tǒng)需要將其暫停時(shí),自主構(gòu)件進(jìn)入掛起狀態(tài),直到有恢復(fù)命令自主構(gòu)件才能回到活躍狀態(tài);當(dāng)運(yùn)行條件不滿足時(shí),自主構(gòu)件自動(dòng)進(jìn)入等待狀態(tài),直到該自主構(gòu)件被喚醒;當(dāng)自主構(gòu)件需要移動(dòng)到其他節(jié)點(diǎn)時(shí),則進(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ì)循環(huán)檢測(cè)其運(yùn)行狀態(tài):正常態(tài):系統(tǒng)各項(xiàng)性能指標(biāo)處于正常;異常態(tài):系統(tǒng)運(yùn)行過程中,數(shù)據(jù)處理發(fā)生錯(cuò)誤或者運(yùn)行時(shí)發(fā)現(xiàn)故障;恢復(fù)態(tài):更新、添加和刪除無法正常運(yùn)行的服務(wù),調(diào)整自身狀態(tài);重構(gòu)態(tài):自主構(gòu)件恢復(fù)失敗時(shí),系統(tǒng)進(jìn)入重構(gòu)狀態(tài),即對(duì)某些服務(wù)重新進(jìn)行配置。自主構(gòu)件生命周期如圖3所示。
圖3 自主構(gòu)件生命周期
自主構(gòu)件的優(yōu)勢(shì)在于具有一定的自主性,能夠主動(dòng)適應(yīng)環(huán)境的變化并做出決策。在具體應(yīng)用領(lǐng)域,自主度要求映射到系統(tǒng)具體的質(zhì)量屬性中。以交通系統(tǒng)中的汽車為例,設(shè)計(jì)的目的是賦予汽車一定的自主度,如根據(jù)道路狀況自主決定交叉路口行車路徑的能力,測(cè)試自主度對(duì)其行為產(chǎn)生的影響。顯然對(duì)于給定交通網(wǎng)絡(luò),車輛的速度、路面的擁堵率與路面上行駛的汽車有直接的關(guān)系。在初始自主度為0.2(限制抽取的規(guī)則數(shù)/當(dāng)前場(chǎng)景的總策略規(guī)則數(shù)),限速為45 km/h的情況下,系統(tǒng)通過設(shè)計(jì)道路、車輛、交通信號(hào)等模擬交通暢通、擁堵、事故等不同場(chǎng)景,自動(dòng)決策行車路線[3]。其中,自主度簡(jiǎn)單量化為一種決策的能力,則模擬得交通擁堵場(chǎng)景下?lián)矶侣嗜鐖D4所示。
圖4 系統(tǒng)質(zhì)量屬性評(píng)估
經(jīng)過分析驗(yàn)證,多數(shù)場(chǎng)景隨著構(gòu)件自主度的提高,可以提高系統(tǒng)的質(zhì)量屬性,如有效降低道路的擁堵率、提高平均行駛速度等。但在有的場(chǎng)景下,如路況復(fù)雜、車輛接近飽和,即使提高自主度值往往質(zhì)量屬性也會(huì)下降,因?yàn)榇藭r(shí)個(gè)別自主構(gòu)件決策復(fù)雜度的提高有時(shí)會(huì)與整個(gè)系統(tǒng)相沖突。因?yàn)楫?dāng)自主度過大時(shí),在某些復(fù)雜度很高的環(huán)境下,由于自主構(gòu)件的感知范圍或推理能力的局限性,過分依賴自身的決策會(huì)導(dǎo)致一系列問題,具體體現(xiàn)為,車輛的速度明顯下降,車輛在低速時(shí)的油耗率會(huì)大大增加等實(shí)際屬性值。
本文根據(jù)自適應(yīng)軟件的開發(fā)要求,提出了一種基于Agent的自主構(gòu)件模型,分析并實(shí)現(xiàn)了自主構(gòu)件的規(guī)約和物理結(jié)構(gòu)。該自主構(gòu)件模型能動(dòng)態(tài)感知環(huán)境的變化,通過自適應(yīng)策略支持自主決策,并有一定的自主度能執(zhí)行自身行為對(duì)環(huán)境變化做出響應(yīng)。下一步將研究自主構(gòu)件的決策能力對(duì)整個(gè)系統(tǒng)的影響,并對(duì)其質(zhì)量屬性進(jìn)行評(píng)估和驗(yàn)證。
[1] 張???史忠植.自主計(jì)算軟件工程方法[J].小型微型計(jì)算機(jī)系統(tǒng),2006,27(6):1077-1082.
[2] 張海俊.基于主體的自主計(jì)算研究[D].北京:中國(guó)科學(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
國(guó)家自然科學(xué)基金資助項(xiàng)目“基于自主構(gòu)件的開放分布式自適應(yīng)軟件系統(tǒng)的開發(fā)方法”(61073020);國(guó)家留學(xué)基金資助項(xiàng)目(201306495003)。
王茂光(1974-),男,副教授、博士,主研方向:分布式智能,軟件工程;王家瑞,碩士研究生。
2013-11-15
2014-04-23E-mail:wangmg@cufe.edu.cn
中文引用格式:王茂光,王家瑞.基于Agent的自主構(gòu)件模型設(shè)計(jì)與評(píng)估[J].計(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.