史秀鵬,何涇沙,,趙 斌,張伊璇,劉若鴻
(1.北京工業(yè)大學(xué) 軟件學(xué)院,北京100124;2.北京經(jīng)開(kāi)股份有限公司 信息技術(shù)部,北京100176)
隨著網(wǎng)絡(luò)應(yīng)用的不斷發(fā)展,網(wǎng)絡(luò)應(yīng)用的界面內(nèi)容來(lái)源于多個(gè)采用不同安全策略的訪(fǎng)問(wèn)控制客體,應(yīng)用在訪(fǎng)問(wèn)資源的過(guò)程中會(huì)并行發(fā)出大量的訪(fǎng)問(wèn)請(qǐng)求,這些訪(fǎng)問(wèn)請(qǐng)求在沒(méi)有進(jìn)行統(tǒng)一的訪(fǎng)問(wèn)控制協(xié)調(diào)調(diào)度時(shí)會(huì)導(dǎo)致不安全的訪(fǎng)問(wèn)和未授權(quán)信息的泄露。
訪(fǎng)問(wèn)控制作為信息系統(tǒng)的重要保護(hù)屏障,普遍應(yīng)用在操作系統(tǒng)、數(shù)據(jù)庫(kù)和應(yīng)用系統(tǒng)當(dāng)中。隨著應(yīng)用系統(tǒng)的高度集成,云計(jì)算和分布式技術(shù)的快速發(fā)展,傳統(tǒng)的采用單一策略的訪(fǎng)問(wèn)控制方法已經(jīng)不能滿(mǎn)足現(xiàn)在安全要求。訪(fǎng)問(wèn)控制模型在并發(fā)性、靈活性、協(xié)調(diào)管理和可擴(kuò)展性等方面需要進(jìn)行改進(jìn)。
面向大量外部用戶(hù)的可共享的分布式開(kāi)放式網(wǎng)絡(luò)的普及,催生了網(wǎng)絡(luò)應(yīng)用的發(fā)展,如大型電子商務(wù)網(wǎng)絡(luò)、Ad Hoc網(wǎng)絡(luò)、社交網(wǎng)絡(luò)等[1]。由于網(wǎng)絡(luò)應(yīng)用更多依賴(lài)于服務(wù)器提供網(wǎng)絡(luò)資源,導(dǎo)致了用戶(hù)同一時(shí)刻對(duì)于服務(wù)器的高并發(fā)訪(fǎng)問(wèn)[2]。同時(shí),網(wǎng)絡(luò)資源通過(guò)分布式服務(wù)器技術(shù)分散在不同物理位置或網(wǎng)絡(luò)域[3,4]中的服務(wù)器節(jié)點(diǎn),眾多服務(wù)器實(shí)施的訪(fǎng)問(wèn)控制策略各異,使得訪(fǎng)問(wèn)控制難以有效統(tǒng)一地管理。
對(duì)于B/S結(jié)構(gòu)的應(yīng)用系統(tǒng),資源訪(fǎng)問(wèn)請(qǐng)求需要進(jìn)行統(tǒng)一調(diào)度協(xié)調(diào)。目前web頁(yè)面設(shè)計(jì)的資源種類(lèi)不再是的文字和圖片,還包含多媒體特效[5]、視頻、聲音等資源,瀏覽器按照順序的資源訪(fǎng)問(wèn)方式,用戶(hù)往往不能第一時(shí)間看到自己需要的資源,用戶(hù)簡(jiǎn)單的操作伴隨著頁(yè)面刷新,大量資源重復(fù)加載導(dǎo)致了網(wǎng)絡(luò)流量的浪費(fèi)。同時(shí)對(duì)于客體資源的訪(fǎng)問(wèn)控制主要依賴(lài)于服務(wù)器的認(rèn)定,并發(fā)訪(fǎng)問(wèn)請(qǐng)求的到來(lái)伴隨著大量的訪(fǎng)問(wèn)授權(quán),這樣就增加了HTTP服務(wù)器的開(kāi)銷(xiāo)。
對(duì)于C/S結(jié)構(gòu)的應(yīng)用系統(tǒng),資源的調(diào)取方式也往往來(lái)源于多個(gè)訪(fǎng)問(wèn)控制的客體,雖然采用了TCP/IP 的面向持續(xù)連接的連接方式,但是不同目的地址的客體會(huì)增加連接的個(gè)數(shù),在整個(gè)系統(tǒng)界面的加載過(guò)程中也沒(méi)有進(jìn)行不同訪(fǎng)問(wèn)控制的協(xié)調(diào)工作。同時(shí)并發(fā)訪(fǎng)問(wèn)請(qǐng)求所請(qǐng)求的客體也存在著關(guān)聯(lián)關(guān)系,因此需要根據(jù)客體的關(guān)聯(lián)關(guān)系來(lái)調(diào)度調(diào)整并發(fā)訪(fǎng)問(wèn)請(qǐng)求的訪(fǎng)問(wèn)順序,根據(jù)客體訪(fǎng)問(wèn)控制的結(jié)果來(lái)開(kāi)啟或關(guān)閉其它未進(jìn)行的并發(fā)訪(fǎng)問(wèn)請(qǐng)求。因此如何根據(jù)安全要求及并發(fā)訪(fǎng)問(wèn)請(qǐng)求的關(guān)聯(lián)關(guān)系有效協(xié)調(diào)訪(fǎng)問(wèn)控制機(jī)制,提出有效的、滿(mǎn)足開(kāi)放式網(wǎng)絡(luò)要求的動(dòng)態(tài)訪(fǎng)問(wèn)控制方案,對(duì)保護(hù)信息、資源和服務(wù)的安全以及個(gè)人隱私至關(guān)重要。研究并發(fā)訪(fǎng)問(wèn)的關(guān)聯(lián)關(guān)系,根據(jù)不同的關(guān)聯(lián)關(guān)系制定訪(fǎng)問(wèn)控制的協(xié)調(diào)方法,對(duì)于目前的應(yīng)用系統(tǒng)的設(shè)計(jì)和建設(shè)具有重要的研究?jī)r(jià)值。
網(wǎng)絡(luò)應(yīng)用在加載的過(guò)程中,會(huì)觸發(fā)大量的并發(fā)訪(fǎng)問(wèn)請(qǐng)求,這些訪(fǎng)問(wèn)請(qǐng)求將并發(fā)的調(diào)取網(wǎng)絡(luò)資源[6]。HTTP 訪(fǎng)問(wèn)請(qǐng)求是我們常見(jiàn)的訪(fǎng)問(wèn)請(qǐng)求的一種,通過(guò)網(wǎng)頁(yè)數(shù)據(jù)分析工具可以獲得web頁(yè)面的并發(fā)數(shù)據(jù),得到對(duì)于單一頁(yè)面會(huì)出發(fā)多大程度的并發(fā)調(diào)取網(wǎng)絡(luò)資源的數(shù)量。
本文使用的工具是Http watch,它集成在Internet Explorer工具欄,可以查看網(wǎng)頁(yè)摘要、網(wǎng)頁(yè)字符、Cookies、緩存、訪(fǎng)問(wèn)請(qǐng)求消息頭發(fā)送/接受。Http watch還能夠在顯示網(wǎng)頁(yè)同時(shí)顯示網(wǎng)頁(yè)請(qǐng)求和回應(yīng)的日志信息,如圖1所示。

