第5题
阅读以下关于Web系统架构设计的叙述,在答题纸上回答问题1至问题3.
【说明】
某电子商务企业因发展良好,客户量逐步增大,企业业务不断扩充,导致其原有的B2C商品交易平台己不能满足现有业务需求。因此,该企业委托某软件公司重新开发一套商品交易平台。该企业要求新平台应可适应客户从手机、平板设备、电脑等不同终端设备访问系统,同时满足电商定期开展"秒杀"、"限时促销"等活动的系统高并发访问量的需求。面对系统需求,软件公司召开项目组讨论会议,制定系统设计方案。讨论会议上,王工提出可以应用响应式Web设计满足客户从不同设备正确访问系统的需求。 同时,采用增加镜像站点、CDN 内容分发等方式解决高并发访问量带来的问题。李工在王工的提议上补充,仅仅依靠上述外网加速技术不能完全解决高用户并发访问问题,如果访问量持续增加,系统仍存在崩溃可能。李工提出应同时结合负载均衡、缓存服务器、Web应用服务器、分布式文件系统、分布式数据库等方法设计系统架构。经过项目组讨论,最终决定综合王王和李工的思路,完成新系统的架构设计。
- Web 应用层
(b) 界面层
(c) 负载均衡层
(d) CDN 内容分发
(e) 主数据库
(f) 缓存服务器集群
(g) 从数据库
(h) 写操作
(i) 读操作
(j) 文件服务器集群
(1)a Web应用层 错误,答案: d CDN
(2)dCDN内容分发 错误,答案:c 负载均衡
(3)f缓存服务器集群
- c负载均衡层 错误,答案:a web应用层
- e主数据库
- h写操作
- g从数据库
- i读操作
【问题:5.1】(5分)
请用200字以内的文字描述什么是"响应式 Web 设计",并列举2个响应式Web设计的实现方式。
答案:
响应式Web设计表示可以根据用户的行为以及不同的环境和设备,来做出对应的适配,来调整页面布局,比如根据移动端和pc端自动适配显示,提高用户体验。
- 流式布局。
- 弹性布局加媒体查询。
【问题:5.3】(4 分)
根据李工的提议,新的B2C商品交易平台引入了主从复制机制。请针对B2C商品交易平台的特点,简要叙述引入该机制的好处。
- 分摊单个服务器压力,读写分离,保证性能更高。
- 主动数据冗余备份,数据安全性更高。
- 更优秀的扩展性,当数据增多,只需要继续扩展集群服务器。
- 提升可用性,宕机自动选举先的主机。
第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的原因。
答案:
数据库在线访问优点:
- 性能比ORM更好。
- 组装sql查询灵活,可以处理复杂sql。
缺点:
- 程序员sql能力需要增强。
- 修改维护稍微困难。
ORM方式优点:
- 减少程序员学习数据库成本。
- 代码量更少。
缺点:
- 性能稍微比在线访问差点。
- 不容易处理复杂sql。
【问题:4.2】(9分)
请用100字以内的文字说明新体系架构中增加数据访问层的原因。请根据图4-1所示,填写图中空白处(1) - (3)。
- 可以更灵活扩展,可以对接不同的数据库平台。
- 并且解耦数据层和业务中间层。
【问题:4.3】(7分)
应用程序设计中,数据库访问需要良好的封装性和可维护性,因此经常使用工厂设计模式来实现对数据库访问的封装。请解释工厂设计模式,并说明其优点和应用场景:;请解释说明工厂模式在数据访问层中的应用。
答案:
可以采用工程模式里的抽象工程模式,抽象工程可以无需关注具体的类,而创建一系列或相互依赖的对象,比如针对数据库mysql,oracle分别创建抽象工厂,当使用某个数据库的时候,代码直接指定对应的工厂即可。