【畢業(yè)學(xué)位論文】(Word原稿)基于和欣Domain的沙箱模型的研究與設(shè)計(jì)-計(jì)算機(jī)軟件與理論_第1頁(yè)
【畢業(yè)學(xué)位論文】(Word原稿)基于和欣Domain的沙箱模型的研究與設(shè)計(jì)-計(jì)算機(jī)軟件與理論_第2頁(yè)
【畢業(yè)學(xué)位論文】(Word原稿)基于和欣Domain的沙箱模型的研究與設(shè)計(jì)-計(jì)算機(jī)軟件與理論_第3頁(yè)
【畢業(yè)學(xué)位論文】(Word原稿)基于和欣Domain的沙箱模型的研究與設(shè)計(jì)-計(jì)算機(jī)軟件與理論_第4頁(yè)
【畢業(yè)學(xué)位論文】(Word原稿)基于和欣Domain的沙箱模型的研究與設(shè)計(jì)-計(jì)算機(jī)軟件與理論_第5頁(yè)
已閱讀5頁(yè),還剩51頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

保密 2 年 申請(qǐng)同濟(jì) 大學(xué)工學(xué) 碩 士學(xué)位論文 二 七 年 三 月 基于和欣 沙箱模型的研究與設(shè)計(jì) ( 國(guó)家“ 863”計(jì)劃資助項(xiàng)目 編號(hào): 2001 培養(yǎng)單位: 電子與信息工程學(xué)院 一級(jí)學(xué)科: 計(jì)算機(jī)軟件與理論 研 究 生: 余明岡 指導(dǎo)教師: 陳榕 教授 副 指導(dǎo)教師 :顧偉楠 教授 保密 2 年 A in 2007 by 863” o. 2001 書(shū)脊 基 于 和 欣 D o m a i n 的 沙 箱 模 型 的 研 究 與 設(shè) 計(jì) 余 明 岡 同 濟(jì) 大 學(xué) 學(xué)位論文版權(quán)使用授權(quán)書(shū) 本人完全了解同濟(jì)大學(xué)關(guān)于收集、保存、使用學(xué)位論文的規(guī)定,同意如下各項(xiàng)內(nèi)容:按照學(xué)校要求提交學(xué)位論文的印刷本和電子版本;學(xué)校有權(quán)保存學(xué)位論文的印刷本和電子版,并采用影印、縮印、掃描、數(shù)字化或其它手段保存論文;學(xué)校有權(quán)提供目錄檢索以 及提供本學(xué)位論文全文或者部分的閱覽服務(wù);學(xué)校有權(quán)按有關(guān)規(guī)定向國(guó)家有關(guān)部門(mén)或者機(jī)構(gòu)送交論文的復(fù)印件和電子版;在不以贏利為目的的前提下,學(xué)??梢赃m當(dāng)復(fù)制論文的部分或全部?jī)?nèi)容用于學(xué)術(shù)活動(dòng)。 學(xué)位論文作者簽名: 余明岡 年 月 日 同濟(jì)大學(xué)學(xué)位論文原創(chuàng)性聲明 本人鄭重聲明:所呈交的學(xué)位論文,是本人在導(dǎo)師指導(dǎo)下,進(jìn)行研究工作所取得的成果。除文中已經(jīng)注明引用的內(nèi)容外,本學(xué)位論文的研究成果不包含任何他人創(chuàng)作的、已公開(kāi)發(fā)表或者沒(méi)有 公開(kāi)發(fā)表的作品的內(nèi)容。對(duì)本論文所涉及的研究工作做出貢獻(xiàn)的其他個(gè)人和集體,均已在文中以明確方式標(biāo)明。本學(xué)位論文原創(chuàng)性聲明的法律責(zé)任由本人承擔(dān)。 學(xué)位論文作者簽名: 余明岡 年 月 日摘要 I 摘要 操作系統(tǒng)自 布以來(lái)仍然延用著面向單機(jī)的設(shè)計(jì)模型。隨著網(wǎng)絡(luò)時(shí)代的來(lái)臨,信息技術(shù)正面臨“以機(jī)器為中心”向“以網(wǎng)絡(luò)為中心” 的轉(zhuǎn)變, 實(shí)現(xiàn)網(wǎng)絡(luò)服務(wù)和移動(dòng)計(jì)算的關(guān)鍵技術(shù)是面向構(gòu) 件、中間件的編程技術(shù),以及一整套的運(yùn)行環(huán)境、開(kāi)發(fā)環(huán)境等平臺(tái)技術(shù)。 此外,移動(dòng)代碼( 成為構(gòu)成 行環(huán)境的常用構(gòu)件,卻使 到越來(lái)越大的威脅。這些惡意移動(dòng)代碼的攻擊特征歸納起來(lái)主要有五種:讀文件;寫(xiě)文件;主動(dòng)執(zhí)行程序;訪問(wèn)禁用端口;讀寫(xiě)系統(tǒng)設(shè)備。現(xiàn)在針對(duì)一些惡意移動(dòng)代碼的保護(hù)措施如防火墻和實(shí)時(shí)病毒監(jiān)控技術(shù)一定程度上緩解了移動(dòng)代碼的威脅,可一旦出現(xiàn)一種新特征的病毒、木馬或者蠕蟲(chóng)繞過(guò)這些技術(shù)的識(shí)別和監(jiān)控,偽裝成授權(quán)用戶對(duì)數(shù)據(jù)進(jìn)行感染和破壞,傳統(tǒng)操作系統(tǒng)仍將束手無(wú) 策。 所以無(wú)論從應(yīng)用需求還是安全運(yùn)行的角度,傳統(tǒng)操作系統(tǒng)模型已經(jīng)難以應(yīng)付目前新運(yùn)行環(huán)境的諸多問(wèn)題。為了在 架下實(shí)現(xiàn)以服務(wù)的安全性、可用性和服務(wù)質(zhì)量保證( 核心的高可信計(jì)算,本文根據(jù)和欣 型和惡意代碼一般特征,在和欣新一代網(wǎng)絡(luò)操作系統(tǒng)上首次引入了面向方面的動(dòng)態(tài)可配置安全語(yǔ)義沙箱模型,提出了移動(dòng)構(gòu)件用戶態(tài)隔離運(yùn)行的控制方法。 本文首先介紹了 術(shù)、和欣操作系統(tǒng)和和欣 型。為了在互聯(lián)網(wǎng)平臺(tái)上提供可信計(jì)算環(huán)境,本文分析和歸納了以往傳統(tǒng)平臺(tái)上的沙箱模型,并結(jié)合 態(tài)多面聚合技術(shù),在和欣平臺(tái)上設(shè)計(jì)并提出了可配置安全語(yǔ)義沙箱模型,并闡述了設(shè)計(jì)特點(diǎn)和優(yōu)化技術(shù),使用戶靈活控制代碼的運(yùn)行,同時(shí)使可疑代碼的隔離環(huán)境透明化。論文闡述了和欣沙箱宿主 實(shí)現(xiàn),包括客戶程序集的運(yùn)行機(jī)制,動(dòng)態(tài)聚合監(jiān)控方面和運(yùn)行監(jiān)控機(jī)制,這些設(shè)計(jì)充分利用了 言和和欣操作系統(tǒng)對(duì)面向方面編程的支持,并成功運(yùn)行于 平臺(tái)上。 關(guān)鍵詞 : 面向方面編程;和欣 態(tài)聚合;沙箱隔離摘要 2 of of by of is to OA is of of on to of be as 1) 2) 3) 4) ) to as of of or of to be or no of of of of to a of oS OA OP is in on of 要 3 as as a of of in OP at an on up on a by of of is in AR OP 86 RM 要 4 目錄 第 1 章 引言 . 6 景介紹 . 6 內(nèi)外研究的現(xiàn)狀 . 7 題研究的意義 . 9 文各部分的主要內(nèi)容 . 9 第 2 章 相關(guān)技術(shù)與概念 . 11 術(shù) . 11 件技術(shù) . 11 向方面編程 . 13 術(shù) . 16 欣操作系統(tǒng) . 18 欣 型 . 19 箱技術(shù) . 19 預(yù)技術(shù)( . 21 全模型 . 23 統(tǒng) . 24 第 3 章和欣沙箱體系架構(gòu) 設(shè)計(jì) . 27 箱模型的設(shè)計(jì)與研究 . 27 欣沙箱模型的體系架構(gòu) . 29 計(jì)目的 . 29 系架構(gòu)與模塊組成 . 30 欣沙箱體系結(jié)構(gòu)的設(shè)計(jì)特點(diǎn) . 32 欣沙箱體系結(jié)構(gòu)的特點(diǎn) . 32 箱模型在實(shí)現(xiàn)優(yōu)化上的考慮 . 32 第 4 章 和欣沙箱宿主 設(shè)計(jì) . 33 箱宿主介紹 . 33 序集的加載運(yùn)行機(jī)制 . 33 側(cè)面的動(dòng)態(tài)聚合 . 38 摘要 5 監(jiān)控機(jī)制 . 45 第 5 章 工作總結(jié)與展望 . 48 作總結(jié) . 48 作展望 . 48 致謝 . 49 參考文獻(xiàn) . 50 個(gè)人簡(jiǎn)歷 在讀期間發(fā)表的學(xué)術(shù)論文與研究成果 . 51 第 1 章 引言 6 第 1 章 引言 景介紹 移動(dòng)代碼( 不是一個(gè)新概念,理論上說(shuō),能引起遠(yuǎn)程系統(tǒng)不同動(dòng)作的任何代碼都可以被看作移動(dòng)代碼。移動(dòng)代碼是整個(gè)分布式計(jì)算領(lǐng)域正常工作的前提。它包括域名服務(wù)( 據(jù)信息、遠(yuǎn)端程序調(diào)用( 遠(yuǎn)端命令和系統(tǒng)遠(yuǎn)端外殼的執(zhí) 行腳本。這種移動(dòng)代碼之所以非常流行,一是因?yàn)樗欣诤侠矸峙淇蛻魴C(jī)服務(wù)器上的計(jì)算負(fù)荷,二是因?yàn)樗梢越档蛯?duì)網(wǎng)絡(luò)帶寬的要求。 件就屬于這種代碼。只有在顯示和查看 件時(shí)其文件內(nèi)容才被執(zhí)行。像微軟 檔中的宏一樣,只有在文檔被讀時(shí),宏才被解釋執(zhí)行。又例如 過(guò) 種功能強(qiáng)大的文本編輯器)人們可以閱讀查看內(nèi)部 息中嵌入的 序段才被激活。 件和 應(yīng)用程序也是這樣的例子。活動(dòng)內(nèi)容并沒(méi)有帶來(lái)新的危害,相反,它有助于暴露普通安全機(jī)制的不充分性。例如,當(dāng)利用移動(dòng)代碼來(lái)更新 ,其界面范圍相當(dāng)小,使得系統(tǒng)更安全。但是,在調(diào)用 界面范圍就擴(kuò)展成整個(gè) 面,那么整個(gè) 安全漏洞都可能被發(fā)現(xiàn)。 可以通過(guò)以下兩個(gè)因素來(lái)判斷一個(gè)移動(dòng)代碼是否可靠。 (1) 移動(dòng)代碼的來(lái)源是否可靠,即是否來(lái)自一個(gè)不安全的鏈接,或者是否由一個(gè)沒(méi)有經(jīng)過(guò)認(rèn)證的程序員編寫(xiě); (2) 移動(dòng)代碼是否能夠保證自身免于外界惡意輸入的干 擾。 第一個(gè)因素表征的情況是惡意用戶通過(guò)在代碼中加入某些代碼來(lái)達(dá)到非法目的,比如現(xiàn)在常見(jiàn)的包含木馬和病毒的應(yīng)用程序均屬于此類(lèi)。第二個(gè)因素往往是由于程序員自身水平的限制而產(chǎn)生的,程序員無(wú)法保證他所編寫(xiě)的代碼不存在安全隱患。這兩種情況非常普遍,甚至是難以預(yù)防,而系統(tǒng)安全的目標(biāo)是無(wú)論出現(xiàn)以上哪種情況,均必須保證操作系統(tǒng)和其他系統(tǒng)資源的安全性。 最簡(jiǎn)單的解決方法是禁止不可靠的應(yīng)用程序運(yùn)行。但在實(shí)際操作過(guò)程中僅第 1 章 引言 7 僅依靠禁止是不夠的。首先,移動(dòng)代碼的不斷增加引起兩種反應(yīng)。一方面,人們盡力增強(qiáng)系統(tǒng)安全性以便較好地控制和利用 移動(dòng)代碼有利的一面,另一方面,人們恐懼移動(dòng)代碼不利的一面,想把它阻止在外圍。但是大量此類(lèi)的程序被廣泛使用,無(wú)法全部摒棄(例如 前已經(jīng)發(fā)現(xiàn)了近 30 個(gè)漏洞,但是依然非常流行)。如果擯棄會(huì)阻礙時(shí)代發(fā)展,因?yàn)橐苿?dòng)代碼和活動(dòng)內(nèi)容流通途徑很多( 而濾掉每一個(gè) 息和部分消息是不可能的。其次,尋找具有同樣功能的此類(lèi)應(yīng)用程序的替代品十分困難。 圖靈獎(jiǎng)獲獎(jiǎng)演說(shuō)中曾提到 “代碼的可靠性由編寫(xiě)代碼的程序員的可靠性決定,我們只能完全相信自己編寫(xiě)的代碼” 。因此, 綜合考慮重寫(xiě)代碼的困難,單純依靠禁止或者重寫(xiě)不可靠應(yīng)用程序來(lái)保障安全性是不可行的。 內(nèi)外研究的現(xiàn)狀 為了有效實(shí)現(xiàn)了對(duì)應(yīng)用程序和系統(tǒng)的保護(hù),就要使一個(gè)用戶即便完全控制了可疑程序的情況下,依然無(wú)法對(duì)系統(tǒng)可靠性、完整性和可用性進(jìn)行進(jìn)一步的破壞。所有的破壞都必須限制在該應(yīng)用程序自身?yè)碛械馁Y源之內(nèi),如顯示窗口、臨時(shí)文件和存儲(chǔ)區(qū)等。從另一個(gè)角度講,系統(tǒng)應(yīng)該遵循最低權(quán)限原則,即僅僅為應(yīng)用程序提供最少的能夠滿足它的合法行為的系統(tǒng)資源和權(quán)限。這樣也就保證了一個(gè)應(yīng)用程序所能產(chǎn)生的危害被牢牢的限制在它所處的運(yùn)行環(huán)境中, 無(wú)法對(duì)外界進(jìn)行干擾。相對(duì)而言,現(xiàn)在流行的系統(tǒng),如 于應(yīng)用程序的保護(hù)無(wú)法滿足以上要求。當(dāng)前一個(gè)沒(méi)有被保護(hù)的應(yīng)用程序被攻陷后,非法用戶將具有執(zhí)行該應(yīng)用程序的賬號(hào)的全部權(quán)限。如果應(yīng)用程序的執(zhí)行者是者 么非法用戶將具有訪問(wèn)任何系統(tǒng)資源的權(quán)限,這種情況是不可接受的。 針對(duì)此類(lèi)操作系統(tǒng)對(duì)于應(yīng)用程序保護(hù)能力的不足,許多安全策略通過(guò)將一個(gè)應(yīng)用程序限制在它的執(zhí)行環(huán)境中來(lái)輔助提高系統(tǒng)的安全性。下面列舉了 6 種此類(lèi)的傳統(tǒng)安全策略,同時(shí)討論了它們的特點(diǎn)和不足。 ( 1)由 應(yīng)用程序自身實(shí)現(xiàn)安全性 此種安全策略要求所有不可靠的應(yīng)用程序必須全部按照某種簡(jiǎn)單安全的模式重新編寫(xiě)。很明顯該方法不可行,因?yàn)橹貙?xiě)這些應(yīng)用程序,特別是在很短的時(shí)間內(nèi),需要較多時(shí)間和資金。比較可行的方法是一旦發(fā)現(xiàn)漏洞立刻編寫(xiě)漏洞第 1 章 引言 8 補(bǔ)丁,同時(shí)為所有的此類(lèi)應(yīng)用程序安裝該補(bǔ)丁。從歷史角度來(lái)看,這也是一個(gè)失敗的方法,當(dāng)應(yīng)用程序代碼量較大、應(yīng)用較廣泛時(shí)更是如此。例如某一段時(shí)間內(nèi), 程序曾經(jīng)每個(gè)月都有新的漏洞出現(xiàn),編寫(xiě)補(bǔ)丁的速度遠(yuǎn)遠(yuǎn)跟不上發(fā)現(xiàn)漏洞的速度,造成安全性沒(méi)有任何保障。另外,目前還沒(méi)有一個(gè)可靠的方 法能夠通知所有用戶關(guān)于漏洞的存在并且說(shuō)服用戶安裝補(bǔ)丁。盡管如此,目前很多常見(jiàn)的應(yīng)用程序只能依靠此類(lèi)安全策略提供非常有限的安全保障。用戶更需要一個(gè)通用的外在的安全保護(hù)措施。 ( 2)為操作系統(tǒng)添加新的保護(hù)功能 此類(lèi)安全策略中比較有代表性的是 方案,即為 核提供 能。以下幾個(gè)原因表明這個(gè)方法同樣不實(shí)用。首先,這種方法無(wú)論開(kāi)發(fā)還是安裝均需要修改操作系統(tǒng)內(nèi)核。因此很難得到廣泛應(yīng)用。其次,很多用戶不希望借助專(zhuān)家來(lái)幫助他們重新編譯操作系統(tǒng)。第三,修改內(nèi)核風(fēng)險(xiǎn)很大,修改掉原來(lái)的漏洞有 可能會(huì)引入新的更嚴(yán)重的漏洞。 最好能夠采用一個(gè)用戶級(jí)方法,使用操作系統(tǒng)原有的訪問(wèn)控制方法作為補(bǔ)充。用戶級(jí)的方法在最壞的情況下也僅僅是不能發(fā)揮作用,而不會(huì)對(duì)系統(tǒng)的安全性請(qǐng)成講一步的損害。 ( 3)使用現(xiàn)有的訪問(wèn)監(jiān)控器( 傳統(tǒng)的操作系統(tǒng)訪問(wèn)監(jiān)控模塊(即通過(guò)用戶 行的訪問(wèn)控制)無(wú)法直接保證系統(tǒng)免于受到不可靠程序的攻擊。當(dāng)某個(gè)帳號(hào)被攻陷后,訪問(wèn)控制器最多能夠阻止攻擊蔓延到新的帳號(hào),但是此時(shí)破壞往往已經(jīng)造成了。而且,在某些操作系統(tǒng)中,如果某個(gè)帳號(hào)(如 攻陷了, 整個(gè)操作系統(tǒng)會(huì)遭到攻擊,此時(shí)訪問(wèn)監(jiān)控器幾乎沒(méi)有任何作用。 ( 4) 防火墻 防火墻通過(guò)過(guò)濾網(wǎng)絡(luò)數(shù)據(jù)流限制不可靠應(yīng)用程序?qū)τ诰W(wǎng)絡(luò)資源的訪問(wèn)。防火墻采取的包過(guò)濾手段無(wú)法區(qū)分不同類(lèi)型的 信,也就無(wú)法檢測(cè)出其中的惡意數(shù)據(jù)。理論上講可以通過(guò)協(xié)議分析來(lái)獲得所有的通信協(xié)議格式,但是這種方法代價(jià)極高,同時(shí)系統(tǒng)的復(fù)雜性和不可靠性也會(huì)增大。另外,防火墻策略無(wú)法限制用戶對(duì)于內(nèi)部系統(tǒng)資源的訪問(wèn)。 ( 5) 術(shù) 過(guò)字節(jié)碼和沙箱技術(shù)實(shí)現(xiàn)安全性保障。它具有兩個(gè)主要缺陷。第一,于原有系統(tǒng)的安全性提高沒(méi)有任何 幫助。原有的代碼(如 C 代碼等)不第 1 章 引言 9 能運(yùn)行在 境中,用 言重寫(xiě)原有的應(yīng)用程序更不現(xiàn)實(shí)。第二, ( 6) CCxx為編譯器提供了一個(gè)運(yùn)行時(shí)校驗(yàn)代碼的工具。 要通過(guò)在語(yǔ)句中添加特殊的校驗(yàn)代碼來(lái)實(shí)現(xiàn)。但是, 要在編譯時(shí)提供安全策略,而不是在運(yùn)行時(shí),同時(shí) 統(tǒng)無(wú)法處理已有的應(yīng)用程序。 綜上所述,當(dāng)前大部分限制型安全策略無(wú)法達(dá)到期望的安全性要求。重寫(xiě)應(yīng)用程序開(kāi)銷(xiāo)太大;修改內(nèi)核比較困難并且風(fēng)險(xiǎn)較大。傳統(tǒng)基于主 機(jī)的訪問(wèn)控制策略和防火墻的防護(hù)性能有所不足。對(duì)現(xiàn)存應(yīng)用程序的需求也使得 術(shù)和 術(shù)不可行。因此,本文提出一種沙箱模型,其設(shè)計(jì)目標(biāo)就是基于和欣術(shù)架設(shè)移動(dòng)代碼的安全策略可靈活配置的運(yùn)行平臺(tái)。 題研究的意義 和欣操作系統(tǒng) 屬于國(guó)家“ 863” 課題 項(xiàng)目,是定位在網(wǎng)絡(luò)時(shí)代的操作系統(tǒng)。為了解決不可靠應(yīng)用程序?qū)τ谙到y(tǒng)的 網(wǎng)絡(luò) 安全威脅,本文在和欣操作系統(tǒng)提出了一個(gè)可行的解決方案,即通過(guò)和欣沙箱模型對(duì)不可靠應(yīng)用程序進(jìn)行限制。通過(guò)將不可靠的以及危險(xiǎn)的應(yīng)用程序運(yùn)行于某個(gè)封閉的特定運(yùn)行環(huán)境中來(lái)限制它們的行為 ,從而減少或者消除潛在的安全隱患。 通過(guò)安全策略方面類(lèi)封裝和截取操作系統(tǒng)的系統(tǒng)調(diào)用,過(guò)濾掉可能有害的調(diào)用請(qǐng)求,也就限制了不可靠應(yīng)用程序?qū)τ谙到y(tǒng)資源的訪問(wèn),提高了系統(tǒng)的安全性。這種方法具有以下優(yōu)勢(shì): (1) 能夠靈活地透明地對(duì)應(yīng)用程序強(qiáng)迫實(shí)行安全限制; (2) 能夠在不修改代碼的情況下提高常用的不可靠應(yīng)用程序的安全性; (3) 提供比當(dāng)前操作系統(tǒng)更高級(jí)的用戶級(jí)安全保證; 文各部分的主要內(nèi)容 網(wǎng)絡(luò)時(shí)代的來(lái)臨 ,對(duì) 移動(dòng)代碼安全運(yùn)行 提出了新 的要求。國(guó)內(nèi)外的許多研究機(jī)構(gòu)和廠商在不同領(lǐng)域?qū)θ绾胃?可靠 的 運(yùn)行移動(dòng) 構(gòu)件 ,使其更加適合網(wǎng)絡(luò)計(jì)算環(huán)境 的需求展開(kāi)了研究。 本文以國(guó)家“ 863”軟件專(zhuān)項(xiàng)“基于中間件技術(shù)的入式操作系統(tǒng)及跨操作系統(tǒng)中間件運(yùn)行平臺(tái)”為背景,探討并提出了第 1 章 引言 10 在和欣操作系統(tǒng)上通過(guò)架設(shè)和欣 現(xiàn)沙箱模型,為移動(dòng)代碼的安全運(yùn)行提供一個(gè)可靠靈活的運(yùn)行平臺(tái)。 第一章: 引言 介紹了網(wǎng)絡(luò)計(jì)算的背景情況、移動(dòng)代碼帶來(lái)的利弊以及國(guó)內(nèi)外發(fā)展的現(xiàn)狀。并介紹了課題研究的意義。 第二章: 相關(guān)技術(shù)與概念 介紹了面向方面編程和沙箱計(jì)數(shù)的主要概念,以及和欣 件技術(shù)、和欣操作系統(tǒng)的特性和和欣 型的設(shè)計(jì)。 第三章: 本章首先探討了沙箱模型的設(shè)計(jì)方法和思路,然后介紹了和欣沙箱模型的設(shè)計(jì)目的、模塊組成和框架結(jié)構(gòu),并闡述的這種設(shè)計(jì)的優(yōu)點(diǎn)特性。 第四章: 本章主要介紹的是沙箱宿主的設(shè)計(jì)細(xì)節(jié),首先對(duì)沙箱宿主做總體介紹,然后對(duì)用戶程序集如何被加載到沙箱宿主中運(yùn)行的機(jī)制做了詳細(xì)分析,以及沙箱宿主如何動(dòng)態(tài)聚合監(jiān)控側(cè)面構(gòu)件,并靈活監(jiān)控用戶程序集的運(yùn)行。 第五章: 總結(jié)本論文的研究工作,并對(duì)以后的研究工作提出了展望。 第 1 章 引言 11 第 2 章 相關(guān)技術(shù)與概念 件技術(shù)是面向構(gòu)件編程的編程模型,它規(guī)定了一組構(gòu)件間相互調(diào)用的標(biāo)準(zhǔn),使得二進(jìn)制構(gòu)件能夠自描述,能夠在運(yùn)行時(shí)動(dòng)態(tài)連接。 容微軟的 是和微軟 比, 除了 過(guò)時(shí)的約定,禁止用戶定義 非自描述接口;完備了構(gòu)件及其接口的自描述功能,實(shí)現(xiàn)了對(duì) 擴(kuò)展;對(duì) 用戶界面進(jìn)行了簡(jiǎn)化包裝,易學(xué)易用。由此可知, 微軟 一個(gè)子集,同時(shí)又對(duì)微軟的 行了擴(kuò)展,在 臺(tái) 具的支持下,使得高深難懂的構(gòu)件編程技術(shù)很容易被 C/C+程序員理解并掌握。 相比于微軟的 術(shù), 術(shù)完全放棄對(duì)非自描述數(shù)據(jù)類(lèi)型的支持。對(duì)于 代的軟件開(kāi)發(fā)來(lái)講,這是一個(gè)很好的選擇。 代需要對(duì)數(shù)據(jù)進(jìn)行遠(yuǎn)程傳輸,如果數(shù)據(jù)本身不帶有對(duì)它自己的描繪的話,那在數(shù)據(jù)的傳輸和交換過(guò)程中就要付出更多的代價(jià)。為了支持字符串,數(shù)組,結(jié)構(gòu)等非自描敘性數(shù)據(jù), 供了一系列用于封裝這些數(shù)據(jù)的自描敘數(shù)據(jù)類(lèi)型。例如 。 般用來(lái)存儲(chǔ)用戶的常量字符串,它有一個(gè)定長(zhǎng)的存儲(chǔ)區(qū),可 以存儲(chǔ)用戶的字符串,它還保存該字符串的長(zhǎng)度。 供存儲(chǔ)字節(jié)的緩沖區(qū),可以存放任何數(shù)據(jù), 存放的是一個(gè) 象, 來(lái)定義一個(gè)多維、定長(zhǎng)、自描述數(shù)據(jù)類(lèi)型的數(shù)組, 一個(gè)通用數(shù)據(jù)類(lèi)型,它可以存儲(chǔ)任何類(lèi)型的數(shù)據(jù)。 同時(shí)這些數(shù)據(jù)對(duì)象本身是與微軟定義的自描敘數(shù)據(jù)類(lèi)型是兼容的。這就為件能夠在 面正常的跨地址空間,遠(yuǎn)程調(diào)用提供了基本的前提。而且 描述數(shù)據(jù)類(lèi)型與傳統(tǒng)的數(shù)據(jù)類(lèi)型之間轉(zhuǎn)化更加靈活,它提供了一系列對(duì)字符串和字節(jié)流等進(jìn)行自描述包裝的數(shù)據(jù)類(lèi)型 和方法。另外, 描述數(shù)據(jù)類(lèi)型不僅可以在堆上分配,而且可以在棧上分配,提高了系統(tǒng)的效率。 第 1 章 引言 12 在 ,構(gòu)件的一些相關(guān)運(yùn)行信息都存放在系統(tǒng)的全局?jǐn)?shù)據(jù)庫(kù)注冊(cè)表中,構(gòu)件在能夠正確運(yùn)行之前,必須進(jìn)行注冊(cè)。而構(gòu)件的相關(guān)運(yùn)行信息本身就應(yīng)該是構(gòu)件自描述的內(nèi)容之一,所以 術(shù)選擇了把該類(lèi)信息封裝在構(gòu)件所在的二進(jìn)制文件中。 構(gòu)件導(dǎo)出接口的描述方法之一是使用類(lèi)型庫(kù)( 據(jù)( 于描述構(gòu)件信息的數(shù)據(jù)),類(lèi)型庫(kù)本身是跟構(gòu)件的 件打包在一起的。但類(lèi)型庫(kù)信息卻不是由構(gòu)件自身來(lái)來(lái)解釋?zhuān)强肯到y(tǒng)程序 提取和解釋?zhuān)@也不符合構(gòu)件的自描述思想。而 可以通過(guò)構(gòu)件 身提供的導(dǎo)出函數(shù),非常容易的獲得該信息。 在大多數(shù)情況下,一個(gè)構(gòu)件會(huì)使用到另一些構(gòu)件的某種功能,也就是說(shuō)構(gòu)件之間存在相互的依存關(guān)系。 ,構(gòu)件只有關(guān)于自身接口(或者說(shuō)功能)的自描述,而缺少對(duì)構(gòu)件依賴關(guān)系的自描述。在網(wǎng)絡(luò)計(jì)算時(shí)代的今天,正確的構(gòu)件依賴關(guān)系是構(gòu)件滾動(dòng)運(yùn)行、動(dòng)態(tài)升級(jí)的基礎(chǔ)。在 構(gòu)件封裝中,除了構(gòu)件本身的類(lèi)信 息封裝在構(gòu)件內(nèi)外,還對(duì)構(gòu)件的依賴關(guān)系進(jìn)行了封裝。即把一個(gè)構(gòu)件對(duì)其它構(gòu)件的依賴關(guān)系也作為構(gòu)件的元數(shù)據(jù)封裝在構(gòu)件中,我們把這種元數(shù)據(jù)稱(chēng)為構(gòu)件的導(dǎo)入信息( 對(duì)于面向 務(wù)的應(yīng)用軟件開(kāi)發(fā),以及開(kāi)發(fā)操作系統(tǒng)這樣的大型系統(tǒng)軟件而言,采用 件技術(shù)具有以下的意義: 不同軟件開(kāi)發(fā)商開(kāi)發(fā)的具有獨(dú)特功能的構(gòu)件,可以確保與其他人開(kāi)發(fā)的構(gòu)件實(shí)現(xiàn)互操作。 實(shí)現(xiàn)在對(duì)某一個(gè)構(gòu)件進(jìn)行升級(jí)時(shí)不會(huì)影響到系統(tǒng)中的其它構(gòu)件。 不同的編程語(yǔ)言實(shí)現(xiàn)的構(gòu)件之間可以實(shí)現(xiàn)互操作。 提供一個(gè)簡(jiǎn)單、統(tǒng)一的編程模型 ,使得構(gòu)件可以在進(jìn)程內(nèi)、跨進(jìn)程甚至于跨網(wǎng)絡(luò)運(yùn)行。同時(shí)提供系統(tǒng)運(yùn)行的安全、保護(hù)機(jī)制。 件與微軟的 件二進(jìn)制兼容,但是 開(kāi)發(fā)工具自動(dòng)實(shí)現(xiàn)構(gòu)件的封裝,簡(jiǎn)化了構(gòu)件編程的復(fù)雜性,有利于構(gòu)件化編程技術(shù)的推廣普及; 件技術(shù)是一個(gè)實(shí)現(xiàn)軟件工廠化生產(chǎn)的先進(jìn)技術(shù),可以大大提升企業(yè)的軟件開(kāi)發(fā)技術(shù)水平,提高軟件生產(chǎn)效率和軟件產(chǎn)品質(zhì)量;軟件工廠化生產(chǎn)需要有零件的標(biāo)準(zhǔn), 件技術(shù)為建立軟件標(biāo)準(zhǔn)提供了參考,有利于建立企業(yè)、第 1 章 引言 13 行業(yè)的軟件標(biāo)準(zhǔn)和構(gòu)件庫(kù)。 向方面編程 向方面編程),是 司 使開(kāi)發(fā)者更好地將那些本不應(yīng)該彼此糾纏在一起的任務(wù)(例如運(yùn)算和異常處理)分離開(kāi),從而為程序提供更好的封裝性和互操作性??梢哉f(shuō)是 向?qū)ο缶幊蹋┑难a(bǔ)充和完善。 入封裝、繼承和多態(tài)性等概念來(lái)建立一種對(duì)象層次結(jié)構(gòu),用以模擬公共行為的一個(gè)集合。當(dāng)我們需要為分散的對(duì)象引入公共行為的時(shí)候, 顯得無(wú)能為力。 也就是說(shuō), 許你定義從上到下的關(guān)系,但并不適合定義從左到右的關(guān)系。例如口志功能。日志代碼往往水平地散布在所有對(duì)象層次中,而與它所散布到的對(duì)象的核心功能毫無(wú)關(guān)系。對(duì)于其他類(lèi)型的代碼,如安全性、異常處理和透明的持續(xù)性也是如此。這種散布在各處的無(wú)關(guān)的代碼被稱(chēng)為橫切( 碼,在 計(jì)中,它導(dǎo)致了大量代碼的重復(fù),而不利于各個(gè)模塊的重用。 而 術(shù)則恰恰相反,它利用一種稱(chēng)為“橫切”的技術(shù),剖解開(kāi)封裝的對(duì)象內(nèi)部,并將那些影響了多個(gè)類(lèi)的公共行為封裝到一個(gè)可重用模塊,并將其名為“ 即方 面。所謂“方面”,簡(jiǎn)單地說(shuō),就是將那些與業(yè)務(wù)無(wú)關(guān),卻為業(yè)務(wù)模塊所共同調(diào)用的邏輯或責(zé)任封裝起來(lái),便于減少系統(tǒng)的重復(fù)代碼,降低模塊間的藕合度,并有利于未來(lái)的可操作性和可維護(hù)性。 表的是一個(gè)橫向的關(guān)系,如果說(shuō)“對(duì)象”是一個(gè)空心的圓柱體,其中封裝的是對(duì)象的屬性和行為 ;那么面向方面編程的方法,就仿佛一把利刃,將這些空心圓柱屬性和行為 :那么面向方面編程的方法,就仿佛一把利刃,將這些空心圓柱體剖開(kāi),以獲得其內(nèi)部的消息。而剖開(kāi)的切面,也就是所謂的“方面”了。然后它又以巧奪天功的妙手將這些剖開(kāi)的切面復(fù)原,不留痕跡。 使 用“橫切”技術(shù), 軟件系統(tǒng)分為兩個(gè)部分:核心關(guān)注點(diǎn)和橫切關(guān)注點(diǎn)。業(yè)務(wù)處理的主要流程是核心關(guān)注點(diǎn),與之關(guān)系不大的部分是橫切關(guān)注點(diǎn)。橫切關(guān)注點(diǎn)的一個(gè)特點(diǎn)是,他們經(jīng)常發(fā)生在核心關(guān)注點(diǎn)的多處,而各處都基本相似。比如權(quán)限認(rèn)證、日志、事務(wù)處理。 作用在于分離系統(tǒng)中的各種關(guān)注點(diǎn),將核心關(guān)注點(diǎn)和橫切關(guān)注點(diǎn)分離開(kāi)來(lái)。正如 司的高級(jí)方案構(gòu)第 1 章 引言 14 架師 說(shuō), 核心思想就是“將應(yīng)用程序中的商業(yè)邏輯同對(duì)其提供支持的通用服務(wù)進(jìn)行分離。” 實(shí)現(xiàn) 技術(shù),主要分為兩大類(lèi):一是采用動(dòng)態(tài)代理 技術(shù),利用截取消息的方式,對(duì)該消息進(jìn)行裝飾,以取代原有對(duì)象行為的執(zhí)行;二是采用靜態(tài)織入的方式,引入特定的語(yǔ)法創(chuàng)建“方面”,從而使得編譯器可以在編譯期間織入有關(guān)“方面”的代碼。然而殊途同歸,實(shí)現(xiàn) 技術(shù)特性卻是相同的,分別為 : ( 1) 連接點(diǎn)( 是程序執(zhí)行中的一個(gè)精確執(zhí)行點(diǎn),例如類(lèi)中的一個(gè)方法。它是一個(gè)抽象的概念,在實(shí)現(xiàn) ,并不需要去定義一個(gè) ( 2) 切入點(diǎn)( 本質(zhì)上是一個(gè)捕獲連接點(diǎn)的結(jié)構(gòu)。在 ,可以定義一個(gè) 捕獲 相關(guān)方法的所有調(diào)用。切入點(diǎn)需要在方面中定義,以便編織器在確定的位置織入通知( ( 3) 通知( 是 可執(zhí)行代碼,是執(zhí)行“方面”的具體邏輯。是增加到切入點(diǎn)的可執(zhí)行代碼,實(shí)現(xiàn)橫切關(guān)注點(diǎn)的功能。例如添加日志功能就是一個(gè)通知,切入點(diǎn)捕捉對(duì)象方法的每個(gè)調(diào)用,然后動(dòng)態(tài)地插入通知( 即日志記錄代碼。 ( 4) 方面( 合起來(lái)就是 類(lèi)似于定義的一個(gè)類(lèi),但它代表的更多是對(duì)象間橫向的關(guān)系。封裝橫切關(guān)注點(diǎn), 類(lèi)似編程語(yǔ)言中的類(lèi)。方面主要定義切入點(diǎn)( 通知( 方面編譯器來(lái)編譯,以便將橫切關(guān)注點(diǎn)織入( 現(xiàn)有的對(duì)象中。 ( 5) 引入( 為對(duì)象引入附加的方法或?qū)傩裕瑥亩_(dá)到修改對(duì)象結(jié)構(gòu)的目的。有的 具又將其稱(chēng)為 述的技術(shù)特性組成了基本的 術(shù),大多數(shù) 具均實(shí)現(xiàn)了這些技術(shù)。它們也可以是研究術(shù)的基本術(shù)語(yǔ)。 實(shí)現(xiàn)主要有三個(gè)關(guān)鍵的部分,一是識(shí)別和分離關(guān)注點(diǎn),二是各自的實(shí)現(xiàn),最后是關(guān)注點(diǎn)的重新組合。重組時(shí)一方面要指 定重組的規(guī)則,另一方面要實(shí)現(xiàn)重組的自動(dòng)化。由 現(xiàn)的系統(tǒng)由兩個(gè)突出的特點(diǎn),一個(gè)每個(gè)關(guān)注點(diǎn)的實(shí)現(xiàn)都是獨(dú)立的,二是最終的系統(tǒng)是由松散耦合的模塊化的關(guān)注點(diǎn)來(lái)搭建的。 術(shù)的優(yōu)勢(shì)是顯而易見(jiàn)的。在面向?qū)ο蟮氖澜缋铮藗兲岢隽烁鞣N方法和第 1 章 引言 15 設(shè)計(jì)原則來(lái)保障系統(tǒng)的可復(fù)用性與可擴(kuò)展性,以期建立一個(gè)松散耦合、便于擴(kuò)展的軟件系統(tǒng)。例如 出的“設(shè)計(jì)模式”,為我們提供了設(shè)計(jì)的典范與準(zhǔn)則。設(shè)計(jì)模式通過(guò)最大程度的利用面向?qū)ο蟮奶匦裕T如利用繼承、多態(tài),對(duì)責(zé)任進(jìn)行分離、對(duì)依賴進(jìn)行倒置,面向抽象,面向接口,最終設(shè)計(jì)出靈活、可擴(kuò)展 、可重用的類(lèi)庫(kù)、組件,乃至于整個(gè)系統(tǒng)的架構(gòu)。在設(shè)計(jì)的過(guò)程中,通過(guò)各種模式體現(xiàn)對(duì)象的行為、暴露的接口、對(duì)象間關(guān)系、以及對(duì)象分別在不同層次中表現(xiàn)出來(lái)的形態(tài)。然而鑒于對(duì)象封裝的特殊性,“設(shè)計(jì)模式”的觸角始終在接口與抽象中大做文章,而對(duì)于對(duì)象內(nèi)部則無(wú)能為力。 通過(guò)“橫切”技術(shù), 術(shù)就能深入到對(duì)象內(nèi)部,方便地截取方法之間傳遞的消息。由于將核心關(guān)注點(diǎn)與橫切關(guān)注點(diǎn)完全隔離,使得我們能夠獨(dú)立的對(duì)“方面”編程。它允許開(kāi)發(fā)者動(dòng)態(tài)地修改靜態(tài)的 型,構(gòu)造出一個(gè)能夠不斷增長(zhǎng)以滿足新增需求的系統(tǒng),就象現(xiàn)實(shí)世界中的對(duì)象會(huì)在其生 命周期中不斷改變自身,應(yīng)用程序也可以在發(fā)展中擁有新的功能。 設(shè)計(jì)軟件系統(tǒng)時(shí)應(yīng)用 術(shù),其優(yōu)勢(shì)在于 : 在定義應(yīng)用程序?qū)δ撤N服務(wù) (例如日志 )的所有需求的時(shí)候。通過(guò)識(shí)別關(guān)注點(diǎn),使得該服務(wù)能夠被更好的定義,更好的被編寫(xiě)代碼,并獲得更多的功能。這種方式還能夠處理在代碼涉及到多個(gè)功能的時(shí)候所出現(xiàn)的問(wèn)題,例如改變某一個(gè)功能可能會(huì)影響到其它的功能,在 把這樣的麻煩稱(chēng)之為“糾結(jié)( 。 利用 術(shù)對(duì)離散的方面進(jìn)行的分析將有助于為開(kāi)發(fā)團(tuán)隊(duì)指定一位精于該項(xiàng)工作的專(zhuān)家。負(fù)責(zé)這項(xiàng)工作的最佳人選將可以 有效利用自己的相關(guān)技能和經(jīng)驗(yàn)。 持久性。標(biāo)準(zhǔn)的面向?qū)ο蟮捻?xiàng)目開(kāi)發(fā)中,不同的開(kāi)發(fā)人員通常會(huì)為某項(xiàng)服務(wù)編寫(xiě)相同的代碼,例如日志記錄。隨后他們會(huì)在自己的實(shí)施中分別對(duì)日志進(jìn)行處理以滿足不同單個(gè)對(duì)象的需求。而通過(guò)創(chuàng)建一段單 獨(dú)的代碼片段, 供了解決這一問(wèn)題的持久簡(jiǎn)單的方案,這一方案強(qiáng)調(diào)了未來(lái)功能的重用性和易維護(hù)性 :不需要在整個(gè)應(yīng)用程序中一遍遍重新編寫(xiě)日志代碼, 得僅僅編寫(xiě)監(jiān)控方面( 為可能,并且可以在這之上為整個(gè)應(yīng)用程序提供新的功能。 總而言之, 術(shù)的優(yōu)勢(shì)使得需要 編寫(xiě)的代碼量大大縮減,節(jié)省了時(shí)間,控制了開(kāi)發(fā)成本。同時(shí)也使得開(kāi)發(fā)人員可以集中關(guān)注于系統(tǒng)的核心商業(yè)邏輯。第 1 章 引言 16 此外,它更利于創(chuàng)建松散禍合、可復(fù)用與可擴(kuò)展的大型軟件系統(tǒng)。 制 使用戶能夠在完全不用修改源代碼的情況下簡(jiǎn)單而方便的動(dòng)態(tài)聚合兩個(gè) 件類(lèi),從而生成一個(gè)具有兩個(gè) 件類(lèi)所有接口實(shí)現(xiàn)的新構(gòu)件類(lèi)。 術(shù)是由 象、動(dòng)態(tài)聚合和對(duì)象環(huán)境組成。 態(tài)聚合(或織入 拆卸是本文沙箱模型實(shí)現(xiàn)安全語(yǔ)義 動(dòng)態(tài)可配置的關(guān)鍵技術(shù)。 在 ,聚合體現(xiàn)了組件軟件的重用性,聚合的目的就是使兩個(gè)組件對(duì)象特征成為一個(gè)組件對(duì)象 (外部對(duì)象 )的特征,而另外一個(gè)組件對(duì)象對(duì)客戶透明。 然而 聚合體現(xiàn)的只是一種靜態(tài)的聚合方式,外部對(duì)象 B 在聚合內(nèi)部對(duì)象 A 時(shí),只有在創(chuàng)建內(nèi)部對(duì)象 A 時(shí)才可發(fā)生聚合,也就是在 時(shí)候?qū)⑼獠繉?duì)象指針作為參數(shù)傳入。 件的聚合模型在 合模型的基礎(chǔ)上,實(shí)現(xiàn)了動(dòng)態(tài)聚合方式,加 上 對(duì)象環(huán)境以及 件自動(dòng)代碼工具, 件的聚合簡(jiǎn)單而靈活,可隨時(shí)聚合,隨時(shí)卸載,發(fā)展為面向方面的聚合模型。 ( 1) 象 象屬于必須實(shí)現(xiàn)特殊基接口 特殊構(gòu)件類(lèi),其特征是只有象才可被其它構(gòu)件對(duì)象聚合 , 同時(shí)也可以聚合其它 象。 件對(duì)象基接口 實(shí)現(xiàn)僅做簡(jiǎn)單的轉(zhuǎn)接。如果 方法調(diào)用則會(huì)被委托給外部對(duì)象上。外部對(duì)象保存 象的 接口指針,用于 象真正的接口查詢,類(lèi)似于 非委

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論