with the user. Conversations can execute in parallel without intruding on each other, and
when the conversation has finished, all allocated resources are automatically cleaned up.
Implementation Agnostic
Secondly, Spring Web Flow is deliberately abstracted away from the Servlet specification.
The core artifacts within Spring Web Flow are flows, states, actions, and views. As you will
see, there is nothing web-specific about a flow definition; the flow itself could be describing
a set of web pages, a set of windows in a GUI, or even the communication between disparate
systems. At no point within Spring Web Flow are you presented with an HttpServletRequest
or an HttpServletResponse.
Accessible Lexicon
Thirdly, Spring Web Flow enables communication. You will find the core model simple, and
the terminology used is readily accessible to nontechnical people. Tools already exist (like
the Spring IDE Web Flow editor for Eclipse (http://www.springide.org/project)) that make
XML-based flow definitions easily understood, thus bridging the gap between design and
implementation.
Figure 11-2 shows a screenshot of the Spring Web Flow plugin for Eclipse.
Figure 11-2.Spring Web Flow plugin for Eclipse
312 CHAPTER 11 ■INTRODUCTION TO SPRING WEB FLOW