软件结构体系第二章
软件结构体系:
构件,连接件,配置约束(接口)
模拟压力测试:虚拟测试,硬件提升,镜像,关闭无用进程
连接数据库的utils没有关闭导致宕机。
分析需求规格说明书:
分析功能需求,分组形成构件
提高构件的复用效率
分析构件与外界环境的交叉点,确定该构件的所有端口。
体系结构设计师,系统分析人员,客户和相关技术实现人员将对体系结构设计结果进行评审,确定所提出的解决方案是否能够满足用户的要求,是否能提高资源的复用效率。
软件体系结构风格:
解释器体系结构风格
是指不同系统所拥有的共同组织结构和语义特征
软件体系结构是构件和连接件之间相互作用的形式化说明,用以指导多个模块组织成一个完整的应用程序。
软件体系结构风格包括构件,连接件和一组将他们结合在一起的约束限制,诸如拓扑限制和语义限制。
3.利用软件体系结构风格的不变部分,可以使系统大粒度重用已有的实现代码。
数据流风格:批处理和管道/过滤器
调用返回风格:主程序/子程序,层次结构和客户机/服务器
1.管道/过滤器结构主要包括过滤器和管道两种元素
2.构件被称为过滤器,负责对数据进行加工处理。
3.连接件就是看作输入与过滤器之间的连接器
4.每个过滤器独立完成自己的任务,不同过滤器之间不需要进行交互。
5.在管道/过滤器结构中,数据输出的最终结果与各个过滤器执行的顺序无关。
管道/过滤器风格:
简单性,系统具有可扩展性和可进化性,各个过滤器是相互独立的,因此可以很容易地将新过滤器添加到现有的系统之中,以此扩展系统的业务处理能力,原有过滤器能够很方便地被改进的过滤器替代。
交换机与网桥的区别:
并发:
虚拟化的并行方式
缺点:
批处理方式,具有很强的独立性,对于每一个过滤器,必须考虑从输入到输出的转换过程,会造成过滤器对输入数据的批量转换处理
难以进行错误处理,管道/过滤器结构的固有特性,决定了很难制定错误处理的一般性策略
传统的编译器是管道/过滤器体系结构风格的一个实例
面向对象的体系结构风格:
数据表示和相关原语操作都被封装在抽象数据类型中
对象是构件,也被称为抽象数据类型的实例
对象是一种被称为管理器的构件,负责保持
1.一个对象对外界隐藏了自己的详细信息,改变了一个对象的表示,不会影响系统的其他部分。
2.继承和封装方法为对象复用提供了技术支持。
缺点;
对象更换标识必须全部更换
事件驱动体系结构风格
根据事件声明和发展状况来驱动整个应用程序运行。
系统对外部的行为表现可以通过它对事件的处理来实现
构件不在调用过程,而是声明事件
系统其他构件的过程可以在这些事件中进行注册,当触发一个事件时,系统会自动调用在这个事件中注册的所有过程。
使用传感器报警可以认为是事件驱动体系结构风格
特点:
不能确定构建处理的先后顺序
提高了软件复用能力,可以将该构件集成到系统中
便于系统升级,只要构建名和事件中所注册的过程名保持不变,原有构件可以被新构建所取代。
缺点:
放弃对计算的控制权,存在数据传输问题。
分层体系结构风格
1.分层风格中,系统将划分为一个层次结构
2.每层为上层提供服务,同时又利用了下层的逻辑功能
3.每层只对相邻层可见,层次之间的连接件是协议和过程调用,用以实现各层之间的交互
4.上层通过下层提供的接口来使用下层的功能,而下层不能使用上层的功能。
5.只要给相邻层提供相同的接口,就可以使用不同的方法来实现每一层,以支持软件资源的复用。
6.并非所有系统都能按照层次来进行划分,即使一个系统的逻辑结构是层次化的,但是出于对系统性能的考虑,需要把不同抽象程度的功能合并到一层,破环了逻辑独立性
7.多层结构难以调试,需要通过一系列的跨层次调用来实现。
C2体系结构风格
以太网
构件与构件之间通过连接件连接
连接件之间可以直接进行连接
构件之间的所有通讯必须使用消息传递机制来实现,在内存中实现,构件之间所传递的消息可以分为两种:
1.一种向上层构建发出服务请求的请求消息,一种是向下层构件发送指示状态变化的通知消息
下层是用户界面和I/O设备,上层是
优点:
构件可以在分布式和异构环境中运行,利用构件实现应用需求。
构件与构件不允许直接相连。
数据共享风格也称为仓库风格,有两种不同的软件元素:
一种是中央数据单元,资源库,用于表示系统的当前状态,另一种是相互依赖的构建组
中央数据单元和构建之间可以进行信息交换,这是数据共享体系结构的技术实现基础
数据共享体系可以分为了两种类型:
1.传统数据库,2,黑板
讨论组:
黑板:内存开辟缓冲区,格式不是事先知晓,推模式。
顾客需要对某些信息进行订阅,自动会把信息推送给用户。
黑板经常用于信号处理
中央数据单元起到了通信机制的作用
黑板体系结构有一下优点:
便于多客户共享大量数据,不必关心数据是何时产生
缺点:
使得共享数据结构的修改变得非常困难。
需要同步机制和加锁机制来保证数据的完整性和一致性,增大了系统设计的复杂度
黑板类似于文件系统,需要设置同步机制与加锁机制
解释器是利用软件来创建的一种虚拟机,解释器风格又被称为虚拟机风格
解释器体系结构具有以下优点:
1.能够提高应用程序的移植能力和编程语言的跨平台移植能力
2.实际测试工作可能非常复杂,测试代价极其昂贵。
解释器体系结构风格存在着一些问题:
1.使用了特定语言和自定义操作规则,因此增加了系统运行的开销
2.解释器系统难以设计和测试
1.Java和Smalltalk的编译器
2.
反馈控制环体系结构风格:
控制器
机器学习
客户机/服务器体系结构风格:
分散计算模型代替了集中计算时代,客户机软件。
C/S风格
处理请求表达等一系列问题
服务器-----》代理服务器------》客户
代理服务器