web工作流管理系統開發之五 開源osworkflow之用戶系統改造

前言:

      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中的功能來做用戶權限判斷。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章