一種基于元胞自動(dòng)機(jī)的軟件故障傳播方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于復(fù)雜網(wǎng)絡(luò)中的故障傳播技術(shù),特別是一種基于元胞自動(dòng)機(jī)的軟件故障 傳播方法。
【背景技術(shù)】
[0002] 隨著人類(lèi)活動(dòng)的加深加劇,軟件在社會(huì)的各個(gè)領(lǐng)域中發(fā)揮著重要的作用。人類(lèi)對(duì) 軟件的需求的增加,軟件的規(guī)模也越來(lái)越大,軟件中的節(jié)點(diǎn),如服務(wù)、構(gòu)件、包、類(lèi)、方法等, 之間的交互也越來(lái)越緊密,直接導(dǎo)致軟件越來(lái)越復(fù)雜。而在軟件運(yùn)行過(guò)程中,軟件代碼的缺 陷、軟件運(yùn)行環(huán)境的不確定等因素都會(huì)產(chǎn)生軟件故障。由于軟件故障的產(chǎn)生與呈現(xiàn)并不存 在一致的對(duì)應(yīng)關(guān)系,這造成了軟件故障在傳播過(guò)程中的不確定性。在當(dāng)今社會(huì),隨著計(jì)算機(jī) 化的日趨加重,一旦軟件系統(tǒng)發(fā)生了嚴(yán)重故障,很有可能對(duì)人類(lèi)生命和財(cái)產(chǎn)造成無(wú)法估量 的損失。因此,研究軟件故障的傳播動(dòng)力學(xué)行為,掌握其傳播規(guī)律,并提出相應(yīng)有效措施,有 效的降低軟件故障所造成的危害,這對(duì)人類(lèi)的發(fā)展和社會(huì)的進(jìn)步都有著重大的意義。
[0003] 目前國(guó)內(nèi)外對(duì)復(fù)雜網(wǎng)絡(luò)的故障傳播研究主要集中在對(duì)電力系統(tǒng)和通信系統(tǒng)的故 障傳播規(guī)律上,分析復(fù)雜系統(tǒng)的傳播動(dòng)力學(xué),研究成果已經(jīng)比較完善。軟件系統(tǒng)的研究方 法,大部分都采取將軟件中的元素作為一個(gè)單位節(jié)點(diǎn),節(jié)點(diǎn)之間的依賴(lài)關(guān)系作為邊,對(duì)軟件 系統(tǒng)結(jié)構(gòu)進(jìn)行網(wǎng)絡(luò)拓?fù)浠?。大量研究表明,軟件網(wǎng)絡(luò)同樣符合復(fù)雜網(wǎng)絡(luò)中的"無(wú)標(biāo)度"網(wǎng)絡(luò) 特性,同時(shí)還具有高度的復(fù)雜性、不確定性、傳播性、并發(fā)性等特征,所以可以運(yùn)用復(fù)雜網(wǎng)絡(luò) 的傳播動(dòng)力學(xué)理論,通過(guò)計(jì)算機(jī)的仿真,對(duì)軟件故障的傳播進(jìn)行研究分析,建立軟件故障傳 播模型,將復(fù)雜網(wǎng)絡(luò)與軟件工程相關(guān)研究領(lǐng)域結(jié)合。
[0004] 元胞自動(dòng)機(jī)(CellularAutomata,簡(jiǎn)稱(chēng)CA),也有人譯為細(xì)胞自動(dòng)機(jī)、分子自動(dòng)機(jī)、 點(diǎn)格自動(dòng)機(jī)等,是復(fù)雜性科學(xué)的核心技術(shù)之一。元胞自動(dòng)機(jī)是一個(gè)模型框架,或者說(shuō)是模型 集,他提供模擬復(fù)雜系統(tǒng)的基本模型,不同的模型可以通過(guò)不同的模擬參數(shù)模擬不同的復(fù) 雜系統(tǒng)。通常來(lái)說(shuō),就是在離散的時(shí)間、空間上,由具有離散狀態(tài)的元胞(Cell)按照確定的 局部演化規(guī)則做同步更新的動(dòng)態(tài)進(jìn)化系統(tǒng)。但是不同于一般的動(dòng)力學(xué)模型,元胞自動(dòng)機(jī)的 構(gòu)建沒(méi)有嚴(yán)格定義的物理方程、數(shù)學(xué)公式,構(gòu)造方式多樣、自由,只是用一系列模型構(gòu)造的 規(guī)則來(lái)構(gòu)建,所以凡是滿足這些規(guī)則的模型都可以算作是元胞自動(dòng)機(jī)模型。元胞自動(dòng)機(jī)在 模擬復(fù)雜系統(tǒng)和同步并行過(guò)程及其在非線性科學(xué)方面的出色表現(xiàn),使他也能夠很好的模擬 由軟件內(nèi)部節(jié)點(diǎn)之間的相互作用引起的故障傳播動(dòng)態(tài)過(guò)程。同時(shí),元胞自動(dòng)機(jī)的離散特性 也有利于表達(dá)軟件運(yùn)行過(guò)程中各個(gè)節(jié)點(diǎn)(如類(lèi)、方法)在每個(gè)時(shí)間點(diǎn)的運(yùn)行狀態(tài)。在軟件故 障傳播過(guò)程中,由于軟件運(yùn)行環(huán)境的不穩(wěn)定和軟件具有的容錯(cuò)性,使得故障的發(fā)生與傳播 都具有一定的不確定性和隨機(jī)性,元胞自動(dòng)機(jī)是一種完善的數(shù)學(xué)工具,可以有效的與模糊、 概率相結(jié)合。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明的目的是提出一種軟件系統(tǒng)的故障傳播方法,建立故障傳播模型,當(dāng)軟件 被惡意攻擊時(shí),得到軟件系統(tǒng)中故障的傳播動(dòng)力學(xué)特點(diǎn),從而得出軟件故障傳播的規(guī)律,有 效改進(jìn)軟件的設(shè)計(jì)和降低軟件故障所造成的危害。
[0006] 由于元胞自動(dòng)機(jī)模型的運(yùn)用在多方面都有嚴(yán)格的限制,雖然能很好的對(duì)復(fù)雜現(xiàn) 象進(jìn)行模擬,但是對(duì)不同的復(fù)雜系統(tǒng),在內(nèi)部結(jié)構(gòu)不明確、演化機(jī)制不了解的情況,為了更 好的對(duì)軟件復(fù)雜的系統(tǒng)進(jìn)行模擬,本發(fā)明對(duì)元胞自動(dòng)機(jī)的元胞空間和鄰居元胞定義進(jìn)行擴(kuò) 展。
[0007] 本發(fā)明所采用的方法如下。
[0008](-)建立元胞自動(dòng)機(jī),定義軟件網(wǎng)絡(luò)化得到的拓?fù)鋱D中的節(jié)點(diǎn)即為元胞,則CA模 型通過(guò)一個(gè)四元組定義為CA=(C,Q,V,f),其中C表示元胞空間,此時(shí)擴(kuò)展為平面空間,元胞 不再局限于空間的某一特定位置,而是散布在平面空間上;Q表示元胞狀態(tài),一個(gè)離散的有 限集和;V表示中心元胞的鄰居集合,此時(shí)不再局限為空間上相鄰的元胞,而是擴(kuò)展為有邊 相連即為鄰居;f為狀態(tài)轉(zhuǎn)換規(guī)則;
[0009](二)根據(jù)上述元胞自動(dòng)機(jī)建立軟件故障傳播模型;該模型將節(jié)點(diǎn)狀態(tài)劃分為兩種 狀態(tài),N表示節(jié)點(diǎn)正常狀態(tài),F(xiàn)表示節(jié)點(diǎn)故障狀態(tài),軟件網(wǎng)絡(luò)化得到的拓?fù)鋱D中一個(gè)節(jié)點(diǎn)對(duì) 應(yīng)元胞自動(dòng)機(jī)的一個(gè)元胞,正常狀態(tài)用〇表示,故障狀態(tài)用1表示,令狀態(tài)集Q={〇, 1},節(jié) 點(diǎn)i在t時(shí)刻的狀態(tài)變量用Si⑴以(t)gQ)表示,則有
[0010]
【主權(quán)項(xiàng)】
1. 一種基于元胞自動(dòng)機(jī)的軟件故障傳播方法,其特征在于步驟如下: (一) 建立元胞自動(dòng)機(jī),定義軟件網(wǎng)絡(luò)化得到的拓?fù)鋱D中的節(jié)點(diǎn)即為元胞,則CA模型通 過(guò)一個(gè)四元組定義為CA= (C,Q,V,f),其中C表示元胞空間,此時(shí)擴(kuò)展為平面空間,元胞不再 局限于空間的某一特定位置,而是散布在平面空間上;Q表示元胞狀態(tài),一個(gè)離散的有限集 和;V表示中心元胞的鄰居集合,此時(shí)不再局限為空間上相鄰的元胞,而是擴(kuò)展為有邊相連 即為鄰居;f為狀態(tài)轉(zhuǎn)換規(guī)則; (二) 根據(jù)上述元胞自動(dòng)機(jī)建立軟件故障傳播模型;該模型將節(jié)點(diǎn)狀態(tài)劃分為兩種狀 態(tài),N表示節(jié)點(diǎn)正常狀態(tài),F(xiàn)表示節(jié)點(diǎn)故障狀態(tài),軟件網(wǎng)絡(luò)化得到的拓?fù)鋱D中一個(gè)節(jié)點(diǎn)對(duì)應(yīng) 元胞自動(dòng)機(jī)的一個(gè)元胞,正常狀態(tài)用〇表示,故障狀態(tài)用1表示,令狀態(tài)集Q ={〇, 1},節(jié)點(diǎn) i在t時(shí)刻的狀態(tài)變量用Si (t) (Si (t) e Q)表示,則有
狀態(tài)轉(zhuǎn)換規(guī)則f可以定義為:在t時(shí)刻狀態(tài)為N的節(jié)點(diǎn)i,在t+Ι時(shí)刻以概率Pi轉(zhuǎn)換狀 態(tài)為F ;-旦節(jié)點(diǎn)狀態(tài)為F,則不再影響其鄰居元胞,其中: α為故障傳播概率;β為節(jié)點(diǎn)自身的容錯(cuò)率,故障傳播概率α和節(jié)點(diǎn)的容錯(cuò)率β 都為系統(tǒng)預(yù)設(shè)值;α (l-β)為中心元胞受到一個(gè)故障元胞影響時(shí),自身狀態(tài)轉(zhuǎn)變的概率; Sumi⑴為在t時(shí)刻,中心元胞i的鄰居中故障元胞的個(gè)數(shù); (三) 對(duì)建立好的軟件故障傳播模型進(jìn)行仿真,每個(gè)時(shí)刻對(duì)模型中所有元胞進(jìn)行遍歷, 直到模型中故障元胞個(gè)數(shù)不再增加,則跳出循環(huán)。
2. 根據(jù)權(quán)利要求1所述的基于元胞自動(dòng)機(jī)的軟件故障傳播方法,其特征在于:所述步 驟三中,對(duì)建立好的軟件故障傳播模型進(jìn)行仿真的具體過(guò)程如下:利用元胞自動(dòng)機(jī)模擬軟 件網(wǎng)絡(luò)中故障傳播過(guò)程,根據(jù)元胞自動(dòng)機(jī)建立的軟件故障傳播模型轉(zhuǎn)換規(guī)則f,在每個(gè)時(shí)刻 中對(duì)所有元胞進(jìn)行狀態(tài)更新,具體過(guò)程如下: 1) 初始化時(shí)刻t=0和t時(shí)刻的故障節(jié)點(diǎn)個(gè)數(shù)I (t)=0,給故障傳播概率a e (〇, 1)和 節(jié)點(diǎn)的容錯(cuò)率β e (〇, 1)賦值,計(jì)算各元胞的鄰居矩陣; 2) 在t = k(k > 0)時(shí)刻時(shí),選擇軟件網(wǎng)絡(luò)中η (η < N)個(gè)節(jié)點(diǎn)為初始故障節(jié)點(diǎn),并把節(jié) 點(diǎn)對(duì)應(yīng)的元胞狀態(tài)置為F,即元胞此時(shí)刻發(fā)生故障,則I (t)=n ; 3) 在t = k+1時(shí)刻,遍歷所有元胞,每個(gè)元胞根據(jù)周?chē)従釉臓顟B(tài)和自身狀態(tài),計(jì) 算狀態(tài)轉(zhuǎn)化概率Pi,更新其元胞狀態(tài),元胞狀態(tài)從N轉(zhuǎn)變?yōu)镕,則I (t) =I (t) +1,并把上一時(shí) 刻故障的元胞鄰居矩陣置為0 ; 4. t=t+l,判斷I (t+Ι)是否等于I (t),如果相等就說(shuō)明故障元胞不再增加,則退出循 環(huán),否則執(zhí)行步驟3)。
【專(zhuān)利摘要】本發(fā)明公開(kāi)了一種基于元胞自動(dòng)機(jī)的軟件故障傳播方法。首先,對(duì)元胞自動(dòng)機(jī)的空間和鄰居定義進(jìn)行擴(kuò)展,再建立元胞自動(dòng)機(jī)模型,引入傳播概率和節(jié)點(diǎn)容錯(cuò)率機(jī)制,對(duì)軟件網(wǎng)絡(luò)中的所有節(jié)點(diǎn)狀態(tài)進(jìn)行循環(huán)遍歷更新,直到滿足條件退出循環(huán)。采用此方法,能夠很好的模擬軟件故障傳播的過(guò)程,從而掌握軟件故障傳播規(guī)律,更好的控制軟件故障傳播造成的危害。
【IPC分類(lèi)】H04L12-24
【公開(kāi)號(hào)】CN104734870
【申請(qǐng)?zhí)枴緾N201310706727
【發(fā)明人】張琨, 王 琦, 陳旋, 卞雪雯, 劉藝
【申請(qǐng)人】南京理工大學(xué)
【公開(kāi)日】2015年6月24日
【申請(qǐng)日】2013年12月19日