本文共 8157 字,大约阅读时间需要 27 分钟。
相比于 WebSphere Studio Application Developer 版本 5.1 中的开发工具,IBM 的 Rational ® Application Developer 中用于开发 WebSphere ® 软件版本 6.0 的 EJB ™ 可视化编辑器开发工具技术已经相当成熟。本文着重讨论它的新特性, 以便于用户使用这种流行工具的高级和更直观的版本。
用 于开发 WebSphere 软件,版本 6.0 的 Rational Application Developer,(以下称为 Application Developer)中的 EJB 可视化编辑工具使用户可以利用工业上标准的 UML 符号图形化地查看和编辑 EJB 代码以及数据对象。这将帮助开发人员,甚至包括那些不熟悉 UML 的开发人员,更好地理解和管理复杂的代码。EJB 可视化编辑器提供了图形化的编辑器,例如 UML 类图,可用于直接向自动生成相应代码的 EJB 项目中添加 EJB 组件。然后,用户可以直接编辑代码,或从类图中编辑。因为 EJB 可视化编辑器本质上是动态的,所以它通常能与底层的代码保持同步。
可 以使用类图编辑器将数据对象可视化,创建新的 EJB 组件,创建并编辑各种 bean 之间的关系,或者探究和发现已经存在的涉及到各种 bean、类和接口的相互关系。这是一种创建复杂 Enterprise JavaBeans ™ 的简易方法,并且被开发者推荐为 EJB 的新概念。经验丰富的 EJB 开发人员仍然可以从高层次的提取和可视化编辑工具提供的多种设置特性中受益。图表编辑器可以帮助用户识别和认识到代码以及数据对象之间的相互关系,使用其 他编辑器不容易辨认这些关系,同时还可以帮助用户更好的与软件架构和开发小组的其他成员进行沟通。
图 1 显示了带多个内部存在相互关系的 bean 的典型类图。该类图由 Samples Gallery of Application Developer 的 Auction 实例演化而来。
WebSphere Studio Application Developer 版本 5.1.1 中提出了 EJB 可视化编辑器的第一个版本。Rational Application Developer 版本 6.0 中最新发布的 EJB 可视化编辑器除了已经存在的强健功能,还有很多新特性。本文将涵盖以下内容:
为便于演示,本文始终在 Application Developer 中以广泛使用的 Library 实例作为演示实例。
![]() ![]() |
![]()
|
在 EJB 可视化编辑器第一个版本中,Enterprise JavaBean 被映射为 UML 类。EJB 组件的客户端视图以当地和远程方法的清单形式显示在 Operation 间隔内,持久存储的属性显示在 Attribute 间隔内。图 2 显示了 WebSphere Studio Application Developer 版本 5.1 中可视化的典型 bean 的直观表示。
从顾客反馈回来的信息表明应该按照所属接口的类型来定购这些方法。这样做很有意义,因为从接口的透视图中显示的这些方法(本地和远程)可以知道该方法属于哪些接口。
在 EJB 可视化编辑器的新版本中,Enterprise JavaBean 被映射为 UML 组件,也就是 UML 类的图表。组件根据所提供的接口以及需要的接口类型来定义它的行为:
很简单!Bean 类实现了 Enterprise JavaBean 的行为。图 3 显示了 Rational Application Developer 版本 6.0 中 Enterprise JavaBean 的典型直观表示。
注 意在缺省状态下如何使 Provided 接口间隔和 Attribute 间隔可见。如果 Enterprise JavaBean 既有本地客户端又有远程客户端,Provided 接口间隔将会显示四个带有分解方法的接口,这些方法在每个接口下面列出来。如果用户想要查看 Required 接口间隔或者其他任意间隔,右键单击 bean 图形,选择 Filters => Show/Hide Compartment ,然后选择所要显示的间隔。
类 图中常用 UML 符号表示与 Enterprise JavaBean 相关的元素。定义 EJB 配置文件用来扩展标准的模板。它主要是一种扩展机制,能够拓宽 UML 的语法,提供更明确的涵义。表 1 显示了 EJB 元素连同 UML 类图中使用的模板和图标是如何映射到 UML 元素中去的。
表 1. EJB 到 UML 的映射
元素 | UML 元素 | 模板 | 图标 |
EJB JAR | 人工制品 | EJB JAR | ![]() |
CMP 1.x 实体 bean | 组件 | 实体 bean | ![]() |
CMP 2.x 实体 bean | 组件 | 实体 bean | ![]() |
BMP 实体 bean | 组件 | 实体 bean | ![]() |
消息驱动的 bean | 组件 | 消息驱动的 bean | ![]() |
会话 bean | 组件 | 会话 bean | ![]() |
会话 bean 虚包 | 组件 | 会话 bean 虚包 | ![]() |
Bean 类 | 类 | Bean 类 | ![]() |
远程接口 | 接口 | 远程接口 | ![]() |
本地接口 | 接口 | 本地接口 | ![]() |
主机接口 | 接口 | 主机接口 | ![]() |
本地主机接口 | 接口 | 本地主机接口 | ![]() |
主要关键字类 | 类 | EJB 主要关键字类 | ![]() |
主要关键字段 | 属性 | EJB 主要关键字段 | ![]() |
CMP 字段 | 属性 | CMP 字段 | ![]() |
本地方法 | 操作 | 本地 | ![]() |
远程方法 | 操作 | 远程 | ![]() |
本地主机方法 | 操作 | 本地主机 | ![]() |
主机方法 | 操作 | 主机 | ![]() |
用于继承关系的 WebSphere Application Server 扩展 | 继承 | WebSphere Application Server 继承 | N/A |
CMP 关系 | 相关 | CMP 关系 | N/A |
EJB 与 它的本机以及远程(本地-主机,本地) 接口之间的关系 | 实现 | EJB 实现 | N/A |
EJB JAR 与它包含的 EJB 之间的关系 | 显示 | EJB 显示 | N/A |
EJB 与它的 bean 类之间的关系 | 实现 | EJB 实现 | N/A |
EJB 之间的本地引用 | 用法 | 本地引用 | N/A |
EJB 之间的远程引用 | 用法 | 远程引用 | N/A |
CMP 和会话虚包 bean 之间的正面关系 | 用法 | 虚包 | N/A |
EJB 与数据库间的映射 | 用法 | 映射 | N/A |
方法许可 | 类 | 方法许可 | ![]() |
Exclude 清单 | 类 | Exclude 清单 | ![]() |
安全性角色名称 | 实施者 | 安全性角色名称 | ![]() |
安全性角色 | 用法 | 安全性角色 | N/A |
安全性角色引用名称 | 实施者 | 角色名称引用 | ![]() |
安全性角色引用 | 用法 | 安全性角色引用 | N/A |
安全性角色引用名称和安全性角色之间的关系 | 用法 | 角色链接 | N/A |
Enterprise bean 与方法许可之间的关系 | 用法 | 许可 | N/A |
Enterprise bean 与 Exclude 清单之间的关系 | 用法 | Exclude | N/A |
方法元素 | 操作 | 方法元素 | ![]() |
![]() ![]() |
![]()
|
在 EJB Visual Editior 的这一版本中,用户经验是主要的驱动因素之一。下面描述的大部分功能改进都来源于客户的反馈。
新发布的版本用层叠式调色板项修改了 WebSphere Studio Application Developer 版本 5.1 中 Class Diagram 上的 "cluttered" EJB 调色板,如图 4 所示。
将最广泛使用的 CMP 关系类型都叠置到一个调色板条目中,然后通过选择 CMP 关系调色板条目来访问它。依靠这种项目设置,CMP 1.x 和 2.x bean 类型可以如上图所示堆叠起来。
选择之后,该特性基于用户选择的准则来搜索相关的元素。Show Related Element 和 Show/Hide Relationship 的新外观如图 5 和 6 所示。
以特定于平台的术语显示可用选项,也可以使用 UML 术语(在括号中)。同时也引入了一些流行的边框形式。另一个新特性就是可以创建定制查询,用户可以将其保存起来以备后用。
根据特定于平台的术语和 UML 术语(在括号中)来显示关系。
在 WebSphere Studio Application Developer 中,两个 1.x CMP bean 之间的 1.x CMP 关系类型远不止从类图中直接创建的那些类型,可以利用部署描述符编辑器创建 1.x CMP bean。这种方法就是要编辑现有 1.x CMP 关系的多样性来获得期望的多样性,或者利用部署描述符编辑器来创建。例如,用户不能创建直接的 1..1 : 0..* 关系,但是可以从部署描述符编辑器中创建。临时解决方案是首先创建一些任意的 1.x CMP 关系,然后直接编辑其多样性的类型以获得期望的多样性值。用正确的格式编辑多样性时, 出错的概率是很大的。新版本中已经涉及到了这个问题。
图 7 显示了一个实例,其中用户想在 Customer 和 BankAccount CMP bean 之间创建 1..1 : 0..* 的直接关系。用户可以首先创建一个 0..1 : 0..* 直接关系, 然后在下拉组合框中选择可用选项直接编辑多样性。
除了许多内嵌直接编辑特性,EJB 可视化编辑器还可以利用类似于部署描述符编辑器中的那些向导进行编辑。例如,用户可以这样编辑现有的 CMP 属性:
利用这种特性,用户可以编辑所看到的元素,例如 CMP Relationship,Method Permission,Exclude List 和 Role Link。
对 EJB 可视化编辑器以前版本做的另一个改进是以 UML 形式引入了交叉模型引用标记。例如,如果属于 EJB 项目的 Enterprise JavaBean 显现在类图上,而该类图又包含在另一个不同的 EJB 项目中,这时在 bean 组件外观的左上方就有个标记,以表明该 Enterprise JavaBean 属于一个单独的项目。图 9 显示了这种标记。
另 一个重要的特性是传入的 (in-coming) 和输出的 (out-going) 连接器处理程序,当用户使鼠标停留在 bean 上或者选择元素并且按下空格条时这些连接器处理程序会显示在 bean 的侧边。 这种可用性特性提供了一种可供用户扩张相关形体和创建新关系的表示方案。使鼠标停留在其外形上时,连接器处理程序出现在外体周围。在特殊的连接器处理程序 上执行特定的用户表示可以使用户在/从该形体扩展某一确定的关系,或创建不同形式的关系。这种特性确实很容易提高效率。
外形上出现工具提示栏的同时就会显示连接器。用户使鼠标停留在其中的一个连接器句柄时,会显示一个工具提示,简单描述了从该连接器句柄用户可能的表现。一段时间后,该连接器句柄就会消失。
一个句柄可用于包括输出连接器的表现,其他的句柄可用于包括传入的连接器的表现。如果形体不支持特定句柄(输出或者传入)的用例,然后该句柄便不会消失。
连接器句柄的可用选项:
在 此只描述选项 3,其他选项的功能与之类似,用户很容易地可以得到其功能描述。依赖于用户的选择(本实例中为 Source),当用户在图表上下移光标时,弹出菜单上可用选项的数量会随之改变。图 11 显示的实例中,用户选择了 2.0 CMP bean,拖动外向连接器句柄,并将其下移到图表上。
在 Book bean 和现有的 Author bean 间创建一个 EJB 引用(本地):
用户看到的另一部分称作 Action Bar,它是可用上下文菜单的快捷选项,在概念上类似工具栏。
这种特性使得用户可以从类图上的 Bean 形体上打开多个编辑器(图 14)。
用户创建 bean 并将其显现在类图中后,可以添加和移除客户端视图(本地或者远程)。要添加客户端视图,右键单击 bean 形体并选择 Edit => Add Client View,将显示 Add Client Dialog 对话框(图 15)。
要移除客户端视图,右键单击接口,然后选择 Edit => Remove Client View,改动将会反映到 bean 外形上。
现在 Propertie 视图中的 Advanced 选项卡以只读格式显示了类图上选项的属性。这些属性与用户在部署描述符编辑器中看到的属性相同。图 17 是选中类图中的 bean 形体时所显示的典型属性。
![]() ![]() |
![]()
|
为使 J2EE 工具和 EJB 可视化编辑器工具集成得更紧密,开发人员做了很多工作。
现在部署描述符编辑器预览选项卡的可视化片断是可用的,这将很容易导航到(和创建)类图。
要 使 UML 可视化编辑器更加可视化,最后使用新的 Class Diagram Selectiona 页扩展了一些向导(图 19),使得用户可以选择类图,该类图中可以直观显示出新创建的 Enterprise JavaBean 或者数据库表格。用户也可以从该页调用类图创建向导。 Modeling => EJB 下的 全局优先选择控制着该项操作。
另 外,许多新的操作项显示在 Enterprise JavaBean 形体上,包括创建会话 Bean 虚包,生成 EJB-RDB 映射以及服务器上的 Run/Debug/Profile。创建会话 Bean 虚包并将其直观显示在类图中用一步操作就可以完成。图 20 显示了与 CMP 2.x bean 有关的会话 Bean 虚包。
![]() ![]() |
![]()
|
该 版本中提出了 Security Management Visualization。现在可以利用 EJB 可视化编辑器直接创建和操作 Security Role, Security Role Reference、Security Identity、Method Permission 和 Exclude list。
应用程序的组装人员通常为应用程序定义了一个或者多个安全角色,这些应用 程序是由一个或多个企业 bean 组成的。对组装人员来说,在部署描述符中定义安全角色是可选的,也就是说应用程序组装人员不会将任何安全部署相关的指令传递到部署描述符的部署人员中。如 果应用程序的组装人员在部署描述符中定义了安全性角色元素,它也会负责将所有在安全性角色引用元素中声明的安全性角色引用链接到安全性角色元素中定义的安 全性角色中。Bean 提供者负责声明所有在企业 bean 代码中所用到的安全性角色的名称。声明代码中的安全性角色引用允许应用程序的组装人员把代码中所用安全性角色的名称通过具有安全性角色的元素链接到已经完 成组装的应用程序中定义的安全性角色。EJB 可视化编辑器现在已经可以允许应用程序的组装人员直观地创建安全性角色,并能够将安全性角色引用链接到安全性角色。它也使得 Bean 提供者能够直观地创建安全性角色引用。图 21 显示了为应用程序定义的四个安全性角色,该应用程序由多个 Enterprise JavaBean 组成。
图 22 显示了正在链接到适当安全角色的安全性角色引用。该操作既可以在创建安全角色引用的时候完成(如果 Bean 提供者与应用程序的组装者相同),也可以通过应用程序的装配者在了解安全性角色引用以后再执行。
应用程序的组装人员可以在部署描述符中指明调用者的 Security Identity 或者 Run-As Security Identity 是否应该用于 bean 方法的执行。该操作可以使用 EJB 可视化编辑器直接完成。
用 户能够直观地创建和操作安全性管理的另一个方面是方法许可。为 Enterprise JavaBean 定义安全性角色的应用程序组装人员还可以指定 Home 和 Component 接口的方法,这些方法每个安全性角色都可以调用。在部署描述符中将方法许可定义为一种二元关系, 这种关系是从安全性角色的设置到 Home 方法、Session 的 Component 接口以及实体 bean 的设置, 其中包括所有的超类接口(包括 EJBHome 和 EJBObject 接口的方法,和/或 EJBLocalHome 和 EJBLocalObject 接口)。EJB 可视化编辑器现可以直接创建新方法许可和操作已有的方法许可。要创建新方法许可:
图 25 显示了 bean Book 上方法许可的可视化矩阵。
![]() ![]() |
![]()
|
本 文突出介绍了 EJB 可视化编辑器的新特性,它包含在 IBM 的用于开发 WebSphere 软件版本 6.0 的 Rational Application Developer 中,这些特性显示了 EJB 可视化编辑器如何为 bean 提供者和应用程序组装者开发应用程序提供更有效和更直观的方法。EJB 可视化编辑器不仅隐藏了 EJB 规范的复杂性,而且能真正使开发工作成为一种心情舒畅的体验!
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/374079/viewspace-932008/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/374079/viewspace-932008/