软考系统架构师之案例分析篇(架构设计相关概念)

  1. 架构风格的概念
    软件架构风格是描述特定软件系统组织方式的惯用模式。
    组织方式描述了系统的组成构件和这些构件的组织方式,惯用模式则反映众多系统共有的结构和语义。
  2. 五大架构风格
    数据流风格【Data Flow】:批处理【Batch Sequential】、管道-过滤器【Pipes and Filters】;
    调用/返回风格【Call/Return】:主程序/子程序【Main Program and Subroutine】、面向对象【Object-oriented】、分层架构【Layered System】;
    独立构件风格【Independent Components】:进程通信【Communicating Processes】、事件驱动系统(隐式调用)【Event system】;
    虚拟机风格【Virtual Machine】:解释器【interpreter】、规则系统【Rule-based System】;
    以数据为中心(仓库风格)【Data-centered】:数据库系统【Database System】、黑板系统【Blackboard System】、超文本系统【Hypertext System】;
    补充:闭环控制架构(过程控制):经典应用有空调温控,定速巡航;
  3. MVC架构含义
    MVC是模型(Model) – 视图( View) – 控制器(Controller)的缩写,用一种业务逻辑。数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。
    模型(Model)是应用程序中用于处理应用程序数据逻辑的部分。通常模型对象负责在数据库中存储数据。
    视图( View)是应用程序中处理数据显示的部分。通常视图是依据模型数据创建的。
    控制器(Controller)是应用程序中处理用户交互的部分。通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。
  4. 云计算架构
    【管理层】:提供对所有层次云计算服务的管理功能。
    【用户访问层】:方便用户使用云计算服务所需的各种支撑服务,针对每个层次的云计算服务都需要提供相应的访问接口。
    【应用层】:提供软件服务,如:财务管理,客户关系管理,商业智能。
    【平台层】:为用户提供对资源层服务的封装,使用户可以构建自己的应用。
    【资源层】:提供虚拟化的资源,从而隐藏物理资源的复杂性。如:服务器,存储。
  5. 云原生架构设计原则
    服务化原则:使用微服务
    弹性原则:可根据业务变化自动伸缩
    可观测原则:通过日志、链路跟踪和度量
    韧性原则:面对异常的抵御能力
    所有过程自动化原则:自动化交付工具
    零信任原则:默认不信任网络内部和外部的任何人/设备/系统
    架构持续演进原则:业务高速迭代情况下的架构与业务平衡
  6. ESB的主要功能
    ESB是传统中间件技术与XML、Web服务等技术结合的产物,主要支持异构系统集成。ESB基于内容的路由和过滤,具备复杂数据的传输能力,并可以提供一系列的标准接口。主要功能包括:
    (1)应用程序的位置透明性
    (2)传输协议转换
    (3)消息格式转换
    (4)消息路由
    (5)消息增强
    (6)安全支持
    (7)监控和管理
  7. 质量属性的含义及其设计策略
    (1)性能 :指系统的响应能力,即要经过多长时间才能对某个事件做出响应,或者在某段时间 内系统所能处理的事件的个数。 如响应时间、吞吐量。设计策略:优先级队列、增加计算资源、减 少计算开销、引入并发机制、采用资源调度等 。
    (2)可靠性:是软件系统在应用或系统错误面前,在意外或错误使用的情况下维持软件系统的 功能特性的基本能力。可靠性通常用平均失效等待时间 (Mean Time To Failure, MTTF ) 和平均失效 间隔时间(Mean Time Between Failure,MTBF) 来衡量。在失效率为常数和修复时间很短的情况下,MTTF和 MTBF几乎相等。可分为容错和健壮性。容错是指在错误发生时确保系统正确的行为,并进行内部“修复”。健壮性是指系统不受错误使用和错误输入的影响,按既定程序忽略错误。设计策略: 冗余、心跳、选举、Ping/Echo 。
    (3)可用性:是系统能够正常运行的时间比例,经常用两次故障之间的时间长度或在出现故障 时系统能够恢复正常的速度来表示。如故障间隔时间。设计策略:冗余、心跳、选举、 Ping/Echo。
    (4)安全性:是指系统在向合法用户提供服务的同时能够阻止非授权用户使用的企图或拒绝服务的能力。可分为机密性、完整性、不可否认性、可控性。机密性保证信息不泄露给未授权的用户、实体或过程;完整性保证信息的完整和准确,防止信息被非法修改;不可否认性是指信息交换的双 方不能否认其在交换过程中发送信息或接收信息的行为;可控性保证对信息的传播及内容具有控制 的能力,防止为非法者所用。设计策略:入侵检测、用户认证、用户授权、追踪审计。
    (5)可修改性:是指能够快速的以较高的性能价格比对系统进行变更的能力。通常以某些具体 的变更为基准,通过考查这些变更的代价来衡量可修改性。可分为可维护性、可扩展性、结构重组 和可移植性。
    可维护性: 在错误发生后“修复”软件系统的难易程度。
    可扩展性:软件因适应新需求或需求变化而增加新功能的能力。
    结构重组: 重新组织软件系统的构件及构件之间的关系。
    可移植性:将软件系统从一个运行环境转移到另一个不同的运行环境的难易程度。 设计策略:接口-实现分类、抽象、信息隐藏。
    (6)功能性:是系统所能完成所期望的工作的能力。一项任务的完成需要系统中许多或大多数构件的相互协作。
    (7)可变性:指架构经扩充或变更而成为新体系结构的能力。这种新体系结构应该符合预先定 义的规则,在某些具体方面不同于原有的体系结构。当要将某个体系结构作为一系列相关产品的基 础时,可变性是很重要的。
    (8)易用性:是衡量用户使用一个软件产品完成指定任务的难易程度。
    (9)可测试性:是指软件发现故障并隔离、定位其故障的能力特性,以及在一定的时间和成本前提下,进行测试设计、测试执行的能力。
    (10)功能性:是系统所能完成所期望的工作的能力。一项任务的完成需要系统中许多或大多数构件的相互协作。
    (11)互操作性:作为系统组成部分的软件不是独立存在的,通常与其他系统或自身环境相互作用。为了支持互操作性,软件架构必须为外部可视的功能特性和数据结构提供精心设计的软件入口。程序和用其他编程语言编写的软件系统的交互作用就是互操作性的问题,这种互操作性也影响应用的软件架构。
  8. EJB中的 Bean 分三种类型
    Session Bean:描述了与客户端的一个短暂的会话。当客户端的执行完成后,Session Bean和它的数据都将消失;
    Entity Bean:描述了存储在数据库表中的一行持久稳固的数据,如果客户端终止或者服务结束,底层的服务会负责Entity Bean数据的存储;
    Message-Driven Bean:结合了Session Bean和Java信息服务(JMS)信息监听者的功能,它允许一个商业组件异步地接受JMS消息。
  9. 风险点、敏感点、权衡点的含义
    风险点:是指架构设计中潜在的、存在问题的架构决策所带来的隐患。
    敏感点:是指为了实现某种特定的质量属性,一个或多个构件所具有的特性。
    权衡点:是影响多个质量属性的特性,是多个质量属性的敏感点。
  10. REST 的5个原则
    (1)网络上的所有事物都被抽象为资源。
    (2)每个资源对应一个唯一的资源标识。
    (3)通过通用的连接件接口对资源进行操作。
    (4)对资源的各种操作不会改变资源标识。
    (5)所有的操作都是无状态的。
© 版权声明
THE END
喜欢就支持一下吧
点赞1 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容