alphaWorks 提供的一个工具可以帮助您将现有的 J2EE™ V1.4 应用程序从基于 Apache Geronimo 的 IBM® WebSphere® Application Server Community Edition V2.0.x 和 V2.1.x 迁移到 IBM WebSphere Application Server V6.1。
引言
要迁移为 IBM WebSphere Application Server Community Edition 编写的应用程序,并使得该应用程序的行为像在 IBM WebSphere Application Server V6.1 上运行时一样,这需要一系列步骤,其中一些步骤是自动的,还有一些步骤是手动的。IBM 新推出的 Application Advancement Assistant for WebSphere Application Server Community Edition 工具是为执行自动化步骤和帮助减少所需的手动工作而创建的。本文将简要概述此新的迁移工具(在 alphaWorks 中提供),以帮助轻松地迁移到 WebSphere Application Server。
本文并不探索在使用该工具时可能遇到的任何具体问题,但是本文将提供一些总体指南,以帮助您使用和解释所得到的结果。
截止到撰写本文时为止,Application Advancement Assistant for WebSphere Application Server Community Edition 支持将开发的应用程序迁移到 WebSphere Application Server Community Edition V2.0.x 或 V2.1.x 的 J2EE 1.4 规范。迁移的应用程序目前支持的目标环境是 WebSphere Application Server V6.1(未安装任何功能包)。在本文中,对 WebSphere Application Server 的所有引用明确地针对版本 6.1.x。
端到端的迁移概述
Application Advancement Assistant 可通过以下方法简化应用程序从 WebSphere Application Server Community Edition 到 WebSphere Application Server 的迁移:
- 生成应用程序的标准和特定于 Geronimo 的部署描述符的 WebSphere Application Server 等效项。
- 为支持的 WebSphere Application Server 资源类型生成基于 Jython 的资源生成脚本。
- 基于标准和特定于 Geronimo 的部署描述符的内容生成动态输出,这些输出准确指定需要执行哪些其他工作(对于未迁移的任何内容)才能完成迁移。
下面概括介绍了使用 Application Advancement Assistant 执行迁移时涉及的步骤:
- 运行 Application Advancement Assistant 命令行实用工具(wasma.bat 或 wasma.sh),并作为输入传入应用程序和任何外部引用的、特定于 Geronimo 的部署计划。此操作的结果是创建以下三项可交付内容:
- 一个几乎与 WebSphere Application Server 兼容的 EAR 或 WAR 文件:正如前面提到过的,Application Advancement Assistant 不会自动迁移所有内容(最简单的 EAR 或 WAR 除外),因此在大多数情况下,仍然需要执行其他步骤才能完成迁移;因此这里使用了“几乎”。
- 特定于应用程序环境的动态文档 (.html):每个应用程序都会产生自己的输出,该输出仅包含完成该应用程序迁移所需的操作项。Application Advancement Assistant 生成的输出是根据 J2EE 定义的角色构造的;为开发人员(适用于应用程序组件提供人员和应用程序组装人员角色)提供的步骤与为部署人员(适用于部署人员和系统管理员角色)提供的步骤各不相同。
- 用于每个所发现资源(例如数据源、JMS、安全性、邮件和 URL 资源)的基于 Jython 的脚本,此脚本同时受到 Community Edition 和 WebSphere Application Server 的支持,并且可以对其进行迁移。
- 应用程序组件提供人员或应用程序组装人员将查看开发人员部分为任何操作项生成的文档。解析所有开发人员的操作项后,应用程序将与 WebSphere Application Server 兼容。此时,可以将应用程序和生成的文档发送到部署人员或系统管理员来执行其他迁移工作。
- 部署人员或系统管理员将解析开发人员部分列出的任何操作项。开发人员操作项将特定于应用程序(如绑定其他库和重新包装外部资源适配器),而部署人员部分中的操作项则特定于 WebSphere Application Server V6.1 环境(如创建数据源和将资源引用绑定到物理资源)。
- 将应用程序安装到 WebSphere Application Server 环境,并开始测试。
安装和运行工具
-
从 alphaWorks 下载 Application Advancement Assistant。通过将下载的 ZIP/TAR 文件解压缩到选择的目录来安装该工具。下载包包括一个基本 wasma 目录,下面将其称作 WASMA_HOME。
-
迁移工具使用一些 WebSphere Application Server 二进制文件(JAR 文件)分析您的应用程序 EAR 和 WAR 文件,并创建用于在 WebSphere Application Server 上部署的 EAR 和 WAR 文件。您必须在系统上安装 WebSphere Application Server,如图 1 所示,并且必须将 WAS_INSTALL_ROOT 环境变量正确地设置为您的系统上的 WebSphere Application Server 根目录。
图 1. 运行 Application Advancement Assistant 之前的初始安装
-
Application Advancement Assistant 是分析 EAR 或 WAR 文件的命令行工具。图 2 显示了由用法消息提供的 wasma 命令语法。
图 2. WASMA 命令行语法
该工具产生一个或多个输出:
- 一个或多个 HTML 文件,这些文件描述迁移状态和需要执行才能使 EAR 或 WAR 文件能够在 WebSphere Application Server 上成功运行的任何其他工作。
- 如果未遇到严重错误,则会输出一个用于在 WebSphere Application Server 上部署的更新后的 EAR 或 WAR 文件。
- 一个用于每个所发现的可从 Community Edition 迁移到 WebSphere Application Server 的资源的 Jython 脚本。
Application Advancement Assistant 的主要输入是您在 Community Edition 上开发和测试并希望迁移的 EAR 或 WAR 文件。与在 Community Edition 上部署 EAR 或 WAR 一样,还可以指定可选的外部部署计划;它会覆盖 EAR 或 WAR 文件中任何特定于 Geronimo 的部署计划。缺省情况下,Application Advancement Assistant 将其输出放在 WASMA_HOME\output 目录中。可以使用 -o 标志将输出放在更方便的位置。WASMA 在迁移期间将存档提取到临时目录,如果愿意的话,可以使用 -t 覆盖该临时目录。
图 3. 调用 WASMA
在图 3 的示例中,wasma 命令在 WASMA 提供的基于 J2EE 1.4 的 PlantsByWebSphere.ear 示例应用程序上运行。命令行控制台输出相当简单。其中的迁移状态消息简要地指示需要多少工作,后面跟着提供输出报告 HTML 文件位置的消息。此调用中使用了缺省设置,因此如图 4 所示的输出文件被创建在 WASMA_HOME\output 目录下的一个基于所提供的应用程序存档文件名创建的子目录中。在浏览器中打开所提到的 index.html 文件,以查看迁移过程的结果。
图 4. WASMA 生成的输出
查看输出报告
图 5 显示了生成的 index.html 报告文件,如浏览器中所示。
Input 部分显示了该工具用来产生此报告的输入参数。其中给出了输入存档的位置和可选的外部部署计划(如果提供了的话)。
Output 部分提供了迁移的 WAR 或 EAR 文件的位置、生成的任何 Jython 脚本的位置,以及包含跟踪和调试信息的日志文件。通常,您应该不需要参考日志文件,除非在使用该工具时遇到了问题并且需要进一步的信息来调试那些问题。
Migration Results - Status 部分提供了迁移结果的简要总结。存在以下三种可能性:
- CWWCA0002I:Archive was successfully migrated.——不需要做其他工作。
- CWWCA0003W:Archive was migrated, but ...——需要执行某些手动迁移步骤。(这是本示例中的状态。)
- CWWCA0004E:Archive migration failed.——发生了严重错误。请参见日志文件以了解更多信息。
Deployment Plans 部分列出了 Migration Assistant 在迁移输入存档时处理的部署计划。
Summary and Links 部分提供了指向其他页面的链接,这些页面包含按如前所述的角色分组的项:面向开发人员的 Application Component Provider/Application Assembler 页面和面向部署人员的 Deployer/System Administrator 页面。
图 5. 工具输出:Overview 部分
图 6 显示了从开发页面生成的提取的示例项。此页面中的操作项是在将应用程序部署到 WebSphere Application Server 环境之前需要对它执行的步骤。预期可以在本部分下面发现的一些操作包括:
- 在 EAR 中对外部引用的 Web 模块重新打包。
- 生成特定于 WebSphere Application Server 的 EJB 到 DB 映射。
- 根据需要访问 EAR 中的依赖项和包,或将其作为共享库。
图 6. 工具输出:Developer 部分
图 7 包含了一个从开发页面生成的输出示例项。此页面中的操作项是在安装迁移应用程序之前需要在 WebSphere Application Server 环境中执行的步骤。预期可以在本部分中发现的一些操作包括:
- 绑定资源引用。
- 创建物理资源(如数据源)。
- 设置安全和绑定安全角色。
图 7. 工具输出:Deployer 部分
进一步了解
现在让我们了解一下报告中的某些个别项。
将为需要手动干预的每个元素的实例生成日志记录,生成顺序是 Application Advancement Assistant 在迁移存档时遇到元素的顺序。在生成的 HTML 输出中,每个元素列出一次,并提供一个表,记录每个实例的值或在存档中发现此元素的次数。元素在两个页面中的其中一个页面上分组,该页面与通常负责执行该工作的人员角色(开发人员或部署人员)相关。根据手动迁移元素所需的工作量,元素大致按降序显示。
图 8 突出显示了 Message 部分。这是在日志文件中找到的每个元素的消息文本,简要描述了 Application Advancement Assistant 遇到的问题元素。消息具有用于元素的每个实例或每次出现的变量数据,以标识修复问题所需的精确资源和其他数据。每个变量都标有名称、以粗体显示,并用 {} 号括上。
图 8. 工具输出:Message 部分
图 9 突出显示了 Values 部分。本部分在一个表中列出了每条消息或元素实例的变量数据。变量名称位于列标题中,以粗体显示,并匹配 Message 部分中的名称。
图 9. 工具输出:Values 部分
图 10 突出显示了 Explanation 部分。本部分提供了此元素要解决的问题的较完整的描述。
图 10. 工具输出:Explanation 部分
图 11 显示了突出显示的 User Action 部分中的项。本部分描述了如何解决此问题,一般提供一个指向 WebSphere Application Server V6.1 信息中心的链接,链接内容提供了解决问题的完整信息和具体步骤。
图 11. 工具输出:User Action 部分
结束语
IBM 的 Application Advancement Assistant for WebSphere Application Server Community Edition 可以帮助减少将简单的 J2EE 1.4 应用程序从 WebSphere Application Server Community Edition V2.0.x 和 V2.1.x 迁移到 WebSphere Application Server V6.1 所需的大量手动工作。对于更复杂的应用程序(如使用 EJB V2.1 或依赖于服务器独特功能和资源的那些应用程序),该工具将生成开发人员和部署人员执行手动迁移步骤所需的文档,其中为每个角色显示了要迁移的部署构件,以及详细的解释和带有指向 WebSphere Application Server V6.1 信息中心的上下文相关链接的用户操作。
Application Advancement Assistant 工具在不断改进。如果在使用此工具时提示您创建希望看到的迁移功能的列表,例如对 EJB3、WebSphere Application Server V7 的支持或与 Eclipse 和 Rational 工具的集成,请不要犹豫,立即把您的想法发布到下面的参考资料中提到的 Application Advancement Assistant 或 Community Edition 论坛吧。(责任编辑:A6)