发明内容
有鉴于现有技术存在的问题,本发明遂揭露一种数据同步系统及其方法。
本发明所揭露的数据同步系统,其包含:同步服务端及客户端。其中,同步服务端储存第一同步数据;客户端则分别储存第二同步数据。所述客户端包含:检测模块、传输模块、选择模块及同步模块。其中,检测模块用以检测与同步服务端的连接状态,当客户端与同步服务端的连接状态为已连接则将此客户端作为连接客户端;传输模块用以在客户端为连接客户端时,广播预设的权重信息,并且接收其他连接客户端广播的权重信息作为比对信息;选择模块用以比对权重顺序表中选择最高权重的连接客户端作为同步处理端;同步模块用以在客户端不为同步处理端时,根据第二同步数据使所述客户端与同步处理端进行同步处理,以及在所述客户端为同步处理端且确认已与其他客户端完成同步处理后,连接至同步服务端以根据第一同步数据使同步处理端与同步服务端进行同步处理,当同步处理端与同步服务端完成同步处理后,同步处理端再与所有客户端进行同步处理。
至于本发明的数据同步方法,应用于具有同步服务端及客户端的网络环境中,其步骤包括:同步服务端储存第一同步数据,每一个客户端分别储存第二同步数据;所述客户端检测与同步服务端的连接状态,当所述客户端与同步服务端的连接状态为已连接则客户端将作为连接客户端;在客户端为连接客户端时,广播预设的权重信息,并且接收其他连接客户端广播的权重信息作为比对信息;所述客户端比对权重信息及比对信息以产生权重顺序表,并自权重顺序表中选择最高权重的连接客户端作为同步处理端;在客户端不为同步处理端时,根据所述第二同步数据使所述客户端与同步处理端进行同步处理,以及在客户端为同步处理端且确认已与其他客户端完成同步处理后,连接至同步服务端以根据第一同步数据使同步处理端与同步服务端进行同步处理,当同步处理端与同步服务端完成同步处理后,同步处理端再与所有客户端进行同步处理。
本发明所揭露的系统与方法如上,与现有技术之间的差异在于本发明是通过在能够与同步服务端连接的客户端中,选择其中一个客户端作为同步处理端,并且以同步处理端对所有客户端进行同步后,再由同步处理端对同步服务端进行同步。
通过上述的技术手段,本发明可以达成提高多客户端的同步便利性的技术效果。
附图说明
图1为本发明数据同步系统的系统方块图。
图2A及图2B为本发明数据同步方法的方法流程图。
图3为应用本发明进行数据同步处理的第一实施例的示意图。
图4为应用本发明进行数据同步处理的第二实施例的示意图。
主要部件附图标记:
110 同步服务端
120 客户端
120a 客户端
120b 客户端
120c 客户端
121 检测模块
122 传输模块
123 选择模块
124 同步模块
125 分散模块
126 分配模块
130 互联网
13 1 局域网
步骤210在具有同步服务端及至少两个客户端的网络环境中,该同步服务端储存第一同步数据,每一个客户端分别储存第二同步数据
步骤220所述客户端检测与该同步服务端的连接状态,当所述客户端与该同步服务端的连接状态为已连接则作为连接客户端
步骤230在所述客户端为连接客户端时,广播预设的权重信息,并且接收其他连接客户端广播的权重信息作为比对信息
步骤240所述客户端比对该权重信息及所述比对信息以产生一权重顺序表,并自该权重顺序表中选择最高权重的连接客户端作为同步处理端
步骤250在所述客户端不为同步处理端时,根据所述第二同步数据使所述客户端与该同步处理端进行同步处理,以及在所述客户端为同步处理端且确认已与其他所述客户端完成同步处理后,连接至该同步服务端以根据该第一同步数据使该同步处理端与该同步服务端进行同步处理,当该同步处理端与该同步服务端完成同步处理后,该同步处理端再与所有客户端进行同步处理
步骤260在所述客户端为连接客户端时,连接至该同步服务端并根据该第一同步数据及该第二同步数据自所述修改数据中选择至少其中之一进行同步
步骤270在该客户端为同步处理端且与该同步服务端进行同步处理前,预先计算需要同步的数据数量并根据所述连接客户端的数量设定该同步处理端及各连接客户端需要同步的数据后,使该同步处理端及各连接客户端各自与该同步服务端进行同步,以及使该同步处理端与各连接客户端再次进行同步处理
具体实施方式
以下将结合附图及实施例来详细说明本发明的实施方式,由此对本发明如何应用技术手段来解决技术问题并达成技术效果的实现过程能充分理解并据以实施。
在说明本发明所揭露的数据同步系统及其方法之前,先对本发明所自行定义的名词作以说明,本发明所述的同步服务端是指与互联网相互连接的服务主机,用以提供储存空间以便用于同步处理;客户端是指由使用者操作的计算机,如:电脑主机、个人数码助理(PDA,Personal Digital Assistant)、智能手机……等装置。特别要说明的是,能够通过互联网与同步服务端相互连接的客户端将视为连接客户端,并且从连接客户端中选择执行效能最高的计算机作为同步处理端,用以作为其他客户端与同步服务端进行同步处理的中介主机,稍后将结合附图对同步服务端与客户端的架构作详细说明。
以下结合附图对本发明数据同步系统及其方法作进一步说明,请参照图1,图1为本发明数据同步系统的系统方块图,此系统包含:同步服务端110及客户端120。其中,同步服务端110储存第一同步数据,所述第一同步数据至少包含修改时间、修改数量及修改数据等用以进行同步处理的判断数据。举例来说,假设同步服务端110中储存的多个文档经过修改,则同步服务端110会记录最后的修改时间、修改的文档数量及修改的文档名称等,以便生成第一同步数据并将此第一同步数据作为同步处理的依据。在实际实施上,同步服务端110与互联网130相互连接,而客户端120则至少需其中之一与互联网130相互连接,且不同的客户端120也需要相互连接,如:通过局域网、传输线……等。
至于在客户端120的部分,每一个客户端120分别储存有第二同步数据,且各客户端120包含:检测模块121、传输模块122、选择模块123及同步模块124。其中,检测模块121用以检测与同步服务端110的连接状态,当客户端120与同步服务端110的连接状态为已连接则作为连接客户端。特别要说明的是,第二同步数据与第一同步数据同样至少包含修改时间、修改数量及修改数据等用以进行同步处理的判断数据。
传输模块122用以在客户端120为连接客户端时,广播(Broadcast)预设的权重信息,如:以“A;5”代表权重信息(其中“A”代表客户端标识;“5”代表权重值),并且接收其他连接客户端广播的权重信息作为比对信息。举例来说,假设多个客户端120皆能够通过互联网130与同步服务端110相互连接,此时,传输模块122将通过广播的方式将自己本身的权重信息传送至其他客户端120,并且接收其他客户端120所广播的权重信息,如:数值“B;4”用以作为比对信息。如此一来,客户端120除了具有本身预设的权重信息之外,也具有其他客户端120的权重信息(即比对信息)。
选择模块123用以比对权重信息及比对信息以产生权重顺序表,并且自权重顺序表中选择最高权重的连接客户端作为同步处理端。以上例而言,客户端120本身的权重信息为数值“A;5”,且比对信息记录其他客户端120的权重信息为数值“B;4”,因此在比对后可根据数值的大小由大至小依序排列客户端标识以产生权重顺序表,如:“A,B”(由于权重值“5”大于权重值“4”,所以客户端标识“A”排列在客户端标识“B”的前面,而排列在最前面也代表最高权重),接着,选择客户端标识为“A”的连接客户端作为同步处理端。在实际实施上,权重值还可使用连接参数,如:网络速度或带宽,或是以处理器参数,如:处理器时脉,来进行取代,例如:连接参数可记录为“20Mbps”、处理器参数可记录为“1.7GHz”,并且同样根据数值的大小排列顺序。特别要说明的是,本发明虽然以上述举例进行说明,然而并未以此作限定,任何能够根据权重信息选择连接客户端作为同步处理端的方式皆不脱离本发明的应用范畴。
同步模块124用以在客户端120不为同步处理端时,根据第二同步数据使所述客户端120与同步处理端进行同步处理,以及在客户端120为同步处理端且确认已经与其他客户端120完成同步处理后,连接至同步服务端110以根据第一同步数据使同步处理端与同步服务端110进行同步处理,当同步处理端与同步服务端110完成同步处理后,同步处理端再与其他所有客户端120进行同步处理。换句话说,不是同步处理端的客户端120会先与同步处理端进行同步后,再由同步处理端与同步服务端110进行同步,接着当同步处理端与同步服务端110完成同步处理后,同步处理端会再次与其他所有的客户端120进行同步处理,由于根据同步数据进行同步处理为现有技术,故在此不再多作说明。
另外,所述客户端120还可包含分散模块125用以在客户端120为连接客户端时,通过互联网130连接至同步服务端110并根据第一同步数据及第二同步数据从修改数据中选择至少一个欲修改的数据(如:文档或参数)进行同步。换句话说,此同步方式为协作同步(即将需要同步的全部文档分为多份部分文档,分配给每一个连接客户端仅同步一份部分文档,并在所有的部分文档同步完毕后,将其整合为完整的全部文档,之后由所有的使用者端各自与该全部文档进行同步)。在实际实施上,客户端120也可包含分配模块126用以在客户端120为同步处理端且与同步服务端110进行同步处理前,先计算需要同步的文档数量,并且搭配连接客户端的数量及其权重信息来分配同步处理端及各连接客户端需要同步的文档,以便使同步处理端及各连接客户端能够各自通过互联网130与同步服务端110针对需要同步的数据进行同步。接着,当同步处理端及各连接客户端皆完成下载各自需要同步的数据后,分配模块126再将同步处理端与各连接客户端各自从同步服务端110同步的数据再次进行同步和整合处理。
接着,请参照图2A及图2B,图2A及图2B为本发明数据同步方法的方法流程图,其步骤包括:在具有同步服务端110及客户端120的网络环境中,同步服务端110储存第一同步数据,每一个客户端120分别储存第二同步数据(步骤210);所述客户端120检测与同步服务端110的连接状态,当所述客户端120与同步服务端110的连接状态为已连接则作为连接客户端(步骤220);在所述客户端120为连接客户端时,广播预设的权重信息,并且接收其他连接客户端广播的权重信息作为比对信息(步骤230);所述客户端120比对权重信息及比对信息以产生权重顺序表,并自权重顺序表中选择最高权重的连接客户端作为同步处理端(步骤240);在所述客户端120不为同步处理端时,根据所述第二同步数据使所述客户端120与同步处理端进行同步处理,以及在所述客户端120为同步处理端且确认已与其他所述客户端120完成同步处理后,连接至同步服务端110以根据第一同步数据使同步处理端与同步服务端110进行同步处理,当同步处理端与同步服务端110完成同步处理后,此同步处理端再与所有客户端120进行同步处理(步骤250)。通过上述步骤,即可在能够与同步服务端连接的客户端中,选择其中一个客户端作为同步处理端,并且以同步处理端对所有客户端进行同步后,再由同步处理端对同步服务端进行同步。
在实际实施上,步骤250之中,还可在客户端120为连接客户端时,连接至同步服务端110并根据第一同步数据及第二同步数据自修改数据中选择至少其中之一进行同步(步骤260);或在客户端120为同步处理端且与同步服务端110进行同步处理前,预先计算欲同步的数据数量并根据连接客户端的数量设定同步处理端及各连接客户端需要同步的数据后,使同步处理端及各连接客户端各自通过互联网130与同步服务端110进行同步,以及使同步处理端与各连接客户端再次进行同步处理(步骤270)。在实际实施上,步骤260使同步处理端及各连接客户端各自通过互联网130与同步服务端110进行同步的方式是部分同步(如:仅同步部分的数据),而步骤270使同步处理端与各连接客户端再次进行同步处理则是完全同步(如:同步所有数据)。由于部分同步及完全同步的同步处理方式皆为现有技术,故在此不再多作赘述。
以下结合图3及图4以实施例的方式进行如下说明,请先参照图3,图3为应用本发明进行数据同步处理的第一实施例的示意图。首先,客户端(120a、120b及120c)会检测与同步服务端110的连接状态,在此例中,客户端(120a及120b)能够通过互联网130与同步服务端110连接,而客户端120c无法与同步服务端110连接,但能够通过局域网131与其他客户端(120a及120b)连接。因此,客户端(120a及120b)的检测模块121会将自身视为连接客户端。接着,由于客户端(120a及120b)为连接客户端,所以其传输模块122会广播预先设定的权重信息,并且接收其他连接客户端广播的权重信息作为比对信息,换句话说,客户端120a会将自身预设的权重信息广播至客户端120b供客户端120b作为比对信息,反之亦同。之后,客户端(120a及120b)的选择模块123比对权重信息及比对信息以产生权重顺序表,假设客户端120a预设的权重信息为“A;10Mbps”、客户端120b预设的权重信息为“B;8Mbps”,其中“A”与“B”代表客户端标识;“10Mbps”与“8Mbps”代表网络参数(带宽),则选择模块123产生的权重顺序表可依据网络参数所记录的带宽由大至小依序排列,如记录为“A,B”(排列最前者代表权重最大),并从权重顺序表中选择与客户端标识“A”相应的客户端120a作为同步处理端。
接下来,由于客户端(120b及120c)不为同步处理端,因此根据其储存的第二同步数据使客户端(120b及120c)与同步处理端(即客户端120a)进行同步处理,以及在客户端120a确认已与其他客户端(120b及120c)完成同步处理后,通过互联网130连接至同步服务端110以根据第一同步数据使同步处理端(即客户端120a)与同步服务端110进行同步处理。
此外,在同步处理端(即客户端120a)确认已与其他客户端(120b及120c)完成同步处理后,同步处理端(即客户端120a)可以计算其与同步服务端110之间需要同步的数据量(例如:需要自同步服务端110下载180MB的数据),并根据连接客户端(即客户端120a与客户端120b;在此例中客户端120a同时是同步处理端及连接客户端)及其各自的权重信息(假设以连接参数为权重信息,客户端120a与客户端120b的权重信息可分别为“10Mbps”与“8Mbps”),用以为连接客户端(即客户端120a)分配100MB的数据下载任务,以及为连接客户端(即客户端120b)分配80MB的数据下载任务。在客户端120a与客户端120b各自的下载任务完成后,客户端120a与客户端120b进行数据同步,将客户端120b下载的80MB数据传输到客户端120a中,使所述客户端120a具有所需的完整180MB数据。之后其它的各客户端可以分别与客户端120a进行同步,以获取这一完整的180M数据。至此,即完成客户端(120a、120b及120c)与同步服务端110的数据同步处理。
请参照图4,图4为应用本发明进行数据同步处理的第二实施例的示意图。在实际实施上,客户端120可能如图4所示意只有一个(即客户端120a)能够通过互联网130连接至同步服务端110,因此,客户端(120a及120c)的检测模块121在检测与同步服务端110的连接状态后,客户端120a即作为连接客户端。此时,由于客户端120a为连接客户端,所以传输模块122会广播权重信息,但因为客户端120c不是连接客户端,所以客户端120a不会收到客户端120c广播的权重信息以作为比对信息,此时,传输模块122可在超过预设的等候时间后,将一个空值(Null)作为比对信息,而选择模块123在比对过程中,检测到空值时所产生的权重顺序表将仅记录客户端120a本身的客户端标识,以及客户端120a本身的连接参数或处理器参数,之后的同步处理流程与上述第一实施例雷同,故在此不再多作赘述。
综上所述,可知本发明与现有技术之间的差异在于通过在能够与同步服务端连接的客户端中,选择其中一个客户端作为同步处理端,并且以同步处理端对所有客户端进行同步后,再由同步处理端对同步服务端进行同步,通过这一技术手段可以解决现有技术所存在的问题,进而达成提高多客户端的同步便利性的技术效果。
虽然本发明以前述的实施例揭露如上,然其并非用以限定本发明,任何本领域技术人员在不脱离本发明的精神和范围内,当可作一些更动与润饰,因此本发明的专利保护范围须视本说明书所附的权利要求书所限定的内容为准。