專利名稱:數(shù)據(jù)存儲器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)存儲器,尤其涉及可在一個(gè)以上的位置被更新的數(shù)據(jù)文件的存儲器。
在位于不同位置都具有數(shù)據(jù)處理能力的任何結(jié)構(gòu)中,如果公用數(shù)據(jù)在一個(gè)位置進(jìn)行了與另一位置相比不同的修改,就會產(chǎn)生沖突。
位置“A”的數(shù)據(jù)文件可被傳送至位置“B”,隨后在每一位置的修改產(chǎn)生了兩個(gè)完全不同的結(jié)束文件。這就可能導(dǎo)致在這兩處根據(jù)所相信的是同一數(shù)據(jù)卻作出不同的決定。
避免這種沖突的一個(gè)方法是讓一個(gè)位置、比如說處于數(shù)據(jù)文件的絕對控制之下的位置A對該文件的所有修改和輸入給該文件的數(shù)據(jù)負(fù)責(zé)。這樣做使過程復(fù)雜化。例如,如果位置“B”要增加新數(shù)據(jù),則該數(shù)據(jù)在進(jìn)行進(jìn)一步的處理之前必須首先在位置“B”被鍵入、傳送至位置“A”并在“A”處被檢驗(yàn)和輸入。
要不然,位置“B”對于位置“A”的數(shù)據(jù)存儲器具有直接輸入能力,但這會使這兩處的用戶在同一時(shí)刻對數(shù)據(jù)文件進(jìn)行更新,而產(chǎn)生對于任何一方都是不可識別的文件輸出。此外,這種做法需要使用廣域網(wǎng)技術(shù)和高速數(shù)據(jù)鏈路,這會造成成本顯著增加。這兩處的處理系統(tǒng)的不兼容性也會是問題。
在“運(yùn)行時(shí)間”從主文件庫拷貝數(shù)據(jù)文件是保證可得到最新可用數(shù)據(jù)文件的一種方法。但是,如果一個(gè)以上的復(fù)制件在使用中、被更新并且可能返回給了該主文件庫,則僅可記錄在一處所作的修改。
這種沖突可以對多地點(diǎn)業(yè)務(wù)有嚴(yán)重影響,尤其是如果一處的數(shù)據(jù)輸入(可能是銷售輸入)引起另一處的活動(例如購買或調(diào)度)。
根據(jù)本發(fā)明,提供了一種具有多個(gè)節(jié)點(diǎn)的計(jì)算機(jī)系統(tǒng),每個(gè)節(jié)點(diǎn)包括一個(gè)或多個(gè)處理器單元和各自相聯(lián)的數(shù)據(jù)存儲器,至少有兩個(gè)節(jié)點(diǎn)存儲數(shù)據(jù),該數(shù)據(jù)為至少一個(gè)其它節(jié)點(diǎn)所公用,每個(gè)能被一個(gè)以上節(jié)點(diǎn)處的用戶更新的公用數(shù)據(jù)文件將一個(gè)節(jié)點(diǎn)處的數(shù)據(jù)存儲器指定作為主文件庫,該主文件庫包括多個(gè)節(jié)點(diǎn)中的允許用戶對文件進(jìn)行更新的那些節(jié)點(diǎn)(如果有的話)的記錄,該系統(tǒng)的特征在于為可被一個(gè)以上節(jié)點(diǎn)進(jìn)行更新訪問的每一數(shù)據(jù)文件分配一個(gè)單數(shù)據(jù)令牌,它與被存儲在當(dāng)前具有更新權(quán)的處理單元的相應(yīng)數(shù)據(jù)存儲器中的數(shù)據(jù)文件相關(guān),并且只有處理單元持有各自相關(guān)令牌才允許對任何數(shù)據(jù)文件進(jìn)行寫訪問。
最好是數(shù)據(jù)令牌在系統(tǒng)的節(jié)點(diǎn)之間的傳送,每次在一節(jié)點(diǎn)傳送令牌時(shí)均將令牌傳送通知給主文件庫節(jié)點(diǎn),并將數(shù)據(jù)文件的最新版本存儲在主文件庫中。
主文件庫可設(shè)計(jì)用來將數(shù)據(jù)文件的最新版本傳送給在接收到主文件庫節(jié)點(diǎn)的令牌時(shí)要求訪問該文件的所有其它節(jié)點(diǎn)。
現(xiàn)在參看下列附圖僅通過實(shí)例來描述按照本發(fā)明的計(jì)算機(jī)系統(tǒng)
圖1表示典型的單節(jié)點(diǎn)結(jié)構(gòu)的一個(gè)實(shí)施例的示意圖;圖2簡要地表示在圖1中的數(shù)據(jù)存儲器中的文件結(jié)構(gòu);圖3A表示按照本發(fā)明的一個(gè)實(shí)施例的分布式計(jì)算機(jī)系統(tǒng);圖3B至3D表示在圖3A的分布式數(shù)據(jù)網(wǎng)絡(luò)中發(fā)生的數(shù)據(jù)傳送。
首先參看圖1,所表示的是一個(gè)節(jié)點(diǎn)的計(jì)算機(jī)系統(tǒng),它包括為若干用戶11至1n服務(wù)的處理單元1。各個(gè)用戶11至1n將例如以已知的方式利用個(gè)人計(jì)算機(jī)訪問處理單元1。
處理單元1將以已知的方式用作一文件服務(wù)器,來根據(jù)已授與特定用戶的訪問權(quán)把數(shù)據(jù)文件從中央數(shù)據(jù)存儲器已傳送至請求用戶11至1n。
由于這是一個(gè)節(jié)點(diǎn)的計(jì)算機(jī)系統(tǒng),所以利用適當(dāng)?shù)谋Wo(hù)的數(shù)據(jù)傳送方法通過直接調(diào)制解調(diào)器鍵路或撥號鏈路把網(wǎng)絡(luò)連接線31至3m提供給系統(tǒng)的其它節(jié)點(diǎn)。因此,盡管可以施加訪問限制,但系統(tǒng)中的每一節(jié)點(diǎn)能夠訪問存儲在系統(tǒng)中的所有其它節(jié)點(diǎn)處的數(shù)據(jù)存儲器2中的所有數(shù)據(jù)。
現(xiàn)在參看圖3A,所表示的是有7個(gè)節(jié)點(diǎn)A至G的網(wǎng)絡(luò)。如果需要的話,這些節(jié)點(diǎn)在地理上可以與在不同大陸上的節(jié)點(diǎn)相分離。系統(tǒng)中的每一節(jié)點(diǎn)將都有為所有節(jié)點(diǎn)公用的一些程序,特別是將有合適的電子郵件或類似的通信程序,以使信息能傳送至其它節(jié)點(diǎn)并由此得以接收。
再參看圖1和3,考慮節(jié)點(diǎn)D處的用戶11正生成一數(shù)據(jù)文件,該用戶進(jìn)行比如說帶有客戶當(dāng)前業(yè)務(wù)和設(shè)備等級細(xì)目的客戶表的數(shù)據(jù)輸入。這將產(chǎn)生將存儲于節(jié)點(diǎn)D處的數(shù)據(jù)存儲器正中的可識別文件。按照已知的方式由姓名來標(biāo)識該文件,于是產(chǎn)生文件頭,為說明起見,該文件在此被稱為文件“A”。
再參看圖2,文件頭除了標(biāo)識文件A外還包括“主文件”和“令牌“指示符及訪問許可表。一旦產(chǎn)生一個(gè)以上節(jié)點(diǎn)可對其進(jìn)行寫訪問的文件(有時(shí)被稱為受控項(xiàng)目),主文件和令牌指示符就被設(shè)置為正的。自動指定最初產(chǎn)生一新的受控項(xiàng)目的生成節(jié)點(diǎn)為所生成項(xiàng)目的主文件庫。
已生成了該項(xiàng)目的用戶11可以將特定的訪問許可輸入給其它用戶。因此節(jié)點(diǎn)G處的一有名用戶可能有權(quán)對文件A進(jìn)行讀和寫訪問,而網(wǎng)絡(luò)中的所有其它用戶只能進(jìn)行一般的讀訪問。對新產(chǎn)生文件A標(biāo)以時(shí)間和日期記號,信息由節(jié)點(diǎn)B處的處理單元1產(chǎn)生并傳送給所有其它節(jié)點(diǎn)。在節(jié)點(diǎn)A、B、C、E和F上,該信息是文件A的復(fù)制件,其文件頭中有只讀訪問許可。在節(jié)點(diǎn)G上,該信息是文件A的復(fù)制件,其文件頭載明所指定的用戶進(jìn)行寫訪問而所有其它用戶進(jìn)行只讀訪問。這一信息傳送在圖3B中被示意性地表示。
雖然對于較小的系統(tǒng),發(fā)送包括所生成文件的郵件信息是可能的,而較大系統(tǒng)正是這樣做的,但為了節(jié)省通信時(shí)間,所生成的文件可能被省略。因此,在一種工作方法中,在節(jié)點(diǎn)D生成文件A之后,就將郵件信息發(fā)送給其它節(jié)點(diǎn),告知文件A已生成,可使用。實(shí)際文件只應(yīng)其它某個(gè)節(jié)點(diǎn)對該文件的請求或者如果節(jié)點(diǎn)D處的用戶(它是缺省令牌擁有者)指示將令牌傳送給另一已授權(quán)的用戶時(shí)才被傳送。
現(xiàn)在如果節(jié)點(diǎn)G處的經(jīng)授權(quán)用戶希望更新文件A,節(jié)點(diǎn)G處的處理單元1就檢查存儲在其數(shù)據(jù)存儲器中的文件A的復(fù)制件,以保證給予了合適的訪問許可。如果確實(shí)如此,下一步就是讀出相關(guān)的令牌。如果就特定用戶而言該令牌不是正的,就將郵件信息發(fā)送給是文件A的主文件庫的節(jié)點(diǎn)(節(jié)點(diǎn)D)。這一信息要求為該特定用戶更新令牌。
假定文件A在節(jié)點(diǎn)D處不使用并且在節(jié)點(diǎn)D的數(shù)據(jù)存儲器2中的令牌是正的,如果當(dāng)前令牌擁有者(用戶)給予節(jié)點(diǎn)D許可的話,處理單元1就將其相關(guān)令牌設(shè)置為負(fù)的,注明令牌的目的地并向節(jié)點(diǎn)G發(fā)送郵件信息。這一郵件信息包括該文件的最新版本及其數(shù)據(jù)令牌。節(jié)點(diǎn)G將合適的令牌設(shè)置為正的,經(jīng)授權(quán)的用戶現(xiàn)在可以按照已知的方式更新文件A。這一傳送在圖3C中被示意性地表示。節(jié)點(diǎn)D可以向每個(gè)其它節(jié)點(diǎn)A、B、C、E和F發(fā)送郵件信息,提醒目前存儲在它們各自數(shù)據(jù)存儲器2中的文件A的任何復(fù)制件可能不是最新的版本。這一信息還可以標(biāo)明當(dāng)前令牌擁有者。
現(xiàn)在考慮在節(jié)點(diǎn)A生成一新文件(文件B),節(jié)點(diǎn)C、D、F和G處的用戶可以對其進(jìn)行更新訪問。節(jié)點(diǎn)A是主文件庫,節(jié)點(diǎn)A處的生成用戶是缺省令牌擁有者。按照以上對于文件A所描述的方式或者應(yīng)系統(tǒng)管理者對其它節(jié)點(diǎn)的請求進(jìn)行初始文件傳送。
假定文件B的更新需要幾個(gè)用戶參與,則可發(fā)生下列信息交換。參看圖3D,節(jié)點(diǎn)D向節(jié)點(diǎn)A發(fā)送令牌請求(TR1)。這一請求帶來了文件B,其令牌按照與以上所述相同的方式被傳送至節(jié)點(diǎn)D(TV1)?,F(xiàn)在,如果節(jié)點(diǎn)C要求訪問,則向節(jié)點(diǎn)D發(fā)送請求(TR2)。節(jié)點(diǎn)D將令牌和文件B的最新版本作為郵件信息(TV2)傳送給節(jié)點(diǎn)C。與此同時(shí),將帶有文件B的最新版本但沒有附上令牌的郵件信息(CC2)傳送給節(jié)點(diǎn)A。
節(jié)點(diǎn)C可按照相同的方式將令牌傳遞給節(jié)點(diǎn)G(TR3,TV3),同時(shí)再次將郵件信息(CC3)傳送給節(jié)點(diǎn)A。因此,文件B的主文件庫總是有該文件的最新版本,但節(jié)點(diǎn)A處的用戶沒有權(quán)利對其進(jìn)行更新。還應(yīng)當(dāng)指出原件庫是知道當(dāng)前令牌擁有者的。
雖然文件B在任何節(jié)點(diǎn)都可進(jìn)行只讀訪問,但只有節(jié)點(diǎn)A和當(dāng)前令牌擁有節(jié)點(diǎn)即節(jié)點(diǎn)G才有最新的版本。
一旦節(jié)點(diǎn)G處的活動結(jié)束,節(jié)點(diǎn)G處的用戶就可以決定將該令牌返回給節(jié)點(diǎn)A處的缺省令牌擁有者。這需要由更新后文件B(帶有其時(shí)間和日期記號)和令牌組成的郵件信息(TV4)。
當(dāng)用作某一特定文件的主文件庫的節(jié)點(diǎn)接收到包括令牌的信息時(shí),它就進(jìn)行比較由系統(tǒng)中的每個(gè)其它節(jié)點(diǎn)持有的版本(時(shí)間和日期記號)的記錄。如果任何節(jié)點(diǎn)(即使那些進(jìn)行識讀訪問的節(jié)點(diǎn))具有過時(shí)的版本,則主文件庫節(jié)點(diǎn)就將信息傳送至該節(jié)點(diǎn),附上最新文件的復(fù)制件或者說明可以得到文件的新近版本。在后一種情況下,只有在從合適的節(jié)點(diǎn)接收到請求或再次從節(jié)點(diǎn)A傳送令牌時(shí)才進(jìn)行文件傳送。
因此,對于文件B,由于最新的版本已經(jīng)在節(jié)點(diǎn)G和A處,所以信息被傳送至節(jié)點(diǎn)C、D和F。節(jié)點(diǎn)B和E被認(rèn)為沒有文件B的用戶,因此不接收更新文件。
應(yīng)當(dāng)指出,如果節(jié)點(diǎn)A處的用戶在令牌被另一用戶擁有時(shí)出于更新的目的需要訪問文件B,就將按照與上述相同的方式對合適的節(jié)點(diǎn)、比如說節(jié)點(diǎn)G進(jìn)行令牌請求,并且在當(dāng)前用戶(令牌擁有者)準(zhǔn)許進(jìn)行文件傳送之后令牌和最新的版本從節(jié)點(diǎn)G返回給節(jié)點(diǎn)A。盡管因?yàn)楣?jié)點(diǎn)A已接收到最新版本以及從另一節(jié)點(diǎn)傳送給它的令牌而似乎立即要對文件B進(jìn)行更新,但以上簡述的更新系統(tǒng)中的其它節(jié)點(diǎn)的過程仍將隨即進(jìn)行。
當(dāng)在同一節(jié)點(diǎn)有一個(gè)以上的已授權(quán)用戶時(shí),則在該同一節(jié)點(diǎn)處的用戶之間發(fā)生的令牌傳送不會造成向主文件庫傳送信息。只有在節(jié)點(diǎn)之間進(jìn)行令牌的傳送時(shí)才向主文件庫傳送信息,這會導(dǎo)致向主文件庫傳送更新信息。
應(yīng)當(dāng)指出,每當(dāng)進(jìn)行文件更新時(shí),由于只存在一個(gè)更新復(fù)制件,所以它處于該文件的最新版本中。每當(dāng)令牌在節(jié)點(diǎn)之間傳送時(shí),文件的復(fù)制件將伴隨該令牌。當(dāng)然,每當(dāng)令牌在一節(jié)點(diǎn)內(nèi)傳送時(shí),文件的最新版本就已經(jīng)存儲在相應(yīng)的數(shù)據(jù)存儲器中。
權(quán)利要求
1.一種具有處于不同位置的多個(gè)節(jié)點(diǎn)的計(jì)算機(jī)系統(tǒng),每個(gè)節(jié)點(diǎn)包括一個(gè)或多個(gè)處理器單元和數(shù)據(jù)存儲器,其中至少一些處于不同位置的數(shù)據(jù)存儲器含有處于不同位置的用戶可對其進(jìn)行更新訪問的公用數(shù)據(jù)文件,每一公用數(shù)據(jù)文件使一個(gè)數(shù)據(jù)存儲器指定為主文件庫,其特征在于為處于一個(gè)以上位置的用戶進(jìn)行更新訪問的每一公用數(shù)據(jù)文件分配一個(gè)單數(shù)據(jù)令牌,對任何數(shù)據(jù)文件的更新訪問只允許在當(dāng)前持有各自相關(guān)令牌的節(jié)點(diǎn)處進(jìn)行。
2.如權(quán)利要求1所述的計(jì)算機(jī)系統(tǒng),其特征還在于對于數(shù)據(jù)令牌在用戶之間的每次傳送都傳送與相應(yīng)數(shù)據(jù)令牌相關(guān)的文件的最新版本。
3.如權(quán)利要求2所述的計(jì)算機(jī)系統(tǒng),其特征還在于在令牌在不包括相應(yīng)令牌的主文件庫節(jié)點(diǎn)的一些節(jié)點(diǎn)之間傳送時(shí),也向包括該主文件庫的節(jié)點(diǎn)傳送相關(guān)文件的最新版本。
4.如任一前述權(quán)利要求所述的計(jì)算機(jī)系統(tǒng),其特征還在于每次一節(jié)點(diǎn)從另一節(jié)點(diǎn)接收到關(guān)于一個(gè)文件的令牌,其接收節(jié)點(diǎn)包括該文件的主文件庫,處理器單元就向持有所接收文件的過時(shí)版本的所有其它節(jié)點(diǎn)發(fā)送更新指示。
5.如任一前述權(quán)利要求所述的計(jì)算機(jī)系統(tǒng),其特征還在于每當(dāng)令牌在位于不同節(jié)點(diǎn)的用戶之間傳送時(shí),包括有與所傳送令牌相關(guān)的相應(yīng)文件的主文件庫的節(jié)點(diǎn)就向持有該文件的復(fù)制件的所有其它節(jié)點(diǎn)發(fā)出傳送指示。
6.如任一前述權(quán)利要求所述的計(jì)算機(jī)系統(tǒng),其特征還在于系統(tǒng)中的每一文件都有所指定的主文件庫和相關(guān)的更新令牌,并且只有當(dāng)前令牌擁有者才能夠授權(quán)向任何其它用戶傳送令牌。
全文摘要
計(jì)算機(jī)系統(tǒng)中的每一文件都使一令牌與其相關(guān)。不允許任何用戶更新任何文件,除非該用戶是當(dāng)前令牌擁有者。因此,在標(biāo)稱相同的文件被存儲在幾個(gè)數(shù)據(jù)存儲器中的多地點(diǎn)計(jì)算機(jī)安裝中,在任何一次都只更新文件的一個(gè)復(fù)制件。只有在當(dāng)前令牌擁有者的許可下,才能夠?qū)⒘钆茝囊粋€(gè)用戶傳遞到另一個(gè)用戶,并且在傳遞令牌時(shí),文件的最新版本跟隨該令牌。計(jì)算機(jī)系統(tǒng)的某些節(jié)點(diǎn)可以對文件的過時(shí)版本進(jìn)行讀訪問,但向持有過時(shí)文件的每一節(jié)點(diǎn)都告知可用的當(dāng)前文件版本。
文檔編號G06F13/00GK1146816SQ9519269
公開日1997年4月2日 申請日期1995年4月12日 優(yōu)先權(quán)日1994年4月21日
發(fā)明者約翰·霍華德·富斯通 申請人:英國電訊有限公司