【系统分析师之路】2017下系统架构师案例分析历年真题

【系统分析师之路】2017下系统架构师案例分析历年真题

2017下系统架构师案例分析试题一(系统架构)

系统架构师案例分析试题一(系统架构)
某单位为了建设健全的公路桥梁养护管理档案,拟开发一套公路桥梁在线管理系统。在系统的需求分析与架构设计阶段,用户提出的需求、质量属性描述和架构特性如下:
(a) 系统用户分为高级管理员、数据管理员和数据维护员等三类;
(b) 系统应该具备完善的安全防护措施,能够对黑客的攻击行为进行检测与防御;
(c) 正常负载情况下,系统必须在0.5 秒内对用户的查询请求进行响应;
(d) 对查询请求处理时间的要求将影响系统的数据传输协议和处理过程的设计;
(e) 系统的用户名不能为中文,要求必须以字母开头,长度不少于5个字符;
(f) 更改系统加密的级别将对安全性和性能产生影响;
(g) 网络失效后,系统需要在10 秒内发现错误并启用备用系统;
(h) 查询过程中涉及到的桥梁与公路的实时状态视频传输必须保证画面具有1024*768的分辨率,40帧/秒的速率;
(i) 在系统升级时,必须保证在10人月内可添加一个新的消息处理中间件;
(j) 系统主站点断电后,必须在3秒内将请求重定向到备用站点;
(k) 如果每秒钟用户查询请求的数量是10个,处理单个请求的时间为30毫秒,则系统应保证在1秒内完成用户的查询请求;
(l) 对桥梁信息数据库的所有操作都必须进行完整记录;
(m) 更改系统的Web界面接口必须在4人周内完成;
(n) 如果"养护报告生成"业务逻辑的描述尚未达成共识,可能导致部分业务功能模块规则的矛盾,影响系统的可修改性
(O) 系统必须提供远程调试接口,并支持系统的远程调试。
在对系统需求,质量属性描述和架构特性进行分析的基础上,系统的架构师给出了三个候选的架构设计方案,公司目前正在组织系统开发的相关人员对系统架构进行评估。
【问题1】(12 分
在架构评估过程中,质量属性效用树 (utility tree) 是对系统质量属性进行识别和优先级排序的重要工具。请给出合适的质量属性,填入图1-1 中(1)、(2) 空白处;并选择题干描述的 (a)~(o) ,填入(3) ~(6) 空白处,完成该系统的效用树。
在这里插入图片描述
【问题2】(13 分)
在架构评估过程中,需要正确识别系统的架构风险、敏感点和权衡点,并进行合理的架构决策。请用300字以内的文字给出系统架构风险、敏感点和权衡点的定义,并从题干(a) ~(o) 中分别选出1个对系统架构风险、敏感点和权衡点最为恰当的描述

我的解答
  • 【问题1我的解答】
    1)安全性
    2)可行性
    3)h
    4)f
    5)j
    6)m
  • 【问题2我的解答】
  1. 系统架构风险f
    信息系统某个风险发生时就会对系统整体架构安全性造成很大的影响
  2. 敏感点n:一个质量因素的变更,导致另一个质量因素变更。
  3. 权衡点d;一个质量因素变更导致多个质量因素的变更。
标准答案
  • 【问题1标准答案】
    1)安全性
    2)可行性 可修改性
    3)h
    4)l
    5)j
    6)m
  • 【问题2标准答案】
    系统架构风险是指架构设计中潜在的,存在问题的架构决策所带来的隐患。
    敏感点是指实现某种特定的质量属性,一个或多个构件所具有的特征
    权衡点是影响多个质量属性的特征,是多个质量属性的敏感点。
    风险点n;
    敏感点d;
    权衡点f;
  • 【解析】
    本题考查的是软件质量属性,要求考生掌握常见的软件质量属性的含义与具体的应用场景。
  1. 性能
    性能(performance)是指系统的响应能力,即要经过多长时间才能对某个事件做出响应,或者在某段时间内系统所能处理的事件的个数。
    代表参数:响应时间、吞吐量
    设计策略:优先级队列、资源调度
  2. 可用性
    可用性(availability)是系统能够正常运行的时间比例。经常用两次故障之间的时间长度或在出现故障时系统能够恢复正常的速度来表示。
    代表参数:故障间隔时间
    设计策略:冗余、心跳线
  3. 安全性
    安全性(security)是指系统在向合法用户提供服务的同时能够阻止非授权用户使用的企图或拒绝服务的能力。安全性又可划分为机密性、完整性、不可否认性及可控性等特性。
    设计策略:追踪审计
  4. 可修改性
    可修改性(modifiability)是指能够快速地以较高的性能价格比对系统进行变更的能力。通常以某些具体的变更为基准,通过考察这些变更的代价衡量可修改性。
    设计策略:信息隐藏
    此外风险点、非风险点、敏感点与权衡点要能正确区分。
  • 系统架构风险是指架构设计中潜在的、存在问题的架构决策所带来的隐患。
  • 敏感点是指为了实现某种特定的质量属性,一个或多个构件所具有的特性。
  • 权衡点是影响多个质量属性的特性,是多个质量属性的敏感点。