圖1 Http watch顯示網(wǎng)絡(luò)應(yīng)用觸發(fā)的并發(fā)訪(fǎng)問(wèn)請(qǐng)求
在Http watch中可以看到,在訪(fǎng)問(wèn)淘寶網(wǎng)-首頁(yè)時(shí),瀏覽器會(huì)觸發(fā)186個(gè)并發(fā)的訪(fǎng)問(wèn)請(qǐng)求,180個(gè)為GET 請(qǐng)求,6個(gè)為POST 請(qǐng)求。在訪(fǎng)問(wèn)新浪網(wǎng)-首頁(yè)時(shí),瀏覽器會(huì)觸發(fā)225個(gè)并發(fā)的網(wǎng)絡(luò)請(qǐng)求,全部為GET 請(qǐng)求。
在HTTP請(qǐng)求中描述調(diào)取資源的目的地址是URL,也就是網(wǎng)業(yè)結(jié)構(gòu)中的超鏈接,信息,可以將超鏈接視為線(xiàn),網(wǎng)頁(yè)視為結(jié)點(diǎn),這樣就組成了一個(gè)圖的結(jié)構(gòu),被稱(chēng)之為網(wǎng)站的拓?fù)浣Y(jié)構(gòu)。本文使用基于Heritrix的網(wǎng)絡(luò)爬蟲(chóng)工具提取網(wǎng)站網(wǎng)頁(yè)中的超鏈接信息,同時(shí)剔除了網(wǎng)頁(yè)中夾雜的無(wú)效鏈接,由于網(wǎng)站拓?fù)浣Y(jié)構(gòu)呈現(xiàn)出來(lái)是圖結(jié)構(gòu)不利于理解和導(dǎo)航,本文擬將其組織成層次性結(jié)構(gòu),將網(wǎng)站的拓?fù)浣Y(jié)構(gòu)轉(zhuǎn)換成樹(shù)型結(jié)構(gòu)以便認(rèn)知理解,如圖2所示。
網(wǎng)頁(yè)的文本信息中包含的鏈接類(lèi)型主要包含網(wǎng)頁(yè)的樣式文件鏈接、腳本文件連接、跳轉(zhuǎn)至其它頁(yè)面的鏈接和多媒體資源鏈接。跳轉(zhuǎn)型鏈接和多媒體鏈接會(huì)連接到不同的域名或IP地址,來(lái)源于不同的客體,并觸發(fā)不同客體的訪(fǎng)問(wèn)控制。網(wǎng)絡(luò)連接指向的客體資源存在著一定的聯(lián)系,通過(guò)對(duì)于客體資源的識(shí)別和分類(lèi)可以找到客體資源之間的關(guān)系,進(jìn)而獲得訪(fǎng)問(wèn)請(qǐng)求之間的關(guān)聯(lián)關(guān)系。
在訪(fǎng)問(wèn)請(qǐng)求并發(fā)訪(fǎng)問(wèn)客體資源的過(guò)程中,并發(fā)訪(fǎng)問(wèn)請(qǐng)求之間存在著相互的關(guān)聯(lián)關(guān)系,關(guān)聯(lián)關(guān)系的判斷來(lái)源于訪(fǎng)問(wèn)請(qǐng)求本身屬性,還來(lái)源于訪(fǎng)問(wèn)請(qǐng)求訪(fǎng)問(wèn)客體資源之間的二元關(guān)系[7]。本文將具體的關(guān)聯(lián)關(guān)系定義為以下5種:或、與、非、依賴(lài)、聚合。
(1)“或”關(guān)系,標(biāo)識(shí)為 “∪”,代表的是兩個(gè)并發(fā)訪(fǎng)問(wèn)請(qǐng)求,至少有一個(gè)獲得訪(fǎng)問(wèn)控制的允許,兩者才能繼續(xù)顯示出來(lái)。例如:通常在信息系統(tǒng)中,很多訪(fǎng)問(wèn)請(qǐng)求存在著意義上的關(guān)聯(lián),但關(guān)聯(lián)程度并不強(qiáng)烈。新聞系統(tǒng)中,兩則同一板塊的新聞鏈接,雖然意義上同屬于同一個(gè)新聞?lì)愋停嗷ブg不存在制約的關(guān)聯(lián)關(guān)系,它們觸發(fā)的訪(fǎng)問(wèn)控制之間是相互獨(dú)立的。

