系统架构师笔记(一)

标签: 系统架构 笔记 | 发表时间:2013-11-07 13:53 | 作者:cl05300629
分享到:
出处:http://blog.csdn.net
今年的系统架构师考试马上就要开始了,在此进行了一次核心要点总结,与大家一起分享。
一、质量属性:
1、性能:系统的响应能力,即要经过多长时间才能对某个事件作出响应或者在某段时间内系统所能处理事件的个数。架构设计策略:增加计算资源、改善资源需求(减少计算复杂度等)、资源管理(并发、数据复制等)和资源调度(先进先出队列、优先级队列等)
2、可用性:系统能够正常运行的时间比例。架构设计策略:Ping/Echo、心跳、异常和信息主动冗余等。
3、可靠性:软件系统在应用或错误面前,在意外或错误使用的情况下维持软件系统功能性的能力。架构设计策略:运行时注册,主动冗余   可靠性的计算、检错技术和容错技术
4、健壮性:处理环境中,系统能够承受压力或变更的能力。
5、安全性:系统向合法用户提供服务的同时能够阻止非授权用户使用的企图或拒绝服务的能力。架构设计策略:抵御攻击(授权、认证和限制访问等)、攻击检测(入侵检测等)、从攻击中恢复(部分可用性策略)和信息审计等。
6、可修改性:能快速的以较高的性能价格比对系统进行变更。架构设计策略:软件模块泛化、限制模块之间通信、使用中介、信息隐藏、延迟绑定等。
7、可变性:体系结构经扩充或变更成为新体系结构的能力。
8、易用性:用户使用一个软件产品完成指定任务的难易程度。
9、可测试性:软件发现故障并隔离、定位其故障的能力特性,以及在一定时间或成本前提下,进行测试设计、测试执行的能力。架构设计策略:记录-回放
10、功能性:系统所能完成所期望工作的能力。
11、互操作性:系统与外界或系统与系统之间的相互作用的能力。
二、“4+1”视图
对逻辑架构进行描述,最早由 Philippe Kruchten 提出,他在1995年的《IEEE Software》上发表了题为《The 4+1 View Model of Architecture》的论文,引起了业界的极大关注,并最终被 RUP 采纳,现在已经成为架构设计的结构标准。
逻辑视图(Logical View),设计的对象模型(使用面向对象的设计方法时)。
过程视图(Process View),捕捉设计的并发和同步特征。
物理视图(Physical View),描述了软件到硬件的映射,反映了分布式特性。
开发视图(Development View),描述了在开发环境中软件的静态组织结构。
架构的描述,即所做的各种决定,可以围绕着这四个视图来组织,然后由一些用例 (use cases)或场景(scenarios)来说明,从而形成了第五个视图。
三、经典软件体系结构风格
1、虚拟机风格:java虚拟机
2、事件驱动风格:图形用户界面
3、管道-过滤器风格:数据内容的逐步分解与分阶段处理。适合服务器服务端处理软件的要求。
4、隐式调用风格:回调机制,集成调试器,根据外部事件进行响应的场景。
5、解释器风格:强调用户定义系统中对象的关系和行为这一特性,需要在软件架构层面提供一种运行时的系统行为定义与改变的能力。
6、过程控制风格:实时获取外界信息,与用户自定义信息进行比较并作出动作。
7、黑板风格:正确结果不止一个,求解过程比较复杂,需要通过专家只是和反馈逐步得到正确的结果。比如人工智能等。
8、数据共享风格:关注编译过程和程序的中间表示,围绕程序的各种形态进行转化与处理,针对程序的各种形态建立数据库,通过中心数据库进行转换与处理。
四、架构模式、惯用法、设计模式
1、架构模式:设计软件中的高层决策,反映了开发软件系统过程中所做的基本设计决策;
2、设计模式:主要关注软件系统的设计,与具体的实现语言无关;
3、惯用法:实现时通过某种特定的程序设计语言来描述构建于构建之间的关系,例如C++语言中的引用-计数
五、设计模式
1、装饰模式:能够动态的对一个对象进行功能上的扩展,也可以对其子类进行功能上的扩展。
2、观察者模式:对于某个具体固定结构的活动节点需要多种处理能力,且处理能力可扩展,也就说要求在不改变原来类结构(活动节点)的基础上增加新功能。
3、工厂模式:定义一个用于创建对象的接口,让子类决定实例化哪一个类
4、责任链模式:很多对象由每一个对象对其下家的引用而连接起来形成一条链,请求在这个链上传递,直到链上的某个对象决定处理此请求。
5、中介者模式:用一个中介者对象封装一系列的对象交互。
6、代理模式:提高系统效率,避免同时创建对象。
7、命令模式:将请求、动作封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象。
8、组合模式:(整体-部分模式)通过多个对象形成属性结构以表示整体-部分的结构层次。对单个对象(叶子对象)和组合对象(容器对象)的使用具有一致性。
六、权衡点和敏感点
敏感点是一个或多个构件(或之间的关系)的特性

    权衡点是影响多个质量属性的特性,是多个质量属性的敏感点。

    其实绝大多数考虑都是基于权衡点来考虑的,在某个权衡点上考虑时,某些构件对于某一点比较敏感。可见敏感点是从构件角度来考虑,权衡点是从构件交互的角度来考虑。

