版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件体系结构风格软件体系结构风格:Architectural Style能重复使用的软件体系结构模式。有原则使用结构风格的益处:促进了对体系结构设计的复用;带来显著的代码复用。体系结构风格不变部分可以共享同一个实现代码;只要系统是使用常用的、规范的方法来组织,就可使别的设计者很容易地理解系统的体系结构;对标准风格的使用也支持了互操作性。CORBA与基于事件机制的集成;结构风格通常允许进行特殊的和风格有关的分析,这与连接件的特性有关;通常有可能对特定的风格提供可视化手段(visualization)。注意:结构风格的使用几乎完全是特化的,必须根据特定项目的具体特点进行分析比较后确定。软件体系结构
2、风格软件体系结构风格的四种基本要素:1.提供一个词汇表:定义与设计元素有关的部件、连接件类型等。2.定义一套配置规则或系统的拓扑限制:明确设计元素的合法组成方式。3.定义一套语义解释原则:使得设计元素的组成可以适当地约束于配置规则之中,并具有清晰的含义。4.定义可以对基于这种风格建立的系统进行的分析。如:Client/Server结构风格的实时处理过程的可调度性。基本的软件体系结构风格Garlan和Shaw对通用体系结构风格的分类:数据流风格:批处理序列;管道/过滤器;过程/调用风格:主程序/子过程;面向对象;分层系统;独立组件风格:进程通讯;基于事件驱动的系统(显式调用隐式调用)虚拟机风格:
3、表格驱动的解释器(类似CPU);基于规则的系统(类似工业控制);数据中心风格:数据库系统;超文本系统;黑板系统。小结:一个体系结构风格定义了有相同组织结构模式的一系列系统,并定义了组件和连接器类型的列表以及一套组件连接的约束。 许多体系结构模型还有一个或多个语义模型来指定如何由各部分的属性决定系统的整体属性。体系结构风格说明调用返回式主程序子程序:结构化面向对象分层结构(层次结构):OSI/ISO数据流式批处理序列: 批处理文件,C编译过程管道-过滤器数据中心式中央数据库:常见的数据库应用系统超文本系统: WWW黑板独立部件式互通信进程:UNIX系统事件系统(隐式调用):Windows 显式调
4、用虚拟机式解释器: JAVA虚拟机基于规则的系统: 过程控制系统基本的软件体系结构风格出发点:侧重于软件体系结构的结构模型,即观察软件部件、连接件、部件及连接件组合的约束条件。1. 管道和过滤器(pipes and filters)2. 数据抽象和面向对象组织(data abstraction and OO-organization)3. 基于事件的隐式调用(event-based,implicit invocation)4. 分层系统(layered systems)5. 仓库系统(repositories)6. 表格驱动的解释器(table driven interpreters)7. 其
5、它类型的体系结构基本的软件体系结构风格-管道/过滤器(pipes and filters)计算过滤器计算过滤器管道过滤器:对输入数据进行局部变换,并采用渐进式计算方法,在未处理完所有输入数据以前,就可以产生部分计算结果,并将其送到输出端口。管道:各过滤器之间的连接器将一个过滤器的输出传到下一过滤器的输入端。特征:1.过滤器一定是独立的实体,即各过滤器之间不能共享状态; 2.过滤器与其连接的上下游的过滤器互相独立。过滤器只能涉及限制哪类数据可以出现在它的输入管道中,可以保证它将输出何种类型的计算结果,但不能识别与其相连的管道的另一边的过滤器。基本的软件体系结构风格-管道/过滤器(pipes an
6、d filters)1.系统的整体行为可以理解为各独立过滤器行为的简单合成。 2.系统维护容易:过滤器可以容易地替换和增加。 3.允许进行如吞吐量和死锁等性能分析。 4.很自然地支持并发执行。1.过滤器容易被看成提供一个完整的将输入数据转换成输出数据的模块。实际上,过滤器是以渐进式处理数据的。 2.维护两个分离但相关的数据流时,很难设计这样的系统。 3.由于管道遵循最一般的数据传输标准,所以,过滤器必须承担数据语法分析和编码的额外工作,增加了复杂性,降低了性能。基本的软件体系结构风格-数据抽象和面向对象组织(data abstraction and OO-organization)部件:对象,
7、或者说是抽象数据类型的实例。连接:对象间通过函数和过程调用发生相互关系。(继续、关联)特征:1.对象负责维持本身的完整性; 2.信息隐藏:对象的结构和方法的实现对其它对象不可见。抽象、封装、信息隐藏、继承、多态性、动态联编等.一个对象与另一个对象交互时必须知道对方的标识,这种显式调用使得系统的维护变得较困难。基本的软件体系结构风格-基于事件的隐式调用(event -based,implicit invocation)思想:组件不直接调用一个过程,而是触发或广播一个或多个事件。系统中其它组件的过程在一个或多个事件中注册,当一个事件被触发,系统自动调用在这个事件中注册的所有过程。这样,事件的触发就
8、可以隐式调用模块中的过程。特点:事件的声明者不用知道哪些部件会被事件影响。部件:模块,既可以是过程,又可以是事件集合。连接:显式和隐式过程调用强有力支持软件复用;系统容易升级。软件部件放弃了对计算的控制,控制完全由系统完成。数据传递常常需要依赖一个存储库来完成,资源管理成为问题。系统正确性的评判问题。因为过程的调用依赖于调用时的环境。基本的软件体系结构风格-分层系统(layered systems)内核基本工具有用的系统用户软部件:实现在层次结构中的虚拟机连接件:层次与层次之间交互的协议层次化组织原则:每一层向其上层提供服务,并利用下层的服务。基本的软件体系结构风格-分层系统(layered
9、systems)支持基于抽象程度递增的系统设计。支持功能扩展、增强。因为功能的改变最多影响相邻的层次。支持复用。只要提供的服务接口定义不变,同一层的不同实现可以交换使用。并不是每个系统都可以很容易地划分为分层的模式,有时即使存在逻辑层次结构,但出于对系统性能的考虑,将低层和高层的功能耦合起来。很难找到一个合适的、正确的层次抽象方法。基本的软件体系结构风格-仓库系统(repositories)软件部件表示当前状态的中心数据结构一组相互独立的处理中心数据的部件部件交互方式根据输入数据流的事务处理类型决定执行哪个处理过程根据中心数据结构的当前状态触发进行执行传统的数据库系统黑板系统基本的软件体系结构
10、风格-仓库系统(repositories)中心数据库(共享数据)数据处理数据处理数据处理数据处理仓库系统与黑板系统的区别:仓库系统使用数据推(push):操作驱动数据处理部件接受外部命令,执行数据处理任务基本的软件体系结构风格-黑板系统(blackboard)黑板(共享数据)知识源知识源知识源知识源直接存取:知识源不断改变黑板的状态。按照与应用程序相关的层次组织的问题求解数据独立、分离的与应用程序相关的知识及其处理单元黑板状态驱动控制:使用特定的知识。仓库系统与黑板系统的区别:黑板系统使用数据推(pull):数据驱动基本的软件体系结构风格-表格驱动的解释器(table driven inter
11、preters)工作存储区对解释引擎控制状态的表示被解释程序的当前状态的表示解释引擎输入输出计算状态机被选数据和指令存储器数据存取解释器基本的软件体系结构风格-表格驱动的解释器(table driven interpreters)、状态机工作状态存储区规则库规则选择数据元素选择规则解释引擎输入输出计算状态机被选数据和规则存储器数据存取事实存储区专家系统、状态机基本的软件体系结构风格-其它类型的体系结构分布式系统中最常用的体系结构:客户/服务器模型服务器:为客户提供服务;事先并不知道有哪些客户对其进行访问。客户:必须直接或间接知道服务器的标识。远过程调用注意:结构的层次可以是两层,也可以是三层(
12、在客户和服务器之间增加了一个中间层:中间件),三层结构中相邻两层仍然保持客户/服务器的关系。其它常见软件体系结构风格工业控制中常用的体系结构:反馈-控制(过程控制)风格抽象描述开环闭环, 前馈反馈Open Loop Control(开环控制)Closed Loop Control(闭环控制)其它常见的软件体系结构风格科学研究中常用的体系结构:状态机风格体系结构风格? 远乎?近乎?实际上,很多大家目前在使用的一些系统和术语,都属于体系结构风格JVM:是什么风格的?J2EE,是什么风格的?Windows,是什么风格的?最早的C+/C开发系统是什么风格的?常用的MIS系统是什么风格的?C/S、 B/
13、S结构, 三层结构,ISO/OSI网络体系是什么风格的?面向对象的分析和设计是什么风格的?异构体系结构1. 异构是不可避免的不同的体系结构在处理能力上有不同的优缺点,一个系统的体系结构应该根据实际需要进行选择,以解决实际问题。同一种体系结构下的可重用的部件和连接件在不同时期可能存在不同的标准,特别是连接件中的通信协议标准。如果要重用原来系统中遗留下来的代码,那么就要解决与新系统体系结构的不协调问题。2.异构体系结构的组合组合的方法很多,如可以利用分层组织方式,基于某种体系结构的系统的一个组成部分,其内容可以是另一种与之完全不同的结构。以完全不同的结构类型完整描述体系结构中的每一层。异构体系结构?异构体系结构组合时,如何解决不同体系结构下
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- (高考英语作文炼句)第31篇译文老师笔记
- 开题报告:制度育德的现实考量与实践路径研究
- 开题报告:运用大数据智能分析实现精准测评教学的研究
- 开题报告:以促进青少年道德判断为核心的道德教育实效性研究
- 《全过程质量管理》课件
- 开题报告:新时代老年教育服务体系建设研究
- 开题报告:新时代初中生阅读素养发展指数建构与应用研究
- 《激光对刀仪说明书》课件
- 2024年度辣椒种植技术培训与采购合同3篇
- 基于2024年度的云计算服务合作协议2篇
- DL∕T 860.10-2018 电力自动化通信网络和系统 第10部分:一致性测试
- 2024年安徽淮南高新区管委会招聘工作人员12人历年(高频重点提升专题训练)共500题附带答案详解
- (新版)碳排放管理员(高级)职业鉴定考试题库(含答案)
- 施工前技术交底会
- 文学概论2024年 知到智慧树网课答案
- 2024年宝鸡市高考模拟检测 ( 一 ) 一模 英语试卷(含答案)
- GB/T 13077-2024铝合金无缝气瓶定期检验与评定
- 工程设计合理化建议
- 基坑工程安全风险辨识
- 设计质量、进度、服务保证措施
- 电容器寿命预测与评估方法
评论
0/150
提交评论