一种文件同步方法及文件同步系统的制作方法

文档序号:7715519阅读:190来源:国知局
专利名称:一种文件同步方法及文件同步系统的制作方法
技术领域
本发明涉及无线通讯技术领域,尤其涉及一种在客户端和服务器端同步文件的方
法和系统。
背景技术
随着移动设备的日益普及和功能的增强,移动设备之间的同步业务需求逐渐增 多,以移动终端为例,移动终端中基于SyncML(同步标记语言)的文件同步业务逐渐被终端 制造商和运营商支持。 以SyncML协议为例,现有的移动设备之间的文件同步过程如图1所示, 其中,客户端指支持该协议的移动设备。 S101、客户端发送需同步的的SyncML数据包给服务器端; SyncML数据包为一个XML文档,其中的数据项为XML文档的项,每一数据项的构建 方法和标签参照SyncML协议标准1. 1进行,数据项中包括标识信息和实际的文件信息。
第一次同步时,客户端发送所有需要同步的文件,包括名片夹、日程表等,给服务 器端。之后的同步根据日志记录,只将上次同步后修改过的文件构建为数据项,放入XML文 档中,构建为数据包发送给服务器端。 S102、服务器端接收到数据包后,解析数据包并提取出其中的数据项;
S103、服务器端根据同步规则确定同步后的文件; 同步规则有如下几种l.需要同步的文件以服务器端为准,2.需要同步的文件以 客户端为准,3.用户自定义规则,比如说新增加的项一律保留等。选用何种同步规则可以由 用户事先选择。 S104、判断是否有需要服务器端本地修改的文件,若有,则执行步骤S105,否则,执 行步骤S106 ; S105、服务器端修改服务器端的本地文件; S106、服务器端构建新的SyncML数据包,并发送给客户端; 在该步骤中,服务器端根据同步规则确定需要客户端修改的数据和修改命令,将 这些数据和命令按照SyncML协议的内容构建成数据包。比如说服务器端的某一条名片内 容与客户端冲突,如果同步规则为"需同步的文件以服务器端为准",则将服务器端存储的 该条名片的内容和需要客户端修改该数据的命令,按照协议内容构建为数据项放入XML文 档中,将本次同步所有需要客户端修改的文件内容及命令都构建为数据项并放入XML文档 中后,将该文档构建为SyncML数据包,发送给客户端。 S107、客户端接收到服务器端发送的数据包后,解析数据包,提取其中的数据项, 修改本地数据,一直到所有本次同步需修改的数据全部修改完毕;
S108、同步过程结束,客户端和服务器端互发确认数据包。 在文件同步过程中,同步速度受到设备数据传输能力与移动设备处理能力限制与 影响,在数据量较小的情况下,同步过程将很快完成。但是很多情况下,需要同步的文件包含了各种图片,音乐甚至是视频,数据量较大,对于服务器端和客户端的的双向同步,即根 据同步规则客户端和服务器端都需要修改数据的同步,客户端要将自己的数据提供给服务 器端,而服务器端要根据客户端的数据做出修改,最后再返回客户端。整个过程,数据双向 传输了两次,当数据量较大时,等待时间很长。 此外,在SyncML协议下的数据传输时还面临着一个问题,由于传输协议是基于 XML文档的,电话本记录等以文本形式存储的数据可以直接放入XML文档中,但图片、音频、 视频等类型的文件是以二进制文件形式存储的,在同步二进制文件时,根据协议内容必须 先对二进制文件进行编码,转化成ASCII文本后才能放入XML文档中。编码转换后的文件的 长度相当于原来的1.3倍左右,这样极大的影响了传输效率。同时,对较大数据进行编码, 浪费了 CPU的时间,而对长度较大的XML文档构成的数据包进行的解析工作也比较复杂,增 加了出错的几率。

