国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于移動(dòng)通信的文件共享中間件

2011-02-09 01:57:54趙雪梅
制造業(yè)自動(dòng)化 2011年5期
關(guān)鍵詞:文件共享文件名代理服務(wù)器

趙雪梅

(鹽城工學(xué)院 計(jì)算機(jī)基礎(chǔ)中心,鹽城 224001)

0 引言

基于移動(dòng)通信的文件共享中間件,是建立在移動(dòng)Agent平臺(tái)、Aglet系統(tǒng)上的文件共享中間件。移動(dòng)Agent就是一個(gè)能在異構(gòu)網(wǎng)絡(luò)中自主地從一臺(tái)主機(jī)遷移到另一臺(tái)主機(jī),并可與其他Agent或資源交互的程序。 移動(dòng)Agent技術(shù)是分布式技術(shù)和Agent技術(shù)相結(jié)合的產(chǎn)物。中間件是一種獨(dú)立的系統(tǒng)軟件或服務(wù)程序,分布式應(yīng)用軟件借助這種軟件在不同的技術(shù)之間共享資源,它是在每個(gè)主機(jī)上都運(yùn)行的一個(gè)Agent Server,Agent可以訪問這個(gè)Server,通過文件名(URN)來發(fā)出請(qǐng)求,然后在本地的文件系統(tǒng)中存放,用關(guān)鍵字查詢文件等等。高層次的應(yīng)用程序建筑于這個(gè)中間件(Middleware)之上,如使用設(shè)計(jì)者的工具,實(shí)用程序的索引,搜索存貯在網(wǎng)頁(yè)上的信息。本文通過上述原理對(duì)文件共享中間件進(jìn)行了設(shè)計(jì)與運(yùn)行。

1 文件共享中間件的設(shè)計(jì)

本文運(yùn)用移動(dòng)Agent理論進(jìn)行文件共享中間件的設(shè)計(jì)。設(shè)計(jì)分為三個(gè)部分:中間件系統(tǒng)構(gòu)架設(shè)計(jì),中間件系統(tǒng)功能設(shè)計(jì)和安全性設(shè)計(jì)。

1.1 中間件系統(tǒng)構(gòu)架設(shè)計(jì)

圖1是某臺(tái)主機(jī)上的中間件系統(tǒng)框架設(shè)計(jì),右框?yàn)閬碓L的Agent,到達(dá)后Aglet平臺(tái)與其代理對(duì)話,由平臺(tái)檢查來訪Agent的操作權(quán)限,并獲取查詢信息。Aglet平臺(tái)如果在本機(jī)資源中查找到要求的信息,就派生Agent代理與來訪者對(duì)話并執(zhí)行相關(guān)操作。從而避免來訪者直接對(duì)本級(jí)資源進(jìn)行操作。

圖1 中間件系統(tǒng)框架

1.2 中間件系統(tǒng)功能設(shè)計(jì)

1.2.1 共享申請(qǐng)功能設(shè)計(jì)

共享申請(qǐng)功能是中間件系統(tǒng)的基礎(chǔ)。要實(shí)現(xiàn)中間件系統(tǒng)功能,首先就要實(shí)現(xiàn)共享的申請(qǐng),將本地機(jī)器的共享申請(qǐng)發(fā)送給目標(biāo)機(jī)器,例如talk程序,即可以在兩臺(tái)不同機(jī)器上實(shí)現(xiàn)聊天。作者計(jì)劃在此程序上進(jìn)行設(shè)計(jì),將共享的申請(qǐng)借此傳輸給目標(biāo)機(jī)器,然后中間件系統(tǒng)就可以在接到申請(qǐng)以后,繼續(xù)進(jìn)行文件查詢功能和文件傳輸功能,從而實(shí)現(xiàn)文件的共享。

1.2.2 文件查詢功能設(shè)計(jì)

接到本地機(jī)器的文件共享申請(qǐng),下一步工作就是在目標(biāo)機(jī)器上進(jìn)行所要求共享的目標(biāo)文件的查詢。

