基于时间戳:
采用协议①读取Sync server上该用户最后一次成功同步对应的ts②
根据ts从sql ce中抽取数据
读取表间管理约束,按照表间关系以及文件的生成格式生成文件
采用协议传输该文件
-----------------------------以上为pda端的操作---------------------------
Sync server接受文件,按照同步帐号+日期来命令文件
开启事务
读取并解析文件-------检测顺序,与sql摸板进行匹配
提交事务,完成持久化,得到成功与否的标志—flag
同时将userid\flag\同时ts③写到Sync-tableScript中
返回flag到PDA
Note:
协议①:目前是http协议
ts②:该时间戳,取服务器端同步成功后的日期
缺点:
这个方式一定不能让用户更改PDA的日期,否则会造成数据丢失和数据的重复同步
基于标志位 ------推荐的做法
PDA读取Sync server端上次成功同步的标志位(false true)
(I) 如果为false:
将PDA端数据状态为P的改为N
(II)如果为true:
将PDA端数据状态为P的改为Y
读取表间管理约束,过滤数据将sql ce中数据状态为N的数据,结合表关系间以及文件的生成格式生成文件
PDA传输文件
Sync server接受I/O流,在指定目录生成文件,名称:设备编号+用户ID+日期
开启事务
读取文件,按顺序解析文件,寻找SQL摸板
提交事务,完成持久化,得到成功与否的标志位
将该标志位以及用户ID和日期写到sync_tableScript中
注意在该阶段写同步日志
返回给PDA正确与否。
缺点:
PDA端没有不用担心时间的更改引起的数据同步错落;但是更改数据标志:N\P\Y会消耗资源太大
活动图在附件里,由于太大,就截了2张图