系统架构设计师学习笔记.pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《系统架构设计师学习笔记.pdf》由会员分享,可在线阅读,更多相关《系统架构设计师学习笔记.pdf(70页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 系统架构设计第一章 1.1.1 系统架构师的概念 现代信息系统“架构”三要素:构件、模式、规划;规划是架构的基石,也是这三个贡献中最重要的。架构本质上存在两个层次:概念层,物理层。1.2.1 系统架构师的定义 负责 理解、管理 并最终确认和评估 非功能性系统需求,给出开发规范,搭建系统实现的核心架构,对整个软件架构、关键构建、接口 进行总体设计 并澄清关键技术细节。主要着眼于系统的“技术实现”,同时还要考虑系统的“组织协调”。要对所属的开发团队有足够的了解,能够评估该开发团队实现特定的 功能需求目标和资源代价。1.2.2 系统架构师技术素质 对软件工程标准规范有良好的把握。1.2.3 系统架
2、构师管理素质 系统架构师是一个高效工作团队的创建者,必须尽可能使所有团队成员的想法一致,为一个项目订制 清晰的、强制性的、有元件的目标 作为整个团队的动力;必须提供特定的 方法和模型 作为理想的技术解决方案;必须避免 犹豫,必须具备及时解决技术问题的 紧迫感和自信心。1.2.4 系统架构师与其他团队角色的协调 系统分析师,需求分析,技术实现 系统架构师,系统设计,基于环境和资源的系统技术实现 项目管理师,资源组织,资源实现 由于 职位角度出发产生冲突制约,不可能很好地给出 开发规范,搭建系统实现的 核心架构,并澄清技术细节,扫清主要难点。所以 把架构师定位在 项目管理师与系统分析师 之间,为团
3、队规划清晰的目标。对于大型企业或项目,如果一人承担多个角色,往往容易发生顾此失彼的现象。1.3 系统架构师知识结构 需要从大量互相冲突 的系统方法和工具中 区分出 哪些是有效的,那些是无效的。1.4 从开发人员到架构师 总结自己的架构模式,深入行业总结规律。几天的培训不太可能培养出合格的软件架构师,厂商的培训和认证,最终目的是培养自己的市场,培养一批忠诚的用户或产品代言人,而不是为中国培养软件架构师。2011 年软考系统架构设计第二章 计算机网络基础知识 计算机系统 由 硬件和软件组成,软件通常分为 系统软件和应用软件。系统软件支持应用软件的运行,为用户开发应用软件提供平台,用户可以使用它,但
4、不能随意修改它。常用的系统软件有 操作系统、语言处理程序、连接程序、诊断程序、数据库 等。应用软件指 计算机用户利用 软硬件资源 为某一专门的应用目的而开发的软件。2.1 操作系统基础知识 操作系统 Operating System,是计算机系统的核心系统软件。2.1.1 操作系统的原理、类型、结构 1、操作系统定义 硬件资源包括 中央处理器、存储器、输入输出设备。软件资源是以 文件形式保存在存储器上的 程序和数据。操作系统既 有效组织和管理 系统中各种 软硬件资源,合理地组织计算机系统的工作流程,又控制程序的执行,为用户使用计算机 提供了一个 良好的环境和友好的接口。2、操作系统分类 按功能
5、不同分:单用户操作系统、批处理操作系统;分时操作系统、实时操作系统;网络操作系统、分布式操作系统;嵌入式操作系统。3、操作系统的特征 并发性、共享性、虚拟性、不确定性。4、操作系统的功能 进程管理、文件管理、存储管理、设备管理、作业管理。2.1.2 处理机 与 进程管理 1、进程的定义及其分类 进程通常由 程序、数据、进程控制块 PCB 组成。2、进程的状态转换与控制 就绪、运行、阻塞。进程控制是通过 进程控制原语实 现的,进程控制原语主要有:创建原语、撤销原语、挂起原语、激活原语、阻塞原语、唤醒原语。注:原语不可分割,不允许中断。3、进程互斥与同步 以及 P/V 操作 同步是使在异步环境下的
6、各进程按一定的 顺序和速度 执行。互斥 要保证临界资源 一次只能提供一个进程使用,称为 临界资源 CR。PV 操作是低级通信原语,在执行期间不可分割,P 表示申请一个资源,V 表示释放一个资源。P 操作定义:S:=S-1,若 S=0,则执行 P 操作的进程继续执行,否则若 S0,则执行 V 操作的进程继续执行,否则若 S”。8.1.8 格式正规的文档 元素和元素之间唯一的直接关系就是 父子关系;兄弟关系是通过数据结构推断出来的,既不直接也不可靠,因为元素可能被插入到 某个元素和它的一个或多个子元素之间。数据对象 如果满足下列条件 就是各市正规的文档。1、语法合乎 XML 规范。2、元素构成一个
7、层次树,只有一个根节点。3、没有对外部实体的引用,除非提供了 DTD。任何 XML 解析器 发现 不是个是正规的结构,就报告一个“致命”错误,致命错误不一定导致解析器终止操作,但它不再会以正常的方式向应用程序传递字符数据 和/或 XML 结构。8.2 XML 命名空间 8.2.1 命名空间 XML 命名空间 是 解决多个 义性和名字冲突问题的方案。命名空间是一组具有结构的名称的集合。8.2.2 定义和声明命名空间 命名空间 推荐标准为我们提供了 xmlns 属性,属性值就是 URI。命名空间前缀经常被提及为前缀,而名称本身是基本名。默认的命名空间(没有声明别名的,形式为 xmlns=“”),在
8、声明作用域里 所有没有经命名空间前缀修饰的 名称 被假定属于默认的命名空间。8.3 DTD 一个 XML 文档是有效的,则它必须满足:文档 和 文档类型 相关联。8.3.1 什么是 DTD DTD 文档类型定义。主要 用来查看 XML 文档的格式,出现在 XML 文档的序言中,DTD 声明不是必须出现的。DTD 中 主要定义以下几个方面的内容:1、元素声明。2、实体声明。3、属性的种类。8.3.2 为什么引入 DTD 提供一种验证的手段,对 XML 来说是一大贡献,确保 XML 文件确实地遵守了 指定的格式,而这个格式可能是 一个 标准,或者是数据交换双方 所共同定制 的 协议。实现了 文件格
9、式 的统一化,提高了文件的重用性。使用 DTD 进行验证,增加了操作时间。8.3.3 实体的声明 实体(entity)是一些预先定义好的数据。存储部位,内部实体,外部实体;组成内容,可分解实体,不可分解实体。引用方式,一般型实体,参数型实体。不同类型的实体声明和使用方法略有不同。8.3.4 属性的声明 良构 XML 文档中,属性只要满足命名规则就可以了,但是在一个有效的 XML 文档中,属性要经过 DTD 的属性声明。DTD 声明中,属性的声明语法可以归纳为如下形式:元素名称指的是 属性所属的元素名称。8.4 XML Schema DTD 尽管进行了很大的简化,但还是一门 风格 和 XML 完
10、全不同的语言,而 schema 文档是一种特殊的 XML 文档,容易学习和使用。DTD 的另一个缺点是 数据类型相当有限。DTD 中根本不提供 数值数据 类型。一个 XML 文档只能使用一个 DTD 文档,schema 则采用了 名域空间的机制,使得一个 XML 文档可以调用多种 schema 文档。8.5 可扩展样式表语言 (eXtensible Stylesheet Language,XSL)是描述 XML 文档样式信息的一种语言,W3C 制订。XML 的一个优点就是 形式与内容相分离,XSL 就是它的两种样式表单之一,另一种是 层叠样式表(CSS),是一种静态的样式描述格式,其本身不遵从
11、 XML 的语法规范。而 XSL 是一个 XML 文档。是 XML 的一种具体应用 它有两大部分组成:第一部分描述了 如何将 XML 文档进行 转换、转换为可浏览或可输出的格式;第二部分定义了 格式对象(Fomatted Object,FO)源树转换为可以显示的结果树,称为树转换,按照 FO 分析结果树,产生一个输出结果,这个过程称为 格式化。转换树 日趋成熟,已从 XSL 中分离出来,另取名为 XSLT(XSL Transformations),现在一般所听说的 XSL 大多是指 XSLT。一同退出的还有 配套标准 Xpath(XML Path Language,XML 路径语言)在 XML
12、 中 声明 XSL 样式单:XSL 在网络中的应用大体分为两种模式:1、服务器端转换模式 XML 文件下载到 浏览器前先转换成 HTML。1.动态方式,接到转换请求时再进行实时转换。2.批量方式。2、客户端转换模式 XML 和 XSL 文件都传送到客户端,浏览器必须支持 XML+XSL 的工作方式。8.6 其他相关规范 8.6.1 XPath 采用简洁的、非 XML 语法,基于 XML 文档的 逻辑结构,在该结构中进行导航。XPath 表达式 通常出现在 URL 和 XML 属性值里。XPath 将 XML 文档描绘为 树或节点 的模型,节点的类型有 根节点、元素节点、属性节点、文本节点、注释
13、节点、名称空间节点、处理指令节点 7 种。XPath 规范定义了两个主要部分:一部分是表达式语法,另一部分是一组名为 XPath 核心库 的基本函数。指向某个 XML 文档中一个特定节点的路径 由三部分信息构成:一个轴类型、一个节点测试 和 谓词。轴类型 有多种,指定所选节点和环境之间的关系。节点测试 查找什么类型的节点,测试包括通配符“*”、text()、node()、comment()、processing-instruction()等。谓词以“”开始,以“”结束,谓词通过使用内部函数来 过滤不需要的节点。:8.6.2 XLink 和 XPointer XLink 指定一个文档如何连接到另
14、一个文档,XPointer 指定文档内部的位置,都是基于 XPath 推荐标准。系统架构设计第九章 面向构件的软件设计 9.1 术语、概念 1、构件 构件的特征如下:独立部署单元。作为第三方的组装单元。没有(外部的)可见状态。独立可部署,意味着 必须能 跟他所在的环境 及 其他构件 完全分离。原子性,构件不但必须具备足够好的内聚性,还必须将自己的依赖条件和所提供的服务说明清楚。缓存具有这样的特征:当它被清空时,除了可能会降低性能以外,没有其它后果。构建本质上没有状态,同一操作系统进程中 装载多个构件的拷贝 是毫无意义的,至多会存在一个特定构件的拷贝。许多系统中,构建被实现为 大粒度的单元,工资
15、管理服务程序就是一个构件,工资数据只是实例(对象),将不易变的“模型”和易变的“实例”分离的做法避免了大量的维护问题。2、对象 对象的特征如下:一个实例单元,具有唯一的标志。可能具有状态,此状态外部可见。封装了自己的状态和行为。显式存在的实例化方案称为类,也有隐式的实例化方案,既通过克隆一个已存在的对象来实现,即原型对象。新生的对象都必须被设置一个初始状态,创建与初始化 对象 的代码可以是一个静态过程类的一部分,称为构造函数。如果这个对象是专门用来创建与初始化对象的,称为 工厂。对象中 专门用来返回其他 新创建的对象的方法 称为 工厂方法。3、构件与对象 构件通常包含了若干类 或 不可更改的
16、原型对象。还包括一系列对象。但构件并非一定要包含类元素,它甚至可以不包含类,可以拥有传统过程体,甚至全局变量。构件创建的对象更确切地说是对这些对象的 引用可以与该构件分离开来,并对构件的客户可见。构件的客户通常是指其他构件。一个构件可以包含多个类元素,但是一个类元素只能属于一个构建。将一个类拆分进行部署通常没有什么意义。4、模块 模块化方法成熟的标志是其对分离编译技术的支持,包括跨模块的正确的类型检查能力。模块没有实例化的概念,在任何情况下,模块都可以包含多个类。类之间的继承关系并不受模块界限的限制。模块本身就可以作为一个最简单的构件,这些库是功能性的,而不是面向对象的。资源可以参数化一个构件
17、,重新配置该构件而无需更改构件代码,例如,本地化设置可以通过资源配置实现。某些情况下,模块并不适合作为构件,构件没有外部可见的状态,但是模块却可以显式地用全局变量来使其状态可见。5、白盒抽象、黑盒抽象 与 重用 白盒抽象中,可以通过继承对构件的实现细节进行修改,白盒方式中实现细节对外界是完全可见的。绝大多数系统中,(Application Programming Interface,API)相当于黑盒重用这些接口的实现。白盒重用不可以轻易地被另外的软件替换,因为 依赖于 细节。软件构件是一种组装单元,它具有规范的接口规约和显式的语境依赖,软件构件可以被独立地部署并由第三方任意地组装。6、接口
18、接口是一个已命名的一组操作集合。一个构件可以有多个接口,每个接口提供一种服务。尽量不要重复引入功能相近的接口。推行标准化,可能会由于笨拙官僚的“委员会设计”问题而不能达到最优;市场竞争,的 非技术本质 也可能导致结果不是最优。接口标准化 是对消息的 格式、模式、协议 的标准化,XML 提供了一种统一的数据格式 3、构件与对象 构件通常包含了若干类 或 不可更改的 原型对象。还包括一系列对象。但构件并非一定要包含类元素,它甚至可以不包含类,可以拥有传统过程体,甚至全局变量。构件创建的对象更确切地说是对这些对象的 引用可以与该构件分离开来,并对构件的客户可见。构件的客户通常是指其他构件。一个构件可
19、以包含多个类元素,但是一个类元素只能属于一个构建。将一个类拆分进行部署通常没有什么意义。4、模块 模块化方法成熟的标志是其对分离编译技术的支持,包括跨模块的正确的类型检查能力。模块没有实例化的概念,在任何情况下,模块都可以包含多个类。类之间的继承关系并不受模块界限的限制。模块本身就可以作为一个最简单的构件,这些库是功能性的,而不是面向对象的。资源可以参数化一个构件,重新配置该构件而无需更改构件代码,例如,本地化设置可以通过资源配置实现。某些情况下,模块并不适合作为构件,构件没有外部可见的状态,但是模块却可以显式地用全局变量来使其状态可见。5、白盒抽象、黑盒抽象 与 重用 白盒抽象中,可以通过继
20、承对构件的实现细节进行修改,白盒方式中实现细节对外界是完全可见的。绝大多数系统中,(Application Programming Interface,API)相当于黑盒重用这些接口的实现。白盒重用不可以轻易地被另外的软件替换,因为 依赖于 细节。软件构件是一种组装单元,它具有规范的接口规约和显式的语境依赖,软件构件可以被独立地部署并由第三方任意地组装。6、接口 接口是一个已命名的一组操作集合。一个构件可以有多个接口,每个接口提供一种服务。尽量不要重复引入功能相近的接口。推行标准化,可能会由于笨拙官僚的“委员会设计”问题而不能达到最优;市场竞争,的 非技术本质 也可能导致结果不是最优。接口标准
21、化 是对消息的 格式、模式、协议 的标准化,XML 提供了一种统一的数据格式。6、构件与生成式编程 必须要精确控制实际的构件边界,包括提供接口和需求接口,必须能精确控制同其他构件间的静态依赖。9.3.2 语境相关组合构建框架 COM+增加了可租赁线程“套间”的概念,一次只允许一个线程入住,但是多个线程能顺序地入住该“套间”。相同事务域中的对象 共享一个单独的逻辑线程和一个单独共享事务资源集合,一旦线程从事务域中返回,事务要么提交要么终止。COM+中,如果两个构件共享一组兼容的语境属性集,则它们可以被看作是处于同一域中。9.3.3 构件开发 异步问题 事件分发机制负责接收这些事件对象,并把它们发
22、送给对其感兴趣的其他构件实例。多线程 多线程主要关注于对程序执行进行更好的分配,获取性能最大化的手段却根本不依赖于多线程,而是尽量在第一时间内以最快的速度处理用户的请求。系统架构设计第十章 构建平台与典型架构 10.1 OMG 方式 对象管理组 OMG,通过规范化对象 开放市场的 所有层次上的互操作性。10.1.1 对象请求代理 CORBA 的主要目标就是使用不同语言、不同实现、不同平台 能进行交互。CORBA 三个基本部分:一套调用接口、对象请求代理 ORB、一套对象适配器。10.1.2 公共对象服务规范 两类服务:一类服务应用于企业计算系统。一类服务应用于细粒度的对象操作,但目前这些服务的
23、实用价值较差。1、支持企业分布式计算的服务 1.命名服务、交易器服务 命名服务 允许 任意地给对象赋予一个名字,这个名字在其所属的命名语境中是唯一的。命名语境所形成的层次结构,使得所有的名字形成名字树。交易器服务 允许给对象 赋予一个复杂的描述,从而允许客户基于该描述来定位所需的对象。搜寻结果往往是 满足查询条件的 一组对象列表。2.事件服务、通告服务 事件服务 允许定义那些 从 时间生产者 被 发送到时间消费者 的事件对象。信息只能从生产者流向消费者,事件必须通过事件通道传播,事件可以具有类型,而通道可以根据类型过滤事件。事件通道支持“推”“拉”两种方式 的事件通告模型。通告服务为事件服务增
24、加了几个重要的特征服务质量 QoS 规范和管理。3.对象事务服务 对象事务服务 OTS,是建立分布式应用最重要的服务之一。OTS 实现必须支持平坦事务,而嵌套事务是可选的。在基于构件的系统中,嵌套事务似乎不可避免。平坦事务在构件系统中的价值有限,实际上,现有的主流事务中间件也不支持嵌套事务。6.并发控制服务 支持对象资源进行 加锁、解锁。锁必须依赖于 事务的语境 或 其他语境才能获得。7读锁、写锁、升级锁。读锁允许多个客户同时执行读操作,写锁允许一个客户写操作,升级锁是可以升级为写锁的读锁 支持互斥读。每个受保护的资源都拥有一个锁集合。锁集合 不是事务型 就是非事务型,并可与其他锁集合建立关联
25、。8.生命周期服务 支持 创建、复制、移动、删除 CORBA 对象,及其相关的对象组。包含关系支持嵌套复制。11.外部化服务 支持对象网 和 对象流 之间的双向映射。对象网外部化后 再内部化 意味着创建该对象网副本。外部化服务并不保证引用的完整性,仅保留同时外部化的对象之间的引用。对象必须实现 Streamable 接口才能被外部化。12.属性服务 允许将任意的属性与对象关联起来,被关联的对象必须实现 ProperySet 接口。13.对象查询服务 依靠属性定位对象。15.时间服务 拥有众多异步时钟的分布式系统 固有的误差问题。10.1.3 CORBA 构件模型 CORBA 对象适配器主要的作
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 系统 架构 设计师 学习 笔记
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内