文件的目錄結(jié)構(gòu)是樹形結(jié)構(gòu),樹中的葉子節(jié)點(diǎn)是真實(shí)文件或者虛擬文件(即文件夾),非葉子節(jié)點(diǎn)就是文件夾。

本地機(jī)器把將共享的文件名在共享申請(qǐng)功能完成后傳送給了目標(biāo)機(jī)器,目標(biāo)機(jī)器接受此文件名之后在共享的文件夾中尋找此文件,實(shí)現(xiàn)文件查詢。

文件共享中間件查詢過程中,目標(biāo)機(jī)器先把需要共享的文件名與目標(biāo)機(jī)器上的共享文件夾先進(jìn)行判斷,如果是非葉子節(jié)點(diǎn),則不進(jìn)行比較,直接進(jìn)入該文件夾,然后在文件夾中尋找真實(shí)文件或者虛擬文件,將真實(shí)文件的文件名與需要共享的文件名進(jìn)行比較,如果是相等的,則查詢成功,進(jìn)入臨時(shí)空間的創(chuàng)建和文件的傳輸功能。如果是不相等的,則返回查詢失敗。如果真實(shí)文件均與需要共享的文件不是同一文件,那么則進(jìn)入虛擬文件,也就是文件夾,繼續(xù)進(jìn)行上面的操作。

以上操作,就是對(duì)文件的樹形目錄結(jié)構(gòu)進(jìn)行遍歷,遍歷目標(biāo)機(jī)器上共享的文件夾中的文件,將目標(biāo)機(jī)器上共享文件夾中的真實(shí)文件的文件名與本地機(jī)器要求共享的文件的文件名進(jìn)行比較,如果相等,則查詢成功,如果均不相等,則查詢失敗,也即目標(biāo)機(jī)器沒有本地機(jī)器所要求共享的文件[1]。

1.2.3 臨時(shí)空間與文件傳輸設(shè)計(jì)

代理找到匹配的文件之后,傳回文件才能實(shí)現(xiàn)主機(jī)的要求。中間件實(shí)現(xiàn)的是通過代理,主機(jī)不能在本機(jī)上直接訪問文件資源,如果直接在文件所在的位置操作,則達(dá)不到這個(gè)目的。所以代理在判斷主機(jī)是否擁有傳回的權(quán)限之后,如果得到的結(jié)果為真,開辟一個(gè)臨時(shí)空間,允許主機(jī)接觸臨時(shí)文件夾,避免了文件原件被用戶惡意刪改。中間件把查找到的文件復(fù)制到臨時(shí)空間,遵照FTP傳輸協(xié)議,將放在臨時(shí)文件夾中的復(fù)制文件傳到主機(jī)的指定位置,傳輸結(jié)束主機(jī)發(fā)回一個(gè)信息,完成傳輸后代理將復(fù)制文件刪除。則這次共享請(qǐng)求成功結(jié)束。

1.3 方案的安全性設(shè)計(jì)

1.3.1 對(duì)服務(wù)器資源的受限訪問

由于允許未知的和不信任端來的Agent在主機(jī)上執(zhí)行,主機(jī)節(jié)點(diǎn)的資源就受到各種攻擊的威脅。威脅包括竊取敏感信息,破壞主機(jī)資源,拒絕給客戶機(jī)或Agents提供服務(wù)和匿名攻擊等。因此,主機(jī)系統(tǒng)的各種資源需要受到保護(hù)以免受到惡意Agents的攻擊。同時(shí),合法的Agents必須能以受限的方式訪問這些資源,所以他們不得超越他們的權(quán)限(不管是意外的還是惡意的)。因此,我們需要制定這樣一種機(jī)制:允許Agent服務(wù)器提供Agents和資源之間在安全的語(yǔ)言層的綁定。每一種資源必須允許定義它們自己的安全策略并控制自己的執(zhí)行。需要注意的系統(tǒng)級(jí)問題是:將Agents綁定到資源,授權(quán)和實(shí)施存取控制[2]。

Agent服務(wù)器必須給Agent程序和服務(wù)器資源提供一種語(yǔ)言層的綁定。有幾種方法能實(shí)現(xiàn)這種受保護(hù)的綁定:

第一種方法是為Agent提供它請(qǐng)求資源的索引,用安全管理器監(jiān)視所有對(duì)資源的訪問,就像系統(tǒng)級(jí)資源被保護(hù)的那樣。這就要求每個(gè)資源開發(fā)者去擴(kuò)展或修改安全管理器,限制使用資源管理器給系統(tǒng)資源提供一般的保護(hù)。

第二種建立受限訪問的方法是使用代理對(duì)象。當(dāng)一個(gè)Agent第一次請(qǐng)求訪問一個(gè)資源,服務(wù)器查詢安全策略,并創(chuàng)建一個(gè)資源代理,該代理是一個(gè)對(duì)象,有到資源的安全接口。如果這個(gè)Agent不可信任,資源的特定操作就不可用。為每個(gè)Agent都創(chuàng)建了獨(dú)立的代理,Agent僅有到代理的索引,它的受限接口保證了agent僅能以安全方式訪問資源。

第三種方法是每個(gè)資源都被封裝在一個(gè)包裝對(duì)象中得到保護(hù)。Agent僅有到包裝的索引而不能繞過它們直接訪問資源。包裝接受訪問資源的請(qǐng)求并確定是否允許基于客戶機(jī)身份的訪問。

1.3.2 基于代理服務(wù)器方法的設(shè)計(jì)

Agent不能直接訪問資源——我們提出在資源和它的客戶(即Agents)之間插入一個(gè)代理服務(wù)器(中間件)。當(dāng)一個(gè)Agent發(fā)出一個(gè)訪問資源的請(qǐng)求時(shí),服務(wù)器返回一個(gè)代理服務(wù)器對(duì)象作為替代,該代理服務(wù)器包含了對(duì)實(shí)際資源的私有索引。對(duì)于每個(gè)定義的應(yīng)用資源類,也必須定義相關(guān)的代理服務(wù)器類。代理服務(wù)器類實(shí)現(xiàn)了如資源器所代表的相同的接口。然而,在代理服務(wù)器的創(chuàng)建過程中,一些接口方法可能會(huì)不可用,這主要基于它的安全策略和客戶Agent的證書。對(duì)于許可的方法,主要是代理服務(wù)器通過嵌入資源傳遞調(diào)用。如果Agent不允許調(diào)用這個(gè)方法,就拋出安全異常。由于Agent只有到代理服務(wù)器的索引,這個(gè)受限的接口保證了Agent只能通過策略允許的方法訪問資源。如果合適的話,盡管嵌入式資源能被共享,但還是為每個(gè)Agent都創(chuàng)建單獨(dú)的代理服務(wù)器[3~5]。

1.3.3 方案的安全性討論

為保護(hù)這些威脅并確保該方案的完整性,我們引入了一些額外的規(guī)則—基于Java的安全模型。

代理服務(wù)器包含到資源對(duì)象的嵌入的索引,Agent可能會(huì)繞過代理服務(wù)器的存取控制檢查,直接(或通過映像)去調(diào)用該對(duì)象。在這種情況下Agent服務(wù)器試圖保護(hù)自己的資源,那么有理由假定Java虛擬機(jī)執(zhí)行Agent代碼時(shí)尊重私有的申明,并拒絕讓Agent直接訪問嵌入的索引。為防止這種情況發(fā)生,我們借助Java的封裝機(jī)制,把嵌入資源的索引設(shè)為私有的形式。

如果代理服務(wù)器對(duì)象能夠配合另一類型重新申明私有索引為公有的索引或者使每種方法都繞過存取控制檢查,那么Agent無須授權(quán)就能訪問資源。但是,在我們的方案中,我們制定這樣的規(guī)則:代理服務(wù)器類除了Java的基類Object外沒有例外。因此,Java虛擬機(jī)不允許Agent將代理服務(wù)器實(shí)例typecast到其他任何類。

