软件体系结构-_第1页
软件体系结构-_第2页
软件体系结构-_第3页
软件体系结构-_第4页
软件体系结构-_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

1、软件体系结构北京理工大学计算机科学技术学院 徐进2009年3丿J课程内容第一章第二章第三章第四章软件体系结构基本概念 软件体系结构经典风格 软件体系结构应用软件体系结构设计模式第五章软件体系结构研究与发展第2章软件体系结构的经典风格2. 1管道过滤器风格2. 2主程序与子过程风格2. 3数据抽象与面向对象风格2. 4黑板知识库风格2. 5虚拟机(解释器)风格2. 6事件驱动隐式调用风格2. 7过程控制回路风格2. 8部件链接器C2风格曲彳本申勾R结软祗素统和织结构的惯用形式,认识特定 软件结构的原理和价值,提供软件体系结构设 计的选择空间。讨论中考虑的问题:某种结构风格的基本成分和连接方式是什

2、么?某种结构风格的基本形式是什么?某种结构风格潜在的计算模式是什么?某种结构风格中不变的因素是什么?某种结构风格可以使用的示例是什么?某种结构风格的优缺点是什么?丨返川本爲I I录I以数据流向的过程为核心(也称:数据流风格)过滤器自身功能独立完成,相互之间无状态交互过滤器不需要知道其他过滤器的存在与否过滤器仅对输入的数据流冇限制,并保证输出流的止确系统内各部分的执行,与整体系统的最终输出不相关管道过滤器软件成分被动过滤器:通过事件或过程调用激发动作,接受前续成分推入的内容 主动过滤器:作为独立的过程或线程任务,主动取前续成分的内容。数据源:作为系统的输入过滤器,提供探测数据、采集数据的功能,以

3、 及主动推出数据,激发或者等待后继成分启动。数据池:作为收集结果的过滤器,分为主动取数据和被动接受推入数据 两种方式。笛道过滤器的连接器管道足两个过滤器的连接器,足先进先出的数据缓冲区。如果两个主动式过滤器相连,管道需要有同步控制能力。如果过滤器的行为受到和邻过滤器的控制,管道就是被动过滤器的过程 调用实现。管道过滤器形式的示例(1)数字通信系统结构简略描述:信息源:把各种可能的数据转换成原始电信号。发送设备:对原始电信号完成信号加密、签错控制编码和调制解调。信道:信号传输的通道也相当于过滤器,因为它对传输信息进行适 当的处理。接收设备:与发送设备反向。同步控制部件:图中没有标出。因为它在其中

4、的位登并不固定,它负责收发 双方的-致性控制。管道过滤器形式的示例(2)商品入库系统结构描述:商品检验入库.库请求入库单批准商品入库商品到货位典型的事务处理流程:每个过滤器都是主动地去取前续事务推入的信息;通常采用数据库的某些措施,保证信息的同步一致性。管道过滤器形式的优势对整个系统的理解简单化。可理解系统的各功能为抽彖“黑盒了” O支持可维护性,容易替换。只要输入/输出管道达成一致的任何两 个过滤器(町能一个是另一个的扩充性或修改),则可以任意替换。支持复用。一个过滤器rij以被多次挂接,只要它们对数拥的需求场 合是一致的。支持并发设计。町以将心在并发可能的过滤器,在调度算法的基础 上,组织

5、为多任务并发系统。系统的结构消晰,容易进行某些性能的分析,例如:数据流量、死 锁问题,计算正确性等等。管道过滤器形式的不足由于过滤器的独立特性,每个过滤器完成从输入到输出的转换需 要成批量而完整,这样,为了交"必须表示的过滤内容与输出的流 方式差异很大,导致实现交互困难。由于支持并发设计,两个相互独立的过滤器,如果存在同步问题, 则需要花较大的糟力去协调。每个过滤器的输出只强制公共的命名,要保持数据的一致必须对 传输的数据解析,这样适成系统效率资源的损耗,以及程序复杂性 增加。直接调用被动过滤器,使过滤器的亟新组织产生困难。需要处理数据在管道中的阻塞状态。2.2 主程序与子过程(Ma

6、in Program/Subroutine)与程序语言的主程序和过程调用概念相对应所有成分,都属于主程序和一系列的子过程的集合主程序充当子过程的调用者犷过程之间也存在复杂的过程调用关系过程之间通过参数传入和传出信息主程序与子调用结构的成分主程序:基本的程序主体成分子调用:各种层次上的函数,町调用成分模块包:小粒度(主程序子调用)的结构成分函数库:固定的函数子调用(二进制代码复用成分)主程序与子调用结构的连接器仅有过程调用-种主程序与子调用结构的优势一切软件结构都可以在此基础上构筑。因为基于语言结构,所以如果设计的好,代码效率 会很高。主程序与子调用结构的缺陷成分之间的关联关系难把握,因为实际成

7、分之间连接 很复杂,但连接手段却很单一。代码维护怵I难,因为数据结构的变化会引起复朵的关 联变化。复用性差。因为单纯的过程概念只能覆盖有限的特定 问题,不具普遍性。132.3对象对彖消息对線V消息P 1实体消息消息而向对彖结构的特征对彖实体是具有自身属性和行为能力的独立个体。对彖实体是丄动的管理者,包括待处理的对彖数据和所有参与过 程的实体。任何事务处理都是与对象和互作用的结果,采用“消息”达到这种 作用。发送消息给对彖足“请求”,接受请求的对象足“响应”消息。响应“消息”的动作是接受请求对象H身的行为能力。并且它可以向其他对彖发出请求。14面向对彖结构的成分类:对象实体的抽象,可复用的类型模

8、板。继承类:抽象类型的复用,提供类的町扩充、町变化方式 对彖:某类的实体,具有属性和各种行为能力的独立执行体而向对彖结构的连接器消息:与对彖的联系仅通过消息。发送请求给对彖,向对彖发出执 行它动作的信息。接受请求的对彖,根据自身的屈件状态,完 成动作,也可以向其它对象发出请求,并且可以同吋发出多个 请求,除非它继续的工作与发出的请求有同步关系。多态机制:相关的对彖行为,可以通过相同的消息形式。这止是行为的 多种形态概念。所谓札I关,是指同范畴对象(有继承关系类的 实体对象是同范畴的)。同样的消息,连接不同的执行成分, 这就足多态机制。面向对彖结构的优势 接近人们的认知习惯,UIJ:事物主体和事

9、物行为是不可分 的整体,处理事务的关注点只是事物可操作的外部行为。实现真正意义的信息封装,把对象的属性和行为封装在一 起,对外可见的只有操作。稳定的结构,建造系统在独立的对彖实体关系上,而非处 理过程上。这使改变或增加系统处理过程,与系统的整体 架构关联减弱,大部分只是对象个体上的行为扩充,除非 增加新的对象成分。本身的并发特性,支持普遍应用的分布式系统。实体对彖比起过程在语义上容易理解一致,因此更容易复 用;类和继承使软件成份又达到更高层的复用。而向对象结构的缺陷对彖的标识是发送消息必须知道的,如果标识被改变, 消息就不知去向。在系统中对象本来是独立的,但他 们必须相互知道、懂得和理解,否则

