(计算机应用技术专业论文)面向服务的智能客户端分布式应用模型研究.pdf_第1页
(计算机应用技术专业论文)面向服务的智能客户端分布式应用模型研究.pdf_第2页
(计算机应用技术专业论文)面向服务的智能客户端分布式应用模型研究.pdf_第3页
(计算机应用技术专业论文)面向服务的智能客户端分布式应用模型研究.pdf_第4页
(计算机应用技术专业论文)面向服务的智能客户端分布式应用模型研究.pdf_第5页
已阅读5页,还剩59页未读 继续免费阅读

(计算机应用技术专业论文)面向服务的智能客户端分布式应用模型研究.pdf.pdf 免费下载

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

文档简介

华中科技大学硕士1 学位论文 摘要 在过去的几年中,构建、部署和运用软件的方式发生了一些有趣的变化。在不久 前,最流行的时尚就是客户端服务器端技术。随着i n t e m e t 的出现,引进了瘦客户端 模式。随着n e t 的到来,现在构建和部署应用程序时,就可以利用智能客户端技术。 智能客户端是新一代由n e tf r a m e w o r k 支持的丰富的应用程序,整合了w i n d o w s 和 i m c m e t 。智能客户端应用模式将富客户端模式的功能和灵活性与基于浏览器模式的易 部署性和稳定性结合了起来。 通过充分利用面向服务的体系结构,运用n e t 技术、x m l w e bs e r v i c e 技术、智 能客户端模式、设计模式、分布式模式等现代软件工程方法,建立一个适应性强、可 进化、易维护的分布式应用框架。这种面向服务的智能客户端分布式应用框架( s m a r t c l i e n ts e r v i c e - o r i e n t e dd i s t r i b u t e da p p l i c a t i o nf r a m e w o r k ,简称s c - - s o d a f ) 模型主 要为应用系统提供离线工作机制的基础架构,使得应用系统的开发者可以将更多的注 意力放到业务逻辑的实现。 s c - - s o d a f 模型按概念视图可分为三层:离线工作支持、缓存服务、通用数据 库访问服务。三层之间的交互关系是通用数据库访问服务为缓存服务提供基础支持, 但不限于仅仅支持缓存服务,也可为应用系统提供服务;缓存服务为离线工作提供支 持,但不限于仅仅支持离线工作,同时也可为应用系统提供服务;离线工作支持主要 是为应用系统提供可重用的离线工作机制,提高开发效率。 s c - - s o d a f 模型在提供强大的离线功能的同时还提供了灵活的扩展机制,用户 可以将特定实现的网络连接检测机制、队列和缓存持久化机制以及加密算法等嵌入到 框架中,扩充框架的功能。以s c - - s o d a f 模型为基础,应用程序开发者可以快速地 建立健壮的分布式智能客户端应用系统。 关键词:智能客户端,面向服务,设计模式,应用框架 华中科技大学硕士、学位论文 a b s t r a c t o v e rt h ep a s ts e v e r a ly e a r s ,s o m ei n t e r e s t i n gc h a n g e sh a v et a k e np l a c ei nw a y so f b u i l d i n g , d e p l o y i n g a n du s i n go ft h es o f t w a r e n o tl o n ga g o ,c l i e n t s e r v e r t e c h n o l o g y w h i c h ,a l s oc a l l e dt h i c kc l i e n t so rf a tc l i e n t s i si nf a s h i o n s w i t ht h ea p p e a r a n c eo f i n t e r n e t t h et h i nc l i e n tm o d eh a sb e e ni n t r o d u c e d w j mt h ea r r i v a lo f n e t , w ec a r lu t i l i z e s m a r tc l i e n tt e c h n o l o g yw h i l eb u i l d i n ga n dd e p l o y i n gt h ea p p l i c a t i o nn o w w h i l es m a r t c l i e n t sp r o v i d et h eb e n e f i t so far i c hc l i e n tm o d e lw i t ht h i nc l i e n tm a n a g e a b i l i t y , t l l e ya l s o p r o v i d em u c h m o r e f l e x i b i l i t yt h a n t h et r a d i t i o n a lr i c hc l i e n ta p p l i c a t i o n s b yu s i n g n e tf r a m e w o r k ,x m lw e bs e r v i c e ,s m a r tc l i e n t ,d e s i g n p a t t e r n s , d i s t r i b u t e dm o d e t h r o u g hf u l l yu t i l i z i n gs 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 ,w eb u i l d a l la d a p t a b l e , e v o l u t i o n a l ,m a i n t a i n a b l ea p p l i c a t i o n f r a m e w o r k t h i ss m a r tc l i e n ts e r v i c e - o r i e n t e d d i s t r i b u t e d a p p l i c a t i o n f r a m e w o r k ( s c s o d a f ) m o d e lp r o v i d e sa p p l i c a t i o n t h e i n f r a s t r u c t u r eo f o f f l i n ew o r k t h es c s o d a fm o d e le n a b l e sd e v e l o p e rp a ym o r ea t t e n t i o n t ot h e i m p l e m e n t i n g o f b u s i n e s sl o g i c s c s o d a fm o d e li sd i v i d e di n t ot h r e e1 a y e r si nc o n c e p tv i e w :o f f i i n ee i l a b l e d ,c a c h e s e r v i c e g e n e r a ld a t a b l a s ea c c e s s ( g d a ) s e r v i c e 砀ec o i l a b o r a t i o nb e t w e e nt h el a y e r si s t h a tg d as e r v i c ep r o v i d e sd a t aa c c e s s i n gc a p a b i l i t yt on o to n l yc a c h eb u ta l s oa p p l i c a t i o n , w h i l ec a c h es e r v i c es u p p o r t so f f l i n el a y e ra n d a p p l i c a t i o n s c s o d a fm o d e lp r o v i d e st h ef l e x i b l ee x p a n s i o nm e c h a n i s mw h i l eo f f e r i n gas t r o n g o m i n ef u n c t i o n f r a m e w o r k sa b i l i t i e sc a nb ee x t e n d e db ye m b e d d i n gs p e c i f i cn e t w o r k c o n n e c t i o nd e t e c t i o nm e c h a n i s m ,q u e u e c a c h ep e r s i s t e n tm e c h a n i s ma n de n c r y p ta l g o r i t h m s w h i c ha r ei m p l e m e n t e db yf r a m e w o r ku s e r b a s e do ns c s o d a fm o d e l a p p l i c a t i o n d e v e l o p e r c a nb u i l dr o b u s td i s t r i b u t e ds m a r tc l i e n ts y s t e mr a p i d l y k e y w o r d s :s m a r tc l i e n t ,s e r v i c e - o r i e n t e d ,d e s i g np a t t e r n s ,a p p l i c a t i o nf r a m e w o r k 独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得 的研究成果。尽我所知,除文中已经标明引用的内容外,本论文不包含任何其他 个人或集体已经发表或撰写过的研究成果。对本文的研究做出贡献的个人和集体, 均已在文中以明确方式标明。本人完全意识到本声明的法律结果由本人承担。 学位论文作者签名:香专 日期:2 午年 c 月3 d 日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定即:学校 有权保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅 和借阅。本人授权华中科技大学可以将本学位论文的全部或部分内容编入有关数 据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 保密口,在年解密后适用本授权书。 本论文属于, 不保密臼。 ( 请在以上方框内打4 ) 学位论文作者签名:奎涛 日期:2 硼午年牛月3 0 日 僦和手膨 日期:7 矿仁年f 月;d 日 华中科技大学硕士学位论文 1 绪论 在过去的几年中,构建、部署和运用软件的方式发生了一些有趣的变化。在不久 前,最流行的时尚就是客户端月务器端技术了,也称为胖客户端( t h i c kc l i e n t s 或者f a t c l i e n t s ) 。随着i n t c r n e t 的出现,引进了瘦客户端( t h i nc l i e n t ) 模式。随着n e t 的到来, 现在构建和部署应用程序时,就可以利用智能客户端( s m a r tc l i e n t ) 技术了。智能客 户端是新一代由n e tf r a m e w o r k 支持的丰富的应用程序,它们整合了w i n d o w s 和 i n t e r n e t 。智能客户端应用模式将富客户端( r i c hc l i e n t ) 模式的功能和灵活性与基于浏 览器的模式的易部署性和稳定性结合了起来。 1 1 课题背景 2 0 世纪8 0 年代以来,许多学者围绕框架的定义、开发、实例化进行了大量研究, 些软件公司也实现了特定于领域的框架,如t a l i g e n t 公司的c o m m o n p o i n t t 和i b m 针对商业领域的s a nf r a n c i s c o 等等。综合各种对于软件框架的定义和描述,可以发现 框架具有以下几个特点: 1 框架是面向特定领域的,它构成了软件产品线的核心资产; 2 框架是d s s a ( d o m a i ns p e c i f i cs o f t w a r ea r c h i t e c t u r e ,特定于领域的软件体系结 构1 的实例,具有部分实现的特性,它反映了产品线中应用的体系结构; 3 框架由组协作的成分构成; 4 利用框架开发应用系统是通过扩展点的实例化过程实现的。 近年来,随着软件复用研究的深入,软件框架也日益受到人们的重视。框架是指 一个可复用的、部分实现的软件制品,它能够被实例化扩展,以生成特定的应用。从 领域工程的角度来看,框架是实例化的d s s a ,它反映了一个软件系统族的体系结构, 并且提供了创建后者的基本构造单元,同时定义了针对特定的功能需要在何处进行调 整和修改【2 1 。软件框架有助于实现领域内体系结构层次较大粒度的设计复用,提高应 用开发中复用的比例,从而保证复用活动的成功率,降低应用开发的成本。 本课题的目的就是通过充分利用面向服务的体系结构,研究如何运用n e t 技术、 x m lw e bs e r v i c e 技术、智能客户端模式、设计模式、分布式模式等现代软件工程方 华中科技大学硕士学位论文 法,建立一个适应性强的、可进化的、易维护的分布式应用框架。这种针对面向服务 的智能客户端分布式应用框架( s m a r tc l i e n ts e r v i c e o r i e n t e dd i s t r i b u t e da p p l i c a t i o n , 简称s c - - s o d a f ) 模型主要为应用系统提供离线工作机制、缓存服务以及通用数据 库访问服务。以模型为基础,应用程序开发者可以快速地建立分布式智能客户端应用 系统。 使用框架开发的软件系统的可扩展性、可适应性、可进化性都比较好。通过复用 成熟的体系结构、现有的商业组件和开发好的功能模块,开发者不必每次都从头开始, 开发效率大大增加。通过复用已经经过检验的功能模块,软件质量也得到可靠保障。 面对日趋增强的竞争,当前企业对信息化建设的要求越来越高,一方面大量的新的企 业应用系统等待开发,一方面大量的系统在被费力地重复建造,还难以满足企业不断 变化的需求。研究企业应用系统构造中框架技术的运用,有利于缓解这一局势。 1 2 国内外概况 智能客户端的概念作为m i c r o s o f t n e t 平台的一个特性而被提出,n e t 平台从系统 和语言级别对它提供了支持,使开发智能客户端应用程序更为便捷。然而现在还很少 有针对智能客户端的分布式应用框架的研究。 1 2 1 框架 框架( f r a m e w o r k ) 是构成一类特定软件可复用设计的一组相互协作的类【3 】。框架 用户可以定义框架抽象类的应用相关的子类,从而将一个框架定制为特定应用。 框架规定了应用的体系结构,定义了整体结构,类和对象的分割,各部分的主要 责任,类和对象怎么协作,以及控制流程。框架预定义了这些设计参数,以便于应用 设计者或实现者能集中精力于应用本身的特定细节。框架记录了其应用领域的共同的 设计决策。因而框架更强调设计复用,尽管框架常包括具体的立即可用的子类。使用 传统的子程序库或工具箱( t o o l k i t ,需要写应用软件的主体并且调用需要复用的代码。 而使用框架时,应该复用应用的主体,写主体调用的代码,减少需要做出的设计决策。 使用框架不仅可以更快的地建立应用,而且这些应用还具有相似的结构,易于维护, 从用户的角度看也更一致。但另一方面,也失去了一些表现创造性的自由,因为许多 设计决策已经由框架制定了。 如果说应用程序难以设计,那么工具箱就更难了,而框架则是最难的。框架必须 华中科技大学硕士学位论文 是一个能够适应于该领域的所有应用的体系结构。任何对框架设计的实质性修改都会 大大降低框架所带来的好处,因为框架对应用的最主要贡献在于它所定义的体系结构。 因此设计的框架必须尽可能的灵活、可扩充。 更进一步讲,因为应用的设计如此依赖于框架,所以应用对框架接口的变化是极 其敏感的。当框架演化时,应用不得不随之演化。这使得松散耦合更加重要,否则框 架的一个细微都将引起强烈的反应。 从复用的角度来划分框架,可以分为白盒框架( w h i t e - b o xf r a m e w o r k ) 和黑盒框架 f b l a c k b o xf r a m e w o r k ) t ”,从复用成本上来看,白盒框架高于黑盒框架,但是后者设计 难度更大。本文采用s c - - s o d a f 概念,就框架元模型、框架扩展形态、扩展形态与 领域变化性的关系、分布式协作、服务合约等课题进行探讨,从而为开发面向服务的 分布式框架提供有益的指导。 文献【5 】中指出,软件框架在其生命周期开始时一般是自盒框架,随着对领域认识 的不断加深,白盒框架将逐渐演化成为黑盒框架,从而提高对复用活动的支持。目前, 实践中的白盒框架主要是面向对象框架( 包括前述的s a nf r a n c i s c o 和c o m m o n p o i n t 框 架1 ,它是构成一类特定软件可复用设计的相互协作的一组类【4 】,包括具体类和抽象类, 其实例化方式主要通过子类化抽象类以及对现有具体类方法的调用。随着o o 框架的 开发和使用,许多学者也意识到了面向对象框架的不足,主要集中于以下3 点:首先 是框架的“过度增殖问题”,通过实际的调查表明,在许多基于o o f 实例化实现的软件 系统中,是将变化性馁编码”劐框架中,这就造成了框架的大量“增殖”,使框架维护 变得困难 6 1 。其次,“隐式的体系结构( i m p l i c i ta r c h i t e c t u r e ) ”问题。当用户使用一个框 架时,首先需要了解其体系结构,然而由于框架的实现表现为具体的、在代码层次提 供复用的类,因此框架的体系结构被“隐没”在类的实现细节中而难以被识别【7 】。第 三,不适用于分布式应用。 上述o o 框架的不足可以归结为两个方面的原因,即框架类的粒度过小和无分布 式机制。与面向对象框架相比,s o d a 框架更大的部件粒度及其面向服务的扩展机制, 使得它更易于被复用。目前对于s o d a 框架研究还相对较少,实践工作主要有a v a l o n 项目、概念知识处理框架t o c k i t 以及交互训练框架 8 - 9 1 等等,它们都是基于j a v ab e a n 或e j b 的基于构件框架。 华中科技大学硕士学位论文 1 2 2 设计模式 设计模式的概念最早起源于建筑设计大师c h r i s t o p h e ra l e x a n d e r 关于城市规划和 建筑设计的著作建筑的永恒方法】,尽管a l e x a n d e r 的著作是针对建筑领域的, 但他的观点实际上适用于所有的工程设计领域,其中就包括软件设计领域。在建筑 的永恒方法一书中,a l e x a n d e r 是这样描述模式的: “模式是一条由三部分组成的规则,它表示了一个特定环境、一个问题和一个解 决方案之间的关系。每一个模式描述了一个不断重复发生的问题,以及该问题的解决 方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动。” 将设计模式引入软件设计和开发过程的目的在于充分利用已有的软件开发经验, 这是因为设计模式通常是对于某一类软件设计闯题的可重用的解决方案。优秀的软件 设计师都非常清楚,不是所有的问题都需要从头开始解决,他们更愿意复用以前曾经 使用过的解决方案,每当他们找到一个好的解决方案, 幽门会一遍又一遍地使用;这 些经验是他们成为专家的部分原因。设计模式的最终目标就是帮助人们利用熟练的软 件设计师的集体经验,来设计出更加优秀的软件【l ”。 在软件设计领域中,每一个设计模式都系统地命名、解释和评价了面向对象系统 中的一个重要的和可复用的设计。这样,只要搞清楚这些设计模式,就可以完全或者 说很大程度上吸收了那些蕴含在模式中的宝贵经验,从而对软件体系结构有了比较全 面的了解。更加重要的是,这些模式都可以直接用来指导面向对象系统设计中至关重 要的对象建模问题,实际工作中一旦遇到具有相同背景的场合,只需要简单地套用这 些模式就可以了,从而省去了很多摸索工作。 g a m m a 等人以编目的方式整理了2 3 种最常见的模式,并以一种统一的格式进行 描述,这项工作极大地推动了模式在软件学科中的发展。归纳起来有这几类模式: 1 色造型的模式;处理实例化过程( 怎样、何时和什么对象被创建) 以及类和对 象的配置。允许一个系统处理在结构和功能上变化很大的“产品”对象。 2 结构型的模式;处理类和对象在大的结构中的使用方法,以及分离界面和实现。 3 行为型的模式;处理算法以及在对象之间分配责任,还有在类和对象之间动态 交互、通信,而不仅仅是结构。 设计模式通过强调对接口编程而不是针对实现编程,优先使用对象组合而不是类 华中科技大学硕士。学位论文 继承等重要原则,确保系统能够以特定的方式变化,从而获得更加健壮的系统。设计 模式在设计应用程序、工具箱、框架等各方面发挥了重要的作用,人们开始在软件不 同领域大量地应用模式和整理出新的模式 1 3 q 6 】。 1 2 3 软件体系结构 随着软件系统的规模增大,复杂度增加,还需要支持系统的进化,软件体系结构 的设计已经成为整个软件设计过程中关键的步。不同类型的系统需要不同的体系结 构,甚至一个系统的不同子系统也需要不同的体系结构,体系结构的选择往往成为一 个系统设计成败的关键 17 - 1 8 】。软件体系结构包括了对整个系统的四个方面所作的决策 i l9 】: 1 软件系统的组织; 2 构成系统的结构元素和各元素之间的接口,以及由元素间各种协作所规定的各 元素的行为: 3 结构元素和行为元素合成为逐渐增大的子系统; 4 指导这种组织的体系结构风格,即元素以及它们的接口、协作和组合。 体系结构代表了系统的公共的高层次的抽象,系统的参与者可以把它作为建立一 个互相交流、互相理解的基础。个好的体系结构能够将系统划分为不同的子系统, 并提供良好定义的接口,有利于组织系统的开发,鼓励重用标准化的软件构件,并使 系统能够适应进化2 0 m 】。 常见的软件体系结构风格有管道和过滤器( p i p e s a n d f i l t e r s ) 、数据抽象和面向对象 组织( d a t aa b s t r a c t i o na n do o 帕罾河z a t i o n ) 、基于事件的隐式调用( e v e n t - b a s e d ,i m p l i c i t i n v o c a t i o n ) 、层次系统( 1 a y e r e ds y s t e m s ) 、仓库系统( r e p o s i t o r i e s ) 及知识库、表格驱动的 解释器( t a b l ed r i v e ni n t e r p r e t e r s ) 、l l ( p r o c e s sc o n t r 0 1 ) 等1 2 3 驯。通常在企业应用环 境中,其体系结构是一个包含多种风格的异构体系结构。如层次系统、数据中心、客 户机服务器、面向对象和基于事件的隐式调用等。当前企业应用体系结构实例有:微 软的n e t 、o m g 的o m a 和s u n 的j 2 e e 。它们从系统底层角度看待系统结构,并为 开发者提供了位置透明的分布式对象访问,使得开发者的工作可以在较高层次的抽象 水平进行【2 5 2 “。 华中科技大学硕士学位论文 1 2 , 4 智能客户端 在智能客户端出现之前,应用主要分为胖客户端和瘦客户端。胖客户端在客户的 计算机上安装所有的应用程序,并且具有可以显示复杂图形的用户界面:而瘦客户端 则把所有的应用程序放置在服务器上,客户端仅仅获取和显示数据。瘦客户端的主要 问题是数据要在服务器和客户端之间来回传递多次,效率很低。而胖客户端的主要问 题分布式设计的复杂性以及致命的不能跨越防火墙问题。由图1 1 可以看出,智能客 户端是结合两种方式优点,克服缺点的最佳解决方案。 智能客户端能够象胖客户端应用提供丰富的用户界面同时又能够跨越网络防火 墙。智能客户端也能利用n e t 的特性自动部署和更新应用程序,以及离线工作。 图1 1 智能客户端结合了两种方式优点 1 3 课题主要研究工作 框架不仅仅用于图形用户界面,它同样广泛应用于其它领域,如操作系统、火警 系统等2 7 - 3 2 。框架既重用代码也重用设计 3 3 - 3 4 。关于框架的设计方法,文献【3 5 】提出 了一个用于设计框架的框架,文献【3 6 3 8 c 9 给出了设计框架的基本过程和指导准则, 文献【3 9 。4 0 】讨论了框架设计和使用中的一些问题和解决方法,文献【4 1 】总结了一些框 架文档编制方法。文献 4 2 4 3 提出了框架的演化问题,文献【4 3 还给出了一个指导演 华中科技大学硕士学位论文 化的模式。在领域框架设计方面,r e # l 开始得比较早现在已经用于商业系统、科学 计算、分布式网络等m 棚】,国内也有人开始在一些项目中进行了尝试【5 0 - 5 5 1 。 当前针对智能客户端的分布式框架还很少,本课题准备对采用智能客户端的应用 系统进行框架建模,在使用框架思想开发适应性强、健壮的、易于扩展的系统方面进 行研究,以提高应用系统的开发效率和开发质量。本课题的主要工作如下: 1 在分析分布式智能客户端特点的基础上,为智能客户端应用系统设计一个健壮 的、易于扩展的模型,使之能够很方便的实现离线工作、缓冲以及通用数据访问,对 系统构件进行合理划分,确定各构件的职责和开发方法。这部分工作将在第二章进行 研究。 2 模型中用到了大量的设计模式,在第三章将详细讨论所涉及到主要的设计模 式。 3 在模型基础上进一步研究各子系统的协作机制,实现松散耦合、高内聚的总体 设计目标,并解决模块间的通信等问题。这部分将在第四章讨论。 4 结合实际的应用系统,基于模型进行开发,具体研究和使用框架、智能客户端、 x m lw e b s e r v i c e s 等技术,逐步开发和完善面向服务的智能客户端分布式框架。 最后将是课题研究工作的总结,并提出下一步的工作方向。 华中科技大学硕士学位论文 2s c s o d a f 模型 随着i n t e m e t 技术的发展,w e b 应用程序因其安装维护的简单性以及与客户端的 无关性而得到应用程序开发人员的青睐。桌面应用程序提供了丰富的界面,同时可以 方便地访问本地磁盘和本地应用程序接1 1 1 ( a p i s ) 。这不仅给开发人员提供了更多的操 作空间,而且还使用户能够更加有效利用本地资源,减少了网络的延时问题,使得用 户可以离线工作。然而,如何将基于浏览器模式和桌面应用程序二者的优点结合起来 开发应用程序一直是开发人员的难题。微软的n e t 架构提供的智能客户端应用程序模 式,有效地结合了桌面应用程序的强大功能和浏览器模式的特点,方便了程序开发。 2 1 框架概要 对于智能客户端的开发人员在设计一个能够在离线和在线状态都可工作的应用程 序时,就会出现如下问题:应用程序如何测定自己的网络状态? 当连接状态发生变化 时,如何通知相关的应用组件? 当离线的时候,任务数据如何在本地保存? 事务( 消 息) 数据如何保存? 这些保存的数据是否已过时? 什么时候刷新数据? 事务性数据如 何与服务器同步? 2 1 1 方案概述 s c s o d a f 可以定义为以下的五元组: s c - - s o d a f = s m a r tc l i e n t ,w e bs e r v i c e ,o t t l i n ew o r k ,c a c h e ,d e s i g np a t t e r n s 从功能上,s c - - s o d a f 模型提供智能客户端离线功能支持,包括:检测网络连 接状态;网络连接状态发生变化时,通知所有注册的组件:下载并缓存必要的任务数 据供离线使用:同步与服务器的消息数据。离线功能底层由缓存访问和通用数据访问 服务支持。 下面给出整个s c - - s o d a f 模型架构的高层描述。 如图2 1 所示,模型主要由三个构件:离线功能支持构件、缓存服务构件、通甩数 据访问服务构件。 华中科技大学硕士学位论文 图2 ,1 模型的高层架构图 2 1 2 设计目标 s c - - s o d a f 模型作为一个智能客户端的基础框架。主要的设计目标包括:构件 间的松耦合;将连接状态管理从应用程序中抽象出来;为应用程序的离线和在线模式 提供相同的编程模型,这样应用程序在两种模式之间的切换不会影响应用程序的用户 体验;为队列管理和连接检测提供可扩展的接口;应用设计模式以提高模型的适应性、 可维护性。 2 2 模型工作方式 本文给出了智能客户端面向服务的分布式应用( s e r v i c e - o r i e n t e dd i s t r i b u t e d a p p l i c a t i o n ) 框架设计,基于此s c - - s o d a f 模型,可以使应用系统具有下载数据和 离线工作的能力。 对于离线工作有两种设计方式:数据中心方式和面向服务方式。对于以数据为中 心的方式,客户端需要使用本地d b m s 和数据复制机制以保证与服务器的数据同步。 在面向服务的方式中,客户端通过向服务器发出请求与服务器交互;当处于离线状态 时,可以延迟服务请求直到重新连接到w e bs e r v i c e s 。 如图2 2 所示,两种方式在结构上的差异,每种方式都有优点和不足。 华中科技大学硕士学位论文 图2 2 数据中心方式和面向服务方式 2 2 1 数据中心方式 应用程序与服务器上的数据模式耦合在一起。本地数据库负责管理客户端数据的 变化,并通过融合复制机制将数据的变化传送回服务器。 客户端首先在离线之前将所需的数据从服务器上复制到本地数据库。当在离线状 态时,改变了本地数据库中的数据。当客户端重新连线时,本地数据库通过融合复制 机制将数据的变化传送回服务器。同时,服务器上变化的数据也传送到客户端。在数 据融合期间发生数据冲突可以根据指定的规则解决。 数据中心方式的主要特点:可以在行列级提供强壮的数据冲突检测,而且提供数 据的验证和约束。客户端与服务器端的数据模式具有强耦合性,服务器端数据模式的 改变直接影响客户端的系统。融合复制是两层结构,所以在可管理性与可维护性方面 华中科技大学硕士、学位论文 有限制。需要在客户端安装d b m s 以便能够和服务器端相互复制数据。由d b m s 负 责数据跟踪和冲突检测。 2 2 2 面向服务方式 对于面向服务方式,智能客户端是通过服务请求与网络上的服务交互,这些服务 可以采用w e bs e r v i c e s 或其它方式实现。这种方式的关键就是客户端与所使用的服务 之间是松耦合的,服务与客户端之间是相互独立的。这种方式的特点;离线处理逻辑 封装在客户端;客户端的数据模式可以与服务器端的不同;可定制的数据冲突检测和 解决方式;较复杂的设计和更多的代码: , 为了支持离线工作,需要一个基础架构来存储服务请求的细节信息,以便等到连 线时可以执行请求。这样的基础架构需要以下主要元素:服务代理( s e r v i c ea g e n t ) : s a 是服务的访问入口,它管理所有客户端与服务的交互,以及封装所有必要的逻辑以 使客户端可以创建服务请求。服务请求( s e r v i c er e q u e s t ) :所有服务请求的详细信息 都封装在s r 对象中,s r 对象被放置在服务请求队列中,等待执行器组件处理请求。 s r 对象的职责就是产生实际的服务请求。服务请求队列( s e r v i c er e q u e s tq u e u e ) :s r q 为s r 提供持久化存储机制。执行器( e x e c u t o r ) :当客户端连线时,执行器负责将s r 从s r q 中取出并发送s r 。当服务请求完成后,执行器通知s a ,然后s a 将这个信息 传递给客户端应用程序。图2 3 显示了面向服务四个关键元素之问的关系。 图2 3 面向服务中四个主要元素的关系 除了以上四个主要元素之外,要支持离线功能,还有其它一些问题需要考虑,例 如通知机制,以便执行器能够执行或挂起s r q 中的服务请求。 华中科技大学硕士学位论文 2 2 - 3 模型适应的场景 定义:任务( t a s k s ) 是离散、独立的工作单元。 单服务请求的任务是最适合在离线情况下工作:在离线时临时存储服务请求所需 的所有数据,等到连线时,将数据转发给服务器。这是典型的“存储一转发”任务处 理模型。常见的例子有;填写物资申请单、提交工单验收结果等。这些任务都是离散 的工作单元,用户可以离线处理,然后生成单个服务请求提交给服务器。 在考虑了任务如何与后台服务交互的同时,还需要考虑的是要将哪些任务相关的 数据缓存到客户端,以便在离线时使用,以及这些数据的有效性验证和约束。 2 - 3 智能客户端应用程序模式 结合w i n d o w sf o r m s 桌面应用程序的优点( 如具有丰富的用户界面和简化的状态 管理) 和w e b 应用程序的优点( 如在w e b 上简易部署和通过服务器访问数据和服务) , 就产生了n e t 架构中的智能客户端。 2 3 1 智能客户端 智能客户端的优点是可以使用户在需要的时候得到操作数据。同时也为用户提供 了更加个性化的服务方式,使用户可以在任何时候、任何地点,通过任何通信设备与 公司业务进行交互。另外通过使用智能客户端与x m lw e bs e r v i c e s 形成了一种跨网绍 的分布式技术,有效地解决了服务器处理能力的瓶颈问题。 2 3 2 主要特点 智能客户端相对于w e b 方式的瘦客户端,有以下特点: 构建智能客户端的最大的好处就是可以离线使用。尽管业务之间的联系越来越紧 密,但仍不能给企业应用程序提供始终连续的连接。离线工作方式可以在重新在线时, 自动接收数据和应用程序更新,这种特征是人们曾经很想得到的,但在n e t 前,离线 工作是很难实现的。同胖客户端样,智能客户端给客户端分布大量的处理,这就为 服务器免除了它在一个基于w e b 的应用程序中需要承担的负荷。而且智能客户端采取 一种用户希望应用程序采取的工作方式允许快速数据存取和管理,而不需要不必 要的屏幕刷新。 基于w e b 应用程序的特点是所有的处理工作都由服务器完成。而智能客户端模式 华中科技大学硕士学位论文 建构的伸缩性更强的结构在本地完成了几乎所有的工作。这样便减少了网络和服务器 的负载,同时提高了响应时间。一个智能客户端应用程序既可以在没有和网络服务器 交互的情况下正常地工作,同时也可以在需要时动态地下载一个装配件,或者调用一 个x m lw e bs e r v i c e s 。 表2 1 描述了智能客户端和瘦w e b 解决方案之间的比较可以看出智能客户端的优 势, 表2 1 智能客户端和瘦w e b 解决方案之间的对比 功能。 智地客户谐。:,:。- i j 。_ c b 应用程序 可以离线工作可以不容易 集中的部署可以可以 高级的g u i 特征有有 高性能的g u i可以不可以 在客户端处理业务可以有限 通过h t t p 更新可以可以 安全是是 不接触客户端安装不是;需要构建用来改变n e t 的安是 全配置的一个加载应用程序 大部分时间只传输数据是不是;结合内容的 传输,n e t 控件显 示在i e 中 客户端需要n e tf r a m e w o r k足不足 平台和客户端足独立的不是足 充分利用客户端丰富的资源可以不能 智能客户端应用程序可以有效地利用以w i n d o w s 为基础的功能强大的a p i s 。例 如智能客户端应用程序可以使用g d i + 类库,也可以使用微软的o f f i c ea p i s 。这样就 使开发人员在自己的应用程序中能够集成使用w o r d 、e x c e l 、p o w e r p o i n t 等。 出于上面第一点所言部件之间的相互调用并不采用直接引用方式,这样系统实现 的更松散的耦合,为应用程序升级更新提供了方便。 华中科技大学硕士学位论文 由于应用程序的松散耦合特性,使得系统的进一步模块化成为了可能,新功能、 新特性的加入只需要开发出符合接口定义的新模块并添加连接即可。而无须修改重编 译现有的程序。 智能客户端的应用程序可以很方便的从网络服务器加载应用程序,而且因为程序 及加载是从8 0 端口实现,故无须考虑防火墙问题,这样为企业系统的集中管理提供了 方便。 智能客户端应用程序可以与w e bs e r v i c e s 方便的集成应用,这样便可以轻松享受 c s 应用程序的完美用户体验而不需担心防火墙等等的一系列问题。 2 3 3 技术基础 实现智能客户端模式主要有两项技术支持:x m lw e bs e r v i c e s 技术和装配件支持。 x m lw e bs e r v i c e s 是下一代分布式应用系统的关键技术,也是实现智能客户端 模式的技术基础。x m lw e bs e r v i c e s 基于一套开放的网络标准,如h t t p 、x m l 、s o a p 、 w s d l 等。x m l w e bs e r v i c e s 允许在不同平台运行、不同语言开发的应用程序之间进 行有效的通信,它提供了一种更加有效的方式使桌面客户应用系统可以利用传统的 c s 模式应用系统与其它企业应用系统进行集成。它使各个企业可以通过i n t e r n e t 更加 容易地连接和使用其它企业或第三方的数据。 智能客户端一般作为x m lw e bs e r v i c e s 的客户端从i n t e m e t 或者其它的企业应用 系统中直接导入所需要的数据。x m l w e bs e r v i c e s 允许用户充分利用其与多个设备与 网络的互联性。它能以正确的格式利用所需要的信息,例如以电子表格、w o r d 文档或 者是业务相关应用程序接口等格式。正是这些优点使得x m lw e bs e r v i c e s 成为更加灵 活、集成化更强、功能更加丰富的客户端技术。 装配件实际上就是利用n e t 框架实现的组件。装配件不再有d l l ( 动态链接库) 的 版本冲突问题。这些问题一般出现在安装过程中。当一个新的应用程序用一个不同版 本的d l l 代替系统注册表中的一个共享的d l l ,而这个新的d l l 又不能与引用这个 d l l 的本地应用程序兼容时,应用程序将被破坏。 一般情况下,n e t 框架下的应用程序都是自包含和独立的应用程序,是在本地的 应用程序目录而非共享目录中解析装配件的。利用这种方法,多个版本的相同装配件 就可以互不冲突地共存于同一个系统中,并且再也不需要注册这些应用程序需要使用 的装配件,而只是把应用程序目录从一台p c 机复制到另一台p c 机上合适的位置就 华中科技大学硕士学位论文 可以正常运行了。卸载时只需要删除应用程序目录即可。这些是以前d l l 无法做到的。 同时n e t 框架也允许共享装配件,只需要利用全局的装配件缓存。在缓存中,每一个 装配件都有一个惟一的标识,这个标识由文件名、版本、语言类型等组成。就保证了 一个装配件的多个版本能够互不影响地正常运行。 2 。4 分布式系统模式 在当今的互联世界中,越来越多的企业应用程序跨多个服务器分布和运行、连接 到远程数据源和w e bs e r v i c e ,并可通过i n t e r n e t 访问。分布式计算功能强大,但也并 非没有面螨挑战。网络在本质上并不可靠,同本地的进程间通信相比,与远程服务器 的通信速度较慢。另外,同时在多台计算机上运行一个程序可能会导致许多并发和同 步问题。 2 4 1 协作概述一 按照b u s i n e s sc o m p o n e n tf a c t o r y ( 业务组件工厂) 中所说,分布式计算可以基于 两个截然不同的体系结构:基于实例的协作和基于服务的协作。 基于实例的协作跨网络边界扩展了面向对象的计算模型。组件可以实例化远程对 象实例、四处传递对这些远程对象的引用、调用远程对象的方法以及取消对它们的分 配。此方法的优点在于可以将应用程序内使用的同个面向对象的编程模型应用于 分布式组件。大多数运行时平台都包含对基于实例的协作的支持,以便开发人员在访 问远程对象时不必提供特殊内容,或者相对于访问本地对象,只需提供极少的特殊内 容。这就大大简化了分布式解决方案的开发,通常会简化到如下程度:以前位于相同 位置的对象可以在部署时进行分布,而无需对应用程序进行任何代码更改。基于实例 的协作还使远程对象的使用者能够更加精细地控锘4 远程对象的生存期,从而让用户更 有效地使用远程资源。 但是,基于实例的协作在带来易用性的同时,还因复杂的交互模型以及用户和提 供商之间的紧密联系而导致成本增加。基于实铆的交互要求远程对象的特定实例可以 通过网络找到,这将复杂的生存期和实例管理引入了通信协议中。因此,大多数支持 基于实例的协作的平台都不提供与其它平台的互操作性。 基于服务的协作通过只向潜在使用者公丌接口来解决其中的一些挑战。用户可以 调用该接口上的方法,但是他们不能控制任何远程对象的生存期。这大大简化了交互, 华中科技大学硕士学位论文 并允许使用支持跨平台互操作的标准协议。 但是,基于服务的协作不能为本地对象和远程对象提供使用面向对象的编程模型 时所具备的连续性。这意味着开发者必须明确跟踪对象之间的会话状态,而在使用基 于实例的协作时就不必担心这些。同样,尽管基于标准的协议改善了互操作性,但是 它们要求应用程序将应用程序内部数据类型转换成每个通信终端都能够理解的通用格 式,而这可能涉及其它转换逻辑。 2 4 2 面向服务的协作 从以下两个个方面进行论述:基本协作概念以及使用w 曲s e r v i c e 实现的基于服 务的协作模式。 类、对象、组件和接口是现代软件的基本构建单元。其中的些元素用于封装问 题域,而另一些元素则提供系统基础结构和技术体系结构。每个构建单元都提

温馨提示

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

评论

0/150

提交评论