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

下载本文档

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

文档简介

1、软件体系结构1 软件体系结构的概念2 软件体系结构的设计3 特定领域的体系结构4 分布式软件体系结构 11.1 软件体系结构的定义一个程序或计算机系统的软件体系结构包括一个或一组软件构件、软件构件的外部可见特性及其相互关系。软件构件的外部可见特性是指软件构件提供的服务、性能、特性、错误处理、共享资源使用等。软件体系结构的基本单位是软件构件,软件构件是一个软件体系结构的核心。1 软件体系结构的概念2软件构件可以是子系统,也可以是模块。在它们之间没有清晰的界限,但可以依据下列两点加以区分:一个子系统独立构成系统,不依赖其他子系统提供的服务。子系统由模块或更小的子系统构成。子系统之间的交互通过它们的

2、接口。一个模块通常是一个能提供一个或多个服务的系统构件,它能够利用其他模块提供的服务,一般不被看成一个独立的系统,模块可以由更简单的模块组成。3概念结构:从主要设计元素(构件)及其相互关联、设计原则和性能角度考虑的结构。模块结构:根据功能分解建立模块的层次结构包括模块接口、模块管理、模块控制和一致性等问题。代码结构:描述源程序,二进制程序,库文件。在开发环境下的组织包括系统资源配置管理,系统构造和对象嵌入机制 OEM 等。执行结构:描述系统的动态结构包括性能、调度、动态配置和不同系统间的接口等。1.2 软件体系结构的不同形式41.3 在软件构件设计中应保持的性质计算功能:描述构件所实现的整体功

3、能。结构特性:描述特定构件定义、构件打包的方式和相互交互的方式,构件如何组织以构成整个系统。附属功能:描述构件的执行效率、处理能力、环境假设、全局特性等,包括时间要求、空间要求、精确度、安全性、保密性、带宽、吞吐率、最低硬软件要求等。家族特性:描述相同和相关构件之间的关系。5纯计算构件: 具有简单输入输出关系,没有运行状态变化如数值计算、过滤器、转换器等。存储构件: 存放共享的、永久性的、结构化的数据。如数据库、文件、符号表、超文本等。管理构件: 执行操作与运行状态紧密相关。如抽象数据类型、面向对象系统中的对象、服务器等。1.4 软件构件分类6控制构件: 管理其它构件运行的时间、时机及次序。例

4、如,调度器、同步器等。链接构件: 在实体之间传递信息。例如,通信机制、用户界面等。过程调用: 在某一特定执行路径中传递执行指针。如普通过程调用、远程过程调用。数据流: 相互独立的处理通过数据流进行交互,在得到数据的同时被赋予控制权限。如 UNIX 系统中的管道。1.5 构件之间的连接方式7间接激活: 处理因事件的发生而激活,在处理间没有直接交互。例如,事件驱动系统、自动垃圾回收等。消息传递: 相互独立的处理间有明确交互,通过显式数据传递。传递可以是同步的,也可以是异步的。如TCP/IP 。共享数据: 构件通过同一数据空间进行并发操作。如多用户数据库, 数据黑板。82 软件体系结构的设计软件体系

5、结构的设计过程是为系统建立一个基本架构。它包括识别系统的主要构件和这些构件之间的通信。设计过程的主要活动系统构造:将系统分解为一系列基本的子系统,每一子系统是独立的软件成分。控制建模:建立系统各部分之间的控制关系的一般模型。模块分解:将子系统进一步分解为模块。92.1 系统构造 (System Structuring)体系结构设计的第一步是将系统分解为一系列相互作用的子系统。在最抽象层次,系统可视为一个方框图,图中每个方框表示一个子系统。每个方框内的方框表明子系统本身还可分解为子系统。箭头表示一个子系统向另一子系统传送数据或控制。下图是一个组装机器人的系统构造。10组装机器人控制系统的方框图视

6、觉系统对象识别系统手臂控制器机械爪控制器组装选择系统组装系统传送带控制器11体系结构方框图表示一个系统结构的概貌,软件工程师很容易理解它。这种方框图的缺点是没有反映系统构件之间关系的本质,没有表明系统的外部特性。根据各子系统如何共享数据、如何分布、如何相互交互,可开发更加特定的模型。数据仓库模型 客户机/ 服务器模型抽象机模型121) 数据仓库模型 (repository model)所有共享数据都存放于数据库中, 这些数据可为所有子系统存取。每个子系统保有各自的数据库,通过传送消息,可在子系统之间交换数据。大量的数据围绕一个共享数据库或数据仓库来组织。这种系统主要适用于控制系统,信息管理系统

