多租户模式在大型分布式企业应用的关键问题研究
2014-10-29万旭川李凯丰杜佳
万旭川+李凯丰+杜佳
摘 要
多租户软件模式以单实例支持多租户的功能需求,对大型分布式企业的信息化建设具有重要意义。但不同租户业务需求上以及权限管理上的差异导致实际建设中产生了大量的定制化需求。本文根据多租户模式的特点,探讨了多租户软件应用层定制的实现方式,研究了可扩展的访问授权模型在多租户软件中的应用。
【关键词】多租户系统软件即服务面向服务的体系结构访问控制
大型分布式企业是指规模庞大,各子系统/部门在地理上分散且各相互间协作密切的企业。在传统的企业信息化进程中,由于地域、业务、职能、经济实力的不同,各子系统往往独立建设信息系统,加上缺乏整体的统筹规划,往往导致系统间接口不一致,系统重复建设等问题频现,企业整体信息化建设效益低。网络以及信息技术的不断发展,特别是近年来SaaS的兴起为大型分布式企业的信息化建设提供了新的思路。
软件即服务(Software-as-a-service,简称SaaS)以多租户模式为核心理念,以单实例支持多个租户的功能需求,具有维护方便、价格适中等特点。分布式企业内部各子系统/部门均可以看做一个租户,多租户软件能够很好的满足其共性软件需求,采用SaaS模式能够显著降低信息化建设成本和运维成本,同时保证数据接口的一致性。
SaaS系统通常适用于多数用户的通用需求,这是由其多租户共享相同的应用层结构决定的。但从实际应用的角度来看,各租户的业务逻辑往往具有一定的差异,因此SaaS系统需要根据实际情况进行一定程度的定制。是否能够通过租户的配置和二次开发来满足其个性化的业务需求是决定SaaS能否在企业中得到广泛应用的重要因素。对多租户模式下的企业应用进行定制相较传统应用系统来说更加复杂,一方面需要保障系统的共享性,另一方面需要满足业务逻辑的可定制性。此外,多租户共享同一应用实例的特点决定了多租户应用的定制不能因为某一个租户需要进行定制而重新部署应用程序。因此,应用层业务流程可配置性是分布式企业应用多租户模式软件的关键需求之一。
另外,大型分布式企业内部各子系统功能相对独立,因此需要保证SaaS应用满足各子系统的独立性要求,同时需要适应各子系统/部门内部不同的组织结构和管理要求。因此安全可靠可灵活配置的系统权限管理方案是多租户软件部署能否取得成功的另一个重要因素。
本文将根据多租户模式系统的特点,讨论大型分布式企业内部多租户软件应用的体系架构和管理架构。
1 基于SOA的软件架构
面向服务的体系结构SOA(Service-Oriented Architecture,SOA)可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署、组合和使用,SOA支持将业务分解为一系列相互关联的服务或任务,通过对服务进行组合编排,完成特定的业务流程,因此能够快速适应不同的客观条件和需求。这种特性正是大型分布式企业部署多租户应用所需要的,所以基于SOA的体系结构作为多租户应用的基础架构是非常理想的。
实现SOA业务流程定义关键技术之一是业务流程执行语言(Business Process Execution Language,BPEL)。BPEL只定义业务流程相关的逻辑,具体的功能由它所调用的服务来实现,BPEL通过调用Web 服务描述服务之间的交互与协作,对外则提供流程服务,从而将商业流程与软件流程对应起来。
在多租户应用的系统环境中,不同的企业内部子系统/部门将发起独立的流程实例。在BPEL流程的执行环境中,使用同一个流程模板可以生成多个BPEL流程实例,同时BPEL所调用的服务并不会保留实例信息。为了保证将消息传递到正确的流程实例,需要建立消息与流程实例的映射关系。各租户应用可将一组业务属性定义为关联集合,关联集合中必须映射到唯一的一个BPEL流程实例,BPEL运行环境将消息路由到与该关联集合相匹配的流程实例。对于流程中不同的接口,可以定义不同的关联集合以灵活地适应不同的SaaS业务需求。
在构建多租户应用的过程中,可以抽取业务流程中共性的逻辑形成模式以便流程建模时进行重用。我们通过BPEL定义结构化活动组件来描述基本流程模式,在此基础上,用多个基本模式的组合来描述复杂的流程模式。结合多租户软件应用层的需求和特点,建立了多租户软件应用层定制化模型,如图1所示。
该模型从逻辑上主要分为三部分:
(1)服务模块:封装具体的细粒度的业务逻辑,实现具体的业务功能。通用逻辑模块为所有子系统用户提供共性业务逻辑的实现,扩展逻辑模块负责各子系统用户个性化定制的业务逻辑的实现。
(2)流程定义模块:通过BPEL设计工具,调用Web Service定义和编排业务流程,BPEL服务器负责运行流程实例并调用相应的服务。
(3)用户接口模块:为子系统用户或管理人员提供简便的流程定义接口,将子系统用户对业务的描述转变为标准的BPEL流程描述.
在多租户软件应用层定制化模型中,将各子系统用户自定义的业务流程和通用的业务流程转换为可执行的BPEL流程,随后通过BPEL实例的运行,调用最终的Web Service实现具体的功能。
2 可扩展的访问控制管理结构
由于多租户应用的定制化特点,企业内各子系统/部门需要拥有不同的权限集合,此外,各系统各部们的组织架构和管理方式也不尽相同,子系统内部对人员的授权策略上也是不同的。因此多租户应用的访问控制策略首先要实现为每个租户分配适合的权限集,还需要为租户制定灵活的授权机制,保证各子系统/部门能够实施规范化的管理。
扩展的角色管理模型(Administrative RBAC,ARBAC97)的基本思想是利用RBAC模型本身来进行RBAC模型的管理,包括用户角色管理、权限角色管理、角色层次关系管理、限制管理等几个部分。endprint
ARBAC97模型为企业提供了分层的管理职能分配解决方案。对于多租户应用,ARBAC97模型同样能够完成权限管理的层次划分任务。
多租户应用中,不同子系统/部门拥有不同的访问控制策略,因此,多租户访问控制模型的表述不同于传统的RBAC模型的访问控制模型,本文引入符号Ti,用以表示ID为i的企业内部子系统/部门,在此基础上给出了多租户访问控制模型的形式化定义(N为自然数集,U代表员工集,R代表角色集,P代表权限集,RS代表资源集):
(1)定义1: TRTR ((Ti,Rj)TR,iN,jN)
表示从部门集到角色集的一对多映射,即角色Rj属于部门Ti。
(2)定义2: UTU×T ((Ui,Tj)∈UT,i∈N,j∈N)
表示从用户集到部门集的多对一映射,即用户Ui属于部门Ti。
(3)定义3: TPU×P ((Ti,Pj)∈TP,i∈N,j∈N)
表示从部门集到权限集的多对多映射,即部门Ti拥有权限Pj。
(4)定义4 :URUT×TR (((Ui,Tj),(Tj,Rk))∈UR,(Ui,Tj)∈UT,(Tj,Rk)∈TR,i∈N,j∈N,k∈N)
表示从用户集到角色集的多对多映射,即部门Tj的员工Ui拥有角色Rk。
(5)定义5: RPR×TP ((Ri,(Tj,Pk))∈PR,Ri∈R,(Tj,Pk)∈TP,i∈N,j∈N,k∈N)
表示从角色集到权限集的多对多映射,即角色Ri拥有权限Pk。
根据如上的定义,一个完整的多租户访问控制模型如图2所示。
在多租户体系中,通过角色间接地映射到租户所拥有的权限集合上,从而实现对系统服务的访问。
企业内部各子系统拥有独立的角色集合,由超级管理员进行资源定义和权限定义,租户级超级管理员仅能够完成本系统内部的授权和角色定义,从而实现各子系统之间的独立性,且保证整个企业的权限管理可以灵活拓展。
3 总结
多租户模式对于大型分布式企业的信息化建设具有重要的指导意义,灵活可定制的流程架构以及管理架构是构建多租户应用的关键因素。本文通过分析研究,探讨了通过BPEL构建了多租户软件应用层定制化模型的方案并在ARBAC的基础上列出了多租户模式下访问控制模型的形式化定义。
参考文献
[1]Ahmed Elfatatry,Paul Layzell.Software As A Service:A Negotiation Perspective[C].Proceedings of the 26th Annual International Computer Software and Applications Conference,2002 IEEE:501-506.
[2]Dan Ma.The Business Model of “Software-As-A-Service”[C].2007 IEEE International Conference on Services Computing,SCC2007:701-702.
[3]Pasley,James.How BPEL and SOA are changing web services development[J].IEEE Internet Computing,Volume 9,Issue 3,May/June 2005:60-67.
[4]夏鲁宁,荆继武.一种基于层次命名空间的RBAC管理模型[J].计算机研究与发展,2007,44(12):2020-2027.
作者简介
万旭川(1975-),男,陕西省宝鸡市人。现为西安航天动力技术研究所所长助理,信息中心主任。
李凯丰(1986-),男,河南省平顶山市人。现就职于西安航天动力技术研究所信息中心。
杜佳(1986-),女,河南省安阳市人。现就职于西安航天动力技术研究所信息中心。
作者单位
西安航天动力技术研究所 陕西省西安市 710071endprint
ARBAC97模型为企业提供了分层的管理职能分配解决方案。对于多租户应用,ARBAC97模型同样能够完成权限管理的层次划分任务。
多租户应用中,不同子系统/部门拥有不同的访问控制策略,因此,多租户访问控制模型的表述不同于传统的RBAC模型的访问控制模型,本文引入符号Ti,用以表示ID为i的企业内部子系统/部门,在此基础上给出了多租户访问控制模型的形式化定义(N为自然数集,U代表员工集,R代表角色集,P代表权限集,RS代表资源集):
(1)定义1: TRTR ((Ti,Rj)TR,iN,jN)
表示从部门集到角色集的一对多映射,即角色Rj属于部门Ti。
(2)定义2: UTU×T ((Ui,Tj)∈UT,i∈N,j∈N)
表示从用户集到部门集的多对一映射,即用户Ui属于部门Ti。
(3)定义3: TPU×P ((Ti,Pj)∈TP,i∈N,j∈N)
表示从部门集到权限集的多对多映射,即部门Ti拥有权限Pj。
(4)定义4 :URUT×TR (((Ui,Tj),(Tj,Rk))∈UR,(Ui,Tj)∈UT,(Tj,Rk)∈TR,i∈N,j∈N,k∈N)
表示从用户集到角色集的多对多映射,即部门Tj的员工Ui拥有角色Rk。
(5)定义5: RPR×TP ((Ri,(Tj,Pk))∈PR,Ri∈R,(Tj,Pk)∈TP,i∈N,j∈N,k∈N)
表示从角色集到权限集的多对多映射,即角色Ri拥有权限Pk。
根据如上的定义,一个完整的多租户访问控制模型如图2所示。
在多租户体系中,通过角色间接地映射到租户所拥有的权限集合上,从而实现对系统服务的访问。
企业内部各子系统拥有独立的角色集合,由超级管理员进行资源定义和权限定义,租户级超级管理员仅能够完成本系统内部的授权和角色定义,从而实现各子系统之间的独立性,且保证整个企业的权限管理可以灵活拓展。
3 总结
多租户模式对于大型分布式企业的信息化建设具有重要的指导意义,灵活可定制的流程架构以及管理架构是构建多租户应用的关键因素。本文通过分析研究,探讨了通过BPEL构建了多租户软件应用层定制化模型的方案并在ARBAC的基础上列出了多租户模式下访问控制模型的形式化定义。
参考文献
[1]Ahmed Elfatatry,Paul Layzell.Software As A Service:A Negotiation Perspective[C].Proceedings of the 26th Annual International Computer Software and Applications Conference,2002 IEEE:501-506.
[2]Dan Ma.The Business Model of “Software-As-A-Service”[C].2007 IEEE International Conference on Services Computing,SCC2007:701-702.
[3]Pasley,James.How BPEL and SOA are changing web services development[J].IEEE Internet Computing,Volume 9,Issue 3,May/June 2005:60-67.
[4]夏鲁宁,荆继武.一种基于层次命名空间的RBAC管理模型[J].计算机研究与发展,2007,44(12):2020-2027.
作者简介
万旭川(1975-),男,陕西省宝鸡市人。现为西安航天动力技术研究所所长助理,信息中心主任。
李凯丰(1986-),男,河南省平顶山市人。现就职于西安航天动力技术研究所信息中心。
杜佳(1986-),女,河南省安阳市人。现就职于西安航天动力技术研究所信息中心。
作者单位
西安航天动力技术研究所 陕西省西安市 710071endprint
ARBAC97模型为企业提供了分层的管理职能分配解决方案。对于多租户应用,ARBAC97模型同样能够完成权限管理的层次划分任务。
多租户应用中,不同子系统/部门拥有不同的访问控制策略,因此,多租户访问控制模型的表述不同于传统的RBAC模型的访问控制模型,本文引入符号Ti,用以表示ID为i的企业内部子系统/部门,在此基础上给出了多租户访问控制模型的形式化定义(N为自然数集,U代表员工集,R代表角色集,P代表权限集,RS代表资源集):
(1)定义1: TRTR ((Ti,Rj)TR,iN,jN)
表示从部门集到角色集的一对多映射,即角色Rj属于部门Ti。
(2)定义2: UTU×T ((Ui,Tj)∈UT,i∈N,j∈N)
表示从用户集到部门集的多对一映射,即用户Ui属于部门Ti。
(3)定义3: TPU×P ((Ti,Pj)∈TP,i∈N,j∈N)
表示从部门集到权限集的多对多映射,即部门Ti拥有权限Pj。
(4)定义4 :URUT×TR (((Ui,Tj),(Tj,Rk))∈UR,(Ui,Tj)∈UT,(Tj,Rk)∈TR,i∈N,j∈N,k∈N)
表示从用户集到角色集的多对多映射,即部门Tj的员工Ui拥有角色Rk。
(5)定义5: RPR×TP ((Ri,(Tj,Pk))∈PR,Ri∈R,(Tj,Pk)∈TP,i∈N,j∈N,k∈N)
表示从角色集到权限集的多对多映射,即角色Ri拥有权限Pk。
根据如上的定义,一个完整的多租户访问控制模型如图2所示。
在多租户体系中,通过角色间接地映射到租户所拥有的权限集合上,从而实现对系统服务的访问。
企业内部各子系统拥有独立的角色集合,由超级管理员进行资源定义和权限定义,租户级超级管理员仅能够完成本系统内部的授权和角色定义,从而实现各子系统之间的独立性,且保证整个企业的权限管理可以灵活拓展。
3 总结
多租户模式对于大型分布式企业的信息化建设具有重要的指导意义,灵活可定制的流程架构以及管理架构是构建多租户应用的关键因素。本文通过分析研究,探讨了通过BPEL构建了多租户软件应用层定制化模型的方案并在ARBAC的基础上列出了多租户模式下访问控制模型的形式化定义。
参考文献
[1]Ahmed Elfatatry,Paul Layzell.Software As A Service:A Negotiation Perspective[C].Proceedings of the 26th Annual International Computer Software and Applications Conference,2002 IEEE:501-506.
[2]Dan Ma.The Business Model of “Software-As-A-Service”[C].2007 IEEE International Conference on Services Computing,SCC2007:701-702.
[3]Pasley,James.How BPEL and SOA are changing web services development[J].IEEE Internet Computing,Volume 9,Issue 3,May/June 2005:60-67.
[4]夏鲁宁,荆继武.一种基于层次命名空间的RBAC管理模型[J].计算机研究与发展,2007,44(12):2020-2027.
作者简介
万旭川(1975-),男,陕西省宝鸡市人。现为西安航天动力技术研究所所长助理,信息中心主任。
李凯丰(1986-),男,河南省平顶山市人。现就职于西安航天动力技术研究所信息中心。
杜佳(1986-),女,河南省安阳市人。现就职于西安航天动力技术研究所信息中心。
作者单位
西安航天动力技术研究所 陕西省西安市 710071endprint