架构案例2017(五十二)

news2025/2/24 11:39:21

第5题

阅读以下关于Web系统架构设计的叙述,在答题纸上回答问题1至问题3.

【说明】
某电子商务企业因发展良好,客户量逐步增大,企业业务不断扩充,导致其原有的B2C商品交易平台己不能满足现有业务需求。因此,该企业委托某软件公司重新开发一套商品交易平台。该企业要求新平台应可适应客户从手机、平板设备、电脑等不同终端设备访问系统,同时满足电商定期开展"秒杀"、"限时促销"等活动的系统高并发访问量的需求。面对系统需求,软件公司召开项目组讨论会议,制定系统设计方案。讨论会议上,王工提出可以应用响应式Web设计满足客户从不同设备正确访问系统的需求。 同时,采用增加镜像站点、CDN 内容分发等方式解决高并发访问量带来的问题。李工在王工的提议上补充,仅仅依靠上述外网加速技术不能完全解决高用户并发访问问题,如果访问量持续增加,系统仍存在崩溃可能。李工提出应同时结合负载均衡、缓存服务器、Web应用服务器、分布式文件系统、分布式数据库等方法设计系统架构。经过项目组讨论,最终决定综合王王和李工的思路,完成新系统的架构设计。

  1. Web 应用层
    (b) 界面层
    (c) 负载均衡层
    (d) CDN 内容分发
    (e) 主数据库
    (f) 缓存服务器集群
    (g) 从数据库
    (h) 写操作
    (i) 读操作
    (j) 文件服务器集群

(1)a Web应用层  错误,答案: d CDN

(2)dCDN内容分发  错误,答案:c 负载均衡

(3)f缓存服务器集群

  1. c负载均衡层  错误,答案:a web应用层
  2. e主数据库
  3. h写操作
  4. g从数据库
  5. i读操作

【问题:5.1】(5分)
请用200字以内的文字描述什么是"响应式 Web 设计",并列举2个响应式Web设计的实现方式。

答案:

响应式Web设计表示可以根据用户的行为以及不同的环境和设备,来做出对应的适配,来调整页面布局,比如根据移动端和pc端自动适配显示,提高用户体验

  1. 流式布局。
  2. 弹性布局加媒体查询

【问题:5.3】(4 分)
根据李工的提议,新的B2C商品交易平台引入了主从复制机制。请针对B2C商品交易平台的特点,简要叙述引入该机制的好处。

  1. 分摊单个服务器压力,读写分离,保证性能更高。
  2. 主动数据冗余备份,数据安全性更高。
  3. 更优秀的扩展性,当数据增多,只需要继续扩展集群服务器。
  4. 提升可用性,宕机自动选举先的主机。


第2题

阅读以下关于软件系统设计的叙述,在答题纸上回答问题1至问题3.
【说明】
某软件企业受该省教育部门委托建设高校数字化教育教学资源共享平台,实现以众筹众创的方式组织省内普通高校联合开展教育教学资源内容建设,实现全省优质教学资源整合和共享。该资源共享平台的主要功能模块包括:
(1) 统一身份认证模块:提供统一的认证入口,为平台其他核心业务模块提供用户管理、身份认证、权限分级和单点登录等功能;
(2) 共享资源管理模块:提供教学资源申报流程服务,包括了资源申报、分类定制、资料上传、资源审核和资源发布等功能;
(3) 共享资源展示模块:提供教育教学共享资源的展示服务,包括资源导航、视频点播、资源检索、分类展示、资源评价和推荐等功能;
(4) 资源元模型管理模块:依据资源类型提供共享资源的描述属性、内容属性和展示属性,包括共享资源统一标准和规范、资源加工和在线编辑工具、数字水印和模板定制等功能;
(5) 系统综合管理模块:提供系统管理和维护服务,包括系统配置、数据备份恢复、资源导入导出和统计分析等功能。
项目组经过分析和讨论,决定采用基于Java EE的MVC 模式设计资源共享平台的软件架构,如图2-1所示。

【问题:2.1】(9 分)
MVC架构中包含哪三种元素,它们的作用分别是什么?请根据图 2-1 所示架构将JavaEE 中 JSP、Servlet、Service、JavaBean、DAO 五种构件分别填入空 (1)~(5) 所示位置。

答案:

MVC有表示层,逻辑层,数据层。表示层展示用户看到的页面数据。逻辑层处理业务需求复杂的逻辑管理,关联表示层和数据层的交互。数据层则是数据的持久化,保证数据可靠性

视图层(View),控制层(Controller),模型(Model)。

视图层作用主要与用户交互,显示给用户数据查看,以及接受用户信息,不会处理业务逻辑。

控制层作用接受用户的输入并调用模型完成需求,主要作用是连接视图层和模型,查询模型或视图的数据返回给视图层,或者接受视图层的数据去处理模型。

模型作用应用程序的主体,主要处理业务逻辑和业务数据。

(1)JSP

(2)Servlet