7、,CAD系统,CASE工具集。13集成的CASE工具集的体系结构以数据仓库为核心设计分析器报告生成器项目数据仓库设计编辑器代码生成器设计翻译器程序编辑器14这种体系结构包括数据库、超文本系统及数据黑板系统等。它包含两种成分:一是共享的结构化数据;二是所有访问这些数据的操作。如果是因为输入数据而引起对共享数据的操作,那么这种控制策略下的体系结构就叫做数据库。如果是由共享数据的当前状态触发相应的处理,那么这种体系结构就叫做数据黑板。为此,需要存储特定知识。15数据仓库模型可共享大量数据,在子系统之间无须进行数据转换。子系统的数据模型必须与数据仓库的数据模型保持一致。如果一个新子系统的数据模型与数据

8、仓库的数据模型冲突,很难将它集成到系统中来。不同的子系统对保密性、恢复和备份有不同的要求,而数据仓库模型将迫使所有子系统采用相同的策略。162) 客户机/服务器模型 (client/server model)这是一种分布式系统模型, 表明各种数据和处理如何分布到各个处理器上。有一组功能各自独立的服务器,为其他子系统提供服务,如打印服务器,文件服务器,编译服务器等。有一组客户机, 它们调用服务器提供的服务,也可能存在一些客户机,可并发执行的客户机程序。有一个网络, 使得客户机能够访问服务器。17film & picture library系统的体系结构CatalogueserverVodiose

9、rverPictureserverHypertextserverCatalogueFilm clipfilesHypertextwebWide - bandwidth network Client 1Client 2Client 3Client 4Digitisedphotographs18在多用户超文本系统中存在若干服务器,它们管理和显示不同媒体的数据。Vidio服务器要求高传输率和同步,但对分辨率要求相对较低。Picture要求高分辨率。Catalogue要求能处理大量查询并提供对超文本信息系统的链接。客户机程序较为简单,是对以上服务器的集成化的用户界面。19客户机 / 服务器方法可用来实

10、现基于数据仓库的系统,由数据仓库作为服务器提供系统服务。各子系统作为客户访问数据仓库,但各子系统还有自己的数据管理功能。服务器与客户间交换数据以执行处理。对于大量的数据交换,可通过高速网络来解决性能问题。客户机 / 服务器系统多用于具有多个分布式处理器的网络系统。20它易于 增加一个新的服务器并将其与系统的其他集成在一起。 系统中服务器的升级对用户是透明的,且不影响系统的其他部分。213) 抽象机模型 (abstract machine model)一个体系结构的抽象机模型也称为层次模型。此模型可以建立各个子系统的接口,它把系统组织成一系列的层次,每一层次提供一组服务,定义一个抽象机。每一个抽

11、象机由其下一层的抽象机的代码构成。例如,网络协议的参考模型 OSI 即为典型的层次模型,而TCP/IP 通信协议则为四层的层次模型。22以太网IPTCPFTP以太网IPTCPFTPFTP协议TCP协议IP协议以太网协议物理连接应用层传输层TCP/IP 通信的层次模型23版本管理系统的例子版本管理系统用于管理对象的版本。为支持配置管理,它使用一个对象管理系统来操作对象的信息存储和服务。对象管理系统又使用数据库系统操作基本数据存储和服务,如事务管理、滚回、恢复和控制存取。数据库管理系统在其实现时又使用操作系统工具和文件堆。24Operating SystemDatabase Mana-gement

12、 SystemObject Management SystemVersion Management System25抽象机模型支持系统抽象程度递增的系统开发,具有可变更性和可移植性。当一个层次开发出来后,就可以为其上层提供有效的某些服务。如果接口是预定义的,则一个层次可为另一个层次所替换。若一个层次的接口发生变更,仅相邻层次受到影响。层次系统将机器依赖性局部化到它的内部层次上。26基于复用的层次式体系结构层次式结构中,每一层向其上层提供服务,并利用下层的服务。在层次系统中,内部层次全部被隐藏起来,只有外部层次或某些功能可以为外部可见。层次之间交互的通信协议构成层次间的连接;对层次之间交互的限制

