论文网
首页 理科毕业电气毕业正文

语境判定树建模与工作流设计验证

  • 投稿呐嘟
  • 更新时间2015-09-11
  • 阅读量751次
  • 评分4
  • 63
  • 0

严悍,王宇,丁锋,朱文,许昌年

(南京理工大学计算机科学与工程学院,江苏南京210094)

摘要:针对多角色协同交互式工作流系统中多重语境约束交互操作导致冗余操作和错误操作的问题,提出语境判定树CDT模型。采用元模型建模方法给出CDT建模规范,利用令牌建立动态计算规则,并讨论比较CDT和其他模型的特点,分析语境判定树模型的优势。实例分析表明,该模型能够满足安全性验证需求,具有良好的规范性、适用性和可扩展性。关键字:语境判定树;安全性验证;工作流系统;多角色协同;元模型

中图分类号:TN02?34;TP311 文献标识码:A 文章编号:1004?373X(2015)13?0081?04

收稿日期:2014?12?21

0 引言

设计多角色协同交互式工作流系统时,不同的角色共享界面和操作的数量远多于单用户系统[1],用户操作受到多重动态语境约束,工作流设计的安全性验证必不可少。安全性验证的目的是保证在特定的环境中(系统特定部署约束)使正确的主体(特定角色和用户约束)在正确的时间、地点(特定对象类型和状态约束)执行正确的操作(特定后置条件约束)。传统的访问控制机制,如基于角色访问控制RBAC[2]、访问控制表ACL[3]等无法满足动态语境分析的需求。本文采用元模型建模方法,旨在探索一种分析复杂语境的语境判定树CDT 模型,用来实现工作流设计方案的安全性验证。

1 语境判定树概述

决策树(Decision Tree)又称判定树,常用于构建预测模型[4]。树中每个节点表示某个对象,而每个分叉路径则代表某个可能的属性值,从根节点到叶节点所经历的路径为一组条件序列,表示决策的过程。

语境(context)是某事物所存在的环境,它为该事物的存在提供特定条件,同时也约束了该事物的性质和行为。在工作流系统中,操作处于特定的语境条件中,包括当前用户名,用户角色,操作对象,对象类别,对象状态等一组属性,这些语境属性对当前操作起约束和引导的作用。

将语境条件的计算、判定、交互和推理纳入到判定树的节点和路径中,提出语境判定树(Context DecisionTree,CDT)模型。针对多角色协同交互式工作流系统的安全性问题,语境判定树应满足三点需求:

(1)安全性验证。验证需求规格与设计方案之间对关键操作的安全控制要求的一致性和完整性。

(2)交互选择。需支持用户交互选择的判定路径,保证安全的同时能提高交互效率。

(3)逐步递进与动态判定。需支持分步骤实现语境条件的计算、判定与推理。一个步骤中能根据前面已知条件动态计算下一步所需语境属性,下一步判定能依赖前步计算的结果,最终控制关键操作的安全调用。

2 语境判定树建模规范

2.1 元模型

元模型中仅包含一个元类CDTNode,表示语境判定树CDT的节点及有向边,如图1所示。

一个CDTNode对象表示一个CDT模型中的一个语境条件判定和计算单元。

属性与关联:

(1)命名N(name):一个文本说明,以区别其他相邻节点。命名可为空。

(2)条件C(cond):一个逻辑表达式,表示进入该节点的判定路径所需满足的必要条件。该条件与其上游节点条件之间是逻辑与关系,以形成合取式。条件可为空,若为空,表示恒为真。条件中的操作数是语境条件属性(如角色、用户名、对象类型名、对象属性名、临时命名等)。操作符为普通逻辑操作符(与∧,或∨,非?)。

(3)动作A(actions):一个或一系列动作,表示当满足条件C时所执行的一组计算动作的序列。计算结果可被其下游节点使用。叶节点上的动作主要是调用受保护的关键性操作。动作可对业务逻辑产生副作用,即创建新对象,改变对象属性或关联等。动作序列可包含分支和循环。动作A 得到一次执行的充要条件是其条件C为真且得到一个执行令牌。

(4)下游节点类型(downKind):当前节点到其多个下游节点有两种关系:并行或选择。前者是计算下游条件后自动选择,后者是人工交互选择。

(5)下游节点(down):自关联UpperToDown 指向0个或多个下游节点down。为便于实现,设计为单向关联。

2.2 令牌规则

采用令牌token来实现节点之间的动态计算关系,主要是顺序节点、并行下游节点、选择下游节点、多个上游节点的令牌传递规则。

