系统集成项目管理硕士课程(2).ppt_第1页
系统集成项目管理硕士课程(2).ppt_第2页
系统集成项目管理硕士课程(2).ppt_第3页
系统集成项目管理硕士课程(2).ppt_第4页
系统集成项目管理硕士课程(2).ppt_第5页
已阅读5页,还剩115页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1,软件工程方法与技术工程硕士课程(2),北京理工大学 计算机学院 徐进,1.Mary Shaw,David GarlanSoftware Architecture 清华大学出版社 19989 2.张友生 编著软件体系结构清华大学出版 20075 3.刘真 编著软件体系结构北京:中国电力出版社,2004.9 4.万建成,卢雷 编著软件体系结构的原理、组成与应用科学出版社 20028 5.谭征,何坚编著软件体系结构西安:西安交通大学出版社 2002.2,主要参考书,第四章 系统架构设计,3,4.1 软件体系结构基本概念 4.2 软件体系结构风格 4.3 软件体系结构应用框架 4.4 软件设计模式

2、简述,4,4.1 软件体系结构基本概念 1定义 软件体系结构,也称软件架构,是软件工程的重要研究领域。从90年代开始,很多专家学者对软件体系结构引起广泛的关注,到目前为止,软件体系结构并没有统一的定义,综合软件体系结构的定义,只有比较权威的定义性论述。 权威的定义性论述 软件体系结构是设计过程的一个层次,它处理那些超越算法和数据结构的设计,研究整体结构设计和描述方法。体系结构包括:总体组织结构、全局控制结构、通信和同步以及数据存取的协议、设计元素的功能、物理分布与合成、设计方案的选择、评估和实现等。,5,理解要点: 软件体系结构是软件设计过程的一个层面,是相对独立的、有价值的软件设计方法的总结

3、,可作为软件开发指导性的策略和途径 强调设计过程,而非分析的过程。分析的目标是理解和表达,而设计的目标是实现 非用户的观点,即非功能的观点。对于用户,结构是软件系统功能的组合,而对于设计者,结构是为特定目标而设立的、软件成分以及成分之间的关系。 软件体系结构的研究,包括:怎样选择、怎样评估,以及怎样实现一个软件结构的问题,6,2. 软件的基本结构 软件技术的发展与硬件技术密不可分。软件结构的基础受硬件结构的制约,目前,在计算机基本硬件结构的基础之上,软件体系结构的基本元素和结构包括如下几种: 数据类型结构,包括基本数据类型结构、抽象数据类型结构 控制流连接结构,也称调用结构包括:条件连接结构、

4、循环连接结构、控制转移结构;其调用连接方式,包括链询式、分析式、代理式 中断触发连接结构,包括内部进程连接结构、独立进程同步连接结构、独立进程异步连接结构 层次结构,包括单向依赖层次结构、开放式层次结构,7,3.软件体系结构设计的基本策略和原则 在大量的软件开发的设计实践中,始终存在对设计原则和策略的探讨和总结,很多被普遍性采用的原则和策略,一直被广泛使用,并不断验证和改进,它们独立于具体的软件开发方法。这些原则和策略包括:,抽象 分而治之,层次化分解 封装和信息隐蔽 模块化,高内聚和低耦合 关注点分离 策略和实现分离 接口和实现分离,8,抽象 抽象,是人们认识复杂事物的基本方法。它的实质是集

5、中表现事物的主要特征和属性,隐蔽和忽略细节部分。运用抽象,能概括普遍的、具有相同特征和属性的事物,简化表达和理解,便于利用。 软件设计中运用的抽象包括: 数据抽象:描述特定数据对象的属性集合 过程抽象:特定操作过程命名的操作序列 控制抽象:隐含内部细节的控制逻辑,9,分而治之,层次式分解 将大问题分解,从小问题入手,逐一解决整个大问题,这是人们处理问题的通常的方式。软件设计中运用的分解包括: 横向分解:按照从基础问题到上层问题的分解方式,将大问题按照层次分解成相互依赖的多层,每层完成的局部解,提供对上层的支持 纵向分解:在横向分解的基础上,对每层的求解,再分解成相互独立的多项求解,10,封装和

6、信息隐蔽 封装是为了信息隐蔽,隐蔽是为了减小出错带来损失,而出错是软件系统不可避免的事实。无论是多么精心设计,严格实施,以及反复测试,软件系统的错误与生俱来不可回避。 局部化设计 将处理信息限制在局部处理过程中,避免与外部其它处理共享,减少出错的几率,并且,出错后的影响面也会较小。 封装性设计 将处理过程尽量隐蔽,使外界得不到,只留出简单而统一的访问接口。这样,使软件处理的各个部分相互独立,减小系统扩充或修改时的出错的机率。,11,模块化 模块是可被独立命名、具有独立作用的软件成分。软件设计的模块化,是以提高系统的可构造性为目标的。为了软件系统的可扩充性、可修改性,设计可灵活的拆解,或者可灵活

7、组装的软件构造,则成为软件设计者的愿望和责任。模块设计的原则包括: 可分解性 可组装性 可理解性 连续性 保护性,12,高内聚和低耦合 内聚性 内聚性是指软件成份的内部特性。成份中各处理元素的关系越紧密越好。 耦合性 耦合性是指软件成份之间的关系特性。软件成份之间的关系越松散越好。,13,关注点分离 关注点: 关注点是软件系统中特别需要考虑的多变部分。例如,软件成分的执行会受到运行环境、设备条件,以及通信设施等的制约和限制,为了适应不同的运行环境和条件,需要进行必要的参数调整和驱动配置。为此进行的这部分设计和开发,即是所谓的关注点。 关注点分离设计: 软件系统中涉及关注点的成分应该与非关注点的

8、成分分为相互独立的部分,这样的设计会使未来的系统容易配置,灵活适应多种不同的情况。,14,策略和实现分离 策略 策略是指软件中用于处理选择控制的决策成分。通过信息语义解释、参数条件等,进行分析判断,以决定怎样的具体数据加工和功能实现。 实现 实现是指软件系统中,有规范步骤及完整执行算法的成分。 策略和实现分离的设计 通常,决策部分是异变的成分,而实现部分相对稳定,并可多次复用。将策略成分和实现成分分别设计成独立的部分,使系统维护的范围减小,以提高系统的维护性和复用性。,15,接口和实现分离 接口 接口是软件成分对外统一形式的、可直接访问的操作集合,其操作提供了该软件成分的功能及使用方式。一个软

9、件成分可以不只一个接口,每个接口提供不同的一组相关的操作。 实现 实现是软件成分外部不可见的操作执行部分 接口和实现分离的设计 为了达到软件成分的高复用,对于不同的访问形式的适应问题,可以采用分设不同的访问接口来实现。因此,采用接口和实现分离的设计,会极大地提高系统的可移植性和复用性,而这些正是软件性能评价的重要指标。,16,4.风格、框架、模式 在软件体系结构的研究中,有三个重要的术语需要明确: 软件体系结构风格(Architecture Styles),风格是描述特定系统组织方式的惯用范例(idiomatic paradigm),强调组织方式和习惯用法;组织方式是用静态形式表述的系统结构,

10、而惯用范式,则可反映众多系统共有的结构和语义。 应用框架(Application Framework),框架是待实例化的、可复用的大粒度部件结构。框架面向不同规模的应用问题,是通用的结构。强调针对实际的应用问题和通用结构。 软件设计模式(Design Pattern),设计模式是软件问题高效和成熟的设计模板(pattern),模板包含了固有的问题的处理逻辑,强调处理逻辑采用方式的直接复用。,17,4.2 软件体系结构风格 体系结构风格是对软件系统组织结构的惯用形式总结。认识特定软件结的原理及适合的计算模式,为软件体系结构设计提供必要的选择空间,对于软件设计来说是重要的技术途径。 目前经典的体系

