




已阅读5页,还剩70页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
西南交通大学硕士研究生学位论文第1 页 摘要 随着信息化建设的不断深入,人们对管理信息系统软件的要求也不断提高 传统的胖客户端架构和瘦客户端架构已经不能满足构建某些软件系统的需要 人们急需一种新的架构技术来适应软件的发展智能客户端技术的出现为解决 此问题提供了一种良好的解决方案智能客户端结合了传统胖客户端和瘦客户 端的优点,摒弃了它们的缺点,为用户提供胖客户端应用程序的运行效率和瘦 客户端应用程序易于部署和更新的优点,同时还提供给用户丰富且响应迅速的 用户界面,并且很好的利用了本地软硬件资源,节省开发的成本和开发周期, 适合偶尔连接的应用场景 本文首先分析了传统的胖客户端架构和瘦客户端架构的优缺点,从而引出 了智能客户端的概念,接着介绍了智能客户端的类型,分析了智能客户端的代 表特征:利用本地资源利用网络资源支持偶尔连接的用庶智能部署和更新其 次,详细研究在n e t 平台下构建w i n d o w s 智能客户端应用程序要涉及到的关 键技术,主要包括:智能客户端层次结构数据处理技术偶尔连接技术智能客户 端的部署和更新技术以及安全性问题等最后,用智能客户端技术在n e t 平台下 构建一个完整的智能客户端实例( p r o j e c t m a n a g e 项目管理系统) ,在设计上, 主要关注智能客户端结构及关键技术的研究与实现,而不是业务逻辑的实现, 简要介绍了基于智能客户端的项目跟踪管理系统,着重分析了智能客户端关键 技术的具体实现 关键词:智能客户端,w e b 服务,离线操作,设计模式 西南交通大学硕士研究生学位论文第1i 页 a b s t r a c t w i t ht h ed e e p e n i n go ft h ed e v e l o p m e n to fi n f o r m a t i o nc o n s t r u c t i o n ,t h e r e q u i r e m e n tf o rm a n a g e m e n ti n f o r m a t i o ns y s t e mh a sb e e ni n c r e a s i n ga sw e l l t h e t r a d i t i o n a lf a tc f i e n ta r c h i t e c t u r ea n dt h i n c l i e n ta r c h i t e c t u r ec a n ts a t i s f i e dt h e d e m a n do fb u i l d i n gs o m es o f t w a r es y s t e m p e o p l en e e dak i n do fn e wa r c h i t e c t u r e t e c h n i q u eu r g e n t l yt oa d a p tt h ed e v e l o p m e n to fs o f t w a r e t h ee m e r g e n c eo fs m a r t c l i e n t p r o v i d e sak i n do fg o o ds o l u t i o nt ot h ep r o b l e m s m a r tc l i e n ta p p l i c a t i o n s a r ed e s i g n e dt oc o m b i n et h eb e n e f i t so ff a tc l i e n tw i t ht h eb e n e f i t so ft h i nc l i e n ta n d d i s c a r dt h e i rd i s a d v a n t a g e s t h es m a r tc l i e n tc a l lp r o v i d eu s e r sw i t har i c ha n d r e s p o n s i v eu s e ri n t e r f a c ea n daw a yt ot a k ea d v a n t a g eo fl o c a lh a r d w a r ea n ds o f t w a r e r e s o u r c e s , a n ds a v et h ec o s ta n dt h ec y c l eo fd e v e l o p m e n t ,s u i tt h ea p p l i c a t i o ns c e n e w h i c hc o n n e c t so c c a s i o n a l l y t h i sp a p e ra n a l y z e st h ea d v a n t a g e sa n ds h o r t c o m i n g so ft r a d i t i o n a lf a tc l i e n t a r c h i t e c t u r ea n dt h i nc l i e n ta r c h i t e c t u r ef i r s t ,t h u sl e a d su pt ot h ed e f i n i t i o no fs m a r t c l i e n t ,t h e ni n t r o d u c e st h et y p e o f s m a r tc l i e n t ,d i s c u s s e st h ed i s t i n c t c h a r a c t e r i s t i c :m a k eu s co fl o c a lr e s o u r c e s , m a k eu s eo fn e t w o r kr e s o u r c e s ,s u p p o r t o c c a s i o n a u yc o n n e c t e du s e r s a n dp r o v i d e i n t e l l i g e n t i n s t a l l a t i o na n d u p d a t e s e c o n d l y , t h ep a p e r s t u d i e ss m a r tc l i e n ta r c h i t e c t u r ea n dc o r r e l a t i v e t e c h n i q u e ,i n c l u d i n ge s t a b l i s h i n gc o n n e c t ,h a n d l i n gd a t a ,o c c a s i o n a l l yc o n n e c t , s e c u r i t y ,d e p l o y i n ga n du p d a t i n gs m a r tc l i e n ta p p l i c a t i o n sa n ds oo n f i n a l l y ,u s i n g s m a r tc l i e n tt e c h n o l o g yc o n s t r u c t sp r o j e c t m a n a g es y s t e mo n n e tp l a t f o r m i t f o c u s e so nt h es t r u c t u r eo ft h es m a r tc l i e n ta n dt h ed e s i g no ft h ec o r et e c h n o l o g y , b u t n o tt h ed e s i g no ft h eb u s i n e s ss e r v i c e t h ep a p e rs i m p l yi n t r o d u c e sp r o j e c t m a n a g e s y s t e mb a s e do ns m a r tc l i e n t , a n dp u t se m p h a f i so na n a l y z i n gt h ed e s i g no ft h ec o r e t e c h n o l o g yo ft h es m a r tc l i e n t k e yw o r d s :s m a r tc f i e n lw e bs e r v i c e s ,o f f l i n eo p e r a t i o n ,d e s i g np a t t e r n 西南交通大学曲南父遗大罕 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学 校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查 阅和借阅。本人授权西南交通大学可以将本论文的全部或部分内容编入有关 数据库进行检索,可以采用影印、缩印或扫描等复印手段保存和汇编本学位 论文。 1 保密口,在年解密后适用本授权书; 2 不保密寻使用本授权书。 学位论文作者签名:刘。妮 日期:o d d g 6 。沙 指导老师签名: i 名铘 日期: z 唧乎莎巧 西南交通大学学位论文创新性声明 本人郑重声明:所呈交的学位论文,是在导师指导下独立进行研究工作 所得的成果。除文中已经注明引用的内容外,本论文不包含任何其他个人或 集体已经发表或撰写过的研究成果。对本文的研究做出贡献的个人和集体, 均已在文中作了明确的说明。本人完全意识到本声明的法律结果由本人承担。 学位论文作者签名:刘妮 2 0 0 8 年6 月2 6 日 西南交通大学硕士研究生学位论文第1 页 1 ,1 课题背景 第1 章绪论 在信息技术快速发展的今天,i n t e m e t 、i n t r a n e t 应用受到了各种各样的 挑战,丰富的客户端表现与松散耦合的分布式结构得到了企业系统架构师与开 发人员的认同。虽然不同的厂商对未来的网络应用的理解与宣传不尽相同,但 是一个高度交互、高性能、高效开发的客户端正在成为一种发展趋势。 从早期的单机应用程序到胖客户端系统架构、瘦客户端系统架构。据 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 架构。 尽管瘦客户端系统架构是市场的主流,但胖客户端系统架构凭借其固有的特点 依然在市场上占有一席之地。为了有效使用本地资源,胖客户端技术应运而生。 胖客户端和瘦客户端依然存在争论,胖客户端能够带来更加丰富的用户体验, 具有快速开发的效率,能够有效使用本地资源,这恰恰是瘦客户的缺点。瘦客户 端具有更加广阔的网络访问空间,易于系统更新和部署等优势。一方的优势又成 了另一方的劣势,使得软件工程师在软件开发和设计时做出选择,割舍一部分系 统优点。如何将二者的优点相融合使其取长补短,已经成为软件界追求的目标。 为达到这一目标,微软提出了智能客户端的概念。智能客户端是易于部署管 理的客户端应用程序,可通过统筹使用本地资源和到分布式数据资源的智能连 接,提供适应的、快速响应的和丰富的交互式体验。智能客户端代表了一种全新 的开发模式,它同时具有c s 架构的丰富用户体验和b s 架构的简单部署及容 易维护的优点,它既有w i n d o w s 程序的强大用户界面,又可以享受w e b 应用升 级和更新的便捷。 总之在i b m 、微软等计算机和软件工业巨头大力推动下,智能客户端正在 逐渐成为一种流行和有效的客户端应用程序,而其中的组成部分x m l ,w e b s e r v i c e 已经或者正在成为事实上的工业标准。 西南交通大学硕士研究生学位论文第2 页 1 2 国内外现状 微软给出的s m a r tc 1i e n t 示例,重点向我们展示了a u t o - u p d a t e 自动更新, o f f l i n e 离线状态下的数据处理等特征;而它本身也是在已有的n e tw i n d o w s f o r m 技术或者o f f i c e 技术等基础上,修正了原有的一些缺点。在当前企业应 用中,比较有名的智能客户端实例是美国微软、纳斯达克和 p r i c e w a t e r h o u s e c 0 0 p e r s 一起构建的e x c e l 投资者助理系统和d e l l 构建的客 户集成桌面系统。 国内智能客户端研究方面比较缺乏,主要是推广阶段,实际的应用很少。 企业的应用大部分还停留在b s 和c s 的模式上,并没有改造应用程序为智能 客户端,主要原因在于,智能客户端作为一个新的思想,在开发技术方面还不 是很成熟,用于创建智能客户端的软件包较少,而且实现不完整,如果要开发 真正的智能客户端程序要自己编写大量代码。另外一个原因是智能客户端涉及 到多项技术,国内的推广和培训工作并未完全展开,企业对于是否需要使用智 能客户端技术还处于观望状态。这几个原因导致国内研究滞后于国外。 智能客户端全新的设计理念、优秀的系统性能、便利的维护措施等技术特 点正吸引着大量的研究人员对它进行研究与实践。当前一些企业在软件系统开 发中,都或多或少的开始加入智能客户端技术的思想。随着n e t 技术的进一步 成熟,尤其是w e bs e r v i c e s 技术的更广泛的应用,我们相信智能客户端技术将 会成为良好的解决方案,应用到各种软件技术中。 1 3 论文的研究内容 本文在对传统信息系统架构技术进行分析比较的基础上,引入智能客户端 技术进行研究,并以基于n e t 平台实现w i n d o w s 智能客户端应用程序的关键技 术为重点研究对象,结合具体的研究及实践经验提出相应的解决方案,进而在 一个具体的实例中加以实现。本文的主要研究内容包括: 1 智能客户端结构。分析当前管理信息系统主流架构技术的优缺点,引出智能 客户端的概念和特征,得出该结构的优越性。 2 智能客户端的数据处理技术。分析了数据处理过程中面临的数据缓存和数据 西南交通大学硕士研究生学位论文第3 页 并发等问题,给出相应的解决方案。 3 通信方式选择。首先介绍了智能客户端应用程序连接到其他资源的几种方法, 然后分析得出了w e bs e r v i c e s 是实现智能客户端应用程序与其他资源连接的最 佳方案。 4 偶尔连接技术。首先分析了以数据为中心和面向服务这两种偶尔连接设计策 略的优缺点,然后根据实际具体情况得出本文选用面向服务的方法实现偶尔连 接的智能客户端应用程序。 5 部署与更新技术。分析了无接触部署、从文件共享运行代码、x c o p y 和w i n d o w s 安装程序包等智能客户端应用程序部署和更新方法。 6 智能客户端的安全性。分析智能客户端所涉及的安全性问题,包括:身份验 证、授权、保护敏感数据。 7 智能客户端技术的应用与实现。结合以前参与的项目( 项目管理系统) ,针对 其存在的不足,通过智能客户端技术来重构原有的解决方案。 1 4 论文的组织结构 本文正文共分为四章,具体内容安排如下: 第一章,绪论主要介绍了本项目的研究背景,国内外研究现状,论文的研究 内容及组织结构。 第二章,简要介绍了智能客户端的概念、特征和类型,并与胖客户端和瘦客 户端进行比较,总结出智能客户端的优势。 第三章,详细研究了在n e t 环境下开发智能客户端程序存在的几个关键问题 及其对应的解决方案。包括智能客户端结构、数据处理技术、通讯方式选择、 偶尔连接设计、应用程序的部署和更新以及安全性设计等。 第四章,根据对智能客户端技术的研究,构建具体的智能客户端实例,给出 了智能客户端关键技术在系统中的实现。 西南交通大学硕士研究生学位论文第4 页 第2 章智能客户端简介 本章将通过分析比较目前主流的两种软件架构技术,分别总结了其各自的 优缺点,进而引出了智能客户端概念与特征,并介绍了智能客户端的分类,为 后面章节进一步论述智能客户端技术进行了概念及相关知识的铺垫。 2 1 智能客户端定义 当前传统的客户端应用程序模型大致分为两种:胖客户端模型( c s ,客户 端服务器模型) 和瘦客户端模型( b s ,浏览器服务器模型) 。要了解智能客 户端以及它如何将胖客户端和瘦客户端应用程序的优点结合起来,首先要对胖 客户端应用和瘦客户端应用的概念及其优劣有所了解。下面首先对胖客户端应 用程序和瘦客户端应用程序进行简要分析介绍,然后介绍智能客户端的定义。 2 1 1 胖客户端应用程序 胖客户端应用程序,就是使用客户端服务器端的应用程序,通常也称为 c s 应用程序。它将应用程序处理分成两部分:一部分由用户的桌面计算机运 行,另一部分由一个集中的服务器执行。一个典型的胖客户端包含一个或多个 在用户的计算机上运行的应用程序,用户可以利用该应用程序来查看并操作数 据、并处理一些或所有的业务规则,同时提供一个用户界面及时对用户的操作 出响应。服务器负责管理对数据的访问并负责执行一些或所有的业务规则。这 种模式的特点是,胖客户端应用程序是在用户的计算机上运行的i l l 。 胖客户端应用程序具有高质量、响应迅速的用户体验,以及良好的开发平 台支持的优点,但是,它也存在着显著的缺点,那就是难于部署和维护。随着 应用程序和客户端平台的复杂性不断增加,以可靠且安全的方式将应用程序部 署到客户计算机的难度也将不断增加。如果部署了不兼容的共享组件或软件库, 则一个应用程序可以很容易地破坏另一个应用程序,这种现象称为应用程序脆 弱性。新版本的应用程序通常通过重新部署整个应用程序来提供,这可能使应 用程序脆弱性问题变得更加严重。 西南交通大学硕士研究生学位论文第5 页 2 1 2 瘦客户端应用程序 瘦客户端应用程序通常也叫做b s 应用程序。它是指基于浏览器的应用程 序,也就是w e b 应用程序。由于基于浏览器的瘦客户端应用程序的安装和部署 是在w e b 上进行的,因此,它每次使用的应用程序都将是最新的。 瘦客户端应用程序具有易于安装、部署和维护等优点,同时也带来了很多 缺点。首先,浏览器必须总与网络连接,这意味着在断开连接时无法访问应用 程序;其次,瘦客户端应用程序的大部分逻辑和状态都位于服务器上,需要频 繁地向服务器发送数据和处理请求,浏览器必须等待响应到达,然后用户才能 继续使用该应用程序;因此,该应用程序的响应速度通常要比胖客户端应用程 序慢的多,该问题在低带宽和高延迟的情况下被恶化了。 2 1 3 智能客户端应用程序 智能客户端( s m a r tc l i e n t ) 概念作为m i c r o s o f t n e t 平台的一个特性而提 出,它代表了一种全新的开发模式,既有w i n d o w s 程序的强大用户界面,又可 以享受w e b 应用升级和更新的便捷。它是微软公司n e t 思想的具体体现,是 一种新型技术架构的典型代表1 2 1 。 智能客户端是一个连接到互联网上的设备,允许用户的本地应用程序通过 w e b 服务( w 曲s e r v i c e s ) 和服务器应用程序交互。智能客户端相对于传统的胖 客户端和瘦客户端而言,它结合了二者的优点,而避免了他们的缺点。我们可 以从图2 1 中看出,智能客户端具有丰富用户体验、离线工作能力、响应速度 快、开发效率高的胖客户端所具备的优点,同时它也具有易于部署和维护、易 于修改业务逻辑等瘦客户端所具有的优点。 辟客户智能客户螬囊客户端 图2 - 1 三种结构的比较 西南交通大学硕士研究生学位论文第6 页 2 2 智能客户端特征 智能客户端应用程序通常具有形形色色的要求,因此在设计和实现方面会 有较大的差异。但是,所有智能客户端都具有下列部分或全部特征d 1 : 可以利用本地资源; 可以利用网络资源; 能支持偶尔连接的用户; 提供智能安装和更新。 许多应用程序并不需要具有上述所有特征。当设计智能客户端应用程序时, 将需要仔细考虑应用程序方案,然后决定智能客户端应用程序要求具备上述哪 些特征。 2 2 1 利用本地资源 随着计算机工业的快速发展,现在的客户端计算机性能不断增强,处理速 度也大大提高,因此,合理地利用客户端计算机资源应该在解决方案中着重考 虑。 智能客户端应用程序可以在本地执行程序代码和访问部署( 或缓存) 在客 户端上的数据,以及为应用程序提供内容丰富且响应迅速的用户界面,使用户 能够执行复杂的可视化操作和数据处理。 智能客户端应用程序也可以利用客户端硬件资源( 如条码读取器、摄像头、 指纹识别器等) 。这使得它非常适合于解决瘦客户端应用程序( 如销售点终端应 用程序) 无法很好解决的问题。 此外,智能客户端还可以利用本地软件资源,比如o f f i c e 或其他可以协同 工作的应用程序。智能客户端可以创建与多个应用程序协调工作的解决方案, 使客户端更为有效地工作。 2 2 2 利用网络资源 目前,网络化程度越来越高,智能客户端应用程序能够很容易地连接到网 络,并且利用网络资源和服务。 一般来说,智能客户端通常都不是孤立的应用程序,每个智能客尸- 端都应 西南交通大学硕士研究生学位论文第7 页 是分布式解决方案的一部分。在企业内网或者互联网范围内,智能客户端应用 程序能够通过w e bs e r v i c e 或者r e m o t i n g 等技术轻松地与远程系统连接,并与 之进行数据交换,并且可以对数据进行分析或整合,从而使用户能够进行更为 有效的决策。例如,一个运行在p d a 上的提供智能导航的智能客户端应用程 序,可以使用网络提供的服务和数据来寻找出最佳的行驶路线。智能客户端应 用程序的这一性质决定了它也可以对外提供有价值的数据整合、分析和转换服 务,可以向用户提供类似于门户的功能,从而将完全不同的数据和服务加以协 调并集成到总体解决方案中。 2 2 3 支持偶尔连接的用户, 虽然现在的网络连接程度越来越高,但是在许多情况下,不可能无时无刻 都存在网络连接,例如在旅行途中,可能会暂时失去网络连接。另外,在网络 维护时,也无法提供网络连接。 智能客户端支持偶尔连接的用户,从而使用户可以在明确脱机、使用低带 宽网络、高延迟的网络,或者网络连接时断时续的情况下继续高效地工作。 偶尔连接的智能客户端在许多常见的情况下都极其有用。许多脱机情况涉 及到用户显式断开网络连接,或是在没有网络连接的情况下工作。例如:保险 代理可能需要在离开办公室的时候创建新的保险单。他可能需要在无法连接到 办公室中系统的情况下,输入所有相关数据,计算保险费,并签发保险单详细 信息。 要给予应用程序完整的偶尔连接功能,需要提供一种基础结构,使用户能 够在没有连接到网络资源时工作。这种基础结构至少应该包括:客户端数据的 缓存、数据的同步以及数据的冲突处理等几个部分。 2 2 4 提供智能安装和更新 传统胖客户端所具有的最大问题发生在部署和更新应用程序的时候。许多 胖客户端应用程序具有大量复杂的安装要求,并且可能通过注册组件或者在公 共位置安装d l l 来共享代码,从而导致应用程序脆弱性和更新困难。经常会出 现这样的情况,安装一个应用程序会中断另一个应用程序。诸如“d l lh e l 1 等问题使得安装和维护客户端应用程序变得困难。 西南交通大学硕士研究生学位论文第8 页 开发人员可以对智能客户端应用程序进行设计,以使其按照远比传统胖客 户端应用程序更智能和灵活的方式来管理他们的部署和更新。他们可以避免上 述问题,从而有助于减少应用程序的管理成本。n e t 框架使得智能客户端部署 和更新应用程序十分的方便。首先,智能客户端应用程序可以在其运行时或位 于后台时对自身进行自动更新。这一功能使其可以逐个角色地进行更新或以分 阶段的方式更新。此外,n e t 框架还可以对应用程序组件进行强制命名,这将 意味着应用程序可以指定用来生成和测试其确切版本的组件,并通过这些版本 的组件运行。并且,n e t 框架使应用程序可以相互隔离,以便在安装一个应用 程序时不会破坏另一个应用程序,并且同一个应用程序的多个版本可以并列部 署,这些功能大大简化了应用程序部署,并且消除了许多与胖客户端应用程序 相关联的应用程序脆弱性问题。 2 3 智能客户端类型 智能客户端在设计和实现方面差异很大,这既包括应用程序的要求,也包 括可以使用它们的方案和环境的数量。因此,智能客户端可以采取许多种不同 的形式和风格。根据智能客户端应用程序所面向的平台,可以将这些形式划分 为三大类: w i n d o w s 智能客户端应用程序; o f f i c e 智能客户端应用程序; 移动智能客户端应用程序。 2 3 1w j n d o w s 智能客户端 面向w i n d o w s 的智能客户端应用程序是在传统胖客户端应用程序的基础上 发展而来的,并且提供特定的面向特殊目标的功能。这种类型的应用程序通常 使用w i n d o w s 窗体来提供用户熟悉的w i n d o w s 风格的用户界面,由应用程序本 身提供大部分功能,而且不依赖于其他应用程序来提供用户界面,但是在适当 的时候可以与其他应用程序集成或者协调其他应用程序。w i n d o w s 智能客户端 应用程序通常适合于在桌面p c 、膝上性p c 或平板p c 上运行。 西南交通大学硕士研究生学位论文第9 页 2 3 2o f fic e 智能客户端 按照m i c r o s o f t 的计划,未来的o f f i c e 智能客户端解决方案,可以将通过 w e b 服务访问的数据源与w o r d 、e x c e l 等办公应用程序的功能集成起来,这样 的o f f i c e 智能客户端应用程序将不只是文档数据的静态容器,当用户在文档内 工作时,智能客户端可以提供上下文相关的数据,可以将w e b 服务公开的数据 转换为工作流,提供任务指导数据分析协作报告和呈现功能。 m i c r o s o f to f f i c e2 0 0 3 提供了用来生成智能客户端应用程序的有用平台。 它支持x m l ,并且可以将数据与文档的其他方面分开,以便数据可以由其他应 用程序重用。m i c r o s o f to f f i c e 中的应用程序数据,可以由多个应用程序中相 同的客户定义x m l 进行说明,开发人员可以将这些数据集成到智能客户端应用 程序中。 2 3 3 移动智能客户端 移动智能客户端是在智能设备上运行的应用程序,这些智能设备包括 p o c k e tp c 、s m a r t p h o n e 以及其他超小型台式设备( 如机顶盒) 。这些应用程序 是使用n e t 框架压缩版开发的。n e t 框架压缩版是完整的n e t 框架的子集, 有完整的n e t 框架的许多功能,并支持x m l ,并且能使用w e b 服务。它被进行 了优化以便在超小型台式设备上使用,并且它包含用于开发用户界面的 w i n d o w s 窗体设计器。 移动智能客户端应用程序通常用于提供对重要数据和服务的移动访问,或 在用户处于移动状态时收集和整合数据。这些类型应用程序的示例有保险和金 融数据收集应用程序、库存管理应用程序和个人工作效率管理应用程序。 西南交通大学硕士研究生学位论文第1 0 页 第3 章智能客户端结构及关键技术研究 由第二章介绍可知,智能客户端共有三种类型:w i n d o w s 智能客户端、o f f i c e 智能客户端和移动智能客户端。其中w i n d o w s 智能客户端目前运用相对广泛。 要构建优秀的w i n d o w s 智能客户端应用程序,在开发过程中需从多个方面进行 考虑。本章将详细研究在n e t 平台下实现w i n d o w s 智能客户端应用程序要涉 及到的关键技术。主要包括:智能客户端体系结构的研究、数据处理技术、通 讯方式选择、偶尔连接设计、应用程序的部署和更新以及安全性设计等。 3 1 智能客户端体系结构 在目前的应用系统中,不论是a s 结构还是b s 结构,大多都采用分层设 计的思想进行开发。当前主流的是三层结构的系统框架,在此框架下,对于每 一个具体的系统而言,都可以抽象的划分为三个逻辑层次,即:表示层、业务 逻辑层和数据层。 1 表示层 表示层通常又称为用户界面层,是真正呈现给用户的部分,是和用户结合 最为紧密的一层。用户通过此层操作系统功能,处理输入、输出,进行人机交 互。 , 2 业务逻辑层 业务逻辑层即我们通常说的中间层,它相当于应用程序的本体,包含了与 核心业务规则相关的逻辑,是联系表示层和数据层的“桥梁”。它可以响应用户 发送的请求,执行某种业务规则。 3 数据层 数掘层主要是为实现业务逻辑的业务逻辑层服务的,它将业务层中的数据 存取部分独立出来,作为单独的一个逻辑层,主要提供对数据的存储和访问。 所谓的三层结构,是指在逻辑上的抽象划分,而不是在实际的布局上分三 个物理位置来分布部署表示层、业务层和数据层。在实际开发中,可以把业务 层和数据层部署到一台机器上,也可以把表示层和业务层部署到一台计算机上。 西南交通大学硕士研究生学位论文第”页 然而这种三层结构在应用于智能客户端系统的开发时,会带来一些问题。 智能客户端与传统的b s 和c s 结构不同,它需要同时满足自动更新和离线操 作的特性,如果将此类操作统一部署在服务器端,这样不仅增加了系统服务器 端的复杂性,同时也失去了客户端离线操作的能力,在网络不联通的情况下, 系统将无法正常运行。如果将此类操作封装在客户端又失去了其通用性。 为此,本文在原有三层结构的基础上,针对智能客户端应用程序的特点, 构建了基于w e bs e r v i c e s 的智能客户端体系结构,客户端和服务器通过w e b s e r v i c e s 进行交互。客户端在原有三层结构的基础上增加了事务逻辑层,该层 主要负责客户端的本地操作,在离线状态下使系统仍然能够正常运行,并且还 负责调用服务器端的w e b 服务。在服务器端设计w e b 服务的接口,并实现与数 据库同步的业务操作。在客户端创建w e b 服务代理类的实例,就可以像调用本 地组件一样访问远程的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 技术实现对数据的访问和关键 业务逻辑;数据层实现对数据的访问和存储。图3 - 1 为本文采用的结构。 客 表示层( 用户界面) 户 弋f mt , 坷珂 事务逻辑层( 本地操作) 广 弋夕 月艮 w e b 服务接口 务业务逻辑层 器 彳产 端j 数据层 图3 - 1 智能客户端体系结构 西南交通大学硕士研究生学位论文第12 页 在该体系结构中,上层使用下层提供的服务,且仅通过调用层次间的特定 接口获取下层服务,下层暴露特定接口为上层提供特定服务,且不依赖于上层, 也不知道上层的存在。使用多层结构开发系统,具有以下优点: 可伸缩性好 分层的应用系统可按应用要求部署逻辑层次,适用于不同网络。 可维护性好 将应用系统分层后,各层之间相对独立,一个层上的功能变更不会影响到系统 的其他层。 可重用性好 由于采用面向对象的组件构成,进一步增加了系统的可重用性。 3 2 数据处理技术 为了使智能客户端应用程序能有效的工作,我们需要对数据进行适当的管 理,以确保其有效、一致和安全。可以通过服务器应用程序( 例如,通过w e b 服务) 向客户端提供应用程序数据,或者应用程序使用自己本地缓存数据。 如果数据是由应用程序提供的,则智能客户端应用程序可以缓存数据以改 善性能或者支持脱机使用。如果智能客户端应用程序提供在本地修改数据的能 力,则必须在以后将客户端数据的更改与服务器端应用程序进行同步,以保持 数据的一致性和完整性。在这种情况下,我们必须决定客户端应用程序如何处 理与服务器进行数据同步和处理数据冲突。因此,我们在客户端处理数据时, 应该认真考虑以下问题: 数据类型 数据并发 数据缓存 3 2 1 数据类型 智能客户端通常需要处理两种类别的数据:只读引用数据和瞬态数据。通 常情况下,对这两种类型的数据处理方式是不同的。下面将详细的分析这两种 数据类型: ( 1 ) 只读引j 月数据 西南交通大学硕士研究生学位论文第13 页 只读引用数据是指那些不会由客户端更改并且被客户端用于引用目的的数 据。因此,从客户端的观点看来,该数据为只读数据,并且客户端不会对其执 行更新、插入或删除操作。只读引用数据很容易在客户端上进行缓存。通过在 客户端上存储和使用引用数据,可以减少需要从客户端传输到服务器的数据量, 改善应用程序的性能,帮助启用脱机功能,并提供早期数据验证以提高应用程 序的可用性。 尽管客户端无法更改只读引用数据,但可以在服务器上进行更改( 例如, 由管理员或超级用户更改) 。因为数据在客户端上是只读的,所以无须跟踪客户 端更改。 ( 2 ) 瞬态数据 瞬态数据是指既可以在服务器上更改,也可以在客户端上更改的数据。通 常情况下,瞬态数据作为用户输入和操作的直接或间接结果而发生更改。在此 情况下,在客户端或服务器进行的更改都需要在某个时刻进行同步。这种类型 的数据在智能客户端中具有多种用途,包括: 添加新信息。如添加项目或任务等详细信息。 修改现有信息。如更新任务详细信息。 删除现有信息。如从数据库中删除信息。 在智能客户端上处理瞬态数据的最困难的方面在于,这些数据通常可能在 多个客户端上同时进行修改,因而可能引发数据冲突,因此,我们必须采取相 应的冲突解决策略来保证数据的正确性、一致性和完整性。 3 2 2 数据并发 由上文可知,瞬态数据是指既可以在服务器上更改,也可以在客户端上更 改的数据。因为这种数据可以在多个客户端上更改,由此带来的一个问题是: 在将任何客户端更改与服务器进行同步之前,服务器上保存的数据可能发生更 改。我们需要采用某种机制来确保在对数据进行同步时,数据冲突能够得到适 当的处理,并且最后得到的数据是一致和正确的。数据能够由多个客户端进行更 新的能力称为数据并发。 研究现状表明,对于并发操作,目前较常用的方法是使用“锁”,对特定资 源允许一个客户端保持数据上的锁,以禁止任何其他客户端修改数据,直至客 西南交通大学硕士研究生学位论文第14 页 户端自己的更改完成为止。这种方式虽然能保证解决并发,但对于具有多用户 和能够离线使用的智能客户端而言并不是很好的选择。因为单个用户或客户端 可能由于疏忽而长时间地保持锁定,所以该锁可能会妨碍资源及时得到释放, 从而严重影响应用程序的可用性。对于多用户,由于某个应用程序独占资源, 使其他用户等待,用户体验比较差。但是,当需要完全控制对重要资源所做出 的更改时,这种加“锁”的方式可能是适当的。如果客户端要脱机工作,则不 能使用这种方式,因为客户端无法对数据加锁。 本文所研究的w i n d o w s 智能客户端应用程序可在联机和脱机的模式下工 作,数据可保存在服务器和客户端中,因此在数据同步和更新时可能会产生数 据冲突。例如,客户端脱机更改的数据在联机同步时发现原有信息已被更改而 导致冲突。针对此现象,本文采用的并发处理机制不是锁定数据,而是在需要 更新数据时,将原始数据随更新请求和已更改的数据一起发送。随后,针对当 前数据检查原始数据,查看二者是否匹配。如果原始数据和当前数据匹配,则 执行更新,否则,拒绝更新请求,并产生更新失败异常,并提示用户如何保存 数据。 这种并发处理方式提供了一种良好的机制,允许每个客户端访问数据,并 可对数据进行处理,用户体验较佳。在n e t 框架下,可以采用数据集( d a t a s e t ) 和适配器( a d a p t e r ) 来实现这一并发处理机制。 3 2 3 数据缓存 智能客户端为了能及时的响应用户的操作,同时也是为了满足脱机离线工 作的需要,就必须将服务器端数据缓存到本地。本地数据可以暂时保存在内存 中,a d o n e t 里的d a t a s e t 本身就是可以用内存临时存储的数据对象,数据在 内存中存储的值是一个临时过度,当数据需要经过操作后保存回远程数据库时, 可以使用d a t a s e t 的数据适配器d a t a a d a p t e r 将变化的量返回数据库操作,这 样既加快了本地的反应又节省了带宽。 通过缓存数据,能够改善应用程序的性能并提供脱机工作所需;的数据。但 是,我们需要认真考虑在客户端中缓存哪些数据、如何管理这些数据。另外对 于敏感数据,我们还应当采取加密等方式进行保护。 缓存数据主要有两种形式: 西南交通大学硕士研究生学位论文第15 页 短期数据缓存:一般常用数据缓存在内存中,这种数据只是为了提高系 统的性能。虽然在内存中缓存数据对性能有益,但不能持久。 长期数据缓存:这种数据主要为了实现脱机工作的需要。通过在持久性 媒体( 如本地文件系统) 中缓存数据,可以在没有连接到服务器时使用 应用程序。 考虑到上述两种情况,既要对性能有益,又要满足脱机使用的特性,本文采 用了短期数据缓存和长期数据缓存相结合的方式对客户端数据进行缓存处理。主 要的思想是:当应用程序处于联机状态时,从服务器端下载数据,缓存在内存中, 供应用程序读取数据;当应用程序关闭时,将内存中的缓存数据经过序列化处理 保存在本地硬盘中,下次客户端再启动应用程序时,将本地文件进行反序列化, 存入内存。 智能客户端通常使用数据集( d a t a s e t ) 缓存数据。d a t a s e t 提供r e a d x m l 和w r i t e x m l 方法,可以简单的将d a t a s e t 中的数据写入本地) ( i i l l 文件中。但是, 由于) ( j i l l 文件中的数据是明文,没有安全性可言,在需要对本地数据进行保护。 的场合并不适用。另外,x m l 文件仅仅保存了数据,而对于d a t a s e t 的一些状 态( 例如d a t a r o w r o w s t a t e ) 无法保存,因此,当客户端从本地文件载入数据 到数据集中,在与服务器进行数据同步时,无法通过d a t a s e t g e t c h a n g e s ( ) 方法来获得客户端对数据集所做过的修改。因此,本文将客户端数据集序列化 后再进行缓存,若要从本地文件读取数据,再将其反序列化即可。 3 3 通信方式的权衡与选择 智能客户端是分布式应用系统的一部分,因此,它需要连接到其他资源并 与这些资源进行通信。这些资源可以是客户端进程或组件,也可以是网络资源, 例如w e b 服务。 3 3 1 几种通信方式的介绍 我们在设计智能客户端应用程序时,可以采用多种方法使智能客户端应用 程序连接到其它资源。这些方法包括: m i c r o s o f t n e te n t e r p r i s es e r v i c e s m i c r o s o f t n e tr e m ( , t i n g 西南交通大学硕士研究生学位论文第16 页 m i c r o s o f tm e s s a g eq u e u i n g w e bs e r v i c e s ( 1 ) m i c r o s o f t 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 + j 艮务基 础结构的访i h - 1 4 j 。使用c o m + 服务的n e t 组件称为服务组件。 e 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 所具有的紧耦合性质,他们通常不是智 能客户端应用程序和位于远程系统上的服务之间进行通讯的最佳选择。 ( 2 )m i c r o s o f t n e tr e m o t i n g n e tr e m o t i n g 提供了灵活且可扩展的远程调用( r p c ) 机制,n e t 组件 可以通过该机制进行通信。通过n e tr e m o t i n g ,您可以使用多种协议( 如h t t p 或t c p ) 、数据编码选项( 包括x 儿、s o a p 和二进制编码) 和各种对象激活模型 嘲。它可以提供在对象之间进行通讯的快速而有效的手段。 n e tr e m o t i n g 基础结构要求客户端具有关于远程对象的公共方法和属性 的详细知识,以便提供客户端代理。确保客户端具有该知识的一种方法是向客 户端分发该远程对象的完整实现。然而,更为有效的方法是将公共方法和属性 包括到接口定义中,并且将这些接口编译为他们自己的程序集。然后,客户端 可以使用接口程序集来提供适当的代理,而远程对象可以使用接口程序集来实 现必要的功能。而且,使用该技术时,无须将完整的远程对象重新发布到客户 端,就能够更新这些远程对象的实现。 n e tr e m o t i n g 在客户端和服务器都需要。n e t 实现的对象;因此,对于要 求在不同环境之间具有互操作的情形,它并不合适。对于在客户端和服务器端 之间采用紧耦合r p c 风格交互是并不适当的情形,n e tr e m o t i n g 也是不适合 的。 ( 3 ) m e s s a g eq u e u i n g 借助于m i c r o s o f tm e s s a g eq u e u i n g ,可以很容易地通过发送和接收消息, 快速而可靠地与应用程序通信。消息处理提供了有保汪的消息传递以及执行许 多业务过程的可靠方式。消息队列提供了一种可以在客户端应用程序内使用的 松耦
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 财务会计学模拟题
- 自动控制原理考试题
- 设施维护管理制度(9篇)
- 2024-2025学年冀教版八年级下学期英语期末试卷(含答案)
- 幼儿园《疫情防控安全》教案5篇
- 2023年电大开放教育货币银行学网考题库
- 2025年android自学教程!BAT等大厂必问技术面试题BAT大厂面试总结-bat企业安卓课程
- 期末应用题专项训练:分数的加法和减法(含解析)-2024-2025学年数学五年级下册人教版
- 建筑施工特种作业-建筑电工真题库-9
- 日语听力题目大全及答案
- DBJ50-255-2022 建筑节能(绿色建筑)工程施工质量验收标准
- 乒乓球体育课教案
- 幼儿园大班语言课件:《毕业诗》
- 劳动力保证措施以及计划安排
- 2021利达JB-QG-LD988EL JB-QT-LD988EL 火灾报警控制器 消防联动控制器调试手册
- 24春国家开放大学《班级管理》形考任务1-4参考答案
- 2021年中国社会科学院大学统计学原理期末精练试卷
- 手术室坠床跌倒应急预案
- 2024年《军事理论》考试题库附答案(含各题型)
- 《风力发电厂调试规程》
- 广东省中山市2022-2023学年高二下学期期末数学试题(学生版+解析)
评论
0/150
提交评论