02SA风格.ppt

上传人:hyn****60 文档编号:70680685 上传时间:2023-01-24 格式:PPT 页数:131 大小:699KB
返回 下载 相关 举报
02SA风格.ppt_第1页
第1页 / 共131页
02SA风格.ppt_第2页
第2页 / 共131页
点击查看更多>>
资源描述

《02SA风格.ppt》由会员分享,可在线阅读,更多相关《02SA风格.ppt(131页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、SA的风格陈虔主要内容主要内容SA风格基础;经典风格;正交风格;消息总线风格;C/S风格;异构风格;DSSA风格;2SA的核心问题SA设计的一个核心问题是能否使用重复的体系结构模式,即能否达到体系结构级的软件重用。也就是说,能否在不同的软件系统中,使用同一体系结构。基于这个目的,我们必须研究和实践SA的风格和类型问题。3SA风格SA风格是描述某一特定应用领域中系统组织方式的惯用模式。反映了领域中众多系统所共有的结构和语义特性,并指导如何将各个模块和子系统有效地组织成一个完整的系统。SA风格定义了用于描述系统的术语表和一组指导构件系统的规则。4对SA风格研究的益处对SA风格的研究和实践促进了对设

2、计的复用,一些经过实践证实的解决方案也可以可靠地用于解决新的问题。体系结构风格的不变部分使不同的系统可以共享同一个实现代码。只要系统是使用常用的、规范的方法来组织,就可使别的设计者很容易地理解系统的体系结构。例如,如果某人把系统描述为客户服务器模式,则不必给出设计细节,我们立刻就会明白系统是如何组织和工作的。5对SA风格研究的益处采用例行的结构将使系统组成更易于被人理解使用标准化的风格有利于系统的互操作性(如:COBRA体系、OSI协议栈等)风格的可视化也为设计师提供了图形和文本的描述工具6SA需要回答的问题设计词汇表是什么?构件和连接件的类型是什么?允许的结构模式是什么?基本的计算模型是什么

3、?风格的基本不变性是什么?其使用的常见例子是什么?使用此风格的优缺点是什么?其常见的特例是什么?7SA风格的四个关键要素一个词汇表定义一套配置规则定义一套语义解释规则定义对基于这种风格的系统进行的分析8风格与开发、设计模式的区别程序设计设计模式体系结构风格重点开发原则、可实现性重用、概念完整性重用抽象层次 程序构件体系结构使用直接可用直接可用有约束和指导作用的概念9SA风格的分类方法1管道过滤模式2面向对象模式3事件驱动模式4分层模式5知识库模式6解释器模式7过程控制环模式8异构模式的集成10SA风格的分类方法Garlan和Shaw对通用SA风格的分类:数据流风格:批处理序列;管道/过滤器调用

4、/返回风格:主程序/子程序、面向对象风格、层次结构独立构件风格:进程通讯;事件系统虚拟机风格:解释器;基于规则的系统仓库风格:数据库系统;超文本系统;黑板系统111、C2风格C2来源于Chiron-1用户界面系统,故而得名C2风格是一种基于构件和消息的风格,用于构建灵活的、可扩展的软件系统C2是一个层次网络,通过连接件绑定在一起的按照一组规则运作的并行构件网络。C2风格主要用于具有图形化用户界面的应用软件12C2的系统组织规则C2的中心原则是有限可视原则,即与下层独立的原则系统中的构件和连接件都有一个顶部和一个底部;构件的顶部应连接到某连接件的底部,构件的底部则应连接到某连接件的顶部,而构件与

5、构件之间的直接连接是不允许的;连接件可和任意数目的其它构件和连接件连接;当两个连接件进行直接连接时,必须由其中一个的底部到另一个的顶部。13C2风格的体系结构14C2内部的体系结构域转换器对话和约束内部对象内部对象Wrapper通知请求15C2体系结构的特点基于构件的风格:可以用任何程序设计语言开发构件可扩展能力:可以有多种粒度的构件,系统中的构件可实现应用需求,并能将任意复杂度的功能封装在一起;可以在分布异构的环境中运行。依赖性小:构件相对独立,构件之间依赖性较少。系统中不存在某些构件将在同一地址空间内执行,或某些构件共享特定控制线程之类的相关性假设。适应性:可以有多个用户与系统交互,也可以

6、同时激活多个对话并用不同的形式表示它们以消息为基本通信机制:所有构件之间的通讯是通过以连接件为中介的异步消息交换机制来实现的;162、管道/过滤器风格这种风格的SA中,每个构件都有一组输入和输出,构件读输入的数据流,经过内部处理,然后产生输出数据流。这个过程通常通过对输入流的变换及增量计算来完成,所以在输入被完全消费之前,输出便产生了。因此,这里的构件被称为过滤器,这种风格的连接件就象是数据流传输的管道,将一个过滤器的输出传到另一过滤器的输入。17 管道/过滤器风格的体系结构 过滤器必须是独立的实体,它不能与其它的过滤器共享数据,而且一个过滤器不知道它上游和下游的标识。一个管道/过滤器网络输出

7、的正确性并不依赖于过滤器进行增量计算过程的顺序。18实例:用Unix shell编写的程序Unix既提供一种符号,以连接各组成部分(Unix的进程),又提供某种进程运行时机制以实现管道。cat file|grep xyz|sort|uniq out在文件中查找含有xyz的行,排序后,去掉相同的行,结构输出到out19实例:传统的编译器传统的编译器就是一种管道系统在该系统中,一个阶段(包括词法分析、语法分析、语义分析和代码生成)的输出是另一个阶段的输入。20管道/过滤器风格的特点使软构件具有良好的隐蔽性和高内聚、低耦合特点;允许设计者将整个系统的输入/输出行为看成是多个过滤器的行为的简单合成;支

8、持软件重用提供适合在两个过滤器之间传送的数据,任何两个过滤器都可被连接起来;21管道/过滤器风格的特点系统维护和增强系统性能简单新的过滤器可以添加到现有系统中来;旧的可以被改进的过滤器替换掉。允许对一些如吞吐量、死锁等属性的分析;支持并行执行每个过滤器是作为一个单独的任务完成,因此可与其它任务并行执行。22管道/过滤器风格的不足通常导致进程成为批处理的结构。虽然过滤器可增量式地处理数据,但它们是独立的,所以设计者必须将每个过滤器看成一个完整的从输入到输出的转换。不适合处理交互的应用当需要增量地显示改变时,这个问题尤为严重。系统性能下降,编写过滤器的复杂性增加因为在数据传输上没有通用的标准,每个

9、过滤器都增加了解析和合成数据的工作。233、数据抽象和面向对象风格抽象数据类型概念对软件系统有着重要作用,软件界已普遍转向使用面向对象系统。这种风格建立在数据抽象和面向对象的基础上,数据的表示方法和它们的相应操作封装在一个抽象数据类型或对象中。这种风格的构件是对象,或者说是抽象数据类型的实例。对象是一种被称作管理者的构件,因为它负责保持资源的完整性。对象是通过函数和过程的调用来交互的。24数据抽象和面向对象风格25面向对象风格的优点高度模块性 封装功能代码共享灵活性 易维护性可扩充性26面向对象的系统的优点因为对象对其它对象隐藏它的表示,所以可以改变一个对象的表示,而不影响其它的对象。设计者可

10、将一些数据存取操作的问题分解成一些交互的代理程序的集合。27面向对象的系统存在的问题为使对象间通过过程调用等进行交互,必须知道对象的标识。只要一个对象的标识改变了,就必须修改所有其他明确调用它的对象。必须修改所有显式调用它的其它对象,并消除由此带来的一些副作用。如:如果A使用了对象B,C也使用了对象B,那么,C对B的使用所造成的对A的影响可能是料想不到的。284、基于事件的隐式调用风格构件不直接调用一个过程,而是触发或广播一个或多个事件。系统中的其它构件中的过程在一个或多个事件中注册,当一个事件被触发,系统自动调用在这个事件中注册的所有过程,这样,一个事件的触发就导致了另一模块中的过程的调用。

11、构件是一些模块,这些模块既可以是一些过程,又可以是一些事件的集合。过程可以用通用的方式调用,也可以在系统事件中注册一些过程,当发生这些事件时,过程被调用。29事件驱动风格事件驱动系统的基本观点是一个系统对外部的表现可以从它对事件的处理表征出来。如图示:事件接收器事件处理器输入反馈输出30事件驱动模式的特点系统是由若干子系统或元素所组成的一个整体;系统有一定的目标,各子系统在某一种消息机制的控制下,为了这个目标而协调行动;在某一种消息机制的控制下,系统作为一个整体与环境相适应和协调;31事件驱动模式的特点在一个系统的若干子系统中,必定有一个子系统起着主导作用,而其他子系统则处于从属地位;任一系统

12、和系统内的任一元素,都有1个事件收集机制和1个事件处理机制,通过这种机制与周围环境发生作用和联系;32事件驱动的软件系统示意图33事件驱动模式系统设计原则 从系统论的角度来看待描述的对象,合理分解子系统,保证各个子系统的独立性和社会性;无论系统多么复杂,子系统性质的差异多么大,任何子系统都可以按照有无子系统这一性质分为2类:管理系统和执行系统。为了达到系统的目标,系统内的各个子系统通过传递消息和执行消息来协同操作。为了达到系统的目标,系统内的各个子系统通过传递消息和执行消息来协同操作。34事件驱动模式系统设计原则在一个完整系统中,必须有这样一个子系统,它没有上级,必须收集系统外的事件及下级发出

13、的事件。管理类型的子系统一般不执行具体操作,其主要功能是按照自己的职能指挥下级完成任务,功能性操作一般由执行类型的子系统完成。一般情况下,除最高级管理子系统外,子系统一般是“有问才答”,即使在必要的情况下需要积极寻找事件时,也必须征得上级系统得许可,保证了系统的控制流不会分散。35事件驱动模式的基本结构事件驱动系统具有某种意义上的递归性,形成了“部分整体”的层次结构,可以用属性结构加以表示。一个简单的表示方法是为执行系统定义一些类,另外定义一些类作为这些执行系统的容器类,也就是管理系统。36事件驱动模式的基本结构37事件驱动模式的优点适合于描述系统族在属于同一族的任何系统中,系统的高级管理子系

14、统的描述是完全类似的,便于重用;容易实现并发处理和多任务操作由于最高管理子系统牢牢的掌握着控制权,又因为各同级子系统一般不直接发生关系具有良好的可扩展性设计者只需为某个对象注册一个事件处理接口就可以将该对象引入整个系统,同时并不影响其它的系统对象。38事件驱动模式的优点类结构简明定义了包含执行子系统和管理子系统的类层次结构。简化客户代码使整个系统的设计更具有一般化。39事件驱动模式的不足构件削弱了自身对系统计算的控制能力数据共享能力降低 系统中各个对象的逻辑关系变得更加复杂40事件驱动模式与面向对象模式基于面向对象模式的系统由多个封装起来的对象构成,对象之间通过消息传递实现通信,而事件驱动正是

15、对消息传递机制的一种实现。基于事件驱动模式的系统往往都是面向对象的。41实例:JavaBeanJavaBean系统事件从事件源到监听者的传递是通过对目标监听者对象的Java方法调用进行的。对每个明确的事件的发生,都相应地定义一个明确的Java方法。这些方法都集中定义在事件监听者(EventListener)接口中,这个接口要继承java.util.EventListener。42实例:JavaBeanJavaBean系统事件状态对象与事件发生有关的状态信息一般都封装在一个事件状态对象中,这种对象是java.util.EventObject的子类。按设计习惯,这种事件状态对象类的名应以Event

16、结尾。43实例:JavaBeanJavaBean系统事件监听者接口(EventListener Interface)与事件监听者由于Java事件模型是基于方法调用,因而需要一个定义并组织事件操纵方法的方式。JavaBean中,事件操纵方法都被定义在继承了java.util.EventListener类的EventListener接口中,按规定,EventListener接口的命名要以Listener结尾。任何一个类如果想操纵在EventListener接口中定义的方法都必须以实现这个接口方式进行。这个类也就是事件监听者。44实例:JavaBeanJavaBean系统事件监听者的注册与注销为了各

17、种可能的事件监听者把自己注册入合适的事件源中,建立源与事件监听者间的事件流,事件源必须为事件监听者提供注册和注销的方法。在前面的bound属性介绍中已看到了这种使用过程,在实际中,事件监听者的注册和注销要使用标准的设计格式:public void add(listener)public void remove(listener);45实例:JavaBeanJavaBean系统适配类适配类是JavaBean事件模型中极其重要的一部分。在一些应用场合,事件从源到监听者之间的传递要通过适配类来“转发”。适配类成为了事件监听者,事件源实际是把适配类作为监听者注册入监听者队列中,而真正的事件响应者并未在

18、监听者队列中,事件响应者应做的动作由适配类决定。46隐式调用示意图广播媒介AgentAgentAgentAgent声明事件监听事件声明事件监听事件47基于事件的隐式调用风格特点事件的触发者并不知道哪些构件会被这些事件影响不能假定构件的处理顺序,甚至不知道哪些过程会被调用为此,许多隐式调用的系统也包含显式调用作为构件交互的补充形式。48支持隐式调用的应用系统在编程环境中用于集成各种工具在数据库管理系统中确保数据的一致性约束在用户界面系统中管理数据在编辑器中支持语法检查等。49实例:某集成开发环境在某集成开发环境中,编辑器和变量监视器可以登记相应Debugger的断点事件。当Debugger在断点

19、处停下时,它声明该事件,由系统自动调用处理程序,如编辑程序可以卷屏到断点,变量监视器刷新变量数值。Debugger本身只声明事件,并不关心哪些过程会启动,也不关心这些过程做什么处理。50隐式调用系统的主要优点为软件重用提供了强大的支持。当需要将一个构件加入现存系统中时,只需将它注册到系统的事件中。为改进系统带来了方便。当用一个构件代替另一个构件时,不会影响到其它构件的接口。51隐式调用系统的主要缺点构件放弃了对系统计算的控制一个构件触发一个事件时,不能确定其它构件是否会响应它。即使它知道事件注册了哪些构件的构成,它也不能保证这些过程被调用的顺序。数据交换的问题有时数据可被一个事件传递,但另一些

20、情况下,基于事件的系统必须依靠一个共享的仓库进行交互。这也使全局性能和资源管理便成了问题。正确性的推理存在问题这是由于过程的语义必须依赖于被触发事件的上下文约束。525、层次系统风格层次系统组织成一个层次结构,每一层为上层服务,并作为下层客户。除了一些精心挑选的输出函数外,内部的层只对相邻的层可见。构件在一些层实现了虚拟机(在另一些层次系统中层是部分不透明的)。连接件通过决定层间如何交互的协议来定义,拓扑约束包括对相邻层间交互的约束。53这种风格支持基于可增加抽象层的设计。允许将一个复杂问题分解成一个增量步骤序列的实现。由于每一层最多只影响两层,同时只要给相邻层提供相同的接口,允许每层用不同的

21、方法实现,同样为软件重用提供了强大的支持。54层次系统风格的体系结构层次系统最广泛的应用是分层通信协议。在该应用领域中,每一层提供一个抽象的功能,作为上层通信的基础。较低的层次定义低层的交互,最低层通常只定义硬件物理连接。55层次系统的优点支持基于抽象程度递增的系统设计使设计者可以把一个复杂系统按递增的步骤进行分解;支持功能增强和扩展因为每一层至多和相邻的上下层交互,因此功能的改变最多影响相邻的上下层;支持重用只要提供的服务接口定义不变,同一层的不同实现可以交换使用。这样,就可以定义一组标准的接口,而允许各种不同的实现方法。56层次系统的不足并不是每个系统都可以很容易地划分为分层的模式,甚至即

22、使一个系统的逻辑结构是层次化的,出于对系统性能的考虑,系统设计师不得不把一些低级或高级的功能综合起来;很难找到一个合适的、正确的层次抽象方法。576、仓库风格在仓库风格中,有两种不同的构件:中央数据结构:说明当前的状态一个独立的构件集合:在中央数据存贮上执行仓库与外构件间的相互作用在系统中会有大的变化。对数据和状态的控制方法的不同产生两个不同的子类:若输入流中某类时间触发进程执行的选择,则仓库是一传统型数据库;若中央数据结构的当前状态触发进程执行的选择,则仓库是一黑板系统。58举例:ISO的OSI参考模型应用层表示层会话层传输层网络层链路层物理层应用层表示层会话层传输层网络层链路层物理层网络层

23、链路层物理层网络层链路层物理层59举例:ISO的OSI参考模型ISO/OSI层次分组关系ISO/OSI七层网络功能可以从两个不同的角度进行分组。第一种可以从数据处理分工的角度,将ISO/OSI七个层次分为三组:第1、2层解决有关网络信道问题;第3、4层解决传输服务问题;第5、6、7层则处理对应用进程的访问。60举例:ISO的OSI参考模型第二种可以从数据传输控制的角度,将ISO/OSI七个层次分为三组:下三层(1、2、3层)可以看作是传输控制组,负责通信子网的工作,解决网络中的通信问题;上三层(5、6、7层)为应用控制组,负责有关资源子网的工作,解决应用进程之间的信息转换问题;中间层(4层)则

24、为通信子网和资源子网的接口,起到连接传输和应用的作用。617、知识库风格采用知识库风格构建的系统中通常有两个截然不同的功能部件:中央数据单元部件;一些相对独立的组件的集合;信息交互方式的差异导致了控制策略的不同.主要的控制策略有两种,正是依据这两种不同的控制策略,基于知识库模式的系统被分成两个子类:基于传统数据库型知识库模式的应用系统 基于黑板型知识库模式的应用系统 62黑板型知识库模式的原理图63黑板系统的组成黑板系统的传统有信号处理领域,如语音和模式识别及松耦合代理数据共享存取等。64黑板系统主要由三部分组成知识源知识源中包含独立的与应用程序相关的知识,知识源之间不直接进行通讯,它们之间的

25、交互只通过黑板来完成。黑板数据结构黑板数据是按照与应用程序相关的层次来组织的解决问题的数据,知识源通过不断地改变黑板数据来解决问题。控制控制完全由黑板的状态驱动,黑板状态的改变决定使用的特定知识。65实例:专家系统专家系统ESESES(Expert SystemExpert System)概述:专家系统实质就是一组程序;从功能上:可定义为“一个在某领域具有专家水平解题能力的程序系统”,能像领域专家一样工作,运用专家积累的工作经验与专门知识,在很短时间内对问题得出高水平的解答。从结构上讲:可定义为“由一个专门领域的知识库,以及一个能获取和运用知识的机构构成的解题程序系统”。66ES的一般结构67

26、8、解释器风格基于解释器风格的系统核心是虚拟机。一个基于解释器模式的系统通常包括正在被解释执行的伪码和解释引擎;伪码:由需要被解释执行的源代码和解释引擎分析所得的中间代码组成;解释引擎包括:语法解释器和解释器当前的运行状态 68解释器模式原理图69实例:一个布尔表达式解释器布尔表达式求值系统 按如下文法定义布尔正则表达式:70布尔表达式求值系统类图71布尔表达式抽象语法树72布尔表达式求值系统的优缺点在文法规则比较简单的情况下,解释器模式工作的很好,但如果文法规则复杂,则文法的层次变得庞大而无法管理,系统中需要包含许多表示文法规则的类。最高效的解释器通常不是通过直接解释语法分析数实现的,而是首

27、先将它们转换成另一种形式。易于改变和扩展文法。易于实现文法。73布尔表达式求值系统中的角色BooleanExpression(抽象布尔表达式)TerminalExpression(终结符表达式,如VariableExpresssion和Constant)NonterminalExpression(非终结符表达式,如AndExpression、OrExpression和NotExpression)Context(上下文,即“解释引擎内部状态”)Client(客户)74布尔表达式求值系统的实现在具体实现布尔表达式求值系统时还有许多细节的问题要处理,这些细节问题处理的好坏甚至会直接影响整个系统的性能

28、。这些问题主要表现在:创建抽象语法树定义求值操作共享终结符759、正交风格正交SA由组织层和线索的构件构成。层是由一组具有相同抽象级别的构件构成。线索是子系统的特例,它是由完成不同层次功能的构件组成(通过相互调用来关联)。每一条线索完成整个系统中相对独立的一部分功能。每一条线索的实现与其他线索的实现无关或关联很少,在同一层中的构件之间是不存在相互调用的。76如果线索是相互独立的,即不同线索中的构件之间没有相互调用,那么这个结构就是完全正交的。正交SA是一种以垂直线索构件族为基础的层次化结构,其基本思想是把应用系统的结构按功能的正交相关性,垂直分割为若干个线索(子系统),线索又分为几个层次,每个

29、线索由多个具有不同层次功能和不同抽象级别的构件构成。各线索的相同层次的构件具有相同的抽象级别。77正交体系结构的主要特征正交SA由完成不同功能的n(n 1)个线索(子系统)组成;系统具有m(m 1)个不同抽象级别的层;线索之间是相互独立的(正交的);系统有一个公共驱动层(一般为最高层)和公共数据结构(一般为最低层)。78多级正交结构对于大型的和复杂的软件系统,其子线索(一级子线索)还可以划分为更低一级的子线索(二级子线索),形成多级正交结构。79多级正交结构这是一个三级线索、五层结构的正交SA框架图,在图中,ABDFK组成了一条线索,ACEJK也是一条线索。因为B、C处于同一层次中,所以不允许

30、进行互相调用;H、J处于同一层次中,也不允许进行互相调用。一般来讲,第五层是一个物理数据库连接构件或设备构件,供整个系统公用。80在软件进化过程中,系统需求会不断发生变化。在正交SA中,因线索的正交性,每一个需求变动仅影响某一条线索,而不会涉及到其他线索。这样,就把软件需求的变动局部化了,产生的影响也被限制在一定范围内,因此实现容易。81正交SA的优点结构清晰,易于理解。正交SA的形式有利于理解。由于线索功能相互独立,不进行互相调用,结构简单、清晰,构件在结构图中的位置已经说明它所实现的是哪一级抽象,担负的是什么功能。82正交SA的优点易修改,可维护性强。由于线索之间是相互独立的,所以对一个线

31、索的修改不会影响到其他线索。因此,当软件需求发生变化时,可以将新需求分解为独立的子需求,然后以线索和其中的构件为主要对象分别对各个子需求进行处理,这样软件修改就很容易实现。系统功能的增加或减少,只需相应的增删线索构件族,而不影响整个正交体系结构,因此能方便地实现结构调整。83正交SA的优点可移植性强,重用粒度大因为正交结构可以为一个领域内的所有应用程序所共享,这些软件有着相同或类似的层次和线索,可以实现体系结构级的重用。8410、过程控制环风格所谓对一个对象(或过程)进行控制,意味着设法使这个被控对象(或被控过程)的功能或特性有效的达到所期望的目标。为了成功设计一个控制系统,必须事先知道被控对

32、象所具有的性质和特征,同时还须了解和掌握这些性质和特征随环境等因素变化的情况。控制工程是一个十分强调方法论的专业领域,因此控制工程方法完全是独立于各种应用领域的。为了将过程控制方法从单纯的控制领域中抽象出来,我们引入了动态系统的概念。85动态系统与控制论动态系统表示信号处理和传输的一个功能单元(例如:信号可以是能量、材料、信息、资金及其他形式),其中系统的起因和由此引起的时间上的效果分别作为系统的输入量和输出量来考虑。如此定义的系统具有共同的特征,即在其中一定存在有目标的作用、信息处理、闭环和开环控制过程,正如N.Wiener所提出的,以上概念可以用控制论这个更高级的概念来总结。控制论也可以应

33、用于SA的创建。86过程控制环模式的描述手段根据上述的动态系统的定义,在系统中必然存在信号的处理和传输。这时系统也可描述为传输环节或传输系统。传输环节具有唯一的作用方向,这由输入、输出信号的箭头方向给出。87描述方法一:多变量系统88描述方法二:信号流图89动态系统描述分类动态系统描述分类一般的动态系统描述框图可以分为开环控制和闭环控制系统,但在实际应用中这两种不同的动态系统往往很容易混淆在一起,对它们之间的区别强调的不够。现在通过一个市内暖气系统来指出这两者之间的不同和相同之处。90实例:市内暖气系统开环控制91实例:市内暖气系统闭环控制92实例:市内暖气系统开环控制和闭环控制的差别:闭环控

34、制:表示一个闭合的作用过程,(控制回环);根据闭环作用原理可增加抗干扰性(负反馈);可能不稳定,也即被控量不再衰减,而是增长到无穷大(理论上)。93实例:市内暖气系统开环控制和闭环控制的差别(续)开环控制表示一个开放的作用过程(控制序列);只能对抗指定由其处理的干扰,对于其他一些干扰因素无法消除;只要被控制对象自己保持稳定,整个开环控制系统也就保持稳定。94过程控制环的基本结构过程控制环的基本结构一个自动控制系统包括如下4个主要组成部分:被控对象、测量环节、调节器和执行环节,如下图所示:95自适应过程控制环自适应过程控制环自适应过程控制环需要包括以下3方面的工作:辨识被控对象的特征;在辨识的基

35、础上作出控制决策;在决策的基础上实施修正动作.按照构成自适应控制环的目的的不同可将其分为两种类型:参数自适应控制环;性能自适应控制环;96自适应过程控制环自适应过程控制环参数自适应控制环97自适应过程控制环自适应过程控制环性能自适应控制环98自适应过程控制环自适应过程控制环在性能自适应控制环中,最典型的代表就是所谓模型参考自适应控制系统。模型参考自适应控制系统按照其控制方式又可分为两种:直接法间接法 99自适应过程控制环自适应过程控制环直接法模型10011、三层C/SSAC/SSA,是基于资源不对等,且为实现共享而提出来的,是20世纪90年代成熟起来的技术C/S结构将应用一分为二,服务器(后台

36、)负责数据管理,客户机(前台)完成与用户的交互任务。101C/SSA的优点C/S 体系结构具有强大的数据操作和事务处理能力模型思想简单,易于人们理解和接受。102C/SSA的不足传统的二层C/S结构存在以下几个不足:二层C/S结构是单一服务器且以局域网为中心的,所以难以扩展至大型企业广域网或Internet;软、硬件的组合及集成能力有限;客户机的负荷太重,难以管理大量的客户机,系统的性能容易变坏;数据安全性不好。因为客户端程序可以直接访问数据库服务器,那么,在客户端计算机上的其他程序也可想办法访问数据库服务器,从而使数据库的安全性受到威胁。103自适应过程控制环自适应过程控制环间接法模型104

37、三层C/S结构三层C/S结构是将应用功能分成表示层、功能层和数据层三个部分105C/S结构的表示层表示层是应用的用户接口部分,它担负着用户与应用间的对话功能。它用于检查用户从键盘等输入的数据,显示应用输出的数据。为使用户能直观地进行操作,一般要使用图形用户接口,操作简单、易学易用。在变更用户接口时,只需改写显示控制和数据检查程序,而不影响其他两层。检查的内容也只限于数据的形式和取值的范围,不包括有关业务本身的处理逻辑。106C/S结构的功能层功能层相当于应用的本体,它是将具体的业务处理逻辑编入程序中。例如,在制作订购合同时要计算合同金额,按照定好的格式配置数据、打印订购合同,而处理所需的数据则

38、要从表示层或数据层取得。107C/S结构的功能层表示层和功能层之间的数据交往要尽可能简洁。例如,用户检索数据时,要设法将有关检索要求的信息一次性地传送给功能层,而由功能层处理过的检索结果数据也一次性地传送给表示层。在功能层中包含有确认用户对应用和数据库存取权限的功能以及记录系统处理日志的功能。功能层的程序多半是用可视化编程工具开发的,也有使用COBOL和C语言的。108C/S结构的数据层数据层就是数据库管理系统,负责管理对数据库数据的读写。数据库管理系统必须能迅速执行大量数据的更新和检索。一般从功能层传送到数据层的要求大都使用SQL语言。109三层C/S的结构的原理三层C/S的解决方案是:对这

39、三层进行明确分割,并在逻辑上使其独立。原来的数据层作为数据库管理系统已经独立出来,所以,关键是要将表示层和功能层分离成各自独立的程序,并且还要使这两层间的接口简洁明了。110三层C/S的结构的原理一般情况是只将表示层配置在客户机中。如果将功能层也放在客户机中,与二层C/S结构相比,其程序的可维护性要好得多,但是其他问题并未得到解决。客户机的负荷太重,其业务处理所需的数据要从服务器传给客户机,系统的性能容易变坏。111如果将功能层和数据层分别放在不同的服务器中,则服务器和服务器之间也要进行数据传送。由于在这种形态中三层是分别放在各自不同的硬件系统上的,所以灵活性很高,能够适应客户机数目的增加和处

40、理负荷的变动。例如,在追加新业务处理时,可以相应增加装载功能层的服务器。因此,系统规模越大这种形态的优点就越显著。112三层C/S结构的优势允许合理地划分三层结构的功能,使之在逻辑上保持相对独立性,从而使整个系统的逻辑结构更为清晰,能提高系统和软件的可维护性和可扩展性。允许更灵活有效地选用相应的平台和硬件系统,使之在处理负荷能力上与处理特性上分别适应于结构清晰的三层;并且这些平台和各个组成部分可以具有良好的可升级性和开放性。113三层C/S结构的优势允许充分利用功能层有效地隔离开表示层与数据层,未授权的用户难以绕过功能层而利用数据库工具或黑客手段去非法地访问数据层,这就为严格的安全管理奠定了坚

41、实的基础;整个系统的管理层次也更加合理和可控制。114三层C/S结构举例例如,最初用一台Unix工作站作为服务器,将数据层和功能层都配置在这台服务器上。随着业务的发展,用户数和数据量逐渐增加,这时,就可以将Unix工作站作为功能层的专用服务器,另外追加一台专用于数据层的服务器。若业务进一步扩大,用户数进一步增加,则可以继续增加功能层的服务器数目,用以分割数据库。清晰、合理地分割三层结构并使其独立,可以使系统构成的变更非常简单。因此,被分成三层的应用基本上不需要修正。115C/S与B/S混合SAB/S与C/S混合SA是一种典型的异构体系结构。B/SSA,是随着Internet技术的兴起,对C/S

42、体系结构的一种变化或者改进的结构。在B/S体系结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现。116B/S体系结构的优点B/S体系结构主要是利用不断成熟的WWW浏览器技术,结合浏览器的多种脚本语言,用通用浏览器就实现了原来需要复杂的专用软件才能实现的强大功能,并节约了开发成本,是一种全新的SA。基于B/S体系结构的软件,系统安装、修改和维护全在服务器端解决。用户在使用系统时,仅仅需要一个浏览器就可运行全部的模块,真正达到了“零客户端”的功能,很容易在运行时自动升级。B/S体系结构还提供了异种机、异种网、异种应用服务的联机、联网、统一服务的最现

43、实的开放性基础。117B/S体系结构不足B/S体系结构缺乏对动态页面的支持能力,没有集成有效的数据库处理功能。B/S体系结构的系统扩展能力差,安全性难以控制。采用B/S体系结构的应用系统,在数据查询等响应速度上,要远远地低于C/S体系结构。B/S体系结构的数据提交一般以页面为单位,数据的动态交互性不强,不利于在线事务处理(OLTP)应用。118C/S与B/S会长期共存传统的C/S体系结构并非一无是处,而新兴的B/S体系结构也并非十全十美。由于C/S体系结构根深蒂固,技术成熟,原来的很多软件系统都是建立在C/S体系结构基础上的,B/S体系结构要想在软件开发中起主导作用,要走的路还很长。C/S体系

44、结构与B/S体系结构还将长期共存。119实例:某变电站信息管理系统 120C/S与B/S混合使用变电站内部用户通过局域网直接访问数据库服务器,外部用户(包括县调、地调和省局的用户及普通Internet用户)通过Internet访问Web服务器,再通过Web服务器访问数据库服务器。该解决方案把B/S和C/S这两种SA进行了有机的结合,扬长避短,有效地发挥了各自的优势。同时,因外部用户只需一台接入Internet的计算机,就可以通过Internet查询运行生产管理情况,无须做太大的投入和复杂的设置。这样也方便所属电业局及时了解各变电站所的运行生产情况,对各变电站的运行生产进行宏观调控。121C/S

45、与B/S互补C/S与B/S混合SA的优点是外部用户不直接访问数据库服务器,能保证企业数据库的相对安全。企业内部用户的交互性较强,数据查询和修改的响应速度较快。C/S与B/S混合SA的缺点是企业外部用户修改和维护数据时,速度较慢,较烦琐,数据的动态交互性不强。12212、异构风格的集成各种系统构建模式之间不仅有联系,而且在很多情况下它们往往是配合使用的。一个实际系统,很难判断它究竟是A型,B型,还是C型,单纯的把它归到任何一型都是很勉强的。这样的系统可以称为复合型系统,这样的系统构建模式就称为异构风格(模式)的集成。123实例:足球战术模拟系统实例:足球战术模拟系统作为一个整体项目,可以将足球队

46、类比为一个软件系统,球队的比赛过程类比为软件系统的运行过程,而球队完成教练(无论胜负)的战术意图类比为系统实现了自身功能。整个球队的运作可以用分层模式(Layered Pattern),面向对象模式(Object Oriented)和事件驱动(Event Driven)混合表示。124不同任务用不同的模式模拟不同任务用不同的模式模拟分层模式是对整个球队基本阵型的模拟;面向对象模式是对球队中的具体队员的模拟;事件驱动模式对应于比赛过程中队员之间的相互通信方式。125足球战术体系中的通信关系在通用足球战术体系中各层之间存在耦合,甚至在某些情况下某个层次中的对象还会根据系统的状态进行移动,这也是强调

47、使用移动智能代理的根本原因。因为球员具有智能,会根据整个战局的变化自动应变,为了尽可能的模拟这种自适应性,必须使用移动智能代理.通用足球战术体系中各个移动智能代理之间的相互通信方式和可能存在的层次跃迁,这也是整个体系结构中组成元素的基本运动方式。126足球战术体系的运作方式整个系统预先定义好很多事件,它们都是和足球比赛中特定的情况或教练战术意图相联系的;不同层次中移动智能代理在“战术事件”的驱动之下而移动。战术事件的触发驱动事件处理函数的调用,函数的调用导致操作的执行和新事件的触发。如此环环相扣,构成了一个相互交织的事件网络,从而驱动整个系统的不断运行。127足球战术体系的应用方法 在本模型的

48、基础之上,实际系统设计者应该确定移动智能代理的实现和分布(指定基本阵型),定义必须的战术事件,给每个移动智能代理定义相应的事件处理函数(指定战术打法,是本模型的核心问题)。在完成上述基本步骤后,模拟系统运行,修正最初的设计(甚至可以为每个移动智能代理设计多个事件处理函数,在不同情况下调用不同的函数,实现战术打法的变化),最终构成一个实际可运行的足球战术模拟系统。128小结SA风格为大粒度的软件重用提供了可能。对于应用体系结构风格来说,由于视点的不同,系统设计师有很大的选择空间。要为系统选择或设计某一个体系结构风格,必须根据特定项目的具体特点,进行分析比较后再确定体系结构风格的使用几乎完全是特化的。129不同的结构有不同的处理能力的强项和弱点,一个系统的体系结构应该根据实际需要进行选择,以解决实际问题。事实上,也存在一些系统,它们是由这些纯体系结构组合而成,即采用了异构SA。130讨论(作业)选择一个你熟悉的大型软件系统,分析其体系结构中用到的风格,以及表现出现出的特点,讨论:为什么要采用这种风格?带来了哪些优势?哪些不变?选择23种风格,设计简单的体系结构,并实现简单的原型系统131

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com