(计算机应用技术专业论文)智能客户端的研究与应用.pdf_第1页
(计算机应用技术专业论文)智能客户端的研究与应用.pdf_第2页
(计算机应用技术专业论文)智能客户端的研究与应用.pdf_第3页
(计算机应用技术专业论文)智能客户端的研究与应用.pdf_第4页
(计算机应用技术专业论文)智能客户端的研究与应用.pdf_第5页
已阅读5页,还剩79页未读 继续免费阅读

下载本文档

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

文档简介

西南交通大学硕士研究生学位论文第1 页 摘要 随着互联网的高速发展,基于b s 架构的应用程序被广泛开发。但是, 随着应用需求的不断扩展,应用程序的复杂性日增,以及终端设备多样化, 传统w e b 应用程序逐渐跟不上步伐,2 0 0 4 年微软提出了智能客户端( s m a r t c 1 l e n t ) 的概念。智能客户端代表了一种全新的开发模式,它同时具有c l s 架构的丰富用户体验和b s 架构的简单部署及容易维护的优点,它既有 w i n d o w s 程序的强大用户界面,又可以享受w e b 应用升级和更新的便捷。 本论文首先阐述了智能客户端的发展历程、定义和基本原理,并且回顾 了b s 架构、c s 架构以及智能客户端的优点和缺点。其中着重探讨了智能 客户端的代表特征:利用本地资源、利用网络资源、支持偶尔连接的用户、 智能部署和更新。 其次,论文讨论了智能客户端的体系结构和涉及的相关技术。其中包括: 使用w i n d o w s 窗体技术构建用户界面、建立连接、数据处理、偶尔连接、安 全性、部署和更新等方面的内容。 最后,给出了一个完整的智能客户端的设计实例( b o o k i n g s y s t e m 机票 预定系统) 。该实例是一个以c o m p o s i t eu ia p p l i c a t i o nb l o c k 构建的组合 型智能客户端应用程序。它围绕机票预定系统建立,实现了航班查询、机票 预定、报表查询、权限管理等基本功能。在设计上,主要关注于智能客户端 的体系结构的实现和相关技术的应用,而不是业务逻辑的实现。在体系结构 的研究中,详细分析了c o m p o s i t eu ia p p l i c a t i o nb l o c k 构建组合型智能客 户端的设计、偶尔连接情况下的数据访问无缝切换的设计、后台自动同步客 户端和服务器数据并处理数据冲突设计、w e b 服务作为中间层实现商务逻辑 和数据访问的设计,并给出了基本的解决方案。在部署和更新上,采用了 v i s u a ls t u d i o2 0 0 5 新增的c i i c k o n c e 技术,使得开发人员花费的精力更少, 并为最终用户提供了更好的安装和更新体验。 本论文对智能客户端技术做了前瞻性的研究和有益的尝试,通过具体的 实例来掌握智能客户端技术在企业级应用程序中的应用,对今后的程序设计 和开发工作起到了推动作用。 关键词:智能客户端;体系结构;偶尔连接;数据缓存;数据同步:数据 并发 西南交通大学硕士研究生学位论文第| i 页 a b s t r a c t n o w a d a y s ,w it h t h eh i g h s p e e dd e v e l o p m e n t o fi n t e r n e t ,t h e a p p l i c a t i o n sb a s i n go nb r o w s e r s e r v e ra r c h i t e c t u r ew e r ed e v e l o p e d i n c r e a s i n g l y b u t w i t ht h e g r o w i n gr e q u i r e m e n t ,t h ei n c r e a s i n g c o m p l e x i t y , a n d t h ed i v e r s i f i c a t i o no ft e r m i n a ld e v i c e s ,t h e t r a d i t i o n a lw e ba p p l i c a t i o n sc a nn o tk e e pu pw i t hs t e p s o ,m i c r o s o f t c o m p a n yp u tf o r w a r dan e wc o n c e p t s m a r tc l i e n ti n2 0 0 4 t h es m a r t c l i e n ta p p l i c a t i o n ss t a n df o rab r a n n e wd e v e l o p i n gp a t t e r n r i c hu s e r e x p e r i e n c eo fc li e n t s e r v e ra r c h i t e c t u r e ,s i m p l ed e p l o y m e n ta n de a s y m a i n t e n a n c eo fb r o w s e r s e r v e ra r c h i t e c t u r ea r et h ec h i e fa d v a n t a g eo f s m a r tc l i e n ta p p l i c a t i o n s t h e yn o to n l yh a v ep o w e r f u lu s e ri n t e r f a c e o fw i n d o w s a p p l i c a t i o n s , b u ta l s o e n j o y t h ec o n v e n i e n c eo f i n s t a l l a t i o na n du p d a t eo fw e ba p p l i c a t i o n s t h i st h e s i sf i r s t l yd i s c u s s e st h ec o u r s e ,d e f i n i t i o na n db a s i c p r i n c i p l eo fs m a r tc li e n t s a n dl o o k sb a c k t h e a d v a n t a g e s a n d d i s a d v a n t a g e s o f b r o w s e r s e r v e ra r c h i t e c t u r e ,c l i e n t s e r v e r a r c h i t e c t u r ea n ds m a r t c l i e n t s t h e n ,i ts t r o n g l yd i s c u s s e s t h e d i s t i n c tc h a r a c t e r i s t i co f t h es m a r tc l i e n t s :m a k eu s eo f l o c a l r e s o u r c e s ,m a k e u s eo fn e t w o r kr e s o u r c e s , s u p p o r to c c a s i o n a l l y c o n n e c t e du s e r sa n dp r o v i d ei n t e l l i g e n ti n s t a l l a t i o na n du p d a t e s e c o n d l y ,t h e t h e s i s s t u d y s m a r tc l i e n ta r c h i t e c t u r ea n d c o r r e l a t i v et e c h n i q u e ,i n c l u d i n gd e v e l o p i n gu s e ri n t e r f a c eb yw i n d o w s f o r mt e c h n i q u e ,e 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 y c 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 s f i n a l l y ,t h et h e s i sp r o v i d e sa ni n t e g r a t e ds m a r tc l i e n ti n s t a n c e b o o k i n g y s y s t e ma p p l i c a t i o n t h ei n s t a n c ei sac o m p o s i t es m a r tc l i e n t a p p l i c a t i o nu s i n gc o m p o s i t eu ia p p l i c a t i o nb l o c k i tb a s e so na i r p l a n e t i c k e t sb o o k i n gs y s t e ma n di m p l e m e n t sm a n yf u n c t i o n s ,s u c ha sq u e r y i n g f li g h t ,b o o k i n gt i c k e t s ,r e p o r t i n g ,a u t h e n t i c a t i o na n da u t h o r i z a t i o n m a n a g e m e n t i nd e s i g nl a y e r ,i tm o r ec o n c e r n st h ei m p l e m e n to fs m a r t c l i e n ta r c h i t e c t u r et h a nb u s i n e s sl o g i c i tg i v e st h eb a s i cs o l u t i o n 西南交通大学硕士研究生学位论文第l ii 页 a n ds e a r c hd e e p l yi nt h ed e s i g no fc o m p o s i t es m a r tc l i e n tb yc o m p o s i t e u i a p p l i c a t i o nb l o c k ,s w i t c h i n gd a t aa c c e s sp a t t e r nf l u e n t l y i n o c c a s i o n a l l yc o n n e c t ,s y n c h r o n i z i n gd a t aa u t o m a t i c a l l yi nb a c k g r o u n d t h r e a db e t w e e nc l i e n ta n ds e r v e r i nt h ei n s t a l l a t i o na n du p d a t e ,i t u s e st h en e wt e c h n i q u e c l i c k o n c et h a tf i r s t l ya p p e a r si nv i s u a l s t u d i o2 0 0 5 e x p e n d sd e v e l o p e r sm u c hl e s se n e r g ya n dp r o v i d ew i t hm o r e c o n v e n i e n tu s e re x p e r i e n c e 0 nt h ew h o l e t h et h e s i ss t u d yt h eu s a g ei ne n t e r p r i s ea p p l i c a t i o n b yc o n c r e t e l ys a m p l ea n dm a k eaf a r s i g h t e da t t e m p t t h e s ew o r k sw i11 i m p u l s eo u rp r o g r a m m i n ga n dd e v e l o p i n gi nt h ey e a r sc o m i n gl a t e r k e yw o r d s :s m a r tc l i e n t :a r c h i t e c t u r e ;o c c a s i o n a l l yc o n n e c t ; d a t ac a c h i n g ;d a t as y n c h r o n i z i n g :d a t ac o n c u r r e n c y 西南交通大学 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学 校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查 阅和借阅。本人授权西南交通大学可以将本论文的全部或部分内容编入有关 数据库进行检索,可以采用影印、缩印或扫描等复印手段保存和汇编本学位 论文。 本学位论文属于 1 保密口,在年解密后适用本授权书: 2 不保密口,使用本授权书。 ( 请在以上方框内打“4 ”) 学位论文作者签名:指导老师签名: 日期: 日期: 西南交通大学学位论文创新性声明 本人郑重声明:所呈交的学位论文,是在导师指导下独立进行研究工作 所得的成果。除文中已经注明引用的内容外,本论文不包含任何其他个人或 集体已经发表或撰写过的研究成果。对本文的研究做出贡献的个人和集体, 均已在文中作了明确的说明。本人完全意识到本声明的法律结果由本人承担。 本学位论文的主要创新点如下: 1 本论文对智能客户端技术做了前瞻性的研究和有益的尝试,通过具体 的示例来掌握智能客户端技术在企业级应用程序中的应用。 2 本论文在智能客户端体系结构的研究中,详细分析了c o m p o s i t eu i a p p l i c a t i o nb l o c k 构建组合型智能客户端的设计。 3 本论文中的智能客户端示例支持偶尔连接功能,实现了偶尔连接情况 下数据访问无缝切换的设计。 4 本论文中的智能客户端示例在数据处理方面,实现了后台自动同步客 户端和服务器数据并处理数据冲突,以及w e b 服务作为中间层实现商务逻辑 和数据访问。 5 本论文中的智能客户端示例在部署和更新上,采用了v i s u a ls t u d i o 2 0 0 5 新增的c l i c k o n c e 技术,使得开发人员花费的精力更少,并为最终用户 提供了更好的安装和更新体验。 西南交通大学硕士研究生学位论文第1 页 1 1 问题的提出 第1 章绪论 “互联网已经只益成为应用程序开发的默认平台。不幸的是,用户对应 用程序复杂性要求日增,但传统w e b 应用程序对完成复杂应用方面却始终跟 不上步伐。结果是,用户经常被迫忍受令人失望、困惑甚至使人失去兴趣的 体验,导致公司必须面对不满的客户、遭受营业额损失、成本增加,同时也 对互联网感到大失所望。” 一转自i d c 2 0 0 3 分析报告( i d c :i n t e r n e td a t ac e n t e r 互连网络数据中心) i n t e r n e t 的普及催生了强大的浏览器,而随着浏览器的广泛应用诞生了 b s 时代。从9 0 年代末开始,8 s ( 浏览器服务器模型) 逐渐取代了c s ( 客 户端服务器模型) 成为应用开发的主流架构,它解决了许多与应用程序部署 和维护相关联的问题。但是,b s 架构也存在着显著的缺点:1 浏览器必须 总是具有网络连接,这在一些需要离线应用的情形下并不适合。2 无法使用 丰富的效果来展示数据,用户体验比较糟糕。3 需要频繁地同服务器交互, 浏览器必须等待响应到达,响应速度受到影响,在低带宽或高延迟的情况下 尤为严重。 因此,随着人们发现不断复杂化的业务通过简单的页面浏览已经无法满 足要求,以及终端设备的多样化、应用需求的不断扩展,2 0 0 4 年微软提出了 智能客户端( s m a r tc 1 i e n t ) 的概念。智能客户端代表了一种全新的开发模 式,它同时具有c s 架构的丰富用户体验和w s 架构的简单部署及容易维护 的优点,它既有w i n d o w s 程序的强大用户界面,又可以享受w e b 应用升级和 更新的便捷。随着微软在2 0 0 5 年底发布的v i s u a ls t u d i o2 0 0 5 、s q ls e r v e r 2 0 0 5 、b i z t a l ks e r v e r2 0 0 6 以及即将发布的新一代操作系统v i s t a ( 以前代 号为l o n g h o r n ) 的出现,n e t 、w e bs e r v i c e 、s m a r tc l i e n t 将越来越多地 应用到企业级开发中,所以,掌握智能客户端技术开始变得日趋重要。我们 可以预见,在未来几年中,智能客户端应用程序将可能会逐步替代许多基于 浏览器的应用程序。 西南交通大学硕士研究生学位论文第2 页 1 2 国内外研究现状 目前,智能客户端不是仅仅停留在概念上,而是己经成为技术现实。在 当前的企业应用中,已经出现了大量的智能客户端应用实例。 其中比较有名的是美国微软、纳斯达克和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 构建的客户集成桌面系统。 1 2 ,1e x c e l 投资者助理系统 传统上,企业的财务报告都是以文件为基础的,而股票投资者与分析师 必须同时熟读多家企业的报告,并将关心的数据或信息输入到计算机里面以 利后续的分析与比较。这种大量的手工、多步骤的流程是很耗费时间的,那 斯达克( n a s d a q ) 牧到了大量的抱怨而决定建构一套系统让投资者与分析师 可以简易的撷取、分析甚至比较所关注的股票数据。 美国微软、那斯达克与p r i c e w a t e r h o u s e c o o p e r s 通过w e bs e r v i c e s 技术在m i c r o s o f to f f i c es y s t e m 建构了一套以e x t e n s i b l eb u s i n e s s r e p o r t i n gl a n g u a g e ( x b r l ) 为基础,并通过e x c e l 展现股票数据的投资助 理系统。 那斯达克将上市公司的财务信息,包括平衡表、收入、现金流量、资产 等信息转换成x b r l 格式而存入集中的数据库系统,并通过w e bs e r v i c e s 对外提供网页、e x c e l 或是打印系统等服务。 投资助理系统利用了o f f i c e 智能文档的技术和内置的w e bs e r v i c e 访问 能力,用户可以在不脱离o f f i c e 应用的同时进行远程数据访问,同时,数据 可以随时更新。而且在离线情况下用户仍然可以进行自己的报表分析。e x c e l 投资者助理系统运行界面如图1 一l 所示。 通过e x c e l 操作的投资助理不仅可以充分运用其展示与分析能力,而且 以往需要数小时的分析时闻,现在分析师只需要数分钟便可以取得所需要的 报告。甚至由于上市公司的财务信息已经通过w e bs e r v i c e s 以x b r l 格式 被下载下来,投资者或分析师还可以离线操作这系统并进行交叉分析。 西南交通大学硕士研究生学位论文第3 页 图1 1e x c e l 投资者助理( 图片来源:m i c r o s o f tm s d n 中文网站) 1 2 2d e i l 构建的客户集成桌面系统 过去,在d e l l 电话中心工作的销售代表使用4 0 个不同的信息系统来 了解客户并满足其需求,这就限制了他们提供最佳客户体验的能力。为了解 决这问题,d e l l 构建了i n t e g r a t e dd e l ld e s k t o p ( i d d ) 智能客户端解决 方案。在一个易用的桌面应用程序内,i d o 提供了d e l l 销售代表帮助客户 和销售公司产品所需的一切,优化了销售流程和电话中心操作。i d d 智能客 户端目前已用在9 个地点的8 ,0 0 0 多个桌面,它将平均通话持续时间缩短 了1 0 、减少了4 5 的培训时间,并增加了每笔交易的收益。d e l l 构建的客 户集成桌面系统的运行界面如图1 2 所示。 西南交通大学硕士研究生学位论文第4 页 图l 一2d e l l 客户集成桌面系统( 图片来源:m i c r o s o f tm s d n 中文网站) 1 3 本文研究的目标、内容与方法 研究的目标: 本论文主要是通过深入研究智能客户端的体系结构,并结合以前经历的 项目( 机票预定系统、危险品运输监控系统) ,通过智能客户端技术来重构原 有的传统的客户端( c s 架构和b s 架构的客户端) 解决方案,总结并积累 经验,形成通用的智能客户端解决方案,并逐步在今后的项目中使用智能客 户端技术。 主要研究内容包括: 1 使用w i n d o w s 窗体技术构建智能客户端用户界面。 2 数据访问策略。 3 偶尔连接设计策略。 4 安全性策略。 西南交通大学硕士研究生学位论文第5 页 5 部署和更新策略。 6 智能客户端应用程序性能。 研究方法; 通过对智能客户端技术作前瞻性的研究和有益的尝试,在深入理解智能 客户端的体系结构和设计方案的基础上,构建一个智能客户端解决方案,该 解决方案实现w i n d o w s 智能客户端应用程序,具备丰富的用户体验、离线工 作的能力、智能部署和更新以及有效的安全性。通过构建具体的智能客户端 项目,来掌握智能客户端技术在企业级应用系统中的运用,并形成通用的解 决方案,避免重复设计或尽可能少做重复设计。对今后的程序开发工作起到 积极的推动作用。 西南交通大学硕士研究生学位论文第6 页 第2 章智能客户端简介 2 1智能客户端的定义 2 0 0 4 年微软提出了智能客户端( s m a r tc 1 i e n t ) 的概念。智能客户端代 表了一种全新的开发模式,它同时具有c s 架构的丰富用户体验和b s 架构 的简单部署及容易维护的优点,既有w i n d o w s 程序的强大用户界面,又可以 享受w e b 应用升级和更新的便捷。它是微软公司n e t 设计思想的具体实现, 是一种新型技术架构的典型代表。 简而言之,智能客户端是易于部署和管理的客户端应用程序,它通过统 筹使用本地资源和到分布式数据资源的智能连接,从而提供自适应的、快速 响应的和丰富的交互式体验。 2 2 智能客户端的特征 智能客户端应用程序通常具有形形色色的要求,因此在设计和实现方面 会有较大的差异。但是,所有智能客户端都具有以下的特征: 利用本地资源 利用网络资源 支持偶尔连接的用户 智能部署和更新 2 。2 。1 利用本地资源 随着计算机工业的快速发展,现在的客户端计算机性能不断增强,处理 速度也大大提高,因此,合理地利用客户端计算机资源应该在解决方案中着 重考虑。 智能客户端应用程序可以在本地执行程序代码和访问部署( 或缓存) 在 客户端上的数据,以及为应用程序提供内容丰富且响应迅速的用户界面,使 用户能够执行复杂的可视化操作和数据处理。 智能客户端应用程序也可以利用客户端硬件资源( 如条码读取器、摄像 西南交通大学硕士研究生学位论文第7 页 头、指纹识别器等) 。这使得它非常适合于解决瘦客户端应用程序( 如销售点 终端应用程序) 无法很好解决的问题。 此外,智能客户端还可以利用本地软件资源,比如o f f i c e 、i n t c r n c te x p l o r e r 或其他可以协同工作的应用程序。智能客户端可以创建与多个应用程序协调 工作的解决方案,使客户端更为有效地工作。 2 2 2 利用网络资源 目前,网络化程度越来越高,智能客户端应用程序能够很容易地连接到 网络,并且利用网络资源和服务。 一般来说,智能客户端通常都不是孤立的应用程序,每个智能客户端都 应是分布式解决方案的一部分。在企业内网或者互联网范围内,智能客户端 应用程序能够通过w e bs e r v i c e 或者r e m o t i n g 等技术轻松地与远程系统连接, 并与之进行数据交换,并且可以对数据进行分析或整合,从而使用户能够进 行更为有效的决策。例如,一个运行在p d a 上的提供智能导航的智能客户端 应用程序,可以使用网络提供的服务和数据来寻找出最佳的行驶路线。智能 客户端应用程序的这一性质决定了它也可以对外提供有价值的数据整合、分 析和转换服务,可以向用户提供类似于门户的功能,从而将完全不同的数据 和服务加以协调并集成到总体解决方案中。 2 2 3 支持偶尔连接的用户 虽然现在的网络连接程度越来越高,但是在许多情况下,不可能无时无 刻都存在网络连接,例如在旅行途中,可能会暂时失去网络连接。另外,在 网络维护时,也无法提供网络连接。 智能客户端支持偶尔连接的用户,从而使用户可以在明确脱机、使用低 带宽网络、高延迟的网络,或者网络连接时断时续的情况下继续高效地工作。 偶尔连接的智能客户端在许多常见的情况下都极其有用。许多脱机情况 涉及到用户显式断开网络连接,或是在没有网络连接的情况下工作。例如: 保险代理可能需要在离开办公室的时候创建新的保险单。他可能需要在无法 连接到办公室中系统的情况下,输入所有相关数据,计算保险费,并签发保 险单详细信息。 要给予应用程序完整的偶尔连接功能,需要提供一种基础结构,使用户 能够在没有连接到网络资源时工作。这种基础结构至少应该包括:网络连接 西南交通大学硕士研究生学位论文第8 页 的监测、客户端数据的缓存、数据的同步以及数据的冲突处理等四个部分。 2 2 4 智能部署和更新 我们在设计应用程序时,应该考虑如何部署这些应用程序,并应该努力 使部署过程轻松、简单和易于维护。在最初的应用程序部署运行以后随着 升级应用程序功能,或者修复缺陷、解决安全漏洞,应用程序需要及时进行 更新。 对于智能客户端应用程序来说,可以使用v i s u a ls t u d i o2 0 0 5 提供的 c l i c k o n c e 技术来部署和更新应用程序。 c l i c k o n c e 技术极大地简化了部署和更新的过程,并且提供了智能部署、 自动更新,版本回滚等功能。 简单地说,使用c l i c k o n c e 技术来部署的智能客户端应用程序,可以采 用三种不同的方法来发布智能客户端应用程序:从网页发布、从网络文件共 享发布或者从媒体介质( 如c d - r o m ) 发布。用户可以在网页上或文件夹中单 击表示部署清单文件的图标,从而下载和安装应用程序。在大多数情况下, 安装向导会向用户提供一个简单的对话框以请用户确认安装,在此之后便不 需要用户干预,安装会继续执行,直至应用程序安装完毕。 通过c l i c k o n c e 技术部署的智能客户端应用程序可以自动更新,应用程 序会定期读取其部署清单文件,以查看是否有可用的应用程序更新。如果有, 则会下载并运行应用程序的新版本。这里,我们应该注意使用何种策略来检 查可用的更新。一般来说,有三种基本策略可以使用: 1 在应用程序启动时检查更新。 2 在应用程序启动后检查更新( 在后台线程中运行) 。 3 提供进行更新的用户界面。 除了这些更新策略之外,我们还可以定制应用程序检查更新的时间间隔, 或是强制旦有新的版本就必须执行更新。 另外,如果我们发现更新后的新版本在工作过程中存在问题或缺陷时, 我们还可以采取版本回滚的方式,撤销更新而继续使用原来的版本进行工作。 2 3 智能客户端的类型 根据智能客户端应用程序所面向的平台不同,可以分为三大类;w i n d o w s 西南交通大学硕士研究生学位论文第9 页 智能客户端应用程序、移动智能客户端应用程序和o f f i c e 智能客户端应用程 序。 2 3 1w in 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 桌面应用程序,它可以使用本地的软件、硬件和 数据库等资源。w i n d o w s 智能客户端应用程序通常运行于台式机和笔记本电 脑上。w i n d o w s 智能客户端见图2 l 所示。 2 3 2 移动智能客户端 移动智能客户端是在智能设备上运行的应用程序,这些智能设备包括 p o c k e tp c 、s m a r t p h o n e 以及其他超小型台式设备( 如机顶盒) 。这些应用程 序可以使用n e tc o m p a c tf r a m e w o r k ( 它是。n e tf r a m e w o r k 的子集) 来进 行开发。 移动智能客户端应用程序通常用于提供对重要数据和服务的移动访问, 或者在用户处于移动状态时收集和整合数据。比如p d a 上的个人资料管理、 电子地图、汽车导航系统等应用程序。移动智能客户端见图2 1 所示。 2 3 3o f f i c e 智能客户端 微软公司的o f f i c es y s t e m2 0 0 3 ( 及更高的版本) 为开发人员提供了用 来生成智能客户端应用程序的平台。通过o f f i c e 智能客户端解决方案,开 发人员可以将通过w e b 服务访问的数据源。并与w o r d2 0 0 3 、e x c e l2 0 0 3 、 i n f o p a t h2 0 0 3 或其他o f f i c e 应用程序的功能集成起来,形成智能客户端 解决方案。这方面的经典应用就是美国微软、纳斯达克和 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 投资者助理系统。o f f i c e 智能 客户端见图2 - - 1 所示。 西南交通大学硕士研究生学位论文第1 0 页 图2 一l 三种类型的智能客户端 2 4 智能客户端与其他类型客户端的比较 当前的传统客户端应用程序模型大致分为两种:c s ( 客户端服务器模 型) 和b s ( 浏览器服务器模型) 。它们各有优缺点。 c s ( 客户端服务器模型) 具有高质量、响应迅速的用户体验,以及良 好的开发平台支持的优点,但是,它也存在着显著的缺点,那就是难于部署 和维护,其中尤为著名的就是“d l l ”地狱问题。b s ( 浏览器服务器模型) 具有易于安装、部署和维护等优点,但它也同样具有必须在线工作、不能充 分利用客户端计算机的资源、安全性较低等缺点。 智能客户端相对于传统的胖客户端和瘦客户端而言,它结合了二者的优 点,而避免了他们的缺点。我们可以从图2 2 中看出,智能客户端具有丰富 用户体验、离线工作能力、响应速度快、开发效率高的胖客户端所具备的优 点,同时它也具有易于部署和维护、易于修改业务逻辑等瘦客户端所具有的 优点。 西南交通大学硕士研究生学位论文第11 页 图2 2 智能客户端与其他客户端的比较 西南交通大学硕士研究生学位论文第12 页 第3 章智能客户端体系结构 3 1 体系结构概述 智能客户端解决方案是分布式应用系统,设计分布式应用是一项比较复 杂的工作,在架构、设计和实施层面我们都需要做出很多的选择。这些选择 会对系统的安全性能、扩展能力、可用性和可维护性产生影响,也会对目标 平台的架构、设计和实施产生影响。一般而言,分布式应用都采用分层的结 构,典型的n e t 体系下的智能客户端体系结构一般包括表示层、中间层、通 用服务层和数据层,如图3 1 所示,其中: 图3 - 1 典型的智能客户端体系结构 西南交通大学硕士研究生学位论文第13 页 表不层: 由智能客户端应用程序来实现。它是分布式系统中的客户端解决方案, 提供与用户交互的界面和界面处理流程。其中: 1 u s e ri n t e r f a c ec o m p o n e n t s :提供用户与应用程序交互的界面。用 户界面组件可以使用w i n d o w sf o r m 、窗体控件和用户自定义控件来实现。 2 u s e ri n t e r f a c ep r o c e s sc o m p o n e n t s :通常,用户和系统会按照一 定的规则和流程进行交互,将这些规则和流程封装起来有利于多个用户界面 的重用。 中间层: 由w e bs e r v i c e 来实现。在智能客户端的分布式解决方案中,我们通常 使用w e b 服务来作为系统的中间层,并且在该层实现了业务逻辑和数据访问。 其中: 1 b u s i n e s sw o r k f l o w s :为了实现某个业务目标,一些业务流程可能包 含几个步骤,这些步骤需要按照正确的顺序执行。工作流组件可以很好的管 理和组织这些业务流程,并以恰当的模型表示。 2 b u s i n e s sc o m p o n e n t s :不论一个业务流程是由一个步骤还是多个步 骤组成,它都可能具有一些业务规则。因此,我们可以使用业务组件来很好 的组织和实现系统的商务逻辑。 3 b u s i n e s se n t i t yc o m p o n e n t s :在大多数的应用系统中都需要在组件 之间和各层次之间传递业务数据。这些业务数据通常代表真实世界中的业务 实体,例如产品或者订单。因此,我们使用业务实体组件来表示这些在真实 世界中存在的业务实体。 4 d a t aa c c e s sl o g i cc o m p o n e n t s :大多数的应用程序在执行业务逻 辑时,都需要访问存储在数据库中的数据,在处理完数据之后,也要将数据 存储到数据库中。所以,我们使用数据访问组件来为业务逻辑提供数据服务。 数据层: d a t a b a s e :数据库用于存储应用程序的数据。它可以采用不同的数据库产 品,例如s q ls e r v e r 、m y s q l 、o r a c l e 等。 通用服务组件: s e c u r i t y 、o p e r a t i o n a lm a n a g e m e n t 、c o m m u n i c a t i o n :通用组件可以为 西南交通大学硕士研究生学位论文第1 4 页 整个应用系统提供统一的基础服务,例如日志管理、异常处理、通信服务以 及身份认证和授权等安全性管理。 3 2 使用w i n d o w s 窗体技术构建用户界面 在n e tf r a m e w o r k 中,我们可以使用w i n d o w sf o r m 来创建基于w i n d o w s 的强大桌面应用程序。在v i s u a ls t u d i o2 0 0 5 中提供了大量的w i n d o w sf o r m 控件,可以快速方便的设计内容丰富、响应迅速的用户界面,为用户提供丰 富的用户体验。 相对于基于浏览器的a s p n e t 页面而言,w i n d o w s 窗体应用程序有如下 优点: ( 1 d w i n d o w s 窗体可以完全在客户端计算机上运行,它们能够为需要高度 交互的应用程序提供快速的响应。 逗) w i n d o w s 窗体包含g d i + 。它提供了复杂的图形环境,使得需要非常丰 富的图形界面的应用系统得以实现。 w i n d o w s 窗体应用程序对本地计算机资源可拥有完全访问权。如果需 要,我们还可以精确地限制应用程序的权限,使其不能使用特定的资源。 在w i n d o w s 窗体中,“窗体”是向用户显示信息和进行交互的视图。通 常情况下,我们通过向窗体上添加控件,并开发对用户操作事件的响应,来 生成w i n d o w s 窗体应用程序。 “控件”是显示数据或接受数据输入的相对独立的用户界面( u i ) 元素。 当用户对窗体或其中的某个控件进行操作时,将生成事件。应用程序对这些 事件进行响应,并进行相应的处理。 w i n d o w s 窗体具有丰富的u i 控件,可创建像m i c r o s o f to f f i c e 这样的 高端应用程序的用户界面。另外,w i n d o w s 窗体控件还提供了数据绑定功能, 可以将数据绑定到特定的控件上进行数据展示。极大的简化了开发人员的工 作。 使用v i s u a ls t u d i o 的具有拖放功能的w i n d o w s 窗体设计器,我们可 以轻松创建w i n d o w s 窗体应用程序。只需使用光标选择控件并将控件添加到 窗体上所需的位置即可。设计器提供类似网格线和对齐线的工具,可简化对 齐控件的操作。无论使用v i s u a ls t u d i o 还是在命令行上编译,我们都可以 使用f l o w l a y o u t p a n e l 、t a b l e l a y o u t p a n e l 和s p l i t c o n t a i n e r 控件在短时 西南交通大学硕士研究生学位论文第15 页 间内创建高级窗体布局。 当n e tf r a m e w o r k 提供的标准w i n d o w s 窗体控件不能满足需要时,我们 还可以开发自定义的w i n d o w s 窗体控件。n e tf r a m e w o r k 提供了自行开发控 件的基础结构,可以组合现有控件、扩展现有控件或开发自己所需要的自定 义控件。 g i s u a ls t u d i o2 0 0 5 中提供的标准w i n d o w s 窗体控件如图3 2 所示: 图3 - 2v is u a ls t u d i o2 0 0 5 中提供的w i n d o w s 窗体控件 3 3 建立连接 智能客户端是分布式应用系统的一部分,因此,它需要连接到其他资源 并与这些资源进行通讯。这些资源可以是客户端进程或组件,也可以是网络 资源,例如w e b 服务。 西南交通大学硕士研究生学位论文第16 页 我们在设计智能客户端应用程序时,可以采用多种方法使智能客户端应 用程序连接到其它资源。这些方法包括: 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 o t i n g m i c r o s o f tw i n d o w s 消息队列 i v e b 服务 3 3 1m 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 与c 伽编程模型相比,n e t 框架提供了另一种编写基于组件的应用程 序的方法( c o m + 服务) 。它具有更好的工具支持、公共语言运行时( c l r ) 和 更简单的编码语法。在n e t 中,这些服务也被称为企业服务( e n t e r p r i s e s e r v i c e s ) 。 如果要编写能够参与事务、利用基于角色的安全性或者与队列交互 的n e t 应用程序,就要用到n e t 中提供的c o m + 服务。在n e t 框架中, 使用企业服务的类必须从s y s t e m e n t e r p r i s e s e r v i c e s s e r v i c e d c o m p o n e n t 类派生。任何从s e r v i c e d c o m p o n e n t 类派生的类都由c o m + 服务托管,并可 以使用所有可用的c o m + 服务。表3 一l 列出了n e t 中支持的全部c o m + 服务以及每个服务的简要说明。 西南交通大学硕士研究生学位论文第17 页 基于角色的安全性i i 基于角色应用安全权限 _ 共享属性j 陋服务器进程中的多个对象之问共享状念 司步( 活动)l l 管理并发 ( a 互操作性 j 巨持x o p e n 事务处理模型 表3 - - 1 n e t 中可用的c o m + 服务 3 3 2m 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 看作是一种分布式处理方式。从微软的产品 角度来看,可以说n e tr e m o t i n g 是d c o m 的一种升级,它改善了很多功能, 并极好的融合到n e t 平台中。m i c r o s o f t n e tr e m o t i n g 提供了一种允许对 象通过应用程序域与另一对象进行交互的框架。这种框架提供了多种服务, 包括激活方式和生存期管理,以及负责与远程应用程序进行消息传输的通讯 通道。这也正是我们使用r e m o t i n g 的原因。因为在w i n d o w s 操作系统中,是 将应用程序分离为单独的进程。这个进程形成了应用程序代码和数据周围的 一道边界。如果不采用进程间通信( r p c ) 机制,则在一个进程中执行的代码 就不能访问另一进程。这是一种操作系统对应用程序的保护机制。然而在某 些特定情况下,我们需要跨过应用程序的进程边界,与另外的应用程序进行 通信。这里所说的另外的应用程序可以位于本地计算机,也可以位于与本地 计算机相连的远程计算机。n e tr e m o t j n g 可以通过使用远程对象的代理对 象,像调用本地对象一样调用远程对象。n e tr e m o t i n g 机制见图3 3 所示。 图3 3 n e tr e m o t i n g 示意 由于n e tr e m o

温馨提示

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

评论

0/150

提交评论