本申请涉及电子技术领域,具体的说是一种通过服务端实现客户端文件同步的方法、一种通过服务端实现客户端文件同步的装置、一种通过服务端实现客户端文件同步的终端设备、一种客户端文件同步的方法、一种客户端文件同步的装置、一种客户端文件同步的终端设备及一种文件同步系统。
背景技术:
应用在运行时,有使用文件生成系统(TMS)生产的文件的需求,它是通过读取本地磁盘的方式使用这些文件的。当文件生成系统生成的文件发生变化时,需要将变更的文件同步到使用这些文件的应用所处的终端上。一般情况下,文件生成系统上的文件均为千比特(Kb)级别的小文件,其总量有十万左右,且每天产生约几万次的变更;而各个应用使用的文件生成系统生成的文件为几个到几百个不等,且各不相同。
由于对每个终端与文件生成系统都配置同步规则,会导致同步规则异常复杂而难以实施,现有技术是使用相同的同步规则将文件生成系统生成的所有文件周期性地全部同步到各个终端上,这样存在一些问题:一是由于文件生成系统系统生成的文件量较大,而各个终端上的使用的文件较少,每一次都将所有文件对各个终端都进行同步的方法不够灵活,会导致同步速度慢、系统压力大以及资源浪费的问题;二是由于文件变更频繁且是随时发生的,采用周期性同步的方案,会造成文件同步不及时的问题;三是随着应用的数量增多及终端数量的增多,需要的文件同步服务器的数量也不断增加,产生成本增高且维护工作量大的问题;四是缺乏对同步结果的监控,而在实际生产环境中,网络、同步服务器、目标终端随时会出现不可用的情况,从而导致最新文件未能同步,由于业务方无法获知文件同步结果,当个别终端的文件未能及时同步,会对业务造成影响。五是当应用的服务能力无法满足时,需要扩容,对于扩容的终端,需要手动同步需要使用的文件,增加了扩容的成本,如果扩容时忘记手动同步,会对业务造成影响,因此由于人工参与,存在成本高、风险高、效率低的问题。
技术实现要素:
本申请提供一种通过服务端实现客户端文件同步的方法、一种通过服务端实现客户端文件同步的装置、一种通过服务端实现客户端文件同步的终端设备、一种客户端文件同步的方法、一种客户端文件同步的装置、一种客户端文件同步的终端设备及一种文件同步系统。
本申请采用的技术方案是:
本申请提供一种通过服务端实现客户端文件同步的方法,包括:
接收客户端发送的使用文件信息,所述使用文件信息包括应用使用的使用文件的文件名,以及,获取文件生成系统的文件变更信息,所述文件变更信息包括变更文件的文件名和所述变更文件的校验码,所述变更文件是指变更后的文件,所述校验码是文件的唯一性识别码,当所述文件被修改后其校验码也发生变化;
根据所述文件变更信息及所述使用文件信息,检索出使用所述变更文件的客户端;
向所述使用所述变更文件的客户端发送文件变更推送信息,所述文件变更推送信息包括所述客户端的所有使用文件的文件名和所有所述使用文件的最新校验码,其中,对于变更文件,所述使用文件的最新校验码即为所述变更文件的校验码。
可选的,所述获取文件生成系统的文件变更信息包括:
接收文件生成系统在发生文件变更时实时发送的文件变更信息。
可选的,所述根据所述文件变更信息及所述使用文件信息,检索出使用所述变更文件的客户端的步骤,包括:
将接收自每个客户端的所述使用文件信息汇总,生成文件-客户端对应关系列表;
根据所述文件变更信息中变更文件的文件名,在所述文件-客户端对应关系列表中查询使用所述变更文件的客户端。
可选的,所述文件变更推送信息还包括:变更记录ID,和/或推送的时间戳。
可选的,所述文件变更推送信息是通过消息推送服务发送的。
可选的,所述通过服务端实现客户端文件同步的方法,还包括:
接收客户端发送的心跳信息,根据所述心跳信息判断所述客户端是否在预定的时间内返回文件更新报告,若否,则发出提醒信息。
本申请还提供一种通过服务端实现客户端文件同步的装置,包括:
获取单元,用于接收客户端发送的使用文件信息,所述使用文件信息包括应用使用的使用文件的文件名,以及,获取文件生成系统的文件变更信息,所述文件变更信息包括变更文件的文件名和所述变更文件的校验码,所述变更文件是指变更后的文件,所述校验码是文件的唯一性识别码,当所述文件被修改后其校验码也发生变化;
检索单元,用于根据所述文件变更信息及所述使用文件信息,检索出使用所述变更文件的客户端;
推送单元,用于向所述使用所述变更文件的客户端发送文件变更推送信息,所述文件变更推送信息包括所述客户端使用的所有文件的文件名及其最新的校验码。
可选的,所述获取单元包括接收子单元,用于接收文件生成系统在发生文件变更时实时发送的文件变更信息。
可选的,所述检索单元包括:
列表生成子单元,用于将接收自每个客户端的所述使用文件信息汇总,生成文件-客户端对应关系列表;
查询子单元,用于根据所述文件变更信息中变更文件的文件名,在所述文件-客户端对应关系列表中查询使用所述变更文件的客户端。
本申请还提供一种客户端文件同步的方法,包括:
收集应用使用的使用文件信息,并将所述使用文件信息发送到服务端,所述使用文件信息包括应用使用的使用文件的文件名;
接收所述服务端发送的文件变更推送信息,所述文件变更推送信息包括客户端的所有使用文件的文件名和所有所述使用文件的最新校验码,其中,对于变更文件,所述使用文件的最新校验码即为所述变更文件的校验码,所述变更文件是指文件生成系统生成的变更后的文件,所述校验码是文件的唯一性识别码,当所述文件被修改后其校验码也发生变化;
根据所述文件变更推送信息查找出需要更新的本地文件;
通过文件读取服务读取与所述需要更新的本地文件对应的变更文件,并将所述变更文件写到本地磁盘覆盖所述本地文件。
可选的,所述根据所述文件变更推送信息查找出需要更新的本地文件,具体包括:
解析所述文件变更推送信息,获得客户端的所有使用文件的文件名和所有所述使用文件的最新校验码;
根据所述使用文件的文件名查找同名的本地文件;
依次比较所述本地文件的校验码与所述使用文件的最新校验码是否一致,其中不一致的本地文件为需要更新的本地文件。
可选的,所述客户端文件同步的方法,还包括:
若通过所述文件读取服务读取变更文件失败,则重试读取预定的次数;
在重试次数超过预定的次数时,发出文件更新失败的提醒信息。
本申请还提供一种客户端文件同步的装置,包括:
收集单元,用于收集应用使用的使用文件信息,并将所述使用文件信息发送到服务端,所述使用文件信息包括应用使用的使用文件的文件名;
推送信息接收单元,用于接收所述服务端发送的文件变更推送信息,所述文件变更推送信息包括客户端的所有使用文件的文件名和所有所述使用文件的最新校验码,其中,对于变更文件,所述使用文件的最新校验码即为所述变更文件的校验码,所述变更文件是指文件生成系统生成的变更后的文件,所述校验码是文件的唯一性识别码,当所述文件被修改后其校验码也发生变化;
本地文件查找单元,用于根据所述文件变更推送信息查找出需要更新的本地文件;
更新单元,用于通过文件读取服务读取与所述需要更新的本地文件对应的变更文件,并将所述变更文件写到本地磁盘覆盖所述本地文件。
可选的,所述本地文件查找单元包括:
解析子单元,用于解析所述文件变更推送信息,获得客户端的所有使用文件的文件名和所有所述使用文件的最新校验码;
本地文件查找子单元,用于根据所述使用文件的文件名查找同名的本地文件;比较子单元,用于依次比较所述本地文件的校验码与所述使用文件的最新 校验码是否一致,其中不一致的本地文件为需要更新的本地文件。
可选的,所述客户端文件同步的装置,还包括:
重试单元,用于若通过所述文件读取服务读取变更文件失败,则重试读取预定的次数;
提醒单元,用于在重试次数超过预定的次数时,发出文件更新失败的提醒信息。
本申请还提供一种通过服务端实现客户端文件同步的终端设备,包括:
中央处理器;
输入输出单元;
存储器;所述存储器中存储有本申请提供的通过服务端实现客户端文件同步的方法;并在启动后能够根据上述方法运行。
本申请还提供一种客户端文件同步的终端设备,包括:
中央处理器;
输入输出单元;
存储器;所述存储器中存储有本申请提供的客户端文件同步的方法;并在启动后能够根据上述方法运行。
本申请还提供一种文件同步系统,包括服务端和客户端,所述服务端使用本申请提供的通过服务端实现客户端文件同步的装置,所述客户端使用本申请提供的客户端文件同步的装置。
与现有技术相比,本申请具有以下优点:
本申请提供的一种通过服务端实现客户端文件同步的方法,首先接收客户端发送的使用文件信息,所述使用文件信息包括应用使用的使用文件的文件名,并获取文件生成系统的文件变更信息,所述文件变更信息包括变更文件的文件名和所述变更文件的校验码,所述变更文件是指变更后的文件,所述校验码是文件的唯一性识别码,当所述文件被修改后其校验码也发生变化;然后根据所述文件变更信息及所述使用文件信息,检索出使用所述变更文件的客户端;最后向所述使用所述变更文件的客户端发送文件变更推送信息,所述文件变更推送信息包括所述客户端的所有使用文件的文件名和所有所述使用文件的最新校验码,其中,对于变更文件,所述使用文件的最新校验码即为所述变更文件的 校验码。相较于现有的同步所有文件的方法,本方法中,通过收集各个客户端的使用文件信息,可在文件生产系统发生文件变更时,实时地根据文件生成系统发送的文件变更信息生成文件变更推送信息,并选择性的推送到对应的客户端,由于所述文件变更推送信息中包括变更文件的文件名和所述变更文件的校验码,客户端在接收到所述文件变更推送信息后,可以根据所述文件变更推送信息查找出需要更新的本地同名的文件并进行更新,实现实时地、选择性的同步,从而提高了同步速度、降低了系统压力、减少了资源浪费、保证了文件的实时更新,同时由于同步工作量大幅减少,需要的文件同步服务器的数量也减少,降低了同步成本和维护的工作量。
本申请提供的一种客户端文件同步的方法,首先收集应用使用的使用文件信息,并将所述使用文件信息发送到服务端,所述使用文件信息包括应用使用的使用文件的文件名;然后接收所述服务端发送的文件变更推送信息,所述文件变更推送信息包括客户端的所有使用文件的文件名和所有所述使用文件的最新校验码,其中,对于变更文件,所述使用文件的最新校验码即为所述变更文件的校验码,所述变更文件是指文件生成系统生成的变更后的文件,所述校验码是文件的唯一性识别码,当所述文件被修改后其校验码也发生变化;再根据所述文件变更推送信息查找出需要更新的本地文件;最后通过文件读取服务读取与所述需要更新的本地文件对应的变更文件,并将所述变更文件写到本地磁盘覆盖所述本地文件。本方法中,通过收集各个应用使用的使用文件信息并上报给服务端,即可接收到所述服务端实时地选择性发送的文件变更推送信息,再根据所述文件变更推送信息查找出需要更新的本地文件,然后调用文件读取服务读取变更文件并写入本地磁盘,从而实现实时性、针对性、选择性的更新文件,不再需要同步所有文件,大幅降低了同步的工作量,从而提高了同步速度、降低了系统压力、减少了资源浪费、保证了文件的实时更新,当终端需要扩容时,可采用本方法自动判断缺失的文件从而自动同步文件,不再需要人工参与,降低了扩容成本和扩容风险,提高了扩容效率。
本申请提供的通过服务端实现客户端文件同步的方法以服务端为执行主体,客户端文件同步的方法以客户端为执行主体,两种方法结合使用,即可组成一套完整的文件同步方法,再通过增加文件更新结果报告的步骤,可实现对同步结果的监控,保证服务端和客户端都知悉文件同步结果,避免文件同步异常对业务造成影响。
附图说明
图1是本申请提供的一种通过服务端实现客户端文件同步的方法实施例的流程图;
图2是本申请提供的一种通过服务端实现客户端文件同步的装置实施例的示意图;
图3是本申请提供的一种客户端文件同步的方法实施例的流程图;
图4是本申请提供的一种客户端文件同步的装置实施例的示意图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
本申请提供了一种通过服务端实现客户端文件同步的方法、一种通过服务端实现客户端文件同步的装置、一种通过服务端实现客户端文件同步的终端设备、一种客户端文件同步的方法、一种客户端文件同步的装置、一种客户端文件同步的终端设备及一种文件同步系统,下面依次结合附图对本申请的实施例进行详细说明。
请参考图1,其为本申请提供的一种通过服务端实现客户端文件同步的方法实施例的流程图,本方法实施例的执行主体为服务端,所述通过服务端实现客户端文件同步的方法包括如下步骤:
S101,接收客户端发送的使用文件信息,所述使用文件信息包括应用使用的使用文件的文件名,以及,获取文件生成系统的文件变更信息,所述文件变更信息包括变更文件的文件名和所述变更文件的校验码,所述变更文件是指变更后的文件,所述校验码是文件的唯一性识别码,当所述文件被修改后其校验码也发生变化。
本步骤中,首先服务端接收客户端发送的使用文件信息以及获取文件生成系统的文件变更信息,所述使用文件信息包括应用使用的使用文件的文件名,所述应用即应用程序,所述客户端的下位设有至少一个应用程序,所述应用将其使用文件信息发送给所述客户端或者由所述客户端搜集其下位应用所使用的 使用文件信息,然后由所述客户端将其下位应用所使用的全部文件的文件名汇总形成使用文件信息并发送给所述服务端,所述服务端接收所述客户端发送的使用文件信息,即可获知每个客户端对应应用使用文件的文件名。
本申请提供的一种通过服务端实现客户端文件同步的方法应用于文件生成系统与文件使用系统之间,用于将所述文件生成系统生成的文件同步至所述文件使用系统,所述文件使用系统包括使用所述文件生成系统生成的文件的应用,所述文件生成系统频繁生成新文件或对已有文件进行变更,因此,需要将这些新文件和变更后的文件同步至文件使用系统的服务器上以供所述文件使用系统使用,由于文件的新增也是文件变更的一种,因此,为了描述方便,在本实施例中,所述新文件和所述变更后的文件统称为变更文件,在本方法实施例中,所述客户端设于所述文件使用系统的服务器上,因此,将所述变更文件同步至所述客户端即可。
所述文件生成系统在生成变更文件后,会生成文件变更信息,所述文件变更信息至少包括变更文件的文件名和所述变更文件的校验码,所述校验码是文件的唯一性识别码,当所述文件被修改后其校验码也发生变化;所述校验码可以是以下任意一种:HASH值,SHA值,MD5值,MD2值,MD3值,MD4值;在本申请的一个优选实施例中,所述校验码采用MD5值。除上述校验码外,还有多种形式的能够标识文件唯一性的识别码,此处不再赘述,其也能够用于完成本申请的目的,也在本申请的保护范围之内。
所述文件生成系统生成文件变更信息后,可将所述文件变更信息发送给所述服务端,所述服务端即可获取所述文件生成系统的文件变更信息。
在本申请的一个优选实施例中,由于所述文件生成系统中的文件变更较多且频繁,为了实现文件同步的实时性以避免文件变更对应用业务的影响,同时避免周期性批量同步带来的网络压力,所述文件变更信息是实时发送的,因此,所述获取文件生成系统的文件变更信息包括:接收文件生成系统在发生文件变更时实时发送的文件变更信息。
以上实时发送文件变更信息的方式为本申请的优选实施方式,并不局限本申请的保护范围,按时间周期性发送文件变更信息或按数量批量性发送文件变更信息的方式,也在本申请的保护范围之内。
S102,根据所述文件变更信息及所述使用文件信息,检索出使用所述变更 文件的客户端。
考虑到应用使用的是文件生成系统生成的部分文件,而且一般情况下不同应用使用的文件不完全一致,因此,传统将所有文件都同步给所有客户端的方法势必会造成系统资源的浪费和网络压力的增加,有鉴于此,本方法实施例是将变更文件选择性的同步到使用所述变更文件的客户端上,不使用所述变更文件的客户端不需要推送。如此,当所述文件生成系统产生变更文件时,只需要查询到使用所述变更文件的客户端,然后将所述变更文件同步到所述客户端即可。
通过步骤S101,已通过接收客户端发送的使用文件信息获知每个客户端对应的使用文件信息,同时,也通过获取文件生成系统的文件变更信息获知哪些文件发生了变更;此时,即可根据所述文件变更信息及所述使用文件信息,检索出使用所述变更文件的客户端。
在本申请提供的一个具体实施例中,所述根据所述文件变更信息及所述使用文件信息,检索出使用所述变更文件的客户端的步骤,具体包括:
将接收自每个客户端的所述使用文件信息汇总,生成文件-客户端对应关系列表;
根据所述文件变更信息中变更文件的文件名,在所述文件-客户端对应关系列表中查询使用所述变更文件的客户端。
S103,向所述使用所述变更文件的客户端发送文件变更推送信息,所述文件变更推送信息包括所述客户端的所有使用文件的文件名和所有所述使用文件的最新校验码,其中,对于变更文件,所述使用文件的最新校验码即为所述变更文件的校验码。
通过步骤S102,已根据所述文件变更信息及所述使用文件信息,检索出使用所述变更文件的客户端,接下来,向所述使用所述变更文件的客户端发送文件变更推送信息,所述文件变更推送信息包括所述客户端的所有使用文件的文件名和所有所述使用文件的最新校验码其中,对于变更文件,所述使用文件的最新校验码即为所述变更文件的校验码。
在本申请提供的一个实施例中,所述文件变更推送信息是通过消息推送服务发送的,所述消息推送服务是通用服务,可以保证消息在秒级别内推送到目标机器上,借助消息推送服务,可以保证文件变更信息快速到达所述客户端上, 从而实现文件同步速度能够在秒级别完成,解决了周期性文件同步的文件同步速度慢的问题。在本申请提供的一个优选实施例中,所述消息推送服务具体可以是分布式配置管理服务。
为了对同步结果进行监控,所述文件变更推送信息还可以包括变更记录ID或推送的时间戳,也可以同时包括所述变更记录ID和所述推送的时间戳,这样,所述客户端在接收到所述文件变更推送信息后可以根据所述变更记录ID或所述推送的时间戳生成文件更新报告并反馈给所述服务端,所述服务端即可根据所述文件更新报告中的所述变更记录ID或所述推送的时间戳判断所述文件变更推送信息是否都已得到处理、对应的文件同步是否完成、是否正确等。
所述客户端在接收到所述文件变更推送信息后,就可以根据所述文件变更推送信息中的变更文件的文件名及其校验码,从所述文件生成系统或存储服务器上读取所述变更文件,实现所述变更文件的同步。
需要说明的是,本步骤中将所述客户端的所有使用文件的文件名和所有所述使用文件的最新校验码都发送给客户端,其有益效果在于,客户端可以通过检查所述所有使用文件的文件名是否与客户端本地文件一致,来判断所述文件变更推送信息是否正确、或有无漏包,以避免根据错误的或不完整的文件变更推送信息进行文件同步导致客户端文件异常,进而导致业务出错的情况出现。
至此,通过步骤S101至S103完成了本申请提供的通过服务端实现客户端文件同步的方法流程,需要说明的是,本方法实施例是以服务端为执行主体的,最后读取所述变更文件并完成同步的步骤并不是服务端执行的,本申请提供的通过服务端实现客户端文件同步的方法是所述服务端执行的文件同步中的部分步骤。
考虑到所述服务端发送文件变更推送信息时,某个客户端因机器问题、网络问题或其他问题未收到所述文件变更推送信息,或者某个客户端完成了文件同步,但由于机器问题、网络问题或其他问题未能将文件更新报告反馈给所述服务端,导致文件同步不能及时完成或文件同步结果无法监控,因此,为了能够获取所述服务端与所有客户端的连接状况,这些客户端需周期性的向所述服务端发送心跳信息,而所述服务端则接收客户端发送的心跳信息,根据所述心跳信息判断客户端的连接状况,当在预定的时间内未接收到某个客户端发送心跳信息,则可判断所述服务端与所述客户端的连接故障,此时可以通知用户排 查故障原因进而排除故障,避免因连接故障造成业务损失。
前文已提到,为了对同步结果进行监控,所述客户端在完成文件同步后需要生成文件更新报告并反馈给所述服务端,由服务端监控文件同步结果,完成闭环,因此,在本申请提供的一个实施例中,所述通过服务端实现客户端文件同步的方法还包括:
接收所述客户端发送的文件更新报告;
汇总各个客户端发送的文件更新报告,生成更新结果报告。
此时,借助上述心跳信息,还可以判断文件同步是否在预定的时间内完成,以保证文件同步的实时性,实施方式可以是:所述服务端接收客户端发送的心跳信息,根据所述心跳信息判断所述客户端是否在预定的时间内返回文件更新报告,若否,则发出提醒信息,通知用户查找原因并及时解决。进一步保证文件同步的实时性、可监控性、稳定性和安全性。
在上述的实施例中,提供了一种通过服务端实现客户端文件同步的方法,与之相对应的,本申请还提供一种通过服务端实现客户端文件同步的装置。请参考图2,其为本申请提供的一种通过服务端实现客户端文件同步的装置实施例的示意图。由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。
本申请提供的一种通过服务端实现客户端文件同步的装置实施例中,所述通过服务端实现客户端文件同步的装置包括:
获取单元101,用于接收客户端发送的使用文件信息,所述使用文件信息包括应用使用的使用文件的文件名,以及,获取文件生成系统的文件变更信息,所述文件变更信息包括变更文件的文件名和所述变更文件的校验码,所述变更文件是指变更后的文件,所述校验码是文件的唯一性识别码,当所述文件被修改后其校验码也发生变化;
检索单元102,用于根据所述文件变更信息及所述使用文件信息,检索出使用所述变更文件的客户端;
推送单元103,用于向所述使用所述变更文件的客户端发送文件变更推送信息,所述文件变更推送信息包括所述客户端的所有使用文件的文件名和所有所述使用文件的最新校验码,其中,对于变更文件,所述使用文件的最新校验码 即为所述变更文件的校验码。在本申请提供的一个实施例中,所述获取单元101包括接收子单元,用于接收文件生成系统在发生文件变更时实时发送的文件变更信息。
在本申请提供的一个实施例中,所述检索单元102包括:
列表生成子单元,用于将接收自每个客户端的所述使用文件信息汇总,生成文件-客户端对应关系列表;
查询子单元,用于根据所述文件变更信息中变更文件的文件名,在所述文件-客户端对应关系列表中查询使用所述变更文件的客户端。
在本申请提供的一个实施例中,所述校验码包括以下至少一种:HASH值,SHA值,MD5值,MD2值,MD3值,MD4值。
在本申请提供的一个实施例中,所述文件变更推送信息还包括:变更记录ID,和/或推送的时间戳。
在本申请提供的一个实施例中,所述推送单元103是通过消息推送服务发送文件变更推送信息的。
在本申请提供的一个实施例中,所述消息推送服务是指分布式配置管理服务。
在本申请提供的一个实施例中,所述通过服务端实现客户端文件同步的装置还包括:连接状况判断单元,用于接收客户端发送的心跳信息,根据所述心跳信息判断客户端的连接状况。
在本申请提供的一个实施例中,所述通过服务端实现客户端文件同步的装置还包括:
更新报告接收单元,用于接收所述客户端发送的文件更新报告;
更新报告汇总单元,用于汇总各个客户端发送的文件更新报告,生成更新结果报告。
在本申请提供的一个实施例中,所述通过服务端实现客户端文件同步的装置还包括:更新报告判断单元,用于接收客户端发送的心跳信息,根据所述心跳信息判断所述客户端是否在预定的时间内返回文件更新报告,若否,则发出提醒信息。
以上,为本申请提供的一种通过服务端实现客户端文件同步的装置实施例。
请参考图3,其为本申请提供的一种客户端文件同步的方法实施例的流程图,本方法实施例与上述通过服务端实现客户端文件同步的方法实施例是对应的,其执行主体是客户端,所述客户端文件同步的方法包括如下步骤:
S201,收集应用使用的使用文件信息,并将所述使用文件信息发送到服务端,所述使用文件信息包括应用使用的使用文件的文件名。
本步骤,首先由所述客户端收集应用使用的使用文件信息,所述使用文件信息包括应用使用的使用文件的文件名,所述应用即应用程序,所述客户端的下位设有至少一个应用程序,所述客户端收集应用使用的使用文件信息可以是所述应用将其使用文件信息发送给所述客户端,也可以是由所述客户端搜集其下位应用的使用文件信息。
所述客户端收集了其下位所有应用的使用文件信息后,将其汇总,并将所述使用文件信息发送到服务端,以供所述服务端根据文件变更信息及所述使用文件信息,检索出使用所述变更文件的客户端。
S202,接收所述服务端发送的文件变更推送信息,所述文件变更推送信息包括客户端的所有使用文件的文件名和所有所述使用文件的最新校验码,其中,对于变更文件,所述使用文件的最新校验码即为所述变更文件的校验码,所述变更文件是指文件生成系统生成的变更后的文件,所述校验码是文件的唯一性识别码,当所述文件被修改后其校验码也发生变化。
本步骤,接收所述服务端发送的文件变更推送信息,所述文件变更推送信息包括客户端的所有使用文件的文件名和所有所述使用文件的最新校验码,其中,对于变更文件,所述使用文件的最新校验码即为所述变更文件的校验码,所述变更文件是指文件生成系统生成的变更后的文件,所述校验码是文件的唯一性识别码,当所述文件被修改后其校验码也发生变化;所述校验码可以是以下任意一种:HASH值,SHA值,MD5值,MD2值,MD3值,MD4值;在本申请的一个优选实施例中,所述校验码采用MD5值。除上述校验码外,还有多种形式的能够标识文件唯一性的识别码,此处不再赘述,其也能够用于完成本申请的目的,也在本申请的保护范围之内。
为了对同步结果进行监控,所述文件变更推送信息还可以包括变更记录ID或推送的时间戳,也可以同时包括所述变更记录ID和所述推送的时间戳,这样,所述客户端在接收到所述文件变更推送信息后可以根据所述变更记录ID或所述 推送的时间戳生成文件更新报告并反馈给所述服务端,所述服务端即可根据所述文件更新报告中的所述变更记录ID或所述推送的时间戳判断所述文件变更推送信息是否都已得到处理、对应的文件同步是否完成、是否正确等。
S203,根据所述文件变更推送信息查找出需要更新的本地文件。
通过步骤S202,已接收所述服务端发送的文件变更推送信息,由于文件变更推送信息包括客户端的所有使用文件的文件名和所有所述使用文件的最新校验码,因此,本步骤的具体实施方式可以是:首先解析所述文件变更推送信息,获得客户端的所有使用文件的文件名和所有所述使用文件的最新校验码;然后根据所述使用文件的文件名查找同名的本地文件;再依次比较所述本地文件的校验码与所述使用文件的最新校验码是否一致,其中不一致的本地文件为需要更新的本地文件。
S204,通过文件读取服务读取与所述需要更新的本地文件对应的变更文件,并将所述变更文件写到本地磁盘覆盖所述本地文件。
通过步骤S203,已根据所述文件变更推送信息查找出需要更新的本地文件,接下来,通过文件读取服务读取与所述需要更新的本地文件对应的变更文件,并将所述变更文件写到本地磁盘覆盖所述本地文件。
所述通过文件读取服务读取变更文件可以是从文件生成系统上读取,也可以是从文件存储服务器上读取,其均在本申请的保护范围之内。
在一个具体的实施例中,为所述客户端提供应用使用的读取文件的工具API(应用程序编程接口),该API首先判断读取的变更文件是否在本地磁盘存在,如果存在,则直接读取;如果变更文件不存在,则通过文件读取服务读取变更文件,然后写入到本地磁盘。在读取文件后,将文件名及校验码记录在内存中。
至此,通过步骤S201至S204完成了本申请提供的客户端文件同步的方法流程,需要说明的是,本方法实施例是以客户端为执行主体的,是与上述以服务端为执行主体的通过服务端实现客户端文件同步的方法实施例配合执行的,本申请提供的客户端文件同步的方法是所述客户端执行的文件同步中的部分步骤。
考虑到所述服务端发送文件变更推送信息时,某个客户端因机器问题、网络问题或其他问题未收到所述文件变更推送信息,或者某个客户端完成了文件同步,但由于机器问题、网络问题或其他问题未能将文件更新报告反馈给所述 服务端,导致文件同步不能及时完成或文件同步结果无法监控,因此,为了能够获取所述服务端与所有客户端的连接状况,这些客户端需周期性的向所述服务端发送心跳信息,而所述服务端则接收客户端发送的心跳信息,根据所述心跳信息判断客户端的连接状况,当在预定的时间内未接收到某个客户端发送心跳信息,则可判断所述服务端与所述客户端的连接故障,此时可以通知用户排查故障原因进而排除故障,避免因连接故障造成业务损失。
为了对同步结果进行监控,所述客户端在完成文件同步后需要生成文件更新报告并反馈给所述服务端,由服务端监控文件同步结果,完成闭环。所述文件更新报告包括:变更记录ID,变更文件的文件名和更新结果;所述变更记录ID是由服务端生成的文件变更推送信息的组成内容之一。
考虑到若由于机器故障、网络故障或其他故障导致通过文件读取服务读取变更文件失败,从而造成文件同步不及时的情形,在本申请提供的一个实施例中,所述客户端文件同步的方法还包括:
若通过所述文件读取服务读取变更文件失败,则重试读取预定的次数;
在重试次数超过预定的次数时,发出文件更新失败的提醒信息。
以上,为本申请提供的一种客户端文件同步的方法实施例。
在上述的实施例中,提供了一种客户端文件同步的方法,与之相对应的,本申请还提供一种客户端文件同步的装置。请参考图4,其为本申请提供的一种客户端文件同步的装置实施例的示意图。由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。
本申请提供的一种客户端文件同步的装置实施例中,所述客户端文件同步的装置包括:
收集单元201,用于收集应用使用的使用文件信息,并将所述使用文件信息发送到服务端,所述使用文件信息包括应用使用的使用文件的文件名;
推送信息接收单元202,用于接收所述服务端发送的文件变更推送信息;
本地文件查找单元203,用于根据所述文件变更推送信息查找出需要更新的本地文件;
更新单元204,用于通过文件读取服务读取与所述需要更新的本地文件对应的变更文件,并将所述变更文件写到本地磁盘覆盖所述本地文件。
在本申请提供的一个实施例中,所述本地文件查找单元203包括:
解析子单元,用于解析所述文件变更推送信息,获得客户端的所有使用文件的文件名和所有所述使用文件的最新校验码;
本地文件查找子单元,用于根据所述使用文件的文件名查找同名的本地文件;
比较子单元,用于依次比较所述本地文件的校验码与所述使用文件的最新校验码是否一致,其中不一致的本地文件为需要更新的本地文件。在本申请提供的一个实施例中,所述校验码包括以下至少一种:HASH值,SHA值,MD5值,MD2值,MD3值,MD4值。
在本申请提供的一个实施例中,所述客户端文件同步的装置还包括:心跳信息发送单元,用于向服务端发送心跳信息。
在本申请提供的一个实施例中,所述客户端文件同步的装置还包括:更新报告发送单元,用于向所述服务端发送文件更新报告。
在本申请提供的一个实施例中,所述客户端文件同步的装置还包括:
重试单元,用于若通过所述文件读取服务读取变更文件失败,则重试读取预定的次数;
提醒单元,用于在重试次数超过预定的次数时,发出文件更新失败的提醒信息。
以上,为本申请提供的一种客户端文件同步的装置实施例。
本申请还提供一种通过服务端实现客户端文件同步的终端设备,作为文件同步的服务端,包括:
中央处理器;
输入输出单元;
存储器;所述存储器中存储有本申请提供的通过服务端实现客户端文件同步的方法;并在启动后能够根据上述方法运行。
由于本终端设备使用上述通过服务端实现客户端文件同步的方法,相关之处请参见上述通过服务端实现客户端文件同步的方法实施例的说明,此处不再赘述。
本申请还提供一种客户端文件同步的终端设备,作为文件同步的客户端, 包括:
中央处理器;
输入输出单元;
存储器;所述存储器中存储有本申请提供的客户端文件同步的方法;并在启动后能够根据上述方法运行。
由于本终端设备使用上述客户端文件同步的方法,相关之处请参见上述客户端文件同步的方法实施例的说明,此处不再赘述。
本申请还提供一种文件同步系统,包括服务端和客户端,所述服务端使用本申请提供的通过服务端实现客户端文件同步的装置,所述客户端使用本申请提供的客户端文件同步的装置。
由于本系统的服务端使用上述通过服务端实现客户端文件同步的装置,本系统的客户端使用上述客户端文件同步的装置;相关之处请参见上述通过服务端实现客户端文件同步的装置实施例以及客户端文件同步的装置实施例的说明,此处不再赘述。
在一个具体的实施例中,所述文件同步系统为文件同步系统filesync,其主要由两部分组成:服务端(filesync-server)、客户端(filesync-client),
其中,所述服务端用于收集客户端的信息、总体控制、监控客户端等功能,主要由以下几个单元组成:
获取单元、检索单元、推送单元、连接状况判断单元、更新报告接收单元、更新报告汇总单元、更新报告判断单元。
所述客户端部署在使用filesync的应用之上,用于完成filesyc的相关工作,主要由以下几个单元组成:
收集单元、推送信息接收单元、本地文件查找单元、更新单元、心跳信息发送单元、更新报告发送单元、重试单元、提醒单元。
所述文件同步系统filesync的运行过程如下:
1、客户端收集使用文件信息:客户端的收集单元收集应用使用的使用文件信息,并将所述使用文件信息发送到服务端的获取单元。
2、服务端接收使用文件信息及获取文件变更信息:服务端的获取单元接收客户端的收集单元发送的使用文件信息,并获取文件生成系统发送的文件变更 信息。
3、服务端检索需要同步的客户端:服务端的检索单元根据所述文件变更信息及所述使用文件信息,检索出使用变更文件的客户端。
4、服务端推送文件变更推送信息:服务端的推送单元向使用变更文件的客户端发送文件变更推送信息。
5、客户端接收文件变更推送信息:客户端的推送信息接收单元接收所述服务端发送的文件变更推送信息。
6、客户端判断文件是否需要更新:客户端的本地文件查找单元根据所述文件变更推送信息查找出需要更新的本地文件。
7、客户端文件更新:客户端的更新单元在接收到本地文件查找单元发出的需要更新的本地文件的信息后,通过文件读取服务读取变更文件,并将所述变更文件写到本地磁盘。
8、客户端发送更新报告:客户端的更新报告发送单元向所述服务端发送文件更新报告。
9、服务端监控更新结果:服务端的更新报告接收单元接收所述客户端发送的文件更新报告;然后由服务端的更新报告汇总单元汇总各个客户端发送的文件更新报告,生成更新结果报告。
10、更新结果异常判断:服务端的更新报告判断单元接收客户端发送的心跳信息,根据所述心跳信息判断所述客户端是否在预定的时间内返回文件更新报告,若否,则发出提醒信息。
11、客户端更新失败重试及提醒:客户端的重试单元在更新单元读取变更文件失败时,发起重试读取预定的次数;客户端的提醒单元在更新单元读取变更文件失败的次数超过预定的次数时,发出文件更新失败的提醒信息。
12、连接状况判断:客户端的心跳信息发送单元向服务端发送心跳信息,服务端的连接状况判断单元接收客户端的心跳信息发送单元发送的心跳信息,根据所述心跳信息判断客户端的连接状况,本步骤贯穿整个运行过程。本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出 接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
1、计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
2、本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。