While analysts and pundits have been talking about the real-time enterprise for almost a decade now, many organizations still rely on batch processing to move data between applications.
And that's okay. In fact, there's still a place for batch processing within the SOA world.
As ZapThink's Ron Schmelzer put it in a recent note, batch processing, often thought of as an artifact left over from the legacy days, plays a vital role in systems that may have real-time processing up front. As he observed, "behind the real time systems that power the real time enterprise... are regularly-updated back office business systems. Batch processes remain essential for one key reason: it is simply not efficient to regenerate a complete forecast or business plan every time the business processes a single event such as an incoming customer order."
However, batch jobs -- at one time predictable in their frequency, occurring noghtly or even quarterly, may need to be available on more of an ad-hoc, on-demand basis. SOA can play a role here, invoking batch jobs as a service, Ron explains:
"Enterprises can evolve batch workloads from standalone data center operations to components that are intrinsic to composite, Service-Oriented Business Applications. Where workload automation and batch processing were once arcane tasks relegated deep in the organization, they become critical services delivered as part of the Enterprise Architecture."
Gartner's Dale Vecchio also said there are times when it makes sense to apply SOA to batch applications:
"As organizations continue to evolve their application portfolios to leverage packaged software and new development, business rules will move to a myriad of places. Reusing those newly located business functions in batch jobs can make sense. For example, organizations faced with changes driven by government legislation often struggle with how to implement the changes, particularly when the data in question is processed in a batch mode."
The bottom line is SOA is technology agnostic, and is designed to create flexible services from any and all computer infrastructures -- be they real time or batch mode.