发明内容
本发明要解决的技术问题是提供一种文件同步方法、客户端及文件同步系统,解
决由于现有的同步方法导致的等待时间长、传输效率低、出错率较高等问题。
为解决上述技术问题,本发明提供了一种文件同步方法,其特征在于 客户端选择需要同步的文件,并将所述文件构建成数据项,发送给服务器端,所述
数据项中包括所述文件的文件信息和对所述文件执行操作所需的命令; 所述服务器端接收到所述数据项后,根据预定的同步规则,选择对所述需要同步 的文件执行的命令,将命令发送给客户端执行。 优选地,所述客户端选择需要同步的文件,并将该文件构建成数据项的过程,具体 包括 客户端提取该文件的文件信息并填加对该文件执行操作所需的命令,构建成数据 项; 其中,所述文件信息至少包括文件名称、文件大小和文件修改时间。 优选地,所述服务器端接收到数据项后,根据预定的同步规则,选择对所述需要同
步的文件执行的命令,具体包括 所述服务器端提取所述数据项中的文件信息,获得所述文件信息中的文件名称、 文件大小和文件修改时间,根据预定的同步规则,通过同步引擎选择对所述需要同步的文 件执行的命令。 优选地,所述同步规则为 需要同步的文件以服务器端为准,或者需要同步的文件以客户端为准,或者用户 自定义。
优选地,所述命令包括读命令、写命令和删除命令。 优选地,当服务器端选择的命令为读命令时,客户端收到该命令后,读取所述需同
步的文件的文件内容,发送给服务器端,服务器端收到后将所述文件内容写入本地。 优选地,当服务器端选择的命令为写命令时,服务器端将所述写命令发送给客户
端,同时将所述服务器端对应的需同步的文件的文件内容一起发送给客户端,客户端接收
到命令后,将文件内容,写入本地。
优选地,当服务器端选择的命令为删除命令时,客户端收到该命令后,删除所述需 同步文件。 本发明还提供了一种客户端,用于与服务器端进行文件同步,所述客户端包括构 建模块、发送模块、接收模块、本地操作模块;其中, 构建模块,用于将所述客户端选择的需要同步的文件构建成数据项,传递给所述 发送模块,其中所述数据项中包括所述需同步的文件的文件信息和对所述文件执行操作所 需的命令; 发送模块,用于将所述数据项发送给服务器端; 接收模块,用于接收服务器端发来的对所述需同步文件执行的命令,并传递给本 地操作模块; 本地操作模块,用于执行所述命令。 更进一步地,本发明还提供了一种文件同步系统,包括服务器端,与上述客户端。
综上所述,本发明中的文件同步方法,在客户端选择需同步的文件时,只将文件信 息发送给服务器端,并不携带需要同步的文件的实际内容,服务器端根据同步规则选择对 文件执行的命令后,由客户端执行相应命令,从而减小了同步文件传输的数据量,提高了传 输效率、同时也降低了出错几率。