心得体会
  1. 本题考查的是质量属性,说实话质量属性是了解的,但是却没有系统的记忆过。
  2. 第一问一共12分六个空,比较简单但我还是错了两个,因为在我的记忆字典里还没有可修改性。可修改性的定义就是高性价比对系统进行变更的能力。感觉就是在维护阶段但是成本效益分析嘛,通过这个可修改性分析后,决定是否要对现有的信息系统进行相应的修改。
  3. 第一问另一空我错在了安全性上。安全性的设计策略中就有追踪审计的在里头,看了一下l中对数据库进行了完整的记录了,出现故障时就可以通过这些完整的记录进行相应的追踪审计了。b中所提到的防御与检测也是安全中的一个侧面。
  4. 第二问考察的是三个概念:敏感点,风险点和权衡点。
  5. 敏感点是一对一的关系。它是指为了实现某种特定的质量属性,一个或多个构件所具有的特性。
  6. 权衡点是一对多的关系。它是指影响多个质量属性的特征,是多个质量属性的敏感点。
  7. 而架构风险是指架构中存在的问题对架构决策产生的隐患。
  8. 风险点,敏感点和权衡点三个的备选案:我都找出来了,但是三者之间却都搞错了。
  9. 业务逻辑的描述尚未达成共识,可能导致部分业务功能模块规则的矛盾,影响系统的可修改性这个是架构风险。
  10. 更改系统加密的级别将对安全性和性能产生影响,安全级别一变,安全性和性能两个同时发生了变化,所以它可以归类为权衡点。
  11. 对查询请求处理时间的要求将影响系统的数据传输协议和处理过程的设计;查询请求处理时间应该是性能,性能是某个特定的质量属性,为了实现这个性能,它会影响系统的数据传输协议和设计等(一个或者多个构件所具有的特征)。

2017下系统架构师案例分析试题二(Web设计)

2017下系统架构师案例分析试题二(Web设计)
某软件企业受该省教育部门委托建设高校数字化教育教学资源共享平台,实现以众筹众创的方式组织省内普通高校联合开展教育教学资源内容建设,实现全省优质教学资源整合和共享。该资源共享平台的主要功能模块包括:
(1)统一身份认证模块:提供统一的认证入口,为平台其他核心业务模块提供用户管理、身份认证、权限分级和单点登录等功能;
(2) 共享资源管理模块:提供教学资源申报流程服务,包括了资源申报、分类定制、资料上传、资源审核和资源发布等功能;
(3)共享资源展示模块:提供教育教学共享资源的展示服务,包括资源导航、视频点播、资源检索、分类展示、资源评价和推荐等功能;
(4) 资源元模型管理模块:依据资源类型提供共享资源的描述属性、内容属性和展示属性,包括共享资源统一标准和规范、资源加工和在线编辑工具、数字水印和模板定制等功能;
(5) 系统综合管理模块:提供系统管理和维护服务,包括系统配置、数据备份恢复、资源导入导出和统计分析等功能。
项目组经过分析和讨论,决定采用基于Java EE的MVC模式设计资源共享平台的软件架构,如图2-1所示。
在这里插入图片描述
【问题1】(9 分)
MVC架构中包含哪三种元素,它们的作用分别是什么?请根据图2-1所示架构将JavaEE中JSP、Servlet、Service、JavaBean、DAO五种构件分别填入空(1)~(5)所示位置。
【问题2】(6 分)
项目组架构师王工提出在图2-1所示架构设计中加入EJB构件,采用企业级JavaEE架构开发资源共享平台。请说明EJB构件中的Bean (构件)分为哪三种类型,每种类型Bean的职责是什么。
【问题3】(10分)
如果采用王工提出的企业JavaEE架构,请说明下列(a)~(e) 所给出的业务功能构件中,有状态和无状态构件分别包括哪些。
(a)Identification Bean (身份认证构件)
(b)ResPublish Bean(资源发布构件)
(c)ResRetrieval Bean(资源检索构件)
(d)OnlineEdit Bean(在线编辑构件)
(e)Statistics Bean(统计分析构件)

我的解答
  • 【问题1我的解答】
  1. MVC架构中包含的三个元素是:Model,View,Control。
  2. View的作用是负责前端页面的显示;
  3. Control的作用是处理系统抖动业务逻辑部分;
  4. Model的作用是负责与后台数据库相关的处理;
    1)Service
    2)JSP
    3)Servlet
    4)JavaBean
    5)DAO
  • 【问题2我的解答】
    基于消息的JavaBean;
    基于数据库访问的JavaBean;
    【问题3我的解答】
    a Identification Bean (身份认证构件) 无状态
    b ResPublish Bean(资源发布构件) 无状态
    c ResRetrieval Bean(资源检索构件) 无状态
    d OnlineEdit Bean(在线编辑构件) 有状态
    e Statistics Bean(统计分析构件) 无状态
标准答案
  • 【问题1标准答案】
    MVC架构包含了视图,控制器和模型三个部分。
  1. 视图
    视图是用户看到并与之交互的界面,视图向用户显示相应的数据,并能够接收用户的输入数据;但是它不能进行任何的实际业务处理。
  2. 控制器
    控制器接收用户的输入并调用模型和视图去完成用户的需求。该部分是用户界面与模型的接口。一方面它用来解释来自视图的输入,将其解释成为系统能够理解的对象,同时它也识别用户动作,并将其解释为对模型特定方法的调用。另一方面它处理来自模型的事件和模型逻辑执行的结果,调用适当的视图为用户提供反馈。
  3. 模型
    模型是应用程序的主体部分,模型表示业务数据和业务逻辑,一个模型能够为多个视图提供数据。
    1)JSP
    2)Servlet
    3)JavaBean
    4)Service
    5)DAO
  • 【问题2标准答案】
  • EJB中的Bean分三种类型
  1. 消息驱动Bean
    异步接受消息
  2. 实体Bean
    维护一行持久稳定的数据
  3. 会话Bean
    维护一个短暂的会话
    【问题3标准答案】
    ad有状态,bce没有状态
  • 【解析】
    MVC是一种目前广泛流行的软件设计模式。近年来,随着J2EE(Java 2Enterprise Edition)的成熟,MVC成为了J2EE平台上推荐的一种设计模式。MVC强制性地把一个应用的输入、处理、输出流程按照视图、控制、模型的方式进行分离,形成了三个核心模块:控制器、模型、视图。
    (1) 控制器(Controller)
    控制器接受用户的输入并调用模型和视图去完成用户的需求。该部分是用户界面与Model的接口。一方面它解释来自于视图的输入,将其解释成为系统能够理解的对象,同时它也识别用户动作,并将其解释为对模型特定方法的调用;另一方面,它处理来自于模型的事件和模型逻辑执行的结果,调用适当的视图为用户提供反馈。
    (2) 模型(Model)
    模型是应用程序的主体部分。模型表示业务数据和业务逻辑。一个模型能为多个视图提供数据。由于同一个模型可以被多个视图重用,所以提高了应用的可重用性。
    (3) 视图(View)
    视图是用户看到并与之交互的界面。视图向用户显示相关的数据,并能接收用户的输入数据,但是它并不进行任何实际的业务处理。视图可以向模型查询业务状态,但不能改变模型。视图还能接受模型发出的数据更新事件,从而对用户界面进行同步更新。
  • 【问题2】
    Session Bean 描述了与客户端的一个短暂的会话。当客户端的执行完成后,Session Bean 和它的数据都将消失;
    Entity Bean 描述了存储在数据库表中的一行持久稳固的数据,如果客户端终止或者服务结束,底层的服务会负责 entity Bean 数据的存储。
    Message-driven bean 结合了 Session Bean 和 Java信息服务(JMS)信息监听者的功能,它允许一个商业组件异步地接受JMS消息。
  • 【问题3】
  • 本题考查考生对Java EE架构中会话构件(Session Bean)的掌握情况。
    会话构件负责维护客户端与服务端的交互状态,按照是否跨方法调用保存客户端与服务端的交互状态可以分为有状态(Stateful)会话构件和无状态(Stateless)会话构件,前者在交互过程中需要保存客户端与服务端交互的中间状态数据,一般在实现类中有自身的属性用于存储中间状态数据,无状态会话构件则不需要保存客户端与服务端的交互状态数据,客户端每次发起的请求相互独立,不会对服务端状态产生影响,因此服务端类不需要保存中间状态数据。身份认证构件完成初次身份认证后需要在服务端记录客户端的身份信息,在线编辑构件需要在操作过程中记录前一次编辑的操作结果,所以两者需要设汁为有状态会话构件。资源发布、资源检索和统计分析构件对客户端多次请求均保持一致处理过程和结果,所以应设计为无状态会话构件。
心得体会
  1. 第一问MVC架构的概念以及三个组成元素,这个是基础知识点,然后看图填空,这里第一个JSP和最后一个DAO不应该会错,因为没碰过Java开发的我都知道,DAO是控制数据库的,JSP是响应浏览器的异步请求的。Servlet是第一次看到,所以这里蒙错也情有可原了。
  2. Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。
  3. JavaBean,实现一些业务逻辑或封装一些业务对象,JavaBean的目的是为了将可以重复使用的代码进行打包。这里JavaBean在Service服务业务逻辑之上。
  4. DAO(Date Access Object) 模型就是写一个类,把访问数据库的代码封装起来,DAO在数据库与业务逻辑(Service)之间。
  5. 第二问问的是Bean的三种类型,实体Bean,消息驱动Bean,还有一个是会话Bean,对于没有Java经验的我来说,要说出三种来似乎有点困难。
  6. 会话Bean用来维护一个会话;实体Bean用来维护持久稳定的数据;消息驱动Bean用来实现异步通信;这些之前一直没有概念,通过这题后,让我对JavaEE框架有了一个大致的了解,
  7. 第三空的10分我认为就是送分来的,分析题干就可以判断是有状态还是没有状态了。虽然我还是错了一空。

2017下系统架构师案例分析试题三(嵌入式)

2017下系统架构师案例分析试题三(嵌入式)
随着人工智能技术的发展,工业机器人已成为当前工业界的热点研究对象。某宇航设备公司为了扩大业务范围,决策层研究决定准备开展工业机器人研制新业务。公司将论证工作交给了软件架构师王工,王工经过分析和调研,从机器人市场现状、领域需求、组成及关键技术和风险分析等方面开展了综合论证。论证报告指出:首先,为了保障本公司机器人研制的持续性,应根据领域需求选择一种适应的设计架构;其次,为了规避风险,公司的研制工作不能从零开始,应该采用国际开源社区所提供机器人操作系统 (Robot Operating System ,ROS)作为机器人开发的基本平台。
在讨论会上,架构师李工提出不同意见,他认为公司针对宇航领域已开发了某款嵌 入式实时操作系统,且被多种宇航装备使用,可靠性较高。因此应该采用现有架构体系作为机器人的开发平台。会上王工说明了机器人操作系统与该款操作系统的差别,要沿用需要进行改造,技术投入较大。经过激烈讨论,公司领导同意了王工采用ROS的意见。
【问题1】(5分)
王工拟采用的ROS具有分布式进程框架,以点对点设计以及服务和节点管理器方式,使得执行程序可以各自独立地设计,松散地、实时地组合起来。这些进程可以按照功能包和功能包集的方式分组,因而可以容易地分享和发布。请用400字以内文字说明ROS与嵌入式实时操作系统的共同点,以及在实时性和任务通信方式两个方面的差异。
【问题2】(10分)
ROS为应用程序间通信提供了主题(Topic) 、服务 (Service)和动作 (Action) 三种消息通信方式,每种通信方式都有其特点。请将以下给出的三类通信的主要特点填入表3-1中(1)-(5) 的空白处,将答案写在答题纸上。
(a) 适合用于传输传感器信息(数据流)⭕️
(b) 能够知道是否调用成功⭕️
(c) 一对多模式
(d) 有握手信号⭕️
(e) 服务执行完会有反馈⭕️
(f) 可以监控长时间执行的进程
(g) 较复杂⭕️
(h) 可能让系统过载(数据太多)⭕️
(i) 服务执行完之前,程序会等待
(j) 建立通信较慢
(k) 可能丢失数据
在这里插入图片描述
【问题3】(10分)
ROS 的架构定义了ROS系统由多个各自独立的节点(组件)组成,并且各个节点之间可以通过发布/订阅(Publish/Subscribe)消息模型进行通信。图3-1给出一个简单机器人结构实例,请根据以下文字描述,补充图3-1中(1)~(5) 处空白,将答案写在答题纸上。
"机器人开始阶段,所有节点都要注册 (Registration) 到Master上,注册后,摄像头节点声明它要发布(Publish)一个叫做/image_data的消息。另外两个节点(图像处理处理节点和图像显示节点)声明它们需要订阅( Subscribe) 这个/image_data消息。因此,一旦摄像头节点收到相机发送的数据(Data),就立即将数据/image_data直接发送到另外两个节点。
在这里插入图片描述

