构件化角色设计的研究
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
构件化角色设计的研究
摘要:系统中角色控制模块是重复开发率最高的模块之一。本文将构件化的思想引入到角色控制管理中,提出了角色设计应具有复用性、用户透明性及可配置性等原则,为角色复用、再复用和基于角色的权限控制提供了一种可行的解决途径。
关键词:构件化角色控制复用性
系统中角色控制模块是重复开发率最高的模块之一。在企业中,不同的应用系统都拥有一套独立的角色控制系统,每套角色控制系统只满足自身系统的权限管理需要,无论在数据存储、权限访问和权限控制机制等方面都存在不统一、不一致性弊端,导致角色管理复用性低、劳动重复性高、开发成本及周期难以控制的局面。基于此,本文提出了构件技术的角色控制方法在企业开发中以复用的方式、透明地、可配置地应用。
1 构件化软件
本文将构件分成六个层[1]:语义层描述构件具体实现功能,是构件价值的体现;基约层用来描述构件实体提供或需求服务的接口,负责构件之间的通信,连接包括一组参数;技术层描述构件适应具体的操作平台、兼容语言等;契约层即行为交互层,描述构件之间及构件与环境之间的行为交互,包括消息的顺序、消息的同步、消息的异步及消息堵塞等条件;服务层描述构件非功能属性,主要指构件的服务质量;构
件是可在一定的范围内,有限制的修改以达到提高复用目的,同时构件多次复用具有持久性,即构件多次复用的结果是一致的,修改后的构件独立于原构件。
根据以上的分析,本文从复用观点出发,认为构件是具有相对独立的功能,显示且严格的接口描述,具体的语境依赖,特定的契约约束,相对明确的服务指标,可被限制性修改且能多次复用、易于组装的软件单元。
2 角色控制
目前,大多数信息管理系统的权限控制都是从资源存取控制客体出发进行管理,这种权限管理方式没有考虑到实际企业的权限结构,缺乏灵活性和透明性。
无论是基于本体方向,还是面向对象方向,或者是基于层次关系方向。角色控制在以下方面存在不足,首先,权限操作复杂,授权方式不够灵活,不能满足后期新角色的加入,特别是对一些大型的结构性数据的权限管理力量薄弱;其次,随着构件化技术的成熟,要求资源共享能力越来越高,但目前的角色管理在不同的系统中大都自行开发,没有达到复用的目的;第三,系统中的角色管理被限定在确定的用户,同时用户必须兼顾角色中的权限,因此,角色管理对用户的透明性差。
3 构件化角色设计原则
基于构件的复用最终的价值是将设计可复用的产品以即插即用的方式用到工程中去,目前,无论是基于本体方向,还是面向对象方向,或者是基于层次关系方向。它们在以下方面存在不足,首先,权限操作复杂,授权方式不够灵活,不能满足后期新角色的加入,特别是对一些大型的结构性数据的权限管理力量薄弱;其次,随着构件化技术的成熟,要求资源共享能力越来越高,但目前的角色管理在不同的系统中大都自行开发,没有达到复用的目的;第三,系统中的角色管理被限定在确定的用户,同时用户必须兼顾角色中的权限,因此,角色管理对用户的透明性差。
基于此,本文提出角色构件的设计应具有可复用性、用户透明性及可配置性等原则。
3.1 复用性
构件复用作为一种现实有效的软件开发方法正受到越来越多的重视和研究。近年来,随着DNA,中间件等三层体系结构和分布式对象的兴起,为基于可复用构件的软件体系结构赋予了更大的内涵。从而使人们在评价构件复用的意义时,不应只局限于开发周期的缩短,软件质量的可靠提高,更要认识到构件组装式的开发在系统维护(如版本更新,功能增删等),分布式计算等方面所带来的极大便利。由于维护阶段
占软件开发周期总成本的67%左右,因此构件重用对整个软件产业的重要意义就不言而喻了。从维护和分布计算的角度考虑,构件复用就是要实现“即插即用”。
3.2 用户透明性
在计算机技术中,一种本来是存在的事物或属性,但从某个角度看似乎不存在,称为透明性现象。通常,在计算机系统中,低层次的机器级的概念性结构和功能特性,对高级程序员来说是透明的。本文提出的透明性狭义指系统中的角色管理被限定在确定的用户,同时用户必须兼顾角色中的权限,因此,角色管理对用户的透明性差。
本文构件化角色的设计如下:所有构件仅提供限制性功能接口,通过配置使得不同的用户得到不同的权限,用户修改构件是封闭的,使用构件是透明的,角色构件的功能及权限对所有用户都是透明的,用户只需知道做什么,不必理会怎样做。
3.3 可配置性
可配置性的最低层次就是一般的配置文件、配置参数,这是一种比较规格和静态的参数结构,参数表,稍微复杂一些可以采用树结构。软件中自然是有大量的参数需要这样去配置。二次开发程序,用来满足复杂的、动态的功能实现和参数定义。一般说普通配置文件解决不了问题的时候,脚本程序就需要出场了。可配置性高的层次是指技术发展的方向,实现(而不是说用户使用)的难易程度。自然,一般而言普
通配置文件和参数体系容易被用户理解;而二次开发的脚本不太容易被用户理解和掌握。但也不能绝对这么说。通过一定的方法和努力,二次开发的代码也可以很简单,但依然保持了它的功能灵活性。
本文提出的可配置性狭义的指通过配置用户的等级来实现用户的权限。
4 结语
构件化软件被视为软件复用有效手段之一[2],角色控制模块是重复开发率最高的模块之一,基于此,本文将构件化的思想引入到角色控制管理中,提出了角色设计应具有复用性、用户透明性及可配置性等原则,为角色复用、再复用和基于角色的权限控制提供了一种可行的解决途径。
参考文献
[1] Qi Huacheng; Rong Mei, Zhang Guangquan; A behavior-driven model of component interaction adaptation[C]. Computer Science & Education, 2009.
[2] C. Canal, Pascal Poizat and Gwen Salaün. Model-based Adaptation of Behavioral Mismatching Components [J].In IEEE