_软件体系结构



《_软件体系结构》由会员分享,可在线阅读,更多相关《_软件体系结构(84页珍藏版)》请在文档大全上搜索。
1、软件体系结构 软件体系结构的基本概念软件体系结构的基本概念 典型的软件体系结构风格典型的软件体系结构风格 基于网络的软件体系结构基于网络的软件体系结构模式分类 低层模式:惯用法低层模式:惯用法(idiom) 中层模式:设计模式中层模式:设计模式(design pattern) 高层模式:体系结构模式高层模式:体系结构模式(architecture pattern)惯用法 惯用法的特点:惯用法的特点: 是与具体语言密切相关的编程经验的总结是与具体语言密切相关的编程经验的总结 描述如何使用给定的语言特征来实现构件的特描述如何使用给定的语言特征来实现构件的特定方面及其关系定方面及其关系 代表最底层的
2、模式代表最底层的模式 惯用法更关注设计的实现惯用法更关注设计的实现 可能是一种特定设计模式的具体实现可能是一种特定设计模式的具体实现设计模式范围范围目的目的创建型模式创建型模式结构型模式结构型模式行为型模式行为型模式类模式类模式工厂方法模式(类)适配器模式解释器模式模板方法模式对象模式对象模式抽象工厂模式建造者模式原型模式单例模式(对象)适配器模式桥接模式组合模式装饰模式外观模式享元模式代理模式职责链模式命令模式迭代器模式中介者模式备忘录模式观察者模式状态模式策略模式访问者模式基本概念 什么是体系结构什么是体系结构目前还没有一个公认的关于软件体系结构的定义,许多专家目前还没有一个公认的关于软件
3、体系结构的定义,许多专家学者从不同角度对软件体系结构进行了描述。学者从不同角度对软件体系结构进行了描述。Bass、Clements和和Kazman给出了如下定义:给出了如下定义:“一个程序或计算机一个程序或计算机系统的软件体系结构是指系统的软件体系结构是指系统的一个或者多个结构。结构中系统的一个或者多个结构。结构中包括软件的构件、构件的外部可见属性以及它们之间的相互包括软件的构件、构件的外部可见属性以及它们之间的相互关系。外部可见属性则是指软件构件提供的服务、性能、使关系。外部可见属性则是指软件构件提供的服务、性能、使用特性、错误处理、共享资源使用等用特性、错误处理、共享资源使用等。”这一定义
4、强调在任一体系结构表述中这一定义强调在任一体系结构表述中“软件构件软件构件”的角色。的角色。 Dewayne Perry和和A1exander Wo1f曾这样定义:曾这样定义:“软件软件体系结构是具有一定形式的结构化元素,即构件的集合,包体系结构是具有一定形式的结构化元素,即构件的集合,包括处理构件、数据构件和连接构件。处理构件负责对数据进括处理构件、数据构件和连接构件。处理构件负责对数据进行加工,数据构件是被加工的信息,连接构件把体系结构的行加工,数据构件是被加工的信息,连接构件把体系结构的不同部分组合连接起来。不同部分组合连接起来。” 基本概念基本概念框架框架 随着应用的发展和完善,某些带
5、有整体性的应用模式被随着应用的发展和完善,某些带有整体性的应用模式被逐渐固定下来,形成特定的框架,包括逐渐固定下来,形成特定的框架,包括基本构成元素基本构成元素和和关关系系。框架框架是特定应用领域问题的体系结构模式,框架定义是特定应用领域问题的体系结构模式,框架定义了基本构成单元和关系后,开发者就可以集中精力解决业了基本构成单元和关系后,开发者就可以集中精力解决业务逻辑问题。务逻辑问题。 在组织形式上,在组织形式上,框架是一个待实例化的完整系统框架是一个待实例化的完整系统,定义,定义了软件系统的元素和关系,创建了基本的模块,定义了涉了软件系统的元素和关系,创建了基本的模块,定义了涉及功能更改和
6、扩充的插件位置。典型的框架例子有及功能更改和扩充的插件位置。典型的框架例子有MFC框框架架和和Struts框架框架。 体系结构的重要作用体现在以下三个方面体系结构的重要作用体现在以下三个方面 :(1)体系结构的表示有助于风险承担者(项目干系)体系结构的表示有助于风险承担者(项目干系 人)进行人)进行交流交流。 (2)体系结构突出了早期设计决策。)体系结构突出了早期设计决策。 (3)软件体系结构是可传递和可复用的)软件体系结构是可传递和可复用的模型模型。 基本概念 体系结构的重要作用体系结构的重要作用体系结构风格 传统的体系结构传统的体系结构数据流风格数据流风格 (Dataflow):批处理序列
7、、管道过滤器风格批处理序列、管道过滤器风格 (Pipe-and-Filter)调用调用/返回风格返回风格:主程序主程序/子程序、面向对象风格子程序、面向对象风格 (ADT)、层次系统、层次系统 (Layered Systems)事件系统风格事件系统风格:进程通信、事件系统进程通信、事件系统仓库风格仓库风格:数据库系统、超文本系统、黑板系统数据库系统、超文本系统、黑板系统MVC软件体系结构软件体系结构体系结构风格 基于网络的体系结构基于网络的体系结构客户端(服务器)客户端(服务器)/服务器体系结构服务器体系结构:一层一层/两层两层/三层结构、三层结构、Java EEP2P软件体系结构软件体系结构
8、网格计算体系结构网格计算体系结构SOA与与Web Services云计算体系结构云计算体系结构当输入数据经过一系列的计算和操作构件的变换形成输当输入数据经过一系列的计算和操作构件的变换形成输出数据时,可以应用这种体系结构。出数据时,可以应用这种体系结构。管道管道/ /过滤器过滤器、批处理序列批处理序列都属于数据流风格。都属于数据流风格。管道管道/ /过滤器结构如下图所示:过滤器结构如下图所示:数据流风格 数据流风格数据流风格 管道管道/ /过滤器结构过滤器结构 Linux系统中的命令序列堆叠的数据过程(图像处理) 从上图可看出,管道从上图可看出,管道/过滤器结构拥有一组被称为过滤器结构拥有一组
9、被称为过滤过滤器器(filter)的构件,这些构件通过)的构件,这些构件通过管道管道(pipe)连接,管)连接,管道将数据从一个构件传送到下一个构件。道将数据从一个构件传送到下一个构件。 每个过滤器独立于其上游和下游的构件而工作,过滤器每个过滤器独立于其上游和下游的构件而工作,过滤器的设计要针对某种形式的数据输入,并且产生某种特定形的设计要针对某种形式的数据输入,并且产生某种特定形式的数据输出。式的数据输出。 如果数据流退化成为单线的变换,则称为如果数据流退化成为单线的变换,则称为批处理序列批处理序列(batch sequential)。这种结构接收一批数据,然后应)。这种结构接收一批数据,然
10、后应用一系列连续的构件(过滤器)变换它。用一系列连续的构件(过滤器)变换它。数据流风格管道管道/ /过滤器风格具有以下过滤器风格具有以下优点优点:(1 1)使得软构件具有良好的隐蔽性和高内聚、低耦合的特)使得软构件具有良好的隐蔽性和高内聚、低耦合的特 点。点。(2 2)允许设计者将整个系统的输入)允许设计者将整个系统的输入/ /输出行为看成是输出行为看成是多个过多个过 滤器的行为的简单合成滤器的行为的简单合成。 (3 3)支持软件复用支持软件复用。只要提供适合在两个过滤器之间传送。只要提供适合在两个过滤器之间传送 的数据,任何两个过滤器都可被连接起来。的数据,任何两个过滤器都可被连接起来。(4
11、 4)系统维护和增强系统性能简单。)系统维护和增强系统性能简单。新的过滤器新的过滤器可以添加可以添加 到现有系统中来;到现有系统中来;旧的旧的可以被改进的过滤器替换掉。可以被改进的过滤器替换掉。(5 5)允许对一些如吞吐量、死锁等属性的分析。)允许对一些如吞吐量、死锁等属性的分析。(6 6)支持并行执行支持并行执行。每个过滤器是作为一个单独的任务完。每个过滤器是作为一个单独的任务完 成,因此可与其他任务并行执行。成,因此可与其他任务并行执行。数据流风格管道管道/过滤器风格主要过滤器风格主要缺点缺点如下:如下:(1)通常导致进程成为批处理的结构。这是因为虽然过滤)通常导致进程成为批处理的结构。这