CN102684865B - 一种数据同步的方法、***及设备 - Google Patents
一种数据同步的方法、***及设备 Download PDFInfo
- Publication number
- CN102684865B CN102684865B CN201110053760.5A CN201110053760A CN102684865B CN 102684865 B CN102684865 B CN 102684865B CN 201110053760 A CN201110053760 A CN 201110053760A CN 102684865 B CN102684865 B CN 102684865B
- Authority
- CN
- China
- Prior art keywords
- message
- length
- data synchronization
- synchronization request
- 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.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/24—Negotiation of communication capabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/40—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computer And Data Communications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据同步的方法、***及设备,主要内容包括:服务器对返回给客户端的执行状态消息的消息长度进行检测,当确定执行状态消息的消息长度大于客户端能够识别的最大消息长度时,放弃本次客户端的同步请求(即不向客户端返回本次产生的执行状态消息),而是通过向客户端返回状态码,要求客户端重新发送消息长度减少的数据同步请求来重新进行同步操作,通过循环执行本发明实施例的方案,使服务器生成的执行状态消息的消息长度逐步接近并小于客户端能够识别的最大消息长度,直至客户端与服务器之间数据同步过程完成,避免由于客户端无法正确识别执行状态消息而导致同步过程中断的问题。
Description
技术领域
本发明涉及通信领域,尤其涉及一种数据同步的方法、***及设备。
背景技术
目前的移动数据同步化大多建立在互不兼容的私有协议上,每种协议只能支持有限种类的设备、***及数据类型,这些不兼容的协议增加了各方面(用户、生产商、服务提供商、开发商)工作的复杂度,且这些不兼容的协议还会限制移动设备的使用、数据的访问和发行。
为了解决上述移动数据同步化的问题,业界提出了一种信息同步标准协议(Synchronization Markup Language,SyncML),SyncML协议是一种与平台无关的、开放的标准协议,可以在兼容的设备、程序及网络之间进行数据同步。
例如,基于SyncML协议的客户端(SyncML Client)和基于SyncML协议的服务器(SyncML Server)之间进行数据(如通讯簿、日历等数据)同步时的过程如图1所示,包括以下步骤:
步骤101:SyncML Client向SyncML Server发送数据初始化(InitializationPackage)请求,在数据初始化请求中携带了MaxMsgSize参数,用于表示SyncML Client能够识别SyncML Server返回消息的最大消息长度。
步骤102:SyncML Server存储所述SyncML Client发送的MaxMsgSize参数,在完成初始化操作后,向SyncML Client返回初始化响应。
上述步骤101和步骤102是SyncML Client和SyncML Server进行数据同步之前的初始化操作过程,SyncML Client将自身的相关信息发送给SyncMLServer。
步骤103:SyncML Client向SyncML Server发送携带操作信息的数据同步(Sync Package)请求,所述数据同步请求的消息长度不大于MaxMsgSize参数所表示的最大消息长度。
所述操作信息是SyncML Client请求SyncML Server执行的同步操作,如将SyncML Client的通讯簿内的信息同步至SyncML Server的操作信息、将SyncML Client内更新后的日历信息同步至SyncML Server的操作信息等。
步骤104:SyncML Server执行所述操作信息对应的操作,生成所述操作的执行状态消息(Status package),并将所述执行状态信息返回给SyncMLClient,完成本次SyncML Client和SyncML Server之间的数据同步过程。
在一般情况下,SyncML Server生成的执行状态消息的消息长度小于接收到的数据同步请求的消息长度,且由于数据同步请求的消息长度不大于MaxMsgSize参数所表示的最大消息长度,则SyncML Server向SyncML Client返回的执行状态消息的消息长度也不大于MaxMsgSize参数所表示的最大消息长度,因此,SyncML Client能够正确识别接收到的执行状态消息。
但是,在所述操作信息是删除操作信息时,SyncML Server将指定的信息删除后生成的执行状态消息的消息长度将大于数据同步请求的消息长度,特别是在数据同步请求中携带多条删除操作信息的情况下,由于SyncML Server将为每条删除操作信息生成相应的状态消息,则SyncML Server返回给SyncMLClient的执行状态消息的消息长度可能会大于MaxMsgSize参数所表示的最大消息长度,导致SyncML Client无法正确识别接收到的执行状态消息,进而使数据同步操作失败。
以SyncML Client请求SyncML Server同步删除数据库中第1条至第8条记录为例,来说明SyncML Server返回的执行状态消息的消息长度可能会大于MaxMsgSize参数所表示的最大消息长度的情况。
SyncML Client向SyncML Server发送的数据同步请求的内容为:
SyncML Server接收到SyncML Client发送的数据同步请求时,执行相应的删除操作,将数据库中第5条至第12条记录删除,生成的执行状态消息如下:
需要说明的是,在SyncML Client和SyncML Server中记录的同一数据在数据库中的位置信息可能是不同的,例如:在SyncML Client中记录的位置信息为1的记录,在SyncML Server中记录的位置信息为5,在SyncML Client中记录的位置信息为2的记录,在SyncML Server中记录的位置信息为6,以此类推,SyncML Server生成的删除数据库中第5条至第12条记录的执行状态消息,也就是删除SyncML Client请求的数据库中第1条至第8条记录的执行状态消息。
从上例中可以看出,SyncML Client发送的数据同步请求的消息长度为592字节,而SyncML Server返回的执行状态消息的消息长度为1036字节,若SyncML Client能够识别的最大消息长度介于592字节和1036字节之间时,SyncML Client可以向SyncML Server正常发送数据同步请求,但却不能正确识别SyncML Server返回的执行状态消息,使数据同步操作失败。
发明内容
本发明实施例提供一种数据同步的方法、***及设备,用以解决现有技术中存在的当服务器生成的执行状态消息的消息长度大于客户端能够识别的最大消息长度时,导致数据同步操作失败的问题。
一种数据同步的方法,所述方法包括:
服务器在接收到客户端发送的数据同步请求时,确定在响应所述数据同步请求中的操作信息后生成的执行状态消息的消息长度;
服务器在确定生成的执行状态消息的消息长度大于客户端能够识别的最大消息长度时,向客户端返回状态码,指示客户端减少所述数据同步请求的消息长度后,向服务器发送减少消息长度的数据同步请求并重新进行数据同步。
一种服务器,所述服务器包括:
请求接收模块,用于接收数据同步请求;
判断模块,用于判断响应所述数据同步请求中的操作信息后生成的执行状态消息的消息长度是否大于客户端能够识别的最大消息长度;
返回模块,用于在判断结果为生成的执行状态消息的消息长度大于客户端能够识别的最大消息长度时,向客户端返回状态码,指示客户端减少所述数据同步请求的消息长度后,向服务器发送减少消息长度的数据同步请求并重新进行数据同步。
一种客户端,所述客户端包括:
请求发送模块,用于发送数据同步请求;
状态码接收模块,用于接收状态码;
调整模块,用于减少当前发送的所述数据同步请求的消息长度,并利用减少消息长度的数据同步请求触发请求发送模块,请求与服务器重新进行数据同步。
一种数据同步的***,所述***包括:
客户端,用于发送数据同步请求,并在接收到状态码时,减少所述数据同步请求的消息长度后,再次发送减少消息长度的数据同步请求并重新进行数据同步;
服务器,用于在接收到数据同步请求时,确定在响应所述数据同步请求中的操作信息后生成的执行状态消息的消息长度,在确定生成的执行状态消息的消息长度大于客户端能够识别的最大消息长度时,返回状态码。
本发明实施例的方案中,服务器对返回给客户端的执行状态消息的消息长度进行检测,当确定执行状态消息的消息长度大于客户端能够识别的最大消息长度时,放弃本次客户端的同步请求(即不向客户端返回本次产生的执行状态消息),而是通过向客户端返回状态码,要求客户端重新发送消息长度减少的数据同步请求来重新进行同步操作,通过循环执行本发明实施例的方案,使服务器生成的执行状态消息的消息长度逐步接近并小于客户端能够识别的最大消息长度,直至客户端与服务器之间数据同步过程完成,避免由于客户端无法正确识别执行状态消息而导致同步过程中断的问题。
附图说明
图1为背景技术中SyncML Client和SyncML Server之间进行数据同步的步骤示意图;
图2为本发明实施例一中数据同步的方法步骤示意图;
图3为本发明实施例二中数据同步的方法步骤示意图;
图4为本发明实施例三中数据同步的***结构示意图;
图5为本发明实施例四中服务器的结构示意图;
图6为本发明实施例伍中客户端的结构示意图。
具体实施方式
为了实现本发明目的,在本发明实施例的方案中,服务器主动对返回给客户端的执行状态消息的消息长度进行检测,当确定执行状态消息的消息长度大于客户端能够识别的最大消息长度时,放弃本次客户端的同步请求(即不向客户端返回本次产生的执行状态消息),而是通过向客户端返回状态码,要求客户端重新发送消息长度减少的数据同步请求,由于服务器重新接收到的数据同步请求的消息长度减少,因此重新生成的执行状态消息的消息长度也会减少,在重新生成的执行状态消息的消息长度不大于客户端能够识别的最大消息长度时,完成本次数据同步操作;否则,重复要求客户端发送消息长度不断减少的数据同步请求,直至最终生成的执行状态消息的消息长度不大于客户端能够识别的最大消息长度。通过本发明方案,服务器在执行状态消息不能被客户端正确识别时,要求客户端重新调整数据同步请求,直至完成通过过程,克服了现有技术中服务器盲目地向客户端发送执行状态消息,导致客户端与服务器之间的同步过程可能出现中断。
本发明各实施例中的方案可以应用于SyncML协议中,所涉及的服务器可以是SyncML Server,所涉及的客户端可以是SyncML Client。
下面结合说明书附图对本发明实施例进行详细描述。
实施例一:
如图2所示,为本发明实施例一中数据同步的方法步骤示意图,所述方法包括以下步骤:
步骤201:服务器接收客户端发送的数据初始化请求,所述数据初始化请求中携带了MaxMsgSize参数。
步骤202:服务器存储所述MaxMsgSize参数,并返回初始化响应。
上述步骤201和步骤202是服务器和客户端之间进行初始化的过程,是本实施例的优选步骤。
在本实施例的方案中,服务器和客户端可以在首次进行数据同步之前进行上述初始化操作,无需在每次数据同步过程中执行上述初始化操作。
服务器可以通过在上述步骤201和步骤202的初始化过程中确定并记录所述MaxMsgSize参数,进而确定客户端能够识别的最大消息长度,也可以通过其他方式确定客户端能够识别的最大消息长度,如客户端通过其他指令将自身能够识别的最大消息长度发送给服务器。
步骤203:服务器接收客户端发送的数据同步请求。
在本步骤中,服务器接收到的数据同步请求可以是客户端首次向服务器发送的数据同步请求,也可以是由于相邻的前一次数据同步被服务器放弃后,客户端调整重新调整数据同步请求的消息长度后再次发送的数据同步请求。
所述数据同步请求中包括至少一条操作信息,在本实施例中,可以包括要求删除数据库中第1条至第8条记录的8条删除操作信息。
步骤204:服务器确定在响应所述数据同步请求中的操作信息后生成的执行状态消息的消息长度。
假设在步骤203中客户端发送的数据同步请求包含8条操作信息,要求删除除数据库中第1条至第8条记录,则在本步骤中,服务器确定生成的执行状态消息的消息长度为1036字节。
步骤205:服务器判断生成的执行状态消息的消息长度是否大于客户端能够识别的最大消息长度,若是,则执行步骤206;否则,将生成的执行状态消息返回给客户端,完成本次数据同步过程。
在本实施例的方案中,服务器在生成执行状态消息后并不立即向客户端返回,而是判断所述执行状态消息的消息长度是否大于客户端能够识别的最大消息长度,也就是判断客户端能够正确识别生成的执行状态消息。在确定客户端不能正确识别所述执行状态消息时,放弃本次数据同步过程,即不向客户端返回本次生成的执行状态消息,避免由于客户端无法正确识别执行状态消息而导致同步过程中断的问题。
步骤206:服务器判断之前连续返回状态码的次数是否达到设定门限值,若达到,则结束本次数据同步过程;否则,执行步骤207。
其中,连续返回状态码中的最后一次返回状态码至本次向客户端返回状态码之间,服务器没有向客户端返回过执行状态消息。例如,若本次是服务器第15次接收到所述客户端发送的数据同步请求,而在第14次至第10次的连续5次接收到同一客户端发送的数据同步请求时都返回了状态码,但在第9次返回的是执行状态消息,则表示之前连续返回状态码的次数为5次,第9次的数据同步过程成功完成。
若之前连续返回状态码的次数是否达到设定门限值,则服务器将通知客户端结束本次数据同步过程,要求客户端不再针对本次需要同步的事件发送数据同步请求。若客户端希望针对其他事件发起的新的数据同步请求,则客户端可以针对其他事件再次向服务器发送新的数据同步请求。
步骤206是本发明实施例的优选步骤,通过设定重传次数的门限值,避免同步过程出现死循环而无法停止的问题,同时,也避免重传次数过多导致通信资源的过度浪费的问题。
需要说明的是,步骤206中的重传过程可能是由于服务器生成的执行状态消息的消息长度大于客户端能够识别的最大消息长度而发生的,也可能是由于网络环境较差而发生的,在本实施例中,可以设定不论何种原因导致服务器判断之前连续返回状态码的次数已达到设定门限值时,都要求结束本次数据同步过程;也可以设定:以“服务器生成的执行状态消息的消息长度大于客户端能够识别的最大消息长度”这一原因导致服务器判断之前连续返回状态码的次数已达到设定门限值时,才要求结束本次数据同步过程。
步骤207:服务器向客户端返回状态码(Alert Code),并跳转至步骤203,等待重新接收客户端发送的消息长度减少了的数据同步请求。
所述状态码表示由于服务器生成的执行状态消息的消息长度大于客户端能够识别的最大消息长度,服务器放弃本次客户端的数据同步请求,服务器将等待客户端重传的消息长度减少了的数据同步请求,循环执行上述步骤203~步骤207的操作,直至在步骤205中能够完成与客户端之间的数据同步过程,或是在步骤206中确定连续返回状态码的次数已达到设定门限值而退出数据同步过程。
在本步骤中,服务器向客户端返回状态码后,服务器将在步骤206中涉及的连续返回状态码的次数基础上,再增加连续返回状态码的次数,并利用再次增加的连续返回状态码的次数作为下一次执行步骤206的判断条件。
通过本发明实施例一的方案,描述了服务器侧进行数据同步的过程,由于服务器在生成了执行状态消息后并不立即向客户端返回,而是在确定所述执行状态消息的消息长度大于客户端能够识别的最大消息长度时,放弃本次数据同步过程,要求客户端调整数据同步请求的消息长度,直至生成的执行状态消息的消息长度不大于客户端能够识别的最大消息长度时才与客户端完成数据同步过程,避免由于客户端无法正确识别执行状态消息而导致同步过程中断的问题。
实施例二:
本发明实施例二是从客户端侧来描述本发明实施例的数据同步方法,本发明实施例二的方案与实施例一的方案相对应,下面以图3为例,对本发明实施例二的方案进行说明。
本发明实施例二的方案包括以下步骤:
步骤301:客户端向服务器发送数据初始化请求,所述数据初始化请求中携带了MaxMsgSize参数。
本步骤与实施例一中的步骤201和步骤202对应,是客户端和服务器之间的初始化过程,本步骤也是本实施例的优选步骤。
步骤302:客户端向服务器发送数据同步请求。
本步骤与实施例一中的步骤203相对应,客户端可以在首次与服务器之间进行数据同步时向服务器发送数据同步请求,也可以是在接收到服务器返回的状态码后,调整相邻的上一次发送的数据同步请求的消息长度后,向服务器发送消息长度减少后的数据同步请求。
步骤303:客户端判断服务器返回的是状态码还是执行状态消息,若返回的是状态码,则执行步骤304;否则,完成本次数据同步过程。
本步骤与实施例一的步骤204~步骤207对应,在服务器确定执行状态消息的消息长度大于客户端能够识别的最大消息长度,即确定客户端不能正确识别所述执行状态消息时,向客户端返回状态码。
在本步骤中,若客户端接收到服务器返回的状态码,表示服务器放弃本次数据同步请求,则客户端需要重传数据同步请求;若客户端接收到服务器返回的执行状态消息,表示服务器侧已完成本次数据同步过程,客户端识别接收到的执行状态消息后,完成本次数据同步过程。
步骤304:客户端减少相邻的上一次发送的数据同步请求的消息长度,并跳转至步骤302,向服务器发送减少消息长度的数据同步请求。
客户端去除了M条删除操作信息后,在步骤205中发送的数据同步请求中将携带(L-M)条删除操作信息,请求与服务器重新进行数据同步。
由于数据同步请求的消息长度减少了,服务器需要执行的删除操作内容也减少了,因此,生成的执行状态消息的消息长度相对于上一次也将减少,提高服务器和客户端之间数据同步成功实现的可能性。
客户端去除的M条删除操作信息可以在本次数据同步过程成功执行后,再通过携带所述M条删除操作信息的数据同步请求来要求服务器响应相应的操作。
假设客户端发送给服务器的数据同步请求中可以携带L(L为大于1的正整数)条删除操作信息,本步骤的具体实现方式包括但不先以下两种方式:
方式一:
客户端确定每条删除操作信息的消息长度,并去除消息长度最长的N条删除操作信息,所述N为大于0且小于L的正整数
方式二:
客户端去除所述数据同步请求中的M条删除操作信息,所述M为大于0且小于L的正整数。
具体地,客户端可以按照数据同步请求中携带的删除操作信息的数量来去除其中M条删除操作信息,也可以按照数据同步请求的消息长度来去除其中M条删除操作信息,下面分别加以说明:
1、按照数据同步请求中携带的删除操作信息的数量来去除其中M条删除操作信息。
首先,客户端预先设定的第一比值范围,如每次削减8%~12%数目的删除操作信息。
然后,客户端确定需要去除的M条删除操作信息,所述M与L的比值在所述第一比值范围内。
例如,在L=10时,客户端确定当M=1时,削减的数目为10%,M与L的比值在第一比值范围内,因此,客户端去除10条删除操作信息中的1条删除操作信息。
2、按照数据同步请求的消息长度来去除其中M条删除操作信息。
首先,客户端预先设定的第二比值范围,如每次数据同步请求的消息长度削减8%~12%。
然后,客户端确定L条删除操作信息中,每条删除操作信息的消息长度。
接着,客户端根据设定的第二比值范围,确定需要去除的M条删除操作信息,所述去除的M条删除操作信息的消息长度与消息长度减少前的数据同步请求的消息长度的比值在所述第二比值范围内。
例如,在携带的删除操作信息为L条时,数据同步请求的消息长度为a,则按照每条删除操作信息的消息长度,从L条删除操作信息中选择M条删除操作信息,要求M条删除操作信息的消息长度为b,且b与a的比值在第二比值范围内。
需要说明的是,无论通过上述何种方式去除数据同步请求中的删除操作信息后,若去除删除操作信息的数据同步请求发送到服务器,且客户端接收到服务器返回的执行状态消息(表示客户端和服务器完成针对去除删除操作信息的数据同步请求的数据同步操作)后,客户端去除的删除操作信息对应的删除操作仍需要与服务器进行同步,因此,客户端向服务器发送包含去除的删除操作信息的数据同步请求,针对包含去除的删除操作信息的数据同步请求,可以重新执行本实施例二的方案,进行同步操作。
通过本发明实施例二的方案,描述了客户端侧进行数据同步的过程,由于客户端在接收到服务器返回的状态码时确定服务器由于执行状态消息的消息长度过长而放弃本次数据同步过程,因此,客户端将减少数据同步请求的消息长度后重新发送给服务器,要求服务器按照再次接收到的数据同步请求进行数据同步过程,如此循环,直至客户端与服务器之间数据同步过程完成,避免由于客户端无法正确识别执行状态消息而导致同步过程中断的问题。进一步地,本发明实施例二还提供了多种客户端减少数据同步请求的消息长度的方式,使服务器生成的执行状态消息的消息长度逐步接近并小于客户端能够识别的最大消息长度,在确保同步过程正确执行的情况下,使服务器能够同时响应的操作达到最大化,减少客户端和服务器之间的同步过程,提高数据同步效率。
实施例三:
本发明实施例三还提供一种数据同步的***,所述***包括客户端11和服务器12,其中:客户端11用于发送数据同步请求,并在接收到状态码时,减少所述数据同步请求的消息长度后,再次发送减少消息长度的数据同步请求并重新进行数据同步;服务器12用于在接收到数据同步请求时,确定在响应所述数据同步请求中的操作信息后生成的执行状态消息的消息长度,在确定生成的执行状态消息的消息长度大于客户端能够识别的最大消息长度时,返回状态码。
服务器12还用于判断之前连续返回状态码的次数是否达到设定门限值,在没有达到门限值时,向客户端返回状态码,并增加连续返回状态码的次数。
其中,连续返回状态码中的最后一次返回状态码至本次向客户端返回状态码之间,服务器没有向客户端返回过执行状态消息;
服务器12还用于与客户端11进行初始化操作,存储客户端11发送的数据初始化请求中携带的客户端能够识别的最大消息长度。
本实施例中的客户端12可以按照实施例二中的多种方式来减少数据同步请求的消息长度。
具体的,本实施例三中数据同步的***的客户端11和服务器12的交互过程如图4所示:
第一步,客户端11和服务器12之间进行初始化操作,客户端11向服务器12发送数据初始化(Initialization Package)请求,在Initialization Package请求中携带MaxMsgSize参数,用于表示客户端11能够识别服务器12返回消息的最大消息长度;服务器12存储所述MaxMsgSize参数,并在完成初始化操作后,向客户端11返回初始化响应。
第二步,在需要进行数据同步时,客户端11向服务器12发送数据同步(Sync Package)请求,所述数据同步请求的消息长度不大于MaxMsgSize参数所表示的最大消息长度。
第三步,由服务器12执行客户端11请求的操作,并生成执行状态消息(Status package)。若生成的执行状态消息的消息长度大于MaxMsgSize参数所表示的最大消息长度,则服务器12向客户端11返回状态码(Alert Code),通知客户端11当前生成的执行状态消息的消息长度大于MaxMsgSize参数所表示的最大消息长度;若生成的执行状态消息的消息长度不大于MaxMsgSize参数所表示的最大消息长度,则服务器12将生成的执行状态信息返回给客户端11,完成本次数据同步过程。
第四步,客户端11在接收到状态码时,减少数据同步请求的消息长度后,再次发送减少消息长度的数据同步请求并重新进行数据同步,并跳转至第三步。
实施例四:
本发明实施例四还提供一种服务器,如图5所示,包括:请求接收模块21、判断模块22和返回模块23,其中:请求接收模块21用于接收数据同步请求;判断模块22用于判断响应所述数据同步请求中的操作信息后生成的执行状态消息的消息长度是否大于客户端能够识别的最大消息长度;返回模块23用于在判断结果为生成的执行状态消息的消息长度大于客户端能够识别的最大消息长度时,向客户端返回状态码,指示客户端减少所述数据同步请求的消息长度后,向服务器发送减少消息长度的数据同步请求并重新进行数据同步。
所述服务器还包括计数模块24,用于记录之前连续返回状态码的次数,其中,连续返回状态码中的最后一次返回状态码至本次向客户端返回状态码之间,服务器没有向客户端返回过执行状态消息。
所述判断模块22还用于判断之前连续返回状态码的次数是否达到设定门限值,在判断结果为没有达到设定门限值时,触发返回模块23。
返回模块23在向客户端返回状态码后,触发计数模块24增加连续返回状态码的次数。
所述服务器还包括:初始化模块25和存储模块26,其中,初始化模块25用于接收客户端发送的数据初始化请求,所述数据初始化请求中携带了客户端能够识别的最大消息长度,并返回初始化响应;存储模块26存储所述客户端能够识别的最大消息长度。
本发明实施四中还包括能够实现实施例一各步骤的功能模块,此处不再赘述。
实施例五:
本发明实施例五还提供一种客户端,如图6所示,包括:请求发送模块31、状态码接收模块32和调整模块33,其中:请求发送模块31用于发送数据同步请求;状态码接收模块32用于在发送数据同步请求后,接收返回的状态码;调整模块33用于减少当前发送的所述数据同步请求的消息长度,并利用减少消息长度的数据同步请求触发请求发送模块,请求与服务器重新进行数据同步。
所述调整模块33可以按照实施例二中的多种方式来减少数据同步请求的消息长度。
本发明实施五中还包括能够实现实施例二各步骤的功能模块,此处不再赘述。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (8)
1.一种数据同步的方法,其特征在于,所述方法包括:
服务器在接收到客户端发送的数据同步请求时,确定在响应所述数据同步请求中的操作信息后生成的执行状态消息的消息长度,所述数据同步请求中携带L条删除操作信息,所述L为大于1的正整数;
服务器在确定生成的执行状态消息的消息长度大于客户端能够识别的最大消息长度时,向客户端返回状态码,指示客户端减少所述数据同步请求的消息长度后,向服务器发送减少消息长度的数据同步请求并重新进行数据同步,其中,客户端减少所述数据同步请求的消息长度的步骤包括:按照数据同步请求中携带的删除操作信息的数量或者按照数据同步请求的消息长度去除数据同步请求中的M条删除操作信息,具体包括:客户端根据设定的第一比值范围,确定需要去除的M条删除操作信息,所述M与L的比值在所述第一比值范围内;或者客户端确定每条删除操作信息的消息长度,根据设定的第二比值范围,确定需要去除的M条删除操作信息,所述去除的M条删除操作信息的消息长度与消息长度减少前的数据同步请求的消息长度的比值在所述第二比值范围内;或者确定每条删除操作信息的消息长度,并去除消息长度最长的N条删除操作信息,所述M为大于0且小于L的正整数,所述N为大于0且小于L的正整数。
2.如权利要求1所述的方法,其特征在于,服务器在确定生成的执行状态消息的消息长度大于客户端能够识别的最大消息长度之后,且向客户端返回状态码之前,所述方法还包括:
服务器确定之前连续返回状态码的次数未达到设定门限值;
服务器本次在向客户端返回状态码之后,所述方法还包括:
服务器增加连续返回状态码的次数。
3.如权利要求1或2所述的方法,其特征在于,服务器接收数据同步请求之前,所述方法还包括:
服务器接收客户端发送的数据初始化请求,所述数据初始化请求中携带了客户端能够识别的最大消息长度;
服务器存储所述客户端能够识别的最大消息长度,并返回初始化响应。
4.一种数据同步的方法,其特征在于,所述方法包括:
客户端向服务器发送数据同步请求,所述数据同步请求中携带L条删除操作信息,所述L为大于1的正整数;
客户端在接收到服务器返回的状态码时,减少所述数据同步请求的消息长度,并向服务器发送减少消息长度的数据同步请求,请求与服务器重新进行数据同步,其中,减少所述数据同步请求的消息长度的步骤包括:按照数据同步请求中携带的删除操作信息的数量或者按照数据同步请求的消息长度去除数据同步请求中的M条删除操作信息,具体包括:客户端根据设定的第一比值范围,确定需要去除的M条删除操作信息,所述M与L的比值在所述第一比值范围内;或者客户端确定每条删除操作信息的消息长度,根据设定的第二比值范围,确定需要去除的M条删除操作信息,所述去除的M条删除操作信息的消息长度与消息长度减少前的数据同步请求的消息长度的比值在所述第二比值范围内;或者确定每条删除操作信息的消息长度,并去除消息长度最长的N条删除操作信息,所述M为大于0且小于L的正整数,所述N为大于0且小于L的正整数。
5.如权利要求4所述的方法,其特征在于,客户端向服务器发送减少消息长度的数据同步请求之后,所述方法还包括:
客户端在接收到服务器返回的执行状态消息时,向服务器发送包含去除的删除操作信息的数据同步请求。
6.一种服务器,其特征在于,所述服务器包括:
请求接收模块,用于接收数据同步请求,所述数据同步请求中携带L条删除操作信息,所述L为大于1的正整数;
判断模块,用于判断响应所述数据同步请求中的操作信息后生成的执行状态消息的消息长度是否大于客户端能够识别的最大消息长度;
返回模块,用于在判断结果为生成的执行状态消息的消息长度大于客户端能够识别的最大消息长度时,向客户端返回状态码,指示客户端减少所述数据同步请求的消息长度后,向服务器发送减少消息长度的数据同步请求并重新进行数据同步,其中,客户端减少所述数据同步请求的消息长度的步骤包括:按照数据同步请求中携带的删除操作信息的数量或者按照数据同步请求的消息长度去除数据同步请求中的M条删除操作信息,具体包括:客户端根据设定的第一比值范围,确定需要去除的M条删除操作信息,所述M与L的比值在所述第一比值范围内;或者客户端确定每条删除操作信息的消息长度,根据设定的第二比值范围,确定需要去除的M条删除操作信息,所述去除的M条删除操作信息的消息长度与消息长度减少前的数据同步请求的消息长度的比值在所述第二比值范围内;或者确定每条删除操作信息的消息长度,并去除消息长度最长的N条删除操作信息,所述M为大于0且小于L的正整数,所述N为大于0且小于L的正整数。
7.一种客户端,其特征在于,所述客户端包括:
请求发送模块,用于发送数据同步请求,所述数据同步请求中携带L条删除操作信息,所述L为大于1的正整数;
状态码接收模块,用于接收状态码;
调整模块,用于减少当前发送的所述数据同步请求的消息长度,并利用减少消息长度的数据同步请求触发请求发送模块,请求与服务器重新进行数据同步,其中,减少所述数据同步请求的消息长度包括:按照数据同步请求中携带的删除操作信息的数量或者按照数据同步请求的消息长度去除数据同步请求中的M条删除操作信息,具体包括:客户端根据设定的第一比值范围,确定需要去除的M条删除操作信息,所述M与L的比值在所述第一比值范围内;或者客户端确定每条删除操作信息的消息长度,根据设定的第二比值范围,确定需要去除的M条删除操作信息,所述去除的M条删除操作信息的消息长度与消息长度减少前的数据同步请求的消息长度的比值在所述第二比值范围内;或者确定每条删除操作信息的消息长度,并去除消息长度最长的N条删除操作信息,所述M为大于0且小于L的正整数,所述N为大于0且小于L的正整数。
8.一种数据同步的***,其特征在于,所述***包括:
客户端,用于发送数据同步请求,所述数据同步请求中携带L条删除操作信息,所述L为大于1的正整数;并在接收到状态码时,减少所述数据同步请求的消息长度后,再次发送减少消息长度的数据同步请求并重新进行数据同步,其中,减少所述数据同步请求的消息长度包括:按照数据同步请求中携带的删除操作信息的数量或者按照数据同步请求的消息长度去除数据同步请求中的M条删除操作信息,具体包括:客户端根据设定的第一比值范围,确定需要去除的M条删除操作信息,所述M与L的比值在所述第一比值范围内;或者客户端确定每条删除操作信息的消息长度,根据设定的第二比值范围,确定需要去除的M条删除操作信息,所述去除的M条删除操作信息的消息长度与消息长度减少前的数据同步请求的消息长度的比值在所述第二比值范围内;或者确定每条删除操作信息的消息长度,并去除消息长度最长的N条删除操作信息,所述M为大于0且小于L的正整数,所述N为大于0且小于L的正整数;
服务器,用于在接收到数据同步请求时,确定在响应所述数据同步请求中的操作信息后生成的执行状态消息的消息长度,在确定生成的执行状态消息的消息长度大于客户端能够识别的最大消息长度时,返回状态码。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110053760.5A CN102684865B (zh) | 2011-03-07 | 2011-03-07 | 一种数据同步的方法、***及设备 |
PCT/CN2012/072028 WO2012119547A1 (zh) | 2011-03-07 | 2012-03-07 | 一种数据同步的方法、***及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110053760.5A CN102684865B (zh) | 2011-03-07 | 2011-03-07 | 一种数据同步的方法、***及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102684865A CN102684865A (zh) | 2012-09-19 |
CN102684865B true CN102684865B (zh) | 2015-05-27 |
Family
ID=46797494
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110053760.5A Active CN102684865B (zh) | 2011-03-07 | 2011-03-07 | 一种数据同步的方法、***及设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN102684865B (zh) |
WO (1) | WO2012119547A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105827736B (zh) * | 2016-05-20 | 2019-01-25 | 上海画擎信息科技有限公司 | 一种消息发送方法及*** |
CN111666340B (zh) * | 2020-05-27 | 2023-10-27 | 中国平安财产保险股份有限公司 | 基于大数据的同步数据校对方法、装置和计算机设备 |
CN112783972A (zh) * | 2020-12-31 | 2021-05-11 | 武汉工程大学 | 图像特征值数据的同步方法及*** |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1744561A (zh) * | 2004-09-01 | 2006-03-08 | 华为技术有限公司 | 报文转换过程中的超长报文的处理方法 |
CN101399656A (zh) * | 2007-09-27 | 2009-04-01 | 华为技术有限公司 | 一种同步标记语言中的数据同步方法及*** |
CN101877862A (zh) * | 2009-04-30 | 2010-11-03 | 中兴通讯股份有限公司 | 大对象传输方法、服务器 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7570668B2 (en) * | 2001-10-03 | 2009-08-04 | Nokia Corporation | Data synchronization |
US7155521B2 (en) * | 2001-10-09 | 2006-12-26 | Nokia Corporation | Starting a session in a synchronization system |
CN100481837C (zh) * | 2005-09-30 | 2009-04-22 | 北京邮电大学 | 在终端和服务器之间移动用户个人数据的同步处理方法 |
CN101442397B (zh) * | 2007-11-23 | 2012-07-04 | 中兴通讯股份有限公司 | 原因值传输方法 |
-
2011
- 2011-03-07 CN CN201110053760.5A patent/CN102684865B/zh active Active
-
2012
- 2012-03-07 WO PCT/CN2012/072028 patent/WO2012119547A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1744561A (zh) * | 2004-09-01 | 2006-03-08 | 华为技术有限公司 | 报文转换过程中的超长报文的处理方法 |
CN101399656A (zh) * | 2007-09-27 | 2009-04-01 | 华为技术有限公司 | 一种同步标记语言中的数据同步方法及*** |
CN101877862A (zh) * | 2009-04-30 | 2010-11-03 | 中兴通讯股份有限公司 | 大对象传输方法、服务器 |
Also Published As
Publication number | Publication date |
---|---|
CN102684865A (zh) | 2012-09-19 |
WO2012119547A1 (zh) | 2012-09-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109451032B (zh) | 一种消息传递*** | |
CN109802995B (zh) | 消息推送方法、装置、设备及存储介质 | |
CN112261142B (zh) | 一种rdma网络的数据重传方法、装置及fpga | |
CN102684865B (zh) | 一种数据同步的方法、***及设备 | |
CN103701867A (zh) | 一种处理调用请求的方法、***及中心服务器 | |
CN111885564B (zh) | 数据传输方法、设备升级方法、计算机可读的存储介质 | |
CN109391593B (zh) | 用于媒体会话的重试时间确定方法及装置、存储介质、终端 | |
CN111698281B (zh) | 一种资源下载方法、装置、电子设备及存储介质 | |
CN110569115B (zh) | 多点部署的进程管理方法及进程的争夺方法 | |
CN109905459B (zh) | 一种数据传输方法及装置 | |
CN112911659B (zh) | 一种基于nr的信息上报方法及装置 | |
CN104038328A (zh) | 一种多屏互动的消息传输方法、装置和*** | |
KR20180045235A (ko) | 이벤트 메시지 기반 데이터 동기화 방법 및 그 시스템 | |
CN105701109A (zh) | 文件多路发送的方法及装置 | |
CN104753826A (zh) | 一种带宽分配方法及装置 | |
CN110784518A (zh) | 一种静态资源获取方法与装置 | |
CN111600814B (zh) | 一种vfc接口配置方法及装置 | |
CN104581978A (zh) | 一种用户终端及信道接入方法 | |
CN114143300B (zh) | 交易请求发送方法及装置 | |
CN113316101B (zh) | 短信发送方法、短信发送装置、短信发送设备及存储介质 | |
CN110995463B (zh) | Ap自恢复的方法及装置 | |
CN108696382B (zh) | 一种链路恢复方法、装置和通信节点 | |
CN105592144B (zh) | 一种基于透明计算的智能终端资源调度方法 | |
CN113282660A (zh) | 集群内数据的同步方法及***、电子设备、存储介质 | |
CN114666217A (zh) | 基于easymesh的一键升级方法及*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |