`
dalezhu
  • 浏览: 203094 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

OMA DS(数据同步)的主要用途和流程简介

阅读更多
DS全称是Data Synchronization,是数据同步的意思。

      为了制订可以在多个平台及网络之间实现个人信息及企业内数据同步的标准规格,于2000年2月份创建了业界团体SyncML iniative,后来SyncML规范移交到了OMA DS工作组(Open Mobile Alliance, Data Synchronization Work Group)。开发SyncML的目的在于,使终端用户、设备开发商、基础构件开发商、数据提供商、应用软件开发商以及服务提供商协同工作,真正实现使用任何终端设备均可随时随地访问任何网络数据。该组织于2002年12月发布了SyncML V1.0标准,目前该标准已经发展到V1.2。
     DS的典型应用是移动设备和网络服务之间的数据同步。除此之外,DS还可用于对等的数据同步,如两台PC之间。经过同步初始化阶段的参数协商以后,终端和服务器互相发送各自改变的数据,以保证双方数据的同步。

     目前定义的主要同步格式主要包括vCard, iCalendar, vFolder, vEmail, vFile;主要对应手机上的通讯录、日程表、目录、电子邮件和文件;最常用的功能莫过于备份手机通讯录了,特别是当手机丢失的时候,网上备份的通讯录仍然可以同步回来,避免了损失。

     目前规范中定义的同步方式主要包括:
(1) 双向同步
(Two-way sync)  双向同步是通常所使用的一种同步方式。采用该方式,同步客户端和服务器端相互仅交换彼此设备中的数据修改信息(未修改的不交换)。客户端首先发送其修改信息。
慢同步

(2)慢同步
(Slow sync)  慢同步是双向同步的一种特殊类型,不同之处在于必须对数据进行逐条、逐个字段的进行比较处理。这意味着,同步时,客户端必须把本地数据库中的所有数据都发送到服务器端,然后服务器端对用户的客户端数据和服务器端数据进行逐个字段的同步分析。

(3) 客户端单向同步
(One-way sync from client only)  客户端单向同步是一种单边方式的同步。只有客户端发送其数据修改信息到服务器,而服务器并不把服务器端的修改信息发给客户端。

(4)客户端刷新
(Refresh sync from client only)  客户端刷新也是一种单边方式的同步。客户端把本地数据库中的所有数据都发送到服务器端,服务器用客户端的数据来覆盖服务器数据库中的所有数据。即服务器中的数据和客户端的完全一致,不多、不少、也没有不同的记录。.

(5)服务端单向同步
(One-way sync from server only)  服务端单向同步和客户端单向同步类似。只有服务器发送其数据修改信息到客户端,而客户端并不把它的修改信息发给服务器。

(6)服务端刷新
(Refresh sync from server only)  服务端刷新和客户端刷新类似。服务器把数据库中用户的所有数据都发送到用户客户端,客户端用服务器的数据来覆盖客户端数据库中的所有数据。即客户端中的数据和服务器的完全一致,不多、不少、也没有不同的记录。.

(7)服务端通知同步
(Server Alerted Sync)  服务端通知同步是指由服务器首先提醒客户端来执行同步操作。即由服务器来告诉客户端开始一个特定类型的同步操作。仅仅是服务器通知终端,要求其发起某种同步,后续同步流程可能为以上六种同步方式。

   这里仅举双向同步的例子,其他同步是双向同步的特殊情况。例如慢同步可以看成是客户端和服务器发送全部数据的双向同步;单向同步是当方向发送同步数据的双向同步;刷新同步是单方向发送数据的慢同步。






同步分为三个阶段:



1、同步初始化阶段(如图Pkg#1和Pkg#2)



   同步初始化主要完成身份鉴权、需要同步的数据库的协商、同步能力的协商(支持同步哪些数据、支持哪些同步类型等)。图中使用消息包(Pkg)的原因是:这种交互过程可能需要持续多次才能完成,逻辑上只有一来一回两种消息。




2、同步阶段(如图Pkg#3和Pkg#4)



   客户端和服务器根据数据的状态(新增Add、更新Update、删除Delete、移动Move)将发生改变的数据通过上述操作命令的方式发送到服务器,服务器按照这些命令进行相同的操作来达到同步的目的;同时服务器也将其发生改变的数据通过操作命令的方式发送给客户端。




3、同步完成阶段(如图Pkg#5和Pkg#6)



客户端和服务器端互相确认同步完成。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics