列表

详情


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

图2-1 资源共享平台软件架构

【问题1】(9分)
MVC架构中包含哪三种元素,它们的作用分别是什么?请根据图2-1所示架构将JavaEE中 JSP、Servlet、Service、JavaBean、DAO五种构件分别填入空 (1)~(5) 所示位置。
【问题2】(6分)
项目组架构师王工提出在图2-1所示架构设计中加入EJB构件,采用企业级JavaEE架构开发资源共享平台。请说明EJB构件中的Bean (构件)分为哪三种类型,每种类型Bean的职责是什么。
【问题3】(10分)
如果采用王工提出的企业级Java EE架构,请说明下列(a)-(e)所给出的业务功能构件中,有状态和无状态构件分别包括哪些。
(a)Identification Bean(身份认证构件)
(b)ResPublish Bean(资源发布构件)
(c)ResRetrieval Bean(资源检索构件)
(d)OnlineEdit Bean(在线编辑构件)
(e)Statistics Bean(统计分析构件)

参考答案: 【问题1】
MVC架构包含:视图、控制器、模型
视图(View):视图是用户看到并与之交互的界面。视图向用户显示相关的数据,并能接收用户的输入数据,但是它并不进行任何实际的业务处理。
控制器(Controller):控制器接受用户的输入并调用模型和视图去完成用户的需求。该部分是用户界面与Model的接口。一方面它解释来自于视图的输入,将其解释成为系统能够理解的对象,同时它也识别用户动作,并将其解释为对模型特定方法的调用;另一方面,它处理来自于模型的事件和模型逻辑执行的结果,调用适当的视图为用户提供反馈。
模型(Model):模型是应用程序的主体部分。模型表示业务数据和业务逻辑。一个模型能为多个视图提供数据。
(1)JSP          (2)Servlet             (3)JavaBean            (4)Service                 (5)DAO
【问题2】
EJB中的Bean分三种类型:Session Bean、Entity Bean 和 Message-Driven Bean。
Session Bean的职责是:维护一个短暂的会话。
Entity Bean 的职责是:维护一行持久稳固的数据。
Message-Driven Bean的职责是:异步接受消息。
【问题3】
有状态:(a)、(d)
无状态:(b)、(c)、(e)

详细解析:

【问题1】
MVC是一种目前广泛流行的软件设计模式。近年来,随着J2EE(Java 2Enterprise Edition)的成熟,MVC成为了J2EE平台上推荐的一种设计模式。MVC强制性地把一个应用的输入、处理、输出流程按照视图、控制、模型的方式进行分离,形成了三个核心模块:控制器、模型、视图。
(1) 控制器(Controller):控制器接受用户的输入并调用模型和视图去完成用户的需求。该部分是用户界面与Model的接口。一方面它解释来自于视图的输入,将其解释成为系统能够理解的对象,同时它也识别用户动作,并将其解释为对模型特定方法的调用;另一方面,它处理来自于模型的事件和模型逻辑执行的结果,调用适当的视图为用户提供反馈。
(2) 模型(Model):模型是应用程序的主体部分。模型表示业务数据和业务逻辑。一个模型能为多个视图提供数据。由于同一个模型可以被多个视图重用,所以提高了应用的可重用性。
(3) 视图(View):视图是用户看到并与之交互的界面。视图向用户显示相关的数据,并能接收用户的输入数据,但是它并不进行任何实际的业务处理。视图可以向模型查询业务状态,但不能改变模型。视图还能接受模型发出的数据更新事件,从而对用户界面进行同步更新。
【问题2】
Session Bean 描述了与客户端的一个短暂的会话。当客户端的执行完成后,Session Bean 和它的数据都将消失;
Entity Bean 描述了存储在数据库表中的一行持久稳固的数据,如果客户端终止或者服务结束,底层的服务会负责 Entity Bean 数据的存储。
Message-Driven Bean 结合了 Session Bean 和 Java信息服务(JMS)信息监听者的功能,它允许一个商业组件异步地接受JMS消息。

【问题3】
本题考查考生对Java EE架构中会话构件(Session Bean)的掌握情况。
会话构件负责维护客户端与服务端的交互状态,按照是否跨方法调用保存客户端与服务端的交互状态可以分为有状态(Stateful)会话构件和无状态(Stateless)会话构件,前者在交互过程中需要保存客户端与服务端交互的中间状态数据,一般在实现类中有自身的属性用于存储中间状态数据,无状态会话构件则不需要保存客户端与服务端的交互状态数据,客户端每次发起的请求相互独立,不会对服务端状态产生影响,因此服务端类不需要保存中间状态数据。身份认证构件完成初次身份认证后需要在服务端记录客户端的身份信息,在线编辑构件需要在操作过程中记录前一次编辑的操作结果,所以两者需要设计为有状态会话构件。资源发布、资源检索和统计分析构件对客户端多次请求均保持一致的处理过程和结果,所以应设计为无状态会话构件。

上一题