OSWorkflow as Object State Machine
Tuesday, November 14, 2006 2:26Image via Wikipedia
OSWorkflow is a very simple and flexible workflow engine. Developers including me really like its simplicity. One can write very simple XML’s for steps, actions, conditions and functions; and it is done. OSWorkflow can be easily integrated with very common frameworks like spring,acegi,hibernate.intergation project
What is next? In my simple example project you can see at least one persistent object with an attribute like status. With or without any workflow engine this property shows the step of that object.
public interface WorkFlowCoreService {
/** simply put className,objectID,url,property to propertySet */
long startWorkflow(int initialAction, String className, Long objectID, String property);
/**To the action in workflow and set property to new value for the object*/
void doAction(long workFlowId, int actionId) throws WorkflowException;
}
- Draft
- Send to approval
- Accepted
- Rejected
But let’s use this property only for the read out of WF engine. and only change its value when its step is changed by the engine.
What you will get ?
Simplicity: Since the state changes are done as workflow state changes, it will be clearer and simpler.
Workflow Engine: As your projects are getting close to end, you can expect approval and states with more frequent changes and additions. If you use a workflow engine it will be more manageable.
Abstraction: Your state change business (send mail to him, increase those values) will be more hidden from any other mechanisms.
Ref:
http://opensymphony.com/osworkflow
https://springmodules.dev.java.net/
Related posts:
![Reblog this post [with Zemanta]](http://img.zemanta.com/reblog_e.png?x-id=2f93007b-4259-45a2-97de-dd79ddda43f4)


