基于特定领域语言的动态RBAC建模与科学计算中的状态形式化方法
1. 动态RBAC建模的DSL:PapeRBACk
在系统开发中,动态状态相关视图的明确定义能够显著推动系统的开发进程。基于角色的访问控制(RBAC)的动态视图反映了系统所支持的工作流,通常由场景来描述。场景定义了为实现所需功能而对资源执行的一系列操作(即用例)。并且,RBAC的动态视图和静态视图相互交织,静态视图定义的权限对操作执行构成约束。
为了解决领域专家不愿自行将RBAC视图形式化的问题,我们提出了特定领域语言(DSL)PapeRBACk及其对应的工具支持。该语言集成了RBAC的表格和图形描述,并结合了Event - B进行形式化建模。
1.1 特定领域语言概述
特定领域语言是专门为特定领域设计的编程语言或建模语言,有多种类型,如可视化绘图语言、编程抽象语言和文本语言等。使用DSL可以提高开发效率,让领域专家参与到开发过程中。实现DSL通常需要定义解析器,而强大的集成开发环境(IDE)对DSL的采用和成功至关重要。我们使用JetBrains MPS语言工作台来实现用于建模RBAC的DSL。
JetBrains MPS支持投影式编辑,程序的关键表示是其抽象语法树(AST),可以投影为文本、表格和图形等不同形式,用户可直接编辑AST,无需解析。
1.2 PapeRBACk语言介绍
PapeRBACk语言用于表示RBAC的静态和动态视图,其需求描述结合了文本、表格和图形元素。
- 静态视图 :通过表格静态定义角色访问系统资源的权限,列对应资源,行对应角色。例如在一个周期性报告系统中
超级会员免费看
订阅专栏 解锁全文
18

被折叠的 条评论
为什么被折叠?



