一種文件傳輸方法、設(shè)備和系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種文件傳輸設(shè)備,該文件傳輸設(shè)備駐留在計(jì)算設(shè)備上,適于將計(jì)算設(shè)備上的文件傳輸?shù)椒?wù)器,該文件傳輸設(shè)備包括:文件監(jiān)視器,適于監(jiān)視在計(jì)算設(shè)備中的各種文件變化,并生成相應(yīng)的文件變化事件;事件處理器,適于根據(jù)預(yù)定規(guī)則對(duì)文件監(jiān)視器生成的文件變化事件進(jìn)行處理;以及通信單元,適于將經(jīng)事件處理器處理后的一個(gè)或者多個(gè)文件變化事件以及相關(guān)聯(lián)的文件數(shù)據(jù)一起傳輸?shù)椒?wù)器。本發(fā)明還公開了對(duì)應(yīng)的文件傳輸方法和網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)。
【專利說明】一種文件傳輸方法、設(shè)備和系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)和互聯(lián)網(wǎng)領(lǐng)域,尤其涉及在網(wǎng)絡(luò)中的數(shù)據(jù)同步技術(shù)。
【背景技術(shù)】
[0002]隨著互聯(lián)網(wǎng)絡(luò)和計(jì)算機(jī)的普及,人們?cè)谏詈凸ぷ髦幸话愣紩?huì)擁有多個(gè)計(jì)算設(shè)備,例如,在工作單位至少會(huì)使用一臺(tái)計(jì)算機(jī),而在家中還會(huì)使用另一臺(tái)計(jì)算機(jī),而在外出或者娛樂時(shí)會(huì)使用各種移動(dòng)計(jì)算設(shè)備如平板或者智能手機(jī)等。為了統(tǒng)一管理這些計(jì)算設(shè)備中的文件,出現(xiàn)了網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)。如圖1所示,一個(gè)典型的網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)可以包括第一計(jì)算設(shè)備110、第二計(jì)算設(shè)備120,及存儲(chǔ)服務(wù)器130。第一計(jì)算設(shè)備110和第二計(jì)算設(shè)備120分別經(jīng)由網(wǎng)絡(luò)與存儲(chǔ)服務(wù)器130進(jìn)行通信。計(jì)算設(shè)備110和120分別在本地監(jiān)控相應(yīng)目錄下的文件變化情況。舉例來說,當(dāng)?shù)谝挥?jì)算設(shè)備110檢測(cè)到其某個(gè)目錄中的文件發(fā)生變化時(shí),就會(huì)與存儲(chǔ)服務(wù)器130進(jìn)行交互,將發(fā)生變化的文件及其數(shù)據(jù)上傳至存儲(chǔ)服務(wù)器130,而當(dāng)?shù)诙?jì)算設(shè)備120與存儲(chǔ)服務(wù)器130進(jìn)行交互時(shí),可以將存儲(chǔ)服務(wù)器130中新存儲(chǔ)的、在第一計(jì)算設(shè)備110中發(fā)生變化的文件及其數(shù)據(jù)自動(dòng)下載至第二計(jì)算設(shè)備120的本地相應(yīng)目錄中,從而實(shí)現(xiàn)了在各個(gè)計(jì)算終端中相關(guān)文件的同步。
[0003]但是,在本地計(jì)算設(shè)備中,各種應(yīng)用程序在執(zhí)行過程中會(huì)產(chǎn)生大量的中間文件變化過程,例如,當(dāng)計(jì)算設(shè)備運(yùn)行微軟公司的Word字處理軟件時(shí),在對(duì)word文件進(jìn)行編輯的過程中會(huì)產(chǎn)生許多的臨時(shí)中間文件,同時(shí)在保存word文件時(shí)也會(huì)引發(fā)多次文件修改事件。這是應(yīng)用程序?yàn)榱吮WCword文件的安全而采取的方式,但是對(duì)于網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)來說,這會(huì)導(dǎo)致數(shù)據(jù)同步低效的問題。這是因?yàn)?,根?jù)現(xiàn)有的網(wǎng)絡(luò)同步存儲(chǔ)機(jī)制,在計(jì)算終端上每次對(duì)文件的修改都會(huì)將所修改的內(nèi)容傳輸?shù)酱鎯?chǔ)服務(wù)器,計(jì)算終端會(huì)記錄完整的文件變化過程并在存儲(chǔ)服務(wù)器上進(jìn)行重放,而對(duì)于同步存儲(chǔ)系統(tǒng)而言,所關(guān)注的文件信息是修改完成后的內(nèi)容,而不是修改過程,因此這會(huì)導(dǎo)致計(jì)算終端與存儲(chǔ)服務(wù)器之間無用的頻繁交互,降低了整個(gè)網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)的性能。因此需要一種能夠減少無效數(shù)據(jù)傳輸?shù)奈募鬏敺桨敢蕴岣哒麄€(gè)網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)的效率。
【發(fā)明內(nèi)容】
[0004]為此,本發(fā)明提供一種新的方案以力圖解決或者至少緩解上面存在的問題。
[0005]根據(jù)本發(fā)明的一個(gè)方面,提供了一種文件傳輸設(shè)備,該文件傳輸設(shè)備駐留在計(jì)算設(shè)備上,適于將計(jì)算設(shè)備上的文件傳輸?shù)椒?wù)器,該文件傳輸設(shè)備包括:文件監(jiān)視器,適于監(jiān)視在計(jì)算設(shè)備中的各種文件變化,并生成相應(yīng)的文件變化事件;事件處理器,適于根據(jù)預(yù)定規(guī)則對(duì)文件監(jiān)視器生成的文件變化事件進(jìn)行處理;以及通信單元,適于將經(jīng)事件處理器處理后的一個(gè)或者多個(gè)文件變化事件以及相關(guān)聯(lián)的文件數(shù)據(jù)一起傳輸?shù)椒?wù)器。
[0006]可選地,文件變化事件可以分為創(chuàng)建事件、刪除事件、修改事件和重命名事件,其中所述創(chuàng)建事件、刪除事件和修改事件的參數(shù)為涉及的文件名,以及重命名事件具有重命名前的文件名作為第一參數(shù)和重命名后的文件名作為第二參數(shù)。[0007]可選地,根據(jù)本發(fā)明的文件傳輸設(shè)備還包括同步觸發(fā)器,適于在被觸發(fā)時(shí),指示事件處理器對(duì)上次被觸發(fā)以來文件監(jiān)視器生成的文件變化事件進(jìn)行處理,并指示通信單元傳輸數(shù)據(jù)。
[0008]根據(jù)本發(fā)明的另一個(gè)方面,提供了一種文件傳輸方法,該方法適于將計(jì)算設(shè)備上的文件傳輸?shù)椒?wù)器,該文件傳輸方法包括步驟:監(jiān)視在計(jì)算設(shè)備中的各種文件變化,并生成相應(yīng)的文件變化事件;根據(jù)預(yù)定規(guī)則對(duì)所生成的文件變化事件進(jìn)行處理;以及將經(jīng)處理后的一個(gè)或者多個(gè)文件變化事件以及相關(guān)聯(lián)的文件數(shù)據(jù)一起傳輸?shù)椒?wù)器。
[0009]可選地,文件變化事件可以分為創(chuàng)建事件、刪除事件、修改事件和重命名事件,其中所述創(chuàng)建事件、刪除事件和修改事件的參數(shù)為涉及的文件名,以及重命名事件具有重命名前的文件名作為第一參數(shù)和重命名后的文件名作為第二參數(shù)。
[0010]可選地,根據(jù)本發(fā)明的文件傳輸方法還包括觸發(fā)步驟,適于定期或者應(yīng)用戶的請(qǐng)求觸發(fā)來執(zhí)行所述處理文件變化事件的步驟,以對(duì)上次被觸發(fā)以來所生成的文件變化事件進(jìn)行處理。
[0011]根據(jù)本發(fā)明的還有一個(gè)方面,提供了一種網(wǎng)絡(luò)存儲(chǔ)系統(tǒng),包括:服務(wù)器;以及多個(gè)計(jì)算設(shè)備,每個(gè)計(jì)算設(shè)備包括根據(jù)本發(fā)明的文件傳輸設(shè)備,以便將計(jì)算設(shè)備上的文件傳輸?shù)椒?wù)器中。
[0012]根據(jù)本發(fā)明的文件傳輸方案,在將計(jì)算設(shè)備的文件傳輸?shù)椒?wù)器之前,根據(jù)預(yù)定規(guī)則對(duì)計(jì)算設(shè)備中的文件變化情況進(jìn)行分析,去除一些不必要的中間文件傳輸,從而提高了文件傳輸?shù)男省?br>
【專利附圖】
【附圖說明】
[0013]為了實(shí)現(xiàn)上述以及相關(guān)目的,本文結(jié)合下面的描述和附圖來描述某些說明性方面,這些方面指示了可以實(shí)踐本文所公開的原理的各種方式,并且所有方面及其等效方面旨在落入所要求保護(hù)的主題的范圍內(nèi)。通過結(jié)合附圖閱讀下面的詳細(xì)描述,本公開的上述以及其它目的、特征和優(yōu)勢(shì)將變得更加明顯。遍及本公開,相同的附圖標(biāo)記通常指代相同的部件或元素。
[0014]圖1示出了根據(jù)本發(fā)明的網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)的示意圖;
[0015]圖2示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的文件傳輸設(shè)備的示意圖;以及
[0016]圖3示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的文件傳輸方法的示意圖。
【具體實(shí)施方式】
[0017]下面將參照附圖更詳細(xì)地描述本公開的示例性實(shí)施例。雖然附圖中顯示了本公開的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
[0018]本發(fā)明可以在圖1所示的網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)中實(shí)施,如圖1所示,網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)可以包括第一計(jì)算設(shè)備110、第二計(jì)算設(shè)備120,及存儲(chǔ)服務(wù)器130。第一計(jì)算設(shè)備110和第二計(jì)算設(shè)備120分別經(jīng)由網(wǎng)絡(luò)與存儲(chǔ)服務(wù)器130進(jìn)行通信。第一和第二計(jì)算設(shè)備中包括根據(jù)本發(fā)明的文件傳輸設(shè)備,用于將計(jì)算設(shè)備中的文件傳輸?shù)酱鎯?chǔ)服務(wù)器130中進(jìn)行集中存儲(chǔ)。[0019]圖2示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的文件傳輸設(shè)備的示意圖。如圖2所示,文件傳輸設(shè)備200包含在圖1所示的第一計(jì)算設(shè)備110和第二計(jì)算設(shè)備120的任一個(gè)中,用于將這些計(jì)算設(shè)備中的文件傳輸?shù)椒?wù)器130上并存儲(chǔ)在其中。服務(wù)器130隨后可以將這些文件傳輸?shù)狡渌€沒有這些文件的計(jì)算設(shè)備中,從而實(shí)現(xiàn)文件的同步。
[0020]在本發(fā)明中,第一和第二計(jì)算設(shè)備110和120可以是本領(lǐng)域任何可以處理電子數(shù)據(jù)的設(shè)備,包括但不限于桌面型計(jì)算機(jī)、筆記本式計(jì)算機(jī)、個(gè)人數(shù)字助理、智能移動(dòng)終端、平板電腦等。計(jì)算設(shè)備110和120中通常運(yùn)行現(xiàn)代的操作系統(tǒng),利用操作系統(tǒng)來管理計(jì)算設(shè)備中的硬件資源。計(jì)算設(shè)備110和120可以在操作系統(tǒng)上運(yùn)行各種應(yīng)用。本發(fā)明中的文件傳輸設(shè)備200可以作為一種應(yīng)用而在計(jì)算設(shè)備110和120上運(yùn)行。當(dāng)然取決于在計(jì)算設(shè)備上運(yùn)行的操作系統(tǒng)的不同,文件傳輸設(shè)備200的實(shí)現(xiàn)方式也有所不同,本發(fā)明不受限于文件傳輸設(shè)備200為了適應(yīng)不同操作系統(tǒng)才采用的各種實(shí)現(xiàn),而僅僅受限于文件傳輸設(shè)備200實(shí)現(xiàn)本發(fā)明的功能而必須具有的實(shí)現(xiàn)邏輯。
[0021]如圖2所示,文件傳輸設(shè)備200包括文件監(jiān)視器210、事件處理器220和通信單元230。文件監(jiān)視器210對(duì)計(jì)算設(shè)備110中的各種文件變化,例如創(chuàng)建文件、刪除文件、移動(dòng)文件和修改文件內(nèi)容等進(jìn)行監(jiān)視。如上所述,當(dāng)文件傳輸設(shè)備200作為應(yīng)用在操作系統(tǒng)上運(yùn)行時(shí),操作系統(tǒng)通常提供了文件操作接口。根據(jù)一種實(shí)現(xiàn)方式,文件監(jiān)視器210可以通過在這些文件操作接口上添加鉤子(HOOK),就可以準(zhǔn)確地獲悉在計(jì)算設(shè)備110中的文件變化??蛇x地,由于計(jì)算設(shè)備110并不希望將計(jì)算設(shè)備上的所有文件都同步到其它計(jì)算設(shè)備中,因此計(jì)算設(shè)備110通常會(huì)指定一個(gè)或者多個(gè)要進(jìn)行文件同步的文件目錄,此時(shí)文件監(jiān)視器210僅監(jiān)視這些文件目錄。
[0022]文件監(jiān)視器210在監(jiān)視到文件的變化時(shí),可以生成相應(yīng)的文件變化事件,并且按照時(shí)間順序來存儲(chǔ)這些文件變化事件。如上所述,文件監(jiān)視器210可以通過在操作系統(tǒng)的文件操作接口上添加鉤子來監(jiān)視文件的變化,因此文件監(jiān)視器210可以在文件發(fā)生變化時(shí),生成反映該文件變化內(nèi)容的詳細(xì)信息的文件變化事件。根據(jù)一種實(shí)現(xiàn)方式,每個(gè)文件變化事件包括事件生成時(shí)間、動(dòng)作類型和參數(shù)。動(dòng)作類型包括創(chuàng)建、刪除、修改和重命名,相應(yīng)地,可以將文件變化事件分類為創(chuàng)建事件、刪除事件、修改事件和重命名事件。對(duì)于創(chuàng)建事件、刪除事件和修改事件,文件變化事件的參數(shù)為所涉及的文件名;而對(duì)于重命名事件,文件變化事件的參數(shù)包括重命名前的文件名作為第一參數(shù)和重命名后的文件名作為第二參數(shù)。
[0023]例如,當(dāng)創(chuàng)建一個(gè)文件名為a.doc的文件時(shí),會(huì)生成一個(gè)創(chuàng)建事件,其參數(shù)為a.doc ο當(dāng)刪除一個(gè)文件名為b.bak的文件時(shí),會(huì)生成一個(gè)刪除事件,其參數(shù)為b.bak。當(dāng)把一個(gè)文件從文件名a.doc修改為tmp時(shí),會(huì)生成一個(gè)重命名事件,其第一參數(shù)為a.doc且第二參數(shù)為tmp。
[0024]事件處理器220耦接到文件監(jiān)視器210,對(duì)文件監(jiān)視器210生成的一系列文件變化事件進(jìn)行處理。將計(jì)算設(shè)備上的文件同步復(fù)制到服務(wù)器130上的一種最直接方式是,將這些文件變化事件在服務(wù)器130上以相同的次序進(jìn)行重放,即在服務(wù)器130上重新執(zhí)行文件變化過程,這樣就可以確保完整地將文件復(fù)制到服務(wù)器上。由于文件監(jiān)視器210針對(duì)每個(gè)文件變化操作都生成一個(gè)文件變化事件,如果直接在服務(wù)器上重放這些事件,會(huì)導(dǎo)致大量在計(jì)算設(shè)備和服務(wù)器之間的文件傳輸。因此,在將這些事件在服務(wù)器130上進(jìn)行重放之前,由事件處理器220根據(jù)預(yù)定規(guī)則對(duì)文件監(jiān)視器210生成的文件變化事件進(jìn)行處理有助于減少在計(jì)算設(shè)備和服務(wù)器130之間不必要的數(shù)據(jù)傳輸。
[0025]可以設(shè)置多種預(yù)定規(guī)則,這些規(guī)則通??梢詴?huì)考慮多個(gè)文件操作的最終結(jié)果。
[0026]根據(jù)本發(fā)明的第一個(gè)預(yù)定規(guī)則是,如果存在多個(gè)具有相同參數(shù)的修改事件,則合并為一個(gè)參數(shù)相同的修改事件。例如當(dāng)在計(jì)算設(shè)備上對(duì)一個(gè)文件進(jìn)行了多次修改時(shí)(例如多次編輯圖形文件),會(huì)產(chǎn)生多次修改事件,但是其最終結(jié)果是存儲(chǔ)最后的文件,因此可以將多次修改事件合并為一個(gè)修改事件。
[0027]根據(jù)本發(fā)明的第二個(gè)預(yù)定規(guī)則是,如果存在下列先后順序的事件:參數(shù)為臨時(shí)文件名的創(chuàng)建事件、第一參數(shù)為目標(biāo)文件名且第二參數(shù)為備份文件名的改名事件、第一參數(shù)為臨時(shí)文件名且第二參數(shù)為目標(biāo)文件名的改名事件以及參數(shù)為備份文件名的刪除事件,則將這些事件合并為參數(shù)為目標(biāo)文件名的修改事件。
[0028]第二個(gè)預(yù)定規(guī)則適用于這樣的情況,其中在計(jì)算設(shè)備上運(yùn)行各種編輯文件的應(yīng)用時(shí),需要保存文件,為了確保文件保存過程可靠地執(zhí)行,通常這些應(yīng)用會(huì)采用下面處理來保存目標(biāo)文件:首先將要保存的內(nèi)容寫入到一個(gè)臨時(shí)文件中,接著將目標(biāo)文件改名為備份文件,隨后將臨時(shí)文件改名為目標(biāo)文件,如果這些步驟的執(zhí)行都成功了,則刪除備份文件。由于網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)僅僅是在目標(biāo)文件可靠保存后才上傳目標(biāo)文件,因此沒有必要在服務(wù)器上重放全部四個(gè)事件,而是簡(jiǎn)單地重放一個(gè)更新目標(biāo)文件的事件即可。
[0029]以微軟的word字處理軟件為例,當(dāng)用戶利用該字處理軟件對(duì)word文件(例如
a.doc)進(jìn)行編輯時(shí),需要在編輯過程中保存word文件,此時(shí)字處理軟件會(huì)進(jìn)行以下文件操作,首先把當(dāng)然編輯中文本存儲(chǔ)為一個(gè).tmp文件,隨后將要保存的文件即a.doc文件改名為a.bak文件,隨后將.tmp文件改名為a.doc文件,在一切操作無誤后,刪除a.bak文件。但是對(duì)于用戶來說,就是一次存儲(chǔ)a.doc的操作,而當(dāng)需要將相關(guān)文件上傳到服務(wù)器上時(shí),也僅僅需要將更新后的a.doc傳輸?shù)椒?wù)器,而不用傳輸各種tmp和bak文件。
[0030]根據(jù)本發(fā)明的第三個(gè)預(yù)定規(guī)則是,如果存在下面兩個(gè)先后順序的事件:參數(shù)為臨時(shí)文件名的創(chuàng)建事件以及第一參數(shù)為臨時(shí)文件名而第二參數(shù)為目標(biāo)文件名的改名事件,
[0031]則可以將這兩個(gè)事件合并為一個(gè)參數(shù)為目標(biāo)文件名的創(chuàng)建事件。
[0032]第三個(gè)預(yù)定規(guī)則適用于這樣的例子,例如用戶首先創(chuàng)建了一個(gè)名稱為a.doc,然而發(fā)現(xiàn)名稱輸入錯(cuò)誤,則將該文件名稱修改為b.doc。此時(shí)對(duì)于文件同步來說,最終結(jié)果是創(chuàng)建了一個(gè)名稱為b.doc的文件,因此可以將這兩個(gè)事件進(jìn)行合并。
[0033]根據(jù)本發(fā)明的第四個(gè)預(yù)定規(guī)則是,如果存在下面兩個(gè)先后順序的事件:第一參數(shù)為目標(biāo)文件名且第二參數(shù)為臨時(shí)文件名的改名事件,以及第一參數(shù)為臨時(shí)文件名且第二參數(shù)為目標(biāo)文件名的改名事件,則可以刪除這兩個(gè)事件。
[0034]第四個(gè)預(yù)定規(guī)則考慮到這樣的情況,用戶錯(cuò)誤地修改了一個(gè)文件的名稱,但是發(fā)現(xiàn)修改錯(cuò)誤,又把文件名稱修改成原樣。此時(shí)最終結(jié)果是文件系統(tǒng)沒有發(fā)生任何改變,因此可以刪除這兩個(gè)事件。
[0035]根據(jù)本發(fā)明的第五個(gè)預(yù)定規(guī)則是,如果存在以下先后順序的事件:第一參數(shù)為目標(biāo)文件名且第二參數(shù)為臨時(shí)文件名的改名事件、一個(gè)或者多個(gè)參數(shù)為目標(biāo)文件名的修改事件、參數(shù)為臨時(shí)文件名的刪除事件,則可以將這些事件合并為一個(gè)參數(shù)為目標(biāo)文件名的修改事件。[0036]第五個(gè)預(yù)定規(guī)則適用于這樣的情況,當(dāng)需要對(duì)一個(gè)文件進(jìn)行持續(xù)修改時(shí),由于擔(dān)心該文件修改過程中發(fā)生錯(cuò)誤,先復(fù)制一份該文件的臨時(shí)文件,然后對(duì)該文件持續(xù)進(jìn)行修改,當(dāng)文件修改成功時(shí),刪除原先復(fù)制的臨時(shí)文件。對(duì)于同步系統(tǒng)來說,最終的結(jié)果就是對(duì)該文件進(jìn)行了修改,因此需要進(jìn)行事件合并處理。
[0037]當(dāng)存在多個(gè)預(yù)定規(guī)則時(shí),事件處理器220會(huì)順序并循環(huán)利用預(yù)定規(guī)則進(jìn)行處理,直到事件不能由任何預(yù)定規(guī)則進(jìn)行處理為止。例如,當(dāng)事件處理器220會(huì)首先依次根據(jù)各個(gè)預(yù)定規(guī)則來對(duì)事件進(jìn)行處理,在進(jìn)行了第一輪處理之后,再次依次根據(jù)各個(gè)預(yù)定規(guī)則對(duì)事件進(jìn)行處理,直到事件不能根據(jù)預(yù)定規(guī)則進(jìn)行優(yōu)化為止。在由事件處理器220對(duì)文件監(jiān)視器210生成的事件進(jìn)行處理之后,耦接到事件處理器220的通信單元230將經(jīng)過處理后的文件變化事件以及相關(guān)聯(lián)的文件數(shù)據(jù)一起傳輸?shù)椒?wù)器130,以便在服務(wù)器130上對(duì)事件進(jìn)行重放,從而將文件同步到服務(wù)器130上。
[0038]如上所述,在文件傳輸設(shè)備200中,會(huì)以文件監(jiān)視器210生成的文件變化事件為基本處理單位來進(jìn)行文件傳輸處理。由于在計(jì)算設(shè)備上涉及文件的操作是現(xiàn)代操作系統(tǒng)中最頻繁的操作,因此文件監(jiān)視器210會(huì)生成大量的文件變化事件。為了保證計(jì)算設(shè)備和服務(wù)器之間的文件內(nèi)容同步,需要以恰當(dāng)?shù)臅r(shí)機(jī)來進(jìn)行文件傳輸,因此,根據(jù)本發(fā)明的一個(gè)實(shí)施方式,文件傳輸設(shè)備200包括同步觸發(fā)器240。同步觸發(fā)器240在被觸發(fā)時(shí),指示事件處理器220對(duì)從上次被觸發(fā)以來文件監(jiān)視器210生成的文件變化事件進(jìn)行處理,并同時(shí)指示通信單元230根據(jù)事件處理器220處理后的文件變化事件來將相關(guān)數(shù)據(jù)發(fā)送到服務(wù)器130上進(jìn)行重放以便同步存儲(chǔ)相應(yīng)文件。
[0039]文件監(jiān)視器210生成的文件變化事件經(jīng)過處理之后,就會(huì)從文件監(jiān)視器210中清除,隨后文件監(jiān)視器210繼續(xù)監(jiān)視相關(guān)文件目錄,并生成新的文件變化事件。當(dāng)同步觸發(fā)器240再次被觸發(fā)時(shí),又會(huì)指示事件處理器220處理文件變化事件并清除已處理的文件變化事件。通過上述循環(huán)處理,實(shí)現(xiàn)了文件在計(jì)算設(shè)備和服務(wù)器之間的持續(xù)同步。
[0040]根據(jù)一個(gè)實(shí)施方式,同步觸發(fā)器240可以被定時(shí)觸發(fā),例如每隔5秒鐘或者每隔30秒鐘被定時(shí)觸發(fā)。另外,同步觸發(fā)器240也可以由用戶來觸發(fā),即根據(jù)用戶的操作來觸發(fā)。
[0041]根據(jù)本發(fā)明的文件傳輸設(shè)備200在將計(jì)算設(shè)備的文件傳輸?shù)椒?wù)器之前,根據(jù)預(yù)定規(guī)則對(duì)計(jì)算設(shè)備中的文件變化情況進(jìn)行分析,去除一些不必要的中間文件傳輸,從而提高了文件傳輸?shù)男省?br>
[0042]圖3示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的文件傳輸方法300的示意圖。圖3所示的文件傳輸方法300適于在圖1中的計(jì)算設(shè)備110或者120中執(zhí)行,以便將計(jì)算設(shè)備中的文件同步到服務(wù)器130中。根據(jù)一個(gè)實(shí)施例,該文件傳輸方法300可以由圖2所示的文件傳輸設(shè)備200來執(zhí)行。
[0043]方法300始于步驟S310,在步驟S310中,對(duì)計(jì)算設(shè)備110中的各種文件變化,例如創(chuàng)建文件、刪除文件、移動(dòng)文件和修改文件內(nèi)容等進(jìn)行監(jiān)視。如上所述,計(jì)算設(shè)備中的操作系統(tǒng)通常提供了文件操作接口。根據(jù)一種實(shí)現(xiàn)方式,在步驟S310中,可以通過在這些文件操作接口上添加鉤子(HOOK),就可以準(zhǔn)確地獲悉在計(jì)算設(shè)備110中的文件變化。可選地,由于計(jì)算設(shè)備110并不希望將計(jì)算設(shè)備上的所有文件都同步到其它計(jì)算設(shè)備中,因此計(jì)算設(shè)備110通常會(huì)指定一個(gè)或者多個(gè)要進(jìn)行文件同步的文件目錄,此時(shí)在步驟S310中僅監(jiān)視這些文件目錄。[0044]當(dāng)在步驟S310中監(jiān)視到文件的變化時(shí),可以生成相應(yīng)的文件變化事件,并且按照時(shí)間順序來存儲(chǔ)這些文件變化事件。如上所述,可以通過在操作系統(tǒng)的文件操作接口上添加鉤子來監(jiān)視文件的變化,因此在步驟S310中,可以在文件發(fā)生變化時(shí),生成反映該文件變化內(nèi)容的詳細(xì)信息的文件變化事件。根據(jù)一種實(shí)現(xiàn)方式,每個(gè)文件變化事件包括事件生成時(shí)間、動(dòng)作類型和參數(shù)。動(dòng)作類型包括創(chuàng)建、刪除、修改和重命名,相應(yīng)地,可以將文件變化事件分類為創(chuàng)建事件、刪除事件、修改事件和重命名事件。對(duì)于創(chuàng)建事件、刪除事件和修改事件,文件變化事件的參數(shù)為所涉及的文件名;而對(duì)于重命名事件,文件變化事件的參數(shù)包括重命名前的文件名作為第一參數(shù)和重命名后的文件名作為第二參數(shù)。
[0045]例如,當(dāng)創(chuàng)建一個(gè)文件名為a.doc的文件時(shí),會(huì)生成一個(gè)創(chuàng)建事件,其參數(shù)為
a.doc ο當(dāng)刪除一個(gè)文件名為b.bak的文件時(shí),會(huì)生成一個(gè)刪除事件,其參數(shù)為b.bak。當(dāng)把一個(gè)文件從文件名a.doc修改為tmp時(shí),會(huì)生成一個(gè)重命名事件,其第一參數(shù)為a.doc且第二參數(shù)為tmp。在步驟S310中生成一系列文件變化事件之后,在步驟S320中,對(duì)這些文件變化事件進(jìn)行處理。將計(jì)算設(shè)備上的文件同步復(fù)制到服務(wù)器130上的一種最直接方式是,將這些文件變化事件在服務(wù)器130上以相同的次序進(jìn)行重放,即在服務(wù)器130上重新執(zhí)行文件變化過程,這樣就可以確保完整地將文件復(fù)制到服務(wù)器上。由于在步驟S310中,針對(duì)每個(gè)文件變化操作都生成一個(gè)文件變化事件,如果直接在服務(wù)器上重放這些事件,會(huì)導(dǎo)致大量在計(jì)算設(shè)備和服務(wù)器之間的文件傳輸。因此,在將這些事件在服務(wù)器130上進(jìn)行重放之前,在步驟S320中,根據(jù)預(yù)定規(guī)則對(duì)文件監(jiān)視器210生成的文件變化事件進(jìn)行處理有助于減少在計(jì)算設(shè)備和服務(wù)器130之間不必要的數(shù)據(jù)傳輸。
[0046]可以設(shè)置多種預(yù)定規(guī)則,這些規(guī)則通常可以會(huì)考慮多個(gè)文件操作的最終結(jié)果。
[0047]根據(jù)本發(fā)明的第一個(gè)預(yù)定規(guī)則是,如果存在多個(gè)具有相同參數(shù)的修改事件,則合并為一個(gè)參數(shù)相同的修改事件。例如當(dāng)在計(jì)算設(shè)備上對(duì)一個(gè)文件進(jìn)行了多次修改時(shí)(例如多次編輯圖形文件),會(huì)產(chǎn)生多次修改事件,但是其最終結(jié)果是存儲(chǔ)最后的文件,因此可以將多次修改事件合并為一個(gè)修改事件。
[0048]根據(jù)本發(fā)明的第二個(gè)預(yù)定規(guī)則是,如果存在下列先后順序的事件:參數(shù)為臨時(shí)文件名的創(chuàng)建事件、第一參數(shù)為目標(biāo)文件名且第二參數(shù)為備份文件名的改名事件、第一參數(shù)為臨時(shí)文件名且第二參數(shù)為目標(biāo)文件名的改名事件以及參數(shù)為備份文件名的刪除事件,則將這些事件合并為參數(shù)為目標(biāo)文件名的修改事件。
[0049]第二個(gè)預(yù)定規(guī)則適用于這樣的情況,其中在計(jì)算設(shè)備上運(yùn)行各種編輯文件的應(yīng)用時(shí),需要保存文件,為了確保文件保存過程可靠地執(zhí)行,通常這些應(yīng)用會(huì)采用下面處理來保存目標(biāo)文件:首先將要保存的內(nèi)容寫入到一個(gè)臨時(shí)文件中,接著將目標(biāo)文件改名為備份文件,隨后將臨時(shí)文件改名為目標(biāo)文件,如果這些步驟的執(zhí)行都成功了,則刪除備份文件。由于網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)僅僅是在目標(biāo)文件可靠保存后才上傳目標(biāo)文件,因此沒有必要在服務(wù)器上重放全部四個(gè)事件,而是簡(jiǎn)單地重放一個(gè)更新目標(biāo)文件的事件即可。
[0050]以微軟的word字處理軟件為例,當(dāng)用戶利用該字處理軟件對(duì)word文件(例如
a.doc)進(jìn)行編輯時(shí),需要在編輯過程中保存word文件,此時(shí)字處理軟件會(huì)進(jìn)行以下文件操作,首先把當(dāng)然編輯中文本存儲(chǔ)為一個(gè).tmp文件,隨后將要保存的文件即a.doc文件改名為a.bak文件,隨后將.tmp文件改名為a.doc文件,在一切操作無誤后,刪除a.bak文件。但是對(duì)于用戶來說,就是一次存儲(chǔ)a.doc的操作,而當(dāng)需要將相關(guān)文件上傳到服務(wù)器上時(shí),也僅僅需要將更新后的a.doc傳輸?shù)椒?wù)器,而不用傳輸各種tmp和bak文件。
[0051]根據(jù)本發(fā)明的第三個(gè)預(yù)定規(guī)則是,如果存在下面兩個(gè)先后順序的事件:參數(shù)為臨時(shí)文件名的創(chuàng)建事件以及第一參數(shù)為臨時(shí)文件名而第二參數(shù)為目標(biāo)文件名的改名事件,則可以將這兩個(gè)事件合并為一個(gè)參數(shù)為目標(biāo)文件名的創(chuàng)建事件。
[0052]第三個(gè)預(yù)定規(guī)則適用于這樣的例子,例如用戶首先創(chuàng)建了一個(gè)名稱為a.doc,然而發(fā)現(xiàn)名稱輸入錯(cuò)誤,則將該文件名稱修改為b.doc。此時(shí)對(duì)于文件同步來說,最終結(jié)果是創(chuàng)建了一個(gè)名稱為b.doc的文件,因此可以將這兩個(gè)事件進(jìn)行合并。
[0053]根據(jù)本發(fā)明的第四個(gè)預(yù)定規(guī)則是,如果存在下面兩個(gè)先后順序的事件:第一參數(shù)為目標(biāo)文件名且第二參數(shù)為臨時(shí)文件名的改名事件,以及第一參數(shù)為臨時(shí)文件名且第二參數(shù)為目標(biāo)文件名的改名事件,則可以刪除這兩個(gè)事件。
[0054]第四個(gè)預(yù)定規(guī)則考慮到這樣的情況,用戶錯(cuò)誤地修改了一個(gè)文件的名稱,但是發(fā)現(xiàn)修改錯(cuò)誤,又把文件名稱修改成原樣。此時(shí)最終結(jié)果是文件系統(tǒng)沒有發(fā)生任何改變,因此可以刪除這兩個(gè)事件。
[0055]根據(jù)本發(fā)明的第五個(gè)預(yù)定規(guī)則是,如果存在以下先后順序的事件:第一參數(shù)為目標(biāo)文件名且第二參數(shù)為臨時(shí)文件名的改名事件、一個(gè)或者多個(gè)參數(shù)為目標(biāo)文件名的修改事件、參數(shù)為臨時(shí)文件名的刪除事件,則可以將這些事件合并為一個(gè)參數(shù)為目標(biāo)文件名的修改事件。
[0056]第五個(gè)預(yù)定規(guī)則適用于這樣的情況,當(dāng)需要對(duì)一個(gè)文件進(jìn)行持續(xù)修改時(shí),由于擔(dān)心該文件修改過程中發(fā)生錯(cuò)誤,先復(fù)制一份該文件的臨時(shí)文件,然后對(duì)該文件持續(xù)進(jìn)行修改,當(dāng)文件修改成功時(shí),刪除原先復(fù)制的臨時(shí)文件。對(duì)于同步系統(tǒng)來說,最終的結(jié)果就是對(duì)該文件進(jìn)行了修改,因此需要進(jìn)行事件合并處理。
[0057]當(dāng)存在多個(gè)預(yù)定規(guī)則時(shí),在步驟S320中,會(huì)順序并循環(huán)利用預(yù)定規(guī)則進(jìn)行處理,直到事件不能由任何預(yù)定規(guī)則進(jìn)行處理為止。例如,在步驟S320中,會(huì)首先依次根據(jù)各個(gè)預(yù)定規(guī)則來對(duì)事件進(jìn)行處理,在進(jìn)行了第一輪處理之后,再次依次根據(jù)各個(gè)預(yù)定規(guī)則對(duì)事件進(jìn)行處理,直到事件不能根據(jù)預(yù)定規(guī)則進(jìn)行優(yōu)化為止。在步驟S320對(duì)所生成的事件進(jìn)行處理之后,在步驟S330中將經(jīng)過處理后的文件變化事件以及相關(guān)聯(lián)的文件數(shù)據(jù)一起傳輸?shù)椒?wù)器130,以便在服務(wù)器130上對(duì)事件進(jìn)行重放,從而將文件同步到服務(wù)器130上。
[0058]由于在計(jì)算設(shè)備上涉及文件的操作是現(xiàn)代操作系統(tǒng)中最頻繁的操作,因此在步驟S310中會(huì)生成大量的文件變化事件。為了保證計(jì)算設(shè)備和服務(wù)器之間的文件內(nèi)容同步,需要以恰當(dāng)?shù)臅r(shí)機(jī)來進(jìn)行文件傳輸,因此,根據(jù)本發(fā)明的一個(gè)實(shí)施方式,方法300還包括觸發(fā)步驟。該步驟在執(zhí)行時(shí)會(huì)指示計(jì)算設(shè)備來執(zhí)行上述步驟S320和S330,以便對(duì)從上次被觸發(fā)以來步驟S310中生成的文件變化事件進(jìn)行處理。
[0059]利用觸發(fā)步驟來觸發(fā)執(zhí)行步驟S320和S330以處理文件變化事件并清除已處理的文件變化事件,而步驟S310繼續(xù)生成新的、待處理的文件變化事件。通過這樣的循環(huán)處理,實(shí)現(xiàn)了文件在計(jì)算設(shè)備和服務(wù)器之間的持續(xù)同步。
[0060]根據(jù)一個(gè)實(shí)施方式,觸發(fā)步驟可以被定時(shí)觸發(fā),例如每隔5秒鐘或者每隔30秒鐘被定時(shí)觸發(fā)。另外,觸發(fā)步驟也可以由用戶來觸發(fā),即根據(jù)用戶的操作來觸發(fā)。
[0061]根據(jù)本發(fā)明的文件傳輸方法300在將計(jì)算設(shè)備的文件傳輸?shù)椒?wù)器之前,根據(jù)預(yù)定規(guī)則對(duì)計(jì)算設(shè)備中的文件變化情況進(jìn)行分析,去除一些不必要的中間文件傳輸,從而提高了文件傳輸?shù)男省?br>
[0062]在此處所提供的說明書中,說明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施例可以在沒有這些具體細(xì)節(jié)的情況下被實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對(duì)本說明書的理解。
[0063]類似地,應(yīng)當(dāng)理解,為了精簡(jiǎn)本公開并幫助理解各個(gè)發(fā)明方面中的一個(gè)或多個(gè),在上面對(duì)本發(fā)明的示例性實(shí)施例的描述中,本發(fā)明的各個(gè)特征有時(shí)被一起分組到單個(gè)實(shí)施例、圖、或者對(duì)其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖:即所要求保護(hù)的本發(fā)明要求比在每個(gè)權(quán)利要求中所明確記載的特征更多特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個(gè)實(shí)施例的所有特征。因此,遵循【具體實(shí)施方式】的權(quán)利要求書由此明確地并入該【具體實(shí)施方式】,其中每個(gè)權(quán)利要求本身都作為本發(fā)明的單獨(dú)實(shí)施例。
[0064]本領(lǐng)域那些技術(shù)人員應(yīng)當(dāng)理解在本文所公開的示例中的設(shè)備的模塊或單元或組件可以布置在如該實(shí)施例中所描述的設(shè)備中,或者可替換地可以定位在與該示例中的設(shè)備不同的一個(gè)或多個(gè)設(shè)備中。前述示例中的模塊可以組合為一個(gè)模塊或者此外可以分成多個(gè)子模塊。
[0065]本領(lǐng)域那些技術(shù)人員可以理解,可以對(duì)實(shí)施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們?cè)O(shè)置在與該實(shí)施例不同的一個(gè)或多個(gè)設(shè)備中??梢园褜?shí)施例中的模塊或單元或組件組合成一個(gè)模塊或單元或組件,以及此外可以把它們分成多個(gè)子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對(duì)本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進(jìn)行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個(gè)特征可以由提供相同、等同或相似目的的替代特征來代替。
[0066]此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實(shí)施例包括其它實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實(shí)施例。例如,在下面的權(quán)利要求書中,所要求保護(hù)的實(shí)施例的任意之一都可以以任意的組合方式來使用。
[0067]此外,所述實(shí)施例中的一些在此被描述成可以由計(jì)算機(jī)系統(tǒng)的處理器或者由執(zhí)行所述功能的其它裝置實(shí)施的方法或方法元素的組合。因此,具有用于實(shí)施所述方法或方法元素的必要指令的處理器形成用于實(shí)施該方法或方法元素的裝置。此外,裝置實(shí)施例的在此所述的元素是如下裝置的例子:該裝置用于實(shí)施由為了實(shí)施該發(fā)明的目的的元素所執(zhí)行的功能。
[0068]如在此所使用的那樣,除非另行規(guī)定,使用序數(shù)詞“第一”、“第二”、“第三”等等來描述普通對(duì)象僅僅表示涉及類似對(duì)象的不同實(shí)例,并且并不意圖暗示這樣被描述的對(duì)象必須具有時(shí)間上、空間上、排序方面或者以任意其它方式的給定順序。
[0069]盡管根據(jù)有限數(shù)量的實(shí)施例描述了本發(fā)明,但是受益于上面的描述,本【技術(shù)領(lǐng)域】?jī)?nèi)的技術(shù)人員明白,在由此描述的本發(fā)明的范圍內(nèi),可以設(shè)想其它實(shí)施例。此外,應(yīng)當(dāng)注意,本說明書中使用的語言主要是為了可讀性和教導(dǎo)的目的而選擇的,而不是為了解釋或者限定本發(fā)明的主題而選擇的。因此,在不偏離所附權(quán)利要求書的范圍和精神的情況下,對(duì)于本【技術(shù)領(lǐng)域】的普通技術(shù)人員來說許多修改和變更都是顯而易見的。對(duì)于本發(fā)明的范圍,對(duì)本發(fā)明所做的公開是說明性的,而非限制性的,本發(fā)明的范圍由所附權(quán)利要求書限定。
[0070]本發(fā)明公開了 Al、一種文件傳輸設(shè)備,該文件傳輸設(shè)備駐留在計(jì)算設(shè)備上,適于將計(jì)算設(shè)備上的文件傳輸?shù)椒?wù)器,該文件傳輸設(shè)備包括:
[0071]文件監(jiān)視器,適于監(jiān)視在計(jì)算設(shè)備中的各種文件變化,并生成相應(yīng)的文件變化事件;
[0072]事件處理器,適于根據(jù)預(yù)定規(guī)則對(duì)所述文件監(jiān)視器生成的文件變化事件進(jìn)行處理;以及
[0073]通信單元,適于將經(jīng)所述事件處理器處理后的一個(gè)或者多個(gè)文件變化事件以及相關(guān)聯(lián)的文件數(shù)據(jù)一起傳輸?shù)椒?wù)器。
[0074]A2、如Al所述的文件傳輸設(shè)備,還包括同步觸發(fā)器,適于在被觸發(fā)時(shí),指示事件處理器對(duì)上次被觸發(fā)以來文件監(jiān)視器生成的文件變化事件進(jìn)行處理,并指示通信單元傳輸數(shù)據(jù)。
[0075]A3、如Al或者A2所述的文件傳輸設(shè)備,其中文件變化事件可以分為創(chuàng)建事件、刪除事件、修改事件和重命名事件,其中所述創(chuàng)建事件、刪除事件和修改事件的參數(shù)為涉及的文件名,以及重命名事件具有重命名前的文件名作為第一參數(shù)和重命名后的文件名作為第
二參數(shù)。
[0076]A4、如A3所述的文件傳輸設(shè)備,其中所述預(yù)定規(guī)則包括:如果存在下列先后順序的事件:參數(shù)為臨時(shí)文件名的創(chuàng)建事件、第一參數(shù)為目標(biāo)文件名且第二參數(shù)為備份文件名的改名事件、第一參數(shù)為臨時(shí)文件名且第二參數(shù)為目標(biāo)文件名的改名事件以及參數(shù)為備份文件名的刪除事件,則將這些事件合并為參數(shù)為目標(biāo)文件名的修改事件。
[0077]A5、如A3所述的文件傳輸設(shè)備,其中所述預(yù)定規(guī)則包括:如果存在下面兩個(gè)先后順序的事件:參數(shù)為臨時(shí)文件名的創(chuàng)建事件以及第一參數(shù)為臨時(shí)文件名而第二參數(shù)為目標(biāo)文件名的改名事件,則可以將這兩個(gè)事件合并為一個(gè)參數(shù)為目標(biāo)文件名的創(chuàng)建事件。
[0078]A6、如A3所述的文件傳輸設(shè)備,其中所述預(yù)定規(guī)則包括:如果存在下面兩個(gè)先后順序的事件:第一參數(shù)為目標(biāo)文件名且第二參數(shù)為臨時(shí)文件名的改名事件,以及第一參數(shù)為臨時(shí)文件名且第二參數(shù)為目標(biāo)文件名的改名事件,則可以刪除這兩個(gè)事件。
[0079]A7、如A3所述的文件傳輸設(shè)備,其中所述預(yù)定規(guī)則包括:如果存在以下先后順序的事件:第一參數(shù)為目標(biāo)文件名且第二參數(shù)為臨時(shí)文件名的改名事件、一個(gè)或者多個(gè)參數(shù)為目標(biāo)文件名的修改事件、參數(shù)為臨時(shí)文件名的刪除事件,則可以將這些事件合并為一個(gè)參數(shù)為目標(biāo)文件名的修改事件。
[0080]AS、如A1-A7中任一個(gè)所述的文件傳輸設(shè)備,其中所述同步觸發(fā)器被定期觸發(fā)或者應(yīng)用戶的請(qǐng)求而觸發(fā)。
[0081]A9、如A1-A8中任一個(gè)所述的文件傳輸設(shè)備,其中所述文件監(jiān)視器適于對(duì)計(jì)算設(shè)備上的預(yù)定文件目錄進(jìn)行監(jiān)視。
[0082]本發(fā)明還公開了 B1、一種文件傳輸方法,該方法適于將計(jì)算設(shè)備上的文件傳輸?shù)椒?wù)器,該文件傳輸方法包括步驟:
[0083]監(jiān)視在計(jì)算設(shè)備中的各種文件變化,并生成相應(yīng)的文件變化事件;
[0084]根據(jù)預(yù)定規(guī)則對(duì)所生成的文件變化事件進(jìn)行處理;以及[0085]將經(jīng)處理后的一個(gè)或者多個(gè)文件變化事件以及相關(guān)聯(lián)的文件數(shù)據(jù)一起傳輸?shù)椒?wù)器。
[0086]B2、如權(quán)利要求BI所述的文件傳輸方法,還包括觸發(fā)步驟,適于定期或者應(yīng)用戶的請(qǐng)求觸發(fā)來執(zhí)行所述處理文件變化事件的步驟,以對(duì)上次被觸發(fā)以來所生成的文件變化事件進(jìn)行處理。
[0087]B3、如權(quán)利要求BI或者B2所述的文件傳輸方法,其中文件變化事件可以分為創(chuàng)建事件、刪除事件、修改事件和重命名事件,其中所述創(chuàng)建事件、刪除事件和修改事件的參數(shù)為涉及的文件名,以及重命名事件具有重命名前的文件名作為第一參數(shù)和重命名后的文件名作為第二參數(shù)。
[0088]B4、如權(quán)利要求B3所述的文件傳輸方法,其中所述預(yù)定規(guī)則包括:如果存在下列先后順序的事件:參數(shù)為臨時(shí)文件名的創(chuàng)建事件、第一參數(shù)為目標(biāo)文件名且第二參數(shù)為備份文件名的改名事件、第一參數(shù)為臨時(shí)文件名且第二參數(shù)為目標(biāo)文件名的改名事件以及參數(shù)為備份文件名的刪除事件,則將這些事件合并為參數(shù)為目標(biāo)文件名的修改事件。
[0089]B5、如權(quán)利要求B3所述的文件傳輸方法,其中所述預(yù)定規(guī)則包括:如果存在下面兩個(gè)先后順序的事件:參數(shù)為臨時(shí)文件名的創(chuàng)建事件以及第一參數(shù)為臨時(shí)文件名而第二參數(shù)為目標(biāo)文件名的改名事件,則可以將這兩個(gè)事件合并為一個(gè)參數(shù)為目標(biāo)文件名的創(chuàng)建事件。
[0090]B6、如權(quán)利要求B3所述的文件傳輸方法,其中所述預(yù)定規(guī)則包括:如果存在下面兩個(gè)先后順序的事件:第一參數(shù)為目標(biāo)文件名且第二參數(shù)為臨時(shí)文件名的改名事件,以及第一參數(shù)為臨時(shí)文件名且第二參數(shù)為目標(biāo)文件名的改名事件,則可以刪除這兩個(gè)事件。
[0091]B7、如權(quán)利要求B3所述的文件傳輸方法,其中所述預(yù)定規(guī)則包括:如果存在以下先后順序的事件:第一參數(shù)為目標(biāo)文件名且第二參數(shù)為臨時(shí)文件名的改名事件、一個(gè)或者多個(gè)參數(shù)為目標(biāo)文件名的修改事件、參數(shù)為臨時(shí)文件名的刪除事件,則可以將這些事件合并為一個(gè)參數(shù)為目標(biāo)文件名的修改事件。
[0092]B8、如權(quán)利要求BI — B7中任一個(gè)所述的文件傳輸方法,其中所述監(jiān)視在計(jì)算設(shè)備中的各種文件變化的步驟包括監(jiān)視所述計(jì)算設(shè)備上的預(yù)定文件目錄中的各種文件變化。
[0093]本發(fā)明還公開了 Cl、一種網(wǎng)絡(luò)存儲(chǔ)系統(tǒng),包括:
[0094]服務(wù)器;以及
[0095]多個(gè)計(jì)算設(shè)備,每個(gè)計(jì)算設(shè)備包括如權(quán)利要求A1-A9中任一個(gè)所述的文件傳輸設(shè)備,以便將計(jì)算設(shè)備上的文件傳輸?shù)剿龇?wù)器中。
【權(quán)利要求】
1.一種文件傳輸設(shè)備,該文件傳輸設(shè)備駐留在計(jì)算設(shè)備上,適于將計(jì)算設(shè)備上的文件傳輸?shù)椒?wù)器,該文件傳輸設(shè)備包括: 文件監(jiān)視器,適于監(jiān)視在計(jì)算設(shè)備中的各種文件變化,并生成相應(yīng)的文件變化事件; 事件處理器,適于根據(jù)預(yù)定規(guī)則對(duì)所述文件監(jiān)視器生成的文件變化事件進(jìn)行處理;以及 通信單元,適于將經(jīng)所述事件處理器處理后的一個(gè)或者多個(gè)文件變化事件以及相關(guān)聯(lián)的文件數(shù)據(jù)一起傳輸?shù)椒?wù)器。
2.如權(quán)利要求1所述的文件傳輸設(shè)備,還包括同步觸發(fā)器,適于在被觸發(fā)時(shí),指示事件處理器對(duì)上次被觸發(fā)以來文件監(jiān)視器生成的文件變化事件進(jìn)行處理,并指示通信單元傳輸數(shù)據(jù)。
3.如權(quán)利要求1或者2所述的文件傳輸設(shè)備,其中文件變化事件可以分為創(chuàng)建事件、刪除事件、修改事件和重命名事件,其中所述創(chuàng)建事件、刪除事件和修改事件的參數(shù)為涉及的文件名,以及重命名事件具有重命名前的文件名作為第一參數(shù)和重命名后的文件名作為第二參數(shù)。
4.如權(quán)利要求3所述的文件傳輸設(shè)備,其中所述預(yù)定規(guī)則包括:如果存在下列先后順序的事件:參數(shù)為臨時(shí)文件名的創(chuàng)建事件、第一參數(shù)為目標(biāo)文件名且第二參數(shù)為備份文件名的改名事件、第一參數(shù)為臨時(shí)文件名且第二參數(shù)為目標(biāo)文件名的改名事件以及參數(shù)為備份文件名的刪除事件,則將這些事件合并為參數(shù)為目標(biāo)文件名的修改事件。
5.如權(quán)利要求3所述的文件傳輸設(shè)備,其中所述預(yù)定規(guī)則包括:如果存在下面兩個(gè)先后順序的事件:參數(shù)為臨時(shí)文件名的創(chuàng)建事件以及第一參數(shù)為臨時(shí)文件名而第二參數(shù)為目標(biāo)文件名的改名事件,則可以將這兩個(gè)事件合并為一個(gè)參數(shù)為目標(biāo)文件名的創(chuàng)建事件。
6.如權(quán)利要求3所述的 文件傳輸設(shè)備,其中所述預(yù)定規(guī)則包括:如果存在下面兩個(gè)先后順序的事件:第一參數(shù)為目標(biāo)文件名且第二參數(shù)為臨時(shí)文件名的改名事件,以及第一參數(shù)為臨時(shí)文件名且第二參數(shù)為目標(biāo)文件名的改名事件,則可以刪除這兩個(gè)事件。
7.如權(quán)利要求3所述的文件傳輸設(shè)備,其中所述預(yù)定規(guī)則包括:如果存在以下先后順序的事件:第一參數(shù)為目標(biāo)文件名且第二參數(shù)為臨時(shí)文件名的改名事件、一個(gè)或者多個(gè)參數(shù)為目標(biāo)文件名的修改事件、參數(shù)為臨時(shí)文件名的刪除事件,則可以將這些事件合并為一個(gè)參數(shù)為目標(biāo)文件名的修改事件。
8.一種文件傳輸方法,該方法適于將計(jì)算設(shè)備上的文件傳輸?shù)椒?wù)器,該文件傳輸方法包括步驟: 監(jiān)視在計(jì)算設(shè)備中的各種文件變化,并生成相應(yīng)的文件變化事件; 根據(jù)預(yù)定規(guī)則對(duì)所生成的文件變化事件進(jìn)行處理;以及 將經(jīng)處理后的一個(gè)或者多個(gè)文件變化事件以及相關(guān)聯(lián)的文件數(shù)據(jù)一起傳輸?shù)椒?wù)器。
9.如權(quán)利要求8所述的文件傳輸方法,還包括觸發(fā)步驟,適于定期或者應(yīng)用戶的請(qǐng)求觸發(fā)來執(zhí)行所述處理文件變化事件的步驟,以對(duì)上次被觸發(fā)以來所生成的文件變化事件進(jìn)行處理。
10.一種網(wǎng)絡(luò)存儲(chǔ)系統(tǒng),包括: 服務(wù)器;以及 多個(gè)計(jì)算設(shè)備,每個(gè)計(jì)算設(shè)備包括如權(quán)利要求1-7中任一個(gè)所述的文件傳輸設(shè)備,以便將計(jì)算 設(shè)備上的文件傳輸?shù)剿龇?wù)器中。
【文檔編號(hào)】H04L12/26GK103747029SQ201310669935
【公開日】2014年4月23日 申請(qǐng)日期:2013年12月10日 優(yōu)先權(quán)日:2013年12月10日
【發(fā)明者】趙化強(qiáng) 申請(qǐng)人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司