10、将无法协同完成 工作。这一点乂使得他们似乎很密切相关,互为依赖。对象接受多个來自不同请求者的同一个消息,所得到 的结果有时不可预测,因为其自身的状态属性可能被 改变,这种情况系统必须考虑,并付出代价。172.4 事件驱动和隐式调用(Event-BasedzImplicit Invocation)1)外部申件(來门多个网络设备)以中断方式被接受并处理;2)各个消息通过过滤器來统一形式,并口统一排队等该处理:3)在系统的统一调度下,消息被发送到各白对应的应用队列川;4)各应用队列有各自的用户交互线程,通过消息循环机制,建立自己的 交互应用操作事件驱动和隐式调用结构的特征消息发送两种发送方式(点发式

11、:经过中间转发,一点到i点响应 、广播式:经过中间转发,一点到多点响应异先方式发送成分与接收成分之间采用界步方式,各门独I立,不受约束。其限定和约束山中间隐式层处理。消息过滤两种过滤方式- 消息过滤功能:系统过滤:应用过滤:被送到系统消息队列Z前 被送到应用消息队列之询事件骡动和隐式调用结构概念事件駅动指外部事件,包括硬件设备和软件的应用发出的请求, 通过中断方式形成为消息隐式调用指消息不是总接地被各响应的处理操作接收,而是通过 了隐藏在屮间的一个层次(透明访问概念的体现)。隐式调用的作用中间的层次,完成消息形式的统-处理及统一调度,对 接受消息的成分进行必要的管理和控制。这样,使请求 成分与

12、响应成分之间形成松散耦合关系。可以动态调整 事件与响应事件之间的关系,为灵活设计创造了条件变换:转变消息形式成为某种统一的类型和取值范用抑制:截获或阻止某种消息转发:转发经过某种处理的消息到需要响应的成分增生:增强某个消息原有的作用,使之成为多个相同或不同的消息事件驱动和隐式调川结构的示例Java Bea nfK 件驱动适配转发类源对彖:产生爭件的对彖。监听对象:响应事件的对象。事件驱动机制:通过监听注册和事件接口,连接源对彖和监听对彖。 适配器:一组响应事件的组装配发。事件状态:封装事件的发牛时的类型、位置等信息。适配转发类输入操作事件驱动和隐式调川分析用户按下鼠标或键盘的一个键,操作系统的

13、AWT(抽彖窗口工具)将不同平台的信息转换成统一的事件 对彖。然后,将对象事件及状态,作为参数,向接口对 象发出请求。接口对象屮有已经注册的监听对彖,通过 适配对象向监听对象发出该事件。这样,一个输入操作 事件,就被监听对象接收并响应处理它。事件骡动和隐式调用结构的优势消息与响血的非直接(隐式)调用,使成分之间成为松散的耦合 关系,可增加系统成分连接、集成的灵活性。支持软件复用。山于成分之间的没仃直接的联系,任何已有的软 件成分只要处理逻辑适用,都可以无所顾忌地使用,将一切限定 留给中间层处理。使系统更易维护。替换某一软件成份,除了中间转接的适应,对 其他成分影响极小。对于异步并发系统是一种极

14、好的控制方式。事件驱动和隐式调MJ结构的不足请求消息成份和接收消息成份完全门上独立,不受控制,使得消 息序列不易控制,需要消耗较大的精力去控制。相比直接方式的连接,增加了中间层必要的消耗,使消息的响应 速度明显下降。2.5黑板知识库(仓储)(Repository)以黑板作为协同操作的核心,状态是核心控制的依据每个知识源作为问题求解的独立单位知识源需要协同完成一个事务的多个计算求解步骤 协同的策略和调度算法,作为特殊的知识源由特殊的知识源改变操作的核心状态黑板知识库结构的成分 知识源:分离的独立知识产生源。根据黑板的协调状态,决 定I身的运作。有直接存取的知识源,也有负责计算的知识 源。黑板:对

15、系统待解决问题的知识:包扌乩 分析定义、系统运 行过程的多种状态,以及状态下系统相应的对策等。黑板知识库的连接器 黑板知识中心既作为独立结构成分,也作为各个知识源的 连接器;各个知识源的运作依据知识中心状态变化;中心状态的变化是由特殊的知识源完成的,它们以改变系 统过程的各种状态为目标,控制系统过程的状态转变,以 调度触发各个知识源的运作。黑板知识库结构的示例专家系统(Expert System)基本模型信息管理决策解释知识获取知识库管理黑板知识库结构的优势使协同求解问题的过程,描述简单和清晰。所有系统 过程的成分都是知识的产生源,无论单独的求解步骤, 还是监控调度算法都是黑板中心状态的改变者

16、。黑板知识库结构的不足所有系统成分对共享区过分依赖,也是系统风险因素 的最大隐患。2.6虚拟机(解释器)(Interpreter)执行程序以能被被解释的一种伪码形式表示解释引擎根据固定的语法结构,按照伪码的语义逐句解 释伪码,同时,根据已经处理解释的状态,以及需耍的 输入的数据来完成输出。虚拟机(解释器)结构的成分与运行程序交互的数据集合 被解释程序的伪代码集合 执行解释过程的状态集合 转换关系的操作集合虚拟机(解释器)成分的连接器根据文法约定以及通川的搜索算法,实现固定形式 的解释引擎连接。虚拟机(解释器)结构的示例I布尔表达式求值系统I通过解释一串布尔求值的程序语句來实现布尔程序的运算。利

17、用布尔止则表达式解决语法的匹配问题。使用通用的搜索算法來解释执行正则表达式,其执行结果就是 最终的运行计算值。布尔正则农达式BooleanExpression: =VariableExpression | CorstantExpressi on |OrExpression | AndExpression | NotExpression | '('ExpressiorT)'VariableExpression:| YZ,Constant: =lture,false'OrExpression|:= BooleanExpression 5' BooleanEx

