Skyway Builder 6.2 Feature Preview – #4 Spring Web Flow – Visual Flow Editor
In features preview #3 I shared the new Spring Web Flow support in Skyway Builder 6.2, and I hinted at another feature related to Spring Web Flow that is also coming with Skyway Builder 6.2. Spring Web Flow is an excellent alternative to Spring MVC for implementing web applications, but unfortunately, authoring the flows can be a bit difficult because the flows are defined in XML. You need to learn the web flow schema in order to be able to define the flows of your application. Furthermore, it’s hard to visualize the application flows in XML format. What is needed is a flow editor that lets a developer define flows visually, and that’s what is provided with Skyway Builder 6.2.

The Spring Web Flow editor is one of Skyway Builder’s newest visual editors. The Skyway Builder flow editor is very similar to Skyway Builder’s action editor, except that you implement flows instead of operations. You start with an empty canvas which represents a single flow, and you drop different web flow states (i.e. view, decision, action, subflow and stop) onto the canvas. State transitions are defined by drawing lines between the states and specifying the event associated with the transition. Actions can be added to flows and states.
The biggest advantage of using Skyway Builder’s visual editor is that you can visually model the flow of the application. The application flow is inherently a diagram. While XML is a perfectly suitable format for storing the flow data, XML is not adequate for visualizing or authoring a flow. A developer would never take an XML file to a business analyst and say “here’s the flow of the application“. A visual representation of a flow is a better medium for developing, understanding, and communicating a flow. Whether the a flow is defined using a UML diagram, the back of a napkin, or in your head, it is very common for the flow of a web application to be visualized as a series of nodes, representing views, and lines connecting the nodes. This is exactly the visualization provided by Skyway Builder’s flow editor.
The flow diagram is directly tied to the XML file representing the flow. As a flow diagram is updated, the flow XML is also updated. Spring Web Flow is often regarded as a DSL for page flows. Unlike the other layers of a Spring web application (i.e. MVC, service, and data) where Skyway Builder needed to define a DSL, Skyway Builder is able to leverage the Spring Web Flow DSL. Skyway Builder persists the changes made to the flow diagram directly to the flow XML file.
Another benefit of modeling flows is that a diagram can guide a developer in the context of what the developer is trying to configure. For example, each flow state has a different set of configuration options that is defined by the Spring Web Flow XSD. A developer would need to reference the XSD to understand the available configuration options, but Skyway Builder’s flow editor will only present the developer with contextual configuration options that are available for the specific element of the flow they are configuring.
Spring Web Flow only defines the page flow of the application, and eventually, application logic existing elsewhere is going to be required. Using an expression language, a developer can make calls to other resources, and Skyway Builder’s flow editor adds content assist to facilitate the selection of those resources. For example, when you need to specify a type, the content assist will help you select a type from your project. When you need to call an operation from the service layer, the content assist will help you select a service and operation. The editor’s awareness of the other artifacts in your application makes it easier for a developer to leverage the other artifacts.
To stay in the loop on the upcoming 6.2 release, please follow us on Twitter or join the Skyway Community. As one of the many benefits of joining our community, you will automatically receive product announcements and updates.
Tags: Features, Skyway Builder 6.2, spring, spring web flow








March 23rd, 2009 at 9:12 am
[...] « Skyway Builder 6.2 Feature Preview – #2 Invoke Java Step (Inline) Skyway Builder 6.2 Feature Preview – #4 Spring Web Flow – Visual Flow Editor »Mar 23rdSkyway Builder 6.2 Feature Preview – #3 Spring Web Flow Support neyde | [...]