
一、简答题
某公司欲开发一个车辆定速巡航控制系统,以确保车辆在不断变化的地形中以固定的速度行驶。如图所示给出了该系统的简化示意图。下表描述了各种系统输入的含义。
公司的领域专家对需求进行深入分析后,将系统需求认定为:任何时刻,只要定速巡航控制系统处于工作状态,就要有确定的期望速度,并通过调整引擎油门的设定值来维持期望速度。在对车辆定速巡航控制系统的架构进行设计时,公司的架构师王工提出采用面向对象的架构风格,而李工则主张采用控制环路的架构风格。在架构评估会议上,专家对这两种方案进行综合评价,最终采用了面向对象和控制环路相结合的混合架构风格。
1、在实际的软件项目开发中,采用成熟的架构风格是项目成功的保证。请用200字以内的文字说明:
什么是软件架构风格;面向对象和控制环路两种架构风格各自的特点。
2、用户需求没有明确给出该系统如何根据输入集合计算输出。请用300字以内的文字针对该系统的增减速功能,分别给出两种架构风格中的主要构件,并详细描述计算过程。
3、实际的软件系统架构通常是多种架构风格的混合,不同的架构风格都有其适合的应用场景。以该系统为例,针对面向对象架构风格和控制环路架构风格,各给出两个适合的应用场景,并简要说明理由。
某银行开通了网上银行业务,其网上贷款业务流程如下:
①客户在网上填写姓名、电子邮件地址、贷款类型、贷款金额、身份证号、通讯地址等信息,提交贷款申请。
②在指定的时间内,客户会收到银行的电子邮件,通知贷款是否被批准。
③银行根据客户提交的信息,创建贷款申请任务,创建工作由运行在主机上的CICS(客户信息控制系统)完成,同时需要从第三方获得客户的信用审查信息。
④由信贷员对该项贷款申请业务进行审批,然后由风险检查系统评估该项贷款的风险程度,风险大的贷款申请被拒绝。
⑤无论批准或者拒绝,结果都会通过邮件系统递交给客户。对于拒绝的贷款申请,还要通知贷款申请任务进行有关操作。
⑥除了信贷员审批环节需要人机交互外,业务是自动进行的。
4、上述网上贷款业务采用SoA架构来实现。上述业务流程中涉及哪些功能单元?什么是soA?本题中的案例采用soA具有哪些优点?请用200字以内文字说明。
5、请将以下关于soA的叙述填写完整。
soA不是一个新鲜事物,但它却是传统的面向对象模型的替代模型。相比较而言,面向对象的模型是____耦合和____粒度的,而SoA是____耦合和____粒度的。SoA系统原型的一个典型例子是____(CORBA.,它已经出现很长时间了,其定义的概念与soA相似。
随着Web Services的成熟,现在的soA已经有所发展,这些进展是以____为基础的。在Web Services中,通过____来描述接口,与CoRBA中的____(接口描述语言)相比,它动态性更强、灵活度更高。
SoA还具有管理上的优点。例如,现在管理员可直接管理开发人员所构建的____,这远胜于以往管理单个应用的方式。通过分析____间的交互,SoA可以帮助企业了解何时以及什么业务逻辑被切实执行了,这使管理员能够有针对性地优化业务流程。
6、上述网上贷款系统能够实际应用的基本前提之一是满足金融领域的安全性需求。该系统必须要满足哪些安全方面的需求?请用200字以内的文字简要说明。
某软件开发公司欲为某电子商务企业开发一个在线交易平台,支持客户完成网上购物活动中的在线交易。在系统开发之初,企业对该平台提出了如下要求:
①在线交易平台必须在1s内完成客户的交易请求。
②该平台必须保证客户个人信息和交易信息的安全。
③当发生故障时,该平台的平均故障恢复时间必须小于10s。
④由于企业业务发展较快,需要经常为该平台添加新功能或进行硬件升级。添加新功能或进行硬件升级必须在6小时内完成。
针对这些要求,该软件开发公司决定采用基于架构的软件开发方法,以架构为核心进行在线交易平台的设计与实现。
7、软件质量属性是影响软件架构设计的重要因素。请用200字以内的文字列举6种不同的软件质量属性名称,并解释其含义。
8、请对该在线交易平台的4个要求进行分析,用300字以内的文字指出每个要求对应何种软件质量属性:并针对每种软件质量属性,各给出2种实现该质量属性的架构设计策略。
某软件公司承担了某中小型企业应用软件开发任务,进度要求紧迫。为了按时完成任务,选择合适的企业应用系统开发架构非常重要。项目组在进行方案论证时,项目组成员提出了两种开发思路。
①刘工建议采用J2EE5.0和EJB3.0进行开发。理由是J2EE定义了标准的应用开发体系结构和部署环境,EJB是J2EE的基础和核心。J2EE5.0的主要目标是简化开发,相比EJB2.1,EJB3.0具有很多改进和提高。
②杜工建议采用struts、Spring和Hibernate轻量级开源框架相结合的方式。理由是随着Java开源项目阵营的发展壮大,一些基于POJo(Plan 01d Java objects)的开源框架被广泛地引入到Java企业应用开发中来,与重量级的EJB框架相比,这些轻量级的框架有很多优点。
项目组仔细比较分析了两种方案的特点、优点和不足之处。认为杜工和刘工的建议都合理,但是从结合当前项目实际情况出发,最后决定采用杜工的建议。
9、Java企业应用框架一般被划分为3个层次,请用150字以内文字说明都有哪3个层次?功能分别是什么?
10、请用200字以内的文字叙述struts、Spring和Hiberhate开源框架特点和结合方式。
11、请用200字以内的文字说明基于struts、Spring和Hiberhate的轻量级框架与基于EJB 的重量级框架解决问题的侧重点有什么不同?
银行金融系统对数据库中的数据安全要求很高,必须在技术层面上采用必要的措施,以保证数据的有效和不丢失。数据库的备份与恢复是保证数据安全的一种基本方法,一般将数据库备份分为冷备份、热备份和数据导出,而数据导出根据导出数据的范围,又可以分为完全导出、增量导出和累计导出。
该金融系统上线初期,整个业务系统采用了内网方式运行,不与发生联系。为了保证数据库内部数据的安全,该银行信息中心的刘工提出的备份方案如表1所示。
信息中心的李工对刘工的方案提出了异议,认为数据库一旦发生故障,刘工的方案无法做到数据库的实时恢复,会导致业务数据的丢失,银行应该采用数据库冷备份和热备份相结合的方式来完成数据库的备份。
12、针对金融数据库安全,从技术层面上分析应重点考虑哪些因素?
13、请用200字以内的文字评价刘工的备份策略的优缺点。
14、请分别说明冷备份和热备份的概念,并补充表2中的(1)~(6)空。
15、银行金融系统需要支持数据库的实时/秒级恢复(即恢复到故障之前的时间点上),请设计合理的备份策略,并说明其基本恢复过程。
某大型企业在全国各城市共有40个左右的分支机构,这些机构已经建设了基于大型关系数据库的信息管理系统,每天负责地处理本区域内的业务,并实时存储业务数据。
每个机构的数据库服务器从PC Server(最小512MB内存)到RISC小型机(最大4GB内存)配置不一,操作系统也不一样,数据库产品类型也不统一。
每个机构平均每天产生约4MB的数据,数据表中包括TEXT字段;每季度一次性产生约100MB的统计和报表数据。
为了加强管理,实现对下属机构业务数据的异地存储备份,保证数据的安全及恢复,同时对全国业务数据进行挖掘分析,该企业拟在总部建设数据中心。数据中心通过公共广域网与各个分支机构组成VPN,每个分支机构到数据中心的逻辑信道带宽为128kbps。
16、(1)为保证数据上传的顺序、稳定、安全、并发,并解决数据库的异构问题,系统应采用下列哪种技术(请在下列A、B、C、D四个选项中选择)?
A.交易中间件技术
B.Web中间件
C.Web Service
D.插装技术
(2)为保证分支机构可靠、高效地向数据中心汇总业务数据,避免单点故障,除了考虑广域网线路采用备份外,在数据中心还应采用什么技术?用100字以内文字说明。
17、假设各个分支机构的历史数据已经通过某种方式顺利地存储到了数据中心。对于增量数据的汇总更新,总部的王副总工提议采用数据库复制技术和数据库的触发器技术获取数据更新日志的方式来完成,但张总认为这样做不仅增加了成本,而且不能解决全部问题。请用300字以内文字说明张总的理由。
18、最后,为解决数据中心数据更新与同步问题,张总安排总部的系统分析师李工来设计方案,并指出可以对王副总工的意见加以完善,如果需要也可以修改各地的业务系统。李工提出的方案具有较好的可执行性,并获得了大家的认可。请用400字以内文字叙述系统分析师李工的方案要点。
随着传统的数据库技术的成熟和计算机网络技术的发展,分布式数据库系统的研究与开发受到人们越来越多的关注。分布式数据库支持数据性和分布透明性。用户不必关心数据的逻辑分区,不必关心数据物理位置分布的细节,也不必关心副本的一致性问题。
19、请用200字以内的文字叙述分布式数据库的主要特性和优缺点。
20、在数据库中,某个业务表中的数据量很大,急速膨胀,在这样的情流下,为了保持高的数据响应速度,根据数据的____和____原则,可以对数据表进行分片设计。一般有两种分片方法:____和____。
请在空白处填写恰当的内容并请用200字以内的文字叙述数据表分片满足的条件并给出简要说明。
21、分布式数据库中各局部数据库应满足集中式数据库的基本需求,除此以外还应保证数据库的全局数据____、并发操作的____和故障的全局____。
请在空白处填写恰当的内容并请用300字以内的文字简述保持数据一致性的方法。
Web 2.0是目前Internet上web应用的新模式,其概念由Tim o'Reilly于2003年首先提出。目前Internet上已经有很多基于Web2.0的Web应用系统,如、Wikipedia、Blogger、del.icio.us、Yourube和Flickr等,其应用涵盖各个方面。
22、请用200字以内的文字叙述基于Web2.0的Web应用与传统Web应用的重要不同点,并给出简要解释(列举五个方面的不同点即可)。
23、基于Web2.0的Web应用十分强调用户的体验与感受,Ajax是目前广泛使用的表现层技术。请用200字以内的文字简要介绍Ajax的概念和核心思想,并说明在使用Ajax时,从效率方面考虑需要注意的问题(列举3个即可)。
24、某房地产信息网站欲整合Goog1e提供的地图信息(Google Maps)和Craigslist(美国最大的分类广告网站)提供的房地产信息,为用户提供新的房地产信息增值服务。负责网站建设的工程师提出了两种解决方案,第一种方案拟采用传统的应用系统集成方法,集成来自不同源的数据。另外一种采用基于Web2.0的Mashup技术,从不同的数据源抽取数据,聚合并转换数据,在不同的上下文使用,具体如下表所示。请阅读并完成表中空白部分。
答案:
一、简答题
1、软件架构风格是描述某一类特定应用领域中软件系统组织方式和惯用方式。
面向对象架构风格的特征是将数据表示和基本操作封装在对象中。这种模式的构件是对象,对象维护自身表示的完整性,对象之间通过消息机制进行通信,对象交互时需要知道彼此的标识,通过对象之间的协作完成计算过程。
控制环路架构风格是将过程输出的指定属性维护在一个特定的参考值(设定点)。控制环路风格包括过程变量、被控变量、输入变量、操纵变量和设定点等构件,通过收集实际和理想的过程状态信息,并能调整过程变量使得实际状态趋于理想状态。2、对于系统的增减速功能,采用面向对象风格的巡航控制系统首先会定义司机、油门、时钟、速度计和车轮等构件。
整个计算的主要过程如下:
①司机进行增/减速操作设置期望速度,该期望速度以消息的形式传递给速度计。
②速度计通过向车轮和时钟发送消息获取车轮转速和时钟值,得到当前速度。
③速度计计算当前速度和期望速度的速度差值。
④该差值以消息的形式发送给油门,油门通过速度差值调节自身状态。⑤整个过程在时钟的控制下定期向速度计发送消息,重复执行②~④。
控制环路的架构风格以控制器为核心,期望速度、车轮脉冲、时钟和油门等作为构件。
具体的计算过程如下:
①司机进行增/减速操作设置期望速度值。
②将设定值置为期望速度值。
③控制器采集车轮脉冲和时钟值,计算出当前速度。
④比较期望速度和当前速度,计算速度差值,控制油门动作。
⑤反复执行③和④。
3、适合面向对象架构风格的应用场景:
①用户刹车,立即退出巡航控制系统。理由:这是一个典型的事件驱动的场景,适合于面向对象风格。
②系统对突发事件的处理,如某些部件失灵等。理由:当发生突发事件时,系统会同时产生数据和事件,这种情况用对象建模较为恰当。适合面向控制环路架构风格的应用场景:
①在达到期望速度后,系统维持恒定速度行驶。理由:这是一个典型的闭环控制的情景,系统需要在外界情况不断发生变化的情况下进行调整,使得系统状态尽可能接近期望状态。
②用户改变期望速度后,系统不断进行调整,直至达到恒定速度。理由:这是一个闭环控制情景,当用户设定期望速度值后,系统需要在不断获取当前速度和外界条件的情况下对系统状态持续调整,使得系统状态尽可能接近这个新的期望状态。
[解析]软件系统架构风格多种多样,如何根据系统的要求选择合适的架构风格,是系统架构设计师需要掌握的重要技能。
问题1考查概念层面的问题,根据卡耐基·梅隆大学软件工程研究所的定义,软件架构风格是描述某一类特定应用领域中软件系统组织方式和惯用方式。
面向对象架构风格的特征是将数据表示和基本操作封装在对象中。这种模式的构件是对象,对象维护自身表示的完整性,对象之间通过消息机制进行通信,对象交互时需要知道彼此的标识,通过对象之间的协作完成计算过程。
控制环路架构风格是将过程输出的指定属性维护在一个特定的参考值(设定点)。控制环路风格包括过程变量、被控变量、输入变量、操纵变量和设定点等构件,通过收集实际和理想的过程状态信息,并能调整过程变量使得实际状态趋于理想状态。
问题2难度比问题1要大一些。需要根据面向对象的风格特点与控制环路的风格特点,来分析系统功能应如何拆分成构件。
采用面向对象风格的巡航控制系统首先会定义司机、油门、时钟、速度计和车轮等对象。整个计算过程通过对象之间的合理交互完成期望的功能。
控制环路的架构风格将以控制器为核心,期望速度、车轮脉冲、时钟和油门等作为构件。通过不断地反馈机制实现对系统的控制。
问题3主要从应用场景的角度比较两种架构风格。面向对象系统比较适合事件驱动的场景,特别是离散突发事件的处理;而控制环路则适合连续事件的处理,如维持恒定车速等。4、①该网上贷款业务至少涉及贷款申请、信用审查、信贷员审批、风险检查、电子邮件传送等功能单元。
②soA即面向服务的体系结构是一个软件架构模型,它将业务的不同功能单元(称为服务)通过服务之间的接口(和契约)联系起来。接口于实现服务的硬件平台、操作系统和编程语言。③复用银行的各种应用资源(如软件资产);增强银行各个业务的集成性和灵活性;业务流程变更时便于快速构建应用系统。5、(1)紧
(2)细(小)
(3)松(4)大
(5)通用对象请求代理结构
(6)XML(可扩展标记语言)(7)WSDL(Web服务描述语言)
(8)IDL
(9)相同服务
(10)服务
6、①验证(系统有关角色的身份识别)。
②签名(创建及验证类似手写签名的电子签名)。
③授权(如信贷员是否具有审批权)。
④完整性(发送的数据与接收到的数据是否一致)。
⑤机密性(与业务无关的人员不能读取事务中的数据)。
⑥审查(把所有事务记录下来,以便事后验证)。
⑦不可否认性(能由第三方求证事务中发送及收到的是否是同一数据)。
③威胁预防(防止间课程序登录、攻击系统)。
[解析]本题的试题背景为网上银行贷款业务,实际考查SoA的理论和应用,试题共3个小问题。
[问题1]
第一个问题要求考生回答系统有哪几个功能模块、SoA的定义和优点。系统的功能模块可以根据试题描述中给出的流程直接得出。
①提交贷款申请:客户在网上填写姓名、电子邮件地址、贷款类型、贷款金额、身份证号、通讯地址等信息。
②信用审查:从第三方获得客户的信用审查信息。
③创建贷款申请任务:银行根据客户提交的信息,创建贷款申请任务。
④风险评估:由风险检查系统评估贷款的风险程度。
⑤审批贷款申请:由信贷员对该项贷款申请业务进行审批。
⑥客户通知:无论批准或者拒绝,结果都会通过邮件系统递交给客户。
有关SoA的定义和优点,请读者阅读本系列丛书中的《系统分析师考试系统分析与设计论文试题分类精解》相关内容。
[问题2]
第二个问题是对第一个问题的补充,是一个填空题,进一步考查SoA的概念,以及与相关概念的比较。
SoA不是一个新鲜事物,但它却是传统的面向对象模型的替代模型。相比较而言,面向对象的模型是紧耦合和细粒度的,而soA是松耦合和大粒度的。SoA系统原型的一个典型例子是通用对象请求代理结构(CORBA),它已经出现很长时间了,其定义的概念与SoA相似。
随着Web Services的成熟,现在的soA已经有所发展,这些进展是以xML为基础的。在Web Services中,通过WSDL来描述接口,与CoRBA中的IDL(接口描述语言)相比,它动态性更强、灵活度更高。
soA还具有管理上的优点。例如,现在管理员可直接管理开发人员所构建的相同服务,这远胜于以往管理单个应用的方式。通过分析服务间的交互,soA可以帮助企业了解何时以及什么业务逻辑被切实执行了,这使管理员能够有针对性地优化业务流程。
[问题3]
第三个问题是一个安全性试题,考生可以从网络安全、信息安全、交易安全等方面进行回答。
具体的安全性问题,请读者阅读本书第5章的相关内容。7、常见的软件质量属性有多种,例如,性能(Performance)、可用性(Availability)、可靠性(Reliability)、健壮性(Robustness)、安全性(Security)、可修改性(Modification)、可变性(Changeability)、易用性(Usability)、可测试性(Testability)、功能性(Functionality)和互操作性(Inter-operation)等。
这些质量属性的具体含义如下:
①性能是指系统的响应能力,即要经过多长时间才能对某个事件做出响应,或者在某段时
间内系统所能处理事件的个数。
②可用性是系统能够正常运行的时间比例。
③可靠性是指软件系统在应用或错误面前,在意外或错误使用的情况下维持软件系统功能
特性的基本能力。
④健壮性是指在处理或环境中,系统能够承受压力或变更的能力。
⑤安全性是指系统向合法用户提供服务的同时能够阻止非授权用户使用的企图或拒绝服务
的能力。
⑥可修改性是指能够快速地以较高的性能价格比对系统进行变更的能力。
⑦可变性是指体系结构经扩充或变更成为新体系结构的能力。
⑧易用性是衡量用户使用一个软件产品完成指定任务的难易程度。
⑨可测试性是指软件发现故障并隔离、定位其故障的能力特性,以及在一定的时间和成本前提下,进行测试设计、测试执行的能力。
⑩功能性是系统所能完成所期望工作的能力。
互操作性是指系统与外界或系统与系统之间的相互作用能力。
8、①在线交易平台必须在1s内完成客户的交易请求。该要求主要对应性能,可以采用的架构设计策略有增加计算资源、改善资源需求(减少计算复杂度等)、资源管理(并发、数据复制等)和资源调度(先进先出队列、优先级队列等)。
②该平台必须严格保证客户个人信息和交易信息的保密性和安全性。该要求主要对应安全性,可以采用的架构设计策略有抵御攻击(授权、认证和访问等)、攻击检测(入侵检测等)、从攻击中恢复(部分可用性策略)和信息审计等。
③当发生故障时,该平台的平均故障恢复时间必须小于10s。该要求主要对应可用性,可以采用的架构设计策略有Ping/Echo、心跳、异常和主动冗余等。
④由于企业业务发展较快,需要经常为该平台添加新功能或进行硬件升级。添加新功能或进行平台升级必须在6小时内完成。该要求主要对应可修改性,可以采用的架构设计策略有软件模块泛化、模块之间通信、使用中介和延迟绑定等。
[解析]这是一道软件质量特性的试题,软件质量特性是软件架构以及软件架构设计师的一个重要关注点。因为如果在软件架构的设计阶段不考虑软件质量特性,则产生的软件质量隐患是在后期的设计与开发中无法弥补的。
软件质量特性主要包括以下几个方面。
①功能性:系统所能完成期望工作的能力。
②性能:系统的响应能力,即要经过多长时间才能对某个事件做出响应,或者在某段时间内系统所能处理事件的个数。
③可用性:系统能够正常运行的时间比例。
④可靠性:软件系统在应用或错误面前,在意外或错误使用的情况下维持软件系统功能特性的基本能力。
⑤健壮性:在处理或环境中,系统能够承受压力或变更的能力。
⑥安全性:系统向合法用户提供服务的同时能够阻止非授权用户使用的企图或拒绝服务的能力。
⑦可修改性:能够快速地以较高的性能价格比对系统进行变更的能力。
⑧可变性:体系结构经扩充或变更成为新体系结构的能力。
⑨易用性:衡量用户使用一个软件产品完成指定任务的难易程度。
⑩可测试性:软件发现故障并隔离、定位其故障的能力特性,以及在一定的时间和成本前提下,进行测试设计、测试执行的能力。
互操作性:系统与外界或系统与系统之间的相互作用能力。
问题1是纯概念题,从以上的属性中任选6个作答即可。
问题2难度稍大,需要结合题目给出的案例,来分析系统有哪些质量属性的需求,同时需要给出实现该质量属性的策略。下面逐一分析题目给出的场景。
①在线交易平台必须在1s内完成客户的交易请求。该要求主要对应性能,可以采用的架构设计策略有增加计算资源、改善资源需求(减少计算复杂度等)、资源管理(并发、数据复制等)和资源调度(先进先出队列、优先级队列等)。
②该平台必须严格保证客户个人信息和交易信息的保密性和安全性。该要求主要对应安全性,可以采用的架构设计策略有抵御攻击(授权、认证和访问等)、攻击检测(入侵检测等)、从攻击中恢复(部分可用性策略)和信息审计等。
③当发生故障时,该平台的平均故障恢复时间必须小于10s。该要求主要对应可用性,可以采用的架构设计策略有ping/Echo、心跳、异常和主动冗余等。
④由于企业业务发展较快,需要经常为该平台添加新功能或进行硬件升级。添加新功能或进行平台升级必须在6小时内完成。该要求主要对应可修改性,可以采用的架构设计策略有软件模块泛化、模块之间通信、使用中介和延迟绑定等。9、表现层、业务逻辑层和持久层。
表现层用来建立应用系统的界面,对应视图(View)。
业务逻辑层用来开发应用逻辑,对应控制器(Controller)。
持久层是实现持久化存储,对应模型(Mode1)。10、Struts框架是基于模型-视图-控制器(MVC)模式的开源框架,主要用于企业应用中表示层的实现。借助于struts,开发人员可以把主要精力集中在业务处理上,简化遵循MVC设计模式的Web应用开发工作,很好地实现代码重用,提高开发效率。
Spring框架是业务组件层轻量级框架。
Hibernate属于持久层框架。Hibernate是一个开源的o/R Mapping框架,它对JDBC进行了非常轻量级的对象封装,可以在应用EJB的J2EE框架中取代CMP,完成数据持久化的重任。
Struts框架+Spring框架+Hibernate框架实现了表现层、业务逻辑组件层和持久层的结合。
11、轻量级框架侧重于减少开发的复杂度,相应地,它的处理能力便有所减弱(如事务功
能弱、不具备分布处理能力),比较适用于开发中小型企业应用。
采用轻量级框架后,一方面因为采用基于POJos的方法进行开发,使应用不依赖于任何容器,这可以提高开发调试效率;另一方面轻量级框架多数是开源项目,开源社区提供了良好的设计和许多快速构建工具,以及大量现成可供参考的开源代码,这有利于项目的快速开发。
而作为重量级框架EJB则强调高可伸缩性,适合于开发大型企业应用。
在EJB体系结构中,一切与基础结构服务相关的问题和底层分配问题都由容器来处理。另外,EJB容器通过减少数据库访问次数,以及分布式处理等方式提供了专门的系统性能解决方案,能充分解决系统性能问题。
轻量级框架的产生并非是对重量级框架的否定,可以说二者是互补的。轻量级框架旨在开发更强大、功能更完备的企业应用;而新EJB3.0则在努力简化J2EE使EJB不仅是擅长处理大型企业系统,也利用开发中小型系统,这也是EJB轻量化的一种努力。对于大型企业应用及将来可能涉及能力扩展的中小型应用,采用结合使用轻量级框架和重量级框架相也不失为一种较好的解决方案。
[解析][问题1]
Java企业应用框架一般被划分为3个层次:表现层、业务逻辑组件层和持久层。
表现层用来建立应用系统的界面,对应视图(View)。例如,表现层采用JSF(Java Server Face),JSF的开发流程的核心是事件驱动,组件和标签的封装程度非常高,很多典型应用已经不需要开发者去处理HTTP,整个过程是通过IoC(依赖注入)来实现的。
业务逻辑组件层用来开发应用逻辑,对应控制器(Controller)。例如,业务逻辑组件层采用EJB3.0的Session Bean。EJB3.0允许开发者使用耦合松散的组件来开发应用,实现一个EJB 所有使用的类和接口都减少了。
持久层是实现持久化存储,对应模型(Mode1)。例如,采用EJB3.0实体Bean持久化模型,吸收了Hibernate的一些思想采用o/R Mapping模式。
[问题2]
struts是基于模型-视图-控制器(MVC)模式的开源框架,主要用于企业应用中表示层的实现。借助于Struts,开发人员开源把主要精力集中在业务处理上,简化遵循MVC设计模式的Web 应用开发工作,很好地实现代码重用,提高开发效率。Struts框架包括:
①模型(Mode1)。Struts中模型是一个Action类,开发者通过其实现业务逻辑,同时用户请求通过控制器向Action的转发过程是基于由straats-config.xml文件描述的配置信息的。
②视图(View)。视图是由与控制器配合工作的一整套JSP定制标签库构成,利用它们可以快速建立应用系统的界面。
③控制器(Controller),本质上是一个servlet,将客户端请求转发到相应的Action类。
④一堆用来做XML文件解析的工具包。
Spring是业务组件层轻量级框架。Spring框架是一个基于IoC(依赖注入)和AOP(面向方面编程)的架构。用户可以通过Spring来利用普通Java对象(POJo)编程,使用依赖注入解析poJo间的依赖性,然后使用面向方面编程将服务与它们相关联。采用依赖注入使得它可以很容易地实现Bean的装配,提供简洁的AOP,并据此实现事务管理等。Spring的核心要点是:支持不绑定到特定J2EE服务的可重用业务和数据访问对象。这样的对象可以在不同的J2EE环境(Web 或EJB)、应用程序、测试环境之间重用。
Hibernate属于持久层框架。Hibernate是一个开源的o/RMapping框架,它对JDBC进行了非常轻量级的对象封装,可以在应用EJB的J2EE框架中取代CMP,完成数据持久化的重任。
[问题3]
作为重量级框架,EJB框架则强调高可伸缩性,适合于开发大型企业应用。在EJB体系结构中,一切与基础结构服务相关的问题和底层分配问题都由容器来处理。另外,EJB容器通过减少数据库访问次数,以及分布式处理等方式提供了专门的系统性能解决方案,能够充分解决系统性能问题。轻量级框架侧重于减少开发的复杂度,相应地,它的处理能力便有所减弱(如事务功能弱、不具备分布式处理能力),比较适用于开发小型企业应用。采用轻量框架后,一方面因为采用基于POJOs的方法进行开发,使应用不依赖于任何容器,这可以提高开发调试效率;另一方面轻量级框架多数是开源项目,开源社区提供了良好的设计和许多快速构建工具,以及大量现成可供参考的开源代码,这有利于项目的快速开发。12、对数据库内部故障的考虑,包括事务故障、系统故障和介质故障。对数据库外部各种攻击的考虑,包括计算机病毒、利用软件漏洞的黑客攻击和SQL注入攻击等。
13、刘工的备份策略仅采用了数据导出的备份方式,其优点是简单易行,实现了数据的完整导出,甚至可以在运行期问做到按需备份。
其缺点是一旦发生故障,会丢失过多的数据,例如,在星期三的中午,数据库出现故障,则只能恢复到星期二备份时的数据,星期二导出后到星期三中午的数据会全部丢失:如果数据量非常大,则数据导出所花费的时间和空间会很大。14、冷备份是在数据库关闭的情况下,对数据库中的关键文件(数据文件、日志文件等)进行复制。热备份是在数据库运行的情况下,对数据库中的关键数据进行备份,要求数据库管理系统提供支持。
(1)备份时,数据库关闭,不能做其他工作。
(2)与热备份相结合,实现实时/秒级恢复。
(3)不能按数据库中的表或某个用户进行恢复。
(4)备份时数据库仍然可用。
(5)不能出错,否则可能会引起数据库无法恢复。
(6)可对几乎所有数据库实体做恢复,速度快。
(1)、(3)次序无关;(4)、(6)次序无关。
15、银行系统如果需要支持数据库的实时恢复或秒级恢复,需要采用冷备份和热备份相结合的方式来进行备份。基本的备份策略如表3所示。
冷备份与热备份的交替间隔时间可以根据自身特点来进行调整。
当数据库出现故障,需要恢复时,基本的步骤如下:
①恢复最近一次的冷备份数据。
②按照时间顺序,恢复热备份中备份的数据和日志文件。
③找到机器上未损坏的最后一个日志文件,将数据库恢复到该日志文件对应的时间点。
[解析]本题主要考查数据库故障、备份的概念和分类,以及备份的策略。
问题1是安全方面的,对于金融数据库而言,其安全隐患主要是两个方面:一方面是本身的系统产生了故障;另一方面是来自外部的攻击。如果清楚这一点,解题也就容易了。常见的数据库内部故障包括事务故障、系统故障和介质故障。而常见的外部攻击包括SQL注入攻击、系统(软件)漏洞、黑客攻击、计算机病毒等。
问题2要求分析刘工的备份策略的优缺点。分析优缺点,前提是了解“完全导出、增量导出、累计导出”的含义。
完全导出是一次性将数据库中所有数据都导出来。
增量导出是只导出自上次导出操作(包括完全导出、增量导出、累计导出)之后数据库中变化了的数据。
累计导出是只导出自上次完全导出之后数据库中变化了的数据。
有了以上的知识基础,后面的分析就容易多了。刘工的备份策略仅采用了数据导出的备份方式,其优点是简单易行,实现了数据的完整导出,甚至可以在运行期间做到按需备份。
其缺点是一旦发生故障,会丢失过多的数据,如在星期三的中午数据库出现故障,则只能恢复到星期二备份时的数据,星期二导出后到星期三中午的数据会全部丢失;如果数据量非常大,则数据导出所花费的时间和空间会很大。
问题3也属于纯概念问题,不在此赘述,请参看参。
问题4是进行备份策略的选用,在做此策略时,需要注意冷备份与热备份相结合,这样既可以兼顾效率,又能让系统在出现故障后准确地恢复到故障前的状态,使损失降到最低。
16、(1)交易中间件技术。
(2)数据中心数据库服务器采用多机集群Cluster和数据库并行处理技术,存储设备采用全冗余的SAN结构(或者全冗余的存储结构)。
17、采用数据库复制技术,各地需要安装专门的复制服务器,增加成本,维护管理较为复杂,同时,太多分支机构使得中心的数据库复制服务器压力大,因此在本题要求的条件下,不宜采用数据库复制技术。
采用数据库的触发器技术虽然能够实时记录数据库的数据变化,但不能捕获数据表中TEXT 字段的UPDATE动作,并且对于每季度一次的统计报表数据,采用数据库的触发器技术来记录数据库的变化,占用数据库资源太多,可能影响某些机构的日常业务处理。
18、①针对多数业务数据的更新,各地数据库采用触发器技术,通过触发器捕获记录或字段的增删改操作,以标准的SQL命令保存到数据更新曰志中。
②改造各地原有业务系统,当发生数据表TEXT字段修改时,在修改字段的同一事务中,将该动作增加到数据更新日志中,数据中心根据记录抽取该字段指向的内容。
③对每季度产生的报表统计数据,改造各地原有业务系统,在数据更新日志中保存生产数据的条件,数据中心根据记录一次性抽取满足条件的数据。
④针对个别机构数据库服务器配置较低,采用触发器技术可能造成资源不足的情况,升级该机构的数据库服务器。
[解析]现在的数据中心与早期的数据中心相比,因采用了数据仓库、关系数据库、网络冗余、负载均衡、存储冗余、中间件等技术,不仅能够对整个业务系统的异地数据实行集中备份,满足数据安全及故障恢复要求,满足信息系统数据的一致性、完整性的要求,并且其支撑的业务系统具有高可靠性、高可用性、高安全性、高实时性等特点,企业还可以对异地机构的业务进行全面、有效、实时的管理和监控。
问题1主要考查在异构环境下,如何利用现有的成熟技术来解决各个分支机构的数据上传到数据中心的问题。
①交易中间件技术。中间件是介于应用系统和系统软件之间的一类软件,它使用系统软件所提供的基础服务,衔接网络上的应用系统,能够达到资源共享、功能共享的目的。交易中间件是面向交易事务处理的中间件,它负责正确传递交易,对交易完整性进行管理,调度应用程序的运行,保证整个系统运行的高效性。根据X/open DTP模型,本地交易的管理由数据库系统来完成,交易中间件主要完成分布式计算环境下交易的监控和管理。数据库虽然在本地交易管理的功能已经很强大,但通过广域网进行分布式交易管理并不是数据库的强项,特别是一笔交易涉及异构数据库时更是如此。把数据上传看做是交易处理,交易中间件可以满足问题1的要求。有关中间件的更加详细的内容,请读者阅读《系统分析师技术指南》。
②Web中间件即应用服务器,是实现基于Web应用的中间层平台,不仅是业务逻辑组件的容器,还提供了内容管理、负载均衡、容错、连接池等功能。有关应用服务器的更加详细的内容,请阅读《系统分析师技术指南》。
③Web Service是一个崭新的松散耦合的分布式计算模型。每个服务节点利用XML、SOAP、UDDI、WSDL和WSFL等标准,对外提供某类功能,这些服务功能可以通过绑定HTPP和SOAP等技术来访问,从外部使用者的角度来看,Web Service是一种部署在Web上的对象或组件。它是一种面向服务的模型,适合解决分布式计算和处理,不适合应用于数据同步。有关Web Service的更加详细的内容,请阅读《系统分析师技术指南》。
④插桩技术是白盒测试技术的一种。在被测系统中植入测试代码或测试硬件,以捕获系统运行时的可能路径,这种方法称为插桩。插桩技术主要用于系统的覆盖分析。
为避免数据中心的单点故障,数据中心数据库服务器采用多机集群Cluster和数据库并行处理技术,存储设备采用全冗余的SAN结构(或者全冗余的存储结构)。
问题2主要考查采用数据库复制技术和数据库触发器技术解决增量数据的汇总有什么缺点或不足。问题涉及了数据库系统的两个概念:数据库复制技术和数据库触发器技术。
数据库复制技术是分布式数据库技术中的一项重要技术,其主要功能是向分布式环境中的各个数据库节点提供数据复制,保持数据的一致性或者控制与维护数据冗余。数据复制一般有同步、异步方式,体系机构有主从(一个主点,多个复制点)、对等、分布式(多个主点,一个复制点)等。采用数据库复制技术,需要各个节点安装数据库复制服务器,在异构环境下,还要求复制点增加异构数据同步服务,开销较大。
数据库触发器技术使数据库管理系统能够在一些数据库相关事件发生时触发预先定义的操作,触发器机制可以增强引用完整性,加强复杂业务的规则,或者监控数据库的变动,并执行一定的数据操作,实现信息管理的自动化。
题目中给出了这个企业现有的信息系统环境:一个通过广域网连接起来的数据库异构的、操作系统异构的分布式系统,而且有些分支机构的数据库服务器配置较低。从给出的具体数据来看,该企业的分支机构业务繁忙,每天的数据量较大,并且数据中还包括TEXT字段(可存储Word文档等),每季度还产生相当可观的统计、报表数据(由数据库原始数据生成)。
从题目的要求来看,采用的技术一方面不能影响业务系统,另一方面数据不能因为网络故障、服务器繁忙等原因丢失,而且成本不能太高。
采用数据库复制技术,各地需要安装专门的复制服务器,增加成本,维护管理较为复杂,同时,太多分支机构使得中心的数据库复制服务器压力大,因此在本题要求的条件下,不宜采用数据库复制技术。
采用数据库的触发器技术虽然能够实时记录数据库的数据变化,但不能捕获数据表中TEXT 字段的UPDATE动作,并且对于每季度一次的统计报表数据,采用数据库的触发器技术来记录数据库的变化,占用数据库资源太多,可能影响某些机构的日常业务处理。
问题3主要考查如何解决问题2所涉及的缺点或不足。在问题3的说明中,特别提到了如果需要则可以修改业务系统。
为了解答这个问题,我们首先要明确增量数据更新的过程。
各地上传的数据更新日志是中心数据更新同步数据的依据。各地系统将数据更新操作以sor 语句的形式记录到数据更新日志中,由交易中间件系统发送该日志到数据中心的交易中间件服务器上。中心的交易中间件服务器开启同步服务进程,实时处理各个机构提交的数据更新日志,
必要时对由于数据库异构产生的SQL语句差别进行修改,向中心数据库系统提交数据更新sQL,完成数据中心的数据更新。
其次,我们还要明确数据更新日志获得的方式,重点解决TEXT字段问题和报表统计数据问题。
①针对多数业务数据的更新,各地数据库采用触发器技术,通过触发器捕获记录或字段的增删改操作,以标准的SQL命令保存到数据更新曰志中。
②改造各地原有业务系统,当发生数据表TEXT字段修改时,在修改字段的同一事务中,将该动作增加到数据更新日志中,数据中心根据记录抽取该字段指向的内容。
③对每季度产生的报表统计数据,改造各地原有业务系统,在数据更新日志中保存生产数据的条件,数据中心根据记录一次性抽取满足条件的数据。
④针对个别机构数据库服务器配置较低,采用触发器技术可能造成资源不足的情况,升级该机构的数据库服务器。19、分布式数据库具有物理分布性、位置自治性与协作性,支持数据性、集中与自治相结合的控制、适度数据冗余度、分布的事务管理。
优点包括具有灵活的体系结构、分布式的管理和控制、系统的高可靠性和可用性、高扩展性、局部处理、响应速度快、经济性能优越。
缺点包括系统开销通信较大、复杂的存取结构、保持数据一致性算法复杂、数据的安全性和保密性要求高。20、时间局部性;空间局部性;水平分片;垂直分片数据表分片满足的条件如下:
完备性条件:必须把全局关系的所有数据映射到片段中,决不允许有属于全局关系的数据却未被映射到任何一个片段。
可重构条件:必须保证能够由同一个全局关系的各个片段来重建该全局关系。对于水平分片可用并操作重构全局关系;对于垂直分片可用连接操作重构全局关系。
不相交条件:要求一个全局关系被分割后所得的各个数据片段互不重叠(对垂直分片的主键除外)
21、一致性;可串行性;可恢复性
保持数据库一致性的方法,要点如下:数据副本的一致性、保证分布式事务的ACID属性、故障恢复的一致性。
[解析]分布式数据库在逻辑上是一个统一的整体,在物理上则是分别存储在不同的物理节点上。分布式数据库具有以下几个特点:①数据性与位置透明性。数据性是数据库方法追求的主要目标之一,分布透明性指用户不必关心数据的逻辑分区,不必关心数据物理位置分布的细节,也不必关心重复副本(冗余数据)的一致性问题,同时也不必关心局部场地上数据库支持哪种数据模型。分布透明性的优点是很明显的。有了分布透明性,用户的应用程序书写起来就如同数据没有分布一样。当数据从一个场地移到另一个场地时不必改写应用程序。当增加某些数据的副本时也不必改写应用程序。数据分布的信息由系统存储在数据字典中。用户对非本地数据的访问请求由系统根据数据字典予以解释、转换、传送。②集中和节点自治相结合。在集中式数据库中,为了保证数据库的安全性和完整性,对共享数据库的控制是集中的,并设有DBA负责监督和维护系统的正常运行。在分布式数据库中,数据的共享有两个层次:一是局部共享,即在局部数据库中存储局部场地上各用户的共享数据。这些数据是本场地用户常用的;二是全局共享,即在分布式数据库的各个场地也存储可供网中其他场地的用户共享的数据,支持系统中的全局应用。因此,相应的控制结构也具有两个层次:集中和自治。分布式数据库系统常常采用集中和自治相结合的控制结构,各局部的DBMS可以地管理局部数据库,具有自治的功能。同时,系统又设有集中控制机制,协调各局部DBMS的工作,执行全局应用。
③支持全局数据库的一致性和和可恢复性。分布式数据库中各局部数据库应满足集中式数据库的一致性、可串行性和可恢复性。除此以外还应保证数据库的全局一致性、并行操作的可串行性和系统的全局可恢复性。这是因为全局应用要涉及两个以上节点的数据。因此,在分布式数据库系统中,一个业务可能由不同场地上的多个操作组成。这些操作要比集中式数据库复杂和困难得多,分布式数据库系统必须解决这些问题。
④复制透明性。用户不用关心数据库在网络中各个节点的复制情况,被复制的数据的更新都由系统自动完成。在分布式数据库系统中,可以把一个场地的数据复制到其他场地存放,应用程序可以使用复制到本地的数据在本地完成分布式操作,避免通过网络传输数据,提高了系统的运行和查询效率。但是对于复制数据的更新操作,就要涉及对所有复制数据的更新。
⑤易于扩展性。在大多数网络环境中,单个数据库服务器最终会不满足使用。如果服务器软件支持透明的水平扩展,那么就可以增加多个服务器来进一步分布数据和分担处理任务。
分布式数据库的主要优点如下:
①具有灵活的体系结构。
②适应分布式的管理和控制机构。
③经济性能优越。
④系统的可靠性高、可用性好。
⑤局部应用的响应速度快。
⑥可扩展性好,易于集成现有系统。
分布式数据库的主要缺点如下:
①系统开销大,主要花在通信部分。
②复杂的存取结构,原来在集中式系统中有效存取数据的技术,在分成式系统中都不再适用。
③数据的安全生和保密性较难处理。
数据分片将数据库整体逻辑结构分解为合适的逻辑单位(片段),然后由分配模式来定义片段及其副本在各场地的物理分布,其主要目的是提高访问的局部性,有利于按照用户的需求组织数据的分布和控制数据的冗余度。
数据分片应遵循的准则如下:
①完整性。全局关系的所有数据都必须分配到各个片段中,不允许某些数据属于全局关系但不属于任何片段。
②重构性。后各个片段可以重构原来的全局关系。
③不相交性。全局关系中的每个元组仅属于一个片段,不能在多个片段中重复出现。此规则不是必需的,因为在有冗余DDBS中数据可有多个副本。但片段中的部分元组重复将会使数据的更新操作变得复杂,为简化操作控制,片段间一般是不相交的。
分片的方式有多种,水平分片和垂直分片是两种基本的分片方式,混合分片和导出分片是较复杂的分片方式。
①水平分片:把一个全局关系中的元组成多个子集,每个子集为一个片段。分片条件由关系中的属性值表示。对于水平分片,重构全局关系可通过关系的并操作实现。
②垂直分片:把一个全局关系按列成多个子集,应满足不相交性(关键字除外)。对于垂直分片,重构全局关系可通过连接运算实现。
③导出分片:它也是一种水平分片,但分片的限定条件不是该关系中的属性,而是由与该关系有联系的其他关系导出的。
④混合分片:是在分片中采用水平分片、垂直分片和导出分片3种形式的混合。
问题3是3个填空题。这个问题在前面已经给出了答案:全局的一致性、可串行性和可恢复性。
22、基于Web2.0的Web应用与传统Web应用的重要不同点如下:①互联网作为平台,使用浏览器和网络服务,为数量巨大的客户提供服务。
②利用集体智慧,鼓励用户参与与贡献,聚集大众智慧。
③数据是下一个IntelInside,数据管理已经成为Web2.0应用的核心。
④软件发布周期的终结,新版本的快速发布和用户参与的开发模式。
⑤轻量型编程模型,支持松散结合的轻量级编程模型,考虑聚合而不是协调。
⑥软件超越单一设备。
⑦丰富的客户体验,强调可供编程性和丰富的用户体验。23、(1)Ajax并不是一种全新的技术,而是几种现有技术的组合:
①XHTML和css。
②使用文档对象模型(Document object Mode1)作动态显示和交互。
③使用XML和XSLT做数据交互和操作。
④使用XMLHttpRequest进行异步数据接收。
⑤使用Javascript将它们绑定在一起。
(2)在使用Ajax时,从性能方面考虑,需要注意以下几个问题:
①替换部分而不是全部HTML网页。
②不要在没有必要的情况下使用轮询计时器。
③根据不同的情况,考虑传递不同格式的数据(JavaScript、XML、HTML和XHTML等)。
④充分利用客户端的动态特性和计算能力减轻服务端负载。
24、(1)使用现有Web应用程序公开的,基于Web的API(或Web服务)。
(2)集成两个或者更多的Web API。
(3)静态展现技术。
(4)刷新整个网页。
(5)基于Web的API。
(6)SOA。
(7)功能暴露与服务组合。
(8)服务。
[解析]这是一道关于Web2.0和Ajax方面的试题,共3个问题。Web2.0是最近几年谈得很多的一个话题,我们可以凭常识解答本题。
第1个问题考查Web 2.0的应用与传统Web应用有什么区别。因为这个问题最近谈得多,所以就相对简单了。例如,传统Web应用通过浏览器浏览大量网页,而Web2.0的应用除了网页外,加上很多通过Web分享的其他内容,更加互动;传统Web应用的模式为读,而Web2.0的应用的模式为写和贡献;传统Web应用的主要内容单元为网页,而Web2.0的应用的主要内容单元为帖子/记录;传统Web应用的形态为静态,而Web2.0的应用形态为动态;传统Web应用的浏览方式为浏览器,而Web2.0的应用的浏览方式为浏览器、RSs阅读器和其他工具;传统Web应用的内容创建者为网站编辑,而Web
2.0的应用的内容创建者可以是任何人,等等。
第2个问题是关于Ajax的,涉及Ajax的概念和核心思想。
Ajax是Asynchronous JavaScript and XML(以及DHTML等)的缩写,用来描述一组技术,它使浏览器可以为用户提供更为自然的浏览体验。借助于Ajax,可以在用户单击按钮时,使用Javascript和DHTML立即更新用户界面,并向服务器发出异步请求,以执行更新或查询数据库。当请求返回时,就可以使用Javascript和Css来相应地更新用户界面,而不是刷新整个页面。最重要的是,用户甚至不知道浏览器正在与服务器通信,Web站点看起来是即时响应的。
Ajax是由几种蓬勃发展的技术以新的方式组合而成的。Ajax包含以下技术:
①基于XHTML和CSs标准的表示。
②使用文档对象模型(Document object Mode1)进行动态显示和交互。
③使用XML和XS工T做数据交互和操作。
④使用XMLHttpRequest进行异步数据接收。
⑤使用Javascript将上述技术绑定在一起。
Ajax的核心是Javascript对象XmlHttpRequest。该对象在Internet Explorer 5.0中首次引入,它是一种支持异步请求的技术。简而言之,XmlHttpRequest使你可以使用Javascript向服务器提出请求并处理响应,而不阻塞用户。
传统的企业应用集成方案一般需要现有系统平台API层的支持,如Java平台、JavaEE和NET 等,集成过程涉及面较广,相对复杂。而基于Web的应用与数据集成时,仅需要使用由现有Web 应用程序(如Google Maps)公开的基于Web的API(或者Web服务)来构建应用程序,避免了复杂的集成过程。
因此,(1)处应该填写仅需要使用现有Web应用程序公开的,基于Web的API(或Web服务)构建应用程序,集成过程相对简单”。基于Web2.0和Mashup技术,可以直接Mashup两个或者更多的Web API,以创建某种新的特性与功能,因此在(2)处应该填写“使用Mashup技术集成两个或者更多的Web API,创建新的特性与功能”。对于(3)和(4)传统集成方式下的表现层大多采用静态展现技术,当客户端发送请求时,往往需要刷新整个网页。对于(5),传统集成方式的客户端大多采用静态展现技术,当客户端发送请求时,往往需要刷新整个网页。对于(6)、(7)、(8),基于Web2.0和Mashup技术的集成方案使用soA的思想集成底层系统,强调功能暴露与服务组合,以服务的形式集成并暴露现有系统的能力。