11、结构风格包括: 管道过滤器风格 主程序与子过程风格 面向对象风格 黑板知识库风格 虚拟机(解释器)风格 事件驱动隐式调用风格 过程控制回路风格 部件链接器C2风格 相关的信息系统开发,仅介绍其中几种经典体系结构风格,18,1 管道过滤器 (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,管道过滤器形式的不足,由于过滤器的独立特性,每个过滤器完成从输入到输出的转换需要成批量而完整,这样,为了交互必须表示的过滤内容与输出的流方式差异很大,导致实现交互困难。 由于支持并发设计,两个相互独立的过滤器,如果存在同步问题,则需要花较大的精力去协调。 每个过滤器的输出只强制公共的命名,要保持数据的一致必须对传输的数据解析,这样造成系统效率资源的损耗,以及程序复杂性增加。 直接调用被动过滤器,使过滤器的重新组织产生困难。 需要处理数据在管道中的阻塞状态。,24,2 主程序与子过程 (Main Program/S

16、ubroutine),主程序,子过程1,子过程2,子过程n,主程序与子过程的结构特征: 主程序将基于功能分解的子过程,通过调用的形式连接起来;子过程可作为主程序,继续以同样的方式连接子过程。,子过程k1,子过程k2,调用,返回,子过程f,25,主程序与子调用结构的成分,主程序与子调用结构的连接器,主程序:基本的程序主体 子过程:各种层次上的函数,可调用成分 模块包:由主程序子过程组成的大粒度结构成分 函数库:通用子过程集合,过程调用机制,26,主程序与子调用结构的优势,由于直接对应过程性程序语言机制,因此,具有代码率高的优势,主程序与子调用结构的缺陷,基于功能的过程嵌套式分解使系统的维护困难。

17、 因为基于功能的分解,只能覆盖特定的问题,不具普遍性。所以,子过程实现的功能成分很难复用。,27,3 数据抽象和面向对象(Data Abstraction and Object-Oriented),对象 实体,对象 实体,对象 实体,对象 实体,对象 实体,对象 实体,对象 实体,对象 实体,消息,消息,消息,消息,消息,消息,消息,消息,消息,消息,消息,对象实体是具有自身属性和行为能力的主动的独立个体。 任何事务处理都是对象采用“消息”相互作用的结果。 发送消息给对象是“请求”,接受请求的对象是“响应”请求,完成自身的行为或动作,也可以向其他对象发出请求。,面向对象结构的特征,28,化学光

18、谱分析系统,给定 性质,光谱文件,光谱采样集,建摸公式,建模 样本集,模型,设定消息,采样消息,请求消息,请求消息,采集消息,存储消息,返回消息,输出消息,调整消息,建模消息,管理消息,面向对象形式的示例,29,面向对象结构的成分,面向对象结构的连接器,类:对象实体的抽象,可复用的类型模板。 继承类:抽象类型的复用,提供类的可扩充、可变化方式 对象:某类的实体,具有属性和各种行为能力的独立执行体,消息: 与对象的联系仅通过消息。发送请求给对象,向对象发出执行它动作的信息。接受请求的对象,根据自身的属性状态,完成动作,也可以向其它对象发出请求,并且可以同时发出多个请求,除非它继续的工作与发出的请

19、求有同步关系。 多态机制: 相关的对象行为,可以通过相同的消息形式。这正是行为的多种形态概念。所谓相关,是指同范畴对象(有继承关系类的实体对象是同范畴的)。同样的消息,连接不同的执行成分,这就是多态机制。,30,面向对象结构的优势,接近人们的认知习惯,即:事物主体和事物行为是不可分的整体,处理事务的关注点只是事物可操作的外部行为。 实现真正意义的信息封装,把对象的属性和行为封装在一起,对外可见的只有操作。 稳定的结构,系统建造的基础依赖于独立的对象实体,而不是处理过程。这使改变或增加系统的处理过程与系统的整体架构关联减弱,因为,大部分的修改是对象个体上的行为扩充,或是增加新的对象成分。 本身的

20、并发特性,支持普遍应用的分布式系统。 实体对象比起过程在语义上容易理解一致,因此更容易复用;类和继承使软件成份又达到更高层的复用。,31,面向对象结构的缺陷,对象的标识是发送消息必须知道的,如果标识被改变,消息就不知去向。在系统中对象本来是独立的,但他们必须相互知道、懂得和理解,否则将无法协同完成工作。这一点又使得他们似乎很密切相关,互为依赖。 对象接受多个来自不同请求者的同一个消息,所得到的结果有时不可预测,因为其自身的状态属性可能被改变,这种情况系统必须考虑,并付出代价。,32,4 事件驱动隐式调用(Event-Based,Implicit Invocation),外部实体1,外部实体n,

21、事件过滤1,事件过滤n,中断服务n,中断服务1,系统消息调度,应用A 消息 调度,应用线程1,应用线程n,应用B 消息 调度,系统传送,系统传送,消息发送,消息发送,事件,事件,1)外部事件以中断方式被接受; 2)接受后的事件,通过统一的形式接受处理; 3)在系统的统一调度下,事件被转换为消息发送到对应的应用队列中; 4)每个应用队列通过消息循环机制,连接应用线程操作,应用线程1,应用线程n,基本过程,消息等待 B,消息等待 A,33,指外部事件,包括硬件设备和软件的应用发出的请求,通过中断方式形成为消息,事件驱动,隐式调用,指消息不是直接地被各响应的处理操作接收,而是通过了隐藏在中间的一个层

22、次(透明访问概念的体现)。,事件驱动和隐式调用结构概念,34,隐式调用的方式,两种发送方式 点发式:经过中间转发,一点到一点响应 广播式:经过中间转发,一点到多点响应,也叫增生 异步方式 发送成分与接收成分之间采用异步方式,各自独立,不受约束。其限定和约束由中间隐式层处理。 消息过滤 变换:转变消息形式成为某种统一的类型和取值范围 抑制:截获或阻止某种消息 转发:转发经过某种处理的消息到需要响应的成分,35,转换,接口对象,事件驱动和隐式调用结构的示例,用户按下鼠标或键盘的一个键,操作系统的AWT(抽象窗口工具)将不同平台的信息转换成统一的事件对象。然后,将对象事件及状态,作为参数,向接口对象

23、发出请求。接口对象中有已经注册的监听对象,通过适配对象向监听对象发出该事件。这样,一个输入操作事件,就被监听对象接收并响应处理它。,鼠标对象,注册的 监听对象,菜单条对象,文本框对象,事件 状态 对象,适配对象,复选框对象,适配对象,键盘对象,36,事件驱动和隐式调用结构的优势,在消息与响应中间建立隐式层,完成消息形式的统一处理及统一调度,对接受消息的成分进行必要的管理和控制。使请求成分与响应成分之间形成松散耦合关系。可以动态调整事件的请求与响应关系,为灵活设计创造了条件 支持软件复用。由于成分之间的没有直接的联系,任何已有的软件成分只要处理逻辑适用,都可以无所顾忌地使用,将一切限定留给中间层

