文档详情

面向对象设计 5.3 软件架构风格

郭**
实名认证
店铺
DOCX
604.22KB
约31页
文档ID:194642434
面向对象设计 5.3 软件架构风格_第1页
1/31

•理解软件架构风格• 理 分•理解数据共享体系架构•理解事件马区动体系架构•理解客户机/月艮务器体系架构•理解微效劳体系架构一、 什么是软件架构风格?软件架构风格是指针对不同系统共性问题提供一般性可重用的软件架构解决方 案,它反映了领域中众多系统所共有的软件结构和语义特性,并指导如何将软 件构件与子系统有效地组织成一个完整系统二、 软件架构风格要素软件架构风格描述了特定应用领域中软件系统组织构件的惯用模式,其要素如 下:-软件架构包含哪些类型的构件与连接件?-组成系统的结构模式是什么?-根本的计算模型是什么?-架构的根本特性是什么?-架构使用的常见例子是什么?-架构的优缺点是什么?三、软件架构风格应用意义-定义了一类软件系统架构的要素和一组指导系统架构设计的规那么它可促进软件系统设计的复用,使得一些经过实践证实的软件架构方案能 够可靠地解决新问题通过对标准软件架构风格的应用可支持不同系统之间互操作性,以便于实 现系统集成在特定设计空间下,便于对软件系统相关设计作出分析 四、软件架构风格分类风格类型典型风格数据流风格批处理序列架构、管道/过滤器架构调用/返回风格主程序/子程序架构、面向对象架构、分层体系架构独立构件风格进程通讯架构、事件驱动架构虚拟机风格解释器架构、基于规那么的系统架构客户/效劳器风格客户/效劳器架构、浏览器/效劳器架构面向效劳风格面向效劳架构(SOA)、微效劳架构仓库风格数据共享体系架构、黑板系统架构五、分层体系架构分层体系架构采用层次化方式组织功能构件,每一层都是为上一层提供服 务,并使用下一层提供的功能。

表示层构件 构件 .一 构件业务逻辑层构件 构件 ・.. 构件数据存取访I、可层构件 构件 ・.. 构件数据存储层数据库 数据库 •一 文件系统•将软件系统分成假设干个水平层 ,每一层都有清晰的功能处理 分工,各层不需要知道其他层 的细节,层与层之间通过接口 通信•用户对软件系统的访问请求将 依次通过各层功能逻辑构件进 行处理,不允许跳过其中任何 —层应用案例:Linux系统架构HJPtt1 1字样也备!块说答i4Wrm调度W序内“筒斤T内峻0饭分层体系架构优点:•便于将复杂系统分层设计,使整体设计更加简洁与清晰•支持系统功能扩展设计,每层的功能修改最多只影响相邻层•支持重用,只要给相邻层提供相同接口,就可允许实现功能复用分层体系架构缺点:•并不是每个系统都可以很容易地划分层次,此外,层次的划分没有一个统—的方法•层次过多,会造成系统性能降低•当用户请求大量增加时,必须依次扩展每一层如果某层的内部是耦合的, 系统扩展较困难 六、数据共享体系架构数据共享体系架构是一种以数据存储效劳器为中心,为客户软件提供数据 共享、数据交换访问的软件架构风格在数据共享体系架构中,各个 客户软件相互独立,它们通过 共享数据存储效劳器实现数据 交换。

一个客户软件对共享数据进行 了修改,其他客户软件可以获 得数据变更信息 应用案例:基于数据共享体系架构的数据挖掘与分析系统ns分析 多绝临式数据共享体系架构优点:•体系架构简单,容易实现软件开发•可有效地实现大量数据共享,新客户软件参加系统,无须考虑其他客户软件 的存在•只要遵循共享数据访问接口,各个客户软件可以独立执行数据共享体系架构缺点:.当共享数据结构发生变化,各客户软件都需要进行数据访问调整,通常比拟 麻烦•当客户软件大量增加时,共享数据存储将面临性能压力•共享数据存储效劳器作为系统的中央单元,假设没有考虑高可用性方案,它一 旦故障将导致整个系统无法运行•共享数据存储难以实现分布式处理 七、事件驱动体系架构事件驱动体系架构是一种基于事件机制实现软件构件之间进行通信的软件架构事件发布者事件订阅者 事件诚者事件发布者构件(子系统)之间并不直 接交互,而是通过触发一个 或多个事件,隐式调用另一 构件执行系统各构件需要在消息处理 器中注册相关事件,一旦事 件触发,将隐含调用注册构 件进行处理,并将处理结果 返回事件发布构件应用案例:Windows事件驱动模型事件驱动体系架构优点:•具有良好的可扩展性。

