專利名稱:用于復(fù)制數(shù)據(jù)的數(shù)據(jù)管理系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用于管理復(fù)制數(shù)據(jù)的一種系統(tǒng)和方法,并且尤其涉及一種管理經(jīng)移動式通信網(wǎng)絡(luò)連接的在多個計算機系統(tǒng)上保持的共享數(shù)據(jù)文件拷貝的系統(tǒng)和方法。
隨著國內(nèi)的和國際的通信網(wǎng)絡(luò)提供快速信息交換,現(xiàn)在計算技術(shù)滲透到生活中的各個方面。但是,現(xiàn)有的網(wǎng)絡(luò)通常仍限于是位置固定的。盡管對國際網(wǎng)絡(luò)的訪問,尤其是對跨越世界的‘Internet’(互聯(lián)網(wǎng))的訪問,日益重要,但它仍限于有線網(wǎng)絡(luò)的相對稀少的訪問點。
80年代中移動式通信系統(tǒng)的出現(xiàn)表明,通過提供按蜂窩布局排列的復(fù)蓋著廣闊地理區(qū)域的發(fā)射機系統(tǒng)這個限制可得到緩解,其中這些發(fā)射機使用小頻率集從而占據(jù)相對很小的帶寬。在其地理復(fù)蓋范圍內(nèi)利用容易買到的設(shè)備可以方便地建立通信鏈路。盡管這種基礎(chǔ)設(shè)施最初是為語音話務(wù)研制的,但它已很快地擴展到還可允許數(shù)據(jù)業(yè)務(wù)。
當今,可以在大多數(shù)語音類移動通信系統(tǒng)上以及幾個在不同國家中運行的僅用于數(shù)據(jù)的網(wǎng)絡(luò)上建立數(shù)據(jù)連接。一個例子是最近采用的“全球移動電話系統(tǒng)”或者縮寫為GSM,該系統(tǒng)不僅目前是復(fù)蓋全歐的并可能在未來中短期內(nèi)復(fù)蓋全球,而且該系統(tǒng)還可提供高質(zhì)量語音業(yè)務(wù)和數(shù)據(jù)連接。
商業(yè)界已把GSM接受為全球復(fù)蓋的。因為無須附加的網(wǎng)絡(luò)成本經(jīng)過相同的硬件可以提供數(shù)據(jù)連接,普遍預(yù)料擁有正確封裝式軟件的該特定的用戶界將會很好地得到諸如電子郵件的移動式數(shù)據(jù)的好處。目前硬件和軟件發(fā)展商正努力提供適用于用戶需要的服務(wù)和應(yīng)用程序。
但是,存在著一些需要解決的問題。由于經(jīng)過大氣傳輸數(shù)據(jù)的特性需要進行大量的錯誤糾正,因此帶寬是受限制的,目前最高可達每秒9600比特。同時,例如象GSM的網(wǎng)絡(luò)上的移動式數(shù)據(jù)連接的計費方式是和移動式語音連接的計費方式相同的,即它們的計費是基于連接時間的而不是基于實際的數(shù)據(jù)傳輸量的。按照移動式電話行業(yè)的典型的最高連接費用以及低的傳輸速度,目前傳輸一兆字節(jié)的價格約為10美金的連接時間。另一方面,略微便宜但較慢的僅用于數(shù)據(jù)的面向包交換網(wǎng)具有大的網(wǎng)絡(luò)換向時間的缺點(在英國換向時間超過20秒并非異常)。因為移動式鏈路是昂貴的,并且由于大多數(shù)常用的網(wǎng)絡(luò)是以連接時間為基準計費的,不能有效地使用數(shù)據(jù)鏈路的應(yīng)用程序容易浪費金錢。用戶希望有效地使用移動式鏈路并且還希望能夠控制對昂貴鏈路的使用。
另一個問題是使用的方便性。已經(jīng)可以得到一些應(yīng)用程序,這些應(yīng)用程序在一定程度上通過應(yīng)用先進的壓縮方法有效地管理移動式連接。遺憾的是,這些應(yīng)用程序經(jīng)常強迫用戶采用通常不僅是新的而且是獨特的特殊交互方式。在所有的情況下它們具有不同于常規(guī)應(yīng)用程序的“式樣”。計算機專業(yè)人員通常習慣于數(shù)量不多的應(yīng)用程序,并且不愿采納新的接口,尤其在新的接口不是用于代替舊的設(shè)計而是用于和舊設(shè)計一起使用的情況下。
此外,正確地安裝所有的通信部件并且起動移動式連接也不是一件簡單的工作。理想地,移動式應(yīng)用程序即使不和常規(guī)應(yīng)用程序相同也應(yīng)該相類似,并且移動式鏈路的使用對于用戶應(yīng)該盡可能的透明。
因為必須把網(wǎng)絡(luò)內(nèi)部零件接受為給定的并且這種網(wǎng)絡(luò)內(nèi)部零件是不受應(yīng)用程序開發(fā)者的影響的,過去對于使用移動式連接中所遇到的各種固有的挑戰(zhàn)及問題的解決方案集中在兩個方面上,即應(yīng)用程序本身或者基礎(chǔ)通信協(xié)議上。下面將考慮這兩種方法。改進各個應(yīng)用程序在過去的幾年中采納了許多在移動式鏈路上運行的應(yīng)用程序。象mail-reader(郵件讀出軟件)和news-reader(新聞讀出軟件)或者WWW-browser(環(huán)球網(wǎng)瀏覽器)這樣的程序是特別普遍的,但是還使用著大量由用戶建立的移動式應(yīng)用程序(從而大眾很少知道它們)。精巧調(diào)整的應(yīng)用程序具有既可以改造成用于通用的移動式鏈路又可以改造成用于專用的一種特定移動式網(wǎng)絡(luò)的優(yōu)點。這樣,它們可以充分利用網(wǎng)絡(luò)規(guī)定的傳輸特性和帶寬,從而提供最佳可能的數(shù)據(jù)處理。另一方面,這種精巧調(diào)整很可能涉及對低層應(yīng)用程序代碼的許多修改,這可能導致與原始應(yīng)用程序的不可兼容性并會嚴重地阻礙該應(yīng)用程序?qū)ζ渌脚_及網(wǎng)絡(luò)的可移植性。這還會導致難以在該應(yīng)用程序的應(yīng)用特性和與通信有關(guān)的方面之間進行區(qū)分。對每個應(yīng)用程序必須重復(fù)許多這樣的工作。通信協(xié)議的改進另一種試圖改進基礎(chǔ)通信協(xié)議的方法明顯地具有和應(yīng)用程序無關(guān)的優(yōu)點,從而可避免上述方法的許多缺陷。用于移動式鏈路的象TCP/IP這樣的精巧調(diào)整的現(xiàn)有協(xié)議(例如應(yīng)用V Jacobson在‘Request forComment’(RFC)1144,F(xiàn)eb 1990中發(fā)表的論文“Compressing TCP/IPheaders for low-speed seriallinks”(“用于低速串行鏈路的壓縮TCP/IP報頭”)里所討論的壓縮TCP/IP報頭,或者采用增強型版本TCP/IP如‘移動式IP’或間接式TCP’),或者使這些標準協(xié)議適用于別的情況下不兼容的網(wǎng)絡(luò)上(如IBM公司的ARTour系統(tǒng)所完成的那樣),都具有使大量的應(yīng)用程序可以從這些努力中獲益的明顯優(yōu)點。它還清楚地把通信方面和應(yīng)用程序本身區(qū)分出來。遺憾的是,這些通信平臺通用地處理數(shù)據(jù),從而不能使用專用于應(yīng)用程序的簡化和壓縮方法。因此,它們使應(yīng)用程序成為可移植的并且提供優(yōu)化的數(shù)據(jù)傳輸子系統(tǒng),但是另一方面在改善應(yīng)用程序的性能上只起很小的作用。
很明顯,可以一起應(yīng)用這兩個方法從而通過把兩方面的優(yōu)勢即有效的數(shù)據(jù)處理和有效的數(shù)據(jù)傳輸結(jié)合起來得到最好的結(jié)果。對于諸如視頻或者圖象傳輸?shù)闹刎摵蓱?yīng)用程序這是有用的,但是在一般情況下因為它還把兩種方法的缺陷結(jié)合起來這樣做不是可取的。
兩種方法在不同的層次上提高傳輸子系統(tǒng)的效率。但是對于前面的討論中所涉及的“可預(yù)算性”和“易使用性”上作用很小。雖然在移動式網(wǎng)絡(luò)內(nèi)通過在專有協(xié)議的頂部上提供標準編程環(huán)境開發(fā)出允許在移動式鏈路上運行常規(guī)網(wǎng)絡(luò)應(yīng)用程序的系統(tǒng),但在實際上這種方法證明是困難的,因為常規(guī)的應(yīng)用軟件是建立在高速鏈路的頂部上的從而一般對帶寬要求很高難以在移動式鏈路上運行,或者簡單地由于太貴而不能運行。各種方法都不能有效地支持交互式應(yīng)用程序,在其中實際的數(shù)據(jù)傳輸只占該應(yīng)用程序的總運行時間中的一小部分(常常少于1%)。如果與其呼叫費用是以連接時間為基準的電路交換網(wǎng)絡(luò)(例如GSM網(wǎng)絡(luò))一起使用時,這種方法當然尤其受到嚴厲的限制。如果某時刻沒有業(yè)務(wù)而可斷開GSM連接時,在現(xiàn)有的GSM網(wǎng)絡(luò)上重新建立調(diào)制解調(diào)器連接所需的平均時間已經(jīng)確定為28秒,這使以上所述難以解決。
本發(fā)明的目的是提供一種改進的系統(tǒng)和方法,用于對在移動式通信網(wǎng)絡(luò)中相互通信的多個計算機上的復(fù)制數(shù)據(jù)進行管理。
根據(jù)本發(fā)明提供一種管理共享數(shù)據(jù)文件的拷貝的方法,這些拷貝保持在可經(jīng)一個移動式通信網(wǎng)絡(luò)連接的多個計算機系統(tǒng)上,該方法包括(a)為共享數(shù)據(jù)文件的每份拷貝保持一個關(guān)于該拷貝的各次修改的記錄;(b)經(jīng)過該移動式通信網(wǎng)絡(luò)的連接,檢索為該共享數(shù)據(jù)文件的其它各拷貝保持的記錄;(c)合并檢索的記錄以產(chǎn)生一個修改次序;(d)對修改次序施以預(yù)定的規(guī)則來解決修改次序中的沖突;以及(e)根據(jù)解決沖突后的修改次序修正共享文件的拷貝。
通過提供能允許常規(guī)應(yīng)用程序有效使用移動式數(shù)據(jù)連接的通用平臺,上述發(fā)明緩解了前面提到的問題。由于這種方法不限于一種應(yīng)用程序或者不限于一類特定的應(yīng)用程序,因此它是通用的。另外,由于保持應(yīng)用程序的通信自主并且安排為以一種有效的方式處理數(shù)據(jù),該方法改進了效率。而且由于不必為使用所設(shè)置的工具而修改應(yīng)用程序該方法是容易使用的。
應(yīng)該注意所提到的“共享”數(shù)據(jù)文件并不是必須意味著多用戶。本發(fā)明同等地可應(yīng)用于單個用戶在不同的計算機上“共享”文件的情況,例如在該用戶辦公室里的計算機以及他離開辦公室時為工作而攜帶的便攜式計算機之間“共享”文件。
在最佳實施方式中,所述記錄保持步驟(a)是在多個計算機系統(tǒng)的每個系統(tǒng)上執(zhí)行的,并且在步驟(a)期間這些多個計算機系統(tǒng)不和移動式通信網(wǎng)絡(luò)連接。另外,這些多個計算機系統(tǒng)最好只在所述檢索步驟(b)期間和移動式通信網(wǎng)絡(luò)連接。
在最佳實施方式中,各個所述步驟(a)至(d)是在所述多個計算機系統(tǒng)的一些系統(tǒng)上執(zhí)行的,所述步驟(b)包括通過連接移動式通信網(wǎng)絡(luò)交換由多個計算機系統(tǒng)的所述一些計算機系統(tǒng)所保持的記錄,并且所述步驟(e)包括對共享文件的本地拷貝進行修正。通過這種方法,為了能使共享數(shù)據(jù)文件的本地拷貝得到修正只需對移動式通信網(wǎng)絡(luò)進行一次連接。
為了幫助自動解決各次修改之間的沖突,在最佳實施方式中當在所述記錄保持步驟(a)期間記錄修改時隨著每次修改存儲優(yōu)先級信息,并且在所述合并步驟(c)中該優(yōu)先級信息被用于向任何相沖突的修改分配相對的優(yōu)先級以供所述沖突解決步驟(d)相繼地解決沖突。在所述記錄保持步驟(a)中存儲的優(yōu)先級信息最好包括進行該修改的用戶的身份。另外,在最佳實施方式中,優(yōu)先級信息還包括時間標記信息,從而較早的修改比較晚的修改具有較高的優(yōu)先級。但是,可以存儲任何其它適用的優(yōu)先級信息以便可把優(yōu)先級分配給相沖突的修改。
給出記錄的某些如上所述的優(yōu)先形式之后,接著在最佳實施方式中在沖突解決步驟(d)期間使具有較低優(yōu)先級的相沖突的修改完全無效。通過采用這種方法,保證保持文件格式,但會丟失信息。替代地,可以采用一種不同的方法,這種方法只使較低優(yōu)先級修改中的有沖突的部分無效。其優(yōu)點是僅去掉為了得到無沖突修改集所需的最少數(shù)量的信息,但是可能不保持文件格式。很明顯可以采取別的定義如何在所述步驟(d)中解決沖突的策略。
為了提高在移動式通信網(wǎng)絡(luò)上數(shù)據(jù)傳輸?shù)男?,最好于沿移動式通信網(wǎng)絡(luò)發(fā)送之前在檢索步驟(b)期間先壓縮記錄。
從本發(fā)明的第二個方面的角度來看,提供了一種用于保持共享數(shù)據(jù)文件的一份拷貝的計算機系統(tǒng),該共享數(shù)據(jù)文件的多份拷貝還保持在可經(jīng)移動式通信網(wǎng)絡(luò)和該計算機系統(tǒng)連接的多個其它的計算機系統(tǒng)上,每個計算機系統(tǒng)配置成當不和該移動式通信網(wǎng)絡(luò)連接時保存一個有關(guān)其共享文件的拷貝的修改記錄,該系統(tǒng)包括檢索裝置,用于把該計算機系統(tǒng)和移動式通信網(wǎng)絡(luò)連接起來以檢索為保存在多個其它計算機系統(tǒng)上的共享數(shù)據(jù)文件的拷貝而保持的記錄;合并裝置,用于把所檢索到的記錄和為共享數(shù)據(jù)文件的本地拷貝而保持的記錄合并起來以產(chǎn)生一個修改次序;沖突解決裝置,用于應(yīng)用預(yù)定的對修改次序的規(guī)則以在修改次序之中解決沖突;以及用于根據(jù)解決沖突后的修改次序修正共享文件的本地拷貝的裝置。
從第三個角度來看,本發(fā)明提供一種數(shù)據(jù)管理系統(tǒng),用于管理在多個可經(jīng)移動式通信網(wǎng)絡(luò)連接起來的計算機系統(tǒng)上所保存的一個共享數(shù)據(jù)文件的多份拷貝,該系統(tǒng)包括和該共享數(shù)據(jù)文件的每份拷貝相關(guān)的記錄裝置,用于保持對該拷貝所做的修改的記錄;檢索裝置,用于經(jīng)過對移動式通信網(wǎng)絡(luò)的連接檢索為該共享數(shù)據(jù)文件的其它拷貝保持的記錄;合并裝置,用于合并所檢索的記錄以生成修改次序;沖突解決裝置,用于應(yīng)用預(yù)定的對修改次序的規(guī)則來解決修改次序中的沖突;以及用于基于解決沖突后的修改次序修正該共享文件的拷貝的裝置。
本發(fā)明將參照在附圖中所示的最佳實施方式僅按示例的方法予以進一步的說明,附圖是
圖1表示數(shù)據(jù)通信系統(tǒng)中的不同軟件部分;圖2表示本發(fā)明的最佳實施方式的數(shù)據(jù)管理系統(tǒng);圖3表示本發(fā)明的最佳實施方式的移動式應(yīng)用程序框架的不同運行方式;圖4是一個圖,表示本發(fā)明的最佳實施方式的移動式應(yīng)用程序框架的各個部分;圖5說明在本發(fā)明的最佳實施方式中模型的不同部分是怎樣使用的;以及圖6表示一個可以和本發(fā)明的最佳實施方式一起使用的“框架明白”應(yīng)用程序的屏幕示圖。
圖1表示數(shù)據(jù)通信系統(tǒng)中不同軟件組成部分的基本分類。應(yīng)用程序100分為其用戶接口(‘UI’)105和應(yīng)用程序的主體部分110。在操作系統(tǒng)層115上,把它非常粗略地劃分成用于外部組成部分的存儲系統(tǒng)120以及操作系統(tǒng)的驅(qū)動程序125。網(wǎng)絡(luò)130位于下層并由操作系統(tǒng)115驅(qū)動。圖1的中間一列對與不同部分相關(guān)的數(shù)據(jù)進行分類,并且在右側(cè)帶有各個部分所能處理的數(shù)據(jù)的多少以及其類型性的指示,該類型性指的是通過檢查該數(shù)據(jù)單元所能得到的類型信息的細節(jié)。
應(yīng)用程序?qū)涌商幚泶罅康臄?shù)據(jù)并且容易對數(shù)據(jù)進行分類,在較低層數(shù)據(jù)尺寸和類型性逐步下降。最終在協(xié)議層(驅(qū)動程序)小量地處理數(shù)據(jù)(按“數(shù)據(jù)包”處理)并且難以得到類型信息。
理論上,移動式通信應(yīng)該在足夠低的一層上進行以便可使大量的應(yīng)用程序獲益,但又應(yīng)該在足夠高的一層上進行以便深入了解所傳輸數(shù)據(jù)的類型從而可采用專門化壓縮和簡化方法。根據(jù)本發(fā)明的最佳實施方式,移動式通信是在文件系統(tǒng)層進行處理的,這是因為大部分應(yīng)用程序使用用于數(shù)據(jù)輸入及輸出的文件,從而大范圍的應(yīng)用程序可以從中獲益。另外,文件是由數(shù)據(jù)單元而不是由一條一條數(shù)據(jù)組成的,因此經(jīng)??赏茢喑鑫募愋汀6疫€認識到在常規(guī)操作下不需要和移動式通信的連續(xù)連接,這是因為所有應(yīng)用程序可以運行在本地可得到的數(shù)據(jù)上,從而可以適當?shù)刂С纸换ナ綉?yīng)用程序;僅當偶而為了重新同步文件時才需要進行連接。
和移動式通信網(wǎng)絡(luò)不同,在有線(“地面”)通信網(wǎng)絡(luò)領(lǐng)域里已研制一些分布式文件系統(tǒng)。在有線網(wǎng)絡(luò)中已采用例如Sun微系統(tǒng)公司的Network File System(NFS)或者Transarc公司的Andrew File System(AFS)的網(wǎng)絡(luò)文件系統(tǒng)以得到對保持在遠程節(jié)點處的數(shù)據(jù)文件的訪問。這樣,本地應(yīng)用程序可以對保存在遠程位置上的數(shù)據(jù)進行工作并且文件可由許多用戶共享。實際上,用戶完全察覺不出網(wǎng)絡(luò)的使用,用戶把所有的文件都看成是本地的。在這種最簡單的形式下,通過采用某種遠程進程調(diào)用工具在網(wǎng)絡(luò)上經(jīng)重定向讀/寫操作對這些系統(tǒng)進行操作。為減小網(wǎng)絡(luò)上的通信負載常常使用超高速緩存。
當允許同時編輯時,常規(guī)的文件系統(tǒng)利用各種鎖定方法來確保數(shù)據(jù)的一致性。已經(jīng)建議用表決代替鎖定,但是寫訪問仍僅限于一個地點并且在訪問一個文件之前必須得到對足夠多的拷貝的寫允許。許多系統(tǒng)用令牌協(xié)調(diào)對復(fù)制文件的訪問,但是令牌的傳送進而需要操作地點之間的通信鏈路。在論文“用于復(fù)制文件的一致性及恢復(fù)控制”中(Proceeding ofthe 10th ACM Symposium on Operating Systems Principles,December1985),Davcev和Burkhard提出一種系統(tǒng),這種系統(tǒng)在部分斷開系統(tǒng)時允許寫訪問,但這種部分性的斷開限于所謂的“多數(shù)劃分(maiority-partition)”的前提之內(nèi)。在論文“分布式數(shù)據(jù)庫系統(tǒng)的可靠性機理綜述”(Proceeding of the spring COMPCON,F(xiàn)ebruary1978)中,Hammer和Shipman提出一種技術(shù),這種技術(shù)不需要由于寫操作而進行鎖定從而允許文件略有偏差,但要求依賴通信鏈路在嚴格的時限內(nèi)解決所產(chǎn)生的不一致性。
Lotus公司的Notes軟件允許對它的專用數(shù)據(jù)庫具有多個讀/寫復(fù)制。復(fù)制被周期性地協(xié)調(diào)一致,通常每天不超過一到二次。在復(fù)制品之間查出沖突后如果不試圖自動地解決這些沖突會造成建立獨立的版本,這樣一旦出現(xiàn)沖突會需要大量的人工勞動。在歐洲專利申請EP-A-0,684,558中討論了一種不同的方法,該專利說明一種復(fù)制系統(tǒng),其中多個服務(wù)器保持文件的可更新復(fù)制品。采用一種描述為“進取性”的更新傳播協(xié)議,當識別出導致不一致數(shù)據(jù)的故障后這種協(xié)議盡可能快地造成復(fù)制品更新。事實上,這些服務(wù)器相互協(xié)調(diào)以檢測復(fù)制品的不一致性并且啟動更新協(xié)議在無須等待客戶請求數(shù)據(jù)的前提下檢測變壞的或者相沖突的復(fù)制品。盡管自動地解決某些沖突,為修補沖突文件可能需要人工干預(yù)。
最近,微軟公司發(fā)布了作為Windows 95產(chǎn)品的一部分的“Briefcase Folder”工具。該工具為在其briefcase工具的頂部上編寫的應(yīng)用程序提供了沖突解決的工具,但同時它僅可應(yīng)用于這些應(yīng)用程序的子集。另外,它不能自動地啟動協(xié)調(diào)工作并且需要大量的人工指導。
上述文件系統(tǒng)層技術(shù)由于它們依賴快速、可連續(xù)獲得的通信鏈路和/或它們需要充分使用會嚴重阻礙長期斷開操作周期的鎖定方法而不適用于移動式環(huán)境。
圖2表示最佳實施方式的數(shù)據(jù)管理系統(tǒng)的建立,在下文中它被稱為“移動式應(yīng)用程序框架”200。在圖2的例子中,兩個用戶210、220本地地操作共享文件(用磁盤符號205表示)的本地拷貝,框架200在底層力圖保持這二個拷貝同步。尤其重要的在于要注意到借助該框架不再由應(yīng)用程序而是由基礎(chǔ)的框架進行通信或者啟動傳輸。
一些文件系統(tǒng),尤其是“CODA”(請參考J Kistler和MSatyanarayanan的論文“ Coda文件系統(tǒng)的斷開運行”,ACMTransactions on Computer Systems,10(1),F(xiàn)ebraary 1992),現(xiàn)已擴充到可在網(wǎng)絡(luò)停用階段允許進行斷開運行,從而朝這個方向邁出一步。另外,Monica Wachowicz和Stefan Hild的論文“全移動環(huán)境下位置和數(shù)據(jù)管理的組合”(Proceedings of the International Workshop onInformation Visualization and Mobile Computing,Rostock,Germany,F(xiàn)ebruary 1996)中說明一種“全移動性”體系結(jié)構(gòu),在這種體系結(jié)構(gòu)里用戶不再隨身攜帶自己的便攜式計算機而替代地在其目的地用租賃的計算機注冊使用。作為這種體系結(jié)構(gòu)的一部分,設(shè)想了一種斷開運行,其通過運行在移動式主機上的應(yīng)用程序在斷開方式下處理數(shù)據(jù)。把數(shù)據(jù)文件的改變存儲起來以便以后和該文件的其它拷貝協(xié)調(diào)一致。構(gòu)成該全移動性體系結(jié)構(gòu)的一部分的數(shù)據(jù)管理子系統(tǒng)的初步輪廓是由Stefan Hild在其觀點論文“用于無線節(jié)點的斷開運行”中表明的,該文發(fā)表在Proceedings of the ECOOP‘95 Workshop on Mobility and Replication,European Conference on Object Oriented Programming,August1995。該論文簡要地說明在移動環(huán)境內(nèi)斷開文件訪問和協(xié)調(diào)的基本概念。
“移動式應(yīng)用程序框架”采取這種觀點斷開運行(即不和固定的主機建立連接)是常態(tài)的而連接階段是例外狀態(tài),這種觀點和相反的做法恰恰不同。因此,本最佳實施方式的“移動性應(yīng)用程序框架”在許多方面上不同于常規(guī)的網(wǎng)絡(luò)文件系統(tǒng)和允許斷開運行,在后面的更詳細討論中這些方面將更為清楚。
在最佳實施方式中,該“框架”用作為一種工具,以在小數(shù)量的用戶之間共享少量的最重要的文件。建立這種“工作組”是一個簡單的但又是一種自覺的過程。通過采取這種對“共享”概念的小心方法,該“框架”可以提供一種對文件一致性寬松得多的姿態(tài)。從而,該“框架”既不是常規(guī)網(wǎng)絡(luò)文件系統(tǒng)的代替物也不是它的擴充而是用于使管理復(fù)制文件更為方便?,F(xiàn)在更詳細地討論它的某些主要特性。
如上面所概述的那樣,該框架著重依賴于斷開運行。圖3的狀態(tài)圖表示不同的運行方式并且概括說明與網(wǎng)絡(luò)的其它部分的連接狀態(tài)。
在常規(guī)(斷開)運行期間,該框架處于“記錄”方式(步驟300)。在這個階段期間,記錄對共享文件執(zhí)行的所有修改并且把所有修改存儲到日志里。不向訪問這些共享文件施加任何限制在共享同一文件的所有節(jié)點上同時支持讀操作和寫操作。
依靠重新接入,該框架重新建立與一些數(shù)量的(不必是全部的)保持著該共享文件拷貝的其它地點的連接,并且在步驟310與這些地點交換記錄日志。這是唯一一個需要網(wǎng)絡(luò)連接的步驟(“交換”)。
剩余的其它三個狀態(tài)用于重新同步該共享文件。首先,在步驟320(“合并”)將從其它地點接收到的日志和本地日志合并成一個唯一的修改次序,接著在步驟330(“解決”)解決沖突,最后在步驟340(“重新運行”)用合并后以及解決沖突后的日志使文件協(xié)調(diào)一致。
圖4表示該框架的內(nèi)部組成部分并且還給出其命名的一些理由。不僅僅為移動式應(yīng)用程序提供一個運行的平臺,該框架還包括和應(yīng)用程序運行在同一層上的組成部分(尤其是記錄器410),從而提供一種使應(yīng)用程序在其中運行的“框架”。細節(jié)上,這個不同的組成部分是記錄器410,其記錄所有在共享數(shù)據(jù)文件的本地拷貝上的修改,在圖4中該文件用盤420表示。記錄器410可以得到一些模型430,這些模型是對各種文件類型的內(nèi)容類型和可能的編輯操作的形式說明,用于幫助對修改的檢測??梢杂袑λ形募愋投寄芄ぷ鞯娜笔≈怠:竺鎸⒏敿毜赜懻撨@些模型。
控制器440包含大部分邏輯線路,負責啟動協(xié)調(diào)(即發(fā)送重新連接事件)并且負責指導協(xié)調(diào)進程。最好,通信模塊450處理與底層移動式通信網(wǎng)絡(luò)460的實際接口。
在最佳實施方式中,在每個保持著一份共享數(shù)據(jù)文件拷貝420的計算機系統(tǒng)400上都含有該移動式應(yīng)用程序框架的每個上述部件。每當一個特定計算機系統(tǒng)400的控制器440確定其共享數(shù)據(jù)文件的拷貝應(yīng)該和該數(shù)據(jù)文件的其它拷貝重新同步時,它將經(jīng)過移動式通信網(wǎng)絡(luò)460建立連接,并且將和其它保持著修改記錄日志的計算機系統(tǒng)交換所記錄的修改日志。接著將由控制器440執(zhí)行圖3的步驟320、330和340以更新共享數(shù)據(jù)文件的本地拷貝420。
但是,對于熟練的技術(shù)人員很顯然控制器440和通信模塊450可以設(shè)置在分離的專用計算機系統(tǒng)上。各個持有該共享數(shù)據(jù)文件的一份拷貝的系統(tǒng)則包含該移動式應(yīng)用程序框架的其它部件以便記錄該文件這份拷貝所受到的改變。周期性地,可在移動式網(wǎng)絡(luò)上把控制器440和各計算機系統(tǒng)400連接起來以檢索這些計算機所記錄的對它們的共享文件的拷貝的改變。接著可由控制器440實施步驟320和330來合并這些拷貝并解決沖突。然后可以重新把控制器440和網(wǎng)絡(luò)連接起來以便把解決沖突后的修改次序發(fā)送給各個計算機系統(tǒng)400。然后為了更新共享文件的各本地拷貝應(yīng)由各計算機系統(tǒng)400實施步驟340。
在最佳實施方式里不采用這后一種方法,因為這種方法為了更新一個共享數(shù)據(jù)文件的一份拷貝需要連接網(wǎng)絡(luò)二次,并且增加了運行開銷。此外,因為控制器應(yīng)該設(shè)置在某個中心計算機上,將不能得到有關(guān)該共享數(shù)據(jù)文件的任何特定拷貝所受到的改變的次數(shù)的細節(jié),從而控制器必須根據(jù)某些其它準則(例如上次更新后所消逝的時間)來決定何時更新文件。這種方式不如當采用本最佳實施方式的系統(tǒng)時根據(jù)共享數(shù)據(jù)文件的拷貝的實際修改行為而進行的更新操作那樣有效。但是,后一種方法的確具有只需要一個控制器的優(yōu)點,并且集中式地管理何時需要決定進行文件拷貝的交換。從而,在某些情況下可能會決定采用后一種方法是值得的。
不論采用那種方法,很明顯在不存在任何形式的鎖定處理的情況下對于長時間的斷開運行很可能會在高動態(tài)變化的共享文件之間出現(xiàn)沖突。從而該框架用一致性換取有效性。不只是該框架才具有文件偏差以及相應(yīng)的不一致性的這種問題;任何分布式系統(tǒng)都在較小程度上承受著這些問題,并且在沖突檢測和版本合并上都已進行了許多工作。但是,所有的現(xiàn)有技術(shù)或者在一旦檢測出沖突時求助用戶干涉解決沖突,或者首先避免出現(xiàn)沖突。大多數(shù)現(xiàn)有技術(shù)采用鎖定方法或者鎖定方法的衍生物。但是對于該框架,由于長時間的斷開運行很清楚任何形式的鎖定是毫無可能的。
至于沖突解決,很清楚當不能很方便地把語義意義和文件聯(lián)系起來時很難智能地解決沖突。盡管大多數(shù)方法依靠用戶人工地解決沖突,但是我們相信只有在可以自動地解決沖突的情況下用戶才能接受斷開運行。應(yīng)該明白不應(yīng)期待自動解決沖突在所有可想象的情況下產(chǎn)生邏輯上一致的結(jié)果。但是,期待著這種協(xié)調(diào)將產(chǎn)生可和它進行工作的文件。在文本文件的情況下,我們希望得到一種人工很容易清理的文件。在數(shù)據(jù)文件的情況下,協(xié)調(diào)處理應(yīng)該保留文件格式從而可使訪問該文件的應(yīng)用程序仍能讀該文件。
從而最佳實施方式的框架需要一種記錄及沖突檢測方法,這種方法在斷開運行下一方面不向?qū)ξ募淖x寫訪問施加任何限制,另一方面為了得到合理的自動沖突解決記錄足夠的信息。
按照本發(fā)明的最佳實施方式,在第一種情況下,框架內(nèi)的文件被認為是一個字符序列。在小心地避免任何涉及文件的內(nèi)容類型的假定的同時,通過周期性地對現(xiàn)行文件和記錄器所保持的備份拷貝進行比較來記錄修改并且計算對“編輯距離”的一階逼近。編輯距離是一組把第一字符串轉(zhuǎn)換成第二字符串的編輯操作序列,從而基本上識別出用戶怎樣修改了文件。但是,它是困難的并且在計算上是昂貴的,從而在本發(fā)明的最佳實施方式中使用編輯距離的一階逼近,因為一階逼近簡單并且在計算上是便宜的,而且已得知它可提供可接受的結(jié)果。
根據(jù)該方法,定義的兩種基本操作,即“插入”操作和“刪除”操作。記錄器的目的在于按這些操作的序列模擬對記錄文件所進行的修改。最好這是通過對兩個字符串(現(xiàn)行文件和備份文件)從兩端進行比較并且確定這兩個字符串中不同的第一字符位置和最后字符位置來完成的。根據(jù)這些工作可以推斷出是否執(zhí)行過一次插入、一次刪除或者一次刪除后的一次插入。
另外,日志中的所有修改是被確定時間的,從而為以后的自動沖突解決提供了基礎(chǔ)??梢缘玫綄S糜谟涗浱幚淼哪P?,還可以得到用于特殊文件格式的編輯操作。例如,可以通過改變模型430之內(nèi)的文件類型定義修改記錄處理,從而比如它可以包含指示記錄器410把文件分成一個一個部分并且接著一個一個部分獨立得到考慮的信息。
為了自動地解決沖突必須回答兩個問題首先,必須為每次修改指定優(yōu)先級,從而當給出兩個相沖突的修改時,一個修改可以重寫在另一個上。這種優(yōu)先級分配典型地取決于文件拷貝的位置;一些允許斷開操作的文件系統(tǒng)定義一個“主拷貝”,在出現(xiàn)任何沖突的情況下主拷貝 具有超過所有其它拷貝的優(yōu)先優(yōu)先級。在最佳實施方式里不采用這種方法,因為我們認為用戶可能會使用不同的計算機,在這樣的情況下把修改的優(yōu)先級固定在執(zhí)行修改的位置是不明智的。替代地,最佳實施方式根據(jù)修改文件的用戶的身份分配優(yōu)先級。記錄修改的具體時間也用于分配優(yōu)先級。最好采用早期修改超過晚期修改的觀點,因為相反的策略會導致反直觀的狀態(tài)即前面的修改具有使后面修改更有可能成功的機會。
其次,必須規(guī)定對相沖突的修改的處理方法。在本發(fā)明的最佳實施方式中已經(jīng)發(fā)現(xiàn)兩種策略是特別有用的。借助“全部無效策略”,優(yōu)先級較低的相沖突修改全部無效。這可能會丟失許多信息,但是保證會保留文件格式。備擇地,可以定義一種僅丟棄低優(yōu)先級修改的沖突部分的“部分無效策略”。很明顯,這具有為了導出無沖突的修改集僅僅去掉最少量信息的優(yōu)點,但是有可能不再保留文件格式。
在該框架內(nèi)由用戶在模型430中可以全局地定義優(yōu)先級分配規(guī)則以及無效策略。圖5概括地給出協(xié)調(diào)處理中的該可定制的組成部分(“模型”)。記錄器410周期性地比較用戶數(shù)據(jù)文件420和備份文件500,并確定用戶進行的修改。出于這個目的,該模型可具有說明文件格式的概要的“文件模型”510,一組可由用戶執(zhí)行的“編輯操作”520,以及一組把這些編輯操作轉(zhuǎn)換成缺省的插入和刪除操作序列的轉(zhuǎn)換規(guī)則530?!拔募P汀?、“編輯操作”以及“轉(zhuǎn)換規(guī)則”可以用于為各種特定的文件類型和格式指導記錄器410;通過缺省值本最佳實施方式的記錄器410只依靠插入和刪除操作并且假定一種平等文件格式。
以這種形式檢測出的修改存儲在日志540里。在協(xié)調(diào)期間,沿網(wǎng)絡(luò)從同一文件的其它拷貝中收到的各個日志550由合并程序560采用一組“優(yōu)先級規(guī)則”570的優(yōu)先級次序得到合并。然后由解決/重新運行裝置590應(yīng)用“無效規(guī)則”580來檢測及去掉合并后的修改集中的任何沖突。最后,在本地文件拷貝420上執(zhí)行合并后的并且協(xié)調(diào)后的日志。以和記錄處理相類似的方法,可以得到用于合并處理和協(xié)調(diào)處理的各種缺省值。但是,用戶可能決定通過提供一個替代的“優(yōu)先級規(guī)則”和/或“無效規(guī)則”按其希望對這兩個處理進行定制。
所有各個可定制的部分組成“模型”430??梢詾橐唤M文件定義各種模型,例如為一種特殊文件類型的所有文件或者為一個特定文件定義各種模型。
在Stefan Hild和Peter Robinson合著的論文“移動式環(huán)境下的文件復(fù)制”中提供了適用于最佳實施方式的移動式應(yīng)用程序框架的自動沖突解決算法的詳細說明,該論文在本申請的優(yōu)先日期之前尚未公開發(fā)表。在本申請的文件中包括該論文的一份拷貝以供參考,從而該論文的內(nèi)容作為本文的參考資料。該論文詳細地概述了用于計算編輯距離的一階逼近的記錄機制,并且給出其合并步驟和協(xié)調(diào)步驟確實產(chǎn)生可以在共享文件的各本地拷貝執(zhí)行的唯一無沖突修改序列的數(shù)學證明。另外,該論文證明其協(xié)調(diào)處理可應(yīng)用于部分協(xié)調(diào)序列,即應(yīng)用于在同一時刻并非全部文件都同步的情況,例如某些節(jié)點超出移動式通信網(wǎng)絡(luò)的復(fù)蓋區(qū)域或者由于別的原因目前不能獲得。
在本框架的范例中,數(shù)據(jù)傳輸不再由應(yīng)用程序啟動而是在框架內(nèi)啟動,即如圖3的狀態(tài)圖所示觸發(fā)協(xié)調(diào)處理。通信中包括有控制地交換按已知文件類型進行的文件修改。最佳實施方式中日志中所含的數(shù)據(jù)可在傳輸前在不同的層次上優(yōu)化。
首先,可以應(yīng)用各種無損失的壓縮方法。這是直截了當?shù)牟⑶铱梢栽跇O少或沒有代價的情況下進行;大多數(shù)通信子系統(tǒng)已經(jīng)應(yīng)用包級上的某些形式的以字典為基礎(chǔ)的壓縮方法。由這些技術(shù)所得到的壓縮是適度的。
第二,可以使用類型信息并對其施以特殊的壓縮方法。取決于確切的文件類型,這些有損的壓縮方法在數(shù)量上可以比無損方法更有效,但是通常應(yīng)用起來更費錢。
最后,可以對數(shù)據(jù)重定比例以反映遠程節(jié)點的能力。例如,對一個高分辨率圖象文件重定比例以反映象素分辨率和彩色分辨率。在該全分辨率圖象需要被重新生成時,例如如果需要把它傳送到另一個高分辨率節(jié)點時,所有為了重新生成該全分辨率圖象所需的信息都留在原始地點并且遠程節(jié)點具有一個指向它的指針。
本移動式應(yīng)用程序框架的基本目標之一是能夠使用現(xiàn)有的工具和程序。但是,本質(zhì)上它們不能對諸如文件協(xié)調(diào)等的框架專用功能提供任何支持。因此,我們設(shè)想應(yīng)用程序可以寫出“框架明白”的內(nèi)容并且可以訪問框架內(nèi)部信息,在框架專用功能上用戶可利用這些信息得到支持。例如,在協(xié)調(diào)處理期間失敗的修改可被保留,并且如果需要可被恢復(fù)??梢詷擞浻善渌脩魣?zhí)行的修改。這樣,他們可以更透明地進行協(xié)調(diào)處理并且?guī)椭謴?fù)在別的情況下會丟失的數(shù)據(jù)。
作為一個例子,可以設(shè)想一個簡單的框架明白的ASCII代碼文本編輯程序(見圖6)。通過利用和修改源直接對應(yīng)的顏色代碼610,該編輯程序允許用戶“看見”在協(xié)調(diào)處理期間進行那些修改(通過在文本的適當位置上插入人為的標記指明刪除以及失敗的修改)。通過定位在這些標記上用戶可以檢索該修改上的附加信息620,并且如果需要可以倒轉(zhuǎn)其效果。圖6表示一個示例的屏幕顯示。通過它用戶得到一個挽救別的情況下會在協(xié)調(diào)處理期間丟失的數(shù)據(jù)的簡單工具,所得到的用戶接口是信息充足的并且不會察覺成是過載的。
根據(jù)上面的說明,很清楚本最佳實施方式的該框架在其結(jié)構(gòu)中的單一模塊里(見圖4)包含通信的所有方面。這不僅清晰地把和面向通信的方面與框架的面向功能的模塊分隔開并且清晰地把通信工作與應(yīng)用程序在框架內(nèi)的運行分隔開。通信不再由應(yīng)用程序啟動而是由框架啟動。通過把所有的通信操作集中在一個部位有可能緊緊地控制所有通信,如果一組應(yīng)用程序獨立地根據(jù)它們自身的需要驅(qū)動通信執(zhí)行一個任務(wù)將是不可能的。
常規(guī)通信系統(tǒng)和本移動式應(yīng)用程序框架之間的第二個重要不同在于啟動通信的原因。在常規(guī)系統(tǒng)中,為了保證連續(xù)操作應(yīng)用程序和其它地點進行通信以交換信息和數(shù)據(jù);數(shù)據(jù)是在“請求”的基礎(chǔ)上交換的。在本框架內(nèi),在本地保持數(shù)據(jù),從而為了保證應(yīng)用程序的運行不需要進行通信。但是,在本地保持數(shù)據(jù)必然會導致數(shù)據(jù)過期,因此本框架單獨啟動通信以更新數(shù)據(jù)文件。這意味著通信和交互式應(yīng)用程序情況下不同,不是由運行應(yīng)用程序的步調(diào)(例如,依賴外部數(shù)據(jù)繼續(xù)運行)所決定的進度約束的。相反,協(xié)調(diào)及同步連接的頻率和時機可以大大改變。其確切的時刻可由一些因素確定由日志驅(qū)動的更新。可以按記錄的修改規(guī)定每個文件在任何時刻所能許可的偏差量。如果進行了過多的修改(即所有修改的加權(quán)總長度超出規(guī)定的限制)則觸發(fā)協(xié)調(diào)處理??梢越⒕哂刑貏e低可允許偏差量的所謂“流水線文件”,這實際上意味著文件的每次改變會立即傳播到所有的其它地點。這些文件可以用作為各地點之間交換報文的方便手段。周期性的更新??梢园粗芷谛缘拈g隔連接所有的地點。這保證即使未超過觸發(fā)由日志驅(qū)動的更新臨界閾限最終仍能傳播小修改?,F(xiàn)有網(wǎng)絡(luò)的價格和可獲性。在能得到更便宜的網(wǎng)絡(luò)連接價格或者能得到更便宜的網(wǎng)絡(luò)的非峰值期間觸發(fā)協(xié)調(diào)工作的條件可以是不嚴格的。例如,可以想象在一定時間周期內(nèi)可以把節(jié)點實際上和一條閑空的有線網(wǎng)絡(luò)連接起來,從而持久地進行協(xié)調(diào)。這樣,本框架實際上象一個常規(guī)的“網(wǎng)絡(luò)文件系統(tǒng)”那樣運行。任何改變立即向所有的拷貝傳播并且因此不太會出現(xiàn)沖突。在另一種極端情況下,如果檢測出移動式數(shù)據(jù)通道處于低劣狀態(tài),造成高出錯率和多次重新傳播并產(chǎn)生高傳輸成本,則可以推遲協(xié)調(diào)步驟。根據(jù)請求更新。一些關(guān)鍵性的應(yīng)用程序需要最新的數(shù)據(jù)。從而可由應(yīng)用程序請求協(xié)調(diào)并且由該框架立即進行服務(wù)。很明顯,這些應(yīng)用程序必須寫成為框架明白應(yīng)用程序。
可以設(shè)想用戶可以制訂該框架用于協(xié)調(diào)處理的一定的財務(wù)預(yù)算。通過監(jiān)視典型的修改方式以及相應(yīng)地改變再連接這是有可能的。
上述說明描述本最佳實施方式的移動式應(yīng)用程序框架,它是一種允許標準應(yīng)用程序在可預(yù)算的和可控制的方式下使用移動式數(shù)據(jù)鏈路的通用系統(tǒng)。它是通過在文件系統(tǒng)層上增加斷開操作支持能力實現(xiàn)的。通過采用為每個拷貝文件建立詳細修改歷史的記錄器并且允許自動地解決沖突,由于長時間運行于斷開操作下而由不受限制的訪問而造成的文件偏差問題得到解決。盡管一種通用的算法從來都不可期望在所有的情況下產(chǎn)生最佳結(jié)果,但其產(chǎn)生的文件總是可工作的并且如果需要可由人工清理。
在幾個用戶之間出現(xiàn)共享同一文件的頻率很可能遠小于在不同的計算機上出現(xiàn)同一用戶的多個復(fù)制文件的頻率。例如,可能經(jīng)過本框架把大的固定臺式計算機的文件空間鏡象到小的移動式筆記本計算機上。在這些情況下,用戶不僅要在兩種計算機上面對相同的工作環(huán)境,而且還要面對相同的應(yīng)用程序。因此,本質(zhì)上本框架是易于使用的。借助本框架即使使用慢的移動式數(shù)據(jù)連接對用戶也可以做成是透明的。
把該框架定位在文件系統(tǒng)層上允許通信子系統(tǒng)利用類型信息,在傳輸之前通過對文件應(yīng)用特定的壓縮方法和簡化方法可以容易地導出類型信息。
此外,通過把所有的通信方面包含在一個模塊里并且由單個組成部件控制,可以容易地監(jiān)視傳輸;并且由于斷開運行的好處可以很大地改變傳輸頻率以使傳輸成本可得到預(yù)算控制。
權(quán)利要求
1.一種對保持在可經(jīng)移動式通信網(wǎng)絡(luò)(460)連接的多個計算機系統(tǒng)上的共享數(shù)據(jù)文件的拷貝進行管理的方法,該方法包括a)為該共享數(shù)據(jù)文件的各份拷貝(205,420)保存該拷貝的修改記錄(540);b)通過連接移動式通信網(wǎng)絡(luò)(460),檢索為該共享數(shù)據(jù)文件的各份其它拷貝保存的記錄(550);c)合并(560)所檢索的記錄以產(chǎn)生修改序列;d)對修改序列應(yīng)用預(yù)定的規(guī)則(580)以解決修改序列中的沖突;以及e)根據(jù)解決沖突后的修改序列修正該共享文件的各份拷貝(205,420)。
2.權(quán)利要求1所述的方法,其特征在于在該多個計算機系統(tǒng)的各個計算機上執(zhí)行所述步驟(a),并且在步驟(a)期間該多個計算機系統(tǒng)和該移動式通信網(wǎng)絡(luò)斷開。
3.如權(quán)利要求1或2所述的方法,其特征在于該多個計算機系統(tǒng)僅在所述檢索步驟(b)期間和該移動式通信網(wǎng)絡(luò)連接。
4.如上述任一權(quán)利要求所述的方法,其特征在于在所述多個計算機系統(tǒng)的一些系統(tǒng)上執(zhí)行各所述步驟(a)至(d);所述步驟(b)包括經(jīng)過和移動式通信網(wǎng)絡(luò)(460)的連接交換由所述一些計算機系統(tǒng)保存的記錄(550);以及所述步驟(e)包括修正共享文件的本地拷貝(420)。
5.如上述任一權(quán)利要求中所述的方法,其特征在于在所述步驟(a)期間在記錄各次修改時存儲優(yōu)先級信息,并且在所述步驟(c)利用優(yōu)先級信息對任何有沖突的修改分配相對優(yōu)先級以供后面所述步驟(d)解決沖突使用。
6.如權(quán)利要求5所述的方法,其特征在于在所述步驟(a)存儲的優(yōu)先級信息包括進行修改的用戶的身份。
7.如權(quán)利要求5或6所述的方法,其特征在于在所述步驟(a)存儲的優(yōu)先級信息包括時間信息,并使較早的修改具有比較遲的修改更高的優(yōu)先級。
8.如權(quán)利要求5至7中任一權(quán)利要求所述的方法,其特征在于在所述步驟(d)期間優(yōu)先級較低的相沖突的修改完全無效。
9.如權(quán)利要求5至7中任一權(quán)利要求所述的方法,其特征在于在所述步驟(d)期間,僅使優(yōu)先級較低的修改中的相沖突部分失效。
10.如上述任一權(quán)利要求中所述的方法,其特征在于在所述步驟(b)期間在沿該移動式通信網(wǎng)絡(luò)(460)發(fā)送之前壓縮記錄。
11.一種用于保持共享數(shù)據(jù)文件的一份拷貝(420)的計算機系統(tǒng),該共享數(shù)據(jù)文件的拷貝還保持在可經(jīng)移動式通信網(wǎng)絡(luò)(460)與該計算機系統(tǒng)連接的多個其它計算機系統(tǒng)上,每個計算機系統(tǒng)布置成當不和移動式通信網(wǎng)絡(luò)(460)連接時保持一個對其共享文件的拷貝進行修改的記錄(540,550),該系統(tǒng)包括檢索裝置(440,450),用于把該計算機系統(tǒng)和該移動式通信網(wǎng)絡(luò)(460)連接起來以便檢索為保存在多個其它計算機系統(tǒng)上的該共享數(shù)據(jù)文件的各份拷貝保持的記錄(550);合并裝置(560),用于把所檢索到的記錄(550)和為共享數(shù)據(jù)文件的本地拷貝(420)所保持的記錄(540)合并起來以產(chǎn)生修改序列;沖突解決裝置(590),用于向修改序列施加預(yù)定的規(guī)則(580)以便解決該修改序列中的沖突;以及用于根據(jù)解決沖突后的修改序列修正該共享文件的本地拷貝(420)的裝置(590)。
12.一種對保持在可經(jīng)移動式通信網(wǎng)絡(luò)(460)連接的多個計算機系統(tǒng)上的共享數(shù)據(jù)文件的拷貝進行管理的數(shù)據(jù)管理系統(tǒng),該系統(tǒng)包括記錄裝置(410),其和共享數(shù)據(jù)文件的每份拷貝(420)相關(guān),用于保持一個對該拷貝進行的修改記錄(540,550),檢索裝置(440,450),用于經(jīng)過和移動式通信網(wǎng)絡(luò)(460)的連接檢索為該共享數(shù)據(jù)文件的其它拷貝(420)保持的記錄;合并裝置(560),用于合并所檢索的記錄以生成修改序列;沖突解決裝置(590),用于向修改序列施加預(yù)定的規(guī)則(580)以解決該修改序列中的沖突;以及用于根據(jù)解決沖突后的修改序列修正該共享文件的各拷貝(420)的裝置(590)。
13.如權(quán)利要求11或權(quán)利要求12所述的系統(tǒng),其特征在于這些多個計算機系統(tǒng)僅在檢索裝置(440,450)檢索修改記錄時和該移動式通信網(wǎng)絡(luò)連接。
14.如權(quán)利要求11至13中的任一要求所述的系統(tǒng),其特征在于在記錄每次修改時存儲優(yōu)先級信息,并且合并裝置(560)布置成在合并處理期間利用該優(yōu)先級信息向任何有沖突的修改分配相對優(yōu)先級以供沖突解決裝置(590)相繼地解決沖突。
15.權(quán)利要求14中所述的系統(tǒng),其特征在于和修改一起存儲的優(yōu)先級信息包括進行該修改的用戶的身份。
16.權(quán)利要求14或權(quán)利要求15中所述的系統(tǒng),其特征在于和修改一起存儲的優(yōu)先級信息包括時間信息,從而較早的修改具有比較遲的修改更高的優(yōu)先級。
17.權(quán)利要求14至16中任一權(quán)利要求所述的系統(tǒng),其特征在于沖突解決裝置(590)布置成完全使較低優(yōu)先級的相沖突的修改無效。
18.權(quán)利要求14至16中任一權(quán)利要求所述的系統(tǒng),其特征在于沖突解決裝置(590)布置成僅使較低優(yōu)先級修改中的有沖突部分失效。
19.權(quán)利要求11至18中任一權(quán)利要求所述的系統(tǒng),其特征在于在沿移動式通信網(wǎng)絡(luò)(460)向檢索裝置(440,450)發(fā)送之前對記錄進行壓縮。
全文摘要
對保持在可經(jīng)移動式通信網(wǎng)絡(luò)連接的多個計算機系統(tǒng)上的共享數(shù)據(jù)文件的拷貝進行管理的數(shù)據(jù)管理系統(tǒng)和方法。該系統(tǒng)包括:和共享數(shù)據(jù)文件的各份拷貝420相關(guān)的記錄裝置410;檢索裝置,用于經(jīng)過連接移動式通信網(wǎng)絡(luò)460檢索共享數(shù)據(jù)文件的其它拷貝420所保持的記錄550;合并裝置560,用于合并所檢索的記錄以生成修改序列;沖突解決裝置590;以及用于根據(jù)解決沖突后的修改序列修正共享數(shù)據(jù)文件的拷貝420的裝置590。
文檔編號G06F12/00GK1169628SQ97102490
公開日1998年1月7日 申請日期1997年2月20日 優(yōu)先權(quán)日1996年3月8日
發(fā)明者斯蒂芬·G·希爾德 申請人:國際商業(yè)機器公司