3)JavaBean

(4)Service

(5)DAO

(3)Service

(4)JaveBean

【问题:2.2】(6 分)
项目组架构师王工提出在图2-1所示架构设计中加入EJB构件,采用企业级JavaEE架构开发资源共享平台。请说明EJB构件中的Bean (构件)分为哪三种类型,每种类型Bean的职责是什么。

答案:

EJB三种bean,Session Bean,Entry Bean和Message-Driven Bean

分别维护会话。负责数据持久化。负责消息异步处理。

【问题:2.3】(10分)
如果采用王工提出的企业 JavaEE架构,请说明下列(a)-(e) 所给出的业务功能构件中,有状态和无状态构件分别包括哪些。
(a)Identification Bean (身份认证构件)
(b)ResPublish Bean(资源发布构件)
(c)ResRetrieval Bean(资源检索构件)
(d)OnlineEdit Bean(在线编辑构件)
(e)Statistics Bean(统计分析构件)

有状态:a、b、d

无状态:c、e

有状态:ad

无状态:bce

【问题:4.1】(9分)
请用300字以内的文字分别说明数据库程序在线访问方式和ORM方式的优缺点,说明该软件企业采用ORM的原因。

答案:

数据库在线访问优点:

  1. 性能比ORM更好。
  2. 组装sql查询灵活,可以处理复杂sql。

缺点:

  1. 程序员sql能力需要增强。
  2. 修改维护稍微困难。

ORM方式优点:

  1. 减少程序员学习数据库成本。
  2. 代码量更少。

缺点:

  1. 性能稍微比在线访问差点。
  2. 不容易处理复杂sql。

【问题:4.2】(9分)
请用100字以内的文字说明新体系架构中增加数据访问层的原因。请根据图4-1所示,填写图中空白处(1) - (3)。

  1. 可以更灵活扩展,可以对接不同的数据库平台。
  2. 并且解耦数据层和业务中间层。

【问题:4.3】(7分)
应用程序设计中,数据库访问需要良好的封装性和可维护性,因此经常使用工厂设计模式来实现对数据库访问的封装。请解释工厂设计模式,并说明其优点和应用场景:;请解释说明工厂模式在数据访问层中的应用。

答案:

可以采用工程模式里的抽象工程模式,抽象工程可以无需关注具体的类,而创建一系列或相互依赖的对象,比如针对数据库mysql,oracle分别创建抽象工厂,当使用某个数据库的时候,代码直接指定对应的工厂即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1088112.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Bootstrap-媒体类型

加上媒体查询之后,只有在特定的设备之下才能起作用!!!

【JWT】解密JWT:让您的Web应用程序更安全、更高效的神秘令牌

🥳🥳Welcome Huihuis Code World ! !🥳🥳 接下来看看由辉辉所写的关于JWTElementUI的相关操作吧 目录 🥳🥳Welcome Huihuis Code World ! !🥳🥳 一.JWT是什么 JWT工作原理 JWT验证…

使用 flex 弹性盒保持容器均分布局

使用 flex 弹性盒保持容器均分布局 css 代码 .container {display: flex;width: 100%;height: 100vh; }.part {flex-grow: 1; /* 设置这个值就可以实现均匀分布,但是里面有内容会自动撑开 */flex-basis: 0; /* 为了防止自动撑开,设置基础值为 0 */ }如…

日常中msvcr120.dll丢失怎样修复?总结5个msvcr120.dll丢失的修复教程

在我日常的计算机维护工作中,经常遇到一些用户报告他们在运行某些程序时遇到了“MSVCR120.dll丢失”的问题。这是一个常见的DLL文件丢失或损坏问题,可能会对用户的计算机操作造成不便。在这篇心得体会中,我将分享一些关于这个问题的场景以及如…

JS截取url上面的参数

