分布式并行版本管理系统及方法

文档序号:6584239阅读:141来源:国知局
专利名称:分布式并行版本管理系统及方法
技术领域
本发明涉及一种文件管理系统及方法,且特别涉及一种在分布式架构下,可以维持不同伺服端上相同文件复本的一致性,进而减少针对单一伺服端进行存取时的联机成本的分布式并行版本管理系统及方法。
背景技术
在已知文件管理系统或并行版本系统(Concurrent Versions System),如源码(Source Code)管理系统中,通常是将所有的源码储存在统一管理的伺服端上。当使用者希望进行源码修改或更新时,则可以通过使用者的客户端联机至伺服端来进行存取。伺服端藉由适当文件的存取权管理,可以维持源码的正确性。
图1示出了已知文件管理系统的示意图。如图所示,所有的文件数据储存在伺服端100的数据库101上。当使用者希望存取文件时,则可以通过客户端110(120)联机至伺服端100由数据库101存取文件数据。其中,伺服端100的数据库101与客户端110(120)可以利用一共同版本管理系统,如“视觉源安全(Visual Source Safe)”,来建置为主从(Client-Server)架构,从而数据库101具有适当的存取权管理。
由于在已知架构下所有的客户端均须联机至同一个伺服端来存取文件数据,因此,当大量使用者同时进行存取的话,容易加重伺服端的系统负担。此外,对于在不同国家拥有分公司的企业而言,建置专线或者网络的联机成本也造成极大的负担。

发明内容
因此,本发明的主要目的是提供一种可以在分布式架构下,维持不同伺服端上相同文件复本的一致性,进而减少针对单一伺服端进行存取时的联机成本的分布式并行版本管理系统及方法。
为了实现本发明的上述目的,可藉由本发明所提供的分布式并行版本管理系统及方法来达到。
依据本发明实施例的分布式并行版本管理系统包括一第一伺服端、一第二伺服端与一B客户端(第一客户端)。
第一伺服端至少具有包括一文件的第一数据库。第二伺服端具有包括相应第一数据库上文件的文件复本的第二数据库、一数据复制模块与一联机检测模块。联机检测模块用以检测第一伺服端与第二伺服端之间的联机状态。当B客户端欲将一更新文件取代第二伺服端上的文件复本且联机状态为联机成功时,则将更新文件取代文件复本,且第二伺服端通过数据复制模块将更新文件取代第一伺服端上的文件。
此外,当B客户端欲将更新文件取代第二伺服端上的文件复本且联机状态为联机成功时,则第二伺服端与B客户端进行时间校正。且B客户端将更新文件取代文件复本时,还依据时间校正后的系统时间纪录相应的时间戳记。
而当第二伺服端欲通过数据复制模块将更新文件取代第一伺服端上的文件时,还判断相应此更新文件的时间戳记是否晚于相应此文件的新时间戳记,若时间戳记晚于相应此文件的新时间戳记,则将更新文件取代此文件;反之则不进行取代。
另外,当B客户端更新第二伺服端的文件复本时,则一A客户端(第二客户端)无法针对第一伺服端上的文件进行更新。且当联机检测模块检测的联机状态为联机失败时,则B客户端可针对第二伺服端上的文件复本进行更新,而A客户端无法针对第一伺服端上的文件进行更新。
依据本发明实施例的分布式并行版本管理方法,适用于具有包括一文件的第一伺服端、包括相应文件的文件复本的第二伺服端与B客户端的系统。首先,检测第一伺服端与第二伺服端间的联机状态。之后,当B客户端欲将一更新文件取代第二伺服端上的文件复本且联机状态为联机成功时,则B客户端将更新文件取代文件复本。接着,第二伺服端将更新文件取代第一伺服端上的文件。
此外,当B客户端欲将更新文件取代第二伺服端上的文件复本且联机状态为联机成功时,则第二伺服端与B客户端进行时间校正。且B客户端将更新文件取代文件复本时,还依据时间校正后的系统时间纪录相应的时间戳记。
而当第二伺服端欲通过数据复制模块将更新文件取代第一伺服端上的文件时,还判断相应此更新文件的时间戳记是否晚于相应此文件的新时间戳记,若时间戳记晚于相应此文件的新时间戳记,则将更新文件取代此文件;反之则不进行取代。
相同地,当B客户端更新第二伺服端的文件复本时,则一A客户端无法针对第一伺服端上的文件进行更新。且当联机检测模块检测的联机状态为联机失败时,则B客户端可针对第二伺服端上的文件复本进行更新,而A客户端无法针对第一伺服端上的文件进行更新。