一個(gè)惡意的Agent可以串行化一個(gè)代理,發(fā)送字節(jié)流到協(xié)同工作的Agent服務(wù)器,并用一個(gè)偽代理類反串行字節(jié)流,從而暴露基本的資源。為防止這種情況發(fā)生我們強(qiáng)加這樣的規(guī)則:代理類內(nèi)的資源索引必須申明為瞬時(shí)狀態(tài)。Java不包括對(duì)象串行化產(chǎn)生的字節(jié)流的瞬態(tài)索引。因此,資源對(duì)象就不會(huì)被復(fù)制到攻擊者的站點(diǎn)上。

遵守正確的協(xié)議而獲得了代理服務(wù)器的Agent,可能會(huì)嘗試著去克隆它。由于在Java里的克隆相當(dāng)于淺復(fù)制(shallow copy)操作,不會(huì)導(dǎo)致基本的資源的克隆。

2 文件共享中間件的實(shí)施

接下來我們就將依據(jù)上述的設(shè)計(jì)來對(duì)實(shí)現(xiàn)文件共享中間件。實(shí)現(xiàn)文件共享中間件主要就是實(shí)現(xiàn)中間件系統(tǒng)的功能、網(wǎng)絡(luò)共享的申請(qǐng)、文件的查詢以及文件的傳輸。下面介紹中間件代碼的實(shí)現(xiàn),并展示部分系統(tǒng)界面。

2.1 中間件系統(tǒng)的實(shí)現(xiàn)

2.1.1 網(wǎng)絡(luò)共享的申請(qǐng)

首先主機(jī)人為輸入請(qǐng)求共享的文件名,Aglet將其作為消息存放在子Aglet當(dāng)中,以便帶到遠(yuǎn)程的機(jī)器上提供給中間件查找關(guān)鍵字。

public void sendText(String text) {

try {

masterProxy.sendMessage(new Message("text",name + " : " + text));

}

}

接著以目的地地址為參數(shù),派送子Aglet,完成申請(qǐng)階段的工作。

2.1.2 文件的查詢

函數(shù) IsFileExist(String Response,File dic,String fileName)

它包括三個(gè)參數(shù)和兩個(gè)主要功能:

Response:查找文件的結(jié)果,分為“succeed”、“fail”兩種,并且默認(rèn)值為“fail”。

Dic:共享目錄的地址,主機(jī)將可以共享的資源均放在這個(gè)目錄下面。

filename:要求共享的文件名,由Aglet帶來。

名稱與請(qǐng)求共享的文件名相同,則返回真。如果不匹配,返回假,如果這一級(jí)為目錄名稱,則遍歷下一級(jí)子目錄或者文件。如此嵌套直至返回結(jié)果,完成查詢。

2.1.3 文件傳輸?shù)膶?shí)現(xiàn)

首先介紹FTP傳輸類FTPTrans。

Public FTPTrans(){

//在兩臺(tái)主機(jī)之間建立連接

Public Boolean getConnection(host,user,passwor d);

//開始文件傳輸

public Boolean putFile(destination, filename);

}

接著在子Aglet中的run方法里調(diào)用該類,查詢成功復(fù)制文件并傳輸:

FTPTrans ftp=new FTPTrans();

//創(chuàng)立對(duì)象

ftp.getConnect(dest,user,password);

//由文件所在的主機(jī)執(zhí)行傳輸,指定文件名和目文件夾

文件流開始傳輸。

TelnetOutputStream outStream = null;

buf.setLength(0);

try{

File f = new File(d + fn);

RandomAccessFile file = new Random-AccessFile(f,"rw");

//給指定傳輸?shù)奈募O(shè)定讀寫權(quán)限

outStream = myFtp.put(fn);

byte [] b = new byte[(int)f.length()];file.read(b);

outStream.write(b);

file.close();

//文件流傳輸結(jié)束

outStream.close();

}

2.2 中間件系統(tǒng)的界面

軟件演示在兩臺(tái)工作站之間進(jìn)行,由于UNIX環(huán)境下截圖困難,故暫時(shí)以PC上的演示界面代替。

第一步:?jiǎn)?dòng)Aglet平臺(tái),如果在一臺(tái)機(jī)器上演示,以不同端口號(hào)啟動(dòng)兩個(gè)Aglet窗口。

