




已阅读5页,还剩73页未读, 继续免费阅读
(通信与信息系统专业论文)基于android平台的数据同步技术的研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 随着移动互联网业务的持续快速发展以及移动互联网生态系统的形成,导致 了移动数据流量的爆炸性增长,由此带来的数据同步业务的需求也急剧增加。与 此同时,手机也已成为人们生活中必不可少的一部分,特别a n d r o i d 智能平台的横 空出世,以其卓越的功能和开源、开放的特性而备受关注。本课题就是在这样的 背景下将两者结合而设计了一种基于a n d r o i d 操作系统和s y n c m l 数据同步协议的 数据同步系统,利用f u n a m b o l 开源项目提供的s y n c m l 同步服务器完成了 a n d r o i d 智能手机终端数据同步的客户端软件。 首先,研究分析了当前主流的数据同步技术,通过比较本论文选择了s y n c m l 数据同步协议。s y n e m l 协议是一种基于x m l 格式的数据同步协议,是一种通用 的数据同步技术,可使各种不同类型的终端设备与应用服务器之间通过相同的方 式进行数据同步。 其次,对a n d r o i d 智能手机和当前主流的智能手机操作系统进行了研究分析, 总结出a n d r o i d 智能手机的特点和优势,并从a n d r o i d 系统的体系结构和应用程序 框架出发,详细分析了该系统的工作机制以及a n d r o i d 应用程序软件设计方法。 最后,在开源项目f u n a m b o l 提供的同步服务器基础上,设计并实现了基 于a n d r o i d 智能手机平台的s y n c m l 数据同步客户端。重点分析实现a n d r o i d 客户 端联系人信息数据同步,包括客户端系统的用户界面、同步配置模块、同步初始 化模块、数据存储和访问模块、联系人同步过程模块进行了设计与实现,并提出 了一种在a n d r o i d 平台中s q l i t e 联系人数据库快速查询变更数据项的方法。 通过对以上模块在p c 机上的编程实现,且利用a n d r o i d 手机模拟器完成调试 与测试,最后通过u s b 接口将生成的可执行程序a p k 文件烧写至真机上进行用户 体验,达到论文的预期目标。 除了使a n d r o i d 移动终端与f u n a m b o l 同步服务器进行联系人数据的同步, 也可以将终端中的联系人数据备份到服务器中,使服务器中的数据还原至终端, 实现了数据的双向同步,为用户带来方便的同时也提高了手机终端数据的安全性, 具有较高的使用价值。 关键词:a n d r o i d ,s y n c m l ,数据同步 a b s t r a c t a b s t r a c t a st h er a p i dd e v e l o p m e n to fm o b i l ei n t e r a c ta n dt h e f o r m i n go fm o b i l e e c o s y s t e m ,m o b i l e d a t af l o wr i s e s e x p l o s i v e l y s ot h a t t h ed e m a n df o rd a t a s y n c h r o n i z a t i o nb u s i n e s si n c r e a s e sd r a m a t i c a l l y a tt h es a m et i m e ,m o b i l ep h o n e sh a v e b e c o m ea l li n d i s p e n s a b l ep a r to fp e o p l e sl i f e ,e s p e c i a l l ya n d r o i dp l a t f o r mh a v eb eo f p a r t i c u l a rc o n c e r nb e c a u s eo f i t ss u p e r i o rf u n c t i o n a l i t ya n do p e ns o u r c e f o rw h a th a v e b ep r e s e n t e da b o v e ,d a t as y n c h r o n o u ss y s t e mi sd e s i g n e db a s e do nt h ea n d r o i dp l a t f o r m u s i n gs y n c m lp r o t o c o l s m a k i n gu s eo fs y n c m ls e r v e rt h a tp r o v i d e db yt h eo p e n s o u r c ep r o j e c to ff u n a m b o l ,t h ed e v e l o p m e n to fs y n c m lc l i e n ts o f t w a r eo nt h e a n d r o i dp l a t f o r mh a sb e e nf i n i s h e da n di m p l e m e n t e d f i r s t ,t h es y n c m ld a t as y n c h r o n o u st e c h n o l o g yf i n a l l yi ss e l e c t e dt h r o u g ht h e a n a l y s i sa n dc o m p a r i s o n ,t h a ts y n c m lp r o t o c o li sag e n e r a ld a t as y n c h r o n o u sp r o t o c o l w h i c hb a s e do nx m l f o r m a t ,s ot h a ti tc a ns y n c h r o n i z eb e t w e e na l lk i n d so f t e r m i n a l s a n da p p l i c a t i o ns e r v e r su s i n gt h es a m ew a y s e c o n d ,c o m p a r i n gt h em a i n s t r e a m s m a r t p h o n eo p e r a t i o ns y s t e m sw i 廿lt h e a n d r o i d , t h ea d v a n t a g e so ft h ef o r m e ra r ep r e s e n t e di nt h i st h e s i s ,a n dt h ea n d r o i d s a r c h i t e c t u r ea n da p p l i c a t i o nf r a m e w o r kh a db e e ns t u d i e d ,t h e nt h ew o r k i n gm e c h a n i s m o ft h es y s t e mw a sa n a l y s e ds ot h a ta p p l i c a t i o ns o f t w a r ew a sd e s i g n e db a s e do ni t a tl a s t ,t h ef l 刀呵a m b o ls e r v e ri sc h o o s e dt od e s i g na n di m p l e m e n tt h es y n c m l c l i e n ts o f t w a r eb a s e do nt h ea n d r o i dp l a t f o r mu s i n gt h ed a t as y n c h r o n o u sp r o t o c o lo f s y n c m l t h ea u t h o re m p h a s i s e so na n a l y s i s ,d e s i g na n di m p l e m e n t a t i o no ft h ea n d r o i d c l i e n ts o f t w a r eo fc o n t a c t sd a t as y n c h r o n i z a t i o ni nd e t a i l s t h em a i nw o r kf o c u so n t h ed e s i g na n d p r o g r a m m i n go f t h eu s e ri n t e r f a c em o d u l e ,s y n c h r o n o u sc o n f i g u r a t i o n m o d u l e ,i n i t i a l i z a t i o nm o d u l e ,d a t as t o r ea n da c c e s sm o “l e ,c o n t a c ts y n c h r o n i z a t i o n m o d u l ea n ds oo n , a n daf a s t e rm e t h o dt h a tq u e r y i n gm o d i f i e dc o n t a c td a t ai nt h e s q l i t ei sp u tf o r w a r di nt h i st h e s i s 。 u s i n gt h ei d eo fe c l i p s e ,t h ef u n c t i o n so fa l lt h em o d u l e sh a v eb e e nr e a l i z e db y j a v el a n g u g e ,a n dt h e nd e b u g e do na n d r o i dm o b i l es i m u l a t o r , f i n a l l yt h ea p kf i l ec a l lb e d o w n l o a d e dt oa n d r o i dp h o n e st h r o u g ht h eu s bs e r i a l ss ot h a tt h eu s e rc a ne n j o yi t c o n v e n i e n t l y i ti st w o - w a y sc o n t a c t s d a t as y n c h r o n i z a t i o nb e t w e e na n d r o i dm o b i l e a b s t r a c t t e r m i n a l sa n df u n a m b o ls e r v e r , t h a tc a l lb e e nr e a l i z e di nt h es y n c h r o n o u ss y s t e m , t h em o b i l et e r m i n a l s d a t ab a c k u pi nt h es e r v e rd e v i c e ,a tt h es a m et i m et h em o b i l e t e r m i n a l sa l s or e t r i e v e sd a t af r o mt h es c i v e es ot h i ss y s t e mh a sh i g h e ru s a g ev a l u en o t o n l yf o ri t sc o n v e n i e n c et ou s e r sb u ta l s of o r t h es e c u r i t yo f t h em o b i l et e r m i n a l s d a t a k e yw o r d s :a n d r o i d ,s y n c m l ,d a t as y n c h r o n o u s i i i 第一章绪论 第一章绪论弟一早殖v 匕 1 1 智能手机平台发展现状 随着手机的日益普及,手机已经成为人们生活中不可缺少的一部分,从只有 简单通话功能的功能手机( f e a t u r e p h o n e ) 逐步向多用途、多功能、智能化的智能 手机( s m a r t p h o n e ) 发展。 中国智能手机市场发展迅猛,市场研究机构i d c 近日发布报告称,中国智能 手机的销量将在2 0 1 0 年内达到2 6 0 0 万部,比2 0 0 9 年增长约5 0 。同时,也有业 内人士预计,5 年内中国智能手机用户将过半,接近1 亿台,从此我们可以看出智 能手机在未来移动领域内所蕴藏的市场潜力和商业价值。 功能手机和智能手机最本质区别就是应用软件的自由度,而这种自由度是由 于其操作系统决定的,因此智能手机的核心是手机操作系统。对应于手机操作系 统,手机软件平台分为两类:开放式平台和封闭式平台。目前,主要的开放式平 台有s y m b i a n 、w i n d o w sm o b i l e 、l i n u x 、i p h o n e 、a n d r o i d 、b l a c k b e r r y 等;主要 的封闭式平台有m t k 、展讯、i n f i n e o n 、t i 等。相比于封闭式平台,开发式平台 具有很强的移植性,能够平滑地移植到不同的硬件平台,且开发者可以使用其提 供的s d k 开发用户所需的第三方应用,而使手机的功能可以得到扩充。 s y m b i a no s 是现今手机领域中应用范围最广的操作系统。s y m b i a n 作为一个 实时性、多任务的纯3 2 位操作系统,具有功耗低、内存占用少等特点,适合手机 等移动终端的开发。但是s y m b i a n 的开放性不够,它采用的是一种半所有权模式, 获得许可证的客户端还必须为源代码支付费用,并且各个版本之间的兼容性较差, 在多媒体支付方面仍存在问题。s y m b i a n 的开发语言是s y m b i a nc + + ,不是标准的 c + + ,对于应用开发者带来了很多麻烦,需要一个很长时间来适应。 w i n d o w sm o b i l e 是w 访d o w sc e 的派生,它是微软公司对手持p c 开发的操 作系统。支持w i n d o w sm o b i l e 操作系统的手机大多采用i n t e l 嵌入式处理器,主频 较高,性能强劲,操作速度快,并拥有强大的游戏和多媒体功能。但是,它也继 承了一些来自w i n d o w s 的缺点,例如对硬件配置要求高、第三方应用程序所占用 的空间大,由此带来耗电量大,硬件成本高等一系列问题。 a n d r o i d 是g o o g l e 开发的基于l i n u x 平台的开源手机操作系统,它包括一个操 作系统,中间件以及大量的关键应用。a n d r o i d 平台有一个运行于l i n u x 内核之上 的d a l v i k 虚拟机。d a l v i k 虚拟机在保证a p i 兼容的同时,针对移动手机进行了大 幅的优化,占有资源少,运行效率更高。应用开发者能够使用j a v a 编程语言,基 重庆邮电大学硕士论文 于a n d r o i ds d k 平台开发大量的增值业务。2 0 0 8 年9 月2 2 日,美国运营商t - m o b i l e u s a 在纽约正式发布第一款g o o g l e 手机t - m o b i l eg 1 ,是世界上第一部基于真正 开发的和完整的移动软件a n d r o i d 操作系统的手机。目前a n d r o i ds d k 2 3 版本已 经发布,它包括源码框架、实例工程、开发工具、模拟器以及使用j a v a 语言的必 须工具和a p i 接口。2 0 1 1 年初,三星和g o o g l e 联合开发的基于a n d r o i d2 3 版本 手机n e x u ss 已经问世。 1 2 数据同步技术研究现状 目前,手机都已经支持上网,用户可以通过移动互联网获取信息。中国移动 集团公司董事长王建宙在“2 0 1 0 ( 第四届) 移动互联网国际研讨会 上表示,移动互 联网的发展超出了人们的预期,创造了原有桌面互联网所没有的功能,创造了新 的消费。的确如此,移动互联网的发展带来了数据流量的爆炸式增长,但同时与 之形成鲜明对比的是由于移动终端的多样性和移动网络的数据传输速率、网络稳 定性等原因,我们对于实现不同设备间数据同步的网络应用,还是无法提供很好 的解决方案,因为这需要移动终端支持多客户端和频繁数据传输交换。当前主流 的数据同步技术的解决方案包括微软的a c t i v e s y n c 技术,p a l m 提出的h o t s y n c 技 术,c o m e l l 大学提出的c p i s y n c 技术,以及开发手机联盟提出的基于s y n c m l 协 议的数据同步。【l j 1 3 课题研究的目的和意义 随着移动互联网业务的持续快速发展以及移动互联网生态系统的形成,导致 了移动数据流量的爆炸性增长,由此带来的数据同步业务的需求也急剧增加。为 了保持这些业务数据在不同设备之间的一致性,我们需要在不同设备之间实现云 同步。所谓云同步( c l o u ds y n c ) ,指的是通过网络技术将用户所需要的文件同步 到服务端,并且可以即时更新到设定的其他任意不同终端( 如图1 1 所示) ,那么 就需要一种通用的数据同步技术来达到这个目的,s y n c m l 数据同步协议就可以有 效的扮演这一角色,实现各种设备之间的云同步。通过s y n c m l ,用户存储在网络 端的信息能够与任何移动设备同步,移动信息能与网络应用同步,这样可以使得 不同设备信息能够实时保持一致,并可存取更新,提高了用户存储数据的安全性 以及使用的便捷性。具体应用到移动终端中存储的联系人信息,它作为人与人之 间联系沟通的基础,担负着举足轻重的作用。为了使用方便,用户往往在不同的 2 第一章绪论 通讯终端上( 手机、个人电脑等等) 都会维护一份联系人信息,这就给用户带来 了一些应用上的不便修改信息不能及时同步、手机丢失或损坏就会造成其中 的联系人信息永久丢失等等。因而数据同步就显得非常重要,它也被认为是移动 计算领域的一种基础应用模式。 与此同时,a n d r o i d 被视为当今移动终端领域中最具活力、最年轻、最开放的 智能手机平台,它的面世开创了手机发展的一种新模式,既是应用开放又是源码 开发。a n d r o i d 是完全免费的手机软件栈,包括操作系统、中间件和主要的应用, 是一个完整的s m a r t p h o n e 手机平台,使用a n d r o i d 操作系统的手机预计与其他手 机相比,可以节省3 0 的软件授权费用。目前,a n d r o i d 以其巨大的性能优势和独 特的开发模式迅速占领市场,因此在此平台上实现基于s y n c m l 的数据同步无疑 是一种新的尝试,作者相信两者的结合所体现的移动领域的增值业务有十分重要 的应用前景,也蕴藏着丰富的商业价值。 图1 1 云同步 3 雪c 。p 。9 。9 芦 队 。少 瞅 !国 重庆邮电大学硕士论文 1 4 研究的内容以及论文安排 本文的整体结构和章节安排如下: 第一章首先介绍了主流的智能手机平台,接着介绍了数据同步技术的研究背 景、研究现状,最后阐述了在智能手机平台实现数据同步研究目的和意义。 第二章仔细分析了数据同步技术实现关键技术,通过对比常用的数据同步技 术,阐述了选择s y n c m l 数据同步协议的原因,之后详细介绍了s y n c m l 数据同 步系统整体结构以及数据同步协议族,包括同步协议、表示协议和传输绑定协议 等。 第三章对a n d r o i d 智能手机平台进行了分析,包括了a n d r o i d 平台架构以及应 用程序开发基本组件、g 结构化思想等。 第四章首先介绍了开源项目f u n a m b o l 数据同步平台以及其提供的同步服 务器结构,之后重点详细介绍了s y n c m l 协议栈的分层实现。 第五章在a n d r o i d 平台实现了基于s y n c m l 协议栈的联系人数据同步,详细地 给出了各个模块的具体设计与实现,并仔细介绍了本系统重要模块之间的关系。 第六章a n d r o i d 平台数据同步客户端软件测试,系统验证了所实现的工程,并 提出了该系统需要改进的地方。 第七章总结全文,展望本课题下一步研究的方向。 4 第二章数据同步技术介绍 第二章数据同步技术介绍 2 1 数据同步的定义 数据同步是指将两个存在关联映射关系但又不完全相同的数据集按照某种规 则将两个数据集的数据元素一致化的过程,如图2 1 所示。应用到现实场景中是指 用户使用的终端设备和网络服务器、基站设备或个人电脑的数据之间始终一致, 以进行动态的更新和数据备份。 1 2 1 图2 1 两个数据集同步 2 2 数据同步的关键技术 2 2 1 数据项i d 映射 同步操作是基于客户端和服务器端的数据库中每个数据元素都有唯一标识的 原则来进行的。客户端d 称为本地唯一标识( l u i d ) ,服务器d 称为全局唯一标 识( g u m ) 。i d 在服务器和客户端可以相同,也可以不同。如果两者d 是不同的, 那么服务器端就必须保留一个d 的映射,保证服务端和客户端的数据交换的一致 性,如图2 2 所示。 图2 2 数据项的i d 映射 重庆邮电大学硕士论文 2 2 2 变更检测与记录 变更检测是一个在同步进行时跟踪服务器设备和客户端设备之间发生改变的 过程,是为了识别在一个特定的时间点上( 例如最后一次同步) 被修改的数据项 元素。为了可以检测出这些数据的变更情况,必须要存储这些数据的状态信息。 在客户端与服务器对数据进行增加、修改和删除操作都会被记录下来。使用双向 快同步模式同步数据时,服务器与客户端先后获取对方自上次同步以来的操作记 录,并以之更新自身的数据实现数据同步。如果是第一次进行同步,或者服务器 要求进行慢同步,客户端将发起慢同步。 2 2 3 修改交换 数据同步的一个非常重要的过程就是服务器和客户端相互交换它们修改的内 容,从而更新它们的信息。基本的修改命令( m o d i f i c a t i o nc o m m a n d s ) 包括:增 加( a d d ) ,删除( d e l e t e ) ,更新( u p d a t e ) ,取代( r e p l a c e ) 。 2 2 4 冲突检测 若在服务器和客户端的数据库中修改同一个数据项,会导致相同数据出现两 个不同的版本,从而发生数据冲突。下表是一个同步矩阵( t h es y n c h r o n i z a t i o n m a t r i x ) ,用作检测冲突。 表2 1 同步矩阵 o a 豳钳a e w d 蝌o m du p d 删 勖m c h r on i l e 删nn o :e x i s t i n g id 甜昀蕾s e b c h a n g e d n e wccccb d e l e m a icxcdx o p a a r e a cccbb s y n c h r o n l z e d u cdab n c h a n g e d n o ! e x i s t i n q a x aax 表2 1 中x 表示不执行任何操作,a 表示a 项取代b 项,b 表示b 项取代 a 项,c 表示冲突,d 表示删除此项。 2 2 5 冲突处理 根据发生冲突的具体情况,有不同的解决方案,通常在服务设备的同步引擎 中解决。一般来说,有以下五种解决冲突的策略: 用户决定如何解决冲突; 6 第二章数据同步技术介绍 以客户端的数据为准:服务器总是在发生冲突的时候以客户端的数据为 准,替换所有自己原有的数据: 以服务器端的数据为准:客户端总是在发送冲突的时候以服务器的数据 为准,替换所自己原有的数据; 以时间戳为准:客户端与服务器数据按照更新时间为准,新的数据将代 替旧的数据; 不解决冲突:同步服务器不做任何处理,跳过冲突的数据; 在实际的数据同步系统的设计时,解决冲突的方法可以更多,更复杂,但是 一般会是以上这几种策略的一种或几种的组合。 2 2 6 同步类型 常见的数据同步类型如表2 2 所示,最常见的是双向快同步和慢同步。 o 表2 2 同步类型 同步类型 描述 双向快同步最常见也最具有代表性的一种双向同步,客户端 和服务器双方把从上一次同步以来更新过的数据 发送给对方,实现双方数据一致的同步方式。 慢同步慢同步是双向同步的一种,但是客户端与服务器 会把自己所有数据都发送给对方,进行一对一的 比较同步,需时较长。 客户端客户端向服务器发送上次同步之后自己更新的信 单向同步息,而服务器不把自己的更新信息发送给客户端。 客户端客户端把自己所有的数据都发给服务器,并刷新 刷新同步服务器上的数据。 服务器客户端从服务器接收所有的修改数据,但并不给 单向同步服务器发送它的修改数据。 服务器 服务器发送所有的数据给客户端并期待客户端用 刷新同步 这些数据替换它所有的数据。 服务器服务器提醒客户端执行同步,即服务器通知客户 提醒同步端与其一起开始同步。 7 重庆邮电大学硕士论文 2 3 常用数据同步技术 2 3 1a c t i v e s y n c 同步 a c t i v e s y n c 是微软公司为支持终端与桌面系统同步的而提供的产品,可以实现 从文件到数据记录等多种级别的数据同步。微软将这一技术框架作为其产品线中 移动同步支持的基础平台,它的特性也影响到了一些产品的特征,例女h s q lc e 与 s q lc es e r v e r , s _ 间的互联等都是在此基础上完成的。m i c r o s o f ta c t i v e s y n c 的总体 结构分成三个部分:工作于平台上的同步管理模块、工作于便携终端上的模块、 以及被称为s y n cs e r v i c ep r o v i d e r ( s s p ) 的具体数据访问模块。 a c t i v e s y n c 没有对同步的记录的表示与结构作任何规定,只要求s s p 为每一条 记录提供一个在s s p 内部唯一的标识,这个记录可以是关系数据库中的一条记录 ( 如将其用于s q lc e 的同步中) ,也可能是一个文件或是一条p n v l ( 个人信息管理) 信 息。s s p 不提供映射管理能力,记录映射的维护由拥有较多资源的桌面系统上的 a c t i v e s y n c 支持机制完成。 2 3 2h o t s y n c 同步 h o t s y n c 技术为p a l mo s 与p c 平台之间提供数据交换、程序安装等能力。它 包含了运行在p a l mo s 平台上一个客户组件( h o t s y n cc l i e n t ) 、在p c 平台上的同步 管理程序( h o t s y n cm a n a g e r ) 和同步管理器( s y n cm a n a g e r ) 以及其它支持性的技术 规范框架实现规范。h o t s y n c 支持的是一种端点到端点模式的同步,没有固定的中 央服务器。设备间连接方式多样灵活,有两种主要的同步模式:快同步( f a s ts y n c ) 和慢同步( s l o ws y n c ) 。 2 3 3c p i s y n c 同步 c p i s y n c 是c o m e l l 大学s a g a r w a l ,d s t a r o b i n s k i ,a t r a c h t e n b e r g 等人在他 们所提出的集合一致化( s e tr e c o n c i l e ) 算法基础上设计实现的一种同步式。 c p i s y n c 是特征多项式插值算法同步的缩写。这个算法被认为是目前为止具有 最优通讯复杂度的同步算法,也是以后同步算法发展的趋势。如果把同步的两端 的数据集看作是两个不同的集合的话,同步时所需的数据传输量只是与两个集合 的对称差,而与集合的元素总和无关。 假设有两个同步端a 和b ,此协议将数据集中的每一个记录映射为一个整数x i , 这样数据集就可用集合s = ( x x ,x 2 ,x n ) 来表示。集合s 的特征多项式定义为: x s ( z ) = ( z - x 1 ) ( z x 2 ) ( z - x 3 ) ( z - x n ) 8 第二章数据同步技术介绍 定义集合的差x a = s a - s b ,a b = s b s a ,那么下列等式成立: 坟z ) = ( xs a ( z ) ) ( xs b ( z ) ) = ( x a a ( z ) ) ( x b ( z ) ) ( 2 - 1 ) 等式( 2 1 ) 成立的原因是分子和分母的的公因子可同时约掉。如果两个集合的 不同的元素个数最多为1 1 1 个,那么有理函数f ( z ) 可通过m 个样本取值点,利用插值 算法进行重构。 c p i s y n c 算法的主要过程可描述如下: 同步的两端a 和b 分别计算xs a ( z ) 和xs b ( z ) 在m 个样本点的值。( 为了限制多项 式的最大值,可取一合适的有限域,s 的元素可视为有限域的元素,并在此基础上 计算) 。a 把样本点的值全部传给b ,可求出f ( z ) 在各点的取值。 用插值算法可重构有理函数f ( z ) = ( xs a ( z ) ) ( xs b ( z ) ) 的系数,把分子,分母因 子化以后可得到两集合的对称差,即不同的元素。 c p i s y n c 算法的通讯复杂度只与两集合的不同元素个数相关,而与元素的总数 无关,而计算复杂度与不同元素个数的三次方相关。对于数据量大,改动相对较 少且同步设备较多的环境,这种算法尤其适用。【2 6 】 2 3 4s y n c m l 同步 s y n c m l ( s y n c h r o n i z a t i o nm a r k e rl a n g u a g e ,同步标记语言) 最早是由e r i c s s o n , m m ,m o t o r o l a ,n o k i a ,s y m b i a n 等移动通信领域产业巨头所提出的。s y n c m l i n i t i a t i v e 于2 0 0 2 年被正式并入开发手机联盟( o p e nm o b i l ea l l i a n c e ) ,这就表示只要 移动设备能够支持s y n c m l ,那么即使互相使用的平台并不相同,但是仍旧可以没 有任何障碍的交换数据,也就达到了不同移动设备之间实现数据同步的目的,因 为所有需要交换的信息都是基于x m l ( e x t e n s i b l em a r k u pl a n g u a g e ,可扩展标记语 言) 这种通信双方都可以识别的格式进行沟通的。 s y n c m l 的提出主要目的有两方面:一方面可以通过任何移动设备将网络数据 同步化;另一方面移动设备中的数据也可以用任何网络数据同步化;i l 】 2 4 同步比较标准 2 4 1 逻辑拓扑 同步逻辑拓扑是指方案中设备间互连的逻辑方式。如果有统一的服务器,所 有设备都直接与服务器联系称作星形拓扑;p 2 p 结构指的是任意两设备间都可以直 接进行同步;而如果一组数据只能在指定的设备间进行同步称为固定的端到端结 构。逻辑拓扑决定了一个同步系统的抗单点失效的能力、更新信息传递方式等基 9 重庆邮电大学硕士论文 本特征。 2 4 2 系统规模 在一个同步系统中的终端究竟仅是少数几台机器,还是几十台、上百台甚至更 大数量级。这一标准的评判结果实际上往往会与前面提到的拓扑机构相关联,但 合理的任务分割与冲突处理算法会对此有改善。 2 4 3 传输负载 传输负载情况从两个方面来考虑:一是从单次同步的负载情况来进行分析,一 是从整个系统中一个更新扩散到全系统需要的总传输负荷量。后者主要由同步拓 扑结构决定,我们主要分析前者随记录数量和更新数据量变化而变化的特征。 2 4 4 计算强度 即同步算法的复杂度。对于终端而言,其计算资源相对缺乏,如果计算复杂度 过高,会严重影响到程序的应用性能甚至失去实用性。对于固定终端工作站乃至 同步服务器,虽然资源配置更为充沛,但由于可能会为更多的终端服务,也同样 会使同步应用的性能无法接受。 2 4 5 存储空间消耗 这一项指标同时涉及到同步算法在执行中的空间消耗和为实现同步协议所需 要的额外信息存储的资源占用。另外,同步算法在与更多的终端进行同步时消耗 资源随同步对象数据增加而增长的幅度也在考虑之中。 2 4 6 同步方案比较 对前述的几个同步设计方案,我们从计算强度、逻辑拓扑、系统规模、计算 复杂度、适用环境等方面进行比较,可以从表2 3 看出。【2 6 】 1 0 第二章数据同步技术介绍 表2 3 几种主流同步方案比较 产品逻辑系统通信计算存储适用场合 拓扑规模负载强度消耗 a c t i v e s y n c端到端 小未知一般小个人应用 h o t s y n c端到端 小未知一般小个人应用 c p i s y n c p 2 p 大优较高小p 2 p 网络,大型协作 系统 s y n c m l端到端中等较高一般中个人应用以中心数 据库为核心的中小型 协作系统 在通信负载方面除了c p i s y n c 可以保证得到与更新记录数据成正比的负荷以 外,其余各种方案依赖于具体同步方式,但s y n c m l 协议中由于有较高的开销, 被列为负载较高。对于大多数系统规模较小的应用环境, a c t i v e s y n c h o t s y n c s y n c m l 等技术方案足以胜任。c p i s y n c 另辟蹊径,有着通信 负载小,适用面广的优点,如果可以很好地解决信息记录表示方法的问题,也将 有很好的前景,但目前仍然难于推广。s y n c m l 在现有的应用环境下由于和 a c t i v e s y n c 与h o t s y n c 相近的表现,但开发性和可扩展性给了它良好的发展前景, 成为目前数据同步应用的主流。因此,本系统采用s y n c m l 同步协议。 2 5s 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 表示协议 ( s y n c m lr e p r e s e n t a t i o np r o t o c 0 1 ) ,s y n c m l 同步协议( s y n c m ls y n c h r o n i z a t i o n p r o t o c 0 1 ) ,s y n c m l 传输绑定方式。【1 1 2 5 1s y n c m l 同步设备角色 如图2 3 描述的是一个数据同步实例, 担当s y n c m l 服务端。这个例子很简单, 备角色: 其中手机担当s y n c m l 客户端,服务器 然而其中描述了在s y n c m l 协议中的设 重庆邮电大学硕士论文 s y n e m lm e s s a g e 。c l i e n tm o d i f i c a t i o n s s 妒酬lm e s s a g e s e r v e rm o d i f i c a t i o n s 图2 3s 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 客户端有手机、个人电脑和p d a 设备等; s y n c m l 服务端:它是包含了同步服务代理和同步引擎的设备,数据同步时, s y n c m l 服务端等待客户端发起同步,之后服务器将其修改数据发送给客户端,同 时当它接收到客户端修改数据后负责处理同步消息。典型的s y n c m l 服务端是服 务设备、个人电脑等; 2 5 2s y n c m l 同步协议架构 如图2 4 所示,s y n c m l 同步协议体系被化分为三层:最底层为传输协议层,支 持h t t p ( 超文本传输协议) ,w s p ( w a p 会话协议) 和o b e x ( 对象交换协议) 等 协议,可以在不同网络、不同平台的之间实现数据同步;中间层是整个架构的核 心层,本层实现s y n c m l 协议栈并向上层同步应用层提供统一的开发接1 :3 ,使得开 发者不必关心底层硬件及传输协议的差异;最上层为同步应用层,由于中间层提 供了统一的调用接口,因此多种类型的应用都能使用这些接口供提供的服务,实 现同步功能。 村m i u i 健l 摹 图2 4s y n c m l 协议体系结构 1 2 一参氯t 由一参鼠鼍 帆 、三, 知、苎一恿 j i i 第二章数据同步技术介绍 2 5 3s y n c m l 同步系统架构 图2 5s y n c m l 同图2 5s y n c m l 同步系统结构 如图2 5 所示,虚线框内的为s y n c m l 框架结构,虚线框外的为数据同步协议构 成,s y n c m l 同步系统由这两个部分组成。s y n c m l 框架由s y n c m lx m l 对象、 s y n c m l 适配器和s y n c m l 功能接口三部分组成。客户端与服务器之间传输的对象 ( s y n c m lx m lo b j e c t s ) 是按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 步协议。 s y n c m l 同步系统可以划分成多个功能实体,它们之间协同工作方式如下:一 端的应用程序b 提供一个同步服务器参数配置和用户交互界面,它可以看作是同步 客户端,另一端应用程序a 提供同步服务,它可以看作是同步服务器端。同步客户 端可以通过同步客户代理( c l i e n ta g e n t ,可选) 向服务器端发起同步,请求通过 s y n c m l 适配器( s y n c m la d a p t e r ) 时将会分析系统使用的传输协议类型,以便指定 相应的应用程序接口( a p i ) 发送以s y n c m l 格式封装的同步消息数据包。反之, 服务器端的s y n c m l 适配器接收到消息数据包以后会送给服务器端代理,之后再转 交给服务器端的同步引擎。服务器端的同步引擎负责处理来自客户端的同步请求, 是整个同步系统的核心,它将解析s y n c m l 格式的数据包,从而达到数据同步的目 的,并在同步成功以后向客户端发送回应消息。特别指出同步适配器的作用是适 配传输层不同的传输协议,同时负责客户端与服务器之间数据链路的建立、连接 和维护。 1 3 重庆邮电大学硕士论文 2 6s 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 消息格式可以使用统一格式的x m l 语言来进行服务器与客户端之间的通信。s y n c m l 表示协议中给出了一系列用于数 据同步的x m l 文件类型定义( d t d ) ,可以将数据同步中需要使用的数据表示出来。 换言之,客户端和服务器进行变更数据项同步操作时,所有的s y n c m l 消息都必须 符合此协议中的x m l 文件类型定义。【2 】 2 6 1s 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 包可以看 作是s y n e m l 消息的容器。每条s y n c m l 消息遵循x m l 编码或者w b x m l 编码, 由用户数据、标记和同步命令组成,基于这样的类型定义可以表示所有同步中需 要的信息,包括数据、元数据和命令等。s y n c m l 消息包含了两个元素:s y n c m l h e a d e r 和s y n c m lb o a y 。s y n c m l 消息的基本结构如图2 6 所示: 图2 6s y n c m l 消息结构 1 4 第二章数据同步技术介绍 2 6 2s y n c m l 消息元素 图2 7s y n c m l 消息内容 一般使用元素: 1 ) c m d :命令元素。 包含的是s y n c m l 协议中规定的命令; 2 ) c m d i d : 包含了命令的编号; 3 ) c m d r e f 主要用于回复发送方 包含的命令。 包含在 中,表明回应于对端的哪个命令; 4 ) c r e d : 包含了认证的信息; 5 ) m s g i d :消息编号; 6 ) m s g r e f
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- QC/T 798-2025汽车用多层塑料燃油管
- QC/T 544-2025汽车发动机凸轮轴
- 2025年农村旅游推广岗面试题
- 2025年安全生产培训测试题及答案集大全
- 2025年安全员实操面试题及解析
- 2025年宠物驯服面试问题集
- 2025年外协施工安全培训题集含答案详解
- 2025年汽车销售顾问等级评定试题及答案解析
- 2025年农村建筑工匠面试模拟题
- 2025年农业技术推广员执业技能考试试题及答案解析
- 2025年湖南湘西自治州州直事业单位招聘考试笔试试卷附答案
- 幼儿园安全责任书及后勤管理制度
- 消防车辆事故课件
- 2026届四川省宜宾市普通高中高一化学第一学期期末统考试题含解析
- 《2型糖尿病中医防治指南(2024版)》解读课件
- 剑阁县普安镇污水处理厂扩容建设项目环评报告
- 商务楼宇管理办法
- 肺炎护理试题填空及答案
- 社用手机管理办法
- 心电监护操作常见并发症预防及处理
- 学校食堂各种检查记录表格表册11
评论
0/150
提交评论