在多角色协同工作流中,多种角色往往以不同方式对同一类对象进行不同的操作,而且对应界面的呈现方式也可能不同。不同角色在处理同一类业务对象时,通常会出现如下问题:
角色r1,r2处理同一类业务对象
角色r1和r2对P1的操作仅有30%不同,若为r1、r2分别设计P1对象,又会导致冗余,因此,需要将两者合并,得到结果如下:
融合结果
在融合的页面中,P1同时可被r1和r2访问,这就要求在融合部分需要根据角色的权限动态地做出改变。被访问的对象由属性和可执行的操作组成,对属性的访问权限包括不可见、可见不可改和可改,而对操作的访问权限则为不可见和可操作。对角色的访问授权类似于下表:源:自~优尔·论`文'网·www.youerw.com/
资源 角色 属性p1 ... 属性pn 操作f1 ... 操作fn
r1 不可见 ... 可改 不可见 ... 可操作
r2 可见不可改 ... 可改 可操作 ... 可操作
表3.1 角色授权表
在上表中,每一个交叉点代表了角色ri对对应资源的访问权限,读角色访问控制根据授权交叉表实现,而授权交叉表的建立则依赖于前期对系统结构和行为的分析与建模。
2. 多条路径的交叉结点:
在Web系统开发中,在实现一条新的Web访问路径2时,发现与已有路径1之间存在一个交叉或汇合点(图3.2),或P2与P2'基本相同或者至少90%相同(图3.3),为消除冗余而将P2与P2’合并,得到新的公共结点P2。