图1为现有技术同步文件的流程图;
图2为本发明同步文件的方法的流程图;
图3为本发明实施例文件同步方法的流程图;
图4为本发明实施例文件同步系统的系统结构图。
具体实施例方式
本发明的核心思想是,在执行文件同步操作时,客户端只将需同步的文件的文件 信息提取出来,与对该文件执行操作所需的命令一起构建为数据项,将数据项发送给服务 器端。服务器端按照预先定义的同步规则根据数据项中携带的文件信息确定需要对该文件 执行的命令,将该命令发送给客户端执行,完成文件的同步。
下面结合附图对本发明的具体实施方法进行说明。
如图2所示,为本发明同步文件的方法的流程图。 S201,客户端选择需要同步的文件,并将文件构建成数据项,发送给服务器端,数 据项中包括文件的文件信息和对文件执行操作所需的命令 S202,服务器端接收到数据项后,根据预定的同步规则,选择对需要同步的文件执 行的命令,将命令发送给客户端执行 下面结合附图对本发明的具体实施方法进行说明。
如图3所示,本发明同步文件的方法流程具体处理如下
S301、同步初始化,客户端和服务器端交换数据能力。 在同步初始化时客户端和服务器端之间首先交换同步能力。两者通过在初始化数 据包和响应消息中加入一标记来表示是否支持新的文件同步方法,本实施例中,通过填加〈HUGE〉标签来表示。如果客户端支持新的文件同步方式,则在初始化包中的〈SyncHdr〉标 记中包含〈HUGE〉标签。如果服务器端也支持新的文件同步方法,则当服务器端在接收到客 户端发来的初始化消息时,检查其中是否包含了 〈HUGE〉标签,如果包含,则服务器在响应 消息中也包含这个标签。 如果服务器端不支持新的文件同步方法,则忽略〈HUGE〉标签,在给客户端的响应 消息中也不会包含有〈HUGE〉标签。 如果是服务器端支持新的同步方法,而客户端不支持,则客户端的初始化消息中 不包含〈HUGE〉标签。 S302、判断双方是否支持新的文件同步方法,如果支持,则转步骤S203,否则,按照 现有的文件同步方法进行文件同步。 S303、客户端根据日志记录,选择上次同步后又修改过的文件,作为本次需同步的 文件,针对每个文件构建一个数据项。客户端将构建好的数据项放入XML文档中,待本次需 同步的所有文件对应的数据项都构建好放入XML文档后,将该XML文档构建为同步数据包, 发送给服务器端。 其中,数据项的内容只包括该文件的文件信息以及对该文件执行操作所需的命 令,不包括文件的实际数据内容。数据项的结构如下
表1.数据项基本结构
文件名称
GUID
LUID
文件大小
最近修改时间
读文件命令
写文件命令
删除文件命令 上表中,GUID为数据项的全局唯一标识,LUID为数据项的本地唯一标识。用来区 分不同的数据。 现有的文件同步是根据同步文件类型的不同,定义为不同的数据项类型,比如定 义为日程表项、电话簿项、图片项等,每一数据项中都包含该文件的实际数据内容,对于不 同的数据项类型,数据项所包含的实际数据内容会有不同。 本发明的文件同步方法,提供一种新的数据项类型来支持该种文件同步方法。对这种数据项定义一个类型,以便SyncML对其进行识别,在本实施例中定义该种数据项类型 为huge。。 在对需同步的文件构建huge类型数据项时,先对该文件进行分析,得到该文件的 文件信息,文件信息至少包括文件名称、文件大小和文件修改时间,将该文件的文件信息与 服务器端对该文件执行操作所需的命令作为huge类型数据项的内容。 其中,文件信息用于服务器端判断需要对该数据项对应的文件执行何种操作;命 令用于服务器端选择相应操作所对应的命令发给客户端执行。 在该步骤中也可以根据实际情况,只对数据量较大的文件采用该种方式进行传
输,数据量较大的文件可以用户自己定义,比如,只对需要同步的包含音频、视频内容的文
件采用新的数据传输方式,其他数据量较小的文件采用现有的方法进行同步。 S304、服务器端接收到数据包,解析并提取其中的数据项,若是huge类型的数据
项,则根据数据项中的文件信息与本地数据做出比较,根据同步规则,决定同步文件的最终
结果,即确定哪些数据项对应的文件内容在本次同步过程中需要进行修改。 S305、服务器端取得需要修改的文件的数据项内容,提取其中的命令,根据同步的
结果,选择对该文件需要执行的命令,发送给客户端。 本步骤中,若根据同步规则,同步结果是需要服务器端修改文件以保持跟客户端 文件内容的一致,则服务器端针对该文件选取的命令为读命令;若根据同步规则,同步结果 是客户端需要修改文件以保持跟服务器端内容的一致,则针对该文件服务器端选取的命令 为写命令;若根据同步规则,同步结果是需要客户端删除该文件,则针对该文件服务器端选 取的命令为删除命令;若根据同步规则同步结果为服务器端需要删除某一文件,则服务器 端直接删除该文件,不需要发送命令给客户端执行。
S306 、客户端提取命令; S307、客户端判断命令的有效性,若命令有效则执行步骤S308,否则,执行步骤
S310 ; S308、客户端判断需操作的文件是否存在,若存在,则执行步骤S309,否则,执行步 骤S310 ; S309、根据命令对文件执行相应的操作,如读、写、删除等。 当服务器端选择的命令为读命令时,客户端收到该命令后,读取该文件的文件内 容,发送给服务器端,服务器端收到后将所述文件内容写入本地。 当服务器端选择的命令为写命令时,服务器端将写命令与服务器端对应的所述需 同步的文件的文件内容一起发送给客户端,客户端接收到命令后,将该文件内容,写入本 地。 当服务器端选择的命令为删除命令时,客户端收到该命令后,删除该文件。
S310、判断是否还有未执行的命令,若有,则转步骤S306,否则,执行步骤S311。
S311 、同步完成,客户端与服务器端互发确认数据包。 以上以客户端与服务器端遵循SyncML协议进行文件传输为例,对该同步方法进 行说明,当然,客户端与服务器端双方也可以以其他双方支持的传输协议执行文件同步操 作,其方法与此类似,在此不再赘述。其中,客户端可以是指移动终端等移动设备,服务器端 可以是PC机,也可以是运营商提供的支持同步业务的服务器等。端, 其中,客户端用于进行与服务器端的文件同步,包括构建模块、发送模块、接收模 块、本地操作模块 构建模块401,用于将客户端选择的需要同步的文件构建成数据项,传递给发送模 块,其中数据项中包括需同步的文件的文件信息和对该文件执行操作所需的命令;
发送模块402,用于将数据项发送给服务器端; 接收模块403,用于接收服务器端发来的对需同步文件执行的命令,并传递给本地 操作模块; 本地操作模块404,用于执行接收模块传递过来的命令。
其中命令包括读命令、写命令和删除命令。 当服务器端发送给接收模块403的命令是读命令时,本地操作模块404接收到该 命令后,读取需同步的文件的文件内容,发送给服务器端; 当服务器端发送给接收模块403命令是写命令时,服务器端将写命令与服务器端 对应的需同步的文件的文件内容一起发送接收模块,本地操作模块404接收到该命令后, 提取其中的文件内容,写入本地。 当服务器端发送给接收模块403的命令为删除命令时,本地操作模块404接收到 该命令后,删除需同步文件。 服务器端,用于接收到客户端发来的数据项后,根据预定的同步规则,选择对需要 同步的文件执行的命令,将命令发送给客户端执行。 若根据同步规则,同步结果是需要服务器端修改文件以保持跟客户端文件内容的 一致,则服务器端针对该文件选取的命令为读命令;若根据同步规则,同步结果是客户端需 要修改文件以保持跟服务器端内容的一致,则针对该文件服务器端选取的命令为写命令; 若根据同步规则,同步结果是需要客户端删除该文件,则针对该文件服务器端选取的命令 为删除命令;若根据同步规则同步结果为服务器端需要删除某一文件,则服务器端直接删 除该文件,不需要发送命令给客户端执行。 应当理解的是,对本发明技术所在领域的普通技术人员来说,可以根据本发明的 技术方案及其构思进行相应的等同改变或替换,而所有这些改变或替换,都应属于本发明 所附权利要求的保护范围。
权利要求
一种文件同步方法,其特征在于客户端选择需要同步的文件,并将所述文件构建成数据项,发送给服务器端,所述数据项中包括所述文件的文件信息和对所述文件执行操作所需的命令;所述服务器端接收到所述数据项后,根据预定的同步规则,选择对所述需要同步的文件执行的命令,将命令发送给客户端执行。
2. 如权利要求1所述的方法,其特征在于,所述客户端选择需要同步的文件,并将该文件构建成数据项的过程,具体包括客户端提取该文件的文件信息并填加对该文件执行操作所需的命令,构建成数据项;其中,所述文件信息至少包括文件名称、文件大小和文件修改时间。
3. 如权利要求2所述的方法,其特征在于,所述服务器端接收到数据项后,根据预定的同步规则,选择对所述需要同步的文件执行的命令,具体包括所述服务器端提取所述数据项中的文件信息,获得所述文件信息中的文件名称、文件大小和文件修改时间,根据预定的同步规则,通过同步引擎选择对所述需要同步的文件执行的命令。
4. 如权利要求1-3中任一项所述的方法,其特征在于,所述同步规则为需要同步的文件以服务器端为准,或者需要同步的文件以客户端为准,或者用户自定义。
5. 如权利要求1-3中任一项所述的方法,其特征在于,所述命令包括读命令、写命令和删除命令。
6. 如权利要求5所述的文件同步方法,其特征在于,当服务器端选择的命令为读命令时,客户端收到该命令后,读取所述需同步的文件的文件内容,发送给服务器端,服务器端收到后将所述文件内容写入本地。
7. 如权利要求5所述的文件同步方法,其特征在于,当服务器端选择的命令为写命令时,服务器端将所述写命令与服务器端对应的需同步的文件的文件内容一起发送给客户端,客户端接收到命令后,提取其中的文件内容,写入本地。
8. 如权利要求5所述的文件同步方法,其特征在于,当服务器端选择的命令为删除命令时,客户端收到该命令后,删除所述需同步文件。
9. 一种客户端,用于与服务器端进行文件同步操作,其特征在于,所述客户端包括构建模块、发送模块、接收模块、本地操作模块;其中,构建模块,用于将所述客户端选择的需要同步的文件构建成数据项,传递给所述发送模块,其中所述数据项中包括所述需同步的文件的文件信息和对所述文件执行操作所需的命令;发送模块,用于将所述数据项发送给服务器端;接收模块,用于接收服务器端发来的对所述需同步文件执行的命令,并传递给本地操作模块;本地操作模块,用于执行所述命令。
10. —种文件同步系统,包括服务器端,其特征在于还包括权利要求9所述的客户端,所述服务器端,用于接收到客户端发来的数据项后,根据预定的同步规则,选择对需要 同步的文件执行的命令,将命令发送给客户端执行。
全文摘要
本发明提供了一种文件同步方法,包括客户端选择需要同步的文件,并将所述文件构建成数据项,发送给服务器端,所述数据项中包括所述文件的文件信息和对所述文件执行操作所需的命令;所述服务器端接收到所述数据项后,根据预定的同步规则,选择对所述需要同步的文件执行的命令,将命令发送给客户端执行。本发明还提供了一种文件同步系统。本发明客户端通过在同步时只发送需同步的文件的文件信息给服务器端,收到服务器端选择的对需同步的文件命令时,再执行命令进行相应操作,从而提高了文件同步过程的传输效率。
文档编号H04L29/08GK101702732SQ20091019039
公开日2010年5月5日 申请日期2009年9月23日 优先权日2009年9月23日
发明者文非易 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1