WebSphere Application Server中现代化的基于Java的批处理(一)

介绍 Modern Batch 和计算密集型的编程模型

简介

批处理程序是任何企业 IT 领域的一个传统且不可或缺的组件。目前的批处理发展趋势是将内部的 Java 技能应用于在线程序和批处理程序上,以确保:

最大限度地提高实现的重用。

更轻松的开发和维护,因为使用了相同的工具集。

企业标准和服务质量实施上的一致性。

IBM 开发的解决方案提供了一种具有凝聚力的批处理程序管理模式。IBM WebSphere Application Server 的 Modern Batch 功能(可用于 WebSphere Application Server V8、WebSphere Application Server V7.0 Feature Pack for Modern Batch 和 IBM WebSphere Extended Deployment Compute Grid V8.0 中)提供了一个批处理中间件框架,提供了:

容器管理的批处理作业执行:提供了 Java 批处理应用程序所需的结构和支持功能,帮助您避免 “自定义中间件陷阱”。

作业控制接口:一个 XML 文件,描述一个批处理步骤中使用的 Java 类文件和批处理作业中包含的步骤。

作业检查点和重新启动功能:能够在记录数量或时间的基础上创建检查点。这支持从一个已知的检查点重新启动一个作业。

通用批处理数据流 (BDS):包含将数据抽象为容易访问的记录格式的功能,使批处理编程能够重点关注业务功能,而不是读取和写入数据的基本代码。

拥有这样一个框架,可为开发自定义批处理中间件提供一种不错的替代方法,允许开发人员将精力集中在实现核心业务目标上。使用 Modern Batch,可以将批处理应用程序的开发精简为编写作业的业务逻辑。这种业务逻辑与 “管道” 代码之间的关注点分离是批处理框架的一个重要优势。它实现了批处理功能的一种更有效的模块化,这支持更有效的重用,能够将批处理公开为模块化服务。

Modern Batch 支持两种批处理编程模式:

计算密集型:适用于执行计算密集型工作,且不需要重新启动功能的简单作业。

事务批处理:适用于需要一个容器管理的检查点和一种重新启动机制的作业。如果因为计划或未计划的断电而中断,这支持批处理作业从上一个检查点重新启动。

本文分析计算密集型模型并提供一个示例实现,该实现使用了 IBM Rational Application Developer v8 中所提供的新功能。

计算密集型的编程模型

计算密集型的编程包含以下元素:

控制器 bean:一种无状态的会话 bean,支持运行时环境控制应用程序的作业。此无状态会话 bean (CIControllerBean) 的实现由应用服务器提供。

作业步骤实现类:作业步骤表示作业将执行的业务逻辑。它由一个实现 com.ibm.websphere.ci.CIWork 接口的类的实例表示。CIWork 接口包含以下方法:

run() 方法将在 CI 作业运行时执行。

getProperties() 和 setProperties() 方法用于通过来自客户端的属性获取输入值。

release() 方法在需要通过客户端中断正在执行过程中的作业时调用。

如果工作是长期的,而不是短期的,那么 isDaemon() 方法会返回 “true”。

xJCL 文件:一个基于 XML 的配置文件,提交给作业计划程序运行。作业计划程序使用此文件中的信息确定作业运行的位置和时间、它的输入和输出。作业的 xJCL 定义不是批处理应用程序的一部分。

图 1 显示了计算密集型编程模型。(这是实际编程模型的一个简化版本,实际的模型将在第 2 部分中详细探讨。)

图 1. 计算密集型编程模型

要开发计算密集型作业,您需要:

定义 xJCL 文件。

创建实现 CIWork 接口的 Java 类,包含将对每个作业步骤执行的业务逻辑。

使用指向 com.ibm.ws.ci.CIControllerBean 的无状态会话 bean 将 CIWork 适当地包装为实现类。

在构建示例计算密集型作业之前,一定要先理解计算密集型应用程序在运行时期间的行为。总之,发生的事情是:应用服务器使用 xJCL 文件查找并调用控制器 bean。bean 读取 xJCL 文件,对于 xJCL 中的每个作业步骤,bean 将执行以下操作:

使用 CIWork 类的无参数构造函数实例化应用程序 CIWork 对象(由作业步骤的 xJCL 中的类名称元素指定)。

调用 CIWork 对象的 setProperties() 方法传递作业步骤的 xJCL 中定义的任何属性。

查找在企业 bean 模块的部署描述符中定义的工作管理器,使用它异步调用 CIWork 对象的 run() 方法。

有了对编程模型的这一理解之后,让我们看看开发计算密集型应用程序的步骤。

示例业务场景

相关产品和版本

这里提供的示例使用 Rational Application Developer V8.0 开发并部署在 WebSphere Application Server V8.0 上。Rational Software Architect for WebSphere V8 及更新版本也提供了开发批处理程序的工具支持。WebSphere Application Server V7.0.0.11 及更新版本通过 Modern Batch 功能包提供了对 Modern Batch 的运行时支持,Modern Batch 在 V8 中以一个集成的组件的形式提供。

此示例场景中的企业是一个在不同州拥有许多分支的金融组织。该组织的客户向分支机构提交应用程序,以便进行相应处理。计算密集型应用程序示例将生成一个报告,总结来自每个州的应用程序数量,以及该组织的其他指标。

要开发此应用程序,请执行以下步骤:

在 Rational Application Developer 中,导航到 File > New > Batch Project,创建一个名为 dWSampleBatch 的新批处理项目。完成此操作之后单击 Finish(参见图 2)。这还会创建一个 EJB 项目,它拥有无状态会话 bean 和 EAR 项目。

图 2. 创建一个新批处理项目

时间: 2024-10-23 05:42:48

WebSphere Application Server中现代化的基于Java的批处理(一)的相关文章

WebSphere Application Server 中现代化的基于 Java 的批处理(五)

保护作业调度程序 简介 IBM WebSphere Application Server V8.5 和更高版本为基于 Java 的批处理应用程序提供了一个实现平台.与丰富的编程模型和众多复杂特性相结合,比如跳过记录处理.并行处理.重试步骤处理.COBOL 支持以及与企业调度程序的集成,它还提供了企业级质量,即: 可用性 可恢复性 可伸缩性和性能 安全性. 对于批处理程序的执行,作业调度程序接受作业提交并确定在何处运行它们.作为管理作业的工作的一部分,作业调度程序将作业信息持久保存在一个外部作业数

WebSphere Application Server 中现代化的基于 Java 的批处理(四)

与企业调度程序相集成 简介 IBM WebSphere Application Server V8.5 和更高版本为基于 Java 的批处理应用程序提供了一个执行平台.除了提供功能丰富的编程模型和高级特性,比如并行处理.跳过记录处理.重试步骤处理和 COBOL 支持,它还为批处理程序提供了企业级 "质量",比如可用性.可恢复性和性能.与 WebSphere Application Server 支持相结合,WebSphere Batch 可成为一个富有吸引力的企业批处理解决方案选择.

WebSphere Application Server中现代化的基于 Java 的批处理(三)

企业批处理 简介 IBM WebSphere Application Server V8 为批处理添加了一个新容器,为基于 Java EE 的批处理应用程序的执行提供了一个环境.这个新的批容器提供了全面的功能,使它非常适合用作企业批处理基础架构提供程序.WebSphere Application Server V7 中提供的 Modern Batch 功能包开了一个好头,提供了一致的编程模型和工具,但不包含企业环境中需要的高级批处理功能.WebSphere Application Server

如何在IBM WebSphere Application Server中使用各种JPA Provider

引言 使用持久化架构能够使数据库事务处理变得更加容易.Java 持久化架构(Java Persistence Architecture)是一个非常不错持久化选择,通过使用 JPA,您可以不再需要使用复杂的 SQL 查询,不必担心性能问题,以及其它一些潜在的编程错误等.有很多的 JPA Persistence Provider 可供应用程序开发者来选择,如 WebSphere JPA,OpenJPA 和 Hibernate 等等.WebSphere Application Server 支持配置使

使用IBM WebSphere Application Server中Eclipse插件简化开发

本文将介绍如何使用 http://www.aliyun.com/zixun/aggregation/13387.html">WebSphere Application Server Developer Tools for Eclipse 插件简化对数据访问应用程序的开发,以便将应用程序发布在轻型应用程序服务 Liberty 配置文件环境中.本文包含一个基于 JPA 的示例数据访问应用程序,用于演示 Liberty 配置文件的动态功能. Liberty 配置文件是 IBM WebSphere

WebSphere反向投资者:在WebSphere Application Server中修改主机名称并迁移概

WebSphere反向投资者:在WebSphere Application Server中修改主机名称并迁移概要文件 在每篇专栏文章中,"WebSphere 反向投资者" 将回答问题.提供指导和讨论与 WebSphere 产品使用相关的基础主题,经常会给出与流行的看法相悖的经过实践验证的建议. 改变的时机来了吗? 希腊哲学家赫拉克利特曾说过 "惟一不变的就是变化本身",并且这句话在过去 2500 年来都被证明是正确的,在某些情况下您很可能需要修改 WebSphere

自定义WebSphere Application Server中的LDAP适配器的日期格式

本文介绍如何在 Virtual Member Manager 中实现这种自定义.Virtual Member Manager 是 IBM http://www.aliyun.com/zixun/aggregation/13387.html">WebSphere Application Server 的一个组件,它合并了 WebSphere Application Server 存储库中的一些现有功能.WebSphere Member Manager(来自 IBM WebSphere Por

介绍IBM WebSphere Application Server中OSGi的新特性

OSGi 为模块化编程提供了一个开放的.标准的框架.http://www.aliyun.com/zixun/aggregation/13387.html">WebSphere Application Server(以下简称 WAS)从版本 7 开始以功能部件包的形式对 OSGi 提供了支持.在版本 8.5 中,对 OSGi 的功能作了进一步加强.本文将详细介绍 OSGi 在 WAS V8.5 中的新增特性. OSGi 概述 OSGi 提供了一个开放的.具有统一接口标准的体系框架,基于这个体

Web网站从Domino迁移到WebSphere Application Server上的优势

本文将分析 Web 网站从 Domino 迁移到 WebSphere Application Server 上的优势,结合一个示例展现整个迁移. IBM Lotus Domino 是功能强大的企业级协作服务器平台,用于电子邮件.日程安排和协作应用.它提供的服务包括邮件服务器,Notes/Domino 应用程序服务器,数据库服务器,目录服务器,以及 Web 服务器等.当 Domino 提供 Web 服务器功能时,它能够将 Notes/Domino 应用程序中的设计元素和文档数据转换成 HTML 代