案例分析 5 : web系统架构设计

第5 web系统架构设计

  • 21
  • 20
  • 19
  • 18
  • 17
  • 16 fifth
  • 16 fourth
  • 15
  • 14
  • 13

21

【Q1】
请用40O字以内的文字简要描述基于家庭网关的传统智能家居管理系统和基于云平台的智能家居管理系统在网关管理、数据处理和系统性能等方面的特点,以说明项目组选择李工设计思路的原因。

网关管理:云平台更强,可以实现远程网关管理,可以对不同地点的多种设备进行统一管理,管理能力更强。
数据处理:数据一般经由网关传递到云上数据库中,再进行处理,这样对数据进行分析、挖掘更便利,同时存储在云端,数据更安全,有容灾能力。
系统性能:数据存在云上数据库中,通信效率更高,同时云也有更强的数据处理能力,所以会更高效。

【Q3】该系统需实现用户终端与服务端的双向可靠通信,请用300字以内的文字从数据传输可靠性的角度对比分析TCP和UDP通信协议的不同,并说明该系统应采用哪种通信协议。

该系统应该采用TCP协议,这样才能保障用户终端和服务端之间的双向可靠通信。
TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议。TCP之所以可靠,是因为建立连接时有3次握手,通信时有回应机制,所有丢了包,能重传以保障通信可靠性。
UPD是一种面向无连接的传输层通信协议,丢了包不会重传,所以不能保障通信可靠性。

20

【Q3】
该工业设备检测系统拟采用工业控制领域中统一的数据访问机制,实现与各种不同设备的数据交互,请用100以内的文字说明采用标准的数据访问机制的原因。

该工业设备检测系统需与不同设备进行数据交互,采用标准的数据访问机制可以在硬件供应商和软件开发商之间建立一套完整的规则。只要遵循这套规则,数据
交互对两者来说都是透明的,硬件供应商只需要考虑应用程序的多种需求和传输协议,软件开发商也不必了解硬件的实质和操作过程,实现对设备数据采集的统一管理。

19

【Q3】 该物流车辆管理系统需抵御常见的SQL注入攻击,请用200字以内的文字说明什么是SQL注入攻击,并列举出两种抵御SQL注入攻击的方式。

SQL注入攻击,就是通过把SQL命令插入的Web表单提交或域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。

可以通过以下方式低于SQL注入攻击:
使用正则表达式;
使用参数化的过滤语句;
检查用户输入的合法性;
用户相关数据加密处理;
存储过程来执行所有的查询;
使用专业的漏洞扫描工具。

18

【Q1】请分别用200字以内的文字说明什么是面向服务架构(SOA) 以及ESB在SOA中的作用与特点。

SOA是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。
接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的
系统中的服务可以一种统一和通用的方式进行交互。

ESB作用与特点:
1、SOA的一种实现方式,ESB在面向服务的架构中起到的是总线作用,将各种服务进行连接与整合;
2、描述服务的元数据和服务注册管理;
3、在服务请求者和提供者之间传递数据,以及对这些数据进行转换的能力,并支持由实践中总结出来的一些模式
如同步模式、异步模式等。
4、发现、路由、匹配和选择的能力,以支持服务之间的动态交互,解耦服务请求者和服务提供者。高级一些的能力,包括对安全的支持、
服务质量保证、可管理型 和负载平衡等。

【Q3】 针对银行信息系统的数据交互安全性需求,列举3种可实现信息系统安全保障的措施。

1、引入https协议或采用加密技术对数据先加密再传输
2、采用信息摘要技术对信息进行完整性验证
3、防火墙系统
4、安全检测
5、网络扫描

【Q3 扩展】
SOA环境中,需要解决的安全问题包括:

(1)机密性:机密性又称为保密性,是在非法非授权用户访问数据,导致数据机密泄漏,在传输层和消息层对机密性的需求是不同的,
可以依靠数据加密来保证数据的机密性。
(2)完整性:是指数据的正确性、一致性和相容性。保证数据的完整性可以通过数字签名来实现。
(3)可审计性:审计是一种事后监视的措施,跟踪系统的访问活动,发现非法访问,达到安全防范的目的。不同的系统可能需要不同的审计等级。
(4)认证管理:实际指的是服务器请求者和服务提供者在服务调用的时候互相认证对方的身份,防止非授权非法实体来获取服务,是系统安全的第一道安全屏障。
(5)授权管理:授权管理的目的是阻止Web服务的未授权使用。
(6)身份管理:在SOA架构中,身份管理和传统系统中的身份管理比较相像。服务请求者和服务提供者两者的身份对两者来说是至关重要的,否则就会存在非法用户
在服务请求者和服务提供者之间进行消息传递,太容易导致数据的泄密和篡改。

17

【Q1】 请用200字以内的文字描述什么是"响应式 Web 设计",并列举2个响应式Web设计的实现方式。

响应式web设计是指我们设计与开发的页面可以根据用户的行为(比如改变浏览器窗口的大小)和不同的设备环境(比如系统平台、屏幕分辨率以及横竖屏等)做出相应的响应
来调整页面的布局,以提供用户可感知的、流畅的阅读和操作体验。

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

1、提升性能
交易平台要求高并发,主从赋值方式一主多从,不同的用户请求可以从不同的从数据库读取数据,提高并发度。

16 fifth

【Q1】

生成Product Backlog

Sprint计划会议

每日站立会议

Product Backlog中有未完成用户故事

完成Product Backlog中的所有用户故事

16 fourth

【Q1】
王工认为原有网站在技术上存在先天不足,不能满足企业业务的快速发展,根据你的理解,请用300字以内的文字说明原系统存在哪几个方面的不足。

1、PHP只能实现简单的分布式两层或三层的架构,而JAVA在这方面就比较强大,可以实现多层的网络架构。数据库层(持久化层)、应用(业务)逻辑层、表示逻辑层彼此分开,而且现在不同的层都已经有一些成熟的开发框架的支持。
2、PHP是面向过程的语言,Java是面向对象的,面向过程语言开发的程序只要业务流程发生变化,修改工作量很大,所以可修改性差,同时可复用性也差。
3、PHP语言在可靠性方面比J2EE平台差,J2EE平台有大星增强可靠性的成熟解决方案,而PHP只是一种简单的脚本语言,在可靠性方面缺乏成熟解决方案。
4、PHP对于不同的数据库采用不同的数据库访问接口,而Java通过JDBC来访问数据库,通过不同的数据库厂商提供的数据库驱动方便地访问数据库,访问数据库的接口比较统一。所以原架构在数据库连接方面修改起来工作量也是很大的。
5、PHP适合于小型项目,所以本项目中以前采用PHP是合适的,但目前大量功能需要增加,PHP在稳定性方面也达不到要求。
6、PHP比Java的可维护性差。
7、PHP比Java的扩展性差。
8、PHP比Java的安全性差。

【Q2】请简要说明应用服务器的概念,并重点说明应用服务器如何来保障系统在大负荷和长时间运行下的稳定性以及可扩展性。

1、若系统负荷很大,可以部署多台应用服务,多台应用服务器分担任务,以达到性能要求。
2、应用服务器可以通过灵活地增加服务器完成扩展,所以扩展性很好。
3、应用服务器可长时间稳定运行。因为当一台应用服务器出现故障时,
可以将当期运行的事务转移至正常应用服务器上完成执行,不影响业务正常执行,从而保障高可靠性与稳定性。

15

【Q1】请用300以内文字说明什么是数据持久层,使用数据持久层能够为项目开发带来哪些好处?

数据持久层是一组软件服务,将应用程序与该程序所使用的数据源分离,为整个项目提供一个统一、安全、并发的数据持久机制。

好处:
1、程序代码复用性强,即是更换数据库,只需要更改配置文件,不必写程序代码。
2、业务逻辑代码可读性强,在代码中不会有大量的SQL语言,提高程序的可读性。
3、持久化技术可以自动优化,以减少对数据库的访问量,提高程序运行效率。
4、简化开发工作,让卡发人员更关注于业务逻辑的开发。
5、通过对象/关系映射向业务逻辑提供面向对象的数据访问。
6、分离业务逻辑层和数据层,降低两者之间的耦合。

【Q2】 针对在线投票系统的实际应用需求和要求,项目组应选用哪种技术实现数据持久层?请用200字以内文字说明其采用该技术的原因。

1、项目组应选用Hibernate框架

2、原因:
(1)从移植的角度来看使用hibernate更容易移植到其他数据库平台。
Hibernate与具体数据库的关联只需要在XML文件中配置即可,所有的HQL语句与具体使用的数据库无关,移植性很好.ibatis项目中所有的SQL语句都是依赖所使用的数据库的,
所以不同数据库类型的支持不好。
(2)使用Hibernate能降低或者消除SQL语句开发工作量,Hibernate提供了方法完成持久层操作,程序员不需要对SQL的数量掌握,便可完成任务。
(3)Hibernate提供了对象状态管理功能,是开发者不再需要理会底层数据库系统的细节,而Mybatis在这一块没有文档说明,用户需要自己对对象进行详细的管理。

14

【Q1】针对目前出现的Web服务器负载过大问题,项目组决定在客户端与中间层Web服务器之间引入负载均衡器,通过中间层Web服务器集群来提高Web请求的并发处理能力。在讨论拟采用的负载均衡机制时,王工提出采用基于DNS的负载均衡机制,而李工则认为应采用基于反向代理的负载均衡机制,项目组经过讨论,最终确定采用李工提出的方案。请用200字以内的文字,分别简要说明两个机制的基本原理,
并从系统执行效率、安全性及简易性等方面将两种机制进行对比,将对比结果填入表5-1中。

原理:
基于DNS的负载均衡是在DNS服务器中为同一个主机名配置多个IP地址,在应答DNS查询时,DNS服务器对每个查询将以DNS文件中主机记录的IPD地址按顺序返回不同的解析结果,
将客户端的访问引导到不同的节点上去,使得不同的客户端访问不同的节点,从而达到负载均衡的目的。
反向代理负载均衡是将来自Internet上的连接请求以反向代理的方式动态地转发给内部网络上的多个节点进行处理,从而达到负载均衡的目的。

【Q2】 针对并发数据库访问所带来的磁盘I/O瓶颈问题,项目组决定在数据层引入数据库扩展机制。经过调研得知系统数据库中存储的主要数据为以用户标识为索引的社交网络数据,
且系统运行时发生的大部分数据库操作为查询操作。经过讨论,项目组决定引入数据库分区和MySQL主从复制两种扩屣机制。数据库分区可采用水平分区和垂直分区两种方式,
请用350字以内的文字说明在本系统中应采用哪种方式及其原因,并分析引入主从复制机制给系统带来的好处。

本系统应采用水平分区,因为社交网络数据库的数据表记录数量非常庞大,而且记录的访问,大多集中于本地区域,所以水平分区能极大提高处理效率。

主从复制机制使得同样的数据,存在多个副本,这样让查询数据时,可以选择改数据最近的副本进行访问,提高效率,降低资源使用时的冲突。另一方面
主从复制机制中一台数据库服务器故障不会导致站点无法访问。

【Q3】为进一步提高数据库访问效率,项目组决定在中间层与数据层之间引入缓存机制。赵工开始提出可直接使用MySQL的查询缓存(query cache)机制,但项目组经过分析好友动态显示等典型业务的操作需求,同时考虑已引入的数据库扩展机制,认为查询缓存尚不能很好地提升系统的查询操作效率,项目组最终决定在中间层与数据层之间引入Memcached分布式缓存机制。

(b)请结合已知信息从缓存架构、缓存有效性及缓存数据类型等方面分析使用Memcached代替数据库查询缓存的原因。

Memcached相比数据库查询缓存:
缓存架构:数据库查询缓存只是将查询结果进行缓存,适用面很窄,而Memcached缓存是将数据库中的表进行缓存,对于这些表上的操作均可使用。
缓存有效性:Memcached缓存失效较长,只要未更新,就属于有效状态,而数据库查询缓存时效较短(具体时效与配置有关),所以这方面Memcached缓存有优势。
缓存数据类型:Memcached缓存数据为表级,而数据库查询缓存为元组级。

13

【Q1】图4-1MVC设计模式
请填写图4-1中的(1)~(3),并简要说明在该个人银行系统中采用MVC模式对界面设计的作用。

MVC模式对该个人银行系统的作用:
(1) 允许多种界面的扩展,视图的变更与增加,与模型无关。
(2) 易于维护,控制器和视图随着模型的扩展而扩展,只要保持公共接口,控制器和视图的旧版本可以继续使用;
(3) 可支持功能强大的用户界面。

【Q2】 请从设计模式的角度,简要说明设计方案采用XML作为GUI描述语言的机制。

从设计模式的角度来说,整个XML表现层解析的机制是一种策略模式。在调用显示GUI时,不是直接调用特定的表现技术的API,而是装载GUI对应的XML配置文件,
然后根据特定的表现技术的解析器解析XML,得到GUI视图示例对象。这样,对于GUI开发人员说,GUI视图只需要维护一套XML文件即可。

【Q3】基于XML的界面管理技术可实现灵活的界面配置、界面动态生成和界面定制,其思路是用XML生成配置文件及界面所需的元数据,按不同需求生成界面元素及软件界面,其技术框图如图4-2所示。

(1)界面定制(2)界面动态生成(3)界面配置 (注意:这三处的内容可从问题中找到)
界面配置:是对用户界面的静态定义,通过读取配置文件的初始值对界面配置。由界面配置对软件功能进行裁剪、重组和扩充,以实现特殊需求。
界面定制:是对用户界面的动态修改过程,在软件运行过程中,用户可按需求和使用习惯,对界面元素(如菜单、工具栏、键盘命令)的属性(如文字、图标、大小、位置等)进行修改。软件运行结束后,界面定制的结果被保存。
界面动态生成:是系统通过DOMAPl读取XML配置文件的表示层信息(初始界面大小、位置等),通过数据存取类读取数据库中的数据层信息,运行时由界面元素动态生成界面。界面配置和定制模块在软件运行前后修改配置文件、更改界面内容。

你可能感兴趣的:(#,rk,系统架构,第5题,web系统架构设计)