SYNCML协议


SYNCML协议用于处理客户端和服务端的数据同步机制。

比如手机上的pushmail,其本质可以理解为客户端和服务端数据同步的实现。


首先,客户端需要进行一个初始化,从server获取全量数据,完成后标识客户端的数据锚点,代表当前client数据的状态。

当服务端收到另一个客户端的数据改动请求,并更新数据后,则需要对其它所有客户端进行sync通知。其它客户端收到通知后,将自己的锚点发送给server,server返回从锚点开始到最新数据点的所有修改日志。客户端根据修改日志重做客户端的数据。

当客户端发生数据变动后,由客户端发起,提交锚点和修改日志给服务端,服务端根据请求,做相应的数据订正,并把服务端接受到的其它客户端的修改变动返回。

当服务端检测到数据冲突后,则返回状态码。由客户端进行决定。包括:1、冲突合并 2、复制数据 3、客户端优先


几个要点:

1、包括client和server,所有数据以“修改日志”的形式,分割为一个个数据单元

2、server的sync notify需要和client进行长连接,从而发起push message通知

3、通信机制可以建立在http协议上,包括客户端和服务端的双向修改,通过http协议的post和response完成。

4、数据同步可能的形式有:client单向, server单向,双向同步,server同步通知

你可能感兴趣的:(协议)