首页> 中国专利> 数据访问权限和行为权限的定义装置和定义方法

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

摘要

本发明提供了一种数据访问权限和行为权限的定义装置,包括:数据绑定模块,通过基于数据对象元数据建立的绑定通道,关联数据对象和权限数据对象;权限处理模块,基于前述关联,管理权限的集合,提供权限的创建、更新和校验方法;数据处理模块,通过事件处理或插件机制或服务调用,将数据对象和权限管理器建立逻辑关联。本发明还提供了一种数据访问权限和行为权限的定义方法。通过本发明的技术方案,可以在现有数据访问权限和行为权限定义方式基础上,充分利用静态数据访问权限和行为权限完成动态数据访问权限和行为权限定义,建立动态数据访问权限和行为权限参与的面向控制和动态扩展数据访问权限和行为权限的通用、统一定义思路。

著录项

  • 公开/公告号CN103646218A

    专利类型发明专利

  • 公开/公告日2014-03-19

    原文格式PDF

  • 申请/专利权人 用友软件股份有限公司;

    申请/专利号CN201310683562.6

  • 发明设计人 罗涛;

    申请日2013-12-12

  • 分类号G06F21/62(20130101);

  • 代理机构11249 北京中恒高博知识产权代理有限公司;

  • 代理人刘洪京

  • 地址 100094 北京市海淀区北清路68号用友软件园

  • 入库时间 2024-02-19 22:53:23

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-09-28

    授权

    授权

  • 2015-12-30

    著录事项变更 IPC(主分类):G06F21/62 变更前: 变更后: 申请日:20131212

    著录事项变更

  • 2014-04-16

    实质审查的生效 IPC(主分类):G06F21/62 申请日:20131212

    实质审查的生效

  • 2014-03-19

    公开

    公开

说明书

技术领域

本发明涉及数据处理技术领域,具体地,涉及一种数据访问权限和行为权限 的定义装置和一种数据访问权限和行为权限的定义方法。

背景技术

在数据处理流程和功能快速变化持续改进的情况下,用户期待保持数据对象 不变的情况下,支持更丰富的更灵活的权限控制逻辑实现,目前通用的实现方面有以 下共同的特性:

⑴在设计态使用管控模式描述数据的可见范围;⑵在定义数据时指定所属的 管控模式,及确定数据的可见范围;⑶设计态定义可支持的行为组织之间的委托关系 类型,使用委托关系定义实现数据所属组织之间的行为赋权定义;并绑定固定的业务 处理逻辑;⑷设计态明确定义指定某类行为的执行者的数据属性,固化执行者属性, 并在设计态代码中行为执行者使用执行者属性决定行为处理逻辑;⑸运行态具体数 据,依据该类数据使用的管控范围控制可见性;⑹运行态具体数据,依据定义该数据 的组织和具体行为的执行组织之间的业务委托关系来选择具体行为的执行组织并保 存为具体数据的行为执行者属性的数据值;⑺运行态是否可对具体数据执行某行为, 依据该数据的行为执行者属性是否为当前行为组织来决定;⑻使用分配或下发功能实 现某类数据在不同的可见性范围内的可见性赋权。

另外,在专利(申请)号为201010585547、名称为“一种权限配置方法、装 置及系统”的专利(申请)文件中,提供了一种权限配置方法、装置及系统,所述方 法包括下述步骤:在系统页面中生成功能菜单;将所述功能菜单对应的权限配置页签 载入所述系统页面;在所述权限配置页签中配置所述功能菜单的权限。本发明通过在 对功能菜单进行定义时从权限管理模块中调用权限配置页签并进行载入,实现在同一 页面完成对功能菜单的定义和权限配置,减少了用户的操作步骤,提高了系统的易用 性。

在专利(申请)号为201010536592、名称为“权限管理方法和装置、权限控 制方法和装置”的专利(申请)文件中,提供了一种权限管理方法和装置、权限控制 方法和装置,其中的权限控制方法具体包括:依据预置的用户与角色之间的多对多映 射关系,获取当前用户所对应的多个角色;依据预置的角色权限映射关系,获取所述 多个角色对应的权限;依据所述多个角色对应的权限,向所述当前用户开放权限。本 发明能够提高用户的工作效率,且增加权限使用的方便性。

以上技术在一定程度上实现了数据对象和权限逻辑的分离,提高了开发效率 和用户体验。但仍存在一些不足:

⑴在定义数据对象时其可见性范围就需要确定,并且管控模式是预定义的系 统参数,不能支持不同数据的可见性范围的差异化需求。同类数据,由于其生命周期 的不同,各生命周期阶段的可见性范围存在不同。

⑵数据对象和权限控制紧密绑定,在定义数据对象时其行为执行者就需要确 定。而现实情况是行为组织之间的委托关系,一般用于比较稳定的业务行为,对于很 多临时性的业务行为,需要按照具体数据临时指定,在定义数据时不能确定。

⑶在企业管理软件中,经常会有根据不同场景定义多种不同的可见性范围和 业务行为委托关系,现有技术在运行期间,不能很好地支持这种权限控制逻辑的扩展。

通常情况下,软件的某个功能模块包括该业务数据、逻辑操作,以及用户界 面(UI)。其中,业务数据是功能模块要处理或生成的数据对象,逻辑操作是对业务 数据的处理过程和方法,用户界面向用户呈现业务数据,并负责把用户的操作映射为 逻辑操作,并把操作的结果反馈给用户。

现有技术一般通过数据处理完成数据对象的活动处理与业务数据(包括权限 数据)处理模块间的交互,其中处理权限控制的逻辑硬代码编写在数据对象的活动处 理实现中。如图6所示。

当执行定义某数据的活动处理时,比如新增或修改数据对象时,需要根据委 托关系指定相关行为执行者,并根据系统对该数据指定的管控范围验证唯一性。当执 行特定的行为,比如对数据对象执行销售时,对应的活动接收要处理的数据对象,读 取数据对象,包括数据的权限数据,首先按照数据的可见性范围确定当前执行者是否 可对该数据执行该行为,及该执行者是否是相关行为执行者,执行权限控制的逻辑硬 代码,验证通过,执行其它逻辑,从而完成对用户操作指令做出相应的业务逻辑操作。

根据现有技术的特性,程序模块设计和运行期间表现为如图7所示的形式。 在设计和运行时,数据对象的权限数据被固化为系统参数和数据对象的行为执行者等 固定的有限的属性,活动的逻辑和权限控制逻辑针对该数据结构进行硬编码,所有代 码被包装在同一个活动处理的程序对象中,这个程序对象既包含数据对象活动的逻 辑,又包含权限控制逻辑。不论是在设计时还是在运行时,数据对象活动的逻辑和权 限控制的数据结构和逻辑都有完全耦合关系,由于固化属性,使得扩展行为组织就必 须添加属性,同时修改控制逻辑代码,从而使设计时并行开发、运行时动态扩展和替 换权限控制逻辑等需求难以实现。

因此,需要一种新的数据访问权限和行为权限的定义技术,可以在现有的数 据访问权限和行为权限定义方式基础上,充分利用静态数据访问权限和行为权限完成 动态数据访问权限和行为权限定义,建立动态数据访问权限和行为权限参与的面向控 制和动态扩展数据访问权限和行为权限的通用、统一定义思路。

发明内容

本发明正是基于上述问题,提出了一种新的数据访问权限和行为权限的定义 技术,可以在现有的数据访问权限和行为权限定义方式基础上,充分利用静态数据访 问权限和行为权限完成动态数据访问权限和行为权限定义,建立动态数据访问权限和 行为权限参与的面向控制和动态扩展数据访问权限和行为权限的通用、统一定义思 路。

有鉴于此,本发明提出了一种数据访问权限和行为权限的定义装置,包括: 数据绑定模块,用于基于数据对象元数据建立绑定通道,通过绑定通道关联数据对象 和权限数据对象,并在数据新增或执行业务角色分配时更新权限数据对象的权限;权 限处理模块,用于基于所述数据绑定模块关联的数据对象和权限数据对象,管理权限 的集合,提供权限的创建、更新和校验方法;数据处理模块,用于在所述权限处理模 块实现权限管理的基础上,通过事件处理或插件机制或服务调用,将数据对象和权限 管理器建立逻辑关联。在该技术方案中,可以通过在数据对象和权限数据之间建立关 联,通过权限管理器对数据的权限进行创建、更新、校验和管理,在数据对象和权限 管理器之间建立逻辑关联,从而将根据权限数据对象同步记录最新的权限,灵活性大, 处理效率高。

在上述技术方案中,优选地,所述数据绑定模块,具体包括:绑定通道建立 模块,用于在数据对象元数据中指定绑定源和绑定路径,建立绑定通道;元数据被加 载并创建为数据对象后,控件可根据绑定上下文自动获取绑定的数据,并在更改时同 步更新绑定源;关联及更新模块,用于数据对象和权限数据对象经过所述绑定通道建 立模块建立的绑定通道直接关联,更改通知机制负责在数据新增或执行业务角色分配 时通知权限数据最新的权限,权限数据对象同步记录最新的权限。

在上述技术方案中,优选地,所述权限处理模块,具体包括:权限管理模块, 用于权限管理器管理权限的集合,权限集合允许在设计态设置,同时支持在实际流程 中对权限进行灵活配置;权限创建模块,用于权限管理器提供权限创建的方法,以创 建权限、并通过数据绑定获取数据对象的所有权限;权限更新模块,用于权限管理器 提供权限更新的方法,以更新权限、并通过数据绑定获取数据对象的权限;权限校验 模块,用于权限管理器提供权限校验的方法,以校验当前权限下当前活动是否允许执 行;权限控制模块,用于在每个权限中定义包含多个权限控制项的集合,每个控制项 控制项目自身的活动或其它的数据的活动是否允许在该权限下执行;该权限控制项集 合允许在设计态设置,同时支持在实际流程中对权限进行灵活配置。

在上述技术方案中,优选地,所述权限管理模块和/或所述权限控制模块在实 际流程中对权限进行灵活配置的操作,具体包括:在运行态根据实际需要扩展、修改 或新建;以及,所述权限创建模块提供的权限创建方法,具体包括:接收数据对象和 权限设置数据,判断该接收数据的对应权限是否存在:若存在,则返回权限已存在而 不能创建的消息;若不存在,则创建该接收数据的权限实例数据;以及,所述权限更 新模块提供的权限更新方法,具体包括:接收数据对象和新旧权限设置数据,如果新 旧权限都为空,则返回权限未指定而不能更新的消息;如果新旧权限都不为空,则: 首先读取数据对象的旧权限,如果数据对象的旧权限不存在,则返回权限不存在而不 能更新的消息;然后查询数据对象是否存在新权限,如果数据对象存在新权限,则返 回权限已存在而不能更新的消息;最后将旧权限替换为新权限,如果旧权限为空,则 执行创建权限过程;如果新权限为空,则删除旧权限;以及,所述权限校验模块提供 的权限校验方法,具体包括:接收执行者、数据对象和业务活动,首先读取数据对象 的当前执行者的当前角色,然后读取该角色的权限控制项集合,判定当前活动是否允 许执行并返回结果。

在上述技术方案中,优选地,所述数据处理模块,具体包括:事件处理模块, 用于解除数据对象的活动处理和权限控制逻辑代码间的依赖关系,权限控制逻辑通过 侦听数据对象的活动发出的事件,触发权限控制逻辑处理;插件处理模块,用于基于 所述事件处理模块触发的权限控制逻辑按照数据对象的活动特定的插件规范,将权限 控制逻辑处理作为一个插件注册进数据对象的活动的插件列表,数据对象活动读取注 册的插件,完成数据对象的权限控制逻辑;服务调用模块,用于基于所述插件处理模 块完成的数据对象的权限控制逻辑,将数据对象的活动处理通过显式调用权限单元提 供的权限控制逻辑方法完成数据对象的权限控制逻辑,将数据活动和权限逻辑区隔开 来;数据对象活动处理只依赖于权限单元提供的权限控制逻辑方法的签名。

根据本发明的又一个方面,还提出了一种数据访问权限和行为权限的定义方 法,包括:步骤202:基于数据对象元数据建立绑定通道,通过绑定通道关联数据对 象和权限数据对象,并在数据新增或执行业务角色分配时更新权限数据对象的权限; 步骤204:基于所述步骤202关联的数据对象和权限数据对象,管理权限的集合,提 供权限的创建、更新和校验方法;步骤206:在所述步骤204实现权限管理的基础上, 通过事件处理或插件机制或服务调用,将数据对象和权限管理器建立逻辑关联。在该 技术方案中,可以通过在数据对象和权限数据之间建立关联,通过权限管理器对数据 的权限进行创建、更新、校验和管理,在数据对象和权限管理器之间建立逻辑关联, 从而将根据权限数据对象同步记录最新的权限,灵活性大,处理效率高。

在上述技术方案中,优选地,所述步骤202,具体包括:步骤302:在数据 对象元数据中指定绑定源和绑定路径,建立绑定通道;元数据被加载并创建为数据对 象后,控件可根据绑定上下文自动获取绑定的数据,并在更改时同步更新绑定源;步 骤304:数据对象和权限数据对象经过所述步骤302建立的绑定通道直接关联,更改 通知机制负责在数据新增或执行业务角色分配时通知权限数据最新的权限,权限数据 对象同步记录最新的权限。

在上述技术方案中,优选地,所述步骤204,具体包括:步骤402:权限管 理器管理权限的集合,权限集合允许在设计态设置,同时支持在实际流程中对权限进 行灵活配置;步骤404:权限管理器提供权限创建的方法,以创建权限、并通过数据 绑定获取数据对象的所有权限;步骤406:权限管理器提供权限更新的方法,以更新 权限、并通过数据绑定获取数据对象的权限;步骤408:权限管理器提供权限校验的 方法,以校验当前权限下当前活动是否允许执行;步骤410:在每个权限中定义包含 多个权限控制项的集合,每个控制项控制项目自身的活动或其它的数据的活动是否允 许在该权限下执行;该权限控制项集合允许在设计态设置,同时支持在实际流程中对 权限进行灵活配置。

在上述技术方案中,优选地,所述步骤402和/或所述步骤410在实际流程中 对权限进行灵活配置的操作,具体包括:在运行态根据实际需要扩展、修改或新建; 以及,所述步骤404提供的权限创建方法,具体包括:接收数据对象和权限设置数据, 判断该接收数据的对应权限是否存在:若存在,则返回权限已存在而不能创建的消息; 若不存在,则创建该接收数据的权限实例数据;以及,所述步骤406提供的权限更新 方法,具体包括:接收数据对象和新旧权限设置数据,如果新旧权限都为空,则返回 权限未指定而不能更新的消息;如果新旧权限都不为空,则:首先读取数据对象的旧 权限,如果数据对象的旧权限不存在,则返回权限不存在而不能更新的消息;然后查 询数据对象是否存在新权限,如果数据对象存在新权限,则返回权限已存在而不能更 新的消息;最后将旧权限替换为新权限,如果旧权限为空,则执行创建权限过程;如 果新权限为空,则删除旧权限;以及,所述步骤408提供的权限校验方法,具体包括: 接收执行者、数据对象和业务活动,首先读取数据对象的当前执行者的当前角色,然 后读取该角色的权限控制项集合,判定当前活动是否允许执行并返回结果。

在上述技术方案中,优选地,所述步骤206,具体包括:步骤502:解除数 据对象的活动处理和权限控制逻辑代码间的依赖关系,权限控制逻辑通过侦听数据对 象的活动发出的事件,触发权限控制逻辑处理;步骤504:基于所述步骤502触发的 权限控制逻辑按照数据对象的活动特定的插件规范,将权限控制逻辑处理作为一个插 件注册进数据对象的活动的插件列表,数据对象活动读取注册的插件,完成数据对象 的权限控制逻辑;步骤506:基于所述步骤504完成的数据对象的权限控制逻辑,将 数据对象的活动处理通过显式调用权限单元提供的权限控制逻辑方法完成数据对象 的权限控制逻辑,将数据活动和权限逻辑区隔开来;数据对象活动处理只依赖于权限 单元提供的权限控制逻辑方法的签名。

通过以上技术方案,可以在现有的数据访问权限和行为权限定义方式基础 上,充分利用静态数据访问权限和行为权限完成动态数据访问权限和行为权限定义, 建立动态数据访问权限和行为权限参与的面向控制和动态扩展数据访问权限和行为 权限的通用、统一定义思路。

附图说明

图1示出了根据本发明的实施例的数据访问权限和行为权限的定义装置的框 图;

图2示出了根据本发明的实施例的数据访问权限和行为权限的定义方法的流 程图;

图3示出了根据本发明的实施例的数据绑定模块的工作流程图;

图4示出了根据本发明的实施例的权限处理模块的工作流程图;

图5示出了根据本发明的实施例的数据处理模块的工作流程图;

图6示出了现有的数据对象的活动处理与业务数据(包括权限数据)处理模 块间的交互流程图;

图7示出了现有的程序模块设计和运行期间表现形式图;

图8示出了根据本发明的实施例的数据对象的权限控制逻辑图;

图9示出了根据本发明的实施例的以项目经理为示例的权限管理对象层次结 构图;

图10示出了根据本发明的实施例的触发权限控制逻辑处理机制图;

图11示出了根据本发明的实施例的数据对象的权限控制逻辑处理机制图;

图12示出了根据本发明的实施例的将数据活动和权限逻辑区隔开来的处理 机制图。

具体实施方式

为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具 体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本 申请的实施例及实施例中的特征可以相互组合。

在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明 还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受 下面公开的具体实施例的限制。

图1示出了根据本发明的实施例的数据访问权限和行为权限的定义装置的框 图。

如图1所示,根据本发明的实施例的数据访问权限和行为权限的定义装置 100,包括:数据绑定模块102,用于基于数据对象元数据建立绑定通道,通过绑定通 道关联数据对象和权限数据对象,并在数据新增或执行业务角色分配时更新权限数据 对象的权限;权限处理模块104,用于基于数据绑定模块102关联的数据对象和权限 数据对象,管理权限的集合,提供权限的创建、更新和校验方法;数据处理模块106, 用于在权限处理模块104实现权限管理的基础上,通过事件处理或插件机制或服务调 用,将数据对象和权限管理器建立逻辑关联。在该技术方案中,可以通过在数据对象 和权限数据之间建立关联,通过权限管理器对数据的权限进行创建、更新、校验和管 理,在数据对象和权限管理器之间建立逻辑关联,从而将根据权限数据对象同步记录 最新的权限,灵活性大,处理效率高。

在上述技术方案中,优选地,数据绑定模块102具体包括:绑定通道建立模 块,用于在数据对象元数据中指定绑定源和绑定路径,建立绑定通道;元数据被加载 并创建为数据对象后,控件可根据绑定上下文自动获取绑定的数据,并在更改时同步 更新绑定源;关联及更新模块,用于数据对象和权限数据对象经过绑定通道建立模块 建立的绑定通道直接关联,更改通知机制负责在数据新增或执行业务角色分配时通知 权限数据最新的权限,权限数据对象同步记录最新的权限。

在上述技术方案中,优选地,权限处理模块104具体包括:权限管理模块, 用于权限管理器管理权限的集合,权限集合允许在设计态设置,同时支持在实际流程 中对权限进行灵活配置;权限创建模块,用于权限管理器提供权限创建的方法,以创 建权限、并通过数据绑定获取数据对象的所有权限;权限更新模块,用于权限管理器 提供权限更新的方法,以更新权限、并通过数据绑定获取数据对象的权限;权限校验 模块,用于权限管理器提供权限校验的方法,以校验当前权限下当前活动是否允许执 行;权限控制模块,用于在每个权限中定义包含多个权限控制项的集合,每个控制项 控制项目自身的活动或其它的数据的活动是否允许在该权限下执行;该权限控制项集 合允许在设计态设置,同时支持在实际流程中对权限进行灵活配置。

在上述技术方案中,优选地,权限管理模块和/或权限控制模块在实际流程中 对权限进行灵活配置的操作,具体包括:在运行态根据实际需要扩展、修改或新建; 以及,权限创建模块提供的权限创建方法,具体包括:接收数据对象和权限设置数据, 判断该接收数据的对应权限是否存在:若存在,则返回权限已存在而不能创建的消息; 若不存在,则创建该接收数据的权限实例数据;以及,权限更新模块提供的权限更新 方法,具体包括:接收数据对象和新旧权限设置数据,如果新旧权限都为空,则返回 权限未指定而不能更新的消息;如果新旧权限都不为空,则:首先读取数据对象的旧 权限,如果数据对象的旧权限不存在,则返回权限不存在而不能更新的消息;然后查 询数据对象是否存在新权限,如果数据对象存在新权限,则返回权限已存在而不能更 新的消息;最后将旧权限替换为新权限,如果旧权限为空,则执行创建权限过程;如 果新权限为空,则删除旧权限;以及,权限校验模块提供的权限校验方法,具体包括: 接收执行者、数据对象和业务活动,首先读取数据对象的当前执行者的当前角色,然 后读取该角色的权限控制项集合,判定当前活动是否允许执行并返回结果。

在上述技术方案中,优选地,数据处理模块106具体包括:事件处理模块, 用于解除数据对象的活动处理和权限控制逻辑代码间的依赖关系,权限控制逻辑通过 侦听数据对象的活动发出的事件,触发权限控制逻辑处理;插件处理模块,用于基于 事件处理模块触发的权限控制逻辑按照数据对象的活动特定的插件规范,将权限控制 逻辑处理作为一个插件注册进数据对象的活动的插件列表,数据对象活动读取注册的 插件,完成数据对象的权限控制逻辑;服务调用模块,用于基于插件处理模块完成的 数据对象的权限控制逻辑,将数据对象的活动处理通过显式调用权限单元提供的权限 控制逻辑方法完成数据对象的权限控制逻辑,将数据活动和权限逻辑区隔开来;数据 对象活动处理只依赖于权限单元提供的权限控制逻辑方法的签名。

图2示出了根据本发明的实施例的数据访问权限和行为权限的定义方法的流 程图。

如图2所示,根据本发明的实施例的数据访问权限和行为权限的定义方法, 包括:步骤202:基于数据对象元数据建立绑定通道,通过绑定通道关联数据对象和 权限数据对象,并在数据新增或执行业务角色分配时更新权限数据对象的权限;步骤 204:基于步骤202关联的数据对象和权限数据对象,管理权限的集合,提供权限的 创建、更新和校验方法;步骤206:在步骤204实现权限管理的基础上,通过事件处 理或插件机制或服务调用,将数据对象和权限管理器建立逻辑关联。在该技术方案中, 可以通过在数据对象和权限数据之间建立关联,通过权限管理器对数据的权限进行创 建、更新、校验和管理,在数据对象和权限管理器之间建立逻辑关联,从而将根据权 限数据对象同步记录最新的权限,灵活性大,处理效率高。

在上述技术方案中,优选地,如图3所示,步骤202具体包括:步骤302: 在数据对象元数据中指定绑定源和绑定路径,建立绑定通道;元数据被加载并创建为 数据对象后,控件可根据绑定上下文自动获取绑定的数据,并在更改时同步更新绑定 源;步骤304:数据对象和权限数据对象经过步骤302建立的绑定通道直接关联,更 改通知机制负责在数据新增或执行业务角色分配时通知权限数据最新的权限,权限数 据对象同步记录最新的权限。

在上述技术方案中,优选地,如图4所示,步骤204具体包括:步骤402: 权限管理器管理权限的集合,权限集合允许在设计态设置,同时支持在实际流程中对 权限进行灵活配置;步骤404:权限管理器提供权限创建的方法,以创建权限、并通 过数据绑定获取数据对象的所有权限;步骤406:权限管理器提供权限更新的方法, 以更新权限、并通过数据绑定获取数据对象的权限;步骤408:权限管理器提供权限 校验的方法,以校验当前权限下当前活动是否允许执行;步骤410:在每个权限中定 义包含多个权限控制项的集合,每个控制项控制项目自身的活动或其它的数据的活动 是否允许在该权限下执行;该权限控制项集合允许在设计态设置,同时支持在实际流 程中对权限进行灵活配置。

在上述技术方案中,优选地,步骤402和/或步骤410在实际流程中对权限进 行灵活配置的操作,具体包括:在运行态根据实际需要扩展、修改或新建;以及,步 骤404提供的权限创建方法,具体包括:接收数据对象和权限设置数据,判断该接收 数据的对应权限是否存在:若存在,则返回权限已存在而不能创建的消息;若不存在, 则创建该接收数据的权限实例数据;以及,步骤406提供的权限更新方法,具体包括: 接收数据对象和新旧权限设置数据,如果新旧权限都为空,则返回权限未指定而不能 更新的消息;如果新旧权限都不为空,则:首先读取数据对象的旧权限,如果数据对 象的旧权限不存在,则返回权限不存在而不能更新的消息;然后查询数据对象是否存 在新权限,如果数据对象存在新权限,则返回权限已存在而不能更新的消息;最后将 旧权限替换为新权限,如果旧权限为空,则执行创建权限过程;如果新权限为空,则 删除旧权限;以及,步骤408提供的权限校验方法,具体包括:接收执行者、数据对 象和业务活动,首先读取数据对象的当前执行者的当前角色,然后读取该角色的权限 控制项集合,判定当前活动是否允许执行并返回结果。

在上述技术方案中,优选地,如图5所示,步骤206具体包括:步骤502: 解除数据对象的活动处理和权限控制逻辑代码间的依赖关系,权限控制逻辑通过侦听 数据对象的活动发出的事件,触发权限控制逻辑处理;步骤504:基于步骤502触发 的权限控制逻辑按照数据对象的活动特定的插件规范,将权限控制逻辑处理作为一个 插件注册进数据对象的活动的插件列表,数据对象活动读取注册的插件,完成数据对 象的权限控制逻辑;步骤506:基于步骤504完成的数据对象的权限控制逻辑,将数 据对象的活动处理通过显式调用权限单元提供的权限控制逻辑方法完成数据对象的 权限控制逻辑,将数据活动和权限逻辑区隔开来;数据对象活动处理只依赖于权限单 元提供的权限控制逻辑方法的签名。

例如,在本发明的技术方案中,为实现针对数据在不同生命周期阶段需要控 制不同的访问权限和行为权限,本发明提出一种通过数据绑定、权限处理(事件处 理或插件机制或服务调用或AOP)和数据处理来实现的实现方法。其中,数据绑定实 现数据对象到权限数据的映射,使数据对象可以从权限逻辑中独立出来,并在权限数 据和数据对象之间保持关联;数据处理完成数据对象的活动对数据对象的变更影响, 同时进行权限的定义和控制处理;权限处理主要有以下几种方式:

⑴事件处理机制,解除数据对象的活动处理和权限控制逻辑代码间的依赖关 系,权限控制逻辑通过侦听数据对象的活动发出的事件,触发权限控制逻辑处理;

⑵插件机制,是另一种解除数据对象的活动处理和权限控制逻辑代码间的依 赖关系的方法,权限控制逻辑按照数据对象的活动特定的插件规范,将权限控制逻辑 处理作为一个插件注册进数据对象的活动的插件列表,数据对象活动读取注册的插 件,从而完成数据对象的权限控制逻辑;

⑶方法调用,是数据对象的活动处理通过显式调用权限单元提供的权限控制 逻辑方法完成数据对象的权限控制逻辑,这种机制下,数据对象活动处理只依赖于权 限单元提供的权限控制逻辑方法的签名,不依赖于其内部逻辑,从功能上将数据活动 和权限逻辑区隔开来。

⑷AOP实现,是另一种解除数据对象的活动处理和权限控制逻辑代码间的依 赖关系的方法,权限控制逻辑实现为权限控制AOP方面,数据对象的活动标记需要 处理权限AOP,执行活动时,通过AOP机制自动触发权限控制,从而完成数据对象 的权限控制逻辑;如图8所示。

具体地,本发明技术方案的实现过程可以如下:

㈠数据绑定

作为一项现有的通用技术,数据绑定简化了应用程序开发。数据绑定技术是 实现数据对象及活动与权限逻辑分离方法的基础。

数据对象和权限数据对象经过绑定通道直接关联,更改通知机制负责在数据 新增或执行业务角色分配时通知权限数据最新的权限,权限数据对象同步记录最新的 权限。这样,避免了由活动逻辑模块处理权限逻辑并转换为数据对象数据的操作。同 时,绑定机制动态更改绑定上下文,同一个权限可处理不同的数据对象而不需做出改 动。

例如,在项目管理模块中,项目的权限根据不同的项目类型会有不同的权限 个数。定义为项目数据和权限数据:

行为权限定义

权限 权限分类 新建 内部 计划   预算   验收   完工   移交   关闭   销售 外部 生产   采购   库存   财务   收付  

行为权限与业务对照定义

权限 业务 新建 新建项目 计划 项目计划 预算 项目预算 验收 项目验收 完工 项目完工 移交 项目产出物移交 关闭 项目结项 销售 销售订单 生产 生产订单 采购 物资需求申请单,请购单,采购订单 库存 入库单,材料出库单 财务 总账凭证 收付 应收单,应付单,付款单,收款单

权限角色

角色 权限分类 权限 项目经理 内部   预算员 内部 预算 营销中心 外部 销售 项目库管 外部 库存 财务入账 外部 财务

新增项目如下:

项目

项目号 项目类型 创建人 Proj01 业主方基建 罗涛

项目保存后,权限数据如下:

可见性权限

项目号 可见性范围 唯一性范围 阶段 Proj01 组织 集团 新建

行为权限

项目号 角色 组织 Proj01 项目经理 项目组织 罗涛        

执行业务授权

项目号 角色 组织 Proj01 营销中心 上海营销中心     财务入账 北京公司  

此时,权限数据如下:

可见性权限

项目号 可见性范围 唯一性范围 阶段 Proj01 组织 集团 新建

行为权限

项目号 角色 组织 Proj01 项目经理 项目组织 罗涛 Proj01 营销中心 上海营销中心   Proj01 财务入账 北京公司  

在本发明的技术方案中,数据绑定为数据对象和权限数据对象之间提供数据 同步的交互途径。在数据对象元数据中指定绑定源和绑定路径,元数据被加载并创建 为数据对象后,控件可根据绑定上下文自动获取绑定的数据,并在更改时同步更新绑 定源。

㈡权限处理

在管理软件中,业务数据在不同的权限下数据对象的可执行业务操作会有不 同。当设置某个活动使业务数据对象权限发生改变时,权限数据会发生变化。例如项 目可能有项目经理,营销,库存等权限。不同权限下,项目允许执行不同的活动的控 制逻辑,如是否可被某公司用于销售、是否可撤消发布、是否可关闭等情况,这要求 项目数据同时也能反映项目权限,确定可以执行哪些活动,不可以执行哪些活动。

通常开发中,权限控制逻辑需要业务逻辑模块根据业务数据权限在活动内部 编码实现,需要较多的权限判断操作,并且逻辑代码需要明确引用并固化实现权限的 控制逻辑。这种控制方式繁琐且耦合度较高。本发明描述的权限处理技术可以为数据 对象权限控制提供简单的方案。

权限处理机制涉及的对象包括权限管理器、角色实例、可见权限控制项、行 为权限控制项,以项目经理为示例的权限管理对象层次结构如图9所示。

其中,⑴权限管理器管理权限的集合,权限集合允许在设计态设置,同时支 持在运行态根据实际需要扩展,修改或新建。⑵权限管理器提供权限创建的方法以便 程序可以创建权限,并通过数据绑定获取数据对象的所有权限;该方法接收数据对象 和权限设置数据,判断该数据的对应权限是否存在,如果存在,返回权限已存在,不 能创建消息,如果不存在,则创建该数据的权限实例数据。⑶权限管理器提供权限更 新的方法以便程序可以更新权限,并通过数据绑定获取数据对象的权限;该方法接收 数据对象和新旧权限设置数据,如果新旧权限都为空,返回权限未指定,不能更新的 消息;如果新旧权限都不为空,则首先读取数据对象的旧权限,如果不存在,返回权 限不存在,不能更新的消息,然后查询数据对象是否存在新权限,如果存在,返回权 限已存在,不能更新的消息,最后将旧权限替换为新权限;如果旧权限为空,则执行 创建权限过程;如果新权限为空,则删除旧权限。⑷权限管理器提供权限校验的方法 以便程序可以校验当前权限下当前活动是否允许执行;该方法接收执行者,数据对象 和业务活动,首先读取数据对象的当前执行者的当前角色,然后读取该角色的权限控 制项集合,判定当前活动是否允许执行并返回结果。⑸每个权限中可定义包含多个权 限控制项的集合,每个控制项控制项目自身的活动或其它的数据的活动是否允许在该 权限下执行;该集合允许在设计态设置,同时支持在运行态根据实际需要扩展,修改 或新建。⑹权限管理器的权限集合,权限控制项集合支持根据实际需要在运行时动态 扩展和修改或新建,以支持实际流程对于权限的灵活配置。

㈢数据处理

在实现权限管理器的基础上,数据处理通过事件处理或插件机制或服务调 用,将数据对象和权限管理器建立逻辑关联。执行活动时自动获取数据对象的当前权 限值,执行前通知权限管理器校验活动是否可执行,对于角色分配活动,活动执行完 成后通知权限管理器更新数据的权限,权限管理器刷新权限后,绑定机制通知数据对 象权限已更改,并自动传送最新权限值,然后校验数据对象在当前可见权限下的唯一 性。

数据处理主要有以下三种方式:

⑴事件处理机制,解除数据对象的活动处理和权限控制逻辑代码间的依赖关 系,权限控制逻辑通过侦听数据对象的活动发出的事件,触发权限控制逻辑处理;处 理机制如图10所示。

一般活动包括:①当针对数据对象执行某个活动时,该活动获取数据对象的 实例,并将其作为事件的参数,发出该活动的开始事件;②权限管理器侦听该活动的 开始事件,调用权限校验方法,返回校验结果;③如果校验不通过,权限管理器返回 不通过的异常结果;④该活动接收不通过的异常结果,返回活动调用者;⑤活动执行 完成后,发出该活动的完成事件。

角色分配活动包括:①当针对数据对象执行某个活动时,该活动获取数据对 象的实例,并将其作为事件的参数,发出该活动的开始事件;②权限管理器侦听该活 动的开始事件,调用权限校验方法,返回校验结果;③如果校验不通过,权限管理器 返回不通过的异常结果;④该活动接收不通过的异常结果,返回活动调用者;⑤活动 执行完成后,发出该活动的完成事件;⑥权限管理器侦听该活动的完成事件,调用权 限更新方法,执行权限更新。

⑵插件机制,是另一种解除数据对象的活动处理和权限控制逻辑代码间的依 赖关系的方法,权限控制逻辑按照数据对象的活动特定的插件规范,将权限控制逻辑 处理作为一个插件注册进数据对象的活动的插件列表,数据对象活动读取注册的插 件,从而完成数据对象的权限控制逻辑;处理机制如图11所示。

一般活动包括:①设计态,权限管理器针对活动公布的处理前和完成插件标 准,编写符合要求的权限校验和权限更新插件代码,该插件代码内部分别调用权限管 理器的权限校验方法和权限更新方法。②当针对数据对象执行某个活动时,该活动获 取数据对象的实例,调用处理前插件中注册的插件,调用权限管理器的校验插件;③ 权限管理器的校验插件调用权限校验方法,返回校验结果;④如果校验不通过,权限 管理器返回不通过的异常结果;⑤该活动接收不通过的异常结果,返回活动调用者; ⑥活动执行后即动作。

角色分配活动包括:①设计态,权限管理器针对活动公布的处理前和完成插 件标准,编写符合要求的权限校验和权限更新插件代码,该插件代码内部分别调用权 限管理器的权限校验方法和权限更新方法。②当针对数据对象执行某个活动时,该活 动获取数据对象的实例,调用处理前插件中注册的插件,调用权限管理器的校验插件。 ③权限管理器的校验插件调用权限校验方法,返回校验结果。④如果校验不通过,权 限管理器返回不通过的异常结果。⑤该活动接收不通过的异常结果,返回活动调用者。 ⑥活动执行完成后,调用完成插件中注册的插件,调用权限管理器的完成插件。⑦权 限管理器的完成插件调用权限更新方法,执行权限更新。

⑶方法调用,是数据对象的活动处理通过显式调用权限单元提供的权限控制 逻辑方法完成数据对象的权限控制逻辑,这种机制下,数据对象活动处理只依赖于权 限单元提供的权限控制逻辑方法的签名,不依赖于其内部逻辑,从功能上将数据活动 和权限逻辑区隔开来。处理机制如图12所示。

一般活动包括:①设计态,活动根据权限管理器公布的权限校验方法和权限 更新方法,在活动内部分别编写调用权限管理器的权限校验方法和权限更新方法的代 码实现。②运行时,当针对数据对象执行某个活动时,该活动获取数据对象的实例, 主动调用权限管理器的校验方法。③如果校验不通过,权限管理器返回不通过的异常 结果。④该活动接收不通过的异常结果,返回活动调用者。⑤校验通过,执行活动其 他处理。

角色分配活动包括:①设计态,活动根据权限管理器公布的权限校验方法和 权限更新方法,在活动内部分别编写调用权限管理器的权限校验方法和权限更新方法 的代码实现。②运行时,当针对数据对象执行某个活动时,该活动获取数据对象的实 例,主动调用权限管理器的校验方法。③如果校验不通过,权限管理器返回不通过的 异常结果。④该活动接收不通过的异常结果,返回活动调用者。⑤校验通过,执行活 动其他处理。⑥活动执行完成时,调用权限管理器的权限更新方法,执行权限更新。

综上所述,本发明的技术方案,使用数据绑定、权限处理、数据处理技术在 设计时和运行时都拆分了数据对象和活动与权限数据和控制逻辑模块之间的依赖耦 合关系,支持在设计态和运行态根据实际需要扩展,修改或新建权限及其控制逻辑, 而不需要修改数据对象及其活动的逻辑代码。实现了数据对象和活动与控制逻辑相分 离的目的。

本发明的技术方案,描述一种实现针对数据在不同生命周期阶段需要控制不 同的访问权限,并指定哪些角色可以对该数据执行哪些行为的权限设置和控制的方 法。本发明的技术方案所描述的数据对象和活动与控制逻辑的分离方法,在设计时和 运行时带来了较大的灵活性和效率改进:

⑴支持在定义数据对象时不需要确定其可见性范围,支持同类数据,由于其 生命周期的不同,在各生命周期阶段定义不同的可见性范围;⑵通过角色绑定权限, 在定义数据对象的行为执行者时,不需要预先定义行为组织之间的委托关系,并且不 需要在定义数据时就指定,而是根据数据的不同生命周期阶段,按照具体数据通过角 色指派临时指定行为的执行者(可以是有委托关系的职能组织或临时指定);⑶支持 在运行态,通过角色维护和扩展,实现根据不同场景定义多种不同的可见性范围和业 务行为委托关系;⑷提供公共的API,支持业务数据的权限定义和控制;⑸提供多种 方式的权限控制方法,实现业务数据的权限控制。

本发明的技术方案,针对数据在不同生命周期阶段需要控制不同的访问权限 和行为权限的方法,通过实现行为绑定、权限绑定、逻辑模型绑定等机制,结合现有 的服务机制、事件机制和AOP技术等开发技术,最终实现一个针对数据在不同生命 周期阶段需要控制不同的访问权限和行为权限并可以动态扩展的系统。本发明的技术 方案,可应用于软件开发活动中实现根据需要在不同阶段指定具体角色对数据的访问 权限和行为权限,并实现权限控制逻辑和数据本身设计分离、并行开展,同时适用于 在软件系统中支持动态用户角色,权限定义和动态权限控制的应用场景。

本发明的技术方案中,名词解释如下:

访问权限:可以查看引用某数据的权限,包括:查询数据,参照数据等;

行为权限:可以使用某数据执行某种行为的权限,例如:销售行为表示可使 用该数据执行销售相关的处理;

管控模式:一种定义数据可见性和唯一性的实现技术,通过预先定义的管控 模式可定义数据的可见范围和唯一性校验范围,如管控模式是555,代表该数据只能 在上级集团定义,并在集团方位内,业务主键不能重复,同时表示该数据在集团及其 下属公司范围内可见;如管控模式是777,代表该数据只能由具体组织定义,并在具 体组织内,业务主键不能重复,同时表示该数据只能被定义的具体组织可见。

以上结合附图详细说明了本发明的技术方案,考虑到相关技术中没有简便 的、统一的针对动态数据访问权限和行为权限定义的解决办法。现有的数据访问权限 和行为权限定义无法完成有动态数据参与的访问权限和行为权限定义。因此,本发明 提出了一种数据访问权限和行为权限的定义装置和一种数据访问权限和行为权限的 定义方法,可以在现有的数据访问权限和行为权限定义方式基础上,充分利用静态数 据访问权限和行为权限完成动态数据访问权限和行为权限定义,建立动态数据访问权 限和行为权限参与的面向控制和动态扩展数据访问权限和行为权限的通用、统一定义 思路。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域 的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所 作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号