




已阅读5页,还剩53页未读, 继续免费阅读
(计算机软件与理论专业论文)智能客户端离线关键技术研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
智能客户端离线关键技术研究与实现 摘要 耳前i n t e r n e t 、分布式网络、移动通讯技术以及企业信息化得到了快速的 发展。软件的系统架构基本上采用b s 和c s 两种。c s 架构能提供丰富的用 户体验,运行效率高,能够有效使用本地资源。b s 适用于更为广阔的网络环 境,具有更加广阔的网络访问空间,易于系统的更新和部署。b s 和c s 两者 具有各自的优点和不足。智能客户端的提出就是要综合二者,兼顾瘦客户与胖 客端的优点,使二者优势互补,摒弃二者的缺点并提供在线、离线的无缝切换 能力。 本文在分析国内外智能客户端研究情况的基础上,针对智能客户端离线功 能所涉及到的关键技术进行研究,并提出有效的解决方案。研究内容主要包括: ( 1 ) 提出一种智能客户端离线数据缓存模型。 ( 2 ) 在离线数据缓存模型的基础上,提出实用的智能客户端数据缓存处理 策略,包括合并策略、同步策略和冲突检测及处理策略。 ( 3 ) 设计智能客户端系统架构,提出一套适用于智能客户端部署和升级的 系统架构并给出设计方案。 ( 4 ) 在n e tf r a m e w o r k 2 0 的基础上,将本文提出的离线数据缓存策略和部 署升级策略在淮北矿业集团公司环保处环境管理信息平台上进行了实现。实践 证明提出的离线数据缓存策略和部署升级策略系统架构和设计方法的正确性, 为以后有关智能客户端离线技术的研究提供了较好的参考,具有实用价值。 关键词:智能客户端,离线技术,数据缓存策略,部署和升级策略 r e s e a r c ha n di m p l e m e n t a t i o no fk e yo f f l i n e - t e c h n o l o g i e so f s m a nc l i e n t a b s t r a c t n o wi n t e r n e t ,d i s t r i b u t en e t w o r k ,m o b i l ec o m m u n i c a t i o nt e c h n o t o g ya n d e e n t e r p r i s e ,i sd e v e l o p i n gr a p i d l y i ng e n e r a l l y ,t h e s es y s t e m sb a s eo nb so rc s a r c h i t e c t u r e b o t ha r c h i t e c t u r e sh a v et h e i rm e r i ta sw e l la sf a u l t c sa r c h i t e c t u r e c a np r o v i d er i c h e ru s e re x p e r i e n c e ,h i g hd e v e l o p e rp r o d u c t i v i t y ,a n dt a k ef u l l a d v a n t a g eo fl o c a lr e s o u r c ee f f i c i e n t l y h o w e v e rb sh a st h ea b i l i t yo fb r o a d r e a c h i n g ,e a s yc h a n g em a n a g e m e n ta n de a s yt od e p l o y c s sa d v a n t a g ei sb s s d i s a d v a n t a g e ;a l s ob s sa d v a n t a g ei sc s sd i s a d v a n t a g e s m a r tc l i e n tw i l l r e s o l v et h ep r o b l e m ,a n dp r o v i d et h ea b i l i t yo fo f f l i n es u p p o r t i n g b a s eo na n a l y z i n gt h ep r e s e n tr e s e a r c hd o m e s t i ca n do v e r s e a ss t a t u s ,t h i s p a p e rr e s e a r c hk e yo f f l i n e t e c h n o l o g yo fs m a r tc l i e n ta n dp u tf o r w a r das o l u t i o n f o rr e s o l v i n gt h eo f f l i n ep r o b l e m t h ef o l l o w i n gi st h ec o n t e n to ft h i sp a p e r : ( 1 ) p u tf o r w a r do f f l i n ed a t ac a c h em o d e lo fs m a r tc l i e n t ( 2 ) b a s eo nt h ed a t ac a c h em o d e l ,r e s e a r c ht h ed a t ac a c h ep o l i c yo fs m a r t c l i e n t ,i n c l u d e :d a t am e r g i n gp o l i c y ,d a t ar e p l i c a t i o np o l i c y ,c o l l i s i o nd e t e c t i o n p o l i c ya n dc o l l i s i o nd i s p o s a lp o l i c y ( 3 ) r e s e a r c ht h ea r c h i t e c t u r eo fs m a r tc l i e n t ,p u tf o r w a r daa r c h i t e c t u r ea p p l y t os m a r tc l i e n td e p l o y i n ga n du p g r a d i n g ,a n dp u tf o r w a r dad e s i g np r o p o s a l ( 4 ) a tl a s t ,b a s eo n n e tf r a m e w o r k2 0 ,t h ed e s i g na n di m p l e m e n t a t i o no f h b e m i s ( h u a i b e ie n v i r o n m e n tm a n a g e m e n ts y s t e m ) w h i c hs u p p o r t so f f l i n e a p p l i c a t i o ni sp r e s e n t e d t h ei m p l e m e n t a t i o nt a k e sf u l la d v a n t a g eo ft h eo f f l i n e t h e o r e t i co ft h i sp a p e r t h ev a l i d i t yo fd e s i g nm e t h o da n dt h eo f f l i n et h e o r e t i co f t h i sp a p e rh a v eb e e np r o v e d t h e r ea r ev e r yu s e f u lt ot h er e s e a r c h i n go f o f f l i n e t e c h n o l o g yo fs m a r tc l i e n t k e y w o r d s :s m a r tc l i e n t ,o f f l i n e - t e c h n o l o g y ,d a t ac a c h ep o l i c y ,d e p l o ya n d u p g r a d ep o l i c y 图1 1 智能客户端功能概貌, 插图清单 图2 1r p c 调用模型6 图2 2 面向服务同步方式和以数据为中心同步方式1 0 图3 1 智能客户端离线缓存模型系统结构图1 5 图3 2 智能客户端日志数据库模型1 9 图4 - 1 智能客户端系统结构图 图4 2 网络访问层核心设计类图 图4 3 事务处理层设计类图 3 0 :;1 3 2 图4 - 4 插件管理类图 图4 5s d d u p 核心模块部署配置信息x m l s c h e m a 树形结构3 8 图4 - 6s d d u p 插件模块部署配置信息x m ls c h e m a 树形结构3 9 图5 1 系统物理架构图4 1 图5 2 h b e m i s 功能模块图4 2 图5 3 监测数据管理用例图4 3 图5 4 监测数据管理数据模型图4 4 图5 5 提交数据样式模型。4 5 图5 6 数据模型x m ls c h e m a 树形结构4 5 图5 7s d d u p 实现类图4 6 图5 8h b e m i s 主界面图 图5 9h b e m i s 同步处理后的界面图4 7 表格清单 表1 1 智能客户端特性比较2 表2 1 智能客户端四种通信方式优缺点比较。8 表3 1 操作与事务读写集对应表1 9 表3 2 写集日志。2 1 表3 3 操作级合并的写集合并规则表2 1 h i 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的研究 成果。据我所知,除了文中特别加以标志和致谢的地方外,论文中不包含其他人已经 发表或撰写过的研究成果,也不包含为获得金壁王些太堂或其他教育机构的学 位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文 中作了明确的说明并表示谢意。 学位论文作者签字:金朝渍炙签字日期:加7 年f 月f g 日 学位论文版权使用授权书 本学位论文作者完全了解金e 巴王些太堂有关保留、使用学位论文的规定,有 权保留并向国家有关部门或机构送交论文的复印件和磁盘,允许论文被查阅或借阅。 本人授权金蟹王、业太堂可以将学位论文的全部或部分论文内容编入有关数据库 进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后适用本授权书) 学位论文者签名:笠 , 签字日期:勿呷年月,萝日 学位论文作者毕业后去向: 工作单位: 通讯地址: 导师签名:删 替醐7 电话: 邮编: 年6 月幽 致谢 首先在此特别感谢我的导师袁兆山教授,本论文从选题、研究到写作的整个过 程中都是在袁老师的悉心指导和帮助才得以圆满完成。袁老师在软件工程领域深厚 的理论基础和对研究方向良好的把握,给我以深刻的指引。袁老师渊博的知识、严 谨并注重实际的治学态度和工作作风,给我以深刻的启迪教育,使我在理论和实践 两方面都得到了锻炼,受益匪浅。研究生三年的学习生涯和导师对我的关怀让我永 生难忘。 感谢合肥工业大学研究生院和计算机与信息学院里的各位领导和老师,谢谢你 们在这三年中对我的关心和教导。 同时,也非常感谢各位同学对我的支持、关心和帮助。 最后,感谢我的家人在这三年里对我的鼓励、支持和关爱。 金兆毅 2 0 0 7 年5 月 第一章绪论 1 1 课题背景 随着软硬件技术的发展,应用程序的系统架构在演化中不断前行。从早期 的单机应用程序到c s ( 胖客户端) 系统架构、b s ( 瘦客户端) 系统架构。据 g a r t n e rg r o u p 统计,新应用程序的开发大约有7 0 使用w e ba p p l i c a t i o n 架构。 尽管b s 系统架构是市场的主流,但c s 凭借其固有的特点依然在市场上占有 一席之地。为了有效使用本地资源,r i c hc l i e n t ( 富客户端) 技术应运而生。 胖客户端和瘦客户端依然存在争论,胖客户端能够带来更加丰富的用户体验, 具有快速开发的效率,能够有效使用本地资源,这恰恰是瘦客户的缺点。瘦客 户端具有更加广阔的网络访问空间,易于系统更新和部署等优势。方的优势 又成了另一方的劣势,使得软件工程师在软件开发和设计时做出选择,割舍一 部分系统优点。如何将二者的优点相融合使其取长补短,已经成为软件界追求 的目标。 移动电子商务已经应用,是利用各种移动设备,移动通讯技术,随时随地 的存储、传输和交流各种商业信息【8 1 。中国已经拥有自主知识产权的3 g 标准 t d s c d m a ,2 0 0 6 年初,t d 正式“晋级”为3 g “国家标准”;在2 0 0 6 年1 1 月, t d 在青岛、厦门、保定、北京四大城市小规模放号,如果顺利,有望在2 0 0 7 年发放3 g 牌照。一场围绕移动市场的争夺大战将更加激烈,移动应用软件的 需求也将越来越高。但移动设备的缺点是网络连接不稳定并且网络费用较为昂 贵,用户可能经常处于连接不稳定,甚至无连接的状态下,要求移动应用应具 备一定的离线处理能力以及离线和在线的无缝切换能力。 在企业开发和应用方面,e r p 产业已经进入同质化竞争时期,智能客户端 的出现可以打破这个僵局,使开发方多了一个技术选择和开发方向,使用方也 多了一个选择余地和业务拓展机会。 为解决这些问题,微软提出了智能客户端的概念。智能客户端是易于部署 管理的客户端应用程序,可通过统筹使用本地资源和到分布式数据资源的智能 连接,提供适应的、快速响应的和丰富的交互式体验【9 j 。 如图1 - 1 所示,智能客户端的在于兼顾瘦客户与胖客端的优点,摒弃二者 的缺点并提供在线、离线的无缝切换能力。智能客户端的优势总结起来可以概 括为三点,即充分利用本地资源和享受本地用户体验、具备离线连接能力,以 及智能部署和自动更新。 图1 - 1 智能客户端功能溉貌 智能客户端应该具备四个特性:可以自动更新,具有丰富的客户端体验, 对离线场景的无缝支持,联机时更好。表1 - 1 列出了目前智能客户端软件在这 四个方面的对比。 表1 1 智能客户端特性比较 是否有丰富的对离线场景联机时 是否是智能客 是否自动更新? 客户端体验?的无缝支持?更好?户端? h o t m a i l是否否 是否 0 u t l o o kx p 否是有几分 是 否 o u t l o o k2 0 0 3否是是 是接近 i s s u e v i s i o n 是是是是是 1 2 课题的研究意义 智能客户端可以将胖客户端的传统优点与瘦客户端的可管理性优点结合 起来。要完全实现智能客户端的优点,需要考虑许多体系结构和设计问题。智 能客户端的很多关键技术问题都针对实际情况而定并且没有较为完整的理论 阐述和实现方案。下面列举了一些智能客端需要解决的技术问题。 智能客户端可将数据和应用逻辑分发到客户计算机上,瘦客户端则倾向于 将数据和逻辑集中存放在w e b 服务器和其他后端服务器中。尽管可以通过智能 客户端的方法使应用程序变得更加高效,并且不需要与服务器进行往返通讯以 确定后续步骤,但需要考虑到应用程序及其数据分布得更为广泛时,如何进行 设计。 通过在客户端缓存数据,可显著改善应用程序的性能和可用性,但又必须 确保适当地刷新数据并且不使用陈旧的数据。由于许多用户可以访问和使用相 同的数据,这里必须考虑数据并发带来的影响。 如果要在客户端上实现业务规则,需要在必要时更新这些规则,不是更新 整个应用程序。这意味着需要使用不同的机制来分别更新该应用移事阻碍更新 2 该应用程序内部的业务规则。 部署和更新的成本将直接影响智能客户端的可用性,要实现系统的零部署 需要着重进行平台的选取和系统设计。 智能客户端是为了兼硕度客户端和胖客户端的优点并引入离线功能。该体 系结构的使用需要在关键技术上进行突破。从智能客户端的前景来看,对智能 客户端关键技术进行深入研究是很有必要的。 1 3 国内外研究情况 2 0 0 4 年微软提出了智能客户端技术,并相继给出w i n d o w s 智能客户端、 o f f i c e 智能客户端,以及移动智能客户端等解决方案。之后国内外都对智能客 户端的实际应用进行相关研究。目前,华中科技大学、大连理工大学对智能客 户端的实际应用技术作了一定研究。华南师范大学对智能客户端的离线技术进 行了一定的研究。 由于智能客户端是一个较新的概念,有关数据缓存的问题可以借鉴一些移 动数据库方面的研究成果。移动数据库的研究起步较早并取得了许多有价值的 成果。p u r d u e 大学对移动事务处理、移动数据库复制等技术进行了大量的研究。 c a r n e g i em e l l o n 大学对移动计算平台进行了大量研究。r u t g e r s ( 罗格斯大学) 对移动数据库技术进行了较为全面的研究,如移动计算体系结构、移动复制算 法、移动事务处理等。s o u t hm e t h o d i s t 大学、m o n a s h 大学对移动c a c h i n g 技术 进行了研究。国内方面,香港理工大学、香港科技大学对移动c a c h i n g 技术进 行了研究。中国人民大学在移动数据库方面进行了较为全面的研究并开发了移 动数据库“小金灵”。 厂商方面,微软提出了一些智能客户端解决方案,在n e t 架构基础上为 智能客户端提供了一些基础类库支持。i b mw o r k p l a c ec l i e n tt e c h n o l o g y 的一 个重要组件i b mw o r k p l a c e 是智能客户端概念的另一种体现方式,它可以开发、 部署以及集中管理富终端用户客户机应用程序。可将服务器平台的可管理性和 安全性功能扩展到用户桌面以及其他设备。富客户机应用程序提供了服务器端 控制和成本节约功能的客户端应用程序的灵活性和可移植性。w o r k p l a c ec l i e n t t e c h n o l o g y 有两个版本:用于移动设备的m i c r oe d i t i o n 和用于桌面的r i c h e d i t i o n 。在国内,新中大公司已有两个基于智能客户端技术的系列产品, g s o f t g 6 和a 3 。g s o f t g 6 后端应用的开发采用了符合j 2 e e 标准的应用平台和 工具;新中大a 3 产品的后端开发则是采用了n e t 平台。金蝶的e a s 大中型 企业e r p 系统也采用了智能客户端方案。 1 4 研究内容 本文主要研究智能客户端在实际应用中有关离线技术关键问题,并提出相 关的解决方案,主要内容包括: 1 ) 对智能客户端离线特性所涉及到的相关技术进行介绍。智能客户端的离线支 持带来了好处,同样也存在着挑战。通过对智能客户端离线技术所面临的挑战的分 析,准确把握智能客户端离线技术所面临的关键问题。 2 ) 提出在目前条件下解决智能客户端离线技术问题所存在基础方案。通过对现 有条件的分析,并针对智能客户端所面临的挑战。给出了具有针对性的基础方案。 本文从网络通信策略、连接管理策略、数据存储方式、数据同步方式、数据同步格 式五个方面论述了如何解决智能客户端离线技术问题并给出了方案比较。 3 ) 本文详细论述了智能客户端离线状态下数据缓存及其相关问题,并给出了较 为详尽的解决方案。在智能客户端的离线数据缓存问题上进行了详细的论述,在智 能客户端缓存数据从本地提交到全局提交理论的前提下,提出了智能客户端的缓存 数据的同步模型,并提出了t l c p ( t r a n s a c t i o nl a y e rc a c h ep o l i c y 事务级缓存策略) 并对该策略进行了详细的论述,包括:t l c p 乐观锁机制,t l c p 日志策略,t l c p 事务合并策略,t l c p 同步策略,t l c p 冲突检测与消解策略。 4 1 智能客户端系统架构与部署升级方案。为适应智能客户端有限资源的条件, 本文提出了一套松耦合的智能客户端系统架构设计方案。为做到松耦合,本文将采 用分层的方式将智能客户端的总体架构分为六层:网络管理层、离线事务处理层、 在线离线数据处理层、模型层、业务逻辑层和表示层。本文分别对着五层结构的设 计进行了论述,并给出了核心部分类图。对智能客户端的升级技术进行了研究,提 出了具体的升级策略。 5 1 在对智能客户端离线关键技术问题研究的基础上进行了实现。在淮北煤矿环 境管理信息平台中,运用本文的研究成果进行相关模块的原形实现,本文从应用角 度详细说明了智能客户端离线技术的实现过程,从实践角度证明了理论的可行性与 实用性。 1 5 论文组织 全文由六章组成。本章为绪论,介绍研究课题涉及到的相关概念,说明论 文的主要内容和所做的工作以及论文的组织结构。 第二章智能客户端离线关键问题概述,主要从离线所带来的挑战入手, 分析涉及的相关技术以及基础解决方案。 第三章智能客户端离线缓存技术研究,提出了智能客户端的离线缓存方 案并对方案的内容进行了详细的论述,其主要内容包括:缓存模型、锁机制、 日志机制、事务合并策略、事务同步策略和冲突检测和消解策略。 第四章智能客户端架构及部署升级技术研究,主要针对智能客户端架构 松耦合的要求提出了系统架构设计方案。对智能客户端升级技术进行了分析和 阐述,提出了相关解决方案。 第五章智能客户端在淮北环境管理信息平台中的实现,主要在理论研究 的基础上进行了实际运用。 第六章总结展望,总结全文,并指出研究中存在的问题和改进方向。 4 第二章智能客户端离线关键问题概述 2 1 概述 智能客户端的提出是在融合b s 和c s 体系结构优点的基础上,加入对离 线状态的支持。离线技术的确可以带来很多好处,同样智能客户端的设计也面 临一些问题。例如: 1 1 移动设备采用何种方式与服务器通信? 2 ) 应用程序如何确定它处于联机状态还是脱机状态? 3 ) 如果连接能够以不可预计的次数进行更改,那么应该如何通知依赖于连 接状态的应用程序组件? 4 ) 应用程序应该如何存储数据以及将数据存储在本地的什么地方,才能在 脱机状态下对其进行访问? 数据会变陈旧吗? 应该在何时刷新数据? 5 ) 当应用程序无法访问所有必需的数据或服务时,是否应采用不同的运作 方式? 6 ) 当应用程序处于脱机状态时,应如何存储事务性数据( 消息数据) ,以 及在何处存储这些数据? 7 ) 当应用程序从脱机变为联机时,应如何将事务性数据与服务器进行同 步? 并且采用何种同步方式,何种同步信息描述格式? 8 ) 由于智能设备的资源问题,不能把所有的软件功能模块都安装到智能客 户端上,所以要考虑如何更加方便地部署和更新智能客户端的应有程序。 9 ) 智能客户端将逻辑和数据分布到客户端计算机,因此要考虑更多的数据 与业务逻辑的安全性问题。 1 0 ) 离线数据不可能保证智能客户端在离线状态下的持续运行,所以应该 提供一种预缓存方案,通过对多次数据缓存的分析,为用户预先缓存一些数据 尽可能的保证智能客户端的有效运行。 通过对以上问题的分析,智能客户端离线关键技术主要包括: 1 ) 智能客户端的离线系统架构。 2 ) 智能客户端的离线数据缓存技术。 3 ) 智能客户端的离线部署与升级技术。 4 ) 智能客户端的离线数据与程序集安全性技术等。 本章将针对智能客户端的离线关键技术,讨论目前存在的一些基础解决方 案和可用策略。 2 2 网络通信策略 在n e t 平台下,智能客户端有很多通信方式选择方案,如n e te n t e r p r i s e s e r v i c e s 、m i c r o s o f t n e tr e m o t i n g 、m i c r o s o f tw i n d o w s 消息队列( 也称为 m s m q ) 、w e b 服务。在选择通信方式时要着重考虑互操作性、脱机功能、网 络通讯性能、部署以及可维护性。 2 2 1 n e te n t e r p r i s es e r v i c e s n e te n t e r p r i s es e r v i c e s 提供对托管代码组件和应用程序的c o m + 服务 基础结构的访问。使用c o m + 服务的n e t 组件称为服务组件。服务组件以 c o m + 应用程序为宿主,必须供该应用程序访问。这为服务组件带来了一些注 册和配置要求: ( 1 ) 程序集必须从s y s t e m e n t e r p r i s e s e f v i c e s 命名空间中的 s e r v i c e d c o m p o n e n t 类派生。( 2 ) 程序集必须是强命名的。( 3 ) 程序集必须 在m i c r o s o f tw i n d o w s 注册表中注册。( 4 ) 必须将程序集的类型库定义、注册 和安装到特定的c o m + 应用程序中。 基于n e t e n t e r p r i s es e r v i c e 开发的许多组件可被智能客户端使用。这些组 件只能在单进程或服务器的服务边界内使用,由于配置信息的强制性要求, e n t e r p r i s es e r v i c e s 具有紧耦合性质,通常e n t e r p r i s es e r v i c e s 不是智能客户端 和远程系统之间进行通讯的最佳选择。 2 2 2 n e tr e m o t i n g n e tr e m o t i n g 提供了灵活可扩展的远程过程调用r p c ( r e m o t ep r o c e s s c a l l ) ,r p c 调用模型如图2 - 1 所示。n e t 组件可以通过该机制进行通讯。n e t r e m o t i n g 可以使用多种通讯协议( 如h t t p 、t c p 等) 、数据编码选项( 包括 x m l 、s o a p 和二进制编码) 和各种对象激活模型。它可以提供在对象之间进 行通讯的有效手段。 图2 1r p c 调用模型 n e tr e m o t i n g 可使用显示为远程对象的代理对象,像调用本地对象一样 调用远程对象。n e tr e m o t i n g 可以用多种方法来管理远程对象的生存期。n e t r e m o t i n g 还可以保证对于所有客户端,只存在一个对象实例。可以根据用户 对状态管理和可伸缩性的要求,选择应用程序的生存期。n e tr e m o t i n g 的可 扩展基础结构使人们可以创建自定义信道和接收器。 n e tr e m o t i n g 具有用于在对象之间进行通讯的强大且可扩展的机制,但 它存在着紧耦合的性质。n e tr e m o t i n g 在客户端和服务器都需要n e t 实现的 对象;因此,对于要求在不同环境之间具有互操作性的情形,它并不适合。默 认情况下,n e t r e m o t i n g 不会提供任何内置的加密机制或用于在对象之间传 递用户标识或事务的机制。 2 2 3 消息队列 借助于m i c r o s o f tw i n d o w s 消息队列,可通过发送和接收消息,快速可靠 地与应用程序通讯。消息处理提供了有保证的消息传递以及执行许多业务过程 的可靠方式。消息队列提供了一种可以在智能客户端内使用的松耦合通讯机 制。消息队列具有下列功能: 有保证的消息传递。消息队列通过将消息存储在队列中直到传递结束。与 组件之间的直接调用相比,消息受失败的影响的程度要小得多。消息优先级使 得更为紧急的消息可以在不太重要的消息之前收到,有助于保证为关键应用程 序提供足够的响应时间。 脱机功能。如果消息因为客户端脱机而无法传递,则会将它们存储在待发 队列中,并且在客户端重新联机时自动传递它们。 事务性消息处理。可以将消息作为事务的一部分发送。这样,可以发送多 个相关消息,或者将应用程序设计为参与分布式事务,并且确保所有消息都按 顺序传递并且只传递一次。如果事务内发生任何错误,则整个事务都将被取消, 并且不会发送任何消息。 安全性。m e s s a g e q u e u e 组件所基于的消息队列技术使用w i n d o w s 安全 性来确保访问控制的安全、提供审核以及对组件发送和接收的消息进行加密和 身份验证。可以在网络上对消息队列消息进行加密,以使其不会被探器截获。 还可以禁止队列接收未加密的消息。 使用消息队列的应用程序可以通过使用s y s t e m m e s s a g i n g 命名空间中的类 来发送消息以及从队列中读取消息。m e s s a g e 类用于封装要发送到队列的消息, m e s s a g e q u e u e 类提供了对特定队列及其属性的访问。 如果要使用消息队列,必须在计算机上安装和配置它,这也是他不利的一 点,但w i n d o w s 桌面操作系统和m i c r o s o f tw i n d o w sc e n e t 都可以使用消 息队列,可以在移动设备( 如p o c k e tp c 设备) 上使用它。 要与提供基于消息的访问的服务交互,消息队列是一种很好的选择。可以 使用消息队列与其他装有消息队列的系统通讯。更值得一提的是在这里介绍的 四种通讯方式中只有消息队列是异步通信方式。 2 2 4w e bs e r v i c e s w e bs e r v i c e s 基于s o a p 的x m l 消息机制,具有显式( 结构化和类型化) 部分或宽松定义部分( 使用任意x m l ) 。w e b 服务可以是松耦合的,也可以 7 是紧耦合的,可用于实现基于消息或r p c 风格的系统,这取决于具体环境的准 确性需求。 可以使用w e bs e r v i c e s 在异类环境中的组织内部以及组织之间生成模块化 的应用程序。这些应用程序可以与种类繁多的实现、平台和设备互操作。任何 能够通过h t t p 发送x m l 的系统都可以使用w e b 服务。因为w e b 服务是基于 标准的,所以用不同语言编写以及位于不同平台上的系统可以相互使用对方的 服务。这通常被称为面向服务的体系结构。 w e bs e r v i c e s 的标准包括:h t t p 、s o a p 、u d d i 和w s d l 等。w e bs e r v i c e s 与传输协议无关,但h t t p 是用于传输s o a p 消息的机制。w e b 服务非常适合 横跨网络和企业防火墙的应用程序,如需要通过i n t e r n e t 与服务通讯的智能客 户端。w e bs e r v i c e s 的系列标准,如w s s e c u r i t y 、w s s e c u r e c o n v e r s a t i o n 、 w s t r u s t 、w s p o l i c y 、w s - a d d r e s s i n g 、w s - r e f e r r a l s 、w s a t t a c h m e n t s 。凭借 其高度松耦合的特性,可使开发人员忽略不同系统平台、开发平台、开发工具 对软件开发所带来的影响。w e bs e r v i c e s 有利于系统的集成和再利用。 w e bs e r v i c e s 是生成数智能客户端的最佳方法。高度的互操作性使w e b 服务能与各种各样的应用程序通讯。使用广泛采用的标准意味着它们通常只须 进行最低限度的额外配置( 与要求打开专用端口的其他技术比较) ,就可以通 过网络基础结构和防火墙。 2 2 5 四种通信技术比较 已讨论的四种可选通信方式各有优缺点,具体采用哪种方式要根据实际情 况选择。由于w e bs e r v i c e s 的松祸合、平台无关性和高度集成化等特点,已成 为智能客户端通信方式的最佳选择。本文的实现部分采用w e bs e r v i c e 作为通 信技术。表2 - 1 列出了智能客户端四种通信方式的优缺点。 表2 1 智能客户端四种通信方式优缺点比较 通信方式优点缺点 e n t e r p r i s e 提供对c o m + 务的访问;使标识能够与需要在客户端安装服务组件: s e r v i c e s调用一起流动。仅适合于同一进程或计算机。 要求n e t 框架运行;专用性 强;无法在不打开r p c 端口 n e tr e r a o t i n g 快速;可插接:支持自定义协议。 的情况下通过防火墙:无安全 性基础结构。 m e s s a g e 与消息处理系统通讯很有用:安全;有保 要求在客户端上配置消息队 列:不能容易地与其他系统集 o u e u i n g 证的消息传递;异步传输机制。 成。 支持集成;可扩展;强大的行业支持:定 w e bs e r v i c e s性能比n e tr e m o t i n g 低。 义明确的标准;供应商语言无关:安全。 8 2 3 智能客户端连接管理 为实现智能客户端在线离线状态的无缝切换,必须对数据连接进行管理。 2 0 0 4 年6 月微软发布了o f f l i n e a p p l i c a t i o nb l o c k 1 3 l ,为智能客户端开发人员提 供离线辅助工具包。o f f i i n ea p p l i c a t i o nb l o c k 基础功能是:检测网络连接是否 存在;当连接状态变更时通知所有已注册的组件;下载并缓存参考数据,以便 在网络连接不可用时允许应用程序正常工作;当应用程序脱机时,在本地存储 消息数据;当网络连接变为可用时,将消息数据与服务器进行同步。这些特征 使o f f l i n ea p p l i c a t i o nb l o c k 具备支持离线应用程序开发的基本功能,但它对各 种服务以及缓存策略的支持还需要完善。在离线连接管理方面,本文采用自行 设计的连接管理类库,它是o f f l i n ea p p l i c a t i o nb l o c k 的一种扩充,主要包括: 扩展了网络连接状况的监测策略,增加了主机可达性检测、w e b s e r v i c e s 可达 性检测等;提供了对只读引用数据和瞬态数据的缓存;更加灵活的乐观锁同步 机制等。 2 4 智能客户端存储方式 如何存储缓存数据? 采用何种格式保存缓存数据? 下面针对这个问题进 行阐述。 内存。在内存中保存的数据不能持久,这不适用智能客户端的缓存方案。 但有效的使用内存可以提高系统性能。 保存数据传输对象。可采用多种方式保存数据传输对象。可使用x m l 组 织数据。x m l 具有很好的结构性,便于数据检索,并且在n e t 平台下,d a t a s e t 类提供了一系列d a t a s e t 中数据表示成x m l 的方法。还可以使用n e t 提供的 “隔离存储区”来缓存数据。隔离存储区的相关a p i 定义在n e t 架构的 s y s t e m i o i s o l a t e d s t o r a g e 命名空间下,允许创建和使用独立存储区的类型。使 用这些存储区可以读取和写入不太受信任的代码无法访问的数据,并可以防止 公开保存在文件系统其他位置的敏感信息。数据存储在由当前用户和由代码所 在的程序集分隔的隔室中。“隔离存储区”的不足是n e t c o m p a c t 架构不支持 s y s t e m i o i s o l a t e d s t o r a g e 命名空间,并且“隔离存储区”的默认储存空间只有 1 0 兆,但可以通过配置文件修改存在空间大小。 数据库。可使用数据库缓存数据。数据库提供了一个很好的数据缓存平台, 但需要特定软件的支持。还有一个方法是使用s q l c e ,s q l c e 是n e t 架构提 供的一个简易数据库工具类,并且n e tc o m p a c t 也提供了对其支持。使用 s y s t e m d a t a s q l s e r v e r c e 命名空间可以在智能设备上创建和管理s q ls e r v e r m o b i l e 数据库,还可以建立到s q ls e r v e r 数据库的连接。 2 5 智能客户端同步方式 根据智能客户端的体系结构,其同步方式可分为两类:以数据为中心的同 9 步方式和面向服务同步方式。使用以数据为中心的策略的应用程序具有一个在 客户端上本地安装的关系数据库管理系统( r d b m s ) ,并且使用该数据库系统的 内置功能将本地数据的更改传回服务器,处理同步过程,并检测和解决任何数 据冲突。使用面向服务方式的应用程序将信息存储在消息中,并且当客户端脱 机时将这些消息排列到队列中。在重新建立连接以后,排队的消息将被发送到 服务器进行处理。图2 - 2 描述了两种同步策略的物理架构和工作方式。 d a t a , o m t r h ea p p r o o c - i 【u s e r i r i a e _ x * l o f t 日】 ( b u s :n “s l 。秘,nu i 】 ( l o c a l o a l al 。g ,c ) 圜 r 晖h 蔼抽n 聘u 捌嘲l t 啦 茴; 图2 2 面向服务同步方式和以数据为中心同步方式 2 5 1 以数据为中心同步方式 使用以数据为中心策略的应用程序具有一个在客户端上本地安装的关系 数据库管理系统( r d b m s ) ,并且使用该数据库系统的内置功能将本地数据更 改传回服务器,处理同步过程,并检测和解决任何数据冲突。在以数据为中心 的模型中,数据库系统负责处理同步,无须自己实现所有数据同步功能。用户 定义哪些表要进行数据同步,数据库系统可以跟踪更改并且检测和解决冲突。 通过使用c o m 对象或t r a n s a c ts q l ( t s q l ) 存储过程的自定义冲突解决程序来 扩展该基础结构,以便提供自定义冲突解决或避免机制。因为在整个系统中只 有一个数据库,所以当同步完成对,能够保证在服务器和客户端之间执行数据 汇聚。 以数据为中心的同步方式的优点是:所有更改跟踪代码都包含在关系数据 库中。通常,包括数据库的列级和行级的冲突检测代码、数据验证代码以及约 束。这意味着无须编写自己的更改跟踪代码或冲突检测与解决代码。其缺点是: l o 应用程序不适合部署在小型设备上运行;部署方式较为复杂并且要在客户端上 安装d b m s ;部署应用程序时需要较高的用户权限。 2 5 2 面向服务同步方式 面向服务的方法,客户端可以与需要的任何服务交互。客户端将致力于服 务请求本身,而不是对本地保存的数据进行直接更改。服务请求可能在客户端 或服务器上导致状态更改,但此类更改是服务请求的副产品。面向服务策略的 优点是在客户端上不需要本地关系数据库。这意味着可以将该方法应用于许多 不同的客户端类型,包括那些具有少量处理能力的客户端,如智能手机。 当应用程序必须在i n t r a n e t 和e x t r a n e t 环境中工作时,面向服务的方法尤 其适合。在防火墙外部工作并且与企业服务交互,通过使用面向服务的策略, 可以避免由于某种原因而必须在防火墙中打开特定的端口。面向服务的方法最 适合需要与许多不同服务交互的智能客户端。因为消息的有效负载被封装,所 以传输层可以改变,不会影响消息的内容。 松耦合意味着可以在客户端上使用与服务器上不同的系统架构。实际上, 客户端和服务器不需要知道对方。可以独立地更新客户端和服务器组件。 面向服务同步方式的主要缺点是需要编写更多的基础结构代码,以便存储 和转发消息以及检测应用程序何时联机或脱机。这可以使设计具有更多的灵活 性,但通常意味着在创建脱机客户端时需要完成更多的工作。 2 5 3 研究路线选择 通过对比两种智能客户同步方式,发现由于数据为中心的同步方式需要使 用特定数据库管理系统,并且要依靠数据库之间的复制功能来实现数据同步。 这为智能客户端开发和使用带来了很大的局限性。所以本文将在以面向服务的 同步方式的基础上进行智能客户端离线技术的研究。 2 6s y n c m l 2 6 1s y n c m l 协议 s y n c m l 数据同步规范是由o m a ( o p e nm o b i l ea l l i a n c e ) s y n c m l 发起 组( s y n c m li n i t i a t i v e ) | 6 0 定的一个通用数据同步标准。由于s y n c m l 数据同步规 范是由国际上众多的包括e r i c s s o n 、i b m 、l o t u s 、m a t s u s h i t a 、m o t o r o l a 、n o k i a 、 o p e n w a v e 和s t a r f i s h 在内的众多公司,根据通用数据同步规范的要求共同制定 完成的,所以该规范目前已经成为一个被广泛接受的工业界通用的同步协议标 准。国际电信联盟己认可其为下一代移动通信标准的组成部
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中介合伙协议书
- 公司景泰蓝点蓝工岗位工艺技术规程
- 锚链热处理工问题分析深度考核试卷及答案
- 飞机电缆盘箱工文档修订及时性考核试卷及答案
- 飞机数字化装配工工作交接完整性考核试卷及答案
- 2025合同范本租赁合同(标准文本5)模板
- 江苏南通启东市南苑中学2026届数学七上期末质量检测模拟试题含解析
- 2025:试用期未签订劳动合同辞职时遭遇纠纷
- 2026届江苏省江阴市第二中学数学七上期末复习检测模拟试题含解析
- 山东省济南市长清五中学2026届数学七上期末质量跟踪监视试题含解析
- 手汗症的护理
- CNN 卷积神经网络介绍
- 北师大版五年级上册数学《练习四》
- 新概念英语第二册优质课件Lesson5 NCE2新概念2
- 急性白血病急性髓系白血病课件
- 康养文化课件
- 11、2015年10月25日广东省直机关公开遴选公务员笔试真题解析
- 阿里巴巴国际站规则
- 口腔颌面外科学第十章 口腔颌面部损伤
- JJG 520-2005粉尘采样器
- GB/T 23711.2-2009氟塑料衬里压力容器耐低温试验方法
评论
0/150
提交评论