已阅读5页,还剩61页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
智能客户端的应用研究 摘要 智能客户端综合胖客户程序和瘦客户机程序的优点,克服它们的缺点,具有 充分利用本地软件和硬件资源、利用网络资源、支持联机脱机操作、提供程序 智能部署和自动更新、支持多种客户端设备等特征。目前它是构建 e r p ( e n t e r p r i s er e s o u r c ep l a n n i n g ) 、企业移动等应用系统的最佳选择。 m i c r o s o f t n e tf r a m e w o r k 、w i n d o w sf o r m s 和a s p n e tw e b 服务为构建智 能客户端应用系统提供了强大的平台。n e tf r a m e w o r k 解决了动态链接库版本 冲突问题,简化了应用系统部署。w i n d o w sf o r m s 为方便构建用户界面提供了 大量组件。a s p n e t w e b 服务简化了w e b 服务使用。但是,在设计智能客户 端时设计者仍然会遇到很多挑战。如何实现联机,脱机? 如何自动更新数据和应 用程序? 数据安全性如何? 如何解决并发冲突? 一个典型的智能客户端体系结 构是什么样的? 文中构建了一个安全可靠的智能客户端的典型体系结构,研究了智能客户端 的关键技术,并以高校档案管理系统为实例说明这个典型结构及关键技术的实 现。为实现联机脱机操作、自动数据更新、安全性、程序自动更新等功能,文 中对数据库表、存储过程、触发器,类型化数据集、进程定时器,后台线程, 外观模式和观察者模式、乐观式并发冲突、应用程序部署和自动更新等关键技 术进行了深入讨论。 经过测试表明,采用文中的智能客户端典型结构及相应的实现技术,高校档 案管理系统实现了安全可靠、易使用的目的。 关键字:智能客户端;高校档案管理系统;n e t 框架;w e b 服务;设计模式 r e s e a r c ho nt h es m a r tc l i e n ta p p l i c a t i o n a b s t r a c t s m a r tc l i e n ts y n t h e t i z e sa d v a n t a g e so f r i c hc l i e n ta p p l i c a t i o na n dt h i nc l i e n t a p p l i c a t i o n , a b a n d o n st h e i rd i s a d v a n t a g e s i tc a nm a k ef u l l yu s eo fl o c a ls o f t w a r e , h a r d w a r ea n dn e t w o r kr e s o u r c e s ,a n ds u p p o r t so n l i n e o f f i i n e ,i n t e l l i g e n td e p l o y m e n t , a u t o m a t i c a lu p d a t ea n dm u l t i p l ec l i e n td e v i c e s s m a r tc l i e n ti sc u r r e n t l yt h eb e s t s o l u t i o no fb u i l d i n gt h ee r p ,e n t e r p r i s em o b i l ea p p l i c a t i o n s ,e t e n em i c r o s o f t n e tf r a m e w o r k ,w i n d o w sf o r m sa n da s e n e tw e bs e r v i c ei s ag r e a tp t a t f o r mf o rb 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 n s t h e n e tf r a m e w o r ks o l v e s d l l v e r s i o n i n gc o n f l i c t sa n ds i m p l i f i e sd e p l o y m e n t w i n d o w sf o r m sh a sap o w e r f u l l i b r a r yo fu s e ri n t e r f a c ec o m p o n e n t s h o w e v e r , t h e r ea r es t i l ln u m e r o u sd e s i g n c h a l l e n g e st h ed e s i g n e r sw i l ln e e dt os o l v ew h e nb u i l d i n gt h e i rs m a r tc l i e n t a p p l i c a t i o n s h o wt oa c h i e v eo n l i n e o f f i i n e ? h o wd ot h ea p p l i c a t i o na n di t sd a t a u p d a t ea u t o m a t i c a l l y ? w h a ta b o u td a t as e c u r i t y ? h o wt os o l v et h ep r o b l e ma b o u t c o n c u r r e n c yc o n f l i c t ? w h a ti st h et y p i c a ls m a r tc l i e n ta r c h i t e c t u r e ? t h et y p i c a ls m a r tc l i e n ta r c h i t e c t u r ew i t hs a f e t ya n dr e l i a b i l i t yi sb u i l ii nt h i s d i s s e r t a t i o n ;t h ek e yt e c h n o l o g i e sf o rs m a r tc l i e n th a sb e e ns t u d i e d ;a ne x a m p l e - - u n i v e r s i t ya r c h i v e sm a n a g es y s t e m ( u a m s a sb e e ns h o w n i no r d e rt oe x p l a i n h o wt oa p p l yt h et y p i c a la r c h i t e c t u r ea n dt e c h n o l o g i e si n t oa p r o j e c t f o rc a n i n go u t o n i i n e o f f l i n e 、d a t au p d a t i n ga n da p p l i c a t i o nu p d a t i n ga u t o m a t i c a l l y , s a f e t y ,a n ds o o n , t h ed i s s e r t a t i o ne x p a t i a t e sa b o u td a t a b a s et a b l e ,s t o r ep r o c e d u r e , t r i g g e r , t y p e d d a t a s e t , p r o c e s st i m e r , b a c k g r o u n dt h r e a d ,f a q a d e ,o b s e r v e r , o p t i m i s t i cc o n c u r r e n c y , a p p l i c a t i o nd e p l o ya n du p d a t ea u t o m a t i c a l l y t h eu a m sw h i c hu s i n gt h es m a r tc l i e n tt y p i c a la r c h i t e c t u r ea n dt h ek e y t e c h n o l o g i e sh a ss h o w n i t ss a f e f y , r e l i a b i l i t y , a n de a s yu s a b i l i t yb yt h et e s t k e yw o r d s :s m a r tc l i e n t ;u n i v e r s i t ya r c h i v e sm a n a g es y s t e m ;n e tf r a m e w o r k ; w e b s e r v i c e ;d e s i g np a t t e r n 插图目录 图2 - 1 面向服务和面向数据的体系结构4 图2 2 三层结构6 图2 3 智能客户端典型的多层结构6 图2 4 智能客户端组件图7 图2 5 智能客户端部署图7 图3 1 n e tf r a m e w o r k 结构图8 图3 2a d o n e t 组件9 图3 3r e c o r ds e t 模式的类图1 2 图3 4 安装项目的结构2 8 图3 5w e b 安装项目的结构2 8 图4 1 高校档案管理系统的活动图3 1 图4 2 部门档案员在线状态的主界面3 2 图缸3 表h z 的结构3 2 图4 4 用户表内容信息3 3 图4 5 设置存储过程参数的属性3 6 图4 6 表g e t c o n f l i c t s 和表g e t h z l i s t 结构一致3 7 图4 7 观察者模式结构图4 3 图4 8u a m s 使用观察者模式的部分结构4 4 图4 9 冲突窗体示例5 3 插表目录 表3 - 1 与w e b 服务一起部署的项目2 2 表3 2 配置a u c 的主要属性2 7 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的研究成果。 据我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写 过的研究成果,也不包含为获得 盒目b 王些盔堂 或其他教百机构的学位或证书而使 用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明 并表示谢意。 学位论文作者签名垂谚 签字隗坤年,绸弓届 学位论文版权使用授权书 本学位论文作者完全了解金g g 王些盍堂有关保留,使用学位论文的规定,有权保留 并向国家有关部门或机构送交论文的复印件和磁盘,允许论文被查阅和借阅。本人授权金 自b 王些盔堂可以将学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、 缩印或扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后适用本授权书) 学位论文作者签名考碳 签字日期:纠年户月孑1 日 学位论文作者毕业后去向: 工作单位: 通讯地址: 导师签名: 签字日期:夕1 年,月3 1 日 f j 电话: 邮编: 致谢 衷心感谢我的导师李心科副教授,在论文选题、写作和修改过程中,得到了 导师的指导、关心和帮助。李老师认真严谨的治学态度、渊博的学识、热心真 诚的人格魅力,给我留下深刻印象,是值得我学习的榜样。 感谢计算机学院的老师和领导对我的热情帮助。 感谢我的爱人,是他的帮助与支持使我完成硕士阶段的学习。 感谢我可爱的女儿,是她让我觉得生活的甜蜜与幸福。 感谢我和爱人双方的家人,是他们给了我学习上的支持。 感谢王浩老师及我的同学林听在我论文完成的最后阶段给予的帮助。 感谢所有关心和帮助过我的老师、同学和朋友。 作者:李侠 2 0 0 7 年1 0 月 1 3 研究背景 第一章引言 自二十世纪九十年代中期,以m i c r o s o f tw i n d o w s 操作系统为代表的胖客户 机应用程序的数量急剧增长。胖客户机应用程序( r i c hc l i e n ta p p l i c a t i o n ) 指使用 w i n d o w s 或s w i n g 技术设计的具有丰富用户界面的应用程序【”。设计胖客户机 程序的目的是为了充分利用本地软硬件资源。胖客户机通常提供了高质量、快 响应的用户体验。但是,在客户端计算机上应用程序的部署、更新、维护和卸 载等行为遇到了巨大阻碍:应用程序安装时要求在注册表中注册类和类型库, 应用程序除了自身通常还包括位于硬盘上的共享文件以及注册表中包含的配置 设置、不同版本的动态链接库文件发生冲突等。 基于h t e m c t 的瘦客户机应用程序恤i nc l i e n ta p p l i c a t i o n ) 成为了传统胖客户 机程序模型的替代方案【2 1 。瘦客户机应用程序是在中央w e b 服务器上部署和更 新的。因此,它们消除了将应用程序显式部署到客户计算机并进行维护的问题。 瘦客户端应用程序也具有一些缺点。浏览器必须总是处于网络连接状态,这意 味着移动用户在断开连接时将无法访问应用程序。应用程序的大部分逻辑和状 态位于服务器上,瘦客户机会频繁地向服务器发回数据和提出请求,浏览器必 须等待响应到达,然后用户才能继续使用该应用程序;因此,该应用程序的响 应速度通常要比胖客户机应用程序慢得多。该问题在低带宽或高延迟的情况下 会被恶化,可能导致应用程序可用性和使用效率下降。 胖客户机程序和瘦客户机程序各有优势,它们无法相互取代。例如,对于以 浏览为主、录入简单的应用程序,瘦客户机程序具有很大优势,而对于交互复 杂的e r p ( e n t e r p r i s er e s o r u c ep l a n n i n g ) 等企业级应用,瘦客户机程序则很难 胜任。从全球范围看,成熟的e r p 产品大多数采用二层或三层胖客户机程序, 瘦客户机程序的e r p 产品并不多见。智能客户端( s m a r tc l i e n t ,下面有时会简 称为s c ) 集成了胖客户机程序和瘦客户机程序的优点、摒弃两者的缺点,它将是 e r p 技术发展的方向1 3 】。 企业移动应用正在从支持简单的电子邮件转向更为复杂和强大的应用程序, 即通过实时数据和信息来驱动企业核心业务。构建企业移动应用已成为全球范 围内不可逆转的趋势和潮流。目前业界有两种构建移动应用程序的主流方案【4 j : 一种是智能客户端,它可支持脱机联机访问,可与企业数据定期更新整合;另 一种是只支持在线访问的无线网络应用,它为移动设备提供基于浏览器的实时 数据。由于无线网络覆盖范围有限、带宽资源不足以及移动办公设备待机时间 过短等原因制约企业移动应用发展,因此在目前的无线网络环境下,智能客户 端模式是最佳选择。 智能客户端应用程序是在2 0 0 4 年提出的采用面向服务思想的一种新的程序 体系结构 2 p l 。智能客户端对胖客户程序和瘦客户机程序的特点进行择优除劣, 使其具有下列特征 6 1 :利用本地软件和硬件资源、利用网络资源、支持联机脱 机操作、提供程序智能部署和自动更新、支持多种客户端设备等。 1 2 研究意义 实现智能客户端需要考虑许多体系结构和实现技术问题。目前文献对智能客 户端体系结构只是概略的描述,对实际开发不具有可操作性;对关键技术的介 绍比较宽泛、不完整,特别是针对智能客户端的某些关键实现技术基本没有提 及。 本文将从智能客户端的体系结构及联机脱机、自动数据更新、并发冲突、 安全性、系统部署、应用程序自动更新等关键技术方面进行完整的研究。特别 是对n e t 平台的智能客户端,本文将完整详细地介绍其关键的实现技术。 对智能客户端的典型结构及其关键技术的研究将为智能客户端的设计者提 供有意义的参考,尤其对采用n e t 平台架构的开发者更具有较强针对性。从智 能客户端发展的前景来看,对智能客户端的应用研究是必要的。 1 3 研究状况 微软公司为智能客户端开发提供了基于n e tf r a m e w o r k 技术的解决方案。 一些大学和厂商也对智能客户端的应用进行了研究和开发,如华中科技大学、 大连理工大学、华南师范大学、i b m 公司、新中大软件公司、金蝶软件公司等。 i 酬公司开发出了基于j 2 e e 平台的智能客户端产品i b mw o r k p l a c ee l l e n t t e c h n o l o g y 7 】。新中大软件公司开发了基于智能客户端技术的系列产品: g s o f t g 6 和a 3 ,前者是基于j 2 e e 平台的,后者是基于n e t 平台的1 3 】。金蝶软 件公司大型的企业应用套件e a s ( e n t e r p r i s ea p p l i c a t i o ns u i t e ) 采用了基于 j 2 e e 平台的智能客户端方案1 8 】。国家计生委开发的计划生育管理系统也是基 于n e t 平台的智能客户端系统,目前该系统运营范围已经覆盖全国2 0 多个省【5 】o 1 4 研究内容 本文研究开发智能客户端的关键问题,并提出解决方案,主要内容包括: ( 1 ) 在分析典型三层结构体系和面向服务体系结构的基础上,根据智能客 户端的特点,提出智能客户端的典型体系结构,并确定了各层的主要功能和主 要组件。 ( 2 ) 智能客户端最突出的特点是联机脱机操作。为实现联机脱机操作功 能本文从网络连接方式、同步管理方式、数据缓存机制、数据管理方法等进行 2 分析和研究,并给出相应的解决方案。 ( 3 ) 自动数据更新是智能客户端的核心功能,此功能实现需要文中提出的 智能客户端的典型体系结构的所有层配合,因此在开发实例中详细讨论了它的 实现。本文在相关技术的研究基础提出了一个包括数据库表、存储过程、触发 器,类型化数据集、进程定时器、后台线程等设计技术的解决方案。从目前所 能见到的国内外文献中看,关于自动数据更新方面还没有比本文更详实的描述。 ( 4 ) 由于智能客户端是一个分布式系统,因此客户端提交数据到服务器端 更新时可能发生并发冲突。本文在研究冲突产生机制、冲突协调策略后,提出 了一个乐观式并发冲突解决方案。 ( 5 ) 在目前不安全的网络环境下安全性是系统成败的关键。本文研究了智 能客户端有关安全性方面的身份验证,授权、保护敏感数据、代码访问安全等 问题,并提出相应的解决方案。 ( 6 ) 智能客户端除了数据可以自动更新,应用程序本身也可以自动更新。 本文研究了智能客户端部署和更新方法,并提出一个使用方便、功能强大的程 序自动更新方案。 ( 7 ) 在高校档案管理系统开发实例中,详细描述了本文提出的s c 典型体 系结构、联机脱机、自动数据更新、安全性等关键实现技术。 除了与n e t 平台相关的具体实现技术外,本文研究的内容同样适合设计基 于j 2 e e 架构的智能客户端。 1 5 论文组织 本论文由五章组成: 第一章绪论,介绍了课题研究的背景、意义、状况、内容及论文组织结构。 第二章智能客户端的典型体系结构,首先介绍偶尔连接程序的两种体系结 构,然后根据典型三层体系结构和面向服务体系结构提出智能客户端的典型多 层体系结构。 第三章智能客户端关键技术,首先介绍n e tf r a m e w o r k 平台和a d o n e t , 然后描述用于脱机联机、数据自动更新、并发冲突处理、安全性、系统部署、 应用程序自动更新等关键技术。 第四章智能客户端技术在高校档案管理系统中的应用,在介绍采用智能客 户端技术开发u a m s ( u n i v e r s i t y a r c h i v e sm a n a g es y s t e m ) 的必要性和u a m s 的概 要操作流程之后,以u a m s 为实例自下而上对s c 组件图逐层描述有关联机脱机、 自动数据更新、安全性等关键技术的实现。 第五章结束语,对全文进行总结,并对下一步的工作进行展望。 第二章智能客户端的典型体系结构 软件体系结构( s o f t w a r ea r c h i t e c t u r e ) 是对一个软件系统的所有予系统和组 件( c o m p o n e n t ) ,以及它们之间的关系的描述n 体系结构可以具有详细程度不 同的描述层次。通常可以把体系结构分成逻辑体系结构和物理体系结构 【9 】【1 0 1 1 儿】1 1 2 1 。逻辑体系结构主要确定系统的功能特性,是根据系统的功能需求来 驱动的,在统一建模语言u m l ( u n i f i e dm o d e l1 a n g u a g e ) 中用来描述逻辑体系结 构的方式有用例图、类图、活动图、顺序图等。物理体系结构则主要涉及非功 能特性,如可靠性、兼容性、资源的使用和系统的部署等,u m l 中主要用组件 图和部署图描述物理体系结构。 本章将首先介绍穰衣蓬尝疆脯q 两种体系结构,然后根据典型三层体系结 构和面向服务体系结构提出智能客户端典型的多层体系结构。 2 1 偶尔连接程序的体系结构 虽然现在网络互联程度越来越高,然而,在许多情况下,并不能保证我们无 时无刻都能维持连接。由于网络带宽限制或网络正在进行维护等原因,应用程 序可能无法在所需的时间内访问网络资源,所请求的服务可能繁忙、停止运行 或者暂时不可用。如果应用程序无法及时地通过网络连接到到网络资源,但仍 能够让用户在脱机时继续使用此应用程序进行有效地工作,而且用户仍然能够 像连接时样方便的操作,这样的应用程序称为偶尔连接的应用程序1 2 l 。瘦客 户机程序和智能客户端程序都是基于w e b 技术的应用系统,但只有智能客户端 是偶尔连接的应用程序。偶尔连接的程序有两种体系结构:面向服务和面向数 据。如图2 1 所示。 l j , t l l 魑 l 务o 咤a 国 图2 - 1 面向服务和面向数据的体系结构 2 1 1 面向服务体系结构 面向服务体系结构( s o a :s e r v i c e o r i e n t e d a r c h i t e c t u r e ) 是为了解决i n t e m e t 境下业务集成的需要,通过网络连接能完成特定任务的独立功能实体的一种软 4 件体系结构,它以一种更广泛的,更灵活的方式共享分布在网络中的各种业务功 能【1 3 l 【1 4 】。w e b 服务是与软件提供商的软件平台和产品相联系的s o a 的实现【1 4 1 。 采用s o a 的智能客户端在客户脱机时,将信息存储在消息队列中或本地x m l 文件中。客户端联机后,如果脱机时信息是保存在消息队列中的,则信息直接 将被发送到服务器进行处理,如果消息保存在x m l 文件中,则应用程序通过调 用w e b 服务,把脱机后更改的数据同步到服务器。这种方法的优点是在客户端 不需要本地关系数据库。这意味着可以将该方法应用于多种客户端类型,包括 只具有少量处理能力的客户端,如移动电话。该方法特别适合在i n t e r n e t 和 e x t r a n e t 环境中工作的程序。该方法的主要缺点是设计者需要编写更多的代码, 以便存储和转发消息以及检测应用程序何时联机或脱机,同时,这也意味着设 计者具有更多的灵活性。 2 1 2 面向数据体系结构 面向数据的体系结构需要在客户端安装关系数据库管理系统( r d b m s ) ,如 s q l s e r v e r 个人版或s q l s e r v e r 桌面引擎( m s d e ) 。这种设计利用数据库内置功 能将本地更改的数据回传给远程数据库服务器,而且能够进行同步处理、检测 和解决数据冲突等。这种方法的缺点是服务器上的数据库与客户端上的数据库 之间的耦合性较强,对服务器上数据库结构的更改直接影响客户端数据库结构 和应用程序。这使得对客户端数据库结构和客户端应用程序或服务器端的数据 库结构更改交得很困难。 2 2 智能客户端逻辑体系结构 根据传统的三层结构体系和面向服务体系结构本文提出了智能客户端典型 体系结构,也称为智能客户端逻辑体系结构,如图2 2 所示。三层结构【1 】【1 5 l 指: 表示层,业务层( 或称域层) 和数据存取层( 或称数据源层) ,如图2 - 3 所示。 表示层处理用户与软件的交互,它可以是简单的命令行、胖客户界面或瘦客 户界面。表示层的主要职责是向用户显示信息,接受用户输入的命令。数据存 取层,对大部分企业应用来说,由于需要一个数据库进行数据的持久保存,所 以在面向对象的程序设计过程中这一层主要用于数据的查询、更新、插入、删 除。业务层包括企业的具体业务规则、有效性验证、计算等。 为了使上层调用下层简单,可对下层使用f a c a d e 模式( 外观模式) ,使下层提 供一个被集中调用的接口,当然对一些高级调用上层也可以绕过f a c a d e ,而直 接调用f a c a d e 下面的类【1 6 l 【1 7 1 1 8 】【19 1 。 业务层和数据存取层必须不依赖表示层,也就是说在这两层的代码中不能调 用表示层中定义的函数,这样就可以为系统更换不同的表示层【1 】o l 耩窿 l i t 鼻宦 i il t 鬈存t 窿 i b 图2 - 2 智能客户端典型的体系结构图2 - 3 三层结构 由于智能客户端系统由服务器端w e b 程序和客户端应用程序组成,而且客 户端需要通过服务器端w e b 程序( 即w e b 服务) 访问远程数据库,所以在传 统三层结构和面向服务体系结构基础上设计出s c 典型的体系结构,如图2 2 所 示。此结构由三大部分组成:服务器端数据库、服务器端w e b 程序和客户端应 用程序。数据库设计主要关注瞬态数据表结构、触发器、存储过程等。服务器 端w e b 程序分成两层:w e b 服务层和数据存取层。服务器端数据存取层主要 关注并发冲突处理、构建类型化数据集、读取只读引用数据、发送和接收瞬态 数据等,这一层是服务器端的核心层。w e b 服务层向外部提供验证服务和数据 服务。客户端应用程序由四层结构组成,它与传统三层结构相比,增加了w e b 服务代理层,此层的目的是当客户端访问远程w e b 服务时,只需要访问代理层 而不需要具体知道w e b 服务所在的服务器位置及实现。在集成开发环境 v s n e t ( v i s u a ls t u d i o n e t ) 环境中通过在设计阶段对项目添加w e b 引用自动 生成此代理层,从而大大简化了w e b 服务的使用。客户端应用程序最上面三层 与传统三层结构功能相似。客户端数据存取层设计是业务层的数据源,主要功 能是启动应用程序时更新本地缓存的数据、程序运行期间定时自动更新本地数 据、解决并发冲突等。为了使为了使表示层中的多个窗体能方便获取数据源的 变化,这一层主要使用了观察者设计模式。 本文提出的智能客户端典型的体系结构实质是多层结构化模式1 1 0 】 ( m u l t i l a y e ra r c h i t e c t u r ep a t t e r n ) 在智能客户端的应用,因此它具有多层模式 6 诸如分治、提高内聚、降低耦合、提高抽象层次、提高可重用性、灵活性、可 移植性、可测试性等优点。因此,使用这个典型体系结构可以构建一个稳定、 可靠、易维护的智能客户端系统,此结构中各层设计的主要内容和关键技术将 在第三章中详细阐述。 2 3 智能客户端物理体系结构 组件图用来描述软件的各种组件以及它们之间的依赖关系,这些组件是那 些在逻辑体系结构中定义的概念和功能在物理体系结构中的实现。部署图描述 了所有硬件单元及在每个硬件单元上执行的软件的结构。智能客户端的组件图 和部署图分别如图2 4 、图2 5 所示。 佩 豇囝午 螂瞄硐画 瞄硐l 【 貂i i 域 舻,藿骊i 蛳瞒螂拍 :i 基卧、目 i c = = = 了i 口l、一 蜘:一tl 蜒np 船i 拍。 劂i 蛳、压面 i c = = = j 口l l 触目l j 目嗣j l 吕吕i 。1 r 1 图2 - 4 智能客户端组件图 图2 - 5 智能客户端部署图 图2 - 4 显示了智能客户端通常必需的几个公共组件,第五章将详细简介这 几个组件的设计。w e b 服务代理层中的r e f e r e n c e s c s 是由v s n e t 自动生成的, w e b s e r v i c e s l a y e r s c s 是为了简化上层对远程w e b 服务访问按照f a c a d e 模式而 创建的一个组件。图2 5 中的客户端应用程序是由图2 - 4 中的最上面四层构成的。 w e b 服务器上部署着w e b 服务层及数据存取层中的组件。在中小企业中w e b 服务器、数据库服务器和应用程序更新服务器通常都是部署在同一台硬件服务 器上。 7 第三章智能客户端关键技术 本论文主要研究基于n e t 平台的智能客户端,因此下面将首先介绍n e t f r a m e w o r k 及支持智能客户端的核心类集合a d o n e t ,然后描述用于脱机,联 机、数据后台自动更新、并发冲突处理、安全性、系统部署、应用程序自动更 新等关键技术。 3 1 n e tf r a m e w o r k m i c r o s o f tw i n d o w s n e tf r a m e w o r k 是用于构建和运行w e bs e r v i c e 、w e b f o r m 和w i n d o w sf o r m 等应用程序的组件集合。智能客户端通过w e bs e r v i c e 和w i n d o w sf o r m 构建。这些组件使用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 o :d , ( s i m p i eo b j e c ta c c e s sp r o t o c 0 1 ) 和唧( h y p e r t e x tt r a n s f e rp r o t o c 0 1 ) 等标 准的、独立于平台的协议通过网络共享数据和功能,因而可以很方便的集成起 来。其结构如图3 - 1 所示【捌。 图3 1 n e t f r a m e w o r k 结构图 n e tf r a m e w o r k 是建立在w i n d o w s 操作系统之上,由许多组件组成,其中 最重要的组件是公共语言运行库c l r ( c o m m o nl a n g u a g er u n t i m e ) 。c l r 是n e t 的基础,相当于j a v a 世界中的j a v a 虚拟机j v m ( j a v av h t u a lm a c h i n e ) 。j a v a 代码利用j v m 可以运行在多种操作平台上,而n e t 代码使用c l r 只能运行在 w i n d o w s 平台上。c l r 提供一些核心服务( 如内存管理、线程管理和远程处理) , 并对代码强制实施严格的类型安全验证,通过严格类型验证和代码验证可以提 高代码的可靠性。以c l r 为目标的代码称为托管代码( m a n a g e dc o d e ) ,而不以 c l r 为目标的代码称为非托管代码,非托管代码可访问操作系统的底层功能, 可使用c + + 语言来编掣2 1 1 1 2 2 1 1 2 3 1 1 2 4 1 。 c l r 上一层的f r a m e w o r k 的基本类库,相当于m f c 和a t l 。这些类支持 如下功能:基本的输入输出、字符串操作、安全管理、网络通信、线程管理、 文本管理、反射、集合及其它功能。 数据类和x m l 类层是对基本类库的扩展,用来支持数据管理和x m l 操作 ( e x t e n s i b l em a r k u pla n g u a g e ) 。 8 最项层是用于三种不同技术的类:w e bs e r v i c e s 、w e bf o r m s 和w i n d o w s f o r m s 。w e bs e r v i c e s 包括的类可用于支持轻量级的分布式组件,因为w e b s e r v i c e s 遵循h t t p 和s o a p 标准,它可以穿越企业防火墙,这些组件可以即插即 用。w e bf o r m s 用于快速开发基于w e b 的图形用户界面( g u i :g r a p h i c a lu s e r i n t e r f a c e ) 应用程序。w i n d o w sf o r m s 用于开发本地的w i n d o w sg u i 应用程序。 智能客户端的核心是管理数据,n e tf r a m e w o r k 中管理数据的任务由数据 类a d 0 n e t 执行。a d o n e t 支持断开式连接方式,这种方式表示只有当客户 端需要访问或者更新数据时才会连接到数据库,它特别适合w e b 应用程序。同 持续式连接方式相比,前者可以使应用程序为更多的用户提供服务。为了支持 数据管理a d o n e t 提供了两个主要的组件:数据集d a t a s e t 和n e t 数据提供 者。图3 2 展示了a d o n e t 组件1 2 5 1 1 2 6 1 。 图3 - 2a d o n e t 组件 数据集是一个集合,包含了表、行、列、约束( 例如主键和外键约束) 以 及表之间存在的关系。数据集在内存中临时存储从数据库中获取的记录,应用 程序可以直接处理内存中的数据集记录,而不必一次又一次地连接到数据库 i 冽。数据集在智能客户端开发中的重要作用将在3 4 节详细讨论。 n e t 数据提供者担当应用程序和数据源之间的一座桥的角色;它用来与数 据源建立连接、执行一组命令、从数据源获取结果、更新数据源内容。通过不 同类型的数据提供者,n e t 可以访问m ss q l s e r v e r 、m s a c c e s s 、o r a c l e 等。 3 2 数据缓存 为了确保应用程序在脱机时能继续工作,要求客户端提供脱机时能继续工作 所需的数据,这就需要在客户端缓存数据。在某些情况下,缓存数据是为了提 高应用程序的性能,但多数情况下,缓存数据是为了满足偶尔连接的用途。缓 存的数据必须与服务器端对应的数据保持一致。 3 2 1 数据分类 智能客户端处理的数据分为两类:只读引用数据( r e a d o n l yr e f e r e n c ed a t a ) 9 和瞬态数据( t r a n s i e n td a t a ) 。通常情况下,需要以不同的方式处理这些类型的数 据。 只读引用数据指用户在客户端只引用而很少对其进行更新、插入或删除等操 作的数据,如高校档案管理系统中的用户类型、档案类型、密级、保存期限等。 客户端可以比较放心地缓存这类数据。在客户端存储和使用这种数据,可以减 少需要客户端和服务器端之间传输的数据量,减少网络传输负载,改善应用程 序的性能,帮助实现脱机功能。由于数据是只读的,所以在应用程序中不需要 跟踪数据的变化。只读引用数据可以由管理员通过应用程序进行更改或者由数 据库管理员直接更改。当只读引用数据由管理员更改后,普通用户如何得到最 新的数据? 采用的方法有两种:一种是推模型即服务器在更改数据之后主动把 数据推向客户端,另一种是拉模式即客户端按照特定的时间间隔或在执行某些 操作之前检测数据是否发生改变,若改变则从服务器端获取最新数据。在某些 情况下,可以把以上两种方法相结合使用,例如当客户端连接到服务器时,服 务器发送警告通知客户端更新可用,然后客户端从服务器拉数据。 瞬态数据指可以在服务器端和客户端上都可以进行更改的数据。用户可以 对瞬态数据添加和修改,这就要求在某个时刻必须使客户端和服务器的同步。 处理瞬态数据的困难在于如果某一数据同时被多个用户修改,就有可能发生冲 突。程序如何处理这种冲突? 应用程序需要跟踪用户对瞬态数据进行的任何更 改。只有在与服务器端同步并且已经由用户确认数据冲突被解决之后,瞬态数 据才是可信任的。否则应该避免依赖不可信任的瞬态数据而进行重要决策或作 为更改其它本地数据的基础。对瞬态数据的处理,是智能客户端设计的关键任 务之一。 3 2 2 缓存数据 设计者需要考虑客户端能够缓存哪些数据、如何管理这些数据及使用这些数 据等。s c 有两种缓存机制:短期数据缓存和长期数据缓存。短期数据缓存指在 内存中缓存数据,不支持长期脱机操作,在应用程序重新运行时需要重新从服 务器端拉入源数据。长期数据缓存指在持久性介质( 如独立存储器或本地文件 系统) 中缓存数据,支持长期脱机操作。为了确保数据的有效性和安全性,不 允许无限期地不更新缓存数据,必须设定缓存的期限。无论采用哪种缓存机制, 都应该确保只有被特定授权的数据才能提供给特定的授权客户,而且当缓存的 数据包含有敏感数据时,必须对缓存数据进行加密,以确保数据安全。 缓存的数据必须是可以唯一标识的( 例如,通过版本号或时间戳) ,这样就 可以正确地识别出发生更改的数据。s c 应该保证用户可以随时刷新客户端数据 ( 包括只读引用数据和瞬态数据) 。有多种刷新策略:当缓存的数据到期时刷新; 1 0 按照某个时间表定期刷新;当应用程序执行同步操作时刷新;当服务器更改了 数据之后服务器主动通知应用程序刷新;允许用户手动选择刷新等。 3 3 数据并发冲突 3 3 1 并发冲突的含义 由于s c 允许缓存数据,所以当多个客户端对同一数据同时进行更改后,数 据就可能发生冲突,这种冲突称为“并发冲突”。s c 必须能够检测到并发冲突, 并提供某种机制使得冲突的数据可以得到适当的处理,使数据库中的数据保持 一致。 3 3 2 处理数据并发的机制 处理数据并发的机制有两种:悲观式并发( p e s s i m i s t i cc o n c u r r e n c y ) 和乐观式 并发f o p t i m i s t i cc o n c u r r e n c y ) 2 7 团l 【2 9 j 刚。 悲观式指当用户读取想要更新的记录时就利用加锁机制对此记录进行锁定, 防止其它用户修改此记录影响第一个用户,只有当第一个用户把锁释放后其它 用户才能对此记录进行操作。它的主要问题是:如果多个用户需要同时对相同 数据进行操作,则他们必须等待数据交得可用。此方法的并发性很差,只有在 对重要资源的更改需要完全控制的情况下才使用它。 乐观式对用户想要更新的记录并不加锁,它允许多个用户并发地访问和操 作相同的数据,并且假设各个用户对数据进行的更改不会发生冲突,在用户更 新数据时,将原始数据和更新请求及已更改的数据一起发送到服务器。随后, 服务器针对当前数据检查原始数据,查看是否对原始数据进行了更新。如果原 始数据和当前数据匹配,则执行更新;否则,拒绝请求,并产生开放式失败。 这就是m a r t i nf o w l e r 所说的o p t i m i s t i co f f l i n cl o c k 企业应用模式【l j 。乐观式锁 定允许对数据并发访问,但降低了数据完整性。如果数据发生冲突,则需要一 种能够处理这些冲突的策略。 对记录加锁需要额外的服务器资源;为了维持锁,必须对服务器保持非断 开式连接,所以如果客户端要脱机工作,就不能使用悲观式并发。在大多数智 能客户端方案中,乐观式并发是正确的方法。 1 1 3 3 3 协调并发冲突 无论采取什么样的预防措施,客户端都有可能向服务器提交违反业务规则或 可能导致数据冲突的数据。当冲突确实发生时,远程服务器应该尽可能多地提 供有关数据冲突的详细信息。以便用户或管理员能够协调冲突。 数据协调的方法一般有三种:在服务器上自动协调、在客户端上自定义协调 及第三方协调。高校档案管理系统中采用了在客户端自定义协调的方法。 在服务器上自动协调指由服务器使用业务规则和存储过程处理冲突,而客户 端不受影响。这样用户可免于过多地涉及协调过程或忍受该过程带来的不便。 程序应该通过某种方式告诉客户端服务器所做的任何协调操作,例如通过向客 户端返回协调报告,从而使客户端可以根据协调结果及时使自己的本地数据与 服务器保持一致性。 在某些情况下,客户端可能是执行协调的最佳位置,因为它了解有关原始请 求的上下文。要进行有效的客户端协调,服务器应该向客户端发送冲突的确切 而详细的信息,以便客户端能够进行明智的决策 第三方协调指在某些情况下用户可能希望第三方来协调冲突。例如,可以请 管理员进行协调。他们可能是具有最终决定权的唯一用户。在第三方协调期间 需要通知客户端用户协调正在进行,客户端暂停使用冲突值工作。当该冲突解 决后服务器可以通知客户端或客户端定期轮流查询以确定当前的协调状态,然 后在收到协调值时继续工作。 3 4 使用数据集d a t a s e t 管理数据 r e c o r ds e t 是数据库查询子集在内存中的表示,其结构图如图3 3 所示。 图3 - 3r e c o r ds e t 模式的类图 r e c o r ds
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【核医学】化学发光免疫技术课件
- 2024年区块链项目孵化与合作合同
- (2024版)量子通信技术研究与应用合同
- 2024年办公用途厂房长期无偿出租合同
- 2024年农产品泵送物流配送合同
- 2024年份果品种植租赁合同
- 2024年二手住宅交易合同(专业中介)
- 第4章 儿童保健课件
- 联防共控:打赢疾病防控战
- 2024年亚洲地区租赁合同
- 成本会计说课
- 智慧双碳园区建设方案
- 重症监护病房医院感染预防与控制规范
- 盘古开天地中国经典神话故事中文绘本
- 《数字化设计课件-建筑信息模型(BIM)》
- 水工施工方案范本
- 指数函数及其图像与性质说课
- 重症医学质控指标
- 卡片游戏商业计划书
- 机械制图 (多学时) 第3版 课件 03轴测图
- 油菜籽+市场营销
评论
0/150
提交评论