我的解答
  • 【问题1我的解答】
    两者都有进程之间通信的机制,都有分布式架构的概念。
    在实时性上面,ROS可能有通信延迟,而嵌入式实时操作系统没有;
    任务通信方式,ROS有主题,动作和服务三种类型,在ROS中有数据丢失的可能,还有通信较慢的情况,在嵌入式实时系统中这个是不存在的,它的可靠性比较高。
  • 【问题2我的解答】
    1)(k) 可能丢失数据
    2)(c) 一对多模式
    3)(i) 服务执行完之前,程序会等待
    4)(b) 能够知道是否调用成功
    5)(j) 建立通信较慢
  • 【问题3我的解答】
    1)Registration
    2)Data
    3)Publish
    4)Subscribe
    5)Subscribe
标准答案
  • 【问题1标准答案】
    ROS与嵌入式实时操作系统的共同点:
    (1)系统微型化
    (2)系统专用性强
    (3)软硬件依赖性强
    (4)系统资源受限
    ROS与嵌入式实时操作系统的差异:
    实性性:ROS弱于嵌入式实时操作系统
    通信方式:ROS的通信方式较为丰富,嵌入式实时操作系统通信方式单一。
  • 【问题2标准答案】
    (1)(2)(c)(k)
    (3)(4)(i)(j)
    (5) (f)
  • 【问题3标准答案】
    (1)Registration
    (2)Data
    (3)Publish
    (4)Subscribe
    (5)Subscribe
心得体会
  1. 又是嵌入式方面的考题。第一空还是老套路比对题。它比对了ROS和实时系统的共同点和差异,关于差异嘛可以参考第二问和第三问的内容,通信方式一个丰富一个单一,实时性一个要求高,一个要求一般。至于共同点比如软硬件依赖性强,资源受限,专用性强,系统微型化,这些不都是嵌入式系统这个考点的内容吗。其实两者都是嵌入式系统,这个问题没有答出来有些可惜了。
  2. 第三问不想说了,就是送分题。看了这段文字难道还有答不准确的理由吗。
  3. 第二问也是填空题了,难度大大降低了。但第五个空格,真心不知道; 可以监控长时间执行的进程是Action消息的特征,而建立通信较慢是服务的特征。

2017下系统架构师案例分析试题四(数据库)

