CN105791401B - 客户端与服务端在网与离网状态下数据交互方法、*** - Google Patents
客户端与服务端在网与离网状态下数据交互方法、*** Download PDFInfo
- Publication number
- CN105791401B CN105791401B CN201610115320.0A CN201610115320A CN105791401B CN 105791401 B CN105791401 B CN 105791401B CN 201610115320 A CN201610115320 A CN 201610115320A CN 105791401 B CN105791401 B CN 105791401B
- Authority
- CN
- China
- Prior art keywords
- data
- client
- server
- net
- interaction
- 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
-
- 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/50—Network services
- H04L67/54—Presence management, e.g. monitoring or registration for receipt of user log-on information, or the connection status of the users
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了客户端与服务端在网与离网状态下数据交互方法、***,***为:客户端,用以当数据在网产生时,将数据储存至本地,并向服务端发起请求,获得服务端返回的版本差异数据,并在本地进行储存;当数据离网产生时,将该次产生的数据储存至本地,当客户端呈现在网状态时,将上次离网产生的数据与本次在网操作的数据合并后上传至服务端;服务端,用以在所述客户端在网时,接收客户端同步发送的数据并返回版本差异数据至客户端;以及在服务端生成用以生成版本差异的动态编码。当客户端在网、离网状态下的数据交互在进行数据同步时,无需手动同步,仅当接入网络时即可自动进行同步数据交互,确保数据同步的及时性以及多人同时共享数据的精确性。
Description
技术领域
本发明涉及数据通信领域,特别涉及客户端与服务端在网与离网状态下数据交互方法、***。
背景技术
目前市场上同类产品的在网离网状态下数据交互更多的是使用由用户主动发起数据上传请求的同步方式,因为用户数据的同步由用户主动点击上传按钮进行上传,会对多用户间数据共享、数据查询准确性产生影响。如用户A离网状态下录入数据后,在网状态下并未点击上传按钮,那么用户B在用户A点击上传按钮前都无法查看用户A已产生的数据。
现有相近产品离网产生的数据是利用人工点击相应功能按钮的方式进行数据同步,这种人工发起的同步方式会造成数据同步及时性差,多人同时使用一套数据时无法及时的为共享数据提供精确性等问题。
发明内容
本发明要解决的技术问题是,客户端在网、离网状态下的数据交互在进行数据同步时,无需手动同步,仅当接入网络时即可自动进行同步数据交互,确保数据同步的及时性以及多人同时共享数据的精确性。
解决上述技术问题,本发明提供了一种客户端与服务端在网与离网状态下的数据交互***,包括:
至少一客户端,用以当数据在网产生时,将数据储存至本地,并向服务端发起请求,获得服务端返回的版本差异数据,并在本地进行储存;
当数据离网产生时,将该次产生的数据储存至本地,当客户端呈现在网状态时,将上次离网产生的数据与本次在网操作的数据合并后上传至服务端;
一服务端,用以在所述客户端在网时,接收客户端同步发送的数据并返回版本差异数据至客户端;以及在服务端生成用以生成版本差异的动态编码。
更进一步,通过所述客户端自动获得未上传的数据再上传到服务端。
更进一步,自动获得未上传的数据的方法具体为:
3-1)客户端单次上传数据时,服务端为本次上传的所有数据生成一个统一版本号,并通过响应发往客户端;
3-2)客户端将版本号记录在客户端数据源的相应位置,并将本次客户端已上传数据的标识改为已上传;
3-3)客户端之后再上传数据时需将本客户端内所储存的版本号与需上传的数据通过请求交由服务端;
3-4)若客户端为新装则上传版本号为0,服务端收到请求后,将在数据源内搜索大于此次提交版本号的数据并生成新的版本号,作为服务端的响应数据;
3-5)数据响应到客户端后,客户端将版本号存储在客户端的数据源内,并将响应的同步数据经过处理后留存到本地,并将本次已上传数据的上传标识置为已上传。
更进一步,所述版本差异数据的生成方法为,
通过在服务端创建数据版本号,并根据数据版本号对应到差异数据得到版本差异数据,
以及根据所述版本差异数据对每个客户端的数据进行同步或者共享。
更进一步,用户通过手动操作在客户端触发数据更新。
更进一步,所述客户端包括,
客户端交互数据处理模块,所述客户端交互数据处理模块用以将交互数据打包之后发送至服务端;
Service自动处理模块,所述Service自动处理模块用以在客户端在网状态下时自动获得数据,并与客户端交互数据处理模块相连接进行数据同步;Service自动处理模块包括但不限于,在Android环境下Service,通常Service用来执行一些耗时操作,或者后台执行不提供用户交互界面的操作,例如:下载。iOS环境下是Background Transfer Service,比如iOS 7多任务处理中的后台传输服务(Background Transfer Service)。此功能的处理模块的功能由各种***提供,属于***封装方法,开发人员仅通过接口使用即可。
在网判断模块,所述在网判断模块用以在进行数据交互时确认客户端的网络状态。更进一步,所述服务端包括,
服务器交互数据处理模块,所述服务器交互数据处理模块用以接收所述客户端发送的数据并返回数据给客户端;
数据处理模块,所述数据处理模块用以处理服务器交互数据处理模块中所得到的数据;
动态编码产生模块,所述动态编码产生模块用以获得动态编码,根据所述动态编码为本次上传数据确认版本号,并下发至本次上传数据的客户端中。
基于上述***,本发明还提供了客户端与服务端在网与离网状态下的数据交互方法,包括,
触发数据更新,通过各种不同操作***提供的***api接口判断客户端的在网状态。各种不同的操作***都会提供相应的api接口,开发人员仅需调用api接口即可知网络连接是否正常。
当数据离网产生时,则将差异数据标记为未上传后储存至本地的客户端;
当数据在网产生时,则向服务端发送差异数据进行交互,根据所述差异数据在服务端生成动态编码,根据所述动态编码取出大于该动态编码的数据,通过所述服务器返回所述大于该动态编码的数据至客户端;
将所述大于该动态编码的数据和上述未上传的差异数据储存在客户端的本地数据库中,并标识为已上传。
更进一步,当数据离网产生时,所述客户端自动获得未上传的数据,并在所述服务端的数据库中查询是否上传,将未上传的数据上传至服务器。
更进一步,根据所述差异数据在服务端生成动态编码的方法具体为:动态编码即为版本号,服务端生成时需保证序列为数字递增的,已保证服务端较容易进行判断。动态编码的生成方式可以用多种。比如,采用毫秒数+短数字序列的方式;也可以采用服务启动次数+长数字序列的方式等。
本发明的有益效果:
1)由于在本发明的客户端与服务端在网与离网状态下的数据交互***中,通过客户端,当数据在网产生时,将数据储存至本地,并向服务端发起请求,获得服务端返回的版本差异数据,并在本地进行储存;确保了数据产生的在网渠道;另外,当数据离网产生时,将该次产生的数据储存至本地,当客户端呈现在网状态时,将上次离网产生的数据与本次在网操作的数据合并后上传至服务端;确保了数据产生的离网渠道。
2)由于在本发明的客户端与服务端在网与离网状态下的数据交互***中,服务端,用以在所述客户端在网时,接收客户端同步发送的数据并返回版本差异数据至客户端;以及在服务端生成用以生成版本差异的动态编码。通过所述服务端,更加清晰了差异化的同步,利用服务端创建的版本号控制每个客户端需要同步、共享的数据,避免了单次交互时所有数据产生的大量数据造成通信过程过慢的问题。
3)由于在所述客户端,通过所述客户端自动获得未上传的数据再上传到服务端,或者通过你客户端的service自动获得未上传的数据上传到服务器,更快捷地实现了数据版本的同步。
附图说明
图1是本发明一实施例中的客户端与服务端在网与离网状态下数据交互***结构示意图。
图2是图1中的交互时序图。
图3是图1中的利用客户端向服务端进行同步的实施方式示意图。
图4是图3中自动获得未上传的数据的方法流程示意图。
图5是是图1中的客户端与服务端版本差异数据的生成方法示意图。
图6是图1中的客户端内部结构示意图。
图7是图1中的服务端内部结构示意图。
图8是本发明一实施例中的客户端与服务端在网与离网状态下的数据交互方法流程示意图。
图9是本发明一优选实施例中结合服务端和客户端,在网与离网状态下的数据交互方法流程示意图。
图10是本发明一优选实施例中的客户端与服务端在网与离网状态下数据交互***结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
图1是本发明一实施例中的客户端与服务端在网与离网状态下数据交互***结构示意图。
在本实施例中,包括了服务端100和客户端101,其中服务端100设置为一个,用以与所述客户端101建立交互,所述交互包括数据版本的同步、数据的共享,数据的查询。本领技术人员能够明了,客户端101可以包括多个,用以向不同需求的用户提供与服务端数据同步的接入口。
图2是图1中的交互时序图。
在本实施例中,包括服务端100和客户端101,按照如下步骤进行时序交互:
客户端与服务端在网与离网状态下的数据交互***,包括:
至少一客户端101,用以当数据在网产生时,将数据储存至本地,并向服务端发起请求,获得服务端返回的版本差异数据,并在本地进行储存;
当数据离网产生时,将该次产生的数据储存至本地,当客户端呈现在网状态时,将上次离网产生的数据与本次在网操作的数据合并后上传至服务端;
一服务端100,用以在所述客户端在网时,接收客户端同步发送的数据并返回版本差异数据至客户端;以及在服务端生成用以生成版本差异的动态编码。
在所述客户端101,操作为步骤S101,当数据在网产生时,将数据储存至本地,在网表示为移动电话在网、电脑在网以及其它终端在网,即接入通讯网络的情况。当数据在网产生时,需要将数据储存至本地。
向服务端100发起请求,获得服务端返回的版本差异数据,并在本地进行储存,根据数据的版本差异,对上传的数据进行匹配比较,获得版本差异数据,然后将从服务端100获得的数据在客户端101进行储存,完成在网时的数据同步。
然后,在客户端101进行步骤S102,当数据离网产生时,将该次产生的数据储存至本地,当客户端呈现在网状态时,将上次离网产生的数据与本次在网操作的数据合并后上传至服务端。在客户端101对离网产生的数据储存至本地,等待客户端101再次接入网络。一旦检测到所述客户端101呈现在网状态,则将上一次离网时产生的并储存在本地数据与本次在网操作时产生的数据进行合并后一起上传至服务端100,进而实现了快捷、自动的数据同步。
在服务端100,进行步骤S103,在所述客户端在网时,接收客户端同步发送的数据并返回版本差异数据至客户端;以及在服务端生成用以生成版本差异的动态编码。当所述客户端在网时,在服务端100中接收客户端101同步发送的数据,然后再返回版本差异数据至客户端,在所述服务端100中生成的序列为递增的数字,这样可以已保证服务端100较容易进行判断。比如,可采用毫秒数+短数字序列的方式。
图3是图1中的利用客户端向服务端进行同步的实施方式示意图。
在本实施例中,进行同步的步骤为,通过所述客户端101中的service自动获得未上传的数据再上传到服务端100。在Android环境下Service,通常Service用来执行一些耗时操作,或者后台执行不提供用户交互界面的操作,例如:下载、上传。启动Service可以包括两种方式,如,在同一个应用任何地方调用startService( )方法就能启动Service了,然后***会回调Service类的onCreate( )以及onStart( )方法。通过上述方式启动的Service会一直运行在后台,直到Context.stopService( )或者selfStop( )方法被调用。另外一种方式,如bindService( )方法,把这个Service和调用Service的客户类绑起来,如果调用这个客户类被销毁,Service也会被销毁。
另外,在iOS环境下是Background Transfer Service,比如iOS 7多任务处理中的后台传输服务(Background Transfer Service)。此功能的处理模块的功能由各种***提供,属于***封装方法,开发人员仅通过接口使用即可。
或者,在所述客户端101,用户通过手动操作在客户端触发数据更新,比如用,户A离网状态下录入数据后,在网状态下并未点击上传按钮,那么用户B在用户A点击上传按钮前都无法查看用户A已产生的数据,需要通过手动操作或者客户端的Service进行同步数据。
图4是图3中自动获得未上传的数据的方法流程示意图。
当数据离网产生时,将该次产生的数据储存至本地,当客户端呈现在网状态时,将上次离网产生的数据与本次在网操作的数据合并后上传至服务端。在本实施例中,所述自动获得未上传的数据的方法具体为:
步骤S201客户端单次上传数据时,服务端为本次上传的所有数据生成一个统一版本号,并通过响应发往客户端;对于客户端的单次上传,进行统一版本号的管理。
步骤S202客户端将版本号记录在客户端数据源的相应位置,并将本次客户端已上传数据的标识改为已上传,首次单次上传结束。在本实施例中,在客户端数据源此处可以是数据库的某一个表。
步骤S203客户端之后再上传数据时需将本客户端内所储存的版本号与需上传的数据通过请求交由服务端;所述在客户端内所储存的版本号并未更新,所以需要将版本号与需要上传的数据通过请求的方式交由服务端进行处理。
步骤S204若客户端为新装则上传版本号为0,服务端收到请求后,将在数据源内搜索大于此次提交版本号的数据并生成新的版本号,作为服务端的响应数据;对所述步骤S203中的版本号进行判断,大于此次提交版本号的数据即之后更新的新版本号,作为服务端的响应数据。
步骤S205数据响应到客户端后,客户端将版本号存储在客户端的数据源内,并将响应的同步数据经过处理后留存到本地,并将本次已上传数据的上传标识置为已上传。在所述客户端对新的版本号进行储存,将服务端响应同步的数据保存至本地,并且将本次已经上传了的数据上传标识设置为已经上传。
图5是是图1中的客户端与服务端版本差异数据的生成方法示意图。
在本实施例中,在所述服务端100和客户端101之间的版本差异数据的生成方法具体为:
在所述服务端100中,进行操作步骤S401,通过在服务端创建数据版本号,并根据数据版本号对应到差异数据得到版本差异数据。
或者,在所述服务端100,进行操作步骤S402,根据所述版本差异数据对每个客户端的数据进行同步或者共享。
图6是图1中的客户端内部结构示意图。
作为本实施例中的优选,客户端包括,客户端交互数据处理模块1011、Service自动处理模块1012、在网判断模块1013。
客户端交互数据处理模块1011,所述客户端交互数据处理模块1011用以将交互数据打包之后发送至服务端;所述客户端交互数据处理模块1011还用于接收所述在网判断模块1013中的在网或者离网的状态判断情况。并且向所述网判断模块1013发送交互的数据。
Service自动处理模块1012,所述Service自动处理模块1012用以在客户端在网状态下时自动获得数据,并与客户端交互数据处理模块相连接进行数据同步。在Android环境下的Service,通常Service用来执行一些耗时操作,或者后台执行不提供用户交互界面的操作,例如:下载、上传。另外,在iOS环境下是Background Transfer Service,比如iOS 7多任务处理中的后台传输服务(Background Transfer Service)。此功能的处理模块的功能由各种***提供,属于***封装方法,开发人员仅通过接口使用即可。从而实现更加快捷的同步,不用用户每次都进行手动同步。
在网判断模块1013,所述在网判断模块1013用以在进行数据交互时确认客户端的网络状态。当所述在网判断模块1013检测到客户端在网时,则将在网状态信息发送至客户端交互数据处理模块1011,由于客户端交互数据处理模块1011与服务端中的服务器交互数据处理模块连接,能够将数据打包后发送。当所述在网判断模块1013检测到客户端离网时,则将在网状态信息发送至客户端交互数据处理模块1011,则离网产生的数据直接由所述客户端储存在本地。在所述网判断模块1013,当任意方式进入客户端交互数据处理模块1011时,均需要通过该模块判断并确认网络状态。
在所述客户端101,还包括用户手动操作客户端中的相应数据功能,进而产生离网或者在网的数据变化。
图7是图1中的服务端内部结构示意图。
作为本实施例中的优选,服务端100包括,服务器交互数据处理模块1001、数据处理模块1002、动态编码产生模块1003。
服务器交互数据处理模块1001,所述服务器交互数据处理模块1001用以接收所述客户端发送的数据并返回数据给客户端;还与客户端中的客户端交互数据处理模块1011连接,进行数据交互。
数据处理模块1002,所述数据处理模块1002用以处理服务器交互数据处理模块中所得到的数据;具体地,交互数据的处理方式根据语言与需求而定,比如对字段的处理、对数据的查询调用处理等。
动态编码产生模块1003,所述动态编码产生模块1003用以获得动态编码,根据所述动态编码为本次上传数据确认版本号,并下发至本次上传数据的客户端中。作为本实施例中的优选,根据所述差异数据在服务端生成动态编码的方法具体为,动态编码即为版本号,服务端生成时需保证序列为数字递增的,已保证服务端较容易进行判断。动态编码的生成方式可以用多种,比如说毫秒数+短数字序列的方式或者;服务启动次数+长数字序列的方式等。
在本实施例中,在服务端100,还包括数据库或文件1004,当数据离网产生时,所述客户端自动获得未上传的数据,并在所述服务端的数据库中查询是否上传,将未上传的数据上传至服务器。
图8是本发明一实施例中的客户端与服务端在网与离网状态下的数据交互方法流程示意图。
步骤S501,开始
步骤S502触发数据更新,根据操作***中提供的***API接口,判断客户端的在网状态;比如,联通SGIP的API接口,移动短信的API接口;判断客户端的在网状态。
步骤S503当数据离网产生时,则将差异数据标记为未上传后储存至本地的客户端;由于离网时,客户端无法与服务端同步,所以需要将具有差异的数据标记为未上传,并储存至本地的客户端。
步骤S504当数据在网产生时,则向服务端发送差异数据进行交互,根据所述差异数据在服务端生成动态编码,在客户端接入网络,即在网后而当数据在网产生时,则客户端向服务端发送差异数据并进行交互。差异数据的校验方法需要根据差异数据在服务端生成的动态编码,即数据版本号。
步骤S505生成的动态编码是否大于该动态编码,一般而言,动态编码按照从大至小的顺序进行排列。
步骤S506根据所述动态编码取出大于该动态编码的数据,通过所述服务器返回所述大于该动态编码的数据至客户端;在步骤S505得到动态编码取出大于该动态编码的数据,即版本号更高的数据进行更新,并通过所述服务器返回大于该动态编码的数据至客户端。
步骤S507将所述大于该动态编码的数据和上述未上传的差异数据储存在客户端的本地数据库中,并标识为已上传。将大于动态编码的数据以及未上传的差异数据储存在本地数据中,实现了服务端向客户端的同步,并将数据均标识为已上传。
图9是本发明一优选实施例中结合服务端和客户端,在网与离网状态下的数据交互方法流程示意图。
步骤S601手动触发,用户手动操作客户端中的相应数据功能,进而产生离网或者在网的数据变化。
步骤S602产生数据,由于数据产生时有两种渠道,在网产生与离网产生。
步骤S603客户端在网判断模块,若是,则进入步骤S613,若不是,则进入步骤S604;比如,在网判断模块1013,所述在网判断模块1013用以在进行数据交互时确认客户端的网络状态。当所述在网判断模块1013检测到客户端在网时,则将在网状态信息发送至客户端交互数据处理模块1011,由于客户端交互数据处理模块1011与服务端中的服务器交互数据处理模块连接,能够将数据打包后发送。当所述在网判断模块1013检测到客户端离网时,则将在网状态信息发送至客户端交互数据处理模块1011,则离网产生的数据直接由所述客户端储存在本地。在所述网判断模块1013,当任意方式进入客户端交互数据处理模块1011时,均需要通过该模块判断并确认网络状态。
步骤S604调用客户端数据交互模块向服务端发送数据,用以当数据在网产生时,将数据储存至本地,并向服务端发起请求,获得服务端返回的版本差异数据,并在本地进行储存;
步骤S605服务端数据交互模块接收数据,所述数据交互模块为服务器交互数据处理模块1001,
步骤S606将数据存储到服务端数据库,
步骤S607服务端动态编码产生模块,比如,动态编码产生模块1003,所述动态编码产生模块1003用以获得动态编码,根据所述动态编码为本次上传数据确认版本号,并下发至本次上传数据的客户端中。作为本实施例中的优选,根据所述差异数据在服务端生成动态编码的方法具体为,动态编码即为版本号,服务端生成时需保证序列为数字递增的,已保证服务端较容易进行判断。动态编码的生成方式可以用多种,比如说毫秒数+短数字序列的方式或者;服务启动次数+长数字序列的方式等。
步骤S608获得客户端上行的动态编码并将大于此动态编码的数据取出,
步骤S609将之前取出数据与动态编码产生数据汇总,
步骤S610将数据交由服务端数据交互模块发起response,
步骤S611客户端数据交互模块收到response,
步骤S612将服务器返回数据与本地产生数据存储在本地数据库内并标识为已上传并存储数据;进入步骤S616;
若不是,则进入步骤S613将数据标识为未上传并储存数据;
步骤S614客户端service自动触发模块,比如,Service自动处理模块1012,所述Service自动处理模块1012用以在客户端在网状态下时自动获得数据,并与客户端交互数据处理模块相连接进行数据同步。在Android环境下的Service,通常Service用来执行一些耗时操作,或者后台执行不提供用户交互界面的操作,例如:下载、上传。另外,在iOS环境下是Background Transfer Service,比如iOS 7多任务处理中的后台传输服务(BackgroundTransfer Service)。此功能的处理模块的功能由各种***提供,属于***封装方法,开发人员仅通过接口使用即可。从而实现更加快捷的同步,不用用户每次都进行手动同步。
步骤S615查询数据库未上传的数据,即并未标记为已上传的数据。
步骤S616客户端数据源,所述步骤S616客户端数据源进入步骤S604。
由于数据产生时有两种渠道,在网产生与离网产生。在网产生时,除本地存储外将直接向服务端发起请求,并获得服务端返回的版本差异数据,存入本地存储单元。离网产生时,本地存储,当客户端呈现在网状态时,上次离网产生的数据可合并本次在网操作的数据产生一起上传,或通过客户端的service自动获得未上传的数据上传到服务器。
图10是本发明一优选实施例中的客户端与服务端在网与离网状态下数据交互***结构示意图。
在服务端100包括,服务器交互数据处理模块1001、数据处理模块1002、动态编码产生模块1003。
服务器交互数据处理模块1001,所述服务器交互数据处理模块1001用以接收所述客户端发送的数据并返回数据给客户端;还与客户端中的客户端交互数据处理模块1011连接,进行数据交互。
数据处理模块1002,所述数据处理模块1002用以处理服务器交互数据处理模块中所得到的数据;
动态编码产生模块1003,所述动态编码产生模块1003用以获得动态编码,根据所述动态编码为本次上传数据确认版本号,并下发至本次上传数据的客户端中。作为本实施例中的优选,根据所述差异数据在服务端生成动态编码的方法具体为,动态编码即为版本号,服务端生成时需保证序列为数字递增的,已保证服务端较容易进行判断。动态编码的生成方式可以用多种,比如说毫秒数+短数字序列的方式或者;服务启动次数+长数字序列的方式等。主要用于获得动态编码,为本次上传数据确认版本号,并下发至本次上传数据的客户端。
通过所述服务器交互数据处理模块1001与客户端的客户端交互数据处理模块1011,实现数据交互。
在客户端包括,客户端交互数据处理模块1011、Service自动处理模块1012、在网判断模块1013。
客户端交互数据处理模块1011,所述客户端交互数据处理模块1011用以将交互数据打包之后发送至服务端;所述客户端交互数据处理模块1011还用于接收所述在网判断模块1013中的在网或者离网的状态判断情况。并且向所述网判断模块1013发送交互的数据。
Service自动处理模块1012,所述Service自动处理模块1012用以在客户端在网状态下时自动获得数据,并与客户端交互数据处理模块相连接进行数据同步。在Android环境下的Service,通常Service用来执行一些耗时操作,或者后台执行不提供用户交互界面的操作,例如:下载、上传。另外,在iOS环境下是Background Transfer Service,比如iOS 7多任务处理中的后台传输服务(Background Transfer Service)。此功能的处理模块的功能由各种***提供,属于***封装方法,开发人员仅通过接口使用即可。从而实现更加快捷的同步,不用用户每次都进行手动同步。
在网判断模块1013,所述在网判断模块1013用以在进行数据交互时确认客户端的网络状态。当所述在网判断模块1013检测到客户端在网时,则将在网状态信息发送至客户端交互数据处理模块1011,由于客户端交互数据处理模块1011与服务端中的服务器交互数据处理模块连接,能够将数据打包后发送。当所述在网判断模块1013检测到客户端离网时,则将在网状态信息发送至客户端交互数据处理模块1011,则离网产生的数据直接由所述客户端储存在本地。在所述网判断模块1013,当任意方式进入客户端交互数据处理模块1011时,均需要通过该模块判断并确认网络状态。
所属领域的普通技术人员应当理解:以上,所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.客户端与服务端在网与离网状态下的数据交互***,其特征在于包括:至少一客户端,用以当数据在网产生时,将数据储存至本地,并向服务端发起请求,获得服务端返回的版本差异数据,并在本地进行储存;
当数据离网产生时,将该次产生的数据储存至本地,当客户端呈现在网状态时,将上次离网产生的数据与本次在网操作的数据合并后上传至服务端;
一服务端,用以在所述客户端在网时,接收客户端同步发送的数据并返回版本差异数据至客户端;以及在服务端生成用以生成版本差异的动态编码,
通过客户端service自动获得未上传的数据再上传到服务端,自动获得未上传的数据的方法具体为:
客户端单次上传数据时,服务端为本次上传的所有数据生成一个统一版本号,并通过响应发往客户端;
客户端将版本号记录在客户端数据源的相应位置,并将本次客户端已上传数据的标识改为已上传;
客户端之后再上传数据时需将本客户端内所储存的版本号与需上传的数据通过请求交由服务端;
若客户端为新装则上传版本号为0,服务端收到请求后,将在数据源内搜索大于此次提交版本号的数据并生成新的版本号,作为服务端的响应数据;
数据响应到客户端后,客户端将版本号存储在客户端的数据源内,并将响应的同步数据经过处理后留存到本地,并将本次已上传数据的上传标识置为已上传。
2.根据权利要求1所述的数据交互***,其特征在于,所述版本差异数据的生成方法为,通过在服务端创建数据版本号,并根据数据版本号对应到差异数据得到版本差异数据,以及根据所述版本差异数据对每个客户端的数据进行同步或者共享。
3.根据权利要求1所述的数据交互***,其特征在于,用户通过手动操作在客户端触发数据更新。
4.根据权利要求1所述的数据交互***,其特征在于,所述客户端包括,客户端交互数据处理模块,所述客户端交互数据处理模块用以将交互数据打包之后发送至服务端;Service自动处理模块,所述Service自动处理模块用以在客户端在网状态下时自动获得数据,并与客户端交互数据处理模块相连接进行数据同步;在网判断模块,所述在网判断模块用以在进行数据交互时确认客户端的网络状态。
5.根据权利要求1所述的数据交互***,其特征在于,所述服务端包括,服务器交互数据处理模块,所述服务器交互数据处理模块用以接收所述客户端发送的数据并返回数据给客户端;数据处理模块,所述数据处理模块用以处理服务器交互数据处理模块中所得到的数据;动态编码产生模块,所述动态编码产生模块用以获得动态编码,根据所述动态编码为本次上传数据确认版本号,并下发至本次上传数据的客户端中。
6.客户端与服务端在网与离网状态下的数据交互方法,其特征在于包括,触发数据更新,根据操作***中提供的***API接口,判断客户端的在网状态;当数据离网产生时,则将差异数据标记为未上传后储存至本地的客户端;当数据在网产生时,则向服务端发送差异数据进行交互,根据所述差异数据在服务端生成动态编码,根据所述动态编码取出大于该动态编码的数据,通过所述服务端返回所述大于该动态编码的数据至客户端;将所述大于该动态编码的数据和上述未上传的差异数据储存在客户端的本地数据库中,并标识为已上传。
7.根据权利要求6所述的数据交互方法,其特征在于,当数据离网产生时,所述客户端自动获得未上传的数据,并在所述服务端的数据库中查询是否上传,将未上传的数据上传至服务端。
8.根据权利要求6所述的数据交互方法,其特征在于,根据所述差异数据在服务端生成动态编码的方法具体为,毫秒数+短数字序列的方式或者服务启动次数+长数字序列的方式。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610115320.0A CN105791401B (zh) | 2016-03-01 | 2016-03-01 | 客户端与服务端在网与离网状态下数据交互方法、*** |
CN201910742274.0A CN110572437A (zh) | 2016-03-01 | 2016-03-01 | 客户端与服务端在网与离网状态下数据交互方法、*** |
CN201910742273.6A CN110557441B (zh) | 2016-03-01 | 2016-03-01 | 客户端与服务端在网与离网状态下数据交互方法、*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610115320.0A CN105791401B (zh) | 2016-03-01 | 2016-03-01 | 客户端与服务端在网与离网状态下数据交互方法、*** |
Related Child Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910742273.6A Division CN110557441B (zh) | 2016-03-01 | 2016-03-01 | 客户端与服务端在网与离网状态下数据交互方法、*** |
CN201910742274.0A Division CN110572437A (zh) | 2016-03-01 | 2016-03-01 | 客户端与服务端在网与离网状态下数据交互方法、*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105791401A CN105791401A (zh) | 2016-07-20 |
CN105791401B true CN105791401B (zh) | 2019-09-20 |
Family
ID=56386802
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910742274.0A Pending CN110572437A (zh) | 2016-03-01 | 2016-03-01 | 客户端与服务端在网与离网状态下数据交互方法、*** |
CN201910742273.6A Active CN110557441B (zh) | 2016-03-01 | 2016-03-01 | 客户端与服务端在网与离网状态下数据交互方法、*** |
CN201610115320.0A Active CN105791401B (zh) | 2016-03-01 | 2016-03-01 | 客户端与服务端在网与离网状态下数据交互方法、*** |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910742274.0A Pending CN110572437A (zh) | 2016-03-01 | 2016-03-01 | 客户端与服务端在网与离网状态下数据交互方法、*** |
CN201910742273.6A Active CN110557441B (zh) | 2016-03-01 | 2016-03-01 | 客户端与服务端在网与离网状态下数据交互方法、*** |
Country Status (1)
Country | Link |
---|---|
CN (3) | CN110572437A (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106355358A (zh) * | 2016-10-21 | 2017-01-25 | 用友网络科技股份有限公司 | 移动erp***中具有双模式数据操作方法及erp*** |
CN109361767B (zh) * | 2018-12-06 | 2021-11-02 | 思必驰科技股份有限公司 | 优化客户端数据显示误差的处理方法、服务器、及客户端 |
CN111769800B (zh) * | 2020-03-19 | 2021-09-28 | 尚特杰电力科技有限公司 | 一种光伏电站数据采集器离网状态下的数据处理机制 |
CN111857603B (zh) * | 2020-07-31 | 2022-12-02 | 重庆紫光华山智安科技有限公司 | 数据处理方法及相关装置 |
CN112681405A (zh) * | 2020-12-15 | 2021-04-20 | 广东广建项目管理有限公司 | 一种基坑自动化变形监测*** |
CN112905553A (zh) * | 2021-02-07 | 2021-06-04 | 全链通有限公司 | 基于区块链的数据共享方法、装置及*** |
CN113762890A (zh) * | 2021-08-17 | 2021-12-07 | 广州快批信息科技有限公司 | 一种基于pda本地存储的货物离线盘点方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102457499A (zh) * | 2010-10-26 | 2012-05-16 | 腾讯科技(深圳)有限公司 | 客户端的离线工作方法和离线工作客户端 |
CN103997525A (zh) * | 2014-05-21 | 2014-08-20 | 北京紫光天禾软件***技术有限公司 | 一种分布式数据同步方法及*** |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6912591B2 (en) * | 2001-05-02 | 2005-06-28 | Science Application International Corporation | System and method for patch enabled data transmissions |
US7337239B2 (en) * | 2002-11-19 | 2008-02-26 | Microsoft Corporation | Atomic message division |
WO2006053019A2 (en) * | 2004-11-08 | 2006-05-18 | Sharpcast, Inc. | Method and apparatus for a file sharing and synchronization system |
CN1852137A (zh) * | 2005-07-20 | 2006-10-25 | 华为技术有限公司 | 一种实现客户端数据和服务器端数据同步的方法 |
CN101064630B (zh) * | 2006-04-24 | 2011-09-21 | 华为技术有限公司 | 一种数据同步方法及*** |
CN101127960B (zh) * | 2007-09-20 | 2011-05-11 | 中兴通讯股份有限公司 | 一种电子业务指南的差异性更新的***及方法 |
US7991740B2 (en) * | 2008-03-04 | 2011-08-02 | Apple Inc. | Synchronization server process |
JP2011257959A (ja) * | 2010-06-08 | 2011-12-22 | Toshiba Corp | 差分検索システム |
CN102571935B (zh) * | 2011-12-23 | 2015-11-25 | 华为技术有限公司 | 一种数据传输的方法、客户端、服务器和*** |
US8504519B1 (en) * | 2012-06-27 | 2013-08-06 | Dropbox, Inc. | Determining a preferred modified version from among multiple modified versions for synchronized files |
CN103002010B (zh) * | 2012-10-29 | 2016-09-28 | 北京奇虎科技有限公司 | 一种基于增量数据的数据更新方法、装置和*** |
CN103095843B (zh) * | 2013-01-28 | 2018-01-30 | 刘海峰 | 一种基于版本矢量的数据备份方法及客户端 |
CN103634445B (zh) * | 2013-11-19 | 2016-08-17 | 云宏信息科技股份有限公司 | 来电显示方法及装置 |
EP3125501B1 (en) * | 2014-04-15 | 2018-08-22 | Huawei Technologies Co., Ltd. | File synchronization method, server, and terminal |
CN103916482B (zh) * | 2014-04-21 | 2017-02-08 | 合肥盈云信息科技有限公司 | 一种基于sqlite的数据同步传输方法 |
-
2016
- 2016-03-01 CN CN201910742274.0A patent/CN110572437A/zh active Pending
- 2016-03-01 CN CN201910742273.6A patent/CN110557441B/zh active Active
- 2016-03-01 CN CN201610115320.0A patent/CN105791401B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102457499A (zh) * | 2010-10-26 | 2012-05-16 | 腾讯科技(深圳)有限公司 | 客户端的离线工作方法和离线工作客户端 |
CN103997525A (zh) * | 2014-05-21 | 2014-08-20 | 北京紫光天禾软件***技术有限公司 | 一种分布式数据同步方法及*** |
Also Published As
Publication number | Publication date |
---|---|
CN110572437A (zh) | 2019-12-13 |
CN105791401A (zh) | 2016-07-20 |
CN110557441A (zh) | 2019-12-10 |
CN110557441B (zh) | 2022-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105791401B (zh) | 客户端与服务端在网与离网状态下数据交互方法、*** | |
CN103501337B (zh) | 多级数据节点更新同步***和方法 | |
CN102075580B (zh) | 分布式网络设备中同步数据的存储方法及*** | |
CN103209223A (zh) | 分布式应用会话信息共享方法、***和应用服务器 | |
US7657609B2 (en) | Data transfer in a multi-environment document management system access | |
CN103701913B (zh) | 数据同步方法及装置 | |
UA65638C2 (uk) | Система і спосіб синхронізації і організації бази даних | |
CN107656981A (zh) | 一种基于标识技术的数据共享和管理方法及*** | |
CN101815087A (zh) | 一种移动通信终端的信息缓存方法 | |
CN101471819A (zh) | 测试***、测试方法、管理域及操作域 | |
WO2019179423A1 (zh) | 卡调用方法、装置、信息推送方法、装置及卡分配*** | |
CN108076081B (zh) | 一种业务数据的同步方法、装置和*** | |
EP4050850A1 (en) | Service upgrading method, device and system | |
CN102209335A (zh) | 一种多网元用户数据的获取方法及装置 | |
CN101360345A (zh) | 一种数据业务的管理方法、装置及*** | |
CN102916930A (zh) | 融合业务网络及其节点、资源请求的路由信息的获取方法 | |
CN102186163B (zh) | 一种智能手机多账户通讯录的资料同步方法 | |
CN102185917A (zh) | 一种服务器适配移动终端的方法及***、服务器适配装置 | |
CN101540969A (zh) | 号码携带在短消息***中的实现方法和装置 | |
CN103491137A (zh) | 数据同步***和数据同步方法 | |
CN101645072A (zh) | 基于Oracle CDC技术实现的变更数据抽取方法 | |
CN105007310A (zh) | 信息同步方法、装置和*** | |
CN106339154A (zh) | 一种列表页面更新方法和装置 | |
CN1901587B (zh) | 一种移动通讯网络的联机批价装置和批价方法 | |
CN105045785B (zh) | 一种数字城市监督中心受理子***及其工作方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |