已阅读5页,还剩54页未读, 继续免费阅读
(安全技术及工程专业论文)煤矿安全智能客户端体系结构研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
s u h j e c t:s t u d yo f t h es m a r tc l i e n ta r c h i t e c t u r ei nm i n es a f e t y s p e c i a l t y :s a f e t yt e c h n o l o g ya n de n g i n e e r i n g n a m e:l i ul i i n s t r u c t o r :c h a n gx i n t a n ( s i g n a t u r e )丛出 ( s i g n a t u r e ) 鱼兰= z 兰:缸 a b s t r a c t n o wt h ee - e n t e r p r i s eh a sb e c o m ean e wc o n c e p tt h a ti sd e v e l o p i n gv e r yr a p i d l y b e i n g a ni m p o r t a n ti n d u s t r i a lb r a n c h ,c o a le n t e r p r i s e sw i d e l y a d o p t e dc o m p u t e r sa n di n t e m e t t e c h n i q u e m o r ea n dm o r es o f t w a r es y s t e m sa r ei n t r o d u c e dt ot h em i n i n gi n d u s t r y , b u tm o s to f t h e ma r es i m p l yd e s i g n e de i t h e r 、v i t hs 咖c n l r eo ft h i nc l i e n t s o rw i t hr i c hc l i e n t s t h e s et w o s t r u c t u r e sb o t hh a v et h e i ra d v a n t a g e sa sw e l la sd e f e c t s w h e ni n t e r n e ti sb a f f l e do ro f f i i n e ,n o p r o p e rs e r v i c e sc a nb ep r o v i d e do nt h eo l ds y s t e m s t h ea p p l i c a t i o no fs m a r tc l i e n tm a k e s p r o p e rs e r v i c e sp o s s i b l en om a t t e rt h ec l i e n ti s o n l i n eo ro f f i i n e w h i l eo n l i n e ,a ne v e nr i c h e r e x p e r i e n c ec a nb ep r o v i d e db ys m a r tc l i e n t e v e nw h e ni ti so f f i i n e ,s m a r tc l i e n ti ss t i l lr u n e x c e p t i o n a l l yw e l l t h et e c h n i q u eo fs m a r tc l i e n th a sb e e ng r a d u a l l yi n t r o d u c e dt ot h ec o a l i n d u s t r y , i tb r i n g sc l i e n t sm u c hm o r ee f f i c i e n tw a yf o rt h e i rd a i l ym a n a g e m e n t ,e s p e c i a l l yi n s o m ed e p a r t m e n t sw i t hd e c i s i o n m a k i n gp o w e r a san e wt e c h n o l o g y , t h es m a r tc l i e n t b e c o m e st h eg e n e r a lt r e n do fi n f o r m a t i o ne x c h a n g ef o re n t e r p r i s e s ,a n di sn o wb e e n i n t r o d u c e dt ot h es a f e t yi n f o r m a t i o ns y s t e mo fc o a li n d u s t r y s m a r tc l i e n ti san e wa p p l i c a t i o no fc l i e n t i tc o m b i n e sa l ls t r o n gp o i n t so ft h i nc l i e n t a n dr i c hc l i e n t ,t h u si m p r o v i n gt h em a n a g e m e n to fd a t aa n dl i n kw h i l ee n j o y i n gas a t i s f i e d w o r kn om a t t e ro n l i n eo ro f f i i n e t h i st h e s i sd e s c r i b e st h ed e v e l o p m e n to fs m a r tc l i e n ta n di t s a d v a n t a g e s t h ec o r r e l a t i o nt e c h n o l o g y , i n c l u d i n gd a t ap r o c e s s i n g ,t r u ep r e s e n t a t i o nl a y e r s t r u c t u r e a n dt e c h n o l o g yo fa d d r e s s i n go f f i i n ed a t a ;t h e ni sc o m b i n e dw i 血p r a c t i c a l a p p l i c a t i o n st ot h em i n es a f e t y d a t ae x c h a n g ei sc o n d u c t e d ,a n d ,o nt h eb a s i so ft h ed e s i g n p r i n c i p l ea n ds e r v i c i n gm e t h o d ,t h e n e tf r a m e w o r ko fs m a r tc l i e n tu p d a t e si t s e l ft h r o u g h a p p l i c a t i o no f n e ta p p l i c a t i o nu p d a t e ra s s e m b l y f u r t h e r m o r e ,t h eo f f i i n ef u n c t i o nc a nb e a c h i e v e dt h r o u g hd e s i g n i n go f f i i n ea p p l i c a t i o nb l o c ks u b s y s t e m k e y w o r d :s m a r tc l i e n t o f f i i n ea p p l i c a t i o ns e r v i c e o r i e n t e da r c h i t e c t u r e t h e s i s :a p p l i c a t i o ns t u d y 要料技大学 学位论文独创性说明 本人郑重声明:所呈交的学位论文是我个人在导师指导下进行的研究工作及 其取得研究成果。尽我所知,除了文中加以标注和致谢的地方外,论文中不包含 其他人或集体已经公开发表或撰写过的研究成果,也不包含为获得西安科技大学 或其他教育机构的学位或证书所使用过的材料。与我一同工作的同志对本研究所 做的任何贡献均己在论文中做了明确的说明并表示了谢意。 学位论文作者签名:踟俐 日期:知。6 妇碣 学位论文知识产权声明书 本人完全了解学校有关保护知识产权的规定,即:研究生在校攻读学位期间 论文工作的知识产权单位属于西安科技大学。学校有权保留并向国家有关部门或 机构送交论文的复印件和电子版。本人允许论文被查阅和借阅。学校可以将本学 位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描 等复制手段保存和汇编本学位论文。同时本人保证,毕业后结合学位论文研究课 题再撰写的文章一律注明作者单位为西安科技大学。 保密论文待解密后适用本声明。 学位论文作者签名:葫嗵丛 指导教师签名:厂雩:优 加b 年华月谢日 1 绪论 1 1 课题研究背景及意义 1 绪论 随着计算机技术与通信技术的不断发展,计算机及其网络应用也日益普及。计算机在 煤矿安全管理中的应用,也已从单一系统向网络系统过度、静态管理向动态管理过度。建 立煤矿安全计算机信息系统,可实现大量安全信息数据的采集、加工、处理、共享,并向 领导提供决策依据,提高企业管理水平,促进煤矿企业的安全生产。目前,计算机在煤矿安 全管理方面的应用,主要集中在瓦斯监测系统、矿井通风网络监测系统、矿井矿压监测系 统、井下安全考勤系统和计算机一般安全信息文档处理等几个方面【2 j 。 而随着企业变得越来越依赖它们的i t 系统,以及该系统提供的数据和服务,用户能 够离线工作就显得更加重要,为离线访问数据和服务提供支持,而且无论用户在线还是 离线都可以使用相同的应用程序,这使得用户可以全天候保持生产力,并有助于确保一 致性和数据质量。但是只有一个网络连接通常是不能保证对应用程序以及它代表的数据 和服务的访问的,这点很重要。当用户不在办公室时,他们可能就不能访问防火墙内 部的业务应用等程序,除非企业投资建设了v p n ( v i r t u a lp r i v a t en e t w o r k ) 基础架构。 即便是在这种情况下,构造连接也是相当耗时和昂贵的。 在这每一种情况下,智能客户端p 懈决方案都可以提供到应用程序的健壮访问,这 样就可以最小化连接变化所产生的影响。通过巧妙地在客户端上缓存数据和逻辑,并且 在需要时自动部署更新到两种客户端上,应用程序可以为用户提供独立于其连接状态地 无缝体验。另外,智能客户端可以确保所有的网络调用都有离线线程上进行处理,这样 应用程序就永远不必等待网络的响应,从而让用户可以继续工作。而不用关心网络的状 态。 煤矿安全管理方面现有的软件还没有实现离线功能,这给管理者带来很大的不便, 当网络处于断线或不通的时候,客户端就无法访问到服务器端资源,这就使得管理者不 能随时都能掌握煤矿安全信息,阻碍了管理者的决策过程,后果将是无法预料的。而现 有的智能客户端技术最大的功能就是支持离线状态,使其在任何时候都能访问服务器端 信息。所以在煤矿安全管理方面应用智能客户端并实现智能化是非常有必要的。 1 2 智能客户端发展状况 1 2 1 客户端应用程序的过去 在9 0 年代中期或者更早的一段时间内,基于微软的w i n d o w s 平台而开发出来的客 西簧科技大学硕士学位论文 户端应用程序的数目越来越多。这种大规模的增加主要归功于可用性强、质量好的开发 工具和结构框架;另外,可用性强、功能强大的客户端平台也是原因之一。当时那些应 用程序中的绝大部分都是单机版的,它们运行在客户机上并从不关注它们所运行的环 境:比如网络上的其它机器或者服务、比如客户机上的其它应用程序。很自然的,所谓 的应用程序的集成也仅仅局限于通过w i n d o w s 系统提供的剪切一拷贝一粘贴特性,实现系 统之间少量的数据传递。基本上,由于那些应用程序不断的增加有用的功能,用户倒是 变的更加满意了。 过了一段时间,两层的应用程序开始出现,这些应用程序允许位于同一个网络内的 多个用户处理相同的数据:很快,d c o m 的出现使得应用程序能更好的被分布式部署: 业务逻辑和状态不再被绑定到一台客户机上。这两个方面的发展很重要,并形成了一个 具有新环境和功能性更好的主机模型。 无论如何,所有这些陆续增加的灵活性、功能性都是需要代价的。可能最大的问题 就是胖客户端应用程序的部署。伴随着应用程序的复杂性、客户机平台性能的改进,将 应用程序可靠、安全的部署到客户机上的难度也在增加。最大的一个问题就是“d l l 陷 阱”:一个应用程序因为部署了不兼容的共享组件或者共享库,能够中断另外一个应用 程序的运行。 另外,应用程序之间不断增加联系也会一并带来很多其它的问题。不管开发工具和 框架多好,部署互联的应用程序都是相当复杂的。随着分布式应用程序的规模和复杂性 的增加,应用程序客户端和它所需要的服务之间的耦合性也变的更难维护,这反过来更 增加了应用程序部署和维护的问题。 因此,虽然胖客户端的提供了一个典型的很好的用户体验并且具有很好的开发支 持,但它们仍然是很难部署和维护的。也就在这个时候,互联网出现了。互联网在胖客 户应用程序上影响很小。一部分应用程序提供一个功能,通知用户已经有可用的更新, 或者有另外的内容或者新的特性能够被下载或者安装,但是,从总体上而言,互联网很 少影响到客户端应用程序是如何被开发、部署和维护的。 然而,互联网确实提供了传统的胖客户端模型的替代品,一个承诺解决所有的与应 用程序部署和维护有关的问题。基于浏览器的瘦客户端应用程序允许应用程序只在中心 被部署或者更新,因此能够减少应用程序部署和维护的相关问题( 或者减少成本) 。同 时,瘦客户端应用程序允许企业能够将他们的应用程序暴露给大量的、各式各样的外部 用户群。 然而这种新的解决方案并不是没有缺点。瘦客户端应用程序经常表现了最好的方法 使公司的信息和服务暴露在一个外部的用户群。但是,在许多情况下,内部的一些已经 用胖客户端应用程序实现的应用程序也需要被转移到瘦客户端应用程序模型上。显然, 这种转移在减少部署复杂性方面有了改善,不过它明显的减少了用户在操作上的一些特 1 绪论 性。 瘦客户端应用程序往往牺牲了一些用户已经非常习惯的特性:比如拖放、取消一重 复、上下文帮助等等,这些特性变的不再可用。而且,应用程序的响应也变少了,尤其 对于商业应用程序,比如那些客户呼叫中- t l , ,要求大量的数据入口和在多个屏幕上面导 航。而且,浏览器一直需要完全依赖于一个网络链接。这意味着那些移动工作人员完全 没有办法使用应用程序,只有等到他们回到办公室才能重新输入数据。即使一个网络连 接是可用的,低带宽和高延时的连接也带来了性能问题,并且降低了用户的效率。开发 人员在瘦客户端那段时间内也忍受着痛苦。缺乏工具支持:而且开发人员不得不从舒适 的、能够利用类型安全和面向对象设计规则的、基于组件开发的世界中转移到还不完备 的、基于脚本的、h t m l 的世界中。当前,w e b 开发人员声称能够开发出来应用程序的 程度也仅仅接近于桌面应用程序4 、5 年前的程度。而且,拖放、取消一重复、上下文帮 助和其它一些客户端程序的普通特性依旧是一个很大的挑战。 尽管瘦客户端存在以上缺点,但是胖客户端应用程序存在的部署、管理问题是如此 严重以至于这个更新是值得的。因此,在最近几年,基于浏览器的瘦客户端应用程序模 型占到了统治地位。 1 2 2 智能客户端的诞生 当前,我们生活在一个基于信息的经济社会。为了在这个高竞争性的市场内不断发 展,用户必须处理和借用各种信息源,包括客户的、合作伙伴的和供应者的。用户对他 们的应用程序要求更高:他们想要处理活动、计划、分析、可视化、并且展现数据,而 不仅仅是读取数据。这种需求没有局限在一个公司的内部工作范围内。处于领先地位的 一些公司开始意识到,他们必须在他们的客户和合作伙伴中建立一套信息平台,以使得 他们能更快的、更准确的响应客户的请求;使得他们能够轻松的处理交易、分类、库存 等信息。同时,用户也能够在自己应用程序内处理这些数据。毫无疑问,随着应用程序 复杂性的提高,用户的期望也在提高。瘦客户端应用程序模型已经无法提供客户对可用 性、性能、灵活性和集成的要求。用户现在要求高速响应的应用程序,用来完成他们日 常的高效、有弹性的工作。 因此,我们又开始倾向于回那种胖客户端的模型。但是,应用程序的部署和更新如 何解决? 应用程序的总拥有成本( t c o ) 仍旧和以前的模型一样重要,而且,有可能更 加重要。你到底是愿意牺牲在可用性上的易管理性,或者还是牺牲用户出色的操作体 验? 很幸运,不用牺牲两者中的任何一个。现在已经存在这种能力:使得我们能够充分 的利用胖客户端模型带来的好处,提供给用户出色的操作体验,同时,也能够让我们享 受集中部署和更新带来的好处。简而言之,这种新一代的客户端应用程序,就是被称之 为“智能”客户端,它能很好的提供原本两种客户端的特性,并且增加了数据和连接的 西安科技大学硕士学位论文 管理,产生了一种更好的用户体验。 s m a r tc i i e n t 图1 1 智能客户端特征 如上图所示,智能客户端提供了一个胖客户端所具有的好处,同时带有瘦客户端易 管理的特征,同时,智能客户端提供了相比于传统胖客户端应用程序更好的灵活性,不 需要像桌面应用程序那样被设计。智能客户端解决方案能够实现多个客户端应用程序的 功能组合,这些功能都是各个应用程序中最合适暴露给用户的。如此的“组合”应用程 序,把客户端软件资源集成到一个解决方案中,或者扩展一个应用程序现有的功能,就 是智能客户端的特征。 1 2 3 智能客户端清单 由于高度的可灵活性和略显模糊的智能客户端应用程序的特征,包括部分由传统的 胖客户端应用程序提供的,还有部分是智能客户端提供的。如果一个客户端应用程序具 备这些特征,它就能被称为是智能的。 ( 1 ) 利用本地资源:一个智能客户端应用程序在客户机上总是驻留代码的,使得能 够利用本地的资源。我们所说的本地资源到底是什么呢? 包括所有的硬件和软件资源。 智能客户端应用程序能够利用本地的c p u 或者g p u 、内存、硬盘、以及任何与客户机 相连的设备:比如电话、读卡机等等。同时,它也能够利用本地的软件,比如微软的 o f f i c e 应用程序,或者任何那些已经安装的、和它有关联的l o b ( 1 i n e - o f - b u s i n e s s ) 应 4 l 绪论 用程序。 ( 2 ) 互联性:智能客户端应用程序不是基于单机版的,它总是分布式解决方案中的 一部分。这可能就意味着智能客户端应用程序需要和许多处理数据或者调用l o b 应用 程序的w e b 服务互相操作。一般来说,智能客户端应用程序会调用指定的服务来帮助 我们管理应用程序或者提供部署和更新的服务。 ( 3 ) 脱机操作能力:由于是运行在本地机器上,智能客户端应用程序提供一个关 键好处就是即使是它没有连接到网上,也能正常的工作。对于那些工作在时连时断的网 络上( 比如掌上电脑、笔记本、p d a 等等) 的应用程序而言,并不能保证网络总是连接 的,因此能够在没有连接的时候继续工作时很重要的。即使客户端已经连接到网络上, 智能客户端应用程序也能通过一个智能的方法缓存数据和管理连接,从而改进应用程序 的性能和可用性。 ( 4 ) 智能的安装和更新:相比于传统的胖客户端应用程序,智能客户端应用程序 有更多智能的方法管理其安装和部署。n e t 框架可以使用多种技术来部署应用程序集, 比如通过文件拷贝或者通过h t t p 协议下载。当智能客户端应用程序在运行的时候,应 用程序也能够被更新;或者只需要点击一个u r l ,就能够部署应用程序。n e t 框架提 供了一种强有力的安全机制用来确保应用程序的完整性以及和它相关的程序集。 ( 5 ) 客户端设备灵活性:n e t 框架中得n e tc o m p a c tf r a m e w o r k l 6 8 1 提供了一个能 够创建智能客户端应用程序的通用平台。通过这个平台,可以创建多个版本的智能客户 端应用程序。每个版本都运行到一个特定的设备上,并且应用程序能够利用这个设备所 独有的功能特性。 1 3 本论文主要研究内容 ( 1 ) 本文叙述智能客户端的发展及其与传统的客户端模式的优劣对比,得出智能 客户端是传统胖客户端和瘦客户端的优点集合的结论。 ( 2 ) 以智能客户端的数据处理技术,离线数据访问技术作为本文的重点技术支持, 通过对更新组件的设计和离线子系统的设计来实现煤矿安全智能客户端的智能化。在文 章的主体部分进行详细设计并予以实现。 1 4 本章小结 智能客户端提供了一个胖客户端所具有的好处,同时带有瘦客户端易管理的特征, 同时,智能客户端提供了相比于传统胖客户端应用程序更好的灵活性。可以说智能客户 端是集胖客户端和瘦客户端的优点于一身。智能客户端有以下几个优点:利用本地资源: 互联性;脱机操作能力:智能的安装和更新;客户端设备灵活性。 西安科技犬学硕士学位论文 2 智能客户端数据处理 要使智能客户端有效工作,很重要的一点是对该数据进行适当的管理,以确保其有 效、一致和安全。可以通过服务器端应用程序( 例如,通过w e b 服务) 向客户端提供 应用程序数据,或者应用程序可以使用它自己的本地数据。如果数据是由应用程序提供 的,则智能客户端应用程序可以缓存数据以改善性能或者支持脱机使用。在这种情况下, 需要决定客户端应用程序应该如何处理就该服务器而言已经过时的数据。如果智能客户 端应用程序提供在本地修改数据的能力,则必须在以后将客户端更改与服务器端应用程 序进行同步。在这种情况下,必须决定客户端应用程序如何处理数据冲突,以及如何跟 踪需要发送到服务器的更改。 2 1 数据类型 智能客户端通常必须处理两种类别的数据:一种是只读引用数据,另一种是瞬态数 据。通常情况下,需要以不同的方式处理这些类型的数据。 2 只读引用数据 只读引用数据是不会由客户端更改并且被客户端用于引用目的的数据 i o - i i 】。因此, 从客户端的观点看来,该数据为只读数据,并且客户端不会对其执行更新、插入或删除 操作,只读引用数据很容易在客户端上进行缓存。引用数据在智能客户端应用程序中具 有许多种用途,包括: ( 1 ) 提供静态引用或查找数据。 ( 2 ) 支持数据验证,允许检查用户输入数据的正确性。 ( 3 ) 帮助与远程服务进行通讯。 ( 4 ) 呈现数据。包括呈现帮助文本或用户界面标签。 通过在客户端上存储和使用引用数据,可以减少需要从客户端传输到服务器的数据 量,改善应用程序的性能,帮助启用脱机功能,并提供早期数据验证以提高应用程序的 可用性。尽管客户端无法更改只读引用数据,但可以在服务器上进行更改( 例如,由管 理员或超级用户更改) 。我们需要确定在发生数据更改时用于更新客户端的策略,此类 策略可能涉及到在发生更改时将更改推到客户端上,或者按照特定的时间间隔或在客户 端上执行某些操作之前从服务器拉入更改。但是,因为数据在客户端上是只读的,所以 无须跟踪客户端更改。这就简化了需要对只读引用数据进行处理的方式。 2 1 2 瞬态数据 瞬态数据既可以在服务器上更改,也可以在客户端上更改。通常情况下,瞬态数据 6 2 智能客户端数据处理 作为用户输入和操作的直接或间接结果而发生更改。在此情况下,在客户端或服务器进 行的更改都需要在某个时刻进行同步。这种类型的数据在智能客户端中具有许多种用 途,包括: ( 1 ) 添加新信息。 ( 2 ) 修改现有信息。 ( 3 ) 删除现有信息。 在智能客户端处理瞬态数据的最困难的方面之一在于,这些数据通常可能在多个客 户端上同时进行修改。当数据非常不稳定时,该问题将恶化,因为所做更改更有可能互 相冲突。需要跟踪对瞬态数据进行的任何客户端更改。在与服务器同步数据并且已经解 决任何冲突之前,不应该认为瞬态数据已被确认。应该非常小心以避免依赖未确认的数 据进行重要决策,或者在未认真考虑如何保证数据一致性( 甚至在同步失败时) 的情况 下使用该数据作为其他本地更改的基础。 2 2 缓存数据 智能客户端通常需要在本地缓存数据( 无论是只读引用数据还是瞬态数据) 。通过 缓存数据,有可能改善应用程序的性能并提供脱机工作所需的数据。但是,需要认真考 虑在客户端缓存哪些数据、如何管理这些数据以及可以在哪个上下文中使用这些数据。 要启用数据缓存,智能客户端应用程序应该实现某种形式的缓存基础结构,以便透明地 处理数据缓存细节。缓存基础结构应该包括下列缓存机制中的一种或两种: ( 1 ) 短期数据缓存。在内存中缓存数据对性能有益,但不能持久,因此可能需要在重 新运行应用程序时从数据源拉入数据。这样做可能会妨碍应用程序脱机操作。 ( 2 ) 长期数据缓存。通过在持久性媒体( 如独立存储或本地文件系统) 中缓存数据, 可以在没有连接到服务器时使用应用程序。可以选择将长期存储与短期存储结合起来以 改善性能。 无论采用哪种缓存机制,都应该确保仅将用户有权访问的数据提供给客户端。而且, 在客户端缓存的敏感数据要求进行认真处理以确保它的安全。因此,可能需在将数据传 输到客户端以及在客户端存储数据时,对数据进行加密。当设计智能客户端以支持数据 缓存时,应考虑为客户端提供一种请求新数据的机制,而无论缓存的状态如何。这意味 着可以确保应用程序随时能够执行新的事务,并且不会使用过时的数据。还可以将客户 端配置为预先获取数据,以便减少在缓存数据到期时处于脱机状态的风险。只要有可能, 都应该将某种形式的元数据与该数据关联起来,以便使客户端能够以聪明的方式管理这 些数据。此类元数据可用于指定数据的标识和任何约束,或者指定所需的与该数据关联 的行为。客户端缓存基础结构应该消耗该元数据,并且使用它来适当处理缓存的数据。 客户端缓存的所有数据都应该是可以唯一标识的,以便在确定是否需要更新数据 7 西簧科技大学硕士学位论叉 时,可以正确地识别相应的数据。这样,缓存基础结构就能够询问服务器它所具有的数 据当前是否有效,并且确定是否需要进行更新。元数据还可以用来指定与缓存数据的使 用和处理相关的约束或行为。 缓存基础结构可以通过与数据关联的元数据来适当地处理这些数据,从而使应用程 序无须关心数据缓存问题或实现细节。可以在引用数据本身内部传递与这些数据关联的 元数据,或者使用带外机制。用于将元数据传输到客户端的确切机制取决于应用程序与 网络服务的通讯方式。当使用w e b 服务时,利用s o a p 头将元数据传输到客户端是一 种很好的解决方案。 只读引用数据与瞬态数据之间存在的区别有时意味着需要使用两个缓存,一个用于 引用数据,一个用于瞬态数据。引用数据在客户端是只读的,并且不需要回过头来与服 务器进行同步,但它的确需要偶尔进行刷新以反映在服务器上进行的任何更改和更新; 瞬态数据既可以在服务器上更改,也可以在客户端上更改。既然有时在客户端更新缓存 中的数据,有时在服务器更新,有时在这两个位置更新,那么对客户端数据进行的更改 需要在某个时刻与服务器进行同步。如果数据同时在服务器上发生了更改,则会发生数 据冲突,需要对其进行适当的处理。要帮助确保维持数据一致性,并且避免不适当地使 用数据,应该小心地跟踪在客户端对瞬态数据进行的任何更改。在成功地与服务器进行 同步或确认之前,此类更改是未提交的。 应该对智能客户端应用程序进行适当的设计,以使其能够区分已经成功地与服务器 进行同步的数据和仍然暂定的数据。这一区分过程可以帮助应用程序更加容易地检测和 处理数据冲突。而且,可能需要禁止应用程序或用户基于暂定数据进行重要决策或者启 动重要操作。在将此类数据与服务器进行同步之前,不应该依赖它们,通过使用适当的 缓存基础结构,可以跟踪暂定数据和已经确认的数据。 2 3 数据并发 正如前面所提到的,使用智能客户端的一个问题是:在将任何客户端更改与服务器 进行同步之前,服务器上保存的数据可能发生更改。需要采用某种机制来确保在对数据 进行同步时,数据冲突能够得到适当的处理,并且最后得到的数据是一致和正确的。数 据能够由多个客户端进行更新的能力称为“数据并发【i ”。 可以使用两种方法来处理数据并发: ( 1 ) 保守式并发。保守式并发允许一个客户端保持数据上的锁,以禁止任何其他客 户端修改数据,直至客户端自己的更改完成为止。在这种情况下,如果另一个客户端尝 试修改数据,则在锁的拥有者释放该锁之前,这些尝试将失败或者被阻止。保守式并发 可能有问题,因为单个用户或客户端可能由于疏忽而长时间地保持锁定。所以,该锁可 能会妨碍重要资源( 如数据库行或文件) 及时得到释放,从而严重影响应用程序的可伸 2 智能客户端数据处理 缩性和可用性。但是,当需要完全控制对重要资源所做的更改时,保守式并发可能是适 当的。注意,如果客户端要脱机工作,则不能使用这种并发,因为客户端无法对数据加 锁。 ( 2 ) 开放式并发。开放式并发不会锁定数据。要判断是否实际需要更新,可以将原 始数据随更新请求和己更改的数据一起发送。随后,将针对当前数据检查原始数据,以 查看是否同时对原始数据进行了更新。如果原始数据和当前数据匹配,则执行更新;否 则,拒绝请求,并产生开放式失败。 开放式并发提供了一种良好的机制,可用来更新不会非常频繁更改的主数据,如客 户的电话号码或地址。开放式并发允许每个人读取数据,在发生更新的概率小于读取操 作的情况下,开放式失败的风险或许是可以接受的。在数据频繁更改以及开放式更新可 能经常失败的情况下,开放式并发可能并不适合。 在大多数智能客户端方案( 包括客户端将要脱机工作的方案) 中,开放式并发是正 确的方法,因为它允许多个客户端同时使用数据,而不会不必要地锁定数据和影响所有 其他客户端。 2 4 使用a d o n e t 数据集来管理数据 d a t a s e t 是一个表示一个或多个关系数据库表的对象。数据集在断开连接的缓存中 存储数据。d a t a s e t s 的结构与关系数据库类似:它公开了一个由表、行和列组成的层次 结构对象模型。另外,它还包含为d a t a s e t s 定义的约束和关系。a d o n e td a t a s e t 包 含零个或更多个由d a t a t a b l e 对象表示的表组成的集合。d a t a t a b l e 在s y s t e m d a t a 命 名空间中定义,并且表示单个由内存驻留数据组成的表。它包含由d a t a c o l u m n c o l l e c t i o n 表示的列和由c o n s t r a i n t c o l l e c t i o n 表示的约束组成的集合,它们共同定义了该表的架 构。d a t a t a b l e 还包含由d a t a r o w c o l l e c t i o n ( 它包含该表中的数据) 表示的行组成的集 合。与其当前状态一起,d a t a r o w 保留其当前版本和原始版本,以便标识对该行中存储 的值所做的更改。 d a t a s e t s 可以强类型化或非类型化。类型化的d a t a s e t 从d a t a s e t 基类继承,但是 向d a t a s e t 中添加了强类型化的语言功能,从而使用户可以用更加强类型化的编程方式 访问内容。在生成应用程序时,可以使用任一种类型。但是,m i c r o s o f tv i s u a ls t u d i o 开 发系统对类型化d a t a s e t s 具有更多支持,它们使得用d a t a s e t s 编程变得更加容易,而且 更不容易出错。 d a t a s e t s 在智能客户端环境中尤其有用,因为它们提供了能够帮助客户端在脱机状 态下使用数据的功能。它们可以跟踪对数据进行的本地更改,这有助于与服务器同步数 据以及协调数据冲突,并且它们还可用于合并来自不同源的数据。 西安科技大学硕士学位论文 用d a t a s e t s 合并数据:d a t a s e t s 具有将d a t a s e t 、d a t a t a b l e 或d a t a r o w 对象的内 容合并到现有d a t a s e t s 的能力。对于跟踪在客户端上进行的更改以及与服务器的己更新 内容进行合并而言,该功能尤其有用。图2 1 显示了一个从w e b 服务请求更新的智能 客户端,新数据作为数据传输对象( d t o ) 返回。d t o 是一种企业模式,它使您可以将 所有需要与w e b 服务进行通讯的数据打包到一个对象中。使用d t o 通常意味着您可 以对w e b 服务进行单个调用而不是多个调用。 图21 通过使用d a t a s e t s 合并客户端上的数据 在该示例中,当d t o 被返回到客户端时,该d t o 将被用于在客户端上以本地方 式创建一个新的d a t a s e t s 。 在合并操作之后,a d o n e t 不会自动将行状态从m o d i f i e d 更改为u n c h a n g e d 。 因此,在将新的d a t a s e t s 与本地客户端d a t a s e t s 合并之后,您需要调用d a t a s e t s 上的 a c c c e p t c h a n g e s 方法,将r o w s t a t e 属性重置为u n c h a n g e d 。 提高d a t a s e t s 的性能:d a t a s e t s 通常可以包含大量数据,如果通过网络传递这些数据, 则可能导致性能问题。幸而,通过a d o n e td a t a s e t s ,您可以使用d a t a s e t s 上的 g e t c h a n g e s 方法来确保只在客户端和服务器之问传送在d a t a s e t s 中更改过的数据,并 且将该数据打包到d t o 中。该数掘随后将被合并到其目的地的d a t a s e t s 中。 d a t a s e t s 通常可以包含大量数据,如果通过网络传递这些数据,则可能导致性能问题。 幸而,通过a d o n e td a t a s e t s ,可以使用d a t a s e t s 上的g e t c h a n g e s 方法来确保只在 客户端和服务器之间传送在d a t a s e t s 中更改过的数据,并旦将该数据打包到d t o 中。 该数据随后将被合并到其目的地的d a t a s e t s 中。 图2 2 显示了一个智能客户端,它对本地数据进行更改,并且使用d a t a s e t s 上的 g e t c h a n g e s 方法仅将己更改的数据提交给服务器。出于性能原因,该数据被传输给 d t 0 。 d a t a s e tu s e dt ot r a c kl o c a l剖( 9 s u b m i tc h a n g e s c h a n g e s m a d et od a t a a s k d a t a s e tf o rc h a n g e sa n ds e n dt o w e bs e r v i c e 图2 2 使用d t o 改善性能 t od a t a b a s e 2 智能客户端数据处理 可以将g e t c h a n g e s 方法用于需要脱机工作的智能客户端应用程序。当应用程序重 新联机时,可以使用g e t c h a n g e s 方法确定哪些信息已经更改,并且随后生成一个与 w e b 服务通讯的d t o ,以便确保将更改提交给数据库。 2 5w i n d o w s 窗体数据绑定 通过w i n d o w s 窗体数据绑定【2 9 ,可以将应用程序的用户界面连接到该应用程序的 基础数据。w i n d o w s 窗体数据绑定支持双向绑定,因此可以将数据结构绑定到用户界 面,向用户显示当前数据值,使用户可以编辑数据,然后使用用户输入的值自动更新基 础数据。可以使用w i n d o w s 窗体数据绑定将几乎任何数据结构或对象绑定到用户界面 控件的任何属性。可以将单个数据项绑定到控件的单个属性,还可以将更为复杂的数据 ( 例如,数据项集合或数据库表) 绑定到该控件,以便它可以在数据网格或列表框中显 示所有数据。注绑定任何支持一个或多个公共属性的对象时,只能绑定到类的公共属性 而不是公共成员。 通过w i n d o w s 窗体数据绑定,可以随应用程序一起提供灵活的、数据驱动的用户 界面。还可以使用数据绑定提供对用户界面外观的自定义控制。 2 5 1w i n d o w s 窗体数据绑定体系结构 w i n d o w s 窗体数据绑定提供了一种用于将数据双向连接到用户界面的灵活的基础 w i n d o w s 懑麟 二二 昌口 图2 3w i n d o w s 窗体数据绑定结构示意图 结构。图2 3 显示了w i n d o w s 窗体数据绑定的总体体系结构的示意图。 w i n d o w s 窗体数据绑定使用下列对象: 西簧科技大学硕士学位论文 ( 1 ) 数据源。数据源是包含要绑定到用户界面的数据的对象。数据提供程序可以是 任何具有公共属性的对象,可以是支持i l i s t 接1 5 1 的数组或集合,还可以是复杂数据类 ( 例如,d a t a s e t 或d a t a t a b l e ) 的实例。 ( 2 ) c u r r e n c y m z n a g e r 。c u r r e n c y m a n a g e r 对象用于跟踪绑定到用户界面的数组、集 合或表内的数据的当前位置,通过c u r r e n c y m a n a g e r 可以将数据集合绑定到用户界面以 及在相应的数据中导航,同时更新用户界面以反映集合内当前选择的项。 ( 3 ) p r o p e r t y m a n a g e r 。p r o p e r t y m a n a g e r 对象负责维护绑定到控件的对象的当前属性。 p r o p e r t y m a n a g e r 类和c u r r e n c y m a n a g e r 类都从公用基类b i n d i n g m a n a g e r b a s e 中继承。所 有绑定到控件的数据提供程序都具有一个关联的c u r r e n c y m a n a g e r 或p r o p e r t y m a n a g e r 对象。 ( 4 ) b i n d i n g c o n t e x t 。每个w i n d o w s 窗体都具有一个默认的b i n d i n g c o n t e x t 对象,该 对象跟踪相应窗体上的所有c u r r e n c y m a n a g e r 和p r o p e r t y m a n a g e r 对象。通过 b i n d i n g c o n t e x t 对象可以容易地检索特定数据源c u r r e n c y m a n a g e r 或p r o p e r t y m a n a g e r 对象。可以将特定的b i n d i n g c o n t e x t 对象分配给包含数据绑定控件的容器控件( 如 g r o u p b o x 、p a n e l 或t a b c o n t r o i ) 。这样做可以使窗体的每个部分都由它自己的 c u r r e n c y m a n a g e r 或p r o p e r t y m a n a g e r 对象管理。 ( 5 ) b i n d i n g 。b i n d i n g 对象用于在控件的单个属性与另一个对象的属性或某个对象列 表中当前对象的属性之间创建和维护简单绑定。 2 5 2 将数据绑定到w i n d o w s 窗体控件 有许多可用于绑定到特定w i n d o w s 窗体控件的属性和方法。表2 1 显示了其中一 些比较重要的属性和方法。 表2 1 用于绑定到w i n d o w s 窗体控件的属性和方法 属性或方法v i n d o u r s 窗体控件说明 l i s t c o n t r o l s ( 例如,l i s t b o x 或指定要绑定到用户界面控件 d a t a s o u r c e 属性 c o m b ob o x ) 、d a t a g r i d 控件 的数据提供程序对象。 l i s t c o n t r o l s 指定要显示给用户的数据提 d i s p l a y m e m b e r 属性 供程序的成员。 l i s t c o n t r o l s 指定与显示值相关联的、供应 v a l u e m e m b e r 属性 用程序内部使用的值。 d a t a g r i d 控件 如果数据源包含多个数据源, d a t a m e m b e r 属性 使用d a t a m e m b e r 属性来指 定要绑定到网格的数据源。 d a t a g r i d 控件可以在运行时重置 s e t d a t a b i n d i n g 方法 d a t a s o u r c e 方法。 2 智能客户端数据处理 如果d a t a s o u r c e 是d a t a y a b l e 、d a t a v i e w 、集合或数组,则无须设置d a t a m e m b e r 属性。 还可以使用所有w i n d o w s 窗体控件对象上提供的d a t a b i n d i n g s 集合属性将 b i n d i n g 对象显式添加到任何控件对象。b i n d i n g 对象用于将控件上的单个属性绑定到数 据提供程序的单个数据成员。 当用b i n d i n g 构造函数构建b i n d i n g 示例时,必须指定要绑定到的控件属性的名称、 数据源以及可解
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广东东莞市2026年数学初中毕业生学业水平考试模拟试卷附答案
- 5月8日机器人等级考试五级试题及详细参考答案
- 1米9身高汽车后排空间实测考试题(含详细答案)
- 防渗衬垫铺设焊接方案
- 供热管网更新及智慧监测建设项目可行性研究报告模板-立项备案
- 江西省南昌启华双语学校2026-2027学年高二上学期开学考试物理试题(含答案)
- 2026年浙江省高中物理力学计算题库
- 湖南省汨罗市第二中学2025-2026学年高二上学期2月期末考试数学试卷(含答案)
- 《商务英语口语实训》-Unit 4
- 广东省佛山市2026-2027学年高三(上)开学数学模拟试卷(含答案)
- 2026年心力衰竭诊疗指南全面解读
- 幼儿园舆情处置工作制度
- 2026散装煤炭运输成本测算及供应链优化方案研究报告
- 临床输血知识培训课件
- 心肌梗塞患者的运动康复护理
- 2025至2030中国美沙拉秦行业深度研究及发展前景投资评估分析
- 2025年地质调查员地质灾害方向职业技能竞赛模拟试题(附答案)
- GB/T 3033-2025船舶与海上技术管路系统内含物的识别颜色
- 《变频技术及应用(三菱)(第三版)》中职全套教学课件
- 2025-2026学年人美版一年级美术上册(全册)教学设计(附目录)
- 电力交易员基础知识培训课件
评论
0/150
提交评论