圖2 Agent窗口

第二步:在一個(gè)窗口創(chuàng)建Search的主Aglet,它包括地址簿,對(duì)話框,查找輸入框。

圖3 主Aglet窗口

第三步:選擇目標(biāo)地址,發(fā)送請(qǐng)求共享的SlaveAglet,到達(dá)后主動(dòng)生成一個(gè)主Aglet。

第四步:如果在目標(biāo)主機(jī)查找成功,返回“succeed”,并且開始傳輸。

圖4 SlaveAglet發(fā)送及生成

圖5 查找成功

傳輸結(jié)束后,請(qǐng)求共享的主機(jī)的指定目錄下會(huì)看到要求共享的文件,而目標(biāo)主機(jī)下臨時(shí)文件夾中的文件會(huì)自動(dòng)刪除,此次任務(wù)結(jié)束,派送的Aglet釋放。

3 結(jié)論

基于移動(dòng)通信的文件共享中間件是個(gè)很復(fù)雜的系統(tǒng),本文從理論上設(shè)計(jì)了這個(gè)基于移動(dòng)通信的中間件系統(tǒng),包括文件服務(wù)器,Aglet平臺(tái),透明代理服務(wù),操作權(quán)限限制,訪問以及文件臨時(shí)復(fù)制傳輸。但在實(shí)現(xiàn)的時(shí)候僅僅完成了一部分內(nèi)容,在比較單純的環(huán)境中實(shí)現(xiàn)了簡(jiǎn)單的共享。共享問題,除了從技術(shù)上保證安全性之外,還應(yīng)該從社會(huì)、倫理、法律的角度去約束、規(guī)范。

[1] 趙京勝,鞏玉璽.基于移動(dòng)Agent的信息搜索系統(tǒng)研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2008,20.

[2] 曹雙蘭.移動(dòng)Agent安全分析及其密碼學(xué)解決方案[J].中國(guó)西部科技,2009,11.

[3] 曹文英,趙躍龍.基于移動(dòng)計(jì)算的移動(dòng)Agent技術(shù)研究[J].微電子學(xué)與計(jì)算機(jī),2009,02.

[4] 劉曉輝.移動(dòng)Agent在網(wǎng)絡(luò)管理系統(tǒng)中的研究[J].科技創(chuàng)新導(dǎo)報(bào),2009,21.

[5] 范彬,劉鑫,李偉華.移動(dòng)Agent通信技術(shù)的研究與分析[J].電腦知識(shí)與技術(shù),2009,05.

猜你喜歡
文件共享文件名代理服務(wù)器
右鍵調(diào)用多重更名更方便
電腦愛好者(2019年9期)2019-10-30 03:43:29
Excel輕松提取文件名
地鐵信號(hào)系統(tǒng)中代理服務(wù)器的設(shè)計(jì)與實(shí)現(xiàn)
IP地址隱藏器
省級(jí)氣象數(shù)據(jù)文件共享存儲(chǔ)管理系統(tǒng)研究
一種基于Web瀏覽器的文件共享系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
不讓長(zhǎng)文件名成為“絆腳石”
電腦迷(2014年8期)2014-04-29 07:37:40
巧手調(diào)教《迅雷看看》
一種容侵系統(tǒng)的設(shè)計(jì)
Soulseek帶你進(jìn)入歐美音樂殿堂
子长县| 珠海市| 政和县| 石嘴山市| 广灵县| 怀柔区| 和政县| 纳雍县| 穆棱市| 泸西县| 钦州市| 金寨县| 环江| 邢台县| 尉氏县| 姚安县| 若羌县| 原平市| 上虞市| 阿坝县| 镇雄县| 绵阳市| 洛宁县| 四子王旗| 库伦旗| 千阳县| 淳化县| 永顺县| 西丰县| 乾安县| 灵台县| 南丰县| 清水河县| 通州区| 九龙坡区| 阿鲁科尔沁旗| 建昌县| 桃源县| 个旧市| 蓬溪县| 将乐县|