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