【讨论】【工作流】由资源模式中的“权限分配”想到资源结构
2008-10-17 10:58
239 查看
最近正在向PE中加入资源模式的控制,在测试权限分配模式时,发现了资源结构的问题,在此和大家分享、讨论。
首先简单解释一下权限分配模式:即参与活动的人,由其权限决定。
比如:审批流程中的审批活动必须由经理来完成,其中经理是“权限”概念的一种。
这个模式本身不复杂,大部分工作流系统都支持,PE当然不能不支持...^_^.....
但是,如果连带思考资源的结构时,就会发现问题。
关键是,参与者和权限之前的关系并不是多对一这么简单的关系,不同企业定义他们之间的关系不同,一般来讲,至少是多对多的关系;
即某个参与者拥有多重权限,而每种权限可以分配给多个参与者。把这种关系映射到数据库模式中,大家都知道需要3个表来维护,比如:User,RoleOfUser,Role。
这样,RoleOfUser就成为了User和Role之间的连接者。既然RoleOfUser在数据库中实际存在的,那么它在流程资源中存在吗?这个问题很重要.
如果不存在,RoleOfUser就不在流程系统的控制中,这样Role和User之间的关系对于流程系统等于是没有;那么它就应该存在。
有了RoleOfUser这个资源,上面的这个模式就不那么简单了。试想,流程设计者想表达的是,只有经理级别的参与者才能审批,但是经理和参与者之间还有个中间人,即RoleOfUser。如此,流程设计者就必须把表达方式改为:只有RoleOfUser的Role是经理,同时RoleOfUser的User是某某时,才能审批。
虽然,通过这种方式的确可以实现权限分配模式;但从优雅和简洁的角度看,这个解决方案并不理想。如果哪位有更好的想法,请不吝赐教。
首先简单解释一下权限分配模式:即参与活动的人,由其权限决定。
比如:审批流程中的审批活动必须由经理来完成,其中经理是“权限”概念的一种。
这个模式本身不复杂,大部分工作流系统都支持,PE当然不能不支持...^_^.....
但是,如果连带思考资源的结构时,就会发现问题。
关键是,参与者和权限之前的关系并不是多对一这么简单的关系,不同企业定义他们之间的关系不同,一般来讲,至少是多对多的关系;
即某个参与者拥有多重权限,而每种权限可以分配给多个参与者。把这种关系映射到数据库模式中,大家都知道需要3个表来维护,比如:User,RoleOfUser,Role。
这样,RoleOfUser就成为了User和Role之间的连接者。既然RoleOfUser在数据库中实际存在的,那么它在流程资源中存在吗?这个问题很重要.
如果不存在,RoleOfUser就不在流程系统的控制中,这样Role和User之间的关系对于流程系统等于是没有;那么它就应该存在。
有了RoleOfUser这个资源,上面的这个模式就不那么简单了。试想,流程设计者想表达的是,只有经理级别的参与者才能审批,但是经理和参与者之间还有个中间人,即RoleOfUser。如此,流程设计者就必须把表达方式改为:只有RoleOfUser的Role是经理,同时RoleOfUser的User是某某时,才能审批。
虽然,通过这种方式的确可以实现权限分配模式;但从优雅和简洁的角度看,这个解决方案并不理想。如果哪位有更好的想法,请不吝赐教。
相关文章推荐
- Standalone模式下Spark任务资源分配
- WIN2003组模式下用户权限分配详解
- 【原】Spark不同运行模式下资源分配源码解读
- 设置工作流任务的分配对象和权限为一个用户组
- pureMVC与设计模式之一. 结构与工作流
- PHP设计模式之工厂模式(权限分配)
- Feekood开发环境介绍(3)-- 资源权限分配
- 资源控制(资源分配),访问控制(权限控制)
- pureMVC与设计模式之一. 结构与工作流
- [Spark内核] 第31课:Spark资源调度分配内幕天机彻底解密:Driver在Cluster模式下的启动、两种不同的资源调度方式源码彻底解析、资源调度内幕总结
- 嵌入式系统软件结构分析与资源分配
- Citrix xendesktop静态分发模式下合理管控分配虚拟桌面本地管理员权限
- 【工作流】PE中的资源模式的实现方式
- Hive做数据仓库,对Hadoop Hive 的多用户的资源分配和权限管理 (Hortonworks HDP2.2 hadoop 2.6)
- PMP学习笔记(1)工作分解结构-资源分解结构-职责分配矩阵-资源日历
- windows server 2012 AD 活动目录部署系列(四)用户资源的权限分配
- 第31课: Spark资源调度分配内幕天机彻底解密:Driver在Cluster模式下的启动、两种不同的资源调度方式源码彻底解析、资源调度内幕总结
- 用树形结构分配权限
- 工作流模式每个工作流引擎都会支持多种方式的表单。目前大家讨论到的大概有三种。 动态表单 外置表单 普通表单