13、构成其拓扑约束。27用户应用系统基本工具内核过程调用不同元素组合常见的层次结构28四层式软件体系结构应用软件层特定业务层中间件层系统软件层各个应用的各种变型各个应用系统各个构件库系统 (针对特定论域、特定业务)不依赖平台的低层构件等特定的平台软件:操作系统等29最高层是应用系统层,此层包含多个应用系统;应用系统可以通过其接口与其他系统操作,还可以通过低层软件提供的服务或对象 (如操作系统、特定业务服务) 间接地与其他系统交互操作。次高层是“特定业务”层,此层应当包括专门针对不同业务类型的一系列构件库系统。这样的构件库系统向用户提供可复用的使用事例和对象构件,用于开发应用系统。特定业务层的软件建

14、立在中间件之上。30中间件层位于次高层下面,它为次高层的各个构件库系统提供实用软件类,以及不依赖于平台的服务。最低层是系统软件层,此层包括计算机和网络等基础设施软件,如操作系统、专用的硬件接口软件等。为了确保分层式系统可管理,规定在一个系统内,不能从低层复用高层的构件。312.2 控制模型 (Control model)系统构造模型涉及到一个系统如何分解为子系统作为一个整体,必须对各子系统加以控制,使得它们的服务能够在正确的时刻被导向到正确的地方。系统构造模型没有涉及,也不应涉及控制信息,必须按照控制模型组织各子系统,并满足系统构造模型的要求。在体系结构层次上的控制模型应考虑子系统之间的控制流

15、。321) 集中控制模型 (centralised control model)在集中控制模型中,将一个子系统设计为系统控制器,其职责是管理其他子系统的执行。集中控制模型分为两类: 控制子系统顺序执行 控制子系统并发执行作为集中控制器的子系统在将控制转交给另一子系统后,该子系统完成它的功能后控制权还要归还给集中控制器子系统。33(1)调用-返回模型 (Call-Return model)此即熟悉的自顶向下的子程序模型。控制始于子程序层次的顶部,通过子程序调用,从层次结构较高层的程序向较低层的程序传递控制信息。程序执行结束将向较高层的父程序返回。这种程序模型仅应用于顺序系统。该模型可以在模块层使

16、用,以控制函数或对象。34控制的Call-Return模型Routine 1.1Routine 1.2Routine 3.1Routine 3.2Routine 1Routine 2Routine 3MainProgram35在调用- 返回系统结构中, 每一层都只与上下相邻的两层通信,每一层在利用下层基础服务的条件下,为上层提供服务。这种结构的优点是:提供逐步抽象的编程支持,支持复用及系统升级缺点是:不是所有的系统都适合于建成层次结构,不能提供最佳性能。36(2) 管理器模型 (manager model)这种模型应用于并发系统。模型中有一个系统构件被设计为系统管理器,它控制开始、终止,并协调

17、其他系统进程。一个进程可以是子系统,也可以是模块,它可以与其他进程并行执行。这种模型也可应用于顺序系统。管理例程根据某些状态变量的值调用特定的子系统。37一个实时系统的集中控制模型SensorprocessesActuatorprocessesComputationprocessesUserInterfaceFaultHandlerSystemcontroller38位于中央的系统控制器管理一组进程的执行,这些进程管理传感器、传动装置等。根据系统的状态变量,系统控制器决定什么时候进程应该启动或停止。系统控制器负责监测哪些进程产生需要处理的信息,或哪些进程收到需要处理的信息。系统控制器不停地循环

18、,轮流检测传感器和其他进程的事件和状态变化。基于上述功能,有时将此模型称为事件- 循环模型。392) 事件驱动系统 (Event-driven system)集中控制模型通过一些系统状态变量值决定控制的流向;事件驱动模型则是通过外部生成的事件来驱动系统。事件与简单输入间的区别在于事件的时序存在于事件处理进程控制的外部。一个子系统可能需要存取状态信息来处理这些事件,但这些状态信息通常并不决定控制的流向。广播模型中断驱动模型40(1) 广播模型 (Broadcast model)在这种模型中,一个事件向所有的子系统广播,由能够处理此事件的子系统响应它。这种模型的控制策略不嵌入在事件和消息处理器内。