手动截取封装 function getUrlParams(url location.href) {let urlStr url.split(?)[1] || let obj {};let paramsArr urlStr.split(&)for (let i 0, len paramsArr.length; i < len; i) {const num paramsArr[i].indexOf()let arr [paramsArr[i].substring(0,…

vue监听watch或mutations

/mutations vue监听watch watch监听的属性的方法可以有两个值&#xff0c;一个新值&#xff0c;一个旧值 方法1: watch:{myVlaue:function(val,oldVal){}}方法2: //深度监听 watch:{pageSizeSel:{deep:true,handler:function () {this.pageCode1;this.getData();}},}当姓或…

这8款浏览器兼容性测试工具,用了以后测试效率可以“起飞”~~

浏览器的兼容性问题&#xff0c;是指不同浏览器使用内核及所支持的 HTML 等网页语言标准不同&#xff0c;用户客户端的环境不同造成的显示效果不能达到理想效果。 对于用户而言&#xff0c;无论使用哪款浏览器&#xff0c;期望看到的效果是正常的统一的。 市面上发布的浏览器…

【广州华锐互动】利用VR开展细胞基础实验教学有什么好处?

在科技发展的驱动下&#xff0c;虚拟现实&#xff08;VR&#xff09;技术已被广泛应用于各个领域&#xff0c;包括教育和医学。尤其是在医学教育中&#xff0c;VR技术已成为一种革新传统教学模式的有效工具。本文将探讨使用VR进行细胞基础实验教学的优势。 首先&#xff0c;VR技…

java中将金币格式化千分符和保留两位小数

public static String formatAmount(String amountStr) {try {// 将字符串金额解析为双精度类型double amount Double.parseDouble(amountStr);System.out.println("格式化之前: " amount);// 创建一个格式化器&#xff0c;设置千分位分隔符和保留两位小数NumberFo…

Diffusion Model论文/DALL E 2

B站视频学习记录 Ho J, Jain A, Abbeel P. Denoising diffusion probabilistic models[J]. Advances in neural information processing systems, 2020, 33: 6840-6851. Atwood J, Towsley D. Diffusion-convolutional neural networks[J]. Advances in neural information pro…

Python入门基础知识新手必备(赶紧收藏)

01 基本的类 python最基础、最常用的类主要有int整形&#xff0c;float浮点型&#xff0c;str字符串&#xff0c;list列表&#xff0c;dict字典&#xff0c;set集合&#xff0c;tuple元组等等。int整形、float浮点型一般用于给变量赋值&#xff0c;tuple元组属于不可变对象&am…

快捷高效的选择:Cpolar+Inis助你在Ubuntu上快速搭建博客网站

文章目录 前言1. Inis博客网站搭建1.1. Inis博客网站下载和安装1.2 Inis博客网站测试1.3 cpolar的安装和注册 2. 本地网页发布2.1 Cpolar临时数据隧道2.2 Cpolar稳定隧道&#xff08;云端设置&#xff09;2.3.Cpolar稳定隧道&#xff08;本地设置&#xff09; 3. 公网访问测试总…

IDEA—java: 常量字符串过长问题解决

问题描述&#xff1a; Error: java: 常量字符串过长 问题分析&#xff1a; 字符串长度过长&#xff0c;导致 idea 默认使用的 javac 编译器编译不了。 解决办法&#xff1a; Javac 编译器改为 Eclipse 编译器。 File -> Settings -> Build,Execution,Deployment -&…

Kafka 开启SASL/SCRAM认证 及 ACL授权(二)ACL

Kafka 开启SASL/SCRAM认证 及 ACL授权(二)ACL。 官网地址:https://kafka.apache.org/ kafka authentorization:https://docs.confluent.io/platform/current/kafka/authorization.html 一、开启ZK ACL(可选,内网环境,用户无机器访问权限时) 给kafka meta都加上zk的ac…

高版本Mac系统如何打开低版本的Xcode

这里写目录标题 前言解决方案 前言 大家偶尔也碰见过更新Mac系统后经常发现低版本的Xcode用不了的情况吧.基本每年大版本更新之后都可以在各个开发群里碰见问这个问题的. 解决方案 打开访达->应用程序->选中打不开的那个版本的Xcode并且右键显示包内容->Contents-…

mysql查询时间相关方法

查询当月第一天 SELECT DATE_FORMAT(NOW(), %Y-%m-01) AS first_day_of_month; SELECT DATE_FORMAT(CURDATE(), %Y-%m-01) AS first_day_of_month;查询当月最后一天 SELECT LAST_DAY(CURRENT_DATE) AS last_day_of_month;; SELECT LAST_DAY(NOW()) AS last_day_of_month查询当…

零售数据分析模板鉴赏-品类销售结构报表

不管是服装零售&#xff0c;还是连锁超市或者其他&#xff0c;只要是零售行业就绕不过商品数据分析&#xff0c;那么商品数据分析该怎么做&#xff1f;奥威BI的零售数据分析方案早早就预设好相关报表模板&#xff0c;点击应用后&#xff0c;一键替换数据源&#xff0c;立得新报…

[Spring] SpringMVC 简介(二)

目录 五、域对象共享数据 1、使用 ServletAPI 向 request 域对象共享数据 2、使用 ModelAndView 向 request 域对象共享数据 3、使用 Model、Map、ModelMap 向 request 域对象共享数据 4、向 session 域和 application 域共享数据 六、SpringMVC 的视图 1、ThymeleafVie…

客户机操作系统已禁用 CPU。请关闭或重置虚拟机(解决)

解决&#xff1a; 关闭虚拟机进入设置点击处理器给虚拟化引擎两个勾上确认后重新即可

一图看懂CodeArts Inspector 三大特性,带你玩转漏洞管理服务

华为云漏洞管理服务CodeArts Inspector是面向软件研发和服务运维提供的一站式漏洞管理能力&#xff0c;通过持续评估系统和应用等资产&#xff0c;内置风险量化管理和在线风险分析处置能力&#xff0c;帮助组织快速感应和响应漏洞&#xff0c;并及时有效地完成漏洞修复工作&…