999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

自適應軟件的環境模型及實現*

2016-06-13 00:16:53江海挺林華山王茂光焦文品
計算機與生活 2016年3期

江海挺,劉 洋,林華山,王茂光,焦文品+

1.北京大學信息科學技術學院軟件研究所,北京1008712.北京大學高可信軟件技術教育部重點實驗室,北京1008713.中央財經大學信息學院,北京100081

ISSN 1673-9418 CODEN JKYTA8

Journal of Frontiers of Computer Science and Technology 1673-9418/2016/10(03)-0301-10

?

自適應軟件的環境模型及實現*

江海挺1,2,劉洋1,2,林華山1,2,王茂光3,焦文品1,2+

1.北京大學信息科學技術學院軟件研究所,北京100871
2.北京大學高可信軟件技術教育部重點實驗室,北京100871
3.中央財經大學信息學院,北京100081

ISSN 1673-9418 CODEN JKYTA8

Journal of Frontiers of Computer Science and Technology 1673-9418/2016/10(03)-0301-10

E-mail: fcst@vip.163.com

http://www.ceaj.org

Tel: +86-10-89056056

* The National Natural Science Foundation of China under Grant Nos. 91318301, U1201252 (國家自然科學基金); the National Basic Research Program of China under Grant No. 2015CB352200 (國家重點基礎研究發展計劃(973計劃)).

Received 2015-06,Accepted 2015-09.

CNKI網絡優先出版:2015-10-09, http://www.cnki.net/kcms/detail/11.5602.TP.20151009.1544.006.html

Key words: self-adaptive; software environment; software modeling; software reuse

摘要:隨著軟件及其運行環境的復雜性和不確定性的上升,軟件要求能夠及時地感知環境的變化,并做出相應的反應。由于環境具有開放、動態、不可控、不可預測等特點,為了實現軟件對不同環境的自動感知和適應,環境被獨立建模,并定義為能夠自維護和自演化的一級實體。為了簡化軟件與環境之間的交互,環境被實現為一個層次結構,為軟件提供面向應用的抽象資源到環境資源之間的自動映射和配置機制,從而提高了環境和軟件的復用性,同時也減輕了軟件開發人員的負擔。

關鍵詞:自適應;軟件環境;軟件建模;軟件復用

1 引言

隨著軟件運行環境的復雜性和不確定性的上升,傳統的軟件已經不能很好地適應環境的變化。自適應軟件(self-adaptive software)會動態評估自身的行為,當評估顯示其自身的行為并非接近其傾向完成的目標,或有可能提供更好的功能或性能時,軟件會改變自身的行為[1]。

環境是自適應系統中的重要組成部分,環境的顯式表示和感知是實現復雜自適應系統的前提[2]。環境從本質上來說應該是獨立于軟件的,它會自主、獨立地變化,并非都由軟件的行為操控。一個環境應當能夠被復用,可以應用于多個軟件系統;相對的,軟件也有獨立性,并不依附于環境而存在,可以應用于不同的環境中。因此,將環境模型建立在自適應軟件內部并不合理,這種解決手段會很大程度上限制軟件系統及環境的復用,使得軟件系統只能適應單一的特定環境,軟件系統內部的環境模型也難以被其他軟件系統使用。而環境所具有的開放、動態、不可控、不可預測等特點[3](如Internet、戰場環境、社會環境),導致即使在自適應軟件內部建立了環境模型,也難以做到全面和靈活,故將環境獨立建模是必要的。但是,怎樣對環境進行建模,以及如何更好地支持環境被使用甚至復用,仍然是需要進一步研究的問題。

為解決上述問題,本文對環境進行了獨立建模,提出了一種自適應軟件的環境模型,該模型可以支持環境的動態變化,并為開發者和使用者提供簡便的接口。本文主要有以下幾點貢獻:第一,提供了環境自身維護和演化的機制,使其真正成為一級實體,并且可以被復用。第二,將軟件對環境的表示與環境的具體實現分開,從而減輕了軟件開發人員的負擔。第三,為軟件對環境的感知和效應提供了簡潔的接口。

本文組織結構如下:第2章介紹了環境的抽象模型,給出了環境的組成成分以及形式化表示;第3章闡述了一種層次型的環境實現方案,對環境的4個層次分別進行了介紹;第4章描述了一個簡單的應用實例(SmartRoom),用來展示應用系統是如何與環境進行交互,并感知和效應環境的;第5章描述了相關工作;第6章為結束語,總結全文并對未來工作進行了展望。

2 環境的抽象模型

