專(zhuān)利名稱(chēng):分布式并行版本管理系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種文件管理系統(tǒng)及方法,且特別涉及一種在分布式架構(gòu)下,可以維持不同伺服端上相同文件復(fù)本的一致性,進(jìn)而減少針對(duì)單一伺服端進(jìn)行存取時(shí)的聯(lián)機(jī)成本的分布式并行版本管理系統(tǒng)及方法。
背景技術(shù):
在已知文件管理系統(tǒng)或并行版本系統(tǒng)(Concurrent Versions System),如源碼(Source Code)管理系統(tǒng)中,通常是將所有的源碼儲(chǔ)存在統(tǒng)一管理的伺服端上。當(dāng)使用者希望進(jìn)行源碼修改或更新時(shí),則可以通過(guò)使用者的客戶(hù)端聯(lián)機(jī)至伺服端來(lái)進(jìn)行存取。伺服端藉由適當(dāng)文件的存取權(quán)管理,可以維持源碼的正確性。
圖1示出了已知文件管理系統(tǒng)的示意圖。如圖所示,所有的文件數(shù)據(jù)儲(chǔ)存在伺服端100的數(shù)據(jù)庫(kù)101上。當(dāng)使用者希望存取文件時(shí),則可以通過(guò)客戶(hù)端110(120)聯(lián)機(jī)至伺服端100由數(shù)據(jù)庫(kù)101存取文件數(shù)據(jù)。其中,伺服端100的數(shù)據(jù)庫(kù)101與客戶(hù)端110(120)可以利用一共同版本管理系統(tǒng),如“視覺(jué)源安全(Visual Source Safe)”,來(lái)建置為主從(Client-Server)架構(gòu),從而數(shù)據(jù)庫(kù)101具有適當(dāng)?shù)拇嫒?quán)管理。
由于在已知架構(gòu)下所有的客戶(hù)端均須聯(lián)機(jī)至同一個(gè)伺服端來(lái)存取文件數(shù)據(jù),因此,當(dāng)大量使用者同時(shí)進(jìn)行存取的話,容易加重伺服端的系統(tǒng)負(fù)擔(dān)。此外,對(duì)于在不同國(guó)家擁有分公司的企業(yè)而言,建置專(zhuān)線或者網(wǎng)絡(luò)的聯(lián)機(jī)成本也造成極大的負(fù)擔(dān)。
發(fā)明內(nèi)容
因此,本發(fā)明的主要目的是提供一種可以在分布式架構(gòu)下,維持不同伺服端上相同文件復(fù)本的一致性,進(jìn)而減少針對(duì)單一伺服端進(jìn)行存取時(shí)的聯(lián)機(jī)成本的分布式并行版本管理系統(tǒng)及方法。
為了實(shí)現(xiàn)本發(fā)明的上述目的,可藉由本發(fā)明所提供的分布式并行版本管理系統(tǒng)及方法來(lái)達(dá)到。
依據(jù)本發(fā)明實(shí)施例的分布式并行版本管理系統(tǒng)包括一第一伺服端、一第二伺服端與一B客戶(hù)端(第一客戶(hù)端)。
第一伺服端至少具有包括一文件的第一數(shù)據(jù)庫(kù)。第二伺服端具有包括相應(yīng)第一數(shù)據(jù)庫(kù)上文件的文件復(fù)本的第二數(shù)據(jù)庫(kù)、一數(shù)據(jù)復(fù)制模塊與一聯(lián)機(jī)檢測(cè)模塊。聯(lián)機(jī)檢測(cè)模塊用以檢測(cè)第一伺服端與第二伺服端之間的聯(lián)機(jī)狀態(tài)。當(dāng)B客戶(hù)端欲將一更新文件取代第二伺服端上的文件復(fù)本且聯(lián)機(jī)狀態(tài)為聯(lián)機(jī)成功時(shí),則將更新文件取代文件復(fù)本,且第二伺服端通過(guò)數(shù)據(jù)復(fù)制模塊將更新文件取代第一伺服端上的文件。
此外,當(dāng)B客戶(hù)端欲將更新文件取代第二伺服端上的文件復(fù)本且聯(lián)機(jī)狀態(tài)為聯(lián)機(jī)成功時(shí),則第二伺服端與B客戶(hù)端進(jìn)行時(shí)間校正。且B客戶(hù)端將更新文件取代文件復(fù)本時(shí),還依據(jù)時(shí)間校正后的系統(tǒng)時(shí)間紀(jì)錄相應(yīng)的時(shí)間戳記。
而當(dāng)?shù)诙欧擞ㄟ^(guò)數(shù)據(jù)復(fù)制模塊將更新文件取代第一伺服端上的文件時(shí),還判斷相應(yīng)此更新文件的時(shí)間戳記是否晚于相應(yīng)此文件的新時(shí)間戳記,若時(shí)間戳記晚于相應(yīng)此文件的新時(shí)間戳記,則將更新文件取代此文件;反之則不進(jìn)行取代。
另外,當(dāng)B客戶(hù)端更新第二伺服端的文件復(fù)本時(shí),則一A客戶(hù)端(第二客戶(hù)端)無(wú)法針對(duì)第一伺服端上的文件進(jìn)行更新。且當(dāng)聯(lián)機(jī)檢測(cè)模塊檢測(cè)的聯(lián)機(jī)狀態(tài)為聯(lián)機(jī)失敗時(shí),則B客戶(hù)端可針對(duì)第二伺服端上的文件復(fù)本進(jìn)行更新,而A客戶(hù)端無(wú)法針對(duì)第一伺服端上的文件進(jìn)行更新。
依據(jù)本發(fā)明實(shí)施例的分布式并行版本管理方法,適用于具有包括一文件的第一伺服端、包括相應(yīng)文件的文件復(fù)本的第二伺服端與B客戶(hù)端的系統(tǒng)。首先,檢測(cè)第一伺服端與第二伺服端間的聯(lián)機(jī)狀態(tài)。之后,當(dāng)B客戶(hù)端欲將一更新文件取代第二伺服端上的文件復(fù)本且聯(lián)機(jī)狀態(tài)為聯(lián)機(jī)成功時(shí),則B客戶(hù)端將更新文件取代文件復(fù)本。接著,第二伺服端將更新文件取代第一伺服端上的文件。
此外,當(dāng)B客戶(hù)端欲將更新文件取代第二伺服端上的文件復(fù)本且聯(lián)機(jī)狀態(tài)為聯(lián)機(jī)成功時(shí),則第二伺服端與B客戶(hù)端進(jìn)行時(shí)間校正。且B客戶(hù)端將更新文件取代文件復(fù)本時(shí),還依據(jù)時(shí)間校正后的系統(tǒng)時(shí)間紀(jì)錄相應(yīng)的時(shí)間戳記。
而當(dāng)?shù)诙欧擞ㄟ^(guò)數(shù)據(jù)復(fù)制模塊將更新文件取代第一伺服端上的文件時(shí),還判斷相應(yīng)此更新文件的時(shí)間戳記是否晚于相應(yīng)此文件的新時(shí)間戳記,若時(shí)間戳記晚于相應(yīng)此文件的新時(shí)間戳記,則將更新文件取代此文件;反之則不進(jìn)行取代。
相同地,當(dāng)B客戶(hù)端更新第二伺服端的文件復(fù)本時(shí),則一A客戶(hù)端無(wú)法針對(duì)第一伺服端上的文件進(jìn)行更新。且當(dāng)聯(lián)機(jī)檢測(cè)模塊檢測(cè)的聯(lián)機(jī)狀態(tài)為聯(lián)機(jī)失敗時(shí),則B客戶(hù)端可針對(duì)第二伺服端上的文件復(fù)本進(jìn)行更新,而A客戶(hù)端無(wú)法針對(duì)第一伺服端上的文件進(jìn)行更新。
為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能更明顯易懂,下面結(jié)合附圖示對(duì)圖1為已知文件管理系統(tǒng)的示意圖。
圖2為依據(jù)本發(fā)明實(shí)施例的分布式并行版本管理系統(tǒng)的系統(tǒng)架構(gòu)圖。
圖3為依據(jù)本發(fā)明實(shí)施例的分布式并行版本管理方法的操作流程圖。
具體實(shí)施例方式
圖2為依據(jù)本發(fā)明實(shí)施例的分布式并行版本管理系統(tǒng)的系統(tǒng)架構(gòu)圖。在本發(fā)明實(shí)施例中,多個(gè)伺服端可以提供到不同的客戶(hù)端進(jìn)行存取,且通過(guò)適當(dāng)?shù)耐綑C(jī)制,使得每一伺服端的數(shù)據(jù)都能維持一致。
如圖所示,依據(jù)本發(fā)明實(shí)施例的分布式并行版本管理系統(tǒng)包括第一伺服端200、A客戶(hù)端(第二客戶(hù)端)210、第二伺服端300與B客戶(hù)端(第一客戶(hù)端)310。
第一伺服端200與第二伺服端300具有相同的組成。第一伺服端200具有包括一文件(圖中未示出)的第一數(shù)據(jù)庫(kù)201、數(shù)據(jù)復(fù)制模塊202與聯(lián)機(jī)檢測(cè)模塊203。數(shù)據(jù)復(fù)制模塊202用以復(fù)制及監(jiān)控(Monitor)第一數(shù)據(jù)庫(kù)201內(nèi)數(shù)據(jù)的狀態(tài),當(dāng)?shù)谝粩?shù)據(jù)庫(kù)201內(nèi)的數(shù)據(jù)進(jìn)行更新時(shí),則數(shù)據(jù)復(fù)制模塊202便將更新的數(shù)據(jù)復(fù)制至另一伺服端上。聯(lián)機(jī)檢測(cè)模塊203用以檢測(cè)第一伺服端200與第二伺服端300之間的聯(lián)機(jī)狀態(tài)。
類(lèi)似地,第二伺服端300具有第二數(shù)據(jù)庫(kù)301、數(shù)據(jù)復(fù)制模塊302與聯(lián)機(jī)檢測(cè)模塊303。第二數(shù)據(jù)庫(kù)301包括相應(yīng)第一伺服端200上第一數(shù)據(jù)庫(kù)201中的文件的文件復(fù)本(圖中未示出),其中,第二伺服端300上的文件復(fù)本與第一伺服端200上的文件相同,且該文件與文件復(fù)本可以是源碼(SourceCode)。
數(shù)據(jù)復(fù)制模塊302用以復(fù)制及監(jiān)控第二數(shù)據(jù)庫(kù)301內(nèi)數(shù)據(jù)的狀態(tài),當(dāng)?shù)诙?shù)據(jù)庫(kù)301內(nèi)的數(shù)據(jù)進(jìn)行更新時(shí),數(shù)據(jù)復(fù)制模塊302便將更新的數(shù)據(jù)復(fù)制至另一伺服端上。聯(lián)機(jī)檢測(cè)模塊303用以檢測(cè)第二伺服端300與第一伺服端200的之間的聯(lián)機(jī)狀態(tài)。
A客戶(hù)端210用以向第一伺服端200前求存取文件服務(wù),B客戶(hù)端310用以向第二伺服端300請(qǐng)求存取文件服務(wù)。需注意的是,客戶(hù)端請(qǐng)求存取文件服務(wù)的伺服端對(duì)象可以依據(jù)其距離遠(yuǎn)近來(lái)決定。舉例來(lái)說(shuō),假設(shè)第一伺服端200與第二伺服端300分別位于美國(guó)與臺(tái)灣時(shí),則位于臺(tái)灣的B客戶(hù)端310便可向第二伺服端300請(qǐng)求服務(wù),而位于美國(guó)的A客戶(hù)端210便可向第一伺服端200請(qǐng)求服務(wù)。
當(dāng)B客戶(hù)端310欲將一更新文件(圖中未示出)取代第二伺服端300上第二數(shù)據(jù)庫(kù)301中的文件復(fù)本且聯(lián)機(jī)檢測(cè)模塊303檢測(cè)的聯(lián)機(jī)狀態(tài)為聯(lián)機(jī)成功時(shí),則第二伺服端300與B客戶(hù)端310進(jìn)行時(shí)間校正。其中,時(shí)間校正是將B客戶(hù)端310上的時(shí)間設(shè)為第二伺服端300上的系統(tǒng)時(shí)間。
之后,B客戶(hù)端310將此更新文件取代第二數(shù)據(jù)庫(kù)301中的文件復(fù)本,并依據(jù)時(shí)間校正后的系統(tǒng)時(shí)間紀(jì)錄相應(yīng)此更新文件的時(shí)間戳記。而當(dāng)數(shù)據(jù)復(fù)制模塊302監(jiān)控到第二數(shù)據(jù)庫(kù)301中發(fā)生數(shù)據(jù)更新時(shí),則第二伺服端300便通過(guò)數(shù)據(jù)復(fù)制模塊302先判斷相應(yīng)此更新文件的時(shí)間戳記是否晚于第一伺服端200上第一數(shù)據(jù)庫(kù)201中相應(yīng)該文件的時(shí)間戳記(新時(shí)間戳記),若時(shí)間戳記晚于相應(yīng)此文件的時(shí)間戳記,則將更新文件取代第一伺服端200上第一數(shù)據(jù)庫(kù)201中的文件。反之,若時(shí)間戳記早于相應(yīng)該文件的時(shí)間戳記,則不將更新文件取代第一伺服端200上第一數(shù)據(jù)庫(kù)201中的文件。
需注意的是,第二伺服端300與B客戶(hù)端310進(jìn)行時(shí)間校正的目的主要是為了有效管理且統(tǒng)一不同客戶(hù)端更新文件的時(shí)間。此外,復(fù)制文件至另一伺服端時(shí)先進(jìn)行時(shí)間戳記的判斷的目的是為了維護(hù)不同伺服端對(duì)于相同文件進(jìn)行更新時(shí)版本的先后順序。
由于第一伺服端200與第二伺服端300具有相同的組成,且A客戶(hù)端210與第一伺服端200的關(guān)系亦和B客戶(hù)端310與第二伺服端300間的關(guān)系類(lèi)同,故于聯(lián)機(jī)檢測(cè)模塊203檢測(cè)的聯(lián)機(jī)狀態(tài)為聯(lián)機(jī)成功時(shí),前述第一伺服端200側(cè)與第二伺服端300側(cè)的角色互換但作用相當(dāng)。
另外,當(dāng)B客戶(hù)端310更新第二伺服端300上的特定文件復(fù)本,例如文件F1的復(fù)本時(shí),則A客戶(hù)端210無(wú)法針對(duì)第一伺服端200上的文件F1進(jìn)行更新。同理,當(dāng)A客戶(hù)端210更新第一伺服端200上的文件復(fù)本時(shí),則B客戶(hù)端310無(wú)法針對(duì)第二伺服端300上的相應(yīng)文件復(fù)本進(jìn)行更新。
另外,當(dāng)聯(lián)機(jī)檢測(cè)模塊303檢測(cè)的聯(lián)機(jī)狀態(tài)為聯(lián)機(jī)失敗時(shí),則B客戶(hù)端310可針對(duì)第二伺服端300上的文件復(fù)本進(jìn)行更新,但為了保持文件版本的一致性,當(dāng)聯(lián)機(jī)檢測(cè)模塊203檢測(cè)的聯(lián)機(jī)狀態(tài)為聯(lián)機(jī)失敗時(shí),則A客戶(hù)端210無(wú)法針對(duì)第一伺服端200上的文件進(jìn)行更新。這是因?yàn)樵诒緦?shí)施例中,該第二伺服端300是主要伺服端,而該第一伺服端200僅為從屬伺服端;為了保持文件版本的一致性,當(dāng)主要伺服端與從屬伺服端兩者聯(lián)機(jī)失敗時(shí),僅可在主要伺服端具有完整的更新存取權(quán)限,從屬伺服端只能讀取而不能更新。
需注意的是,第一伺服端200的第一數(shù)據(jù)庫(kù)201與A客戶(hù)端210之間以及第二伺服端300的第二數(shù)據(jù)庫(kù)301與B客戶(hù)端310之間可以依據(jù)視覺(jué)源安全(Visual SourceSafe)來(lái)建置為主從(Client-Server)架構(gòu),使得第一數(shù)據(jù)庫(kù)201與第二數(shù)據(jù)庫(kù)301可以具有適當(dāng)?shù)拇嫒?quán)管理。如上所述,在本實(shí)施例中通過(guò)視覺(jué)源安全可以將第二伺服端300架構(gòu)為主要伺服端,而第一伺服端200架構(gòu)為從屬伺服端。此外,數(shù)據(jù)復(fù)制模塊(202、203)可以依據(jù)微軟(Microsoft)的文件復(fù)制服務(wù)(File Replication Service,F(xiàn)RS)來(lái)建置。
參考圖3,圖3為依據(jù)本發(fā)明實(shí)施例的分布式并行版本管理方法的操作流程圖。依據(jù)本發(fā)明實(shí)施例的分布式并行版本管理方法適用于具有包括一文件的第一伺服端、包括相應(yīng)第一伺服端的該文件的文件復(fù)本的第二伺服端、與至少一客戶(hù)端的系統(tǒng)。
首先,如步驟S301,檢測(cè)第一伺服端與第二伺服端之間的聯(lián)機(jī)狀態(tài)。當(dāng)客戶(hù)端欲將一更新文件取代第二伺服端上的文件復(fù)本時(shí),則如步驟S302,判斷聯(lián)機(jī)狀態(tài)是否為聯(lián)機(jī)成功。當(dāng)聯(lián)機(jī)狀態(tài)為聯(lián)機(jī)成功時(shí)(步驟S302的是),則如步驟S303,第二伺服端與客戶(hù)端進(jìn)行時(shí)間校正。其中,時(shí)間校正是將客戶(hù)端上的時(shí)間設(shè)為第二伺服端上的系統(tǒng)時(shí)間。
之后,如步驟S304,判斷第二伺服端上的該文件復(fù)本是否正被其它的客戶(hù)端進(jìn)行存取。當(dāng)文件復(fù)本正被其它的客戶(hù)端進(jìn)行存取時(shí),則回到步驟S301重新檢測(cè)客戶(hù)端與第二伺服端之間的聯(lián)機(jī)。而若沒(méi)有其它的客戶(hù)端存取此文件復(fù)本時(shí),則如步驟S305,客戶(hù)端將一更新文件取代文件復(fù)本,并如步驟S306,依據(jù)時(shí)間校正后的系統(tǒng)時(shí)間紀(jì)錄相應(yīng)此更新文件的時(shí)間戳記。
接著,如步驟S307,判斷相應(yīng)此更新文件的時(shí)間戳記是否晚于相應(yīng)第一伺服端上的文件的時(shí)間戳記(新時(shí)間戳記),若時(shí)間戳記晚于相應(yīng)該文件的時(shí)間戳記,則如步驟S308,將更新文件復(fù)制至第一伺服端以取代該文件;反之,若時(shí)間戳記不晚于相應(yīng)該文件的時(shí)間戳記,則不進(jìn)行取代。
另一方面,若聯(lián)機(jī)狀態(tài)為聯(lián)機(jī)失敗時(shí)(步驟S302的否),則如步驟S309,判斷客戶(hù)端所進(jìn)行聯(lián)機(jī)的伺服端是否為主要服務(wù)器。若此伺服端為系統(tǒng)中的主要服務(wù)器(步驟S309的是),則回到步驟S303,進(jìn)行時(shí)間校正。而若此伺服端并非系統(tǒng)中的主要服務(wù)器(步驟S309的否),則如步驟S310,判斷客戶(hù)端是否要讀取(下載)文件(版本)。若客戶(hù)端僅要讀取文件時(shí),則如步驟S311,客戶(hù)端讀取其指定的文件。而若客戶(hù)端并非要讀取文件時(shí),則直接結(jié)束操作流程。
為了保持?jǐn)?shù)據(jù)的一致性與完整性,當(dāng)聯(lián)機(jī)失敗時(shí),只有聯(lián)機(jī)至主要服務(wù)器的客戶(hù)端可以進(jìn)行更新(讀寫(xiě))文件的行為。而聯(lián)機(jī)至從屬服務(wù)器的客戶(hù)端僅能對(duì)于文件進(jìn)行讀取的行為。
另外,需注意的是本發(fā)明用以處理并行版本間的管理課題,然而,對(duì)于并行文件間的管理亦可依據(jù)本發(fā)明同理執(zhí)行。其中,并行文件與并行版本之間的差異在于并行版本的數(shù)據(jù)型態(tài)中對(duì)于同一個(gè)文件中更具有前后版本之分,而并行文件則并不具備。此外,本發(fā)明還可延伸至并行文件的管理與控制。
因此,藉由本發(fā)明所提供的分布式并行版本管理系統(tǒng)及方法,可以在分布式架構(gòu)下,維持不同伺服端上相同文件復(fù)本的一致性,進(jìn)而減少針對(duì)單一伺服端進(jìn)行存取時(shí)的聯(lián)機(jī)成本。
雖然本發(fā)明已以較佳實(shí)施例披露如上,然其并非用以限定本發(fā)明,任何本領(lǐng)域技術(shù)人員,在不脫離本發(fā)明的精神和范圍的前提下,可做若干的更動(dòng)與潤(rùn)飾,因此本發(fā)明的保護(hù)范圍視后附的權(quán)利要求范圍所界定。
權(quán)利要求
1.一種分布式并行版本管理系統(tǒng),包括一第一伺服端,至少具有包括一文件的一第一數(shù)據(jù)庫(kù);一第二伺服端,具有包括相應(yīng)該第一數(shù)據(jù)庫(kù)上該文件的一文件復(fù)本的一第二數(shù)據(jù)庫(kù)、一數(shù)據(jù)復(fù)制模塊、與一聯(lián)機(jī)檢測(cè)模塊用以檢測(cè)該第一伺服端與該第二伺服端之間的聯(lián)機(jī)狀態(tài);以及一第一客戶(hù)端,當(dāng)欲將一更新文件取代該第二伺服端上的該文件復(fù)本,且該第二伺服端的該聯(lián)機(jī)檢測(cè)模塊檢測(cè)的聯(lián)機(jī)狀態(tài)為聯(lián)機(jī)成功時(shí),則將該更新文件取代該文件復(fù)本,且該第二伺服端通過(guò)該數(shù)據(jù)復(fù)制模塊將該更新文件取代該第一伺服端上該第一數(shù)據(jù)庫(kù)中的該文件。
2.如權(quán)利要求1所述的分布式并行版本管理系統(tǒng),其中當(dāng)該第一客戶(hù)端欲將一更新文件取代該第二伺服端上的該文件復(fù)本,且該第二伺服端的該聯(lián)機(jī)檢測(cè)模塊檢測(cè)的聯(lián)機(jī)狀態(tài)為聯(lián)機(jī)成功時(shí),還包括該第二伺服端與該第一客戶(hù)端進(jìn)行時(shí)間校正。
3.如權(quán)利要求1所述的分布式并行版本管理系統(tǒng),其中當(dāng)該第二伺服端欲通過(guò)該數(shù)據(jù)復(fù)制模塊將該更新文件取代該第一伺服端上的該文件時(shí),判斷相應(yīng)該更新文件的該時(shí)間戳記是否晚于相應(yīng)該文件的一新時(shí)間戳記,若該時(shí)間戳記晚于相應(yīng)該文件的該新時(shí)間戳記,則將該更新文件取代該文件。
4.如權(quán)利要求1所述的分布式并行版本管理系統(tǒng),其中當(dāng)該第二伺服端的該聯(lián)機(jī)檢測(cè)模塊檢測(cè)的聯(lián)機(jī)狀態(tài)為聯(lián)機(jī)失敗時(shí),則該第一客戶(hù)端可針對(duì)該第二伺服端上的該文件復(fù)本進(jìn)行更新,而該第二客戶(hù)端無(wú)法針對(duì)該第一伺服端上的該文件進(jìn)行更新。
5.如權(quán)利要求1所述的分布式并行版本管理系統(tǒng),其中該文件為源碼。
6.如權(quán)利要求1所述的分布式并行版本管理系統(tǒng),其中該文件為具有版本數(shù)據(jù)型態(tài)的文件。
7.如權(quán)利要求6所述的分布式并行版本管理系統(tǒng),其中當(dāng)該第一客戶(hù)端欲將一更新文件取代該第二伺服端上的該文件復(fù)本,且該第二伺服端的該聯(lián)機(jī)檢測(cè)模塊檢測(cè)的聯(lián)機(jī)狀態(tài)為聯(lián)機(jī)成功時(shí),還包括該第二伺服端與該第一客戶(hù)端進(jìn)行時(shí)間校正。
8.如權(quán)利要求7所述的分布式并行版本管理系統(tǒng),其中該第二伺服端還包括若該時(shí)間戳記早于相應(yīng)該文件的該新時(shí)間戳記,則不將該更新文件取代該文件。
9.如權(quán)利要求6所述的分布式并行版本管理系統(tǒng),其中當(dāng)該第一客戶(hù)端更新該第二伺服端上的該文件復(fù)本時(shí),則該第二客戶(hù)端無(wú)法針對(duì)該第一伺服端上的該文件進(jìn)行更新。
10.如權(quán)利要求6所述的分布式并行版本管理系統(tǒng),其中當(dāng)該第二伺服端的該聯(lián)機(jī)檢測(cè)模塊檢測(cè)的聯(lián)機(jī)狀態(tài)為聯(lián)機(jī)失敗時(shí),則該第一客戶(hù)端可針對(duì)該第二伺服端上的該文件復(fù)本進(jìn)行更新,而該第二客戶(hù)端無(wú)法針對(duì)該第一伺服端上的該文件進(jìn)行更新。
11.一種分布式并行版本管理方法,適用于具有包括一文件的一第一伺服端、包括相應(yīng)該文件的一文件復(fù)本的一第二伺服端與一第一客戶(hù)端的系統(tǒng),包括下列步驟檢測(cè)該第一伺服端與該第二伺服端之間的聯(lián)機(jī)狀態(tài);當(dāng)該第一客戶(hù)端欲將一更新文件取代該第二伺服端上的該文件復(fù)本且聯(lián)機(jī)狀態(tài)為聯(lián)機(jī)成功時(shí),則該第一客戶(hù)端將該更新文件取代該文件復(fù)本;以及該第二伺服端將該更新文件取代該第一伺服端上的該文件。
12.如權(quán)利要求11所述的分布式并行版本管理方法,還包括當(dāng)該第一客戶(hù)端欲將一更新文件取代該第二伺服端上的該文件復(fù)本,且該第二伺服端的該聯(lián)機(jī)檢測(cè)模塊檢測(cè)的聯(lián)機(jī)狀態(tài)為聯(lián)機(jī)成功時(shí),該第二伺服端與該第一客戶(hù)端進(jìn)行時(shí)間校正。
13.如權(quán)利要求12所述的分布式并行版本管理方法,還包括當(dāng)該第二伺服端欲將該更新文件取代該第一伺服端上的該文件時(shí),判斷相應(yīng)該更新文件的該時(shí)間戳記是否晚于相應(yīng)該文件的一新時(shí)間戳記,若該時(shí)間戳記晚于相應(yīng)該文件的該新時(shí)間戳記,則將該更新文件取代該文件。
14.如權(quán)利要求11所述的分布式并行版本管理方法,還包括當(dāng)聯(lián)機(jī)狀態(tài)為聯(lián)機(jī)失敗時(shí),則該第一客戶(hù)端可針對(duì)該第二伺服端上的該文件復(fù)本進(jìn)行更新,而一第二客戶(hù)端無(wú)法針對(duì)該第一伺服端上的該文件進(jìn)行寫(xiě)入。
15.如權(quán)利要求11所述的分布式并行版本管理方法,其中該文件為源碼。
16.如權(quán)利要求11所述的分布式并行版本管理方法,其中該文件為具有版本數(shù)據(jù)型態(tài)的文件。
17.如權(quán)利要求16所述的分布式并行版本管理方法,還包括當(dāng)該第一客戶(hù)端欲將一更新文件取代該第二伺服端上的該文件復(fù)本,且該第二伺服端的該聯(lián)機(jī)檢測(cè)模塊檢測(cè)的聯(lián)機(jī)狀態(tài)為聯(lián)機(jī)成功時(shí),該第二伺服端與該第一客戶(hù)端進(jìn)行時(shí)間校正。
18.如權(quán)利要求16所述的分布式并行版本管理方法,還包括當(dāng)聯(lián)機(jī)狀態(tài)為聯(lián)機(jī)失敗時(shí),則該第一客戶(hù)端可針對(duì)該第二伺服端上的該文件復(fù)本進(jìn)行更新,而一第二客戶(hù)端無(wú)法針對(duì)該第一伺服端上的該文件進(jìn)行寫(xiě)入。
全文摘要
一種分布式并行版本管理系統(tǒng),包括一第一伺服端、一第二伺服端與一第一客戶(hù)端。第一伺服端至少具有包括一文件的第一數(shù)據(jù)庫(kù)。第二伺服端具有包括相應(yīng)第一數(shù)據(jù)庫(kù)上文件的文件復(fù)本的第二數(shù)據(jù)庫(kù)、一數(shù)據(jù)復(fù)制模塊與一聯(lián)機(jī)檢測(cè)模塊,用以檢測(cè)第一伺服端與第二伺服端之間的聯(lián)機(jī)狀態(tài)。當(dāng)?shù)谝豢蛻?hù)端欲將一更新文件取代第二數(shù)據(jù)庫(kù)上的文件復(fù)本且聯(lián)機(jī)狀態(tài)為聯(lián)機(jī)成功時(shí),則將更新文件取代文件復(fù)本,且第二伺服端通過(guò)數(shù)據(jù)復(fù)制模塊將更新文件取代第一伺服端上的文件。
文檔編號(hào)G06F11/00GK1471015SQ0212694
公開(kāi)日2004年1月28日 申請(qǐng)日期2002年7月24日 優(yōu)先權(quán)日2002年7月24日
發(fā)明者游宗穎, 邱志宏, 葉盈成 申請(qǐng)人:威盛電子股份有限公司