2.2.1 顺序节点

顺序结构的多个节点表示一系列语境条件之间的合取关系和从属关系。如图2所示,以下面3个节点的一个模型为例说明顺序节点的令牌传递规则。

计算过程:节点1得到一个令牌t后,计算其条件c1。

若为真,则执行as1,其结果可被下游获取,执行动作如正常完成,则将该令牌沿有向边传给下游节点;若条件c1 为假,则不执行动作,并撤销令牌t。如此执行,下游节点动作as3执行完成后上交令牌t,表示一次计算判定执行完成,形成了一条判定路径。该路径的语境条件为:c1∧c2∧c3,作为动作as3执行的必要条件。该合取式不适用交换律,因为这些条件有序。

2.2.2 并行下游节点

并行下游节点表示有多个下游节点时,自动下传令牌的情形。若仅有一个下游节点前置条件为真,则作为下游路径;若有多个节点条件为真,则任选一个作为下游路径;若所有下游节点的前置条件都为假,则模型错误,下传令牌失败,令牌被阻塞。表示方法如图3所示。

并行下游结构并非意味着下游动作并行执行,而是下游之间动作执行的互斥关系。

2.2.3 选择下游节点

选择下游节点表示有多个下游节点时,用户交互选择一个下游节点或放弃的情形。表示方法如图4所示。

选择下游节点用虚线表示。上游节点得到令牌,计算条件c为真,执行其动作as,然后计算下游节点1的条件,若为真则将其纳入可选节点集合A;若为假则不可选。如此计算所有下游节点,得到一个可选节点集合A。若A 不为空,用户交互选择其中一个作为下游节点,将令牌传给它,再执行该节点动作。若A 为空,则撤销令牌。

2.2.4 多个上游节点

多个上游节点结构,表示任一上游节点传来令牌,该节点条件成立就执行动作的情形。表示方法如图5所示。

图5中对下游节点3,任何一条入边上得到一个令牌,就开始计算。动作as3执行的充要条件是(c1∨c2)∧c3成立且得到一个令牌。

这种结构实际上是两个节点或两条路径合并的结果:(c1∧c3)∨(c2∧c3)=(c1∨c2)∧c3。这是合取对于析取的分配律。这种结构“破坏”了有向树规则,有向树要求节点入度不大于1。CDT模型中允许这种结构的原因是合并可有效减少冗余节点。

2.3 优化方法

决策树剪枝,就是删除决策树的某些分支,以此减小决策树的尺寸[5]。对于CDT 的优化方法属于决策树的后剪枝方法。

对CDT 的优化可减少节点数量,减少节点操作的重复计算,可在满足特定工作流的前提下,消除冗余节点及其边。优化可通过以下操作来实现:

(1)条件向前拉。如果兄弟节点之间都具有一个相同条件c,那么可将该条件拉到其父节点,父节点的一次性判定可避免在多个下游节点上重复。

(2)条件向后推。如果父节点的一个条件c,包含了与其子节点相关的语境条件,并且此子节点的语境条件是独享的,则应将条件c推到其子节点上。

(3)合并节点。如果两个节点的条件和动作都相同,则合并为一个节点。合并后的有向边需保持,但不能增加路径。合并节点可消除冗余节点,但可能“破坏”树形结构。

(4)分离节点。如果节点A包含了过多的语境条件或者操作动作,可将节点A分离为多个顺序连通的节点。

对CDT进行剪枝优化,可缩小CDT规模,消除冗余节点,减少节点的语境计算。

3 讨论与比较

图论中的有向树是任意两个节点间有且仅有一条路径[6]。而CDT模型中允许存在入度大于1的节点,即合并节点。CDT借鉴了决策树的结构特点,但出于消除冗余节点的目的,合并冗余节点能更好地满足实际软件需求,而不必拘泥于严格的有向树。

CDT元模型是一个规范的面向对象模型,采用面向对象编程语言易于实现,可直接支持具体项目设计,也可支持模拟运行和安全性验证。故此CDT具有良好的适用性。

CDT作为一种较通用的语境判定和验证方法,可针对不同平台或框架进行扩展。例如对于多角色协同Web系统,可扩展属性来适应Web计算结构。常见扩展是一个属性objectScope 对象作用域,使每个节点对应Web系统4层对象作用域(如应用、会话、请求、页面)中的某一层,使节点能直接访问该层语境属性。扩展CDT可用于多种领域,如医疗领域中的交互式病情预诊和用药安全指导等。CDT具有良好的可扩展性。

