Skip to content

Commit e26a3ce

Browse files
author
dsyer
committed
BATCH-882: Highlights of 2.0
1 parent f05f8de commit e26a3ce

File tree

3 files changed

+217
-34
lines changed

3 files changed

+217
-34
lines changed

src/site/apt/features.apt

Lines changed: 52 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,15 @@
33
------
44
Dave Syer
55
------
6-
July 2007, February 2008
6+
July 2007, February 2008, January 2009
77

88
Spring 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

Comments
 (0)