Batch Applications for the Java Platform is defined as JSR 352, and the complete specification can be downloaded.
Batch processing is the execution of a series of jobs and is suitable for noninteractive, bulk-oriented, and long-running tasks. Typical examples are end-of-month bank statement generation, end-of-day jobs such as interest calculation, and ETL (extract-transform-load) in a data warehouse. These tasks are typically data or computationally intensive, execute sequentially or in parallel, and may be initiated through various invocation models, including ad hoc, scheduled, and on-demand.
This specification defines a programming model for batch applications and a runtime for scheduling and executing jobs. Key concepts of a batch reference architecture are shown in Figure 15-1 and explained following it.
Figure 15-1. Key concepts of a batch reference architecture
A job is an entity that encapsulates an entire batch process. A job is typically put together with a Job Specification Language and consists of one or more steps. The Job Specification Language in the Java EE 7 platform is implemented with XML and is referred to as “Job XML”.
A step is a domain object that encapsulates an independent, sequential phase of a job. A step contains all of the information necessary to define and control the actual batch processing.
JobOperator provides an interface to ...