自適應軟件的環境包含了軟件所需的各種資源,同時也是軟件訪問或操縱資源的媒介[4]。在定義環境時,除了指出環境中包含哪些資源外,還需要描述環境是如何變化的。因此,將環境(ENV)定義成時鐘(C)和資源(R)的組合。時鐘是環境的一個基礎屬性,用于維持環境運行時序。資源是環境的基礎成分,用于表示環境中的某個變量,資源都有名稱和類型。時鐘和資源定義了環境的各種特征,如狀態(S)、事件(E)、更新(U)和規則(L)。環境時鐘及當前時鐘下資源的取值構成了環境的一個狀態。環境從一個狀態遷移到另外一個狀態表明環境中發生了一個事件。更新是時鐘和資源的函數,用來規定如何根據時鐘的變化改變資源的取值,本質上規定了環境的自變化方法。規則表示在一定的環境狀態下,當一個事件發生后,如何調用更新函數來實現環境的自變化。本文將時鐘、資源、狀態、事件、更新和規則統稱為環境元素。環境由這些環境元素組成,可形式化表示為:

ENV=(C, R, S, E, U, L)

在進行完整的形式化表示之前,首先聲明本文系統中使用的基本元素集合VALUE,用來表示元素的取值(即定義域)。VALUE可以分為NUMBER、STRING、DICT 3個子集合。其中NUMBER是所有數值的集合,STRING是所有字符串的集合,DICT是字典(或<鍵,值>)的集合,可采用遞歸定義:DICT= 2(NUMBER∪STRING)×(NUMBER∪STRING∪DICT)。在這些集合的基礎上,記TYPE={NUMBER, STRING, DICT},為元素值的類型。環境元素可以按照如下方式定義:

(1)時鐘C={c|c∈NUMBER,c≥0},時鐘是數值型的變量,隨著環境的運行而增大。

(2)資源R=STRING×TYPE,?r∈R,可令r= ,r.name表示資源的名稱,r.type表示資源的取值類型。

(3)狀態S={∈C×VALUER|v(r)∈r.type},?s∈S ,可令s= ,s表示環境某一時刻(即s.c)所有資源的取值(即s.v),其中s.v是一個函數,表示資源到其取值的映射。

