可配置的MES软件系统权限控制方法

2016-07-08 17:26:17 sophie

0 引言

 

  MES软件主要的处理对象就是生产现场的数据,并依据数据进行分析统计,从而反过来对生产提供指导、参考。所以如何保证数据准确是MES软件提高竞争力的重点解决的问题之一。造成数据错误或失准的主要原因就是MES软件用户对功能的错误使用(例如:在不正确的时机触发业务功能或者录入的数据不准确等),在部分生产工序繁多,MES软件系统的功能复杂的行业中,误操作的几率将会变大,其后果轻则降低生产效率,造成统计误差,重则无法按时完成交付,造成经济损失。避免这些问题的最好办法就是自动化,用机器设备的准确性来代替人为操作。但考虑到成本、实现技术等实际问题,目前最有效的方法是在MES软件中根据用户角色的职责来划分业务功能的权限,以精细化的权限控制来尽量避免误操作。

 

  权限控制的思想是按角色(即工种)的职责分配软件使用权限,(例如:一个用户是生产计划员,他的主要职责就是制定生产计划,那么他只有使用MES软件中计划模块的权限,其他关联的模块只有浏览权限)这样就做到权责明确,各尽其职,角色只对熟悉的业务功能有使用权限,不仅如此,对于职责内一些重要的业务功能还提供了多次验证机制,极大的减少甚至避免了误操作。目前大多数MES软件的权限控制不够灵活,不能任意修改。本文提供了一种可以通过修改权限配置从而更改权限控制的方法。

 

1 概念介绍

 

  首先介绍文中提到的一些基本概念:

 

  1)业务功能:软件表示层(页面)中提供的业务操作,主要是由按钮、文本框等控件来体现。用户点击按钮触发对应的业务功能(基于B/S架构的MES软件客户端就是由若干个页面组成,每个业务页面中又实现若干业务功能)。

 

  2)使用权限:对软件中业务功能的使用方式(以PDF文档的权限为例,有只读和更改等权限)。

 

  3)角色:对软件功能具有不同使用权限的用户(例如:管理员和普通用户)。

 

  由于权限是对业务功能的使用方式,而业务功能在软件中是以控件的方式体现,所以,权限控制主要是用户使用控件(按钮,文本框等)功能的控制。权限主要分为两大类。

 

  4)静态权限:是指控件的显示外观,一般在控件功能触发前进行控制,包括权限如下:

 

  (1)可见性(可见、不可见)。

 

  (2)使能性(可用、不可用)。

 

  5)动态权限:是指根据用户实际需求定义的限制,一般在用户触发控件功能后进行控制,下面以如下两种权限为例,实际开发中需要根据用户需求完成权限控制:

 

  (1)二次验证。

 

  (2)参考值。

 

  对于“二次验证”的控制方式,是需要再次进行鉴权的权限控制。举例说明,假设某按钮的功能具有二次验证特殊权限控制属性,则用户A触发按钮后,对应的功能不会立即执行,而是先弹出对话框,提示需要具有二次验证权限的用户进行授权,此功能常用于需要两级审核的业务处理情况。

 

  对于“参考值”的控制方式,是对控件功能的使用权限无法通过标志位“0”或“1”简单实现的一种补充方法。举例说明,假如某控件功能权限的触发条件需要用户属于角色X,并且必须是白班的用户,那么就可以设置一个“参考值”其值为“白班”,在功能触发后,首先判断当前用户角色是否为x,如果不是,提示用户无法使用,如果是,还需要获得用户的班次信息,如果是白班,可以正常使用该控件功能,否则,也提示无法使用,退出功能)

 

2 技术方案

 

  本文提出的MES软件可配置的权限控制方法主要包括以下四方面的内容:

 

  1)后台数据表:主要记录或提供权限控制涉及的数据;

 

  2)权限配置模块:主要功能是提供页面(软件表示层),使用户可以对页面、业务功能的使用权限进行配置,并将配置结果保存到后台数据库中;

 

  3)权限控制模块:主要功能是根据软件用户角色的权限开放相对应的业务功能;

 

  4)权限实现模块:主要功能是在软件上实现各种权限的控制功能。

 

2.1 方法详细说明

 

  2.1.1 后台数据表

 

  在数据库中添加3张系统表(支持软件运行的数据)和3张数据表(软件运行产生的数据)。3张系统表包括:

 

  1)角色信息表(ts_Role_Info)

 

  表中至少包括“角色标识”、“角色名称”两列。记录所有角色信息。角色即是对用户按职责的分类,根据客户使用MES软件的实际需求划定;

 

  2)页面信息表(ts_Page_Info)

 

  表中至少包括“页面标识”、“页面名称”两列。记录软件中所有表示层(页面)的信息;

 

  3)业务功能信(ts_Control_Info)

 

  表中至少包括“功能标识”、“页面标识”、“功能名称”、“功能类型”四列,其中页面标识,指示该业务功能属于哪个页面,功能类型说明功能是以哪种控件形式体现(按钮还是列表等)。

 

  3张数据表包括:

 

  1)用户信息表(td_User_Info)

 

  表中至少包括“用户标识”、“角色标识”、“用户名称”三列,角色标识说明该用户属于哪种角色;

 

  2)页面权限(td—Page_Permission)

 

  表中至少包括“页面权限标识”、“页面标识”、“角色标识”, “权限值”四列,记录角色对页面的使用权限情况;

 

  3)功能权限(td_Function_Permission)

 

  表中至少包括“功能权限标识”、“角色标识”、“功能标识”、“权限值”、“参考值”五列:记录角色对于业务功能的权限(包括静态,动态)

 

  2.1.2 权限配置模块

 

  权限配置模块是权限控制方法正确执行的前提,只有配置了角色对页面,业务功能的使用权限,控制方法才能执行,所以在MES软件安装后的第一步就是进行权限配置。配置角色的权限主要分为两步:

 

  第一步选择一个角色,并在页面集合中选择页面,确认后该角色就对选中的页面具有了访问权限;

 

  第二步是针对每一个已经指定的页面,进行业务功能的权限配置,在选中某一个页面名称后,模块会提供该页面上所有的业务功能集合,根据实际需求,对每个业务功能配置静态、动态权限:最后进行保存,模块会将配置信息记录到后台数据库对应的数据表中。

 

  2.1.3 权限控制模块:

 

  权限控制模块主要分为三个触发点:

 

  第一个触发点是用户成功登陆,软件跳转到主界面,这时,权限控制模块会根据用户所属角色从后台数据库中读取角色对页面的权限来加载页面;

 

  第二个触发点是用户点击某页面时,模块同样会从后台数据库查询该用户角色对于点击页面上业务功能的静态权限,根据权限的配置对业务功能进行设置(例如:该用户对页面中业务功能A有可见、不可用性两种权限,则用户对业务功能A只能浏览,不能使用);

 

  第三个触发点是用户点击使用业务功能时(前提是用户对该业务功能有可用性的静态权限),模块会查询用户对该业务功能的动态权限,并根据动态权限进行控制(例如:用户对业务功能(按钮)B有二次授权的权限,则当用户触发功能B,则先弹出授权提示,待验证输入的授权正确后,再执行业务功能)。

 

  2.1.4 权限实现模块

 

  首先,设所有权限组成的集合是A,用户对某个业务功能配置的权限集合为S。权限实现模块的功能就是在每个业务功能中用软件代码实现集合A,而用户配置的权限是从A中选择部分或者全部权限,所以S c A,这样,用户可以任意修改业务功能的(增加、更改、删除权限)配置,软件都能新配置的进行控制,实现了权限控制的可配置。

 

2.2 方法执行流程

 

  前提:3张基础表已经录入正确的数据,所有权限都已经在软件中实现。

 

  1)使用权限配置模块为每种角色配置权限(包括,页面、业务功能权限);

 

  2)注册用户信息,并登陆软件;权限控制模块获取用户角色,根据角色信息加载有权限的页面;

 

  3)用户访问进入某页面;

 

  4)权限控制获取用户角色对该页面下所有业务功能的静态权限,并根据权限对业务进行控制;

 

  5)用户触发某个业务功能,权限控制模块获取用户角色对该业务功能的动态权限,并根据权限进行控制。执行流程图如图1所示。

 

可配置的MES软件系统权限控制方法

图1 执行流程图

 

3 结束语

 

  采用可配置的权限控制方法,MES软件可以在不用任何修改的情况下,完成对用户权限控制的更改,使得控制更加灵活;权限覆盖到业务功能,使得控制更加精细,从而极大的降低甚至避免误操作,提高数据准确性。