2017下系统架构师案例分析试题四(数据库)
某制造企业为拓展网上销售业务,委托某软件企业开发一套电子商务网站。初期仅解决基本的网上销售、订单等功能需求。该软件企业很快决定基于.NET平台和SQL Server数据库进行开发,但在数据库访问方式上出现了争议。王工认为应该采用程序在线访问的方式访问数据库;而李工认为本企业内部程序员缺乏数据库开发经验,而且应用简单,应该采用ORM (对象关系映射)方式。最终经过综合考虑,该软件企业采用了李工的建议。
随着业务的发展,该电子商务网站逐渐发展成一个通用的电子商务平台,销售多家制造企业的产品,电子商务平台的功能也日益复杂。目前急需对该电子商务网站进行改造,以支持对多种异构数据库平台的数据访问,同时满足复杂的数据管理需求。该软件企业针对上述需求,对电子商务网站的架构进行了重新设计,新增加了数据访问层,同时采用工厂设计模式解决异构数据库访问的问题。新设计的系统架构如图4-1所示。
在这里插入图片描述
【问题1】(9分)
请用300字以内的文字分别说明数据库程序在线访问方式和ORM方式的优缺点,说明该软件企业采用ORM的原因。
【问题2】(9分)
请用100字以内的文字说明新体系架构中增加数据访问层的原因。请根据图4-1所示,填写图中空白处(1) - (3)。
【问题3】(7分)
应用程序设计中,数据库访问需要良好的封装性和可维护性,因此经常使用工厂设计模式来实现对数据库访问的封装。请解释工厂设计模式,并说明其优点和应用场景;请解释说明工厂模式在数据访问层中的应用。

我的解答
  • 【问题1我的解答】
    ORM是对象关系映射,把对关系数据库的操作用面向对象的方式进行操作的一项技术。它的优点是使得对关系数据库的操作变得简单,易于上手;缺点就是每次对关系数据库的操作都需要创建对象和销毁对象,使得操作变得开销大。
    数据库程序在线访问方式是指使用采用数据库管理系统提供的程序语言操控数据库在线访问数据库的方式。
  • 【问题2我的解答】
    增加数据访问层后,将数据库访问从业务逻辑中独立出来,对数据库的访问不单独依赖数据库访问了。
    同时在数据访问层进行分层后,可以更好的以最小的代价无缝的进行不同厂商之间数据库系统的切换。
  • 【问题3我的解答】
    工厂模式是对对象的构造进行封装的一个设计模式,使用这个设计模式的话,用户只需要将对象的构造创建的工作交给工厂,不必关心如何创造出所需要的对象。
    比如要访问不同的数据库,可以利用工厂创建出不同的对象来访问不同的数据库,不必关心工厂是如何创建对象的。
  • 【解析】
    ORM,即Object-Relationl Mapping,它在关系型数据库和对象之间作一个映射,这样,我们在具体的操作数据库的时候,就不需要再去和复杂的SQL语句打交道,只要像平时操作对象一样操作即可。
    当你开发一个应用程序的时候(不使用OR Mapping),可能会涉及许多数据访问层的代码,用来从数据库保存、删除、读取对象信息等等,然而这些代码写起来总是重复的。
    一个更好的办法就是引入OR Mapping。实质上,一个OR Mapping会为你生成DAL。与其自己写DAL代码,不如用OR Mapping,你只需要关心对象就好。
    使用ORM可以大大降低学习和开发成本。而在实际的开发中,真正对客户有价值的是其独特的业务功能,而不应该把大量时间花费在编写数据访问、CRUD方法、后期的Bug查找和维护上。在使用ORM之后,
    ORM框架已经把数据库转变成了我们熟悉的对象,我们将只需要了解面向对象开发就可以实现数据库应用程序的开发,不需要浪费时间在SQL上。同时也可减少代码量,减少数据层出错机会。
    通过Cache的实现,能够对性能进行调优,实现了ORM区隔了实际数据存储和业务层之间的关系,能够对每一层进行单独跟踪,增加了性能优化的可能。