24、处理。 使系统更易维护。替换某一软件成份,除了中间转接的适应,对其他成分影响极小。 对于异步并发系统是一种极好的控制方式。,37,事件驱动和隐式调用结构的不足,请求成份和接收成份完全自主而独立,不易管理和控制,需要消耗较大系统的精力去控制,包括:必要识别、转换和统一。 相比直接方式的连接,增加了中间层必要的消耗,包括时间和资源,提升系统运行效率成为系统的关键所在。,38,5 黑板知识库 (仓储) (Repository),黑板 (共享状态 和策略数据),知识源1,知识源8,知识源7,知识源6,知识源3,知识源4,知识源2,知识源5,以黑板作为协同操作的核心,状态是核心控制的依据 每个知识源作为

25、问题求解的独立单位 知识源需要协同完成一个事务的多个计算求解步骤 协同的策略和调度算法,作为特殊的知识源 由特殊的知识源改变操作的核心状态,黑板知识库结构要点,39,黑板知识库结构的成分,知识源: 软件中独立的处理成分。执行成分的结果和状态,以及决策成分的指令都作为知识源提供给黑板,并主动从黑板获取继续执行的操作数据和指令 黑板: 系统存储和数据管理的机制。存储系统解决问题所用的相关基础知识,以及系统运行中各个知识源产生的状态、计算结果和决策方案等,40,知识库,黑板知识库结构的示例,专家系统(Expert System)基本模型,模型库,事实库,规则库,知识维护界面,系统应用界面,应用信息

26、数据库,信息管理,推理机,用户,系统维护者,知识获取,决策解释,知识库管理,41,黑板知识库结构的优势,每个知识源的动作依据是黑板中的信息,包括需要的交互及协同 系统中的执行者和决策者享有同等的地位 使系统中多对多的关系,以及执行者和决策者的复杂关系变得简单而清晰 对于协同求解等专家系统是极好的控制方式,黑板知识库结构的不足,所有系统成分对共享区过分依赖,也是系统风险因素的最大隐患。,42,虚拟机,6 虚拟机(解释器)(Interpreter),程序的 交互输入,被解释的 程序,执行伪码,解释引擎,输出,输入,选择指示,执行程序以能被被解释的一种伪码形式表示 解释引擎根据固定的语法结构,按照伪

27、码的语义逐句解释伪码,同时,根据已经处理解释的状态,以及需要的输入的数据来完成输出。,解释器过程,解释状态,43,与运行程序交互的数据集合 被解释程序的伪代码集合 执行解释过程的状态集合 转换关系的操作集合,虚拟机(解释器)结构的成分,虚拟机(解释器)成分的连接器,根据文法约定以及通用的搜索算法,实现固定形式的解释引擎连接。,44,引擎执行过程,过程建模工具,工作流模型,工作流引擎,工作流引擎,工作流引擎,过程状态,工作流 运行数据,企业应用系统,应用系统 数据库,任务 管理,操作 界面,工作流 控制数据,应用系统 运行核心,角色 管理,用户操作输入,工作流引擎结构及工作示意,虚拟机(解释器)

28、结构的示例,45,虚拟机(解释器)结构的优势,虚拟机(解释器)结构的不足,通过扩充文法,可适应系统的改变 良好的环境无关性解决方案,如果复杂规则文法,使系统庞大而无法管理,不宜采取正则表达式解释结构,而应该采取语法分析程序。,46,7 过程控制回路(Process-Control Paradigms),采集特定目标的信息,以及返回的前续监测系统状态,传送给计算部件,在特定控制目标设定下,完成预定计算,通过输出装置实现对目标的控制,运行的系统状态通过检测再回馈送给采集机制。,过程控制回路是特定的控制关系的描述,采集1,采集n,计算部件,设定目标,定时器,执行装置1,执行装置n,检测n,检测1,4

29、7,闭环系统,开环系统,熔炉,热气,回程气,热气炉: 火源不变,通过定时器在固定的间隔时间打开火源,例:,例:,热气炉: 通过测量温度,不断调节火源大小,热感控制,熔炉,热气,回程气,过程控制回路结构特征,更适用于闭环系统 负反馈实用价值高于正反馈 两种常用的自适应控制回路,定时开关,48,负反馈回路,正反馈回路,控制计算,输出,检测,反馈输入值,设定值,差值,+,控制计算,输出,检测,反馈输入值,设定值,和值,差值反馈: 目标与检测值的差,作为控制依据,得到稳定的输出,和值反馈: 目标与检测值求和,作为控制依据,得到变化的输出,49,两种自适应回路,参数自适应回路:,性能自适应回路:,参数修

30、正,参数辨识机制,控制计算,前馈控制机制,反馈控制机制,-/+,观察输入和输出,降低参数的不确定性范围。,前馈控制机制,控制计算,反馈控制机制,性能估算,模型参考 调整,通过性能分析,调整系统输入。经常采用模型参考方式,-/+,参考输入,50,过程控制回路结构成分和连接,过程控制回路结构发展趋势,组态可编程控制器 通用机和通用机设计环境 嵌入式设计技术和方法,结构成分: 控制计算 前馈机制(包括:采集、目标设定和调整机制) 反馈机制(包括:检测、回路值计算) 连件: 采用固定形式的结构成分和连接形式,51,8 部件连接器(Components and Connectors),部件和连接器是软件

