软件体系结构(3)剖析

上传人:今*** 文档编号:107886559 上传时间:2019-10-21 格式:PPT 页数:72 大小:444.50KB
返回 下载 相关 举报
软件体系结构(3)剖析_第1页
第1页 / 共72页
软件体系结构(3)剖析_第2页
第2页 / 共72页
软件体系结构(3)剖析_第3页
第3页 / 共72页
软件体系结构(3)剖析_第4页
第4页 / 共72页
软件体系结构(3)剖析_第5页
第5页 / 共72页
点击查看更多>>
资源描述

《软件体系结构(3)剖析》由会员分享,可在线阅读,更多相关《软件体系结构(3)剖析(72页珍藏版)》请在金锄头文库上搜索。

1、第三章 软件体系结构风格,3.1 概述 3.2 经典软件结构风格 3.3 客户/服务器风格 3.4 三层C/S结构风格 3.5 浏览器/服务器风格 3.6 公共对象请求代理体系结构 3.7 正交软件体系结构 3.8 基于层次消息总线的体系结构风格 3.9 异构结构风格 3.10 互联系统构成的系统及其体系结构 3.11 特定领域软件体系结构,3.1 概述,体系结构风格概念率先由 Perry等人在 1992年引入:软件体系结构风格是由从各种相似的、具体详细的体系结构中抽象出的组成元素及其组成关系表示的,比软件体系结构受到的限制更少、更不完全。 他们在软件体系风格上关注的主要是软件系统的组成元素以

2、及元素间的连接关系。,3.1 概述,Buschmann等人进一步完善了此定义: 软件体系结构风格根据软件系统的结构组织定义了软件系统族; 通过构件应用的限制及其与系统结构、构建有关的组成和设计规则,来表示组成元素和组成元素之间的关系; 为一个软件系统及其怎样构造该系统表示一种特殊的基本结构; 也包括何时使用它所描述的体系结构、它的不变量和特例,以及其应用的效果等信息。,3.1 概述,并且,他们将体系结构风格与体系结构模式两个概念区别开来,不仅关注构成软件系统的组成元素及其之间的连接关系,而且关注组成元素使用的约束条件、表示组成元素间关系的角度,以及体系结构风格的适用场合和应用效果。,3.1 概

3、述,Shaw等人没有区分体系结构风格和体系结构模式,将两者视为相同的概念来使用。他们认为,软件体系结构风格是软件系统结构层次上的组织风格,它根据结构组织模式定义一个系统族 (具体地,就是定义了关于构件和连接器类型的术语以及它们如何组织在一起 );某些风格还存在一个或多个语义模型,指明如何根据系统各组成成分的属性来确定系统的整体属性。,3.1 概述,Shaw等人在体系结构风格上强调的是构成软件系统的组成元素 (构件 )和连接关系 (连接器 )的类型、构件和连接器间的组织方式以及系统的属性。他们采用基于不同连接方式的分类方式首次将熟知的软件体系结构风格分为数据流系统、调用与返回系统、独立构件系统、

4、虚拟机和以数据为中心的系统五大类。,3.1 概述,Lee等人则将软件体系结构风格定义为是对构件类型、构件运行时的控制方式与 /或构件间数据传递的描述。一种体系结构风格可看做是在结构上有关构件类型约束及构件间交互约束的一个约束集合,这些约束可以定义一个系统结构族集来满足。,3.1 概述,可见, Lee等人在软件体系结构风格上不仅关注构件在体系结构中受到的静态约束,更关注运行时在体系结构中的动态约束。这在之前关于软件体系结构风格定义中从未提到过。在区别软件体系结构风格与软件体系结构时,他们与Perry等人持类似的观点,均认为软件体系结构风格与软件体系结构没有明确的界限,只是相对于描述比较具体的软件

5、体系结构而言,软件体系结构风格更抽象、更概括。,3.1 概述,1)数据流风格(Dataflow) 这种风格的典型代表有批处理序列、管道一过滤器。其中每个部件有一组输人和输出,部件从其输人读取数据流,并且产生数据流到输出,因此,部件可称为“过滤器”,这种风格中的“连接器”充当了数据流的传送渠道,将数据从“过滤器”的输出端传送到另一个“过滤器”的输人端,因此称为“管道”。,3.1 概述,1)数据流风格(Dataflow) 这种风格的优点是: 支持数据的分解,从而降低了问题的复杂度; 支持重用:只要输人输出“一致”,过滤器可以方便地组装; 系统易于维护:过滤器可以方便地被替换; 支持一定的系统性能分

6、析,如死锁、吞吐率等; 支持并发:过滤器可独立执行,也可并行执行。,3.1 概述,1)数据流风格(Dataflow) 这种风格的缺点是: 结构单一,系统通常易被组织成线形的批处理形式; 相关数据流的一致性难以保持; 在实现方面,数据的传输增加了过滤器的工作量,从而降低了系统的性能。,3.1 概述,2)调用/返回风格(call-and-return) 这种风格分两类: 一类的典型代表有面向对象系统、层次结构(Hierarchicallayer。)等。该风格是基于数据抽象和面向对象机制的,其中数据的表示及相关的操作被封装在类或对象中。该风格的部件是对象(或者说是类实例),对象之间通过函数或过程调用

7、产生交互。,3.1 概述,2)调用/返回风格(call-and-return) 该风格具有两个重要特点: 对象保持了表示的完整性,这一点通常通过控制对象中的变量来实现; 对象的表示隐蔽性。也就是说,一个对象相对于另一个对象来说其表示是透明的;对象之间通过函数或过程调用产生交互,而不必关心对方的内部表示和具体实现。,3.1 概述,2)调用/返回风格(call-and-return) 这种体系结构风格的优点有: 由于对象的封装和信息隐蔽性,提高了对象的可维护性; 使设计人员划分问题更容易。,3.1 概述,2)调用/返回风格(call-and-return) 这种体系结构风格的缺点有: 当对象访问其

8、它对象时,必须先得到对方的对象标识,因此,若一个对象的标识改变了,则那些显式调用它的对象必须做相应的修改; 副作用问题:假设对象A用于B,而C作用于B,则C对B的影响显然可能会对A产生预想不到的副作用。,3.1 概述,2)调用/返回风格(call-and-return) 另一类的典型代表是主程序/子程序、客户/服务器。这种风格的实现机制是:部件事先声明或广播一个或多个事件,其它的部件通过过程对感兴趣的事件进行注册登记。当某个事件发生时,系统就自动调用注册过该事件的那些过程。也就是说,在隐式调用软件体系结构风格中,部件是模块,其接口由一组过程和事件构成。过程可以以一般方式调用,也可以以事件注册方

9、式同部件产生联系,这样,系统运行中当某个事件发生时过程会自动地被调用。,3.1 概述,2)调用/返回风格(call-and-return) 这种风格的一个主要特点是事件声明方(部件)并不知道哪些部件会对该事件作出响应。因此,部件无法预测响应顺序,甚至无法预测有哪些响应。基于这点原因,许多系统通常增加显式调用(一般的过程调用)作为部件间交互的补偿方式。,3.1 概述,2)调用/返回风格(call-and-return) 这种风格的优点是: 支持重用:任何部件都可以通过注册系统中的事件而“插入”到系统中; 部件的“无缝”替换缓和了系统的演变,即部件替换时,不会对部件的接口造成任何影响。,3.1 概

10、述,2)调用/返回风格(call-and-return) 这种风格的缺点是: 部件无法控制系统的运行次序,因为声明事件的部件不知道哪些部件会对该事件作出响应。 第二个问题是关于数据交换的。数据有时是通过事件进行传递,有时通过全局共享仓库进行传递,这时需要加强全局操作和资源管理的控制; 无法预测或事先检测过程的正确性。在隐式调用风格的系统中,过程的语义依赖调于它的上下文(context),而上下文只有在系统运行时才知道。这一点不同于传统的过程调用,只需考虑过程的前置和后置条件即可。,3.1 概述,3)独立部件风格(Independent Components) 这种风格的典型代表有进程通讯、事件

11、系统。 这类体系结构风格是基于进程控制环的,其拓扑结构通常是环型的,这种结构风格主要应用于自动控制领域中,目前在软件行业中并不多见。,3.1 概述,4)虚拟机风格(virtual machines) 这种风格的典型代表有解释器、基于规则的系统。 解释器由被解释的伪代码和解释机本身组成。伪代码包含程序自身及其解释执行状态,解释机包括解释机自身及其当前执行状态。因此,解释器中包含四类部件:解释机、存储器、解释机控制状态表示和模拟程序的当前状态表示。解释器通常用于一个虚拟机,以减少硬件计算器和程序计算器之间的鸿沟。例如,通常我们说编程语言是一个“虚拟的Pascal机”。,3.1 概述,5)数据中心或

12、数据仓库风格(Data-Centered or Repositories) 这种风格的典型代表有数据库系统、超文本系统、黑板系统。 该风格中主要有两类部件: 一类是中心数据结构部件(又可称作“数据仓库”:Repository),表示系统的当前状态; 另一类是一组相对独立的部件集,它们可以以不同方式与数据仓库进行交互。,3.1 概述,5)数据中心或数据仓库风格(Data-Centered or Repositories) 根据控制原则的不同,这种风格的体系结构主要有两大分支:如果系统输人业务流的类型是激发进程执行的主要原因,则数据仓库是传统的数据库;如果中心数据结构的当前状态是激发进程执行的主要

13、原因,则数据仓库是黑板(Blackboard),其中黑板体系结构风格主要应用于需进行复杂解释的信号处理领域中,如语音与模式识别。,3.1 概述,总而言之,不同的体系结构风格具有各自的不同特点,通常采用框架(Framework)来描述体系结构风格。即一个特定的体系结构可看作是由一组“部件”(Components)和描述部件间交互作用关系的“连接”(connectors)构成。如客户、服务器、过滤器、层次、数据库等都是部件,过程调用、事件广播、数据库协议和管道等都是连接。,3.1 概述,一种软件体系结构风格以样本(Pattern)的形式定义了一类同族系统的体系结构。更具体地说,一种软件体系结构风格

14、定义了一个由部件和连接组成的词汇库,及将它们“粘合”在一起的一组约束(constraints)。此外,许多体系结构风格还提供语义模型(semantic models),以说明组件的特性如何决定系统的总体特性。,3.3 客户/服务器风格,网络计算经历了从基于宿主机的计算模型到客户/服务器计算模型的演变。 在软件体系结构的风格设计中,客户/服务器(Client/Server,C/S)风格无疑曾是最重要的风格。客户/服务器计算技术在信息产业中占有重要的地位。 C/S软件体系结构,即Client/Server (客户机/服务器)结构,是基于资源不对等,且为实现共享而提出来的。 C/S结构以局域网为中心

15、,将应用一分为二,服务器(后台)负责数据管理,客户机(前台)完成与用户的交互任务。,3.3 客户/服务器风格,客户/服务器应用模式的特点是大都基于“胖客户机”结构下的两层结构应用软件。 优点: (1)模型思想简单,易于理解和实现。 (2)C/S结构的优点是能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器,客户端响应速度快。,3.3 客户/服务器风格,缺点: (1)客户端很庞大,以致于应用程序升级和维护时十分困难且耗资很大。 (2)事务层不能与跨平台的客户端共享。 (3)孤立了不同的逻辑组件。 (4)没有统一的数据逻辑层来提供不同种类的数据存储层。,3.4 三层C/S结构

16、风格,与二层C/S结构相比,在三层C/S体系结构中,增加了一个应用服务器。 三层C/S体系结构是将应用功能分成表示层、功能层(业务逻辑层、业务层、逻辑层、商务层等)、数据层三个部分。,3.4 三层C/S结构风格,与传统的二层结构相比,三层C/S结构具有以下优点: (1)允许合理地划分三层结构的功能,使之在逻辑上保持相对独立性,从而使整个系统的逻辑结构更为清晰,能提高系统和软件的可维护性和可扩展性。 (2)允许更灵活有效地选用相应的平台和硬件系统,使之在处理负荷能力上与处理特性上分别适应于结构清晰的三层。并且这些平台和各个组成部分可以具有良好的可升级性和开放性。,3.4 三层C/S结构风格,与传统的二层结构相比,三层C/S结构具有以下优点: (3)应用的各层可以并行开发,各层也可以选择各自最适合的开发语言。 (4)允许充分利用功能层有效地隔离开表示层与数据层,未授权的用户难以绕过功能层而利用数据库工具或黑客手段去非法地访问数据层,这就为严格的安全管理奠定了坚实的基础。整个系统的管理层次也更

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

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号