(计算机应用技术专业论文)syncml客户端应用开发库设计与实现.pdf_第1页
(计算机应用技术专业论文)syncml客户端应用开发库设计与实现.pdf_第2页
(计算机应用技术专业论文)syncml客户端应用开发库设计与实现.pdf_第3页
(计算机应用技术专业论文)syncml客户端应用开发库设计与实现.pdf_第4页
(计算机应用技术专业论文)syncml客户端应用开发库设计与实现.pdf_第5页
已阅读5页,还剩89页未读 继续免费阅读

(计算机应用技术专业论文)syncml客户端应用开发库设计与实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 随着移动通信与计算机技术的发展,移动智能设备被广泛应用在人们r 常 生活中,大量的信息被存储在这些设备上,同时由于经常性的交互,这些信息 通常存在着多个副本。为了在人们之阊正确共享交流信息,必须及时保持这些 信息的副本的一致与更新:数据同步成为了移动计算中的重要应用模式。i b m , l o t u s ,m o t o r o l a , n o k i 巩p a l ms o u r c e 等公司组成的s y n c m l 发起组提出了 s y n c m l ,为在异种平台、网络、与应用之间进行数据交换与同步提供开放、标 准的机制。s y n c m l 技术汲取了其他数据同步技术的优点,引入x m l 技术进行 通用的内容表示框架的设计,并提供了一套标准的信息交互流程与故障处理、 恢复机制。它为不同设备间进行数据交换与同步提供了统一的语言,成为了目 前同步技术发展的主流。但尽管有了这样一套标准的协议,在终端设备上进行 s y n c m l 应用的开发时,开发人员仍需要在处理特定业务逻辑之外耗费大量的 时间与精力,在资源受限的环境下处理同步服务自身的逻辑。这加大了开发符 合s y n c m l 兼容性规范要求的应用的难度,影q 到了s y n c m l 协议的推广普及 和数据同步技术作用的发挥。 在本课题中,作者通过对s y n c m l 协议的深入分析,归纳整理了在多种平 台下进行s y n c m l 客户端应用开发所需要的共同能力,并对s y n c m l 的交互控 制与同步的概念模型进行了整理设计,实现了一套被称为m o b s d k 的s y n c m l 客户端开发工具库,包含有s y n c m l 客户端应用的开发所需要的运行支持环境 与公共操作函数,以方便s y n c m l 客户端应用的开发工作。我们还利用这一开 发工具库设计实现了一个s y n c m l 客户端应用的原型m o b s y n cc l i e n t ,通过对 开发库与客户端进行严格细致的兼容性测试,证实了工具库的讵确性与兼容性。 实践证明这一开发库有利于快速开发设计符合s y n e m l 协议规范标准的应用, 提高了s y n c m l 客户端产品的开发效率,对于s y n c m l 的普及以及在s y n c m l 技术基础上进行应用开发都有重要意义。 本文在对数据同步基本问题的分析与对主流同步技术方案分析比较基础 上,预测与评估了数据同步技术的可能发展方向。然后通过对s y n c m l 协议关 键问题的分析得出了s y n c m l 客户端应用对开发库的需求。在稍后的章节中, 分别从开发概念模型与功能模块设计角度对这一玎发库进行了细致的描述,介 绍了丌发库中的各个关键接口、模块之间的相互关系及应用方法。文术还介绍 了通过对m o b s y n cc l i e n t 的测试完成的l 开发库的兼容性钡4 试过程。 关键字:s y n c m l 开发库数据同步移动智能终端、 泰容性测试 、 w i t ht h ed e v e l o p m e n to f m o b i l ec o m m u n i c a t i o na n dc o m p u t a t i o nt e c h n o l o g y , m o r e m o b i l ei n t e l l i g e n td e v i c e s 啪a p p l i e di np e o p l e se v e r y d a yl i f e p e o p l es t o r et h e i r i n f c r m a t i o ni nv a r i o u sd e v i c e s a n di ng e n e r a lc a s e st h e s ei n f o r m a t i o nh a v eaf e w c o p i e si nd i f f e r e n td e v i c e s f o rt h ec o r r e c t n e s sa n da c c u r a t e n e s so f c o l l a b o r a t i o n b e t w e e nd i f f e r e n tp e o p l e ,w em u s tk e e pt h ei n f o r m a t i o nc o n s i s t e n ta n du p d a t e d t h e m o b i l ei n d u s t r i e s ,i n c l u d i n gi b m ,l o t u s ,m o t o r o l a , n o k i a ,p a l ms o u r c e ,o r g a n i z e d t h es y n c m l ( s y n c h r o n i z a t i o nm a r k u pl a n g u a g e ) i n i t i a t i v ei no r d e rt od e v e l o pa n d p r o m o t e a no p e ns t a n d a r df o rd a t a s y n c h r o n i z a t i o nm e c h a n i s m sw h i c hc a n b e a p p l i e dt oh e t e r o g e n e o u sp l a t f o r m s ,n e t w o r k sa n da p p l i c a t i o ns e r v i c e s c o m b i n e d w i t ho t h e r s y n c h r o n i z a t i o nd e s i g n s a d v a n t a g e ;s y n c m li m p l e m e n t i t s r e p n e s 硪睡诗f 缸町e w o r kw i t hx m l a n dp r o v i d eau n i f i e di n f o r m a t i o ne x c h a n g e p r o c e s sa n ds e r i e so f f a u l tp r o c e s s r e c o v e r yp o l i c i e s s y n e m lc a r lb eu s e d 懿t h e g e n e r a ll a n g u a g eo f d a t as y n c h r o n i z a t i o n w i t ht h es u p p o r to fl n o r ct h a n4 0 0t o p r u n n e r si nm o b i l ei n d u s t r y , s y n c m lh a sb e c o m et h em o s t w i d e l ya c c e p t e d s y n c h r o n i z a t i o np r o t o c o la n d t h ed ef a c t os y n c h r o n i z a t i o ns t a n d a r d w i t ho u taf i n e d e s i g n e dd e v e l o p m e n t t o o l k i t , e v e nw i t ht h i ss t a n d a r d p r o t o c o l ,a p p l i c a t i o n d e v e l o p e r sh a v et os p e n dal o n gt i m ei m p l e m e n t i n gp r o t o c o ls p e c i f i cl o g i c sw i t h g r e a tc a r ew h e nt h e yw o r k i n go nr 懿d o u l x 2 e l i m i t e dd e v i c e t h i ss i t u a t i o nm a k e si t d i f f i c u l tt oi m p l e m e n tas y n c m lc l i e n tw i t hw e l l c o n f o r m a n c eo nm o b i l et e r m i n a l s i nt h i sp r o j e e t ,t h ea u t h o rd e s i g na n di m p l e m e n t e das y n c m lc l i e n td e v e l o p m e n t t o o l k i t ,w h i c hn a m e da sm o b s d k o nt h eb a s i so f i n - d e p t ha n a l y s i so fs y n c m l d a t a e x c h a n g ep r o c e s s w i t h i nt h et o o l k i t ,w eb u i l du pac l e a rc o n c e p t u a lm o d e lf o r s y n c h r o n i z a t i o np r o c e s s a n dd a t a m a n i p u l a t i o n s i nt h e p r o c e s s t h e t o o l k i t i m p l e m e n t e dr u n t i m e e n v i r o n m e n t sa n dc o m m o nf u n c t i o n sn e e d e db ys y n c m l c l i e n td e v e l o p m e n to nv a r i o u sp l a t f o r m s w ed e s i g n e dac l i e n ta p p l i c a t i o nc a l l e d m o b s y n cc l i e n tu s i n gt h i st o o l k i t t h ec o r r e c t n e s sa n dc o n f o r m a n c eo f t o o l k i ti s e x a m i n e da n d p r o v e db y t h i sa p p l i c a t i o n t h ed e v e l o p m e n t p r a c t i c es h o w e d t h a tt h e t o o l k i tc a n d r a s t i c a l l y i n c r e a s et h e p r o g r a m m i n ge f f i c i e n c y a n dh a s g r e a t s i g n i f i c a n c et ob o t hp r o m o t i o n o f s y n c m l a n dm o b i l e c o m p u t a t i o n i nt h i st h e s i sa ne s t i m a t i o no f s y n c h r o n i z a t i o nt e c h n o l o g yt r e n dw a s f i r s t l yg i v e no u t o nt h eb a s i so f r e s e a r c ho n k e yi s s u e si ns y n c h r o n i z a t i o na n dc o n t r a s to f m a i n l yu s e d s y n c h r o n i z i n gs c h e m a t h e nw ea n a l y z e di s s u e si ns y n c m lp r o t o c o la n di n d u c t e d t h er e q u i r e m e n t so fs y n c m lc l i e n tt oad e v e l o p m e n tt o o l k i t m a i nb o d yo ft h e t h e s i sg i v e su sap a r t i c u l a rd e p i c to fm o b s d k ,f r o mb o t hac o n c i s ev i e wo fi t s f r a m e w o r ka n dad e t a i l e dp e r s p e c t i v eo fm o d u l a ri n t e r f a c e sa n di n t e r a c t i o n s t h e l a s t c h a p t e rs h o w e dt h ep r o c e s so fc o n f o r m a n c et e s t i n g ,w h i c h i sc a r r i e do u tb y t e s t i n go n t h et o o l k i ta n dt h ea p p l i c a t i o ni m p l e m e n t e do nb a s i so fi t k e y w o r d s :s y n c m l ,d e v e l o p m e n tt o o l k i t ,d a t as y n c h r o n i z a t i o n ,i n t e l l i g e n t m o b i l ed e v i c e s ,c o n f o i t n a n c et e s t i n g 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取 得的研究成果。据我所知,除了文中特别加以标注和致谢的地方外,论文 中不包含其他人已经发表或撰写过的研究成果,也不包含为获得电子科技 大学或其它教育机构的学位或证书而使用过的材料。与我一同工作的同志 对本研究所做的任何贡献均已在论文中作了明确的说明并表示谢意。 签名:盏益红日期:础蜱j 月6 日 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁 盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文 的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或 扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名:旅喜龟 导师签名: 日期:一、0 f 年( 月,8 日 1 1 课题背景 第一章引言 随着移动通信与计算技术的发展,移动终端拥有了更多的计算能力,人们 使用移动终端来处理与存储各种数据一一如名片、闩程安排、邮件乃至文档、 目录等各种结构化非结构化的数据,同时这些数据又经常需要在不同用户之 间进行交换以完成复杂的交互与协作,还时常会被分别更新。为了保证这种协 作任务的j 下确完成,必须有一种手段确保不同设备上的数据集内容的一致性与 及时性,我们把这种手段定义为数据同步。 数据同步已经成为移动计算的一种基础应用模式】,然而由于多方面原因, 目前的同步技术并没有能够很好地起到应有的作用。由于在移动环境中连接特 性很不稳定,设备种类繁多。需要交互的数据格式也千差力别,使得同步应用 的设计实施与部署都是异常复杂,由应用丌发人员来进行将不容易保证其正确 实施。另一方面,大量由不同的组织开发设计的私有同步实现充斥于网络中, 使得不同设备间无法互通,也使同步的作用大打折扣。为了使数据同步技术可 以发挥其应有的作用,迫切需要标准化与规范化的同步解决方案。 + s y n c m l 协议由i b m ,l o t u s ,m o t o r o l a , n o k i a , o p e n w a v e ,p a l ms o u r c e , s t a r f i s h 多家移动产业界顶级公司组成的s y n c m l 发起组( 目前已经合并进入 o p e nm o b i l e a l l i a n c e 组织) 提出和倡导,是x m l 技术与传统数据同步技术相结 合的产物。它利用x m l 技术来解决不同设备间同步时的数据与交互信息表示 问题,借鉴已有的同步技术方案中提出自己的同步交互流程,使得现有同步产 品向s y n c m l 的迁移可以平滑进行。同时这一标准捐j 有良好的可扩展性,在满 足目前的数据同步应用需求的同时兼顾了将来的发展,也为在协议基础上开发 高层次的应用逻辑提供了良好的支持。这一标准迅速得到众多通信设备运营商 和软件硬件厂商的支持,成为了同步解决方案标准化与规范化过程中的首选技 术。 s y n c m l 的应用与推广成为了目前移动数据同步领域内的主流方向。但拥 有大量符合其兼容性规范【7 j 9 10 1 的应用产品才是这一标准普及与推广的关键所 s y n c m l 协议最初仅为i 叫步1 f l 设计目前它的心用已经扩j 罐到驶稀管理等领域,但奉文中所涉及内裤仅 指j c m 用十数据l 州步的内容,为避免议蚋 ,特作此中i 鲫 第1 负 u 了科技人学坝卜学位论文s y n e m l 客户端开发库设盐! ! 兰摆 在。目前在桌面系统、服务器上进行s y n c m l 应用开发已有优秀的丌源商业产 品可以提供支持u 7 , 8 】,然而,在资源受限的移动终端产品上进行s y n c m l 应用 开发可以选用的产品却相对较少,且存在着这样或那样的问题( 详见4 7 2 节) 。 这导致了在市场上的很多s y n c m l 产品实际并不符合标准规范,难于良好互通, 反过来影响了s ”c m l 标准的进一步应用。深入研究s y n c m l 技术并设计实现 标准、易用的开发工具库对于推广s y n c m l 应用,提高移动计算应用水平等都 有着积极意义,同时也有着良好的市场前景。 1 2 课题来源与作者主要工作 本课题源于横向合作公司的移动数据同步产品项目。该项目包括s v n c m l 应用丌发工具库m o b s y n cs d k ( m o b s d k ) 和在智能终端上的s y n c m l 客户端应 用m o b t i m es y n e m l c l i e n t ( m o b s y n c ) 两个部分,旨在为客户提供s y n c m l 应用 丌发与产品设计的全方位支持。作者在项目中主要负责m o b s d k 的总体设计和 会话逻辑、消息编解码、工作区管理等模块的设计与实现,同时参与了o b e x w s p 绑定模块的设计实现和m c b s y n e 的原型实现工作。主要完成了以下的研 究与工程任务: 当前的主流数据同步技术与可能的发展方向研究与评估 s y n e m l 的协议框架与事务交互分析 s y n e m l 客户端应用开发需求分析 m o b ) s d k 同步开发模型建立 m o b s d k 框架设计 会话管理消息编解码工作区管理模块设计与实现 m o t s y n c 原型的设计与实现 m o b s y n c 的兼容性互操作性测试 1 3 论文章节安排 在本课题中,通过对目前的具有代表性的同步产品与技术方案的分析比较, 在对s y n c m l 协议进行深入分析研究与掌握的基础上进行了一套s y n c m l 客户 端应用丌发工具库的设计与实现。在论文中重点分析了s y n c m l 的同步操作语 义模型,明确了s y n c m l 客户端应用开发中的关键技术问题,并对传输绑定管 理、消息编解码技术、传输会话管理等部分的设计与实现作了详细描述。 笫2 负 j i 音 第一章简要介绍了数据同步技术的出现背景与现状,说明了课题的来源与 意义,同时也介绍了作者在论文工作期间完成的主要工作。 第二章介绍了数据同步技术的概念与意义,并对于数据同步技术中需要考 虑的基本内容作了简要分析,作为对同步产品方案进行分析与把握的依掘。 第三章中通过对于一些具有代表性的同步产品与方案的比较,分析了他们 的基本特征与适用场合,明确了什么样的同步技术可以适用于目前的主流应用, 以及今后可能的发展方向。 第四章中对于s y n c m l 协议规范的框架与表示交互协议进行了分析,明确 了s y n c m l 客户端应用开发需要处理的任务,得到对s y n c m l 客户端开发工具 的基本需求。在本章中还对s y n c m l 协议在今后可能的发展方向作出预测。 第五章中结合s y n c m l 协议自身对同步命令的语义要求,介绍m o b s d k 中 应用开发的设计模型,并导出了开发库的总体框架设计。 第六章中详细描述了m o b s d k 的整体结构,并对其中传输绑定管理、 s y n e m l 消息的构造、s y n c m l 消息解析与同步命令分发、同步会话管理模块等 作了细致的描述。最后还介绍了使用这一开发工具包进行s y n c m l 客户端产品 开发过程中需要处理的任务,同时介绍了使用这一开发库设计实现的产品的测 试方案与结果。 第3 _ 贞 l b 了科技人学烦。l 学位论文s y n c m l 客户端开发库设计0 实现 2 1 数据同步概念 第二章数据同步技术基础 关于什么是数据同步迄今在工业界中并没有一个统一的定义,在本文中, 我们采用了参考文献【2 ,列中给出的如下定义:数据同步是使存在关联映射关系的 两个数掘集的数据元素等价的撵雅意一个数据集中的更新都会被同步操作传递 到另一数据集中。 用一个例子来说明:两个数据集s 1 = s 2 = f a ,b ,c ) 分别存贮在不同位置。 如果s 1 被更新为 a b ,c ,而s 2 被修改成为 如b ,c ) ,那么同步的目的就是 使这两个数据集呈现出:s 1 = s 2 = a ,b ,c 的状态。这个例子演示了记录发生 修改的情况,如果数据集中的记录有增加或删除的情况与之类似。另外若此例 中s 2 被修改成为 a b ”,c ,即两数据集同时对记录b 进行了修改,我们就称发 生了同步冲突,同步以后b 记录可能是对两记录修改的合并,或是其中的某一 记录的状态,这种选择和处理的过程称为同步中的冲突消j 2 e ( c o r t f l i c t r e s o l v e ) 。 从前面的描述可以看出:同步中的两个数据集中的数据元素必须存在某种 单映射( 之所以不称为全射是因为在同步过程中不能保证这个映射是满射) 关 系,任何一个集合中的数据元素通过这个关系在另一集合中都可以有唯一的对 应元素。同步操作的基本单位就是这些数据元素,而同步就是使发生在一个数 掘集中的元素修改传递到另一集合中,对相应的数据元素作出对应的操作。 数据同步可以发生在任意两个数据集间,但本文中主要关心处于弱连接( 带 宽较低,或连接不稳定等) 环境下的分布在不同移动终端及服务器上的不同数据 副本间的同步,对于其他情况下的同步样式与技术,将仅作简单评述。 2 2 数据同步在移动计算中的意义 我们常说在信息时代不能联接网络的p c 是一个信息孤岛。在移动环境下, 由于移动终端的计算存储能力比常见的p c 产品更是有着数据级的差别,更需 要与其它的设备互联以获取资料。各种文档资料经常在不同终端和服务器问进 行交换而各种移动应用为了避免连接速度影响使用感受,或是希望在连接中 止以后仍能访问这些信息,通常会在不同设备上留下数据的多份的副本,而在 通常情况只对这些本地副本进行访问。为了保证事务处理的f 确性,就需要随 第4 负 数据l 州步技术嫡础 时保持这些副本间数据的一致与更新。 2 2 1 移动同步典型使用场景 我们来看一个移动交易系统中的场景。在这个系统中,货品信息主要存放 在交易所的服务器中,用户通过移动终端查询货品信息,下达交易指令,而交 易指令记录同时会存在于终端和服务器中以便核对。由于移动连接价格和速度、 不稳定性等因素,当用户需要交易以前,会先下载他所感兴趣的货品信息到移 动终端上,进行选择处理;用户在终端上进行交易计划,指令操作也被暂时缓 冲在本地,等到连接恢复以后再及时将货品信息更新,校验操作是否仍然成立, 如果交易条件成熟的话就将用户操作命令传递到服务器中进行处理。在上面的 例子,不同设备上的数据副本只有一个,即服务器端数据发生了改变。在很多 场合下,不同的副本是可能各自发生变化的。 再来看一个同程管理系统的场景:一个职员的移动终端和公司服务器上均 有他的工作同程安排。当员工外出时与客户约见以后,可能会确定他下一次会 面的安排,在自己的终端上作出修改。而同时在服务器上的安排数据又可能因 为收到来自办公群件中的指令发生变更。在协作活动中,不同的用户同时对一 定的数据集的操作是更为普通的一种情况:如一个任务组共同修改一个待办事 宜清单,共同对一个设计文档进行修改等等。 在前面的这些描述中,我们都可以看到一个共同的应用模式:移动终端从 主数据库获取数据的最新副本,在离线的情况下对本地副本作出修改,然后在 一定的时间将副本中的更新与主数据库进行同步,使主副数据库状态致。依 赖于这些数据的计算任务在同步完成以后再继续操作。在这些应用场合下,我 们可以认为存在着一个同步层,它负责检测出各副本的更新情况,对冲突情况 进行处理,维护副本问的一致性。 2 2 2 数据同步技术应用前景 尽管目前移动通信技术已经得到极大的发展,网络覆盖与网络速度也都得 到了极大的进步,但移动网络所能提供的连接仍然只能称作间断性连接,利用 同步技术为用户提供无缝的网络使用感受仍然是必要的软件补充;如果再考虑 到连线成本等因素,当用户无力承受随时连线所需要负担的高昂费用时,在应 用中使用同步技术以减轻软件应用的经济成本对于这些应用的普及推广的意义 将更是不言自明的。而随着以后移动通信带宽和移动设备的计算存储能力的发 展,移动应用中对带宽和存储处理能力的需求也注定会同步增长,这决定了对 数据同步技术的使用需求也会长期存在。 第5 负 i u 予科拉人学碳j :学位论文s y n e m l 客户端开发库设计,实现 2 3 数据同步产品概况 出于意识到数据同步对于移动计算的重要意义,主流的操作系统、数据库 及办公群件厂商都推纷纷推出了基于自己的产品平台的数据同步产品。一些独 立软件厂商在更早时候就瞄准了这一市场。 23 1 专有数据同步产品 m i c r o s o f t 为自己的w i n c e 产品设计了a c t i v es y n c ,为使用w i n c e 的平 板电脑、嵌入式终端产品连接w i n d o w s 桌面系统,进行双向的数据同步制订了 组丌发接口,同时实现了支持同步会话管理的运行支持平台,意图将自己的 在桌面系统中的优势也带入到嵌入式移动终端领域。p a l m o s 作为领先的移动 操作系统,也在较早时候为自己的产品推出了h o t s y n e 开发规范和相应的产品, 允许p a l m 终端与p c 平台连接,和基于p c 的p i m 系统、办公群件等交换p i m 信息、邮件、文档及其他数据。a p p l e 的i s y n c 等产品也与之类似。这类产品的 主要目标是为相应厂商的移动终端产品与桌面系统提供同步支持,其主要拓扑 结构是固定的端到端连接,并不支持任意设备问的同步,也没有着力去考虑计 算协作方面的问题。 数据库厂商一般采用了不同的方式。他们在自己的大型数据库与移动数据 库产品之问提供了额外的同步服务中间层次( m i d t i e r ) 产品:如o r a c l e 为o r a c l e l i t e 提供了m o b i l es e r v e r ( 集成于o r a c l ea sw i r e l e s s ) ,s y b a s e 为s y b a s ea d a p t i v e s e r v e r a n y w h e r e 提供了m o b l i n k ( 构成了i a n y w h e r e m b u s i n e s ss u i t e ) ,微软的 a c t i v e s y n c 自然也不会放弃对自己的s q l s e r v e r f o r c e 提供支持,而就连一向 注重于高端企业市场的i b m ,也成套推出了d b 2e v e rp l a c e 和e v e r yp l a c e s y n cs e r v e r c l m n t 。用这些产品帮助维护管理主数据库与移动数据副本问的同 步关系。不同终端的查询与修改、删除都首先对移动副本进行,在适当时机再 进行移动副本与主数掘库的同步。这些同步中间件平台都使用了c s 模式,有 集中的同步服务器,不同的终端之间的协作主要通过对共同的服务器上的主数 据库的操作来反映,不允许终端客户阳j 的直接互连。客户端应用的开发一般使 用数据库厂商提供的丌发工具进行,通过相应的a p i 来控制移动数据副本的操 作,获取到冲突状态等信息。 办公群件中的同步支持一般面向使用笔记本之类移动办公设备的人员,由 于一般有着充足的计算资源同时可以利用很多特定的数据库信息,而且对网 络条件作了详细的规定,它们大多设计了很多复杂的同步处理与冲突解决方案, 一。i j 以用c s 模式进行同步,也可以在不同用户之间同步,但目前将这些技术普 第6 页 数据m 步技术摧础 遍应用于移动终端的同步中条件仍不成熟。在本文中就不再作更多描述。 2 3 2 通用开放同步标准的意义 前面提到的这些同步产品,多数是为设计厂商自有的平台和数据库产品提 供,由于设计上的封闭性,在同步中使用的交互协议与数据表示等都是各厂商 专有的格式,并不公开,也就不可能完成不同厂商产品间的互通。一个产品通 常只能与有限的设备进行数据交换,使得同步韵应用大受限制。尽管有一批的 第三方软件厂商来设计可以兼容多家方案的同步集成产品,如e x t e n d e ds y s t e m 的c o n n e e t e d p c ,i n t e l l i s y n c ( 原p u m a t e c h 和s t a r f i s h 合并1 的i n t e l l i s y n cs u i t e 等。 这些厂商试图提供广泛支持的同步中间件产品,其卖点就集中在除了它们自有 的同步标准以外,还支持前面提到的其他的一些同步产品。但事实上,在没有 统一开放标准以前,第三方产品试图做到兼容更多厂商产品的代价非常高昂, 也并不具有更多的通用性,也只能做为具体应用方案来使用,也没有能够得到 足够多的支持。换言之,以上提及的产品都不适合用作移动计算的基础设施。 只有使用了开放的同步协议,使用开放的表示规范与控制流程的同步产品爿可 能得到各厂商的普遍支持,使不同厂商的产品能顺利互联,发挥出更大的作用 和意义。s ”c m l 协议的制订与推广就是这样的一个尝试。 2 3 3s y n c m l 协议 s y n e m l 协议独立于数据内容、传输协议和具体实现,提供了用于同步交 互的流程与表示的标准。从协议的制订之初,就立足于规范同步实现和兼容性 问题的考虑,可以广泛应用在终端、服务器等不同设备上。不同厂商在设计其 同步产品时只要遵循了s ”c m l 的规范,就可以相互通信协商完成同步活动。 这一协议也为不同厂商设计同步中间件产品提供了依据,需要同步功能的协议 设计入员和应用开发人员,都可以考虑在共同的同步协议的基础上进行具体实 现的设计,而无须考虑其它的设备如何设计。目前s y n c m l 协议支持的同步模 式与前面提及的几个数据库厂商的同步产品类似,采用了c s 模型,它所定义 的同步交互方式与过程并不适合端到端( v 2 n 网络中的应用,在协议的实施规模 等方面有很大局限。尽管有这些局限,s ”c m l 仍不失为一个优秀的通用同步 规范,可以适应多数同步应用的需求成为了同步中间件平台的事实标准。在后 面的章节中我们会就其特点与发展演化作深入的探讨。 2 4 数据同步的基本问题 数据同步方案的设计中涉及到多个方面问题,下面将介绍其中最基本的 鞯7 负 u 了科技人学础i :学位论文s y n c m l 客户端开发库设计。i 宴现 些要素。 2 4 i 同步数据结构特性 在本文中,把待同步数据对象的结构特性简单分成线性与结构化两种。线 性的数据同步就是指对一组一维的有序数据元素的同步( 例如一组带主键的记 录集,或一组文件等) 。结构化的同步就是指如目录或其他一些结构化的数据集 合,基本的同步元素之间有一定的组织结构关系。线性结构的同步出于与数据 集的描述特征近似,在表示、算法及部署中有明显的优势,结构化的数据也可 以比较容易通过加入辅助信息转化为一维结构,所以目前除开少数特定应用于 结构化数据的同步实现以外,多数的数据同步应用都是以线性同步结构作为基 础。 2 4 2 同步粒度 同步粒度就是同步中处理的最小数据元素,或称数据原子。在同步完成以 后,每一个这样的数据元素都会与在另一数据集中的对应元素相等。在不同的 设计中,同步粒度会有很大的差异。如在对数据文件进行同步的系统中,可能 这个最小单位是单个文件,同步系统并不关注文件的内容。面在一个基于文本 行的版本控制系统中,数据原子就是文本行了。尽管数据原子的粒度可能不同, 但在无论在哪一种同步系统中,对每一个原子进行区分与识别都是最基本的任 务。 2 4 3 记录映射 同步是让一个数据元素与它的对应元素相等,亦即进行同步的数据集的元 素问必须有某种对应关系。两个数据集必须在建立起初始映射关系以后才能进 行同步;在将在一个数据集中的记录加入到另一数据集中时也要能建立、保留 这种映射。数据集间元素的映射关系有两种方法来表示:一是通过某种函数规 则进行计算,一是通过查找由数据集中元素标识的二元组形成的映射表来确定。 前者应用在各种依规则计算求取对应元素的同步算法中,在了解这一规则之外 无须存贮理解其它任何辅助信息;后者则需要存贮和维护一张映射表。一个通 用的同步解决方案要处理多样的设备与数据,而通常情况下不同设备中的数据 元素有不同的标识方法,数据元素之间却没有必然的关联性,所以在实践中大 多数旨在支持多样设备的同步方案都选择了后者。 2 4 4 更新传递 在多数同步系统中在系统问都只交换有更新的记录,这样可以大幅度减轻 第8 砸 数据问步技术基础 传输负担,在弱连接环境中是很重要的一个特征,实现这一特性要求能确定在 同步过程中一个数据集有哪些修改需要传递到对方。在不同的同步算法中这个 问题也有不同的解决途径,依据同步过程中两个设备问是否交换数据元素版本 信息( 如版本号或修改时问戳等) ,我们可以把不同的同步实现分为两类。一类 会在设备间交换版本信息,由同步的对端按需求取需要的数据元素。这样可以 在较早的时刻进行冲突处理,同时有利于在不同设备间形成一个记录的版本信 息链,便于在多个设备问灵活处理数据更新的扩散。但这类算法需要在实际传 送更新数据以前多一轮版本信息交换的交互,而且设备间版本信息本身的同步 也是需要研究的课题。另一类则由各个设备自行计算或维护修改r 志,在同步 过程中直接由每一个设备主动将它认为有更新的数据或全部数据提交到对方进 行处理。这类方法不利于作早期的冲突处理,同时因为可能会造成图2 ,l 中所 示的更新风暴问题,不合适应用到端到端网络中;但它的交互过程精练,在移 动环境下的应用中占着主导地位。 脚初次同步 设备设备1设备2设备3 内容r 1 lr 1 1 2 l刚闭 燃潞象羹鼹生菱游;:委 曼备设备1设备2设备3 内容 r 1 1 1 if t l 田刚同 p , 2 p ir 2 1 2 i0 , 2 ( 3 1 燃麓宝羹设誊露鑫 设蠹躲鑫删 【q 没备2 3 问同步 设备设备1设备2设备3 内容 r 1 门l r 1 闭r 1 【砷 p , 2 栩r 2 啪 r 2 1 1 l 0 , 2 1 3 1 r 2 啪。 擞寝蓉;:荛设磊譬唧设 殳备2 ;无 图2 1 同步中不交换同志信息造成的更新风暴 2 4 5 同步冲突解决 有映射关系的一对元素在各自都发生了修改以后进行同步,将无法确定选 择哪一个元素作为最新数据,这就是产生了所谓同步冲突问题,需要通过定 策略来决定选取哪一个元素,被选出的元素称为冲突获胜方,整个过程则被称 第9 页 ! ! 王型丝叁兰! 坚! 兰竺堡兰堑! ! 竺! :篓塑茎丝壁丝生! ! 薹型 为冲突消解。另一种消解的方法是将两者的修改合并,同时更新双方的数据。 目前的同步产品一般是指定一个数据集作为主数据源,当发生冲突时主数据源 中的数据获胜,同时提供用户干预冲突处理的机制,允许手动冲突消解作为辅 助措施。在某些试验性的产品中,采用了一些复杂的评估算法来权衡哪一个修 改更为重要,为用户提供良好的使用感受,但是一般来讲这类方法依赖于具体 的应用,不具备通用性。 2 4 6 其它问题 在移动环境下,数据同步所需要的通信连接的有效性经常不能得到保证, 通信中断与数据错误时有发生,这使得两个数据集因同步失败而处于数据不一 致的状态下的可能大为增加。为了使同步能真正成为一个对于用户、程序开发 人员、协议设计人员有意义的工具,一个设计良好的同步协议必须要处理同步 异常中止的情况,包含有识别处理失败同步的机制。以确保在同步失败以后, 数据也能恢复到正确一致的状态。 在移动环境中进行的数据同步,必须要考虑其安全措施的设计。这就要求 我们一方面保证数据访问的正确性,确保不会与不适当用户或服务器同步一一 这涉及到客户与服务器双向认证的问题:一方面,我们还必须要保证在同步当 中,传递的信息不会外泄一一这种措施是不依赖于信道的,即在一个不完全的 网络环境中,也要有能力建立起安全的通道。 删步技术方案比较 第三章同步技术方案比较 3 1 同步产品比较标准 在对不同移动同步方案进行比较以前,需要首先理清比较的标准,爿可能 对各项产品的应用价值与发展有一个正确的评价。在下面,我们将基于以下 些标准对一些同步产品( 协议) 方案进行评估。参与比较的方案中有象 a c t i v e s y n c 、h o t s y n c 这样的已经产品化的技术,也有如c p i s y n c 这样的尚处于 学院研究阶段的项目。 3 1 1 逻辑拓扑 同步的逻辑拓扑结构是指方案中设备间互连的逻辑方式,而并非网络的拓 扑。如果有统一的服务器,所有设备都直接与服务器联系称作星形拓扑;任意 两设备间都可以直接联系进行同步的称为p 2 p 的结构;而如果一组数据只能在 指定的设备闻进行同步称为固定的端到端结构。逻辑拓扑决定了一个同步系统 的抗单点失效的能力、更新信息传递方式等基本特征。 3 1 2 系统规模 同步应用可以部署的网络规模如何。在一个同步系统中的终端究竟仅是少 数几台机器,还是几十台、上百台乃至更大数量级。这标准的评判结果实际 上往往会与前面提到的拓扑结构相关联,但合理的任务分割与冲突处理算法会 对此有改善。 3 1 3 传输负载 传输负载情况从两个方面来考虑:一是从单次同步的负载情况来进行分析, 一是从接个系统中一个更新扩散到全系统需要的总传输负荷量。后者主要由同 步拓扑结构决定,我们主要分析前者随记录数量和更新数据量变化而变化的特 征。 3 1 4 计算强度 即同步算法的复杂度。对于终端而言,其计算资源相对缺乏,如果计算复 杂度过高,会严重影响到程序的应用性能甚至失去实用性。对于固定终端如工 作站乃至同步服务器,虽然资源配置更为充沛,但出于可能会为更多的终端服 第1 i 页 b 了科技人学倾j :学位论立s ”c m l 客户端开发库 5 2 计实现 务,也同样会使同步应用的性能无法接受。 3 1 5 存储空间消耗 这一项指标同时涉及到同步算法在执行中的空间消耗和为实现同步协议所 需要的额外信息存储的资源占用。另外,同步算法在与更多的终端进行同步时 消耗资源随同步对象数据增加而增长的幅度也在考虑之中。 通过以上的几项标准,可以初步地体现出一个同步设计方案在扩展性与普 遍适用性方面的优劣。下面,我们将会用这些标准来对目前主流的同步协议( 方 案1 进行一个评估。 3 2a c t i v es y n c a c t i v es y n c 是微软公司为支持w i n c e 终端与桌面系统同步的而提供的产 品,可以实现从文件到数据记录等多种级别的数据同步。微软将这一技术框架 作为其产品线中移动同步支持的基础平台,如s q l c e 与s q l c es e r v e r 之间 的互联等都是在此基础上完成的。它的特性也影响到了这些产品的特征。 3 2 1a c t i v e s y n c 总体结构 m i c r o s o f t a c f i v e s y n c 的总体结构分成三个部分:工作于p c 平台上的同步 管理模块,工作于便携终端上的p cl i n k 模块,以及被称为s y n cs e r v i c e p r o v i d c r ( s s p ) 的具体数据访问模块,它们的关系结构如图3 1 所示。前两者构 成了同步管理的基础设施,伴随操作系统和a c t i v e s y n c 服务的安装即在系统中 被提供。同步管理模块实现i r e p l s t o r e 和i r e p l o b j h a n d l e r 接口,同步管理模块 实现i r e p l n o t i f 接口。在同步管理模块中,对不同的s s p 同等对待( 但位于移动 终端上的s s p 需要通

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论