(2)“與”關(guān)系,標(biāo)識(shí)為 “∩”,代表的是兩個(gè)并發(fā)訪(fǎng)問(wèn)請(qǐng)求,都獲得了訪(fǎng)問(wèn)控制的允許,兩者才能繼續(xù)顯示出來(lái)。例如:圖片和文字同時(shí)展示時(shí),若圖片未獲得響應(yīng)或者不允許訪(fǎng)問(wèn),則相應(yīng)的文字也同時(shí)不予以展示;視頻和文字同時(shí)展示時(shí),文字詳細(xì)描述了視頻的內(nèi)容,若視頻不允許訪(fǎng)問(wèn),則文字的響應(yīng)也不予以展示。
(3)“非”關(guān)系,標(biāo)識(shí)為 “!”,代表并發(fā)訪(fǎng)問(wèn)請(qǐng)求1,在并發(fā)訪(fǎng)問(wèn)請(qǐng)求2訪(fǎng)問(wèn)控制拒絕的情況下,才能顯示訪(fǎng)問(wèn)請(qǐng)求1的結(jié)果。例如:在信息系統(tǒng)中,在一些通用的功能模塊中,普通用戶(hù)和管理員用戶(hù)的功能需求差異不大,共享著同一個(gè)用戶(hù)界面。根據(jù)用戶(hù)權(quán)限的不同,普通用戶(hù)加載界面時(shí)會(huì)隱藏管理員用戶(hù)的界面內(nèi)容,同樣管理員用戶(hù)加載界面時(shí)會(huì)隱藏普通用戶(hù)的界面內(nèi)容,這種互斥關(guān)系就是 “非”關(guān)系。
(4)“優(yōu)先”關(guān)系,標(biāo)識(shí)為 “→”,代表的是并發(fā)訪(fǎng)問(wèn)請(qǐng)求1,應(yīng)該在并發(fā)訪(fǎng)問(wèn)請(qǐng)求2前面,優(yōu)先被執(zhí)行。例如:文字信息是用戶(hù)更想看到的,此時(shí)文字的現(xiàn)實(shí)應(yīng)該放在其它信息之后展示出來(lái);廣告在展示時(shí)是用戶(hù)較不想先看到的,應(yīng)該放在后面展示。
(5)“聚合”關(guān)系,標(biāo)識(shí)為 “×”,代表的是該并發(fā)訪(fǎng)問(wèn)請(qǐng)求是由多個(gè)子并發(fā)請(qǐng)求組成的。例如:一條訪(fǎng)問(wèn)請(qǐng)求鏈接道德界面模塊中包含有多個(gè)子訪(fǎng)問(wèn)請(qǐng)求,這樣的訪(fǎng)問(wèn)請(qǐng)求由多個(gè)子訪(fǎng)問(wèn)請(qǐng)求組合而成。
并發(fā)訪(fǎng)問(wèn)關(guān)聯(lián)關(guān)系可以采用代數(shù)計(jì)算來(lái)描述,便于通過(guò)簡(jiǎn)單的二元關(guān)系,通過(guò)關(guān)系運(yùn)算符的連接,推演為復(fù)雜的多元關(guān)系,具體描述如下:

本文定義的5種基本的訪(fǎng)問(wèn)請(qǐng)求關(guān)聯(lián)關(guān)系,它們的含義如下:
(1)CR=Request1∪Request2
操作符 “∪”表示 “或”,是二元操作符,含義是在請(qǐng)求Request1和請(qǐng)求Request2 當(dāng)中,至少有一個(gè)發(fā)生,表示為:
If((Request1==1)Or(Request1==1))Composite-Request=1
(2)CR=Request1∩Request2
操作符 “∩”表示 “與”,是二元操作符,含義是兩種請(qǐng)求Request1和Request2都發(fā)生,表示為:
If((Request1==1)And(Request2==1))Composite-Request=1
(3)CR=Request1!Request2
操作符 “!”表示 “非”,是二元操作符,含義是Request1請(qǐng)求發(fā)生而Request2請(qǐng)求不發(fā)生,表示為:
If((Request1==1)And(Request2==0))Composite-Request=1
(4)CR=Request1→Request2
操作符 “→”表示 “時(shí)序優(yōu)先”,是二元操作符,含義是請(qǐng)求Request1在時(shí)間上發(fā)生在Request2之前,表示為:
If((Request1==1)And(Request2==1)And(Request1.Time<Request2.Time))Composite-Request=1
(5)CR=Request1×Request2×Request3
操作符 “×”表示 “聚合”,是多元操作符,含義是event事件實(shí)例發(fā)生n次,表示為:
If((Request1==1)Or/And(Request2==1)Or/And(Request3==1))Composite-Request=1
在開(kāi)放式網(wǎng)絡(luò)中,用戶(hù)對(duì)信息、資源和服務(wù)的訪(fǎng)問(wèn)與使用仍然要求在可控條件下有條不紊地進(jìn)行,以確保網(wǎng)絡(luò)資源最大程度地得到共享以及實(shí)現(xiàn)對(duì)各類(lèi)資源及用戶(hù)隱私進(jìn)行有效的保護(hù)[8]。訪(fǎng)問(wèn)控制是實(shí)現(xiàn)以上安全要求的一項(xiàng)關(guān)鍵技術(shù),目的是對(duì)用戶(hù)提出的信息、資源和服務(wù)的訪(fǎng)問(wèn)請(qǐng)求按照設(shè)置的安全策略進(jìn)行授權(quán)而達(dá)到有效控制。根據(jù)訪(fǎng)問(wèn)請(qǐng)求的關(guān)聯(lián)關(guān)系,合理調(diào)度訪(fǎng)問(wèn)請(qǐng)求,進(jìn)而協(xié)調(diào)訪(fǎng)問(wèn)控制,可以跟好的滿(mǎn)足系統(tǒng)在安全訪(fǎng)問(wèn)和資源獲取速度上的需要。本文提出了訪(fǎng)問(wèn)控制協(xié)調(diào)框架,如圖3所示。

圖3 訪(fǎng)問(wèn)控制協(xié)調(diào)框架
框架的各個(gè)組成部分的功能如下。
(1)“主體”是一個(gè)主動(dòng)的實(shí)體,在訪(fǎng)問(wèn)控制協(xié)調(diào)框架中它是一個(gè)具有用戶(hù)登錄身份標(biāo)識(shí)的終端或應(yīng)用,主體通過(guò)發(fā)出訪(fǎng)問(wèn)請(qǐng)求訪(fǎng)問(wèn)客體。
(2)“客體”是一個(gè)被動(dòng)的實(shí)體,在訪(fǎng)問(wèn)控制協(xié)調(diào)框架中它代表的是訪(fǎng)問(wèn)請(qǐng)求需要獲取的內(nèi)容實(shí)體,包含信息、資源和服務(wù)等類(lèi)型,主體對(duì)客體的訪(fǎng)問(wèn)要受到訪(fǎng)問(wèn)控制策略的限制。
(3)“并行緩沖隊(duì)列”是一個(gè)緩沖執(zhí)行并發(fā)訪(fǎng)問(wèn)請(qǐng)求的裝置,主體并行發(fā)出的訪(fǎng)問(wèn)請(qǐng)求將被接收在并行緩沖隊(duì)列當(dāng)中,暫時(shí)不向客體直接發(fā)送訪(fǎng)問(wèn)請(qǐng)求,等待協(xié)調(diào)處理監(jiān)控器的指令來(lái)執(zhí)行訪(fǎng)問(wèn)請(qǐng)求。
(4)“協(xié)調(diào)處理監(jiān)控器”是一個(gè)可以檢測(cè)訪(fǎng)問(wèn)請(qǐng)求狀態(tài)的裝置,它可以在 “資源關(guān)系數(shù)據(jù)庫(kù)”中查閱不同訪(fǎng)問(wèn)控制客體之間的關(guān)系定義,實(shí)時(shí)地監(jiān)控已經(jīng)發(fā)出的訪(fǎng)問(wèn)請(qǐng)求的資源響應(yīng)情況,并且將匯總的資源響應(yīng)信息發(fā)送給 “協(xié)調(diào)機(jī)制決策模塊”,由該模塊來(lái)決策調(diào)度并發(fā)訪(fǎng)問(wèn)請(qǐng)求,同時(shí)負(fù)責(zé)向 “并行緩沖隊(duì)列”傳輸 “協(xié)調(diào)機(jī)制決策模塊”的決策調(diào)度指令。
(5)“資源關(guān)系數(shù)據(jù)庫(kù)”是存儲(chǔ)了訪(fǎng)問(wèn)控制客體資源之間關(guān)聯(lián)關(guān)系的數(shù)據(jù)源[9]。
數(shù)據(jù)源的類(lèi)型可以通過(guò)文件、數(shù)據(jù)庫(kù)和云存儲(chǔ)服務(wù)等形式提供給訪(fǎng)問(wèn)控制協(xié)調(diào)框架。
本文設(shè)計(jì)了一種面向關(guān)聯(lián)關(guān)系的并發(fā)訪(fǎng)問(wèn)請(qǐng)求調(diào)度方法,通過(guò)合理的調(diào)度并發(fā)訪(fǎng)問(wèn)請(qǐng)求進(jìn)行訪(fǎng)問(wèn)控制的協(xié)調(diào)工作,協(xié)調(diào)方法的執(zhí)行流程如下:
(1)收集并發(fā)訪(fǎng)問(wèn)的關(guān)聯(lián)關(guān)系集合,不具有關(guān)聯(lián)關(guān)系的訪(fǎng)問(wèn)請(qǐng)求將直接訪(fǎng)問(wèn)客體資源。
(2)通過(guò)訪(fǎng)問(wèn)請(qǐng)求關(guān)聯(lián)關(guān)系構(gòu)造多個(gè)訪(fǎng)問(wèn)圖。
(3)每個(gè)訪(fǎng)問(wèn)圖創(chuàng)建一個(gè)線(xiàn)程實(shí)例,加載訪(fǎng)問(wèn)圖的結(jié)構(gòu)內(nèi)容。
(4)線(xiàn)程按照訪(fǎng)問(wèn)圖的結(jié)構(gòu)內(nèi)容執(zhí)行資源訪(fǎng)問(wèn)。
(5)若訪(fǎng)問(wèn)圖的當(dāng)前層的訪(fǎng)問(wèn)請(qǐng)求結(jié)果不滿(mǎn)足當(dāng)前層的關(guān)聯(lián)關(guān)系,則訪(fǎng)問(wèn)圖下層的節(jié)點(diǎn)不再繼續(xù)訪(fǎng)問(wèn)資源。
(6)動(dòng)態(tài)顯示訪(fǎng)問(wèn)控制協(xié)調(diào)后的資源訪(fǎng)問(wèn)結(jié)果。
訪(fǎng)問(wèn)控制協(xié)調(diào)決策流程如圖4所示。