31、结构成分的两大部分。 部件是软件的组成成分,在系统构架中起结构块的作用。 连接件是建立部件和部件之间连接的成分,是专门承接连接作用 的特殊部件。 部件可以组合,连接器可以相互连接。,部件,部件,部件,部件,部件,部件,部件,部件,复合部件,部件和连接器也称为 C2 (Components and Connectors)风格。它总结了所有体系结构的组成成分,归纳并深入探讨其规律、特性,引导了软件体系结构研究的新途径。,52,C2风格的构件分类,53,C2风格的连接件分类,54,部件的类别 部件的表达形式 部件的特性,接口特性 运行特性 远程服务特性 关联特性 动态特性 等级或层次特性,连接的种类

32、 连接的实现 连接协议 连接的特性,连接方向性 连接的角色 连接的激发 连接的响应 连接的匹配性,部件:,连接件:,C2风格的描述,C2风格部件,分类: 按过程层次分 基础部件(硬件)、中层部件(技术支持)、高层部件(领域需求)。 按应用分 通用部件、专用部件。 按功能分 数据服务部件、功能服务部件、逻辑处理部件、界面部件、连接部件、体系结构部件等。 按运行特性分 调度和非调度部件、中断和非中断部件、多客户服务部件。,56,C2风格部件的表达形式:,部件的表示: 具有操作接口定义的抽象数据类型。 部件接口表示: 依据访问目的的操作方法分类描述 标准的接口描述语言: IDL(Interface

33、Description Language),适用于不同平台的、从高层描述部件的、系统体系结构设计工具,57,C2风格部件的特性 接口特性: 完备性-使用者能通过接口完成部件的所有功能 最小化-任一操作都是不可再拆分的最小操作 正交性-操作之间的交叉重复部分应该最小 运行特性: 能根据偶然或定时事件触发 能处理并行运行多个功能部件 远程服务特性: 为适应网络计算的环境需,要有运行在请求端的远程服务的代理机制,部件既可以是服务器部件,也可以是客户部件 关联特性:需要知道与之交往的部件的网络位置 动态特性:需要支持运行的生存期,要能动态地产生和撤销 等级或层次特性:需要分等级层次的支持。,58,C2

34、风格连接,连接的分类: 从连接目的分: 操作/过程调用、控制/事件/消息发送、数据传输 从连接机能分: 有返回连接和无返回连接 从连接响应分: 同步连接和异步连接。,连接的实现: 硬件是基本连接的基础,包括:,串行输入/输出 并行输入输出 DMA(直接存储访问) 循环扫描 代码块连接,进程 线程 共享 同步 并行,过程调用 中断 存储 栈,并发事件 消息 异常处理,59,C2风格连接件的协议,协议是有意义的信息表达规定,是连接双方的规约。连接协议表述方式: 过程调用的协议:参数的个数类型、参数的排列次序 运行环境的协议:参数的计算、参数的压栈次序等 消息协议:采用类方式,包括消息的属性和取值范

35、围 代理协议:采用类方式,提供代理类的各属性和值域 等等,60,C2风格的连接特性,连接的关系:允许有1:1、1:n、m:n的关系。 连接方向性:传输和控制的渠道有方向性,传输分为发送接收,控制分 为主动被动,分为单向和双向连接。 连接的角色:连接双方所处的位置不同,担任的角色也不同,一个连 接对象可以有多重角色。 连接的激发:引起连接的行为,分为主动行为激发和从动行为激发。 连接的响应:被动方对连接请求的实时性、并发性;同步或异步处理。 连接的动态性:允许请求或接收请求双方是不确定的。 连接的匹配性:匹配的能力,包括: 1)为保持双方格式一致,各自独立的信息转换机制 2)为保持双方格式一致使

36、用统一形式的转换机制 3)双方相互认同并达成一致的“握手”机制 4)为实现统一连接形式的“代理”机制。,61,4.3 软件体系结构应用框架 软件体系结构应用框架,是在大量成功的应用系统中,被广泛使用并得到验证的系统结构。它们大都有相应的软件产品或开发环境的工具所支持。各大软件开发商,都在相互竞争地围绕这些应用的软件体系结构,发展自己独特性能的构造工具和产品,并且,不断创造新的更具优势的结构概念,以研制更多的产品占领软件开发市场。,1. 客户/服务器 ( Client/Server) C/S结构在信息产业的系统结构中占有重要地位。是随着网络时代的发展,从集中式计算到分布式计算重大演变的产物。,集

37、中式到分布式计算方式 使用大型机或小型机作为宿主机,与非智能终端相连,实现运行在宿主机上的应用程序。宿主机上的应用程序,既要负责用户的交互,也要负责数据库管理。 个人微机的发展促成了计算结构的改变。随着C/S结构的产生,诞生了分布式计算方式。,63,C/S基本概念 C/S结构是分布式系统结构 分布式系统是由多个自主的处理器,平行地处理所各自独立的系统部分,共同完成一个业务过程。它们之间不共享存储,仅通过封装的接口传递信息。C/S结构是分布式系统结构。 C/S结构既是指硬件也是指软件。并且,通常用来表明一种消息交互的形式,64,C/S结构的消息传递形式 消息传递是分布系统结构的基础,C/S结构采

