Open Source PageFlow (a.k.a. State Machine) Writte

转载:http://www.manageability.org/blog/stuff/open-source-statemachine-for-user-interfaces-written-in-java

 

  1. Shocks - Shocks is a departure from previous servlet framework technologies. It is conceptually unique in that it does not attempt to implement the "MVC" design pattern. It uses a next-generation architecture which cleanly separates the components into DataSource, Action, Workflow and Presentation objects. At the core of the framework, Shocks contains a lightweight workflow engine built specifically to accomodate J2EE servlet-based web applications. This engine uses workflow metadata which is generated by the developer in a simple XML configuration file.
  2. OpenEmcee - The "OpenEmcee Microflow Engine for Java" is an open source framework for developing flexible, manageable, and adaptable applications. OpenEmcee differs from other MVC type frameworks, such as Struts, in that it is deployment neutral. By that, we mean that the system is appropriate for using in a great breadth of application types. Desktop apps, server applications, EJB's, CORBA services, near-time batch processing systems, messaging systems (JMS), and many other types of applications can be benefit from the structure our framework provides.
  3. SMC - The State Machine Compiler. Now you put your state diagram in one file using an easy-to-understand language. SMC generates the state pattern classes for you. No more hand-maintained transition matrices. No more widely scattered switch statements. Instead, the state diagram is in one place, coded directly from the picture to the SMC language and is easily maintained.
  4. Blissed - Blissed is a very small framework to assist in the creation, management and execution of processes and states. Blissed is not intended to be useful on its own, but rather may support a larger workflow system or other process-based application.
  5. jZonic - Zonic is a web application framework that consists of many parts including a workflow engine.
  6. UniMod - UniMod is a Java development framework that utilizes Finite State Machine approach. UniMod allows to design application logic with a help of set of State Diagrams, generate Finite State Machine XML description and then "run" this XML description in UniMod runtime environment.
  7. jStateMachine - Grand daddy of these however for some reason taken out of circulation! The author apparently would like to cash in on his work (can't blame him!). Anyway, if you're one of the lucky few who downloaded the original version (I did), be comforted in this statement found in the author's new website: "With our JStateMachine application framework you will be able to create user interfaces for your applications up to 40% faster."
  8. Struts Workflow Extension - Prevent the user from accidental double-submits, when hitting the browser's reload button; prevent the user from entering a sequence of actions in the middle, while you expect him to execute them in a pre-defined order; support the implementation of generic action sequences that can be reused in various contexts; cleaning up session attributes, when the user finishes or breaks out of a sequence of actions; prevent the user from breaking out of a sequence of actions you don't want him to
  9. BeeHive Page Flow - Java Page Flow is built upon a Struts-based Web application programming model. Java Page Flow leverages the power and extensibility of Struts while also eliminating the difficulties and challenges of building Struts-based applications.
  10. Commons Workflow - The Workflow project provides an engine that manages and executes scripts, codified in XML.
  11. WebFlow Navigation Manager (WFNM) - WebFlow Navigation Manager (WFNM) is a lightweight J2EE web framework, that can be used on top of any other J2EE web framework or even with servlets and JSPs, that allows: Webflow definition, server side navigation history and automatic session cleaning.
  12. Spring Web Flow - This library provides web flow functionality for the Spring framework. A web flow captures the page flow in (part of) a web application using a simple XML definition, allowing you to split a large application into several parts.
  13. Cocoon Control Flow - Cocoon has advanced control flow, the ability to describe the order of Web pages that have to be sent to the client, at any given point in time in an application. Traditional Web applications try to model the control flow of a Web application by modeling the application as a finite state machine (FSM). For simple Web applications, this model works fine. However, as the application grows, the number of states and transitions between them grows as well, and it becomes hard to visualize what's happening in the application.
  14. Struts Flow - Struts Flow is a port of Cocoon's Control Flow to Struts to allow complex workflow, like multi-form wizards, to be easily implemented using continuations-capable JavaScript. It provides the ability to describe the order of Web pages that have to be sent to the client, at any given point in time in an application. Struts Flow uses a low-impact integration method that allows an existing Struts application to use Struts Flow along side traditional Struts components like Actions and ActionForms.
  15. Javaflow - Jakarta Commons implementation of continuations in Java.
  16. Lakeshore - Lakeshore is a component based web framework that borrows heavily on the ideas present in Seaside 2 and Borges.
  17. SCXML - SCXML provides a generic state-machine based execution environment based on Harel State Tables. SCXML is a candidate for the control language within multiple markup languages coming out of the W3C (see Working Draft for details). Commons SCXML is an implementation aimed at creating and maintaining a Java SCXML engine capable of executing a state machine defined using a SCXML document, while abstracting out the environment interfaces.
  18. Rhino in Spring - Rhino in Spring is a project that intends to integrate Mozilla Rhino JavaScript interpreter, the interpreter for the best (in our opinion) dynamic language on the Java platform with Spring Framework. the project delivers a controller component for Spring MVC that allows complex control flows spanning several webpages in web applications to be expressed as a single structured algorithm in JavaScript, putting the rich set of control flow structures and function reusability of a full-blown language.
  19. ECharts - ECharts is a state machine-based programming language for event-driven systems derived from the standardized UML Statecharts language. ECharts supports hierarchical state machines, concurrent machines and a graphical syntax. In addition ECharts supports a simple textual syntax, machine reuse, multiple transition priority levels to minimize non-determinism, machine arrays, and a new approach to inter- and intra- machine communication.

你可能感兴趣的:(spring,Web,mvc,workflow,struts)