时间:2016-02-25 10:55 文章来源:http://www.lunwenbuluo.com 作者:李阳,刘更,王海伟, 点击次数:
产品研发工作流的应用对象是工作流实例。工作流系统中有工作流模板和工作流实例两个重要的概念。工作流模板由多个任务组成,并指定了任务的执行次序;工作流实例根据工作流模板生成,作用于具体的对象。一个工作流模板对应多个工作流实例,产品研发工作流访问控制的对象是工作流实例。
例如,针对减速器噪声分析定义的工作流模板,针对不同的减速器生成相应的工作流实例,然而不同减速器的噪声分析所处理的数据不同,参与人员也可能不同,因此可能采用不同的访问控制策略。
其中:权限集、用户集、进程集和任务步集是模型的基本元素,能够满足工作流访问控制的基本要求;用户属性集、权限属性集、约束集使模型能够适应更多的安全策略。
下面解释模型中的元素和关系。小写正体表示元素的符号,在讨论元素之间的关系时,以元素对应符号的斜体表示变量,以元素符号及其下标表示一个具体实例。
(1)任务步:任务及其执行状态的二元组任务(t)是工作流的最小元素,任务在其生命周期中存在多种状态(s),如执行状态、挂起状态、完成状态等。在工作流系统中,任务状态及其变迁规则是预先定义的。任务与任务状态的关系是多对多关系,一个任务存在多个状态,但在某一时刻,一个任务只能处于一个状态,一个状态可以对应多个任务。所有任务构成任务集(T),所有状态构成状态集(S),所有任务步(ts)构成任务步集(TS)。集合T,S和TS满足TS=T×S。(1)式中“×”表示集合的笛卡尔积。任务步的表达式定义为ts:?t,s?。(2)式中t为任务的标识符,在工作流系统中可采用任务ID,以保证任务标识的唯一性。为了使表达更为清晰,后文以任务名称作为任务标识符。
(2)客体属性:与客体相关的访控属性访问控制中的客体(o)是包含信息的被动实体,如文件、数据等。所有客体构成客体集(O)。利用客体属性能够将客体集划分为多个子集。例如,客体属性集中包括所属域(dom)和密级(sec),则{o|o.dom=“CAD”且o.sec=“秘密”}表示所属域为“CAD”且密级为“秘密”的客体子集。
(3)权限:操作与客体的二元组操作(h,本文用operation的近义词handle的首字母表示操作)指对客体产生某种效果的作用方式,如读、写等。所有操作构成操作集(H),所有权限(p)构成权限集P。集合H,O和P满足P=2H×O。(3)
权限集的表达以幂集的形式给出,说明权限可表现为集合。在现代信息系统中,由于数据种类繁多且数量巨大,难以针对每一个客体设置权限,权限一般表现为集合形式。
例2权限p1:?update,{o|o.dom=“CAD”且o.sec=“秘密”}?的含义是,对所属域为“CAD”且密级为“机密”的客体进行修改(update)。
权限与任务步是多对多的关系,一个权限可能与多个任务步关联,一个任务步可能与多个权限关联。通过权限与任务步的关联使权限的有效性受到任务步的限制,从而保证工作流系统中权限流与任务流的一致。包含任务步信息的权限表示为p[ts]。(4)
例3包含任务步信息的权限p1[?t=“齿轮系建模”,s=“执行”?]的含义是,只有在任务“齿轮系建模”进入“执行”状态且在完成该任务的工作中,才能对所属域为“CAD”且密级为“机密”的客体进行修改(update)。
(4)权限属性:与权限相关的访控属性权限属性(pa)依据具体的访问控制需求而设置,所有权限属性构成权限属性集(PA)。例1中的属性un(可使用次数)即为一种控制权限使用的属性。若存在pa1,pa2,…,pan,则包含这些属性信息的权限表示为p[ts,pa1,pa2,…,pan]。(5)权限与任务步之间存在匹配关系,这种关系可以从两个方面解释:①将授权步视为权限的属性,要求权限只能在任务步相关的工作中使用;②每个授权步包含多个权限,这些权限是完成任务步相关工作时必需的权限,体现在任务—权限—用户的配置工作中。式(5)采用了第一种解释。
例4权限p2:?create,{o|o.dom=“CAD”且o.sec=“秘密”}?[ts:?“齿轮系建模”,“执行”?,un=1],其含义为:在完成任务“齿轮系建模”时,可以只创建一个“秘密”级的“CAD”文件。
(5)用户:能够在某个任务中承担部分或全部工作的人力资源所有用户(u)构成用户集(U)。用户与权限之间是多对多的关系,一个用户可以被授予多个权限,一个权限可以被授予多个用户。权限的授予可表示为函数Booleanassign(u,p)。(6)式中Boolean表示该函数返回一个布尔值,若函数返回True,则表示用户u拥有权限p;若返回False,则表示授权失败。
函数Booleanhave(u,p)(7)表示用户u是否拥有权限p。该函数返回一个布尔值,当返回True时,表示用户u拥有权限p;当返回False时,表示用户u不拥有权限p。
例5表达式have(u1,p1[?t=“齿轮系建模”,s=“执行”?])=True的含义是,用户u1拥有权限p1,该权限只有在任务“齿轮系建模”进入“执行”状态且用户执行的访问用于完成该任务时,才能使用该权限。
(6)用户属性:与用户相关的访控属性所有用户属性(ua)构成用户属性集(UA)。用户与用户属性之间是多对多的关系。利用客体属性能够将用户集划分为多个子集。例如,用户属性集中包括部门(dept)、角色(role)和密级(sec),则{u|u.dept=“结构强度部”,u.role=“结构工程师”,u.sec=“秘密”}表示所属部门为“结构强度部”、角色为“结构工程师”,且密级为“机密”的用户子集。
(7)进程:具有独立功能的程序关于某个数据集合的一次运行,是代表用户完成访问的活动实体进程(proc)代表用户完成访问的过程,所有的进程构成进程集(PROC)。进程与任务步之间是一对一的关系,即在任一时刻,一个进程只能与一个任务步关联。用户与进程之间是一对多的关系,一个用户能够创建多个进程,一个进程只能属于一个用户。工作流中的进程在执行数据访问时,应提供其相应的信息。进程表示为proc[u,ts]。(8)
进程的任务步信息说明该进程是为完成相应任务而创建的。
用户在完成工作时,需要对数据集进行大量访问,这些访问由进程来完成,访问的形式为access:?proc[u,ts:?t,s?],h,o?。(9)其含义是:由用户u创建的进程proc为完成任务t服务,任务t此时的状态为s,需要对客体o执行操作h。
联系方式
随机阅读
热门排行