数据访问权限和行为权限的定义装置和定义方法

文档序号:6523609阅读:709来源:国知局
数据访问权限和行为权限的定义装置和定义方法
【专利摘要】本发明提供了一种数据访问权限和行为权限的定义装置,包括:数据绑定模块,通过基于数据对象元数据建立的绑定通道,关联数据对象和权限数据对象;权限处理模块,基于前述关联,管理权限的集合,提供权限的创建、更新和校验方法;数据处理模块,通过事件处理或插件机制或服务调用,将数据对象和权限管理器建立逻辑关联。本发明还提供了一种数据访问权限和行为权限的定义方法。通过本发明的技术方案,可以在现有数据访问权限和行为权限定义方式基础上,充分利用静态数据访问权限和行为权限完成动态数据访问权限和行为权限定义,建立动态数据访问权限和行为权限参与的面向控制和动态扩展数据访问权限和行为权限的通用、统一定义思路。
【专利说明】数据访问权限和行为权限的定义装置和定义方法
【技术领域】
[0001]本发明涉及数据处理【技术领域】,具体地,涉及一种数据访问权限和行为权限的定义装置和一种数据访问权限和行为权限的定义方法。
【背景技术】
[0002]在数据处理流程和功能快速变化持续改进的情况下,用户期待保持数据对象不变的情况下,支持更丰富的更灵活的权限控制逻辑实现,目前通用的实现方面有以下共同的特性:
[0003]⑴在设计态使用管控模式描述数据的可见范围;⑵在定义数据时指定所属的管控模式,及确定数据的可见范围;⑶设计态定义可支持的行为组织之间的委托关系类型,使用委托关系定义实现数据所属组织之间的行为赋权定义;并绑定固定的业务处理逻辑;⑷设计态明确定义指定某类行为的执行者的数据属性,固化执行者属性,并在设计态代码中行为执行者使用执行者属性决定行为处理逻辑;(5)运行态具体数据,依据该类数据使用的管控范围控制可见性;(6)运行态具体数据,依据定义该数据的组织和具体行为的执行组织之间的业务委托关系来选择具体行为的执行组织并保存为具体数据的行为执行者属性的数据值;(7)运行态是否可对具体数据执行某行为,依据该数据的行为执行者属性是否为当前行为组织来决定;(8)使用分配或下发功能实现某类数据在不同的可见性范围内的可见性赋权。
[0004]另外,在专利(申请)号为201010585547、名称为“一种权限配置方法、装置及系统”的专利(申请)文件中,提供了一种权限配置方法、装置及系统,所述方法包括下述步骤:在系统页面中生成功能菜单;将所述功能菜单对应的权限配置页签载入所述系统页面;在所述权限配置页签中配置所述功能菜单的权限。本发明通过在对功能菜单进行定义时从权限管理模块中调用权限配置页签并进行载入,实现在同一页面完成对功能菜单的定义和权限配置,减少了用户的操作步骤,提高了系统的易用性。
[0005]在专利(申请)号为201010536592、名称为“权限管理方法和装置、权限控制方法和装置”的专利(申请)文件中,提供了一种权限管理方法和装置、权限控制方法和装置,其中的权限控制方法具体包括:依据预置的用户与角色之间的多对多映射关系,获取当前用户所对应的多个角色;依据预置的角色权限映射关系,获取所述多个角色对应的权限;依据所述多个角色对应的权限,向所述当前用户开放权限。本发明能够提高用户的工作效率,且增加权限使用的方便性。
[0006]以上技术在一定程度上实现了数据对象和权限逻辑的分离,提高了开发效率和用户体验。但仍存在一些不足:
[0007]⑴在定义数据对象时其可见性范围就需要确定,并且管控模式是预定义的系统参数,不能支持不同数据的可见性范围的差异化需求。同类数据,由于其生命周期的不同,各生命周期阶段的可见性范围存在不同。
[0008]⑵数据对象和权限控制紧密绑定,在定义数据对象时其行为执行者就需要确定。而现实情况是行为组织之间的委托关系,一般用于比较稳定的业务行为,对于很多临时性的业务行为,需要按照具体数据临时指定,在定义数据时不能确定。
[0009]⑶在企业管理软件中,经常会有根据不同场景定义多种不同的可见性范围和业务行为委托关系,现有技术在运行期间,不能很好地支持这种权限控制逻辑的扩展。
[0010]通常情况下,软件的某个功能模块包括该业务数据、逻辑操作,以及用户界面(Π)。其中,业务数据是功能模块要处理或生成的数据对象,逻辑操作是对业务数据的处理过程和方法,用户界面向用户呈现业务数据,并负责把用户的操作映射为逻辑操作,并把操作的结果反馈给用户。
[0011]现有技术一般通过数据处理完成数据对象的活动处理与业务数据(包括权限数据)处理模块间的交互,其中处理权限控制的逻辑硬代码编写在数据对象的活动处理实现中。如图6所示。
[0012]当执行定义某数据的活动处理时,比如新增或修改数据对象时,需要根据委托关系指定相关行为执行者,并根据系统对该数据指定的管控范围验证唯一性。当执行特定的行为,比如对数据对象执行销售时,对应的活动接收要处理的数据对象,读取数据对象,包括数据的权限数据,首先按照数据的可见性范围确定当前执行者是否可对该数据执行该行为,及该执行者是否是相关行为执行者,执行权限控制的逻辑硬代码,验证通过,执行其它逻辑,从而完成对用户操作指令做出相应的业务逻辑操作。
[0013]根据现有技术的特性,程序模块设计和运行期间表现为如图7所示的形式。在设计和运行时,数据对象的权限数据被固化为系统参数和数据对象的行为执行者等固定的有限的属性,活动的逻辑和权限控制逻辑针对该数据结构进行硬编码,所有代码被包装在同一个活动处理的程序对象中,这个程序对象既包含数据对象活动的逻辑,又包含权限控制逻辑。不论是在设计时还是在运行时,数据对象活动的逻辑和权限控制的数据结构和逻辑都有完全耦合关系,由于固化属性,使得扩展行为组织就必须添加属性,同时修改控制逻辑代码,从而使设计时并行开发、运行时动态扩展和替换权限控制逻辑等需求难以实现。
[0014]因此,需要一种新的数据访问权限和行为权限的定义技术,可以在现有的数据访问权限和行为权限定义方式基础上,充分利用静态数据访问权限和行为权限完成动态数据访问权限和行为权限定义,建立动态数据访问权限和行为权限参与的面向控制和动态扩展数据访问权限和行为权限的通用、统一定义思路。

【发明内容】

[0015]本发明正是基于上述问题,提出了一种新的数据访问权限和行为权限的定义技术,可以在现有的数据访问权限和行为权限定义方式基础上,充分利用静态数据访问权限和行为权限完成动态数据访问权限和行为权限定义,建立动态数据访问权限和行为权限参与的面向控制和动态扩展数据访问权限和行为权限的通用、统一定义思路。
[0016]有鉴于此,本发明提出了一种数据访问权限和行为权限的定义装置,包括:数据绑定模块,用于基于数据对象元数据建立绑定通道,通过绑定通道关联数据对象和权限数据对象,并在数据新增或执行业务角色分配时更新权限数据对象的权限;权限处理模块,用于基于所述数据绑定模块关联的数据对象和权限数据对象,管理权限的集合,提供权限的创建、更新和校验方法;数据处理模块,用于在所述权限处理模块实现权限管理的基础上,通过事件处理或插件机制或服务调用,将数据对象和权限管理器建立逻辑关联。在该技术方案中,可以通过在数据对象和权限数据之间建立关联,通过权限管理器对数据的权限进行创建、更新、校验和管理,在数据对象和权限管理器之间建立逻辑关联,从而将根据权限数据对象同步记录最新的权限,灵活性大,处理效率高。
[0017]在上述技术方案中,优选地,所述数据绑定模块,具体包括:绑定通道建立模块,用于在数据对象元数据中指定绑定源和绑定路径,建立绑定通道;元数据被加载并创建为数据对象后,控件可根据绑定上下文自动获取绑定的数据,并在更改时同步更新绑定源;关联及更新模块,用于数据对象和权限数据对象经过所述绑定通道建立模块建立的绑定通道直接关联,更改通知机制负责在数据新增或执行业务角色分配时通知权限数据最新的权限,权限数据对象同步记录最新的权限。
[0018]在上述技术方案中,优选地,所述权限处理模块,具体包括:权限管理模块,用于权限管理器管理权限的集合,权限集合允许在设计态设置,同时支持在实际流程中对权限进行灵活配置;权限创建模块,用于权限管理器提供权限创建的方法,以创建权限、并通过数据绑定获取数据对象的所有权限;权限更新模块,用于权限管理器提供权限更新的方法,以更新权限、并通过数据绑定获取数据对象的权限;权限校验模块,用于权限管理器提供权限校验的方法,以校验当前权限下当前活动是否允许执行;权限控制模块,用于在每个权限中定义包含多个权限控制项的集合,每个控制项控制项目自身的活动或其它的数据的活动是否允许在该权限下执行;该权限控制项集合允许在设计态设置,同时支持在实际流程中对权限进行灵活配置。
[0019]在上述技术方案中,优选地,所述权限管理模块和/或所述权限控制模块在实际流程中对权限进行灵活配置的操作,具体包括:在运行态根据实际需要扩展、修改或新建;以及,所述权限创建模块提供的权限创建方法,具体包括:接收数据对象和权限设置数据,判断该接收数据的对应权限是否存在:若存在,则返回权限已存在而不能创建的消息;若不存在,则创建该接收数据的权限实例数据;以及,所述权限更新模块提供的权限更新方法,具体包括:接收数据对象和新旧权限设置数据,如果新旧权限都为空,则返回权限未指定而不能更新的消息;如果新旧权限都不为空,则:首先读取数据对象的旧权限,如果数据对象的旧权限不存在,则返回权限不存在而不能更新的消息;然后查询数据对象是否存在新权限,如果数据对象存在新权限,则返回权限已存在而不能更新的消息;最后将旧权限替换为新权限,如果旧权限为空,则执行创建权限过程;如果新权限为空,则删除旧权限;以及,所述权限校验模块提供的权限校验方法,具体包括:接收执行者、数据对象和业务活动,首先读取数据对象的当前执行者的当前角色,然后读取该角色的权限控制项集合,判定当前活动是否允许执行并返回结果。
[0020]在上述技术方案中,优选地,所述数据处理模块,具体包括:事件处理模块,用于解除数据对象的活动处理和权限控制逻辑代码间的依赖关系,权限控制逻辑通过侦听数据对象的活动发出的事件,触发权限控制逻辑处理;插件处理模块,用于基于所述事件处理模块触发的权限控制逻辑按照数据对象的活动特定的插件规范,将权限控制逻辑处理作为一个插件注册进数据对象的活动的插件列表,数据对象活动读取注册的插件,完成数据对象的权限控制逻辑;服务调用模块,用于基于所述插件处理模块完成的数据对象的权限控制逻辑,将数据对象的活动处理通过显式调用权限单元提供的权限控制逻辑方法完成数据对象的权限控制逻辑,将数据活动和权限逻辑区隔开来;数据对象活动处理只依赖于权限单元提供的权限控制逻辑方法的签名。
[0021]根据本发明的又一个方面,还提出了一种数据访问权限和行为权限的定义方法,包括:步骤202:基于数据对象元数据建立绑定通道,通过绑定通道关联数据对象和权限数据对象,并在数据新增或执行业务角色分配时更新权限数据对象的权限;步骤204:基于所述步骤202关联的数据对象和权限数据对象,管理权限的集合,提供权限的创建、更新和校验方法;步骤206:在所述步骤204实现权限管理的基础上,通过事件处理或插件机制或服务调用,将数据对象和权限管理器建立逻辑关联。在该技术方案中,可以通过在数据对象和权限数据之间建立关联,通过权限管理器对数据的权限进行创建、更新、校验和管理,在数据对象和权限管理器之间建立逻辑关联,从而将根据权限数据对象同步记录最新的权限,灵活性大,处理效率高。
[0022]在上述技术方案中,优选地,所述步骤202,具体包括:步骤302:在数据对象元数据中指定绑定源和绑定路径,建立绑定通道;元数据被加载并创建为数据对象后,控件可根据绑定上下文自动获取绑定的数据,并在更改时同步更新绑定源;步骤304:数据对象和权限数据对象经过所述步骤302建立的绑定通道直接关联,更改通知机制负责在数据新增或执行业务角色分配时通知权限数据最新的权限,权限数据对象同步记录最新的权限。
[0023]在上述技术方案中,优选地,所述步骤204,具体包括:步骤402:权限管理器管理权限的集合,权限集合允许在设计态设置,同时支持在实际流程中对权限进行灵活配置;步骤404:权限管理器提供权限创建的方法,以创建权限、并通过数据绑定获取数据对象的所有权限;步骤406:权限管理器提供权限更新的方法,以更新权限、并通过数据绑定获取数据对象的权限;步骤408:权限管理器提供权限校验的方法,以校验当前权限下当前活动是否允许执行;步骤410:在每个权限中定义包含多个权限控制项的集合,每个控制项控制项目自身的活动或其它的数据的活动是否允许在该权限下执行;该权限控制项集合允许在设计态设置,同时支持在实际流程中对权限进行灵活配置。
[0024]在上述技术方案中,优选地,所述步骤402和/或所述步骤410在实际流程中对权限进行灵活配置的操作,具体包括:在运行态根据实际需要扩展、修改或新建;以及,所述步骤404提供的权限创建方法,具体包括:接收数据对象和权限设置数据,判断该接收数据的对应权限是否存在:若存在,则返回权限已存在而不能创建的消息;若不存在,则创建该接收数据的权限实例数据;以及,所述步骤406提供的权限更新方法,具体包括:接收数据对象和新旧权限设置数据,如果新旧权限都为空,则返回权限未指定而不能更新的消息;如果新旧权限都不为空,则:首先读取数据对象的旧权限,如果数据对象的旧权限不存在,则返回权限不存在而不能更新的消息;然后查询数据对象是否存在新权限,如果数据对象存在新权限,则返回权限已存在而不能更新的消息;最后将旧权限替换为新权限,如果旧权限为空,则执行创建权限过程;如果新权限为空,则删除旧权限;以及,所述步骤408提供的权限校验方法,具体包括:接收执行者、数据对象和业务活动,首先读取数据对象的当前执行者的当前角色,然后读取该角色的权限控制项集合,判定当前活动是否允许执行并返回结果O
[0025]在上述技术方案中,优选地,所述步骤206,具体包括:步骤502:解除数据对象的活动处理和权限控制逻辑代码间的依赖关系,权限控制逻辑通过侦听数据对象的活动发出的事件,触发权限控制逻辑处理;步骤504:基于所述步骤502触发的权限控制逻辑按照数据对象的活动特定的插件规范,将权限控制逻辑处理作为一个插件注册进数据对象的活动的插件列表,数据对象活动读取注册的插件,完成数据对象的权限控制逻辑;步骤506:基于所述步骤504完成的数据对象的权限控制逻辑,将数据对象的活动处理通过显式调用权限单元提供的权限控制逻辑方法完成数据对象的权限控制逻辑,将数据活动和权限逻辑区隔开来;数据对象活动处理只依赖于权限单元提供的权限控制逻辑方法的签名。
[0026]通过以上技术方案,可以在现有的数据访问权限和行为权限定义方式基础上,充分利用静态数据访问权限和行为权限完成动态数据访问权限和行为权限定义,建立动态数据访问权限和行为权限参与的面向控制和动态扩展数据访问权限和行为权限的通用、统一定义思路。
【专利附图】

【附图说明】
[0027]图1示出了根据本发明的实施例的数据访问权限和行为权限的定义装置的框图;
[0028]图2示出了根据本发明的实施例的数据访问权限和行为权限的定义方法的流程图;
[0029]图3示出了根据本发明的实施例的数据绑定模块的工作流程图;
[0030]图4示出了根据本发明的实施例的权限处理模块的工作流程图;
[0031]图5示出了根据本发明的实施例的数据处理模块的工作流程图;
[0032]图6示出了现有的数据对象的活动处理与业务数据(包括权限数据)处理模块间的交互流程图;
[0033]图7示出了现有的程序模块设计和运行期间表现形式图;
[0034]图8示出了根据本发明的实施例的数据对象的权限控制逻辑图;
[0035]图9示出了根据本发明的实施例的以项目经理为示例的权限管理对象层次结构图;
[0036]图10示出了根据本发明的实施例的触发权限控制逻辑处理机制图;
[0037]图11示出了根据本发明的实施例的数据对象的权限控制逻辑处理机制图;
[0038]图12示出了根据本发明的实施例的将数据活动和权限逻辑区隔开来的处理机制图。
【具体实施方式】
[0039]为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和【具体实施方式】对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
[0040]在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
[0041]图1示出了根据本发明的实施例的数据访问权限和行为权限的定义装置的框图。
[0042]如图1所示,根据本发明的实施例的数据访问权限和行为权限的定义装置100,包括:数据绑定模块102,用于基于数据对象元数据建立绑定通道,通过绑定通道关联数据对象和权限数据对象,并在数据新增或执行业务角色分配时更新权限数据对象的权限;权限处理模块104,用于基于数据绑定模块102关联的数据对象和权限数据对象,管理权限的集合,提供权限的创建、更新和校验方法;数据处理模块106,用于在权限处理模块104实现权限管理的基础上,通过事件处理或插件机制或服务调用,将数据对象和权限管理器建立逻辑关联。在该技术方案中,可以通过在数据对象和权限数据之间建立关联,通过权限管理器对数据的权限进行创建、更新、校验和管理,在数据对象和权限管理器之间建立逻辑关联,从而将根据权限数据对象同步记录最新的权限,灵活性大,处理效率高。
[0043]在上述技术方案中,优选地,数据绑定模块102具体包括:绑定通道建立模块,用于在数据对象元数据中指定绑定源和绑定路径,建立绑定通道;元数据被加载并创建为数据对象后,控件可根据绑定上下文自动获取绑定的数据,并在更改时同步更新绑定源;关联及更新模块,用于数据对象和权限数据对象经过绑定通道建立模块建立的绑定通道直接关联,更改通知机制负责在数据新增或执行业务角色分配时通知权限数据最新的权限,权限数据对象同步记录最新的权限。
[0044]在上述技术方案中,优选地,权限处理模块104具体包括:权限管理模块,用于权限管理器管理权限的集合,权限集合允许在设计态设置,同时支持在实际流程中对权限进行灵活配置;权限创建模块,用于权限管理器提供权限创建的方法,以创建权限、并通过数据绑定获取数据对象的所有权限;权限更新模块,用于权限管理器提供权限更新的方法,以更新权限、并通过数据绑定获取数据对象的权限;权限校验模块,用于权限管理器提供权限校验的方法,以校验当前权限下当前活动是否允许执行;权限控制模块,用于在每个权限中定义包含多个权限控制项的集合,每个控制项控制项目自身的活动或其它的数据的活动是否允许在该权限下执行;该权限控制项集合允许在设计态设置,同时支持在实际流程中对权限进行灵活配置。
[0045]在上述技术方案中,优选地,权限管理模块和/或权限控制模块在实际流程中对权限进行灵活配置的操作,具体包括:在运行态根据实际需要扩展、修改或新建;以及,权限创建模块提供的权限创建方法,具体包括:接收数据对象和权限设置数据,判断该接收数据的对应权限是否存在:若存在,则返回权限已存在而不能创建的消息;若不存在,则创建该接收数据的权限实例数据;以及,权限更新模块提供的权限更新方法,具体包括:接收数据对象和新旧权限设置数据,如果新旧权限都为空,则返回权限未指定而不能更新的消息;如果新旧权限都不为空,则:首先读取数据对象的旧权限,如果数据对象的旧权限不存在,则返回权限不存在而不能更新的消息;然后查询数据对象是否存在新权限,如果数据对象存在新权限,则返回权限已存在而不能更新的消息;最后将旧权限替换为新权限,如果旧权限为空,则执行创建权限过程;如果新权限为空,则删除旧权限;以及,权限校验模块提供的权限校验方法,具体包括:接收执行者、数据对象和业务活动,首先读取数据对象的当前执行者的当前角色,然后读取该角色的权限控制项集合,判定当前活动是否允许执行并返回结果。
[0046]在上述技术方案中,优选地,数据处理模块106具体包括:事件处理模块,用于解除数据对象的活动处理和权限控制逻辑代码间的依赖关系,权限控制逻辑通过侦听数据对象的活动发出的事件,触发权限控制逻辑处理;插件处理模块,用于基于事件处理模块触发的权限控制逻辑按照数据对象的活动特定的插件规范,将权限控制逻辑处理作为一个插件注册进数据对象的活动的插件列表,数据对象活动读取注册的插件,完成数据对象的权限控制逻辑;服务调用模块,用于基于插件处理模块完成的数据对象的权限控制逻辑,将数据对象的活动处理通过显式调用权限单元提供的权限控制逻辑方法完成数据对象的权限控制逻辑,将数据活动和权限逻辑区隔开来;数据对象活动处理只依赖于权限单元提供的权限控制逻辑方法的签名。
[0047]图2示出了根据本发明的实施例的数据访问权限和行为权限的定义方法的流程图。
[0048]如图2所示,根据本发明的实施例的数据访问权限和行为权限的定义方法,包括:步骤202:基于数据对象元数据建立绑定通道,通过绑定通道关联数据对象和权限数据对象,并在数据新增或执行业务角色分配时更新权限数据对象的权限;步骤204:基于步骤202关联的数据对象和权限数据对象,管理权限的集合,提供权限的创建、更新和校验方法;步骤206:在步骤204实现权限管理的基础上,通过事件处理或插件机制或服务调用,将数据对象和权限管理器建立逻辑关联。在该技术方案中,可以通过在数据对象和权限数据之间建立关联,通过权限管理器对数据的权限进行创建、更新、校验和管理,在数据对象和权限管理器之间建立逻辑关联,从而将根据权限数据对象同步记录最新的权限,灵活性大,处理效率高。
[0049]在上述技术方案中,优选地,如图3所示,步骤202具体包括:步骤302:在数据对象元数据中指定绑定源和绑定路径,建立绑定通道;元数据被加载并创建为数据对象后,控件可根据绑定上下文自动获取绑定的数据,并在更改时同步更新绑定源;步骤304:数据对象和权限数据对象经过步骤302建立的绑定通道直接关联,更改通知机制负责在数据新增或执行业务角色分配时通知权限数据最新的权限,权限数据对象同步记录最新的权限。
[0050]在上述技术方案中,优选地,如图4所示,步骤204具体包括:步骤402:权限管理器管理权限的集合,权限集合允许在设计态设置,同时支持在实际流程中对权限进行灵活配置;步骤404:权限管理器提供权限创建的方法,以创建权限、并通过数据绑定获取数据对象的所有权限;步骤406:权限管理器提供权限更新的方法,以更新权限、并通过数据绑定获取数据对象的权限;步骤408:权限管理器提供权限校验的方法,以校验当前权限下当前活动是否允许执行;步骤410:在每个权限中定义包含多个权限控制项的集合,每个控制项控制项目自身的活动或其它的数据的活动是否允许在该权限下执行;该权限控制项集合允许在设计态设置,同时支持在实际流程中对权限进行灵活配置。
[0051]在上述技术方案中,优选地,步骤402和/或步骤410在实际流程中对权限进行灵活配置的操作,具体包括:在运行态根据实际需要扩展、修改或新建;以及,步骤404提供的权限创建方法,具体包括:接收数据对象和权限设置数据,判断该接收数据的对应权限是否存在:若存在,则返回权限已存在而不能创建的消息;若不存在,则创建该接收数据的权限实例数据;以及,步骤406提供的权限更新方法,具体包括:接收数据对象和新旧权限设置数据,如果新旧权限都为空,则返回权限未指定而不能更新的消息;如果新旧权限都不为空,则:首先读取数据对象的旧权限,如果数据对象的旧权限不存在,则返回权限不存在而不能更新的消息;然后查询数据对象是否存在新权限,如果数据对象存在新权限,则返回权限已存在而不能更新的消息;最后将旧权限替换为新权限,如果旧权限为空,则执行创建权限过程;如果新权限为空,则删除旧权限;以及,步骤408提供的权限校验方法,具体包括:接收执行者、数据对象和业务活动,首先读取数据对象的当前执行者的当前角色,然后读取该角色的权限控制项集合,判定当前活动是否允许执行并返回结果。
[0052]在上述技术方案中,优选地,如图5所示,步骤206具体包括:步骤502:解除数据对象的活动处理和权限控制逻辑代码间的依赖关系,权限控制逻辑通过侦听数据对象的活动发出的事件,触发权限控制逻辑处理;步骤504:基于步骤502触发的权限控制逻辑按照数据对象的活动特定的插件规范,将权限控制逻辑处理作为一个插件注册进数据对象的活动的插件列表,数据对象活动读取注册的插件,完成数据对象的权限控制逻辑;步骤506:基于步骤504完成的数据对象的权限控制逻辑,将数据对象的活动处理通过显式调用权限单元提供的权限控制逻辑方法完成数据对象的权限控制逻辑,将数据活动和权限逻辑区隔开来;数据对象活动处理只依赖于权限单元提供的权限控制逻辑方法的签名。
[0053]例如,在本发明的技术方案中,为实现针对数据在不同生命周期阶段需要控制不同的访问权限和行为权限,本发明提出一种通过数据绑定、权限处理(事件处理或插件机制或服务调用或Α0Ρ)和数据处理来实现的实现方法。其中,数据绑定实现数据对象到权限数据的映射,使数据对象可以从权限逻辑中独立出来,并在权限数据和数据对象之间保持关联;数据处理完成数据对象的活动对数据对象的变更影响,同时进行权限的定义和控制处理;权限处理主要有以下几种方式:
[0054]⑴事件处理机制,解除数据对象的活动处理和权限控制逻辑代码间的依赖关系,权限控制逻辑通过侦听数据对象的活动发出的事件,触发权限控制逻辑处理;
[0055]⑵插件机制,是另一种解除数据对象的活动处理和权限控制逻辑代码间的依赖关系的方法,权限控制逻辑按照数据对象的活动特定的插件规范,将权限控制逻辑处理作为一个插件注册进数据对象的活动的插件列表,数据对象活动读取注册的插件,从而完成数据对象的权限控制逻辑;
[0056]⑶方法调用,是数据对象的活动处理通过显式调用权限单元提供的权限控制逻辑方法完成数据对象的权限控制逻辑,这种机制下,数据对象活动处理只依赖于权限单元提供的权限控制逻辑方法的签名,不依赖于其内部逻辑,从功能上将数据活动和权限逻辑区隔开来。
[0057]⑷AOP实现,是另一种解除数据对象的活动处理和权限控制逻辑代码间的依赖关系的方法,权限控制逻辑实现为权限控制AOP方面,数据对象的活动标记需要处理权限AOP,执行活动时,通过AOP机制自动触发权限控制,从而完成数据对象的权限控制逻辑;如图8所示。
[0058]具体地,本发明技术方案的实现过程可以如下:
[0059]㈠数据绑定
[0060]作为一项现有的通用技术,数据绑定简化了应用程序开发。数据绑定技术是实现数据对象及活动与权限逻辑分离方法的基础。
[0061]数据对象和权限数据对象经过绑定通道直接关联,更改通知机制负责在数据新增或执行业务角色分配时通知权限数据最新的权限,权限数据对象同步记录最新的权限。这样,避免了由活动逻辑模块处理权限逻辑并转换为数据对象数据的操作。同时,绑定机制动态更改绑定上下文,同一个权限可处理不同的数据对象而不需做出改动。
[0062]例如,在项目管理模块中,项目的权限根据不同的项目类型会有不同的权限个数。定义为项目数据和权限数据:
[0063]行为权限定义
[0064]
【权利要求】
1.一种数据访问权限和行为权限的定义装置,其特征在于,包括: 数据绑定模块,用于基于数据对象元数据建立绑定通道,通过绑定通道关联数据对象和权限数据对象,并在数据新增或执行业务角色分配时更新权限数据对象的权限; 权限处理模块,用于基于所述数据绑定模块关联的数据对象和权限数据对象,管理权限的集合,提供权限的创建、更新和校验方法; 数据处理模块,用于在所述权限处理模块实现权限管理的基础上,通过事件处理或插件机制或服务调用,将数据对象和权限管理器建立逻辑关联。
2.根据权利要求1所述的数据访问权限和行为权限的定义装置,其特征在于,所述数据绑定模块,具体包括: 绑定通道建立模块,用于在数据对象元数据中指定绑定源和绑定路径,建立绑定通道;元数据被加载并创建为数据对象后,控件可根据绑定上下文自动获取绑定的数据,并在更改时同步更新绑定源; 关联及更新模块,用于数据对象和权限数据对象经过所述绑定通道建立模块建立的绑定通道直接关联,更改通知机制负责在数据新增或执行业务角色分配时通知权限数据最新的权限,权限数据对象同步记录最新的权限。
3.根据权利要求1所述的数据访问权限和行为权限的定义装置,其特征在于,所述权限处理模块,具体包括: 权限管理模块,用于权限管理器管理权限的集合,权限集合允许在设计态设置,同时支持在实际流程中对权限进行灵活配置; 权限创建模块,用于权限管理器提供权限创建的方法,以创建权限、并通过数据绑定获取数据对象的所有权限; 权限更新模块,用于权限管理器提供权限更新的方法,以更新权限、并通过数据绑定获取数据对象的权限; 权限校验模块,用于权限管理器提供权限校验的方法,以校验当前权限下当前活动是否允许执行; 权限控制模块,用于在每个权限中定义包含多个权限控制项的集合,每个控制项控制项目自身的活动或其它的数据的活动是否允许在该权限下执行;该权限控制项集合允许在设计态设置,同时支持在实际流程中对权限进行灵活配置。
4.根据权利要求3所述的数据访问权限和行为权限的定义装置,其特征在于,所述权限管理模块和/或所述权限控制模块在实际流程中对权限进行灵活配置的操作,具体包括: 在运行态根据实际需要扩展、修改或新建;以及, 所述权限创建模块提供的权限创建方法,具体包括: 接收数据对象和权限设置数据,判断该接收数据的对应权限是否存在:若存在,则返回权限已存在而不能创建的消息;若不存在,则创建该接收数据的权限实例数据;以及, 所述权限更新模块提供的权限更新方法,具体包括: 接收数据对象和新旧权限设置数据,如果新旧权限都为空,则返回权限未指定而不能更新的消息; 如果新旧权限都不为空,则:首先读取数据对象的旧权限,如果数据对象的旧权限不存在,则返回权限不存在而不能更新的消息;然后查询数据对象是否存在新权限,如果数据对象存在新权限,则返回权限已存在而不能更新的消息;最后将旧权限替换为新权限,如果旧权限为空,则执行创建权限过程;如果新权限为空,则删除旧权限;以及, 所述权限校验模块提供的权限校验方法,具体包括: 接收执行者、数据对象和业务活动,首先读取数据对象的当前执行者的当前角色,然后读取该角色的权限控制项集合,判定当前活动是否允许执行并返回结果。
5.根据权利要求1所述的数据访问权限和行为权限的定义装置,其特征在于,所述数据处理模块,具体包括: 事件处理模块,用于解除数据对象的活动处理和权限控制逻辑代码间的依赖关系,权限控制逻辑通过侦听数据对象的活动发出的事件,触发权限控制逻辑处理; 插件处理模块,用于基于所述事件处理模块触发的权限控制逻辑按照数据对象的活动特定的插件规范,将权限控制逻辑处理作为一个插件注册进数据对象的活动的插件列表,数据对象活动读取注册的插件,完成数据对象的权限控制逻辑; 服务调用模块,用于基于所述插件处理模块完成的数据对象的权限控制逻辑,将数据对象的活动处理通过显式调用权限单元提供的权限控制逻辑方法完成数据对象的权限控制逻辑,将数据活动和权限逻辑区隔开 来;数据对象活动处理只依赖于权限单元提供的权限控制逻辑方法的签名。
6.一种数据访问权限和行为权限的定义方法,其特征在于,包括: 步骤202:基于数据对象元数据建立绑定通道,通过绑定通道关联数据对象和权限数据对象,并在数据新增或执行业务角色分配时更新权限数据对象的权限; 步骤204:基于所述步骤202关联的数据对象和权限数据对象,管理权限的集合,提供权限的创建、更新和校验方法; 步骤206:在所述步骤204实现权限管理的基础上,通过事件处理或插件机制或服务调用,将数据对象和权限管理器建立逻辑关联。
7.根据权利要求6所述的数据访问权限和行为权限的定义方法,其特征在于,所述步骤202,具体包括: 步骤302:在数据对象元数据中指定绑定源和绑定路径,建立绑定通道;元数据被加载并创建为数据对象后,控件可根据绑定上下文自动获取绑定的数据,并在更改时同步更新绑定源; 步骤304:数据对象和权限数据对象经过所述步骤302建立的绑定通道直接关联,更改通知机制负责在数据新增或执行业务角色分配时通知权限数据最新的权限,权限数据对象同步记录最新的权限。
8.根据权利要求6所述的数据访问权限和行为权限的定义方法,其特征在于,所述步骤204,具体包括: 步骤402:权限管理器管理权限的集合,权限集合允许在设计态设置,同时支持在实际流程中对权限进行灵活配置; 步骤404:权限管理器提供权限创建的方法,以创建权限、并通过数据绑定获取数据对象的所有权限; 步骤406:权限管理器提供权限更新的方法,以更新权限、并通过数据绑定获取数据对象的权限; 步骤408:权限管理器提供权限校验的方法,以校验当前权限下当前活动是否允许执行; 步骤410:在每个权限中定义包含多个权限控制项的集合,每个控制项控制项目自身的活动或其它的数据的活动是否允许在该权限下执行;该权限控制项集合允许在设计态设置,同时支持在实际流程中对权限进行灵活配置。
9.根据权利要求8所述的数据访问权限和行为权限的定义方法,其特征在于,所述步骤402和/或所述步骤410在实际流程中对权限进行灵活配置的操作,具体包括: 在运行态根据实际需要扩展、修改或新建;以及, 所述步骤404提供的权限创建方法,具体包括: 接收数据对象和权限设置数据,判断该接收数据的对应权限是否存在:若存在,则返回权限已存在而不能创建的消息;若不存在,则创建该接收数据的权限实例数据;以及, 所述步骤406提供的权限更新方法,具体包括: 接收数据对象和新旧权限设置数据,如果新旧权限都为空,则返回权限未指定而不能更新的消息; 如果新旧权限都不为空,则:首先读取数据对象的旧权限,如果数据对象的旧权限不存在,则返回权限不存在而不能更新的消息;然后查询数据对象是否存在新权限,如果数据对象存在新权限,则返回权限已存在而不能更新的消息;最后将旧权限替换为新权限,如果旧权限为空,则执行创建权限过程;如果新权限为空,则删除旧权限;以及, 所述步骤408提供的权限校验方法,具体包括: 接收执行者、数据对象和业务活动,首先读取数据对象的当前执行者的当前角色,然后读取该角色的权限控制项集合,判定当前活动是否允许执行并返回结果。
10.根据权利要求6所述的数据访问权限和行为权限的定义方法,其特征在于,所述步骤206,具体包括: 步骤502:解除数据对象的活动处理和权限控制逻辑代码间的依赖关系,权限控制逻辑通过侦听数据对象的活动发出的事件,触发权限控制逻辑处理; 步骤504:基于所述步骤502触发的权限控制逻辑按照数据对象的活动特定的插件规范,将权限控制逻辑处理作为一个插件注册进数据对象的活动的插件列表,数据对象活动读取注册的插件,完成数据对象的权限控制逻辑; 步骤506:基于所述步骤504完成的数据对象的权限控制逻辑,将数据对象的活动处理通过显式调用权限单元提供的权限控制逻辑方法完成数据对象的权限控制逻辑,将数据活动和权限逻辑区隔开来;数据对象活动处理只依赖于权限单元提供的权限控制逻辑方法的签名。
【文档编号】G06F21/62GK103646218SQ201310683562
【公开日】2014年3月19日 申请日期:2013年12月12日 优先权日:2013年12月12日
【发明者】罗涛 申请人:用友软件股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1