APP下载

面向多商户的第三方电子券系统设计与实现

2012-07-25肖弘月

微型电脑应用 2012年7期
关键词:访问控制商户数据库

肖弘月,吴 刚

0 引言

电子券(E-Coupon)系统是纸质消费券的电子化产物,通过电子送券取代纸质送券,从而提高了顾客消费结算时送券和用券的工作效率,并免去了人工记录送券和后续券消费明细的繁重任务,更精确更及时地把送券和用券信息存入后台数据库,以备每日经营结束后的清算和后续查询存档等,由此大大简化了业务员的操作流程,也规避了业务员在经营活动中,可能产生的失误或者作弊行为。

作者所在实验室之前已为某百货公司定制了一个电子券系统。为了扩展服务的范围,本文在原有基础上进行了相关的工作,给出了一个面向多商户的第三方电子券系统平台设计方案。主要工作包括业务流程的重新梳理与优化、系统架构的改造等。

做为一个第三方的电子券平台,面向多商户的权限管理与访问控制是一个比较突出的问题。本文还重点对与此相关的设计和实现进行了详细的描述,将基于角色的访问控制模型引入系统权限管理,提出了一种面向多商户的系统访问控制管理方式。

1 第三方电子券系统的业务流程优化与系统架构

1.1 业务功能梳理与流程优化

根据实际应用需求,第三方电子券系统有四类用户前端,包括:POS系统、VIP系统、后台业务人员的 MIS(Management Information System,管理信息系统)和统计查询系统。业务功能上,本系统要实现活动规则设置、消费送券、POS消费、POS查询、黑名单设置(进出黑名单)、VIP过期券查询、VIP过期券处理、换卡等。

系统将信息发送到在Linux系统上部署的POS端进行消费送券、POS消费、POS查询等操作;或与MIS端交互,便于管理人员进行促销活动设置、消费信息查询、券信息查询、制卡等操作;或与统计查询系统交互,便于门店、商户、管理人员对卡操作及相关门店的数据信息进行查询和统计备份。根据上述4类用户的不同操作要求,对系统的功能模块进行了划分,如图1所示:

图1 第三方电子券系统功能模块图

根据以上业务功能需要和流程需求,电子券的载体——非记名磁条卡有一个完整的生命周期:管理人员操作 MIS客户端初始化磁条卡信息,生成相关数据,如卡号、商户号、门店号等,并记录卡信息操作人员;新卡制作完毕按照其卡号段分配至相应门店的POS机端,由营业人员给磁条卡送券,分别有两种情况:MIS端批量送券和POS机端单独送券,送券完毕此磁条卡可作为“代金卡”供客户在指定门店和活动中消费;由于客户遗失、活动过期或者磁卡失效等原因,营业员可在MIS端设置磁条卡黑名单,POS机端支持换卡,最终在以上两个终端均可回收磁条卡,磁条卡的生命周期,如图2所示:

图2 磁条卡的生命周期

1.2 系统的架构

面向多商户的第三方电子券系统应用环境中有多个复杂的商场信息系统,并需要与它们交互数据。因此该电子券系统拥有多个调用者,一是最接近客户的POS机销售系统,它是一个兼人员管理、商品销售、权限配置、网络管理等多功能为一体的完整的零售业销售管理软件系统,当客户在POS机端消费结账时,可调用第三方电子券系统的相关功能,如送券、券信息查询等。另一个调用前端是系统内部的管理信息系统(MIS端),商场管理人员需要在MIS的管理页面上进行促销活动的规则设置、消费明细查询等操作。由于商场的客户分为 VIP客户与普通用户,所以该系统与独立的 VIP系统也有信息交互。在连锁经营的大环境下,为了做好多商户的权限管理与访问控制,系统设立了独立的权限数据库,并在查询统计模块中予以实现,电子券系统的架构及系统运行环境,如图3所示:

图3 电子券系统架构及系统运行环境

2 面向多商户的权限管理与访问控制

为了实现整个第三方电子券系统统一控制访问权限,采用了一种符合企业业务运行习惯的权限管理方式,也就是基于角色的访问控制机制,同时,通过设计良好的数据库模式,只需将不同客户的信息集中录入,即可将他们纳入系统。在数据库设计层面,主要包含两个表空间:一个表空间用来存储权限管理的相关数据,另一个表空间用来存储E-Coupon系统的业务数据。这样可以符合图3所示的系统结构且具有清晰的逻辑层级。

2.1 基本原理

基于角色的访问控制(Role_Based Access Control,RBAC),基本模型,如图4所示:

图4 RBAC基本模型

包含了3个实体:用户User,角色Role和权限Privilege。

用户是对数据对象进行操作的主体,可以是人,机器人和计算机等。

权限是对某一数据对象的可操作权利。一般所讲的数据对象,对于数据库系统而言,可以是表、视图、字段,甚至是一条记录。相应的操作有读、写、删除和修改等。一项权限就是可以对某一个特定数据对象进行某一种特定操作的权利。

角色的概念源于实际工作中的职务。一个具体职务代表了在日常工作中处理某些事务的权利。把这个概念引入授权管理中,则角色作为中间桥梁把用户和权限联系起来。一个角色与权限关联可以看作是该角色拥有的一组权限的集合,与用户关联又可以看作是若干具有相同身份的用户的集合。

一个用户可以被赋予若干角色,一个角色也可以被赋予给若干个具体用户,用户和角色之间是多对多的关系。同样,一个角色可以具有多项权限,一项权限也可被赋予给多个不同的角色,角色和权限之间也是多对多的关系。一个登录于某系统的用户,可以通过他所具有的角色的权限来判断其可访问的系统资源和对系统资源可以进行的操作。这就是RBAC最基本的工作原理。

RBAC的描述如下:

u: User用户;r: Role角色;p: Privilege权限。

R[u]表示用户u被分配的所有角色的集合;

P[r]表示角色r被分配的权限的集合;

P[u]表示用户u拥有的权限的集合。

假设p∈P[u]表示用户u具有某项权限p。则有p∈P[u]if and only if (存在 r) { r∈R[u]and p∈P[r]}

在用户机构或权限发生变动时,RBAC模型可以很灵活的将该用户从一个角色移到另一个角色来实现权限的协调转换,降低了管理的复杂度,而且这些操作对用户完全透明。另外在组织机构发生职能性改变时,应用系统只需要对角色进行重新授权或取消某些权限,就可以使系统重新适应需要。这些都使得基于角色访问控制策略的管理和访问方式,具有无可比拟的灵活性和易操作性。

2.2 设计与实现

基于角色访问控制的核心思想是将权限同角色关联起来,而用户的授权则通过赋予相应的角色来完成,用户所能访问的权限就由该用户所拥有的所有角色的权限集合的并集决定。

将上述核心思想应用在第三方电子券系统上,采用“用户-角色-访问数据库资源的权限”的控制方式,实现两层控制。该权限管理模式,如图5所示:

图5 权限管理模式

在这个查询统计模块中,系统管理员可以干预系统内所有角色的创建、角色权限分配和用户角色分配以及用户管理,具体如下:

(1) 用户基本信息管理,包括:增加平级/子级用户,可同时配置角色、数据权限;删除用户,同时删除所有子级用户;更改用户基本信息,登录名、登录密码、显示名。

(2) 角色管理,包括:每个角色有相应的访问权限,即“可使用的服务列表”;增加角色,同时配置此角色可用服务;删除角色,同时提示受到影响的关联用户;更改角色(配置此角色可用服务),同时提示受到影响的关联用户。

(3) 用户访问权限管理,包括:配置此用户拥有的角色,从而间接控制可用服务;若拥有多个角色,则可用服务取并集;即时显示当前的角色配置对应的可用服务列表。

(4) 用户数据权限管理,包括:配置“谁”可以查询“哪些门店”;同时列出“黑名单”和“白名单”,拖动配置。

除了系统管理员,其他系统用户通过授权认证登陆查询统计系统,根据管理员配置的访问权限列出可使用服务如充值记录查询、换卡记录查询、券消费查询等,输入相关临时卡信息,得到查询结果。查询结果可导出为excel表格。

对上述权限管理相关的功能需求进行用例分析,如图6所示:

图6 权限管理系统用例

根据上述需求设计权限管理数据库,数据库不设外键约束,一致性由后台代码保证,其数据表有:userlist用户基本信息表、rolelist角色基本信息表、privconfig数据权限信息表、user_role用户—角色关系映射表、role_svc角色—服务关系映射表、servicelist服务列表。其相应的数据库ER图,如图7所示:

图7 权限数据库ER图

3.3 权限验证

权限管理主要涉及到角色的创建、人员的分配、角色的权限分配。系统管理员根据实际应用系统的结构划分来定义相应角色,角色定义完成后,可进行角色的修改和删除。同时定义完的角色可进行权限的分配,分配其可执行的服务列表;并且可进行用户的关联,一个角色可关联多个用户,一个用户也可以拥有多个角色。下面具体描述了其用例场景:

(1) 新建角色 role1,赋予服务 service1制卡日志查询和service2消费日志查询;新建角色 role2,赋予服务service2消费日志查询和service3可用卡查询;新建角色role3,赋予服务service3可用卡查询和service4发卡日志查询。

(2) 新建用户Brand1Manager,配置其关联角色role1和角色role2,同时,配置其数据权限范围为商户1虹桥店和商户2浦东店(有权查询),而商户1徐汇店和商户2闵行店无权查询。

(3) 用户 Brand1Manager登录系统,系统根据其拥有的角色计算服务列表为:service1制卡日志查询、service2消费日志查询、service3可用卡查询,针对service2消费日志查询,其数据权限仅限于商户1虹桥店和商户2浦东店。其用户Brand1Manager登录界面,如图8所示:

图8 用户登录界面

3 结论

针对多商户环境下对电子券原型的扩展需求,本文重新梳理了业务流程并进行了架构重组,重点阐述了基于角色的访问控制模型如何应用于一个面向多商户的第三方电子券系统,详细分析了系统需要实现的功能和授权管理,展现了数据库的细节设计,并论述了系统实现所用到的关键技术。经验证,本文所实现的系统基本满足多商场实际运营的应用需求,方便送券及电子券相关数据的记录与查询,能够灵活控制访问权限和授权管理。

[1]Sandbu R, Role-Based Access Control,[M]Advance in Computers, 1998, 46: P1-49

[2]朱 磊.一种面向服务的权限管理模型[J]. 计算机学报,2005,28(4):677-685.

[3]朱虹,冯玉才.MIS系统的授权管理[J].计算机工程与应用,1999;(3)

猜你喜欢

访问控制商户数据库
江苏赣榆农商行 上线商户回访管理系统
“543”工作法构建党建共同体
数据库
ONVIF的全新主张:一致性及最访问控制的Profile A
工商银行 银行业首家商户发展中心成立
动态自适应访问控制模型
数据库
浅析云计算环境下等级保护访问控制测评技术
数据库
大数据平台访问控制方法的设计与实现