(计算机软件与理论专业论文)智能客户端技术研究与实现.pdf_第1页
(计算机软件与理论专业论文)智能客户端技术研究与实现.pdf_第2页
(计算机软件与理论专业论文)智能客户端技术研究与实现.pdf_第3页
(计算机软件与理论专业论文)智能客户端技术研究与实现.pdf_第4页
(计算机软件与理论专业论文)智能客户端技术研究与实现.pdf_第5页
已阅读5页,还剩78页未读 继续免费阅读

(计算机软件与理论专业论文)智能客户端技术研究与实现.pdf.pdf 免费下载

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

文档简介

西南交通大学硕士研究生学位论文第1 页 摘要 随着网络应用技术的发展和信息化建设的不断深入,软件架构也经历了 胖客户端( c s ) ,瘦客户端( b s ) 的历程。这两种架构各自有自己的优点 但又有明显的不足。特别在某些特殊的场合,这两种架构都已经不能满足新 的需求,越来越多的企业和用户要求软件具有丰富快速的用户体验及一定的 脱机处理能力,于是智能客户端就应运而生了。 智能客户端作为一种新兴的架构,它结合了胖客户端和瘦客户端的优 势,代表了下一代客户端软件技术应用的发展方向。微软对智能客户端的定 义是:智能客户端是易于部署和管理的客户端应用程序,它们通过统筹使用 本地资源和到分布式数据资源的智能连接,从而为用户提供适应的、快速响 应的和丰富的交互式体验。 本文首先介绍了智能客户端技术的发展和特征,分析了传统的胖客户端 架构和瘦客户端架构的优缺点以及构建智能客户端的支撑技术。然后,重点 研究了在n e t 平台下构建智能客户端应用程序的模型和关键技术,包括: 构建多层结构的客户端模型、数据缓存处理技术、w e b 服务技术、离线在 线处理技术、智能客户端的部署和更新技术等。最后用基于智能客户端技术 实现了通讯管家管理系统。本文对开发过程中可能出现的技术难点,给出了 相应实现方法,为今后类似系统的设计与开发提供了指导。 关键词:智能客户端;w e b 服务:数据冲突;离线操作 a b s t r a c t w i t ht h ed e v e l o p m e n to fn e t w o r k a p p l i c a t i o n sa n dt h ec o n s t a n td e e p e n i n go f i n f o r m a t i o nt e c h n o l o g yc o n s t r u c t i o n ,s o f t w a r ea r c h i t e c t u r eh a sa l s oe x p e r i e n c e d f r o mf a t c l i e n tt ot h i n c l i e n t t h e s et w oa r c h i t e c t u r e sh a v et h e i ra d v a n t a g e sa s w e l la si n s u f f i c i e n t e s p e c i a l l yi nc e r t a i ns p e c i a l f i l e d ,t h e s et w oa r c h i t e c t u r i 嚣 c a l l tm e e tt h en e wr e q u i r e m e n t ,m o r ea n dm o r ee n t e r p r i s e sa n du s e r sr e q u i r ea s o f t w a r ew i t hf a s ta n dr i c h u s e re x p e r i e n c ea n dc e r t a i n a b i l i t yo fo f f - l i n e p r o c e s s i n g ,s os m a r tc l i e n tc a l n ei n t ob e i n g a san e wf r a m e w o r k ,s m a r tc l i e n tc o m b i n e st h er e s p e c t i v e a d v a n t a g e so ff a t c l i e n ta n dt h i nc l i e n t ,r e p r e s e n t i n gt h ed e v e l o p m e n td i r e c t i o no f n e x tg e n e r a t i o n o fc l i e n ts o f t w a r ea p p l i c a t i o n m i c r o s o f td e f i n i t ei ta s a l l e a s i l yd e p l o ya n d m a n a g ec l i e n ta p p l i c a t i o nt h a t p r o v i d ea l l a d a p t i v e ,r a p i dr e s p o n s i v ea n dr i c h i n t e r a c t i v ee x p e r i e n c eb yl e v e r a g i n gl o c a l t od i s t r i b u t e dd a t as o u r c e s r e s o u r c c sa n di n t e l l i g e n t l yc o n n e c t i n g f i r s t ,t h i sp a p e ri n t r o d u c e st h ed e v e l o p m e n ta n dc h a r a c t e r i s t i c so ft l l es m a n c l i e n tt e c h n o l o g y , t h e na n a l y s e st h e a d v a n t a g e s a n d s h o r t c o m i n g sb e t w e e n t r a d i t i o n a lf a tc l i e n ta n dt h i nc l i e n ta sw e l la s t h e s u p p o r t i n gt e c h n o l o g yo f b u i l d i n gs m a r tc l i e n t s e c o n d ,f o c u s e so nb u i l d i n gs m a r tc l i e n ta p p l i c a t i o nm o d e l u n d e r n e tp l a t f o r ma n dk e yt e c h n i q u e s ,i n c l u d e :c o n s t r u c t i o no f c i i e n tm o d e l w i t hm u l t i s t o r e ys t r u c t u r e ,d a t ac a c h e p r o c e s s i n gt e c h n o l o g y , w e bs e r v i c e s t e c h n o l o g y , o f f i i n e o n l i n ep r o c e s s i n gt e c h n o l o g y , s m a r tc l i e n td e p l o y m e n ta n d u p d a t i n gt e c h n o l o g y , a n ds oo n f i n a l l y , i m p l e m e n tt h ec o m m u n i c a t i o nm a n a g e r m a n a g e m e n ts y s t e mw h i c hb a s e do ns m a r tc l i e n tt e c h n o l o g y m e a n w h i l e ,s o m e i m p l e m e n tm e t h o di sg i v e nt or e s o l v es o m et e c h n i c a ld i f f i c u l t i e sw h i c hm a yb e o c c u r r e d d u r i n gd e v e l o p i n g i ta l s op r o v i d e sg u i d a n c ef o r d e s i g n i n ga n d d e v e l o p i n gs o m es i m i l a rs y s t e m si nt h ef u t u r e k e yw o r d s :s m a r tc l i e n t ;w e bs e r v i c e s ;d a t ac o n f l i c t ;o f f - l i n eo p e r a t i o n 西南交通大学 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意 学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被 查阅和借阅。本人授权西南交通大学可以将本论文的全部或部分内容编入有 关数据库进行检索,可以采用影印、缩印或扫描等复印手段保存和汇编本学 位论文。 本学位论文属于 1 保密口,在年解密后适用本授权书; 2 不保密函,使用本授权书。 ( 请在以上方框内打“4 ) 学位论文作者签名:套量支 日期:m 文- 艿 指导老师签 日期: 西南交通大学学位论文创新性声明 本人郑重声明:所呈交的学位论文,是在导师指导下独立进行研究工作 所得的成果。除文中已经注明引用的内容外,本论文不包含任何其他个人或 集体已经发表或撰写过的研究成果。对本文的研究做出贡献的个人和集体, 均已在文中作了明确的说明。本人完全意识到本声明的法律结果由本人承 担。 本学位论文的主要创新点如下: 本文针对传统的胖客户端架构和瘦客户端架构的优缺点的分析,结合了 这两种结构的优点,重点研究了构建智能客户端应用程序的模型和关键技术 及其在实际当中的实现。使用基于n e t 平台的w i n d o w s 智能客户端应用程 序的总体架构,严格采用分层的结构来构建软件体系架构,使该系统具有良 好的开放性、伸缩性和可靠性。 西南交通大学硕士研究生学位论文第l 页 1 1 研究背景 第1 章绪论 随着计算机软硬件技术的发展,i n t e r a c t 的普及,应用程序的系统架构 在演化中不断前行。从早期的单机版应用程序已经发展到了c s ( 胖客户端) 系统架构、b s ( 瘦客户端) 系统架构的应用程序。特别是进入9 0 年代以后, 伴随着计算机网络的发展以及i n t e r a c t 的广泛应用,b s 架构已成为应用程 序开发的主流架构,浏览器也就成了客户端主流工具。据g a r t n c rg r o u p 统 计,新应用程序的开发大约有7 0 使用w e ba p p l i c a t i o n 架构【2 】。尽管b s 系统架构是市场的主流,但c s 凭借其固有的优点依然在市场上占有一席之 地。因此,目前关于c s 和b s 依然存在争论,因为c s 能够带来更加丰 富的用户体验、快速开发的效率、能够有效使用本地资源,而这正好是b s 的缺点:同样b s 具有更加广阔的网络访问空间、易于系统更新和部署等优 势,这些也是c s 的不足。这样就出现了一方的优势又成了另一方的劣势, 从而使得软件开发人员在软件开发和设计时必须做出选择,割舍一部分系统 优点。如何将二者的优点相融合使其取长补短,已经成为软件界追求的目 标j 目前由于计算机网络的发展,各种移动设备普及,移动技术的广泛的应 用,加上电子商务倍受人民的青睐。一场围绕移动市场的争夺大战将越来越 激烈,同时对移动应用软件的需求也将越来越高。但移动设备的缺点是网络 连接不稳定并且网络费用较为昂贵,用户可能经常处于连接不稳定,甚至无 连接的状态下,要求移动应用程序应具备一定的离线处理能力以及离线和在 线的无缝切换能力。 为了综合利用胖客户端和瘦客户端这两种架构的优点,满足移动设备要 求,于是微软在2 0 0 4 年提出了智能客户端- 1 ( s m a r tc l i e n t ) 这一概念。它集 胖客户端和瘦客户端的大成,吸取了它们的优点,摒弃了它们的不足,取得 了很好的效果。正是因为智能客户端结合了胖客户端应用程序的丰富用户界 面特性和瘦客户端应用程序的易于部署和管理的特性,能够为用户提供响应 西南交通大学硕士研究生学位论文第2 页 更加快速的、丰富的交互式体验,因此具有重要的使用价值。并且随着 w e b 服务技术的更加广泛的应用,智能客户端通过w e b 服务调用发出请 求,而在客户端所要调用的w e b 服务业务逻辑的实现放在服务器端,因此 一方面可以为客户端瘦身,另一方面也加强了软件的隐蔽性和安全性吲。 1 2 国内外现状 2 0 0 4 年微软提出了智能客户端技术,并相继给出w i n d o w s 智能客户 端,o f f i c e ,以及移动智能客户端等解决方案。之后国内外都对智能客户端 的实际应用进行相关研究。目前,国内方面,华中科技大学、大连理工大学 对智能客户端的实际应用技术作了一定研究。华南师范大学对智能客户端的 离线技术进行了一定的研究。由于智能客户端是一个较新的概念,所涉及的 技术也比较的多,比如数据要在客户端进行缓存,网络离线和在线的无缝切 换,数据的冲突处理,客户端数据的安全,以及客户端方便快捷的自动更新 和安装部署等。这些技术有的还必须借鉴其它一些这个课题之外的技术,如 有关数据缓存的问题,要借鉴一些移动数据库方面的研究成果。移动数据库 的研究起步较早并取得了许多有价值的成果。r u t g e r s ( 罗格斯大学) 对移动数 据库技术进行了较为全面的研究,如移动计算体系结构、移动复制算法、移 动事务处理等。 科研机构方面,香港理工大学、香港科技大学对移动c a c h i n g 技术进行 了研究。中国人民大学在移动数据库方面进行了较为全面的研究并开发了移 动数据库“小金灵”。这些科研机构所取得成就都可以借鉴【2 】。 生产厂商方面,微软为了推广它的n e t , 提出了一些智能客户端解决方 案,其实现方式都是基于n e t 的。因此,在n e t 架构基础上建立的智能客 户端,微软为其提供了一些基础类库支持。a d o n e t 的d a t a s e t 为在客户 端实现数据的缓存提供了一个好的机制;u p d a t e ra p p l i c a t i o nb l o c k 是n e t 框架的另一种组件,用于服务器位置部署程序版本,客户机应用程序可以检 测、下载和使用程序的最新版本文件,并且不需要与用户交互。从而为客户 端应用程序提供了服务器端控制,节约了成本,也体现了客户端应用程序更 灵活性和可移植性的优点。 具体应用方面,智能客户端不是仅仅停留在概念上,而是己经成为技术 现实。在当前的企业应用中,已经出现了大量的智能客户端应用实例。其中 西南交通大学硕士研究生学位论文第3 页 比较有名的是美国微软、纳斯达克和p r i c e w a t e r h o u s e c o o p e r s 起构建的 e x c e l 投资者助理系统和d e l l 构建的客户集成桌面系统【4 】。 目前,s m a r t c l i e n t 技术基本成熟,但总体上来说,国外和台湾地区研究 稍早,国内正处在起步阶段。究其原因,主要是因为智能客户端技术,特别 是在离线应用中还不十分成熟,用于创建智能客户端的软件包较少,而且实 现不完整,如果要开发真正的智能客户端程序要自行编写许多代码;另外一 个原因是智能客户端涉及多种技术,国内的推广和培训工作并未完全展开; 还有个原因就是企业对于是否有需求使用智能客户端技术还处于不确定状 态,这几个原因导致国内研究滞后于国外。 1 3 课题研究的目的与意义 智能客户端其本质就是将胖客户端的传统优点与瘦客户端的可管理性优 点结合起来。要完全实现智能客户端的优点,需要考虑许多体系结构和设计 问题。智能客户端的很多关键技术问题都针对实际情况而定并且没有较为完 整的理论阐述和实现方案。 本课题的目的就是通过充分利用面向服务的体系结构,研究如何运 用n e t 技术、w e bs e r v i c e s 技术、智能客户端模式、客户端数据的缓存、 数据并发等现代软件工程方法和技术建立一个适应性强的、可进化的、易维 护的分布式应用框架。这种针对面向服务的智能客户端分布式应用框架模型 主要为应用系统提供离线工作机制、缓存服务以及通用数据库访问服务。以 模型为基础,应用程序开发者可以快速地建立分布式智能客户端应用系统。 因此智能客户端所要实现的目的是【s l : 1 可以充分利用本地资源;随着计算机速度的提高,现在的客户端速 度有了很大的提高,甚至速度不亚于服务器。因此,合理利用客户端的硬件 资源和软件资源已经成为了不争的事实。 2 可以利用网络资源;在企业内网或互联网范围内,智能客户端应用 程序能够轻松地与系统连接并与之进行数据交换。w e b 服务使智能客户端 解决方案能够利用行业标准( 如:x m l ,h t t p ,s o a p ) 来与任何类型的 远程系统交换信息。 3 支持偶尔连接的用户;无论是否连接互联网,智能客户端都可以正 常的工作。 西南交通大学硕士研究生学位论文第4 页 4 提供智能安装和更新;智能客户端应用程序可以在其运行或位于后 台时对自身进行自动更新。 智能客户端是为了兼顾瘦客户端和胖客户端的优点并引入离线功能。该 体系结构的使用需要在关键技术上进行突破,并且把它们的所有的特征进行 集成,形成一套适合于企业应用开发的框架,提供一套完整的类库,使企业 开发更容易,更适合移动应用将是重要的课题。另外,从智能客户端的发展 前景和方向来看,对智能客户端关键技术进行深入研究具有很重要的意义。 1 4 本文研究的内容 本文主要研究智能客户端相关技术以及在实际应用中的关键问题,并提 供了具体的解决方案,主要内容包括: 1 使用w i n d o w s 窗体构建智能客户端的表现层。 2 对智能客户端与w e b 服务技术进行了分析,并重点研究了这两种技 术的结合产物面向服务的智能客户端的特点与相关技术策略。 3 偶尔连接的分析与设计;特别对智能客户端离线特性所涉及到的相 关技术进行介绍。本文从网络通信策略、连接管理策略、数据存储方式、数 据同步方式等几个方面论述了如何解决智能客户端离线技术问题。 4 本文详细论述了智能客户端离线状态下数据缓存,数据的同步,数 据的安全性问题,并给出了详尽的解决方案。 5 智能客户端系统架构与部署升级方案。本文以分层的方式将智能客 户端的总体架构分为:用户表现层、业务逻辑层和数据访问层。从而使得系 统各模块之间达到了松藕合,以方便应用程序的部署和升级。 6 结合通讯管家项目背景,给出了面向服务智能客户端应用开发的实 例。运用本文的研究成果进行相关模块的原形实现,本文从应用方面详细说 明了智能客户端离线技术的实现过程,从实践角度证明了理论的可行性。 1 5 论文的组织 本文正文共分为五章,其后的内容是这样安排的: 第2 章,主要讨论了智能客户端体系架构,包括开发平台和关键支撑技 术,在此基础上构筑了智能客户端应用程序框架模型。 西南交通大学硕士研究生学位论文第5 页 第3 章,基于n e t 智能客户端关键技术的研究,包括网络连机检测算 法,数据的缓存更新策略,数据同步策略以及数据的并发冲突处理算法。 第4 章,基于智能客户端技术的通讯管家的需求分析与具体的设计。详 细分析了选择这种架构的必要性和可行性,并分析通讯管家功能要求以及其 具体的设计。 第5 章,基于智能客户端技术的通讯管家的实现。给出了智能客户端应 用程序具体的实现过程。 总结部分。对本论文的工作进行了总结,在实践中应用智能客户端技术 的研究成果和应用价值,以及随着新技术的发展对日后工作进一步完善和展 望。 西南交通大学硕士研究生学位论文第6 页 第2 章智能客户端体系结构 2 1 智能客户端技术的发展与特征 2 1 1 客户端技术的发展 随着科技的发展,计算机技术也在不断的进步。软件系统架构也从早 期的单机版应用程序发展到基于网络的客户端应用系统,实现了信息沟通与 资源共享的效果。其过程经历了传统的胖客户模式,瘦客户端模式再到智能 客户端模式。 2 1 1 1 客户服务器模式( c ii e n t s e r v e r ,c s ) c s 模式的应用程序属于胖客户端应用程序,二十世纪九十年代中期, 随着w i n d o w s 操作系统的流行,胖客户端应用程序的使用范围非常广泛。 这种模式将应用程序处理分成了两部分:一部分由用户的桌面计算机执行, 另一部分由一个集中的服务器执行。一个典型的结构包含一个或多个在客户 机上运行的应用程序,用户可以查看并操作数据、处理相应的业务规则,同 时提供一个丰富的用户界面,服务器则负责进行数据的集中管理。 胖客户端的主要优点是充分利用了客户端资源,提供了高质量、响应 迅速的用户体验,并且网络传输量小,速度快,安全性较高。但是这种结构 的应用程序有一些明显的局限性:由于应用程序是独立的并且在客户计算机 上工作,因此对其他计算机和网络上的任何服务或者用户计算机上的任何其 他应用程序所知甚少或一无所知;另外,它的一个最大缺点就是非常难于部 署和维护。因为胖客户端的应用程序都是安装在客户的计算机上,当有最新 的版本时,并非所有的客户端都会马上更新到最新的版本。随着应用程序和 客户端平台的复杂性不断增加,以可靠且安全的方式将应用程序部署到客户 计算机的难度也将不断增加。特别是部署了不兼容的共享组件或软件库,则 很有可能会发生应用程序之间的冲突,一个应用程序会很容易地破坏另一个 西南交通大学硕士研究生学位论文第7 页 应用程序,从而使得软件开发成本也比较高。以上问题使得c s 模式在某些 环境下无法很好的满足业务的需要,从而提出了b s 模式。 2 1 1 2 浏览器服务器模式( b r o w s e r s e r v e r ,b s ) b s 模式的应用程序属于瘦客户端应用程序,i n t e m e t 技术的发展使得 它成为了传统胖客户端模型的替代模型。由于基于浏览器的瘦客户端应用程 序的部署和更新是在w e b 服务器上进行的,因此它们消除了将应用程序的 任何部分显式的部署到客户端并加以管理的必要性,且每次使用的应用程序 都将是最新的。正是因为它解决了许多与应用程序部署和维护相关联的问 题,因此备受软件开发者和厂商的青睐。 然而,这种结构的缺点也是非常明显的。首先,网络必须总是通的, 断网时,应用程序就没有办法使用;其次,由于大部分逻辑都位于服务器 上,所以需要频繁地向服务器发送数据和处理请求,浏览器必须等待响应到 达,然后用户才能继续使用该应用程序,因此该应用程序的响应速度通常要 比客户;r 务器模式结构的应用程序慢得多;再次,客户端用户界面简单, 由于受制于h t m l 的限制无法像c s 模式那样使用丰富的用户界面来展示 数据。智能客户端则是在这种情况下应运而生的,它结合了c s 与b s 模 式二者的优点,在一定程度上满足了用户的需要。 2 1 1 3 智能客户端( s m a r t c ii e n t ) 智能客户端是m i c r o s o f t 基于n e t 平台推出的一项新技术,是一个联系 到互联网的设备,它代表了一种全新的开发模式。其目的是为了整合 w i n d o w s 与i n te i _ n a ,构建新型的分布式应用程序,允许用户的本地应用程 序通过w e b 服务和服务器应用程序交互,从而将以上两种结构的应用程序 的优点很好的结合在一起【6 】哪j 。下面就是这三种架构的特点:如图2 1 所 示。 智能客户端可以采用许多不同的形式和风格,根据智能客户端应用程 序所面向的平台,可以将这些形式划分为三大类: w i n d o w s 智能客户端应用程序; o f f i c e 智能客户端应用程序; 西南交通大学硕士研究生学位论文第8 页 移动智能客户端应用程序。 在实际开发中,智能客户端应用程序面向上述一种或多种平台的情况 是很正常的,那么具体的采用哪种类型,取决于用户的角色以及所需要的功 能。 胖客户端智能客户端瘦客户端 图2 一l 三种架构的特点 2 1 2 智能客户端的特征 以智能客户端为架构的应用程序由于各自的需求不同,在设计和实现 方面会有很大的不同。然而,从总体上来说,智能客户端都具有下列部分或 全部特征【3 】: 充分利用本地资源 设计一个良好的智能客户端应用程序应该能够充分利用本机的计算机 软硬件资源。如果充分的利用本地资源,可以使整个应用系统中的服务器端 的工作负荷降低,从而可以减少对服务器端的硬件要求。客户端程序也应该 能够与其它可以协同工作的应用软件进行协作,可以使客户端更加有效的工 作,进行更好的决策,提高用户的工作效率。 充分利用网络资源 智能客户端应用程序应该尽可能地通过网络连接使用来自不同的数据 与服务,它不应该是独立的应用程序,而应该构成网络分布式系统的一部 分。智能客户端应用程序的连接性质使其可以提供有价值的数据整合、分析 和转换服务,使用户可以实时地或者在一段时间内协作完成任务。 支持连线和离线的功能 智能客户端与单机版应用程序最大区别就是,具有网络连接能力,调用 西南交通大学硕士研究生学位论文第9 页 w e b 服务。通过使用w e bs e r v i c e s ,智能客户端可以存取网络中的其它系 统的商业逻辑、数据和服务。正因为使用了w e b 服务,在网络连通时,智 能客户端就会通过网络去存取w e bs e r v i c e s 提供的最新的服务和数据。 同样,智能客户端也要支持离线工作的能力。要为那些偶尔连接网络 的用户提供功能。比如,在旅行途中,可能会暂时失去无线连接,或者存在 延时和带宽问题。此时的用户也能够使用该应用程序,应用程序能够以智能 缓存的方式把数据缓存在本机器上,进行脱机工作;同时在网络连接时,通 过将请求批量发送到服务器,以便更好的使用代价昂贵的连接。否则该架构 就失去了竞争力量。 提供智能安装和更新 传统胖客户端所具有最大的问题之一就是在部署或更新应用程序的时 候,由于具有大量复杂的安装要求,并且可能通过注册组件或者在公共位置 安装d l l 来共享代码,从而导致应用程序脆弱性和更新困难。比如“d l l h e l l ”等问题使得安装和维护客户端应用程序变得十分困难和棘手。智能客 户端应用程序可以在运行时或位于后台时对自身进行自动更新,微软 的n e t 架构为开发人员部署智能客户端提供了多种选择,解决了胖客户端 的这个棘手问题。 2 2 智能客户端支撑技术 2 2 1 数据访问技术 在过去编写基于数据库的应用程序时,我们一般来说是采用d a o 、 r d o 、数据访问组件( 包括o d b c 和o l e d b ) 等技术,这些数据访问模型一 个非常重要的相似点:它们设计成只能访问已经建立连接的数据库中的数 据、实现的是紧耦合的设计模式。在此模式中,连接会在程序的整个生存期 中保持打开,而不需要对状态进行特殊处理。随着应用程序开发的发展演 变,数据处理越来越多地使用多层结构,断开方式的处理模式可以为应用程 序提供更好的性能和可缩放性。于是a d o 组件为这种实现方式提供了可 能。现在在n e t 开发环境中,采用了a d o n e t 技术,它是比a d o 更加 适合的数据访问模型。它在a d o 的基础上引入了些重大的变化和革新, 西南交通大学硕士研究生学位论文第l o 页 a d o n e t 不仅继承了a d o 的一些优点,例如与语言无关,易于编写应用 程序,减少应用程序和数据源之间的网络流量等,而且在数据结构、性能、 扩展性、互操作性等方面做了改进。 a d o n e t 借用x m l 的力量来提供对数据的断开式访问,提供对 m i c r o s o f ts q ls e r v e r 等数据源以及通过o l ed b 和x m l 公开的数据源 的一致访问。数据共享使用者应用程序可以使用a d o n e t 来连接到这些 数据源,并检索、操作和更新数据。 设计a d o n e t 组件的目的是为了从数据操作中分解出数据访问。 a d o n e t 的两个核心组件会完成此任务:d a t a s e t 和n e tf r a m e w o r k 数 据提供程序,后者是一组包括c o n n e c t i o n 、c o m m a n d 、d a t a r e a d e r 和 d a t a a d a p t e r 对象在内的组件。而d a t a s e t 以数据为中心,记录在内存中的 数据,表示一个或多个关系数据库表的对象,它公开了一个由表、行和列组 成的层次结构对象模型,另外,它还包含为d a t a s e t 定义的约束和关系。 d a t a s e t 的设计目的很明确:为了实现独立于任何数据源的数据访问。因 此,它可以用于多种不同的数据源,用于x m l 数据,或用于管理应用程 序本地的数据。此外,可以通过网络传输它所包含的记录块,而无需考虑其 中的防火墙,这是因为数据集已经是x m l 流。最后,a d o n e t 不包含对 服务器端游标的支持,这个新思路的核心是“断开连接”的客户端数据存 储,可以根据需要轻松地将其保留并序列化为x m l ,以便传递到其他层, 这正好非常适用于微软的w e bs e r v i c e s 。这两个组件通过d a t a a d a p t e r 来连 通。如图2 2 所示:a d o n e t 的体系结构。 西南交通大学硕士研究生学位论文第1 1 页 从a d o n e t 的体系结构可以看出,在数据源和数据集之间的数据交 换是通过适配器来实现的,这就意味着,许多应用程序从数据库将数据读入 数据集,然后从数据集将已更改数据写回数据库。a d o n e t 除了为离线的 数据管理提供了强大的功能,还可以通过x m l 来实现缓存数据,以及开放 式的并发冲突处理和同服务器的数据同步处理。因此利用a d o n e t 可以实 现智能客户端数据处理时所面临的缓存、并发等技术难题。 9 1 1 0 1 1 1 1 2 1 3 2 2 2 客户端与服务器的通讯技术 在n e t 平台下开发智能客户端应用程序,智能客户端有很多网络通讯 方式选择方案。微软的n e t 框架主要提供n e t e n t e r p r i s es e r v i c e s 、 m i e r o s o i t n e t r e m o t i n g 、消息队列( 也称为s m q ) 、w e b 服务四种连接方 式供使用者选择【1 4 】。每种通讯方式的特点各不相同,在选择通讯方式时要着 重考虑互操作性、脱机功能、网络通讯性能、部署以及可维护性。 2 2 2 1 n e te n t e r p ri 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 t t s 】提供对托管代码组件和应用程序的c o m + 服 务基础结构的访问。使用c o m + 服务的n e t 组件称为服务组件。服务组件 以c o m + 应用程序为宿主,必须供该应用程序访问。基于n e te n t e r p r i s e s e r v i c e s 开发的许多组件可被智能客户端使用。这些组件只能在单进程或服 务器的服务边界内使用,由于配置信息的强制性要求,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 2 n e tr e m o tin g n e tr e m o t i n g t l 6 】提供了灵活且可扩展的远程过程调用( r p c ) 机制,n e t 组件可以通过该机制进行通讯。通过n e tr e m o t i n g ,可以使用多种通讯协 议( 如h t t p 或t c p ) 、数据编码选项( 包括x m l 、s o a p 和二进制编码) 和各 种对象激活模型。它可以提供在对象之间进行通讯的快速而有效的手 段。n e tr e m o t i n g 可以通过使用显示为远程对象的代理对象,像调用本地 西南交通大学硕士研究生学位论文第1 2 页 对象一样调用远程对象。它的基础结构通过属性和方法调用处理客户端代码 和远程对象之间的交互,在此期间对在它们之间传递的数据进行编码,并且 管理远程目标对象的创建和删除。 n e tr e m o t i n g 具有用于在对象之间进行通讯的强大且可扩展的机制。 因此,对于在客户机上或服务边界内不同进程中的对象之间的通讯而言,以 及对于不同应用程序域中的对象而言, n e tr e m o t i n g 都是一种很好的选 择。但是,由于它的紧藕合性质,在某些情形下它可能并不适合。因此不是 智能客户端所选择的最佳通讯方式。 2 2 2 3 消息队列 借助于w i n d o w s 消息队列可以很容易地通过发送和接收消息,快速而 可靠地与应用程序通讯。消息处理提供了有保证的消息传递以及执行许多业 务过程的可靠方式。消息队列提供了一种可以在智能客户端应用程序内使用 的松藕合通讯机制。消息队列具有下列功能r ,7 有保证的消息传递:消息队列通过将消息存储在队列中直到其可以传 递,这样保证了即使远程系统失败或不存在,消息也能够传递。因此,与组 件之间的直接调用相比,消息受失败的影响的程度要小得多。 消息优先级化:更为紧急或重要的消息可以在不太重要的消息之前收 到,从而有助于保证为关键应用程序提供足够的响应时间。 脱机功能:在消息因为客户端脱机而无法传递情况下可以将它们存储 在待发队列中,并且在客户端重新联机时自动传递它们。用户在无法访问目 标队列时可以继续执行操作。 事务性消息处理:消息作为事务的一部分发送。这样,可以发送多个 相关消息,或者应用程序设计为参与分布式事务,并且确保所有消息都按顺 序传递并且只传递一次。如果事务内发生任何错误,则整个事务都将被取 消,并且不会发送任何消息。 安全性:消息队列组件所基于的消息队列技术使用w i n d o w s 安全性来 确保访问控制的安全、提供审核以及对您的组件发送和接收的消息进行加密 和身份验证,对于需要提供基于消息访问的服务交互情况,消息队列是一种 很好的选择。但是由于消息队列的平台要求使它与其他系统之间的互操作性 较差。 西南交通大学硕士研究生学位论文第1 3 页 2 2 2 4w e b 服务 w e bs e r v i c e s 1 9 l 【2 0 1 通过使用x m l 消息处理启用数据交换和应用程序 逻辑远程调用,使数据能够通过防火墙,并在异类系统之间移动数据。虽然 数据和应用程序逻辑的远程访问不是一个新概念,但以松耦合的方式进行这 种操作却是一个全新的概念。w e bs e r v i c e s 的客户端和w e bs e r v i c e s 之间 的唯一假设是接收者理解其接收到的消息。这样,用任何语言编写的、使用 任何组件模型和在任何操作系统上运行的程序都能够访问w e bs e r v i c e s 。 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 b s 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 e h m e n t s 。凭借其高度松耦合的特性,可使开发人员忽略 不同系统平台、开发平台、开发工具对软件开发所带来的影响。w e b s e r v i c e s 有利于系统的集成和再利用。 w e bs e r v i c e s 具有高度的互操作性使w e b 服务能与各种各样的应用程 序通讯;使用广泛采用的标准意味着它们通常只须进行最低限度的额外配 置,就可以通过网络基础结构和防火墙;松耦合性,使得w e b 服务具备对 象的良好封装性,w e b 服务的内部实现由服务提供者负责,对外只暴露出 符合规范的接口定义,提供请求者通过对服务接口的访问就可以调用w e b 服务,而不必关心服务的实现细节。只要w e b 服务的接口信息不变,无论 w e b 服务的实现如何改变,服务请求者都不会受到任何影响。 正是由于w e bs e r v i c e s 具有以上特点,因此w e b 服务成为智能客户端 进行网络通讯的最佳方案。 2 2 3 客户端数据缓存 、智能客户端一个非常重要的特征就是用户能够离线操作,这就从另一 个方面说明,用户所需要的数据必须能够在本地机器上进行存储,那么客户 端应用程序怎样缓存数据? 以及采用何种格式保存缓存数据? 下面针对这个 问题进行阐述【2 】【6 j 。 西南交通大学硕士研究生学位论文第1 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 提供的“隔离存储区 来缓存数据。隔离存储区的基础类库在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 tc 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 兆,但可以通过配置文件修改存在空间大小。 对于需要长期缓存的数据,则必须要借取于持久性的存取介质。在设 计智能客户端应用程序时,可以以x m l 文件的形式保存到本地的硬盘中, 或其它介质中。另外还可以使用数据库缓存数据,数据库提供了一个很好的 数据缓存平台,但需要特定软件的支持。 选择那种缓存方式,取决于用户对应用程序的需求。原则就是:客户 端缓存的敏感数据要求确保它的安全,只有有权限访问的用户才能够访问; 能够区别成功与服务器进行同步的数据和还没有同步的数据,这样可以使应 用程序很容易地检测和处理数据冲突:能够有一种好的并发冲突处理的机 制。 2 2 4 数据的同步技术 智能客户端的特征就是客户端用户能够在离线的状态下工作,这就要 求先把数据缓存在本地,在本地对数据进行操作,然后与服务器进行数据同 步。根据智能客户端的体系结构,其同步方式可分为两类c :l 】以数据为中心 西南交通大学硕士研究生学位论文第1 5 页 的同步方式和面向服务同步方式。使用以数据为中心的同步方式的应用程序 具有一个在客户端上本地安装的关系数据库管理系统( r d b m s ) ,并且使用 该数据库系统的内置功能将本地数据的更改传回服务器,处理同步过程,并 检测和解决任何数据冲突。使用面向服务1 2 2 1 1 2 3 1 方式的应用程序将信息存储在 消息中,并且当客户端脱机时将这些消息排列到队列中。在重新建立连接以 后,排队的消息将被发送到服务器进行处理。 本文采用的数据同步方式是面向服务同步方式。用户在离线的情况下所 作的对数据的操作( 主要是对数据的创建,修改和删除操作) ,在联机后自 动的回传给服务器端。这个操作过程是通过w e bs e r v i c e s 来执行的,它是基 于松耦合的方式以及x m l 和h t t p 的标准协议连接到服务器端,并且以消 息队列技术来实现操作的先后顺序。 2 3 本章小结 本章首先介绍客户端应用系统的发展历程,可以看出智能客户端是随着 信息技术的发展为了满足新的功能与性能需求而提出的一项新的应用技术。 同时本章又对智能客户端与其使用的支撑技术进行了分析阐述。其中对智能 客户端在与w e b 服务通讯及支持偶尔连接方面所能够选用的各种技术进行 了分析与比较。 西南交通大学硕士研究生学位论文第1 6 页 第3 章基于n e t 智能客户端关键技术研究 智能客户端应用程序是在胖客户端应用程序和瘦客户端应用程序的基 础之上产生和发展起来的。要体现智能客户端的优势,就必须要解决前面两 种架构固有的问题:怎样充分的利用本地资源;如何高质量的利用互联网; 如何提高与普通桌面应用程序和系统的集成;如何使客户端的部署和更新方 便、快捷和高效。这些问题目前还没有那个软件生产厂商提供完全的解决所 有问题的方案。于是在2 0 0 4 年微软提出了智能客户端这样一个思想并给出 了一些相关的实例。智能客户端正是为了满足这些需求,因此就有了它用武 之地。 智能客户端要能够顺利的运行,包含有网络服务连接管理、数据缓存

温馨提示

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

评论

0/150

提交评论