SpringOne 2GX 2011

Chicago, October 25-28, 2011

Magnificent Mile Marriott
Downtown Chicago
540 North Michigan Ave.
Chicago, Illinois   60611
1 (800) 228-9290
[ Map it ]

Dave Syer

Lead of Spring Batch, SpringSource Principal Consultant

Dave Syer
Dr David Syer is the technical lead on Spring Batch, the batch processing framework and toolkit from SpringSource. He is an experienced, delivery-focused architect and development manager. He has designed and built successful enterprise software solutions using Spring, and implemented them in major financial institutions worldwide. David is known for his clear and informative training style and has deep knowledge and experience with all aspects of real-life usage of the Spring framework. He enjoys creating business value from the application of simple principles to enterprise architecture. David joined SpringSource from a leading risk management software vendor where he worked closely with SpringSource on a number of projects. Recent publications have appeared in Balance Sheet, Operational Risk and Derivatives Technology.

Presentations

Introducing Spring Batch

This presentation will introduce the exciting new Spring Batch project by example. Attendees will explore interesting cases of early adoption from clients of Accenture and Interface21 to learn the problems Spring Batch solves and the value it provides.

Attendees will see examples of typical batch processing patterns, and gain insight into the details of the enterprise eco-systems that Spring Batch has become a part of. Concrete examples include optimization of high-volume processing applications, flat-file processing, batch reporting and management applications, offline report production.

Many applications within the enterprise domain require bulk processing to perform business operations in mission critical environments. These business operations include automated, complex processing of large volumes of information that is most efficiently processed without user interaction. These operations typically include time based events (e.g. month-end calculations, notices or correspondence), periodic application of complex business rules processed repetitively across very large data sets (e.g. insurance benefit determination or rate adjustments), or the integration of information that is received from internal and external systems that typically requires formatting, validation and processing in a transactional manner into the system of record. Batch processing is used to process billions of transactions every day for enterprises.

Inside Spring Batch - What Makes it Tick?

This presentation will give participants a chance to see the details of Spring Batch internals from the perspective of its creators. This will be of interest to anyone using Spring Batch and wanting to know more about how it works, and equally to those who are framework developers and want to see a few tricks.

The way the difficult framework issues have been addressed will be examined, along with the design of the Spring Batch domain model(s). We will look at topics such as:

  • Separation of business logic separate from framework / execution environment
  • Stateful retry, a previously processed item and deciding what to do based on whether it has previously failed
  • Resource management, for example, how to guarantee to close a file handle without the application developer needing to know explicitly that there even was a file handle.
  • Automatically managing the lifecycle of stateful objects tied to the scope of a step execution
  • Separation of job configuration from execution environment

We will show how Spring Core features such as custom scopes, namespaces and templates have been used in Spring Batch to address some of these requirements. We will also show how the use of a domain-driven approach to the design of Spring Batch has brought benefits to the product generally.

The initial release of Spring Batch provides an Infrastructure layer in the form of low level tools. There is also a simple Container application, using the infrastructure in its implementation. The container provides robust features for traceability and management of the batch lifecycle. A key goal is that the management of the batch process (locating a job and its input, starting, scheduling,restarting, and finally processing to created results) should be as easy as possible for developers.