(4)事件E={∈S×S|s1.c,e表示環境狀態的一個變化,從e.s1變為e.s2。

(5)更新U={u:R×S→VALUE|u()∈r.type},?u∈U,u()=v2表示資源r在狀態s1后的新值,從s1.v(r)變成v2。資源更新的時機也受到時鐘的控制,資源的更新方式有多種,如循環、隨機等簡單變化方式,還可以是某種函數變化。

(6)規則L=E×S→2U,?l∈L,l()=U′,其中U′?U,表示當事件e發生時,如果當前環境的狀態為s,那么U′中的更新都會生效。

上述環境元素的形式化定義中包含了所有可能存在的情況,比如S中包含了所有可能的狀態,E中包含了所有可能的事件。然而在一個特定的應用場景中,人們往往只會關心其中的一部分。因此,在應用環境時,可以定義一個環境實例,實例中的每個環境元素都是ENV中對應環境元素的一個子集,表示環境中應用實例所關心的那部分。以一個房間作為應用場景為例,可以定義如下環境實例ENVa=(Ca, Ra,Sa,Ea,Ua,La)。

(1)時鐘Ca={c|c∈自然數},表示ENVa根據實際應用的需求只關心整點時刻資源的取值。

(2)資源Ra={rt=<“temperature”, NUMBER>, rac=<“AC”,STRING>},rt表示房間中的溫度值,rac表示房間中空調的狀態。

(3)狀態Sa={| c∈Ca,v(rt)∈{x∈NUMBER|x>0},v(rac)∈{“on”,“off”,“broken”}}。狀態集合的定義可以用來描述應用關心的資源取值范圍。Sa的定義說明了ENVa只關心rt取值為正數,rac取值為“on”、“off”、“broken”之一的狀態。

(4)事件Ea={et,eac},其中{et=∈Sa×Sa| s1.c26},eac={∈Sa×Sa| s1.c

(5)更新Ua={ut:{rt}×S→NUMBER,uac:{rac}×S→STRING},其中ut()=s.v(rt)+1,表示資源rt的取值加1;uac()={“on”, s.v(rac)=“off”“off”, s.v(rac)=“on”,表示資源rac的取值在“on”和“off”兩個取值間翻轉。

(6)規則La=Ea×Sa→2Ua,滿足La()={uac},其中se=(et.s2.c,vac:{rac}→{“off”}∪vt:{rt}→NUMBER)。La只定義了一條規則,即在事件et發生的時候(即房間溫度超過26℃),如果當前環境狀態滿足se(即空調處于關閉狀態),那么就觸發更新uac(即打開空調)。

3 環境的實現

環境一方面負責維護資源的狀態及其變化,另一方面作為媒介為自適應軟件提供感知和效應環境的機制(即訪問資源的接口)。但自適應軟件對資源的認知可能與環境本身所定義的不一致,例如對資源的表示方式和粒度不同,對資源之間關系的定義不同等原因,導致軟件無法直接訪問環境資源。另外,環境對資源的定義一般都比較細節,直接調用環境定義的資源訪問接口會使自適應軟件的開發變得非常煩瑣。因此,為了簡化環境和自適應軟件之間的交互,必須在環境的實現中引入一些映射和配置機制。

為了達到這些目的,本文參照網絡協議的OSI模型,將環境實現為一種4層的層次結構,由底向上分別為數據層、管理層、表示層和服務層。環境的實現結構如圖1所示。其中,資源層用于存儲環境中的時鐘(C)和資源(R)以及相應的取值(S的一個元素)。管理層負責狀態(S)、事件(E)、更新(U)的存儲管理,以及規則(L)的執行。管理層除了對數據層的內容進行管理外,還提供一些輔助機制,以幫助自適應軟件更好地獲取并理解環境信息及環境變化。表示層主要用于面向應用的數據(即自適應軟件系統所認知的資源)與環境資源間的轉換。表示層向自適應軟件提供環境的配置和資源映射的接口以及環境定義的動態修改功能。服務層是整個環境與外界(包括自適應軟件和開發者)進行交互的中樞,自適應軟件通過調用服務層提供的接口感知和效應環境。

Fig.1  Structural model of environment圖1 環境的結構模型

3.1資源層

資源層主要承擔數據倉庫的功能,并對上層提供相應的增、刪、查、改資源的接口。環境系統中,資源在這一層只有狀態,沒有動態的特征,時鐘以及所有資源的取值構成了一個狀態。狀態之間的切換需要上層(管理層)去操縱。另外,這一層還會存儲數據的所有歷史記錄,并將數據持久化。應用軟件系統可以研究環境中資源變化的歷史記錄,具有很高的實用價值。

3.2管理層

這一層主要負責管理環境中的動態信息,包括環境的狀態、事件的觸發,并執行規則來維護資源層的資源更新等。利用資源層和管理層就能定義一個完整的環境。管理層使用資源層提供的資源操作接口,對上層提供了定義和使用環境的完整接口。這些接口是最原始最基本的接口,主要包含對R、S、E、U、L這些集合的增刪查改,達到定義和使用一個完整環境的基本功能。

實現上,管理層主要包含訪問控制器、狀態校驗器、事件監聽器、規則執行器4大功能塊。管理層的架構和運行流程如圖2所示(為了避免圖過于復雜,這里只保留了管理層及其上下文相關的表示層和資源層)。訪問控制器是管理層內和上層訪問資源層的入口。上層對環境定義的修改操作都會被映射到相應的功能塊,即狀態相關的操作都會被狀態校驗器接收處理,對事件的所有操作都會交給事件監聽器進行處理,更新和規則的相關操作都會由規則執行器處理。規則的執行是管理層最重要的功能,其完整的執行流程需要經過全部4個功能塊。首先狀態校驗器使用訪問管理器獲取資源取值,檢查相關狀態是否生效,并且標記所有生效狀態。事件監聽器查看狀態校驗器中標記生效的狀態,判斷其中存儲的事件是否被觸發,并標記已經被觸發的事件。規則執行器則根據規則的定義,利用狀態校驗器和事件監聽器判斷需要執行哪些更新,并將更新對應的資源修改命令發送給訪問控制器,由訪問控制器最終執行對資源的修改。

Fig.2  Architecture of manager layer and its runtime processes圖2 管理層架構及運行流程

3.3表示層

表示層的作用主要是在資源層和管理層提供的原始環境定義方法之上,對環境的元素抽象出更高層次的表示方法。表示層提供了一種應用軟件所認知的環境元素到真實環境元素之間的映射方法,并實現了應用軟件對資源的表示到環境中實際資源的表示的自動轉換,使得應用軟件系統能夠根據應用的上下文定義應用相關的環境。

通常來說,應用軟件系統對環境的認知與真實環境會有所不同,很難直接使用環境定義的接口來訪問資源。為此,提供了一套環境元素的映射機制。映射機制提供的功能主要包括:

(1)名稱映射。可以給環境元素(包括資源、狀態、事件、規則)重命名。比如自適應軟件需要一個名稱為AirCondition的資源,而現在只有一個名稱為AC的資源,很明顯它們是同一個,使用一個名稱映射就能直接使用這個資源了。

(2)組合(或聚類)映射。可以將多個同類的環境元素組合成一個新的元素。比如在環境中有兩種與溫度相關的資源(如早晚溫度),可以通過組合映射,將兩個溫度映射到一個新的溫度資源中去(如平均氣溫)。

(3)串聯映射。可以將多個環境元素(包括更新方法和事件)串聯組成一個新的元素。經過串聯的更新在執行時會依次執行被串聯的所有更新。經過串聯的事件,當且僅當被串聯的子事件全部生效才能算是生效。

3.4服務層

服務層負責所有與外界直接交互相關的功能,包括對外提供了定義環境的接口、感知和效應環境的接口、事件通知機制等。

定義環境的服務接口是基于表示層的。應用軟件系統根據自身需求,通過調用環境的定義服務接口,實現應用系統對環境的表示與環境元素的自動映射。服務層的事件機制通過一個對外的消息隊列實現。應用軟件系統能從這個消息隊列中接收環境推送的通知。通知可以是環境中的運行異常報告,也可以是應用系統主動注冊的事件被激活的消息。

環境開始運行后,服務層開始為應用軟件系統提供感知和效應環境的接口:

(1)Sensor( r ),讀取資源r的值;

(2)Effect( r,v ),修改資源r的值為v;

(3)Listen( e,tag ),監聽一個事件e,如果事件激活,那么對應的tag就會被推送給應用系統。

4 實例研究

本文實現了一個模擬智能房間(SmartRoom)的自適應軟件系統。該軟件系統的主要功能是調節房屋中的能耗(TotalPower)和房屋的舒適度(Comfort)之間的平衡。軟件系統一方面需要時刻獲取房屋內各種電器的功耗數據,另一方面還需要房屋內各類傳感數據用來評估房屋的舒適度。軟件系統會時刻關注房屋(即環境)的舒適度和能耗,根據感知到的信息來調整房間的舒適度和能耗(即效應環境)。

4.1軟件與環境的交互

軟件系統的功能以及與環境交互的方式可以用如下偽代碼表示:

1. DefineRes(TotalPower,Comfort)

2. While True

3. comfort = ENV.Sensor(Comfort)

4. tp = ENV.Sensor(TotalPower)

5. if comfort < MIN_COMFORT

6. ENV.Effect(TotalPower,1.2*tp)

7. else

8. ENV.Effect(TotalPower,0.9*tp)

9. wait until next clock

在上述偽代碼中,第1行是一個方法,定義的兩個資源名稱分別為TotalPower和Comfort。前者表示環境的總功耗,數值類型;后者表示環境的舒適度,最大為1,數值越大,越舒適。DefineRes方法內部將會詳細描述如何使用環境系統中已有的資源以及環境提供的接口定義資源,4.2節將詳細描述。之后的幾行表示軟件系統會不斷從環境中感知兩個資源的值(第3、第4行),并且判斷如果環境的舒適度小于MIN_COMFORT(一個可調節的系統參數),就將環境中的總功耗調高20%(第6行),否則表示房屋的舒適度已經達到了要求,那就將功耗調整為原來的90%。

4.2環境模型的定義

在環境系統(ENV)中,已經存在很多資源,包括亮度(Brightness)、溫度(Temperature)、濕度(Humidity)、空調(AirCondition)、電燈(Light)、加濕器(Humidifier)等,前3個資源為數值型,表示房屋內部的狀態,后3個資源也為數值型,表示屋內電器的功耗。同時還有它們之間的規則,包括:

(1)每個時鐘,溫度趨近BEST_TEMPERATURE,空調的功耗越大,趨近速率越大。

(2)每個時鐘,濕度趨近BEST_HUMIDITY,加濕器功耗越大,趨近速率越大。

(3)每個時鐘,亮度趨近BEST_BRIGHTNESS,電燈功耗越大,趨近速率越大。

軟件系統需要定義其所需要的資源到環境中實際已經存在的資源之間的映射。具體映射定義過程在DefineRes中,用如下偽代碼表示:

1. TotalPower = {AirCondition, Light, Humidifier};

2. TotalPower AirCondition+Light+Humidifier;

3. TotalPower?{

4. AirCondition = TotalPower/3;

5. Light = TotalPower/3;

6. Humidifier = TotalPower/3;

7. };

8. ENV.Define(TotalPower);

9. Comfort = {Brightness,Temperature,Humidity};

10. Comfort

11. 1.0-DP(Brightness, BEST_BRIGHTNESS)

12. - DP(Temperature, BEST_TEMPERATURE)

13. - DP(Humidity, BEST_HUMIDITY);

14. ENV.Define(Comfort);

其中第1~8行定義了TotalPower到AirCondition、Light、Humidifier的映射。第1行定義了TotalPower是這3個環境資源組合而成。第2行定義了Total-Power的感知映射,表明它的取值是底層3個資源取值的和。第3~7行定義了TotalPower的效應映射,即外界修改它的值后,對應到底層的3個資源的取值會變為新的TotalPower值的1/3。第8行將定義完的TotalPower發送給環境系統。

第10~14行定義了Comfort資源。類似的,第9行定義了Comfort資源與原始資源的組合關系,第10~13行定義了感知映射,其中DP函數定義如下:

其含義是資源r的取值偏離目標值T的比例。Comfort的直觀含義就是如果溫度、濕度、亮度3個資源的取值都在預先設定的目標值上,那么舒適度為最大值1,否則減去每個資源偏移目標值的比例。第14行,類似第8行,將Comfort的定義傳送給環境系統。

4.3環境內部運行狀態

本節將基于這個實例,描述運行時軟件系統在與環境系統交互過程中,環境系統內部的運行狀態。下面分別以Sensor(Comfort)和Effect(TotalPower, 1.2*tp)為例進行說明。

4.3.1 Sensor(Comfort)

如圖3所示,Sensor(Comfort)的流程可以分為5步。盡管前面提到環境實際上是一個4層結構,但是為了簡化圖形描述,服務層和管理層在感知Comfort的過程中并沒有起到關鍵作用,只是將上層任務轉發給下層而已,因此在圖示中略去。具體的5步如下:

(1)軟件系統向環境系統發送Sensor(Comfort)命令,環境的服務層接受命令,并把命令傳遞給表示層。

(2)表示層得到感知命令后,讀取Comfort資源的定義,自動生成如下代碼:

1. b = Sensor(Brightness)

2. h = Sensor(Humidity)

3. t = Sensor(Temperature)

4. Comfort = 1.0

5. - DP(b, BEST_BRIGHTNESS)

6.- DP(t, BEST_TEMPERATURE)

7.- DP(h, BEST_HUMIDITY);

(3)執行代碼的第1~3行,讀取組合資源當前時刻的值。調用管理層的接口,分別執行Sensor(Brightness)、Sensor(Temperature)和Sensor(Humidity),用3.1/3.2/3.3虛線流程表示。

(4)表示層得到依賴的子資源的當前值后,執行代碼的第4~7行,計算Comfort的值,并返回給服務層。

(5)服務層將Comfort的取值返回軟件系統。

Fig.3  Flow chart of Sensor(Comfort)圖3  Sensor(Comfort)流程圖

4.3.2 Effect(TotalPower,1.2*tp)

如圖4所示,Effect(TotalPower, 1.2*tp)可以分為6步。與圖3一樣,為了簡化圖形描述,略去了功能單一的服務層部分,不同的是,這里引入了管理層的詳細流程。因為當底層資源被修改后,會導致環境的狀態發生變化,有些更新操作就有可能被動地觸發。具體過程如下:

(1)軟件系統向環境系統發送Effect命令,環境的服務層接收到命令后,傳遞給表示層。

(2)表示層得到效應命令后,讀取TotalPower資源的定義(見4.2節偽代碼中的第1~7行),自動生成如下代碼:

1. Effect(Humidifier, 0.4*tp)

2. Effect(Light, 0.4*tp)

3. Effect(AirCondition, 0.4*tp)

(3)根據之前生成的代碼,將Effect(Humidifier, 0.4*tp)、Effect(Light, 0.4*tp)和Effect(AirCondition, 0.4*tp)發送給管理層中的訪問控制器(3.1~3.3)。

(4)管理層的訪問控制器執行相應的命令(4.1~ 4.3),修改這3個資源的取值為0.4*tp。

(5)管理層檢查當前的系統狀態,找出生效的規則:

①根據加濕器功率,修改濕度值。

②根據空調功率,修改溫度值。

③根據電燈功率,修改亮度值。

(6)執行生效的規則,修改Brightness、Humidity、Temperature的值。

Fig.4  Flow chart of Effect(TotalPower,1.2*tp)圖4  Effect(TotalPower, 1.2*tp)流程圖

4.4仿真實驗

按照如上實例所述進行仿真實驗,圖5是系統前400個時刻內TotalPower和Comfort的變化關系,圖6是相應的AirCondition和Temperature這兩個環境內資源的變化圖(此次實驗中,其他兩對資源變化規律與之相同)。圖中的值是每個時鐘開始時的值。

Fig.5  TotalPower and Comfort vs clock圖5 總功率和舒適度隨時鐘變化圖

Fig.6  AirCondition and Temperature vs clock圖6 空調和溫度隨時鐘變化圖

(1)每100個時鐘會對Temperature、Humidity、Brightness這3個資源的取值進行隨機的擾動,其中Temperature的取值展示在圖6中,與之對應的Comfort的變化在圖5中。

(2)環境內部資源更新規則是電器功率越大,相應的感應數值就越快到達目標值。而且3組規則的變化方式相同,這里只列出了AirCondition和Temperature隨時鐘的變化圖(見圖6)。

(3)因為TotalPower的變化方式都是按比例變化,所以在圖中使用相應的對數值作為變化的參考。

(4)AirCondition、Humidifier、Light的取值都是TotalPower的1/3,因此并沒有用專門的對比變化圖表示。而Temperature、Humidity、Brightness這3個資源與Comfort的關系也是前3者越接近目標值,Comfort越接近1,同樣沒有使用單獨的圖進行描述。

從圖5可以看出對于軟件系統,只是簡單地調整了TotalPower的取值,就實現了對Comfort的動態調整。而從環境系統的內部來看,整體的數據變化流程則是TotalPower→AirCondition、Humidifier、Light→Temperature、Humidity、Brightness→Comfort,要完成這個過程,對于外部的軟件系統來說只需要定義好TotalPower和Comfort到環境中已有資源的映射關系即可,至于映射關系的實現以及資源內部的更新規則則完全不用關心,全部交給環境系統就可以了。這一點也是將自適應軟件系統的環境進行單獨建模的最大好處。一方面能實現環境模型的復用,另一方面又極大地簡化了自適應軟件使用環境的方法。

5 相關工作

最近,對于環境在多agent系統中扮演的角色,人們的認識有了根本性的改變。最近的研究提出在多agent系統中,應當將環境作為一級設計抽象,并創造性地使用環境[5]。

文獻[6]介紹了多agent系統研究的現狀,給出了環境研究方面的概述,并闡述了環境作為一級設計抽象在多agent系統中的地位,為本文對于環境的建模提供了參考。文獻[7]將環境作為一級設計抽象整合進了Agent-Group-Role(AGR)模型,能夠對智能體提供3種不同層次的支持。本文為進一步方便多agent系統對環境的訪問,將環境實現為服務層、表示層、管理層和資源層的4層結構,通過加入表示層,提供了一種應用軟件所認知的環境元素到真實環境元素之間的映射機制。文獻[8]主張用新的形式化方法來明確表示環境中的間接互動,并提出一套消息傳遞機制。該文主要關注的是智能體之間的消息傳遞以及協作,而本文更加關注自適應系統環境與agent之間的消息傳遞。文獻[9]闡述了環境在多agent系統中的管理角色,由環境來驅動agent的行為。本文更進一步,賦予了環境自主變化的能力,以便于研究不同環境配置下,多agent系統的行為。上述工作雖然意識到將環境作為一級設計抽象的重要性,但卻忽視了環境的動態特性,或者對其提供的支持較少,使其難以自演化和維護。

目前針對自適應軟件系統駐留環境的研究,大多側重于對環境的表示和感知,特別是呂建[10-13]、毛新軍[2,14]等人的團隊都取得了不錯的進展,但是對于環境的自主變化以及復用的關注還不夠。

agent和環境職責的不同可以有助于實現關注點分離。關注點分離技術一方面使得代碼更加清晰、便于理解,另一方面促進了代碼的復用,從而有利于軟件的開發和維護[15]。文獻[16]闡述了環境作為一級設計抽象在多agent系統中的職能。

在多agent系統環境領域,另一個重要的研究主題是環境工程。目前面向agent的方法學很少提供這方面的支持。SODA[17]和GAIA[4]雖然涉及到了環境,但是對于環境的支持也只限于資源的表示和簡單訪問控制等。

6 結束語

本文將自適應軟件的環境作為一級實體單獨建模,提出了一種環境的抽象模型及其層次化的實現模型。本文主要的貢獻有以下幾點:將環境作為一級實體獨立建模,并提供環境自身維護和演化的機制,實現了一種可復用的環境。實現了一種層次結構的環境,尤其是在環境的實現中,增加了一個表示層,使得軟件的開發與實現和環境的開發與實現可以獨立進行。軟件開發人員只需從應用軟件系統的角度來表示環境,并感知和效應環境,環境則負責實現不同抽象程度的資源之間的自動映射。

在未來的研究工作中,將在目前環境模型的基礎上,進一步細化相關概念,完善環境元素的映射機制,使得本文模型能夠更加有效地支持環境和軟件的復用。

References:

[1] Laddaga R. Guest editor?s introduction: creating robust software through self-adaptation[J]. IEEE Intelligent Systems, 1999, 14(3): 26-29.

[2] Dong Menggao, Mao Xinjun, Guo Yi, et al. Representing and perceiving environment of complex self-adaptive multiagent systems[J]. Journal of Computer Research and Development, 2012, 49(2): 402-412.

[3] Cicirelli F, Giordano A, Nigro L. Efficient environment management for distributed simulation of large-scale situated multi-agent systems[J]. Concurrency and Computation: Practice and Experience, 2015, 27(3): 610-632.

[4] Zambonelli F, Jennings N R, Wooldridge M. Developing multiagent systems: the Gaia methodology[J]. ACM Transactions on Software Engineering and Methodology, 2003, 12(3): 317-370.

[5] Weyns D, Helleboogh A, Schumacher M, et al. Research on environments in multiagent systems: reflection on the stateof-the-art[R]. 2006.

[6] Weyns D, Parunak H V D, Michel F, et al. Environments for multiagent systems state-of-the-art and research challenges[C]//LNCS 3374: Proceedings of the 1st International Workshop on Environments for Multi-Agent Systems, New York, USA, Jul 19, 2004. Berlin, Heidelberg: Springer, 2005: 1-47.

[7] Ferber J, Michel F, Báez J. AGRE: integrating environments with organizations[C]//LNCS 3374: Proceedings of the 1st International Workshop on Environments for Multi-Agent Systems, New York, USA, Jul 19, 2004. Berlin, Heidelberg: Springer, 2005: 48-56.

[8] Keil D, Goldin D. Indirect interaction in environments for multi-agent systems[C]//LNCS 3830: Proceedings of the 2nd International Workshop on Environments for Multi-Agent Systems II, Utrecht, The Netherlands, Jul 25, 2005. Berlin, Heidelberg: Springer, 2006: 68-87.

[9] Schumacher M, Ossowski S. The governing environment [C]//LNCS 3830: Proceedings of the 2nd International Workshop on Environments for Multi-Agent Systems II, Utrecht, The Netherlands, Jul 25, 2005. Berlin, Heidelberg: Springer, 2006: 88-104.

[10] Lv Jian, Ma Xiaoxing, Tao Xianping, et al. Explicit environmental constructs for Internetware[J]. Scientia Sinica: Informationis, 2013, 43(1): 1-23.

[11] Huang Yu, Yu Jianping, Ma Xiaoxing. Monitoring properties of open environments[J]. Journal of Software, 2011, 22 (5): 865-876.

[12] Ma Jun, Tao Xianping, Zhu Huaihong, et al. Enhancing multi-agent system with context-awareness[J]. Journal of Software, 2012, 23(11): 2905-2922.

[13] Ma Jun, Cao Jiannong, Ma Chao, et al. Modeling and manipulating context in pervasive computing based on set theory[J]. Journal of Software, 2011, 22(S2): 105-119.

[14] Cao Jiang, Mao Xinjun, Wang Huaimin, et al. Model-driven development methodology for complex self-adaptive multiagent systems[J]. Computer Science, 2012, 39(2): 126-131.

[15] McKinley P K, Sadjadi S M, Kasten E P, et al. Composing adaptive software[J]. IEEE Computer, 2004, 37(7): 56-64.

[16] Weyns D, Schumacher M, Ricci A, et al. Environments in multiagent systems[J]. The Knowledge Engineering Review, 2005, 20(2): 127-141.

[17] Omicini A. SODA: societies and infrastructures in the analysis and design of agent-based systems[C]//LNCS 1957: Proceedings of the 1st International Workshop on Agent-Oriented Software Engineering, Limerick, Ireland, Jun 10, 2000. Berlin, Heidelberg: Springer, 2001: 185-193.

附中文參考文獻:

[2]董孟高,毛新軍,郭毅,等.復雜自適應多Agent系統的環境表示及感知[J].計算機研究與發展, 2012, 49(2): 402-412.

[10]呂建,馬曉星,陶先平,等.面向網構軟件的環境顯式化技術[J].中國科學:信息科學, 2013, 43(1): 1-23.

[11]黃宇,余建平,馬曉星,等.開放環境特性感知技術[J].軟件學報, 2011, 22(5): 865-876.

[12]馬駿,陶先平,朱懷宏,等.多Agent系統的上下文感知增強[J].軟件學報, 2012, 23(11): 2905-2922.

[13]馬駿,曹建農,馬超,等.普適計算中基于集合的上下文建模和操作[J].軟件學報, 2011, 22(S2): 105-119.

[14]曹江,毛新軍,王懷民,等.復雜自適應多Agent系統的模型驅動開發方法[J].計算機科學, 2012, 39(2): 126-131.

JIANG Haiting was born in 1991. He is an M.S. candidate at Institute of Software, School of Electronics Engineering and Computer Science, Peking University. His research interest is adaptive software.江海挺(1991—),男,浙江臺州人,北京大學信息科學技術學院軟件研究所碩士研究生,主要研究領域為自適應軟件。

LIU Yang was born in 1991. He is a Ph.D. candidate at Institute of Software, School of Electronics Engineering and Computer Science, Peking University. His research interest is adaptive software.劉洋(1991—),男,江蘇泰州人,北京大學信息科學技術學院軟件研究所博士研究生,主要研究領域為自適應軟件。

LIN Huashan was born in 1991. He is an M.S. candidate at Institute of Software, School of Electronics Engineering and Computer Science, Peking University. His research interest is adaptive software.林華山(1991—),男,福建泉州人,北京大學信息科學技術學院軟件研究所碩士研究生,主要研究領域為自適應軟件。

WANG Maoguang was born in 1974. He received the Ph.D. degree from Institute of Computing Technology, Chinese Academy of Sciences in 2007. Now he is an associate professor at Central University of Finance and Economics. His research interests include software engineering and artificial intelligence, etc.王茂光(1974—),男,山東招遠人,2007年于中國科學院計算技術研究所獲得博士學位,現為中央財經大學副教授,主要研究領域為軟件工程,人工智能等。發表學術論文50多篇,承擔過中國博士后基金、國家科技支撐計劃等多項課題。

JIAO Wenpin was born in 1969. He received the Ph.D. degree from Institute of Software, Chinese Academy of Sciences in 2000. Now he is a professor and Ph.D. supervisor at Peking University. His research interests include software engineering, multi-agent systems, adaptive software and formal methods, etc.焦文品(1969—)男,湖北天門人,2000年于中國科學院軟件研究所獲得博士學位,現為北京大學教授、博士生導師,主要研究領域為軟件工程,多主體系統,自適應軟件,軟件形式化方法等。發表學術論文70多篇,主持過多項國家自然科學基金、863計劃等項目。

Environment Model of Self-Adaptive Software and Its Implementation?

JIANG Haiting1,2, LIU Yang1,2, LIN Huashan1,2, WANG Maoguang3, JIAO Wenpin1,2+
1. Institute of Software, School of Electronics Engineering and Computer Science, Peking University, Beijing 100871, China
2. Key Lab of High Confidence of Software Technologies (Peking University), Ministry of Education, Beijing 100871, China
3. School of Information, Central University of Finance and Economics, Beijing 100081, China
+ Corresponding author: E-mail: jwp@sei.pku.edu.cn

JIANG Haiting, LIU Yang, LIN Huashan, et al. Environment model of self-adaptive software and its implementation. Journal of Frontiers of Computer Science and Technology, 2016, 10(3):301-310.

Abstract:With the increment of complexity and uncertainty in the software runtime environment, software requires the ability to perceive and react to the changes in the environment in time. Since the environment is open, dynamic, uncontrollable and unpredictable, for facilitating software?s automatic perception and adaptation to different environments, environments are defined as first-class entities, which are self-maintainable and self-evolvable, and modelled independently. For simplifying the interaction between software and runtime environments, environments are implemented in a hierarchical structure and provide an automatic mapping and configuration mechanism for software systems to sense and effect environmental resources from the perspectives of applications. The approach presented in this paper improves the reusability of environments and software, and reduces the burden on software developers.

doi:10.3778/j.issn.1673-9418.1506070

文獻標志碼:A

中圖分類號:TP301

主站蜘蛛池模板: 91黄视频在线观看| 亚洲精品无码抽插日韩| 国产高清精品在线91| 国产办公室秘书无码精品| 97久久超碰极品视觉盛宴| 在线国产你懂的| 亚洲综合天堂网| 亚洲国产欧美中日韩成人综合视频| a级毛片免费在线观看| 国产精品成人免费视频99| 国产麻豆精品手机在线观看| 91网在线| 国产亚洲欧美日韩在线一区| 亚洲人成电影在线播放| 欧美伊人色综合久久天天| 国内老司机精品视频在线播出| 亚洲色偷偷偷鲁综合| 国产成人区在线观看视频| 亚洲第一黄色网址| 亚洲天堂视频在线免费观看| 毛片在线看网站| 国产乱子伦精品视频| 亚国产欧美在线人成| yy6080理论大片一级久久| 久久频这里精品99香蕉久网址| 国产国语一级毛片| 99精品在线看| 四虎在线高清无码| 国产精品视频猛进猛出| 久久国产精品77777| 99精品这里只有精品高清视频| 91国内在线视频| 久久久久亚洲精品成人网| 婷婷综合缴情亚洲五月伊| 怡红院美国分院一区二区| 成人综合久久综合| 亚洲综合婷婷激情| 久久久精品国产亚洲AV日韩| 亚洲av中文无码乱人伦在线r| 婷婷六月天激情| 青青草原国产av福利网站| 国产精品蜜芽在线观看| 国产不卡在线看| 国产精品欧美日本韩免费一区二区三区不卡| 99热国产这里只有精品无卡顿"| 在线另类稀缺国产呦| 亚洲日韩精品伊甸| 亚洲视频色图| 亚洲欧美日韩动漫| 亚洲啪啪网| 国产成人你懂的在线观看| 91香蕉视频下载网站| 国产成人精品一区二区不卡| 免费在线视频a| 伊人久久综在合线亚洲2019| 国产精品久久久久无码网站| 色婷婷成人| 国产高清在线精品一区二区三区| 99久久精品久久久久久婷婷| 97se亚洲综合在线韩国专区福利| 爽爽影院十八禁在线观看| 国产在线啪| 国产流白浆视频| 在线国产三级| 野花国产精品入口| 日韩欧美中文字幕一本| 国产嫩草在线观看| 福利一区在线| 99久久免费精品特色大片| 一本无码在线观看| 黄色网站不卡无码| 国产精品视频a| a级毛片毛片免费观看久潮| 精品国产亚洲人成在线| 久久久久亚洲Av片无码观看| 99无码中文字幕视频| 国产精品不卡片视频免费观看| 欧美日韩高清| 欧美在线综合视频| 国产小视频网站| 成人午夜视频网站| 思思99热精品在线|