圖4 訪(fǎng)問(wèn)控制協(xié)調(diào)決策流程
本文提出了訪(fǎng)問(wèn)請(qǐng)求訪(fǎng)問(wèn)圖構(gòu)造算法。訪(fǎng)問(wèn)請(qǐng)求訪(fǎng)問(wèn)圖的構(gòu)造算法將根據(jù)訪(fǎng)問(wèn)請(qǐng)求之間的關(guān)聯(lián)關(guān)系構(gòu)造訪(fǎng)問(wèn)圖[10],訪(fǎng)問(wèn)請(qǐng)求訪(fǎng)問(wèn)圖中每個(gè)并發(fā)的訪(fǎng)問(wèn)請(qǐng)求作為訪(fǎng)問(wèn)圖中的一個(gè)節(jié)點(diǎn),訪(fǎng)問(wèn)圖構(gòu)造的過(guò)程采用遞歸的方法,將具有相互聯(lián)系的節(jié)點(diǎn)構(gòu)造在一個(gè)訪(fǎng)問(wèn)圖中,建立訪(fǎng)問(wèn)請(qǐng)求訪(fǎng)問(wèn)圖的過(guò)程如下:
(1)將并發(fā)的訪(fǎng)問(wèn)請(qǐng)求分別創(chuàng)建一個(gè)訪(fǎng)問(wèn)圖節(jié)點(diǎn)。
(2)根據(jù)訪(fǎng)問(wèn)請(qǐng)求的屬性將訪(fǎng)問(wèn)請(qǐng)求分組,觸發(fā)訪(fǎng)問(wèn)控制的訪(fǎng)問(wèn)請(qǐng)求節(jié)點(diǎn)單獨(dú)分為一組 (A 組),不觸發(fā)訪(fǎng)問(wèn)控制的訪(fǎng)問(wèn)請(qǐng)求節(jié)點(diǎn)分為一組 (B組)。
(3)A組根據(jù)訪(fǎng)問(wèn)請(qǐng)求節(jié)點(diǎn)訪(fǎng)問(wèn)資源的訪(fǎng)問(wèn)控制安全級(jí)別,將節(jié)點(diǎn)分層,每層有關(guān)聯(lián)的節(jié)點(diǎn)組合起來(lái),共同連接一個(gè)新創(chuàng)建的節(jié)點(diǎn),稱(chēng)為“匯集節(jié)點(diǎn)”。層與層之間有關(guān)聯(lián)關(guān)系時(shí),上層節(jié)點(diǎn)通過(guò)匯集節(jié)點(diǎn)與下層節(jié)點(diǎn)組合起來(lái),再共同連接一個(gè)新創(chuàng)建的匯集節(jié)點(diǎn)。重復(fù)執(zhí)行上述,生成訪(fǎng)問(wèn)請(qǐng)求訪(fǎng)問(wèn)圖。
(4)第 (3)步中,A 組生成的訪(fǎng)問(wèn)請(qǐng)求訪(fǎng)問(wèn)圖,將相互之間沒(méi)有連接的圖拆分開(kāi),形成多張?jiān)L問(wèn)圖。
(5)B組根據(jù)訪(fǎng)問(wèn)資源的類(lèi)型構(gòu)造多張?jiān)L問(wèn)圖,每張?jiān)L問(wèn)圖中設(shè)一層訪(fǎng)問(wèn)控制節(jié)點(diǎn)。
訪(fǎng)問(wèn)圖的構(gòu)造示意過(guò)程如下:
(1)在訪(fǎng)問(wèn)請(qǐng)求未經(jīng)過(guò)協(xié)調(diào)時(shí),訪(fǎng)問(wèn)請(qǐng)求的訪(fǎng)問(wèn)順序是并行進(jìn)行的,如圖5所示。
(2)協(xié)調(diào)方法將訪(fǎng)問(wèn)請(qǐng)求節(jié)點(diǎn)按照訪(fǎng)問(wèn)訪(fǎng)問(wèn)控制安全級(jí)別分層處理,每層的訪(fǎng)問(wèn)順序是并行進(jìn)行的 (橢圓形節(jié)點(diǎn)為訪(fǎng)問(wèn)控制節(jié)點(diǎn),方塊形節(jié)點(diǎn)為匯集節(jié)點(diǎn)),并且在當(dāng)前層滿(mǎn)足訪(fǎng)問(wèn)請(qǐng)求關(guān)聯(lián)關(guān)系約束的情況下,才進(jìn)入下一層進(jìn)行節(jié)點(diǎn)的訪(fǎng)問(wèn),如圖6所示。

圖5 未經(jīng)過(guò)協(xié)調(diào)的訪(fǎng)問(wèn)請(qǐng)求節(jié)點(diǎn)

