33 ------
44 Dave Syer
55 ------
6- July 2007, February 2008
6+ July 2007, February 2008, January 2009
77
88Spring Batch Features and Roadmap
99
10- * 1.0 Features
10+ See also {{{migration/2.0-highlights.html}details of main themes of 2.0}}.
1111
12- The following features are supported by Spring Batch 1.0:
12+ * 2.0 Features
13+
14+ The following features are supported by Spring Batch 2.0:
1315
1416** Optimisation and Infrastructure
1517
@@ -35,15 +37,13 @@ Spring Batch Features and Roadmap
3537 * ItemWriter abstraction and implementations for flat files and xml
3638 (the Sql case is just a regular Jdbc Dao).
3739
38- * ItemReader and ItenWriter implementations are generally
39- ItemStreams. An ItemStream encapsulates stream-like behaviour that
40- is needed for transaction synchronization (mark/reset). It also
41- provides the facility to be restored from a persistent
42- ExecutionContext so that jobs can fail and be restarted in
43- another process.
40+ * ItemReader and ItemWriter implementations are generally
41+ ItemStreams. An ItemStream provides the facility to be restored
42+ from a persistent ExecutionContext so that jobs can fail and be
43+ restarted in another process.
4444
4545 * For modifying an item before it is written, there is the
46- ItemTransformer abstraction. ItemTransformer and ItemWriter are the
46+ ItemProcessor abstraction. ItemProcessor and ItemWriter are the
4747 two most common application developer touch points.
4848
4949** Core Domain
@@ -58,14 +58,25 @@ Spring Batch Features and Roadmap
5858
5959 * Step is the corresponding point for a StepExecution. Step is the
6060 main strategy for different scaling, distribution and processing
61- approaches. The 1.0 release contains implementations for in-process
62- execution (single VM). See below (under Execution).
61+ approaches. The 2.0 release contains implementations for in-process
62+ execution (single VM), and a PartitionStep as part of an SPI for
63+ remote execution of steps. See below (under Execution).
6364
6465 * The most commonly used implementation of Step is a wrapper for an
6566 ItemReader and an ItemWriter. There is also a special
6667 implementation that wraps a Tasklet, which can be used to execute a
6768 single action like a stored procedure call.
6869
70+ * FactoryBeans are provided for creating Step instances with the
71+ most common features. See in particular
72+ FaultTolerantStepFactoryBean for a factory that provides convenient
73+ configuration points for skips and retries.
74+
75+ * Late binding of environment properties, job parameters and
76+ execution context values into a Step when it starts. A custom
77+ Spring Scope takes care of deferring the initialization of
78+ components until a step is executing.
79+
6980** Job Execution and Management
7081
7182 * A simple JobLauncher to launch jobs. Start a new one or restart
@@ -80,10 +91,6 @@ Spring Batch Features and Roadmap
8091 represenation of the state of the job - can be augmented by
8192 developers).
8293
83- * StepHandlerStep - uses an ItemReader to obtain the next record to
84- process, and hands it to an ItemWriter if it is not null. It can
85- run a StepExecution in the same process (VM).
86-
8794 * Adjustiable exception handling strategies allowing fault
8895 tolerance through skipping bad records.
8996
@@ -100,22 +107,35 @@ Spring Batch Features and Roadmap
100107 * A set of listener callbacks that users can implement and register
101108 with a Step to add custom behaviour like footer records.
102109
110+ * Remote chunking of steps. The step proceeds as in the single JVM
111+ case, but each chunk is passed on to the remote processes. The
112+ remote execution is an asynchronous listener of some sort
113+ (e.g. message-driven component or web service). Implemented using
114+ {{{http://www.springsource.org/spring-integration}Spring
115+ Integration}} in a Batch sub-project (spring-batch-integration).
116+
117+ * Partitioning - steps execute concurrently and optionally in
118+ separate processes. Feedback loop between consumers and producers
119+ to prevent overflows. Spring Batch provides an SPI for Partitioning
120+ and an implementation for local (multi-threaded, single JVM)
121+ execution.
122+
123+ * OSGi support. Deploy the Spring Batch framework as a set of OSGi
124+ services. Deploy individual jobs or groups of jobs as additional
125+ bundles that depend on the core. Spring Batch JAR files are also
126+ OSGi bundles, and can be deployed easily in
127+ {{{http://www.springsource.com/dmserver}SpringSource dm Server}}.
128+
129+ * Non-sequential models for Job configuration (branching and
130+ descision support).
131+
103132** Samples
104133
105134 * A range of samples is available as a separate module. They all
106135 use a common simple configuration and extend in various ways to show
107136 the different features of the Execution module.
108137
109- * Roadmap (Beyond 1.0).
110-
111- * Remote or distributed execution of steps. The step proceeds as in
112- the single JVM case, but each chunk is passed on to the remote
113- processes. The remote execution is an asynchronous listener of some
114- sort (e.g. message-driven component or web service).
115-
116- * Asynchronous pipeline processing - steps execute concurrently and
117- optionally in separate processes. Feedback loop between consumers
118- and producers to prevent overflows.
138+ * Roadmap (Beyond 2.0).
119139
120140 * Issue tracking - a job is not finished until all issues with its
121141 executions are resolved. Spring Batch can provide hooks to
@@ -127,13 +147,11 @@ Spring Batch Features and Roadmap
127147 richer options for detailed outcome reports), but also who has
128148 executed the job, what changes they made to runtime parameters.
129149
130- * OSGi support. Deploy the Spring Batch framework as a set of OSGi
131- services. Deploy individual jobs or groups of jobs as additional
132- bundles that depend on the core.
133-
134- * Non-sequential models for Job configuration (branching and
135- descision support).
150+ * SpringSource Enterprise Batch
136151
137- * No Plans Yet to Support
152+ * The plan is for {{{http://www.springsource.com}SpringSource}} to
153+ provide an enterprise product that deals with runtime concerns, as
154+ opposed to programming and configuration.
138155
139- * Triggering.
156+ * Triggering. Other runtime concerns, like monitoring and managemtn
157+ of jobs and historical executions.
0 commit comments