SyncML应用开发库模型设计

来源 :电脑知识与技术·学术交流 | 被引量 : 0次 | 上传用户:zhiyuanxu
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:目前,移动环境中的数据同步技术众多,本文在对数据同步基本问题的分析与对主流同步技术方案分析比较基础上,预测了数据同步技术的可能发展方向,归纳整理了在多种平台下进行SyncML客户端应用开发所需要的共同能力,并对SyncML的交互控制与同步的概念模型进行了整理设计。
  关键词:SyncML;模型设计;数据同步
  中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)09-11659-03
  
  SyncML the Application Development Model Design
  WANG Sheng1, HUANG Guo-quan2
  (1.Guangdong College of Pharmacy Department of Software Engineering, Guangzhou 510006, China; 2.Guangdong College of Pharmacy Information Engineering College Computing Center, Guangzhou 510006, China)
  Abstract: At present, there are many data synchronization technologies in the mobile environment,the paper base on the analysis of the basic issues of data synchronization and the comparative analysis of synchronization technology, predicted the possibility of data synchronization technology development direction, summarized up common capacity needed in a variety of platforms under the SyncML client application development, collated and designed a SyncML interactive control and synchronization concept model.
  Key words: SyncML; Model Design; Data Synchronization
  
  1 引言
  
  随着移动通信与计算机技术的发展,移动智能设备被广泛应用在人们日常生活中,大量的信息被存储在这些设备上,同时由于经常性的交互,这些信息通常存在着多个副本。为了在人们之间正确共享交流信息,必须及时保持这些信息的副本的一致与更新;数据同步成为了移动计算中的重要应用模式。本文通过比较主要的数据同步技术与方案,详细分析了SyncML协议的关键问题,提出了一个被称为MobSDK的SyncML客户端开发工具库模型,包含有SyncML客户端应用的开发所需要的运行支持环境与公共操作函数,以方便SyncML客户端应用的开发工作。
  
  2 数据同步技术
  
  2.1 数据同步概念
  关于什么是数据同步迄今在工业界中并没有一个统一的定义,在本文中,我们采用了参考文献[2,3]中给出的如下定义:数据同步是使存在关联映射关系的两个数据集的数据元素等价的操作,任意一个数据集中的更新都会被同步操作传递到另一数据集中。
  2.2 数据同步在移动计算中的意义
  在移动环境下,由于移动终端的计算存储能力比常见的PC产品更是有着数据级的差别,更需要与其它的设备互联以获取资料。各种文档资料经常在不同终端和服务器间进行交换,通常会在不同设备上留下数据的多份副本,而在通常情况只对这些本地副本进行访问。为了保证事务处理的正确性,就需要随时保持这些副本间数据的一致与更新。
  2.3 数据同步技术应用前景
  尽管目前移动通信技术已经得到极大的发展,但移动网络所能提供的连接仍然只能称作间断性连接,利用同步技术为用户提供无缝的网络使用感受仍然是必要的软件补充。而随着以后移动通信带宽和移动设备的计算存储能力的发展,移动应用中对带宽和存储处理能力的需求也会同步增长,这决定了对数据同步技术的使用需求也会长期
  存在。
  
  3 同步产品比较
  
  下面简单对一些同步产品(协议)进行比较。参与比较的方案中有象ActiveSync、HotSync这样的已经产品化的技术,也有如CPISync这样的尚处于学院研究阶段的项目。我们从计算强度、逻辑拓朴、系统规模、计算复杂度、适用环境等方面进行比较,可以得出表1。
  
  由表1可见,对于大多数系统规模较小的应用环境,ActiveSync/HotSync/SyncML等技术方案足以胜任。CPISync有着通信负载小,适用面广的优点,如果可以很好地解决信息记录表示方法的问题,也将有很好的前景,但目前仍难于推广。SyncML在现有的应用环境下拥有和ActiveSync与HotSync相近的表现,但开放性与可扩展性给了它良好的发展前景,成为目前数据同步应用的主流。
  
  4 开发库概念模型设计
  
  4.1 开发库设计动机
  SyncML技术汲取了其他数据同步技术的优点,成为了目前同步技术发展的主流。但尽管有了这样一套标准的协议,在终端设备上进行SyncML应用的开发时,开发人员仍需要在处理特定业务逻辑之外耗费大量的时间与精力,这加大了应用开发的难度,影响到了SyncML协议的推广普及。下面拟设计的MobSDK开发库选用了异步远程调用(RPC)模型,应用开发人员就不必关心消息构造、发送、响应获取与解析等过程中的细节,只需要关注会话状态的变迁,在恰当的状态下调用正确的同步命令,获取命令执行结果直至完成同步。
  4.2 SyncML命令处理
  SyncML中的命令是同步操作的原语,同步控制流程就是同步参与者间一系列命令的交互过程。通过对SyncML协议中的命令级交互进行分析与归纳,我们将这些交互分成了以下几个类别,对他们各自采用不同的处理方法。
  4.2.1 基本操作型原语(Add/Delete/Replace/Copy)
  SyncML中为提供了增、删、改、复制四种基本的记录操作,来描述其他各种复杂的记录变更情况。自上次同步后发生修改的设备将自身的修改用这四种操作进行描述,发送到对端。除明确标示不需要状态响应的情况之外,接收到命令的一方都应当回送操作执行的状态:执行成功或是同步冲突、认证失败等。同时,即使发送方标示不需要状态响应,接收方仍然可以送回同步的操作状态。
  4.2.2 信息单位控制原语(Sync/Sequence/Atom)
  Sync/Sequence/Atom这几个命令的作用是在同步过程中标识出一个特定的同步单位(或者是一个数据集,或者是一个语意块)。这个同步单位是由基本的记录或其它的记录组合成的小的同步单位构成。对于这类命令,给出的响应值实际包含了所有它的子单位的执行状态。
  4.2.3 扩展操作原语(Get/Put/Exec/Search)
  这几个命令定义的交互机制没有被用于SyncML中的数据对象同步过程,而被用来进行辅助信息的交换、信息查询过滤、调用远端过程和应用程序,它们是SyncML协议中的标准用户扩展机制,不同应用程序可以用这些命令来完成特定应用的扩展。
  另外,Get/Search命令的返回不仅只有一个状态值,还包括其他的数据。这些数据是命令执行的具体产物,在SyncML协议中是通过一个Results元素送回。但在送出Results之前,接收命令的一方还必须将命令的执行状态通过Status命令汇报给命令发送方。如果这些命令执行失败,允许只有失败状态报告,不必再有Results。这类命令可以理解成为带返回参数的RPC调用。
  4.2.4 提醒原语(Alert)
  这个命令用于传递一个提醒信息,主要用在请求对数据库进行某种类型同步,或请求对端发送大数据对象的后继部分等情况下。对这个命令我们可以依据其具体的使用场合,将其细分成不同的逻辑操作,以不同的API向用户提供,而不必把这个命令本身暴露给应用开发人员。
  4.2.5 消息头(SyncHdr)的响应
  最后在SyncML协议中,把一条消息的消息头也视作一个特殊的命令,这一命令主要承载的是内容包括服务器一级访问认证信息、目标地址重定向及其他的如消息尺寸这样的需要协商内容。消息头中不含有命令ID项,在协议中将其ID指定为0。在SyncML交互流程中,设备在每一条消息中都必须对它所收到的前一条消息的消息头给出正面的应答,否则即意味着同步过程失败。
  这种处理方式使得协议本身的交互控制与应用逻辑的交互有了统一的形式,然而,我们的设计目标是使应用开发人员尽量不被协议本身的交互纠缠,有必要将这一交互封装起来。分析这部分内容,应用开发人员所需要关心的仅有认证信息,这可以由事先注册的认证失败处理过程完成,其他的信息将被自动应用到工作区管理(最大消息尺寸的元信息)、传输层的重定向(RespURI信息)等功能中去。
  4.3 使用MobSDK的SyncML同步过程
  通过前面的分析与整理,现在一个SyncML客户端应用使用同步功能的过程就变得很清晰。图1显示了一个使用MobSDK的同步应用的典型流程(为了图形的简洁,没有显示错误处理和消息分拆的情况)。图中的SML应用和SML命令回调部分同属于客户端应用的设计内容,SML运行环境对应于MobSDK提供的逻辑模型。
  
  4.3.1 初始化过程
  会话的初始化过程中主要完成同步锚点状态检查、数据库同步方式协商和数据库的访问认证。而对于客户端有权力决定采用单独的初始化过程,我们不必在开发库中考虑无单独初始化包的情况。为简化AP对初始化的处理,我们通过一个结构来保存会话相关信息(包含有同步初始化的各项设置),通过以这一结构为参数的会话连接请求调用,应用程序发起会话连接初始化。在MobSDK封装的运行支撑环境完成连接初始化工作以后,用会话连接确认通知应用程序会话的初始化情况。用户接到会话成功初始化的确认信息以后,就可以继续进行数据的交换。
  4.3.2 数据交换过程
  这里我们以仅对一个数据库进行同步为例说明客户端应用程序的处理过程。在函数库的使用模型中,将同步的几个阶段分离开。
  4.3.2.1 发送更新阶段
  这一阶段对应于图1中5~13部分。客户端的主要任务是进行更新信息的组织。这一部分进行以下工作:
  (1)发起smlBegSync调用,开始发送对本数据库的更新请求。
  (2)连续调用smlAddCmd/smlCpyCmd/smlDelCmd等命令,发送完成全部本地更新。在发送过程中保存每一个命令的序号,等待命令的确认。
  (3)调用smlEndSync,结束对当前数据库的更新请求。
  (4)在对方响应消息的结束处理中判断己方发送命令是否已全部得到处理。如果已经处理完成转入下一阶段,否则发送请求下一消息的Alert命令,直至对方对所有本方要求响应的命令都给出响应为止。
  4.3.2.2 接收更新阶段这一阶段中,客户应用程序的工作模式是解析接收到的消息,进行命令调度。在各个命令的回调函数中执行具有相应语意的操作,如果需要在不同命令的执行间共享信息,可以通过回调函数中用户数据参数来实现,具体细节在下一章中有进一步描述。对于执行命令需要回送的状态信息,应用程序仅需要将其排队,进行响应设置。而在正式开始构造消息时,再将Status与Results命令依序编排进入待发送的消息中。由于必须要等到服务器发送来的4#包结束,客户端才能进行映射表的回送,因而在这一阶段产生的映射记录项,也必须先行将其排入队列,在进入下一阶段后再编排到消息中进行发送,或转存到关于会话记录的文件中,在下一次同步开始前进行发送。
  当接收到对方带final标记的消息时,对方不再发送更新信息,只需要将本方应发的响应信息发送完毕即可。如果本方的响应信息需要多条消息才可以发送完成,在完全发送完响应前会有几个值为223的Alert命令的处理。结束后转入映射表发送阶段。
  4.3.3 映射表发送阶段
  在映射发送阶段的任务就是通过多个Map命令,将不同的数据库的映射记录分别发送到对端。如果这一阶段的Map命令没有得到正面的响应,应用程序应当依据设置再次发送映射表,或是将所有的MapItem保存起来,待下一次这两个设备再同步时另行发送。
  
  5 总结
  
  本文通过对SyncML协议的深入分析,设计了一个快速开发库,在后续的研究中,将进一步完善此开发库的相关环节,使之成为开发SyncML应用的有效工具。这对推动移动计算的应用与发展,有着积极的意义。
  
  参考文献:
  [1] Carlos D. Correa, Ivan Marsic: Software framework for managing heterogeneity in mobile collaborative systems, Proceedings of the 2003 international ACM SIGGROUP conference on Supporting group work,November 2003.
  [2] Tancred Lindholm: XML three-way merge as a reconciliation engine for mobile data,Proceedings of the 3rd ACM international workshop on Data engineering for wireless and mobile access,September,2003.
  [3] S.Agarwal,D.Starobinski, A.Trachtenberg: On the scalability of data synchronization protocols for PDAs and mobile devices. IEEE Network, vol.16, n4, July/August, 2002.
  [4] Trachtenberg, D. Starobinski, S.Agarwal:Fast PDA Synchronization Using Characteristic Polynomial Interpolation, Proceeding of INFOCOM, June 2002.
  [5] SyncML Initiative, Building an Industry Wide Mobile Data Synchronization Protocol, SyncML White Paper,Mar.20,2000.
  [6] Enabler Release Definition for SyncML Common Specifications, version 1.1.2. OMA, June 12th, 2003.
  [7] SyncML Sync Protocol, version 1.1.2. OMA, June 12th,2003.
  [8] SyncML Representation Protocol, version 1.1.2.OMA,June 12th,2003.
  [9] Oracle Database Lite 10g Technical White Paper, Oracle Website, http://download.oracle.com/oowsf2004/1270_wp.pdf,Auguest 2004.
  [10] Alan Yeung, 等. 邱仲潘, 等, 译. Oracle 9i 移动技术[M]. 机械工业出版社,2003.
  [11] 任立刚, 宋俊德. 移动终端数据同步协议研究[J]. 电信科学,2002.
  [12] 中华人民共和国信息产业部. YD/T1229-2002. 可移动终端数据同步协议及信息交换数据格式技术要求,2002.
其他文献
摘要:介绍了P2P的概念和特点,分析了P2P搜索与传统搜索的不同之处,并从结构角度出发剖析和比较了P2P四种不同的搜索技术,给出了它们的优缺点。  关键词:P2P;网络搜索  中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)24-1144-02  Analysis of P2P Networks Search Method  HUANG Xi-ni   (Dept. o
书名:当代对比语言学探索研究  作者:孙霞,谢建国,吴箫言  出版社:中国纺织出版社  出版时间:2017年  ISBN:9787518032747  定价:42元  人们对于语言学的研究与观察愈发受到自然科学与哲学领域的影响。在语言的发展史上,人们通过大量现象证明了语言之间是有亲属关系的,并且划分了一定的语言谱系。由孙霞、谢建国等组织编写的《当代对比语言学探索研究》一书收集了众多學者的观点,不仅
【关键词】中年级,生动的语言,教学现状,教学策略  “感受课文生动的语言,积累喜欢的语句”是统编教材三年级上册第七单元的语文要素,也是《义务教育语文课程标准(2011年版)》(以下简称“课程标准”)第二学段教学目标“初步感受作品中优美的语言”和“积累课文中的优美词语、精彩句段”在教材中的体现。但是,笔者在课堂教学与研讨活动中发现,有的教师对“感受生动的语言”这一语文要素的理解和实施存在偏差,有必要
摘要:聊天室设计的原理是把发言插入到数据库的表里,然后再读了取表中的记录显示在客户端的浏览器上,如何来驱动聊天记录的更新显示,一个方式是只要有人发言,就更一次,另一种方式每隔一定时间,程序设定更新一次,把发言表单,显示记录放到一个页里,这就形成了一个简单聊天室。  关键词:asp数据库;跳转  中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)27-1985-02  Us
摘要:VMWare 和Ethereal是目前很多网络专业人员使用的网络协议分析器。在单机环境下用VMWare和Ethereal搭建網络协议学习平台,能充分发挥软件分析、模拟、仿真功能,使学生深刻掌握抽象的网络协议知识和技能,为学生学习新的网络协议打下良好的基础。  关键词:单机环境;VMWare;Ethereal;网络协议  中图分类号:TP393文献标识码:A文章编号:1009-3044(200
摘要:本文介绍了FLASH DSO在移动电站发动机检测中的应用,以及在C Bulider环境下基于DLL的检测软件的开发方法。该系统硬件设计原理及检测软件开发的基本思路和方法可为类似检测系统提供参考。  关键词:动态链接库;数据采集;FLASH DSO;移动电站发动机检测  中图分类号:TM624文献标识码:A文章编号:1009-3044(2008)21-30445-03    Use of
摘要:为研究频率跟踪式干扰条件下某跳频无线通信网络的性能,基于OPNET建模与仿真工具构建某跳频无线通信网络的仿真模型。模型实现了跳频电台的各项功能,准确描述了该跳频无线通信网络的通信行为。  关键词:无线跳频通信网络;跳频电台;OPNET  中图分类号:TP391文献标识码:A文章编号:1009-3044(2008)21-30425-04    Study on the Simulation M
摘要:本文主要介绍在动态网页教学中采用项目式教学模式,通过参与项目设计开发激发学生的学习兴趣,提高学生的综合技术能力,并获得相应的课程知识,达到了提高教学效果的目的。  关键词:项目式教学;动态网页技术ASP;应用  中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)12-20ppp-0c    Talking the Taching of Project in the
摘要:当前各院校的计算机专业大都开设了ASP.NET程序设计课程,本文从课程准备、教学方法、实践教学、课程设计等几方面总结了如何更好的开展ASP.NET程序设计课程教学的方法。  关键词:ASP.NET;程序设计;前导课程;教学方法;考核方式  中图分类号:G642文献标识码:A文章编号:1009-3044(2008)19-30082-02  Exploration of "ASP.NET Pro
魔法山脚下的小木屋里,住着一位慈祥的老婆婆,老婆婆一个人住,觉得很寂寞。但自从老婆婆订阅了一份魔法山的周报,一切都改变了。  这天,小女巫送来了一份新报纸,老婆婆戴上老花镜一边看报纸,一边喝茶。老婆婆用剪刀将喜欢的文章剪下来,貼在本子上,报纸上留下一个个大大小小、方方正正的空框,老婆婆将报纸夹起来,挂在窗边的墙上。  中午的阳光暖暖的,斜照在摇椅上,老婆婆品着茶,摇着摇椅渐渐地睡着了。  “啾啾啾