元胞自動機建模的網(wǎng)構(gòu)軟件自適應方法研究_第1頁
元胞自動機建模的網(wǎng)構(gòu)軟件自適應方法研究_第2頁
元胞自動機建模的網(wǎng)構(gòu)軟件自適應方法研究_第3頁
元胞自動機建模的網(wǎng)構(gòu)軟件自適應方法研究_第4頁
元胞自動機建模的網(wǎng)構(gòu)軟件自適應方法研究_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、元胞自動機建模的網(wǎng)構(gòu)軟件自適應方法研究摘 要:網(wǎng)構(gòu)軟件的自適應性是目前網(wǎng)構(gòu)軟件研究的重要方向之一。本文提出了一種元胞自動機建模的網(wǎng)構(gòu)軟件自適應方法,該方法結(jié)合元胞自動機理論,對軟件體系結(jié)構(gòu)(SA)進行行為建模,反映自適應過程中的變化;設計了適合分布式環(huán)境特點的兩層系統(tǒng)架構(gòu);同時在以往工作的基礎(chǔ)上進行了改進.在不良模式檢測過程中,為了減少管理員失誤帶來的損失,建立不良模式庫,方便根據(jù)運行時刻的系統(tǒng)信息找到真正的不良模式。關(guān)鍵詞:自適應;軟件體系結(jié)構(gòu);元胞自動機;網(wǎng)構(gòu)軟件中圖分類號:TP1 引言隨著網(wǎng)絡環(huán)境的開放與動態(tài)性,以及用戶使用方式的個性化要求,要求軟件能感知外部網(wǎng)絡環(huán)境的動態(tài)變化,并隨著這

2、種變化按照功能指標、性能指標和可信性指標等進行靜態(tài)的調(diào)整和動態(tài)的演化,以使系統(tǒng)具有盡可能高的用戶滿意度。這樣一種新的軟件形態(tài)就是網(wǎng)構(gòu)軟件,其具有自主性、協(xié)同性、反應性、演化性和多態(tài)性等特點1。這些特性在技術(shù)上的共性之一可歸結(jié)為自適應性,即,軟件能夠感知環(huán)境的變化,并根據(jù)環(huán)境的變化改變自身行為,采取適應性動作,以適應資源的可變性、用戶需求的變化以及系統(tǒng)錯誤2。簡單來說,是指在系統(tǒng)運行時刻沒有人工參與,完全由軟件來監(jiān)控和調(diào)整自身。近年來,關(guān)于網(wǎng)構(gòu)軟件自適應方面已做了一些研究,主要包括:通過構(gòu)件實體之間的協(xié)同模式以及演化的方式來動態(tài)地適應外部環(huán)境變化3,這里所說的環(huán)境變化是廣義的,包含了資源變化與需

3、求變化的語義。文獻3是這方面的代表工作,提出了一種以服務實體與協(xié)同部分分離、基于第三方面服務實體的協(xié)同聚合、協(xié)同模式的設計與演化適應環(huán)境變化為特征的開放協(xié)同軟件模型作為網(wǎng)構(gòu)軟件的基礎(chǔ)模型。使用智能Agent,從軟件實體協(xié)同方式的動態(tài)調(diào)整角度來構(gòu)建網(wǎng)構(gòu)軟件的自適應性質(zhì)和自演化功能。另外一類重要工作是基于軟件體系結(jié)構(gòu)的網(wǎng)構(gòu)軟件自適應研究。文獻4是這方面的代表工作,提出了一種以體系結(jié)構(gòu)為中心的網(wǎng)構(gòu)軟件自適應方法,即監(jiān)測、分析、規(guī)劃、實施等自適應活動均圍繞軟件體系結(jié)構(gòu)展開,其中,網(wǎng)構(gòu)軟件運行狀態(tài)和行為以運行時軟件體系結(jié)構(gòu)的方式實時展現(xiàn)和在線調(diào)整;自適應相關(guān)知識通過軟件體系結(jié)構(gòu)記錄、組織和加工,以實現(xiàn)系

4、統(tǒng)狀態(tài)和行為的自動分析和調(diào)整規(guī)劃。但是總的來看,目前對于網(wǎng)構(gòu)軟件在自適應過程中自動化水平、復用性方面還存在一定的缺陷。比如:文獻4中要求管理員事先建立不良模式(描述帶來負面影響的模式)和良好模式(描述無影響或帶來正面影響的模式),這個對管理員的要求比較高,并且要有豐富的經(jīng)驗,能夠準確去預測系統(tǒng)中可能存在的不良模式,來指導整個自適應活動;另一方面,將自適應調(diào)整映射為中間件的實際操作,由中間件去實現(xiàn)自適應。但中間件只能針對特定的軟件體系結(jié)構(gòu)去調(diào)整,復用性不是很高。針對以上問題,本文提出了一種元胞自動機建模的網(wǎng)構(gòu)軟件自適應方法。首先,運用軟件體系結(jié)構(gòu)對網(wǎng)構(gòu)軟件基本形態(tài)建模,然后,使用元胞自動機對軟件

5、體系結(jié)構(gòu)的行為建模,實現(xiàn)自適應。同時,本文還在以往的研究基礎(chǔ)之上進行了改進。為了減少因管理員預測失誤導致自適應失敗帶來的損失,采用自動檢測:對系統(tǒng)增加了觸發(fā)設施。并且單獨建立了不良-2-模式庫,事先預存一些不良模式,然后定期由管理員進行維護(修改和更新)。本文余下的部分組織為:第二節(jié)概述整個方法;第三節(jié)介紹關(guān)鍵技術(shù);第四節(jié)實驗與評估;第五節(jié)結(jié)論。2 方法概述網(wǎng)構(gòu)軟件的自適應能力一般包括兩方面的含義:其一是對外部環(huán)境的變化作出適當?shù)姆磻?;其二是對系統(tǒng)需求的變化作出適當相應的反應;從而使得系統(tǒng)所提供的服務功能或性能等維持在一個令人滿意的、具有一定可信度的水平上5。本文的研究工作就是系統(tǒng)如何能夠應開

6、發(fā)環(huán)境和需求的動態(tài)變化對自身進行動態(tài)調(diào)整以適應變化。本文利用元胞自動機對SA 的行為建模,此時SA 是一個分布共享的對象,作為自適應的驅(qū)動因素(帶來負面影響的SA 形成的不良模式),進行自適應的依據(jù)(根據(jù)不良模式進行合適的適應性動作),以及自適應的載體。具體的自適應系統(tǒng)采用兩層系統(tǒng)架構(gòu),如圖1所示:圖1 自適應系統(tǒng)架構(gòu)用戶層 用戶層是系統(tǒng)的接口,主要包括兩項內(nèi)容:1)監(jiān)測器本系統(tǒng)的監(jiān)控機制,對運行系統(tǒng)進行監(jiān)控,負責應用系統(tǒng)狀態(tài)信息的采集,并在產(chǎn)生變化時拋出事件。2)可視化建模建立不良模式模型。向不良模式庫中添加新的不良模式,由管理員維護,負責對不良模式庫進行定期的更新。系統(tǒng)層 系統(tǒng)層是整個實現(xiàn)

7、自適應的核心,由其完成系統(tǒng)自適應的過程,其中包括庫(不良模式庫、動作庫、規(guī)則庫),以及對SA 建模的元胞自動機總控制程序。管理員更新不良模式庫時,也將該不良模式對應的動作和規(guī)則分別添加到動作庫和規(guī)則庫中。首先監(jiān)測器拋出事件,元胞自動機進行捕獲;然后進行不良模式檢測,根據(jù)采集到的應用系統(tǒng)相關(guān)信息與不良模式庫進行匹配,找到存在的不良模式,也就找到了匹配該事件的規(guī)則;接著,在規(guī)則庫中找到不良模式對應的動作,最后將適應性動作反映到運行時刻體系結(jié)構(gòu)對象中,譬如:增加(Add)構(gòu)件、刪除(Del)構(gòu)件等,完成整個自適應行為。本系統(tǒng)的自適應邏輯在系統(tǒng)中的執(zhí)行流程,也正是自適應的觸發(fā)設施:事件-規(guī)則-動作。-

8、3-其減少了人工參與,從而減少失誤,實現(xiàn)對系統(tǒng)中不良模式的自動檢測。由事件的拋出,引發(fā)元胞自動機總控制程序在規(guī)則庫中找尋匹配該事件的規(guī)則,從規(guī)則中提取出動作,執(zhí)行之,完成一次自適應行為。其中,規(guī)則和動作以元組的形式存放。規(guī)則表示為(事件,不良模式名稱,動作),動作表示為(動作類型,動作名稱,參數(shù)序列,實現(xiàn)變化動作的類)。而元胞自動機總控制程序就是捕獲事件,匹配應用系統(tǒng)中的不良模式,根據(jù)不良模式找到相應的適應規(guī)則,并執(zhí)行規(guī)則中指定的適應性動作,完成系統(tǒng)的適應過程。因此元胞自動機部件是系統(tǒng)的核心部分之一,除此之外,對不良模式庫的管理和不良模式的檢測也是本系統(tǒng)的核心部分,具體細節(jié)見第三節(jié)。3 關(guān)鍵技

9、術(shù)軟件體系結(jié)構(gòu)作為自適應的載體,對于其定義,目前學術(shù)界還未形成統(tǒng)一的意見,根據(jù)本系統(tǒng)模型,采用Garlan&Show 的定義:SA = components, connectors, constrains。其中,構(gòu)件(component)可以是一組代碼,如程序模塊,也可以是一個獨立的程序,如數(shù)據(jù)庫服務器。連接件(connector)可以是過程調(diào)用、管道、遠程過程調(diào)用等,用于構(gòu)件之間的相互作用。約束(constrains)一般為對象連接時的規(guī)則,或指明構(gòu)件連接的勢態(tài)和條件。3.1 不良模式庫為了查詢到應用系統(tǒng)中的不良模式,需要與不良模式庫中的不良模式進行匹配,那么定義不良模式時要有嚴格的規(guī)范標準

10、。具體由管理員進行管理,主要分為兩個步驟:1.建立不良模式:利用用戶層中的可視化建模工具建立不良模式。方便管理員去更新不良模式庫,也便于管理員更直觀地了解不良模式。同時,管理員也要編寫相應的規(guī)則和動作,一起存放到系統(tǒng)層的相應庫中。2.不良模式注冊:要將不良模式存儲在計算機中,那么一個完整的不良模式記錄應該包括:應用系統(tǒng)狀態(tài)(用于識別應用系統(tǒng)中存在的不良模式)、造成該狀態(tài)的原因、該狀態(tài)引發(fā)的不良后果(用于匹配拋出事件)、相應的調(diào)整方案(指導應用系統(tǒng)的調(diào)整)。其中,應用系統(tǒng)狀態(tài)又包含三類信息:1)構(gòu)件信息:包括構(gòu)件類型(如EJB/Servlet等)、構(gòu)件方法(如方法名稱、方法個數(shù)等)、構(gòu)件配置(如

11、實例池大小等)和構(gòu)件操作(如構(gòu)件回調(diào)方法等)。2)構(gòu)件的交互信息:包括方法調(diào)用類型(如同步/異步調(diào)用等)、方法調(diào)用參數(shù)(如參數(shù)大小等)、方法調(diào)用序列。3)境信息:包括中間件服務配置信息與底層硬件信息。在上述信息中,除了某些與應用邏輯相關(guān)的構(gòu)件操作以外,其余信息都是可以由中間件自動獲取,因此,大部分的不良模式都可以自動檢測。這部分也是由監(jiān)測器去完成,監(jiān)測器是一個廣義的概念,完成對系統(tǒng)性能的監(jiān)測以及應用系統(tǒng)信息的采集。3.2 不良模式檢測在進行不良模式檢測之前,需要先采集應用系統(tǒng)相關(guān)的信息,包括靜態(tài)信息和運行時刻的動態(tài)信息。這個由監(jiān)測器拋出事件后開始進行采集。應用系統(tǒng)的靜態(tài)信息,比如構(gòu)件名稱、構(gòu)件

