Spring Batch:简化批处理和离线处理的开发

Spring Batch 项目是一个轻量级的全面的基于Spring的批处理框架,最近发布了1.0版 。InfoQ采访了其项目领导人David Syer ,以了解该版本的相关信息以及它为Spring社区提供了些什么。

Syer将Spring Batch描述为这样一个框架,它能够管理批处理和离线处理,从而使应用开发者将注意力集中在业务逻辑上。Syer指出了Spring Batch带给批处理界的两个新观点:编写可以单独测试的轻量级应用代码的能力;一个执行、管理和监控离线处理结果的强大的框架。

Syer认为这一版本的主要特征如下:

  • 基础设施 ——这一基础设施提供了对可重用性的支持,对重复和重试的低层支持,对事务同步的支持,以及对读写普通文件、XML和数据库的支持
  • 核心 ——这是一个瘦API,允许启动和管理批处理工作,提供需要操作的所有特性
  • 扩展 ——这是核心API的实现,为批处理提供了一个运行时/执行环境
  • 全套例子应用 ——Spring Batch 1.0提供了一个例程模块,其中包含了几个例子应用,展示了Spring Batch在操作上的全部主要特征

Syer还给出了1.0版中所有可用 特性的详细描述。

一个能使Spring Batch与Spring Portfolio的其他项目区分开来的东西是,Spring Batch是 SpringSourceAccenture 合 作的结果。Syer告诉InfoQ这种合作对于代码库的贡献在数量和深度上都带来了巨大好处。这种合作“非常成功”,Accenture把它们最好的资源 分配到了这个项目上。Syer也细心地指出Spring Batch与Spring Portfolio里的每个项目一样,都是以同样的方式运行并且支持同样的标准。

Spring Batch的开发过程相对较长,从Subversion库中可以看出早在2007年1月它就开始了。Syer解释了其中的原因:

快点发布一个最终版本当然是好事情了,但是实际上我们一直按照2008年3月来制定结束计划,以与 Spring Portfolio的其它产品和SpringSource的产品发布时间相符。我们在设计公共API的时候非常仔细,这样在将来的开发计划中不需要对其做 出变化。整体产品质量也是主要的考虑因素——我们是完美主义者。

这就是说,我们产品的功能成熟性和丰富性可以用几个项目来证明,它们已经在其产品中使用了我们的里程碑发布。

当被要求就这些产品做更详尽的描述时,Syer说道:

  • 作为整个应用更新项目的一部分,欧洲一个大的卫生保健机构已经将其大量主 机批处理移植到了Spring Batch上。这是相当普遍的模式和需求,因为当今工作市场上可以很容易找到优秀的Spring开发者,而很难找到好的COBOL程序员。该客户使用 Spring Batch XML流及映射功能,并且在可能重用在线处理已有的一部分工作的地方,把Hibernate用于业务对象持久化。
  • 一个大体育组织在比赛进行的时候使用户可以实时跟踪更新的成绩和实况的统计。他们开发了一个系统,考虑到快速开发,只需通过配置就可进行文件读取。模块化方法还使工作运行得更快,每5秒钟启动一次
  • 美国一个大的州政府有一个IT更新项目,使用Java更换其主机批处理工作。其目标是处理失业索赔。这里的挑战包括遗留主机和政府特定的数据格式,以及关于部分工作失败的严格规则。在这种情况下,批处理工作开发只是更大程序中的一部分。

Syer还罗列了实现应用可能要处理的三种工作:

  • 营业结束处理,比如报表、订单处理、和财务对帐单
  • 导入和导出处理,比如表单处理、清单导入、配置导出
  • 大规模输出工作,比如email操作和财务决算

当问到Spring Batch未来的计划时,Syer说道:

我们正在为单个进程(可能是多线程的)在1.0中的执行提供一个卓越的平台。将来完全有可能将众多的多 进程模型移植到多种平台上,我们已经非常谨慎的预期在1.0代码库中将做出这些修改。构建在我们提供的平台上,它已经提供了大多我们所需的数钩子 (hook)和数据结构,我们还打算仔细思考一下批处理应用关于可用性和可部署性方面的问题。监控和管理批处理应用在现实生活中是十分重要的,我们认为我 们可以有多种方式给这一领域增加附加价值。连同其它Spring portfolio项目一起,我们认为OSGi是我们未来策略的关键部分(1.0将被打包成OSGi bundles,但是这只是开始)。

Syer还对那些为Spring Batch做出了贡献的人们表示感谢,无论他们是通过论坛、错误报告、讨论还是编码的形式,还说反馈的质量和数量都让他们感到“印象深刻”。

查看英文原文: Spring Batch: Simplified Development of Batch and Offline Processes

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值