标准答案
  • 【问题1标准答案】
    数据库程序在线访问方式的优点:
    1.性能比ORM要好
    2.可以处理复杂的查询语句
    数据库程序在线访问方式的缺点:
    1.要求程序员懂SQL语句
    2.修改和维护相对困难
    ORM的优点
    1.使用ORM可以大大降低学习和开发成本
    2.程序员不用再去写SQL语句来完成对关系数据库的操作
    3.减少了程序的代码量
    4.降低了因为SQL语句质量差而带来的影响
    ORM的缺点:
    1.不太容易处理复杂的查询操作
    2.性能较直接用SQL语句要来的差
    本题的场景中之所以选择使用ORM是因为考虑到程序员缺乏数据库开发经验,这样SQL语句质量有很大的风险,同时学习成本也很高。此外应用简单不必担心ORM对性能的影响。
  • 【问题2标准答案】
    增加数据库访问层的原因
    1.由于涉及到多种数据库异构的平台,数据访问的复杂性增加,不宜与业务逻辑混合在一起。
    2.数据管理变复杂之后,需要使用的代码量增加,分单独层次有利于让逻辑变得更加清晰。
    3.业务逻辑应该以相同的方式应对异构的数据库,此时需要单独的数据库访问层屏蔽差异性。
    1)执行业务逻辑,业务组件,业务构件
    2)数据访问接口层/DAL接口
    3)工厂层DAL工厂,数据访问工厂
  • 【问题3标准答案】
    工厂模式分为抽象工厂和工厂方法。题目中的场景适合采用抽象工厂设计模式。
    抽象工厂设计模式提供一个接口,可以创建一系列相关的或相互依赖的对象,而无需指定它们具体的类。其优点是可以非常方便的创建一系列的对象,其使用场景也是创建系列对象的情况。在本题中,可以针对Oracle,MySQL,SQLServer分别建立抽象工厂,若指定当前的工厂为Oracle工厂,则创建出来的数据库连接,数据库等一系列的对象都是符合Oracle的操作要求的,这样便于数据库之间的切换。
心得体会
  1. 第一空,数据库程序访问方式是什么?常用的数据库访问方式有哪些?
    在ASP中可以通过三种方式访问数据库:
    1、IDC(Internet Database Connector)方式;
    2、ADO(ActiveX Data Objects)方式;
    3、RDS(Remote Data Service)方式。
  2. 这三种访问方式对数据库的访问都是由Internet Information Server完成的。通过Web浏览器用HTTP协议向IIS(Internet信息服务器)发送请求,IIS执行对数据库的访问,并返回一个HTML格式的文档响应。
  3. ORM是对象关系映射,感觉ORM把数据库访问用的SQL等以面向对象的方式进行了封装,而传统的数据库程序访问方式没有这么好的封装,需要程序员自己写SQL语句,好了那么这两者的优势劣势就可以很容易的比较出来了。
  4. 第二空,增加数据库访问层考察了分层架构的优点这个考点。职责清晰,逻辑分明,屏蔽差异,概括起来就是这个问题的答案吧。接下来三个看图填空,第三空从第三问就可以推测出来,就是数据库创建的工厂,而它的上面应该是数据库层对外的接口,最后第一空凭感觉应该是业务逻辑了。
  5. 第三空考察了工厂模式的概念,这个应该是比较概念单独题目了,如何在这个层次框架上使用工厂模式,这里也得到了很好的体现。

2017下系统架构师案例分析试题五(Web设计)

2017下系统架构师案例分析试题五(Web设计)
某电子商务企业因发展良好,客户量逐步增大,企业业务不断扩充,导致其原有的B2C商品交易平台已不能满足现有业务需求。因此,该企业委托某软件公司重新开发一套商品交易平台。该企业要求新平台应可适应客户从手机、平板设备、电脑等不同终端设备访问系统,同时满足电商定期开展"秒杀"、“限时促销"等活动的系统高并发访问量的需求。面对系统需求,软件公司召开项目组讨论会议,制定系统设计方案。讨论会议上,王工提出可以应用响应式Web设计满足客户从不同设备正确访问系统的需求。同时,采用增加镜像站点、CDN 内容分发等方式解决高并发访问量带来的问题。李工在王工的提议上补充,仅仅依靠上述外网加速技术不能完全解决高用户并发访问问题,如果访问量持续增加,系统仍存在崩溃可能。李工提出应同时结合负载均衡、缓存服务器、Web应用服务器、分布式文件系统、分布式数据库等方法设计系统架构。经过项目组讨论,最终决定综合王王和李工的思路,完成新系统的架构设计。
【问题1】(5分)
请用200字以内的文字描述什么是"响应式Web 设计”,并列举2个响应式Web设计的实现方式。
【问题2】(16分)
综合王工和李工的提议,项目组完成了新商品交易平台的系统架构设计方案。新系统架构图如图5-1所示。请从选项(a) - (j) 中为架构图中(1) - (8) 处空白选择相应的内容,补充支持高并发的Web应用系统架构设计图。
在这里插入图片描述
(a) Web应用层
(b) 界面层
(c) 负载均衡层
(d) CDN 内容分发
(e) 主数据库
(f) 缓存服务器集群
(g) 从数据库
(h) 写操作
(i) 读操作
(j) 文件服务器集群
【问题3】(4 分)
根据李工的提议,新的B2C商品交易平台引入了主从复制机制。请针对B2C商品交易平台的特点,简要叙述引入该机制的好处。

