您的位置:首页 > 运维架构 > 网站架构

多个Android客户端同步服务器端表中数据架构分析

2012-09-19 19:42 323 查看
需求:Android客户端有N个,服务器端只有一个,客户端会不定时的到服务器端同步数据。

思路分析:

由于客户端的个数不确定,而且是不定时的到服务器端同步数据,所以应该由客户端来维护何时发起请求.

客户端和服务器端都维护一个TableVersion表,服务器端某个数据表中的数据改变时同时修改服务器端的TableVersion表.如下图:



table1中添加了1条数据,rowVersion值为4(自增),修改了1条数据,则把这条数据的rowVersion修改为5(自增),然后又添加了1条数据,这时这条数据的rowVersion为6(自增).table1中每次变动都会同时修改服务器端的TableVersion中table1这一条的数据的Version值,保持当前表的最大值.

客户端发起同步请求时携带客户端的TableVersion数据传递给服务器端,服务器端比对传递过来的客户端TableVersion和服务器端TableVersion的差异就知道了哪些表发生了变化,如下图:



通过比对知道了table1和table3中的数据发生了变化,这时就需要把table1/table3中变化的数据和TableVersion中的全部数据传递给客户端,客户端修改本地的table1/table3和TableVersion中的数据,这就完成了一次同步的过程.例如table1中的数据rowVersion大于3的数据是变化了的数据,因为客户端tableVersion当前记录代表了本地数据的最大版本,只同步这些rowVersion大于3的数据就是只同步变化了的数据.

关于客户端和服务器端交互请参考:

封装一个类搞定90%安卓客户端与服务器端交互 /article/1409631.html

android端数据库处理框架请参考:

Android sqlite数据库操作通用框架AHibernate(一) /article/1409581.html

数据传递可以使用json,请参考:
Json转换利器Gson之实例一-简单对象转化和带泛型的List转化 /article/1409637.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: