(计算机科学与技术专业论文)基于windows+mobile的pim系统的研究与实现.pdf_第1页
(计算机科学与技术专业论文)基于windows+mobile的pim系统的研究与实现.pdf_第2页
(计算机科学与技术专业论文)基于windows+mobile的pim系统的研究与实现.pdf_第3页
(计算机科学与技术专业论文)基于windows+mobile的pim系统的研究与实现.pdf_第4页
(计算机科学与技术专业论文)基于windows+mobile的pim系统的研究与实现.pdf_第5页
已阅读5页,还剩58页未读 继续免费阅读

(计算机科学与技术专业论文)基于windows+mobile的pim系统的研究与实现.pdf.pdf 免费下载

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

文档简介

浙江大学硕士学位论文 摘要 摘要 移动领域内的p i m ( p e r s o n a li n f o r m a t i o nm a n a g e e n t ) 是指用户将移动终端 中的信息( 通讯录,同程安排等) 以无线或者有线方式与电脑或者p i m 服务器保 持一致,并能使用多种终端、多种接入手段查询和管理信息。用户可以通过p i m 客户端将终端上的p i m 数据备份到p i m 服务器上,或从p i m 服务器获取p i m 信息 同步到终端,从而达到终端、p i m 服务器个人信息同步的目的。 p i m 作为移动平台应用的一个新兴领域,受到了广泛的关注。国内外涌现了 大量针对移动设备的p i m 服务。但是,大多数p i m 服务供应商所提供的服务并不 完善,存在许多问题。这些问题大大降低了用户对于p 埘服务的满意度,限制了 p i m 服务的推广和使用。 目前,p i m 服务存在的主要问题有: 市场上的智能手机和p d a 的平台并不完全兼容,p i 蝴务供应商必须为不 同种类的移动设备和不同种类的数据提供不同的服务。 由于必须考虑便携性及其他因素,移动设备的网络带宽和硬件资源往往 都非常有限,这就要求p i 棚艮务必须占用更少的资源,提供更好的服务。 由于w i n d o w sm o b i l e 平台在移动市场上所占有的市场份额比较少,目前 还没有针对w i n d o w sm o b 儿e 手机的p i m 服务。 针对移动领域p 订的现状和存在的问题,本文讨论了基于w i n d o w sm o b i l e 平台的p 讧相关的各种技术,主要对核心s y n c m l 数据同步协议进行了详细的分 析和研究,提出了在、撕n d o w sm o b i l e 平台下实现s y n c m l 中定义的慢同步及双向 增量同步逻辑的解决方案,实现了基于w i n d o w s m o b i l e 平台的p l m 客户端。并 对保证网络传输安全的b a s e 6 4 ,m d 5 算法进行了研究,设计并实现了同步过程 中的安全机制。在网络传输方面,本文实现了w b l 的编解码算法。使用 w b x m l 传输网络数据能够减小数据包的大小,减轻网络负载,节省移动设备有 限的网络资源及其他资源。在数据处理层,封装了w i n d o w s m o b i l e 中的t a p i , m a p i ,p o o m 等底层接口,使协议层能够方便的获取移动设备信息,建立和访 问移动设备中的数据库。 p d “本身比较复杂,涉及到的领域很多,并且还在不断演进和发展过程中。 本文讨论并实现的基于w i n d o w s m o b i l e 平台下的p 订系统只涵盖了p “体系的 一部分,我们将在此基础| = = 进行深入研究和完善,实现一个功能全面、性能优越、 浙江大学硕士学位论文 摘要 稳定可靠,能够满足移动运营需求的p d 讧系统。 关键词个人信息管理,数据同步,w i n c e 浙江大学硕士学位论文a b s 仃a c t a b s t r a c t p e r s o n a l 】n f o r m a t i o nm a n a 卫e m e mf o rm o b i l i “r e f e r st ot h es y n c h r o n i z a 6 0 no f p e r s o n a li 1 1 f 0 h n a t i o nb e t w e e nm o b i l ed e v i c e sa i l dp i ms e r v e lp e o p l ec a nb a c l m p , a c c e s sa n dm a n a g et h e i rp e r s o n a li n f o r m a t i o ni nt h ep 【ms e r v e r 也r o u g hp i ms e r v i c e s h 1r e c e n ty e a r s ,a sa n e w 印p l i c a t i o ni nm o b i l ea r e a s ,p i ma t t r a c tw i d e s p r e a d a t f e n t i o n p i ms e r v i c ef o rm o b i l ed e v i c e si sb o o m i n ga th o m ea n da b r o a dh o w e v e r m o s tp e ms e v i c e so 髓r e db yt h em o b i l eo p e r a t o ra r en o tp e r f e c t t h e r ea r em a n y p r o b l e m s 证t h ep i ms e i c ea n ds u c hp r o b l e m sh i n d e rt h ep m m o t i o na n du s a g eo f p d c u r r e m l v t h em a i np r o b l e m si np 蹦a r e : t h eo p e r a t i n gs y s t 锄si nt h es m a r td e v i c e sa n dp d a sa r en o tt o t a l l y c o m p a t i b l e p m is e i c e sp r o v i d e rm u s to f k rd i m r e n ts e r v i c e sf o rd i f 衔c n t m o b i l ed e v i c e so rd i f f c r e n td a t af o n n a t f o rm es a k eo f m o b i l va n do m e rc o n s i d e r a t i o n s m en e t w o 出b a n d w i d t ha n d h a r d w a r er e s o u r c e so f m o b i l ed e v i c e sa r e1 i m j t e d t h i sr e q l l i r e sp i ms e r v i c e s t a k e1 e s sr e s o u r c e sa do f 色rb e t t e rs e i c e s w i n d o w sm o b i l ed e v i c e sd o s s e s s as m a l l 锄o u n to f m a r k e t ,s ot h e r ea r en o t p d 以s e i c e sf o rw i n d o w sm o b i l ed e v i c e sa td r e s e n t a g a i n tt h ec r r e n ts i t u a t i o na i l de x i s t i n gp r o b l e m so f p 【mf o rm o b i l i t y ,t h i sp 印e r d i s c u s s e sv a r i o u st e c h e 工1 i q u e s 心1 a t e dt op i m ,m a i n l ys t l l d ya n d 锄a l y z et l l ek e m e l s y n c m ld a t as y n c h r o n i z a t i o p r o t o c o l ,p u tf o n a r dl h es o l u t i o no fs l o w s y n ca n d t o w w a ys ) n c1 0 9 i cb a s e do nw i n d o w sm o b i l ep l a t f 0 姗,i n l p l e m c n tp i mc l i e n tb a s e d o nw i n d o w sm o b i l e a n dt h i sp a p e rs t u d i e sb a s e 6 4a 1 1 dm d 5a l g o r i t h mw h i c h g u a r a n t e et h es e c u r i t vo f n e t w o r k 订a n s m i s s i o n ,i m p l e m e n tw b x m le n c o d e r 胁d d e c o d e rw b j c hr e d u c en e 御o r kd a t ap a c k a g e ,s a v e1 i m i t e dn e t 、v o r kr e s o u r c e sa n do 廿l o r r e s o l 玎c e s i nt h ed a t a b a s e1 a y e r w ee 1 1 c a p s u l a t e1 a p i ,m a p i ,p o o mi n t e r f k e st o f a c i l j t a t et h eu s a g eo ft h ep r o t o c o l l a v e r p i mi sc o m p l e x ,a n dr e f e r st om a i l ya r e a s t k sp 印e fd i s c u s s e so n l yp 越o f 也e w h 0 1 ep i ms v s t e m ,a n dw ew i l lf o c u so nam o r ec o m p r e h e n s i v e ,m o r es t a b l ep i m s v s t e mw h j c hf u l 丘l l sm er e q u i r e m e n to f u s e r sa n dm o b i l eo p e r a t o t k e y w o r d sp i m ,s y n c m l ,o m a ,d a t as y n c 浙江大学硕士学位论文 图目录 图目录 图2 一ls y n c m l 同步框架5 图2 2 简单同步模型5 图2 3 同步初始化流程6 图2 4 慢同步流程。8 图2 5 客户端单向同步流程9 图2 6 服务器端单向同步流程l o 图2 7 服务器发起的同步流程1 1 图3 1i d 映射图1 3 图3 2 分包消息流1 5 图3 3 大对象传输流程1 7 图4 1p d v i 业务的组网图。2 0 图4 2p 蹦业务的同步流程2 1 图4 3p m l 系统中用户状态迁移图2 4 图5 1p “客户端框架。2 6 图5 2 双向同步完全流程2 7 图5 3 数据库框架图3 5 图5 4 用户界面逻辑图。4 6 图5 5p 订客户端初始界面4 7 图5 6p 讧客户端进度界面。4 8 图5 7p d 讧客户端结束界面4 9 图5 8w b “l 类型定义5 0 图5 9 状态转换图5 2 浙江大学硕士学位论文 第1 章绪论 第l 章绪论 1 1 课题背景 最近几年,随着移动设备数量的迅速增长,越来越多的人群开始在日常的工 作和生活中使用移动设备。移动设备使人们能够随时随地从互联网上获取自己需 要的信息,与商业伙伴交流沟通。移动设备的出现和广泛使用,大大提高了用户 的移动性,而移动设备在工作和生活中给人们带来的便捷和移动性,也迅速提升 了移动设备在人们心目中的地位。 移动设备数量在迅速增长,市场规模在迅速扩大,但是大部分移动平台并没 有完善的应用程序和服务对它进行很好的支持。用户在使用移动设备获得移动性 和便利的同时,也遇到很多问题。移动设备的用户不得不在个人电脑和移动设备 上同时维护数份相同的个人信息,如联系人、电子邮件、短信、日程表等等。这 给用户造成了很大的不便。试想,如果你要在家庭电脑中增加一个新联系人,你 必须同时在你的p d a ,办公电脑中增加这个新联系人。麻烦事不仅只有这些,如果 你添加了该联系人以后,忽然发现他的地址或其他信息有了变更,你又得重新在 家庭电脑、办公电脑、p d a 中同时更新这个联系人的地址。而且,更糟糕的是, 如果你忘记在p d a 或者办公电脑中更新这个地址,就无法及时将信息发送给这位 联系人。解决这个问题的办法就是使用p i m ( p e r s o n a li n f o r m a t i o nm a n a g e m e n t ) 对你的个人信息进行同步。 广义的个人信息管理( p i m ) 指人们日常对于信息的处理、分类以及访问“”。 一个理想的p i m 系统总是把正确的资料放在适当的地方,并以正确的形式和足够 的完整性和质量,满足我们当前的需要“。在我们的现实世界中,我们并不总是能 够找到正确的信息以满足我们当前的需要。有用的信息并非总是在适当的地方: 我们需要的信息,可能是在错误的电脑,p d a ,智能手机或其他装置中。我们可能花 费几分钟,几个小时,甚至是忙碌的一天用来寻找遗失的资料。p i m 系统帮助我们 更好地进行信息管理,节省时间,减少错误。 此外,p i m 并不仅限于数据同步方面的应用。p i m 涉及许多不同的学科,包 括认知心理学,人机交互技术,数据仓库,信息检索等领域“”。通过加深对于p i m 的研究,加快改进p i m 各种相关技术,相信在不久的将来,更加完善,更加智能 的p i m 必定会出现。 浙江大学硕士学位论文 第1 章绪论 1 2 研究的目的、意义和内容 目前,p i m 服务存在的主要问题有: p i m 数据同步是基于一组不同的,私有的协议,其中每一个协议都是针 对特定的几种终端,系统和数据类型。这些不兼容的技术使用户,制造 商,开发者,服务供应商都感到非常不便。更严重的是,这些不同的, 私有的数据同步和终端管理协议的数量的不断增加限制了移动设备的 使用以及用户的机动性。m , 由于必须考虑便携性及其他因素,移动设备的网络带宽和硬件资源往往 都非常有限,这就要求p i m 服务必须占用更少的资源,提供更好的服务。 由于w i n d o w sm o b i l e 平台在移动市场上所占有的市场份额比较少,目前 还没有针对w i n d o w sm o b i l e 手机的p i 朋务。 s y n c m l 协议是唯一一种行业通用的移动数据同步化协议,是由o m a 组织制定 的关于数据同步和终端管理的一种开放性协议“。0 m a 的目的在于:与终端用户、 设备开发商、数据提供商、基础构件开发商、应用软件开发商及服务提供商协同 工作,以真正实现使用任何终端设备均可随时随地访问任何网络数据m 】。0 m a 制 定的s y n c m l 协议为不同的终端平台,系统和数据类型提供了一个统一的数据同 步和终端管理的规范,以消除基于不同终端平台,系统,数据类型的数据同步和 终端管理协议给用户、运营商、开发者所造成障碍。 w b x i l 是一种比x m l 更为有效的数据传输格式。w b x 札能够在保存x 儿全部 数据信息的基础上对x m l 进行有效的压缩嘲。通过使用i j b x m l 在网络传输层上传 输数据能大大减小传输时所占用的网络带宽,提高传输效率。 本文的主要目的是:针对p i m 的现状,通过对s y n c m l 数据同步协议的研究, 在w i n c e 平台上实现基于s y n c h i l 协议的p i m 客户端,使该客户端能与中国移动 提供的服务器进行通讯录的同步,并且能与其他平台的p i m 数据进行同步。通过 使用w b x m l 在传输层传输数据,减少客户端占用的系统资源和网络资源,基本解 决了p i m 系统目前的问题。 1 3 论文组织 本文的后续章节,将做以下安排: 第二章主要对s y l l c m l 数据同步协议进行分析,阐明p 讧基本原理和框架。 主要介绍的内容有s y n c m l 框架下的七种同步方式,其中重点介绍了慢同步和双 2 浙江大学硕士学位论文第l 章绪论 向增量同步及同步过程的初始化及具体进程。 第三章主要介绍s y c i l m l 同步框架下的的主要原理。主要包括c h a l l g el o g 的处理和存贮,同步锚,数据项d 映射,数据冲突的解决,p a c k a g e 分包和大对 象的处理。 第四章主要介绍p v i 服务器端的架构。阐述了p “服务器端的基本架构和 原理。 第五章主要介绍p 订客户端中的各个功能模块的设计和架构,主要包括数据 库层,协议层,传输层。并且分析了各个系统功能模块的分工,各模块的功能, 及其之间的接口及关键设计流程。 最后是总结与展望,对本文的工作进行了总结,并对p 讧未来的发展趋势和 前景进行了展望。 3 浙江大学硕士学位论文第2 章s y n c m l 数据同步协议 第2 章s y n c 儿数据同步协议 s y i l c m l 协议的主要目的有:一、通过任何移动设备将网络数据同步化。二、 移动设备中的数据也可以用任何网络数据同步化。 有了s y n c m l ,网络数据可以通过多种设备同步化,用户可以使用不同的设 备( 包括掌上电脑、移动电话、汽车计算机、台式机) 访问和操作同一网络数据。 此外,用户的个人信息( 如电子邮件、通讯录等) 能够在用户的不同设备上同时 得到更新,保持一致。例如,用户在掌上电脑上阅读了一封新收到的邮件,那么 在他的台式机中,也会自动地将这封邮件显示为已读邮件。 有了s y n c m l ,用户就可以在他的移动设备上更多她使用应用软件和信息, 如果对这些软件和信息有所更新,可以随时将这些更新同步化给办公室设备或同 步化到网络上;另外,例如,当移动设备用户通过电子邮件收到定单时,就可以 立即使用同一移动设备访问公司的存货系统,以确定发货日期。无疑这将更加促 进移动设备的流行与普及。 s y l l c m l 协议应具备这样几种特征: 一、对无线和有线网络均有效; 二、支持任意网络数据; 三、支持多种传输协议; 四、能够从多种应用软件入手访问数据; 五、解决移动设备资源有限问题; 六、建立在现有的i n t e m e t 和网络技术基础之上; 七、协议最基本也要做到,使得所有设备能够达到最普通的同步化要求瞄】。 s y n c m l 协议作为应用层协议,实现上层与下层的交互,并使得这一交互在 上层看来仅仅与s y i l c m l 协议有关,而与下层协议无关【1 0 】。 s y n c m l 主要可以分为三大模块:客户端、服务器端和s ) ,i l c m l 框架,客户 端主要通过代理向服务器端发起同步请求,请求通过s y n c m l 框架中的s y i l c m l 适配器,适配器分析传输协议类型,指定相应的接口a p i ,发送) 。讧l 格式的同 步消息,同样地服务器端的s y n c m l 适配器接收到消息以后,将消息送给服务器 端代理,代理将它转交给服务器端的同步驱动,同步驱动负责将m l 格式的消 息解析出来,向服务器数据库发出同步命令,同步成功以后还要向客户端发出反 馈。 4 浙江大学硕士学位论文 第2 章s y n c m l 数据同步协议 2 1s y n c 地同步框架 如图2 1 所示,a p pa 代表为移动终端提供数据同步服务的网络服务器端, a p pb 代表网络上的某台移动终端。终端和网络服务器通过常用的网络传输方式 进行连接,比如通过h t t p 协议,w s p 协议或者红外传输协议。终端和服务器端通 过s y n c m l 表示协议所规定的s y n c m l 接口进行消息通信眦1 。 ( e g ,h t t p ,恰p ,o b e x ) 图2 1s y n c m l 同步框架 图2 2 描述了一个同步的简单模型。移动终端通过s y i l c m l 消息将客户端对 个人信息进行修改的数据发送到网络服务器端,网络服务器端通过对客户端的修 改进行处理后,再将网络服务器端对客户个人信息进行的修改发回给用户。 图2 2 简单同步模型 浙江大学硕士学位论文 第2 章s y n c m l 数据同步协议 同步终端:向服务器端发送终端的个人数据的修改信息,并接收网络服务 器端的响应。通常情况下,终端首先发起同步,发送客户端修改至服务器,然后 接受服务器端的修改信息,最后结束同步。在某些情况下,服务器也可能发起同 步。终端包括移动电话,个人电脑,p d a 。 同步服务器端:同步服务器通常包括一个服务器和一个同步引擎。同步 服务器等待终端连接到服务器,接受终端的数据修改信息,并对这些信息进行处 理,最后将修改信息发送给终端。通常服务器是一台服务器设备或者个人电脑。 2 2 同步的初始化 在同步开始之前,都必须首先进行同步初始化。同步初始化有以下作用: 1 、在s y n c m l 协议层处理服务器端和客户端之间的鉴权信息。 2 、指定同步的数据库及同步使用的协议。 3 、交换客户端和服务器端的服务及设备信息“”。 同步初始化的流程如图2 3 : 图2 - 3 同步初始化流程 通常由客户端首先发起同步请求,客户端向服务器发送一个包进行初始化, 客户端的初始化包通常包括以下内容: 客户端必须通知服务器本地同步的数据库。 客户端必须通知服务器客户端将进行何种同步。 6 浙江大学硕士学位论文第2 章s y n c m l 数据同步协议 向服务器端发送客户端的设备信息及鉴权信息。 向服务器请求服务器的设备信息。 向服务器发送客户端的l a s t ,n e x t 同步锚。 服务器端在接收到客户端的初始化包后,向客户端发送服务器端的同步初始 化包,服务器端的同步初始化包通常包括以下内容: 服务器端发送服务器端的鉴权信息。 服务器发送服务器的设备信息。 服务器发送服务器端的同步锚。 2 3 双向增量同步( t w o 唧a ys 3 r i l c ) 双向增量同步是一种最常用的同步方式。在同步过程中服务器和客户端互相 交换个人数据的修改信息。客户端首先将同步锚和修改过的个人数据的信息发给 服务器,然后服务器根据客户端发送的信息来处理同步请求并将服务器个人信息 修改的数据发给客户端,最后,客户端更新其本地数据库。 具体流程如图2 4 : 在同步初始化完成后,客户端首先将客户端个人数据的修改信息发送到服务 器。需要发送到服务器的修改信息包括上次同步结束到本次同步开始所发生的所 有修改信息。 服务器在收到客户端的个人信息的修改信息之后,首先会将服务器上的数据 和收到的修改信息进行分析。在同步分析结束后,服务器端向客户端发送服务器 端的个人数据修改信息包。发送至客户端的数据包括服务器对同步数据的分析结 果和服务器端在上次同步结束至本次同步开始间所发生的修改信息。 浙江大学硕士学位论文 第2 章s y l l c m l 数据同步协议 图2 _ 4 慢同步流程 客户端收到服务器的同步包之后,客户端根据服务器同步包的数据更新本地 数据库。在完成本地数据库的更新之后,客户端向服务器端发送客户端的数据库 的更新结果。对于服务器在客户端的增加记录命令,客户端必须将客户端新产生 的记录的l u d 和服务器发送的临时g u d 对应,并将结果发送回服务器。若服 务器强制要求客户端不发送该包,则i i h d 和临时g u d 的对应信息必须被保存, 并在下一次同步开始时发送至服务器【1 8 】。 服务器收到客户端的映射信息之后,向客户端发送映射的状态信息。 2 4 慢同步( s 1 0 ws y n c ) 在很多种情况下都需要执行慢同步。如客户端或者服务器丢失个人信息的改 变记录,l u i d 冲突,同步锚丢失等情况都需要由客户端发起慢同步。慢同步 是把客户端和服务器端的数据库中的数据逐条进行比较的一种双向同步。实际 中,慢同步要求客户端把所有的个人数据信息发到服务器端,然后由服务器端将 其和服务器上的数据进行同步分析。在同步分析后,服务器将客户端需要进行修 改的数据信息发回给客户端【”1 。客户端仍然需要返回所有服务器增加记录的映射 信息。 浙江大学硕士学位论文 第2 章s ”c m l 数据同步协议 客户端和服务器端的异常都可能导致进行慢同步。如果客户端必须进行一个 慢同步,则客户在同步初始化包中通过灿e r t 命令通知服务器同步类型为慢同步。 如果服务器端必须发起一个慢同步,则服务器端发给客户端的初始化包中会包含 一个a l e n 命令,该命令的值为2 0 1 。客户端接收到该命令后将重新发起一个慢同 步过程。如果客户端或者服务器端在收到正常同步的a l e r t 命令后仍然需要进行 慢同步,必须先发送该a l e n 命令的异常状态码5 0 8 ,并同时发送发起慢同步的 a l e n 命令。如果终端设备第一次与服务器端进行同步,必须发起慢同步。 2 5 其他同步方式 客户端的单向同步( 0 i l e w a ys y n cf r o mc l i e n to n l y ) 客户端的单向同步是客户端将个人数据的修改信息同步到服务器端,而服务 器端的个人数据的修改信息不发回客户端的一种同步方式。在客户端的单向同步 过程中,客户端必须将客户端所有数据的修改信息发送到服务器端,客户端不接 收任何服务器端的修改信息。 图2 5 为客户端的单向同步的流程: 图2 5 客户端单向同步流程 客户端的刷新同步( r e f r e s hs y n cf r 伽c l i e n to n l y ) 客户端的更新同步指客户端将所有的数据发送到服务器端,服务器端用客户 端发送过来的数据覆盖服务器端的数据。客户端的刷新同步是客户端的单向同步 的一种特殊情况。 9 塑垩盔堂堡圭兰堡堡苎 兰! 兰! 翌! 坐墼塑旦生塑坚 服务器端的单向同步( o n e l r a ys y n cf r o ms e r v e ro n l y ) 服务器端的单向同步是服务器端将个人数据的修改信息同步到客户端,而客 户端的个人数据的修改信息不发回服务器端的一种同步方式。服务器端的单向同 步的同步过程与双向同步基本相同,这两种同步方式的区别在于服务器端的单向 同步的第三个包中的s y n c 元素必须为空。 图2 6 为服务器端的单向同步的流程: 图2 6 服务器端单向同步流程 服务器的更新同步( r e f r e s hs y n cf r o mc l i e n to n l y ) 服务器端的更新同步指服务器端将所有的数据发送到客户端,客户端用服务 器端发送过来的数据覆盖客户端现有的数据。服务器端的刷新同步是服务器端的 单向同步的一种特殊情况。 服务器发起的同步( s e r v e ra l e r t e d ) 这种同步类型是为了让服务器能够发起同步。服务器通过一个a 1 e r t 消息通 知客户发起和服务器的同步,当服务器通知客户发起同步的同时,也通知了客户 端将发起何种同步。客户端收到服务器的a l e r t 消息后,将重新发起服务器端所 指定的同步n 8 】。 0 浙江大学硕士学位论文 第2 章s y l l c m l 数据同步协议 图2 7 服务器发起的同步流程 2 6 本章小结 本章首先介绍了s y i l c m l 数据同步的协议,然后提出了s y n c m l 协议的同步 框架,在协议层上分析了s ) ,l l c m l 同步框架下的七种同步方式的同步流程,其中 重点介绍了慢同步和双向增量同步。本章还详细介绍了同步过程中的初始化及详 细的同步过程。 浙江大学硕士学位论文第3 章p l m 同步原理 第3 章p i m 同步原理 3 1 数据修改记录信息 协议要求终端和服务器端都能够记录两次同步之间发生的数据修改信息。协 议并不限定数据修改信息以何种形式保存,但是,当同步开始时,终端必须能够 提供所有的数据修改信息。对数据的修改操作包括替换,增加和删除。 3 2 同步锚 为了保证同步的完整性,协议使用了与数据库相关的同步锚来记录同步的时 间。有两个同步锚,l a s t 和n e x t 。在初始化同步时,客户端和服务器都将各自的 两个同步锚发给对方。l 8 s t 同步锚记录上一次同步发生的时间,n e x t 同步锚记录 本次同步发生的时间。同步锚必须在同步正常结束后进行更新,如果同步终端之 间的通信没有正常结束,那么终端必须不能更新同步锚,如果通信中断后又重新 开始,则n e x t 同步锚的值必须更新【1 0 】。 3 3 数据项i d 映射 客户端和服务器端的数据项都有它们自己的i d ,这些i d 可能不匹配。因为这 些i d 可能不一致,所以服务器必须维护数据映射表。也就是说,服务器必须分别 记录同一个数据记录在客户端和服务器端的i d 。 图3 1 是数据映射的例子,客户端保存l u i d 表,服务器端保存g u i d 表和l u i d 与g u i d 的映射关系。 l u i d 是由客户端赋给数据项的,这意味着即使是服务器端添加了一个新的数 据项,在客户端该数据项的l u i d 仍然是由客户端所指定。客户端会用m a p 命令将 数据项的l u i d 发回给服务器端。在收到客户端的m a p 命令后,服务器端就能根据 客户端的l u i d 更新服务器端的i d 映射表。 当服务器端要在客户端增加了一个新的数据项时,需要向客户端发送该数据 项在服务器端的g u i d 。如果该g u i d 超过了客户端所定义的临时g u i d 的最大值,则 服务器必须发送一个更小的l 临时g u i d 给客户端。如果数据项在客户端发生了修 改,客户端将该数据项的l u i d 发送给服务器,服务器通过i d 映射表就能找到对应 该l u i d 的g u i d 。如果数据项在服务器端发生了修改,则服务器端将该数据项的 1 2 渐江大学硕士学位论文第3 章p i m 同步原理 g u i d 所对应的l u i d 发送到客户端。客户端通过该l u i d 即能修改本地数据库的相应 数据项。 s 翻f v e rd e v 眈 s e 啪ro a 掘b 8 s e g u l dd a t a 1 0 1 0 1 0 1 c a r 2 1 2 1 2 1 2b i k e 3 2 3 2 3 2 3t r u 呶 4 3 4 3 4 3 4 s h o e s g u i dl u l d 1 0 1 0 1 0 1 1 1 2 1 2 1 2 1 22 2 3 2 3 2 3 2 33 3 4 3 4 3 4 3 4“ 图3 - 1 d 映射图 3 4 冲突的解决 客户端和服务器端可能对同一个数据项进行了修改,因而产生了冲突。通常 情况下,服务器端的同步引擎会解决客户端和服务器端的冲突,并将冲突的解决 通知客户端。 虽然通常情况下服务器端会提供同步引擎以解决数据项冲突的问题,客户端 也能够有同步引擎。在这种情况下,客户端能够自己解决冲突。服务器只是简单 通知客户端冲突的产生,客户端会解决数据项的冲突。 3 5 寻址 终端和服务器寻址 根据s y n c m l 协议中定义的u r i 配置来实现s y n c m ls y n c h d re l e m e n t 中终端或 者服务器的寻址。 对于永久连接的终端,可以采用基于u r i 的寻址: 浙江大学硕士学位论文第3 章p i m 同步原理 h t t p :w w w s y n c m l o r g s y n c s e r v e r 对于临时连接的终端,可选用它们本身的认证机制( 如i m e i ) 来识别自己。 i m e i :4 9 3 0 0 5 1 0 0 5 9 2 8 0 0 在传输层( 如h r t p ) 中的寻址配置和s y n c m l 层中使用的寻址配置是相互独 立的,且这两个配置可以不同。 数据库寻址 根据s y n c m l 协议中定义的基于u r j 的配置来实现s y n c m l 操作中的数据库寻 址。服务器和客户端数据库中都可以使用绝对切 u 或者相对u 甜。 锄e t c a l d a 川锄e s j o n d 矧l o c u i u 叫t a 玛e 数据的寻址 通过s y n c m l 规格说明书中定义的基于u 融的配置来实现s y n c m li t c i i l e l e r n e n t s 中数据的寻址。可以使用相对u i u 。 1 0 1 叫l o c u r i 3 6p a c k a g e 分包 在传输过程中,当一个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 包( p a c k a g e ) 分成几个m e s s a g e 传输, 包的最后一个m e s s a g e 必须包含f i n a l 元素。包的非最终m e s s a g e 中,必须不包含 f i n a l 元素。前一个数据包未传送完时,必须不能传输包含f i n a l 元素的m e s s a g e 结束当前包。 如果终端接受信息时,f i n a l 元素丢失,同时包含一个数据库的s y n c 元素。 则终端必须能够在下一个消息中处理这种情况,接受分包传输的终端必须能够要 求更多消息。 传送a 1 e r t 命令2 2 2 给包的发送方要求下一个消息 _ 如果响应中有其它的s y n c m l 命令则可省略含2 2 2 的a 1 e r t 命令 1 4 浙江大学硕士学位论文第3 章p i m 同步原理 收到含f i n a l 元素的消息后,必须不能再使用a 1 e r t 命令要求消息。如果有阻 碍同步继续的错误发生时,不再要求下面的消息。在接收分包信息的同时,包的 接收方可以开始发送下一个包。分包流程如图3 2 所示: 图3 2 分包消息流 3 7 大对象处理 3 7 1 大对象的大小 同步过程中,限制对象接收者能够接收的对象的大小的因素有以下两个: 1 目标终端可接受的消息的最大容量( 在 中声明) “。 2 目标终端可接受的对象的最大容量( 在 中声明) “。 当一个对象的大小超过了一个s y i l c m l 消息能够传送的大小,必须将大对象 分成多个消息进行传输,以解决同步大对象的问题,每一块均可被封装在一个 m e s s a g e 中传输。第一个数据块应包含大对象的整体s i z e ,并包含一个心4 0 r c d a t 咖 表明后面还有更多的数据块要传输。除了最后一个数据块外,每一块都必须包含 心4 0 r e d a t 少标签。终端收到最后一个数据块后,需要重新组合此大对象。然后 必须发送一个合适的状态给包的发出者。大对象中的命令必须是原子操作。大对 象处理机制不允许同时传送多个大对象。在一个大对象没有传输完成时,发送端 不允许添加任何新的对象。如果一个数据对象分块后装在几个消息中传输,那么 这些块必须在连续的消息中传输。在一个数据对象的两个块间必须不能放置新的 同步命令。 浙江大学硕士学位论文 第3 章p i m 同步原理 3 。7 2 一致性声明 服务器端必须支持大对象的接收,客户端推荐支持接受大对象。如果客户端 支持接受大对象则: _ 必须在m e t a 中声明对象的最大容量( t a g ) 蚴。 一必须在m e t a 中声明m e s s a g e 的最大容量( ) 嘲。 必须在d e v i n f 中声明 。 通过客户端接受的对象的大小和消息的大小可以计算出合适的数据块的值。状态 码和a l e r t s 为: 一s t a t u s2 1 3c h u n k e di t e m 已被接受并缓存 一a l e r t2 2 2 下一个消息。 一a 1 e r t2 2 3 分块对象未传完。 一s t a t u s4 2 4s i z e 匹配。 一s t a t u s4 1 6 请求实体过大。 一s t a t u s4 l l 需要s i z e ,请求命令必须在m e t a 元素中包含字节大小或长度 信息。 1 6 浙江大学硕士学位论文 第3 章p i m 同步原理 3 7 3 大对象交换过程 s e 耐叭g l 00 e 哪陬m i w 、g l o d 嘶 i n m a k t m 母晰m 叩od 。雠尸姆椭m 卸r f l 郫吲) 母以“组州却s 秘。村脯“o 归期叫 7 m s g 棚s e 棚l o d e v i c e n d s 峙n 瞬c 呲o f d 如 自2 日 w d q 融r 咖自叫 s f z p r e s p 堋蜘讲啊l 0 0 e v 虻e a c k a | v s 5 1 汹2 ,3 一c h m 棚抽d 耐自,删t 2 2 2 一f 枷雄一 m 钳般s e n d 旧l o d e v s e n d s 担2 n d c h 啪ko f d a 协 细m s 肼) m d 删 一 r e 印鸵r e c e i “n gl o d e v i c e a c k 抽2 ,3 一- c 衄椭d 胁e 叫删鲥缸坍耐,删舳榴茔一时舨拍g e s 朝d i n go f o 毛h e r 曲州畦翱f 舶e x c h a n g e s 豁m s g 鸵,r e 印蛇 m s g 蜘s e n d i n 9 l 0d e v l s 朝d s 她睡a 曲u r i ko f d 8 t b p o s 加r r 斑撕,蝴a 钟 s i z e r 8 s p 轴r e 喇f i a l o d e v l c e a 然 c o m o d h m r印呻啡咖sl酏耐i 一 图3 3 大对象传输流程 1 初始化 1 1 发送端 1 1 1 发送端推荐使用接收方的 来决定分割块大小 1 2 接收端 1 2 1 接收端必须在d e v i n f 中声明 ,必须指明 和 的值。 2 传输第一个数据块 2 1 发送端( m s g # 1 ) 2 1 1 发送方必须在命令元素中声明发送数据的大小,使用m e t a 元素中的 子元素 1 7 浙江大学硕士学位论文 第3 章p h 同步原理 注意: 元素必须仅在第一个数据块中指明 2 1 2 必须加在 元素之后 2 2 接收端( r e s p # 1 ) 2 2 1 接收端收到含 的数据块后,接收方必须响应“状态2 1 3 一已接收并缓存”并用“a 1 e r t2 2 2 ”要求下一条m e s s a g e 错误状况: 卜如果大小超出接收方的 ,接收方必须响应“状态4 1 6 一尺寸 过大” 2 一如果接收方得到第一个含 的数据块,但没有 元素,或 此元素中无值,则返回“状态4 1 l 一需要尺寸”。发送方可以尝试重传整个数据对 象。 3 传送其余的数据块时 3 1 发送方( m s g # 2 ) 3 1 1 在包含同一个数据对象的块信息的子m e s s a g e 中,m e t a 和i t e m 信息推 荐被重复 3 1 2 必须加在 元素后 3 2 接收方( r e s p # 2 ) 3 2 1 接收端收到含 的数据块后,接收方必须响应“状态2 1 3 一已接收并缓存”并用“a l e r t2 2 2 ”要求下一条m e s s a g e 错误状况: 如果接收方在完成上一个i t e m 前检测到一个新的数据对象或命令( 不含 元素的数据块) ,接收方必须响应“a l e r t 2 2 3 一分块对象的数据未接 收完毕”。这个a l e r t 推荐包含完整的s o u r c e 和t a r g e t 信息从初始命令来使发送方 找出错误命令。 注意:这里仅有状态是是不够的,因为不一定有一个相关的命令i d 。接收方 必须不能将新老命令一起提交。发送方可以尝试重传整个初始数据对象。 4 传输最后一个数据块: 4 1 发送方 ( m s g # n ) 4 1 1 最有一个数据块必须不包含 元素 4 2 接收方( r e s p # n ) 浙江大学硕士学位论文 第3 章p l m 同步原理 4 2 1 收到数据对象的最后一个块后,接收方从它的组成块重组数据对象。 它必须确认重组对象与发送方m e t a 信息中提供的 匹配,然后申请请求命 令。然后必须发送合适的状态给发起者 错误状况: 如果大小不匹配那么必须发送“状态4 2 4 一大小

温馨提示

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

评论

0/150

提交评论