CN102483715B - 数据同步系统以及数据同步方法 - Google Patents

数据同步系统以及数据同步方法 Download PDF

Info

Publication number
CN102483715B
CN102483715B CN201080039401.8A CN201080039401A CN102483715B CN 102483715 B CN102483715 B CN 102483715B CN 201080039401 A CN201080039401 A CN 201080039401A CN 102483715 B CN102483715 B CN 102483715B
Authority
CN
China
Prior art keywords
data
server
time point
information
client
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201080039401.8A
Other languages
English (en)
Other versions
CN102483715A (zh
Inventor
荒木义明
石塚进
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
KII Corp
Original Assignee
KII Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from JP2009204686A external-priority patent/JP5061166B2/ja
Application filed by KII Corp filed Critical KII Corp
Publication of CN102483715A publication Critical patent/CN102483715A/zh
Application granted granted Critical
Publication of CN102483715B publication Critical patent/CN102483715B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明的课题在于,在客户端与服务器之间对数据进行同步的情况下,能够降低服务器的负荷。为此,客户端(10)将包含锚时间点的同步请求(41)发送到服务器(20)。服务器(20)将包含针对在从锚时间点到边界时间点为止的期间被更新了的数据的变更特征信息、和针对锚时间点之后的变更历史记录的变更特征信息在内的同步信息(42)发送到客户端(10)。客户端(10)基于同步信息(42)将下载请求(43)发送到服务器(20),服务器(20)根据下载请求(43)将下载信息(44)发送到客户端(10)。客户端(10)将下载信息(44)所包含的数据登记到客户端数据库(11)中。

Description

数据同步系统以及数据同步方法
技术领域
本发明涉及数据同步系统以及数据同步方法。
背景技术
正在进行在便携式电话等客户端与服务器之间对数据进行同步。客户端定期询问被变更的数据的有无,在存在被更新了的数据的情况下对该数据进行下载。在现有技术中,服务器通过保留变更历史记录,来对数据的变更的有无进行管理。例如,在专利文献1中,通过保存第2数据库的更新历史记录,并在更新历史记录的件数大于阈值时开始同步,从而使得不会发生在一次数据同步中大量的信息被收发的情况。
在先技术文献
专利文献
专利文献1:JP特开2004-86800号公报
发明要解决的课题
但是,便携式电话等客户端不一定总是能够与服务器通信,在服务器与客户端之间的通信不能进行的时间较长的情况下,需要存储到变为能够通信之前的期间的所有变更历史记录,而且,在服务器与多个客户端进行通信的情况下,需要按照每个客户端来管理同步到了哪里。
发明内容
本发明鉴于这种背景而作,目的在于提供一种在客户端与服务器之间对数据进行同步的情况下能够减小服务器的负荷的数据同步系统以及数据同步方法。
解决课题的手段
用于解决上述课题的本发明的主要发明是一种数据同步系统,其在服务器、和按照能够与所述服务器通信的方式连接的客户端之间对数据进行 同步,所述数据同步系统的特征在于,所述服务器能够访问第1数据库,其中该第1数据库存储包含更新时间点的数据,所述客户端能够访问第2数据库,其中该第2数据库存储从所述服务器取得的数据,所述客户端具备:锚时间点存储部,其存储锚时间点、即从所述服务器最后取得了所述数据的时间点;和同步请求发送部,其将包含所述锚时间点的同步请求发送到所述服务器,所述服务器具备:变更信息取得部,其从所述第1数据库中检索所述更新时间点比所述锚时间点晚的所述数据、即更新数据,并针对所述各更新数据生成包含表示所述更新数据的数据ID以及所述更新数据的所述更新时间点在内的变更信息;和同步信息发送部,其将包含所述变更信息的同步信息发送到所述客户端,所述客户端具备:下载决定部,其从与所述变更信息相对应的所述数据中,决定应下载的数据、即取得数据;和下载请求发送部,其将包含表示所述取得数据的数据ID在内的下载请求发送到所述服务器,所述服务器具备:数据取得部,其从所述第1数据库中取得与所述下载请求所包含的所述数据ID相对应的所述数据;和下载信息发送部,其将包含所述取得的数据在内的下载信息发送到所述客户端,所述客户端具备:更新处理部,其将所述下载信息所包含的所述数据登记到所述第2数据库中。
此外,在本发明的数据同步系统中,也可以采用如下方式:所述下载决定部,针对所述各变更信息,从所述第2数据库中取得与所述变更信息所包含的所述数据ID相对应的所述数据所包含的所述更新时间点,在从所述第2数据库取得的所述更新时间点比所述变更信息所包含的所述更新时间点旧的情况下,决定对该数据进行下载,在从所述第2数据库取得的所述更新时间点比所述变更信息所包含的所述更新时间点新的情况下,根据来自用户的设定,来决定是否对该数据进行下载。
此外,在本发明的数据同步系统中,也可以采用如下方式:所述服务器具备:服务器变更历史记录存储部,其存储包含表示从所述第1数据库中被删除了的所述数据的所述数据ID以及删除时间点在内的变更历史记录;和变更历史记录取得部,其从所述服务器变更历史记录存储部中取得包含比所述同步请求所包含的所述锚时间点晚的所述删除时间点在内的所述变更历史记录,所述同步信息发送部还将所述变更历史记录取得部所取得的所述变更历史记录包含在所述同步信息中,所述客户端具备:删除处理部,其将与所述同步信息所包含的所述变更历史记录相对应的所述数据从所述第2数据库中删除。
此外,在本发明的数据同步系统中,也可以采用如下方式:所述服务器具备:服务器变更历史记录存储部,其针对从所述第1数据库中被删除了的数据,将包含表示所述被删除了的数据的数据ID以及删除时间点在内的变更历史记录按照所述删除时间点的新旧顺序存储规定数量,所述变更信息取得部从所述服务器变更历史记录存储部中取得包含比所述锚时间点晚的所述删除时间点在内的所述变更历史记录,所述同步信息发送部,除了所述变更信息之外,还将所述服务器变更历史记录存储部所存储的所述变更历史记录中所包含的最旧的所述删除时间点、即边界时间点、以及所述取得的变更历史记录包含在所述同步信息中发送到所述客户端,所述客户端具备:删除处理部,其从所述第2数据库中删除与所述同步信息所包含的所述变更历史记录相对应的所述数据;和陈旧化信息取得部,其在所述锚时间点比所述边界时间点早的情况下,从存储在所述第2数据库中的所述数据中,检索所述数据的所述更新时间点比所述边界时间点早、并且包含表示所述数据的数据ID在内的所述变更信息没有包含在所述同步信息中的数据,针对所述检索出的各数据,生成包含表示所述数据的数据ID以及所述数据的所述更新时间点在内的陈旧化信息,所述下载请求发送部除了所述数据ID之外,还将所述陈旧化信息包含在所述下载请求中发送到所述服务器,所述数据取得部进一步针对所述下载请求所包含的所述各陈旧化信息,判定与所述陈旧化信息相对应的所述数据是否存储在所述第1数据库中,并将表示判定为没有存储在所述第1数据库中的所述数据的所述数据ID,作为表示被删除了的数据的删除ID而包含在所述下载信息中,所述删除处理部将与所述下载信息所包含的所述删除ID相对应的所述数据从所述第2数据库中删除。
此外,在本发明的数据同步系统中,也可以采用如下方式:所述客户端具备:冲突解除部,其针对所述同步信息所包含的所述各变更信息,从所述第2数据库中读出与所述变更信息所包含的所述数据ID相对应的所述数据的所述更新时间点,在所述读出的更新时间点比所述变更信息所包含的所述更新时间点新的情况下,决定将与所述数据ID相对应的所述数据上传到所述服务器还是从所述服务器进行下载,所述下载请求发送部将进一步包含表示由所述冲突解除部决定了进行下载的所述数据的所述数据ID在内的所述下载请求发送到所述服务器,所述客户端具备:解除请求发送部,其从所述第2数据库中读出由所述冲突解除部决定了进行上传的所述数据,并将包含读出的所述数据的解除请求发送到所述服务器,所述服务器具备:解除处理部,其将所述解除请求所包含的所述数据登记到所述第1数据库中。
此外,本发明的另一方式是一种数据同步系统,其在服务器、和按照能够与所述服务器通信的方式连接的客户端之间对数据进行同步,所述数据同步系统的特征在于,所述服务器能够访问存储附带有更新时间点的数据的第1数据库,所述客户端能够访问存储从所述服务器取得的数据的第2数据库,所述服务器具备:服务器变更历史记录存储部,其将针对所述第1数据库的数据的变更历史记录按照新旧顺序存储规定数量,所述服务器变更历史记录存储部所存储的所述变更历史记录、即服务器变更历史记录,包含表示成为变更对象的所述数据的数据ID、和该数据中所附带的所述更新时间点,所述客户端具备:锚存储部,其存储锚时间点、即从所述服务器最后取得了所述数据的时间点;和同步请求发送部,其将包含用于取得所述数据的条件以及所述锚时间点在内的同步请求发送到所述服务器,所述服务器具备:变更历史记录取得部,其从所述服务器变更历史记录存储部中,取得与符合所述同步请求所包含的所述条件的所述数据相对应的所述服务器变更历史记录之中、所述更新时间点比所述锚时间点晚的所述服务器变更历史记录;变更信息取得部,其从所述第1数据库中,检索符合所述同步请求所包含的所述条件的所述数据之中、所述更新时间点比所述锚时间点晚,且比存储在所述服务器变更历史记录存储部中的最旧的所述更新时间点、即边界时间点早的数据,针对所述检索出的各数据,生成包含表示所述数据的所述数据ID以及所述数据中所附带的所述更新时间点在内的变更信息;和同步信息发送部,其将包含所述边界时间点、所述取得的服务器变更历史记录、以及所述变更信息在内的同步信息发送到所述客户端,所述客户端具备:下载决定部,其从与所述同步信息所包 含的所述服务器变更历史记录或者所述变更信息相对应的所述数据中决定应下载的数据;陈旧化信息取得部,其从所述第2数据库中,检索符合所述条件的所述数据之中、所述更新时间点在从所述锚时间点到所述边界时间点为止的期间的数据,并针对所述检索出的各数据,生成包含表示所述数据的所述数据ID以及所述数据中所附带的所述更新时间点在内的陈旧化信息;和下载请求发送部,其将包含表示所述决定的数据的取得数据ID以及所述陈旧化信息在内的下载请求发送到所述服务器,所述服务器具备:数据取得部,其从所述第1数据库中取得与所述下载请求所包含的所述陈旧化信息相对应的所述数据之中、所述更新时间点比所述陈旧化信息所包含的所述更新时间点新的数据、和与所述取得数据ID相对应的所述数据;和下载信息发送部,其将包含所述取得的数据的下载信息发送到所述客户端,所述客户端具备:更新处理部,其将所述下载信息所包含的所述数据登记到所述第2数据库中。
此外,在本发明的数据同步系统中,也可以采用如下方式:在所述服务器变更历史记录中还包含表示数据的变更是数据的追加、更新或者删除的哪一种的变更种类信息,所述客户端具备:删除处理部,当接收到所述同步信息时,针对所述同步信息所包含的所述服务器变更历史记录之中、所述变更种类信息为删除的服务器变更历史记录,从所述第2数据库中删除所述服务器变更历史记录所包含的所述数据ID所示的所述数据。
此外,在本发明的数据同步系统中,也可以采用如下方式:所述数据取得部针对所述下载请求所包含的所述陈旧化信息之中、与所述陈旧化信息所包含的所述数据ID相对应的所述数据没有被登记在所述第1数据库中的陈旧化信息,将包含所述陈旧化信息所包含的所述数据ID的删除信息设定在所述下载信息中,所述客户端具备:删除处理部,其在所述下载信息中包含有所述删除信息的情况下,从所述第2数据库中删除与所述删除信息所包含的所述数据ID相对应的所述数据。
此外,在本发明的数据同步系统中,也可以采用如下方式:在所述数据中,还附带栏、即基于所述数据的内容而被生成的、用于判定所述数据是否符合所述条件的信息,在所述服务器变更历史记录中,还包含表示数据的变更是数据的追加、更新或者删除的哪一种的变更种类信息、和所述 数据中所附带的所述栏,所述变更历史记录取得部在所述服务器变更历史记录中,取得所述栏符合所述同步请求所包含的所述条件,并且所述更新时间点比所述锚时间点晚的服务器变更历史记录,所述变更信息取得部在存储在所述第1数据库中的所述数据中,检索所述数据中所附带的所述栏符合所述同步请求所包含的所述条件、并且所述更新时间点比所述锚时间点晚且比所述边界时间点早的数据,针对所述检索出的各数据,将表示所述数据的所述数据ID、所述数据中所附带的所述更新时间点、以及所述数据所包含的所述栏设定在所述变更信息中,所述陈旧化信息取得部,在存储在所述第2数据库中的数据中,检索所述栏符合所述条件、并且所述更新时间点在所述锚时间点到所述边界时间点为止的期间的数据。
此外,在本发明的数据同步系统中,也可以采用如下方式:在所述数据中,还附带提示、即基于所述数据的内容而被生成的、用于决定在所述客户端是否应对所述数据进行下载的信息,在所述服务器变更历史记录中,还包含表示数据的变更是数据的追加、更新或者删除的哪一种的变更种类信息、和所述数据中所附带的所述提示,所述变更信息取得部针对所述检索出的各数据,还将所述数据中所附带的所述提示包含在所述变更信息中,所述下载决定部基于所述服务器变更历史记录或者所述变更信息所包含的所述提示来决定所述应下载的数据。
此外,在本发明的数据同步系统中,也可以采用如下方式:所述下载决定部输出所述服务器变更历史记录或者所述变更信息所包含的所述提示,并将与用户所选择的所述输出的提示相对应的所述数据决定为所述应下载的数据。
此外,在本发明的数据同步系统中,也可以采用如下方式:在所述数据中附带所述更新时间点,所述服务器具备:时间点生成部,其生成每当发生针对所述第1数据库的数据的变更时就会变大的数值来作为所述更新时间点,在写入到所述第1数据库中时,所述数据被附带上所述时间点生成部所生成的所述更新时间点。
此外,在本发明的数据同步系统中,也可以采用如下方式:在所述数据中附带所述更新时间点,所述服务器具备:时间点生成部,其在发生针对所述第1数据库的数据的变更时,取得所述服务器中的时间戳,生成在 所述取得的时间戳上连结了所述数据的识别信息后得到的值作为所述更新时间点,在写入到所述第1数据库中时,所述数据被附带上所述时间点生成部所生成的所述更新时间点。
此外,在本发明的数据同步系统中,也可以采用如下方式:所述客户端具备:客户端变更历史记录存储部,其存储所述第2数据库中的数据的变更历史记录,所述客户端变更历史记录存储部所存储的所述变更历史记录、即客户端变更历史记录,包含表示成为变更对象的所述数据的所述数据ID、和所述数据中所附带的所述更新时间点,所述同步请求发送部,从所述客户端变更历史记录存储部中取得与符合所述条件的所述数据相对应的所述客户端变更历史记录,并将所述取得的客户端变更历史记录设定在所述同步请求中发送到所述服务器,所述服务器具备:冲突检测部,其针对所述同步请求所包含的所述客户端变更历史记录的每一个,在与所述客户端变更历史记录所包含的所述数据ID相对应的、所述第1数据库所存储的所述数据中所附带的所述更新时间点比所述客户端变更历史记录所包含的所述更新时间点晚的情况下,生成包含所述第1数据库所存储的所述数据中所附带的所述更新时间点以及所述数据ID在内的冲突信息,所述同步信息发送部将进一步包含所述冲突信息的所述同步信息发送到所述客户端,所述客户端具备:冲突解除部,其决定将与所述冲突信息所包含的所述数据ID相对应的所述数据上传到所述服务器还是从所述服务器进行下载,所述下载请求发送部将进一步包含表示由所述冲突解除部决定了进行下载的所述数据的所述数据ID在内的所述下载请求发送到所述服务器,所述客户端具备:解除请求发送部,其从所述第2数据库中读出由所述冲突解除部决定了进行上传的所述数据,并将包含读出的所述数据的解除请求发送到所述服务器,所述服务器具备:解除处理部,其将所述解除请求所包含的所述数据登记到所述第1数据库中。
此外,在本发明的数据同步系统中,也可以采用如下方式:在所述数据中还附带键、即对所述数据应用规定的算法而求出的数据,在所述服务器变更历史记录以及所述客户端变更历史记录中分别包含所述键,所述服务器具备:重复检测部,其在存储在所述第1数据库中的所述数据中,检索所述键与所述同步请求所包含的所述客户端变更历史记录的任意一个所包含的所述键一致的数据,并生成包含表示所述检索出的数据的所述数据ID在内的重复信息,所述同步信息发送部将进一步包含所述重复信息的所述同步信息发送到所述客户端,所述客户端具备:重复解除部,其在与所述重复信息所包含的所述数据ID相对应的所述数据中,决定应删除的数据,所述解除请求发送部将包含表示由所述重复解除部决定了应删除的所述数据的所述数据ID在内的解除信息进一步包含在所述解除请求中并发送到所述服务器,所述解除处理部进而从所述第1数据库中删除与所述解除请求所包含的所述解除信息所包含的所述数据ID相对应的所述数据。
此外,在本发明的数据同步系统中,也可以采用如下方式:在所述数据中附带有所述数据ID,在所述数据ID中包含:在所述客户端中唯一的识别信息、即局部ID;和在所述服务器以及所述客户端这两者中唯一的识别信息、即全局ID,所述客户端具备:局部ID分配部,其在所述客户端制作了所述数据的情况下,对所述制作的数据分配所述局部ID;和未取得ID存储部,其存储分配给所述制作的数据的所述局部ID之中、没有分配所述全局ID的局部ID、即未取得ID,所述同步请求发送部进而包含存储在所述未取得ID存储部中的所述未取得ID地将所述同步请求发送到所述服务器,所述服务器具备:全局ID取得部,其从所述第1数据库中检索与所述同步请求所包含的所述未取得ID相对应的所述全局ID,在存在与所述未取得ID相对应的所述全局ID的情况下,从所述第1数据库中取得该相对应的全局ID,并生成包含所述取得的全局ID以及所述未取得ID在内的ID信息,在不存在与所述局部ID相对应的所述全局ID的情况下,新分配所述全局ID,并生成包含所述分配的全局ID以及所述局部ID在内的ID信息,所述同步信息发送部进而包含所述ID信息地将所述同步信息发送到所述客户端,所述客户端具备:全局ID登记部,其针对所述同步信息所包含的所述ID信息的每一个,从所述第2数据库中检索与所述ID信息所包含的所述未取得ID相对应的所述数据,并在所述检索出的数据中所附带的所述数据ID中设定所述ID信息所包含的所述全局ID。
此外,本发明的另一方式是一种在服务器、和按照能够与所述服务器通信的方式连接的客户端之间对数据进行同步的方法,所述数据同步方法的特征在于,所述服务器能够访问存储包含更新时间点的数据的第1数据库,所述客户端能够访问存储从所述服务器取得的数据的第2数据库,所述客户端存储锚时间点、即从所述服务器最后取得了所述数据的时间点,并将包含所述锚时间点的同步请求发送到所述服务器,所述服务器从所述第1数据库中检索所述更新时间点比所述锚时间点晚的所述数据、即更新数据,针对所述各更新数据生成包含表示所述更新数据的数据ID以及所述更新数据的所述更新时间点在内的变更信息,并将包含所述变更信息的同步信息发送到所述客户端,所述客户端在与所述变更信息相对应的所述数据中,决定应下载数据、即取得数据,并将包含表示所述取得数据的数据ID在内的下载请求发送到所述服务器,所述服务器从所述第1数据库中取得与所述下载请求所包含的所述数据ID相对应的所述数据,并将包含所述取得的数据的下载信息发送到所述客户端,所述客户端将所述下载信息所包含的所述数据登记到所述第2数据库中。
此外,在本发明的数据同步方法中,也可以采用如下方式:所述客户端针对所述同步信息所包含的所述各变更信息,从所述第2数据库中读出与所述变更信息所包含的所述数据ID相对应的所述数据的所述更新时间点,在所述读出的更新时间点比所述变更信息所包含的所述更新时间点新的情况下,决定将与所述数据ID相对应的所述数据上传到所述服务器还是从所述服务器进行下载,所述客户端将进一步包含表示决定了进行下载的所述数据的所述数据ID在内的所述下载请求发送到所述服务器,所述客户端从所述第2数据中读出决定了进行上传的所述数据,并将包含读出的所述数据的解除请求发送到所述服务器,所述服务器将所述解除请求所包含的所述数据登记到所述第1数据库中。
此外,本发明的其他方式,是在服务器、和按照能够与所述服务器通信的方式连接的客户端之间对数据进行同步的方法,所述服务器能够访问存储附带有更新时间点的数据的第1数据库,所述客户端能够访问存储从所述服务器取得的数据的第2数据库,所述服务器将针对所述第1数据库的数据的变更历史记录按照新旧顺序存储规定数量,所述服务器所存储的所述变更历史记录、即服务器变更历史记录,包含表示成为变更对象的所述数据的数据ID、和该数据中所附带的所述更新时间点,所述客户端存储 锚时间点、即从所述服务器最后取得了所述数据的时间点,所述客户端将包含用于取得所述数据的条件以及所述锚时间点在内的同步请求发送到所述服务器,所述服务器在与符合所述同步请求所包含的所述条件的所述数据相对应的所述服务器变更历史记录中,取得所述更新时间点比所述锚时间点晚的服务器变更历史记录,所述服务器从所述第1数据库中,检索符合所述同步请求所包含的所述条件的所述数据之中、所述更新时间点比所述锚时间点晚,并且比所述服务器所存储的所述服务器变更历史记录的所述更新时间点中最旧的更新时间点、即边界时间点早的所述数据,针对所述检索出的各数据,生成包含表示所述数据的所述数据ID以及所述数据中所附带的所述更新时间点在内的变更信息,所述服务器将包含所述边界时间点、所述取得的服务器变更历史记录、以及所述变更信息在内的同步信息发送到所述客户端,所述客户端从与所述同步信息所包含的所述服务器变更历史记录或者所述变更信息相对应的所述数据中决定应下载的数据,所述客户端从所述第2数据库中,检索符合所述条件的所述数据之中、所述更新时间点在所述锚时间点到所述边界时间点为止的期间的数据,针对所述检索出的各数据,生成包含表示所述数据的所述数据ID以及所述数据中所附带的所述更新时间点在内的陈旧化信息,所述客户端将包含表示所述决定的数据的取得数据ID以及所述陈旧化信息在内的下载请求发送到所述服务器,所述服务器从所述第1数据库中,取得与所述下载请求所包含的所述陈旧化信息相对应的所述数据之中、所述更新时间点比所述陈旧化信息所包含的所述更新时间点新的数据、和与所述取得数据ID相对应的所述数据,所述服务器将包含所述取得的数据的下载信息发送到所述客户端,所述客户端将所述下载信息所包含的所述数据登记到所述第2数据库中。
此外,在本发明的数据同步方法中,也可以采用如下方式:所述客户端存储有所述第2数据库中的数据的变更历史记录,所述客户端所存储的所述变更历史记录、即客户端变更历史记录,包含表示成为了变更对象的所述数据的所述数据ID、和所述数据中所附带的所述更新时间点,所述客户端取得与符合所述条件的所述数据相对应的所述客户端变更历史记录,并将所述取得的客户端变更历史记录设定在所述同步请求中发送到所述 服务器,所述服务器针对所述同步请求所包含的所述客户端变更历史记录的每一个,在与所述客户端变更历史记录所包含的所述数据ID相对应的、所述第1数据库所存储的所述数据中所附带的所述更新时间点,比所述客户端变更历史记录所包含的所述更新时间点晚的情况下,生成包含所述第1数据库所存储的所述数据中所附带的所述更新时间点以及所述数据ID在内的冲突信息,所述服务器将进一步包含所述冲突信息的所述同步信息发送到所述客户端,所述客户端决定将与所述冲突信息所包含的所述数据ID相对应的所述数据上传到所述服务器还是从所述服务器进行下载,所述客户端将进一步包含表示决定了进行所述下载的数据的所述数据ID在内的所述下载请求发送到所述服务器,所述客户端从所述第2数据库中读出决定了进行所述上传的数据,并将包含读出的所述数据的解除请求发送到所述服务器,所述服务器将所述解除请求所包含的所述数据登记到所述第1数据库中。
关于其他本发明所公开的课题或其解决方法,根据发明的实施方式的栏以及附图将会明确。
发明的效果
根据本发明,在客户端与服务器之间对数据进行同步的情况下能够降低服务器的负荷。
附图说明
图1是表示通信系统的整体构成的图。
图2是表示客户端10的硬件构成的图。
图3是表示服务器20的硬件构成的图。
图4是表示客户端10的软件构成的图。
图5是表示客户端记录的构成例的图。
图6是表示锚(anchor)存储部132的构成例的图。
图7是表示第1实施方式所涉及的同步请求41的构成例的图。
图8是表示第1实施方式所涉及的同步信息42的构成例的图。
图9是表示下载请求43的构成例的图。
图10是表示下载信息的构成例的图。
图11是表示服务器20的软件构成的图。
图12是表示服务器记录的构成例的图。
图13是表示服务器变更历史记录的构成例的图。
图14是说明第1实施方式所涉及的数据的同步处理的流程的图。
图15是表示第1实施方式所涉及的同步请求41的制作处理的流程的图。
图16是表示第1实施方式所涉及的对同步请求41的对应处理的流程的图。
图17是说明锚时间点为时间点t1的情况下的变更历史记录以及变更特征信息的关系的图。
图18是说明锚时间点为时间点t5的情况下的变更历史记录以及变更特征信息的关系的图。
图19是表示第1实施方式所涉及的对同步信息42的对应处理的流程的图。
图20是说明第1实施方式所涉及的下载请求43的对应处理的流程的图。
图21是表示第1实施方式所涉及的下载信息44的对应处理的流程的图。
图22是表示在客户端10被执行的应用处理的流程的图。
图23是表示第2实施方式所涉及的客户端10的软件构成的图。
图24是表示第2实施方式所涉及的客户端记录的构成例的图。
图25是表示客户端变更历史记录的构成例的图。
图26是表示重复存储部136的构成例的图。
图27是表示客户端变更检测部110的处理的流程的图。
图28是表示步骤S407所示的重复判定处理的流程的图。
图29是表示步骤S408所示的变更历史记录登记处理的流程的图。
图30是表示第2实施方式所涉及的同步请求41的构成例的图。
图31是表示第2实施方式所涉及的同步信息42的构成例的图。
图32是表示解除请求45的构成例的图。
图33是表示解除结果信息46的构成例的图。
图34是表示第2实施方式所涉及的服务器20的软件构成的图。
图35是表示第2实施方式所涉及的服务器记录的构成例的图。
图36是说明第2实施方式所涉及的数据的同步处理的流程的图。
图37是表示第2实施方式所涉及的同步请求的制作处理的流程的图。
图38是表示第2实施方式所涉及的对同步请求的对应处理的流程的图。
图39是表示在服务器20中被执行的GUID的分配处理的流程的图。
图40是表示在服务器20中被执行的冲突以及重复的检测处理的流程的图。
图41是表示第2实施方式所涉及的对同步信息42的对应处理的流程的图。
图42是在客户端10中被执行的GUID的分配处理。
图43是表示第2实施方式所涉及的对下载信息44的对应处理的流程的图。
图44是表示在客户端10中被执行的冲突解除处理的流程的图。
图45是表示在客户端10中被执行的重复解除处理的流程的图。
图46是表示与解除请求45相对应的处理的流程的图。
图47是表示与解除结果信息46相对应的处理的流程的图。
具体实施方式
==整体构成==
图1是表示本发明的一个实施方式所涉及的通信系统的整体构成的图。本实施方式的通信系统包含客户端10以及服务器20而构成。客户端10以及服务器20分别连接于通信网络30,客户端10以及服务器20能够经由通信网络30来通信。本实施方式的通信系统,进行服务器20和客户端10之间的数据的同步。
服务器20例如是个人计算机或工作站等计算机。服务器20具备存储数据的数据库(以下,将服务器20所具备的数据库称作“服务器数据库21”。相当于本发明的“第1数据库”)。服务器20所管理的数据,例如是照片等的图像数据、或电话簿等的数据等。在服务器20中,针对服 务器数据库21的变更历史记录仅记录最新的规定数个。超出了规定数的变更历史记录从旧的开始依次被删除。
客户端10例如是便携式电话终端、PDA(Personal Data Assistant,个人数据助理)、个人计算机等的计算机。客户端10也具备存储数据的数据库(以下,将客户端所具备的数据库称作“客户端数据库11”。相当于本发明的“第2数据库”)。对客户端数据库11和服务器数据库21进行同步。
在本实施方式中,在各数据中,附带有最后被更新的时间点(以下,称作“更新时间点”。在新制作了数据时,也将制作的时间点设定为更新时间点),数据的新旧通过更新时间点的比较来进行。在本实施方式中,进行了数据的制作、更新、删除(以下,将数据的制作、更新以及删除统称为数据的“变更”)的时间点,是表示对服务器20中的服务器数据库21进行的变更第几个被进行的值。即,在服务器20中,对于1个时间点只有1个数据成为变更的对象,在服务器20中,每当进行针对服务器数据库21的数据的变更时,表示时间点的值递增。
==硬件构成==
图2是表示客户端10的硬件构成的图。客户端10具备CPU101、存储器102、存储装置103、通信接口104、输入装置105、以及输出装置106。
存储装置103存储各种数据和程序,例如是硬盘驱动器、闪存、CD-ROM驱动器等。CPU101通过将存储在存储装置103中的程序读出到存储器102中并执行,来实现各种功能。通信接口104是用于连接于通信网络30的接口。通信接口104例如是用于连接于以太网(注册商标)的适配器、用于连接于电话线路网的调制解调器、用于连接于无线通信网的无线通信器等。输入装置105从对客户端10进行操作的用户接受数据的输入,例如是小型键盘(keypad)、触摸面板、键盘、鼠标等。输出装置106是输出数据的、例如显示器或打印机等。
图3是表示服务器20的硬件构成的图。服务器20具备CPU201、存储器202、存储装置203、通信接口204、输入装置205、以及输出装置206。
存储装置203存储各种数据和程序,例如是硬盘驱动器、闪存、CD-ROM驱动器等。CPU201通过将存储在存储装置203中的程序读出到存 储器202中并执行,来实现各种功能。通信接口204是用于连接于通信网络30的接口。通信接口204例如是用于连接于以太网(注册商标)的适配器、用于连接于电话线路网的调制解调器、用于连接于无线通信网的无线通信器等。输入装置205从对服务器20进行操作的用户接受数据的输入,例如是键盘或鼠标等。输出装置206是输出数据的、例如显示器或打印机等。
==本实施方式的概要==
在本实施方式的通信系统中,在客户端10和服务器20之间对数据进行同步。在下述第1实施方式中,假定在客户端10中不进行数据的更新,只在服务器20中进行数据的更新的情况,在下述第2实施方式中,假定在客户端10以及服务器20这两方都更新数据的情况。
在本实施方式的通信系统中,客户端10主动地进行数据的同步。数据的同步的步骤如下。
(1)在客户端10与服务器20之间,交换关于在各自中被变更了的数据的信息。
(1.1)从客户端10向服务器20发送关于在客户端10中被更新了的数据的信息。另外,在客户端10中数据没有被更新的情况下,省略该步骤。
(1.2)从服务器20向客户端10发送关于在服务器20中被更新了的数据的信息。
(1.3)客户端10检测出数据的竞争,并解除竞争。数据的竞争是指数据的冲突以及重复。所谓数据的冲突是指,在客户端10以及服务器20这两方对相同的记录进行了变更。所谓数据的重复是指,在客户端10和服务器20这两方对不同的数据进行了更新,从而不同的数据成为相同或者类似的内容。在本实施方式中,竞争的解除通过选择处于竞争关系的2个数据(例如,冲突的客户端10的数据以及服务器20的数据、或者重复的2个数据)中的任意一者来进行。
(2)客户端10从服务器20下载应下载的数据。
(3)客户端10将应反映到服务器20的数据上传到服务器20。
通过反复以上的步骤(1)~(3),数据在客户端10与服务器20之 间将会被同步。另外,上述的步骤也可以改变顺序来执行。
以下,对详细内容进行说明。
==第1实施方式==
在第1实施方式中,假设在客户端10中不进行数据的更新。此外,在第1实施方式中,假设在服务器20中被管理的数据是大量的,无法将其全部下载到客户端10。
在第1实施方式中,客户端10从服务器20取得与在服务器20中被追加、变更、或删除了的数据相关的信息,从其中选择性地下载必要的数据。即,服务器20不进行与客户端10中的同步的状况相关的管理,客户端10选择性地下载用户所需要的数据。
==客户端10的软件构成==
图4是表示第1实施方式所涉及的客户端10的软件构成的图。如该图所示,客户端10具备:客户端数据库11、过滤选择部111、同步请求发送部112、同步信息接收部113、删除处理部114、下载决定部115、锚更新部116、陈旧化信息取得部117、下载请求发送部118、下载信息接收部119、更新处理部120、客户端ID存储部131、和锚存储部132。另外,过滤选择部111、同步请求发送部112、同步信息接收部113、删除处理部114、下载决定部115、锚更新部116、陈旧化信息取得部117、下载请求发送部118、下载信息接收部119、更新处理部120,通过由客户端10所具备的CPU101将存储在存储装置103中的程序读出到存储器102中并执行来实现。此外,客户端数据库11、客户端ID存储部131、锚存储部132作为客户端10所具备的存储器102或存储装置103所提供的存储区域来实现。客户端数据库11也可以由与客户端10不同的计算机(数据库服务器)来提供。在此情况下,客户端10例如经由通信网络30按照能够访问数据库服务器的方式被连接。
客户端数据库11存储从服务器20取得的数据。图5是表示存储在客户端数据库11中的数据(以下,也称作“客户端记录”)的构成例的图。在客户端记录中,包含GUID(Globally Unique Identifier,全局唯一标识符)、更新时间点、更新可能性旗标、删除可能性旗标、键(key)、栏(column)、提示(hint)、以及数据的主体。
GUID(相当于本发明的“数据ID”以及“全局ID”),是由服务器20分配给数据的识别信息,在本实施方式的通信系统中是唯一的编号。更新时间点表示在服务器20中数据最后被更新的时间点。更新可能性旗标表示数据存在在服务器20中被更新了的可能性,删除可能性旗标表示数据存在在服务器20中被删除了的可能性。键是用于判定客户端记录的重复的数据,基于数据主体而制作。
例如,在数据主体为地址簿的数据的情况下,键能够通过将电话号码和姓名等的字符串连结而制作,在数据主体为电子邮件的数据的情况下,键能够通过将电子邮件的收信人(To)、发信人(From)、日期(Date)、以及设定于件名(Subject)中的字符串连结而制作。
栏用于判定数据是否满足过滤条件,是数据主体的一部分。提示是用于决定是否从服务器20下载数据的信息。在本实施方式中,在提示中,含有数据的重要度,例如,在数据主体为地址簿的数据的情况下是姓名,在数据主体为电子邮件的数据的情况下,是将电子邮件的件名和发信人的字符串结合后得到的,使得用户能够掌握数据的内容。此外,在提示中,例如,也可以包含数据的重要度、类别、数据大小、数据内容的摘要等各种元数据。
客户端ID存储部131存储客户端10的识别信息(以下,称作“客户端ID”)。在本实施方式中,在客户端ID存储部131中,预先存储有客户端ID。
锚存储部132存储最后进行同步的时间点(以下,称作“锚(anchor)时间点”)。另外,只有在锚时间点以后被变更了的数据成为同步的对象。图6是表示锚存储部132的构成例的图。锚存储部132与用于提取在服务器20中管理的数据的条件(以下,称作“过滤条件”)对应地存储锚时间点。
过滤选择部111从锚存储部132中选择从服务器20取得数据时使用的过滤条件。过滤选择部111,例如,既可以对存储在锚存储部132中的过滤条件进行一览表输出,并从用户接受过滤条件的指定,也可以经由输入装置105从用户接受过滤条件的输入。
同步请求发送部112将用于进行同步的指令(以下,称作“同步请求 41”)发送到服务器20。图7是表示同步请求41的构成例的图。在同步请求41中,设定有客户端ID、过滤条件以及锚时间点。同步请求发送部112将存储在客户端ID存储部131中的客户端ID设定在同步请求41中,并将过滤选择部111所选择的过滤条件(以下,称作“选择过滤条件”)设定在同步请求41中。此外,同步请求发送部112从锚存储部132中读出与选择过滤条件相对应的锚时间点,并将读出的锚时间点设定在同步请求41中。同步请求发送部112将上述同步请求41发送到服务器20。
同步信息接收部113从服务器20接收根据同步请求41而从服务器20发送的、为了与服务器20之间对数据进行同步所需要的信息(以下,称作“同步信息”)。图8是表示同步信息42的构成例的图。在同步信息42中,包含边界时间点、最新历史记录时间点、变更特征信息。边界时间点是在服务器20中管理着的变更历史记录的最旧的时间点。最新历史记录时间点是在服务器20中管理着的变更历史记录的最新的时间点。变更特征信息包含关于在从锚时间点到边界时间点的期间被制作或更新了的数据的信息、和关于在服务器20中管理着的变更历史记录所涉及的数据的信息。
变更特征信息所包含的更新时间点是最后进行数据的更新的时间点,删除旗标表示在服务器20中数据已被删除。
删除处理部114从客户端数据库11中进行数据的删除。删除处理部114针对同步信息42所包含的变更特征信息中、删除旗标为真的变更特征信息的每一个,将与GUID相对应的数据从客户端数据库11中删除。另外,关于删除处理部114所进行的删除处理的详细内容见后述。
下载决定部115决定应从服务器20取得(下载)的数据。在第1实施方式中,应下载的数据是指以下数据的全部或一部分,即、已登记在客户端数据库11中,并且在服务器20中被更新了的数据(以下,也称作“更新数据”);在服务器20中新追加的数据(以下,也称作“追加数据”);虽然在上次下载时不符合过滤条件,但由于在服务器20中被更新而变得符合过滤条件的数据(将由于被更新而变得符合过滤条件的情况称作“滤入”)。例如,下载决定部115对与变更特征信息的GUID相对应的客户端数据库11的数据的更新时间点、和变更特征信息的更新时间点进行比 较,能够将变更特征信息的更新时间点较新的数据判定为更新数据。此外,在与变更特征信息的GUID相对应的数据没有被登记在客户端数据库11中的情况下,下载决定部115能够判定该数据是追加数据或者被滤入的数据。下载决定部115,例如,既可以将追加数据、更新数据、被滤入的数据全部决定为应下载的数据,也可以显示与这些数据相对应的变更特征信息的提示,并从用户接受应下载的数据的指定。此外,在提示中含有数据大小的情况下,下载决定部115能够将不超过客户端数据库11的存储容量的量的数据决定为应下载的数据。下载决定部115也可以将追加数据、更新数据、被滤入的数据之中,提示、键、栏等满足规定的条件的数据决定为应下载的数据。此外,在客户端数据库11能够更新的情况下,下载决定部115,在与变更特征信息的GUID相对应的客户端记录的更新时间点比变更特征信息的更新时间点新时,既可以优先下载服务器记录,也可以使客户端记录优先从而决定不进行下载,还可以询问用户是否进行下载。也可以预先设定能够下载的数据数或数据大小,下载决定部115在不超过该数据数或数据大小的范围内决定应下载的数据。下载决定部,例如,也可以根据客户端数据的更新时间点或数据大小等来对客户端记录设定优先顺序,并从优先顺序高的记录开始,依次按照不超过上述数据数或数据大小的方式来决定应下载的数据。并且,也可以将指定下载决定部115怎样决定应下载的数据的策略,预先存储在存储器102或存储装置103中,下载决定部115根据策略来决定应下载的数据。
并且,下载决定部115也可以将虽登记在客户端数据库11中,但在服务器20中不符合过滤条件的数据(将由于被更新而变得不符合过滤条件的情况称作“滤出(filterout)”)的一部分或者全部包含在应下载的数据中。在此情况下,下载决定部115能够从客户端数据库11中检索符合过滤条件的数据,并将检索出的数据之中、GUID没有包含在同步信息42的变更特征信息中的数据判定为被滤出的数据。
锚更新部116对存储在锚存储部132中的锚时间点进行更新。将同步信息42的最新历史记录时间点作为与选择过滤条件相对应的锚时间点而登记在锚存储部132中。另外,锚更新部116,在过滤选择部111新制作了过滤条件的情况下,将从可取的最小的值中减去1而得到的值作为锚时 间点,与新制作的过滤条件对应地登记在锚存储部132中。
陈旧化信息取得部117,在锚时间点比同步信息42所包含的边界时间点更早的情况下,从存储在客户端数据库11中的客户端记录中,检索符合选择过滤条件并且更新时间点比边界时间点旧的数据(以下,称作陈旧化数据),并制作针对检索出的陈旧化数据的信息(以下,称作“陈旧化信息”)。在陈旧化信息中,设定有陈旧化数据的GUID以及更新时间点。
下载请求发送部118将用于从服务器20取得数据的指令(以下,称作“下载请求”)发送到服务器20。图9是表示下载请求43的构成例的图。在下载请求43中,设定有包含下载决定部115所决定的数据的GUID的信息(以下,称作“取得信息”)。此外,在陈旧化信息取得部117制作了陈旧化信息的情况下,陈旧化信息也被设定在下载请求43中。
下载信息接收部119接收根据下载请求43而从服务器20发送的、包含与取得信息以及陈旧化信息相对应的数据的信息(以下,称作“下载信息”)。图10是表示下载信息的构成例的图。在下载信息中,包含取得下载信息以及陈旧化下载信息。取得下载信息是包含与取得信息相对应的数据的信息,陈旧化下载信息是包含与陈旧化信息相对应的数据之中、在服务器20中被更新了的数据的信息。在取得下载信息以及陈旧化下载信息中分别包含GUID、更新时间点、删除旗标、键、栏、提示以及主体。当与取得信息或陈旧化信息所包含的GUID相对应的数据在服务器20中被删除了的情况下,在删除旗标中设定真,并且键、栏、提示以及主体被省略。
更新处理部120根据下载信息来对客户端数据库11进行更新。更新处理部120,针对下载信息所包含的取得下载信息以及陈旧化下载信息的每一个,若删除旗标为真,则将与GUID相对应的数据从客户端数据库11中删除,若删除旗标为假,则与取得下载信息或者陈旧化下载信息所包含的GUID对应地,将更新时间点、键、栏、提示、主体、以及“假”的更新可能性旗标以及删除可能性旗标登记到客户端数据库11中。另外,关于更新处理部120所进行的更新处理的详细内容见后述。
==服务器20的软件构成==
图11是表示服务器20的软件构成的图。服务器20具备:GUID生成 部210、时间点生成部211、数据库变更部212、同步请求接收部213、变更历史记录取得部214、变更取得部215、同步信息发送部216、下载请求接收部217、数据取得部218、下载信息发送部219、服务器数据库21、以及服务器变更历史记录存储部231。
另外,GUID生成部210、时间点生成部211、以及数据库变更部212、同步请求接收部213、变更历史记录取得部214、变更取得部215、同步信息发送部216、下载请求接收部217、数据取得部218、下载信息发送部219,通过由服务器20所具备的CPU201将存储在存储装置203中的程序读出到存储器202并执行来实现。此外,服务器数据库21以及服务器变更历史记录存储部231作为服务器20所具备的存储器202或存储装置203所提供的存储区域而实现。服务器数据库21也可以由与服务器20不同的计算机(数据库服务器)来提供。在此情况下,服务器20经由通信网络30按照能够访问数据库服务器的方式被连接。
服务器数据库21存储成为同步的对象的数据(以下,称作“服务器记录”)。图12是表示存储在服务器数据库21中的服务器记录的构成例的图。在服务器记录中,包含:识别数据的GUID、数据的制作时间点、数据的更新时间点、键、栏、提示、以及数据的主体。
服务器变更历史记录存储部231将针对服务器数据库21的变更历史记录(以下,称作“服务器变更历史记录”)按照从新到旧的顺序存储规定数量。图13是表示存储在服务器变更历史记录存储部231中的服务器变更历史记录的构成例的图。在服务器变更历史记录中,包含:识别数据的GUID、数据的制作时间点、数据的更新时间点、删除旗标、数据的提示、旧栏、以及当前栏。删除旗标表示已将数据从服务器数据库21中删除。旧栏是进行该服务器变更历史记录所涉及的数据的变更之前的数据的栏,当前栏是进行了该变更之后的数据的栏。在新追加了数据的情况下,在旧栏以及当前栏这两者中,设定被追加的数据的规定的一部分。
GUID生成部210对GUID进行分配。GUID生成部210,例如,在服务器数据库21中新登记了服务器记录的情况下,分配识别该服务器记录的GUID。
时间点生成部211生成服务器20中的当前时间点。在本实施方式中, 时间点生成部211将每当发生针对服务器数据库21的数据的变更时被递增的连续值生成为时间点。
数据库变更部212对服务器数据库21进行数据的变更。
在服务器数据库21中追加服务器记录的情况下,数据库变更部212将时间点生成部211所生成的时间点分别设定于制作时间点以及更新时间点,并将服务器记录追加到服务器数据库21中。此外,数据库变更部212制作包含追加了的服务器记录的GUID、制作时间点、更新时间点、提示在内的服务器变更历史记录,在制作的服务器变更历史记录的删除旗标中设定“假”,在旧栏以及当前栏中分别设定追加了的服务器记录的栏,并登记到服务器变更历史记录存储部231中。
在更新了存储在服务器数据库21中的服务器记录的情况下,数据库变更部212将时间点生成部211所生成的时间点设定于服务器记录的更新时间点。此外,数据库变更部212制作包含更新了的服务器记录的GUID、制作时间点、更新时间点、提示在内的服务器变更历史记录,在制作的服务器变更历史记录的删除旗标中设定“假”,在旧栏中设定更新前的栏,在当前栏中设定更新后的栏,并登记到服务器变更历史记录存储部231中。
此外,在删除了存储在服务器数据库21中的服务器记录的情况下,数据库变更部212制作包含时间点生成部211所生成的时间点、删除了的服务器记录的GUID、制作时间点、提示在内的服务器变更历史记录,在制作的服务器变更历史记录的删除旗标中设定“真”,在旧栏中设定删除了的服务器记录的栏,并登记到服务器变更历史记录存储部231中。
另外,在存储在服务器变更历史记录存储部231中的服务器变更历史记录的数量为规定数量的情况下,数据库变更部212在将更新时间点最旧的服务器变更历史记录删除后,登记新的服务器变更历史记录。
同步请求接收部213接收从客户端10发送的同步请求41。另外,在同步请求41中没有设定锚时间点的情况下,同步请求接收部213将锚时间点设定为作为时间点可能取得的最旧的值。
变更历史记录取得部214取得与被变更了的数据相关的信息。变更历史记录取得部214从服务器变更历史记录存储部231中检索符合同步请求41所包含的选择过滤条件的服务器变更历史记录。变更历史记录取得部 214制作包含检索出的服务器变更历史记录所包含的GUID、制作时间点、更新时间点、删除旗标以及提示在内的变更特征信息。更新信息取得部214将存储在服务器变更历史记录存储部231中的服务器变更历史记录的更新时间点之中、最旧的时间点作为边界时间点,最新的时间点作为最新历史记录时间点。另一方面,在符合选择过滤条件的服务器变更历史记录没有被存储在服务器变更历史记录存储部231中的情况下,更新信息取得部214将存储在服务器数据库21中的服务器记录的更新时间点之中最新的时间点作为边界时间点以及最新历史记录时间点。
在同步请求41所包含的锚时间点比边界时间点旧的情况下,变更取得部215从服务器数据库21中检索制作时间点比锚时间点新、并且更新时间点比边界时间点旧的服务器记录,并制作包含检索出的服务器记录的GUID、制作时间点、更新时间点以及提示在内的变更特征信息。
同步信息发送部216制作包含边界时间点、最新历史记录时间点、变更特征信息在内的同步信息42,并将制作的同步信息42发送到客户端10。
下载请求接收部217接收从客户端10发送的下载请求43。
数据取得部218提取下载请求43所包含的取得信息,针对提取出的取得信息所包含的GUID的每一个,从服务器数据库21中读出GUID所示的服务器记录,并制作包含读出的服务器记录的GUID、更新时间点、“假”的删除旗标、栏以及主体在内的取得下载信息。在取得信息的GUID所示的服务器记录没有存储在服务器数据库21中的情况(从服务器数据库21中删除了的情况)下,数据取得部218制作仅包含GUID和“真”的删除旗标的取得下载信息。
此外,数据取得部218提取下载请求43所包含的陈旧化信息,针对提取出的陈旧化信息的每一个,从服务器数据库21中读出陈旧化信息中包含的GUID所示的服务器记录,在读出的服务器记录的更新时间点比陈旧化信息的更新时间点新的情况下,制作包含服务器记录的GUID、更新时间点、“假”的删除旗标、栏以及主体在内的陈旧化下载信息。在陈旧化信息的GUID所示的服务器记录没有存储在服务器数据库21中的情况(从服务器数据库21删除了的情况)下,数据取得部218制作仅包含GUID和“真”的删除旗标的陈旧化下载信息。
下载信息发送部219制作包含取得下载信息以及陈旧化下载信息在内的下载信息,并将制作的下载信息发送到客户端10。
==同步处理的整体像==
图14是说明在第1实施方式所涉及的通信系统中被执行的、数据的同步处理的流程的图。
客户端10制作同步请求41(S31),并将制作的同步请求41发送到服务器20(S32)。服务器20在接收到同步请求41后,制作包含边界时间点、最新历史记录时间点、变更特征信息在内的同步信息42(S33),并将制作的同步信息42发送到客户端10(S34)。
客户端10在接收到同步信息42后,将删除旗标为真的数据从客户端数据库11中删除,并且制作包含表示应下载的数据的取得信息和陈旧化信息在内的下载请求43(S35),将制作的下载请求43发送到服务器20(S36)。服务器20在接收到下载请求43后,制作包含取得下载信息和陈旧化下载信息在内的下载信息(S37),并将制作的下载信息发送到客户端10(S38)。
客户端10根据下载信息所包含的取得下载信息以及陈旧化下载信息,来进行对客户端数据库11的数据的登记或者删除(S39)。
以下,对详细内容进行说明。
==同步请求41的制作处理(S31)==
图15是表示在客户端10被执行的同步请求41的制作处理的流程的图。
首先,过滤选择部111选择过滤条件(S3101)。如上所述,过滤选择部111例如通过从用户接受过滤条件的指定来选择过滤条件。
若选择过滤条件被存储在锚存储部132中(S3102:“是”),则过滤选择部111从锚存储部132中读出与选择过滤条件相对应的锚时间点(S3103)。
另一方面,在选择过滤条件没有存储在锚存储部132中的情况下(S3102:“否”),过滤选择部111在锚时间点中设定从规定的最小值中减去1而得到的值(在本实施方式中为“0”)(S3104)。
同步请求发送部112从客户端ID存储部131中读出客户端ID (S3105),制作包含客户端ID、选择过滤条件、以及锚时间点在内的同步请求41(S3106)。
如上这样来制作同步请求41。制作的同步请求通过同步请求发送部112被发送到服务器20。
==同步请求41的对应处理(S33)==
图16是表示在服务器20中被执行的与同步请求41相对应的处理的流程的图。
同步信息发送部216将登记在服务器变更历史记录存储部231中的服务器变更历史记录的最旧的更新时间点作为边界时间点(S3301),将最新的更新时间点作为最新历史记录时间点(S3302),生成包含边界时间点和最新历史记录时间点在内的同步信息42(S3303)。另外,在服务器变更历史记录存储部231中没有登记变更历史记录时,同步信息发送部216取得时间点生成部211所生成的时间点,并将取得的时间点作为边界时间点以及最新历史记录时间点。
变更历史记录取得部214从服务器变更历史记录存储部231中读出符合过滤条件的服务器变更历史记录,针对读出的各服务器变更历史记录,制作包含服务器变更历史记录的GUID、更新时间点、删除旗标、提示以及键在内的变更特征信息(S3304)。变更历史记录取得部214将制作的变更特征信息设定在同步信息42中(S3305)。
同步信息发送部216针对设定在同步信息42中的变更特征信息之中、更新时间点比锚时间点晚并且删除旗标为“真”的信息的每一个,将该变更特征信息、和与该变更特征信息相同GUID的其他变更特征信息从同步信息42中删除(S3306)。
变更取得部215从服务器数据库21中读出更新时间点比锚时间点晚、并且更新时间点比边界时间点早的数据,制作包含读出的数据的GUID、更新时间点、提示以及键、和“假”的删除旗标在内的变更特征信息(S3307)。变更取得部215将制作的变更特征信息设定在同步信息42中(S3308)。
如上这样来制作同步信息42。制作的同步信息42通过同步信息发送部216被发送到客户端10。
==时间点和变更历史记录的关系==
图17以及图18是说明服务器变更历史记录存储部231所存储的变更历史记录、和变更特征信息之间的关系的图。在图17以及图18中,在服务器变更历史记录存储部231中,仅针对时间点t4~时间点t8的期间存储有服务器变更历史记录231,数据a、b、c以及d分别在时间点t2、t4、t6以及t8被变更。在此,边界时间点为时间点t4。
图17是表示锚时间点为时间点t1的情况的图。在此情况下,将会制作包含在时间点t2~t3之间的期间被更新了的数据a的更新时间点t2的变更特征信息、和包含服务器变更历史记录231所涉及的数据b~d的更新时间点t4、t6以及t8的变更特征信息。对于边界时间点t4之前的、时间点t2~t3之间的期间,仅针对被追加以及更新了的数据制作变更特征信息,对于被删除了的数据不制作变更特征信息。另一方面,对于边界时间点t4以后的时间点t4~t8,将会针对被追加、更新以及删除了的所有数据制作变更特征信息。
图18是表示锚时间点为时间点t5的情况的图。在此情况下,锚时间点t5比边界时间点t4晚,因此针对在锚时间点t5之后被变更了的所有数据制作变更特征信息。即,在图18的例子中,将会制作包含针对在锚时间点t5之后被更新了的数据c以及d的更新时间点t6以及t8在内的变更特征信息。
==同步信息42的对应处理(S35)==
图19是表示在客户端10被执行的与同步信息42相对应的处理的流程的图。
首先,删除处理部114针对同步信息42所包含的变更特征信息之中、删除旗标为真的变更特征信息的每一个,将与GUID相对应的数据从客户端数据库11中删除(S3501)。锚更新部116将同步信息42所包含的最新历史记录时间点与选择过滤条件对应地登记在锚存储部132中(S3502)。
接着,下载决定部115制作空的下载请求43(S3503),并决定与同步信息42所包含的变更特征信息相对应的数据之中应下载的数据(S3504)。如上所述,下载决定部115,例如,能够输出变更特征信息所包含的键或提示等,并让用户选择应下载的数据。另外,下载决定部115, 在这里,对于在客户端数据库11中符合选择过滤条件的数据之中、其GUID没有包含在同步信息42中的数据(被滤出了的数据),也可以决定为应下载的数据。下载决定部115针对决定了的数据的每一个,生成包含表示数据的GUID在内的取得信息,并将生成的取得信息追加到下载请求43中(S3505)。
陈旧化信息取得部117,在锚时间点比同步信息42所包含的边界时间点早的情况下(S3506:“是”),从客户端数据库11中检索符合选择过滤条件、并且更新时间点比边界时间点早的数据(S3507),并将检索出的数据的删除可能性旗标以及更新可能性旗标设定为“真”(S3508)。
陈旧化信息取得部117从客户端数据库11中取得删除可能性旗标或者更新可能性旗标为“真”的数据的列表(S3509)。陈旧化信息取得部117将列表所包含的数据之中、GUID包含在取得信息中的数据从列表中删除(S3510)。陈旧化信息取得部117,针对列表所包含的数据的每一个,制作设定了GUID以及更新时间点的陈旧化信息并追加到下载请求43中(S3511)。
如上这样来制作下载请求43。制作的下载请求43通过下载请求发送部118被发送到服务器20。
==下载请求43的对应处理(S37)==
图20是说明在服务器20中被执行的下载请求43的对应处理的流程的图。
数据取得部218制作空的下载信息44(S3701),针对下载请求43所包含的各取得信息进行以下的处理。
数据取得部218从服务器数据库21中检索与取得信息所包含的GUID相对应的数据(S3702),在存在相对应的数据的情况下(S3703:“是”),制作包含检索出的数据的GUID、更新时间点、键、栏、提示以及主体、和“假”的删除旗标在内的取得下载信息并追加到下载信息44中(S3704)。另一方面,在不存在与取得信息的GUID相对应的数据的情况下(S3703:“否”),数据取得部218制作包含取得信息的GUID和“真”的删除旗标在内的取得下载信息并追加到下载信息44中(S3705)。
在针对各取得信息进行了以上的处理之后,数据取得部218针对下载 请求43所包含的各陈旧化信息进行以下的处理。
数据取得部218从服务器数据库21中检索与陈旧化信息所包含的GUID相对应的数据(S3706),在存在相对应的数据的情况下(S3707:“是”),若该数据的更新时间点比陈旧化信息的更新时间点新(S3708:“是”),则制作包含该数据的GUID、更新时间点、键,栏、提示以及主体、和“假”的删除旗标在内的陈旧化下载信息并追加到下载信息44中(S3709)。另一方面,在不存在与陈旧化信息所包含的GUID相对应的数据的情况下(S3707:“否”),数据取得部218制作包含陈旧化信息的GUID以及“真”的删除旗标在内的陈旧化下载信息并追加到下载信息44中(S3710)。
通过针对各陈旧化信息反复进行以上的处理,来制作下载信息44。制作的下载信息44通过下载信息发送部219被发送到客户端10。
==下载信息44的对应处理(S39)==
图21是表示在客户端10被执行的下载信息44的对应处理的流程的图。
更新处理部120针对下载信息44所包含的陈旧化下载信息的每一个,进行图22所示的应用处理(S3901)。即,若陈旧化下载信息的删除旗标为“真”(S3921:“是”),则删除处理部114从客户端数据库11中删除与陈旧化下载信息所包含的GUID相对应的数据(S3922),若删除旗标为“假”(S3921:“否”),则更新处理部120制作包含陈旧化下载信息所包含的GUID、键、栏、提示以及主体、和“假”的更新可能性旗标以及“假”的删除可能性旗标在内的数据并登记到客户端数据库11中(S3923)。另外,在GUID一致的数据已经被登记在客户端数据库11中的情况下,该数据被覆盖。
此外,更新处理部120针对下载信息44所包含的取得下载信息的每一个,进行图22所示的应用处理(S3902)。即,若取得下载信息所包含的删除旗标为“真”(S3921:“是”),则删除处理部114从客户端数据库11中删除与取得下载信息所包含的GUID相对应的数据(S3922),若删除旗标为“假”(S3921:“否”),则更新处理部120制作包含取得下载信息所包含的GUID、键、栏、提示以及主体、和“假”的更新可 能性旗标以及“假”的删除可能性旗标在内的数据,并登记到客户端数据库11中(S3923)。
这样一来,客户端数据库11根据下载信息被更新。
像以上这样来进行符合选择过滤的客户端记录和服务器记录之间的同步。
==第2实施方式==
接着,对第2实施方式进行说明。在第2实施方式中,主要针对与第1实施方式的差异来进行说明,对于与第1实施方式相同的部分省略说明。
在第2实施方式中,假设在客户端10也进行数据的更新。因此,在客户端10和服务器20这两者中可能发生对同一数据进行不同内容的更新的冲突。数据的冲突一般由服务器20来检测,但在第2实施方式中,在客户端10和服务器20这两者中检测冲突。此外,由于在客户端10和服务器20这两者中更新了不同的数据,从而不同的数据成为相同或类似的内容的重复也可能发生。在第2实施方式中,对于重复,也能够在客户端10和服务器20这两者中进行检测。在第2实施方式中,假设在键一致的情况下,判定为产生了重复。
==客户端10的软件构成==
图23是表示第2实施方式所涉及的客户端10的软件构成的图。第2实施方式所涉及的客户端10,在上述的第1实施方式所涉及的客户端10的基础上,还具备:客户端变更检测部110、冲突重复解除决定部121、解除请求发送部122、解除结果信息接收部123、解除处理部124、客户端变更历史记录存储部133、未取得ID存储部134、未验证存储部135、重复存储部136、冲突存储部137。另外,客户端变更检测部110、冲突重复解除决定部121、解除请求发送部122、解除结果信息接收部123、以及解除处理部124通过由客户端10所具备的CPU101将存储在存储装置103中的程序读出到存储器102中并执行来实现。此外,客户端变更历史记录存储部133、未取得ID存储部134、未验证存储部135、重复存储部136、冲突存储部137作为客户端10所具备的存储器102或存储装置103所提供的存储区域来实现。
图24是表示第2实施方式所涉及的客户端数据库11所存储的客户端 记录的构成例的图。如该图所示,在第2实施方式所涉及的客户端记录中,在第1实施方式所涉及的客户端记录的基础上,还包含LUID(Local Unique Identifier,局部唯一标识)。LUID是在客户端10中分配给数据的识别信息,在客户端10中是唯一的值。如后述那样,在第2实施方式中,由于数据的GUID由服务器20来分配,因此在客户端10中制作了数据时,GUID还没有被分配,在该时间点为了识别数据而被分配的就是LUID。LUID和GUID之间的对应关系(映射)通过同步请求41以及同步信息42的交换来进行。
客户端变更历史记录存储部133存储针对客户端数据库11的变更历史记录。在上述的服务器变更历史记录存储部231中,服务器变更历史记录按照从新到旧的顺序存储了规定数量,但在客户端变更历史记录存储部133中,存储针对在锚时间点之后进行的对客户端数据库11的全部变更的客户端变更历史记录。
图25是表示存储在客户端变更历史记录存储部133中的客户端变更历史记录的构成例的图。在客户端变更历史记录中包含:表示检测出的变更为追加、变更以及删除的哪一种的种类(以下,称作“变更种类”);表示成为了变更对象的数据的LUID以及GUID;更新时间点;进行变更之前的栏(以下,也称作“旧栏”);进行了变更之后的栏(以下,也称作“当前栏”);键;以及提示。变更种类为“追加”“更新”或者“删除”的任意一种。
未取得ID存储部134存储没有被分配GUID的LUID(以下,称作“未取得ID”)。在未取得ID存储部134中,当在客户端数据库11中追加了新的数据时,登记分配给该数据的LUID。
未验证存储部135存储表示没有进行是否存在与该数据重复的数据的判定的数据的GUID。在本实施方式中,在客户端10中变更了数据的情况下,在服务器20中不询问是否产生重复,而是如后述那样,在与服务器20之间的数据的同步时判定重复。因此,在变更了数据的情况下,该数据的GUID从数据的变更时到同步时被登记在未验证存储部135中。
重复存储部136对2个重复的数据进行管理。图26是表示重复存储部136的构成例的图。在重复存储部136中,表示第1数据的LUID以及 GUID、和表示与第1数据重复的第2数据的LUID以及GUID被对应地登记。
冲突存储部137存储表示发生冲突的数据的GUID。
客户端变更检测部110检测对客户端数据库11的数据的变更,根据检测来制作客户端变更历史记录并登记到客户端变更历史记录存储部133中。图27是表示客户端变更检测部110所进行的处理的流程的图。客户端变更检测部110在检测到了对客户端数据库11的变更的情况下,在变更为追加或者变更的情况下,取得进行了追加或者变更的数据(以下,称作“新数据”),在变更为删除或者变更的情况下,取得进行了删除或者变更的数据(以下,称作“旧数据”),并进行图27所示的处理。另外,在变更为追加的情况下,将新数据作为旧数据来对待。
客户端变更检测部110在变更为追加的情况下(S401:“是”),对新数据分配LUID(S402),在未取得ID存储部134中登记分配的LUID(S403)。另一方面,在变更为更新或者删除的情况下(S401:“否”),客户端变更检测部110从新数据中取得LUID以及GUID(S404)。
客户端变更检测部110在变更为追加或者更新的情况下(S405:“是”),基于新数据的主体制作键来作为新键(S406),并进行重复的判定处理(S407)。
最后,客户端变更检测部110进行登记客户端变更历史记录的变更历史记录登记处理(S408)。
图28是表示上述图27的步骤S407所示的重复判定处理的流程的图。在重复判定处理中,客户端变更检测部110对存储在客户端数据库11中的所有数据进行以下的处理。
若客户端记录的键与新键不一致(S421:“否”),则客户端变更检测部110在未验证存储部135中登记GUID(S422)。
另一方面,在客户端记录的键与新键一致的情况下(S321:“是”),客户端变更检测部110将新记录的GUID以及LUID、客户端记录的GUID以及LUID对应起来登记到重复存储部136中(S423)。在新记录的GUID已被登记在未验证存储部135中的情况下(S424:“是”),客户端变更检测部110从未验证存储部135中将新记录的GUID删除(S425)。
图29是表示上述图27的步骤S408所示的变更历史记录登记处理的流程的图。
客户端变更检测部110从客户端变更历史记录存储部133中检索与新数据的LUID或者GUID一致的变更历史记录(S441)。若不存在一致的客户端变更历史记录(S442:“否”),则客户端变更检测部110制作包含变更种类、新数据的LUID、GUID、更新时间点以及栏、旧数据的栏、以及新键在内的客户端变更历史记录并登记到客户端变更历史记录存储部133中(S443)。
另一方面,在存在上述变更历史记录的情况下(S442:“是”),若该变更为追加或者变更(S444:“否”),则客户端变更检测部110将检索出的客户端变更历史记录的变更种类变更为表示该变更的变更种类(追加或者更新)(S445),并在检索出的客户端变更历史记录的当前栏中设定新数据的栏(S446),在检索出的客户端变更历史记录的键中设定新键(S347)。如后述那样,服务器20与客户端10之间的数据的同步按照客户端变更历史记录来进行,因此像这样在与服务器20之间还没有进行同步的阶段发生了再次更新等的情况下,通过更新原有的客户端变更历史记录,能够提高同步处理的效率。
在变更为删除的情况下(S444:“是”),若没有设定新数据的GUID,即新数据的GUID为空(null)(S448:“是”),则客户端变更检测部110将检索出的客户端变更历史记录从客户端变更历史记录存储部133中删除(S449)。即,在客户端10中制作了数据之后,在被上传到服务器20之前被删除了的情况下,通过删除客户端变更历史记录,使得不进行无用的同步。
在新数据中设定了GUID的情况下,即新记录的GUID不是空的情况下(S448:“否”),在检索出的客户端变更历史记录的变更种类中设定删除(S450)。
如上这样,客户端变更检测部110在检测出对客户端数据库11的变更后,对客户端变更历史记录进行登记。
接下来,在图30中示出了在第2实施方式中由同步请求发送部112发送的同步请求41的构成例。在第2实施方式所涉及的同步请求中,在 上述的图7所示的第1实施方式所涉及的同步请求的基础上,还包含未取得ID以及变更特征信息。同步请求发送部112将存储在未取得ID存储部134中的未取得ID设定在同步请求中。此外,变更特征信息是基于客户端变更历史记录而制作的信息,包含客户端变更历史记录的变更种类、LUID、GUID、更新时间点以及键。同步请求发送部112从客户端变更历史记录存储部133中读出在重复存储部136以及冲突存储部137中没有登记GUID的客户端变更历史记录,针对读出的客户端变更历史记录的每一个,将包含客户端变更历史记录的变更种类、LUID、GUID、更新时间点以及键在内的变更特征信息设定在同步请求中。
图31是表示在第2实施方式中由同步信息接收部113接收的同步信息42的构成例的图。在第2实施方式所涉及的同步信息42中,在上述的图8所示的第1实施方式所涉及的同步信息42的基础上,还包含分配信息。分配信息是包含服务器20对未取得ID分配的GUID的信息。在分配信息中,包含LUID、GUID、更新时间点、状态。更新时间点是与LUID相对应的GUID在服务器20中已经被分配了的情况下的、数据的更新时间点。在服务器20中没有存储与未取得ID相对应的数据的情况下,不设定更新时间点。状态是表示与未取得ID相对应的GUID是否已经存在于服务器20中的信息。
此外,在第2实施方式中,同步信息42所包含的变更特征信息,如后述那样,除了在服务器20中新追加的数据之外,关于在客户端10与服务器20之间发生了冲突或者重复的数据也被追加。
在下载信息44所包含的GUID所示的数据发生冲突或者重复的情况下,冲突重复解除决定部121决定是否将该数据发送到服务器20。在本实施方式中,冲突重复解除决定部121根据下载信息44所包含的GUID是否存储在客户端变更历史记录存储部133、重复存储部136或者冲突存储部137中,来判定是否产生了冲突或者重复,在判定为产生了冲突或者重复的情况下,让用户来选择客户端记录或服务器记录的任意一者。另外,冲突重复解除决定部121,例如,既可以总是使客户端记录优先,无条件地选择客户端记录,也可以应用任意的算法来自动地进行选择。
解除请求发送部122将指示对产生了冲突或重复的数据进行解除的指 令(以下,称作“解除请求”)发送到服务器20。图32是表示解除请求45的构成例的图。在解除请求45中,包含客户端ID、和设定了冲突重复解除决定部121所选择的客户端记录或者服务器记录的LUID、GUID、更新时间点、删除旗标、键、栏、提示以及主体的解除信息。
解除结果信息接收部123接收根据解除请求而从服务器20被发送的、表示冲突或者重复的解除处理的结果的信息(以下,称作“解除结果信息”)。图33是表示解除结果信息46的构成例的图。在解除结果信息46中包含重复信息和结果信息。对于重复信息,针对解除请求45所包含的解除信息所示的数据,在服务器20中发生了重复的情况下被设定。在重复信息中设定在服务器20中发生了重复的数据的GUID、更新时间点、键。结果信息是表示根据解除请求45而进行了服务器数据库21的更新后的处理结果的信息,包含LUID、GUID、更新时间点、删除旗标以及状态。
解除处理部124根据解除结果信息46来进行客户端数据库11的更新。另外,关于解除处理部124的处理的详细内容见后述。
==服务器20的软件构成==
图34是表示第2实施方式所涉及的服务器20的软件构成的图。第2实施方式所涉及的服务器20,在第1实施方式所涉及的服务器20的基础上,还具备解除请求接收部220、解除处理部221、解除结果信息发送部222。另外,解除请求接收部220、解除处理部221、解除结果信息发送部222通过由服务器20所具备的CPU201将存储在存储装置203中的程序读出到存储器202中并执行来实现。
图35是表示第2实施方式所涉及的服务器数据库21所存储的服务器记录的构成例的图。如该图所示,在第2实施方式所涉及的服务器记录中,在第1实施方式所涉及的服务器记录的基础上,还包含LUID以及制作者ID。LUID是在客户端10分配给数据的识别信息,在客户端10是唯一的编号。如后述那样,在第2实施方式中,数据的GUID由服务器20来分配,因此在客户端10中制作了数据时,GUID还没有被分配,在该时间点为了识别数据而分配的就是LUID。LUID与GUID之间的对应建立(映射)通过同步请求41以及同步信息42的交换来进行。制作者ID是最初制作了数据的客户端10的客户端ID,在服务器记录追加时被设定。
解除请求接收部220从客户端10接收解除请求45。
解除处理部221根据解除请求45来更新服务器数据库21。另外,关于由解除处理部221执行的解除处理的详细内容见后述。
解除结果信息发送部222制作表示解除处理部221所进行的解除处理的结果的解除结果信息并发送到客户端10。另外,关于解除结果信息发送部222所进行的解除结果信息的生成处理的详细内容见后述。
==同步处理的整体像==
图36是说明在第2实施方式所涉及的通信系统中被执行的、数据的同步处理的流程的图。在第2实施方式所涉及的数据的同步处理中,在上述的图14所示的第1实施方式所涉及的同步处理的基础上,还进行步骤S51~S58。即,客户端10在进行了与下载信息44相对应的处理(S39)后,将解除请求45发送到服务器20(S51),服务器20根据解除请求45来对服务器数据库21进行更新(S52),将包含表示更新结果的结果信息、和与在更新时产生的重复相关的重复信息的解除结果信息46发送到客户端10(S53)。客户端10根据解除结果信息46进一步进行决定应下载的数据的处理(S54),并将包含设定了应下载的数据的GUID的取得信息的下载请求43发送到服务器20(S55)。服务器20根据下载请求43从服务器数据库21中读出被指定的数据(S56),并将设定了读出的数据的下载信息44发送到客户端10(S57)。客户端10将下载信息44所包含的数据登记到客户端数据库11中(S58)。
==同步请求发送处理(S31)==
图37是表示第2实施方式所涉及的步骤S31中的同步请求的制作处理的流程的图。在第2实施方式中,在上述的图15的处理的基础上,继步骤S3106之后,同步请求发送部112从客户端变更历史记录存储部133中读出符合选择过滤条件的客户端变更历史记录并作为变更历史记录而设定在同步请求41中(S3107),读出存储在未取得ID存储部134中的未取得ID并设定在同步请求41中(S3108)。
根据更新信息和未取得ID,在服务器20侧能够掌握在客户端10进行了的数据的更新。
==与同步请求相对应的处理(S33)==
图38是表示第2实施方式所涉及的步骤S33中的对同步请求的对应处理的流程的图。在第2实施方式中,在上述的图16的处理的基础上,继步骤S3308之后,同步信息发送部216进行图39所示的GUID的分配处理(S3309),并进行图40所示的冲突以及重复的检测处理(S3310)。
在图39所示的GUID的分配处理中,同步信息发送部216针对同步请求41所包含的各未取得ID进行以下的处理。
同步信息发送部216从服务器数据库21中检索LUID与未取得ID一致,并且制作者与客户端ID一致的服务器记录(S3321),在存在符合的服务器记录的情况下(S3322:“是”),将服务器记录的GUID设为G(S3323),将服务器记录的更新时间点设为T(S3324),将状态设为“存在”(S3325)。
另一方面,在不存在与未取得ID相符的服务器记录的情况下(S3322:“否”),同步信息发送部216将GUID生成部210所生成的新的GUID设为G(S3326),将时间点生成部211所生成的新的时间点设为T(S3327),将状态设为“不存在”(S3328)。
同步信息发送部216将包含LUID、G、T以及状态的分配信息追加到同步信息42中(S3329)。
以上的处理针对各未取得ID被反复进行,与未取得ID相对应的GUID作为分配信息而被设定在同步信息42中。
在图40所示的冲突重复的检测处理中,针对设定在同步信息42中的变更历史记录的每一个进行以下的处理。
在变更历史记录中设定有GUID的情况下(S3341:“否”),变更取得部215从服务器数据库21中检索与变更历史记录的GUID相对应的服务器记录(S3342),若不存在相对应的服务器记录(S3343:“否”),则制作包含GUID以及“真”的删除旗标在内的变更特征信息并追加到同步信息42中(S3344)。
在存在与变更历史记录的GUID相对应的服务器记录的情况下(S3343:“是”),变更取得部215判定变更历史记录的更新时间点与检索出的服务器记录的更新时间点是否一致(S3345),若更新时间点不一致(S3345:“否”),则制作包含服务器记录的GUID、更新时间点、提示以及键、以及“假”的删除旗标在内的变更特征信息并追加到同步信息42中(S3346)。
另一方面,在更新时间点一致的情况下(S3345:“是”),若变更历史记录的变更种类为“删除”(S3347:“是”),则将与GUID相对应的服务器记录从服务器数据库21中删除(S3348)。若变更种类不是“删除”(S3347:“否”),则变更取得部215从服务器数据库21中检索与变更历史记录所包含的键相一致的服务器记录(S3349),若存在与键相一致的服务器记录(S3350:“是”),则制作包含服务器记录的GUID、更新时间点、提示以及键、以及“假”的删除旗标在内的变更特征信息并追加到同步信息42中(S3351)。
通过对同步请求42所包含的各变更历史记录进行以上的处理,针对发生了冲突或者重复的数据的变更特征信息将会被追加到同步信息42中。
==与同步信息相对应的处理(S35)==
图41是表示第2实施方式所涉及的步骤S35中的对同步信息42的对应处理的流程的图。在第2实施方式中,在上述的图19的处理之前,执行图42所示的GUID的分配处理(S3500)。
在图42所示的GUID的分配处理中,更新处理部120针对同步信息42所包含的各分配信息进行以下的处理。
更新处理部120在与LUID相对应的客户端记录的GUID中设定分配信息的GUID(S3521)。在分配信息所包含的状态为“存在”的情况(与LUID相对应GUID已经被登记在服务器数据库21中的情况)下(S3522),更新处理部120在与LUID相对应的客户端记录的更新时间点中,设定分配信息的更新时间点(S3523)。
更新处理部120将变更种类为“追加”、并且与分配信息的LUID相对应的客户端变更历史记录从客户端变更历史记录存储部133中删除(S3524)。此外,更新处理部120将分配信息的LUID从未取得ID存储部134中删除(S3525)。
通过对各分配信息进行以上的处理,来登记与未取得ID相对应的GUID。
另外,在第2实施方式中制作的下载请求43与第1实施方式相同, 与下载请求43相对应的服务器20所进行的处理(S37)也与第1实施方式相同。
==下载信息的对应处理(S39)==
图43是表示第2实施方式所涉及的步骤S39中的对下载信息44的对应处理的流程的图。在第2实施方式中,在执行了上述的图21的处理的步骤S3901之后,取代步骤S3902而执行步骤S3903~S3908。
更新处理部120从下载信息44所包含的取得下载信息中,提取与取得下载信息的GUID相对应的客户端变更历史记录没有被存储在客户端变更历史记录存储部133中的取得下载信息(S3903),并针对提取出的取得下载信息的每一个,进行上述的图22所示的应用处理(S3904)。即,若取得下载信息所包含的删除旗标为“真”(S3921:“是”),则删除处理部114将与取得下载信息所包含的GUID相对应的客户端记录从客户端数据库11中删除(S3922),若删除旗标为“假”(S3921:“否”),则更新处理部120将包含取得下载信息所包含的GUID、键、栏、提示以及主体、和“假”的更新可能性旗标以及“假”的删除可能性旗标在内的客户端记录登记到客户端数据库11中(S3923)。
接着,解除请求发送部122制作设定了存储在客户端ID存储部131中的客户端ID的解除请求45(S3905)。更新处理部120从下载信息44所包含的取得下载信息中,提取与取得下载信息的GUID相对应的客户端变更历史记录被存储在客户端变更历史记录存储部133中的取得下载信息(S3906)。解除处理部124进行图44所示的冲突解除处理(S3907),并进行图45所示的重复解除处理(S3908)。
在图44所示的冲突解除处理中,针对在上述图43的步骤S3906中提取出的取得下载信息的每一个进行以下的处理。
若取得下载信息所包含的GUID已被存储在冲突存储部137中(S3941),则解除处理部124将与该GUID相对应的客户端记录从客户端数据库11中读出(S3942),并选择读出的客户端记录和取得下载信息的任意一者(S3943)。解除处理部124例如可以输出客户端记录以及取得下载信息的提示来让用户进行选择。
在选择了客户端记录的情况下(S3944:“是”),解除处理部124 将包含客户端记录的LUID、GUID、更新时间点、键、栏、提示以及主体的解除信息追加到解除请求45中(S3945),在选择了取得下载信息的情况下(S3944:“否”),将包含取得下载信息的GUID、更新时间点、栏、提示以及主体的解除信息追加到解除请求45中(S3946),并按照将客户端记录的更新时间点、键、栏、提示以及主体变更为取得下载信息的内容的方式来对客户端数据库11进行更新(S3947)。解除处理部124从冲突存储部137中删除上述GUID(S3948)。
在图45所示的重复解除处理中,针对在上述图43的步骤S3906中提取出的取得下载信息的每一个进行以下的处理。
若取得下载信息所包含的GUID已被存储在重复存储部136中(S3961),则解除处理部124从客户端数据库11中读出与该GUID相对应的客户端记录(S3962),并选择读出的客户端记录和取得下载信息的任意一者(S3963)。解除处理部124与上述的冲突解除处理同样地,例如,可以输出客户端记录以及取得下载信息的提示来让用户进行选择。
在选择了客户端记录的情况下(S3964:“是”),解除处理部124将包含客户端记录的LUID、GUID、更新时间点、键、栏、提示以及主体在内的解除信息追加到解除请求45中(S3965),在选择了取得下载信息的情况下(S3964:“否”),将包含取得下载信息的GUID、更新时间点、栏、提示以及主体在内的解除信息追加到解除请求45中(S3966)。解除处理部124从重复存储部136中读出与取得下载信息的GUID相对应的GUID并设为G(S3967),从客户端数据库11中删除GUID与G相一致的客户端记录(S3968)。
解除处理部124从重复存储部136中删除与取得下载信息的GUID相对应的记录(S3969),并从未验证存储部135中删除取得下载信息的GUID(S3970)。
==解除请求对应(S52)==
图46是表示在上述的图36的步骤S52中由服务器20执行的、与解除请求45相对应的处理的流程的图。
解除处理部221制作空的解除结果信息46(S5201),并针对解除请求45所包含的解除信息的每一个,进行以下的处理。
在没有设定解除信息的GUID的情况下(S5202:“是”),解除处理部221制作设定了新分配的GUID、和设定于解除信息中的LUID、更新时间点、键、栏、提示以及主体的服务器记录,并登记到服务器数据库21中(S5203),将包含LUID、GUID、更新时间点、“假”的删除旗标、以及“成功”的状态在内的结果信息追加到解除结果信息46中(S5204)。
另一方面,在解除信息中设定了GUID的情况下(S5202:“否”),解除处理部221从服务器数据库21中检索与解除信息的GUID相对应的服务器记录(S5205),若不存在与该GUID相对应的服务器记录(S5206:“否”),则解除处理部221将包含解除信息的GUID、和“真”的删除旗标以及“冲突”的状态在内的结果信息追加到解除结果信息46中(S5207)。
在存在与上述GUID相对应的服务器记录的情况下(S5206:“是”),若服务器记录的更新时间点与解除信息的更新时间点不一致(S5208:“否”),则解除处理部221将包含服务器记录的GUID以及更新时间点、和“假”的删除旗标以及“冲突”的状态在内的结果信息追加到解除结果信息46中(S5209)。
若更新时间点一致(S5208:“是”),且解除信息的删除旗标为“真”(S5210:“是”),则解除处理部221从服务器数据库21中删除与GUID相对应的服务器记录(S5211),若删除旗标为“假”(S5210:“否”),则解除处理部221按照在服务器记录中设定解除信息的更新时间点、键、栏、提示以及主体的方式来对服务器数据库21进行更新(S5212)。
解除处理部221将包含解除信息的LUID、GUID、更新时间点以及删除旗标、和“成功”的状态在内的结果信息追加到解除结果信息46中(S5213)。此外,解除处理部221从服务器数据库21中检索与解除信息的键相一致的服务器记录(S5214),在存在相一致的服务器记录的情况下(S5215:“是”),将包含检索出的服务器记录的GUID以及更新时间点、和“假”的删除旗标以及“冲突”的状态在内的重复信息追加到解除结果信息46中(S5216)。
针对各解除信息进行以上的处理。
==解除结果对应(S54)==
图47是表示在上述的图36的步骤S54中由客户端10执行的、与解除结果信息46相对应的处理的流程的图。
解除处理部124制作空的下载请求43(S5401),针对解除结果信息46所包含的结果信息的每一个,进行以下的处理。
在结果信息所包含的LUID已被登记在未取得ID存储部134中的情况下(S5402:“是”),解除处理部124按照在与该LUID相对应的客户端记录中设定结果信息的GUID的方式来对客户端数据库11进行更新(S5403),并从未取得ID存储部134中删除该LUID(S5404)。
接着,若状态为“冲突”(S5405:“是”),则解除处理部124将结果信息的GUID登记到冲突存储部137中(S5406),下载决定部115决定是否下载该结果信息的GUID所示的数据(S5407)。下载决定部115,例如,对于发生了冲突的数据既可以决定以服务器20为优先,自动地进行下载,也可以决定以客户端数据为优先,不进行下载,还可以询问用户是否进行下载。此外,也可以在结果信息中预先包含键、栏、提示等,下载决定部115在键、栏、提示等满足规定的条件的情况下决定进行下载。下载决定部115在决定了进行下载的情况下(S5409:“是”),生成包含结果信息的GUID在内的取得信息并设定在下载请求43中(S5410)。
另一方面,在状态为“成功”的情况下(S5405:“否”),解除处理部124从客户端变更历史记录存储部133中删除与结果信息的GUID相对应的客户端变更历史记录(S5408)。
在针对结果信息的每一个反复进行了以上的处理之后,下载决定部115在解除结果信息46所包含的重复信息中,决定对对应的数据进行下载的重复信息(S5411),生成包含决定的重复信息的GUID在内的取得信息并设定在下载请求43中(S5412)。另外,在下载请求43中没有设定取得信息的情况下,省略上述的图36的步骤S55~S58的处理。
像这样,进行与选择过滤相符的客户端记录与服务器记录之间的同步。
如上所述,根据上述的第1以及第2实施方式的通信系统,针对在服务器20中记录了服务器变更历史记录的数据,客户端10能够基于服务器变更历史记录来反映数据的追加、更新或者删除。在服务器20侧,不需 要管理针对哪个客户端10更新了哪个数据等。因此,在服务器20中能够降低管理每个客户端10的状态的成本。从而,能够有效地运用服务器2。因此,在从多个客户端10访问1台服务器20的情况下很有效果。
此外,在本实施方式的通信系统中,通过将过滤条件设定在同步请求中并进行发送,能够在服务器20中仅将符合过滤条件的数据作为对象来检测追加、删除、更新。因此,例如,在服务器20中无需对客户端10所存储的数据的一览表进行管理、或者从客户端10发送存储的数据的一览表,就能够仅对符合过滤条件的一部分数据选择性地进行同步,因此能够实现高效的数据同步。
此外,一般来说,越是新的数据价值越高的情况较多,而根据本实施方式的通信系统,针对新的数据,能够不检索保存大量数据的服务器数据库21,而基于服务器变更历史记录来进行同步,因此能够高效率地进行数据同步。即,针对价值更高的数据,能够更加高效地进行数据的同步。因此,能够在客户端与服务器之间进行有效的同步。
此外,一般来说,被滤出的数据不作为同步的对象,而是进行将客户端10的数据删除那样的同步,而在本实施方式中,由于由客户端10来决定作为同步的对象的数据,因此客户端10针对在服务器20中被滤出了的数据,也能够在下载请求中指定数据ID,来作为同步的对象。在客户端10中,在客户端数据库11中存储有更新前的数据,客户端10的用户对存储在客户端数据库11中的数据具有兴趣。根据本实施方式的通信系统,即使在服务器20侧已被滤出,也能够将包含在用户的兴趣范围内的数据、即对于用户来说重要度较高的数据优先地作为同步的对象,对于用户来说很方便。此外,通过优先地下载包含在用户的兴趣范围内的数据,能够期待使用户感到响应时间较短。
此外,在本实施方式的通信系统中,并不是立刻发送在服务器20中被追加或变更了的数据,客户端10能够参考提示,仅下载必要的数据。因此,例如,在便携式电话等中,存储容量有限,而且通信速度也存在限度,存在无法下载太大量的数据的情况,而客户端10能够根据存储容量或通信速度等的状况来灵活地取得数据。
此外,根据本实施方式的通信系统,在锚时间点比边界时间点早的情 况下,服务器20能够检索从锚时间点到边界时间点为止被追加了的数据,并作为变更特征信息而通知给客户端10。因此,即使在服务器20中没有记录边界时间点之前的服务器变更历史记录,客户端10也至少能够取得被追加以及更新了的数据。因此,能够不在服务器20中存储所有的变更历史记录地进行数据的同步,因此能够抑制数据的同步所带来的服务器20的负荷。
此外,根据本实施方式的通信系统,在锚时间点比边界时间点早的情况下,通过作为陈旧化信息而从客户端10向服务器20发送边界时间点之前的更新时间点的数据,能够询问服务器20是否进行了更新或删除。因此,在针对存在变更历史记录的数据的更新之后,针对不存在变更历史记录的数据也能够进行同步。因此,能够进行可靠的数据同步。
此外,在作为应用过滤条件的对象的栏被更新了的情况下,将更新前的栏作为旧栏而在服务器变更历史记录存储部231中进行管理,因此针对存在变更历史记录的数据,即使在服务器20中数据被更新,且不再符合过滤条件的情况下,也能够对存储在客户端10中的数据进行同步。
此外,在本实施方式的通信系统中,服务器20针对在锚时间点之后被制作、并对于在其后被删除的数据,不将更新信息发送到客户端10。因此,能够进行高效的同步。
此外,在第2实施方式的通信系统中,即使数据在客户端10以及服务器20这两者中都被变更了的情况下,也能够通过在客户端10检测冲突,并选择在客户端10被变更了的数据、和在服务器20被变更了的数据的任意一者来解除冲突。
此外,在客户端10中,能够检测数据的重复,并解除重复。因此,能够抑制多次登记相同的数据所导致的资源的消耗。
此外,在第2实施方式的通信系统中,在客户端10制作数据的情况下,客户端10不分配GUID,仅分配在客户端10中唯一的LUID,在同步时能够由服务器20来分配在系统内唯一的全局ID。在每当客户端10制作数据时分配GUID的情况下,GUID的分配处理所带来的负荷无法无视,而如第2实施方式那样,由于客户端10只要分配LUID即可,因此能够抑制ID的分配所带来的处理负荷。另一方面,GUID的分配能够集中 于服务器20,因此能够可靠地容易地分配唯一的GUID。
此外,在第2实施方式的通信系统中,检测在客户端10和服务器20这两者中数据被变更后的冲突,并在基于提示等而解除了冲突之后进行同步。因此,即使在从多个客户端10对同一数据进行了变更的状况下,也能够适当地进行同步。
==变形例==
另外,在上述的实施方式中,数据的制作时间点、更新时间点、删除时间点等,是表示对服务器数据库21的变更的顺序的值,但不限于此,也可以采用时间戳。在此情况下,在时间戳的单位时间(例如,毫秒、微秒等)较低,在同一时间戳中能够进行多次变更的情况下,也可以采用对时间戳连结了数据的识别信息后的信息作为“时间点”,并使在服务器变更历史记录存储部231中登记服务器变更历史记录的定时至少延迟上述单位时间以上。
此外,在上述的实施方式中,为了简化说明,假设客户端10以及服务器20各为1台,但也可以采用多个客户端10连接于1台服务器20的形式,还可以采用1台客户端10连接于多个服务器20的形式,还可以采用多个客户端10连接于多个服务器20的形式。
此外,在本实施方式中,假设客户端ID预先存储在客户端ID存储部131中,但不限于此,例如,也可以由服务器20将客户端ID分配给客户端10,客户端10从服务器20取得被分配的客户端ID并登记在客户端ID存储部131中。客户端ID,例如,也可以在客户端10每次启动时被重新设定。
此外,在本实施方式中,在服务器变更历史记录存储部231中,登记有与追加、更新以及删除相关的服务器变更历史记录,但也可以仅管理与删除相关的服务器变更历史记录。在此情况下,在与同步请求41相对应的处理(图16或图38)的步骤S3307中,服务器20从服务器数据库21中取得更新时间点比锚时间点晚的服务器记录的GUID、更新时间点、提示、键,并设定在变更特征信息中。通过仅管理删除,能够降低对服务器变更历史记录进行管理的资源。
此外,也可以省略服务器变更历史记录存储部231。在此情况下,服 务器20从服务器数据库21中检索包含锚时间点之后的更新时间点的服务器记录并制作变更特征信息。客户端10在同步信息42的对应处理(图19或图41)的步骤S3506~S3508中,在所有的客户端记录的删除可能性旗标中设定“真”。而且在此情况下,针对删除,也可以取代服务器变更历史记录而在服务器记录中设定删除旗标来管理历史记录。可以使服务器20定期地根据当前的时间点从服务器数据库21中删除规定的过去的时间点以前的服务器记录。
此外,在本实施方式中,在同步信息42中,将符合过滤条件的变更特征信息全部包含在同步信息42中,但也可以将用于限制包含在同步信息42中的变更特征信息的数量的条件(以下,称作“限制条件”)包含在同步请求中。限制条件,例如,可以设定为用规定的栏对记录进行了排序后的从n个开始的规定数个等。
此外,在本实施方式中,必须设定过滤条件,但也可以不指定过滤条件,将所有的数据都作为更新对象。
此外,在本实施方式中,同步信息42、下载信息44、解除请求45等在1次发送中被发送,但例如,也可以分多次进行发送。
此外,在本实施方式中,针对在边界时间点之前被追加或者更新了的数据,也将变更特征信息包含在同步信息42中,但也可以在同步信息42中仅包含针对边界时间点以后的数据的变更特征信息,在锚时间点比边界时间点早的情况下,客户端10的更新处理部120在用于取得在边界时间点之前被追加或者更新了的数据的指令(以下,称作“追加更新信息取得请求”)中设定锚时间点以及边界时间点并发送到服务器20,服务器20的变更取得部215,从服务器数据库21中检索制作时间点比追加更新信息取得请求所包含的锚时间点晚、并且更新时间点比追加更新信息取得请求所包含的边界时间点早的服务器记录,来制作变更特征信息,并发送到客户端10。在此情况下,能够更优先地处理基于变更历史记录的数据的更新。
此外,在服务器20有时进行复位的情况、或服务器20管理多个服务器数据库21的情况下,也可以对成为同步对象的服务器数据库21分配ID(以下,称作“同步ID”),并在同步请求41、同步信息42、下载请求43、下载信息44、解除请求45、解除结果信息46中包含同步ID。在此情 况下,客户端10,在设定在同步请求41、下载请求43、解除请求45中的同步ID,和设定在从服务器20响应的同步信息42、下载信息44、解除结果信息46中的同步ID不同的情况下,客户端10也可以将存储在客户端数据库11中的数据全部删除后,从最初开始重新进行同步处理。
此外,在本实施方式中,例如在图19的步骤S3502等中,用同步信息42所包含的最新历史记录时间点来对锚时间点进行更新,但也可以将同步信息42所包含的变更特征信息之中、与由下载决定部115决定为应进行下载的数据相对应的变更特征信息所包含的最新的更新时间点作为锚时间点,并与该选择过滤条件对应地登记在锚存储部132中。并且,也可以在接收到了同步信息42时不对锚时间点进行更新,而在之后根据下载请求43从服务器20接收下载信息44,每当基于下载信息44将数据登记到客户端数据库11中时,可以将登记的数据的更新时间点作为锚时间点而登记到锚存储部132中。由此,例如,在不一次性地进行下载,而是反复进行多次下载规定数量的数据来登记到客户端数据库11中的处理的情况下,在中途下载失败时,在下一次的同步处理中,针对失败的时间点以后的数据能够重新进行同步。在此情况下,也可以只在下载与同步信息42所包含的所有的变更特征信息相对应的数据时,将同步信息42所包含的最新历史记录时间点作为锚时间点登记到锚存储部132中。
此外,在本实施方式中,陈旧化信息取得部117针对删除可能性旗标或者更新可能性旗标为“真”的客户端记录之中、GUID没有包含在取得信息中的所有客户端记录制作陈旧化信息,但不限于此,也可以在删除可能性旗标以及更新可能性旗标的至少任意一方为“真”的客户端记录、即存在在服务器20中被删除或者更新了的可能性的数据中,决定应调查在服务器20中是否被删除或者更新了的数据,并仅针对决定的数据来制作陈旧化信息。在此情况下,客户端10,例如,既可以针对删除可能性旗标以及更新可能性旗标的至少任意一方为“真”的所有客户端记录制作陈旧化信息,也可以针对符合规定条件的客户端数据制作陈旧化信息,还可以针对由客户端10的用户所指定的客户端数据来制作陈旧化信息。
此外,在本实施方式中,针对下载决定部115决定不进行下载的数据直接不进行下载,但也可以针对在服务器20中被更新了的数据,在客户 端记录中设定表示被更新了的旗标(以下,称作“更新旗标”),并在下一次同步处理时,可以针对更新旗标为真的数据也决定进行下载。在此情况下,下载决定部115,例如,能够基于同步信息42所包含的变更特征信息来确定被追加或者更新了的数据,并且从客户端数据库11中检索更新旗标为真的客户端记录,从确定的数据和检索出的客户端记录中决定应下载的数据。
此外,关于下载决定部115决定不进行下载的数据,既可以以后再进行下载,也可以从客户端数据库11中删除。
此外,也可以定期地删除存储在客户端数据库11中的旧数据。在此情况下,客户端10,例如可以每隔1分钟、5分钟、1小时等规定的时间、或者在检测到客户端10中的处理的负荷降低时,将客户端记录之中、更新时间点比当前的日期时间早规定时间以上的客户端记录从客户端数据库11中删除。锚存储部132,也可以与过滤条件和锚时间点对应地来存储将它们登记到锚存储部132中的日期时间,客户端10根据登记日期时间是否比当前的日期时间早规定时间以上来判断过滤条件的新旧,将符合旧过滤条件的客户端记录之中、不符合新过滤条件的客户端记录从客户端数据库11中删除。
此外,在上述的实施方式中,无论变更的种类(追加、更新或者删除)如何,每当在服务器20中数据被变更时都制作1个服务器变更历史记录,但不限于此,例如,也可以针对被更新了的数据来记录1个服务器变更历史记录。在此情况下,在服务器变更历史记录中,例如,将被变更了的数据的项目表现为“{项目=最新值、最近的值、......、最旧值}”这样的列表等,使得针对数据的各项目能够设定规定数量的历史记录。每当服务器记录被更新时,从服务器变更历史记录存储部231中检索与被更新了的服务器记录的GUID相对应的服务器变更历史记录,在存在服务器变更历史记录的情况下,将被更新了的服务器记录的最新值设定为服务器变更历史记录所包含的项目的最新值。在项目的历史记录的列表超过了规定数量的情况下,从列表中删除最旧的值。像这样,通过用1个变更历史记录来管理针对同一服务器记录的多次更新,即使在针对某1个服务器记录的更新频度变高了的情况下,也能够避免针对该服务器记录的更新的服务器变 更历史记录独占服务器变更历史记录存储部231的状况。因此,在变更历史记录的数量有限的情况下,即使在服务器记录的更新频度较高时,也能够管理针对更多的数据的变更历史记录。因此,即使用有限的变更历史记录,也能够可靠地管理服务器20中的数据的变更。
此外,在本实施方式中,服务器数据库21存储除了包含数据的主体之外还包含键、栏、提示等的服务器记录,但也可以将数据的主体、和该数据的键、栏、提示等元信息存储为不同的数据。例如,可以使得在服务器数据库21所存储的服务器记录中,只包含GUID、制作时间点、更新时间点以及主体,服务器20具备存储包含与存储在服务器数据库21中的服务器记录的每一个相对应的GUID、更新时间点、键、栏以及提示在内的信息(以下,称作“头数据”)的头数据库。在此情况下,在图16或图38所示的对同步请求41的对应处理的步骤S3307中,变更取得部215从头数据库中读出更新时间点比锚时间点晚且更新时间点比边界时间点早的数据,来制作变更特征信息。因此,变更取得部215无需访问服务器数据库21,能够根据同步请求41来检测在从锚时间点到边界时间点为止的期间进行了追加或更新的数据,即使在对服务器数据库21的访问较多的情况下,也能够高效地检测可能成为同步对象的数据。此外,通过设置头数据库,能够不变更服务器数据库21的构成,而利用头数据来进行数据的同步。因此,例如,即使在存在运用中的服务器数据库21的情况下等,也能够容易地将运用中的服务器数据库21作为同步的对象。
此外,同样地,客户端10也可以具备与具备客户端数据库11不同的存储头数据的头数据库。在此情况下,例如,在客户端10中,即使在利用客户端数据库11的PIM(PersonalInformation Manager,个人信息管理)应用程序等正在工作时,也能够不变更客户端数据库11的构成地进行数据的同步。
此外,在本实施方式中,将针对删除的服务器变更历史记录登记在服务器变更历史记录存储部231中,但也可以在服务器记录中设定删除旗标。在此情况下,在删除服务器记录时,将服务器记录的删除旗标设定为真,并且在更新时间点中设定当前的时间点。此外,定期地从服务器数据库21中删除删除旗标被设定为真的服务器记录之中、服务器记录的更新时间点 比边界时间点(登记在服务器变更历史记录存储部231中的服务器变更历史记录的最旧的更新时间点)旧的服务器记录。变更历史记录取得部214从服务器变更历史记录存储部231中检索符合选择过滤条件的服务器变更历史记录,并且检索符合选择过滤条件的服务器记录之中删除旗标为真的服务器记录,基于检索出的服务器变更历史记录以及服务器记录来制作变更特征信息。变更历史记录取得部214将符合选择过滤条件的服务器变更历史记录的最新的时间点、和删除旗标为“真”的服务器记录的最新的更新时间点中较新的一方决定为最新历史记录时间点。
此外,在本实施方式中,服务器变更历史记录集中登记在服务器变更历史记录存储部231中,但也可以附带于登记在服务器数据库21中的服务器记录中来进行存储。例如,在将服务器记录作为对象来进行实现的情况下,能够按照服务器记录的每个实例将服务器变更历史记录作为其属性来进行管理。在此情况下,按照每个实例来存储规定数量的服务器变更历史记录,并将超过规定数量的服务器变更历史记录从旧的更新时间点的记录开始依次删除。
此外,在本实施方式中,在图41(以及图19)所示的同步信息42的对应处理的步骤S3508中,针对更新时间点比边界时间点早的数据,将删除可能性旗标以及更新可能性旗标设定为真,但也可以考虑由于检测出了冲突或者重复而没有进行下载的时间点。在此情况下,在客户端记录中包含表示判明了的服务器记录的更新时间点的“观测时间点”,例如,在上述图44的冲突解除处理或图45的重复解除处理的循环中,若与设定在取得下载信息中的GUID相对应的客户端记录存在于客户端数据库11中,则在相对应的客户端记录的观测时间点中设定取得下载信息的更新时间点。此外,在符合过滤条件的客户端记录的观测时间点比与过滤条件相对应的锚时间点早的情况下,将客户端记录的观测时间点更新为锚时间点。并且,在图41的步骤S3508中仅将更新可能性旗标设定为“真”,接下来检索符合过滤条件并且观测时间点比边界时间点早的客户端数据,并将该检索出的客户端数据的删除可能性旗标设定为“真”。由此,在判明了在服务器20中没有被删除的时间点之前的数据中不再设定删除可能性旗标。由此,客户端10针对删除可能性旗标为“假”、更新可能性旗标为“真”的客户端记录,能够判断该客户端记录至少在服务器中没有被删除。因此,例如,在客户端10询问服务器20客户端记录在服务器20中是否被删除的情况下,只要针对删除可能性旗标为“真”的客户端记录来询问服务器20即可,因此能够缩小成为询问的对象的客户端记录的范围。此外,在由下载决定部115决定进行下载的数据的情况下,也可以根据删除可能性旗标来安排优先顺序。例如,在1次能够下载的数据数存在限制的情况下,能够首先下载删除可能性旗标为“假”的数据,或者反之,首先下载删除可能性旗标为“真”的数据。
此外,在第2实施方式中,服务器20对客户端10仅响应符合同步请求41所包含的过滤条件的服务器变更历史记录,但不限于此,例如,即使不符合过滤条件,也可以将与过滤条件所指定的值类似的记录设定在同步信息42中。在此情况下,服务器20将表示不符合过滤条件的旗标(以下,称作“符合未知旗标”)附带在服务器变更历史记录中并设定于同步信息42中,客户端10,例如,也可以针对符合未知旗标为假的记录,对用户显示表示虽然不符合过滤条件,但存在符合的可能性的建议信息。
此外,在第2实施方式中,在同步请求41中包含与在重复存储部136以及冲突存储部137中没有登记GUID的所有的客户端变更历史记录相对应的变更特征信息,但在同步请求41中也可以只包含在重复存储部136以及冲突存储部137中没有登记GUID并且基于变更种类为“删除”的客户端变更历史记录的变更特征信息。在此情况下,服务器20在图36所示的步骤S33的同步请求的对应处理(图38)中,省略步骤S3310的冲突重复的检测处理,针对变更种类为“删除”以外的客户端变更历史记录,对于发生了冲突的记录,由解除处理部124在图44的步骤3943中选择了客户端记录和服务器记录的任意一者之后将其包含在解除请求45中,对于不发生冲突的记录,解除处理部124在图43的步骤3908之后将对应的客户端记录包含在解除请求45中。这样一来,能够减轻在服务器20中进行冲突和重复的检测处理的处理负荷。
以上,尽管针对本实施方式进行了说明,但上述实施方式用于使本发明容易理解,而不是用于限定地解释本发明。本发明能够不脱离其宗旨地被变更、改良,并且在本发明中还包含其等价物。
符号说明
10客户端,11客户端数据库,20服务器,21服务器数据库,30通信网络,41同步请求,42同步信息,43下载请求,44下载信息,45解除请求,46解除结果信息,101CPU,102存储器,103存储装置,104通信接口,105输入装置,106输出装置,110客户端变更检测部,111过滤选择部,112同步请求发送部,113同步信息接收部,114删除处理部,115下载决定部,116锚更新部,117陈旧化信息取得部,118下载请求发送部,119下载信息接收部,120更新处理部,121冲突重复解除决定部,122解除请求发送部,123解除结果信息接收部,124解除处理部,131客户端ID存储部,132锚存储部,133客户端变更历史记录存储部,134未取得ID存储部,135未验证存储部,136重复存储部,137冲突存储部,201CPU,202存储器,203存储装置,204通信接口,205输入装置,206输出装置,210GUID生成部,211时间点生成部,212数据库变更部,213同步请求接收部,214变更历史记录取得部,215变更取得部,216同步信息发送部,217下载请求接收部,218数据取得部,219下载信息发送部,220解除请求接收部,221解除处理部,222解除结果信息发送部,231服务器变更历史记录存储部。

Claims (20)

1.一种数据同步系统,其在服务器、和按照能够与所述服务器通信的方式连接的客户端之间对数据进行同步,
所述数据同步系统的特征在于,
所述服务器能够访问第1数据库,其中该第1数据库存储包含更新时间点的数据,
所述客户端能够访问第2数据库,其中该第2数据库存储从所述服务器取得的数据,
所述客户端具备:锚时间点存储部,其存储锚时间点、即从所述服务器最后取得了所述数据的时间点;和同步请求发送部,其将包含所述锚时间点的同步请求发送到所述服务器,
所述服务器具备:变更信息取得部,其从所述第1数据库中检索所述更新时间点比所述锚时间点晚的所述数据、即更新数据,并针对各所述更新数据生成包含表示所述更新数据的数据ID以及所述更新数据的所述更新时间点在内的变更信息;和同步信息发送部,其将包含所述变更信息的同步信息发送到所述客户端,
所述客户端具备:下载决定部,其从与所述变更信息相对应的所述数据中,决定应下载的数据、即取得数据;和下载请求发送部,其将包含表示所述取得数据的数据ID在内的下载请求发送到所述服务器,
所述服务器具备:数据取得部,其从所述第1数据库中取得与所述下载请求所包含的所述数据ID相对应的所述数据;和下载信息发送部,其将包含所取得的数据在内的下载信息发送到所述客户端,
所述客户端具备:更新处理部,其将所述下载信息所包含的所述数据登记到所述第2数据库中。
2.根据权利要求1所述的数据同步系统,其特征在于,
所述下载决定部针对各所述变更信息,从所述第2数据库中取得与所述变更信息所包含的所述数据ID相对应的所述数据所包含的所述更新时间点,在从所述第2数据库取得的所述更新时间点比所述变更信息所包含的所述更新时间点旧的情况下,决定对该数据进行下载,在从所述第2数据库取得的所述更新时间点比所述变更信息所包含的所述更新时间点新的情况下,根据来自用户的设定,来决定是否对该数据进行下载。
3.根据权利要求1所述的数据同步系统,其特征在于,
所述服务器具备:服务器变更历史记录存储部,其存储包含表示从所述第1数据库中被删除了的所述数据的所述数据ID以及删除时间点在内的变更历史记录;和变更历史记录取得部,其从所述服务器变更历史记录存储部中取得包含比所述同步请求所包含的所述锚时间点晚的所述删除时间点在内的所述变更历史记录,
所述同步信息发送部还将所述变更历史记录取得部所取得的所述变更历史记录包含在所述同步信息中,
所述客户端具备:删除处理部,其将与所述同步信息所包含的所述变更历史记录相对应的所述数据从所述第2数据库中删除。
4.根据权利要求1所述的数据同步系统,其特征在于,
所述服务器具备:服务器变更历史记录存储部,其针对从所述第1数据库中被删除了的数据,将包含表示所述被删除了的数据的数据ID以及删除时间点在内的变更历史记录按照所述删除时间点的从新到旧的顺序存储规定数量,
所述变更信息取得部从所述服务器变更历史记录存储部中取得包含比所述锚时间点晚的所述删除时间点在内的所述变更历史记录,
除了所述变更信息之外,所述同步信息发送部还将所述服务器变更历史记录存储部所存储的所述变更历史记录中所包含的最旧的所述删除时间点、即边界时间点、以及所取得的变更历史记录包含在所述同步信息中发送到所述客户端,
所述客户端具备:
删除处理部,其从所述第2数据库中删除与所述同步信息所包含的所述变更历史记录相对应的所述数据;和
陈旧化信息取得部,其在所述锚时间点比所述边界时间点早的情况下,从存储在所述第2数据库中的所述数据中,检索所述数据的所述更新时间点比所述边界时间点早、并且包含表示所述数据的数据ID在内的所述变更信息没有包含在所述同步信息中的数据,针对所检索出的各数据,生成包含表示所述数据的数据ID以及所述数据的所述更新时间点在内的陈旧化信息,
除了所述数据ID之外,所述下载请求发送部还将所述陈旧化信息包含在所述下载请求中发送到所述服务器,
所述数据取得部进一步针对所述下载请求所包含的各所述陈旧化信息,判定与所述陈旧化信息相对应的所述数据是否存储在所述第1数据库中,并将表示判定为没有存储在所述第1数据库中的所述数据的所述数据ID,作为表示被删除了的数据的删除ID而包含在所述下载信息中,
所述删除处理部将与所述下载信息所包含的所述删除ID相对应的所述数据从所述第2数据库中删除。
5.根据权利要求1所述的数据同步系统,其特征在于,
所述客户端具备:冲突解除部,其针对所述同步信息所包含的各所述变更信息,从所述第2数据库中读出与所述变更信息所包含的所述数据ID相对应的所述数据的所述更新时间点,在所读出的更新时间点比所述变更信息所包含的所述更新时间点新的情况下,决定将与所述数据ID相对应的所述数据上传到所述服务器还是从所述服务器进行下载,
所述下载请求发送部将进一步包含表示由所述冲突解除部决定为进行下载的所述数据的所述数据ID在内的所述下载请求发送到所述服务器,
所述客户端具备:解除请求发送部,其从所述第2数据库中读出由所述冲突解除部决定为进行上传的所述数据,并将包含读出的所述数据的解除请求发送到所述服务器,
所述服务器具备:解除处理部,其将所述解除请求所包含的所述数据登记到所述第1数据库中。
6.一种数据同步系统,其在服务器、和按照能够与所述服务器通信的方式连接的客户端之间对数据进行同步,
所述数据同步系统的特征在于,
所述服务器能够访问存储附带有更新时间点的数据的第1数据库,所述客户端能够访问存储从所述服务器取得的数据的第2数据库,
所述服务器具备:服务器变更历史记录存储部,其将针对所述第1数据库的数据的变更历史记录按照从新到旧的顺序仅存储规定数量,
所述服务器变更历史记录存储部所存储的所述变更历史记录、即服务器变更历史记录,包含表示成为变更对象的所述数据的数据ID、和该数据中所附带的所述更新时间点,
所述客户端具备:
锚存储部,其存储锚时间点、即从所述服务器最后取得了所述数据的时间点;和
同步请求发送部,其将包含用于取得所述数据的条件以及所述锚时间点在内的同步请求发送到所述服务器,
所述服务器具备:
变更历史记录取得部,其从所述服务器变更历史记录存储部中,取得与符合所述同步请求所包含的所述条件的所述数据相对应的所述服务器变更历史记录之中、所述更新时间点比所述锚时间点晚的服务器变更历史记录;
变更信息取得部,其从所述第1数据库中,检索符合所述同步请求所包含的所述条件的所述数据之中、所述更新时间点比所述锚时间点晚,且比存储在所述服务器变更历史记录存储部中的最旧的所述更新时间点、即边界时间点早的数据,针对所检索出的各数据,生成包含表示所述数据的所述数据ID以及所述数据中所附带的所述更新时间点在内的变更信息;和
同步信息发送部,其将包含所述边界时间点、所取得的服务器变更历史记录、以及所述变更信息在内的同步信息发送到所述客户端,
所述客户端具备:
下载决定部,其从与所述同步信息所包含的所述服务器变更历史记录或者所述变更信息相对应的所述数据中决定应下载的数据;
陈旧化信息取得部,其从所述第2数据库中,检索符合所述条件的所述数据之中、所述更新时间点在从所述锚时间点到所述边界时间点为止的期间的数据,并针对所检索出的各数据,生成包含表示所述数据的所述数据ID以及所述数据中所附带的所述更新时间点在内的陈旧化信息;和
下载请求发送部,其将包含表示所决定的数据的取得数据ID以及所述陈旧化信息在内的下载请求发送到所述服务器,
所述服务器具备:
数据取得部,其从所述第1数据库中取得与所述下载请求所包含的所述陈旧化信息相对应的所述数据之中、所述更新时间点比所述陈旧化信息所包含的所述更新时间点新的数据、和与所述取得数据ID相对应的所述数据;和
下载信息发送部,其将包含所取得的数据的下载信息发送到所述客户端,
所述客户端具备:更新处理部,其将所述下载信息所包含的所述数据登记到所述第2数据库中。
7.根据权利要求6所述的数据同步系统,其特征在于,
在所述服务器变更历史记录中还包含表示数据的变更是数据的追加、更新或者删除中的哪一种的变更种类信息,
所述客户端具备:删除处理部,当接收到所述同步信息时,针对所述同步信息所包含的所述服务器变更历史记录之中、所述变更种类信息表示为删除的服务器变更历史记录,从所述第2数据库中删除所述服务器变更历史记录所包含的所述数据ID所示的所述数据。
8.根据权利要求6所述的数据同步系统,其特征在于,
所述数据取得部针对所述下载请求所包含的所述陈旧化信息之中、与所述陈旧化信息所包含的所述数据ID相对应的所述数据没有被登记在所述第1数据库中的陈旧化信息,将包含所述陈旧化信息所包含的所述数据ID的删除信息设定在所述下载信息中,
所述客户端具备:删除处理部,其在所述下载信息中包含有所述删除信息的情况下,从所述第2数据库中删除与所述删除信息所包含的所述数据ID相对应的所述数据。
9.根据权利要求6所述的数据同步系统,其特征在于,
在所述数据中,还附带栏、即基于所述数据的内容而被生成的、用于判定所述数据是否符合所述条件的信息,
在所述服务器变更历史记录中,还包含表示数据的变更是数据的追加、更新或者删除中的哪一种的变更种类信息、和所述数据中所附带的所述栏,
所述变更历史记录取得部在所述服务器变更历史记录中,取得所述栏符合所述同步请求所包含的所述条件,并且所述更新时间点比所述锚时间点晚的服务器变更历史记录,
所述变更信息取得部在存储在所述第1数据库中的所述数据中,检索所述数据中所附带的所述栏符合所述同步请求所包含的所述条件、并且所述更新时间点比所述锚时间点晚且比所述边界时间点早的数据,针对所检索出的各数据,将表示所述数据的所述数据ID、所述数据中所附带的所述更新时间点、以及所述数据所包含的所述栏设定在所述变更信息中,
所述陈旧化信息取得部在存储在所述第2数据库中的数据中,检索所述栏符合所述条件、并且所述更新时间点在所述锚时间点到所述边界时间点为止的期间的数据。
10.根据权利要求6所述的数据同步系统,其特征在于,
在所述数据中,还附带提示、即基于所述数据的内容而被生成的、用于决定在所述客户端是否应对所述数据进行下载的信息,
在所述服务器变更历史记录中,还包含表示数据的变更是数据的追加、更新或者删除中的哪一种的变更种类信息、和所述数据中所附带的所述提示,
所述变更信息取得部针对所检索出的各数据,还将所述数据中所附带的所述提示包含在所述变更信息中,
所述下载决定部基于所述服务器变更历史记录或者所述变更信息所包含的所述提示来决定所述应下载的数据。
11.根据权利要求10所述的数据同步系统,其特征在于,
所述下载决定部输出所述服务器变更历史记录或者所述变更信息所包含的所述提示,并将与用户所选择的所输出的提示相对应的所述数据决定为所述应下载的数据。
12.根据权利要求6所述的数据同步系统,其特征在于,
在所述数据中附带所述更新时间点,
所述服务器具备:时间点生成部,其生成每当发生针对所述第1数据库的操作时就会变大的数值来作为所述更新时间点,
在写入到所述第1数据库中时,所述数据被附带上所述时间点生成部所生成的所述更新时间点。
13.根据权利要求6所述的数据同步系统,其特征在于,
在所述数据中附带所述更新时间点,
所述服务器具备:时间点生成部,其在发生针对所述第1数据库的操作时,取得所述服务器中的时间戳,生成在所取得的时间戳上连结了所述数据的识别信息后得到的值作为所述更新时间点,
在写入到所述第1数据库中时,所述数据被附带上所述时间点生成部所生成的所述更新时间点。
14.根据权利要求6所述的数据同步系统,其特征在于,
所述客户端具备:客户端变更历史记录存储部,其存储所述第2数据库中的数据的变更历史记录,
所述客户端变更历史记录存储部所存储的所述变更历史记录、即客户端变更历史记录,包含表示成为变更对象的所述数据的所述数据ID、和所述数据中所附带的所述更新时间点,
所述同步请求发送部从所述客户端变更历史记录存储部中取得与符合所述条件的所述数据相对应的所述客户端变更历史记录,并将所取得的客户端变更历史记录设定在所述同步请求中发送到所述服务器,
所述服务器具备:冲突检测部,其针对所述同步请求所包含的所述客户端变更历史记录的每一个,在与所述客户端变更历史记录所包含的所述数据ID相对应的、所述第1数据库所存储的所述数据中所附带的所述更新时间点比所述客户端变更历史记录所包含的所述更新时间点晚的情况下,生成包含所述第1数据库所存储的所述数据中所附带的所述更新时间点以及所述数据ID在内的冲突信息,
所述同步信息发送部将进一步包含所述冲突信息的所述同步信息发送到所述客户端,
所述客户端具备:冲突解除部,其决定将与所述冲突信息所包含的所述数据ID相对应的所述数据上传到所述服务器还是从所述服务器进行下载,
所述下载请求发送部将进一步包含表示由所述冲突解除部决定为进行下载的所述数据的所述数据ID在内的所述下载请求发送到所述服务器,
所述客户端具备:解除请求发送部,其从所述第2数据库中读出由所述冲突解除部决定为进行上传的所述数据,并将包含读出的所述数据的解除请求发送到所述服务器,
所述服务器具备:解除处理部,其将所述解除请求所包含的所述数据登记到所述第1数据库中。
15.根据权利要求14所述的数据同步系统,其特征在于,
在所述数据中还附带键、即对所述数据应用规定的算法而求出的数据,
在所述服务器变更历史记录以及所述客户端变更历史记录中分别包含所述键,
所述服务器具备:重复检测部,其在存储在所述第1数据库中的所述数据中,检索所述键与所述同步请求所包含的所述客户端变更历史记录的任意一个所包含的所述键一致的数据,并生成包含表示所检索出的数据的所述数据ID在内的重复信息,
所述同步信息发送部将进一步包含所述重复信息的所述同步信息发送到所述客户端,
所述客户端具备:重复解除部,其在与所述重复信息所包含的所述数据ID相对应的所述数据中,决定应删除的数据,
所述解除请求发送部将包含表示由所述重复解除部决定为应删除的所述数据的所述数据ID在内的解除信息进一步包含在所述解除请求中并发送到所述服务器,
所述解除处理部进一步从所述第1数据库中删除与所述解除请求所包含的所述解除信息所包含的所述数据ID相对应的所述数据。
16.根据权利要求14所述的数据同步系统,其特征在于,
在所述数据中附带有所述数据ID,
在所述数据ID中包含:在所述客户端中唯一的识别信息、即局部ID;和在所述服务器以及所述客户端这两者中唯一的识别信息、即全局ID,
所述客户端具备:
局部ID分配部,其在所述客户端中制作了所述数据的情况下,对所制作的数据分配所述局部ID;和
未取得ID存储部,其存储分配给所制作的数据的所述局部ID之中、没有分配所述全局ID的局部ID、即未取得ID,
所述同步请求发送部进一步将包含存储在所述未取得ID存储部中的所述未取得ID的所述同步请求发送到所述服务器,
所述服务器具备:全局ID取得部,其从所述第1数据库中检索与所述同步请求所包含的所述未取得ID相对应的所述全局ID,在存在与所述未取得ID相对应的所述全局ID的情况下,从所述第1数据库中取得该相对应的全局ID,并生成包含所取得的全局ID以及所述未取得ID在内的ID信息,在不存在与所述局部ID相对应的所述全局ID的情况下,新分配所述全局ID,并生成包含所分配的全局ID以及所述局部ID在内的ID信息,
所述同步信息发送部进一步将包含所述ID信息的所述同步信息发送到所述客户端,
所述客户端具备:全局ID登记部,其针对所述同步信息所包含的所述ID信息的每一个,从所述第2数据库中检索与所述ID信息所包含的所述未取得ID相对应的所述数据,并在所检索出的数据中所附带的所述数据ID中设定所述ID信息所包含的所述全局ID。
17.一种数据同步方法,是在服务器、和按照能够与所述服务器通信的方式连接的客户端之间对数据进行同步的方法,
所述数据同步方法的特征在于,
所述服务器能够访问存储包含更新时间点的数据的第1数据库,所述客户端能够访问存储从所述服务器取得的数据的第2数据库,
所述客户端存储锚时间点、即从所述服务器最后取得了所述数据的时间点,并将包含所述锚时间点的同步请求发送到所述服务器,
所述服务器从所述第1数据库中检索所述更新时间点比所述锚时间点晚的所述数据、即更新数据,针对各所述更新数据生成包含表示所述更新数据的数据ID以及所述更新数据的所述更新时间点在内的变更信息,并将包含所述变更信息的同步信息发送到所述客户端,
所述客户端在与所述变更信息相对应的所述数据中,决定应下载数据、即取得数据,并将包含表示所述取得数据的数据ID在内的下载请求发送到所述服务器,
所述服务器从所述第1数据库中取得与所述下载请求所包含的所述数据ID相对应的所述数据,并将包含所取得的数据的下载信息发送到所述客户端,
所述客户端将所述下载信息所包含的所述数据登记到所述第2数据库中。
18.根据权利要求17所述的数据同步方法,其特征在于,
所述客户端针对所述同步信息所包含的各所述变更信息,从所述第2数据库中读出与所述变更信息所包含的所述数据ID相对应的所述数据的所述更新时间点,在所读出的更新时间点比所述变更信息所包含的所述更新时间点新的情况下,决定将与所述数据ID相对应的所述数据上传到所述服务器还是从所述服务器进行下载,
所述客户端将进一步包含表示决定为进行下载的所述数据的所述数据ID在内的所述下载请求发送到所述服务器,
所述客户端从所述第2数据中读出决定为进行上传的所述数据,并将包含读出的所述数据的解除请求发送到所述服务器,
所述服务器将所述解除请求所包含的所述数据登记到所述第1数据库中。
19.一种数据同步方法,是在服务器、和按照能够与所述服务器通信的方式连接的客户端之间对数据进行同步的方法,
所述数据同步方法的特征在于,
所述服务器能够访问存储附带有更新时间点的数据的第1数据库,所述客户端能够访问存储从所述服务器取得的数据的第2数据库,
所述服务器将针对所述第1数据库的数据的变更历史记录按照从新到旧的顺序仅存储规定数量,
所述服务器所存储的所述变更历史记录、即服务器变更历史记录,包含表示成为变更对象的所述数据的数据ID、和该数据中所附带的所述更新时间点,
所述客户端存储锚时间点、即从所述服务器最后取得了所述数据的时间点,
所述客户端将包含用于取得所述数据的条件以及所述锚时间点在内的同步请求发送到所述服务器,
所述服务器在与符合所述同步请求所包含的所述条件的所述数据相对应的所述服务器变更历史记录中,取得所述更新时间点比所述锚时间点晚的服务器变更历史记录,
所述服务器从所述第1数据库中,检索符合所述同步请求所包含的所述条件的所述数据之中、所述更新时间点比所述锚时间点晚,并且比所述服务器所存储的所述服务器变更历史记录的所述更新时间点中最旧的更新时间点、即边界时间点早的数据,针对所检索出的各数据,生成包含表示所述数据的所述数据ID以及所述数据中所附带的所述更新时间点在内的变更信息,
所述服务器将包含所述边界时间点、所取得的服务器变更历史记录、以及所述变更信息在内的同步信息发送到所述客户端,
所述客户端从与所述同步信息所包含的所述服务器变更历史记录或者所述变更信息相对应的所述数据中决定应下载的数据,
所述客户端从所述第2数据库中,检索符合所述条件的所述数据之中、所述更新时间点在所述锚时间点到所述边界时间点为止的期间的数据,针对所检索出的各数据,生成包含表示所述数据的所述数据ID以及所述数据中所附带的所述更新时间点在内的陈旧化信息,
所述客户端将包含表示所决定的数据的取得数据ID以及所述陈旧化信息在内的下载请求发送到所述服务器,
所述服务器从所述第1数据库中,取得与所述下载请求所包含的所述陈旧化信息相对应的所述数据之中、所述更新时间点比所述陈旧化信息所包含的所述更新时间点新的数据、和与所述取得数据ID相对应的所述数据,
所述服务器将包含所取得的数据的下载信息发送到所述客户端,
所述客户端将所述下载信息所包含的所述数据登记到所述第2数据库中。
20.根据权利要求19所述的数据同步方法,其特征在于,
所述客户端存储有所述第2数据库中的数据的变更历史记录,
所述客户端所存储的所述变更历史记录、即客户端变更历史记录,包含表示成为了变更对象的所述数据的所述数据ID、和所述数据中所附带的所述更新时间点,
所述客户端取得与符合所述条件的所述数据相对应的所述客户端变更历史记录,并将所取得的客户端变更历史记录设定在所述同步请求中发送到所述服务器,
所述服务器针对所述同步请求所包含的所述客户端变更历史记录的每一个,在与所述客户端变更历史记录所包含的所述数据ID相对应的、所述第1数据库所存储的所述数据中所附带的所述更新时间点,比所述客户端变更历史记录所包含的所述更新时间点晚的情况下,生成包含所述第1数据库所存储的所述数据中所附带的所述更新时间点以及所述数据ID在内的冲突信息,
所述服务器将进一步包含所述冲突信息的所述同步信息发送到所述客户端,
所述客户端决定将与所述冲突信息所包含的所述数据ID相对应的所述数据上传到所述服务器还是从所述服务器进行下载,
所述客户端将进一步包含表示决定为进行所述下载的数据的所述数据ID在内的所述下载请求发送到所述服务器,
所述客户端从所述第2数据库中读出决定为进行所述上传的数据,并将包含读出的所述数据的解除请求发送到所述服务器,
所述服务器将所述解除请求所包含的所述数据登记到所述第1数据库中。
CN201080039401.8A 2009-09-04 2010-08-11 数据同步系统以及数据同步方法 Expired - Fee Related CN102483715B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2009-204686 2009-09-04
JP2009204686A JP5061166B2 (ja) 2009-09-04 2009-09-04 データ同期システムおよびデータ同期方法
PCT/JP2010/063623 WO2011027654A1 (ja) 2009-09-04 2010-08-11 データ同期システムおよびデータ同期方法

Publications (2)

Publication Number Publication Date
CN102483715A CN102483715A (zh) 2012-05-30
CN102483715B true CN102483715B (zh) 2016-11-30

Family

ID=

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2445034A (en) * 2006-12-21 2008-06-25 Symbian Software Ltd Data synchronisation based on stored filtering capabilities

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2445034A (en) * 2006-12-21 2008-06-25 Symbian Software Ltd Data synchronisation based on stored filtering capabilities

Similar Documents

Publication Publication Date Title
JP5061166B2 (ja) データ同期システムおよびデータ同期方法
CN104486445B (zh) 一种基于云平台的分布式可扩展资源监控系统
CN106487850B (zh) 一种云环境下获取镜像的方法、装置和系统
CN108921551A (zh) 基于Kubernetes平台的联盟区块链系统
CN106648903B (zh) 调用分布式文件系统的方法和装置
CN107888666A (zh) 一种跨地域数据存储系统以及数据同步方法和装置
CN108463817A (zh) 个性化实体库
CN104158886A (zh) 一种应用程序的流式执行方法
CN103634406A (zh) 文件同步方法及其终端
CN109508319A (zh) 一种3d跨平台资源管理系统和方法
CN106790403A (zh) 实现移动云计算中间平台的方法及实现分布式的方法
CN112650545A (zh) 一种配置管理系统、方法及存储介质
CN110365797A (zh) 一种联系人信息的同步方法和装置
CN102594874A (zh) 一种同步处理方法和装置
CN102483715B (zh) 数据同步系统以及数据同步方法
CN110225077A (zh) 变更供应数据的同步方法、装置、计算机设备及计算机存储介质
CN109996031B (zh) 监控系统及监控方法
WO2008032992A1 (en) Method for downloading multimedia contents to electronic picture frame
CN106993026B (zh) 一种ftp服务器新增文件检测下载方法及装置
CN110633322A (zh) 一种资源信息同步方法、装置、电子设备及存储介质
CN110532238A (zh) 基于区块链技术的合同管理系统及方法
CN101594591A (zh) 传统互联网和移动互联网中内容共享的上载方法及系统
CN109189813A (zh) 一种数据共享方法及装置
CN108959367A (zh) 房间基础数据的管理方法、系统、平台、介质和电子设备
CN104869056A (zh) 一种基于关系-数据分离的机构-人员数据同步方法

Legal Events

Date Code Title Description
PB01 Publication
SE01 Entry into force of request for substantive examination
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20161130