问答题 试题二(共25分) 阅读以下关于企业应用系统开发的叙述,在答题纸上回答问题1至问题3。 某大型咨询服务公司欲对现有的核心咨询业务系统进行升级改造,以适应大量用户的个性化咨询服务要求,提高系统的灵活性。公司主管将核心业务系统的升级改造工作交给了公司的系统分析师王工和李工。 一个月后,王工和李工分别向公司提交了自己的方案。王工主张以公司现有的、采用面向对象技术和Java语言实现的业务系统为基础,针对新的业务需求对系统进行重构、改造与升级。李工则认为现有系统的业务逻辑过于复杂,对系统进行重构的成本太高,可以采用面向服务的思想,提炼可复用的业务功能形成服务,实现系统的灵活性。经过公司相关人员共同开会讨论,最终采用了李工的改造方案。
问答题 [问题1](10分) 请用500字以内的文字,从系统业务功能实现和功能集成两个方面对王工和李工的方案进行分析和对比,并结合项目需求说明公司为何会选择李工的方案。
【正确答案】 从系统业务功能实现来看,采用面向对象技术开发的系统以对象为核心概念,通过对象之间的消息交互完成业务功能;采用面向服务技术开发的系统以服务为核心概念,业务功能需要封装为服务。 从系统功能集成方式来看,采用面向对象技术开发的系统以对象为单元进行功能集成,通常采用工作流技术定制业务流程;采用面向服务技术开发的系统以服务为单元进行功能集成,采用服务组合技术实现灵活的业务集成与重组。 根据项目需求,需要对现有业务系统进行升级改造,因此保证升级改造的低成本是一个重要的因素,王工的方案需要现有系统进行功能梳理与重新开发,升级改造成本较高;李工的方案则侧重将现有功能包装为服务,升级改造成本较低。项目还要求提高系统的灵活性,王工的方案以对象技术为基础,当业务发生变化时,需要在代码层次上进行修改并重新部署,因此系统的灵活性相对较差;李工的方案以大粒度的业务服务复用为基础,当业务发生变化时,可以来用服务组合技术实现系统的运行时功能组合,因此灵活性相对较好。
【答案解析】 本题考查的是企业应用系统开发方面的知识与应用,属于比较传统的题目,考查点包与往年类似。 本题从系统业务功能实现和功能集成两个方面对王工和李工的方案进行分析和对比。回答本题时必须紧扣业务功能实现和功能集成这两个方面。 从系统业务功能实现来看,采用面向对象技术开发的系统以对象为核心概念,通过对象之间的消息交互完成业务功能;采用面向服务技术开发的系统以服务为核心概念,业务功能需要封装为服务。 从系统功能集成方式来看,采用面向对象技术开发的系统以对象为单元进行功能集成,通常采用工作流技术定制业务流程;采用面向服务技术开发的系统以服务为单元进行功能集成,采用服务组合技术实现灵活的业务集成与重组。
问答题 [问题2](9分) 采用服务思想设计系统时,需要考虑服务的锅合性。服务的锅台性可以分为两类,分别是服务契约耦合(Service Contract Coupling)和服务消费者耦合(Service Consumer Coupling)。请对各种辊合关系进行分析,填写(a)~(g),完成表2-1。
【正确答案】 (a)服务契约耦合 (b)服务契约耦合 (c)服务消费考耦合 (d)否 (e)是 (f)按照SoA的思想,业务逻辑应当与契约耦合,而不应与实现或技术耦合 (g)服务契约不应该与具体厂商的实现技术相关,而应该基于标准的XML技术与Web服务标准
【答案解析】 本题主要考查考生对服务辊合关系的理解,考生需要理解在服务设计时需要注意的一些问题。例如业务逻辑—契约锅合、契约—技术锅台、消费者。实现锅台以及消费者。契约辊合等服务。考生需要对这几种服务锅台进行分析,并结合题目要求描述各种锅合关系的优点或缺点。
问答题 [问题3](6分) 在对系统的业务服务进行初步分析后,李工首先提取了客户注册、业务受理和发票开具三个典型的业务服务。但进一步分析后,李工发现这三个服务需要使用数据库中的客户实体、业务实体和发票实体,而发票实体包含客户实体和业务实体的信息,这样会导致发票开具服务内部包含并重复实现客户注册和业务受理的处理过程,降低服务的复用性。请说明这种情况产生的主要原因,并针对这种情况,说明该如何对这三个服务进行重构,使它们具有更好的重用性。
【正确答案】 题干中描述的问题产生的原因是在进行服务设计时,将业务逻辑可见的处理过程和不可见的处理过程封装在一起,这样会导致冗余的不可见处理过程在多个服务中存在,降低服务的潜在复用性。 针对该问题,应该增加客户实体服务、业务实体服务和发票实体服务,形成实体服务中间层。在这种情况下,客户实体服务和业务实体服务不仅能够为客户注册和业务受理服务提供支持,还可以为发票开具服务提供支持,这样就避免了不可见处理过程在多个服务中存在。
【答案解析】 本题主要考查考生对系统需求分析的理解以及对服务设计知识的掌握。题干中描述的问题产生的原因是在进行服务设计时,将业务逻辑可见的处理过程和不可见的处理过程封装在一起,这样会导致冗余的不可见处理过程在多个服务中存在,降低服务的潜在复用性。针对该问题,应该增加客户实体服务、业务实体服务和发票实体服务,形成实体服务中间层。在这种情况下,客户实体服务和业务实体服务不仅能够为客户注册和业务受理服务提供支持,还可以为发票开具服务提供支持,这样就避免了不可见处理过程在多个服务中存在。