软件体系结构_第1页
软件体系结构_第2页
软件体系结构_第3页
软件体系结构_第4页
软件体系结构_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

软件体系结构知识总结软件体系结构知识总结 1 什么是软件体系结构 什么是软件体系结构 软件体系结构是以组件和组件之间的关系 组件和环境之间的 关系为内容的某一系统的基本组织结构 以及指导上述内容设计与 演化的原理 2 SA 的两大流派的两大流派 1 决策派决策派 是在一些重要方面所作出的决策集合 a 关注架构实践中的主体 人 以人的决策为描述对象 b 归纳了架构决策的类型 指出架构决策不仅包括关于软件系统 的组织 元素 子系统和架构风格等几类决策 还包括关于众多 非功能需求的决策 2 组成派组成派 将系统描述为组件及组件之间的交互 SA 组件 交互 a 关注架构实践中的客体 软件 以软件本身为描述对象 b 分析了软件的组成 即软件由承担不同计算任务的组件组成 这些组件通过相互交互完成更高层次的计算 3 软件体系结构的核心模型软件体系结构的核心模型 4 什么是构建 组件 什么是构建 组件 构件是指语义完整 语法正确和有可重用价值的单位软件 是 软件重用过程中可以明确辨识的系统 结构上 它是语义描述 通 讯接口和实现代码的复合体 软件体系结构的核心 模型由构件 连接件 配置 configuration 端口 port 和角色 role 其中构件 连 接件和配置是最基本的元素 例如 RPC 的角色为 caller 和 callee pipe 的角色 是 reading 和 writing 消息 传递连接件的角色是 sender 和 receiver 狭义 sun 的 EJB 微软的 DCOM 分布式构件对象模型 对象管理集团的 CORBA 通用对象请求代理 广义 软件体系结构的构造快 构件 IEEE P1471 标准 IEEE P1471 于 2000 年 9 月 21 日通过 IEEE SA 标准委员会评 审 IEEE P1471 适用于软件密集的系统 其目标在于 便于体系结 构的表达与交流 并通过体系结构要素及其实践标准化 奠定质量 与成本的基础 IEEE P1471 详细介绍了一套体系结构描述的概念框架 并给出 建立框架的思路 但如何描述以及具体的描述技术等方面缺乏更进 一步的指导 5 4 1 视图视图 4 1 模型概述 1 逻辑视图 Logical View a 设计的对象模型 使用面向对象的设计方法时 b 作用 主要支持系统的功能需求 即系统提供给最终用户的 服务 在逻辑视图中 系统分解成一系列的功能抽象 这些抽象主 要来自问题领域 c 针对的风险承担者 终端用户 2 开发视图 Development View a 描述了在开发环境中软件的静态组织结构 b 作用 开发视图也称实现视图 Implementation View 主要 侧重于软件模块的组织和管理 开发视图通过系统输入输出关系的 模型图和子系统图来描述 c 针对的风险承担者 开发人员 程序员 3 进程视图 Process View a 捕捉设计的并发和同步特征 场景 逻辑视图开发视图 进程视图物理视图 最终用户 功能需求编程人员 软件管理 系统集成人员 性能 可扩充 吞吐量等 系统工程人员 系统 拓扑 安装 通信等 场景 b 作用 进程视图侧重于系统的运行特性 主要关注一些非功 能性的需求 进程视图强调并发性 分布性 系统集成性和容错能 力 以及从逻辑视图中的主要抽象如何适合进程结构 它也定义逻 辑视图中的各个类的操作具体是在哪一个线程中被执行的 c 针对的风险承担者 系统集成人员 4 物理视图 Physical View a 描述了软件到硬件的映射 反映了分布式特性 b 作用 物理视图主要考虑如何把软件映射到硬件上 它通常 要考虑到系统性能 规模 可靠性等 解决系统拓扑结构 系统安 装 通讯等问题 c 针对的风险承担者 系统工程人员 5 场景 Scenarios 场景可以看作是那些重要系统活动的抽象 它使四个视图有机 联系起来 从某种意义上说场景是最重要的需求抽象 在开发体系 结构时 它可以帮助设计者找到体系结构的构件和它们之间的作用 关系 同时 也可以用场景来分析一个特定的视图 或描述不同视 图构件间是如何相互作用的 小结 逻辑视图和开发视图描述系统的静态结构 而进程视图 和物理视图描述系统的动态结构 6 ADL ACME 1 ADL Architecture Description Language 软件体系结构 描述语言 2 ADL 的三个基本要素 a 构件 计算或数据存储单元 b 连接件 用于构件之间交互建模的体系结构构造块及其支 配这些交互的规则 c 体系结构配置 描述体系结构的构件与连接件的连接图 3 在 ACME 中定义了 7 种体系结构实体 分别是构件 连接 件 系统 端口 角色 表述 representations 和表述映射 map 例 例 P120 7 什么是软件体系结构的风格 什么是软件体系结构的风格 软件体系结构风格是描述某一特定应用领域中系统组织方式的 惯用模式 idiomatic paradigm 体系结构风格定义了一个系统家族 即一个体系结构定义一个词汇表和一组约束 词汇表中包含一些构 件和连接件类型 而这组约束指出系统是如何将这些构件和连接件 组合起来的 8 体系结构风格的经典分类体系结构风格的经典分类 1 数据流风格 批处理序列 管道 过滤器 2 调用 返回风格 主程序 子程序 面向对象风格 层次风格 3 独立构件风格 进程通讯 事件系统 4 虚拟机风格 解释器 基于规则的系统 5 仓库风格 数据库系统 超文本系统 黑板系统 9 管道管道 过滤器过滤器 每个构件都有一组输入和输出 构件读输入的数据流 经过内 部处理 然后产生输出数据流 这个过程通常通过对输入流的变换 及增量计算来完成 所以在输入被完全消费之前 输出便产生了 这里的构件被称为过滤器 这种风格的连接件就象是数据流传 输的管道 将一个过滤器的输出传到另一过滤器的输入 管道和过滤器风格的优点 管道和过滤器风格的优点 使得软构件具有良好的隐蔽性和高内聚 低耦合的特点 允许设计者将整个系统的输入 输出行为看成是多个过滤器的行 为的简单合成 支持软件重用 只要提供适合在两个过滤器之间传送的数据 任何两个过滤器都可被连接起来 系统维护和增强系统性能简单 新的过滤器可以添加到现有系 统中来 旧的可以被改进的过滤器替换掉 允许对一些如吞吐量 死锁等属性的分析 支持并行执行 每个过滤器是作为一个单独的任务完成 因此 可与其它任务并行执行 管道和过滤器的缺点 管道和过滤器的缺点 通常导致进程成为批处理的结构 这是因为虽然过滤器可增量 式地处理数据 但它们是独立的 所以设计者必须将每个过滤器看 成一个完整的从输入到输出的转换 不适合处理交互的应用 当需要增量地显示改变时 这个问题 尤为严重 因为在数据传输上没有通用的标准 每个过滤器都增加了解析 和合成数据的工作 这样就导致了系统性能下降 并增加了编写过 滤器的复杂性 10 三层三层 C S 表示层 是应用的用户接口部分 担负着用户与应用间的对话 功能 功能层 相当于应用的本体 它是将具体的业务处理逻辑编入 程序中 数据层 就是数据库管理系统 负责管理对数据库数据的读写 11 C S 与与 B S 混合的两种模式混合的两种模式 1 内外有别 模型 在 C S 与 B S 混合软件体系结构的 内外有别 模型中 企业 内部用户通过局域网直接访问数据库服务器 软件系统采用 C S 体 系结构 企业外部用户通过 Internet 访问 Web 服务器 通过 Web 服务器再访问数据库服务器 软件系统采用 B S 体系结构 内外 有别 模型的结构图如下 内外有别 模型的优点是外部用户不直接访问数据库服务器 能保证企业数据库的相对安全 企业内部用户的交互性较强 数据 查询和修改的响应速度较快 内外有别 模型的缺点是企业外部用户修改和维护数据时 速度较慢 较繁琐 数据的动态交互性不强 2 查改有别 模型 在 C S 与 B S 混合软件体系结构的 查改有别 模型中 不管 用户是通过什么方式 局域网或 Internet 连接到系统 凡是需执 行维护和修改数据操作的 就使用 C S 体系结构 如果只是执行一 般的查询和浏览操作 则使用 B S 体系结构 查改有别 模型的 结构如下图 查改有别 模型体现了 B S 体系结构和 C S 体系结构的共同 优点 但因为外部用户能直接通过 Internet 连接到数据库服务器 企业数据容易暴露给外部用户 给数据安全造成了一定的威胁 12 什么是面向服务的软件体系结构什么是面向服务的软件体系结构 SOA W3C 定义 SOA service oriented architecture 为一种应用程序 体系结构 在这种体系结构中 所有功能都定义为独立的服务 这 些服务带有定义明确的可调用接口 可以以定义好的顺序调用这些 服务来形成业务流程 13 PaaS IaaS SaaS 分别是什么 分别是什么 1 PaaS Platform as a Service 平台即服务 PaaS 提供了基础架构 软件开发者可以在这个基础架构之 上建设新的应用 或者扩展已有的应用 同时却不必购买开发 质 量控制或生产服务器 S 的 F Google 的 App Engine 和微软的 Azure 微软云计算平台 都采用了 paas 的模 式 这些平台允许公司创建个性化的应用 也允许独立软件厂商或 者其他的第三方机构针对垂直细分行业创造新的解决方案 2 IaaS Infrastructure as a service 基础设施即服务 IaaS 通过互联网提供了数据中心 基础架构硬件和软件资 源 IaaS 可以提供服务器 操作系统 磁盘存储 数据库和 或信息 资源 IaaS 的主要用户是系统管理员 最高端 IaaS 的代表产品是 亚马逊的 AWS Elastic Compute Cloud EC2 不过 IBM Vmware 和惠普以及其他一些传统 IT 厂商也提供这类的服务 IaaS 通常会按照 弹性云 的模式引入其他的使用和计价模式 也就 是在任何一个特定的时间 都只使用你需要的服务 并且只为之付 费 3 SaaS Software as a service 软件即服务 Saas 是最为成熟 最出名 也是得到最广泛应用的一种云 计算 可以将它理解为一种软件分布模式 在这种模式下 应用软 件安装在厂商或者服务供应商那里 用户可以通过某个网络来使用 这些软件 通常使用的网络是互联网 这种模式通常也被称为 随需 应变 on demand 软件 这是最成熟的云计算模式 因为这种模 式具有高度的灵活性 已经证明可靠的支持服务 强大的可扩展性 因此能够降低客户的维护成本和投入 而且由于这种模式的多宗旨 式的基础架构 运营成本也得以降低 如搜索引擎 地图服务 14 ATAM 九大步骤九大步骤 1 软件体系结构评估的主要方式 a 基于调查问卷或检查表的评估方式 b 基于场景的评估方式 c 基于度量的评估方式 2 基于场景的方式由 SEI 首先提出并应用在体系结构权衡分析 方法 Architecture Tradeoff Analysis Method ATAM 方法 和软件 体系结构分析方法 Software Architecture Analysis Method SAAM 方法 中 3 ATAM 评估过程包括九个步骤 a 描述阶段 描述 ATAM 方法 描述商业动机 描述体系结构 b 调查分析阶段 确定体系结构方法 生成质量属性效用树 分析体系结构方法 c 测试阶段 讨论和对场景进行分级 分析体系结构方法 d 形成报告 描述评估结果 4 风险承担者群体 评估小组 客户代表 体系结构设计小组 所有承担者 15 MVC 它包括三类对象 1 模型 Model 对象 是应用程序的主体部分 实现系统 中的业务逻辑 通常可以用 JavaBean 或 EJB 来实现 2 视图 View 对象 是应用程序中负责生成用户界面的部 分 用于与用户交互 通常用 JSP 来实现 3 控制器 Control 对象 它是 Model 与 View 之间的沟通 桥梁 它可以分派用户的请求并选择恰当的视图以用于显示 同时 它也可以解释用户的输入并将它们映射成为模型层可执行的操作 它们之间的关系和各自的主要功能如下图 模型 视图与控制器的分离 使得一个模型可以具有多个显示 视图 如果用户通过某个视图的控制器改变了模型的数据 那么所 有其他依赖于这些数据的视图都应反映这些变化 因此 无论何时 发生了何种数据变化 控制器都会将变化通知所有的视图 导致显 示的更新 这实际上是一种模型的变化 传播机制 16 几对概念辨析几对概念辨析 1 SOA Web 服务 错错 SOA 与 Web 服务的区别 SOA 是一种架构 web 服务可以说 是基于这种架构的实例 SOA 是架构 而 Web 服务规范则定义了一个支持 SOA 的互操 作平台 SOA 与 WEB 服务的联系 就目前来看 web 服务是实现 SOA 的最好方式 所以他们常常被人们提及 就像讲面向对象程序 设计而提 java 一样 所以说 web 服务是实现 SOA 的一种技术方法 而 SOA 不 一定非要 web 服务来实现 不用 WEB 服务一样能够实现 SOA 反之 web 服务也不一定就是 SOA 的实现 也就是不一定是采 用的 SOA 架构 2 软件体系结构 软件框架 错错 构架 architecture 它是对软件系统的系统组织 是对构成系 统的构件

温馨提示

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

评论

0/150

提交评论