为使本发明的上述目的、特征和优点能更明显易懂,下面结合附图示对图1为已知文件管理系统的示意图。
图2为依据本发明实施例的分布式并行版本管理系统的系统架构图。
图3为依据本发明实施例的分布式并行版本管理方法的操作流程图。
具体实施例方式
图2为依据本发明实施例的分布式并行版本管理系统的系统架构图。在本发明实施例中,多个伺服端可以提供到不同的客户端进行存取,且通过适当的同步机制,使得每一伺服端的数据都能维持一致。
如图所示,依据本发明实施例的分布式并行版本管理系统包括第一伺服端200、A客户端(第二客户端)210、第二伺服端300与B客户端(第一客户端)310。
第一伺服端200与第二伺服端300具有相同的组成。第一伺服端200具有包括一文件(图中未示出)的第一数据库201、数据复制模块202与联机检测模块203。数据复制模块202用以复制及监控(Monitor)第一数据库201内数据的状态,当第一数据库201内的数据进行更新时,则数据复制模块202便将更新的数据复制至另一伺服端上。联机检测模块203用以检测第一伺服端200与第二伺服端300之间的联机状态。
类似地,第二伺服端300具有第二数据库301、数据复制模块302与联机检测模块303。第二数据库301包括相应第一伺服端200上第一数据库201中的文件的文件复本(图中未示出),其中,第二伺服端300上的文件复本与第一伺服端200上的文件相同,且该文件与文件复本可以是源码(SourceCode)。
数据复制模块302用以复制及监控第二数据库301内数据的状态,当第二数据库301内的数据进行更新时,数据复制模块302便将更新的数据复制至另一伺服端上。联机检测模块303用以检测第二伺服端300与第一伺服端200的之间的联机状态。
A客户端210用以向第一伺服端200前求存取文件服务,B客户端310用以向第二伺服端300请求存取文件服务。需注意的是,客户端请求存取文件服务的伺服端对象可以依据其距离远近来决定。举例来说,假设第一伺服端200与第二伺服端300分别位于美国与台湾时,则位于台湾的B客户端310便可向第二伺服端300请求服务,而位于美国的A客户端210便可向第一伺服端200请求服务。
当B客户端310欲将一更新文件(图中未示出)取代第二伺服端300上第二数据库301中的文件复本且联机检测模块303检测的联机状态为联机成功时,则第二伺服端300与B客户端310进行时间校正。其中,时间校正是将B客户端310上的时间设为第二伺服端300上的系统时间。
之后,B客户端310将此更新文件取代第二数据库301中的文件复本,并依据时间校正后的系统时间纪录相应此更新文件的时间戳记。而当数据复制模块302监控到第二数据库301中发生数据更新时,则第二伺服端300便通过数据复制模块302先判断相应此更新文件的时间戳记是否晚于第一伺服端200上第一数据库201中相应该文件的时间戳记(新时间戳记),若时间戳记晚于相应此文件的时间戳记,则将更新文件取代第一伺服端200上第一数据库201中的文件。反之,若时间戳记早于相应该文件的时间戳记,则不将更新文件取代第一伺服端200上第一数据库201中的文件。
需注意的是,第二伺服端300与B客户端310进行时间校正的目的主要是为了有效管理且统一不同客户端更新文件的时间。此外,复制文件至另一伺服端时先进行时间戳记的判断的目的是为了维护不同伺服端对于相同文件进行更新时版本的先后顺序。
由于第一伺服端200与第二伺服端300具有相同的组成,且A客户端210与第一伺服端200的关系亦和B客户端310与第二伺服端300间的关系类同,故于联机检测模块203检测的联机状态为联机成功时,前述第一伺服端200侧与第二伺服端300侧的角色互换但作用相当。
另外,当B客户端310更新第二伺服端300上的特定文件复本,例如文件F1的复本时,则A客户端210无法针对第一伺服端200上的文件F1进行更新。同理,当A客户端210更新第一伺服端200上的文件复本时,则B客户端310无法针对第二伺服端300上的相应文件复本进行更新。
另外,当联机检测模块303检测的联机状态为联机失败时,则B客户端310可针对第二伺服端300上的文件复本进行更新,但为了保持文件版本的一致性,当联机检测模块203检测的联机状态为联机失败时,则A客户端210无法针对第一伺服端200上的文件进行更新。这是因为在本实施例中,该第二伺服端300是主要伺服端,而该第一伺服端200仅为从属伺服端;为了保持文件版本的一致性,当主要伺服端与从属伺服端两者联机失败时,仅可在主要伺服端具有完整的更新存取权限,从属伺服端只能读取而不能更新。
需注意的是,第一伺服端200的第一数据库201与A客户端210之间以及第二伺服端300的第二数据库301与B客户端310之间可以依据视觉源安全(Visual SourceSafe)来建置为主从(Client-Server)架构,使得第一数据库201与第二数据库301可以具有适当的存取权管理。如上所述,在本实施例中通过视觉源安全可以将第二伺服端300架构为主要伺服端,而第一伺服端200架构为从属伺服端。此外,数据复制模块(202、203)可以依据微软(Microsoft)的文件复制服务(File Replication Service,FRS)来建置。
参考图3,图3为依据本发明实施例的分布式并行版本管理方法的操作流程图。依据本发明实施例的分布式并行版本管理方法适用于具有包括一文件的第一伺服端、包括相应第一伺服端的该文件的文件复本的第二伺服端、与至少一客户端的系统。
首先,如步骤S301,检测第一伺服端与第二伺服端之间的联机状态。当客户端欲将一更新文件取代第二伺服端上的文件复本时,则如步骤S302,判断联机状态是否为联机成功。当联机状态为联机成功时(步骤S302的是),则如步骤S303,第二伺服端与客户端进行时间校正。其中,时间校正是将客户端上的时间设为第二伺服端上的系统时间。
之后,如步骤S304,判断第二伺服端上的该文件复本是否正被其它的客户端进行存取。当文件复本正被其它的客户端进行存取时,则回到步骤S301重新检测客户端与第二伺服端之间的联机。而若没有其它的客户端存取此文件复本时,则如步骤S305,客户端将一更新文件取代文件复本,并如步骤S306,依据时间校正后的系统时间纪录相应此更新文件的时间戳记。
接着,如步骤S307,判断相应此更新文件的时间戳记是否晚于相应第一伺服端上的文件的时间戳记(新时间戳记),若时间戳记晚于相应该文件的时间戳记,则如步骤S308,将更新文件复制至第一伺服端以取代该文件;反之,若时间戳记不晚于相应该文件的时间戳记,则不进行取代。
另一方面,若联机状态为联机失败时(步骤S302的否),则如步骤S309,判断客户端所进行联机的伺服端是否为主要服务器。若此伺服端为系统中的主要服务器(步骤S309的是),则回到步骤S303,进行时间校正。而若此伺服端并非系统中的主要服务器(步骤S309的否),则如步骤S310,判断客户端是否要读取(下载)文件(版本)。若客户端仅要读取文件时,则如步骤S311,客户端读取其指定的文件。而若客户端并非要读取文件时,则直接结束操作流程。
为了保持数据的一致性与完整性,当联机失败时,只有联机至主要服务器的客户端可以进行更新(读写)文件的行为。而联机至从属服务器的客户端仅能对于文件进行读取的行为。
另外,需注意的是本发明用以处理并行版本间的管理课题,然而,对于并行文件间的管理亦可依据本发明同理执行。其中,并行文件与并行版本之间的差异在于并行版本的数据型态中对于同一个文件中更具有前后版本之分,而并行文件则并不具备。此外,本发明还可延伸至并行文件的管理与控制。
因此,藉由本发明所提供的分布式并行版本管理系统及方法,可以在分布式架构下,维持不同伺服端上相同文件复本的一致性,进而减少针对单一伺服端进行存取时的联机成本。
虽然本发明已以较佳实施例披露如上,然其并非用以限定本发明,任何本领域技术人员,在不脱离本发明的精神和范围的前提下,可做若干的更动与润饰,因此本发明的保护范围视后附的权利要求范围所界定。
权利要求
1.一种分布式并行版本管理系统,包括一第一伺服端,至少具有包括一文件的一第一数据库;一第二伺服端,具有包括相应该第一数据库上该文件的一文件复本的一第二数据库、一数据复制模块、与一联机检测模块用以检测该第一伺服端与该第二伺服端之间的联机状态;以及一第一客户端,当欲将一更新文件取代该第二伺服端上的该文件复本,且该第二伺服端的该联机检测模块检测的联机状态为联机成功时,则将该更新文件取代该文件复本,且该第二伺服端通过该数据复制模块将该更新文件取代该第一伺服端上该第一数据库中的该文件。
2.如权利要求1所述的分布式并行版本管理系统,其中当该第一客户端欲将一更新文件取代该第二伺服端上的该文件复本,且该第二伺服端的该联机检测模块检测的联机状态为联机成功时,还包括该第二伺服端与该第一客户端进行时间校正。
3.如权利要求1所述的分布式并行版本管理系统,其中当该第二伺服端欲通过该数据复制模块将该更新文件取代该第一伺服端上的该文件时,判断相应该更新文件的该时间戳记是否晚于相应该文件的一新时间戳记,若该时间戳记晚于相应该文件的该新时间戳记,则将该更新文件取代该文件。
4.如权利要求1所述的分布式并行版本管理系统,其中当该第二伺服端的该联机检测模块检测的联机状态为联机失败时,则该第一客户端可针对该第二伺服端上的该文件复本进行更新,而该第二客户端无法针对该第一伺服端上的该文件进行更新。
5.如权利要求1所述的分布式并行版本管理系统,其中该文件为源码。
6.如权利要求1所述的分布式并行版本管理系统,其中该文件为具有版本数据型态的文件。
7.如权利要求6所述的分布式并行版本管理系统,其中当该第一客户端欲将一更新文件取代该第二伺服端上的该文件复本,且该第二伺服端的该联机检测模块检测的联机状态为联机成功时,还包括该第二伺服端与该第一客户端进行时间校正。
8.如权利要求7所述的分布式并行版本管理系统,其中该第二伺服端还包括若该时间戳记早于相应该文件的该新时间戳记,则不将该更新文件取代该文件。
9.如权利要求6所述的分布式并行版本管理系统,其中当该第一客户端更新该第二伺服端上的该文件复本时,则该第二客户端无法针对该第一伺服端上的该文件进行更新。
10.如权利要求6所述的分布式并行版本管理系统,其中当该第二伺服端的该联机检测模块检测的联机状态为联机失败时,则该第一客户端可针对该第二伺服端上的该文件复本进行更新,而该第二客户端无法针对该第一伺服端上的该文件进行更新。
11.一种分布式并行版本管理方法,适用于具有包括一文件的一第一伺服端、包括相应该文件的一文件复本的一第二伺服端与一第一客户端的系统,包括下列步骤检测该第一伺服端与该第二伺服端之间的联机状态;当该第一客户端欲将一更新文件取代该第二伺服端上的该文件复本且联机状态为联机成功时,则该第一客户端将该更新文件取代该文件复本;以及该第二伺服端将该更新文件取代该第一伺服端上的该文件。
12.如权利要求11所述的分布式并行版本管理方法,还包括当该第一客户端欲将一更新文件取代该第二伺服端上的该文件复本,且该第二伺服端的该联机检测模块检测的联机状态为联机成功时,该第二伺服端与该第一客户端进行时间校正。
13.如权利要求12所述的分布式并行版本管理方法,还包括当该第二伺服端欲将该更新文件取代该第一伺服端上的该文件时,判断相应该更新文件的该时间戳记是否晚于相应该文件的一新时间戳记,若该时间戳记晚于相应该文件的该新时间戳记,则将该更新文件取代该文件。
14.如权利要求11所述的分布式并行版本管理方法,还包括当联机状态为联机失败时,则该第一客户端可针对该第二伺服端上的该文件复本进行更新,而一第二客户端无法针对该第一伺服端上的该文件进行写入。
15.如权利要求11所述的分布式并行版本管理方法,其中该文件为源码。
16.如权利要求11所述的分布式并行版本管理方法,其中该文件为具有版本数据型态的文件。
17.如权利要求16所述的分布式并行版本管理方法,还包括当该第一客户端欲将一更新文件取代该第二伺服端上的该文件复本,且该第二伺服端的该联机检测模块检测的联机状态为联机成功时,该第二伺服端与该第一客户端进行时间校正。
18.如权利要求16所述的分布式并行版本管理方法,还包括当联机状态为联机失败时,则该第一客户端可针对该第二伺服端上的该文件复本进行更新,而一第二客户端无法针对该第一伺服端上的该文件进行写入。
全文摘要
一种分布式并行版本管理系统,包括一第一伺服端、一第二伺服端与一第一客户端。第一伺服端至少具有包括一文件的第一数据库。第二伺服端具有包括相应第一数据库上文件的文件复本的第二数据库、一数据复制模块与一联机检测模块,用以检测第一伺服端与第二伺服端之间的联机状态。当第一客户端欲将一更新文件取代第二数据库上的文件复本且联机状态为联机成功时,则将更新文件取代文件复本,且第二伺服端通过数据复制模块将更新文件取代第一伺服端上的文件。
文档编号G06F11/00GK1471015SQ0212694
公开日2004年1月28日 申请日期2002年7月24日 优先权日2002年7月24日
发明者游宗颖, 邱志宏, 叶盈成 申请人:威盛电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1