This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
Some information about JSR 352 - Batch Applications for the Java Platform:
Batch processing is a very common need in programming. In Java, for simple processing, usually a standalone program is developed. For more complex needs, custom solutions are developed. A typical solution is to have an application submit jobs/tasks and then a separate process called JobHandler/JobManager (which would keep waiting for jobs to be submitted) would execute these jobs via separate threads for each of the jobs. The JobManager also has to monitor the job execution process and report the status of the job. There are much more complex scenarios in the real-world where a chained notion of jobs is needed i.e one Job dependant on the other job to run and so on.
Everytime, a custom solution is developed to address the needs. There is no standardization of such solutions in the Java world even though this is a very common need.
JSR 352 has been created to precisely address this problem. This JSR is also known by the name of Batch JSR. One of the important goals of this JSR is to target this JSR for both Standard and Enterprise platforms.
The concepts involved are Job Manager, Job, Steps, Chunks along with transaction support and exception handling. A Job can have many Steps. We can chain the Steps - either as one after other or as decision steps. These are defined in a xml file known as the Job XML. Annotations are used throughout to mark and write code.
This JSR passed the Review Ballot in Nov 2011. The package name to be used is "javax.batch".