我的解答
  • 【问题1我的解答】
    响应式Web设计可以实现从不同设备正确访问系统的需求。
  • 【问题2我的解答】
    1)(j) 文件服务器集群
    2)(b) 界面层
    3)(f) 缓存服务器集群
    4)(a) Web应用层
    5)(e) 主数据库
    6)(h) 写操作
    7)(g) 从数据库
    8)(i) 读操作
  • 【问题3我的解答】
    主从复制机制主数据库负责写操作,而从数据库负责读操作,通过这种读写分离的方式,来实现保持高效率的对数据库的读写操作,解决高并发访问量带来的响应速度慢的问题。
标准答案
  • 【问题1标准答案】
    响应式Web设计是指我们设计与开发的页面可以根据用户的行为和不同的设备环境作出相应的响应来调整页面的布局,以提供用户可感知的流畅的阅读和操作体验。
    实现方式:
    1)弹性布局(如弹性图片)
    2)媒体查询
    3)流式布局
  • 【问题2标准答案】
    1)(d) CDN 内容分发
    2)(c) 负载均衡层
    3)(f) 缓存服务器集群
    4)(a) Web应用层
    5)(e) 主数据库
    6)(h) 写操作
    7)(g) 从数据库
    8)(i) 读操作
  • 【问题3标准答案】
    1.性能提升
    交易平台要求高并发,主从复制方式一主多从,不同的用户请求可以从不同的数据库读取数据,提高并发度。
    2.可扩展性更优
    如果采用单台数据库服务器,则访问量持续增加时,数据库瓶颈暴露,且无法迅速的解决问题。而主从结构可以快速增加服务器数量以满足需求。
    3.提升可用性
    一主多从,一台服务器出现故障不影响整个系统正常工作。
    4.相当于负载均衡
    一主多从分担任务,相当于负载均衡
    5.提升数据安全性
    系统中的数据用于存放多份,不会因为某台机器硬件故障而导致数据丢失。
  • 【解析】
    响应式web设计是指我们设计与开发的页面可以根据用户的行为(比如改变浏览器的窗口大小)和不同的设备环境(比如系统平台、屏幕分辨率以及横竖屏等)做出相应的响应来调整页面的布局,以提供用户可感知的、流畅的阅读和操作体验。响应式设计一般遵循“设计先行,内容优先,移动优先”的原则。就是说,如果一个页面想要响应PC端和移动终端包括用户的一些行为等,那么设计师至少需要设计两套以上页面的设计图(PC端一套,移动终端一套),交互设计师也需先根据终端进行交互设计,把需求中最重要的内容展示在移动小屏幕上,然后前端工程师据此设计开发出响应式框架。
心得体会
  1. 第一问响应式Web设计,这个概念我真的不知道,所以就是缴枪了。标准答案理解三遍用自己的语言组织起来就好。
  2. 第二问是看图填空,觉得是最简单的题目。不过前两个空格还是错了。CDN可以实现对内容的分发,而且又是放在最外层,关于这点我没有想到,关于CDN概念至少要知道一下。这个知识点要补充。负载均衡可以专门作为一层,也是受教了。
  3. CDN全称叫做“Content Delivery Network”,中文叫内容分发网络。在用户和网站间添加一层“缓存”,网站将信息发布到用户周围,用户可快速访问网站内容。
  4. 解决网络带宽小、用户访问量大、网站分布不均的问题。CDN的调度内部通过算法对请求节点分配,并在本地的CDN服务器保存,以备后续的使用。
  5. 第三空考察主从复制的优点,这点应该很好回答了。需要注意的是可以结合质量属性来作答。比如性能的改善,冗余的追加,可用性提高,安全性提高,还有可扩展性的提升,最后可以发现加入了多台数据库服务器达到了负载均衡的效果。

猜你喜欢

转载自blog.csdn.net/Last_Impression/article/details/115073497