18、pressionAndExpression: := BooleanExpressi on 'and' BooleanExpressionNotExpression: ='not' BooleanExpression用类表示布尔农达式的文法规则32 Evaluate()为对应表达式的操作方法任意一个布尔表达式,可以是类对象实例所构成的 一个文法树,可以按照对应的方法,完成规定形式 的操作。例:(t rue and x) or (y and (not x)表达式AndExpressionConstant trueOrEx pressionAnd Ex pressio

19、nVariabietxpression | VariableExpressionXYOrExpFessi onNot X例屮实例所构成的文法树表达式的文法树,构成解释器结构中的解释引擎,按 照每个类上定义的求值操作,根据表达式上下文和已 经执行到哪一步的状态,匹配输入表达式的具体值, 实现对应类上的操作虚拟机(解释器)结构的优势易于扩充文法,以适应系统的改变。特别是采用面向 对象的继承方式。状态机方式适用于高效的解释结构。虚拟机(解释器)结构的不足如果复杂规则文法,使系统庞人而无法管理,不宜采 取正则表达式解释结构,而应该采取语法分析程序。33过程控制回路结构特征更适用于闭环系统负反馈实用价值

20、高于正反馈两种常用的自适应控制回路38开环系统例:闭环系统I定时开关I例:热气炉:火源不变,通过疋时器在 固定的间隔时间打开火源热气炉:通过测量温度,不断调 节火源人小35负反馈回路冷中扌z 差值反馈:控制计算 输出 冃标与检测值的差,作为控V 制依据,得到稳左的输出I反馈输入值检测正反馈回路和值反馈:冃标与检测值求和,作为控 制依据,得到变化的输出性能自适应回路:通过性能分 析,调整系 统输入。经 常采川模型 参考方式性能佔算模型参考调整娄考输入反馈控制机制控制计算过程控制回路结构成分和连接结构成分:控制计算前馈机制(包括:采集.H标设定和调整机制)反馈机制(包扌舌:检测、回路值计算)连件:

21、采用固定形式的结构成分和连接形式过程控制回路结构发展趋势组态可编程控制器通用机和通用机设计坏境嵌入式设计技术和方法2.8 部件连接器(Components and Connectors)部件和连接器也称为C2 (Components and Connectors)风格。它总结 了所有体系结构的成分,归纳并深入探讨其观律、特性,引导了软件 休系结构研究的新途径。部件和连接器是软件结构成分的两大部分。部件是软件的纽成成分,在系统构架中起结构块的作用。连接件是建立部件和部件之间连接的成分,是专门承接连接作用 的特殊部件。部件可以组合,连接器可以相互连接。返冋本章冃录简处瓠管理 构件限据 鸵的聲 系制

22、类控制 构件;a接件软件体系结构成分列农连接件成分过程 调用戊份之间实现单线程控制的连 接机制,如普通过程调用等。数据 流通过数据流进行交互的独立处 理流程连接机制。如同不交互 控制、管道机制等。隐含 触疫并发(非同步交互)事件实现 戌分之间的连接机制。如时间 调度、自动回收处理等。S独立成分Z间离散和罪线件的 交互连接机制。如协议等。3戌份Z间通过统数据空间进 行协调操作的机制。如黑板.共享数据区等。讨论部件连接器的内容包括:部件的类别部件的农达形式连接的种类连接的实现部件的特性/按口特性运行特性远程服务特件关联特性动态特性1等级或层次特性连接协议 r连接方向性连接的特性q连接的角色 连接的

23、激发连接的响应 连接的匹配性部件的类别按过程层次分:基础部件(硬件)、中层部件(技术支持)、 高层部件(领域需求)。按应用分:通用部件、专用部件。按功能分:数据服务部件、功能服务部件、逻辑/处理部件、界面部件、连接部件、体系结构部件等。按运行特性分:调度和芥调度部件、中断和非中断部件、 多客户服务部件。部件的农达形式部件的农示:具有操作接口定义的抽彖数据类型。 部件接口衣示:依据访问目的的操作方法分类描述 标准的接口描述语言:IDL仃nterface Description Language),适 用于不同平台的.从高层描述部件的、系统体系结构设计丁具43部件的特性1 接口特性:完备件使用者能通过接口完成部件的所仃功能 最小化一任一操作都是不可再拆分的最小操作 正交性一一操作之间的交叉重复部分应该最小2运行特性:能根据偶然或定时事件触发能处理并行运行多个功能部件3. 远程服务特性:为适应网络计算

温馨提示

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

评论

0/150

提交评论