目的

EJB 设计用于确定并指定构成 Enterprise JavaBeans(EJB)的设计类。  

对于活动:类设计,其用途在于:

  • 确保提供的信息足以明确地实施 EJB。
  • 处理与 EJB 相关的非功能需求。
  • 结合 EJB 使用的设计机制;尤其是结合特定于设计中的那一类 EJB 的设计机制。
角色: 设计员 
频率:在“先启”阶段之后的所有迭代中重复发生。如果存在原型构造活动,则还可能在“先启”阶段发生。
步骤
输入工件:    生成的工件:  
工具向导:   
更多信息:  

工作流程明细:  

确定 EJB 到页首

根据分析类和/或初始设计模型元素来确定 EJB。还可将 EJB 确定为设计模式的一部分。与模式相结合,将有效地执行该活动中的许多步骤(添加新类、操作、属性和关系),但是要根据模式定义的规则来执行。关于 J2EE 模式的示例,请参阅核心 J2EE 模式([ALU01])。

要做出一些关键决定。

  • 如何将“业务逻辑”映射到 EJB 类和非 EJB 类 - 需要多少类以及哪些种类。例如,对于代表含“状态”信息(需持久)的对象的类,应映射为实体 EJB。对于执行服务且不含自身的持久数据的类,应映射为会话 EJB 或消息 EJB。
  • 对会话 Bean 而言,是否使用有状态会话 Bean 或无状态会话 Bean(决定使用有状态还是无状态会话 Bean,这是确定会话 bean 与其它已标识类的职责的关键部分)。由于实例可由不连续的请求共享,而不是“固定”于特定的活动会话,所以无状态会话 Bean 更有效。此外,如果 EJB 将用作 Web 服务端点,它必须是无状态的。
  • Bean 应使用或参与的设计模式和机制是什么。对特定的模式或机制的使用会影响所确定的 EJB 的数目和类型。
    注意:
    软件设计人员通常决定项目应使用的模式和机制,且设计员遵循这些准则。

关于确定 EJB 的更多信息,请参阅指南:确定 EJB

定义属性 到页首

确定 EJB 的任何属性。

尤其是确定每个实体 Bean 的持久属性和主键。

关于定义实体 Bean 属性的更多信息,请参阅指南:设计实体 Bean

定义操作 到页首

该步骤适用于会话和实体 Bean。它不适用于消息驱动 Bean。

活动:类设计中,特别是在步骤定义操作中,涵盖了操作的设计。

EJB 的某些关键决定有:

  • 是否需要为本地或远程客户端提供特定的操作。通常 EJB 只有本地或远程组件接口。如果您使用的是 J2EE V1.3 以上的版本,标准做法是通过会话 EJB 处理所有远程客户端访问,会话 EJB 将通过本地组件接口在相同的 JVM 中操纵实体 EJB。
  • 如何为进行获取/设置操作而将属性分组到值对象中。如果为实体 EJB 提供远程接口,则最好定义一个“值对象”类,用于同时按两个方向传递 Bean 数据的快照。相比对每个 bean 字段逐个进行重复的获取/设置调用,这可使网络开销最小化。关于更多信息,请参阅核心 J2EE 模式([ALU01])。

关于定义 EJB 操作的更多信息,请参阅指南:设计 EJB

定义行为 到页首

活动:类设计中涵盖了类行为的设计。

设计 EJB 中的一个关键步骤是:如果首次确定 EJB 时尚未指定 EJB 机制,则确定要使用的 EJB 机制。决定包括:

  • 是否使用事务,如果使用的话,是使用由 Bean 管理的事务还是使用由容器管理的事务。
  • 是否需要提供安全策略,如果需要的话,这些策略有哪些,它们与 Bean 提供的每种方法如何相关,以及与每个策略相关联的用户“角色”有哪些。设计人员还必须决定是采用程序性授权还是声明性授权。
  • 对实体 Bean 而言,是否使用由容器管理的或由 Bean 管理的持久性。由 Bean 管理的持久性将提供更多的灵活性,但开发人员一方要投入更多的工作。由容器管理的持久性会使大部分工作自动化,但灵活性较低。

许多机制决策将由软件设计人员在项目层面上做出,在这种情况下,设计员遵循项目指南。

虽然部分 EJB 行为由多种方法来提供,但附加行为则是通过 EJB 协作来提供的。您可在 EJB 之间创建引用,并在 CMP 2.0 实体 EJB 之间创建由容器管理的关系(CMR)。

指南:设计 EJB 提供关于设计 EJB 行为的详细指导信息。

设计支持类 到页首

该步骤适用于所有 EJB。

在该步骤中,将确定支持 EJB 设计的其它设计类。常见的支持类包括主键类(PK 类)、数据存取器对象(DAO)和值对象(VO)。DAO 用于实施 BMP 实体 EJB,以隐藏数据库操作详细信息。这样,将应用程序从一个数据库移植到另一个数据库就更容易了。VO 用于透明地访问数据并在组件之间高效地传递数据值。

您可以在 EJB 之间创建引用,并在 EJB 之间创建由容器管理的关系(CMR)。

可通过模式的应用来定义其它的支持类。关于 J2EE 模式的更多信息,请参阅核心 J2EE 模式([ALU01])。

关于设计类的一般指导信息,请参阅活动:类设计



Rational Unified Process   2003.06.15