38、用消息传递的关系模式。即客户向服务者发送消息,客户是消息的发送者,也是请求服务者;而服务器是消息的接收者,它响应消息并执行服务,执行结果由客户取回。 C/S消息传递形式分为同步和异步两种方式: 同步方式:客户发出请求后建立连接,等候接收服务方执行结果 异步方式:客户发出请求后不占用连接,服务完成时,服务方通知客户取回结果。,65,C/S体系结构硬件示意图,Internet,客户机1,打印机,调制解调器,服务器,其他公用设备,客户机2,客户机3,客户机4,客户机5,客户机通常采用个人微机,在自身操作系统控制下,执行系统的应用程序。 服务器,采用高级计算机系统,提供多用户方式下的数据库服务、文件服

39、务、网络通信、打印服务、电传及传真等设备服务等。,66,数据库,应用接口,数据库系统 Core,多用户操作系统,网络连接,Server,Client,C/S体系结构软件示意图,用户界面,应用系统,数据库系统 运行环境,Form Report SQL,操作系统,接口,C/S结构是资源不对等结构。被称为“胖客户机结构” 客户处理机担任应用程序的操作界面、业务逻辑及数据计算的所有处理运行。 服务处理机担任多个客户应用的数据管理,包括:数据库服务器、网络服务、应用请求响应服务。,67,应用界面程序,业务处理程序,输入数据,输出数据,请求操作,业务处理开始,业务存取请求,业务处理结束,数据处理开始,数据

40、存取请求,数据处理结束,数据存取程序,SQL请求开始,SQL请求结束,DBMS执行SQL,数据管理,业务处理数据,登陆/更新/读取 数据请求,登陆/更新/读取 操作结果数据,业务处理结果数据,Client,Server,业务处理请求,两层C/S结构的处理流程 应用系统程序都在Client侧,程序之间的访问采用的共享内存的本地过程调用LPC(Local Procedure Call)方式。,68,服务器处理,应用程序,两层C/S体系结构的传输压力,由于全部应用程序都在Client端,有时,一个数据查询的循环过程需要很多的、大的数据集合,造成大量的数据传输网络压力。,过程存储和远程调用: 将一部分

41、数据库存储过程在Serve端,以减少大量的网络数据传输压力。可采用两个空间的进程间 RPC(Remote Procedure Call) 的调用策略,使两个地址空间的操作协同起来工作。,SQL查询请求,SQL过程存储,RPC,网络传输,Client,Server,69,RPC代理 (Remote Procedure Call),进程代理,机器A,RPC,网络数据包,A代理: 完成数据包接收。分析数据格式,取出调用对象的过程名、参数等,搜索被调用过程地址,调用后,取回结果打包备用。 B代理: 完成请求信息的打包(对象、调用过程名、参数),发送给接收进程。,进程A3,进程A2,进程A1,LPC,任

42、务进程,进程代理,机器B,LPC,70,70,应用界面处理,输入数据,输出数据,请求操作,业务处理开始,业务存取请求,业务处理结束,数据存取请求,数据处理,业务功能处理,SQL请求开始,SQL请求结束,DBMS执行SQL,数据管理,业务处理请求和业务处理所需要的全部输入数据,登陆/更新/读取的数据请求,登陆/更新/读取的数据结果,全部数据处理结束,Client,应用Server,数据Server,三层C/S结构处理流程,71,C/S结构应用发展的必然趋势,随着Internet的发展广域网应用日益繁多。C/S结构不能适应新的需求: 以特定服务器局域网为中心的频繁的交互操作方式,不能适应多节点传输

43、的广域网应用。 客户应用系统的操作直接对应数据库信息格式,广域网络的应用系统不能要求必须针对具体的数据库信息格式。,72,服务器,客户机1,客户机2,客户机3,Internet,远端客户机,Intranet,远端客户机,Internet的应用结构形式,远端的客户应用需要直接交互访问跨越Internet的数据信息。,73,2.浏览器/服务器( Browser/Server),B/S体系结构利用成熟的WWW(World Wide Web)技术,扩展C/S结构为三层体系结构,不用顾忌前客户端是什么系统,服务端是什么数据库,使应用系统可以跨越广域地区操作交互。,WWW技术基本原理 WWW技术的浏览器作

44、为信息系统的前端,仅负责操作请求及展示信息。采用超文本标记语言(Hypertext Markup Language ,HTML),以互联网络上全体共识的格式,在浏览器中展现资源信息。 WWW技术的服务器以多用户处理方式,响应浏览器的请求,执行搜索、整理和存储各种WWW资源,并负责将客户所需要的WWW资源,传送到浏览器 WWW技术采用传递机制,仍然采用的是C/S结构的客户/服务的消息传递方式。,返回本章目录,74,B/S基本结构逻辑示意,客户浏览器3,Internet,Web服务器,应用服务1,数据服务3,应用服务n,数据服务2,数据服务1,数据服务器,数据库,客户浏览器2,客户浏览器1,服务器

45、,Web应用服务器 在原有C/S结构上增加Web应用服务器,它除了WWW服务器的功能外,需要应用系统的处理逻辑、数据库信息转换和应用浏览器界面处理。,75,客户浏览器 1)用统一资源定位器URL来识别对应请求的Web服务器 2)通过解释HTML页面来显示信息 3)用超文本传输协议HTTP来传输请求 4)取回处理结果,转换成HTML页面信息 服务器 各个业务的处理包装成对应的应用服务,并执行下列任务: 1)验证客户端的业务请求 2)执行相应的业务处理代码程序 3)发送必要的请求给数据服务器,并取回结果数据 4)按事先给定的结果页面准备好执行结果 数据服务器 数据服务接受对应的数据请求,与数据库及

46、文件系统交互,建立并管理数据,执行检索、修改、删除等数据操作,76,B/S体系结构存在的问题,虽然支持动态页面,但表示形式和处理逻辑紧密相关,不可分离,不能复用。 由于业务的显示信息是以全体共识的方式直接发往客户端的,所以可直接了解到系统的数据结构,安全性差。 Web服务器权力过于集中,处理业务加上处理传输,使负载过大,系统的性能下降,回避风险的能力降低。,服务器,77,77,客户浏览器3,Internet,应用服务器,应用服务1,数据服务3,应用服务n,数据服务2,数据服务1,数据服务器,数据库,客户浏览器2,Web服务器,客户浏览器1,数据验证,数据传输,数据格式化,B/S多层结构逻辑结构

47、示意,78,Web服务器上的工作,数据验证:确保数据在提交前的正确有效性。 数据过滤:输入数据转换、过滤空格、大小写转换等。 会话管理:保证操作在各页面间正确传递,转发必要的信息。 生成显示信息:根据任务请求动作,生成显示信息。 输出格式化:转换为浏览器显示格式。 导航控制:保证应用程序的页面导航控制流。 错误处理,数据有效验证,输出格式化,数据过滤,会话 管理,生成显示信息,导航控制,错误处理,应用服务器,Web服务器逻辑视图,79,应用服务器逻辑视图,应用系统 业务逻辑,核心应用服务: 构件管理器 对象请求代理 数据库服务 安全服务 事务管理器,数据库1,数据库2,数据库3,OS3,OS2

48、,OS1,应用服务器的工作 支持将后端的应用程序绑定到多种不同的客户机 处理事务在分布式系统的各部分异步通信的机制 提供核心应用服务 提供描述服务以及定义服务接口 安装应用部署机制,应用邦定机制,异步通信机制,可定义的服务接口,部署应用服务机制,Web服务器,80,多层体系结构的优势,系统成分保持逻辑上的相对独立,易于维护和扩充 可灵活地选用软件平台和硬件环境,适应变化的需求 开发可并行,并具有较好的复用性。 隔离了与应用逻辑相关的数据结构,提高了系统安全性。,多层体系结构的代价,由于各层间的通讯,使效率明显降低,需要合理规划系统各层的配置,并提升服务器设备运行能力。,81,3. 对象中间件结

49、构 中间件基本概念 中间件的产生与C/S结构的发展密不可分。由于C/S结构存在着操作系统、文件格式、网络协议、服务等相互多元异构的问题。希望通过中间件,能够屏蔽差异,实现异构环境下,建立具有可扩展能力的分布式软件框架。 中间件的定义: 中间件是为解决异构环境的分布计算问题,是位于平台和应用之间、具有标准接口和协议的通用服务。,82,中间件类型 早在中间件概念被提出之前,很多系统在解决分布式互联方面就已经采用过很好的中间件解决方案。例如: 远程过程调用(Remote Procedure Call,RPC),同步方式的分布式互联技术 消息发布/订阅(publish/subscribe),准异步的分

50、布式互联 消息队列(Message queue),异步方式的分布式互联技术 开放数据库互连(Open Database Connectivity,ODBC),异构数据库系统互联 然而,上述中间件系统中,软件成分之间的互联访问,其双方的位置和身份是固定的。,83,对象中间件 以对象构件为基础建造的系统,不但需要对象构件本身,还需要对象构件的运行机制来管理和控制,以实现构件的建立和撤销、构件的加入与退出,以及构件之间的相互访问等,这个机制就是“对象中间件”。 对象中间件的理解要点: 对象构件是包含独立数据和功能的大粒度的对象实体,是系统建设的构造块 在分布式网络环境下的对象构件系统中,对象构件不分

51、客户还是服务者,它们的角色可以互换,并可以即插即用,84,对象中间件的三大主流结构 由国际OMG(Object Management Group)制定的ORB和CORBA对象中间件规范 以SUN公司Java技术为基础的对象组件和中间件体系EJB Microsoft公司Windows环境的COM/DCOM/COM+构件技术系列,85, CORBA对象中间件 由国际OMG(Object Management Group)制定的软件跨平台交互操作标准。目标是:无论在什么地方,用的什么语言或是什么操作系统,应用程序都能在独立的情况下,透明访问对象。在此目标下,制定统一的应用软件标准,规划分布对象的体系