CDT 是对传统的基于角色控制访问RBAC 的扩展和完善。传统RBAC 多用于静态的粗粒度(如页面级)的角色授权[2],CDT可将角色作为一种语境属性,能支持动态的细粒度(操作级)的角色授权和角色履职。表1给出本方法与其他相关方法的比较。

4 实例分析

为了说明语境判定树CDT对于复杂语境的分析判定作用,在此设置一个简单的操作序列,病人通过两条判定路径提交自己的病人服务申请。从三个方面验证该流程设计的合理性。如图6所示。

4.1 安全性验证

病人提交服务申请的需求可能是抽象的、隐晦的,也可能不一致、不完整。安全性验证就是将CDT 模型与需求规范之间比较,以发现两者间的差异。例如第一条路径的操作序列p1.cond=“role=‘病人’∧所属社区=‘新河’∧用户有私人医生∧申请格式校验通过”,若p1.cond和安全性需求SR 双向蕴含,则该条路径是语境安全的。

定义1:设CDT有一个叶节点a,若所有到达的路径P={p1,p2,…}都是语境安全的,则称叶节点a 是语境安全的。

定义2:对于一个CDT,若任何一个叶节点都是语境安全的,则称该CDT是语境安全的。

以上定义用于验证一个CDT中的路径和节点的语境安全性。由CDT的定义和结构特点可推理,CDT是一个连通且无回路的有向图,可借助已有算法,如深度优先遍历DFS[10],计算从根到所有叶节点的所有路径,然后验证每条路径的安全性。

4.2 一致性验证

图6中的每一条途径,均不存在如A∧…∧?A前后逻辑不一致的现象,可判定该设计满足一致性验证。注意可能存在某个动作改变了对象的状态,使得条件A变为?A,若存在这样的动作且合理则一致;若不存在,则不一致。

4.3 冗余验证

图6中的p.cond将用户角色的判定放在节点1上,避免了在节点2和节点3上的重复判定,可以有效提高操作计算效率。同时计算p1.cond 和p2.cond,并不存在A∧…∧A这样前后条件重复判定的情况,可判定无冗余操作计算。注意当对象状态发生改变的时候,处于安全性考虑可能会出现条件重复计算,属于合理冗余。

5 结语

针对多角色协同交互式工作流系统安全性设计和验证的复杂性,结合语境和决策树概念,用元模型方式提出语境判定树CDT模型。详细介绍了CDT模型的令牌传递规则,并讨论比较了CDT 相比于其他建模方法的特性和优势,最后通过实例分析证明CDT 支持安全性验证,一致性验证和冗余验证。该建模方法具有良好的规范性、适用性和可扩展性,对于复杂的交互式工作流系统的设计开发具有重要意义。

教育期刊网 http://www.jyqkw.com
参考文献

[1] QUNOO H,RYAN M. Modelling dynamic access control poli?cies for web?based collaborative systems [M]// FORESTI S,JA?JODIA S. Data and applications security and privacy XXIV.Berlin:Springer,2010:295?302.

[2] 行燕,高荣芳.基于角色访问控制机制在Web 信息系统中的应用[J].现代电子技术,2007,30(16):157?159.

[3] CANKAYA H C. Access control lists [M]// HENK C A,TI?BORG V. Encyclopedia of cryptography and security. NewYork:Springer,2011:9?12.

[4] SWANEY D L,MCALISTER G C,COON J J. Decision tree?driven tandem mass spectrometry for shotgun proteomics [J].Nature Methods,2008,5(11):959?964.

[5] TRABELSI S,ELOUEDI Z,MELLOULI K. Pruning belief de?cision tree methods in averaging and conjunctive approaches[J]. International Journal of Approximate Reasoning,2007,46(3):568?595.

[6] 卢开澄,卢华明.图论及其应用[M].北京:清华大学出版社,1995.[7] 欧阳俊,杨贯中,陶勇,等.基于对象Petri网工作流建模的研究与实现[J].计算机工程与设计,2005,26(10):2688?2691.

[8] 胡春萍,王一平,梁欣霆.UML在系统开发中的应用研究[J].现代电子技术,2002,25(8):77?80.

[9] MORENO N,FRATERNALI P,Vallecillo A. WebML model?ling in UML [J]. IET Software,2007,1(3):67?80.

[10] TARJAN R. Depth?first search and linear graph algorithms [J].SIAM Journal on Computing,1972,1(2):146?160.

作者简介:严悍(1967—),男,山西运城人,副教授,博士。研究方向为信息安全与软件工程。