6 部件与连接器
部件和连接器被公认为体系结构的两大类构成部分
- 部件是软件功能设计和实现的载体
- 连接器是专门承担连接作用的特殊部件
部件
部件及其作用
- 任何具有独立结构和行为特性的软件体都可以成为部件。
- 部件是软件系统的结构块单元,是软件功能设计和实现的载体。
- 系统是部件及其关联的集合。
- 使用的时候:一个部件至少有一个接口,每一个接口代表对外联系的一种角色,这是部件与外界发生联系的窗口。
- 设计系统时候:需要根据对部件的功能、与其他部件的关联、对部件的特殊性要求,建立内部处理和控制结构。
部件的实现形式
软件体系结构层次模型的每个层次中都有关于部件的概念,他们是在基本的部件形式上经过复合和概念提升而产生的
部件的表达形式
不同软件设计环境下服务于不同目的,部件具有不同的类型或名称
部件的一般表达形式:
部件的类别
- 按照层次划分:基础部件、中层部件、高层部件
- 按照应用范围分:专用部件、通用部件
- 按照功能分:数据服务部件、功能服务部件、逻辑处理部件、界面部件 etc.
部件的特性
- 部件的接口特性:
- 完备性:使用者可以用它来完成部件应该能够完成的一切工作
- 最小化:部件的接口或界面中任一操作,都不能由其他操作组合而实现
- 正交性
- 方便性
- 效率
- 部件的运行特性:中断处理、并行调度、多用户服务
- 部件的概念等级或层次
连接
- 连接是部件间建立和维持行为关联和信息传递的途径。
- 连接是系统复杂性的来源
- 简单连接和复杂连接
- 机制和协议
- 机制:让连接得以发生和维持
- 协议:连接能够正确、无二义性、无冲突的进行
连接的种类
过程调用、控制、事件、消息发送、数据传送 etc.
连接的实现机制
- 计算机硬件提供了实现一切连接的基础
- 高层次的连接建立在低层次的连接之上,实现连接在不同的层次上有不同的概念或方法
- 无论多么复杂的连接关系,其实现都是基于以下基本连接机制:过程调用、中断、I/O、DMA、进程、线程、共享、同步、并/串行、事件、并发 etc.
连接的协议
- 协议是连接的规约,是实现有意义连接的保证。
- 连接的规约是建立在物理层之上的有意义信息形式的表达规定。
- 即使是简单的连接,也有协议在起作用。
连接的特性
- 连接的方向性
- 控制的渠道(主控、被控)和信息的传送(传送方、接收方)
- 双向性(复杂连接的双工通讯)
- 连接的角色
- 角色是对连接的双方所处地位不同的表达(调用者、被调用者;C/S;B/S;对等网的连接;中断源、中断处理者;)
- 角色和地位的不同在连接的实施中表现为所进行的操作不同、期望获得的信息不同
- 连接的激发:激发是指引起连接行为的方式
- 主动方:操作调用、事件触发
- 从动方:状态查询、中断
- 连接的响应特性
- 包括从动方对连接请求处理的实时性、方式(同步、异步)、并发处理能力
- 大大增加了实现的复杂性
- 连接的不匹配和解决方法
- 连接是使多个部件实现互联和协同工作的机制
- 产生连接冲突和不匹配的原因有多个方面:实现机制、协议、特性、硬件。
- 解决方法:A与B部件的修改(直接修改A或者B、转换器、代理、版本的一致)
连接器
- 任何部件都不是孤立存在的
- 只有部件间的联系才能发挥和实现部件设计的功能
连接器及其作用
- 连接器是实现部件与部件之间联系(调用、消息传递、数据转换传送、部件间实时并行的协调控制等)的特殊机制或特殊部件
- 简单的连接器从结构上退化为部件之间的直接连接
- 复杂的连接器需要专门的机构来完成
- 连接器承担了实现部件间信息和行为关联的作用,是系统复杂性的来源,对系统的各种性能有着重要的影响
- 连接器也是部件,是特殊的部件。
连接器的层次性
- 连接器的最基本形式是由计算机硬件提供的。描述层次太低,使用这些基础原始的连接形式直接描述系统上层复杂的联系是不恰当的
- 软件体系结构层次模型的每个层次中都有关于连接的概念,他们都是在基本的连接形式上经过复合和概念提升而产生的,并且成为了复杂系统不同层次连接设计的出发点。
连接器的表达形式
连接器的特性
- 连接的关系 1:1、1:n、n:1、m:n
- 连接的角色和方向
- 连接的交互方式(信号、语言式)
- 连接的可扩展性
- 连接的互操作性
- 连接请求响应特性
- 连接请求的处理策略
- 连接的代价、处理速度或能力