当前位置:Java -> 一种征服ACH批量处理的现代开源技术

一种征服ACH批量处理的现代开源技术

银行面临着赢利的挑战,技术发展成本和利率上升的当前环境使得利润减少。这些不断增加的运营成本影响了银行和金融服务的盈利能力。因此,每家银行/金融机构都在努力降低成本。其中一种方法是从专有工具驱动的软件开发转变为开源技术和自动化,从而消除许可费。

在处理自动结算处理(Automated Clearing House, ACH)批处理时,使用开源技术是一个不错的主意,因为这是机构用于电子资金转账(EFT)的主要系统。由于ACH文件的结构很少被联邦储备修改,一旦技术被开发,就几乎不需要维护。通过使用开源软件处理ACH文件,公司可以节省数十万美元。

过去,处理这些转账需要使用专有工具将其转换为兼容的文件格式进行处理。但如今的开源技术更加成熟,建立在即插即用的概念上。其中一个技术就是Spring Batch,它是Spring框架的一部分。Spring框架提供了一个面向基于Java的企业应用的综合模型,专注于应用级别的业务逻辑,不会不必要地依赖特定的部署环境。这进一步简化了开发,提供了独立的、生产级应用程序。

Spring Batch已被证明是处理ACH批处理的稳定解决方案,其自动化能力和强大的错误处理机制使其成为银行和金融服务的理想框架。

请记住,Spring Batch设计的主要技术目标包括:

  • 使批处理开发者能够使用Spring编程模型:专注于业务逻辑,让框架处理基础设施。
  • 确保基础设施、批处理执行环境和批处理应用之间的关注点分离。
  • 提供作为接口的常见核心执行服务。
  • 提供可以“即插即用”地使用的核心执行接口的简单和默认实现。
  • 通过在所有层次使用Spring框架,便于配置、定制和扩展服务。
  • 能够替换或扩展现有核心服务,而不影响基础设施层。
  • 提供一个简单的部署模型,将体系结构JAR与应用程序完全分离,通过Maven构建。

在了解Spring Batch的工作原理之前,让我们先来看一下标准的ACH文件结构:

  • 文件头记录
  • 公司/批处理头记录
  • 条目详细记录
  • 备注记录
  • 公司/批处理控制记录
  • 文件控制记录

以下是处理ACH文件所需的当前步骤:

  1. 用户/银行提出ACH转账请求。
  2. 转账在数据库中存储。
  3. 批处理作业在特定截止时间收集转账。
  4. 生成符合美联储规定的NACHA格式的ACH原始文件
  5. 在发送到美联储进行处理之前进行备份。
  6. 将文件发送至美联储进行处理。
  7. 从美联储接收ACH(RDFI)接收存放金融机构的返回或失败文件。
  8. 在数据库中更新状态。

典型的批处理程序通常会从数据库、文件或队列中读取大量记录,对数据进行相应处理,然后以修改后的形式写回数据。让我们来看看Spring Batch的解决方案是如何工作的。

Spring Batch是如何工作的?Spring Batch是如何工作的?

Source

首先,会调用JobLauncher,然后Spring Batch框架会通过一个或多个步骤并使用ItemReader读取源,使用ItemProcessor处理过程,并使用ItemWriter写入目的地来执行每个步骤。运行作业的进度存储在Spring Batch框架定义的表中,使用JobRepository,与业务表独立。它支持大多数关系数据库管理系统(RDBMS)。这提供了丰富的可重用功能,易于配置和可扩展的功能,大大缩短了开发时间。

Spring批处理框架的另一个好处是它利用了Spring编程模型,允许框架简化基础设施,并允许开发人员专注于业务逻辑。

使用Spring Batch时的其他建议

  • 在转移至目的地之前,使用适当的命名约定在本地生成和保留ACH文件,以避免数据丢失,特别是在基于云的环境中。此外,考虑在需要特别关注时,尤其是在基于云的环境中,为组织之间的文件传输考虑单独的作业。
  • 通过查看保留的数据类型以及其短期/长期使用,考虑数据保留政策。根据处理的交易类型定义数据保留期限,确保符合服务级别协议。
  • 使用JUnit测试框架在开发早期识别和修复缺陷,并自动化测试套件以在构建过程中执行。这确保只有在所有测试用例成功的情况下才进行部署。

结论

在专有工具许可费不断上涨、银行和金融服务领域的利润下降的挑战环境中,战略向开源开发的转变被证明是最具成本效益和高效率的解决方案。

推荐阅读: 28. Java在调用子类构造方法之前会先调用父类没有参数的构造方法,其目的是什么

本文链接: 一种征服ACH批量处理的现代开源技术