bobmazelin的流程管理系统介绍和概念性设计(三)
最近一年多的时间我都在流程管理系统领域工作,虽然现在该项目处于停滞状态,但我仍然对流程管理领域充满希望.这一系列的随笔由bobmazelin和他的同事这段时间工作的经验积累而成,同时也是我们流程管理系统的介绍,如果有志同道合者随意发表自己的想法。
在上篇中,我介绍了通过设计资源视图来抽象企业流程中数据结构,在这篇中我和大家一起讨论一种特殊的资源---权限。很多系统中会涉及权限问题,我并不是权限设计方面的专家,所以这里所谈有不正确之处,还请大家指正。不同企业,不同行业,不同部门他们对组织内部权限的设计是不同的,但仍然可以对其进行分析而得出一些通用的“模式”,比如:通过组来管理权限。可以在系统中集成多种权限管理“模式”供用户选择。
我们在这方面考虑了两点:
1、流程管理系统的权限分为两块:一块是BPMs本身的权限,哪些人可以部署流程?那些人可以测试流程?
2、设计完成的流程中需要根据权限来分配任务的执行者(工作流模式中的资源模式之一)。
这两方面无论哪方面都可能会伴随不同组织而不同,于是我们借助我们资源视图的能力,提供给使用者自主设计权限结构的权力。
下图是一个通过组管理员工权限的简单设计例子,其中Employees关系的IsReverse属性为true。通过这个设计方案表面了每个Employee都只能加入一个Group,而每个Group可以拥有多种Role。
当然,在实际组织中其权限不会如此简单,可以在此基础上扩展。比如:增加GroupOfEmployee来管理Employee和Group之间的多对多关系;增加Group之间的父子关系(也是包含的一种);增加Role之间的父子关系等等。
通过类似的设计过程可以适应不同组织对权限管理的要求;另外,流程管理系统可以设置自身的权限管理为用户设计的某个资源视图中,并自动应用到流程系统的使用上。
由权限可以扩展到流程中大部分资源的设计过程,下篇我将介绍资源和数据的映射问题-即资源的部署。