osworkflow代码分析1:主要接口
这几天抽了点时间看了一下osworkflow 的源代码,简单对几个主要的接口作用进行分析。
1.com.opensymphony.workflow.Workflow 工作流的用户接口。
主要定义了用户对工作流的操作方法和用户获得工作流信息的方法。如doAction(long id, int actionId, Map inputs)方法可以执行工作流的Action并产生transaction;用户调用getAvailableActions(long id, Map inputs)可以获得知道工作流实例中符合条件的可以执行的Action。
2.com.opensymphony.workflow.WorkflowContext 工作流的Context接口。
只有两个方法,其中getCaller()获得调用者,setRollbackOnly()可以回滚Action造成的transaction。
setRollbackOnly()方法非常重要,可以在此方法中实现工作流数据与业务数据的事务处理。由于工作流引擎将流程数据与业务数据分离开管理,所以工作流数据与业务数据之间的事务处理往往比较困难,甚至有很多商业的工作流引擎都没有解决这个问题,造成软件上的漏洞。可惜在BasicWorkflowContext中并没有实现回滚时的事务处理,但实现起来应该不会很困难,在以后会单独考虑。
3.com.opensymphony.workflow.spi.WorkflowEntry 工作流实例的接口。
定义了获得工作流实例信息的方法。
4.com.opensymphony.workflow.config.Configuration 工作流配置接口。
获得osworkflw的配置信息和流程的定义信息, osworkflow中的例子就是使用此接口的默认实现。如果想让osworkflw与自己的系统更好的整合,这个接口需要自己实现。
5.com.opensymphony.workflow.loader.AbstractWorkflowFactory 流程定义的解析器。
osworkflow中提供了此抽象类的3种实现,最常用的是XMLWorkflowFactory,可以对编写的工作流定义xml文件进行解析。
6.com.opensymphony.workflow.spi.WorkflowStore 工作流存储接口。
实现此接口可以实现用多种途径保存工作流信息,jdbc,hibernate,ejb,memory.........
posted on 2007-08-03 09:52
Eric huang 阅读(300)
评论(0) 编辑 收藏 所属分类:
Osworkflow