19、子系统决定它需要哪些事件,而事件和消息处理器负责将事件发送给它们。在广播模型中,子系统注册有关特定事件的信息。一旦事件发生,控制将转移到能够处理该事件的子系统。41对于在网络中跨越不同计算机分布的集成子系统,广播模型十分有效。所有事件可能会广播给所有的子系统,但会消耗大量的处理开销。事件处理器通常还支持点对点通信。事件和消息处理器子系统 1子系统 2子系统 3子系统 442广播模型的优点是演进比较容易。新的子系统可以通过在事件与消息处理器中注册它可以处理的事件来实现集成。任何子系统可以在不知道其他子系统名字或位置的情况下激活那些子系统。实时系统一定是事件驱动的,它要求快速处理外部生成的事件。4

20、3(2)中断驱动模型 (Interrupt-driven model)这种模型专用于硬实时处理系统。系统中只有有限的几种中断类型。每一中断都与中断向量中的一个存储位置相关联,该位置中存储了相应中断处理器的入口地址。当系统接收到一个特定类型的中断时,硬件开关立即将控制以间址方式转移到相应的中断处理器,进行相应的中断处理。中断处理器对事件的响应将是启动或停止其他某一进程。44InterruptsProcess1Handler1Process2Handler2Process3Handler3Process4Handler4Interruptvector这种模型可以嵌入到其他控制模型中使用,用以对事件

21、作出紧急反应。452.3 模块分解 (Modular decomposition)在设计出一个结构性体系结构后,下一步就是将子系统分解为模块。在系统分解和模块分解之间没有严格的区别。将子系统分解为模块时用到两种模型: 对象模型 数据流模型如有可能,应避免并发设计,因为顺序设计在设计、编码、验证和测试都比较容易。461) 对象模型 (Object model)在对象模型中,将系统分解为一组对象。对象具有松散耦合和仔细定义的界面,对象的状态是私有的,对象的操作是基于其状态定义的。对象具有诸如封装、隐蔽、继承等良好的特性。对象必须自己维护其数据的一致性。对象是系统的构件。因此对象分解的焦点在于对象类

22、、对象属性及对象操作。实现时,对象就是从这些类中产生。47这种体系结构的优点是:将具体的实现部分隐蔽在对象中,使得代码之间的独立性很好,有利于将复杂的系统分解为相互操纵的子任务。缺点是:对象间进行一般的调用时必须知道对方的标识。如果一个对象的标识发生变化,所有显式调用这个对象操作的地方都要修改。对象之间的同步等还缺乏现成的机制。48Customercustomer#nameaddresscredit periodPaymentinvoice#dateamountcustomer#Receiptinvoice#dateamountcustomer#Invoiceinvoice#dateamoun

23、tcustomer#issue()sendReminder()acceptPayment()sendReceipt()492) 数据流模型 (Data-flow model)在数据流模型中,将系统分解为一系列功能模块。这种结构包括批处理和管道及过滤器。在体系结构中的每一个成份都有一套输入和输出数据,都依输入-变换-输出的方式工作。进行数据变换的构件叫做过滤器。把数据从一个过滤器的输出导入到另一个过滤器的输入,就叫做管道。50在系统中,各个过滤器必须是相互独立的,每一个过滤器对它的上游或下游的过滤器的情况是不知道的,也不能做任何假设。如果要求最终的输出结果与各个过滤器的执行次序相关,就是一个数据

24、流方式的体系结构。这种结构的优点是:数据流程设计明确,直接支持复用,系统容易维护和升级,可以进行某些性能分析(如流量、死锁等),容易支持并行计算。51invoices处理系统的数据流模型ReadissuedinvoicesIdentifypaymentsIssuereceiptsReceiptsFindpaymentsdueIssuepaymentreminderRemindersInvoicesPayments523 特定领域的体系结构前面介绍的体系结构模型都是一般的模型,可应用于各种不同类型的应用中。对于一个特殊的应用领域,还可使用特定于它的体系结构模型,在开发新的系统时可以复用其公共体系

25、结构。这种体系结构模型即为特定领域的体系结构。存在两种特定领域的体系结构模型:类属模型 (Generic model)参考模型 (Reference model)533.1 类属模型类属模型是从许多实际系统中抽象出来的模型,它封装了这些系统的主要特征。例如,在实时系统中,对于不同类型的系统,如数据采集系统、监控系统等,有它们各自的类属模型。又例如,在语言的编译器中包括有词法分析器、语法分析器、语义分析器、代码生成器等,还有在编译过程中建立的符号表、语法树等。存在不同的体系结构模型组织编译器的构件。54编译器的数据流模型编译器可以使用复合模型实现。编译器用数据流体系结构实现,处理流程按词法分析语

26、法分析语义分析代码生成的顺序执行,但处理共享数据时,使用了当作数据仓库用的符号表。符号表词法分析 语法分析 语义分析 代码生成 55数据流模型在没有用户交互的批处理环境下执行编译十分有效。但当编译器需要与其他语言处理工具,如编辑器、交互调试器、字体打印机等集成时效果不是很好。此时,编译器可以使用基于数据仓库的模型来组织类属系统的构件。在这种模型中,符号表、语法树等起到中央信息仓库的作用,各种工具或工具件的通信都经过它。此外,有关程序的语法定义、输出格式定义等都从工具中取出,归入到数据仓库中。 56语言处理系统的数据仓库模型语法树词法分析器 语法分析器 语义分析器 字体打印机 编辑器 优化器 代

27、码生成器 语法定义符号表符号表数据仓库573.2 参考模型一般的软件体系结构模型反映的是已有系统的体系结构,而参考模型反映了一大类系统的体系结构。参考模型源于对应用领域的研究,它描述了一个理想化的包含了系统应具有的所有特征的软件体系结构。典型的例子是OSI参考模型。它描述了开放系统互连的标准。如果一个系统遵从这个标准,就可以与其他遵从该标准的系统互连。58通常,参考模型不能被正式看作是系统实现的方式,而主要使用它作为比较一个应用领域中不同系统之间异同的工具。OSI参考模型是一个七层模型。较低层主要实现物理连接,中间层主要实现数据传输,较高层实现带有语义的应用信息的传输。 其他典型的参考模型有关

28、CASE环境的参考模型ECMA,关于软件工厂的参考模型,某些设计模式等。59OSI参考模型的体系结构应用层表示层对话层传输层网络层数据链路层物理层网络层数据链路层物理层应用层表示层对话层传输层网络层数据链路层物理层通信介质604 分布式系统体系结构所有大型计算机系统现在都是分布式系统。分布式系统的信息处理分布在多个计算机上,而不是只限于单个计算机上。在分布式系统中,系统软件运行于用网络相连的一组松散地集成在一起的处理器上。例如,银行的ATM系统、预定系统、群件(Groupware) 系统等。614.1 分布式系统的主要特征资源共享 允许硬件、软件资源共享使用。开放性 是指系统通过非私有资源来扩

29、展自己的能力。分布式系统可包括来自不同厂家的硬件和软件的兼容产品。并发性 在分布式系统中,在网络的不同计算机上可同时运行多个进程,它们在运行期间可以互相通信。可伸缩性 分布式系统是可伸缩的,可以通过增加新的资源来满足对系统的新的需求。62容错性 具有多台计算机和复制信息的潜能意味着分布式系统能够容忍某些硬件或软件的失效。在大多数系统中,当失效发生时会导致某些服务能力下降,只有当网络失效时才完全丧失其服务能力。透明性 是指对用户隐藏了系统的分布情况。用户可以完全透明地访问系统的资源而不必了解系统资源的分布。不过,在多数情况下,可以让用户了解一些有关系统组织的知识,这有助于用户更好地使用这些资源。

30、634.2 典型的分布式系统的体系结构1. 多处理器体系结构多处理器系统由多个不同的进程组成,这些进程可以在不同的处理器上运行。例如,在实时系统中,采集信息、制订决策、执行控制等进程可以由调度器控制在同一台处理器上运行,而使用多处理器则能够改进系统的性能和弹性。进程分配到哪一台处理器,可以是预先确定的,也可以用分配器控制进行分配。64传感器控制进程控制室显示进程交通灯光控制进程传感器处理器交通流量处理器交通信号控制处理器多处理器交通控制系统多进程的软件系统不一定是分布式系统。但如果有多个处理器可用,可考虑分布式实现。交通流量传感器和摄像头交通信号灯操作员控制台652. 客户机/服务器体系结构在这种体系结构中,一个应用程序被模型化为一组由服务器提供的服务和一组使用这些服务的客户机。客户机需要知道服务器的存在,但通常不知道其他客户机的存在。客户机与服务器是不同的进程。通常我们讨论它们时,把它们当作逻辑进程,就是说,不关心它们物理上放在哪一台计算机上。66客户机/服务器体系结构逻辑模型,进程与处理器之间不一定是一对一的映射。s1服务器进程客户机进程c1c5c11c12c6c7c10s1网络s2s3s4c

温馨提示

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

评论

0/150

提交评论