《系统集成项目管理硕士课程(2).ppt》由会员分享,可在线阅读,更多相关《系统集成项目管理硕士课程(2).ppt(120页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1软件工程方法与技术软件工程方法与技术工程硕士课程工程硕士课程(2)北京理工大学计算机学院徐进1.Mary Shaw,David GarlanSoftware Architecture 清华大学出版社清华大学出版社 19989 2.张友生张友生 编著软件体系结构清华大学出版编著软件体系结构清华大学出版 200753.刘真刘真 编著软件体系结构北京:中国电力出版社,编著软件体系结构北京:中国电力出版社,2004.9 4.万建成万建成,卢雷卢雷 编著软件体系结构的原理、组成与应用编著软件体系结构的原理、组成与应用科学出版社科学出版社 20028 5.谭征谭征,何坚编著软件体系结构西安:西安交通大学
2、出何坚编著软件体系结构西安:西安交通大学出版社版社 2002.2 主要参考书主要参考书第四章第四章 系统架构设计系统架构设计34.1 软件体系结构基本概念4.2 软件体系结构风格4.3 软件体系结构应用框架4.4 软件设计模式简述44.1 软件体系结构基本概念 1定义软件体系结构,也称软件架构,是软件工程的重要研究领域。从90年代开始,很多专家学者对软件体系结构引起广泛的关注,到目前为止,软件体系结构并没有统一的定义,综合软件体系结构的定义,只有比较权威的定义性论述。权威的定义性论述软件体系结构是设计过程的一个层次,它处理那些超越算法和数据结构的设计,研究整体结构设计和描述方法。体系结构包括:
3、总体组织结构、全局控制结构、通信和同步以及数据存取的协议、设计元素的功能、物理分布与合成、设计方案的选择、评估和实现等。5理解要点:软件体系结构是软件设计过程的一个层面,是相对独立的、有价值的软件设计方法的总结,可作为软件开发指导性的策略和途径强调设计过程,而非分析的过程。分析的目标是理解和表达,而设计的目标是实现非用户的观点,即非功能的观点。对于用户,结构是软件系统功能的组合,而对于设计者,结构是为特定目标而设立的、软件成分以及成分之间的关系。软件体系结构的研究,包括:怎样选择、怎样评估,以及怎样实现一个软件结构的问题62.软件的基本结构软件技术的发展与硬件技术密不可分。软件结构的基础受硬件
4、结构的制约,目前,在计算机基本硬件结构的基础之上,软件体系结构的基本元素和结构包括如下几种:数据类型结构,包括基本数据类型结构、抽象数据类型结构控制流连接结构,也称调用结构包括:条件连接结构、循环连接结构、控制转移结构;其调用连接方式,包括链询式、分析式、代理式中断触发连接结构,包括内部进程连接结构、独立进程同步连接结构、独立进程异步连接结构层次结构,包括单向依赖层次结构、开放式层次结构73.软件体系结构设计的基本策略和原则 在大量的软件开发的设计实践中,始终存在对设计原则和策略的探讨和总结,很多被普遍性采用的原则和策略,一直被广泛使用,并不断验证和改进,它们独立于具体的软件开发方法。这些原则
5、和策略包括:抽象 分而治之,层次化分解 封装和信息隐蔽 模块化高内聚和低耦合关注点分离策略和实现分离接口和实现分离8抽象 抽象,是人们认识复杂事物的基本方法。它的实质是集中表现事物的主要特征和属性,隐蔽和忽略细节部分。运用抽象,能概括普遍的、具有相同特征和属性的事物,简化表达和理解,便于利用。软件设计中运用的抽象包括:数据抽象:描述特定数据对象的属性集合过程抽象:特定操作过程命名的操作序列控制抽象:隐含内部细节的控制逻辑9分而治之,层次式分解将大问题分解,从小问题入手,逐一解决整个大问题,这是人们处理问题的通常的方式。软件设计中运用的分解包括:横向分解:按照从基础问题到上层问题的分解方式,将大
6、问题按照层次分解成相互依赖的多层,每层完成的局部解,提供对上层的支持纵向分解:在横向分解的基础上,对每层的求解,再分解成相互独立的多项求解10封装和信息隐蔽封装是为了信息隐蔽,隐蔽是为了减小出错带来损失,而出错是软件系统不可避免的事实。无论是多么精心设计,严格实施,以及反复测试,软件系统的错误与生俱来不可回避。局部化设计将处理信息限制在局部处理过程中,避免与外部其它处理共享,减少出错的几率,并且,出错后的影响面也会较小。封装性设计将处理过程尽量隐蔽,使外界得不到,只留出简单而统一的访问接口。这样,使软件处理的各个部分相互独立,减小系统扩充或修改时的出错的机率。11模块化模块是可被独立命名、具有
7、独立作用的软件成分。软件设计的模块化,是以提高系统的可构造性为目标的。为了软件系统的可扩充性、可修改性,设计可灵活的拆解,或者可灵活组装的软件构造,则成为软件设计者的愿望和责任。模块设计的原则包括:可分解性可组装性可理解性连续性保护性12高内聚和低耦合内聚性内聚性是指软件成份的内部特性。成份中各处理元素的关系越紧密越好。耦合性耦合性是指软件成份之间的关系特性。软件成份之间的关系越松散越好。13关注点分离关注点:关注点是软件系统中特别需要考虑的多变部分。例如,软件成分的执行会受到运行环境、设备条件,以及通信设施等的制约和限制,为了适应不同的运行环境和条件,需要进行必要的参数调整和驱动配置。为此进
8、行的这部分设计和开发,即是所谓的关注点。关注点分离设计:软件系统中涉及关注点的成分应该与非关注点的成分分为相互独立的部分,这样的设计会使未来的系统容易配置,灵活适应多种不同的情况。14策略和实现分离策略策略是指软件中用于处理选择控制的决策成分。通过信息语义解释、参数条件等,进行分析判断,以决定怎样的具体数据加工和功能实现。实现实现是指软件系统中,有规范步骤及完整执行算法的成分。策略和实现分离的设计通常,决策部分是异变的成分,而实现部分相对稳定,并可多次复用。将策略成分和实现成分分别设计成独立的部分,使系统维护的范围减小,以提高系统的维护性和复用性。15接口和实现分离接口接口是软件成分对外统一形
9、式的、可直接访问的操作集合,其操作提供了该软件成分的功能及使用方式。一个软件成分可以不只一个接口,每个接口提供不同的一组相关的操作。实现实现是软件成分外部不可见的操作执行部分接口和实现分离的设计为了达到软件成分的高复用,对于不同的访问形式的适应问题,可以采用分设不同的访问接口来实现。因此,采用接口和实现分离的设计,会极大地提高系统的可移植性和复用性,而这些正是软件性能评价的重要指标。164.风格、框架、模式在软件体系结构的研究中,有三个重要的术语需要明确:软件体系结构风格(Architecture Styles),风格是描述特定系统组织方式的惯用范例(idiomatic paradigm),强
10、调组织方式和习惯用法;组织方式是用静态形式表述的系统结构,而惯用范式,则可反映众多系统共有的结构和语义。应用框架(Application Framework),框架是待实例化的、可复用的大粒度部件结构。框架面向不同规模的应用问题,是通用的结构。强调针对实际的应用问题和通用结构。软件设计模式(Design Pattern),设计模式是软件问题高效和成熟的设计模板(pattern),模板包含了固有的问题的处理逻辑,强调处理逻辑采用方式的直接复用。174.2 软件体系结构风格体系结构风格是对软件系统组织结构的惯用形式总结。认识特定软件结的原理及适合的计算模式,为软件体系结构设计提供必要的选择空间,对
11、于软件设计来说是重要的技术途径。目前经典的体系结构风格包括:管道过滤器风格主程序与子过程风格面向对象风格黑板知识库风格虚拟机(解释器)风格事件驱动隐式调用风格过程控制回路风格 部件链接器C2风格相关的信息系统开发,仅介绍其中几种经典体系结构风格181 管道过滤器管道过滤器 (Pipes and Filters)管道过滤器结构特征过滤器A过滤器B过滤器C过滤器D过滤器E增量计算的 功能模块输入/输出 数据流管道1管道2管道3管道4管道5管道6管道8管道7管道过滤器风格的特征以数据流向的过程为核心,因此也被称为:数据流风格过滤器自身功能独立而完整,不需要知道其他过滤器的存在与否,相互之间无状态交互
12、过滤器对输入的数据流有限制,并必须保证输出流的正确性系统内,各部分的执行与整体系统的最终输出不相关适用于无交互的批量加工过程处理系统19管道过滤器软件成分管道过滤器的连接器被动过滤器:通过事件或过程调用激发动作,接受前续成分推入的内容主动过滤器:作为独立的过程或线程任务,主动取前续成分的内容。数据源:作为系统的输入过滤器,提供探测数据、采集数据的功能,以 及主动推出数据,激发或者等待后继成分启动。数据池:作为收集结果的过滤器,分为主动取数据和被动接受推入数据 两种方式。管道是两个过滤器的连接器,是先进先出的数据缓冲区。如果两个主动式过滤器相连,管道需要有同步控制能力。如果过滤器的行为受到相邻过
13、滤器的控制,管道就是被动过滤器的过程调用实现。20管道过滤器形式的示例(1)数字通信系统结构简略描述:信息源加密器编码器调制器 发送设备解调器解码器解密器 接收设备受信者噪声源信息源:把各种可能的数据转换成原始电信号。发送设备:对原始电信号完成信号加密、差错控制编码和调制解调。信道:信号传输的通道也相当于过滤器,因为它对传输信息进行适 当的处理。接收设备:与发送设备反向。同步控制部件:图中没有标出。因为它在其中的位置并不固定,它负责收发 双方的一致性控制。信道21 编辑存储编辑存储光谱采样集光谱采样集 图形处理图形处理(光谱筛选)(光谱筛选)存储调整存储调整建模样本集建模样本集 建模建模 处理
14、处理 模型模型 管理管理建摸公式建摸公式 管理管理给定性质给定性质模型模型建模样本集建模样本集光谱采样集光谱采样集建摸公式建摸公式建模公式建模公式模型模型管理要求管理要求图符说明:图符说明:控制流:控制流:数据流:数据流:I/O:处理:处理:化学光谱分析系统化学光谱分析系统管道过滤器形式的示例(2)22管道过滤器形式的优势对整个系统的理解简单化。可理解系统的各功能为抽象“黑盒子”。支持可维护性,容易替换。只要输入/输出管道达成一致的任何两个过滤器(可能一个是另一个的扩充性或修改),则可以任意替换。支持复用。一个过滤器可以被多次挂接,只要它们对数据的需求场合是一致的。支持并发设计。可以将存在并发
15、可能的过滤器,在调度算法的基础上,组织为多任务并发系统。系统的结构清晰,容易进行某些性能的分析,例如:数据流量、死锁问题,计算正确性等等。23管道过滤器形式的不足由于过滤器的独立特性,每个过滤器完成从输入到输出的转换需要成批量而完整,这样,为了交互必须表示的过滤内容与输出的流方式差异很大,导致实现交互困难。由于支持并发设计,两个相互独立的过滤器,如果存在同步问题,则需要花较大的精力去协调。每个过滤器的输出只强制公共的命名,要保持数据的一致必须对传输的数据解析,这样造成系统效率资源的损耗,以及程序复杂性增加。直接调用被动过滤器,使过滤器的重新组织产生困难。需要处理数据在管道中的阻塞状态。242
16、主程序与子过程主程序与子过程(Main Program/Subroutine)主程序子过程1子过程2子过程n主程序与子过程的结构特征:主程序将基于功能分解的子过程,通过调用的形式连接起来;子过程可作为主程序,继续以同样的方式连接子过程。子过程k1子过程k2调用返回子过程f25主程序与子调用结构的成分主程序与子调用结构的连接器主程序:基本的程序主体子过程:各种层次上的函数,可调用成分模块包:由主程序子过程组成的大粒度结构成分函数库:通用子过程集合过程调用机制26主程序与子调用结构的优势由于直接对应过程性程序语言机制,因此,具有代码率高的优势主程序与子调用结构的缺陷基于功能的过程嵌套式分解使系统的
17、维护困难。因为基于功能的分解,只能覆盖特定的问题,不具普遍性。所以,子过程实现的功能成分很难复用。273 数据抽象和面向对象数据抽象和面向对象(Data Abstraction and Object-Oriented)对象实体对象实体对象实体对象实体对象实体对象实体对象实体对象实体消息消息消息消息消息消息消息消息消息消息消息对象实体是具有自身属性和行为能力的主动的独立个体。任何事务处理都是对象采用“消息”相互作用的结果。发送消息给对象是“请求”,接受请求的对象是“响应”请求,完成自身的行为或动作,也可以向其他对象发出请求。面向对象结构的特征28化学光谱分析系统化学光谱分析系统给定给定性质性质光
18、谱光谱文件文件光谱光谱采样采样集集建摸建摸公式公式建模建模样本集样本集模型模型 设定消息设定消息采样消息采样消息请求消息请求消息请求消息请求消息采集消息采集消息存储消息存储消息返回消息返回消息输出消息输出消息调整消息调整消息建模消息建模消息管理消息管理消息面向对象形式的示例29面向对象结构的成分面向对象结构的连接器类:对象实体的抽象,可复用的类型模板。继承类:抽象类型的复用,提供类的可扩充、可变化方式对象:某类的实体,具有属性和各种行为能力的独立执行体消息:与对象的联系仅通过消息。发送请求给对象,向对象发出执行它动作的信息。接受请求的对象,根据自身的属性状态,完成动作,也可以向其它对象发出请求
19、,并且可以同时发出多个请求,除非它继续的工作与发出的请求有同步关系。多态机制:相关的对象行为,可以通过相同的消息形式。这正是行为的多种形态概念。所谓相关,是指同范畴对象(有继承关系类的实体对象是同范畴的)。同样的消息,连接不同的执行成分,这就是多态机制。30面向对象结构的优势接近人们的认知习惯,即:事物主体和事物行为是不可分的整体,处理事务的关注点只是事物可操作的外部行为。实现真正意义的信息封装,把对象的属性和行为封装在一起,对外可见的只有操作。稳定的结构,系统建造的基础依赖于独立的对象实体,而不是处理过程。这使改变或增加系统的处理过程与系统的整体架构关联减弱,因为,大部分的修改是对象个体上的
20、行为扩充,或是增加新的对象成分。本身的并发特性,支持普遍应用的分布式系统。实体对象比起过程在语义上容易理解一致,因此更容易复用;类和继承使软件成份又达到更高层的复用。31面向对象结构的缺陷对象的标识是发送消息必须知道的,如果标识被改变,消息就不知去向。在系统中对象本来是独立的,但他们必须相互知道、懂得和理解,否则将无法协同完成工作。这一点又使得他们似乎很密切相关,互为依赖。对象接受多个来自不同请求者的同一个消息,所得到的结果有时不可预测,因为其自身的状态属性可能被改变,这种情况系统必须考虑,并付出代价。324 事件驱动隐式调用事件驱动隐式调用(Event-Based,Implicit Invo
21、cation)外部实体外部实体1外部实体外部实体n事件过滤事件过滤1事件过滤事件过滤n中断服务中断服务n中断服务中断服务1系统系统消息消息调度调度应用应用A 消息消息 调度调度应用线程应用线程1应用线程应用线程n应用应用B 消息消息 调度调度系统传送系统传送系统传送系统传送消息发送消息发送消息发送消息发送事件事件事件事件1)1)外部事件以中断方式被接受;外部事件以中断方式被接受;2)2)接受后的事件,通过统一的形式接受处理;接受后的事件,通过统一的形式接受处理;3)3)在系统的统一调度下在系统的统一调度下,事件被转换为消息发送到对应的应用队列中;事件被转换为消息发送到对应的应用队列中;4)4)
22、每个应用队列通过消息循环机制,连接应用线程操作每个应用队列通过消息循环机制,连接应用线程操作应用线程应用线程1应用线程应用线程n基本过程基本过程消息消息等待等待 B消息消息等待等待 A33指外部事件,包括硬件设备和软件的应用发出的请求,指外部事件,包括硬件设备和软件的应用发出的请求,通过中断方式形成为消息通过中断方式形成为消息事件驱动事件驱动隐式调用隐式调用指消息不是直接地被各响应的处理操作接收,而是通过指消息不是直接地被各响应的处理操作接收,而是通过了隐藏在中间的一个层次(透明访问概念的体现)。了隐藏在中间的一个层次(透明访问概念的体现)。事件驱动和隐式调用结构概念事件驱动和隐式调用结构概念
23、34隐式调用的方式隐式调用的方式两种发送方式两种发送方式点发式:经过中间转发,一点到一点响应点发式:经过中间转发,一点到一点响应广播式:经过中间转发,一点到多点响应,也叫增生广播式:经过中间转发,一点到多点响应,也叫增生异步方式异步方式发送成分与接收成分之间采用异步方式,各自独立,不受发送成分与接收成分之间采用异步方式,各自独立,不受约束。其限定和约束由中间隐式层处理。约束。其限定和约束由中间隐式层处理。消息过滤消息过滤 变换:转变消息形式成为某种统一的类型和取值范围变换:转变消息形式成为某种统一的类型和取值范围 抑制:截获或阻止某种消息抑制:截获或阻止某种消息 转发:转发经过某种处理的消息到
24、需要响应的成分转发:转发经过某种处理的消息到需要响应的成分35转换接口对象事件驱动和隐式调用结构的示例 用户按下鼠标或键盘的一个键,操作系统的AWT(抽象窗口工具)将不同平台的信息转换成统一的事件对象。然后,将对象事件及状态,作为参数,向接口对象发出请求。接口对象中有已经注册的监听对象,通过适配对象向监听对象发出该事件。这样,一个输入操作事件,就被监听对象接收并响应处理它。鼠标对象 注册的 监听对象菜单条对象文本框对象事件状态对象适配对象复选框对象适配对象键盘对象36事件驱动和隐式调用结构的优势在消息与响应中间建立隐式层,完成消息形式的统一处理及统一调度,对接受消息的成分进行必要的管理和控制。
25、使请求成分与响应成分之间形成松散耦合关系。可以动态调整事件的请求与响应关系,为灵活设计创造了条件支持软件复用。由于成分之间的没有直接的联系,任何已有的软件成分只要处理逻辑适用,都可以无所顾忌地使用,将一切限定留给中间层处理。使系统更易维护。替换某一软件成份,除了中间转接的适应,对其他成分影响极小。对于异步并发系统是一种极好的控制方式。37事件驱动和隐式调用结构的不足请求成份和接收成份完全自主而独立,不易管理和控制,需要消耗较大系统的精力去控制,包括:必要识别、转换和统一。相比直接方式的连接,增加了中间层必要的消耗,包括时间和资源,提升系统运行效率成为系统的关键所在。385 黑板知识库黑板知识库
26、(仓储仓储)(Repository)黑板(共享状态 和策略数据)知识源1知识源8知识源7知识源6知识源3知识源4知识源2知识源5以黑板作为协同操作的核心,状态是核心控制的依据每个知识源作为问题求解的独立单位知识源需要协同完成一个事务的多个计算求解步骤协同的策略和调度算法,作为特殊的知识源由特殊的知识源改变操作的核心状态黑板知识库结构要点39黑板知识库结构的成分知识源:软件中独立的处理成分。执行成分的结果和状态,以及决策成分的指令都作为知识源提供给黑板,并主动从黑板获取继续执行的操作数据和指令黑板:系统存储和数据管理的机制。存储系统解决问题所用的相关基础知识,以及系统运行中各个知识源产生的状态、
27、计算结果和决策方案等40知识库黑板知识库结构的示例专家系统(Expert System)基本模型模型库事实库规则库 知识维护界面 系统应用界面应用信息数据库信息管理推理机用户系统维护者知识获取决策解释知识库管理41黑板知识库结构的优势每个知识源的动作依据是黑板中的信息,包括需要的交互及协同 系统中的执行者和决策者享有同等的地位 使系统中多对多的关系,以及执行者和决策者的复杂关系变得简单而清晰对于协同求解等专家系统是极好的控制方式黑板知识库结构的不足所有系统成分对共享区过分依赖,也是系统风险因素的最大隐患。42虚拟机6 虚拟虚拟机机(解释器解释器)(Interpreter)程序的交互输入 被解释
28、的 程序执行伪码解释引擎输出输入选择指示执行程序以能被被解释的一种伪码形式表示解释引擎根据固定的语法结构,按照伪码的语义逐句解释伪码,同时,根据已经处理解释的状态,以及需要的输入的数据来完成输出。解释器过程解释状态43与运行程序交互的数据集合被解释程序的伪代码集合执行解释过程的状态集合转换关系的操作集合虚拟机(解释器)结构的成分虚拟机(解释器)成分的连接器根据文法约定以及通用的搜索算法,实现固定形式的解释引擎连接。44引擎执行过程过程建模工具工作流模型工作流引擎工作流引擎工作流引擎过程状态工作流运行数据企业应用系统应用系统数据库任务管理操作界面工作流控制数据应用系统运行核心角色管理用户操作输入
29、工作流引擎结构及工作示意虚拟机(解释器)结构的示例45虚拟机(解释器)结构的优势虚拟机(解释器)结构的不足通过扩充文法,可适应系统的改变良好的环境无关性解决方案如果复杂规则文法,使系统庞大而无法管理,不宜采取正则表达式解释结构,而应该采取语法分析程序。467 过程控制回路过程控制回路(Process-Control Paradigms)采集特定目标的信息,以及返回的前续监测系统状态,传送给计算部件,在特定控制目标设定下,完成预定计算,通过输出装置实现对目标的控制,运行的系统状态通过检测再回馈送给采集机制。过程控制回路是特定的控制关系的描述采集1采集n计算部件设定目标定时器执行装置1执行装置n检
30、测n检测147闭环系统开环系统 熔炉热气 回程气热气炉:火源不变,通过定时器在固定的间隔时间打开火源例:例:热气炉:通过测量温度,不断调节火源大小热感控制 熔炉热气 回程气过程控制回路结构特征更适用于闭环系统负反馈实用价值高于正反馈两种常用的自适应控制回路定时开关48负反馈回路正反馈回路控制计算输出检测反馈输入值设定值差值+控制计算输出检测反馈输入值设定值和值差值反馈:目标与检测值的差,作为控制依据,得到稳定的输出和值反馈:目标与检测值求和,作为控制依据,得到变化的输出49两种自适应回路参数自适应回路:性能自适应回路:参数修正参数辨识机制控制计算前馈控制机制反馈控制机制-/+观察输入和输出,降
31、低参数的不确定性范围。前馈控制机制控制计算反馈控制机制性能估算模型参考 调整通过性能分析,调整系统输入。经常采用模型参考方式-/+参考输入50过程控制回路结构成分和连接过程控制回路结构发展趋势组态可编程控制器通用机和通用机设计环境嵌入式设计技术和方法结构成分:控制计算前馈机制(包括:采集、目标设定和调整机制)反馈机制(包括:检测、回路值计算)连件:采用固定形式的结构成分和连接形式518 部件连接器部件连接器(Components and Connectors)部件和连接器是软件结构成分的两大部分。部件是软件的组成成分,在系统构架中起结构块的作用。连接件是建立部件和部件之间连接的成分,是专门承接
32、连接作用 的特殊部件。部件可以组合,连接器可以相互连接。部件部件部件部件部件部件部件部件复合部件部件和连接器也称为 C2(Components and Connectors)风格。它总结了所有体系结构的组成成分,归纳并深入探讨其规律、特性,引导了软件体系结构研究的新途径。52C2风格的构件分类构件分类纯计算构件简单输入输出处理,不保留处理状态的关联成分,如函数、过滤器、转换器等。数据存储构件具有永久存储性的结构化数据成分。如数据库、文件系统、符号表、超文本等。管理构件系统状态以及相关规定、限制的操作成分。如抽象数据类型、系统服务器等。控制构件系统中事件发生时间、序列的控制和管理的成分。如调度程
33、序、同步处理等。连接构件充当信息转换角色的成分,如通信连接和用户界面等。53连接件成分过程调用成份之间实现单线程控制的连接机制,如普通过程调用等。数据流通过数据流进行交互的独立处理流程连接机制。如同不交互控制、管道机制等。隐含触发并发(非同步交互)事件实现成分之间的连接机制。如时间调度、自动回收处理等。消息传递独立成分之间离散和非线性的交互连接机制。如协议等。数据共享协议 成份之间通过统一数据空间进行协调操作的机制。如黑板、共享数据区等。C2风格的连接件分类54部件的类别部件的表达形式部件的特性接口特性运行特性远程服务特性关联特性动态特性等级或层次特性连接的种类连接的实现连接协议连接的特性连接
34、方向性连接的角色连接的激发连接的响应连接的匹配性部件:连接件:C2风格的描述C2风格部件分类:按过程层次分 基础部件(硬件)、中层部件(技术支持)、高层部件(领域需求)。按应用分 通用部件、专用部件。按功能分 数据服务部件、功能服务部件、逻辑处理部件、界面部件、连接部件、体系结构部件等。按运行特性分 调度和非调度部件、中断和非中断部件、多客户服务部件。56C2风格部件的表达形式:部件的表示:具有操作接口定义的抽象数据类型。部件接口表示:依据访问目的的操作方法分类描述标准的接口描述语言:IDL(Interface Description Language),适用于不同平台的、从高层描述部件的、系
35、统体系结构设计工具57C2风格部件的特性风格部件的特性接口特性:完备性-使用者能通过接口完成部件的所有功能最小化-任一操作都是不可再拆分的最小操作正交性-操作之间的交叉重复部分应该最小运行特性:能根据偶然或定时事件触发能处理并行运行多个功能部件远程服务特性:为适应网络计算的环境需,要有运行在请求端的远程服务的代理机制,部件既可以是服务器部件,也可以是客户部件关联特性:需要知道与之交往的部件的网络位置动态特性:需要支持运行的生存期,要能动态地产生和撤销等级或层次特性:需要分等级层次的支持。58C2风格连接连接的分类:从连接目的分:操作/过程调用、控制/事件/消息发送、数据传输从连接机能分:有返回
36、连接和无返回连接从连接响应分:同步连接和异步连接。连接的实现:硬件是基本连接的基础,包括:串行输入/输出并行输入输出DMA(直接存储访问)循环扫描代码块连接进程线程共享同步并行过程调用中断存储栈并发事件消息异常处理59C2风格连接件的协议协议是有意义的信息表达规定,是连接双方的规约。连接协议表述方式:过程调用的协议:参数的个数类型、参数的排列次序运行环境的协议:参数的计算、参数的压栈次序等消息协议:采用类方式,包括消息的属性和取值范围代理协议:采用类方式,提供代理类的各属性和值域等等60C2风格的连接特性连接的关系:允许有1:1、1:n、m:n的关系。连接方向性:传输和控制的渠道有方向性,传输
37、分为发送接收,控制分 为主动被动,分为单向和双向连接。连接的角色:连接双方所处的位置不同,担任的角色也不同,一个连 接对象可以有多重角色。连接的激发:引起连接的行为,分为主动行为激发和从动行为激发。连接的响应:被动方对连接请求的实时性、并发性;同步或异步处理。连接的动态性:允许请求或接收请求双方是不确定的。连接的匹配性:匹配的能力,包括:1)为保持双方格式一致,各自独立的信息转换机制 2)为保持双方格式一致使用统一形式的转换机制 3)双方相互认同并达成一致的“握手”机制 4)为实现统一连接形式的“代理”机制。614.3 软件体系结构应用框架软件体系结构应用框架,是在大量成功的应用系统中,被广泛
38、使用并得到验证的系统结构。它们大都有相应的软件产品或开发环境的工具所支持。各大软件开发商,都在相互竞争地围绕这些应用的软件体系结构,发展自己独特性能的构造工具和产品,并且,不断创造新的更具优势的结构概念,以研制更多的产品占领软件开发市场。1.客户/服务器 (Client/Server)(Client/Server)C/S结构在信息产业的系统结构中占有重要地位。是随着网络时代的发展,从集中式计算到分布式计算重大演变的产物。集中式到分布式计算方式使用大型机或小型机作为宿主机,与非智能终端相连,实现运行在宿主机上的应用程序。宿主机上的应用程序,既要负责用户的交互,也要负责数据库管理。个人微机的发展促
39、成了计算结构的改变。随着C/S结构的产生,诞生了分布式计算方式。63C/S基本概念C/S结构是分布式系统结构 分布式系统是由多个自主的处理器,平行地处理所各自独立的系统部分,共同完成一个业务过程。它们之间不共享存储,仅通过封装的接口传递信息。C/S结构是分布式系统结构。C/S结构既是指硬件也是指软件。并且,通常用来表明一种消息交互的形式64C/S结构的消息传递形式 消息传递是分布系统结构的基础,C/S结构采用消息传递的关系模式。即客户向服务者发送消息,客户是消息的发送者,也是请求服务者;而服务器是消息的接收者,它响应消息并执行服务,执行结果由客户取回。C/S消息传递形式分为同步和异步两种方式:
40、同步方式:客户发出请求后建立连接,等候接收服务方执行结果异步方式:客户发出请求后不占用连接,服务完成时,服务方通知客户取回结果。65C/S体系结构硬件示意图 Internet客户机1打印机调制解调器服务器其他公用设备客户机2客户机3客户机4客户机5客户机通常采用个人微机,在自身操作系统控制下,执行系统的应用程序。服务器,采用高级计算机系统,提供多用户方式下的数据库服务、文件服务、网络通信、打印服务、电传及传真等设备服务等。66 数据库 应用接口 数据库系统 Core 多用户操作系统网络连接ServerClientC/S体系结构软件示意图 用户界面 应用系统 数据库系统 运行环境 Form Re
41、port SQL 操作系统接口C/S结构是资源不对等结构。被称为“胖客户机结构”客户处理机担任应用程序的操作界面、业务逻辑及数据计算的所有处理运行。服务处理机担任多个客户应用的数据管理,包括:数据库服务器、网络服务、应用请求响应服务。67应用界面程序业务处理程序输入数据输出数据请求操作业务处理开始业务存取请求业务处理结束数据处理开始数据存取请求数据处理结束数据存取程序SQL请求开始SQL请求结束DBMS执行SQL数据管理业务处理数据登陆/更新/读取数据请求登陆/更新/读取操作结果数据业务处理结果数据ClientServer业务处理请求两层C/S结构的处理流程应用系统程序都在Client侧,程序
42、之间的访问采用的共享内存的本地过程调用LPC(Local Procedure Call)方式。68服务器处理应用程序两层C/S体系结构的传输压力由于全部应用程序都在Client端,有时,一个数据查询的循环过程需要很多的、大的数据集合,造成大量的数据传输网络压力。过程存储和远程调用:将一部分数据库存储过程在Serve端,以减少大量的网络数据传输压力。可采用两个空间的进程间 RPC(Remote Procedure Call)的调用策略,使两个地址空间的操作协同起来工作。SQL查询请求SQL过程存储RPC网络传输ClientServer69RPC代理 (Remote Procedure Call)
43、进程代理机器ARPC网络数据包A代理:完成数据包接收。分析数据格式,取出调用对象的过程名、参数等,搜索被调用过程地址,调用后,取回结果打包备用。B代理:完成请求信息的打包(对象、调用过程名、参数),发送给接收进程。进程A3进程A2进程A1LPC任务进程进程代理机器BLPC7070应用界面处理输入数据输出数据请求操作业务处理开始业务存取请求业务处理结束数据存取请求数据处理业务功能处理SQL请求开始SQL请求结束DBMS执行SQL数据管理业务处理请求和业务处理所需要的全部输入数据登陆/更新/读取的数据请求登陆/更新/读取的数据结果全部数据处理结束Client应用Server数据Server三层C/
44、S结构处理流程71C/S结构应用发展的必然趋势随着Internet的发展广域网应用日益繁多。C/S结构不能适应新的需求:以特定服务器局域网为中心的频繁的交互操作方式,不能适应多节点传输的广域网应用。客户应用系统的操作直接对应数据库信息格式,广域网络的应用系统不能要求必须针对具体的数据库信息格式。72服务器客户机1客户机2客户机3Internet远端客户机Intranet远端客户机Internet的应用结构形式远端的客户应用需要直接交互访问跨越Internet的数据信息。732.浏览器/服务器(Browser/Server)(Browser/Server)B/S体系结构利用成熟的WWW(Worl
45、d Wide Web)技术,扩展C/S结构为三层体系结构,不用顾忌前客户端是什么系统,服务端是什么数据库,使应用系统可以跨越广域地区操作交互。WWW技术基本原理WWW技术的浏览器作为信息系统的前端,仅负责操作请求及展示信息。采用超文本标记语言(Hypertext Markup Language,HTML),以互联网络上全体共识的格式,在浏览器中展现资源信息。WWW技术的服务器以多用户处理方式,响应浏览器的请求,执行搜索、整理和存储各种WWW资源,并负责将客户所需要的WWW资源,传送到浏览器WWW技术采用传递机制,仍然采用的是C/S结构的客户/服务的消息传递方式。返回本章目录74B/S基本结构逻
46、辑示意客户浏览器3 Internet Web服务器应用服务1数据服务3应用服务n数据服务2数据服务1 数据服务器数据库客户浏览器2客户浏览器1服务器Web应用服务器在原有C/S结构上增加Web应用服务器,它除了WWW服务器的功能外,需要应用系统的处理逻辑、数据库信息转换和应用浏览器界面处理。75客户浏览器1)用统一资源定位器URL来识别对应请求的Web服务器2)通过解释HTML页面来显示信息3)用超文本传输协议HTTP来传输请求4)取回处理结果,转换成HTML页面信息服务器各个业务的处理包装成对应的应用服务,并执行下列任务:1)验证客户端的业务请求2)执行相应的业务处理代码程序3)发送必要的请
47、求给数据服务器,并取回结果数据4)按事先给定的结果页面准备好执行结果数据服务器数据服务接受对应的数据请求,与数据库及文件系统交互,建立并管理数据,执行检索、修改、删除等数据操作76B/S体系结构存在的问题虽然支持动态页面,但表示形式和处理逻辑紧密相关,不可分离,不能复用。由于业务的显示信息是以全体共识的方式直接发往客户端的,所以可直接了解到系统的数据结构,安全性差。Web服务器权力过于集中,处理业务加上处理传输,使负载过大,系统的性能下降,回避风险的能力降低。服务器7777客户浏览器3 Internet 应用服务器应用服务1数据服务3应用服务n数据服务2数据服务1 数据服务器数据库客户浏览器2
48、 Web服务器客户浏览器1数据验证数据传输数据格式化B/S多层结构逻辑结构示意78Web服务器上的工作数据验证:确保数据在提交前的正确有效性。数据过滤:输入数据转换、过滤空格、大小写转换等。会话管理:保证操作在各页面间正确传递,转发必要的信息。生成显示信息:根据任务请求动作,生成显示信息。输出格式化:转换为浏览器显示格式。导航控制:保证应用程序的页面导航控制流。错误处理数据有效验证输出格式化数据过滤会话管理生成显示信息导航控制错误处理应用服务器Web服务器逻辑视图79应用服务器逻辑视图 应用系统 业务逻辑核心应用服务:构件管理器 对象请求代理 数据库服务 安全服务 事务管理器 数据库1 数据库
49、2 数据库3 OS3 OS2 OS1应用服务器的工作支持将后端的应用程序绑定到多种不同的客户机处理事务在分布式系统的各部分异步通信的机制提供核心应用服务提供描述服务以及定义服务接口安装应用部署机制应用邦定机制异步通信机制可定义的服务接口部署应用服务机制Web服务器80多层体系结构的优势系统成分保持逻辑上的相对独立,易于维护和扩充可灵活地选用软件平台和硬件环境,适应变化的需求开发可并行,并具有较好的复用性。隔离了与应用逻辑相关的数据结构,提高了系统安全性。多层体系结构的代价由于各层间的通讯,使效率明显降低,需要合理规划系统各层的配置,并提升服务器设备运行能力。813.对象中间件结构中间件基本概念
50、中间件的产生与C/S结构的发展密不可分。由于C/S结构存在着操作系统、文件格式、网络协议、服务等相互多元异构的问题。希望通过中间件,能够屏蔽差异,实现异构环境下,建立具有可扩展能力的分布式软件框架。中间件的定义:中间件是为解决异构环境的分布计算问题,是位于平台和应用之间、具有标准接口和协议的通用服务。82中间件类型早在中间件概念被提出之前,很多系统在解决分布式互联方面就已经采用过很好的中间件解决方案。例如:远程过程调用(Remote Procedure Call,RPC),同步方式的分布式互联技术消息发布/订阅(publish/subscribe),准异步的分布式互联消息队列(Message