作者:cl05300629 发表于2013-11-7 13:53:57 原文链接
阅读:123 评论:0 查看评论

相关 [系统架构 笔记] 推荐:

系统架构师笔记(二)

- - CSDN博客Web前端推荐文章
今年的系统架构师考试马上就要开始了,在此进行了一次核心要点总结,与大家一起分享. 七、架构权衡分析法:ATTM(Architecture Tradeoff Analysis Method). 评价软件架构的一种综合全面的方法. 这种方法不仅可以揭示出构架满足特定质量目标的情况,而且(因为它认识到了构架决策会影响多个质量属性)可以使我们更清楚地认识到质量目标之间的联系——即如何权衡诸多质量目标.

系统架构师笔记(一)

- - CSDN博客架构设计推荐文章
今年的系统架构师考试马上就要开始了,在此进行了一次核心要点总结,与大家一起分享. 1、性能:系统的响应能力,即要经过多长时间才能对某个事件作出响应或者在某段时间内系统所能处理事件的个数. 架构设计策略:增加计算资源、改善资源需求(减少计算复杂度等)、资源管理(并发、数据复制等)和资源调度(先进先出队列、优先级队列等).

HBase 系统架构

- - 博客园_首页
HBase是Apache Hadoop的数据库,能够对大型数据提供随机、实时的读写访问. HBase的目标是存储并处理大型的数据. HBase是一个开源的,分布式的,多版本的,面向列的存储模型. 5 可在廉价PC Server搭建大规模结构化存储集群. HBase是Google BigTable的开源实现,其相互对应如下:.

Facebook 的系统架构

- Ivan - 博客园新闻频道
  来源:http://www.quora.com/What-is-Facebooks-architecture (由Micha?l Figuière回答).   根据我现有的阅读和谈话,我所理解的今天Facebook的架构如下:. Web 前端是由 PHP 写的. Facebook 的 HipHop [1] 会把PHP转成 C++并用 g++编译,这样就可以为模板和Web逻贺业务层提供高的性能.

Digg.com 的系统架构

- - 标点符
在过去的几年间,我们一直致力于重构Digg的架构,现在我们称之为“Digg V4”.本文我们将全面介绍Digg的使用的系统和技术. 首先,我们来看下Digg给大众用户提供的服务吧:. 人们通过浏览器或者其他应用来访问这些Digg服务. 一些有Digg账户的用户,可以得到“我的新闻”. 每位用户可以得到的我们称之为“热门新闻”.

系统架构师JD

- - CSDN博客架构设计推荐文章
国内大型的物流企业,专业从事国内公路运输和航空运输代理. Foss项目的架构设计,包括需求分析,模块设计,系统结构设计,关键功能的开发,技术难题的解决,对团队质量输出的把控等等. 1、熟悉WebLogic/Websphere/JBoss等一个以上大型应用服务器,熟悉Linux及应用服务器集群. 2、 具有丰富J2EE架构设计经验,具有大型基于J2EE体系结构的项目规划、系统架构设计、开发经验.

Android 系统架构分析

- - CSDN博客移动开发推荐文章
Android:开源的 Linux + Google 的封闭软件 + 私有的基带 + 运营商锁定 = 开放的 Android 手机. iPhone:开源的 BSD + 苹果的闭源软件 + 私有的基带 + 运营商锁定 = 封闭的苹果 iPhone. 一个平庸的应用商店,开发者依靠广告赚钱,商店并非独此一家,用户找不到好软件.

twitter系统架构分析

- - 企业架构 - ITeye博客
twitter系统架构分析. (一)twitter的核心业务. twitter的核心业务,在于following和be followed:. (1)following-关注. 进入个人主页,会看到你follow的人发表的留言(不超过140个字),这是following的过程;. (2)followed-被关注.

支付宝系统架构

- - 编程语言 - ITeye博客
支付宝的开源分布式消息中间件–Metamorphosis(MetaQ). Metamorphosis (MetaQ) 是一个高性能、高可用、可扩展的分布式消息中间件,类似于LinkedIn的Kafka,具有消息存储顺序写、吞吐量大和支持本地和XA事务等特性,适用 于大吞吐量、顺序消息、广播和日志数据传输等场景,在淘宝和支付宝有着广泛的应用,现已开源.