圖6 經(jīng)過(guò)協(xié)調(diào)的訪(fǎng)問(wèn)請(qǐng)求節(jié)點(diǎn)
線(xiàn)程 (thread)是指一個(gè)任務(wù)從頭至尾的執(zhí)行流。線(xiàn)程提供了運(yùn)行任務(wù)的機(jī)制。一個(gè)程序可能包含多個(gè)并發(fā)執(zhí)行的任務(wù),這些線(xiàn)程可以在多個(gè)系統(tǒng)同時(shí)運(yùn)行。在單處理器(single-processor)系統(tǒng)中,多個(gè)線(xiàn)程共享CPU 時(shí)間稱(chēng)為時(shí)間共享 (time sharing),而操作系統(tǒng)負(fù)責(zé)調(diào)度分配資源給它們。這種安排是切實(shí)可行的,因?yàn)镃PU 的大部分時(shí)間都是空閑的。例如,在等待用戶(hù)輸入數(shù)據(jù)時(shí),CPU 處于空閑狀態(tài)。
線(xiàn)程池中定義了固定數(shù)目的線(xiàn)程,如果線(xiàn)程完成了任務(wù)的執(zhí)行,它可以被重新使用以執(zhí)行另外一個(gè)任務(wù)。如果線(xiàn)程池中所有的線(xiàn)程都不是處于空閑狀態(tài),那么新加入的任務(wù)處于等待執(zhí)行的狀態(tài),多線(xiàn)程運(yùn)行如圖7所示。
在訪(fǎng)問(wèn)控制的協(xié)調(diào)過(guò)程中,為每個(gè)訪(fǎng)問(wèn)圖生成一個(gè)線(xiàn)程,可以滿(mǎn)足異步進(jìn)行訪(fǎng)問(wèn)控制的要求使網(wǎng)絡(luò)應(yīng)用的響應(yīng)更快、交互性更強(qiáng)、執(zhí)行效率更高。在協(xié)調(diào)訪(fǎng)問(wèn)控制的過(guò)程中,由于分屬不同的訪(fǎng)問(wèn)圖中的訪(fǎng)問(wèn)請(qǐng)求并不存在關(guān)聯(lián)關(guān)系,相互的獨(dú)立的線(xiàn)程運(yùn)行結(jié)果不會(huì)延誤其它線(xiàn)程獲取資源的進(jìn)度。

圖7 訪(fǎng)問(wèn)圖多線(xiàn)程訪(fǎng)問(wèn)資源
同時(shí)將開(kāi)啟的線(xiàn)程交由線(xiàn)程池調(diào)度,避免網(wǎng)絡(luò)應(yīng)用消耗過(guò)多的內(nèi)存資源,保證用戶(hù)系統(tǒng)的平穩(wěn)運(yùn)行,是管理并發(fā)執(zhí)行線(xiàn)程任務(wù)個(gè)數(shù)的理想方法。
為了驗(yàn)證訪(fǎng)問(wèn)控制協(xié)調(diào)方法的可行性,采用C#語(yǔ)言的WCF框架模擬實(shí)現(xiàn)了訪(fǎng)問(wèn)控制協(xié)調(diào)服務(wù),WCF 是一款微軟推出的通信框架,可以便捷的基于該技術(shù)實(shí)現(xiàn)網(wǎng)絡(luò)服務(wù)。訪(fǎng)問(wèn)控制協(xié)調(diào)算法將在服務(wù)的接口函數(shù)中實(shí)現(xiàn),客戶(hù)端通過(guò)并發(fā)訪(fǎng)問(wèn)服務(wù)的方式進(jìn)行并發(fā)訪(fǎng)問(wèn)控制協(xié)調(diào)方法性能的實(shí)驗(yàn)。實(shí)驗(yàn)通過(guò)對(duì)比的方式,對(duì)未使用訪(fǎng)問(wèn)控制協(xié)調(diào)和使用訪(fǎng)問(wèn)控制協(xié)調(diào)兩種模式進(jìn)行比較。
在減少非安全的訪(fǎng)問(wèn)請(qǐng)求方面,隨著并發(fā)訪(fǎng)問(wèn)請(qǐng)求數(shù)量的增加,經(jīng)過(guò)訪(fǎng)問(wèn)控制的協(xié)調(diào),可以有效降低非安全訪(fǎng)問(wèn)請(qǐng)求的產(chǎn)生數(shù)量。非安全訪(fǎng)問(wèn)請(qǐng)求數(shù)量對(duì)比如圖8所示。

圖8 非安全訪(fǎng)問(wèn)請(qǐng)求數(shù)量對(duì)比
在加快客戶(hù)端界面加載方面,隨著并發(fā)訪(fǎng)問(wèn)請(qǐng)求數(shù)量的增加,未經(jīng)過(guò)訪(fǎng)問(wèn)控制協(xié)調(diào)的客戶(hù)端界面加載緩慢,而由于協(xié)調(diào)訪(fǎng)問(wèn)控制采用了多線(xiàn)程的加載方式,有效加快了客戶(hù)端界面的加載速度。界面加載時(shí)間對(duì)比如圖9所示。
實(shí)驗(yàn)數(shù)據(jù)對(duì)比說(shuō)明,在訪(fǎng)問(wèn)請(qǐng)求并發(fā)程度高的情況下,訪(fǎng)問(wèn)控制協(xié)調(diào)方法可以有效降低非安全訪(fǎng)問(wèn)請(qǐng)求的產(chǎn)生,同時(shí)在加快客戶(hù)端界面的加載方面起到很好的作用。