12、類型等可以從部署描述符里得到。而運行時刻信息,可以通過給中間件添加截取器的方式來進行采集。截取器會把用戶關(guān)心的運行時刻信息寫到日志文件中,可以在不被應用感知的情況下添加、刪除,而且可以動態(tài)的觸發(fā)。在采集到應用系統(tǒng)信息之后,就可以進行不良模式的檢測工作:將采集到的應用系統(tǒng)信-4-息與不良模式庫中的不良模式進行匹配,以檢測出當前運行系統(tǒng)中存在的不良模式。其中對于構(gòu)件信息的匹配,可以通過簡單的遍歷來查找與模式匹配的狀態(tài)信息。對于構(gòu)件交互信息匹配,由于一般情況下構(gòu)件之間的調(diào)用數(shù)目都很龐大,采用數(shù)據(jù)挖掘技術(shù)中的相關(guān)規(guī)則算法6來完成任務,可以查找出符合一定條件的調(diào)用序列,從而完成不良模式的檢測7。3.3

13、元胞自動機的SA 建模為了能夠全面準確地描述所感知的變化和實施的調(diào)整,本文應用元胞自動機對SA 的行為建模,實現(xiàn)SA 的動態(tài)性,并利用面向?qū)ο蟮姆椒ㄍ瓿烧麄€自適應動作。其中,按照SA模型中元素的種類,SA 的動態(tài)性可以分解為實體調(diào)整、實體間關(guān)系調(diào)整和實體屬性調(diào)整。實體包括構(gòu)件和連接件。實體的調(diào)整包括Add 和Delete(增加一個實體、刪除一個實體)兩種操作;實體間關(guān)系調(diào)整可以看成是改變元胞的鄰居;實體屬性調(diào)整就是改變實體的屬性值,例如:實體類型、名稱等。元胞自動機(Cellular Automata,簡稱CA)8由最基本的四部分組成:元胞、元胞空間、鄰居及規(guī)則。其是一類模型的總稱,或者說是一

14、個方法框架。特點是時間、空間、狀態(tài)離散,每個變量按照一定的局部規(guī)則在離散的時間維上演化。正好能很好地描述軟件體系結(jié)構(gòu)在自適應過程中的動態(tài)變化,即,一組離散地分布在系統(tǒng)中的各個構(gòu)件,按照特定的自適應規(guī)則進行動態(tài)演化。要利用元胞自動機建立SA 動態(tài)模型,需要擴展現(xiàn)有的標準元胞自動機模型。根據(jù)Garlan&Show 模型的定義,本文采用了如圖2 所示的SA 簡化模型(假設:一個系統(tǒng)的SA 由4 個構(gòu)件和4 個連接件構(gòu)成)。對該SA 簡化模型形式化后得到一個有向圖G4=(V(G4),E(G4),FG4),其中V(G4)為系統(tǒng)構(gòu)件集合,E(G4)為系統(tǒng)連接件集合,F(xiàn)G4 為V(G4) 到E(G4)上的函

15、數(shù),即構(gòu)件和連接件之間的關(guān)系。針對該SA 簡化模型圖,可以構(gòu)造對應的元胞自動機模型(CA 模型)M=(L,S,N,F),其中L、S、N 和F 的定義如下:L 為元胞空間:本文將元胞分布的二維空間作為元胞空間,并定義了元胞構(gòu)型(configuration),即在某個時刻元胞空間上所有元胞狀態(tài)的空間分布組合,這里將SA 產(chǎn)生的模型(良好模型和不良模型)等同于該時刻的元胞構(gòu)型。用多維的整數(shù)矩陣來保存,如圖3 所示,為SA 關(guān)系鄰接矩陣圖。每個橢圓關(guān)聯(lián)著兩個具有直接交互方向關(guān)系構(gòu)件,其方向性由行和列分別表示,行為被關(guān)聯(lián)方向的末尾構(gòu)件,列為被關(guān)聯(lián)方向的起始構(gòu)件。三角形表示構(gòu)件的自交互關(guān)系,這種關(guān)系隱藏在

