(计算机应用技术专业论文)基于vsnet技术的软件框架模型的研究与应用.pdf_第1页
(计算机应用技术专业论文)基于vsnet技术的软件框架模型的研究与应用.pdf_第2页
(计算机应用技术专业论文)基于vsnet技术的软件框架模型的研究与应用.pdf_第3页
(计算机应用技术专业论文)基于vsnet技术的软件框架模型的研究与应用.pdf_第4页
(计算机应用技术专业论文)基于vsnet技术的软件框架模型的研究与应用.pdf_第5页
已阅读5页,还剩53页未读 继续免费阅读

(计算机应用技术专业论文)基于vsnet技术的软件框架模型的研究与应用.pdf.pdf 免费下载

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

文档简介

硕士学位论文 摘要 软件构件化是软件工业发展的大趋势,工业化的软件复用已经从通用类库进 化到了应用框架。面向对象的,可复用的软件框架已经成为一个软件系统的核心 元素,是软件系统中其它部分所依赖的基础。但由于框架是一个软件系统的本质 的反映,是由系统中的一些模块化的、不容易改变的可重用元素组成,而这些不 容易改变的部分往往又是一些相当抽象的概念,因此在实践中设计一个优秀的、 领域无关的软件框架并不是件容易的事情。 随着计算机软、硬件技术的发展特别是计算机网络的飞速发展、软件开发规 模和复杂度不断增加,软件开发面临巨大的挑战。技术的发展为应用的开发提供 了更多的选择,同时也提出很多新的研究课题。我们方面重点研究了n e t 的 核心技术,另一方面从软件工程、软件重用的角度对应用软件系统的框架进行了 研究。针对早期两层软件体系结构的缺陷和对三层体系结构数据高度集中化操作 的要求,我们采用n e t 框架技术提出了一种与领域无关的四层应用软件框架模 型,并将其用于日肃省委组织部干部管理信息系统的开发中。通过实际应用我们 认为此框架模型能有效地作为一种软件体系结构和规范,用于指导企业级应用系 统地开发:同时基于n e t 的四层应用软件框架实现了构件重用、数据访问集中 化,可以作为一种较大粒度的框架来进行复用,并且它还为构件的组装提供了基 础和上下文,能动态地组装构件,实现软件的“即插即用”。 关键词:构件;n e t ;x m l ;s 0 a p ;软件复用;软件框架;信息系统; 1 飞 基于v s n e t 技术的软件框架模型的研究与应用 a b s t r a c t n o wt h es o f t w a r eb a s e dc o m p o n e n ti st h em a i nt r e n do ft h es o f t w a r ei n d u s t r y , t h es o f t w a r er e u s eo ft h ei n d u s t r i a l i z a t i o nh a s a i r e a d ye v o l v e df r o ml 油r a r y g e n e r a l l yu s et ot h ea p p l i e df r a m e w o r k t h es o f t w a r ef r a m e w o r kt h a t0 b j e c t - o r i e n t e d a i l dr e u s e dh a sa l r e a d yb e c o m eac o r ee l e m e n to fs o f t w a r es y s t e m ,i ti sf o u n d a t i o no f o t h e rf r a c t i o n si ns o f t w a r es y s t e m b u tb e c a u s ef r a m e w o r ki st h ee s s e n t i a lr e n e c t i o n o fs o f t w a r es y s t e m ,i ti sf o r m e df r o ms o m em o d u l a r i z e 、r e u s e f u le l e m e n tt h a tn o t e a s yc h a n g e di nt h es y s t e m ,y e tt h ef r a c t i o no ft h e s ew h on o te a s yc h a n g e su s u a l l yi s t h e v e r y a b s t r a c t c o n c e p t , s oi ti sd i f 行c u i tt o d e s i g na ne x c e l l e n t 、d o m a i n i n d e d e n d e n c es o f t w a r ef t a m e w o r k a l o n gw i t ht h ed e v e l o p m e n to fc o m p u t e r ss o f t w a r ea n dh a r d w a r et e c h n i c a l e s p e c i a l l yt h ef a s td e v e l o p m e n to fn e t w o r k 、 t h ec o n t i n u o u s l yi n c r e a s i n go fs o f t w a r e d e v e l o p m e n ts c a l ea n dc o m p l i c a t i o n s ,t h ed e v e l o p m e n to fs of 、t w a r ef a c e sah u g e c h a l l c n g et h ed e v e l o p n l e n to ft e c h n i c a lp r o v i d em o r es e l e c t si n t ot h ed e s i g no f a p p l i c a t i o ns y s t e m ,a l s op u tf o r w a al o to fn e wr e s e a r c ht o p i c s o nt h eo n eh a n d w em a i n l yi n t r o d u c et h ec o r et e c h n i q u eo ft h e n e t ,o nt h eo t h e rh a n dw es t u d yt h e 什a m e w o r ko fs o f t w a r ef r o mt h es o f t w a r ee n g i n e e r i n ga n ds o f t w a r er e u s ep o i n to f v i e w f o rt h es h o r t c o m i n gi nt w ot i e rs o f t w a r ea r c h i t e c t u r ea n dt h en e e do fh i g hd a t a c o i l e c “o ni nt h r e et i e rs o f t w a r ea r c h i t e c t u r e ,w ep u tf o r w a r daf i e i d i n d e p e n d e n c e a n df o u rt i e r a p p l i c a t i o ns o f t w a r ef r a m e w o r km o d e l sb a s e do nt h en e t t e c h n o l o g y ,t h e na p p l yi ti n t ot h ec a d r em a n a g e m e n ti n f o r m a t i o ns y s t e mo fo r g a n i c d e p a r t m e n ti ng a n s up r o v i n c e b ya p p l i n gi ti np r o j e c tw et h i n kt h a t n e tc a nb ea s o f t w a r ea r c h i t e c t u r ea n dc r i t e r i o nt ou s e df o rg u i d i n gt h ed e v e l o p m e n to fb u s i n e s s e n t e r p r i s ea p p l i c a t i o ns y s t e ma c t u a i l y ; a to n et i m et h ef o u rt i e rs o f t w a r ef r a m e w o r k b a s e do n n e tr e a 】i z ec o m p o n e n t r e u s ea n dh i g hc o l l e c t i o no fd a t aa c c e s sa n di tc a n b eab i gg r a n u l a “t yf r a m e w o r kt or e u s e , a l s oi tp r o v i d e sac o n t e x tf o rt h ea s s e m b l y o ft h ec o m p o n e n t , c a r r yo u td y n a m i c a l i ya s s e m b i i n go fc o m p o n e n t , i m p l e m e n t i n g “p l u ga n dp l a y ”o ft h es o f t w a r e k e yw o r d s :c o m p o n e n t : n e t ;x m l ;s o a p : s o f t w a r er e u s e ; s o n w a r ef r a m e w o r k ; i n f o r m a t i o ns y s t e m ; 硕士学位论文 插图索引 图2 1 两层应用结构示意图,6 图2 2 典型的三层结构模型- 8 图3 1 n e t 平台框架体系结构1 l 图3 2 公共语言运行时c l r 1 3 图3 3a d o n e t 组件结构1 6 图4 1 面向领域的软件开发模型2 l 图4 2 特定领域框架2 3 罔4 3 基于框架的应用程序一2 3 图4 4 框架开发与使用2 6 图5 】基于n e t 的分布式软件体系结构2 9 图5 2 基于n e t 技术的四层软件框架模型2 9 图6 1 甘肃省委组织部_ f 部管理信息系统的整体架构3 7 图6 2 干部管理信息系统主要模块的:l :作方式3 9 图6 3 干部管理信息系统的四层逻辑结构3 9 图6 4 干部管理信息系统的档案维护模块4 3 图6 5 干部管理信息系统的综合查淘模块4 4 图6 6 干部管理信息系统的报表生成模块4 5 图6 ,7 干部管理信息系统的主界面4 5 兰州理工大学 学位论文原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所 取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含 任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重 要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本 声明的法律后果由本人承担。 作者签名日期:切年,月妒日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意 学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论 文被查阅和借阅。本人授权兰州理工大学可以将本学位论文的全部或部 分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手 段保存和汇编本学位论文。 本学位论文属于 1 、保密口,在年解密后适用本授权书。 2 、不保密毋。 ( 请在以上相应方框内打“”) 作者签名:i 像却 导师签名: j 日期:廊年,月妒日 日期:柳年,月髟日 硕士学位论文 1 1 、课题的提出 第1 章绪论 随着i n t e r n e t 技术的飞速发展,特别是w e b 技术在2 0 世纪9 0 年代中期成 为计算主流之后,应用系统的架构以及业务计算的模型发生了巨大变化此前流 行的主机终端模式( 集中式结构) 、文件服务器工作站模式,到目前广泛运用的 二层c s 模式所固有的缺陷使之很难适应i n t e r n e t 时代的分布式计算环境的要 求,目前这两种模式已经不再使用或很少使用。i n t e r n e t 发展的原动力从开 始便是希望提供一个可伸缩、可扩展和高度可用的公共信息传送平台,而且w e b 模型是由各种信息和应用程序集合所组成的层松散地连接而成,而这些信息和应 用程序又驻留在种类繁多的硬件平台上,为了符合这种原则,跨地域、跨平台的 分布式计算的规模越来越大,应用也越来越广泛,应用系统的架构自然而然的就 演变到了分布式架构。 当前软件体系结构已经成为复杂系统高层设计所关注的焦点。通常,传统设 计者不得不时刻面对着新需求、新技术、以及新环境的挑战,而软件体系结构的 研究将有助于减少开发应用系统的开销、提高软件开发的效率、改进软件开发质 量、保证软件开发的一致性、增强相似产品不同成员间共通化的可能性。基于相 同领域软件体系结构的软件开发者可以把精力从每一行代码转移到大粒度的体 系结构元素( 构件与连接子) 和它们的互连上来。在某些方面使用别人成熟的软 件框架,就相当于让别人帮你完成一些基础工作,你只需要集中精力完成系统的 业务逻辑设计。而且框架一般是成熟,稳健的,它可以处理系统很多细节问题, 比如,事物处理,安全性,数据流控制等问题。另外框架一般都经过很多人使用, 所以结构很好,扩展性也很好,而且它是不断升级的,你可以直接享受别人升级 代码带来的好处。 1 2 课题的研究现状、目的和意义 应用框架是对领域内应用系统的部分或整体的可重用设计,将应用系统的控 制流进行抽象,形成更为通用的功能组件和稳定的界面。面向对象应用框架强调 模块的独立性,可用性,灵活性,这种方式的优点是为编程提供了很大的方便可 以增强大型应用软件的可扩充性和代码重用性,缩短大型应用软件系统的开发周 期,提高软件质量。 但是设计一个应用软件很困难,而框架能使应用程序的开发简单,价格低廉, 人们已经开发了很多实用的软件框架,但是软件框架开发的理论和方法学远没有 成熟起来。到目前为止,软件框架的开发与其说是一门工程技术,倒不如说是 门艺术,因为软件框架设计的优略性在很大程度上取决于开发者自身的素质,经 验背景,对面向对象思想本质的理解等。虽然如此,人们在开发软件框架的过程 中还是总结了一些很有用的经验,如r a l p hj o h n s o n 教授对软件框架开发过程中 最重要的抽象设计问题、文档化问题进行了探讨,d o nr e b o r t 则对软件框架的 演化模式进行了研究,m i c h a e lm a t t s s o n 对软件框架的演化成本评估问题进行 了研究,初步搞清了软件框架自身的一些特点和设计规律,这些都逐步使得软件 框架的开发逐步向着工程化方向,而不是艺术化方向发展。 综上所述,设计一个好的应用软件体系结构的框架模型对于软件项目开发具 有至关重要的作用,是决定软件系统特别是大型软件系统开发成败的关键。本课 通过对,n e t 技术、软构件、软件框架等技术的研究,提出了一个基于n e t 的四 层应用软件框架模型,并将其运用到一甘肃省委组织部干部管理信息系统的开发 中。此项目开发出来后,可实现省管干部信息的动态管理、使人才。管理的效率大 幅提高,并使干部信息管理工作更加规范化和科学化。同时还可利用本项目系统 架构在相同领域内进行二次开发,大大缩短软件开发周期,实现构件复用和软件 拼装。 1 3 本文的研究内容及结构安排 本文的主要内容包括软件体系结构概述;n e t 开发平台及其关键技术的介 绍;基于框架的应用软件开发方法及其相关技术的概念描述并提出一个基于n e t 技术的四层软件框架模型;最后具体阐述了该框架模型的应用实例一甘肃省委组 织部干部管理信息系统。 本论文分为六章,具体的内容组织如下: 第1 章绪论 本章主要叙述了课题的研究背景及课题的研究目的与意义,并介绍了本文的 研究成果和结构安排。 第2 章软件体系结构概述 本章首先介绍软件体系结构的有关基本概念,接着介绍了软件体系结构的层 次划分一单层、两层及多层,最后描述了分布式应用系统的概念和发展现状。 第3 章v s n e t 开发技术综述 本章首先介绍了n e t 开发平台的概念,从而引出,n e t 框架以及n e t 框架下 的核心组件。最后详细阐述了本课题涉及的n e t 开发平台关键技术以及n e t 技 术的新特性。 硕士学位论文 第4 章框架技术 本章首先介绍了软件复用的概念、然后介绍了软构件、领域工程和框架的概 念,以及框架在当今软件开发中所占地位及作用,最后介绍了基于框架的开发过 程和一个基于框架的层次开发方法。 第5 章基于n e t 的四层软件框架模型设计 在面向框架技术和n e t 技术的基础上,通过对基于软构件的分布式软件体 系结构的描述设计了一个基于n e t 技术的四层软件框架模型并对此模型的四个 层次进行了详细说明。 第6 章应用实例一甘肃省委组织部干部管理信息系统 本章主要以甘肃省委组织部干部管理信息系统研究与实现为模型,讲述了基 于n e t 平台的四层软件框架模型在该系统中的应用。 基于v s n e t 技术的软件框架模型的研究与应用 第2 章软件体系结构概述 2 1 软件体系结构定义 随着软件系统的规模和复杂程度增大,系统整体结构的设计和规范将比计算 算法和数据结构的选择具有更加重要的意义。虽然目前对软件体系结构尚缺乏一 个统一的明确的定义,但是就其内涵来说,软件体系结构应包含对组成系统的构 件的描述、构件之间的交互关系以及系统组合的模式和应该满足的约束关系等。 软件体系结构的设计是决定大型的软件系统成败的关键因素之一。选择一种 不合适的体系结构将给整个软件系统带来灾难性的后果。 虽然软件体系结构已经在软件工程领域中有着广泛的应用,但迄今为止还没 有一个被大家所公认的定义。许多专家学者从不同角度和不同侧面对软件体系结 构进行了刻画,较为典型的定义有: ( 1 ) p e r r y 和w o l f :软件体系结构是具有一定形式的结构化元素,即元素 ( e l e m e n t s ) 的集合,包括处理元素、数据元素和连接元素。处理元素负责对数据 进行加工,数据元素是被加工的信息,连接元素把体系结构的不同部分组合连接 起来。这一定义注重区分处理元素、数据元素和连接元素,这一方法在其他的定 义和方法中基本上得到保持。软件体系结构形式( f o r m ) 是由专有特性 ( p r o p e r t i e s ) 和关系( r e l a t i o n s h i p ) 组成。专有特性用于限制体系结构元素的选 择,关系用于限制体系结构元素组合的拓扑结构。而在多个体系结构方案中选择 合适的体系结构方案往往基于一组准则( r a t i o n a l ) 。表示为三元组 s a = e l e m e n t s ,f o r m ,r a t i o n a l 。 ( 2 ) m a r ys h a w 和d a v i dg a r l a n :软件体系结构是软件设计过程中的一个层 次。这一层次超越计算过程中的算法设计和数据结构设计。体系结构问题包括总 体组织和全局控制、通讯协议、同步、数据存取,给设计元素分配特定功能,设 计元素的组织,规模和性能,在各设计方案间进行选择等。软件体系结构处理算 法与数据结构之上关于整体系统结构设计和描述方面的一些问题,如全局组织和 全局控制结构、关于通讯、同步与数据存取的协议、设计构件功能定义、物理分 布与合成、设计方案的选择、评估与实现等。表示为三元组s a = c o m p o n e n t s , c o n n e c t o r s ,c o n s r a i n s 。构件( c o m p o n e n t ) 可以是一组代码,如程序的模块: 也可以是一个独立的程序,如数据库的s q l 服务器,连接器( c o n n e c t o r ) 表示构 件之间的相互作用。它可以是过程调用、管道、远程过程调用等。一个软件体系 结构还包括某些限制( c o n s t r a i n ) 。该模型的视角是程序设计语言,构件主要是 代码模块。 硕士:学位论文 ( 3 ) k r u c h t e n :软件体系结构有四个角度,它们从不同方面对系统进行描述: 概念角度描述系统的主要构件及它们之间的关系;模块角度包含功能分解与层次 结构:运行角度描述了个系统的动态结构;代码角度描述了各种代码和库函数 在开发环境中的组织。 ( 4 ) h a y e sr o t h :软件体系结构是一个抽象的系统规范,主要包括用其行为 来描述的功能构件和构件之间的相互连接、接口和关系。 ( 5 ) d a v i dg a r l a n 和d e o ep e r r y 于1 9 9 5 年在i e e e 软件工程学报上又采用 如下的定义:软件体系结构是一个程序系统各构件的结构、它们之间的相互关系 以及进行设计的原则和随时间进化的指导方针。 ( 6 ) b a r r yb o e h 和他的学生提出,一个软件体系结构包括一个软件和系统构 件,互联及约束的集合;一个系统需求说明的集合;一个基本原理用以说明这_ 构件,互联和约束能够满足系统需求。表示为四元组s a = c o m p o n e n ts , c o n n e c t i o n s ,c o n s t r a i n s , s t a k e h o l d e r s ,n e e d s ,r a t i o n a l ) 。 ( 7 ) 1 9 9 7 年,b a s s ,c t e m e n t s 和k a z o a n 在使用软件体系结构一书中给 出如下的定义:一个程序或计算机系统的软件体系结构包括一个或一组软件构 件、软件构件的外部的可见特性及其相互关系。其中,“软件外部的可见特性” 是指软件构件提供的服务、性能、特性、错误处理、共享资源使用等。浚定义强 调体系结构分析需要从系统中抽象出用于分析、决策的信息。 我们可以将上述定义理解成软件体系结构的经典定义,而它的广义的定义应 该包括下面三个部分: ( 1 ) 软件和系统的元件( 构件) 、连接件和约束( 规则) 的集合; ( 2 ) 从系统不同的角度出发,各种角色( s t a k e h o l d e r ) 的需求的集合; ( 3 ) 用元件、连接件和约束描述一个系统,以及在实现这个系统时如何满足各 种角色的需求的规则( ( r a t i o n a l e ) 。 2 2 软件体系的分层结构 2 2 1 单层软件体系结构 早期的软件产品大都是单机软件系统,通常设计人员和开发人员对系统结构 并不很重视,从整体上看,软件没有层次概念,通常一个应用程序包括了所有的 用户界面、业务逻辑以及数据处理,应用的数据有可能存放在远程机器上,但访 问数据的逻辑被包含在应用程序中。单层应用软件由于包含了所有的应用逻辑, 从后台最基本的数据处理,到前台对用户的响应以及处理结果的显示,所以应用 软件往往显得比较庞大。即使是采用了d l l ( d y n a m icl i n kl i b r a r y ,动态链接 库) 技术后,用多个d l l 程序模块来处理不同的应用功能,但从软件整体结构来 基于v sn e t 技术的软件框架模型的研究与应用 讲,它仍然是个单层应用软件”“。 由于单层应用软件比较庞大,所以相应地带来一些不利的因素:在设计阶段, 要求设计人员必须面面俱到,从复杂的逻辑结构中整理出程序设计文档;在开发 阶段,软件开发人员之间的协作也比较困难:在测试和维护阶段,对软件的局部 改动可能会影响到整体:软件发布之后,如果需求有了新的变化,在开发新版本 软件时,往往要全面调整程序结构甚至废弃原来大量的代码,所以单层软件的版 本更新往往比较慢。 当然,单层应用软件也有一些优点,因为所有的处理集中在一个程序中,实 现功能时没有经过中间层次,所以程序的运行效率往往比较高,对用户的响应也 比较快。 2 2 2 两层软件体系结构 对于网络应用或者分布式应用,单层结构显然不能满足要求,于是把应用程 序分成两部分,客户端部分和服务端部分,从而形成了两层结构,有时也称为客 户服务器结构。在这种两层结构的应用中,用户界面和业务逻辑在应用的客户 端,数据维护在服务器端实现,通常由另一个独立的应用程序来完成,比如s q l s e r v e r 或者0 r a c l e 等数据库系统。两层应用软件的结构如图2 1 所示: 从图2 1 ( a ) 中可以看出,在设计时把用户界面与业务逻辑都放在客户端, 从而使应用程序的负担都由客户端来承担;与之相对应的另一种两层结构如图 2 1 ( b ) 所示,是把业务逻辑部分放在服务器端,在这种情况下通常是把业务逻 辑直接放在数据库系统中。 用户界面层 用户界面层 用户界面层 ( 用户界面与业务逻辑) i 服务器 ( 数据维护) ) 数据库 l 用户界面层 ( 用户界面) i 巳 服务器层 服务器层 ( a )( b ) 图2 1 两层应用结构示意图 2 2 3 多层软件体系结构 从两层结构到三层结构或者多层结构的演变是个很自然的过程。在两层结构 硕士学位论文 中,如果把业务逻辑放在客户端则往往使得客户层非常笨重,并且也为系统的 日常维护和版本升级造成了很多不便;如果把业务逻辑放在服务器层,则往往难 以在数据库系统中实现复杂的应用逻辑。因此,在三层或多层结构中,把业务逻 辑单独提取出来,构成了中问的一层或多层,形成了真正的分布式应用系统。 、在多层应用结构( 包括三层) 中,客户层( 也称为表示层) 只提供应用的用户界 面,它根据用户的操作调用相应的业务逻辑,而并不直接访问后台数据库。业务 逻辑层是三层应用系统的关键所在,它负责处理所有用户的请求,并且把处理结 果返回给表示层;服务器层仍然提供数据库支持,我们也可以用一些简单的存储 过程来维护数据,我们通常把这一层叫做数据服务层。对于三层模型,由以下部 分组成: 1 数据服务层( d a t aa c c e s s1 、j e r ) 数据服务层是软件应用框架的数据最终提供者。数据库不和每个活动客户保 持一个单独的连接,而是若干个客户通过应用逻辑组建共享连接,从而减少了连 接次数,提高了数据库服务器的性能和安全性。它主要由表定义、表关系和组成 数掘库的数据项构成,并且还包括了以其自身的格式表示的用于从数据库中检索 信息的代码。 在数据服务层中,要解决的难点在于确定数据服务层在哪儿结束,而业务逻 辑层在哪儿开始。之所以产生这一问题,是因为可以在数据库代码( 作为存储过 程) 中就可以实现业务逻辑( 业务逻辑层) 的许多功能。而至于怎样划分主要是根 据应用程序的需要:是将快速地移植到其他数据库服务器作为考虑的关键,还是 重点考虑应用系统的性能,如果重点是前者,那么将大部分功能放在业务逻辑层 是更好的选择,反之则放在数据层。 2 业务逻辑层( b u s i n e s sl o g i ct i e r ) 又可以称作“构件服务器”,是应用系统的关键所在,表示持久性数据和各 种业务逻辑的服务器对象,负责处理客户端的应用请求,并将处理结果返回到用 户。构件服务器属于特定领域应用范畴,它主要包括一些从某个领域抽象出来的 算法构件和领域业务逻辑构件。一般业务逻辑层主要包括数据管理器,构件库和 构架库。数据管理器负责与数据层的数据交换,构件库和构架库主要负责构件之 间的管理。 应用程序的业务逻辑层是大部分的特定功能驻留之处。通常,这些功能由调 用多个命令或组件来实现,以便使表示层与应用程序所要实现的复杂业务规则分 离。该层一般包括指向第三方系统的方法的链接。 与面向对象的原则相反,为应用程序的业务层创建的所有组件都是无状态的 一也就是说,它们必须使用带有许多参数的函数和过程,而不是在调用方法前设 置属性值。在n e t 中,业务层一般是通过类库实现的。 基于v s n e t 技术的软件框架模型的研究与应用 3 表示层( p r e s e n t a t i o nt ie r ) 应用程序的表示层是终端用户能看到的系统的唯一一个部分,它包括客户端 的软件组件、应用程序、w e b 浏览器等。这些不同形式的客户端能够以可视形式 提供丰富、灵活的用户交互界面,用来表示信息和收集数据,通过通信( 互操作) 机制来访问中间层的构件库,并利用中间层提供的功能服务完成用户请求,并且 还可能会执行一些简单的业务逻辑,比如对用户输入的数据进行简单的检查。该 层通过业务逻辑层,利用其功能进行许多工作但它并不直接访问数据库( 或是 数据服务层的其他部分) 。通过这种方式,就可以隐藏许多应用程序的具体实现, 只需提供最合适的表示信息和可能的选项。 图2 2 典型的三层结构模型 多层软件体系结构的优点: 多层应用结构要求层与层之间必须有明确的接口定义,在一个设计得很好的 三层( 或多层) 结构中,层与层之间的通信是通过公共接口,从而保证多层之间可 以协作完成应用任务。业务逻辑层作为表示层和数据层的中间服务层,必须保证 所有的业务逻辑都被正确处理。 多层结构比两层结构具有更大的灵活性。首先,三层可以运行在不同的机器 上,如果应用是业务逻辑t b 较复杂,可以使用高配置的计算机来运行业务逻辑层; 如果应用的数据量很大,就可以采用分布式的数据库来作为应用的数据存储结 构。其次,只要层与层之间的接口保持不变,那么某一层的变化不会影响到其他 层,当层与层之间是松散藕合时,可以简单地替换组件( 或整个一层) ,以适应变 化了的需求,而无须重写整个应用程序或对系统进行重新测试,出于这种考虑, 每一层对邻近层的实现应该完全不知且不负责任,应该是不能看到邻近层的公共 接口。 2 3 分布式应用系统概述 随着i n t e r n e t i n t r a n e t 技术的兴起,传统c s 模式受到了很大挑战。由 于客户的需求,企业可能必须开放例如产品查询等功能给所有i n t e r n e t i n t r a n e t 的使用者。因此企业部分信息必须支持用浏览器进行交互式的查询。 蚕翟 h 哥 一 一 一厂l | | 硕= 学位论文 为了解决这个问题,开发人员可能会采用在i n t r a n e t 架设一台w e b 服务器,然 后运用c g i ,i s ap 或是a s p 等技术把提供信息的应用逻辑重新写次,以支持 浏览器交互式查询,形成b s ( b r o w s e r s e r v e r ) 结构。现有系统采用这种体系结 构之后,事实上整个系统的结构已经是分布式结构了,因为现有系统中除了数据 库服务器之外,另外还有一台w e b 服务器。这种结构也有许多不足。那就是原先 任何信息系统需要提供i n t e r n e t i n t r a n e t 的存取形式时,旧的信息系统都必须 以新的技术重新写一次。这种重复开发的成本是很高的,而且当系统应用逻辑发 生变化时,需要同时修改两部分,这就增加了系统的运作成本“3 。 为了解决这个问题,并且充分地发挥面向对象分析、面向对象设计的优越性, 分布式结构也要做相应的改进,即加入应用服务器。这种体系结构的一个变化简 单的说就是软件开发人员以组件形式封装企业的应用逻辑程序代码( 这种经过封 装,能够执行特定企业功能的对象称为“企业对象”) ,例如m i c r o s o f t 的 c o m d c o m c o m + 、c o r b a 对象、或者j a v a b e a n 等等,然后把这些组件分发到应用 服务器上。当应用服务器上包含组件之后,软件开发人员就可以在开发企业应用 程序时,使用这些组件提供的服务。例如,如果在应用程序中已经有了提供产品 信息的组件,当开发人员需要编写一个更新产品信息的程序时,可以直接使用它。 需要在i n t e r n ec i n t r a n e t 上让客户查询产品信息时,也可用a s p n e t 等技术使 用应用服务器上组件提供的服务解决。当企业需要改变产品处理的逻辑时,只需 修改应用服务器上的组件,使用应用程序和使用浏览器的客户都可以立刻使用最 新的企业应用逻辑。这种结构可以增加组件的重复使用性,使整个系统的开发和 维护成本都降低下来。这种结构就是发展的分布式应用系统。因为整个应用系统 的执行是分成数个不同的部分并且执行在不同的机器之中。也正因为如此,整个 系统的扩展性也大为提升。 由于分布式应用系统非常强调系统的稳定性,扩展性和执行效率,所以现有 的许多分布式应用系统都提供了容错能力以及负载平衡能力。在这种结构中,系 统往往配置多台应用服务器,当客户端或w e b 服务器需要组件的服务时,可以依 据目前应用服务器的负荷来动态决定连接到哪一台应用服务器上。 如今采用多层的分布式结构来开发的系统已成为业界主流,原有系统的改建 也更多地采用这种分布式结构。目前分布式应用系统应用范围极其广泛,包括在 线事务处理系统,网管系统,全球个人通讯系统,电子医疗图像系统,高性能 w e b 服务器和多处理器通信予系统等等许多方面。 作为个分布式系统,它所具有的主要特征有:资源共享 ( r e s o u r c e s h a r i n g ) 、开放性( o p e n n e s s ) 、并发性( c o n c u r r e n c y ) 、容错性( f a u l t t o l e r a n c e ) 和透明性( t r a n s p a r e n c y ) 等。这些特性与分布式系统的关系,表现在 并非一个称为分布式的系统会自然地具备这些特性,而是这些特性是评价一个系 基于v sn 口技术的软件框架模型的研究与应用 统是否真正的就是分布式系统的依据,也是设计分布式系统追求的目标,不论系 统软件还是应用软件的设计人员都应该认真研究并支持这些特性,否则设计的系 统就不是一个真正的分布式系统。 目前国外分布式技术的一个进展就是随着x m lw e bs e r v i c e 技术的逐渐成熟 将分布对象计算与w e b 以及嵌人式移动计算结合在一起,另外就是和中间件( 如 交易中间件、通讯中间件等) 的结合。例如在c 0 b r a 新的标准里加人了i n t e r n e t 服务和消息服务,消息服务可以支持异步的方法的调用,可以提高程序的吞吐量, 并行能力的加强提高了系统整体的性能,并增加了系统的灵活性。总的说来,未 来的分布式应用系统将向着更稳定的跨平台、跨i n t r a n e t 性、更好的扩展性、 更强的容错性方面发展。 2 4 小结 本章首先介绍了软件体系结构的定义、软件体系结构的层次划分一单层模 型、两层模型和多层模型,最后引出了当今主流的分布式应用系统概念和发展现 状。 硕士学位论文 第3 章v s n e t 开发技术综述 3 1v s n e t 开发平台概述 n e t 是一个开发和运行软件的新环境,便于开发基于w e b 的服务,拥有丰富 的运行库服务以支持用多种编程语言编写的组件,具有跨语言和跨平台的互操作 能力。它简化了在高度分布式i n t e r n e t 环境中的应用程序开发,为x m lw e b 服 务和其它应用程序提供了一个高效安全的开发环境,并全面支持x m l 。从最底层 开始,n e t 框架就融合了各种i n t e r n e t 标准,包括对w e b 服务的支持,使程序 可以方便地从多个站点上获取数据。广泛运用x m l 语言,使得不同计算机系统之 间的数据互换变得简单易行。n e t 还使开发人员能够更容易地访问数据,更容 易地编写出能在众多不同浏览器和设备上良好运行的w e b 应用程序,而不用再为 每种设备或浏览器分别编写程序。最后,n e t 运行时支持简化和可靠的安装和 升级,使用更简便,可靠性更好。它和,n e t 框架的安全性及版本管理功能相结 合,也提高了可靠性,并使软件可以作为一种服务而不是功能产品来出售。n e t 的概念是相当先进的,而且其中一部分想法已经超越了现阶段技术能力。正如微 软宣称:n b t 计划是项长期的工程,不可能立即看到成效,必须经过长期建 设“。 n e t 开发平台是为简化在第三代i n t e r n e t 网分布式环境下的应用程序开 发,基于开放互联网标准和协议之上,实现异构语言和平台高度交互性,而构建 的新一代计算和通信平台。n e t 开发平台的框架结构如图3 1 所示。 固圈曰囤口厂 e 三三蠹塑 l 竺竺竺! 竺! ij 莘i a d o n e t 与x m l l i 产i 盂厂、二= 面 l 2 = = = = = = = = = = = = = = = = d r ”一1 + ”。“、。+ 1 ! ! 竺! 竺竺竺竺! 一j 厂 厂 ii w m d j c o m 图3 1n e t 平台框架体系结构 n e t 开发平台包括n e t 框架和n e t 开发者工具等组成部分。n e t 框架 ( f r a m e w o r k ) 是整个开发平台的基础,包括公共语言运行时( c l r ) 和框架类库 ( n e tf r a m e w o r k 类库) 。n e t 开发者工具包括n e t 集成开发环境和n e t 编程语 基彳v sn e t 技术的软件框架模型的研究与应用 言。其中,n e t 集成开发环境用来开发和测试应用程序。n e t 编程语言包括v b 、 v c 十+ 和新的c # 等用来创建运行在c l r 下的应用程序。 3 。2v s n e t 框架 作为微软n e t 开发的核心和基础,n e t 框架所处的位置在工具之下,通讯 之上,全面支持x m l ,是一个用来构建、发布并运行x m lw e b 服务和其他应用程 序的开发环境,它实现了语言开发、代码编译、组件配置、程序运行、对象交互 等各个层面的功能,为w e b 服务及普通应用程序提供了一个托管、安全、高效的 执行环境。n e t 框架包括两个核心模块:公共语言运行时( c o m 。nl a n g u a g e r u n t i m e ,c l r ) 和n e tf r a 【i l e w o r k 类库( 包含m i c r o s o f ta s p ,n e t ,e n t e r p r i s e s e r v i c e s ,m jc r o s o f ta d o n e t ,w i n d o w sf o r t n s 等) 。 其中公共语言运行时用于运行和加载应用程序的软件组件,提供很多服务来 简化代码的开发和应用程序的部署,同时在可靠性和安全性方面也提供大量的服 务。类库提供应用程序编程所需的用来显示图形用户界谣、访问数据库和文件以 及w e b 通信等的代码集,可为任何种基于n e t 的编程语言使用,在此基础上 可实现代码级的重用。 n e t 框架旨在实现下列目标:( 1 ) 提供一个致的面向对象的编程环境;( 2 ) 提供一个将软件部署和版本控制冲突最小化的代码执行环境;( 3 ) 提供一个保证 代码安全执行的代码执行环境;( 4 ) 提供一个可消除脚本环境或解释环境的性能 问题的代码执行环境;( 5 ) 使开发人员的经验在面对类型大不相同的应用程序( 如 基于w i n d o w s 的应用程序和基于w e b 的应用程序) 时保持一致;( 6 ) 按照工业标准 生成所有通讯以确保基于n e t 框架的代码可与任何其他代码集成。 3 2 1 公共语畜运行时c l r 公共语言运行时c l r 是一个软件引擎,用来加载应用程序,确认它们可以没 有错误地运行,并进行相应的安全许可验证,执行应用程序,然后将被清除。c l r 为n e t 应用程序提供了一个托管的代码执行环境,将原来由程序员或操作系统 做的工作剥离出来交由c l r 来完成,使程序运行获得更高的安全性和稳定性。这 些工作包括内存管理、即时编译、组件自描述、安全管理和代码验证,以及其他 一些系统服务。公共语言运行时可以用图3 2 来表示。 硕士学位论文 基类库支持( b a s ec l a s sl i b r a l ys u p p o n ) 【,一一一一一一j 厂一 厂 线程支持i lc o m 列集器( c o mm a r s h a i e r ) l l ,。, 类型检查器1 1异常管理器 、产2 = 2 = = 2 = 2 2 = l 产2 2 2 2 2 2 2 2 3 气 安全引擎 l | 调试引擎 匦匦匣鬯篓 图3 2 公共语言运行时c l r c l r 提供一个技术规范,无论程序使用什么语言编写,只要能编译成中间语 言就可以在它的支持下运行,这样n e t 应用程序就可以独立于语言。c l r 通常寄 宿在其他高性能服务器的应用程序中,使开发者可以充分利用c l r 诸多安全、高 效的优点来部署自己的商业逻辑。基于c l r 开发的代码称为可管理代码( m a n a g e d c o

温馨提示

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

评论

0/150

提交评论