开始之前
| 下载 IBM® Rational® Application Developer 试用版 | 在线试用 IBM® Rational® Application Developer |
|---|
| 下载更多的 IBM 软件试用版,并加入 IBM 软件下载与技术交流群组,参与在线交流。 |
计算机出现之后,处理能力和程序复杂度就在进行着不断的竞争。有些程序是执行一系列的顺序操作,而有些程序可能是处理很多的数据,而其它的一些程序可能是执行一些消耗 CPU 资源的任务。无论是哪种情形,这些程序都有一个共同的特点,就是它们需要执行很长时间并且不需要用户输入,它们统称为批处理操作。
批处理操作最起初是只在主机上,因为批处理所需要处理能力在仅存在于主机上。随着 Java 编程语言和 Rational Application Developer 引入了 Modern Batch(也叫 Java Batch),Browser/server 这种计算模型也能够利用批处理所带来的好处了。
IBM 在 Rational Application Developer(以下简称为 RAD)中引入了在主机上的批处理的丰富经验。现在使用 RAD,您可以设计、开发 Modern Batch 应用程序,并布署到 WebSphere Application Server(以下简称 WAS)上去。您可以使用安装了 Modern Batch 功能部件包的 WAS V7,也可以使用最新版本的 WAS V8,它其中已经包含了 Modern Batch 功能部件包的功能。
在开始介绍如何使用 Rational Application Developer 来开发 Modern Batch 应用程序之前,您需要先了解批处理作业的概念以及用于开发批处理应用程序的编程模型。在介绍完这两部分内容之后,就将为您介绍如何使用 RAD V8 来开发 Modern Batch 应用程序。
从较高层次上来说,批处理作业就是一个说明性的构造结构,它指导着一系列一个或多个应用程序的执行,并为它们指定数据的输入和输出。批处理作业顺序地完成这一系列的任务以便完成某一特定的业务功能。批处理应用程序就是被设计用来在后台以非交互的方式执行的程序。应用程序通常以逻辑结构的方式来访问输入输出数据,然后再通过批处理作业的定义将这些逻辑结构映射到具体的数据资源上。
批处理作业通常要处理大量记录式的输入输出数据,通常这些数据都是一些重要的业务数据,例如,客户账号、销售数据等等。批处理作业所执行的业务数据任务的范围是很广泛的,包括发票生成、账户优化、投机分析等等。批处理作业在 Z 系列主机上已经使用很多年了,即使在现在,它仍然是大型和中型企业的业务骨干。
图 1. 批处理作业示意
作业定义描述了批处理作业步的执行以及它们将要执行的顺序。每个作业步 (Job Step) 都定义通过某一个批处理应用程序来启动该作业步,并指为其指定数据的输入和输出。常用的数据源和数据输出包括文件、数据库、事务交易系统、消息队列等。作业定义是通过叫做 XML Job Control Language(xJCL) 这种 XML 格示的文件来表述的。该文件格以专有的语法格式来表述批处理作业所需要的信息。
Modern Batch Application 其实就是一套 POJO,运行于 WebSphere Application Server 的 Batch Container 中,下图描述了应用程序模块以及它们与 Batch Container 的关系。
图 2. 批处理编程模型示例
Batch Container 在 Asynchronous Bean 的控制下来执行批处理作业。您可以将 Asynchronous Bean 看成是一个容器管理的线程。Batch Container 解析作业定义(Job Defination),通过使用 Asynchronous Bean 作为执行单元来完成批处理应用的生命周期。
WAS V7 Modern Batch 功能部件包或者 WAS V8 提供了两种类型的批处理编程模型:计算密集型编程模型和事务密集型编程模型,这两种编程模型都是实现为 Java 对象,它们都被打包到 EAR 文件中再部署到应用服务器环境中。
更多关于 Modern Batch 的介绍,请您参阅参考资料。
Compute Grid Tool for Modern Batch 简介
Compute Grid Tool for Modern Batch 现在是 RAD V8 安装程序的一部分。仅需在 Installation Manager 安装过程中,选择该特性即可,如下图所示
图 3. Modern Batch 所需的安装特性
上图中选择了 WAS V7 Modern Batch 功能部件包特性,这个功能部件包会安装向导、工程、示例以及用于开发 Modern Batch 应用程序的运行时环境。您也可单独安装带有 Modern Batch 功能部件包的 WAS V7 或 WAS V8。
配置 WebSphere Application Server 使其能够运行 Modern Batch 应用程序
在开发 Modern Batch 应用程序之前,我们需要先配置 WAS,使其够运行 Modern Batch 应用程序。我们有三个版本的应用服务器可用于运行 Modern Batch 应用程序,分别是:
- WebSphere Application Server V8.0
- WebSphere Application Server V8.0 with WebSphere Extended Deployment Compute Grid V8.0
- WebSphere Application Server V7.0 with Feature Pack for Modern Batch
您可以选择上述任一版本的 WAS 并对其概要文件进行配置来运行您的 Modern Batch 应用程序。
这里面,只向您介绍如何配置安装好 Feature Pack for Modern Batch 的 WAS V8.0 和 WAS V7.0。如果您想了解如何配置 WAS V8.0 with WebSphere Extended Deployment Compute Grid V8.0,可以查看参考资料。
配置 WAS V8.0 来运行 Modern Batch 应用程序
要在 WAS V8.0 上运行 Modern Batch 应用程序,您首先需要创建一个新的概要文件或者使用已有的概要文件,然后在其上运行 uteconfig 脚本。uteconfig 脚本由 WAS 提供,它需要运行大概几分钟来自动的配置概要文件以使其通够运行 Modern Batch 应用程序。这个脚本能够配置作业调度,将用户和用户组映射到相应的安全角色上。
限制:uteconfig 脚本仅支持 WAS V8.0 的概要文件。
注意:如果您不能够打开 Modern Batch 作业管理控制台的话,就说明应用服务器不能够运行 Modern Batch 应用程序。例如,如果在 RAD 的 "Server" 视图中,右键点击 WAS V8.0 应用服务器,然后选择 Modern Batch Job Management Console,您可能看到如下的错误消息:
The webpage cannot be found. |
在这种情况下,您需要在概要文件上运行 uteconfig 脚本来消除该错误消息。
uteconfig 脚本可以通过以下两种方式来运行:
- 在 Workbench 中看到下图的窗口时,点击“OK”
图 4. Configuring the Server for Batch Jobs 窗口
当您试图在一个不能运行 Java Bach 应用程序的 WAS V8.0 概要文件上运行批处理作来时,这个 Configuring the Server for Batch Jobs 窗口就会弹出。当您点击“OK”后,uteconfig 脚本就会在后台运行。在“Progress”视图中,会显示如下的消息:
Configuring the server to accept batch jobs on <serverName> |
<serverName> 用于标识“Server”视图中的一个应用服务器条目。例如:WebSphere Application Server v8.0 at localhost
在 WAS 的安装目录下来运行 uteconfig 脚本,下面是一个命令举例:
<WAS_install_dir>\bin>uteconfig <profileName> |
其中 <WAS_install_dir> 是 WAS 的安装目录,<profileName> 是您想运行该脚本的概要文件的名字。例如:
C:\Program Files\IBM\WebSphere\AppServer\bin>uteconfig AppSrv01 |
当脚本成功运行结束之后,会显示如下消息:
UTE configured successfully |
想要该脚本所做的变化在 RAD V8 中生效,您需要在 Workbench 中选择“Server”视图中,右键选择应用服务器,然后选择 Restart。
如果您不想使用 uteconfig,想要以手工的方式通过 WAS 管理控制台来配置的话,可以查看参考资料中的 WAS V8.0 信息中心。
配置 WAS V7.0 来运行 Modern Batch 应用程序
如果您想要使用 WAS V7.0 Feature Pack for Modern Batch 提供的批处理功能,您必须要创建一个新的带有 Feature Pack 的概要文件或者增大一个原有的概要文件。关于如何安装 WAS V7.0 Feature Pack for Modern Batch,请您查看参考资料。
应用服务器包含两种 Feature Pack for Modern Batch 概要文件的模板:
- default.ute: 该模板已包括了作为开发环境所需要相关配置
- default: 如果您想要使用该模板创建的概要文件作为开发环境,那么需要做一些相应的配置。配置细节可查阅参考资料中的 WAS V7.0 的信息中心。
当您在试图在 RAD V8 中打开 Modern Batch Job Management Console 时,如果遇到下面的错误信息:
404 error: JSPG0036E: Failed to find resource /jmc/console.jsp |
您可以通过使用一个已经增大含有 Feature Pack for Modern Batch 的概要文件来消除上述错误信息。
当您完成了以下任一种操作,您就已经将 default.ute 概要文件模板应用到概要文件上了:
- 创建一个带有 Feature Pack 的概要文件。通过 IBM Installation Manager 安装 WebSphere Application Server V7.0 Test Environment with Feature Pack for Modern Batch。
- 创建一个新的概要文件,并且该 WAS V7 安装了 Modern Batch 功能部件包。当没有概要文件关联到服务器运行时环境时,通过使用自动弹出的 Configuring the WebSphere Application Server 向导来创建并配置概要文件。
- 使用 WAS 提供的 manageprofiles 命令行工具增大已有的概要文件。下面的命令语句中使用–templatePath 参数来指定 default.ute 概要文件模板的位置。
注意:在运行该命令之前请将应用服务器停止
manageprofiles -augment -profileName <profileName> -templatePath "<WAS_install_dir>\profileTemplates\BATCH\default.ute"
<profileName> 是想增大的已有概要文件的名字,<WAS_install_dir> 是 WAS 的安装目录。
在完成了配置 WAS 之后,我们就来看一下,如何用 RAD V8 来开发 Modern Batch 应用程序。