16、構(gòu)件自身內(nèi)部,本系統(tǒng)中不予考慮。將橢圓用1表示,其余用0 表示,便得到了 SA 模型的整數(shù)矩陣。S 為元胞的狀態(tài):嚴格意義上,元胞自動機的元胞只能有一個狀態(tài)變量,但在本文中進行了擴展,可以擁有多個狀態(tài)變量。N 為元胞鄰居:本文定義與元胞有語義關(guān)系的元胞為該元胞的鄰居。對圖2 所示SA 模型而言,元胞component1 的鄰居是 component2、component3,其他的元胞鄰居依此類推。F為動態(tài)規(guī)則:以上的元胞及元胞空間只表示了系統(tǒng)的靜態(tài)成分,為將“動態(tài)”引入系統(tǒng),必須加入動態(tài)規(guī)則。本文的動態(tài)規(guī)則將元胞自動機狀態(tài)的變化看成是對數(shù)據(jù)或信息的判斷和處理。-5-圖2 SA 簡化模型圖3 S

17、A 關(guān)系鄰接矩陣根據(jù)上述元胞的特點可以抽象為面向?qū)ο蟮乃枷搿拿嫦驅(qū)ο蟮慕嵌葋碇v,本系統(tǒng)的對象就是元胞,所有的運算都是圍繞著元胞來進行的,元胞有自己的狀態(tài)屬性和動作行為。這完全符合面向?qū)ο蟮乃季S。元胞的狀態(tài)就相當于對象的屬性,元胞的演化規(guī)則就相當于對象的行為,這樣就可以定義一個元胞類。根據(jù)SA 的動態(tài)性調(diào)整,屬性包括鄰居節(jié)點的元胞編號、實體名稱和實體類型。元胞類的動作包括Add 或Delete 實體,改變元胞鄰居編號和更改屬性值。當系統(tǒng)違反了事先的約束,監(jiān)測器就可以檢測到相應的事件,然后匹配不良模式,根據(jù)該不良模式找到所包含的實體,也就是找到需要進行動態(tài)調(diào)整的元胞空間,接著按照規(guī)則查找到相應的

18、動作,最后映射到各個元胞類的動作,完成整個自適應調(diào)整。4 實驗與評估為了展示這種基于元胞自動機建模的網(wǎng)構(gòu)軟件自適應方法,開發(fā)了一個簡單的模擬實驗,并對該系統(tǒng)在不進行自適應動態(tài)調(diào)整和根據(jù)性能約束指標作動態(tài)調(diào)整兩種情況下的性能表現(xiàn)進行了測量和比較。模擬一個網(wǎng)上書店的部分實現(xiàn),主要是客戶端從服務器端獲取圖書信息,然后將這些信息顯示在web 頁面上??蛻舳撕头掌鞑渴鹪诓煌臋C器上,當客戶需要獲取多本書的信息包括書名、作者和單價時,需要若干次調(diào)用遠程的CartSesEJB 中的addItem()方法。由于客戶端和服務器部署在不同的機器上,因此函數(shù)調(diào)用都必須通過網(wǎng)絡,調(diào)用參數(shù)與返回值都需要進行序列化與反

19、序列化的操作,而且還花費時間通過網(wǎng)絡傳輸數(shù)據(jù)。隨著用戶的增多,這種采用多次遠程調(diào)用獲取一組屬性值的方法會增加網(wǎng)絡上的時間消耗,極大地降低性能,是應用中存在的一個性能不良模式。為去除該不良模式帶來的性能影響,需要對系統(tǒng)進行自適應調(diào)整。調(diào)整方案就是,通過-6-一次遠程調(diào)用將需要顯示的書本信息全部發(fā)送給CartSesEJB,而不是每顯示一次書本信息就進行一次遠程調(diào)用。可以在服務器端增加一個會話外觀構(gòu)件,客戶端通過一次遠程調(diào)用將所需要顯示的書本信息全部發(fā)送給會話外觀構(gòu)件,然后再由該構(gòu)件調(diào)用CartSesEJB 中的相應方法,通過一次遠程調(diào)用完成所有的數(shù)據(jù)傳輸。對于上述不良模式, 相應的規(guī)則和動作就是: rule1(event1,fine-grained remotecalls,action1),action1(add,disposepreformance,null,stratage1)??偪刂瞥绦蚋鶕?jù)stratage1(實現(xiàn)變化動作的類)找到具體的實現(xiàn)變化動作的方法:增加會話外觀構(gòu)件,然后調(diào)整三個構(gòu)件之間的調(diào)用關(guān)系。本實驗以客戶獲取一

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論