已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件危机的主要表现(书上说)1. 对软件开发的成本和时间估计常常不准确2. 用户对完成的软件产品不满意;3. 软件质量常常不高;4. 软件的质量不可靠;5. 软件开发常常缺乏适当的文档资料;6. 软件技术发展的速度远远赶不上形势的需要。软件开发语言的变迁机器语言汇编语言解释型的高级语言模块化的程序设计面向对象的程序设计?当前与未来软件的特点 无统一控制的广泛分布性高度自主性任务不可预测性人、设备和软件的多重异构性强个性化和灵活性 连接环境的多样性好的软件体系结构的特征(评价)1. 可伸缩性的2. 简单3. 亲切的4. 关系清楚明了5. 职责分布明确6. 效益和技术平衡软件体系结构的生命周期:软件体系结构的非形式化描述初始设计,软件设计师用非形式化的自然语言表示概念、原则;软件体系结构的规范描述和分析通过运用合适的形式化数学理论模型对第一阶段体系结构的非形式化描述进行规范定义;软件体系结构的求精及其验证大型系统的软件体系结构总是通过从抽象到具体,逐步求精而后得到的;软件体系结构的实施将求精后的软件体系结构实施于系统的设计中,并将软件体系结构的组件与连接件等有机地组织在一起,形成系统设计的框架;软件体系结构的演化和扩展在实施软件体系结构时,根据系统的需求,对软件体系结构的扩展和改动;软件体系结构的提供、评价和度量;软件体系结构的终结不能达到系统设计的要求,不能适应系统的发展。目前软件体系结构研究的热点1. 软件体系结构风格;2. 软件体系结构质量评价;3. 软件体系结构性能评价;4. 软件体系结构描述语言;5. 软件体系结构基础理论;6. 软件体系结构求精方法研究7. 软件体系结构设计方法;8. 软件体系结构抽象模型;9. 实用软件体系结构10. 基于软件体系结构的软件开发方法。软件体系结构的重要性软件体系结构是软件开发的基本的指导方针;软件体系结构是整个软件开发的开端;软件体系结构给予后继开发人员的指导和约束;软件体系结构是对软件质量的重大保证;软件体系结构是软件修改、变动的保证和约束;软件体系结构提供了软件的可重用性。 什么是软件体系结构风格与模式 软件体系结构风格是描述应用领域中系统组织方式的惯用模式。 体系结构风格定义了一个系统家族,即一个体系结构定义一个词汇表和一组约束。词汇表中包含一些组件和连接件类型,而这组约束指出系统是如何将这些组件和连接件组合起来的。 体系结构风格反映了领域中众多系统所共有的结构和语义特性,并指导如何将各个模块和子系统有效地组织成一个完整的系统。软件体系结构中最基本的构件是:v 组件和连接器软件组件与连接器概述 组件与连接器是软件体系结构的两大构成部分; 组件是软件的组成单元,是软件功能的设计和承载体; 连接器是专门承担组件连接作用的部件,连接的本质是实现连接机制和信息交换协议。组件(构件,部件) 组件是软件结构块单元,每个组件承担着一定的功能,如中断程序、设备驱动程序、过程、功能库、文件等; 组件是模块、类、对象等相关功能的集合; 组件是封装的实体,一个组件至少有一个接口,接口是组件与外界连接的窗口。组件的分类 根据组件的作用分类:B 负责系统运行管理的控制组件; 如任务管理器、黑板系统中的黑板、网络中的路由服务等B 负责组件之间协作关系的协调组件; 如:消息/消息管理,中断控制,I/O控制等B 为其它组件提供服务功能的服务组件; 如:中间件,DLL等B 负责安全检查和信息转接的信息控制组件; 如:域名服务等,B 负责组件连接和转换功能的连接组件。 如:解释器,浏览器等。根据组件的概念层次分类:B 基础组件;B 中层组件; B 高层组件;根据组件的应用分类:B 通用组件; B 专用组件; 组件的特性 B 接口特性与其它组件通信F 完备性F 最小化F 正交性F 方便F 高效B 运行特性完成组件的功能F 数据的采集、存储、传送、计算等F 调度:进程的产生、撤消、通信、管理F 多任务并发处理,任务分配,并行计算B 远程服务特性多线程F 接受网络上的多源请求F 服务代理F 信息交互B 关联特性获取相关组件的地址信息F 实地址F 路由地址F IP地址F MAC地址B 动态特性F 组件的运行调度资源分配、并行处理F 组件的生存期管理进程的产生、撤消连接器 连接是组件之间建立和维护行为关联和信息传送的途径;连接的两个要件:B 连接机制硬件是连接的物质基础 F 硬件层:中断、存储、栈、I/O、DMA等;F 基础控制描述层:事件、流、文件等;F 资源和管理层:进程、线程、同步、并发、消息、远程调用;F 系统结构模式层:编译器、解释器、浏览器、中间件等。B 连接协议信息交换规则F 什么是协议?一种成文的公约集,相互通信系统间的信息交换格式、能被收/发双方接受的传送信息内容的一组定义 。连接之所在,协议亦所在连接的特性 B 连接的方向性,如:发送、接收B 连接的角色,如发送者,接收者,客户端,服务器B 连接的触发,如电话提机,鼠标操作B 连接的响应,被叫方的响应时间、方式、处理的实时性、并发的能力等。B 连接的层次连接是严格接层次进行的,如OSI模型 软件体系结构的风格典型的体系结构风格有9种:1. 数据流风格批处理、管道和过滤器2. 调用与返回风格主/子程序、OOD、层次结构3. 独立组件风格通信进程、事件隐式调用4. 虚拟机风格解释器、规则基系统5. 以数据为中心风格数据库系统、黑板系统、超文本系统6. 过程控制风格过程控制、模拟器7. 客户服务器风格8. C2风格基于消息广播且面向图形用户界面的Chiron2风格9. 异构风格不同的风格构成数据流风格 比较有代表性的是批作业序列风格、管道/过滤器风格在操作系统中可见。如:dir | sortB 操作系统中可以找到非常明显的数据流,处理过程通常在数据流的路线上“自顶向下、逐步求精”,并且,处理过程依赖于执行过程,而不是数据到来的顺序;B 每个组件都有一组输入和输出,组件读输入的数据流,经过内部处理,然后产生输出数据流数据流风格 管道/过滤器风格B 管道的本质是多进程共享文件,它有两个描述符B 读在管道的一端将信息不断的读出;B 写在管道有另一端写入B 管道的长度通常是受限的,那么对管道写B 空间足够时,数据写入后返回;B 空间不够时,将所能容纳下的数据写入,并暂停写入(管道阻塞),直到管道空间有空余时,再做写入操作。B 对管道读时,只判断管道是否为空,(空读入阻塞)B 管道连接相邻的过滤器,过滤器具有数据处理功能B 如:编译器B 过滤器从管道上读入数据,数据处理后从管道上输出数据B 一个过滤器的输出是下一过滤器的输入;B 数据源过滤器的输入,如输入流、文件等;B 数据池过滤器的输出,如输出流、文件等;B 过滤器的激活:B 前面组件向过滤器推入数据(被动,请举例)B 后续组件从过滤器中拉出数据(被动,请举例)B 不断地从前面组件中拉出数据,并向后续组件推入数据。B 管道/过滤器的实现以车牌识别技术为例,系统是以输入图像驱动的。1.把系统任务分成几个独立的处理阶段,前一阶段的输出是后一阶段的输入,所有阶段用数据流连接起来;2.定义沿着管道传输的数据格式;3.定义管道的连接;4.设计和实现过滤器;5.设计出错处理策略;与人眼对比;或人机交互;与数据库对比;机器学习。管道/过滤器的特性F 每一过滤器都是独立的整体,相互之间互不影响;F 每一过滤器只关心输入的数据、数据处理和数据的输出;F 结果的正确性依赖于每级过滤器处理的结果。管道/过滤器风格的软件体系结构具有许多很好的特点: 1. 使得组件具有良好的隐蔽性和高内聚、低耦合的特点;2. 允许设计者将整个系统的输入/输出行为看成是多个过滤器的行为的简单合成;3. 支持软件复用。4. 系统维护和增强系统性能简单。新的过滤器可以添加到现有系统中来;旧的可以被改进的过滤器替换掉;5. 支持并行执行。每个过滤器是作为一个单独的任务完成,因此可与其它任务并行执行。这比下面将要阐述的一种“主-子程序风格”的单线程操作要灵活得多。6. 具有清晰的拓扑结构,便于系统性能分析。管道/过滤器风格的软件体系结构也有弱点:1. 通常导致进程成为批处理的结构。这是因为虽然过滤器可增量式地处理数据,但它们是独立的,所以设计者必须将每个过滤器看成一个完整的从输入到输出的转换。2. 不适合处理交互的应用。当需要增量地显示改变时,这个问题尤为严重。3. 系统开销大,复杂度高。因为在数据传输上没有通用的标准,每个过滤器都增加了解析和合成数据的工作,这样就导致了系统性能下降,并增加了编写过滤器的复杂性。4. 共享信息代价高,不灵活(?)5. 不能获得并行处理的高效率(?)6. 难于进行错误处理(?)分层结构分层结构的特点1. 层次系统组织成一个层次结构,每一层为上层服务,并作为下层客户。2. 在一些层次系统中,除了一些精心挑选的输出函数外,内部的层只对相邻的层可见。3. 层之间的连接器(connector)通过决定层间如何交互的协议来定义。4. 这种风格支持基于可增加抽象层的设计。允许将一个复杂问题分解成一个增量步骤序列的实现。5. 由于每一层最多只影响两层,同时只要给相邻层提供相同的接口,允许每层用不同的方法实现,同样为软件复用提供了强大的支持。 分层结构的特性1. 如果发生了对第N层产生的请求,需要向下逐层调用,最终到第1层,请求响应逐层上传,最后到达第N层;2. 如果是从第1层链式操作,数据通过逐层处理,最后从第N层得到输出结果;3. 如果第i层的请求第i-1层能完成,就不需要再向更下层传递请求。4. 如果第i层的通知只需要传递到第i+1层能完成,就不需要再向更高层传递。5. 两个具有N层通信栈式结构,发生在一边第N层的请求,一直传送到第1层,再到另一边的第1层,一直传递到这一边的第N层分层结构的实现:1.定义合适的分层的标准;2.根据标准定义合适的层数;3.给每一层命名;4.并确定每一层的任务;5.定义每层的接口;6.构建每一层的各个组件;7.确定层之间的通信模式推模式、拉模式和组合模式8.降低层之间的耦合性;9.设计错误处理策略。分层结构的优点 1.能够实现软件的标准化;2.可替换性;3.可重用性;4.可移植性;分层结构的缺点: 1. 效率低数据的层层转换、传送、添加、删减;2. 各层可能产生很多重复性的操作;3. 很难找到一个正确分层的方法;4. 出于对系统性能的考虑,不得不把一些低级或高级的功能综合起来 ;知识库(黑板)结构 什么是黑板系统?是一种高度结构化的机遇问题求解模型。机遇问题求解模型的主要特点是:问题求解的每一步,根据当时的求解状态及其变化情况,选择最适宜的知识及问题求解方法,不断逼近问题的最终解。 三个组成部分B 中心公共数据结构;F 保存系统的输入;F 问题求解的中间结果;F 问题求解的状态。B 知识库F 领域知识被划分成互相独立的知识模块,称为知识源 ;F 每个知识源对应于求解某个子问题或子子问题的特定知识 ;F 黑板是实现知识源之间通讯的唯一场所 。B 独立程序集合F 程序相互独立,独立完成系统中的特定功能;F 由黑板状态来确定调用顺序。黑板系统动态特性数据驱动或状态驱动 黑板系统的实现(从系统开发的角度)1. 分析系统的需求和功能,定义黑板的数据结构,制定数据和知识词典;2. 确定系统可能涉及的领域,确定可能涉及的领域知识,确定知识的表示;3. 建立知识库,以及基于知识的操作;4. 确定系统的输入与输出;5. 制定黑板上的数据和状态的分解方案,获取知识条文;6. 设计系统控制程序。包括监视黑板、组件调用、人机交互、知识更新、机器学习等。知识库(黑板)结构优点1.可以应用于无法统一建模的问题;2.易更改、易维护;3.知识以及知识的驱动可重用;4.容错性和健壮性较好。知识库(黑板)结构缺点1.无法保证求解方案是最优方案;2.效率低,往往需要人机交互;3.知识的获取、分解、表示、驱动往往存在偏差,甚至是错误;4.系统的测试与评价因人而异;5.知识库的建立难度大,开发成本高。模式识别模式识别过程一般包括对待识别事物进行样本采集、信息的数字化、数据特征的提取、特征空间的压缩以及提供识别的准则等。问题求解 概念:指通过搜索的方法寻找问题求解操作的合适序列,以满足问题的要求。 基本方法:状态空间法和问题归纳法。 状态空间法描述为:若定义S为被求解问题可能有的初始状态的集合,F为求解过程中可使用的操作的集合,而G为目标状态的集合,那么问题求解的过程则是状态空间中寻找从初始状态x出发,到达目标状态y的一个路径。这个路径称为解路径。 问题求解程序由三个部分组成: 1、数据库 2、操作原则 3、控制策略 问题求解的状态空间法通常是一种搜索技术。基本搜索策略有:深度优先法、广度优先法、爬山法、回溯策略、图搜索策略、启发式搜索策略、与或图搜索策略、启发式搜索策略和博弈树搜索等。 例:计算机下棋自动定理证明自动定理证明的方法通常有:1、自动演绎法它是自动定理证明最早使用的一种方法。2、决策过程法3、定理证明器专家系统专家系统是当前人工智能应用中最成功的一个领域模型-视图-控制器结构(MVC结构)v MVC的设计思想1. MVC结构提供了一种按功能对各种对象进行分割的方法,其目的是为了将各对象间的耦合程度减至最小;2. MVC将应用程序的输入、处理、输出流程按照Model、View、Controller的方式进行分离,即将计算模型和显示模型独立开来,因此,应用程序被分成三个层模型层、视图层、控制层;B 模型是系统处理问题的逻辑抽象,它封装了问题的核心数据、逻辑和功能的计算关系。换言之,模型就是流程/状态的处理以及规则的制定。模型接受视图请求的数据,并返回最终的处理结果。模型的设计是MVC最主要的核心。B 视图是人机交互界面,即把表示模型数据及逻辑关系和状态的信息以特定形式展示给用户;B 控制从用户接收请求, 将模型与视图匹配在一起,共同完成用户的请求 。控制层是个分发器,不做任何数据处理。例:用户点击一个连接,控制层接受请求后, 并不处理业务信息,它只把用户的信息传递给模型,告诉模型做什么,选择符合要求的视图返回给用户。 v MVC结构关系与功能图v MVC的动态特性 1. 控制器接受事件输入,解释事件,启动模型;2. 模型执行所请求的服务,产生模型内部数据和状态的变化;3. 模型变化通过注册表更新控制器;4. 控制器通知视图更新;5. 控制器进行下一轮控制。 v MVC结构的优点 1. 健壮性一个模型可有多个视图;在用户需求的快速变化下,可能满足多种方式访问应用的要求 ;2. 扩展性视图与控制器的可接插性;3. 复用性可移植性,由于模型和视图是独立的,所以,模型和视图都可以移植;4. 标准化可扩展的人机交互框架结构。v MVC结构的缺点 1. 可能增加系统的复杂性。对于简单的界面,严格遵循MVC,使模型、视图与控制器分离,会增加结构的复杂性,并可能产生过多的更新操作,降低运行效率。 2. 视图对模型数据的低效率访问。依据模型操作接口的不同,视图可能需要多次调用才能获得足够的显示数据。对未变化数据的不必要的频繁访问,也将损害操作性能。 3. 使用现代用户界面工具困难。现在高级的界面工具或构造器不支持MVC模式。改造这些工具以适应MVC需要和建立分离的部件的代价是很高的,从而造成使用MVC的困难。 表示-抽象-控制器结构(PAC结构)v PAC与软件Agent1. PAC是以相互协作的代理程序(Agent)组成的、树型层次结构的、交互式的软件体系结构。2. 软件Agent技术是其组件的核心技术;3. 软件Agent程序由表示-抽象-控制(P-A-C)三个组件组成;v 软件Agent的优点:1.对Agent组成的系统可以进行自然的描述,有利于各有关人员对软件系统的理解。比如在虚拟现实系统中,人物或其它角色可以自然地表示为自治的、具有个性化的和社会性的Agent. 2.Agent软件系统具有灵活性,有利于现有软件的集成。3.具有开放性和复杂性。v 软件Agent的属性:自主性Agent是指在协同工作环境中独立自主的行为实体。Agent能够根据自身内部的状态和外界环境中的各种事件来调节和控制自己的行为;适应性Agent在某种程度上能够响应其它Agent或环境。 交互性Agent能不断地监测周围的环境和其它Agent所发出的交互信息和服务请求。由Agent事件处理系统控制自身的行为,使其与其它Agent有效协同地工作,并能以类似人类的工作方式和人进行交互。 主动性Agent能自觉承担某些事件,并能遵循承诺,利用内部知识和能力持续主动地产生面向静态或动态目标的行为,直到完成整个任务。 独立性Agent可以看成是一个“逻辑单位”的行为实体,如同面向对象思想中的类概念,对其内部状态的信念、事实、过程及通讯信息进行封装,使Agent成为协同系统中界限明确、能够被独立调用的计算实体。反应性指Agent利用其事件感知器感知周围的物理环境、信息资源、各种事件的发生和变化,并能够调整自身的内部状态,做出最优的适当的反应,使整个系统协调地工作。Agent也能对突发事件做出相应的反应。代理性若当前内部状态和周围事件适合某种条件,Agent就能代表用户有效地执行相应的任务,Agent还能对一些使用频率较高的资源进行“封装”,引导用户对这些资源进行访问,成为用户通向这些资源的“中介”。例如,Agent能根据用户自身的特点、爱好、习惯等自动代替网络用户寻找、收集、存储一些对用户有用的信息资源,加强了用户信息的完整性、全面性和实时性。此时Agent就充当了人类助手的角色。协作性一个Agent所能实现的目标往往是目标集的一部分,因此它必须与其它Agent通过信息共享、观点的互相激励协商,帮助群体聚焦于待求解问题最相关的信息等手段合作最终来共同实现目标。智能性 Agent根据内部状态针对外部环境,通过感知器和执行器执行感知一推理一动作循环,这可通过人工智能程序设计或机器学习两种方式获得。 移动性Agent能够将自己从一个环境转移到另一个环境。社交性具有友好与愉悦社会关系的交互,即Agent是和蔼可亲的、好交往的、友好的。竞争性能够与其它Agent协作,除非一个Agent的成功意味着另一个Agent的失败(合作的对立面)。继承性沿用了面向对象中的概念,对Agent进行分类,子Agent可以继承其父Agent的信念、事实、属性等。坚实性能够健壮地处理错误与不完全的数据。理智性能够根据内部目标与知识选择行为,做出接近自己目标行为。v 基于Agent的PAC树型结构1. 根部PAC代理程序提供系统的主要功能。B 抽象组件提供系统的全局数据模型、数据模型的操作、信息检索等,其数据表示采用自然表示法;与显示媒体无关。B 控制组件有三个功能:F 允许下层代理程序使用根部代理程序;F 协调各级PAC代理之间的关系;F 保存用户与系统的交互信息。B 表示组件包含一些用户界面信息。2. 叶部PAC代理程序表达独立语义概念的用户界面,实现系统的各种服务功能。B 表示组件定义具体的视图,提供用户交互功能;B 抽象组件定义和保存叶部数据;B 控制组件负责与上层代理通信、交换数据和事件。3. 干部PAC代理程序完成系统内的合成与协作功能,维护叶部各代理程序的一致性,协调相同数据的多个视图。B 表示组件实现干部的具体的视图,即用户界面,如Excel软件的用户界面;B 抽象组件定义和保存干部数据;B 控制组件负责与上层代理通信、交换数据和事件。v PAC结构的优点1. 独立的代理程序2. 易于维护和扩展3. 支持多任务v PAC结构的缺点1. 增加了系统设计的复杂性2. 代理程序之间的协调与控制难度大3. 代理程序之间的通信会影响系统效率客户/服务器结构一.C/S结构 C/S结构是一种软件系统体系结构,它充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,其特点为:B 降低了系统的通讯开销;B 应用服务器运行数据负荷较轻; B 数据的储存管理功能透明 ;B C/S架构的劣势是高昂的维护成本且投资大 。服务器的任务 (1)数据库安全性的要求; (2)数据库访问并发性的控制; (3)数据库前端的客户应用程序的全局数据完整性规则; (4)数据库的备份与恢复。客户应用程序的任务 (1)提供用户与数据库交互的界面; (2)向数据库服务器提交用户请求并接收来自数据库服务器的信息; (3)利用客户应用程序对存在于客户端的数据执行应用逻辑要求。C/S的的优点F C/S 体系结构具有强大的数据操作和事务处理能力,模型思想简单,易于人们理解和接受。F 系统的客户应用程序和服务器构件分别运行在不同的计算机上,系统中每台服务器都可以适合各构件的要求,这对于硬件和软件的变化显示出极大的适应性和灵活性,而且易于对系统进行扩充和缩小。F 在C/S体系结构中,系统中的功能构件充分隔离,客户应用程序的开发集中于数据的显示和分析,而数据库服务器的开发则集中于数据的管理,不必在每一个新的应用程序中都要对一个DBMS进行编码。将大的应用处理任务分布到许多通过网络连接的低成本计算机上,以节约大量费用。 C/S的的缺点F 开发成本较高F 客户端程序设计复杂F 信息内容和形式单一F 用户界面风格不一,使用繁杂,不利于推广使用F 软件移植困难F 软件维护和升级困难(?)F 新技术不能轻易应用二. B/S的三层结构B 浏览器/服务器(B/S)风格就是上述三层应用结构的一种实现方式,其具体结构为:浏览器/Web服务器/数据库服务器。B B/S结构也是C/S结构的一种变化,或者改进的结构。它的用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端实现,但是主要事务逻辑在服务器端,是“瘦”客户机,“胖”服务器结构。而C/S结构是“胖”客户机,“瘦”服务器结构 其特点是:B 维护和升级方式简单 ;B 成本降低,选择更多 ;B 应用服务器运行数据负荷较重 ;B 数据安全性(哪一种更安全?)B/S结构的优点:F 基于B/S体系结构的软件,系统安装、修改和维护全在服务器端解决。用户在使用系统时,仅仅需要一个浏览器就可运行全部的模块,真正达到了“零客户端”的功能,很容易在运行时自动升级。F B/S体系结构还提供了异种机、异种网、异种应用服务的联机、联网、统一服务的最现实的开放性基础。B/S结构的缺点:F B/S体系结构缺乏对动态页面的支持能力,没有集成有效的数据库处理功能。F B/S体系结构的系统扩展能力差,安全性难以控制。F 采用B/S体系结构的应用系统,在数据查询等响应速度上,要远远地低于C/S体系结构。F B/S体系结构的数据提交一般以页面为单位,数据的动态交互性不强,不利于在线事务处理。 客户/服务器的连接方式1. 远程调用2. 消息机制3. 进程调度4. 线程调度5. 线程池调度 客户/服务器风格的优点和缺点优点1. 结构简单,系统中不同类型的任务分别由客户和服务器承担,有利于发挥不同机器平台的优势;2. 支持分布式、并发环境,特别是当客户和服务器之间的关系是多对多时,可以有效地提高资源的利用率和共享程度;3. 服务器集中管理资源,有利于权限控制和系统安全。缺点:在大多数client/server风格的系统中,组件之间的连接通过(远程)过程调用,接近于代码一级,表达能力较弱.COM/DCOM/COM+组件这种风格的体系结构的最大优点是能够实现快速程序开发COM/DCOM/COM+的关系COM/DCOM的基本特征1. 类和对象2. COM/DCOM方法可通过网络调用3. COM对象在世界上必须是唯一的4. COM是语言无关的5. 接口将客户和服务器隔离开来COM+的几个主要特性:1.真正的异步通讯。2.事件服务。3.可伸缩性。4.继承并发展了MTS的特性。5.可管理和可配置性。6.易于开发。分布式系统的软件体系结构 1. 自治性 Autonomy2. 可靠性 Reliability3. 可接受性 Availability4. 可扩展性 Scalability5. 互操作性 Interoperability分布式软件体系结构的三种模型:1. DNA:Distributed interNet Application Architecture2. OMA: Object Management Architecture3. EJB;Enterprise JavaBean采用云计算的 5 大理由 1. 提高现有资源的利用率:打破原有的“一台服务器一个应用程序”模式。 2. 通过缩减物理基础架构和提高服务器/管理员比率,降低数据中心成本。 3. 提高硬件和应用程序的可用性,进而提高业务连续性:可安全地备份和迁移整个虚拟环境而不会出现服务中断。 4. 引入自动化管理,实现运营灵活性。 5. 提高桌面的可管理性和安全性。 代理者结构(Broker)1. 代理者结构主要用于构建中间有隔离组件的分布式系统;2. 代理者组件负责协调分布式系统中的异构系统之间的通信;3. 使用代理者结构的目的是分布式系统的变动,不会影响到客户端的服务.代理者体系结构经典CORBA目前分布式对象技术有3种主流技术COM+、Java和COBRACORBA的特点是大而全,互操作性和开放性非常好。COBRA标准主要分为3个层次:B 对象请求代理最底层是对象请求代理ORB,规定了分布对象的定义(接口)和语言映射,实现对象间的通讯和互操作,是分布对象系统中的“软总线”;B 公共对象服务在ORB之上定义了很多公共服务,可以提供诸如并发服务、名字服务、事务(交易)服务、安全服务等各种各样的服务;B 公共设施最上层的公共设施则定义了组件框架,提供可直接为业务对象使用的服务,规定业务对象有效协作所需的协定规则。 CORBA技术规范 1. 接口定义语言(IDL)2. 接口池(IR)3. 动态调用接口(DII)4. 对象适配器(OA)CORBA的优点 1. 定义了一种面向对象的软件构造方法,使不同的应用可以共享由CORBA构造出来的软件。2. 每个对象都对其内部操作细节封装,向外部提供接口,降低了应用系统的复杂性,也降低了应用系统的开发费用。3. CORBA的平台无关性实现了对象的跨平台引用。4. CORBA的语言无关性,使得软件开发中能大量使用现有成果CORBA的缺点 CORBA的缺点是庞大而复杂,并且技术和标准的更新相对较慢 。代理者体系结构的优点1. 定位的透明性客户不用关心服务器的物理位置,服务器也不用关心客户的物理位置。2. 组件的可变更和可扩展性API不变,只改变内部实现不会对调用者产生影响。3. 系统可移植性用户API、网桥、代理保证了系统的移植性。4. 代理者系统间的互操作性网桥5. 可重用性用户API、网桥、代理保证了可重用性代理者体系结构的缺点1. 效率低中间层多。2. 容错性差一个程序失效,依赖此程序的功能模块都失效。3. 测试和调试困难多层、多组件、透明等微核(MicroKernel)结构 微核的结构微核结构定义了五个组件:1. 微核2. 内部服务器3. 外部服务器4. 客户程序5. 适配器微核结构的优点1. 适应性2. 可靠性3. 透明性4. 可维护、可扩展、可升级5. 可移植性微核结构的缺点1.复杂性2.速度慢映像(Reflection)结构映像结构概述1. 随着时间的变化,人们对软件系统的要求也在变化,重新开发新的软件会受到成本和时间的限制,因此要求已开发的软件具有动态改变的功能;2. 映像结构就是为了解决上述问题而提出的一种软件体系结构;3. 映像结构支持动态改变软件结构和行为,即支持类型结构和函数调用机制的修改;4. 映像结构可分成两个层次:元层次和基本层次映象结构的优点:1.应用服务变更时,不直接修改元对象和源(元)代码,只是修改映象程序;2.元对象提供一个安全的、统一的软件修改机制,使修改软件变得容易了。3.元对象封装系统的行为、状态和调用机制等,因此,映象结构能够支持行为、状态和调用机制等的修改。映象结构的缺点:1. 由于元层次与基本层次之间的耦合性较强,软件修改存在着隐患;2. 增加了很多的映象程序,组件数目增加;3. 软件效率低;4. 并非能实现所有的改变;5. 并不是所有的程序设计语言都支持映象结构异构结构(Heterogeneous Architecture)异构结构常用的方法 1. 层次组合组件可以分层进行组合。2. 不同机制的组件间的接口对接通过接口形成异构结构;3. 组件使用混合连接器如:CORBA4. 不同机制的融合系统包含文件、消息、调用等机制。软件体系结构的设计模式一个好的设计模式必须做到以下几点:1. 解决一个(类)问题:从模式可以得到解,而不仅仅是抽象的原则或策略。2. 是一个被证明了的概念,而不是通过理论或推测。3. 其解并不是显然的:许多解决问题的方法(例如软件设计范例或方法)是从最基本的原理得到解;而最好的方法是以非直接的方式得到解,对大多数比较困难的设计问题来说,这是必要的。4. 描述了一种关系:模式并不仅仅描述模块,它给出更深层的系统结构和机理。5. 模式有重要的人为因素:所有的软件服务于人类的舒适或生活质量,而最好的模式追求它的实用性和美学。设计模式的基本成分 1. 模式名称 2. 针对的问题 3. 解决方案 4. 后果 a整体部分模式(1)概述整体部分模式是支持组件结构化分解的设计模式;整体是完成某项功能的组件(部分)的封装,整体对外提供接口,不允许直接访问整体内的组件(部分);整体部分模式的3种组织方式1. 组装部分关系所有的组成部分根据组装的内部结构集成在一起,部分之间强相关;2. 容器内容关系容器是对象的集合,部分之间弱相关;3. 收集成员关系将相似的对象组合在一起。(2) 设计方法B “自顶而下”的方法F 首先设计整体功能,及其接口;F 将整体功能分解成若干个方法或功能模块。B “自下而上”的方法F 每一项小的功能设计成一个方法或一个功能模块;F 再设计一些组件使功能模块连接起来,形成部分;F 将部分整合,并设计对外接口,形成整体。整体部分的优点B 部分的可更改性;B 事务分离,实现复杂问题简单化;B 可重用性。整体部分的缺点B 效率较低;B 分工协作困难;B 分解过程复杂。B主控从属模式(1)概述B 主控从属模式主要用于分布式系统或多CPU系统;B 主控从属模式是主控将总任务分成若干个独立的子任务,分配给具有相同功能的从属组件;B 主控提供基本的控制策略,从属完成具体的功能;B 主控从属模式的关键技术是任务的划分和任务的分配算法(负载平衡)。B 主控从属模式的任务的划分和任务的分配对客户透明;B 主控从属模式主要应用于如下领域:F 分布式系统F 并行计算F 精确计算(2)主控从属模式的动态行为 主控从属模式的优点B 可扩充性B 可互换性B 高效率B 事务分离主控从属模式的缺点B 可行性差B 过分依赖硬件B 算法设计困难c代理(Proxy)模式(1)概述B 代理模式是一种对组件进行访问控制和保护的模式;B 如果应用程序不能直接访问组件,代理程序在应用程序和组件之间建立桥梁;B 如果组件需要保护,代理程序在应用程序和组件之间设置访问控制;B 代理模式主要应用于如下3种情况:F 被访问对象的资源由于地域、运行开销、权限等因素的限制,不能对对象进行操作;F 被访问对象复杂多变,代理程序起到分析、决策、组织和协调作用,为应用程序提供接口;F 解决安全问题。(2)代理模式的动态行为代理模式的优点B 将服务组件与客户程序分离,安全,可靠,可扩充,易变更;B 事务分离,减轻了客户程序的负担,使客户程序更为简单;B 可重用,降低成本。代理模式的缺点B 降低了效率;B 增加了软件的复杂性;B 降低了客户程序的能力。D发送接收模式(1)概述B 发送接收模式是一种对等交互模型的软件系统模式,这种模式提供位置透明、进程透明的进程间通信;B 发送接收模式引入发送器和接收器,使对等交互实体从低层通信机制中隔离出来;B 发送接收模式降低组件之间的耦合性;B 发送接收模式往往引入中间件,实现透明性。B 发送接收模式由3种构件组成:F 对等体负责完成应用任务F 发送器负责发送跨进程的消息,IPC(Inter-process communication )接口,IPC机制F 接收器负责接收消息, IPC接口,IPC机制发送接收模式的优点B 有效的进程间的通信;B 可扩充、可变更、可移植、可重用;B 透明性。发送接收模式的缺点B 可靠性差的无法
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 保险关键承揽合同
- 保险基础货代合同
- 趣味IQ智商测试题及答案
- 哈尔滨市松北区2026年三年级数学第一学期期末检测试题含解析
- 鑫岩煤矿考试题及答案
- 腹泻考试题及答案
- 勐海县2027届数学三上期末学业质量监测模拟试题含解析
- 老虎团考试题及答案
- 2026年橡胶压延工序考试试题及答案
- 某服装厂考勤制度
- 超声科住院医师规范化培训结业临床实践能力考核标准方案(2022版)
- 沉香与健康课件图片
- 财务资金管理培训
- 儿童碰伤应急处理
- 中建室外管网专项施工方案
- 污水处理PPP项目招标文件
- SYT 6378-2021 油水井取套回接工艺作法-PDF解密
- 监理抽检记录表格
- YY 0469-2023医用外科口罩
- 山西兰花科技创业股份有限公司大阳煤矿分公司煤炭资源开发利用、地质环境保护与土地复垦方案
- 中国越剧唱腔知到章节答案智慧树2023年浙江艺术职业学院
评论
0/150
提交评论