webreport

博客园 首页 新随笔 联系 订阅 管理

前言:

      osworkflow是个开源的工作流引擎,采用的是有限状态机的模型。内置有osuser这个用户系统,来处理用户权限相关的部分。但是功能很弱,只有用户表,用户组表,即简单的将用户划分给用户组。在定义流程的时候,可以将权限处理给一个具体的用户,也可以给一个用户组。 

缺点:

功能太过简单,不利于扩展,也不利于和用户系统集成,还没有开源的源代码。

 
改造方案:
      将osuser去掉,重新编写一套用户系统,此用户系统只在工作流系统中使用,因此数据权限等从简。

      保留使用osuser.xml文件的配置,修改成fcuser.xml,此配置文件采用xml格式,配置具体执行和数据库交互的实现类,便于扩展各种数据库的个性化函数,sql,关键字的不同写法。

      采用映射表的方式,和实际用户系统的表关联,因为用户系统要集成工作流,一般都有自己的用户组织机构管理系统。

      工作流系统必须要和用户系统的用户权限系统无缝集成,所以没有必要再做一套用户系统,直接将用户系统的数据映射过来,达到集成的目的。如果不采用表数据的映射,也可以编写实现类,实现UserProvider接口,将用户系统已经有的方法关联过来实现。

      用户映射表示意图:

表结构:

用户表,用户角色表,用户群组表

 

这几个表为演示系统使用,真正和用户系统集成的时候,采用映射表映射到用户系统的表。或者用户有自己编写好的用户权限等系统,也可以通过实现UserProvider接口的方式,将用户系统和工作流的用户系统集成到一起。

fcuser映射表:

一个简单的fcuser.xml映射表图例

 

 cn.com.fcsoft.user.provider.jdbc.JDBCUserProvider 为UserProvider的指定实现类。

 

用户系统的UML图:

 

 

主要类功能描述:
UserManager为对外提供的用户系统的实现类,流程引擎实现类关联这个类,来实现用户系统的一切功能;
UserConfig为单例模式,主要读取fcuser.xml文件的内容

UserConfiguration获取映射表配置信息

UserProvider接口,提供所有的用户系统功能,实现类可以根据数据库的不同选择各自的个性化实现类,通用的为JDBCUserProvider。
      用户不使用表结构映射时,可以编写自己的实现类,实现UserProvider接口来实现用户权限系统。     
UserException,所有用户系统的抛出的异常。

User,UserImpl 用户接口,用户接口实现类
Role,RoleImpl 角色接口,角色接口实现类
Group,GroupImpl 用户群组,用户群组的实现类  

通过改写这个用户系统集成到工作流引擎中,更利于和用户系统的结合。同时别忘记改写osworklfow的引擎包util中的各种和用户权限相关的类,调用userManage中的功能来做用户权限判断。

 

相关链接:

web工作流管理系统开发之一 工作流概念
web工作流管理系统开发之二 工作流引擎
web工作流管理系统开发之三 可视化流程设计器
web工作流管理系统开发之四 集成工作流与自定义表单
web工作流管理系统开发之五 开源osworkflow之用户系统改造
web工作流管理系统开发之六 表单权限与流程的权限控制 
web工作流管理系统开发之七 最新的dtd格式校验修改 
web工作流管理系统开发之八 开源osworkflow之任务管理 

posted on 2009-09-16 11:28  web报表  阅读(16922)  评论(6编辑  收藏  举报