圖9 界面加載時(shí)間對(duì)比
然而在訪(fǎng)問(wèn)請(qǐng)求并發(fā)程度不高的情況下,采用并發(fā)訪(fǎng)問(wèn)控制協(xié)調(diào)方法會(huì)占用系統(tǒng)內(nèi)存資源,起到的效果并不明顯,這也是今后對(duì)協(xié)調(diào)方法改進(jìn)的方向。
本文調(diào)研了目前網(wǎng)絡(luò)應(yīng)用中并發(fā)訪(fǎng)問(wèn)請(qǐng)求的構(gòu)成和相互聯(lián)系,提出了并發(fā)訪(fǎng)問(wèn)請(qǐng)求之間的關(guān)聯(lián)關(guān)系的類(lèi)型和判定方法。在關(guān)聯(lián)關(guān)系的基礎(chǔ)上,本文提出了訪(fǎng)問(wèn)控制協(xié)調(diào)的整體結(jié)構(gòu),并給出了各個(gè)部分的工作模式以滿(mǎn)足并發(fā)訪(fǎng)問(wèn)請(qǐng)求在獲取信息、資源和服務(wù)上的功能要求。同時(shí),本文還針對(duì)網(wǎng)絡(luò)應(yīng)用,基于異步通訊方式和多線(xiàn)程技術(shù)提出了通過(guò)訪(fǎng)問(wèn)請(qǐng)求調(diào)度實(shí)現(xiàn)訪(fǎng)問(wèn)控制協(xié)調(diào)的方法,保證系統(tǒng)的并發(fā)性和安全性。
訪(fǎng)問(wèn)控制的整體過(guò)程中,訪(fǎng)問(wèn)控制的協(xié)調(diào)過(guò)程主要是在用戶(hù)端進(jìn)行的,可以減輕服務(wù)器端的負(fù)載壓力。經(jīng)過(guò)協(xié)調(diào),沒(méi)有訪(fǎng)問(wèn)權(quán)限的訪(fǎng)問(wèn)請(qǐng)求將不再發(fā)送,從而對(duì)于整個(gè)網(wǎng)絡(luò)環(huán)境可以起到節(jié)約網(wǎng)絡(luò)流量的作用。分層訪(fǎng)問(wèn)的方式可以在重要的資源訪(fǎng)問(wèn)的過(guò)程中,及時(shí)發(fā)現(xiàn)惡意的訪(fǎng)問(wèn)請(qǐng)求。同時(shí),經(jīng)過(guò)協(xié)調(diào)之后的客戶(hù)端的用戶(hù)界面將更加友好。
[1]Machida Shimon,Shimada Shigeru,Ecizen Isao.Settings of access control by detecting privacy leaks in SNS [C]//International Conference on Signal-Image Technology &Internet-Based Systems,2013:660-666.
[2]ZHANG Wei.Based on the research and implementation of concurrent access to shared resources statements control[D].Hefei:University of Science and Technology of China,2010(in Chinese).[張偉.基于共享資源聲明的并發(fā)訪(fǎng)問(wèn)控制研究與實(shí)現(xiàn) [D].合肥:中國(guó)科學(xué)技術(shù)大學(xué),2010.].
[3]Nekouei E,Inaltekin H,Dey S.Distributed cognitive multiple access networks:Power control,scheduling and multiuser Diversity [C]//IEEE International Synposium on Information Theory Proceedings,2013:1665-1669.
[4]Dourado RA,Sampaio LN,Suruagy Monteiro JA.On the composition of performance metrics in multi-domain networks [J].IEEE Communications Magazine,2013,51(11):72-77.
[5]Zhu Ruifeng,Ning Jie,Yu Pei.Application of role-based access control in information system [J].Wavelet Active Media Technology and Information Processing,2012,16 (6):426-428.
[6]Wu Xian,Qian Peide.Towards the scheduling of access requests in cloud storage [C]//8th International Conference on Computer Science &Education,2013:37-41.
[7]Aktoudianakis E,Crampton J,Schneider S,et al.Policy templates for relationship-based access control[C]//11th An-nual International Conference on Privacy,Security and Trust,2013:221-228.
[8]Pan L,Liu N,Zi X.Visualization framework for inter-domain access control policy integration [J].Communications,China,2013,10 (3):67-75.
[9]Kayes ASM,Jun Han,Colman A.A semantic policy framework for context-aware access control applications [C]//12th IEEE International Conference on Trust,Security and Privacy in Computing and Communications,2013:753-762.
[10]Hengstermovric K,Lewis F.Cooperative optimal control for multi-agent systems on directed graph topologies [J].IEEE Tranactions on Automatic Control,2013,59 (3):769-774.
計(jì)算機(jī)工程與設(shè)計(jì)2015年1期