專利名稱:透明計(jì)算系統(tǒng)中端設(shè)備間數(shù)據(jù)的傳送方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種用于在網(wǎng)絡(luò)中的端設(shè)備之間傳送數(shù)據(jù)的方法,特別是涉及一種在計(jì)算機(jī)網(wǎng)絡(luò)上基于透明計(jì)算模式的計(jì)算機(jī)系統(tǒng)中,具有本地計(jì)算能力的端設(shè)備,尤其是無硬盤的端設(shè)備之間進(jìn)行數(shù)據(jù)傳送的方法。
背景技術(shù):
迄今為止的普適計(jì)算以及在普適計(jì)算之前的網(wǎng)絡(luò)計(jì)算等計(jì)算模式中無論何種計(jì)算機(jī),必須從一開始就要為它研制和安裝相應(yīng)的操作系統(tǒng)、支撐工具和應(yīng)用軟件,否則,該機(jī)器就不能進(jìn)行相應(yīng)的應(yīng)用計(jì)算或運(yùn)轉(zhuǎn)相應(yīng)的軟件系統(tǒng)。這造成了現(xiàn)在的對(duì)PC機(jī)指標(biāo)(例如內(nèi)存、硬盤、CPU頻率和速度等)要求越來越高、軟件操作系統(tǒng)越來越復(fù)雜和龐大的局面。那些只能安裝小型嵌入式操作系統(tǒng)的移動(dòng)設(shè)備(如PDA、手機(jī)等)以及數(shù)字家電設(shè)備(如ISDN電話等)雖然能夠運(yùn)轉(zhuǎn)較小的軟件,但它們卻面臨著很難和通用的計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng),例如Internet進(jìn)行互連和互通的問題。硬件系統(tǒng)和軟件系統(tǒng)的一一對(duì)應(yīng)關(guān)系以及硬件系統(tǒng)的不斷升級(jí)使得軟件系統(tǒng)越來越復(fù)雜,用戶的使用和維護(hù)成本越來越高。同時(shí),不斷淘汰的舊的電腦設(shè)備又形成許多新的垃圾和造成新的環(huán)境污染。
透明計(jì)算(參見參考文獻(xiàn)張堯?qū)W,“透明計(jì)算概念、結(jié)構(gòu)和示例”,電子學(xué)報(bào),VOL32,NO12A,12,2005)是一種用戶無需感知計(jì)算機(jī)操作系統(tǒng)、支撐工具以及應(yīng)用程序的所在,并能根據(jù)自己的需求,從所使用的各種設(shè)備(包括固定和移動(dòng)以及家庭的各類設(shè)備)中找到相關(guān)計(jì)算服務(wù),而這些服務(wù)又是存儲(chǔ)于位于分布式網(wǎng)絡(luò)的服務(wù)器中的計(jì)算模式。
透明計(jì)算模式由服務(wù)器和客戶機(jī)(端設(shè)備)組成,在硬件系統(tǒng)上與傳統(tǒng)的客戶機(jī)/服務(wù)器相似。所不同的是,在透明計(jì)算模式中,其客戶機(jī)可以是多種不同的終端設(shè)備,例如臺(tái)式PC機(jī)、網(wǎng)絡(luò)計(jì)算機(jī)NC、PDA等。這種模式有下述特點(diǎn)1、客戶機(jī)上不預(yù)置任何操作系統(tǒng)、支撐工具或應(yīng)用程序,需要時(shí)自動(dòng)地從服務(wù)器上下載所需要的系統(tǒng)、工具和應(yīng)用程序到客戶機(jī)環(huán)境下執(zhí)行;2、用戶可以在客戶機(jī)上任意選擇任何可在客戶機(jī)硬件上運(yùn)轉(zhuǎn)的操作系統(tǒng),以及其上的工具和應(yīng)用程序,且不必對(duì)應(yīng)用程序進(jìn)行任何本質(zhì)上的改動(dòng),從而保證應(yīng)用程序的可操作性和兼容性;3、通過網(wǎng)絡(luò)進(jìn)行虛擬交換和調(diào)度,提高了資源共享和執(zhí)行效率;4、所有的應(yīng)用計(jì)算都在客戶機(jī)端完成,而不是在服務(wù)器端;.
清華大學(xué)網(wǎng)絡(luò)互聯(lián)實(shí)驗(yàn)室提出了一種基于透明計(jì)算的計(jì)算系統(tǒng)(參見本申請(qǐng)人的相關(guān)中國發(fā)明專利申請(qǐng),申請(qǐng)?zhí)?00510063064.7),其中端設(shè)備具有本地計(jì)算能力,具備與普通PC等同的功能和性能,能極大減輕傳統(tǒng)網(wǎng)絡(luò)計(jì)算機(jī)系統(tǒng)中計(jì)算對(duì)服務(wù)器依賴過重的問題,并具有專用網(wǎng)絡(luò)協(xié)議和文件系統(tǒng)的防病毒與自我恢復(fù)機(jī)制,同時(shí)用戶可以任意選擇在端設(shè)備上運(yùn)轉(zhuǎn)Windows及Linux等操作系統(tǒng)?,F(xiàn)有基于透明計(jì)算系統(tǒng)的系統(tǒng)主要適用于局域網(wǎng)環(huán)境下的應(yīng)用計(jì)算,現(xiàn)已廣泛應(yīng)用于電子辦公,多媒體教室等應(yīng)用領(lǐng)域,并取得了良好的效果。
在基于透明計(jì)算模式的系統(tǒng)中,通過虛擬磁盤機(jī)制使得用戶如同使用一臺(tái)普通PC那樣來使用一臺(tái)無硬盤的端設(shè)備端設(shè)備各自都具有一個(gè)私有的虛擬磁盤12A、12B。虛擬磁盤的作用類似于PC的本地硬盤,對(duì)于各自的端設(shè)備上的用戶來說可任意讀寫。各個(gè)端設(shè)備的虛擬磁盤物理上不存在,分別對(duì)應(yīng)服務(wù)器磁盤系統(tǒng)上劃分出來的一個(gè)磁盤映像18A、18B區(qū),因此用戶數(shù)據(jù)實(shí)際上都被存儲(chǔ)于服務(wù)器的磁盤中。如圖3,實(shí)際上,端設(shè)備用戶在本地所看到的是由系統(tǒng)分區(qū)(C)和數(shù)據(jù)分區(qū)(E)所構(gòu)成的一個(gè)虛擬磁盤31A、31B視圖30,該兩個(gè)分區(qū)對(duì)用戶來說可以隨意讀寫,這使得用戶在端設(shè)備上的操作和操作的結(jié)果在關(guān)機(jī)后可以保存。與端設(shè)備的虛擬磁盤相對(duì)應(yīng)的是服務(wù)器存儲(chǔ)空間32的一個(gè)磁盤映像18A、18B,它實(shí)際上由服務(wù)器上的三種分區(qū)構(gòu)成,即所有共享同一操作系統(tǒng)鏡像的端設(shè)備所共有的一個(gè)共享分區(qū)33,以及每一端設(shè)備所獨(dú)有的隱藏分區(qū)34A、34B和私有分區(qū)35A、35B。其中共享分區(qū)加上一個(gè)隱藏分區(qū)共同對(duì)應(yīng)一個(gè)端設(shè)備上的系統(tǒng)分區(qū),隱藏分區(qū)可由端設(shè)備隨意讀寫,它記錄端設(shè)備用戶對(duì)系統(tǒng)分區(qū)所作的改動(dòng),但共享分區(qū)對(duì)于端設(shè)備只能讀。例如用戶對(duì)系統(tǒng)分區(qū)做了增刪改,則這些操作被記錄在對(duì)應(yīng)的隱藏分區(qū)中,操作結(jié)果也同時(shí)存儲(chǔ)在隱藏分區(qū)中,例如修改或增加了文件,則新文件也被保存在隱藏分區(qū)中。隱藏分區(qū)和共享分區(qū)的內(nèi)容合在一起形成端設(shè)備的系統(tǒng)分區(qū),但在端設(shè)備讀取系統(tǒng)分區(qū)時(shí)前者的內(nèi)容具有更高的優(yōu)先性,因此保證用戶在端設(shè)備上看到的系統(tǒng)分區(qū)總是最近更新的狀態(tài)。數(shù)據(jù)分區(qū)則是端設(shè)備上主要保存用戶數(shù)據(jù)的分區(qū),通常要大于隱藏分區(qū)。數(shù)據(jù)分區(qū)和服務(wù)器上的私有分區(qū)一一對(duì)應(yīng),也即服務(wù)器上的一個(gè)私有分區(qū)就是一個(gè)端設(shè)備的數(shù)據(jù)分區(qū),可任意由其讀寫。以上端設(shè)備對(duì)服務(wù)器磁盤映像的具體讀寫過程屬于透明計(jì)算的內(nèi)部機(jī)制,對(duì)用戶透明,他們所看到的只是本地的由系統(tǒng)分區(qū)和數(shù)據(jù)分區(qū)所構(gòu)成的一個(gè)可讀寫的硬盤,因此上述機(jī)制被稱為透明讀寫機(jī)制,工作于文件系統(tǒng)之下。
根據(jù)不同的具體實(shí)施方式
,服務(wù)器和端設(shè)備之間可以以文件、扇區(qū)或自定義塊為數(shù)據(jù)共享單位進(jìn)行交互。服務(wù)器可以直接操作磁盤映像中的數(shù)據(jù)共享單位,例如對(duì)于基于文件為數(shù)據(jù)共享單位的實(shí)施例,磁盤映像中的文件對(duì)服務(wù)器是可見的,因此服務(wù)器可以對(duì)其直接進(jìn)行操作。作為計(jì)算機(jī)系統(tǒng)中一種常用的數(shù)據(jù)的邏輯組織方式,文件常在實(shí)際應(yīng)用中常被用作在通過網(wǎng)絡(luò)相連的不同的計(jì)算機(jī)之間進(jìn)行數(shù)據(jù)傳送的單位。在現(xiàn)有基于文件為數(shù)據(jù)共享單位的透明計(jì)算的實(shí)施例中,這具體體現(xiàn)為服務(wù)器上不同端設(shè)備的系統(tǒng)分區(qū)(在服務(wù)器上體現(xiàn)為隱藏分區(qū))和/或數(shù)據(jù)分區(qū)(在服務(wù)器上體現(xiàn)為私有分區(qū))之間以文件為單位的復(fù)制,而在現(xiàn)有基于扇區(qū)為數(shù)據(jù)共享單位的實(shí)施例中,具體體現(xiàn)為服務(wù)器上不同端設(shè)備的系統(tǒng)分區(qū)(在服務(wù)器上體現(xiàn)為隱藏分區(qū))和/或數(shù)據(jù)分區(qū)(在服務(wù)器上體現(xiàn)為私有分區(qū))之間屬于同一文件的扇區(qū)的復(fù)制。對(duì)于前者來說,若需在不同端設(shè)備之間進(jìn)行文件的傳送,進(jìn)行本地計(jì)算的端設(shè)備間使用譬如FTP、TFTP、NFS等傳統(tǒng)的文件系統(tǒng)上的文件傳送和共享方法,在文件傳送(讀/寫)請(qǐng)求的發(fā)起方和處理方端設(shè)備之間建立連接,并進(jìn)行傳送,并通過透明讀寫機(jī)制完成具體文件在服務(wù)器存儲(chǔ)空間的讀寫。圖1是現(xiàn)有基于文件為數(shù)據(jù)共享單位的透明計(jì)算系統(tǒng)的一個(gè)實(shí)施例,其中服務(wù)器19和多個(gè)端設(shè)備11A、11B共同位于一個(gè)局域網(wǎng)上。由于計(jì)算都在本地發(fā)生,若在某時(shí)間端設(shè)備11A上的用戶需要將本地硬盤上一個(gè)文件傳送到端設(shè)備11B的本地硬盤,對(duì)于用戶來說,端設(shè)備11A首先通過譬如FTP等現(xiàn)有的文件傳送方法和端設(shè)備11B間建立起連接,并將原始文件13從虛擬磁盤12A讀出并傳送到虛擬磁盤12B上。事實(shí)上在該實(shí)施例中,原始文件13的數(shù)據(jù)被從服務(wù)器上與虛擬磁盤12A所對(duì)應(yīng)的磁盤映像A中讀出并傳送到端設(shè)備11A上14,并由端設(shè)備11A通過FTP傳送到端設(shè)備11B上15,最后由端設(shè)備11B通過本地的透明讀寫機(jī)制傳送到服務(wù)器上與其虛擬磁盤12B所對(duì)應(yīng)的磁盤映像18B中16,在隱藏分區(qū)(涉及對(duì)共享分區(qū)中文件的改動(dòng)時(shí))和/或私有分區(qū)最后生成源文件的復(fù)本13A,從而完成對(duì)文件數(shù)據(jù)的一次傳送。因此文件數(shù)據(jù)的傳送實(shí)際上經(jīng)過了從服務(wù)器至端設(shè)備11A、從端設(shè)備11A至端設(shè)備11B、又從端設(shè)備11B至服務(wù)器的過程。從上述過程可以看出,為了在端設(shè)備間進(jìn)行一次文件數(shù)據(jù)的傳送,服務(wù)器和文件的發(fā)收雙方端設(shè)備都需要分配相應(yīng)的緩沖、處理器和I/O等資源,同時(shí)還需占用相應(yīng)的網(wǎng)絡(luò)帶寬資源,尤其是服務(wù)器還需維護(hù)兩條傳送路徑14、16。對(duì)于這樣的實(shí)施例來說,若在短時(shí)間內(nèi),需要相互進(jìn)行文件傳送的端設(shè)備較多、需要傳送的文件又較多較大時(shí),會(huì)占用較多服務(wù)器、各端設(shè)備以及網(wǎng)絡(luò)的各類資源,對(duì)端設(shè)備的運(yùn)行速度和整個(gè)系統(tǒng)運(yùn)轉(zhuǎn)的性能會(huì)產(chǎn)生較大的影響。由于數(shù)據(jù)傳送的源和目的實(shí)際都位于服務(wù)器上,因此若能改進(jìn)數(shù)據(jù)的傳送方法,縮短數(shù)據(jù)的傳送路徑以減少對(duì)相應(yīng)資源的占用資源,則可改善上述的問題。
發(fā)明內(nèi)容
針對(duì)現(xiàn)有技術(shù)的透明計(jì)算系統(tǒng)中端設(shè)備之間進(jìn)行數(shù)據(jù)的傳送時(shí),采用了迂回式路徑對(duì)數(shù)據(jù)進(jìn)行傳送,從而造成對(duì)服務(wù)器、端設(shè)備以及網(wǎng)絡(luò)的各類資源浪費(fèi),傳送效率不高的問題,本發(fā)明提出了一種用于在網(wǎng)絡(luò)中的端設(shè)備之間傳送數(shù)據(jù)的方法,其中,該網(wǎng)絡(luò)至少包括服務(wù)器、第一端設(shè)備和第二端設(shè)備,該服務(wù)器具有存儲(chǔ)裝置,該存儲(chǔ)裝置至少包括第一端設(shè)備可使用的第一盤映像和第二端設(shè)備可使用的第二盤映像;該方法包括以下步驟由第一端設(shè)備作為數(shù)據(jù)傳送請(qǐng)求的發(fā)起方根據(jù)需要傳送的數(shù)據(jù)的信息生成數(shù)據(jù)傳送請(qǐng)求的報(bào)文;將該生成的數(shù)據(jù)傳送請(qǐng)求的報(bào)文傳送給作為數(shù)據(jù)傳送請(qǐng)求的接收方的第二端設(shè)備;由第二端設(shè)備接收該報(bào)文,并且如果允許請(qǐng)求的數(shù)據(jù)傳送則將該報(bào)文傳送給該服務(wù)器;該服務(wù)器響應(yīng)于該接收的報(bào)文,執(zhí)行第一盤映像與第二盤映像之間的數(shù)據(jù)傳送。進(jìn)一步地,端設(shè)備上無可讀寫的非易失性存儲(chǔ)裝置;第一盤映像和第二盤映像均由只讀的共享分區(qū)、可讀寫的隱藏分區(qū)和私有分區(qū)三種分區(qū)構(gòu)成,其中共享分區(qū)為第一盤映像和第二盤映像所共有,隱藏分區(qū)和私有分區(qū)為各盤映像所獨(dú)有,用戶通過端設(shè)備對(duì)共享分區(qū)的改動(dòng)均保存在其盤映像的隱藏分區(qū)中。當(dāng)該服務(wù)器執(zhí)行第一盤映像與第二盤映像之間的數(shù)據(jù)傳送之后,該服務(wù)器向第二端設(shè)備發(fā)送表示已完成數(shù)據(jù)傳送操作的消息;以及第二端設(shè)備向第一端設(shè)備發(fā)送表示已完成數(shù)據(jù)傳送操作的消息。數(shù)據(jù)傳送請(qǐng)求的報(bào)文至少包括以下字段數(shù)據(jù)傳送請(qǐng)求的發(fā)起方的標(biāo)識(shí)、數(shù)據(jù)傳送請(qǐng)求的接收方的標(biāo)識(shí)、指示數(shù)據(jù)接收或發(fā)送的數(shù)據(jù)傳送類型、以及需要傳送的數(shù)據(jù)的標(biāo)識(shí)信息。如果第二端設(shè)備不允許請(qǐng)求的數(shù)據(jù)傳送,則向第一端設(shè)備發(fā)送拒絕傳送消息。第二端設(shè)備響應(yīng)于該接收的報(bào)文,對(duì)允許請(qǐng)求的數(shù)據(jù)傳送則在該報(bào)文中的該數(shù)據(jù)傳送請(qǐng)求的發(fā)起方的標(biāo)識(shí)字段填入其自身的標(biāo)識(shí)。被傳送的數(shù)據(jù)是一個(gè)或多個(gè)文件;該報(bào)文中的需要傳送的數(shù)據(jù)的標(biāo)識(shí)信息字段包括以下字段被傳送的文件的文件名、被傳送的文件大小、被傳送文件在第一盤映像中的存放地址、被傳送文件的修改時(shí)間、以及被傳送的文件在第二盤映像中的存放地址。服務(wù)器收到數(shù)據(jù)傳送報(bào)文之后判斷如果報(bào)文合法,則根據(jù)報(bào)文中數(shù)據(jù)傳送類型、被傳送文件在第一盤映像中的存放地址、以及被傳送的文件在第二盤映像中的存放地址判斷被傳送文件是否要寫入接收方或發(fā)起方的系統(tǒng)分區(qū),若是則判斷目標(biāo)盤映像的共享分區(qū)或隱藏分區(qū)中已經(jīng)具有相同的文件,若均沒有才將其拷貝至相應(yīng)的隱藏分區(qū)中;對(duì)需要寫入接收方或發(fā)起方的數(shù)據(jù)分區(qū)的被傳送文件則拷貝至目標(biāo)盤映像的私有分區(qū)中。在數(shù)據(jù)傳送請(qǐng)求發(fā)起方生成數(shù)據(jù)傳送請(qǐng)求報(bào)文之前,數(shù)據(jù)傳送請(qǐng)求的發(fā)起方判斷待傳文件的總數(shù)量大于一個(gè)預(yù)定閾值,或待傳文件的大小均超過另一預(yù)置閾值,則生成相應(yīng)的數(shù)據(jù)傳送請(qǐng)求報(bào)文,否則采用FTP等傳統(tǒng)方法進(jìn)行傳送。
采用了本發(fā)明數(shù)據(jù)傳送方法的透明計(jì)算端設(shè)備,為進(jìn)行相互間的數(shù)據(jù)傳送,在各端設(shè)備和服務(wù)器之間只需進(jìn)行控制類報(bào)文的交互,實(shí)際數(shù)據(jù)的傳送由服務(wù)器在本地進(jìn)行的復(fù)制來實(shí)現(xiàn),因此提高了數(shù)據(jù)傳送的效率和透明計(jì)算系統(tǒng)的整體性能。
圖1是現(xiàn)有透明計(jì)算系統(tǒng)中端設(shè)備之間傳送文件數(shù)據(jù)的示意圖;圖2是采用本發(fā)明的透明計(jì)算系統(tǒng)中端設(shè)備之間傳送文件數(shù)據(jù)的示意圖;圖3是透明計(jì)算系統(tǒng)中虛擬磁盤機(jī)制的示意圖;具體實(shí)施方式
下面參照?qǐng)D示對(duì)本發(fā)明進(jìn)行詳細(xì)說明。
圖2描述了采用了本發(fā)明的透明計(jì)算端設(shè)備之間進(jìn)行文件傳送的網(wǎng)絡(luò)示意圖。其中一臺(tái)服務(wù)器29和多個(gè)端設(shè)備21A、21B共同位于一個(gè)局域網(wǎng)LAN上。端設(shè)備在加電后根據(jù)用戶的選擇,從服務(wù)器上下載所需的操作系統(tǒng)以完成啟動(dòng)。對(duì)于用戶來說,每臺(tái)端設(shè)備在正常運(yùn)行時(shí),都具備一個(gè)本地的“硬盤”,用戶可以對(duì)其任意地讀寫,在重新開關(guān)機(jī)后保存在上面的數(shù)據(jù)仍然存在,和PC機(jī)自帶的硬盤無異。但在端設(shè)備上并不帶有實(shí)際的硬盤,端設(shè)備對(duì)用戶所呈現(xiàn)的“硬盤”是一個(gè)虛擬磁盤22A,22B。如前所述,通過透明計(jì)算的虛擬磁盤機(jī)制,每一個(gè)虛擬磁盤對(duì)應(yīng)服務(wù)器磁盤系統(tǒng)(可以是IDE、SCSI等)上的存儲(chǔ)區(qū)域,這樣的存儲(chǔ)區(qū)域被稱為磁盤映像(映像A,映像B),它由共享分區(qū)33、隱藏分區(qū)34A和私有分區(qū)35A組成,保存在虛擬磁盤上的數(shù)據(jù)都被實(shí)際存儲(chǔ)在服務(wù)器上各自磁盤映像的相應(yīng)分區(qū)中。
若一端設(shè)備21A要將自己虛擬磁盤22A中的一個(gè)或多個(gè)文件傳送到另一個(gè)端設(shè)備21B的虛擬磁盤22B中,或?qū)⒍嗽O(shè)備21B的虛擬磁盤22B中的一個(gè)或多個(gè)文件傳送到自己的虛擬磁盤22A中,則前者被稱為文件傳送請(qǐng)求的發(fā)起方,后者被稱為文件傳送請(qǐng)求的接收方。文件傳送請(qǐng)求的發(fā)起方、接收方以及服務(wù)器之間利用被稱為文件傳送請(qǐng)求的控制報(bào)文來控制傳送過程,一個(gè)文件傳送請(qǐng)求是一個(gè)鏈表,鏈表中包括一個(gè)或多個(gè)結(jié)構(gòu)如表1的節(jié)點(diǎn),一個(gè)節(jié)點(diǎn)對(duì)應(yīng)一個(gè)文件,其中至少包括以下字段表1
ID_req文件傳送請(qǐng)求發(fā)起方的標(biāo)識(shí);ID_resp文件傳送請(qǐng)求接收方/處理方的標(biāo)識(shí);Op_type文件傳送請(qǐng)求是讀(下載)請(qǐng)求還是寫(上傳)請(qǐng)求;Filename被傳送的文件名(標(biāo)識(shí));File_size被傳送的文件大??;Add_req被傳送文件在文件傳送請(qǐng)求發(fā)起方的虛擬磁盤中的存放地址;Add_Resp被傳送文件在文件傳送請(qǐng)求接收方的虛擬磁盤中的存放地址;Re_Time被傳送文件最近被修改時(shí)間;因此,一個(gè)文件傳送請(qǐng)求可包括對(duì)一個(gè)或多個(gè)文件的傳送。
若用戶在某一時(shí)間需要在兩個(gè)端設(shè)備之間傳送文件,文件傳送請(qǐng)求的發(fā)起方生成一個(gè)文件傳送請(qǐng)求的報(bào)文,并根據(jù)需要傳送的文件的信息,在文件傳送請(qǐng)求報(bào)文中依次填入相關(guān)信息,但I(xiàn)D_resp字段置空。
在完成上述步驟之后,文件傳送請(qǐng)求的發(fā)起方將文件傳送請(qǐng)求報(bào)文發(fā)送給文件傳送請(qǐng)求的接收方24。如果文件傳送請(qǐng)求的接收方同意進(jìn)行文件傳送,則在文件傳送請(qǐng)求報(bào)文的ID_resp字段填入自己的標(biāo)識(shí),若文件傳送請(qǐng)求報(bào)文中所有節(jié)點(diǎn)的ID_resp字段均為空,則表明沒有文件被允許傳送,因此直接向文件傳送請(qǐng)求的發(fā)起方返回拒絕傳送消息,否則將處理后的報(bào)文發(fā)送到服務(wù)器25。
服務(wù)器判斷,如果接收到的文件傳送請(qǐng)求報(bào)文正確,且各字段不空、合理,則根據(jù)Op_type字段的內(nèi)容,進(jìn)行相應(yīng)的本地磁盤操作,在與文件傳送請(qǐng)求的發(fā)起方和接收方所對(duì)應(yīng)的磁盤映像28A、28B之間進(jìn)行文件的復(fù)制,具體如下根據(jù)Op_type、Add_req和Add_Resp字段判斷,被傳送文件是否要寫入接收方或發(fā)起方的系統(tǒng)分區(qū),并根據(jù)文件的屬性(如文件名、大小和修改時(shí)間)的對(duì)比來判斷目標(biāo)系統(tǒng)分區(qū)中已經(jīng)具有相同的文件,若沒有才將其拷貝至相應(yīng)的隱藏分區(qū)中,否則不進(jìn)行具體拷貝,這樣可以減少隱藏分區(qū)對(duì)相同文件的拷貝;對(duì)需要寫入數(shù)據(jù)分區(qū)的被傳送文件則直接被拷貝至相應(yīng)的私有分區(qū)中。上述服務(wù)器在文件復(fù)制時(shí)所進(jìn)行的操作替代了端設(shè)備上進(jìn)行的透明讀寫機(jī)制的功能,進(jìn)一步降低了端設(shè)備在相互傳送文件數(shù)據(jù)時(shí)的工作量。
成功完成上述步驟之后,服務(wù)器向文件傳送請(qǐng)求的接收方返回一個(gè)消息以表示已成功完成操作26,其中包括了被讀寫的文件的信息,接收方根據(jù)該信息更新本地維護(hù)的文件的狀態(tài),這時(shí)接收方虛擬磁盤的系統(tǒng)分區(qū)和數(shù)據(jù)分區(qū)所呈現(xiàn)給用戶的都是更新之后的狀態(tài)。之后,文件傳送請(qǐng)求的接收方向文件傳送請(qǐng)求的發(fā)起方返回一個(gè)傳送已完成的消息27,其中包括了被讀寫的文件的信息,接收方根據(jù)該信息更新本地維護(hù)的文件的狀態(tài),這時(shí)發(fā)起方虛擬磁盤的系統(tǒng)分區(qū)和數(shù)據(jù)分區(qū)所呈現(xiàn)給用戶的都是更新之后的狀態(tài)。
由于與本發(fā)明的實(shí)質(zhì)性內(nèi)容無關(guān),上述過程沒有對(duì)本實(shí)施例中的錯(cuò)誤處理、報(bào)文傳送的可靠性和安全方面進(jìn)行詳細(xì)描述,本領(lǐng)域技術(shù)人員可參考現(xiàn)有技術(shù)中關(guān)于文件讀寫和網(wǎng)絡(luò)傳輸?shù)腻e(cuò)誤處理機(jī)制、可靠性傳送機(jī)制和安全機(jī)制來獲得對(duì)相關(guān)內(nèi)容的了解。
作為另一具體實(shí)施方式
,在文件傳送請(qǐng)求發(fā)起方生成文件傳送請(qǐng)求報(bào)文之前,可先判斷待傳文件的數(shù)量和各個(gè)文件的大小,對(duì)于待傳文件數(shù)量大于一個(gè)預(yù)定閾值的情況,則對(duì)應(yīng)這批待傳文件生成一個(gè)文件傳送請(qǐng)求,利用上述方法進(jìn)行傳送;否則,若待傳文件的大小超過一個(gè)預(yù)置閾值,則對(duì)應(yīng)這些“大”文件生成一個(gè)文件傳送請(qǐng)求,利用上述方法傳送這些文件,而那些未超過預(yù)定閾值的文件則利用FTP等傳統(tǒng)方法進(jìn)行傳送。
作為另一具體實(shí)施方式
,在文件傳送請(qǐng)求發(fā)起方生成文件傳送請(qǐng)求報(bào)文之前,文件傳送請(qǐng)求的發(fā)起方可按照基于概率的方式來決定是否使用上述方法進(jìn)行文件傳送,譬如可以使用與待傳文件總數(shù)量以及或每一待傳文件的大小成正指數(shù)關(guān)系的概率來進(jìn)行決定是否利用上述方法對(duì)待傳文件進(jìn)行傳送。在這種情況下,若決定為否,則采用FTP等傳統(tǒng)方法進(jìn)行傳送。
在透明計(jì)算中,常常采用低成本的普通PC來構(gòu)成服務(wù)器,因此上述兩種實(shí)施例在一定程度上降低了由于普通PC需要在短時(shí)間內(nèi)進(jìn)行集中的磁盤操作而造成性能驟降的可能性。
以上描述的各個(gè)方法也可類似地應(yīng)用在基于扇區(qū)、自定義塊或其他形式的數(shù)據(jù)共享單位等的各種透明計(jì)算系統(tǒng)的實(shí)施例中。
下面以基于扇區(qū)為數(shù)據(jù)共享單位的實(shí)施例為例進(jìn)行說明。在這樣一個(gè)系統(tǒng)中,扇區(qū)是端設(shè)備和服務(wù)器之間磁盤數(shù)據(jù)的邏輯交互單位。端設(shè)備負(fù)責(zé)維護(hù)本地虛擬磁盤的狀態(tài),即由端設(shè)備維護(hù)相應(yīng)的扇區(qū)映射表,來完成虛擬磁盤中的扇區(qū)到服務(wù)器上相應(yīng)磁盤映像中的扇區(qū)的映射,這工作于文件系統(tǒng)之下。因此即使用戶在端設(shè)備上所見或所操作的是一個(gè)文件,也由端設(shè)備的文件系統(tǒng)和虛擬磁盤驅(qū)動(dòng)轉(zhuǎn)換為虛擬磁盤中的扇區(qū),并進(jìn)一步通過扇區(qū)映射表轉(zhuǎn)換為對(duì)服務(wù)器上相應(yīng)的磁盤映像中與該文件對(duì)應(yīng)的多個(gè)扇區(qū)的操作。基于扇區(qū)的實(shí)施例在本地扇區(qū)映射到服務(wù)器磁盤映像的過程中使用了前述的透明讀寫機(jī)制,即根據(jù)扇區(qū)地址判斷,若是對(duì)數(shù)據(jù)分區(qū)的寫扇區(qū)操作,則直接對(duì)服務(wù)器上對(duì)應(yīng)的私有分區(qū)進(jìn)行寫,但若是對(duì)系統(tǒng)分區(qū)的寫扇區(qū)操作,則重定向到隱藏分區(qū)。對(duì)于端設(shè)備間扇區(qū)數(shù)據(jù)的傳送也可類似于上述對(duì)文件數(shù)據(jù)的傳送方法,在透明計(jì)算端設(shè)備之間進(jìn)行扇區(qū)數(shù)據(jù)的傳送時(shí),在各端設(shè)備和服務(wù)器之間只需進(jìn)行控制類報(bào)文的交互,實(shí)際數(shù)據(jù)的傳送通過服務(wù)器在本地進(jìn)行的扇區(qū)的復(fù)制來實(shí)現(xiàn)。
若一端設(shè)備要將自己虛擬磁盤中的一個(gè)或多個(gè)扇區(qū)傳送到另一個(gè)端設(shè)備的虛擬磁盤中,或?qū)⒘硪粋€(gè)端設(shè)備虛擬磁盤中的一個(gè)或多個(gè)扇區(qū)傳送到自己的虛擬磁盤中,則前者被稱為扇區(qū)傳送請(qǐng)求的發(fā)起方,后者被稱為扇區(qū)傳送請(qǐng)求的接收方。扇區(qū)傳送請(qǐng)求的發(fā)起方、接收方以及服務(wù)器之間利用被稱為扇區(qū)傳送請(qǐng)求的控制報(bào)文來控制傳送過程,一個(gè)扇區(qū)傳送請(qǐng)求是一個(gè)鏈表,鏈表中包括一個(gè)或多個(gè)結(jié)構(gòu)如表2的節(jié)點(diǎn),一個(gè)節(jié)點(diǎn)對(duì)應(yīng)一個(gè)連續(xù)的扇區(qū)串,即連續(xù)扇區(qū),其中至少包括以下字段表2
.......
ID_req扇區(qū)傳送請(qǐng)求發(fā)起方的標(biāo)識(shí);ID_resp扇區(qū)傳送請(qǐng)求接收方/處理方的標(biāo)識(shí);Op_type扇區(qū)傳送請(qǐng)求是讀(下載)請(qǐng)求還是寫(上傳)請(qǐng)求;StartSector被傳送連續(xù)扇區(qū)中的第一個(gè)扇區(qū)號(hào);SectorNum被傳送連續(xù)扇區(qū)所包括扇區(qū)的數(shù)量;若某一時(shí)間需要在兩個(gè)端設(shè)備之間傳送一個(gè)或多個(gè)連續(xù)扇區(qū),扇區(qū)傳送請(qǐng)求的發(fā)起方生成一個(gè)扇區(qū)傳送請(qǐng)求的報(bào)文,并根據(jù)需要傳送的扇區(qū)的信息,在扇區(qū)傳送請(qǐng)求報(bào)文中依次填入相關(guān)信息,但I(xiàn)D_resp字段置空。
在完成上述步驟之后,扇區(qū)傳送請(qǐng)求的發(fā)起方將扇區(qū)傳送請(qǐng)求報(bào)文發(fā)送給扇區(qū)傳送請(qǐng)求的接收方。如果扇區(qū)傳送請(qǐng)求的接收方同意進(jìn)行扇區(qū)傳送,則在扇區(qū)傳送請(qǐng)求報(bào)文的ID_resp字段填入自己的標(biāo)識(shí)。若扇區(qū)傳送請(qǐng)問報(bào)文中所有節(jié)點(diǎn)的ID_resp字段均為空,則表明沒扇區(qū)會(huì)被傳送,因此直接向扇區(qū)傳送請(qǐng)求的發(fā)起方返回拒絕傳送消息,否則將處理后的報(bào)文發(fā)送到服務(wù)器。
服務(wù)器判斷,如果接收到的扇區(qū)傳送請(qǐng)求報(bào)文正確,且各字段不空、合理,則根據(jù)Op_type字段的內(nèi)容,進(jìn)行本地磁盤操作,在與扇區(qū)傳送請(qǐng)求的發(fā)起方和接收方所對(duì)應(yīng)的磁盤映像之間進(jìn)行扇區(qū)的復(fù)制。
成功完成上述步驟之后,服務(wù)器向扇區(qū)傳送請(qǐng)求的接收方返回一個(gè)消息以表示已成功完成操作,其中包括讀寫的扇區(qū)的信息,接收方根據(jù)該消息更新本地維護(hù)的映射表。之后,扇區(qū)傳送請(qǐng)求的接收方向扇區(qū)傳送請(qǐng)求的發(fā)起方返回一個(gè)傳送已完成的消息,其中包括讀寫的扇區(qū)的信息,發(fā)起方根據(jù)該消息更新本地維護(hù)的映射表。
由于與本發(fā)明的實(shí)質(zhì)性內(nèi)容無關(guān),上述過程沒有對(duì)本實(shí)施例中的錯(cuò)誤處理、報(bào)文傳送的安全性和可靠性進(jìn)行詳細(xì)描述,本領(lǐng)域技術(shù)人員可參考現(xiàn)有技術(shù)中相近的關(guān)于磁盤讀寫和網(wǎng)絡(luò)傳輸?shù)某S缅e(cuò)誤處理機(jī)制、可靠性傳送機(jī)制和安全機(jī)制來獲得對(duì)相關(guān)內(nèi)容的了解。
作為另一具體實(shí)施方式
,在扇區(qū)傳送請(qǐng)求發(fā)起方生成扇區(qū)傳送請(qǐng)求報(bào)文之前,可先判斷待傳連續(xù)扇區(qū)的數(shù)量和各個(gè)連續(xù)扇區(qū)的大小,對(duì)于待傳連續(xù)扇區(qū)數(shù)量大于一個(gè)預(yù)定閾值的情況,則對(duì)應(yīng)這批待傳連續(xù)扇區(qū)生成一個(gè)扇區(qū)傳送請(qǐng)求,利用上述方法進(jìn)行傳送;否則,若待傳連續(xù)扇區(qū)的大小超過一個(gè)預(yù)置閾值,則對(duì)應(yīng)這些“長”連續(xù)扇區(qū)生成一個(gè)扇區(qū)傳送請(qǐng)求,利用上述方法傳送這些連續(xù)扇區(qū),而哪些長度未超過預(yù)定閾值的連續(xù)扇區(qū)則可利用傳統(tǒng)的數(shù)據(jù)傳送方法進(jìn)行傳送。
作為另一具體實(shí)施方式
,在扇區(qū)傳送請(qǐng)求發(fā)起方生成扇區(qū)傳送請(qǐng)求報(bào)文之前,扇區(qū)傳送請(qǐng)求的發(fā)起方可按照基于概率的方式來決定是否使用上述方法進(jìn)行扇區(qū)傳送,譬如可以使用與待傳連續(xù)扇區(qū)總數(shù)量以及或每一待傳連續(xù)扇區(qū)的大小成正指數(shù)關(guān)系的概率來進(jìn)行決定是否利用上述方法對(duì)待傳連續(xù)扇區(qū)進(jìn)行傳送。在這種情況下,若決定為否,則可采用傳統(tǒng)的數(shù)據(jù)傳送方法進(jìn)行傳送。
如前所述,在透明計(jì)算中,常常采用低成本的普通PC來構(gòu)成服務(wù)器,因此上述兩種實(shí)施例可在一定程度上降低由于普通PC需要在短時(shí)間內(nèi)進(jìn)行集中的磁盤操作而造成性能驟降的可能性。
上面以本發(fā)明應(yīng)用于基于扇區(qū)為數(shù)據(jù)共享單位的透明計(jì)算系統(tǒng)的實(shí)施例為例進(jìn)行了說明,鑒于情況類似,對(duì)本發(fā)明應(yīng)用于采用其他形式數(shù)據(jù)共享單位的透明計(jì)算系統(tǒng)的情況不再贅述。
以上描述的具體實(shí)施方式
只是對(duì)本發(fā)明進(jìn)行示例,本領(lǐng)域技術(shù)人員在不脫離本發(fā)明實(shí)質(zhì)性思想的基礎(chǔ)上進(jìn)行各種修改和改進(jìn)后得到的技術(shù)方案,均視為在本發(fā)明的范圍之內(nèi)。本發(fā)明適當(dāng)?shù)姆秶詸?quán)利要求書為準(zhǔn)進(jìn)行確定。
權(quán)利要求
1.一種用于在網(wǎng)絡(luò)中的端設(shè)備之間傳送數(shù)據(jù)的方法,該網(wǎng)絡(luò)至少包括服務(wù)器、第一端設(shè)備和第二端設(shè)備,該服務(wù)器具有存儲(chǔ)裝置,該存儲(chǔ)裝置至少包括第一端設(shè)備可使用的第一盤映像和第二端設(shè)備可使用的第二盤映像;該方法包括以下步驟由第一端設(shè)備作為數(shù)據(jù)傳送請(qǐng)求的發(fā)起方根據(jù)需要傳送的數(shù)據(jù)的信息生成數(shù)據(jù)傳送請(qǐng)求的報(bào)文;將該生成的數(shù)據(jù)傳送請(qǐng)求的報(bào)文傳送給作為數(shù)據(jù)傳送請(qǐng)求的接收方的第二端設(shè)備;由第二端設(shè)備接收該報(bào)文,并且如果允許請(qǐng)求的數(shù)據(jù)傳送則將該報(bào)文傳送給該服務(wù)器;該服務(wù)器響應(yīng)于該接收的報(bào)文,執(zhí)行第一盤映像與第二盤映像之間的數(shù)據(jù)傳送。
2.根據(jù)權(quán)利要求1的方法,其中端設(shè)備上無可讀寫的非易失性存儲(chǔ)裝置;第一盤映像和第二盤映像均由只讀的共享分區(qū)、可讀寫的隱藏分區(qū)和私有分區(qū)三種分區(qū)構(gòu)成,其中共享分區(qū)為第一盤映像和第二盤映像所共有,隱藏分區(qū)和私有分區(qū)為各盤映像所獨(dú)有,用戶通過端設(shè)備對(duì)共享分區(qū)的改動(dòng)均保存在其盤映像的隱藏分區(qū)中。
3.根據(jù)權(quán)利要求2的方法,其中當(dāng)該服務(wù)器執(zhí)行第一盤映像與第二盤映像之間的數(shù)據(jù)傳送之后,該服務(wù)器向第二端設(shè)備發(fā)送表示已完成數(shù)據(jù)傳送操作的消息;以及第二端設(shè)備向第一端設(shè)備發(fā)送表示已完成數(shù)據(jù)傳送操作的消息。
4.根據(jù)權(quán)利要求3的方法,其中該數(shù)據(jù)傳送請(qǐng)求的報(bào)文至少包括以下字段數(shù)據(jù)傳送請(qǐng)求的發(fā)起方的標(biāo)識(shí)、數(shù)據(jù)傳送請(qǐng)求的接收方的標(biāo)識(shí)、指示數(shù)據(jù)接收或發(fā)送的數(shù)據(jù)傳送類型、以及需要傳送的數(shù)據(jù)的標(biāo)識(shí)信息。
5.根據(jù)權(quán)利要求4的方法,其中如果第二端設(shè)備不允許請(qǐng)求的數(shù)據(jù)傳送,則向第一端設(shè)備發(fā)送拒絕傳送消息;第二端設(shè)備響應(yīng)于該接收的報(bào)文,對(duì)允許請(qǐng)求的數(shù)據(jù)傳送則在該報(bào)文中的該數(shù)據(jù)傳送請(qǐng)求的發(fā)起方的標(biāo)識(shí)字段填入其自身的標(biāo)識(shí)。
6.根據(jù)權(quán)利要求5的方法,其中被傳送的數(shù)據(jù)是一個(gè)或多個(gè)文件;該報(bào)文中的需要傳送的數(shù)據(jù)的標(biāo)識(shí)信息字段包括以下字段被傳送的文件的文件名、被傳送的文件大小、被傳送文件在第一盤映像中的存放地址、被傳送文件的修改時(shí)間、以及被傳送的文件在第二盤映像中的存放地址。
7.根據(jù)權(quán)利要求6的方法,其中服務(wù)器收到數(shù)據(jù)傳送報(bào)文之后判斷如果報(bào)文合法,則根據(jù)報(bào)文中數(shù)據(jù)傳送類型、被傳送文件在第一盤映像中的存放地址、以及被傳送的文件在第二盤映像中的存放地址判斷被傳送文件是否要寫入接收方或發(fā)起方的系統(tǒng)分區(qū),若是則判斷目標(biāo)盤映像的共享分區(qū)或隱藏分區(qū)中已經(jīng)具有相同的文件,若均沒有才將其拷貝至相應(yīng)的隱藏分區(qū)中;對(duì)需要寫入接收方或發(fā)起方的數(shù)據(jù)分區(qū)的被傳送文件則拷貝至目標(biāo)盤映像的私有分區(qū)中。
8.根據(jù)權(quán)利要求5的方法,其中被傳送的數(shù)據(jù)是一個(gè)或多個(gè)扇區(qū)中的數(shù)據(jù);該報(bào)文中的需要傳送的數(shù)據(jù)的標(biāo)識(shí)信息字段包括以下字段被傳送的連續(xù)扇區(qū)中的第一個(gè)扇區(qū)號(hào)被傳送的連續(xù)扇區(qū)中的第一個(gè)扇區(qū)號(hào)、以及被傳送的連續(xù)扇區(qū)所包含的扇區(qū)的數(shù)量。
9.根據(jù)權(quán)利要求7的方法,其中在數(shù)據(jù)傳送請(qǐng)求發(fā)起方生成數(shù)據(jù)傳送請(qǐng)求報(bào)文之前,數(shù)據(jù)傳送請(qǐng)求的發(fā)起方判斷待傳文件的總數(shù)量大于一個(gè)預(yù)定閾值,或待傳文件的大小均超過另一預(yù)置閾值,則生成相應(yīng)的數(shù)據(jù)傳送請(qǐng)求報(bào)文,否則采用FTP等傳統(tǒng)方法進(jìn)行傳送。
10.根據(jù)權(quán)利要求7的方法,其中在數(shù)據(jù)傳送請(qǐng)求發(fā)起方生成數(shù)據(jù)傳送請(qǐng)求報(bào)文之前,數(shù)據(jù)傳送請(qǐng)求的發(fā)起方以一個(gè)與待傳文件總數(shù)量或待傳文件總大小成正指數(shù)關(guān)系的概率來生成數(shù)據(jù)傳送請(qǐng)求報(bào)文,否則采用FTP等傳統(tǒng)方法進(jìn)行傳送。
全文摘要
一種用于在網(wǎng)絡(luò)中的端設(shè)備之間傳送數(shù)據(jù)的方法,該網(wǎng)絡(luò)至少包括服務(wù)器、第一和第二端設(shè)備。端設(shè)備上無非易失性存儲(chǔ)裝置,該服務(wù)器具有存儲(chǔ)裝置,該存儲(chǔ)裝置至少包括第一端設(shè)備可使用的第一盤映像和第二端設(shè)備可使用的第二盤映像。盤映像均由只讀的共享分區(qū)、可讀寫的隱藏分區(qū)和私有分區(qū)構(gòu)成,其中共享分區(qū)為各盤映像共有,隱藏分區(qū)和私有分區(qū)為各盤映像所獨(dú)有,對(duì)共享分區(qū)的改動(dòng)保存在隱藏分區(qū)中。包括以下步驟由第一端設(shè)備作為發(fā)起方生成數(shù)據(jù)傳送請(qǐng)求的報(bào)文;傳送給作為接收方的第二端設(shè)備;第二端設(shè)備如果允許請(qǐng)求的數(shù)據(jù)傳送則將該報(bào)文傳送給服務(wù)器。服務(wù)器響應(yīng)于接收的報(bào)文,執(zhí)行第一盤映像與第二盤映像之間的數(shù)據(jù)傳送,之后向第二端設(shè)備發(fā)送表示已完成數(shù)據(jù)傳送操作的消息。最后,第二端設(shè)備向第一端設(shè)備發(fā)送表示已完成數(shù)據(jù)傳送操作的消息。
文檔編號(hào)H04L29/06GK1909461SQ20061008475
公開日2007年2月7日 申請(qǐng)日期2006年5月18日 優(yōu)先權(quán)日2006年5月18日
發(fā)明者張堯?qū)W, 徐廣斌, 匡文淵, 周悅芝 申請(qǐng)人:清華大學(xué)