通过注册可引入新的构件,而不影响现有构件•便于软件维护只要构件名不变,可以用一个构件代替另一个构件•构件之间耦合性低,容易实现软件重用事件驱动体系架构缺点:•构件削弱了自身对系统的控制能力一个构件事件触发时,并不能保证其 它构件会对其进行事件响应•消息传送机制不能很好地解决数据交换问题器上运行客户机客户端构件效劳请求I结果响应效劳器效劳端构件客户端与效劳端构件一般是分别部署在客户机和效劳器中,通过网络连接进行通信,八、客户机/效劳器软件架构客户机/效劳器软件架构是一种典型的分布系统体系架构,其软件分为客户 端构件和效劳端构件,客户端构件通常在客户机上运行,效劳端构件在效劳客户机/效劳器架构采用分布式系统模式, 它将界面展示 应用逻辑与数据存取构件 分布在多个节点机上进行处理客户端构件为完成特定工作向效劳端构件 发出请求,效劳端构件处理客户端构件请 求并返回结果也可以将它们部署在同一物理机器内部1. C/S架构原理善户机应用案例:基于C/S架构的企业固定资产管理平台固定资产管理拱叫时土高固定资产管理DDN/ADSIVISOM FSTM/INTKRMETS定资产管理打m机C/S架构优点:•可实现分布式计算处理,有利于系统负载分担。

•交互性强、具有平安的存取模式、响应速度快 利于处理大量数据C/S架构缺点:•缺少通用性,系统维护、升级需要重新安装部署,增加了维护和管理的难度•只限于小型的局域网应用2. B/S架构原理客户机Web月艮务器应用效劳器浏览器数据访问请求业务处理刁M台业务处理结束 —q数据库效劳器A数据存取开始数据存耳乂开始数据存耳又请术数据存耳又请术数据存取结束A数据存耳乂结束业务逻辑层业务逻辑层应用案例:基于B/S架构的物流管控系统平台客户遂浏览器效劳端展现层效劳端业务逻粗层效劳蠕教据集成层效劳组件、 领域模型业务规那么败据处理 权限控制DBB/S架构优点:•分布性强,效劳器可以在任何地点•访问方便,只要有网络、浏览器,就可以对系统应用进行访问•系统处理负载能力强,可以将负载分布Web效劳器、应用效劳器、数据库服 务器处理通过负载均衡、集群技术可以支持更大负载处理•系统运维方便,只需要在效劳器进行功能修改与发布,即可实现所有用户 的同步更新•用户共享性强,可以支持不同地点用户共享访问系统B/S架构缺点:•个性化处理、人机交互性能不如C/S架构软件•在系统平安性设计需要考虑更多内容 九、微核体系架构微核体系架构又称为”插件架构二系统的软件内核相对较小,主要功能和业 务逻辑都通过插件实现。

•微核体系架构将待开发的目标软件分为 软件内核(平台)和插件两个局部・平台实现软件的核心功能和插件管理功 能・插件实现软件功能的运行时扩展与补充, 它是一种按照统一的预定接口标准实现 的功能程序 应用案例:Eclipse开发平台Eclipse PlatformPlatform RuntimeEclipse ProjectTheir ToolPlug-in Development Environment (PDE)Another ToolVour ToolJavaDevelopment 1Tcx>ls《JDT)TeamWorkspaceHelp[Debugj微核体系架构优点:•良好的功能扩展性,需要什么功能,开发一个插件即可•功能之间是隔离的,插件可以独立的加载和卸载,使得它比拟容易部署•可定制性高,适应不同的开发需要•可以渐进式地开发,逐步增加功能微核体系架构缺点:•伸缩性差,内核通常是一个独立单元,不容易做成分布式•开发难度相对较高,因为涉及到插件与内核的通信,以及内部的插件登记 机制Requests ) ( Client Requests ) ( Client!^L \十、微效劳架构微效劳架构(microservices architecture )是面向效劳架构(service- oriented architecture,缩写S0A)的升级。

每一^效劳就是一个独立的部 署单元这些单元都是分布式的,互相解耦,通过远程通信协议(比方REST、 SOAP)联系•将应用软件划分成一组小型效劳,效劳之间 相互协调与配合,为用户提供功能效劳每个效劳运行在独立的进程中,效劳之间采 用轻量级通信机制进行消息交互每个效劳都围绕业务进行构建,并且能够独 立部署到运行环境•这些效劳都是分布式的,互相解耦,通过远 程通信协议(如REST、SOAP)进行交互 应用案例:淘宝开放平台PC API GatewayREST产品效劳产品DBDBREST用户效劳用户Broker微效劳架构优点:•扩展性好,各个效劳之间低耦合•容易部署,软件从单一可部署单元,被拆成了多个效劳,每个效劳都是可 音 8 单 •容易开发,每个组件都可以进行持续集成式的开发,可以做到实时部署, 不间断地升级易于测试,可以单独测试每一个效劳微效劳架构缺点:.由于强调互相独立和低耦合,效劳可能会拆分得很细这导致系统依赖大 量的微效劳,变得很凌乱和笨重,性能也会不佳分布式的本质使得这种架构很难实现原子性操作,交易回滚会比拟困难。

下载提示
相似文档
正为您匹配相似的精品文档