(计算机软件与理论专业论文)远程代码传输与执行环境的软件架构及其应用.pdf_第1页
(计算机软件与理论专业论文)远程代码传输与执行环境的软件架构及其应用.pdf_第2页
(计算机软件与理论专业论文)远程代码传输与执行环境的软件架构及其应用.pdf_第3页
(计算机软件与理论专业论文)远程代码传输与执行环境的软件架构及其应用.pdf_第4页
(计算机软件与理论专业论文)远程代码传输与执行环境的软件架构及其应用.pdf_第5页
已阅读5页,还剩74页未读 继续免费阅读

(计算机软件与理论专业论文)远程代码传输与执行环境的软件架构及其应用.pdf.pdf 免费下载

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

文档简介

远程代码 输b 执行珥境的软朔架拗及其脚h 1 论文题目 远程代码传输与执行环境的软件架构及其应用 专业计算机软件与理论 硕士生周运智 指导教师李磊教授 摘要 本文从最基本的软件架构的定义开始,介绍了软件架构的分析和评估方法, 以及根据介绍远程代码传输与执行环境的需要,将网络应用软件架构划分为7 个 类别共3 6 种架构风格本文重点讨论了远程代码传输与执行环境,分别介绍了远 程代码传输与执行环境的架构元素运行盼段和工作模式,并讨论了在w e b 环境 下远程代码传输与执行环境所具有的架构风格以及实现的方法全文最后简单介 绍了远程代码传输与执行环境在实际项目中的应用情况 关键词:远程代码传输与执行环境:软件架构;架构风格 第1 页 远程代码传输与执行环境的软件架= ;:| 及其麻f f t i t l e m 蛳o r n a l l l e p r o f e s s o r t h ( ,a i c h i t e c t u r eo fr e l l l o t c o d et r2 m s f c ra l l ( ie x e c u t i o ne l t v i r o u l n e n t “l “1i t sa p p l i ( “ c o m p u t e rs o f t w a r ea a dt h e o r y y i m z h iz h o u p r o fl il e i a b s t r a c t t h i sp a p e ri n t r o d u c e sn e t w o r ks o f t w a r ea r c l f i t e c t u r e ,t i mm e t t m do fe v a l u a t i n g s o f t w a r ea r c h i t e c t u r ea n d3 6a r c h i t e c t u r a ls t y l e s n7c a t e g o r i e s t h ea u t h o re o i l c e n t r a t e s o i ld i s c u s s i n gt h ea r c h i t e c t u r eo fr e m o t ec o d et r a l r i s f e rm i de x e c u t i o ue a v i r o n n l e n t ,b y a n a l y s i n gi t sa r c h i t e c t u r a le l e m e n t s ,r u n t i m e 出l a s e s ,o p e r a t i o nm o d e l s a l s od i s c u s s e s t h ea x c h i t e c t u r a ls t y l eo fr e m o t ec o d et r a z i s f e ra n de x e c u t i o ne n v i r o n m e n ti nw 幽 e n v i r o a m e n ta n di t si m p l e m e n t a t i o n f i n a l l y , t h ea u t h o ri n t r o d u c e st h ea p p l i c a t i o no f r e m o t ec o d et r a n $ f e ra n de x e c u t i o ne a v i r o n i u e u ti nb r i e f , k e yw o r d s :r e m o t ec o d et r a n s f e ra n de x e c u t i o ne n v i r o n m e n t ;s o f t - w a r ea r c h i t e c u r e ;a r c h i t e c t u r a ls t y l e s 第1 i 页 原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下,独立 进行研究工作所取得的成果。除文中已经注明引用的内容外,本论文不 包含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研 究作出重要贡献的个人和集体,均己在文中以明确方式标明。本人完全 意识到本声明的法律结果由本人承担。 学位论文作者签名:e 竭丛日期:爿7 年6 月,日 远程代码f # 输b 执行环境的软f ,| 架构及接应j n 引言 万维网联盟( w o r h lw i d ew e bc n s o r t i n m w 3 c ) 的创立人t i mb e r u e r sl 曾 经这样描述由他一于创立的万维嘲( w o r k lw i d ew e b ,下简称w e b ) : w e b sm a j o rg o a lw t ob eas h a r e di n f o r m a t i o ns p a c et h r o u g hw h i c hp e o p l e a n dm a c h i n e sc o u l dc o m m u n i c a t e 1 l ,4 1 j w e b 的主要用途是作为一个信息共享的空间,让人们及机器之间能够 相互沟通。 w e b 的诞生最远可以追溯到1 9 8 0 年,t b k 在瑞士c e r n 构建了从思 想上非常类似于今天w e b 的信息共享系统e n q u i r _ e 与今天的w e b 不同的 是e n q u i r e 更类似- 丁今天的w i l d t 1 9 9 3 年4 月3 0 日,具有图形界面的m o s a i cw e b 浏览器的正式发布,标志着w e b 开 始从实验室和专业技术人群走向所有因特网的普通用户而该事件这一年也被学 术界公认为是w e b 发展的重要转接点。 1 9 9 4 年l o 月,在麻省理工学院的计算机实验室,t b l e e 成立了万维网联盟 ( w 3 c ) ,从此w e b 的发展进入了快速的标准化进程。 今天,w e b 已经深深地融入了所有因特网用户的日常生活,w e b 也南最初的 静态超文本信息的共享嘲络,演变成了今天富媒体的主要传播媒介之一而除了 单纯的信息共享,w e b 已经成为众多企业级应用系统的基础性平台 本论文论述的内容正是居于w 出的的分布式应用系统的软件架构远程代 码传输与执行环境的软件架构。按照段落,本文可以分为五个部份。 第1 章作为全文的开端,介绍了软件架构的定义、内容。软件架构的研究方法 及软件架构的评估标准。 第2 章介绍了架构类型以及这些架构风格之间的生成关系本章在r ,t f i e l d i n g 1 ,3 1 的基础上扩展了架构风格的分类。 第3 章讨论了远程代码传输与执行环境的架构元素、运行阶段、工作模式等内 容。 第4 章讨论了在w e b 环境下的远程代码传输与执行环境的软件架构以及其实 现方法 第5 章则通过分布式电子政务工作流引擎d e w e s ,简单地介绍了远程代码传 输与执行环境在实际项目中的应用情况。 e u r o p e a no t g a n i z a t i o nf o rn u c l e a rr e s e a r c h ,世羿最大的微粒子物理实验室,位予法目和瑞士的边 界 t 利一屏予万维同的可开放多人协同创作的超文本系统。是由”w “i 之父”沃德坎宁安( w a r dc u n n i n g - h a i l l ) 于1 9 0 5 年所刨 第1 页 远程代码f 输j 执行环境柏轶 , 架 及其府用 第3 章和第4 奄为令文的中心。 第2 页 远程代码传输b 执行环境的软“架f f j 殷其麻刚 第1 章软件架构概述 尽管“软件架构”这个名词已经被使用了多年,但是究竟什么是软件架构人 们始终没有形成一个公认的定义。本章作为全文的开端,将主要介绍与软件有关 的概念及软什架构的研究方法。1 1 节给出软什架构的定义以及网络应用软件软仆 架构的界定;3 4 节介绍了软件架构的模型:1 3 节介绍组件,连接器和数据等二种 架构元素:1 4 贝j j 节将介绍软件架构的研究方法,包括用于区分软件架构类型的架 构风格和分析架构元素之间的关系的架构视图;本章最后在1 5 节给出在本文所使 用的评估软件架构的标准。 1 1软件架构定义 软件架构被公认为是对软件系统结构及组织方式的一种高层次的抽象l b a s s 等( 9 】1 7 ,2 1 提出了以下软件架构的定义: t h es o f t w a r ea r c h i t e c t u r eo fap r o g r a mo rc o m p u t i n gs y s t e mi st h es t r u c t u r eo r s t r u c t u r e so ft h es y s t e m ,w h i c hc o m p r i s es o f t w a r ec o m p o n e n t s ,t h ee x t e r n a l l y v i s i b l ep r o p e r t i e so ft h o s ec o m p o n e n t s ,a n dt h er e l a t i o n s l f i p sa m o n gt h e m 而r t f i e l d i n g 在其博士论文【l ,1 1 j 中提出软件架构同时应该是一个运行时 概念,软件架构随着软件系统的运行状态变化而变化。软件系统在不同的运行阶 段,处于工作状态的组件及它们之间的关系可能发生变化。于是可以得出下列的 软件架构的定义; 定义1 1 软件架构是软件系统在某个运行时阶段中,对处于运行状态的架构元 素及它们之问的关系的抽象一个软件系统可以包括多个不同层次的抽象以及多 个不同的运行阶段,而每个层次的抽象和每个运行阶段均有与其对应的的软件架 构e 1 | 可见,软件架构首先是一个处于运行状态的架构元素及其关系的抽象。架构 元素是软件的基本组成部份,架构元素之间的运行时互动构成了软件系统的功能 在3 4 节。读者将会看到架构元素包括组件、连接器和数据j 种类型。 另外,定义中限定这些架构元素必须是处于运行状态这是因为只有处于运 行状态的架构元素及它们之间的互动关系才构成软件系统在当前运行阶段的功 能。而对于处予非运行状态的架构元素,划刁i 属予该运行阶段的软件架构。例如: 在软件系统的初始化阶段,配置文件通常作为一个必要的数据元素被软件系统加 载这样,在初始化这个运行阶段,配置文件是处于运行状态的架构元素,因此 被认为是软件架构的一部份。而在软件系统的正常运行阶段,配置信息已被加载 如内存中,上述的配置文件的存在与否不影响软件系统在当前阶段的运行,因此, 该配置文件处于非运行阶段,不属于当前运行阶段的软件架构。 第3 页 逸押代码 输j 执行 境的软们絮年勾及箕府用 再青,软件架构是一个层次件的概念。一个软件系统根据其复杂程瘦_ n 】以划 分出或多或少的r 系统或模块。返些相剥独市的f 系统和模块具有它们臼乙的软 件架构。 1 1 1 硬件架构、架构与软件架构 在对软件系统的分析中,除了软件架构,还有硬件架构和网络架构。它们三 者都是对计算机系统的抽象,后两者住一定程度上影响着软件架构。 硬件架构是对计算机系统的硬件层次上的抽象。埂件架构中与软件架构相 关的包括指令集、寄存器、内存寻址、内存- i - 的数据格式等。其叫i ,指令集决定 t c p u 所能识剐的机器语言,而内存中的数据格式则决定了数据在内存中的物理 表示方式。 网络架构则是对计算机网络的设计时元素的抽象【6 ,2 1 2 】。这些设计时元素 可以分为:结点、连接器和数据三类。根据这些元素在网络中的叫i 同组织方式,网 络的拓扑结构可以有星型、环型、总线型等。 软件系统运行在特定的硬件系统和网络环境h 软件架构是在硬件架构和网 络架构的基础上对计算机系统在软件层次上的抽象,因此,任何对于软件架构的 讨论,都是居于特定的硬件架构和网络架构进行的。 1 1 2 网络应用软件架构 本文在对软件架构的讨论中,将软件架构的范围限定在网络应用软件的软件 架构,特别是w e b 环境下的软件架构。这里将通过对几个类似概念的对比,来阐明 什么是网络应用软件。 1 1 2 1 网络软件与分布式软件 网络软什和分布式软件是容易混淆的两个概念,它们两者之间的范围既有重 叠也有区分。根据a s t a i e n b a u m 和r v ,r e n e s s e s 1 ,我们可总结出以下网络软件 与分布式软件的差异: 分布式软件是不同的部份运行在不同的进程、c p u 、计算机中,这些模块之间 的协作通过共享内存( s h a r e dm e m o r y ) 、系统信号、网络等实现,因此,网络 相关的组件并非构成分布式软件系统的必要条件:而网络软件则运行在不同 的网络结点中,不同结点中模块之间的通信通过网络进行。 分布式软件的各部分之问具有相互容错的功能;而网络软件则几乎不具备这 样的能力。 分布式软件对用户而言是个整体,系统中各部分的协作对用广来说完全透 明;网络软件各部份之间的协作则无需做到用户透明。 本文只讨论网络软件的软件架构。 第4 页 远程代码传输b 执 _ r 州,境的软f ,l 架构及接应用 1 1 2 2 网络应用软件系统和网络软件系统 庸用软件是业务相关的软件系统,而网络软件为采用网络作为信息传递媒介 的软件系统。应用软件关注的足对具体业务逻辑的实现,网络软件则以网络为特 征。两者的交集即网络应用软件系统。 网络应用软件的软件架构关注的是如f 将应刖程序中的具体业务逻辑表示为 架构的功能性属性。如一个超文本应用系统必须考虑资源所在的位置( 如u r i ) 、 发出请求( 期i h t t p 请求) 及返回响应结柴等问题,但很少会考虑这些信息在网络 中传输的细节。与之相比,嘲络软件的软件架构仅是对软件系统的删络结构的抽 象,其目的是为了分析数据怎样以字节流的方式在网络结点之问传输,但从理会 这些数据在业务逻辑中的意义。【2 ,3 2 l = 奉= 文仅讨论网络应j h j 软件的软件架构,特别是居于w e b 的应朋软件架构。这 是本文在论述时对软件架构的范围做的另一个限制。 1 2 软件架构模型 d e p e r r y - 与a l w o l f 6 ,3 1 j 给出了软件架构的模型: s o f t w a r ea r e h i t e d u r e = e l e m e n t s ,f o r m ,r a t i o n a l e ( 1 1 ) 其中,e l e m e n t s 为架构元素的集合,不同类型的软件架构对架构元素分类各 不一样。我们将在1 3 节讨论网络应用软件的架构元素。 f o r m 为架构元素在软件架构中的组织方式,可以扩展为: f o r m = p ,r ,( 1 2 ) 其中p 为附加在架构元素上的约束的集合,用于定义元素的形态、功能等特 性及对元素的行为进行限制。而r 为元素之间的关系的集合,r 决定了不同的元素 之间如何互动以及它们如何被组织在同一个软件架构中。 r a t i o n a l e 为软件架构的设计思想,或者是选择上述的架构元素并且依 照f o r m 将这些元素组织起来的动机对于相同的应用,通常有不同的软件 架构解决方案。因此,r a t i o n a l e 代表的是软什架构设计中的种抽象的思想, 它决定了哪些架构元素会出现在软件架构里面以及这些架构元素在软件架构 中的组织方式f o r m 。既使是相i 司的软件元素集合e l e m e n t s ,不蒯的设计思 想r a t i o n a l e 会得出不同的架构元素的组织方式f o r m ,从而得到4 i 同的软件架 构s o y t w a r ea r c h i t e c t u r e 因此,对于上述的模型,可以得出以下的关系: 第5 页 远羊丌代码传输5 7 执行环境的软r l 架 ;:f ,支疑j 二,f f j 刀i r o n n i e ¥s 。f m n r ea r 幽t | e c | u t 过山刀 f o r m = ,pn 1 3 架构元素 图1 1 软件架构模型 根据d e p e r r y 6 和r t f i e l d i n g 1 1 ,软件架构的元素包括组件( c o m p o t t e n t ) 连接器( c o n n e c t o r ) 和数据( d a t a ) 等三类: e l e m e n t s = c o m p o n e n t s ,c o n n e c t o r s ,d a t a ) ( 1 3 ) c o m p o n e n t s ,c o n n e c t o r s ,d a t a 分别为组件、连接器、数据的集合。 1 3 1 组件( c o m p o n e n t s ) 定义1 2 组件为软件指令和各运行时刻状态的抽象,通过接口提供数据处理的功 能其中状态为莱运行时刻组件内的数据的值的集合。 在软件架构中,组件也是一个层次性的概念。一个组件刈以有若干个更轻量 级的子组件通过连接器聚合而成。而组件的某一时刻的状态则为其所有子组件状 态及自身状态的集合。组件的功能通过其状态的变迁及与其它组件之间的数据传 输来体现。 d e p e r r y 和a l w o l f 6 ,3 1 】称组件丛j p r o c e s s i n ge l e m e n t s ,为数据的改变 者。f 1 1 而m s h a w 3 ,2 1 1 则认为:组件为计算和状态所在的场所q o c u s o fc o m p u t a t i o n a l 。ds t a t e ) 。每个组件都有其接口标准以定义组件的属性,这些属性包括组件的类 型、功能、性能等。 1 3 2 连接器( c o n n e c t o r s ) 定义1 3 连接器为组件之间的通信、同步、协作的中介,数据传输的载体。 连接器负责组件之间数据传输的架构元素。在网络应用软件中,连接器可以 为远程过程调用、消息传输协议、共享内存等。 d e p e r r y 和a l w o l f 6 ,3 1 1 称连接器为“c o n n e c t i n ge l e m e n t s ”,为组件之间 的胶水( g l u e ) 。 m ,s l l a w l 3 ,2 1 1 将连接器看作定义组件关系的场所( 1 0 c u so fd e f i n i t i o nf o rr e l a - t i o i l sa l n o 醒c o m p o n e n t s ) ,并把连接器分为简单连接器( p r i m i t i v ec o n n e c t o r s ) 和组 合( c o m p o s i t ec o n n e c t o r s ) 连接器两种: 第6 丽 远程代码传输b 执行列j 巍的软竹禁拗殷其廊m 简单连接器可以山编程语言( 过程调,共享变量等) 、操作系统( 消息、事 什等) 、连接库、内存( 共字内存等) 等内存机制实现简单连接器早不包括 其它的组件。 组合连接器则为简单连接器之外韵所有依赖其它组件实现的具有数据传输功 能的架构元素。这类连接器在数据的传输过程中,可以利用其内部包含的组 件来改变数据的表现形式。这种数据表现形式的改变,通常是为了更有效地 传输数据,如数据压缩、附加验证信息、数据加密等;或者是为了适应组件之 间接口的差异 1 3 3 数据( d a t a ) 定义1 4 数据是信息的基本要素,能够通过连接器从一个组件传输到另外的组 件 数据包括所有的能从个组什传递到另- 。个组件的信息,包括字节流,消息。 被序列化了的对象等。在此数据的定义中,数据不包括那些永远处于组件内部,不 被外界所知的内部信息( 如仅在组件内部使用的标记、缓存、文件旬句柄等) 。 根据定义1 2 ,状态为组件内部数据在某个运行时刻的值的集合。因此,对于 那些隐藏在组件内部,不被外界所接触到的隐藏信息,由于不属于定义1 4 所定义 的数据的范畴,因此这些信息的改变,不会引起组件状态的迁移。如组件内部文 件句柄的关闭或者线程终结等操作不会引起组件状态的变化。 爿 将数据定义为软件架构的元素是d e p e r r y 和a l w o l 9 6 ,3 1 1 在对软件架构 进行定义时与其它人最大的差别。 1 4软件架构的研究方法 1 4 1 架构风格 本文在研究网络应用软件架构的时侯,将采用架构风格的概念 定义1 5 架构风格是附加在架构元素及其关系上的约束及特征的描述。架构风格 对符合该风格的软件架构的架构元素的运行时行为特征及在软件架构中的角色进 行界定 架构风格可以表示为 a r c h i t e c t u r es t y l e = e ,f ) a r c h i t e c t u r a ls t y l e 有多种译法,如架拘类型絮构样式等这坚翻译为槊构风格 ( 1 4 ) 第7 页 远器代码传输执行蚪境们软“絮构殷i e 搿用 其中 ec f ( _ i l l ( j ,j t s f = p s ,月 p p f o r l u s “c1 7 f t n r s 定义】5 中的架构元素包括组件、连接器和数据。列r 组件和连接器,d g a r 一 1a l l 和h i ,s h a w 5 :p 4 j t 这样描述了架构风格的作用: a na r c h i t e c t u r a ls t y l ed e t e r m i n e st h ev o c a l m l a x yo f c o l l l l ) o l l e i l t sp i l dc o l m e c t o r s t h a tc l l lb eu s e di l li n s t a n c e so ft h a ts t y l e t o g e t h e rw i t has e to fc o n s t r a i n t s o nh o wt h e yc a l lb ec o m b i n e d 架构风格决定了符合该风格的软件架构中的组件及连接器的行为,以 及它们足如何被组织起来的。 1 4 1 1 软件风格的生成 定义1 6 基架构风格为不包括任何架构元素的架构风格,记为西。 丁,是有 咖= a o ) 曲可用图1 2 来表示。 圈1 2 基架构风格 ( 1 5 ) 定义1 7 如果架构风格m = e m ,n n ) ( f r o = p m n m ) ,与架构风格= e n ,f n ( f m = p n ,r n ) ,具有以下关系: e m e n ,p l p n ,r m r n 别称架构风格 r 派生于架构风格m 记作j | v m 或者们一 在文字捕述上,如果架构风格派生于架构风格m ,则以下的描述等效;架 构风格派生于架构风格m ,架构风格衍牛于架构风格m ,架构风格派生于 架构风格m 。架构风格扩展了架构风格m ,架构风格继承了架构风格肘等等。 而m 与可以表示为图1 3 。 定义1 8 若架构风格m = e m ,f 叫 ( f m = | p m ,胁) ) 和架构风格| v = e n ,f n ) ( f m = p n ,励i ) 均派生于架构风格o = e o ,f o ) ( f o = p o ,r d ) , 且一m 和m 一均不成立,则称架构风格0 由架构风格m 和架构风格聚合 而成记作 m , ,) 一0 或者。一 m ,) 第8 丽 远嚣代码 专输与执行环境的软 , 架蜘技虬脚 i j 图1 3n 一 图1 。4 肘, 一0 荇架构风格o m 架构风格m 和架构风格| 聚合而成。 f 、和0 可以表示为 图1 4 。 对于架构风格之问的关系,还可以有以下定理及引理。 定理1 1 对于任意除了咖外的架构风格= e n ,f n ) ( f r o = p n ,r n ) ) ,总可找出 不同的架构风格m = ( e r a ,f m ) ( f m = p m ,胁) ) ,使n m 证:若有,无法找到m ,使一m 。则根据定义1 7 ,n = 咖 引理1 2f f 意架构风格n = e n ,f n ( f r o = p n ,励1 ) 均派生于基架构风格 1 4 1 2 软件架构与架构风格的关系 要判断软件架构和架构风格之间的关系,我们可以使用以下定理: 定理1 3 软件架构a = e l e m e n t s ,f o r m s ,鼢i m 矗e 具有架构风格s = e 矸,其 中f o m 8 = p r ) ,f = p s ,r s ,仅且仅当e e l e m e n t s 。p s 冬p m r 如柴软件架构a 具有架构风格s ,则以下的文字描述等效:软件架构a 具有架 构风格s ,软件架构a 符合架构风格s ,软件架构a 属于架构风格,软件架构 居于 架构风格s 等等 1 4 2 架构视图 定义1 9 架构视图为从某个特定的角度透视软件架构,从而达到分析软件架构莱 方面特征的目的架构视图简称视图 d e p e r r y 署u a l w o l q 6 l 在分析软件架构元素的时候弓i a t - - 种视图;过程 视图、数据视图和连接视图。本文在讨论网络应用软件架构的时候,将使用此三 种视图对软件架构进行透视 第9 页 远f 1 代n7 5 传输j 执行环境的软f 1 架丰f :i 及蓖麻用 j 1 】户操作 图1 5s o a p 过程调用过程视图 1 4 2 1 过程视图 过程视图关注的是组件的功能性特征( f i m c t i o n mp r o p e r t i e s ) ,以发组件之间 的数据流,如图1 5 。 在过程视图里面,组件使用圆形图案表示:组件之间的连接器则使用带箭头 的线段表示,线段的箭头方向为数据的流动方向;数据则以文字的形式标注在带 箭头线段的附近。 1 4 2 2 数据视图 数据视图关注的是数据的处理过程,展示给我们的是数据在组件之间流动的 过程,从数据的产生及各运行阶段的变化,但数据视图里而很少涉及到连接器,如 图1 6 。 s o a p 客户端 图1 6s o a p 过程调用数据视图 在数据视幽坐面,数据以圆形图案表示,不同的数据形态使用不同的圆表示; 带箭头的线段表示的是数据变化的趋赞;而线段附近的文字则用来标注引起数据 变化的组件。 1 4 2 3 连接器视图 连接试图关注的是架构中每两个组件之间的关系及数据在组件间传输的规 d g a r l a n b i m s h 8 w 在该文将软州粲构定义为:a c o l l 舶- t i o n o f c o m p u t a t i o n a lc o m p o n e n t s o rs i m p l y c o m p o n e n t s - t o g e t h e r w i t ha d e * c r i p t i o n o f t h e i n t e r a c t i o n s b e t w e e n t h e s ec o l n p o n e n t $ 一t h e c o n n e c t o r s 第1 0 页 远裂代码 输b 执行环蟪的软“架枷救其晦 i j 则,如格式方式等。本文在讨论删络应用软件的软件架构的时候,将把i 卅络连接 器作为连接器视图讨论的币点。 1 5软件架构的评估 软件架构作为对软件系统的一种高层次的抽象,我们无法在没有和实际应用 相结合的情况下评估一个软件架构的好坏。只有通过对居于特定软件架构构建起 米的软件系统的评估,才能判断软件架构是否符合应用的需求。 本文在评估软件架构的时候将从用户、系统及开发等三个角度,利用不同的 指标进行衡量。 1 5 1 用户指标 用广指标为从用广角度衡量软中i :架构对于软什系统的影响。用,、指标分为: 透明度( t r a n s p a r e n c y ) 、可用性( u s a b i l i t y ) 、互动性( i n t e r a c t i v i t y ) 等个指标 1 5 1 1 透明度( t r a n s p a r e n c y ) 软件系统对用户具有透明性指的是用户在使用软件系统时无须了解软件系统 的具体实现方式及其工作原理即可通过用户界而、使用手册等渠道获取并掌握软 件系统的使用方法。对于应用软件来说,由于软件的使用者通常为不具备计算机 软件开发能力的普通用户,软件系统的透明性至关重要。透明度就是衡量软件架 构对软制:系统的透明性影响的指标。软中| :架构的透明度指标关乎用户对软中i 系统 使用的掌握的难易程度。 1 5 1 2 可用性( u s a b i l i t y ) 软件系统是否可用体现为软件系统是否符合需求、软件功能实现的程度、用 户界i 面的可操作性等诸多与用户体验有关的属性。对于应用软件而言,软件系统 的可用程度关系到该软件系统是否能够很好得完成共应用使命。这里的可用性指 标用于衡量软件架构对软件系统的用户体验的影响。 1 5 1 3 互动性( i n t e r a c t i v i t y ) 对于应用软件来说,软件系统与用户之问的互动程度可以归类为可用性中 相对于内存、数据总线等,网络是属于相对低速的数据传输媒介。因此,对于网络 应用软件而言,互动程度很大程度决定于软件系统通过网络响应用户发出的服务 请求的速度。以及软件系统与用户之间的数据交换的有效程度尤其是居于w e b 的 应用软件,互动程度直接影响到用户的体验。因此本文在评估软件架构的时候将 互动性独立出来用于评估网络应用软件响应用户请求的效率。 1 5 2系统指标 系统指标从软件系统运行的角度评估软件架构对软件系统运行状况的影响 第l l 页 远行代码传输7 执行环境的软f l 架牛 _ j 殷j c 府j 1 1 有本文巾,系统指标包括伸缩件( s c a l a b i l i t j r ) 、i 响应忾( r e s l ) o n s i 、i t ) ,) 、- c 余度 ( r p l i l l l ( l ( 1 ) 、可靠性( r e l i a b i l i t y ) 、计算资源效率( c o t l q ) u t a t i o n a ll s o i l l “,e f i i c i e n c ) ) 及阳络效字( n e t w o r ke f f i ( i e n ( y ) 。 1 5 2 1 伸缩性( s c a l a b i l i t y ) 个软件系统具有良好的伸缩能力指的是软件系统能够通过增加硬件资源 女l i c p u 、内存、计算机等方式来提高软件系统处理服务淆求的能力。对丁设计良 好的软件架构,软件系统处理服务请求的能力麻与硬件资源数量成止比。对于网 络应用软件,软件架构的伸缩性指标至关重要,它决定了软件系统正式投产后的 可扩容能力。 1 5 2 2 响应性( r e s p o n s i v i t y ) 软件架构在响应性指标衡量的是软件系统在处理_ h j 户请求的时候,做出有效 反应的速度。架构元素的不俐组织方式以及不i j 的实现技术,对响应性都有影响。 尤其是网络应用软件,响应件直接影响软件系统的可用性,互动性等用户体验指 标。 1 5 2 3 冗余度( r e d u n d a n c y ) 软件架构的冗余度指的是架构元素特别是组件之间的相互备份程度,冗余度 直接决定了软件系统在运行时抵抗因某些架构元素山现异常引起拒绝服务的能 力。冗余度的提高可以通过架构元素的备份的方式达到。在网络应_ h j 软件中,软 件架构的冗余度直接影响软件架构的可靠性。 1 5 2 4 可靠性( r e l i a b i l i t y ) 从软件架构的角度出发,可靠性衡量的是软件架构可,容忍的系统元素出现运 行时异常的水平。可靠性符合术桶理论整个软件架构的可靠性取决于可靠性 最低的元索。所以,减少单点失败、提高冗余度以及关健架构元素的运行时可靠 性为提高整个软件架构可靠性的关健。 1 5 2 5 计算资源效率( c o m p u t a t i o n a lr e s o u r c ee f f i c i e n c y ) 在讨论网络应用软件的的时候,我们把c p u 时间、内存空间及永久存储设备 空间等称为计算资源。根据不同的软件架构构建起来的软件系统,在处理相同的 任务的时候,对计算机资源的消耗各有不同。计算资源效率衡量的就是在既定的 计算任务下这些计算资源的节约情况。 1 5 2 6 网络效率( n e t w o r ke f f i c i e n c y ) 网络资源包括网络带宽、吞吐量等。与计算资源效率类似,网络效率用于评 估软件架构对网络资源的节约情况。通常在网络应朋软件布署的环境里,网络带 第1 2 页 远程代码传输弓执行环境的软 ,i 架拗发其心l i 宽,吞吐量等网络资源是有限制的。减少对嘲络资源的依赖提岛圳络带宽的利 用率有利十软什系统运行效率的提高,同时节省软什系统的运营成本。 1 , 5 3 开发指标 开发指标从软件开发的角度评估软件架构的特征。包括扩展性( e x t e l t s i b i l i t y ) 、 定制性( c u s t o m i z a b i l i t y ) 、配置性( c o n f i g u r a b i l i t y ) 、重用性( r e u s a b i l i t y ) 、移植性 ( p o r t a b i l i t y ) 、简单性( s i m p l i c i t y ) 、接口统一性( i n t e r f a c eu n i t a r i t y ) 。 1 5 3 1 扩展性( e x t e n s i b i l i t y ) 扩展性为软件架构增加新功能的难易程度。在应用软件设计中,良好的扩展 性可以使软件架构在面对类似的应用时能够最大限度地剩用已有的实现。扩展性 的提高可以通过组件接口标准化,减少架构元素之间藕合程度等来实现 1 5 3 2 定制性( c u s t o m i z a b i l i t y ) 一个组件具有可定制指的是该组件在不影响现有服务功能的条件下,能够临 时改变其行为,使之能够满足特殊的应用需求。在软件架构设计中,设讨人员通 常将软件元素设计得具有通用性,使之符合大多数的需求,而对与特殊的需求,通 过对架构元素的定制满足软件架构的定制性就是对架构元素的可定制程度的衡 量 1 5 3 3 配置性( c o n f i g u r a b i l i t y ) 软件架构可配置指的是能够通过配置文件、启动参数等方式改变软件系统的 行为。配置性衡量的是软件架构在布署阶段的可配置程度。与定制性不一样,配 制行为发生在布署阶段,而定制行为则发生在实现阶段。 1 5 3 4 重用性( r e u s a b i l i t y ) 软件架构的重用性衡量的是架构元素不经过修改而在其它软件架构中使用的 程度。通常,可以通过减少元素之问的藕合程度来提高重用性。同时,从开发人 员的角度,重用性的级别可以分为源码级别及目标代码级别( 包括_ 进制及字节 码) ,这取决于软件系统的具体实现。 1 5 3 5 移植性( p o r t a b i l i t y ) 软件系统能够在不i j 的环境中运行体现的是软件架构的移植性。软件系统的 运行环境指的是硬件环境以及软件系统所依赖的软件平台如c p u 、虚拟机、运 行时环境等。与重用类似,移植性可以分为源码及目标代码两个不同的级别。与 重用性不同的是移植性通常对软件架构整体而言,而前者针对软件架构的元素 1 5 3 6 简单性( s i m p l i c i t y ) 组件所具有的功能越少越简单,那么组件就越容易被实现。软件架构的简单 第1 3 页 远程代码f e 输- j 执行环境的软r i 架构及1 e 府用 性是一个衔帚架构内组件的复杂程度的指标。剥j :应用软件来说,相对简甲的软 t l 架构还意味着更短的开发周期和更有效的软t i 质量保讣。 1 5 3 7 接口统一性( i n t e r f a c eu n i t a r i t y ) 接口统一性特别针对的是软件架构中依赖于网络传输的组件。由于相对于过 程凋用、共亨内存等数据交互接口,网络通信特别是数据的组织方式具有随意性。 统一的网络数据传输规范j 以减少组件接口间的差异件,减少软件架构的复杂程 度。 1 6 本章小结 术章详细地介绍了软件架构的基本概念并给出了全文所要研究的网络应用软 件架构的界定。利用本章所介绍的架构元素的分类、架构风格、架构视图以及软 件架构的评估指标,本文在讨论远程代码传输与执行环境及其软件架构时,将遵 循以下的步骤: 1 分析软件架构内的架构元素; 2 利用架构视图分析架构元素之间的关系 3 分析软件架构所具有的架构风格: 4 利用所评估指标评估软件架构。 在正式讨论远程代码传输与执行环境及其软件架构之前,在第2 章将首先分 析网络应_ h j 软件架构中的各种架构风格及这些架构风格之间的关系,并利f j 1 5 所 介绍的评估指标,评估这些架构风格。 第1 4 页 远程代码传输b 执行环境的软f ,l 檠构成其府朋 第2 章软件架构风格 本章将在i 4 ,i 节的基础上,介绍具体的网络麻用软件架构的架构风格。利 用1 4 1 1 中所介绍的架构风格的生成方法,每个架构风格都将从基风格西或者已 有的架构风格派牛产牛。最后,本章使用1 5 节中介绍的软什架构评估指标评估这 些架构风格对软件架构的影响。 2 1架构风格分类 对于如何对架构风格进行分类,m s l m w 羽q p c l e m e n t s 4 ,2 】给出了以下的架构 风格的分类标准: w h i c hk i n d so fc o m p o n e n t w m l dc o n n e c t o r sa r eu s e di nt h es t y l e h o wc o n t r o li ss h a r e d ,al l o c a t e d ,a l a dt r a n s f e r r e d am o n gt h ec o m p o n e n t s h o wd a t ai sc o m m u n i c a t e dt h r o u g ht h es y s t e m h o wd a t aa n dc o n t r o li n t e r a c t w h a tt y p eo fr e a s o n i n gi sc o m p a t i b l ew i t ht h es t y l e m s h a w 和p c l e m e n t s 的分类方法关注的是架构元素之间的拓朴关系,而非架 构风格对应用软件的影响,所以免t f i e l d i n g 1 ,3 8 1 1 认为上述的标准不能完全帮 助软件设计师找到适合实际需求的架构风格。rt f i e l d i n g 1 ,3 1 认为在对网络应蘑 用软什的架构风格进行分类时应更注重架构风格的应用特征即架构风格给软 件系统带来什么样的变化。 本章将在r t f i e l d i n g 1 ,3 1 对网络应用软件架构风格分类的基础上。结合m s h a w 和p c l e m e n t s 4 ,2 】,以及d g a r l a n 和m s h a w l 5 】的架构风格的分类,并根据讨 论远程代码传输与执行环境( 见第3 章) 的需要,介绍7 个类别共3 6 种架构风格,并 给出这些风格之间的继承及聚合关系本章在每类架构风格中,都参照1 4 1 节给 出了图示 2 2数据风格 数据风格根据数据存储及数据在组件之间流动的特征划分架构风格,包括数 据仓库( d a t ar e p c o i t o r y , d r ) 、管道与过滤器( p i p ea n df i l t e r p f ) 和标准管道与 过滤器( u n i f o r mp i p ea n df i l t e r ,u p f ) 等三种,它们之间的关系如罔2 1 。 第1 5 页 远控代码f 输j 执,j 环境的软r i 架掬及此府用 图2 1 数据风格 2 2 1 数据仓库( d a t ar e p o s i t o r y , d r ) d g a r l a n d f l m s h a w 5 。3 5 1 认为数据仓库风格的软件架构应至少包括两类不 l 刊的组件: 数据存储组件,用于集中存储数据,组件内部包含用于描述

温馨提示

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

最新文档

评论

0/150

提交评论