52、结构,以及在此结构下对象的产生、消亡和运用方式。这套规定包括: OMA(Object Management Architecture) 对象管理体系结构 ORB(Object Request Broker)对象请求代理者 CORBA(Common Object Request Broker Architecture)公共对象请求代理者体系结构,86,对象服务,提供用于实现对象的一些基本功能,如对象的命名服务、对象并行、对象存储、对象产生和消亡、事件消息响应,以及事务交易的一致性保障等 应用对象,是广泛概念的分布系统中的任何成分。可以是应用程序、进程、类实例 公共设施,提供运行在应用程序中的公共

53、服务,例如:菜单、窗口、绘图板、电子邮件等 ORB是OMA的核心部分。对象系统中对象构件之间的交互,都是通过ORB进行的,OMA对象管理体系结构,87,ORB核心,ORB核心提供底层消息通信协议GIOP(Global Internet-ORB Protocol) 接口定义语言IDL,提供对象的接口定义机制,通过编译的接口,产生stub和skeleton 桩(stub),客户请求所需要的对象代理,或者远程对象的本地代理 槽(skeleton)服务的接口,明确给出所承担的服务 接口库,提供注册构件的接口管理,动态调用时,提供对象方法的元数据 实现库,包含支持服务的类、实例化对象及标识。为定位和激活

54、对象提供必要的手段 对象适配器,提供对象构件运行环境的适配转换机制,CORBA结构,88,EJB构件系统开发环境 EJB和J2EE的关系 J2EE(Java2 Enterprise Edition)是SUN公司开发的具有性能保证,安全防护、事务处理,以及集群(cluster)管理等综合技术标准的应用系统软件开发框架。 EJB 是J2EE的核心技术 除EJB外J2EE还包括: JNDI(Java Naming and Directory Interface) JMS(Java Message Service) JCA(Java Connector Architecture) JTA(Java T

55、ransaction API) SDK(Software Development Kit) 多种网络服务工具等。 以上工具和环境,可配合EJB完成企业应用系统开发。,89,EJB(Enterprise Java Bean) 是J2EE的主要部分,是基于组件式企业系统应用的软件开发标准。 EJB提供可视化操作的构件系统装配工具和环境,是能在服务器上运行的,一个企业级应用服务特定的JavaBean。 EJB的主要作用是OTM(Object Transaction Monitor)对象事务处理控制器。 OMT提供事务处理的服务构件,包括:负责激活构件、撤销构件、事务调度构件,事件处理及构件,以及持久

56、性管理构件。 EJB构件互控制的机制是RMI(Remote Method Invocation)远程方法调用,相当于SUN公司的ORB。,90,JavaBean的基本概念 Bean(豆)可看作一个整体构件,是具有内省(可表示)、可装配、可授权操作、可事件响应,以及可永久性存储的软件独立成份。 JavaBean提供动态发现、组装、部署Bean ,以及运行Bean的机制。 JavaBean的连接是事件机制,用事件连接构成完整的应用系统。,91,EJB结构,EJB服务器,可以有多个EJB构件或称EJB容器,部署在EJB服务器上 EJB容器,表示EJD单个构件或多个构件共同完成的整体大粒度的构件 Ho

57、me接口,EJB构件的接口,提供创建、删除及发现、查找等操作 Remote,EJB构件的接口,外界通过该接口调用业务构件,92,COM、DCOM、COM+对象组件技术 COM与OLE、ActiveX的关系 OLE(Object Linking and Embedded)对象连接和嵌入技术,是将应用程序的数据交换提高到“对象之间的交换”。早期的OLE技术是为了开发时能够容易地控制连接多媒体混合文档而实现的。OLE中的数据对象被称为“复合文件”,可在任一应用程序中,对其进行编辑、更新、打印等功能的操作。 随着组件技术的发展,在OLE2.0技术的基础上,建立了COM(Component Object

58、 model)组件对象技术规范,或者说OLE技术是COM的一个技术应用。ActiveX是在原OLE技术的基础上,支持网络环境上的对象组件集成和交互的技术,它扩展了OLE 仅针对Windows系统内应用软件的集成和交互的技术。,93,COM对象组件模型及实现过程,客户应用,是使用对象组件的应用 COM库,提供COM对象组件的创建和标识、内存管理、对象构件程序连接等函数 注册表,操作系统范围公用的信息,是客户应用、对象购件与COM库用以信息交换的共享区 对象构件,创建COM对象构件的特殊类,用特殊接口提供标准的操作,得到构件的实例化对象,94,DCOM DCOM(Distributed COM)是COM的进一步扩展。由于COM仅支持同一计算机上Windows环境的构件之间的交换,WindowsNT4.0研制了分布对象计算环境COM技术。DCOM用网络协议来代替本地进程之间的通信,并针对分布环境提供必要

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论