The worker’s compensation board for major North American government had a problem. An early adopter of cloud computing, the organization had begun replacing its legacy systems with web-based solutions based on Microsoft’s .NET framework back in the early 2000s. It replaced its claims system in 2001 and began with its policy administration system in 2015. However, the organization was left with a missing piece; its Case Information System (CIS) was an ancient COBOL relic which remained on the IBM mainframes and had complex functionality that few individuals within the organization could still support. Further complicating the issue was the fact that it required both online and batch processing.
In the mainframe era, computing power was a much more scarce resource than today. Mainframe systems were, therefore, built around batch processes, allowing maximization of scarce computing resources and postponement of transaction processing to a time when the system was less taxed by users, e.g. overnight or on weekends. Modern programming languages where not developed with these limitations in mind and, consequently, for many years lagged behind COBOL and other languages of the mainframe era in their ability to handle batch processing. They lagged behind, that is, until the arrival of Spring Batch.
In 2006 Accenture collaborated with the creators of the Spring Framework to bring an open-source batch processing framework to Java. Over the next couple years, the implementation of Spring Batch at major companies worldwide proved the batch functionality of legacy systems could be replicated with a modern object-oriented programming language. Today Spring Batch is downloaded over 1.5 million times per year.
While Java has chosen to support native batch processing, Microsoft has chosen to support batch processing through stored procedures within SQL Server. This solution is less versatile and taxes the processing power of the database server.